@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;510;590&display=swap";:root{--bg: #0d0f14;--surface: #151820;--surface-2: #1a1d28;--border: #1e2230;--border-subtle:#181b25;--accent: #5e6ad2;--accent-hover: #7c85e0;--accent-glow: rgba(94, 106, 210, .15);--positive: #10b981;--positive-bg: rgba(16, 185, 129, .1);--negative: #f87171;--negative-bg: rgba(248, 113, 113, .1);--text-primary: #e8eaf0;--text-secondary: #8892a4;--text-tertiary: #525c6e;--font: "Inter", system-ui, -apple-system, sans-serif;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-lg: 18px;--text-xl: 24px;--text-2xl: 32px;--text-3xl: 40px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill:9999px;--t-fast: .12s ease;--t-base: .18s ease}[data-theme=light]{--bg: #f7f8f8;--surface: #f3f4f5;--surface-2: #f5f6f7;--border: #d0d6e0;--border-subtle:#e6e6e6;--accent: #5e6ad2;--accent-hover: #828fff;--accent-glow: rgba(94, 106, 210, .12);--positive: #10b981;--positive-bg: rgba(16, 185, 129, .08);--negative: #f87171;--negative-bg: rgba(248, 113, 113, .08);--text-primary: #08090a;--text-secondary: #525c6e;--text-tertiary: #8a8f98}body{background:var(--bg);color:var(--text-primary);font-family:var(--font);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.5;min-height:100vh}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-positive{color:var(--positive)}.text-negative{color:var(--negative)}.text-accent{color:var(--accent)}.uppercase{text-transform:uppercase;letter-spacing:.08em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);font-size:var(--text-sm);font-weight:510;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast);white-space:nowrap;min-height:40px}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:#ffffff0a;color:var(--text-primary)}.btn-subtle{background:var(--surface-2);border:1px solid var(--border);color:var(--text-primary)}.btn-subtle:hover:not(:disabled){background:#1f2335}.btn-primary{background:var(--accent);border:1px solid transparent;color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-sm);background:transparent;border:1px solid transparent;color:var(--text-tertiary);transition:all var(--t-fast)}.btn-icon:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.btn-xs{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);min-height:30px}.btn-sm{padding:6px var(--sp-3);font-size:var(--text-sm);min-height:34px}.btn-danger{background:var(--negative);color:#fff}.btn-danger:hover:not(:disabled){background:#f65f5f}.input{width:100%;padding:10px var(--sp-3);background:#ffffff08;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--t-base),box-shadow var(--t-base);outline:none}.input::placeholder{color:var(--text-tertiary)}.input:focus{border-color:#ffffff24;box-shadow:0 0 0 3px var(--accent-glow)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5)}.card:hover{background:#181b26}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:590;letter-spacing:.04em}.badge-neutral,.badge-subtle{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border)}.badge-buy{background:var(--positive-bg);color:var(--positive);border:1px solid rgba(16,185,129,.2)}.badge-sell{background:var(--negative-bg);color:var(--negative);border:1px solid rgba(248,113,113,.2)}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table thead th{padding:var(--sp-3) var(--sp-4);text-align:left;font-size:var(--text-xs);font-weight:590;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);border-bottom:1px solid var(--border);white-space:nowrap}.data-table thead th.th-right{text-align:right}.data-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background var(--t-fast)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:#ffffff06}.data-table tbody td{padding:var(--sp-3) var(--sp-4);vertical-align:middle;color:var(--text-primary)}.data-table tbody td.td-right{text-align:right}.table-wrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--border)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.panel-title{font-size:var(--text-sm);font-weight:590;letter-spacing:.02em;color:var(--text-primary)}.panel-header-actions{display:flex;align-items:center;gap:var(--sp-3)}.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-6);color:var(--text-tertiary);font-size:var(--text-sm);text-align:center}.panel-empty-cash{display:flex;flex-direction:column;align-items:center;gap:2px}.panel-empty-cash-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.panel-empty-cash-value{font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.panel-error{padding:var(--sp-3) var(--sp-5);background:var(--negative-bg);border-bottom:1px solid rgba(248,113,113,.2);font-size:var(--text-sm);color:var(--negative)}.error-message{background:var(--negative-bg);border:1px solid rgba(248,113,113,.2);color:var(--negative);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:var(--text-sm)}.loading-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.cell-skeleton{display:block;width:64px;height:14px;border-radius:3px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.loading-skeleton{display:block;height:20px;border-radius:4px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.dash-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--sp-4);font-size:var(--text-sm);color:var(--text-tertiary)}.sortable:hover{color:var(--text-secondary)}.td-right{text-align:right}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:var(--sp-6);padding-top:80px}.auth-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border)}.auth-header-brand{font-size:var(--text-sm);font-weight:590;letter-spacing:.02em;color:var(--text-primary)}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-8)}.auth-title{font-size:var(--text-2xl);font-weight:400;letter-spacing:-.7px;color:var(--text-primary);margin-bottom:var(--sp-2)}.auth-sub{font-size:var(--text-base);color:var(--text-tertiary);margin-bottom:var(--sp-6)}.auth-form{display:flex;flex-direction:column;gap:var(--sp-4)}.form-field{display:flex;flex-direction:column;gap:var(--sp-2)}.field-label{font-size:var(--text-sm);font-weight:510;color:var(--text-secondary)}.field-optional{font-weight:400;color:var(--text-tertiary);font-size:var(--text-xs)}.auth-submit{width:100%;padding:var(--sp-3);margin-top:var(--sp-2)}.auth-switch{margin-top:var(--sp-6);text-align:center;font-size:var(--text-sm);color:var(--text-tertiary)}.auth-link{color:var(--accent);font-weight:510}.auth-link:hover{color:var(--accent-hover);text-decoration:underline}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--text-tertiary)}.strength-bar-wrap{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1)}.strength-bar{flex:1;height:3px;background:var(--border);border-radius:var(--r-pill);overflow:hidden}.strength-fill{height:100%;border-radius:var(--r-pill);transition:width .2s,background .2s}.strength-label{font-size:var(--text-xs);font-weight:590;letter-spacing:.04em;min-width:44px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-8);max-width:400px;width:90%;display:flex;flex-direction:column;gap:var(--sp-5)}.modal-title{font-size:var(--text-lg);font-weight:590;letter-spacing:-.24px;color:var(--text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--sp-3)}.portfolio-summary{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border);font-size:var(--text-sm);font-weight:510;color:var(--text-primary)}.stock-detail-shell{max-width:1200px;margin:0 auto;padding:var(--sp-5) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5)}.stock-detail-back{align-self:flex-start;margin-bottom:var(--sp-2)}.stock-detail-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4)}.stock-detail-identity{display:flex;align-items:center;gap:var(--sp-4)}.stock-logo{width:48px;height:48px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);object-fit:contain;padding:4px}.stock-detail-name{font-size:var(--text-2xl);font-weight:590;letter-spacing:-.7px;color:var(--text-primary)}.stock-detail-meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);flex-wrap:wrap}.stock-price-display{display:flex;align-items:baseline;gap:var(--sp-3)}.stock-price-value{font-size:var(--text-3xl);font-weight:590;letter-spacing:-1px;color:var(--text-primary)}.stock-price-change{font-size:var(--text-base);font-weight:510}.stock-quick-stats{display:flex;gap:var(--sp-6);flex-wrap:wrap;padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.stock-quick-stat-label{font-size:var(--text-xs);font-weight:590;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.stock-quick-stat-value{font-size:var(--text-sm);font-weight:510;color:var(--text-primary)}.stock-detail-tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border);padding-bottom:0}.stock-overview-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--sp-4)}.stock-mini-chart-card{grid-column:1 / -1;min-height:300px}.stock-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.stock-meta-chips{display:flex;gap:var(--sp-2);flex-wrap:wrap}.stock-stats-grid{display:flex;flex-direction:column;gap:0}.stock-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle)}.stock-stat-label{font-size:var(--text-sm);color:var(--text-tertiary)}.stock-stat-value{font-size:var(--text-sm);font-weight:510;color:var(--text-primary)}@media (max-width: 768px){.stock-overview-grid{grid-template-columns:1fr}.stock-overview-card,.stock-stats-card,.stock-mini-chart-card{grid-column:1}.stock-price-value{font-size:var(--text-2xl)}.stock-detail-shell{padding:var(--sp-4)}.stock-detail-header{flex-direction:column;align-items:flex-start}.stock-price-display{flex-direction:column;gap:var(--sp-1)}.stock-quick-stats{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:var(--sp-1)}}.market-overview-strip{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.market-overview-card{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);cursor:default;transition:border-color var(--t-fast);min-width:160px}.market-overview-card:hover{border-color:var(--accent);cursor:pointer}.sector-index-card{border-left:3px solid var(--accent);background:var(--surface-2)}.market-overview-label{font-size:var(--text-xs);font-weight:590;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.market-overview-price{font-size:var(--text-sm);font-weight:510;color:var(--text-primary);font-variant-numeric:tabular-nums}.market-overview-change{font-size:var(--text-xs);font-weight:510;font-variant-numeric:tabular-nums;white-space:nowrap}.market-overview-refresh{color:var(--text-tertiary);margin-left:auto;font-size:var(--text-sm)}.dash-shell{min-height:100vh;background:var(--bg)}.topnav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border)}.topnav-brand{display:flex;align-items:center;gap:var(--sp-4)}.brand-text{font-size:var(--text-base);font-weight:590;letter-spacing:-.2px;color:var(--text-primary)}.market-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:590;letter-spacing:.06em}.market-open{background:var(--positive-bg);color:var(--positive);border:1px solid rgba(16,185,129,.2)}.market-closed{background:var(--negative-bg);color:var(--negative);border:1px solid rgba(248,113,113,.15)}.topnav-center{display:flex;align-items:center;gap:var(--sp-1)}.topnav-tab{padding:6px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:510;cursor:pointer;border-radius:var(--r-sm);border-bottom:2px solid transparent;transition:color var(--t-fast),background var(--t-fast),border-color var(--t-fast)}.topnav-tab:hover{color:var(--text-primary);background:#ffffff0a}.topnav-tab-active{color:var(--text-primary);border-bottom-color:var(--accent)}.topnav-right{display:flex;align-items:center;gap:var(--sp-4)}.balance-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}.balance-value{font-size:var(--text-sm);font-weight:590;color:var(--text-primary)}.page-header{background:var(--surface);border-bottom:1px solid var(--border);padding:var(--sp-5) var(--sp-6)}.page-header-top{display:flex;align-items:center;gap:var(--sp-6);flex-wrap:wrap}.page-welcome{flex:1;min-width:180px}.welcome-name{font-size:var(--text-xl);font-weight:590;letter-spacing:-.5px;color:var(--text-primary);margin-bottom:2px}.welcome-date{font-size:var(--text-sm);color:var(--text-tertiary)}.stat-cards-row{display:flex;gap:var(--sp-4);flex-wrap:wrap}.stat-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);min-width:150px;display:flex;flex-direction:column;gap:4px}.stat-card-label{font-size:var(--text-xs);font-weight:590;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.stat-card-value{font-size:var(--text-xl);font-weight:590;letter-spacing:-.5px;color:var(--text-primary);line-height:1.1}.stat-card-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.page-header-actions{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0}.dash-main{max-width:1440px;margin:0 auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-6)}.dash-main-grid{display:grid;grid-template-columns:1fr 360px;gap:var(--sp-5);align-items:start}.dash-chart-col{display:flex;flex-direction:column;gap:var(--sp-5)}.dash-search-row{display:flex;align-items:center;gap:var(--sp-3)}@media (max-width: 960px){.dash-main-grid{grid-template-columns:1fr}.dash-trade-col{order:2;width:100%!important;max-width:100%!important}.stat-cards-row{gap:var(--sp-3)}.stat-card{min-width:130px}}.market-clock{display:flex;align-items:center;gap:var(--sp-3)}.clock-text{font-size:10px;font-weight:590;font-family:var(--font);letter-spacing:.05em}.clock-open-text{fill:var(--positive)}.clock-closed-text{fill:var(--negative)}.clock-info{display:flex;flex-direction:column;gap:2px}.clock-ist-time{font-size:var(--text-xs);letter-spacing:.06em;color:var(--text-tertiary)}.clock-status{font-size:var(--text-sm);font-weight:510;letter-spacing:.02em}.clock-time-left{font-size:var(--text-xs);letter-spacing:.06em;color:var(--text-tertiary)}.search-icon{position:absolute;left:12px;color:var(--text-tertiary);pointer-events:none}.search-input{width:100%;padding:10px 36px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:var(--text-sm);outline:none;transition:border-color var(--t-base),box-shadow var(--t-base)}.search-input::placeholder{color:var(--text-tertiary)}.search-input:focus{border-color:#ffffff24;box-shadow:0 0 0 3px var(--accent-glow)}.search-spinner{position:absolute;right:12px;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.search-clear-btn{position:absolute;right:10px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px 6px;border-radius:4px;font-size:12px;line-height:1;transition:color var(--t-fast)}.search-clear-btn:hover{color:var(--text-primary)}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 8px 32px #00000080;z-index:200;max-height:320px;overflow-y:auto}.search-result-item{width:100%;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);text-align:left;background:none;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--t-fast)}.search-result-item:hover,.search-result-item-active{background:#ffffff0a}.search-section-label{padding:6px var(--sp-4) 3px;font-size:10px;font-weight:590;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.search-divider{height:1px;background:var(--border);margin:2px 0}.search-result-item-holding{background:#5e6ad20d}.search-result-item-holding:hover,.search-result-item-holding.search-result-item-active{background:#5e6ad21a}.search-holding-qty{font-size:10px!important;margin-left:auto}.search-result-symbol{font-size:var(--text-sm);font-weight:590;color:var(--text-primary);min-width:80px}.search-result-name{font-size:var(--text-sm);color:var(--text-tertiary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-exchange{font-size:var(--text-xs)!important}.search-no-results{padding:var(--sp-4) var(--sp-4);font-size:var(--text-sm);color:var(--text-tertiary);text-align:center}.search-no-results strong{color:var(--text-secondary)}.search-selected-badge{font-size:var(--text-sm);color:var(--text-tertiary);padding:4px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill)}.chart-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:var(--sp-3)}.chart-symbol-info{display:flex;align-items:baseline;gap:var(--sp-3)}.chart-symbol{font-size:var(--text-lg);font-weight:590;letter-spacing:-.24px;color:var(--text-primary)}.chart-name{font-size:var(--text-sm);color:var(--text-tertiary)}.chart-ranges{display:flex;gap:4px}.range-btn{padding:4px 10px;border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:590;letter-spacing:.04em;color:var(--text-tertiary);background:none;border:1px solid transparent;cursor:pointer;transition:all var(--t-fast)}.range-btn:hover{color:var(--text-primary);background:#ffffff0a}.range-btn-active{color:var(--accent)!important;background:var(--accent-glow)!important;border-color:#5e6ad233!important}.chart-ohlcv-strip{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--surface-2)}.chart-ohlcv-item{display:flex;align-items:center;gap:var(--sp-2)}.chart-ohlcv-label{font-size:var(--text-xs);font-weight:590;letter-spacing:.06em;color:var(--text-tertiary);min-width:14px}.chart-ohlcv-value{font-size:var(--text-sm);font-weight:510;letter-spacing:.02em;color:var(--text-primary);font-family:Berkeley Mono,ui-monospace,SF Mono,Menlo,monospace}.chart-ohlcv-sep{flex:1}.chart-container-wrap{position:relative;padding:var(--sp-3) 0 0}.chart-container{width:100%;height:340px}@media (max-width: 640px){.chart-container{height:240px}}.chart-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0d0f1499;z-index:10;pointer-events:none}.chart-skeleton{width:80%;height:60%;background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 50%,var(--surface) 75%);background-size:200% 100%;border-radius:var(--r-sm);animation:shimmer 1.5s infinite}.chart-error{font-size:var(--text-sm)}.trade-panel{position:sticky;top:calc(56px + var(--sp-4))}.trade-quote{display:flex;align-items:baseline;gap:var(--sp-2)}.trade-price{font-size:var(--text-base);font-weight:590;color:var(--text-primary)}.trade-tabs{display:flex;border-bottom:1px solid var(--border)}.trade-tab{flex:1;padding:var(--sp-3);text-align:center;font-size:var(--text-sm);font-weight:590;letter-spacing:.02em;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--t-fast)}.trade-tab:hover{color:var(--text-secondary)}.trade-tab-buy-active{color:var(--positive);border-bottom-color:var(--positive)}.trade-tab-sell-active{color:var(--negative);border-bottom-color:var(--negative)}.trade-closed-notice{padding:var(--sp-2) var(--sp-4);background:var(--accent-glow);border-bottom:1px solid rgba(94,106,210,.15);font-size:var(--text-xs);color:var(--accent);letter-spacing:.04em;text-align:center}.watchlist-suggested{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4)}.watchlist-suggested-copy{font-size:var(--text-xs);color:var(--text-tertiary)}.panel-empty-hint{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.panel-loading-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:var(--sp-2);vertical-align:middle;animation:pulse 1.2s ease-in-out infinite}.trade-order-types{display:flex;gap:var(--sp-2)}.order-type-btn{flex:1;padding:var(--sp-2);border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:590;letter-spacing:.04em;color:var(--text-tertiary);background:#ffffff05;border:1px solid var(--border);cursor:pointer;transition:all var(--t-fast)}.order-type-btn:hover{color:var(--text-primary)}.order-type-active{color:var(--accent);background:var(--accent-glow);border-color:#5e6ad233}.qty-max-btn{font-size:var(--text-xs);color:var(--accent);background:none;border:none;cursor:pointer;padding:2px 0;text-align:left;letter-spacing:.04em}.input-error{border-color:#f8717180!important;background:#f871710d!important}.field-required{color:var(--accent);font-size:13px}.field-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.field-hint{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.qty-presets{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.qty-preset-btn{flex:1;padding:5px 0;font-size:var(--text-xs);font-weight:590;letter-spacing:.04em;border:1px solid var(--border);border-radius:var(--r-sm);background:#ffffff05;color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast)}.qty-preset-btn:hover{border-color:var(--accent);color:var(--accent)}.qty-preset-active{border-color:var(--accent)!important;background:var(--accent-glow)!important;color:var(--accent)!important}.trade-holding-badge{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--r-sm)}.trade-row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.trade-summary{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.trade-summary-row{display:flex;justify-content:space-between;font-size:var(--text-sm);letter-spacing:.01em;color:var(--text-secondary)}.trade-summary-total{font-weight:590;color:var(--text-primary);padding-top:var(--sp-2);border-top:1px solid var(--border)}.trade-success{display:flex;align-items:center;gap:6px;padding:var(--sp-2) var(--sp-3);background:var(--positive-bg);border:1px solid rgba(16,185,129,.2);border-radius:var(--r-sm);font-size:var(--text-sm);color:var(--positive)}.trade-submit-btn{width:100%;padding:var(--sp-3);border-radius:var(--r-sm);font-size:var(--text-sm);font-weight:590;letter-spacing:.02em;border:none;cursor:pointer;transition:opacity var(--t-fast),background var(--t-fast)}.trade-buy-btn{background:var(--positive);color:#fff}.trade-sell-btn{background:var(--negative);color:#fff}.trade-no-holding{text-align:center;font-size:var(--text-xs)}.watchlist-row{display:flex;align-items:center;min-height:56px;padding:10px var(--sp-5);border-bottom:1px solid var(--border-subtle);background:none;border-left:none;border-right:none;border-top:none;cursor:pointer;transition:background var(--t-fast);gap:var(--sp-3);text-align:left;width:100%}.watchlist-row:hover{background:#ffffff06}.watchlist-row:focus-visible{outline:2px solid rgba(94,106,210,.45);outline-offset:-2px}.watchlist-row-selected{background:#5e6ad20d;border-left:2px solid var(--accent)}.watchlist-left{flex:1;display:flex;align-items:center;gap:var(--sp-3)}.watchlist-symbol{font-size:var(--text-sm);font-weight:590;color:var(--text-primary);min-width:70px}.watchlist-actions{display:flex;align-items:center;gap:var(--sp-3);margin-left:auto;flex-shrink:0}.watchlist-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:74px}.watchlist-price{font-size:var(--text-sm);font-weight:590;color:var(--text-primary)}.watchlist-change{font-size:var(--text-xs);letter-spacing:.04em;min-width:60px;text-align:right}.watchlist-add-btn{flex-shrink:0}.watchlist-remove{opacity:0;transition:opacity var(--t-fast)}@media (max-width: 768px){.watchlist-remove{opacity:1}}.dash-watchlist-cta-panel{padding:var(--sp-4) var(--sp-5)}.dash-watchlist-cta{display:flex;align-items:center;gap:var(--sp-3)}.holding-symbol{font-weight:590;color:var(--text-primary)}.holding-name{font-size:var(--text-xs);letter-spacing:.04em;margin-top:1px;color:var(--text-tertiary)}.sl-target-display{font-size:var(--text-xs);letter-spacing:.04em}.edit-sl-target{display:flex;align-items:center;gap:var(--sp-1)}.input-sm{padding:4px 8px;font-size:var(--text-xs);width:70px}.btn-xs{padding:3px 8px;font-size:var(--text-xs);letter-spacing:.04em;min-height:26px}.row-actions{display:flex;align-items:center;justify-content:center;gap:var(--sp-2)}.sell-btn{color:var(--negative)!important;border-color:#f8717133!important}.filter-controls-row{display:flex;align-items:center;gap:8px;padding:6px 0 2px;flex-wrap:wrap}.filter-tabs{display:flex;gap:4px}.filter-tab{padding:4px 12px;border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:590;letter-spacing:.04em;color:var(--text-tertiary);background:none;border:1px solid transparent;cursor:pointer;transition:all var(--t-fast)}.filter-tab:hover{color:var(--text-secondary);background:#ffffff0a}.filter-tab-active{color:var(--text-primary);background:var(--surface-2);border-color:var(--border)}.txn-summary{border-top:1px solid var(--border-subtle)}.txn-summary td{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);background:var(--surface-2)}.txn-summary-label{font-size:var(--text-sm);letter-spacing:.01em}.txn-summary-pnl{border-top:1px solid var(--border-subtle)}.txn-summary-pnl-label{font-size:var(--text-sm);font-weight:510;color:var(--text-secondary)!important;background:var(--surface-2)!important}.txn-summary-pnl-value{font-size:var(--text-sm);font-weight:590}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);padding:var(--sp-4)}.pagination-info{font-size:var(--text-sm);letter-spacing:.01em}.analytics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.analytics-card{background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4)}.analytics-label{font-size:var(--text-xs);font-weight:590;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:4px}.analytics-value{font-size:var(--text-lg);font-weight:590;color:var(--text-primary);line-height:1.2}.analytics-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.analytics-stats-row{display:flex;gap:var(--sp-5);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:flex-start}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:var(--text-xs);font-weight:590;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.stat-value{font-size:var(--text-sm);font-weight:590;color:var(--text-primary)}.stat-sub{font-size:var(--text-xs);color:var(--text-tertiary)}.sector-alloc{flex:1;min-width:160px}.sector-bars{display:flex;flex-direction:column;gap:4px;margin-top:4px}.sector-row{display:flex;align-items:center;gap:8px}.sector-name{font-size:var(--text-xs);color:var(--text-tertiary);width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sector-bar-wrap{flex:1;height:6px;background:var(--surface-2);border-radius:3px;max-width:120px}.sector-bar{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.sector-pct{font-size:var(--text-xs);color:var(--text-tertiary);width:30px;text-align:right}.allstocks-layout{display:flex;gap:var(--sp-5);min-height:500px;align-items:start}.allstocks-sidebar{width:280px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow-y:auto;max-height:85vh;transition:width .2s ease}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.sidebar-header-actions{display:flex;align-items:center;gap:6px}.sidebar-title{font-size:var(--text-xs);font-weight:590;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.sidebar-reset{font-size:var(--text-xs);padding:4px 10px;color:var(--text-tertiary);letter-spacing:.04em}.sidebar-reset:hover{color:var(--text-primary)}.sidebar-close{font-size:var(--text-xs);padding:3px 8px;color:var(--text-tertiary)}.sidebar-section{padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.sidebar-label{font-size:var(--text-xs);font-weight:590;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--sp-3);padding-left:2px}.sidebar-chips{display:flex;flex-direction:column;gap:var(--sp-2)}.sidebar-chips-wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.filter-chip{min-height:36px;padding:0 12px;border-radius:var(--r-md);font-size:var(--text-sm);font-weight:510;color:var(--text-tertiary);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s;text-align:left;white-space:nowrap;display:flex;align-items:center;letter-spacing:.01em}.filter-chip:hover{color:var(--text-primary);background:#ffffff0a}.chip-active{color:var(--accent);background:var(--accent-glow);border-color:#5e6ad240}.chip-gainers.chip-active{color:var(--positive);background:var(--positive-bg);border-color:#10b98140}.chip-losers.chip-active{color:var(--negative);background:var(--negative-bg);border-color:#f8717140}.market-status-banner{display:flex;align-items:center;gap:8px;padding:6px 12px;margin-bottom:var(--sp-3);background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--text-secondary)}.market-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.market-status-label{font-weight:510}.market-status-next{margin-left:auto;color:var(--text-tertiary)}.allstocks-main{flex:1;min-width:0}.allstocks-controls{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.sidebar-toggle-btn{font-size:var(--text-sm);white-space:nowrap}.allstocks-filter-pills{display:flex;gap:var(--sp-2);flex-wrap:wrap;flex:1}.filter-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px 4px 12px;border-radius:var(--r-pill);font-size:var(--text-sm);font-weight:510;background:var(--accent-glow);border:1px solid rgba(94,106,210,.2);color:var(--accent)}.filter-pill button{background:none;border:none;color:inherit;cursor:pointer;padding:0;font-size:var(--text-sm);line-height:1;opacity:.7}.filter-pill-gainers{background:var(--positive-bg);border-color:#10b98133;color:var(--positive)}.filter-pill-losers{background:var(--negative-bg);border-color:#f8717133;color:var(--negative)}.allstocks-count{font-size:var(--text-xs);white-space:nowrap;margin-left:auto;color:var(--text-tertiary)}.allstocks-loading{display:flex;align-items:center;gap:var(--sp-3);padding:40px;color:var(--text-tertiary);font-size:var(--text-sm)}.allstocks-table{font-size:var(--text-sm)}.copy-symbol-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;opacity:0;transition:opacity .1s,background .1s,color .1s;flex-shrink:0}.table-row-clickable:hover .copy-symbol-btn{opacity:1}.copy-symbol-btn:hover{background:#ffffff14;color:var(--text-secondary)}.copy-symbol-btn.copied{color:var(--positive);opacity:1}.watchlist-star-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;border:none;background:transparent;cursor:pointer;opacity:0;transition:opacity .1s,background .1s;flex-shrink:0}.table-row-clickable:hover .watchlist-star-btn{opacity:1}.watchlist-star-btn:hover{background:#ffffff14}.watchlist-star-btn svg{display:block}.font-mono{font-family:Berkeley Mono,ui-monospace,SF Mono,Menlo,monospace}.badge-sm{font-size:var(--text-xs);padding:2px 7px}.range-pct{font-size:var(--text-xs);font-weight:590;margin-left:4px;opacity:.85}.dash-stock-profile-btn{white-space:nowrap;font-size:var(--text-xs);color:var(--accent)}.dash-stock-profile-btn:hover{color:var(--accent-hover)}.table-row-clickable:hover{background:#ffffff06}.dash-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);padding-bottom:0;margin-bottom:var(--sp-5);overflow-x:auto}.dash-tab{padding:8px 18px;border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:510;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;border-radius:var(--r-sm) var(--r-sm) 0 0}.dash-tab:hover{color:var(--text-primary);background:#ffffff08}.dash-tab-active{color:var(--text-primary);border-bottom-color:var(--accent)}.dash-tabs-spacer{flex:1}.dash-refresh-btn{align-self:center;font-size:var(--text-xs)}.allstocks-indices{display:flex;gap:4px}@media (max-width: 640px){.dash-main{padding:var(--sp-4)}.page-header{padding:var(--sp-4) var(--sp-4)}.topnav{padding:0 var(--sp-4)}.btn,.btn-icon,.filter-chip{min-height:40px;min-width:40px}}.market-overview-refresh-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:590;letter-spacing:.04em;color:var(--text-tertiary);border:1px solid var(--border);background:transparent;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast);min-height:unset}.market-overview-refresh-btn:hover{color:var(--text-primary);border-color:#ffffff24;background:#ffffff0a}.market-overview-refresh-label{display:inline}:root{--color-bg: #08090a;--color-panel: #0f1011;--color-surface-3: #191a1b;--color-surface-secondary: #28282c;--color-text-primary: #f7f8f8;--color-text-secondary: #d0d6e0;--color-text-tertiary: #8a8f98;--color-text-quaternary: #62666d;--color-brand: #5e6ad2;--color-brand-hover: #828fff;--color-accent-violet: #7170ff;--color-border: rgba(255, 255, 255, .08);--color-border-subtle: rgba(255, 255, 255, .05);--color-btn-ghost: rgba(255, 255, 255, .02);--color-btn-subtle: rgba(255, 255, 255, .04);--color-positive: #10b981;--color-negative: #f87171;--color-error-bg: rgba(248, 113, 113, .08);--color-error-border: rgba(248, 113, 113, .2);--color-error-text: #f87171;--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-weight-regular: 400;--font-weight-emphasis: 510;--font-weight-strong: 590;--text-display: 48px;--text-h1: 32px;--text-h2: 24px;--text-h3: 20px;--text-body: 16px;--text-small: 15px;--text-caption: 13px;--text-label: 12px;--ls-display: -1.056px;--ls-h1: -.704px;--ls-h2: -.288px;--ls-h3: -.24px;--ls-small: -.165px;--ls-caption: -.13px;--ls-label: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease}[data-theme=light]{--color-bg: #f4f5f7;--color-panel: #ffffff;--color-surface-3: #eaecf0;--color-surface-secondary: #d8dce5;--color-text-primary: #0f1011;--color-text-secondary: #3f4550;--color-text-tertiary: #62666d;--color-text-quaternary: #8a8f98;--color-brand: #5e6ad2;--color-brand-hover: #4f59c0;--color-border: rgba(0, 0, 0, .08);--color-border-subtle: rgba(0, 0, 0, .05);--color-btn-ghost: rgba(0, 0, 0, .04);--color-btn-subtle: rgba(0, 0, 0, .06);--color-positive: #10b981;--color-negative: #ef4444;--color-error-bg: rgba(239, 68, 68, .08);--color-error-border: rgba(239, 68, 68, .2);--color-error-text: #ef4444}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-family);font-weight:var(--font-weight-regular);font-feature-settings:"cv01","ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;min-height:100vh}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input{font-family:inherit}.text-display{font-size:var(--text-display);font-weight:var(--font-weight-emphasis);letter-spacing:var(--ls-display);line-height:1.1}.text-h1{font-size:var(--text-h1);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-h1);line-height:1.2}.text-h2{font-size:var(--text-h2);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-h2);line-height:1.25}.text-h3{font-size:var(--text-h3);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-h3);line-height:1.3}.text-body{font-size:var(--text-body);font-weight:var(--font-weight-regular);letter-spacing:0}.text-body-medium{font-size:var(--text-body);font-weight:var(--font-weight-emphasis);letter-spacing:0}.text-small{font-size:var(--text-small);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-small)}.text-caption{font-size:var(--text-caption);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-caption)}.text-label{font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);text-transform:uppercase}.text-tertiary{color:var(--color-text-tertiary)}.text-positive{color:var(--color-positive)}.text-negative{color:var(--color-negative)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--font-weight-emphasis);letter-spacing:var(--ls-small);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:var(--color-btn-ghost);border:1px solid var(--color-border);color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:#ffffff0a;color:var(--color-text-primary)}.btn-subtle{background:var(--color-btn-subtle);border:1px solid var(--color-border);color:var(--color-text-primary)}.btn-subtle:hover:not(:disabled){background:#ffffff0f}.btn-primary{background:var(--color-brand);border:1px solid transparent;color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;color:var(--color-text-tertiary);transition:background var(--transition-fast),color var(--transition-fast)}.btn-icon:hover:not(:disabled){background:var(--color-btn-subtle);color:var(--color-text-primary)}.input{width:100%;padding:10px var(--space-3);background:#ffffff05;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-small);letter-spacing:var(--ls-small);transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none}.input::placeholder{color:var(--color-text-quaternary)}.input:focus{border-color:#ffffff29;box-shadow:0 0 0 3px #5e6ad21a}.input:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);transition:background var(--transition-base)}.card:hover{background:#1e1f20}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-pill);font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label)}.badge-neutral{background:var(--color-surface-secondary);color:var(--color-text-tertiary)}.badge-subtle{background:var(--color-btn-subtle);color:var(--color-text-secondary);border:1px solid var(--color-border)}.error-message{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-caption);letter-spacing:var(--ls-caption)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:var(--space-6);padding-top:60px}.auth-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);background:var(--color-panel);border-bottom:1px solid var(--color-border-subtle)}.auth-header-brand{font-size:var(--text-small);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-small);color:var(--color-text-primary)}.auth-header-actions{display:flex;align-items:center;gap:var(--space-3)}.auth-card{width:100%;max-width:400px;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-8)}.auth-title{font-size:var(--text-h1);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-h1);color:var(--color-text-primary);margin-bottom:var(--space-2)}.auth-sub{font-size:var(--text-body);color:var(--color-text-tertiary);margin-bottom:var(--space-6)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-size:var(--text-caption);font-weight:var(--font-weight-emphasis);letter-spacing:var(--ls-caption);color:var(--color-text-secondary)}.input-password-wrap{position:relative}.input-password-wrap .input{padding-right:40px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);color:var(--color-text-quaternary)}.auth-submit{width:100%;padding:var(--space-3) var(--space-4);margin-top:var(--space-2);font-size:var(--text-small)}.auth-switch{margin-top:var(--space-6);text-align:center;font-size:var(--text-caption);color:var(--color-text-tertiary);letter-spacing:var(--ls-caption)}.auth-link{color:var(--color-brand);text-decoration:none;font-weight:var(--font-weight-emphasis)}.auth-link:hover{color:var(--color-brand-hover);text-decoration:underline}.strength-bar-wrap{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.strength-bar{flex:1;height:3px;background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden}.strength-fill{height:100%;border-radius:var(--radius-pill);transition:width .2s ease,background .2s ease}.strength-label{font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);min-width:44px}.dash-shell{min-height:100vh;background:var(--color-bg)}.dash-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:var(--text-small);color:var(--color-text-tertiary)}.header-brand{font-size:var(--text-small);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-small);color:var(--color-text-primary)}.header-user{display:flex;align-items:center;gap:var(--space-4)}.header-email{font-size:var(--text-caption);color:var(--color-text-tertiary);letter-spacing:var(--ls-caption)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-caption);letter-spacing:var(--ls-caption)}.dash-main{max-width:960px;margin:0 auto;padding:var(--space-8) var(--space-6)}.dash-welcome{margin-bottom:var(--space-8)}.welcome-name{font-size:var(--text-h2);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-h2);color:var(--color-text-primary);margin-bottom:var(--space-1)}.welcome-date{font-size:var(--text-small);color:var(--color-text-tertiary);letter-spacing:var(--ls-small)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-8)}@media (max-width: 640px){.stats-row{grid-template-columns:repeat(2,1fr)}}.stat-card{display:flex;flex-direction:column;gap:var(--space-1)}.stat-label{font-size:var(--text-caption);font-weight:var(--font-weight-emphasis);letter-spacing:var(--ls-caption);color:var(--color-text-tertiary)}.stat-value{font-size:28px;font-weight:var(--font-weight-strong);letter-spacing:-.02em;color:var(--color-text-primary);line-height:1.1}.stat-change{font-size:var(--text-small);letter-spacing:var(--ls-small);margin-top:var(--space-1)}.dash-section{margin-bottom:var(--space-8)}.section-title{font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);color:var(--color-text-tertiary);text-transform:uppercase;margin-bottom:var(--space-3)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead tr{background:var(--color-panel);border-bottom:1px solid var(--color-border)}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);color:var(--color-text-tertiary);text-transform:uppercase}.data-table td{padding:var(--space-3) var(--space-4);font-size:var(--text-small);letter-spacing:var(--ls-small);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-subtle)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--color-btn-ghost)}.table-symbol{font-weight:var(--font-weight-strong);color:var(--color-text-primary);margin-right:var(--space-3)}.table-name{color:var(--color-text-tertiary);margin-left:var(--space-1)}.table-price{color:var(--color-text-primary)!important;font-weight:var(--font-weight-emphasis)}.dash-main{max-width:1400px;margin:0 auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.dash-topbar{display:flex;align-items:flex-start;gap:var(--space-6);flex-wrap:wrap}.dash-welcome{flex:1;min-width:200px}.dash-welcome .welcome-name{font-size:var(--text-h2);font-weight:var(--font-weight-regular);letter-spacing:var(--ls-h2);color:var(--color-text-primary);margin-bottom:var(--space-1)}.dash-welcome .welcome-date{font-size:var(--text-small);letter-spacing:var(--ls-small)}.topbar-stats{display:flex;gap:var(--space-6)}.topbar-stat{display:flex;flex-direction:column;gap:2px}.topbar-stat-label{font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);text-transform:uppercase}.topbar-stat-value{font-size:var(--text-body);font-weight:var(--font-weight-strong);color:var(--color-text-primary);letter-spacing:var(--ls-small)}.topbar-actions{display:flex;align-items:center;gap:var(--space-3)}.dash-search-row{display:flex;align-items:center;gap:var(--space-4)}.dash-main-grid{display:grid;grid-template-columns:1fr 340px;gap:var(--space-4);align-items:start}@media (max-width: 900px){.dash-main-grid{grid-template-columns:1fr}.topbar-stats{gap:var(--space-4)}}.dash-chart-col{display:flex;flex-direction:column;gap:var(--space-4)}.dash-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);background:var(--color-panel);border-bottom:1px solid var(--color-border)}.header-brand{display:flex;align-items:center;gap:var(--space-4)}.brand-text{font-size:var(--text-small);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-small);color:var(--color-text-primary)}.market-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:.05em}.market-open{background:#10b9811f;color:var(--color-positive);border:1px solid rgba(16,185,129,.2)}.market-closed{background:#f8717114;color:var(--color-negative);border:1px solid rgba(248,113,113,.15)}.market-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.header-right{display:flex;align-items:center;gap:var(--space-4)}.header-balance{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.balance-label{font-size:var(--text-label);color:var(--color-text-tertiary);letter-spacing:var(--ls-label);text-transform:uppercase}.balance-value{font-size:var(--text-body);font-weight:var(--font-weight-strong);color:var(--color-text-primary);letter-spacing:var(--ls-small)}.search-bar-wrapper{position:relative;width:100%;max-width:480px}.search-input-wrap{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:var(--color-text-tertiary);pointer-events:none}.search-input{width:100%;padding:10px 36px;background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-small);letter-spacing:var(--ls-small);outline:none;transition:border-color var(--transition-base)}.search-input::placeholder{color:var(--color-text-quaternary)}.search-input:focus{border-color:#ffffff29;box-shadow:0 0 0 3px #5e6ad21a}.search-spinner{position:absolute;right:12px;width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-brand);border-radius:50%;animation:spin .6s linear infinite}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 24px #0006;z-index:200;max-height:320px;overflow-y:auto}.search-result-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);text-align:left;background:none;border:none;border-bottom:1px solid var(--color-border-subtle);cursor:pointer;transition:background var(--transition-fast)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--color-btn-ghost)}.search-result-symbol{font-size:var(--text-small);font-weight:var(--font-weight-strong);color:var(--color-text-primary);min-width:80px}.search-result-name{font-size:var(--text-small);color:var(--color-text-tertiary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-exchange{font-size:var(--text-label)!important}.search-selected-badge{font-size:var(--text-small);color:var(--color-text-tertiary);padding:4px 12px;background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-pill)}.market-clock{display:flex;align-items:center;gap:var(--space-3)}.clock-circle{flex-shrink:0}.clock-ring{display:block}.clock-text{font-size:7px;font-weight:var(--font-weight-strong);font-family:Inter,sans-serif;letter-spacing:.05em}.clock-open-text{fill:var(--color-positive)}.clock-closed-text{fill:var(--color-negative)}.clock-info{display:flex;flex-direction:column;gap:1px}.clock-status{font-size:var(--text-small);font-weight:var(--font-weight-emphasis);letter-spacing:var(--ls-small)}.clock-time-left{font-size:var(--text-label);letter-spacing:var(--ls-label)}.panel{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.panel-title{font-size:var(--text-small);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-small);color:var(--color-text-primary)}.panel-header-actions{display:flex;align-items:center;gap:var(--space-3)}.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);color:var(--color-text-tertiary);font-size:var(--text-small);text-align:center}.panel-empty-hint{font-size:var(--text-label);font-weight:var(--font-weight-emphasis);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-2) var(--space-4);width:100%;border-bottom:1px solid var(--color-border-subtle)}.watchlist-suggested{padding-bottom:var(--space-2)}.panel-loading-dot{width:6px;height:6px;background:var(--color-brand);border-radius:50%;animation:pulse 1s ease-in-out infinite}.chart-panel{overflow:visible}.chart-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:var(--space-3)}.chart-symbol-info{display:flex;align-items:baseline;gap:var(--space-3)}.chart-symbol{font-size:var(--text-h3);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-h3);color:var(--color-text-primary)}.chart-name{font-size:var(--text-small)}.chart-ranges{display:flex;gap:var(--space-1)}.range-btn{padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);color:var(--color-text-tertiary);background:none;border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.range-btn:hover{color:var(--color-text-primary);background:var(--color-btn-ghost)}.range-btn-active{color:var(--color-brand);background:#5e6ad21a;border-color:#5e6ad233}.chart-container-wrap{position:relative;padding:var(--space-3) 0 0}.chart-container{width:100%;height:320px}.chart-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#08090a99;z-index:10;pointer-events:none}.chart-skeleton{width:80%;height:60%;background:linear-gradient(90deg,var(--color-surface-3) 25%,var(--color-surface-secondary) 50%,var(--color-surface-3) 75%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.5s infinite}.chart-error{font-size:var(--text-small)}.watchlist{display:flex;flex-direction:column}.watchlist-row{display:flex;align-items:center;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-subtle);background:none;border-left:none;border-right:none;border-top:none;cursor:pointer;transition:background var(--transition-fast);gap:var(--space-3);text-align:left;width:100%}.watchlist-row:last-child{border-bottom:none}.watchlist-row:hover{background:var(--color-btn-ghost)}.watchlist-row-selected{background:#5e6ad20f;border-left:2px solid var(--color-brand)}.watchlist-left{flex:1;display:flex;align-items:center;gap:var(--space-2)}.watchlist-symbol{font-size:var(--text-small);font-weight:var(--font-weight-strong);color:var(--color-text-primary);min-width:70px}.watchlist-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.watchlist-price{font-size:var(--text-small);font-weight:var(--font-weight-emphasis);color:var(--color-text-primary)}.watchlist-change{font-size:var(--text-label);letter-spacing:var(--ls-label)}.watchlist-remove{opacity:0;transition:opacity var(--transition-fast)}.watchlist-row:hover .watchlist-remove{opacity:1}.trade-panel{position:sticky;top:calc(64px + var(--space-4))}.trade-quote{display:flex;align-items:baseline;gap:var(--space-2)}.trade-price{font-size:var(--text-body);font-weight:var(--font-weight-strong);color:var(--color-text-primary)}.trade-tabs{display:flex;border-bottom:1px solid var(--color-border)}.trade-tab{flex:1;padding:var(--space-3);text-align:center;font-size:var(--text-small);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-small);color:var(--color-text-tertiary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.trade-tab:hover{color:var(--color-text-secondary)}.trade-tab-buy-active{color:var(--color-positive);border-bottom-color:var(--color-positive)}.trade-tab-sell-active{color:var(--color-negative);border-bottom-color:var(--color-negative)}.trade-closed-notice{padding:var(--space-2) var(--space-4);background:#5e6ad214;border-bottom:1px solid rgba(94,106,210,.15);font-size:var(--text-label);color:var(--color-brand);letter-spacing:var(--ls-label);text-align:center}.trade-form{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.trade-order-types{display:flex;gap:var(--space-2)}.order-type-btn{flex:1;padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);color:var(--color-text-tertiary);background:var(--color-btn-ghost);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.order-type-btn:hover{color:var(--color-text-primary)}.order-type-active{color:var(--color-brand);background:#5e6ad21a;border-color:#5e6ad233}.qty-max-btn{font-size:var(--text-label);color:var(--color-brand);background:none;border:none;cursor:pointer;padding:2px 0;text-align:left;letter-spacing:var(--ls-label)}.qty-max-btn:hover{text-decoration:underline}.trade-row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.trade-summary{background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.trade-summary-row{display:flex;justify-content:space-between;font-size:var(--text-small);letter-spacing:var(--ls-small);color:var(--color-text-secondary)}.trade-summary-total{font-weight:var(--font-weight-strong);color:var(--color-text-primary);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.trade-success{padding:var(--space-2) var(--space-3);background:#10b98114;border:1px solid rgba(16,185,129,.2);border-radius:var(--radius-sm);font-size:var(--text-small);color:var(--color-positive)}.trade-submit-btn{width:100%;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-small);border:none;cursor:pointer;transition:opacity var(--transition-fast),background var(--transition-fast)}.trade-submit-btn:disabled{opacity:.5;cursor:not-allowed}.trade-buy-btn{background:var(--color-positive);color:#fff}.trade-buy-btn:hover:not(:disabled){background:#0ea572}.trade-sell-btn{background:var(--color-negative);color:#fff}.trade-sell-btn:hover:not(:disabled){background:#f65f5f}.trade-no-holding{text-align:center;font-size:var(--text-label)}.holding-symbol{font-weight:var(--font-weight-strong);color:var(--color-text-primary)}.holding-name{font-size:var(--text-label);letter-spacing:var(--ls-label);margin-top:1px}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:hover{color:var(--color-text-secondary)}.th-right{text-align:right}.th-center{text-align:center}.td-right{text-align:right;font-size:var(--text-small);letter-spacing:var(--ls-small)}.td-center{text-align:center}.sl-target-display{font-size:var(--text-label);letter-spacing:var(--ls-label)}.edit-sl-target{display:flex;align-items:center;gap:var(--space-1)}.input-sm{padding:4px 8px;font-size:var(--text-label);width:70px}.btn-xs{padding:3px 8px;font-size:var(--text-label);letter-spacing:var(--ls-label)}.row-actions{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.sell-btn{color:var(--color-negative)!important;border-color:#f8717133!important}.sell-btn:hover:not(:disabled){background:#f8717114!important}.badge-buy{background:#5e6ad226;color:var(--color-brand);border:1px solid rgba(94,106,210,.2)}.badge-sell{background:#10b9811a;color:var(--color-positive);border:1px solid rgba(16,185,129,.2)}.filter-tabs{display:flex;gap:2px}.filter-tab{padding:3px 10px;border-radius:var(--radius-sm);font-size:var(--text-label);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-label);color:var(--color-text-tertiary);background:none;border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.filter-tab:hover{color:var(--color-text-secondary);background:var(--color-btn-ghost)}.filter-tab-active{color:var(--color-text-primary);background:var(--color-surface-3);border-color:var(--color-border)}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4)}.pagination-info{font-size:var(--text-small);letter-spacing:var(--ls-small)}.loading-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-brand);border-radius:50%;animation:spin .6s linear infinite}.loading-dash{color:var(--color-text-quaternary)}.dash-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--space-4);font-size:var(--text-small);color:var(--color-text-tertiary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);max-width:400px;width:90%;display:flex;flex-direction:column;gap:var(--space-5)}.modal-title{font-size:var(--text-h3);font-weight:var(--font-weight-strong);letter-spacing:var(--ls-h3);color:var(--color-text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.btn-danger{background:var(--color-negative);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--font-weight-emphasis);letter-spacing:var(--ls-small);border:none;cursor:pointer;transition:background var(--transition-fast)}.btn-danger:hover{background:#f65f5f}.field-optional{font-weight:var(--font-weight-regular);color:var(--color-text-quaternary);font-size:var(--text-label)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dash-tabs{display:flex;gap:4px;padding:12px 0 0;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:16px;overflow-x:auto}.dash-tab{padding:8px 16px;border:none;background:transparent;color:var(--color-text-secondary, #8a8f98);font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;border-radius:6px 6px 0 0}.dash-tab:hover{color:var(--color-text-primary, #e5e7eb);background:#ffffff0a}.dash-tab-active{color:var(--color-accent, #6366f1);border-bottom-color:var(--color-accent, #6366f1)}.allstocks-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.allstocks-indices,.allstocks-filters{display:flex;gap:4px}.stock-detail-shell{max-width:1200px;margin:0 auto;padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.stock-detail-back{align-self:flex-start;margin-bottom:var(--space-2)}.stock-detail-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4)}.stock-detail-identity{display:flex;align-items:center;gap:var(--space-4)}.stock-logo{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-3);object-fit:contain;padding:4px}.stock-detail-name{font-size:var(--text-h2);font-weight:var(--font-weight-strong);color:var(--color-text-primary);letter-spacing:var(--ls-h2)}.stock-detail-meta{display:flex;align-items:center;gap:var(--space-2);margin-top:4px;flex-wrap:wrap}.stock-price-display{display:flex;align-items:baseline;gap:var(--space-3)}.stock-price-value{font-size:var(--text-display);font-weight:var(--font-weight-strong);color:var(--color-text-primary);letter-spacing:var(--ls-display)}.stock-price-change{font-size:var(--text-body);font-weight:var(--font-weight-emphasis)}.stock-price-loading{display:flex;align-items:center}.stock-quick-stats{display:flex;gap:var(--space-6);flex-wrap:wrap;padding:var(--space-4) var(--space-5);background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md)}.stock-quick-stat{display:flex;flex-direction:column;gap:2px}.stock-quick-stat-label{font-size:var(--text-label);font-weight:var(--font-weight-strong);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--color-text-tertiary)}.stock-quick-stat-value{font-size:var(--text-small);font-weight:var(--font-weight-emphasis);color:var(--color-text-primary)}.stock-detail-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);padding-bottom:0}.stock-overview-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:var(--space-4)}.stock-overview-card{grid-column:1}.stock-stats-card{grid-column:2}.stock-mini-chart-card{grid-column:1 / -1}.stock-description{font-size:var(--text-small);color:var(--color-text-secondary);line-height:1.6}.stock-meta-chips{display:flex;gap:var(--space-2);flex-wrap:wrap}.stock-stats-grid{display:flex;flex-direction:column;gap:var(--space-3)}.stock-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-subtle)}.stock-stat-row:last-child{border-bottom:none}.stock-stat-label{font-size:var(--text-small);color:var(--color-text-tertiary)}.stock-stat-value{font-size:var(--text-small);font-weight:var(--font-weight-emphasis);color:var(--color-text-primary)}.stock-chart-tab,.stock-trade-tab{max-width:900px}@media (max-width: 768px){.stock-overview-grid{grid-template-columns:1fr}.stock-overview-card,.stock-stats-card,.stock-mini-chart-card{grid-column:1}.stock-price-value{font-size:var(--text-h1)}}.dash-stock-profile-btn{white-space:nowrap;font-size:12px;color:var(--color-brand)}.dash-stock-profile-btn:hover{color:var(--color-brand-hover)}.dash-watchlist-cta-panel{padding:var(--space-4) var(--space-5)}.dash-watchlist-cta{display:flex;align-items:center;gap:var(--space-3)}@media (max-width: 640px){.stock-detail-shell{padding:var(--space-4)}.stock-detail-header{flex-direction:column;align-items:flex-start}.stock-price-display{flex-direction:column;gap:var(--space-1)}.stock-quick-stats{gap:var(--space-4)}}.table-row-clickable{cursor:pointer;transition:background .1s}.table-row-clickable:hover{background:#ffffff0a}.allstocks-layout{display:flex;gap:0;min-height:500px}.allstocks-sidebar{width:220px;flex-shrink:0;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-y:auto;max-height:80vh;transition:width .2s ease}.sidebar-closed{width:0;border:none;overflow:hidden}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;border-bottom:1px solid var(--color-border-subtle)}.sidebar-title{font-size:12px;font-weight:590;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-tertiary)}.sidebar-close{font-size:10px;padding:2px 6px;color:var(--color-text-quaternary)}.sidebar-section{padding:10px 14px;border-bottom:1px solid var(--color-border-subtle)}.sidebar-section:last-child{border-bottom:none}.sidebar-label{font-size:11px;font-weight:590;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-quaternary);margin-bottom:8px}.sidebar-chips{display:flex;flex-direction:column;gap:3px}.sidebar-chips-wrap{flex-direction:row;flex-wrap:wrap}.filter-chip{padding:3px 10px 3px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:510;color:var(--color-text-tertiary);background:transparent;border:1px solid var(--color-border-subtle);cursor:pointer;transition:all .1s;text-align:left;white-space:nowrap}.filter-chip:hover{color:var(--color-text-primary);background:#ffffff0a}.chip-active{color:var(--color-brand, #5e6ad2);background:#5e6ad214;border-color:#5e6ad240}.chip-gainers.chip-active{color:var(--color-positive, #10b981);background:#10b98114;border-color:#10b98140}.chip-losers.chip-active{color:var(--color-negative, #f87171);background:#f8717114;border-color:#f8717140}.allstocks-main{flex:1;min-width:0;padding-left:12px}.allstocks-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.sidebar-toggle-btn{font-size:11px;white-space:nowrap}.allstocks-filter-pills{display:flex;gap:6px;flex-wrap:wrap;flex:1}.filter-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:510;background:#5e6ad21a;border:1px solid rgba(94,106,210,.2);color:var(--color-brand, #5e6ad2)}.filter-pill button{background:none;border:none;color:inherit;cursor:pointer;padding:0;font-size:10px;line-height:1;opacity:.7}.filter-pill-gainers{background:#10b9811a;border-color:#10b98133;color:var(--color-positive, #10b981)}.filter-pill-losers{background:#f871711a;border-color:#f8717133;color:var(--color-negative, #f87171)}.allstocks-count{font-size:12px;white-space:nowrap;margin-left:auto}.allstocks-loading{display:flex;align-items:center;gap:12px;padding:40px;color:var(--color-text-tertiary);font-size:13px}.allstocks-table{font-size:13px}.symbol-cell{display:flex;align-items:center;gap:6px}.font-mono{font-family:Berkeley Mono,ui-monospace,SF Mono,Menlo,monospace}.badge-sm{font-size:9px;padding:1px 5px}.allstocks-table td:last-child{padding-right:8px}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable:hover{color:var(--color-text-primary)}@media (max-width: 768px){.allstocks-layout{flex-direction:column}.allstocks-sidebar{width:100%;max-height:none}.sidebar-closed{height:0}.allstocks-main{padding-left:0}}.range-btn-active{color:var(--color-brand, #5e6ad2)!important;background:#5e6ad21a!important;border-color:#5e6ad233!important}
