*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #121212;--bg-secondary: #1e1e1e;--bg-tertiary: #252525;--bg-hover: #2a2a2a;--text-primary: #e0e0e0;--text-secondary: #888;--text-muted: #666;--border-color: #3a3a3a;--accent-color: #0ea5e9;--success-color: #22c55e;--error-color: #ef4444;--warning-color: #f59e0b;--fg-extreme-fear: #ef4444;--fg-fear: #f97316;--fg-neutral: #f59e0b;--fg-greed: #84cc16;--fg-extreme-greed: #22c55e;--chart-ma20: #60a5fa;--chart-ma50: #c084fc;--chart-vwap: #22d3ee}[data-theme=light]{--bg-primary: #f5f5f5;--bg-secondary: #ffffff;--bg-tertiary: #e8e8e8;--bg-hover: #d4d4d4;--text-primary: #1a1a1a;--text-secondary: #555;--text-muted: #777;--border-color: #d4d4d4;--accent-color: #0284c7;--success-color: #16a34a;--error-color: #dc2626;--warning-color: #d97706;--fg-extreme-fear: #dc2626;--fg-fear: #ea580c;--fg-neutral: #d97706;--fg-greed: #65a30d;--fg-extreme-greed: #16a34a;--chart-ma20: #2563eb;--chart-ma50: #9333ea;--chart-vwap: #0891b2}html{background:var(--bg-primary);min-height:100%;min-height:100dvh;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;min-height:100dvh;width:100%;overflow-x:hidden;transition:background .3s,color .3s}.container{max-width:100%;margin:0 auto;padding:4px 48px 40px 16px;margin-left:calc(56px + env(safe-area-inset-left,0px));position:relative}.sticky-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--bg-primary);margin-bottom:24px;padding:16px 0;transition:box-shadow .3s ease,border-color .3s ease;isolation:isolate}.sticky-header.scrolled{z-index:100;padding:10px 0;box-shadow:0 2px 12px #0000004d;border-bottom:1px solid var(--border-color)}@media (min-width: 1025px){.sticky-header.scrolled{margin-left:-16px;margin-right:-48px;padding-left:16px;padding-right:48px}}.sticky-header-content{display:flex;justify-content:space-between;align-items:center;gap:20px}.sticky-header-brand{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.sticky-header-brand .sticky-header-title{text-align:left}.sticky-header-title{margin:0;color:var(--accent-color);font-size:24px;white-space:nowrap;transition:font-size .3s ease}.sticky-header-tagline{font-size:11px;color:var(--text-secondary);letter-spacing:.3px;white-space:nowrap;transition:opacity .3s ease,font-size .3s ease}.sticky-header.scrolled .sticky-header-tagline{font-size:10px;opacity:.7}.sticky-header.scrolled .sticky-header-title{font-size:20px}.sticky-header-title .think-text{color:#fff}[data-theme=light] .sticky-header-title .think-text{color:#000}.sticky-header-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.index-badge{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--bg-tertiary);border:1px solid var(--border-color);flex-shrink:0}.index-badge .index-label{color:var(--text-secondary);font-weight:500}.index-badge .index-price{color:var(--text-primary);font-weight:600}.index-badge .index-change{display:flex;align-items:center;gap:2px;font-size:11px}.index-badge.positive .index-change{color:var(--success-color)}.index-badge.negative .index-change{color:var(--error-color)}.index-badge.vix-badge.high{background:#ef444426;border-color:var(--error-color)}.index-badge.vix-badge.low{background:#22c55e26;border-color:var(--success-color)}.compact-futures{display:none}.compact-futures-card{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;transition:transform .2s}.compact-futures-card:hover{transform:scale(1.02)}.compact-futures-card.positive{background:var(--success-color);color:#fff}.compact-futures-card.negative{background:var(--error-color);color:#fff}.compact-futures-card.error{background:var(--bg-tertiary);color:var(--text-secondary);opacity:.7}.compact-futures-name{font-weight:500;opacity:.9}.compact-futures-change{display:flex;align-items:center;gap:3px;font-weight:700}.compact-futures-points{transition:opacity .15s ease}.compact-futures-percent{display:none;transition:opacity .15s ease}.compact-futures-card:hover .compact-futures-points{display:none}.compact-futures-card:hover .compact-futures-percent{display:inline}.sticky-header-market-wrapper{transition:all .2s ease}.sticky-header-market{margin-top:16px;padding:16px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color);transition:all .2s ease}.sticky-header.scrolled .sticky-header-market{margin-top:10px;padding:10px}.futures-cards.futures-cards-full{display:flex}.futures-cards.futures-cards-compact,.sticky-header.scrolled .futures-cards.futures-cards-full{display:none}.sticky-header.scrolled .futures-cards.futures-cards-compact{display:flex;flex-wrap:wrap;gap:8px}.futures-cards.futures-cards-compact .compact-futures-card{flex:1 1 auto;min-width:0;justify-content:center}.sticky-header.scrolled .sticky-header-market .futures-title{display:none}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.header-brand{display:flex;flex-direction:column;gap:2px}.header h1{margin:0;color:var(--accent-color)}.header-tagline{font-size:11px;color:var(--text-secondary);letter-spacing:.3px}.header h1 .think-text{color:#fff}[data-theme=light] .header h1 .think-text{color:#000}.header-controls{display:flex;align-items:center;gap:12px}.market-status{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;border-radius:20px;font-size:12px;font-weight:500;background:var(--bg-secondary);border:1px solid var(--border-color)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.market-status.open .status-dot{background:var(--success-color);box-shadow:0 0 6px var(--success-color)}.market-status.premarket .status-dot,.market-status.afterhours .status-dot{background:var(--warning-color)}.market-status.closed .status-dot{background:var(--error-color)}.status-label-short{display:none}.theme-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all .2s}.theme-toggle:hover{border-color:var(--accent-color)}h1{text-align:center;margin-bottom:30px;color:var(--accent-color)}.add-form{display:flex;gap:10px;margin-bottom:20px}.search-container{flex:1;position:relative}.search-container input{width:100%;padding:12px 16px;font-size:16px;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .2s}.search-container input:focus{border-color:var(--accent-color)}.search-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:4px;max-height:250px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #0000004d}.search-result{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .2s}.search-result:last-child{border-bottom:none}.search-result:hover{background:var(--bg-hover)}.result-symbol{font-weight:600;color:var(--accent-color)}.result-name{font-size:13px;color:var(--text-secondary);text-align:right;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-form button{padding:10px 18px;font-size:14px;font-weight:500;border:none;border-radius:8px;background:var(--accent-color);color:#f5f5f5;cursor:pointer;transition:background .2s,transform .1s}.add-form button:hover:not(:disabled){filter:brightness(1.1)}.add-form button:active:not(:disabled){transform:scale(.98)}.add-form button:disabled{background:var(--text-muted);cursor:not-allowed}.controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:nowrap}.interval-selector{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:14px}.control-buttons{display:flex;gap:8px;align-items:center}.view-toggle{display:flex;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.view-toggle-btn{display:flex;align-items:center;justify-content:center;padding:8px 10px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .2s}.view-toggle-btn:not(:last-child){border-right:1px solid var(--border-color)}.view-toggle-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.view-toggle-btn.active{background:var(--accent-color);color:#fff}.interval-btn{padding:6px 10px;font-size:12px;font-weight:600;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.interval-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.interval-btn.active{background:var(--accent-color);color:#f5f5f5;border-color:var(--accent-color)}.interval-btn:disabled{opacity:.5;cursor:not-allowed}.play-pause-btn{padding:6px 10px;font-size:12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s;margin-left:4px}.play-pause-btn:hover{border-color:var(--text-secondary);color:#e0e0e0}.play-pause-btn.paused{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.refresh-btn{display:flex;align-items:center;justify-content:center;padding:8px;border:none;border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:background .2s}.export-btn{padding:8px 16px;font-size:13px;font-weight:600;border:none;border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:background .2s}.refresh-btn:hover:not(:disabled),.export-btn:hover:not(:disabled){background:var(--bg-hover)}.refresh-btn:disabled,.export-btn:disabled{color:var(--text-muted);cursor:not-allowed}.export-btn{background:var(--bg-tertiary);color:var(--text-primary)}.export-btn:hover:not(:disabled){background:var(--bg-hover)}.futures-section{position:relative;z-index:1;margin-bottom:24px;padding:16px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color)}.futures-title{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.futures-cards{display:flex;flex-wrap:nowrap;gap:12px}.futures-card{flex:1 1 0;min-width:0}.futures-card{padding:16px;border-radius:8px;background:var(--error-color);color:#fff;transition:transform .2s,box-shadow .2s}.futures-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.futures-card.positive{background:var(--success-color)}.futures-card.negative{background:var(--error-color)}.futures-card.error{background:var(--bg-tertiary);opacity:.7}.futures-price-error{color:var(--text-secondary);font-size:20px}.futures-name{display:block;font-size:12px;font-weight:600;opacity:.9;margin-bottom:4px}.futures-price{display:block;font-size:24px;font-weight:700;margin-bottom:8px}.futures-change{display:flex;align-items:center;gap:8px;font-size:14px}.futures-arrow{font-size:12px}.futures-change-value,.futures-change-percent{font-weight:500}.futures-loading,.futures-error,.futures-empty{text-align:center;color:var(--text-muted);font-size:14px;padding:20px}.futures-error{color:var(--error-color)}.upcoming-events-section{flex:1;min-width:280px;max-width:400px;padding:16px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color)}.upcoming-events-title{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.upcoming-events-grid{display:flex;flex-direction:column;gap:10px}.upcoming-event-card{padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;border-left:3px solid var(--text-muted);transition:transform .2s,box-shadow .2s}.upcoming-event-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.upcoming-event-card.high{border-left-color:var(--error-color)}.upcoming-event-card.medium{border-left-color:var(--warning-color)}.upcoming-event-card.low{border-left-color:var(--text-muted)}.upcoming-event-date{display:flex;gap:8px;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.upcoming-event-day{font-weight:600}.upcoming-event-time{opacity:.8}.upcoming-event-name{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:8px;line-height:1.3}.upcoming-event-impact{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--bg-tertiary);color:var(--text-secondary)}.upcoming-event-impact.high{background:#ef444433;color:var(--error-color)}.upcoming-event-impact.medium{background:#f59e0b33;color:var(--warning-color)}.upcoming-events-loading{color:var(--text-muted);font-size:14px}.calendar-toggle{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s}.calendar-toggle:hover{background:var(--bg-secondary);border-color:var(--accent-color)}.calendar-icon{font-size:16px}.calendar-toggle-label{font-weight:500}.calendar-panel{position:fixed;top:0;right:-380px;width:360px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border-color);box-shadow:-4px 0 20px #0000004d;z-index:1000;transition:right .3s ease;display:flex;flex-direction:column}.calendar-panel.open{right:0}.calendar-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.calendar-panel-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.calendar-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0;line-height:1;transition:color .2s}.calendar-close:hover{color:var(--text-primary)}.calendar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:999}.calendar-tabs{display:flex;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.calendar-tab{flex:1;padding:12px 16px;font-size:13px;font-weight:600;text-align:center;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.calendar-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.calendar-tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color)}.calendar-panel-content{flex:1;overflow-y:auto;padding:16px}.calendar-updated{font-size:11px;color:var(--text-muted);text-align:center;margin-bottom:12px}.calendar-events{display:flex;flex-direction:column;gap:8px}.economic-event{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:8px;border-left:3px solid var(--text-muted);transition:transform .2s,box-shadow .2s}.economic-event:hover{transform:translate(2px);box-shadow:0 2px 8px #0003}.economic-event.high{border-left-color:var(--error-color)}.economic-event.medium{border-left-color:var(--warning-color)}.economic-event.low{border-left-color:var(--text-muted)}.economic-event.past{opacity:.6}.event-time{display:flex;flex-direction:column;align-items:center;min-width:80px}.event-date{font-size:11px;font-weight:600;color:var(--text-secondary)}.event-hour{font-size:13px;font-weight:500;color:var(--text-primary)}.event-details{flex:1;min-width:0}.event-name{display:block;font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-values{display:flex;gap:12px;margin-top:4px}.event-actual,.event-forecast,.event-previous{font-size:11px;color:var(--text-secondary)}.event-actual strong{color:var(--accent-color)}.impact-badge{padding:3px 8px;font-size:10px;font-weight:700;border-radius:4px;text-transform:uppercase;flex-shrink:0}.impact-badge.high{background:var(--error-color);color:#fff}.impact-badge.medium{background:var(--warning-color);color:#000}.impact-badge.low{background:var(--text-muted);color:var(--bg-primary)}.earnings-event{border-left-color:var(--accent-color)}.earnings-event.today{border-left-color:var(--warning-color);background:#f59e0b1a}.earnings-ticker{font-size:16px;font-weight:700;color:var(--accent-color)}.earnings-company{display:block;font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.earnings-badge{background:var(--accent-color);color:#fff}.calendar-loading,.calendar-error,.calendar-empty{text-align:center;color:var(--text-muted);font-size:14px;padding:20px}.calendar-error{color:var(--error-color)}.summary-events-row{display:flex;gap:20px;margin-bottom:20px;align-items:flex-start}.portfolio-totals{flex:1;min-width:0;padding:16px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color)}.portfolio-totals-header{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.portfolio-totals-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.totals-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.totals-card.totals-combined{background:var(--bg-hover);border-color:var(--accent-color)}.totals-label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.totals-value{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:20px;font-weight:700}.totals-value.positive{color:var(--success-color)}.totals-value.negative{color:var(--error-color)}.totals-percent{font-size:14px;font-weight:500;opacity:.85}.totals-daily{font-size:13px;font-weight:500;margin-top:4px}.totals-daily.positive{color:var(--success-color)}.totals-daily.negative{color:var(--error-color)}.empty-message{text-align:center;color:var(--text-muted);padding:40px}.stock-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px}.stock-list.collapsed-view{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.stock-table-container{overflow-x:auto;overflow-y:visible;position:relative;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color)}.stock-table{width:100%;min-width:800px;border-collapse:separate;border-spacing:0;font-size:14px}.stock-table thead{background:var(--bg-tertiary)}.stock-table th{padding:12px 16px;text-align:left;font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);white-space:nowrap}.stock-table td{padding:12px 16px;border-bottom:1px solid var(--border-color);color:var(--text-primary);white-space:nowrap}.stock-table tbody tr:last-child td{border-bottom:none}.stock-table tbody tr{transition:background .15s}.stock-table tbody tr:hover,.stock-table tbody tr:hover td.drag-cell,.stock-table tbody tr:hover td.ticker-cell,.stock-table tbody tr:hover td.action-cell{background:var(--bg-tertiary)}.stock-table tbody tr.dragging{opacity:.5;background:var(--bg-tertiary)}.stock-table th.drag-cell,.stock-table td.drag-cell{width:32px;padding-left:12px;padding-right:4px;position:sticky;left:0;z-index:2;background:var(--bg-secondary)}.stock-table th.drag-cell{background:var(--bg-tertiary);z-index:3}.stock-table .drag-handle{cursor:grab;color:var(--text-muted);display:flex;align-items:center}.stock-table .drag-handle:active{cursor:grabbing}.stock-table th.ticker-cell,.stock-table td.ticker-cell{position:sticky;left:40px;z-index:2;background:var(--bg-secondary);border-right:1px solid var(--border-color)}.stock-table th.ticker-cell{background:var(--bg-tertiary);z-index:3}.stock-table td.ticker-cell:after{content:"";position:absolute;top:0;right:0;bottom:0;width:4px;background:linear-gradient(to right,rgba(0,0,0,.08),transparent);pointer-events:none}.stock-table .ticker-cell .ticker{font-weight:700;color:var(--text-primary);font-size:15px}.stock-table th.action-cell,.stock-table td.action-cell{position:sticky;right:0;z-index:2;background:var(--bg-secondary)}.stock-table th.action-cell{background:var(--bg-tertiary);z-index:3}.stock-table td.action-cell:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:linear-gradient(to left,rgba(0,0,0,.08),transparent);pointer-events:none}.stock-table .price-cell{font-weight:600;font-size:15px}.stock-table .price-cell .loading{color:var(--text-muted)}.stock-table .price-cell .error{color:var(--error-color);font-size:12px}.stock-table .change-cell{font-weight:500}.stock-table .chart-cell{width:140px;min-width:140px;padding-top:4px;padding-bottom:4px}.stock-table .chart-cell .price-chart-container.price-chart-minimal{width:140px}.stock-table .change-cell.positive{color:var(--success-color)}.stock-table .change-cell.negative{color:var(--error-color)}.stock-table .volume-cell,.stock-table .mcap-cell,.stock-table .pe-cell,.stock-table .range-cell{color:var(--text-secondary)}.stock-table .rsi-cell{font-weight:500}.stock-table .rsi-cell.overbought{color:var(--error-color)}.stock-table .rsi-cell.oversold{color:var(--success-color)}.stock-table .macd-cell{font-weight:500;text-align:center}.stock-table .macd-cell.bullish{color:var(--positive-color)}.stock-table .macd-cell.bullish_weakening{color:#a3be8c}.stock-table .macd-cell.bearish{color:var(--negative-color)}.stock-table .macd-cell.bearish_weakening{color:#d08770}.stock-table .macd-cell.neutral{color:var(--text-muted)}.stock-table .action-cell{width:48px;text-align:center}.remove-btn-table{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.remove-btn-table:hover{color:var(--error-color);background:var(--bg-tertiary)}@media (max-width: 1024px){.stock-table th,.stock-table td{padding:10px 12px}}@media (max-width: 768px){.stock-table{font-size:13px}.stock-table th,.stock-table td{padding:8px}}@media (max-width: 540px){.stock-table{font-size:12px}.stock-table th,.stock-table td{padding:8px 6px}.stock-table .drag-cell{display:none}.stock-table th.ticker-cell,.stock-table td.ticker-cell{left:0}.stock-table .ticker-cell .ticker,.stock-table th.ticker-cell,.stock-table .price-cell{font-size:13px}.stock-table .change-cell{font-size:11px}}.stock-card{display:flex;flex-direction:column;padding:16px 20px;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color);transition:all .2s;position:relative}.stock-card.dragging{opacity:.5;border:2px dashed var(--accent-color)}.stock-card.collapsed{padding:14px 16px}.stock-card.collapsed .stock-main{padding-right:32px}.stock-card.collapsed .ticker{font-size:16px;font-weight:700}.stock-card.collapsed .price{font-size:18px;font-weight:700}.stock-card.collapsed .stock-details{margin-top:8px;padding-top:8px}.stock-card:hover{border-color:var(--text-muted)}.stock-main{display:flex;align-items:center;justify-content:flex-start;padding-right:40px}.drag-handle{cursor:grab;color:var(--text-muted);margin-right:12px;-webkit-user-select:none;user-select:none;font-size:14px;letter-spacing:-2px}.drag-handle:active{cursor:grabbing}.price-section{display:flex;align-items:center;gap:12px;margin-left:auto}.change{font-size:14px;font-weight:500}.change.positive{color:var(--success-color)}.change.negative{color:var(--error-color)}.stock-details{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-color)}.stock-details .detail{font-size:12px;color:var(--text-secondary)}.stock-details .detail-label{color:var(--text-muted);margin-right:4px}.stock-details .earnings-detail{color:var(--warning-color)}.stock-details .earnings-detail .detail-label{color:var(--warning-color);opacity:.8}.stock-details .rsi-value{font-weight:500}.stock-details .rsi-value.overbought{color:var(--negative-color)}.stock-details .rsi-value.oversold{color:var(--positive-color)}.stock-details .macd-trend{font-weight:500}.stock-details .macd-trend.bullish{color:var(--positive-color)}.stock-details .macd-trend.bullish_weakening{color:#a3be8c}.stock-details .macd-trend.bearish{color:var(--negative-color)}.stock-details .macd-trend.bearish_weakening{color:#d08770}.stock-details .macd-trend.neutral{color:var(--text-muted)}.stock-details .macd-convergence{margin-left:4px;padding:1px 4px;font-size:.7rem;font-weight:600;background:var(--warning-color);color:var(--bg-primary);border-radius:3px;text-transform:uppercase}.convergence-icon{display:inline-block;vertical-align:middle;margin-left:2px;color:var(--warning-color)}.stock-card.updating{border-color:var(--accent-color)}.updating-indicator{display:inline-block;animation:spin 1s linear infinite;margin-left:6px;color:var(--accent-color)}.spinning{animation:spin 1s linear infinite}.ticker{font-size:18px;font-weight:700;color:var(--accent-color);min-width:70px}.price{font-size:20px;font-weight:600;color:var(--text-primary)}.price.error{color:var(--error-color);font-size:14px}.price.loading{font-size:14px;color:var(--text-muted)}.remove-btn{position:absolute;top:11px;right:16px;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.remove-btn:hover{background:var(--error-color);color:#fff}.poll-info{text-align:center;color:var(--text-muted);font-size:12px;margin-top:30px}.action-toolbar{display:flex;gap:4px;margin-top:12px;padding:8px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.action-toolbar-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.action-toolbar-btn:hover:not(:disabled){border-color:var(--accent-color);color:var(--accent-color);background:var(--bg-hover)}.action-toolbar-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.action-toolbar-btn.forecast{border-color:var(--accent-color);color:var(--accent-color)}.action-toolbar-btn.forecast:hover:not(:disabled){background:var(--accent-color);color:#fff}.action-toolbar-btn.forecast.active{background:var(--accent-color);color:#fff}.action-toolbar-btn:disabled{opacity:.5;cursor:wait}.portfolio-summary{display:flex;align-items:center;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #2a2a2a;font-size:13px}.holding-info{color:#888}.gain-loss{font-weight:600}.gain-loss.positive{color:#22c55e}.gain-loss.negative{color:#ef4444}.daily-change{font-size:.85rem;padding:2px 8px;border-radius:4px;background:#ffffff0d}[data-theme=light] .daily-change{background:#0000000d}.daily-change.positive{color:#22c55e}.daily-change.negative{color:#ef4444}@keyframes flash-up{0%{background-color:#22c55e66}to{background-color:transparent}}@keyframes flash-down{0%{background-color:#ef444466}to{background-color:transparent}}.flash-up{animation:flash-up .5s ease-out;border-radius:4px}.flash-down{animation:flash-down .5s ease-out;border-radius:4px}.edit-portfolio-btn{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid #3a3a3a;border-radius:4px;background:transparent;color:#888;cursor:pointer;transition:all .2s;margin-left:auto}.edit-portfolio-btn:hover{border-color:#0ea5e9;color:#0ea5e9}.portfolio-edit{display:flex;gap:8px;margin-top:10px;padding:10px;background:#252525;border-radius:6px}.portfolio-edit input{width:90px;padding:6px 10px;font-size:13px;border:1px solid #3a3a3a;border-radius:4px;background:#1e1e1e;color:#e0e0e0;outline:none}.portfolio-edit input:focus{border-color:#0ea5e9}.portfolio-edit input::placeholder{color:#666}.save-btn,.cancel-btn{padding:6px 12px;font-size:12px;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.save-btn{background:#22c55e;color:#fff}.save-btn:hover{background:#16a34a}.cancel-btn{background:#3a3a3a;color:#e0e0e0}.cancel-btn:hover{background:#4a4a4a}.add-holding-btn{margin-top:10px;padding:6px 12px;font-size:12px;font-weight:500;border:1px dashed #3a3a3a;border-radius:6px;background:transparent;color:#666;cursor:pointer;transition:all .2s;align-self:flex-start}.add-holding-btn:hover{border-color:#0ea5e9;color:#0ea5e9}.portfolio-section{margin-top:10px;padding:12px;background:var(--bg-tertiary);border-radius:6px}.portfolio-entries{margin-top:10px}.portfolio-entries-header{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.portfolio-entry-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-secondary);border-radius:6px;margin-bottom:6px;border:1px solid var(--border-color)}.portfolio-entry-item:last-child{margin-bottom:0}.entry-shares{font-size:13px;font-weight:600;color:var(--text-primary)}.entry-cost{font-size:13px;color:var(--text-secondary)}.entry-date{font-size:11px;color:var(--text-muted);margin-left:auto}.edit-entry-btn{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.edit-entry-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.portfolio-entry-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding:12px;background:var(--bg-secondary);border-radius:6px;align-items:center}.portfolio-entry-form input{padding:8px 10px;font-size:13px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);outline:none;width:100px}.portfolio-entry-form input:focus{border-color:var(--accent-color)}.portfolio-entry-actions{display:flex;gap:8px;width:100%;margin-top:8px}.add-entry-btn{margin-top:8px;padding:6px 12px;font-size:12px;font-weight:500;border:1px dashed var(--border-color);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.add-entry-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.options-section{margin-top:10px;padding:12px;background:var(--bg-tertiary);border-radius:6px}.options-header{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.option-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px;background:var(--bg-secondary);border-radius:6px;margin-bottom:8px;border:1px solid var(--border-color)}.option-item:last-child{margin-bottom:0}.option-details{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.option-type{font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;text-transform:uppercase}.option-type:contains("CALL"),.option-item:has(.option-type:first-child) .option-type{background:var(--success-color);color:#fff}.option-item .option-type{background:var(--success-color);color:#fff}.option-item:has([value=put]) .option-type,.option-type:contains("PUT"){background:var(--error-color)}.option-strike{font-size:14px;font-weight:600;color:var(--text-primary)}.option-exp{font-size:12px;color:var(--text-secondary)}.option-contracts{font-size:11px;color:var(--text-muted)}.option-values{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto}.option-cost,.option-current{font-size:12px;color:var(--text-secondary)}.option-gain{font-size:13px;font-weight:600}.option-gain.positive{color:var(--success-color)}.option-gain.negative{color:var(--error-color)}.option-loading{font-size:12px;color:var(--text-muted);font-style:italic}.option-intrinsic{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;padding-top:6px;border-top:1px dashed var(--border-color)}.option-itm-status{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase}.option-itm-status.itm{background:var(--success-color);color:#000}.option-itm-status.otm{background:var(--text-muted);color:var(--bg-primary)}.option-intrinsic-label{font-size:12px;color:var(--text-secondary)}.option-intrinsic-gain{font-size:12px;font-weight:600}.option-intrinsic-gain.positive{color:var(--success-color)}.option-intrinsic-gain.negative{color:var(--error-color)}.option-time-value{font-size:12px;color:var(--accent-color);font-weight:500}.edit-option-btn{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.edit-option-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.option-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding:12px;background:var(--bg-tertiary);border-radius:6px;align-items:center}.option-form select,.option-form input{padding:8px 10px;font-size:13px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);outline:none}.option-form select{min-width:70px}.option-form input[type=number]{width:80px}.option-form input[type=date]{width:130px}.option-form select:focus,.option-form input:focus{border-color:var(--accent-color)}.option-form-actions{display:flex;gap:8px;width:100%;margin-top:8px}.delete-btn{padding:6px 12px;font-size:12px;font-weight:600;border:none;border-radius:4px;background:var(--error-color);color:#fff;cursor:pointer;transition:all .2s}.delete-btn:hover{filter:brightness(1.1)}.add-option-btn{margin-top:8px;padding:6px 12px;font-size:12px;font-weight:500;border:1px dashed var(--border-color);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s;align-self:flex-start}.add-option-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.alert-summary{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:#252525;border-radius:6px;font-size:13px}.alert-icon{font-size:14px}.alert-info{color:#f59e0b;flex:1}.edit-alert-btn{padding:4px 10px;font-size:11px;font-weight:600;border:1px solid #3a3a3a;border-radius:4px;background:transparent;color:#888;cursor:pointer;transition:all .2s}.edit-alert-btn:hover{border-color:#f59e0b;color:#f59e0b}.alert-edit{margin-top:10px;padding:12px;background:#252525;border-radius:6px}.alert-label{display:block;font-size:12px;color:#888;margin-bottom:8px}.alert-inputs{display:flex;gap:12px;margin-bottom:10px}.alert-input-group{display:flex;align-items:center;gap:6px}.alert-input-group label{font-size:12px;color:#666}.alert-input-group input{width:80px;padding:6px 10px;font-size:13px;border:1px solid #3a3a3a;border-radius:4px;background:#1e1e1e;color:#e0e0e0;outline:none}.alert-input-group input:focus{border-color:#f59e0b}.alert-actions{display:flex;gap:8px}.add-alert-btn{margin-top:6px;padding:6px 12px;font-size:12px;font-weight:500;border:1px dashed #3a3a3a;border-radius:6px;background:transparent;color:#666;cursor:pointer;transition:all .2s}.add-alert-btn:hover{border-color:#f59e0b;color:#f59e0b}.watchlist-container{margin-bottom:16px}.watchlist-tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.watchlist-tab{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.watchlist-tab:hover{border-color:var(--accent-color);color:var(--text-primary)}.watchlist-tab.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.watchlist-count{font-size:11px;opacity:.7}.delete-watchlist{margin-left:4px;font-size:14px;opacity:.5;transition:opacity .2s}.delete-watchlist:hover{opacity:1;color:var(--error-color)}.watchlist-tab.active .delete-watchlist:hover{color:#fff}.add-watchlist-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;border:1px dashed var(--border-color);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.add-watchlist-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.watchlist-modal{display:flex;gap:8px;margin-top:10px;padding:12px;background:var(--bg-tertiary);border-radius:6px}.watchlist-modal input{flex:1;padding:8px 12px;font-size:14px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);outline:none}.watchlist-modal input:focus{border-color:var(--accent-color)}.tradingview-chart-container{margin-top:12px;border-radius:8px;overflow:hidden;background:var(--bg-tertiary)}.tradingview-widget-container{height:160px}.price-chart-container{margin-top:12px;border-radius:8px;overflow:hidden;background:var(--bg-tertiary);padding:8px}.price-chart-container.price-chart-minimal{margin-top:0;padding:0;background:transparent;border-radius:0}.price-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px}.price-chart-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.price-chart-points{font-size:10px;color:var(--text-muted)}.price-chart-svg{width:100%;display:block}.price-chart-svg .alert-delete-icon:hover circle{opacity:1}.price-chart-svg .alert-delete-icon:active{transform:translate(0) scale(.95);transform-box:fill-box;transform-origin:center}.chart-blackout-indicator{font-size:10px;color:var(--text-muted);font-style:italic;padding:2px 4px 4px;letter-spacing:.2px}.price-chart-loading,.price-chart-error,.price-chart-empty{height:160px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted)}.price-chart-error{color:var(--negative-color)}.price-chart-waiting{height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:12px;color:var(--text-muted)}.waiting-pulse{width:12px;height:12px;border-radius:50%;background:var(--accent-color);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.5);opacity:1}}.price-chart-range-selector{display:flex;gap:4px}.price-chart-range-selector .range-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.price-chart-range-selector .range-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-color)}.price-chart-range-selector .range-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.price-chart-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.price-chart-type-toggle{display:flex;gap:4px}.price-chart-type-toggle .chart-type-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.price-chart-type-toggle .chart-type-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-color)}.price-chart-type-toggle .chart-type-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.price-chart-indicator-toggle{display:flex;gap:4px}.price-chart-indicator-toggle .indicator-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.price-chart-indicator-toggle .indicator-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-color)}.price-chart-indicator-toggle .indicator-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.price-chart-indicator-toggle .indicator-btn:disabled{opacity:.4;cursor:not-allowed}.price-chart-indicator-toggle .indicator-btn:disabled:hover{background:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-color)}.price-chart-indicator-toggle .indicator-btn.ai{border-color:#a855f773;color:#a855f7}.price-chart-indicator-toggle .indicator-btn.ai:hover:not(:disabled){background:#a855f71a;border-color:#a855f7;color:#a855f7}.price-chart-indicator-toggle .indicator-btn.ai.active{background:#a855f7;border-color:#a855f7;color:#fff}.price-chart-indicator-toggle .indicator-btn.loading{cursor:wait}.chart-expand-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:3px 6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.chart-expand-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-color)}.indicator-menu{position:relative;display:flex}.price-chart-container:has(.indicator-menu-panel){overflow:visible}.indicator-menu .indicator-menu-trigger{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:4px}.indicator-menu .indicator-menu-trigger:hover,.indicator-menu .indicator-menu-trigger.open{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-color)}.indicator-menu-caret{font-size:8px;line-height:1}.indicator-count-badge{background:var(--accent-color);color:#fff;border-radius:8px;padding:0 5px;font-size:9px;font-weight:600;line-height:13px;min-width:13px;text-align:center}.indicator-menu-panel{position:absolute;top:100%;right:0;min-width:150px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-top:4px;padding:4px 0;z-index:100;box-shadow:0 4px 12px #0000004d}.indicator-menu-group+.indicator-menu-group{border-top:1px solid var(--border-color);margin-top:4px;padding-top:4px}.indicator-menu-group-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:4px 12px 2px}.indicator-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;font-size:12px;color:var(--text-primary);cursor:pointer;text-align:left;transition:background .15s ease}.indicator-menu-item:hover{background:var(--bg-hover)}.indicator-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.indicator-menu-item-label{flex:1}.indicator-menu-check{color:var(--accent-color);font-size:11px;font-weight:700}.price-chart-rsi-svg,.price-chart-volume-svg,.price-chart-macd-svg{width:100%;display:block;margin-top:4px}.price-chart-footer{display:flex;justify-content:flex-end;padding:4px 4px 0}.portfolio-chart-container{margin-bottom:16px;border-radius:8px;overflow:hidden;background:var(--bg-tertiary);padding:12px}.portfolio-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px}.portfolio-chart-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.portfolio-chart-periods{display:flex;gap:4px}.period-btn{padding:4px 10px;font-size:11px;font-weight:500;border:1px solid var(--border-color);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.period-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.period-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.portfolio-chart-svg{width:100%;display:block}.portfolio-chart-footer{display:flex;justify-content:flex-end;padding:4px 4px 0}.portfolio-chart-points{font-size:10px;color:var(--text-muted)}.portfolio-chart-loading,.portfolio-chart-error{height:180px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted)}.portfolio-chart-error{color:var(--error-color)}.portfolio-chart-waiting{height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:12px;color:var(--text-muted)}.news-toggle-btn{margin-top:8px;padding:6px 12px;font-size:12px;font-weight:500;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s;align-self:flex-start}.news-toggle-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.news-section{margin-top:10px;padding:12px;background:var(--bg-tertiary);border-radius:6px}.news-loading,.news-empty{font-size:13px;color:var(--text-muted);text-align:center;padding:10px}.news-list{list-style:none;padding:0;margin:0}.news-item{padding:8px 0;border-bottom:1px solid var(--border-color)}.news-item:last-child{border-bottom:none;padding-bottom:0}.news-item:first-child{padding-top:0}.news-item a{display:block;font-size:13px;color:var(--text-primary);text-decoration:none;line-height:1.4;transition:color .2s}.news-item a:hover{color:var(--accent-color)}.news-source{display:block;font-size:11px;color:var(--text-muted);margin-top:4px}.forecast-toggle-btn{display:flex;align-items:center;gap:6px;margin-top:8px;padding:8px 14px;font-size:12px;font-weight:600;border:1px solid var(--accent-color);border-radius:6px;background:transparent;color:var(--accent-color);cursor:pointer;transition:all .2s;align-self:flex-start}.forecast-toggle-btn:hover:not(:disabled){background:var(--accent-color);color:#fff}.forecast-toggle-btn:disabled{opacity:.6;cursor:wait}.forecast-section{margin-top:12px;padding:16px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.forecast-stats{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.forecast-stats-row{display:flex;flex-wrap:wrap;gap:16px}.forecast-stat{font-size:12px;color:var(--text-secondary)}.forecast-stat .stat-label{color:var(--text-muted);margin-right:4px}.forecast-stat.positive{color:var(--success-color)}.forecast-stat.negative{color:var(--error-color)}.forecast-content{font-size:13px;line-height:1.6;color:var(--text-primary)}.forecast-content p{margin-bottom:10px}.forecast-content p:last-child{margin-bottom:0}.forecast-content h1,.forecast-content h2,.forecast-content h3,.forecast-content h4{color:var(--text-primary);margin-top:16px;margin-bottom:8px}.forecast-content h1{font-size:18px}.forecast-content h2{font-size:16px}.forecast-content h3{font-size:14px}.forecast-content h4{font-size:13px}.forecast-content h1:first-child,.forecast-content h2:first-child,.forecast-content h3:first-child,.forecast-content h4:first-child{margin-top:0}.forecast-content ul,.forecast-content ol{margin:10px 0;padding-left:20px}.forecast-content li{margin-bottom:6px}.forecast-content strong{color:var(--accent-color);font-weight:600}.forecast-content em{font-style:italic;color:var(--text-secondary)}.forecast-content code{background:var(--bg-secondary);padding:2px 6px;border-radius:4px;font-family:monospace;font-size:12px}.forecast-content blockquote{border-left:3px solid var(--accent-color);margin:12px 0;padding-left:12px;color:var(--text-secondary);font-style:italic}.forecast-content hr{border:none;border-top:1px solid var(--border-color);margin:16px 0}.forecast-error{font-size:13px;color:var(--error-color);text-align:center;padding:12px}.forecast-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.forecast-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:700px;max-height:85vh;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 20px 60px #0006;z-index:1001;display:flex;flex-direction:column;overflow:hidden}.forecast-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.forecast-modal-header h2{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.forecast-modal-header h2 svg{color:var(--accent-color)}.forecast-modal-actions{display:flex;align-items:center;gap:8px}.copy-forecast-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.copy-forecast-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.forecast-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.forecast-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.forecast-modal-content{flex:1;overflow-y:auto;padding:0 20px 20px}.forecast-modal-content .forecast-stats{position:sticky;top:0;background:var(--bg-secondary);padding-top:20px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--border-color);z-index:1}.sidenav{position:fixed;top:0;left:env(safe-area-inset-left,0);bottom:0;width:56px;background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:100;display:flex;flex-direction:column;align-items:center;padding:16px 0;gap:8px}.sidenav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.sidenav-btn:hover{background:var(--bg-tertiary);color:var(--accent-color)}.sidenav-btn:hover svg{color:var(--accent-color)}.sidenav-ai{color:var(--accent-color)}.sidenav-logout{margin-top:auto}.sidenav-logout:hover{background:#ef44441a;color:var(--error-color)}.sidenav-logout:hover svg{color:var(--error-color)}@media (max-width: 768px){.container{padding:12px 16px 24px;margin-left:calc(56px + env(safe-area-inset-left,0px))}.sticky-header{margin-bottom:24px;padding:12px 0}.sticky-header.scrolled{padding:8px 0}.sticky-header-title{font-size:20px}.sticky-header.scrolled .sticky-header-title{font-size:18px}.sticky-header-market{margin-top:12px;padding:10px}.sticky-header-market .futures-title{font-size:12px;margin-bottom:8px}.sticky-header.scrolled .futures-cards.futures-cards-compact{gap:6px}.sticky-header-content{flex-direction:column;align-items:stretch;gap:10px}.sticky-header-controls{gap:8px;justify-content:flex-end;flex-wrap:wrap}.status-label-full{display:none}.status-label-short{display:inline}.header{flex-direction:column;align-items:flex-start;gap:12px}.header h1{font-size:24px}.header-controls{width:100%;gap:8px}.market-status{margin-right:auto}.calendar-toggle{padding:8px}.controls{gap:8px}.interval-selector{flex-shrink:0}.interval-selector span{display:none}.interval-btn{padding:6px 8px;font-size:11px}.control-buttons{justify-content:flex-end}.watchlist-tabs{overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.watchlist-tab{flex-shrink:0}.futures-cards{display:flex;flex-wrap:nowrap;gap:8px}.futures-card{flex:1 1 0;min-width:0;padding:10px}.futures-name{font-size:11px}.futures-price{font-size:16px}.futures-change{font-size:11px}.summary-events-row{flex-direction:column}.summary-events-row .portfolio-totals{width:100%}.upcoming-events-section{max-width:none;min-width:0;width:100%}.upcoming-event-name{font-size:13px}}@media (max-width: 600px){.futures-cards,.futures-cards.futures-cards-full{display:grid;grid-template-columns:1fr 1fr;gap:8px}.futures-card{flex:none;min-width:0;padding:14px}.futures-name{font-size:12px}.futures-price{font-size:20px}.futures-change{font-size:13px}.sticky-header-tagline{display:none}}@media (max-width: 480px){.sidenav{width:48px;padding:12px 0}.sidenav-btn{width:36px;height:36px}.container{padding:10px 12px 16px;margin-left:calc(48px + env(safe-area-inset-left,0px))}.sticky-header{margin-bottom:16px;padding:10px 0}.sticky-header.scrolled{margin-left:-12px;margin-right:-12px;padding:8px 12px}.sticky-header-title{font-size:18px}.sticky-header.scrolled .sticky-header-title{font-size:16px}.index-badge{height:32px;padding:0 10px;font-size:11px;gap:4px}.index-badge .index-change{font-size:10px}.forecast-modal{width:95%;max-height:90vh}.forecast-modal-header{padding:12px 16px}.forecast-modal-header h2{font-size:16px}.copy-forecast-btn span{display:none}.forecast-modal-content{padding:16px}.stock-list{grid-template-columns:1fr}.portfolio-totals{padding:12px;margin-bottom:16px}.portfolio-totals-cards{grid-template-columns:1fr;gap:10px}.totals-card{padding:12px 14px}.totals-value{font-size:18px}.totals-percent{font-size:13px}.futures-section{padding:12px;margin-bottom:16px}.calendar-toggle-label{display:none}.calendar-panel{width:100%;right:-100%}.economic-event{flex-wrap:wrap;gap:8px;padding:10px}.event-time{flex-direction:row;gap:6px;min-width:auto}.event-details{width:100%;order:3}.event-name{white-space:normal}.event-values{flex-direction:column;gap:4px}.impact-badge{margin-left:auto}.header h1{font-size:20px}.add-form{flex-direction:column}.add-form button{width:100%;padding:14px}.search-container input{font-size:16px}.result-name{max-width:140px;font-size:12px}.controls{flex-direction:row;flex-wrap:nowrap;align-items:center}.interval-selector{width:auto;flex-shrink:0}.interval-selector span{display:none}.interval-btn{min-width:32px;padding:6px 8px;font-size:11px}.play-pause-btn{margin-left:0;padding:6px 8px}.control-buttons{flex:1;justify-content:flex-end}.refresh-btn{padding:6px}.export-btn{padding:6px 10px;font-size:12px}.view-toggle{flex-shrink:0}.view-toggle-btn{padding:6px}.stock-list.collapsed-view{grid-template-columns:1fr}.stock-card{padding:14px}.stock-main{flex-wrap:wrap;padding-right:36px}.drag-handle{margin-right:8px}.ticker{font-size:16px;min-width:60px}.price-section{width:100%;margin-left:0;margin-top:8px;padding-left:22px;justify-content:flex-start}.price{font-size:18px}.change{font-size:13px}.stock-details{gap:10px}.stock-details .detail{font-size:11px}.remove-btn{top:11px;right:10px;width:28px;height:28px;font-size:20px}.portfolio-edit,.alert-edit,.option-form,.portfolio-entry-form{flex-direction:column;gap:10px}.portfolio-edit input,.option-form input,.option-form select,.portfolio-entry-form input{width:100%}.portfolio-entry-item{flex-wrap:wrap}.entry-date{margin-left:0;width:100%;margin-top:4px}.option-form input[type=date],.option-form input[type=number]{width:100%}.option-item{flex-direction:column;align-items:flex-start}.option-values{margin-left:0;width:100%;margin-top:8px}.option-intrinsic{width:100%}.alert-inputs{flex-direction:column;gap:10px}.alert-input-group{width:100%}.alert-input-group input{flex:1;width:auto}.alert-actions{width:100%}.alert-actions button{flex:1}.portfolio-summary{flex-wrap:wrap;gap:8px}.edit-portfolio-btn{margin-left:0;margin-top:4px}.watchlist-modal{flex-direction:column}.watchlist-modal button{width:100%}.market-status{font-size:11px;padding:5px 10px}.theme-toggle{width:32px;height:32px;font-size:16px}.poll-info{font-size:11px}.empty-message{padding:30px 20px;font-size:14px}}@media (max-width: 360px){.sidenav{width:44px;padding:10px 0}.sidenav-btn{width:32px;height:32px}.container{padding:8px 8px 12px;margin-left:calc(44px + env(safe-area-inset-left,0px))}.sticky-header{margin-bottom:12px;padding:8px 0}.sticky-header.scrolled{margin-left:-8px;margin-right:-8px;padding:6px 8px}.sticky-header-title{font-size:16px}.sticky-header.scrolled .sticky-header-title{font-size:14px}.header h1{font-size:18px}.interval-btn{font-size:10px;padding:5px 6px;min-width:28px}.view-toggle-btn{padding:5px}.ticker{font-size:14px}.price{font-size:16px}}@media (max-width: 915px) and (orientation: landscape){.sidenav{width:44px;padding:8px 0;left:env(safe-area-inset-left,0)}.sidenav-btn{width:32px;height:32px}.container{padding:8px 12px 16px;padding-right:calc(12px + env(safe-area-inset-right,0px));margin-left:calc(44px + env(safe-area-inset-left,0px));min-height:100vh;min-height:100dvh}.sticky-header{margin-bottom:8px;padding:6px 0}.sticky-header.scrolled{padding:4px 0}.header-title{font-size:20px}.stock-item{padding:10px 12px}.stock-ticker{font-size:15px}.stock-price{font-size:16px}.stock-change{font-size:12px;padding:3px 6px}.poll-info{font-size:11px}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:20px}.auth-loading{color:var(--text-secondary);font-size:18px}.auth-card{width:100%;max-width:400px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:40px 32px;box-shadow:0 4px 20px #0000004d}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo h1{font-size:28px;margin:0}.auth-logo .think-text{color:var(--text-primary)}.auth-logo .stocks-text{color:var(--accent-color)}.auth-form-container{text-align:center}.auth-title{font-size:24px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.auth-subtitle{font-size:14px;color:var(--text-secondary);margin:0 0 24px}.auth-error{background:#ef444426;border:1px solid var(--error-color);color:var(--error-color);padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:13px;text-align:left}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input-group{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:14px;color:var(--text-muted);pointer-events:none}.auth-input-group input{width:100%;padding:14px 44px;font-size:15px;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);outline:none;transition:border-color .2s}.auth-input-group input:focus{border-color:var(--accent-color)}.auth-input-group input::placeholder{color:var(--text-muted)}.auth-input-group input:disabled{opacity:.5;cursor:not-allowed}.auth-password-toggle{position:absolute;right:12px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.auth-password-toggle:hover{color:var(--text-primary)}.auth-submit-btn{width:100%;padding:14px;font-size:16px;font-weight:600;border:none;border-radius:8px;background:var(--accent-color);color:#fff;cursor:pointer;transition:background .2s,transform .1s;margin-top:8px}.auth-submit-btn:hover:not(:disabled){filter:brightness(1.1)}.auth-submit-btn:active:not(:disabled){transform:scale(.98)}.auth-submit-btn:disabled{background:var(--text-muted);cursor:not-allowed}.auth-switch{margin-top:24px;font-size:14px;color:var(--text-secondary)}.auth-link{background:none;border:none;color:var(--accent-color);font-weight:600;cursor:pointer;text-decoration:underline}.auth-link:hover{color:var(--accent-color);filter:brightness(1.2)}.logout-btn{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;font-size:12px;font-weight:500;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.logout-btn:hover{border-color:var(--error-color);color:var(--error-color)}.logout-label{display:none}@media (min-width: 768px){.logout-label{display:inline}}@media (max-width: 480px){.auth-card{padding:32px 24px}.auth-logo h1{font-size:24px}.auth-title{font-size:20px}.auth-input-group input{font-size:16px}}.ai-chat-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ai-chat-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:600px;height:80vh;max-height:700px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 20px 60px #0006;z-index:1001;display:flex;flex-direction:row;overflow:hidden}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.ai-chat-header h2{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.ai-chat-header h2 svg{color:var(--accent-color)}.ai-chat-header-actions{display:flex;align-items:center;gap:8px}.ai-chat-clear-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:all .2s}.ai-chat-clear-btn:hover{background:var(--bg-tertiary);color:var(--error-color)}.ai-chat-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:all .2s}.ai-chat-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.ai-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ai-chat-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:20px}.ai-chat-welcome-icon{color:var(--accent-color);margin-bottom:16px}.ai-chat-welcome h3{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.ai-chat-welcome p{font-size:14px;color:var(--text-secondary);margin:0 0 24px;max-width:300px}.ai-chat-suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.ai-chat-suggestion{padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:20px;color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s}.ai-chat-suggestion:hover{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.ai-chat-message{max-width:85%;padding:12px 16px;border-radius:16px;line-height:1.5;font-size:14px}.ai-chat-message.user{align-self:flex-end;background:var(--accent-color);color:#fff;border-bottom-right-radius:4px}.ai-chat-message.assistant{align-self:flex-start;background:var(--bg-tertiary);color:var(--text-primary);border-bottom-left-radius:4px}.ai-chat-message-content{line-height:1.6}.ai-chat-message-content p{margin:0 0 12px}.ai-chat-message-content p:last-child{margin-bottom:0}.ai-chat-message-content ul,.ai-chat-message-content ol{margin:8px 0;padding-left:20px}.ai-chat-message-content li{margin:4px 0}.ai-chat-message-content strong{color:var(--text-primary)}.ai-chat-message-content code{background:var(--bg-primary);padding:2px 6px;border-radius:4px;font-size:13px}.ai-chat-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.ai-chat-action{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#22c55e1a;border-radius:4px;font-size:12px;color:var(--success-color)}.ai-chat-message-time{display:block;font-size:11px;color:var(--text-muted);margin-top:6px;opacity:.7}.ai-chat-message.user .ai-chat-message-time{text-align:right}.ai-typing-indicator{display:flex;gap:4px;padding:4px 0}.ai-typing-dot{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:ai-typing 1.4s infinite ease-in-out}.ai-typing-dot:nth-child(1){animation-delay:0s}.ai-typing-dot:nth-child(2){animation-delay:.2s}.ai-typing-dot:nth-child(3){animation-delay:.4s}@keyframes ai-typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.ai-chat-input-container{padding:16px;border-top:1px solid var(--border-color);display:flex;gap:12px;background:var(--bg-primary)}.ai-chat-input{flex:1;padding:12px 16px;border:1px solid var(--border-color);border-radius:24px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:inherit;resize:none;outline:none;transition:border-color .2s}.ai-chat-input:focus{border-color:var(--accent-color)}.ai-chat-input::placeholder{color:var(--text-muted)}.ai-chat-input:disabled{opacity:.6;cursor:not-allowed}.ai-chat-send{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--accent-color);color:#fff;border:none;border-radius:50%;cursor:pointer;transition:all .2s;flex-shrink:0}.ai-chat-send:hover:not(:disabled){filter:brightness(1.1)}.ai-chat-send:active:not(:disabled){transform:scale(.95)}.ai-chat-send:disabled{opacity:.5;cursor:not-allowed}.sidenav-ai:hover{background:#0ea5e91a;color:var(--accent-color)}@media (max-width: 768px){.ai-chat-modal{width:95%;height:90vh;max-height:none}.ai-chat-message{max-width:90%}.ai-chat-suggestions{flex-direction:column}.ai-chat-suggestion{text-align:center}}@media (max-width: 480px){.ai-chat-header{padding:12px 16px}.ai-chat-header h2{font-size:16px}.ai-chat-messages,.ai-chat-input-container{padding:12px}.ai-chat-input{padding:10px 14px;font-size:16px}.ai-chat-send{width:40px;height:40px}}.ai-chat-modal.with-sidebar{max-width:850px}.ai-chat-history{width:0;overflow:hidden;background:var(--bg-primary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:width .3s ease}.ai-chat-history.open{width:250px}.ai-chat-history-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color)}.ai-chat-history-header h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.ai-chat-history-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .2s}.ai-chat-history-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.ai-chat-new-btn{display:flex;align-items:center;gap:8px;margin:12px;padding:10px 14px;background:var(--accent-color);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.ai-chat-new-btn:hover{filter:brightness(1.1)}.ai-chat-history-list{flex:1;overflow-y:auto;padding:8px}.ai-chat-history-loading,.ai-chat-history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--text-muted);font-size:13px;text-align:center}.ai-chat-history-loading .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ai-chat-history-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;margin-bottom:4px}.ai-chat-history-item:hover{background:var(--bg-tertiary)}.ai-chat-history-item.active{background:#0ea5e91a;border:1px solid rgba(14,165,233,.3)}.ai-chat-history-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ai-chat-history-title{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-chat-history-time{font-size:11px;color:var(--text-muted)}.ai-chat-history-delete{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .2s;flex-shrink:0}.ai-chat-history-item:hover .ai-chat-history-delete{opacity:1}.ai-chat-history-delete:hover{background:var(--bg-secondary);color:var(--error-color)}.ai-chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.ai-chat-header-left{display:flex;align-items:center;gap:8px}.ai-chat-history-toggle{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s}.ai-chat-history-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}@media (max-width: 768px){.ai-chat-history.open{position:absolute;left:0;top:0;bottom:0;width:250px;z-index:10;box-shadow:4px 0 20px #0000004d}.ai-chat-modal.with-sidebar{max-width:95%}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:12px;max-width:400px}.toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0000004d;cursor:pointer;animation:toast-slide-in .3s ease-out}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--accent-color);color:#fff}.toast-recommendation .toast-icon{background:var(--accent-color)}.toast-buy .toast-icon{background:var(--success-color)}.toast-sell .toast-icon,.toast-error .toast-icon{background:var(--error-color)}.toast-content{flex:1;min-width:0}.toast-title{font-weight:600;font-size:14px;color:var(--text-primary);margin-bottom:2px}.toast-message{font-size:13px;color:var(--text-secondary)}.toast-close{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidenav-btn{position:relative}.sidenav-badge{position:absolute;top:4px;right:4px;width:10px;height:10px;background:var(--error-color);border-radius:50%;border:2px solid var(--bg-secondary);animation:badge-pulse 2s infinite}@keyframes badge-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.8}}.sidenav-btn.has-badge .sidenav-ai{color:var(--accent-color)}.ai-recommendations-banner{display:flex;align-items:center;gap:12px;width:100%;padding:14px 18px;background:linear-gradient(135deg,#0ea5e926,#22c55e1a);border:1px solid var(--accent-color);border-radius:12px;color:var(--accent-color);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:20px}.ai-recommendations-banner:hover{background:linear-gradient(135deg,#0ea5e940,#22c55e26);transform:translateY(-1px)}.ai-recommendations-summary{width:100%;padding:16px;background:var(--bg-tertiary);border-radius:12px;border:1px solid var(--border-color);text-align:left}.ai-recommendations-summary p{margin:0 0 12px;line-height:1.6}.ai-recommendations-summary ul{margin:8px 0;padding-left:20px}.ai-recommendations-summary li{margin:4px 0}.ai-recommendations-dismiss{display:block;width:100%;margin-top:16px;padding:10px 16px;background:var(--accent-color);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.ai-recommendations-dismiss:hover{filter:brightness(1.1)}.ai-chat-message-content a{color:var(--accent-color);text-decoration:none;transition:color .2s}.ai-chat-message-content a:hover{color:#38bdf8;text-decoration:underline}@media (max-width: 480px){.toast-container{left:16px;right:16px;bottom:16px;max-width:none}.toast{padding:12px 14px}}.bubble-chart-view{margin-bottom:16px}.bubble-chart-container{border-radius:8px;overflow:hidden;background:var(--bg-secondary);padding:16px;min-height:300px}.bubble-chart-svg{width:100%;display:block;touch-action:none}.bubble-chart-svg .bubble-group{cursor:grab}.bubble-chart-svg .bubble-group:active{cursor:grabbing}.bubble-chart-loading,.bubble-chart-empty{height:300px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-muted)}.treemap-chart-view{margin-bottom:16px}.treemap-chart-container{border-radius:8px;overflow:hidden;background:var(--bg-secondary);padding:16px;min-height:300px}.treemap-chart-svg{width:100%;display:block}.treemap-chart-loading,.treemap-chart-empty{height:300px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-muted)}.index-funds-panel{position:fixed;top:0;right:-420px;width:400px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border-color);box-shadow:-4px 0 20px #0000004d;z-index:1000;transition:right .3s ease;display:flex;flex-direction:column;overflow:hidden}.index-funds-panel.open{right:0}.index-funds-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary);flex-shrink:0}.index-funds-panel-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.index-funds-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0;line-height:1;transition:color .2s}.index-funds-close:hover{color:var(--text-primary)}.index-funds-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:999}.index-funds-description{padding:12px 20px;font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0}.index-funds-empty{padding:40px 20px;text-align:center;font-size:14px;color:var(--text-muted)}.index-funds-list{padding:12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex-shrink:0;max-height:300px}.index-funds-chart-section{flex:1;padding:12px;overflow-y:auto;border-top:1px solid var(--border-color)}.index-funds-select-prompt{height:200px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-muted);text-align:center}.index-fund-card{padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.index-fund-card:hover{border-color:var(--accent-color);background:var(--bg-primary)}.index-fund-card.selected{border-color:var(--accent-color);background:var(--bg-primary);box-shadow:0 0 0 1px var(--accent-color)}.index-fund-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.index-fund-card-name{font-size:14px;font-weight:600;color:var(--text-primary)}.index-fund-card-tickers{font-size:11px;color:var(--text-muted)}.index-fund-card-value{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.index-fund-card-change{font-size:14px;font-weight:500}.index-fund-card-change.positive{color:var(--positive-color)}.index-fund-card-change.negative{color:var(--negative-color)}.index-fund-card-dollar{font-size:12px;opacity:.8;margin-left:6px}.index-fund-card-loading,.index-fund-card-empty{font-size:12px;color:var(--text-muted);padding:8px 0}.index-fund-chart-container{border-radius:8px;overflow:hidden;background:var(--bg-tertiary);padding:12px}.index-fund-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 4px;flex-wrap:wrap;gap:8px}.index-fund-chart-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.index-fund-chart-periods{display:flex;gap:4px;flex-wrap:wrap}.index-fund-chart-svg{width:100%;display:block}.index-fund-chart-footer{display:flex;justify-content:flex-end;padding:8px 4px 0}.index-fund-chart-info{font-size:10px;color:var(--text-muted)}.index-fund-chart-loading,.index-fund-chart-error,.index-fund-chart-empty{height:200px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted)}.index-fund-chart-error{color:var(--error-color)}.index-fund-chart-waiting{height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:12px;color:var(--text-muted)}@media (max-width: 480px){.index-funds-panel{width:100%;right:-100%}.index-funds-list{max-height:200px}.index-fund-chart-header{flex-direction:column;align-items:flex-start}}.paper-trading-panel{position:fixed;top:0;right:-420px;width:400px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border-color);box-shadow:-4px 0 20px #0000004d;z-index:1000;transition:right .3s ease;display:flex;flex-direction:column;overflow:hidden}.paper-trading-panel.open{right:0}.paper-trading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999}.paper-trading-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary);flex-shrink:0}.paper-trading-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.paper-trading-header-title,.paper-trading-header-actions{display:flex;align-items:center;gap:8px}.paper-trading-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;line-height:1;transition:color .2s;display:flex;align-items:center;justify-content:center}.paper-trading-close:hover{color:var(--text-primary)}.paper-trading-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.paper-trading-btn:hover:not(:disabled){border-color:var(--accent-color);color:var(--accent-color)}.paper-trading-btn:disabled{opacity:.5;cursor:not-allowed}.paper-trading-btn.icon{padding:6px}.paper-trading-btn.reset{border-color:var(--error-color);color:var(--error-color);background:transparent}.paper-trading-btn.reset:hover:not(:disabled){background:var(--error-color);color:#fff}.paper-trading-btn.load-more{width:100%;justify-content:center;margin-top:12px}.paper-trading-loading,.paper-trading-empty{padding:24px 20px;text-align:center;color:var(--text-muted);font-size:14px}.paper-trading-summary{padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.paper-trading-summary-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px}.paper-trading-summary-row .label{color:var(--text-muted)}.paper-trading-summary-row .value{font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:4px}.paper-trading-summary-row.total{margin-top:8px;padding-top:12px;border-top:1px solid var(--border-color);font-size:16px;font-weight:600}.paper-trading-summary-row.pl.positive .value{color:var(--success-color)}.paper-trading-summary-row.pl.negative .value{color:var(--error-color)}.paper-trading-actions{padding:12px 20px;border-bottom:1px solid var(--border-color)}.paper-trading-positions{flex:1;overflow-y:auto;padding:16px 20px}.paper-trading-positions h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.paper-trading-positions-list{display:flex;flex-direction:column;gap:10px}.paper-trading-position{padding:12px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color);cursor:pointer;transition:all .2s}.paper-trading-position:hover{border-color:var(--accent-color)}.paper-trading-position .position-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.paper-trading-position .position-ticker{font-weight:600;color:var(--text-primary);font-size:15px}.paper-trading-position .position-shares{font-size:13px;color:var(--text-muted)}.paper-trading-position .position-details{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:6px}.paper-trading-position .position-pl{display:flex;justify-content:space-between;font-size:13px;font-weight:500}.paper-trading-position .position-pl.positive{color:var(--success-color)}.paper-trading-position .position-pl.negative{color:var(--error-color)}.paper-trade-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.paper-trade-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:420px;max-height:90vh;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 20px 60px #0006;z-index:1101;display:flex;flex-direction:column;overflow:hidden}.paper-trade-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.paper-trade-modal-header h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.paper-trade-modal-header h2 svg{color:var(--accent-color)}.paper-trade-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.paper-trade-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.paper-trade-modal-content{padding:20px;overflow-y:auto}.paper-trade-stock-info{background:var(--bg-tertiary);border-radius:8px;padding:12px;margin-bottom:20px}.paper-trade-stock-info .stock-info-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px}.paper-trade-stock-info .stock-info-row .label{color:var(--text-muted)}.paper-trade-stock-info .stock-info-row .value{font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:4px}.paper-trade-stock-info .stock-info-row.positive .value{color:var(--success-color)}.paper-trade-stock-info .stock-info-row.negative .value{color:var(--error-color)}.paper-trade-form{display:flex;flex-direction:column;gap:16px}.paper-trade-action-toggle{display:flex;gap:8px}.paper-trade-action-toggle .action-btn{flex:1;padding:12px;font-size:14px;font-weight:600;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);color:var(--text-muted);cursor:pointer;transition:all .2s}.paper-trade-action-toggle .action-btn:disabled{opacity:.4;cursor:not-allowed}.paper-trade-action-toggle .action-btn.buy.active{border-color:var(--success-color);background:#22c55e1a;color:var(--success-color)}.paper-trade-action-toggle .action-btn.sell.active{border-color:var(--error-color);background:#ef44441a;color:var(--error-color)}.paper-trade-input-group{display:flex;flex-direction:column;gap:8px}.paper-trade-input-group label{font-size:13px;font-weight:500;color:var(--text-secondary)}.paper-trade-input-group input{padding:12px;font-size:16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);color:var(--text-primary);outline:none;transition:border-color .2s}.paper-trade-input-group input:focus{border-color:var(--accent-color)}.price-input-wrapper{position:relative}.price-input-wrapper .currency-symbol{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:16px}.price-input-wrapper input{padding-left:28px}.quick-fill-btns{display:flex;gap:6px}.quick-fill-btns button{flex:1;padding:6px;font-size:12px;font-weight:500;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-muted);cursor:pointer;transition:all .2s}.quick-fill-btns button:hover{border-color:var(--accent-color);color:var(--accent-color)}.market-price-btn{padding:8px 12px;font-size:12px;font-weight:500;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-muted);cursor:pointer;transition:all .2s;align-self:flex-start}.market-price-btn:hover{border-color:var(--accent-color);color:var(--accent-color)}.paper-trade-total{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--bg-tertiary);border-radius:8px;font-size:15px}.paper-trade-total .label{color:var(--text-muted)}.paper-trade-total .value{font-weight:600;color:var(--text-primary)}.paper-trade-error{padding:10px 12px;background:#ef44441a;border:1px solid var(--error-color);border-radius:6px;color:var(--error-color);font-size:13px}.paper-trade-submit{padding:14px;font-size:15px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s}.paper-trade-submit.buy{background:var(--success-color);color:#fff}.paper-trade-submit.buy:hover:not(:disabled){background:#16a34a}.paper-trade-submit.sell{background:var(--error-color);color:#fff}.paper-trade-submit.sell:hover:not(:disabled){background:#dc2626}.paper-trade-submit:disabled{opacity:.5;cursor:not-allowed}.paper-trade-history{flex:1;overflow-y:auto;padding:16px 20px}.trade-history-count{font-size:12px;color:var(--text-muted);margin-bottom:12px}.trade-history-list{display:flex;flex-direction:column;gap:10px}.trade-history-item{padding:12px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.trade-history-item .trade-main{display:flex;align-items:center;gap:10px;margin-bottom:6px}.trade-history-item .trade-action{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;padding:3px 8px;border-radius:4px}.trade-history-item .trade-action.buy{background:#22c55e26;color:var(--success-color)}.trade-history-item .trade-action.sell{background:#ef444426;color:var(--error-color)}.trade-history-item .trade-ticker{font-weight:600;color:var(--text-primary);font-size:15px}.trade-history-item .trade-details{display:flex;gap:8px;font-size:13px;color:var(--text-muted);margin-bottom:6px}.trade-history-item .trade-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px}.trade-history-item .trade-total{font-weight:600;color:var(--text-primary)}.trade-history-item .trade-date{color:var(--text-muted)}.action-toolbar-btn.paper-trade{color:var(--accent-color)}.action-toolbar-btn.paper-trade:hover{background:#0ea5e91a}@media (max-width: 480px){.paper-trading-panel{width:100%;right:-100%}.paper-trade-modal{width:95%;max-height:95vh}.paper-trade-modal-header{padding:12px 16px}.paper-trade-modal-content{padding:16px}}.risk-picker-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.risk-picker-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:92%;max-width:460px;max-height:80vh;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 20px 60px #0006;z-index:1101;display:flex;flex-direction:column;overflow:hidden}.risk-picker-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.risk-picker-modal-header h2{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;color:var(--text-primary);margin:0}.risk-picker-modal-header h2 svg{color:var(--accent-color)}.risk-picker-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.risk-picker-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.risk-picker-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.risk-picker-search{position:relative}.risk-picker-search-input{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;transition:border-color .2s}.risk-picker-search-input:focus-within{border-color:var(--accent-color)}.risk-picker-search-input svg{color:var(--text-muted);flex-shrink:0}.risk-picker-search-input input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:16px;outline:none}.risk-picker-search-loading{color:var(--text-muted);font-size:12px}.risk-picker-search-results{margin-top:8px;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);max-height:220px;overflow-y:auto}.risk-picker-search-result{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;border-bottom:1px solid var(--border-color);transition:background .15s}.risk-picker-search-result:last-child{border-bottom:none}.risk-picker-search-result:hover{background:var(--bg-hover)}.risk-picker-result-symbol{font-weight:600;color:var(--accent-color);min-width:60px}.risk-picker-result-name{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-picker-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0 0 10px}.risk-picker-chips{display:flex;flex-wrap:wrap;gap:8px}.risk-picker-chip{padding:6px 12px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-tertiary);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.risk-picker-chip:hover{border-color:var(--accent-color);color:var(--accent-color);background:var(--bg-hover)}.risk-picker-empty{text-align:center;color:var(--text-muted);font-size:13px;padding:20px 0;margin:0}@media (max-width: 480px){.risk-picker-modal{width:95%;max-height:90vh}.risk-picker-modal-header{padding:12px 16px}.risk-picker-modal-content{padding:16px}}.risk-analysis-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.risk-analysis-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:92%;max-width:480px;max-height:90vh;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 20px 60px #0006;z-index:1101;display:flex;flex-direction:column;overflow:hidden}.risk-analysis-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.risk-analysis-modal-header h2{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;color:var(--text-primary);margin:0}.risk-analysis-modal-header h2 svg{color:var(--accent-color)}.risk-analysis-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.risk-analysis-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.risk-analysis-modal-content{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:18px}.risk-analysis-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 0;color:var(--text-secondary);font-size:13px}.risk-analysis-spinner{width:18px;height:18px;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:risk-spin .8s linear infinite}@keyframes risk-spin{to{transform:rotate(360deg)}}.risk-analysis-error{display:flex;align-items:center;gap:8px;padding:12px;background:#ef44441a;border:1px solid var(--error-color);border-radius:8px;color:var(--error-color);font-size:13px}.risk-meter-section{display:flex;flex-direction:column;gap:8px}.risk-meter-header{display:flex;align-items:baseline;justify-content:space-between}.risk-meter-score{font-size:32px;font-weight:700;color:var(--text-primary)}.risk-meter-score-max{font-size:15px;font-weight:500;color:var(--text-muted)}.risk-meter-level{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px}.risk-meter-level.level-low{background:#22c55e26;color:var(--success-color)}.risk-meter-level.level-moderate{background:#eab3082e;color:#eab308}.risk-meter-level.level-elevated{background:#f59e0b2e;color:var(--warning-color)}.risk-meter-level.level-high,.risk-meter-level.level-extreme{background:#ef444426;color:var(--error-color)}.risk-meter{width:100%;height:14px;background:var(--bg-tertiary);border-radius:999px;overflow:hidden;border:1px solid var(--border-color)}.risk-meter-fill{height:100%;border-radius:999px;transition:width .35s ease}.risk-meter-fill[data-level=low]{background:linear-gradient(90deg,#22c55e,#4ade80)}.risk-meter-fill[data-level=moderate]{background:linear-gradient(90deg,#22c55e,#eab308)}.risk-meter-fill[data-level=elevated]{background:linear-gradient(90deg,#eab308,#f59e0b)}.risk-meter-fill[data-level=high]{background:linear-gradient(90deg,#f59e0b,#ef4444)}.risk-meter-fill[data-level=extreme]{background:linear-gradient(90deg,#ef4444,#b91c1c)}.risk-meter-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.risk-warning-list{display:flex;flex-direction:column;gap:6px}.risk-warning{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f59e0b1a;border:1px solid var(--warning-color);border-radius:6px;font-size:12px;color:var(--warning-color)}.risk-summary{padding:12px;background:var(--bg-tertiary);border-left:3px solid var(--accent-color);border-radius:6px;font-size:13px;line-height:1.5;color:var(--text-primary)}.risk-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0 0 8px}.risk-factor-list,.risk-catalyst-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.risk-factor-row{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;padding:8px 10px;background:var(--bg-tertiary);border-radius:6px;font-size:13px}.risk-factor-row.negative .risk-factor-icon{color:var(--error-color)}.risk-factor-row.positive .risk-factor-icon{color:var(--success-color)}.risk-factor-row.negative .risk-factor-impact{color:var(--error-color)}.risk-factor-row.positive .risk-factor-impact{color:var(--success-color)}.risk-factor-label{color:var(--text-primary)}.risk-factor-impact{font-weight:600;font-variant-numeric:tabular-nums}.risk-catalyst-row{display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--bg-tertiary);border-radius:6px}.risk-catalyst-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent-color);text-decoration:none;font-size:13px;font-weight:500}.risk-catalyst-link:hover{text-decoration:underline}.risk-catalyst-title{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.risk-catalyst-takeaway{font-size:12px;color:var(--text-secondary);line-height:1.4}.risk-footer{font-size:11px;color:var(--text-muted);text-align:center;padding-top:4px;border-top:1px dashed var(--border-color)}.action-toolbar-btn.risk-analysis:hover{color:var(--warning-color)}@media (max-width: 480px){.risk-analysis-modal{width:95%;max-height:95vh}.risk-analysis-modal-header{padding:12px 16px}.risk-analysis-modal-content{padding:16px}}.fg-modal{width:min(720px,95vw)}.fg-section-title{margin-top:18px}.fg-gauge-section{display:flex;flex-direction:column;align-items:center;gap:16px}.fg-gauge{display:flex;flex-direction:column;align-items:center;margin:0 auto}.fg-gauge-scale{display:flex;justify-content:space-between;width:100%;font-size:11px;color:var(--text-muted);padding:0 14px;margin-top:4px}.fg-gauge-meta{display:flex;flex-direction:column;gap:8px;width:100%;max-width:360px;align-self:center}.fg-gauge-meta-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--text-secondary)}.fg-gauge-meta-value{color:var(--text-primary);font-weight:600}.fg-gauge-meta-footer{border-top:1px dashed var(--border-color);padding-top:8px;margin-top:4px;font-size:12px}.fg-refresh-btn{margin-top:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;cursor:pointer;transition:background .15s;align-self:center}.fg-refresh-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-color)}.fg-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.fg-spin{animation:fg-spin 1s linear infinite}@keyframes fg-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fg-component-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:8px}.fg-component-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.fg-component-card-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.fg-component-card-label{font-size:12px;color:var(--text-secondary);line-height:1.3}.fg-component-card-score{font-size:18px;font-weight:700;color:var(--text-primary)}.fg-component-bar{position:relative;height:6px;background:var(--bg-primary);border-radius:3px;overflow:hidden}.fg-component-bar-fill{height:100%;border-radius:3px;transition:width .4s ease;background:var(--accent-color)}.fg-component-bar-fill[data-severity=extreme_fear]{background:var(--fg-extreme-fear)}.fg-component-bar-fill[data-severity=fear]{background:var(--fg-fear)}.fg-component-bar-fill[data-severity=neutral]{background:var(--fg-neutral)}.fg-component-bar-fill[data-severity=greed]{background:var(--fg-greed)}.fg-component-bar-fill[data-severity=extreme_greed]{background:var(--fg-extreme-greed)}.fg-component-bar-fill[data-severity=unavailable]{background:var(--text-muted);opacity:.35}.fg-component-card-meta{display:flex;flex-direction:column;gap:2px;font-size:11px}.fg-component-card-value{color:var(--text-primary);font-weight:500}.fg-component-card-detail{color:var(--text-muted);line-height:1.35}.fg-component-card.severity-unavailable{opacity:.7}.fg-catalyst-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:8px}.fg-catalyst-grid-news{grid-template-columns:1fr}.fg-catalyst-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px}.fg-catalyst-card.fg-catalyst-news:hover{border-color:var(--accent-color)}.fg-catalyst-card-title{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;justify-content:space-between;align-items:center;gap:6px}.fg-catalyst-card-source{font-size:11px;color:var(--text-muted)}.fg-catalyst-card-takeaway{font-size:11px;color:var(--text-secondary);line-height:1.4}.fg-catalyst-card-value{display:flex;gap:8px;font-size:13px;color:var(--text-primary);font-weight:600}.fg-catalyst-card-value .positive{color:var(--success-color)}.fg-catalyst-card-value .negative{color:var(--error-color)}.fg-sparkline{width:100%;height:120px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-top:8px}.fg-sparkline-empty{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:8px;padding:18px;text-align:center;margin-top:8px}@media (max-width: 480px){.fg-modal{width:95%}.fg-gauge-section{flex-direction:column;align-items:center}}.settings-panel{position:fixed;top:0;right:-380px;width:360px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border-color);z-index:1000;display:flex;flex-direction:column;transition:right .3s ease;box-shadow:-4px 0 20px #0003}.settings-panel.open{right:0}.settings-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.settings-panel-header h2{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.settings-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.settings-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.settings-content{flex:1;overflow-y:auto;padding:20px}.settings-loading{display:flex;justify-content:center;align-items:center;padding:40px;color:var(--text-muted)}.settings-section{margin-bottom:24px}.settings-section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.settings-item{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color);margin-bottom:12px}.settings-item-info{flex:1;margin-right:16px}.settings-item-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.settings-item-description{font-size:13px;color:var(--text-muted);margin:0;line-height:1.4}.settings-toggle{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.settings-toggle input{opacity:0;width:0;height:0}.settings-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:26px;transition:.3s}.settings-toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background-color:var(--text-muted);border-radius:50%;transition:.3s}.settings-toggle input:checked+.settings-toggle-slider{background-color:var(--success-color);border-color:var(--success-color)}.settings-toggle input:checked+.settings-toggle-slider:before{transform:translate(22px);background-color:#fff}.settings-toggle input:disabled+.settings-toggle-slider{opacity:.5;cursor:not-allowed}.settings-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}@media (max-width: 480px){.settings-panel{width:100%;right:-100%}}.ai-active-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-left:8px;background:#6366f126;color:var(--accent-color);border:1px solid rgba(99,102,241,.35);border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.position-ai-badge,.trade-ai-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 5px;margin-left:6px;background:#6366f126;color:var(--accent-color);border-radius:4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle}.settings-subsection{margin-top:4px;padding:12px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-color)}.settings-warning{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;margin-bottom:16px;background:#eab3081a;color:#fbbf24;border:1px solid rgba(234,179,8,.3);border-radius:6px;font-size:12px;line-height:1.4}.settings-field{margin-bottom:16px}.settings-field:last-child{margin-bottom:0}.settings-field-label{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.settings-field-value{font-variant-numeric:tabular-nums;color:var(--accent-color);font-weight:600}.settings-field input[type=range]{width:100%;accent-color:var(--accent-color)}.settings-field-description{margin:4px 0 0;font-size:11px;color:var(--text-muted);line-height:1.4}.trade-history-item.ai-decision.skip{opacity:.75}.trade-history-item .trade-action.stop-loss{background:#ea580c26;color:#fb923c}.trade-history-item .trade-action.trailing-stop{background:#14b8a626;color:#2dd4bf}.trade-history-item .trade-action.skip{background:#94a3b826;color:var(--text-muted)}.ai-decision-score{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;padding:2px 6px;background:#94a3b81f;border-radius:4px}.ai-decision-reason{font-size:12px;color:var(--text-muted);line-height:1.4;margin:6px 0}.settings-plan-row{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:var(--bg-tertiary);border-radius:8px;margin-bottom:16px}.settings-plan-info{display:flex;flex-direction:column;gap:4px}.settings-plan-name{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--text-primary)}.settings-plan-status{font-size:11px;font-weight:500;text-transform:uppercase;padding:2px 8px;border-radius:4px;letter-spacing:.4px}.settings-plan-status.status-past_due{background:#ea580c26;color:#fb923c}.settings-plan-status.status-canceled{background:#94a3b82e;color:var(--text-muted)}.settings-plan-status.status-trialing{background:#0ea5e92e;color:var(--accent-color)}.settings-plan-price{font-size:13px;color:var(--text-secondary)}.settings-plan-renews{color:var(--text-muted)}.settings-plan-actions{display:flex;gap:8px;flex-wrap:wrap}.settings-btn-primary,.settings-btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s}.settings-btn-primary{background:var(--accent-color);color:#fff}.settings-btn-primary:hover{background:#0284c7}.settings-btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--bg-hover)}.settings-btn-secondary:hover{background:var(--bg-hover)}.usage-meter{padding:14px 16px;background:var(--bg-tertiary);border-radius:8px;display:flex;flex-direction:column;gap:8px}.usage-meter-header{display:flex;align-items:center;justify-content:space-between}.usage-meter-title{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.usage-meter-counts{font-variant-numeric:tabular-nums;font-size:14px;color:var(--text-primary)}.usage-meter-counts strong{font-size:16px;font-weight:600}.usage-meter-counts.low strong{color:#fb923c}.usage-meter-counts.out strong{color:#ef4444}.usage-meter-divider{margin:0 4px;color:var(--text-muted)}.usage-meter-bar{width:100%;height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden}.usage-meter-fill{height:100%;background:linear-gradient(90deg,var(--accent-color),#38bdf8);border-radius:4px;transition:width .2s ease}.usage-meter-fill.low{background:linear-gradient(90deg,#f59e0b,#fb923c)}.usage-meter-fill.out{background:linear-gradient(90deg,#dc2626,#ef4444)}.usage-meter-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted)}.usage-meter-reset{display:inline-flex;align-items:center;gap:4px}.usage-meter-breakdown{list-style:none;margin:6px 0 0;padding:8px 0 0;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--bg-hover)}.usage-meter-breakdown li{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.usage-feature-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.pricing-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:9000;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.pricing-modal{background:var(--bg-secondary);color:var(--text-primary);width:100%;max-width:1100px;border-radius:14px;padding:28px;box-shadow:0 24px 60px #00000073;border:1px solid var(--bg-hover)}.pricing-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.pricing-modal-header h2{margin:0;font-size:24px;font-weight:700}.pricing-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px}.pricing-close:hover{background:var(--bg-hover);color:var(--text-primary)}.pricing-loading{padding:60px;text-align:center;color:var(--text-secondary)}.pricing-interval-toggle{display:inline-flex;background:var(--bg-tertiary);padding:4px;border-radius:8px;margin:0 auto 20px;display:flex;width:fit-content}.pricing-interval-toggle button{background:transparent;border:none;color:var(--text-secondary);padding:8px 18px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:8px}.pricing-interval-toggle button.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 3px #0000004d}.pricing-save-badge{font-size:10px;font-weight:600;background:#10b9812e;color:#34d399;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.pricing-error{background:#ef44441f;color:#ef4444;padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:13px}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.pricing-card{background:var(--bg-tertiary);border:1px solid var(--bg-hover);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px;position:relative}.pricing-card.featured{border-color:var(--accent-color);box-shadow:0 0 0 1px var(--accent-color)}.pricing-card.current{border-color:#34d399}.pricing-badge{position:absolute;top:-10px;right:16px;background:var(--accent-color);color:#fff;font-size:10px;font-weight:700;padding:4px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px}.pricing-tier-name{font-size:18px;font-weight:700;color:var(--text-primary)}.pricing-tier-price{display:flex;align-items:baseline;gap:4px}.pricing-tier-amount{font-size:28px;font-weight:700;color:var(--text-primary)}.pricing-tier-suffix{font-size:13px;color:var(--text-muted)}.pricing-tier-credits{font-size:13px;color:var(--accent-color);font-weight:500}.pricing-cta{background:var(--bg-hover);color:var(--text-primary);border:none;padding:10px 14px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px}.pricing-cta:hover:not(:disabled){background:#3a3a3a}.pricing-cta.cta-featured{background:var(--accent-color);color:#fff}.pricing-cta.cta-featured:hover:not(:disabled){background:#0284c7}.pricing-cta.cta-current{background:#34d3992e;color:#34d399;cursor:default}.pricing-cta:disabled{opacity:.6;cursor:not-allowed}.pricing-cta .spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pricing-feature-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.pricing-feature-list li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary)}.pricing-feature-list li.off,.pricing-feature-list li.off .pricing-dash{color:var(--text-muted)}.pricing-feature-icon{display:inline-flex;width:16px;justify-content:center}.pricing-check{color:#34d399}.pricing-dash{color:var(--text-muted)}.pricing-unlimited{color:var(--accent-color);font-weight:600}.pricing-compare-details{margin-top:24px;border-top:1px solid var(--bg-hover);padding-top:16px}.pricing-compare-details summary{cursor:pointer;color:var(--text-secondary);font-size:14px;padding:6px 0;-webkit-user-select:none;user-select:none}.pricing-compare-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}.pricing-compare-table th,.pricing-compare-table td{text-align:center;padding:8px 12px;border-bottom:1px solid var(--bg-hover)}.pricing-compare-table th:first-child,.pricing-compare-table td:first-child{text-align:left;color:var(--text-secondary)}.pricing-compare-table th{color:var(--text-primary);font-weight:600;background:var(--bg-tertiary)}.pricing-compare-table tr.row-highlight td{background:#0ea5e90f;font-weight:500}.pricing-portal-cta{margin-top:20px;text-align:center;font-size:13px;color:var(--text-secondary)}.pricing-portal-link{background:transparent;border:none;color:var(--accent-color);cursor:pointer;font-size:13px;text-decoration:underline;padding:0 4px}.pricing-portal-link:disabled{opacity:.6;cursor:not-allowed}.watchlist-heatmap-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:1100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.watchlist-heatmap-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);z-index:1101;display:flex;flex-direction:column}.watchlist-heatmap-modal-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.watchlist-heatmap-modal-title{display:flex;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;color:var(--text-primary)}.watchlist-heatmap-modal-actions{display:flex;align-items:center;gap:8px}.watchlist-heatmap-refresh-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:13px;transition:background .15s,border-color .15s}.watchlist-heatmap-refresh-btn:hover:not(:disabled){background:var(--bg-primary);border-color:var(--accent-color)}.watchlist-heatmap-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.watchlist-heatmap-modal-close{display:inline-flex;align-items:center;justify-content:center;padding:6px;background:transparent;color:var(--text-secondary);border:none;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.watchlist-heatmap-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.watchlist-heatmap-modal-content{flex:1 1 auto;overflow-y:auto;padding:16px 20px}.watchlist-heatmap-loading,.watchlist-heatmap-error{display:flex;align-items:center;gap:10px;padding:24px;color:var(--text-secondary);font-size:14px}.watchlist-heatmap-error{color:var(--error-color)}.watchlist-heatmap-section{margin-bottom:28px}.watchlist-heatmap-section:last-child{margin-bottom:0}.watchlist-heatmap-section-header{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}.watchlist-heatmap-section-name{font-size:16px;font-weight:700;color:var(--text-primary)}.watchlist-heatmap-section-meta{font-size:12px;font-weight:500;color:var(--text-secondary)}.watchlist-heatmap-section-avg.positive{color:var(--success-color)}.watchlist-heatmap-section-avg.negative{color:var(--error-color)}.watchlist-heatmap-section-empty{padding:24px;text-align:center;color:var(--text-muted);border:1px dashed var(--border-color);border-radius:8px;font-size:13px}.chart-fullscreen-modal{width:min(1100px,96vw);max-width:none}.chart-fullscreen-modal .risk-analysis-modal-header h2{align-items:baseline;gap:10px}.chart-fullscreen-ticker{font-size:18px;font-weight:700;color:var(--text-primary)}.chart-fullscreen-price{font-size:16px;font-weight:600;color:var(--text-primary)}.chart-fullscreen-change{font-size:13px;font-weight:600}.chart-fullscreen-change.positive{color:var(--success-color)}.chart-fullscreen-change.negative{color:var(--error-color)}.chart-fullscreen-content{gap:12px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.chart-fullscreen-details{margin:0;padding-top:0;border-top:none}.chart-fullscreen-modal .price-chart-container{margin-top:0}@media (max-width: 768px){.chart-fullscreen-modal{width:96%}}
