@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=JetBrains+Mono:wght@400;500&display=swap";:root{--white:#fff;--off-white:#f8f7f5;--surface:#f2f1ef;--surface-raised:#fff;--ink:#0f1117;--ink-secondary:#2d3142;--ink-tertiary:#4a5068;--ink-muted:#7a849a;--ink-faint:#b0b8cc;--accent:#1a56db;--accent-light:#e8eefa;--accent-hover:#1347b8;--up:#0d7a45;--up-bg:#e6f7ee;--up-border:#9ae6be;--down:#b91c1c;--down-bg:#fef2f2;--down-border:#fca5a5;--neutral:#4a5068;--neutral-bg:#f0f0f3;--neutral-border:#d0d4e0;--border:#0f111714;--border-strong:#0f111729;--border-accent:var(--accent);--sidebar-bg:#0f1117;--sidebar-text:#ffffffe0;--sidebar-muted:#fff6;--sidebar-dim:#ffffff14;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "Menlo", monospace;--radius-sm:5px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--ease-out:cubic-bezier(.32, .72, 0, 1);--dur:.2s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--off-white);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-size:15px;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--ink-faint);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--ink-muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--ink);letter-spacing:-.02em;font-weight:700;line-height:1.25}a{color:var(--accent);transition:color var(--dur) var(--ease-out);text-decoration:none}a:hover{color:var(--accent-hover)}.container{max-width:1360px;margin:0 auto;padding:0 2rem}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}@media (width<=900px){.app-shell{grid-template-columns:1fr}}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);flex-direction:column;height:100vh;min-height:100vh;padding:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{border-bottom:1px solid var(--sidebar-dim);padding:1.5rem 1.5rem 1.25rem}.sidebar-logo h1{color:#fff;letter-spacing:-.03em;font-size:1.2rem;font-weight:800}.sidebar-logo span{font-size:.68rem;font-family:var(--font-mono);color:var(--sidebar-muted);letter-spacing:.05em;text-transform:uppercase;margin-top:2px;display:block}.sidebar-nav{padding:1rem 0}.sidebar-nav a{color:var(--sidebar-muted);letter-spacing:.01em;transition:all var(--dur) var(--ease-out);border-radius:6px;align-items:center;gap:.6rem;margin:0 .5rem;padding:.6rem 1.25rem;font-size:.82rem;font-weight:600;text-decoration:none;display:flex}.sidebar-nav a:hover{color:#fff;background:#ffffff12}.sidebar-nav a.active{color:#fff;background:#1a56db40}.sidebar-section-label{font-size:.62rem;font-family:var(--font-mono);color:#ffffff40;letter-spacing:.14em;text-transform:uppercase;padding:1.25rem 1.5rem .4rem}.sidebar-footer{border-top:1px solid var(--sidebar-dim);font-size:.7rem;font-family:var(--font-mono);color:#fff3;letter-spacing:.06em;margin-top:auto;padding:1rem 1.5rem}.topbar{background:var(--white);border-bottom:1px solid var(--border);z-index:100;box-shadow:0 1px 0 var(--border);justify-content:space-between;align-items:center;padding:.875rem 2rem;display:flex;position:sticky;top:0}.topbar-title{font-size:.72rem;font-family:var(--font-mono);color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase}.btn{font-family:var(--font-sans);cursor:pointer;border-radius:var(--radius);transition:all var(--dur) var(--ease-out);white-space:nowrap;letter-spacing:-.01em;border:none;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.82rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover:not(:disabled){background:var(--ink-secondary)}.btn-secondary{color:var(--ink);border:1.5px solid var(--border-strong);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--surface);border-color:var(--ink-faint)}.btn-steel{background:var(--accent);color:#fff}.btn-steel:hover:not(:disabled){background:var(--accent-hover)}.btn-sm{padding:.35rem .75rem;font-size:.78rem}.btn-icon{border-radius:var(--radius-sm);justify-content:center;width:2rem;height:2rem;padding:0}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);padding:1.4rem;box-shadow:0 1px 3px #0f11170d}.card:hover{border-color:var(--border-strong);box-shadow:0 4px 16px #0f111714}.news-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);padding:1.25rem 1.4rem;box-shadow:0 1px 2px #0f11170a}.news-card:hover{border-color:#1a56db4d;box-shadow:0 4px 16px #0f111714}.ticker-card{cursor:pointer;transition:all var(--dur) var(--ease-out);border-radius:6px;flex-direction:column;gap:.1rem;margin:0 .5rem;padding:.6rem 1.25rem;display:flex}.ticker-card:hover{background:#ffffff0f}.ticker-card.active{background:#1a56db33}.ticker-card .symbol{font-family:var(--font-mono);color:#ffffffeb;letter-spacing:.02em;font-size:.85rem;font-weight:500}.ticker-card .name{color:#ffffff61;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.ticker-card .price-row{justify-content:space-between;align-items:center;margin-top:.2rem;display:flex}.ticker-card .price{font-family:var(--font-mono);color:#ffffffd9;font-size:.8rem}.ticker-card .change-up{font-family:var(--font-mono);color:#4ade80;font-size:.7rem}.ticker-card .change-down{font-family:var(--font-mono);color:#f87171;font-size:.7rem}.badge{font-size:.68rem;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:4px;align-items:center;padding:.18rem .55rem;font-weight:500;display:inline-flex}.badge-bullish{background:var(--up-bg);color:var(--up);border:1px solid var(--up-border)}.badge-bearish{background:var(--down-bg);color:var(--down);border:1px solid var(--down-border)}.badge-neutral{background:var(--neutral-bg);color:var(--neutral);border:1px solid var(--neutral-border)}.badge-steel{background:var(--accent-light);color:var(--accent);border:1px solid #1a56db33}.badge-sector{background:var(--surface);color:var(--ink-tertiary);border:1px solid var(--border);font-size:.65rem}.input{background:var(--white);border:1.5px solid var(--border-strong);border-radius:var(--radius);width:100%;font-family:var(--font-sans);color:var(--ink);transition:border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);outline:none;padding:.6rem .9rem;font-size:.875rem;font-weight:400}.input::placeholder{color:var(--ink-faint)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1a56db1a}.section-eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.5rem;font-size:.65rem}.section-title{color:var(--ink);letter-spacing:-.02em;border-bottom:1.5px solid var(--border);margin-bottom:1.1rem;padding-bottom:.7rem;font-size:1.1rem;font-weight:700}.divider{background:var(--border);height:1px;margin:1.25rem 0}.text-up{color:var(--up)}.text-down{color:var(--down)}.text-navy{color:var(--ink)}.text-steel{color:var(--accent)}.text-muted{color:var(--ink-muted)}.text-secondary{color:var(--ink-tertiary)}.font-mono{font-family:var(--font-mono)}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ebebeb 25%,#f5f5f5 50%,#ebebeb 75%) 0 0/600px 100%;animation:1.6s ease-in-out infinite shimmer}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.7s linear infinite spin}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:fadeUp .3s var(--ease-out) both}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-gap-2{align-items:center;gap:.5rem;display:flex}.tag{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.7rem;font-family:var(--font-mono);color:var(--ink-tertiary);letter-spacing:.02em;padding:.18rem .55rem;display:inline-block}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 2rem;display:flex}.empty-state h3{color:var(--ink-tertiary);font-size:1rem;font-weight:600}.empty-state p{color:var(--ink-muted);max-width:300px;font-size:.85rem;line-height:1.55}@media (width<=900px){.sidebar{height:auto;min-height:unset;position:static}.topbar{padding:.75rem 1rem}}
