:root{--bg:#0f1117;--surface:#1a1d27;--surface-raised:#22253a;--border:#2a2d3e;--text:#94a3b8;--text-h:#e2e8f0;--muted:#4b5563;--accent:#3b82f6;--sans:"Inter", system-ui, -apple-system, sans-serif;font:14px/1.5 var(--sans);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;overflow:hidden}#root{width:100vw;height:100vh}h1,h2,h3{color:var(--text-h);margin:0;font-weight:600}input,button{font-family:inherit;font-size:inherit}.app{background:var(--bg);height:100vh;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:20px;height:52px;padding:0 20px;display:flex}.logo{color:var(--text-h);letter-spacing:-.3px;white-space:nowrap;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.search-wrap{flex:1;max-width:300px;position:relative}.search-icon{color:var(--muted);pointer-events:none;font-size:15px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search{background:var(--surface-raised);border:1px solid var(--border);width:100%;color:var(--text-h);border-radius:6px;outline:none;padding:6px 12px 6px 32px;font-size:13px}.search::placeholder{color:var(--muted)}.search:focus{border-color:var(--accent)}.topnav{gap:2px;margin-left:auto;display:flex}.topnav-link{color:var(--muted);border-radius:6px;padding:5px 12px;font-size:13px;text-decoration:none;transition:color .15s,background .15s}.topnav-link:hover,.topnav-link.active{color:var(--text-h);background:var(--surface-raised)}.workspace{flex:1;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:230px;display:flex;overflow-y:auto}.sidebar-title{text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0;padding:14px 16px 8px;font-size:10px;font-weight:600}.watchlist{margin:0;padding:0;list-style:none}.watchlist-item{border:none;border-left:2px solid #0000;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;width:100%;padding:10px 16px;transition:background .15s;display:flex}.watchlist-item:hover{background:var(--surface-raised)}.watchlist-item.active{background:var(--surface-raised);border-left-color:var(--accent)}.wl-left{flex:1;min-width:0}.wl-ticker{color:var(--text-h);font-size:13px;font-weight:600;display:block}.wl-name{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.wl-right{text-align:right}.wl-price{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;display:block}.wl-change{font-variant-numeric:tabular-nums;font-size:11px;display:block}.main{flex-direction:column;flex:1;gap:16px;min-width:0;padding:20px 24px;display:flex;overflow-y:auto}.stock-header{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.stock-identity{flex-direction:column;gap:2px;display:flex}.stock-ticker{color:var(--text-h);letter-spacing:-.4px;font-size:20px;font-weight:700}.stock-name{color:var(--muted);font-size:12px}.stock-price-block{align-items:baseline;gap:10px;display:flex}.stock-price{color:var(--text-h);font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:28px;font-weight:600}.stock-change{font-variant-numeric:tabular-nums;font-size:14px}.stock-meta{align-items:center;gap:8px;margin-left:auto;display:flex}.meta-tag{background:var(--surface-raised);color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:11px}.market-open{color:#22c55e;background:#22c55e1a;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.chart-tabs{border-bottom:1px solid var(--border);gap:2px;padding:10px 14px 8px;display:flex}.chart-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:12px;transition:all .15s}.chart-tab:hover{color:var(--text-h);background:var(--surface-raised)}.chart-tab.active{color:var(--text-h);background:var(--surface-raised);font-weight:600}.chart-svg{width:100%;height:auto;padding:8px 8px 2px;display:block}.metrics-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.metric-label{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:10px}.metric-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.news-panel{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:270px;display:flex;overflow-y:auto}.news-list{margin:0;padding:0;list-style:none}.news-item{border-bottom:1px solid var(--border);cursor:pointer;flex-direction:column;gap:5px;padding:14px 16px;transition:background .15s;display:flex}.news-item:hover{background:var(--surface-raised)}.news-meta{justify-content:space-between;align-items:center;display:flex}.news-source{color:var(--accent);text-transform:uppercase;letter-spacing:.6px;font-size:10px;font-weight:700}.news-time{color:var(--muted);font-size:11px}.news-headline{color:var(--text-h);margin:0;font-size:12px;line-height:1.45}.news-sentiment{font-size:11px;font-weight:500}.up{color:#22c55e}.down{color:#ef4444}
