:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f3f6;--border:#dfe3e9;--border-strong:#c6ccd6;--text:#171b21;--text-muted:#667085;--text-faint:#98a2b3;--accent:#2f5fd4;--accent-soft:#e8effc;--up:#067647;--up-soft:#e3f5ec;--down:#b42318;--down-soft:#fdeceb;--warn:#b54708;--warn-soft:#fef4e6;--chart-price:#2f5fd4;--chart-volume:#b3651a;--chart-turnover:#8442cc;--chart-delivery:#137a52;--chart-high:#38915e;--chart-low:#a8201a;--chart-avg-high:#7aab8d;--chart-avg-low:#c2756d;--chart-grid:#e6e9ee;--candle-up:#16a34a;--candle-down:#dc2626;--admin-bar:#fdf6ec;--admin-border:#ecdcc4;--admin-active:#f6e6cd;--admin-hover:#f8efe1;--admin-ink:#8a5a12;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018280a;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1116;--surface:#161b22;--surface-2:#1c222b;--border:#272e3a;--border-strong:#3a434f;--text:#e6edf3;--text-muted:#93a1b1;--text-faint:#6e7c8c;--accent:#6ea0ff;--accent-soft:#17233b;--up:#3fb950;--up-soft:#10261a;--down:#f85149;--down-soft:#2c1618;--warn:#e3a008;--warn-soft:#2a2010;--shadow:0 1px 2px #0006;--chart-price:#4d8bf0;--chart-volume:#c07f2e;--chart-turnover:#a06ef0;--chart-delivery:#26a17e;--chart-high:#43ab6f;--chart-low:#cf4036;--chart-avg-high:#6f9a83;--chart-avg-low:#a8635c;--chart-grid:#232b36;--candle-up:#22c55e;--candle-down:#ef4444;--admin-bar:#1d1a14;--admin-border:#3a3122;--admin-active:#2e2718;--admin-hover:#262015;--admin-ink:#e0b062}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:20px;height:56px;padding:0 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;color:var(--text);white-space:nowrap;font-size:15px;font-weight:700}.brand span{color:var(--accent)}.nav{flex:1;gap:4px;display:flex;overflow-x:auto}.nav a{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;padding:6px 12px;font-weight:500}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent)}.container{width:100%;max-width:1400px;margin:0 auto;padding:24px 20px 64px}@media (width<=640px){.topbar{gap:12px;padding:0 12px}.container{padding:16px 12px 48px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 16px;display:flex}.card-head h2{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:650}.card-head p{color:var(--text-muted);margin:0;font-size:12.5px}.card-body{padding:16px}.btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);font:inherit;cursor:pointer;white-space:nowrap;padding:7px 13px;font-weight:550}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn-danger{color:var(--down);border-color:var(--down);background:0 0}.btn-sm{padding:4px 9px;font-size:12.5px}.input,select.input,textarea.input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font:inherit;padding:7px 10px}.input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--text-muted);font-size:12.5px;font-weight:600}.field .hint{color:var(--text-faint);font-size:12px}.grid-form{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.pill{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:650;display:inline-block}.pill.up{background:var(--up-soft);color:var(--up);border-color:#0000}.pill.down{background:var(--down-soft);color:var(--down);border-color:#0000}.pill.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.pill.accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.up{color:var(--up)}.down{color:var(--down)}.alert{border-radius:var(--radius-sm);border:1px solid #0000;padding:10px 12px;font-size:13px}.alert-error{background:var(--down-soft);color:var(--down)}.alert-warn{background:var(--warn-soft);color:var(--warn)}.alert-ok{background:var(--up-soft);color:var(--up)}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}table.data{border-collapse:collapse;width:100%;min-width:900px;font-size:13px}table.data th,table.data td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px}table.data th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--surface-2);font-size:11px;font-weight:650;position:sticky;top:0}table.data th:first-child,table.data td:first-child{text-align:left;background:var(--surface);z-index:1;position:sticky;left:0}table.data th:first-child{background:var(--surface-2);z-index:2}table.data tbody tr:hover td,table.data tbody tr:hover td:first-child{background:var(--surface-2)}table.data td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}td.cell-high{color:var(--up);font-weight:600}td.cell-low{color:var(--down);font-weight:600}td.on-date{color:var(--text-faint);font-size:12px}.period-name{font-weight:620}.period-sub{color:var(--text-faint);font-size:11.5px;font-weight:400;display:block}.band{align-items:center;gap:8px;min-width:140px;display:flex}.band-track{background:linear-gradient(90deg, var(--down) 0%, var(--text-faint) 50%, var(--up) 100%);opacity:.85;border-radius:999px;flex:1;height:6px;position:relative}.band-marker{background:var(--text);width:3px;height:12px;box-shadow:0 0 0 2px var(--surface);border-radius:2px;position:absolute;top:-3px;transform:translate(-50%)}.band-value{font-family:var(--mono);text-align:right;width:34px;font-size:12px}.stock-grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px;display:grid}.stock-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;padding:16px;transition:border-color .12s,transform .12s;display:block}.stock-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.stock-card .sym{letter-spacing:-.01em;font-size:16px;font-weight:700}.stock-card .nm{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12.5px;overflow:hidden}.stock-card .price{align-items:baseline;gap:8px;margin-top:12px;display:flex}.stock-card .price .p{font-family:var(--mono);font-size:19px;font-weight:600}.stock-card .cov{color:var(--text-faint);margin-top:8px;font-size:11.5px}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.detail-head h1{letter-spacing:-.02em;margin:0;font-size:24px}.detail-head .sub{color:var(--text-muted);margin-top:2px;font-size:13px}.quote{text-align:right}.quote .big{font-family:var(--mono);font-size:26px;font-weight:650}.section{margin-top:24px}.intel{color:var(--text-muted);background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0;padding:10px 14px;font-size:12.5px}.intel-row td{background:var(--surface)!important;padding:0!important}.intel-wrap{white-space:normal;max-width:900px;padding:4px 12px 12px}.chart-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:14px;padding:12px 16px;display:flex}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.segmented button{appearance:none;background:var(--surface);color:var(--text-muted);font:inherit;cursor:pointer;border:0;border-right:1px solid var(--border);padding:6px 14px;font-weight:550}.segmented button:last-child{border-right:0}.segmented button:hover:not(:disabled){background:var(--surface-2)}.segmented button[aria-pressed=true]{background:var(--accent);color:#fff}.segmented button:disabled{opacity:.4;cursor:not-allowed}.chart-stack{gap:14px;display:grid}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center-page{place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{width:100%;max-width:380px}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ann-list{margin:0;padding:0;list-style:none}.ann-item{border-bottom:1px solid var(--border);padding:13px 0}.ann-item:last-child{border-bottom:0}.ann-item:first-child{padding-top:0}.ann-meta{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:5px;display:flex}.ann-chip{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:10.5px;font-weight:700}.ann-high{background:var(--down-soft);color:var(--down)}.ann-med{background:var(--warn-soft);color:var(--warn)}.ann-low{background:var(--surface-2);color:var(--text-muted)}.ann-noise{color:var(--text-faint);border:1px solid var(--border);background:0 0}.ann-symbol{color:var(--accent);font-size:13px;font-weight:700}.ann-symbol:hover{text-decoration:underline}.ann-cat{color:var(--text-muted);background:var(--surface-2);border-radius:4px;padding:1px 7px;font-size:12px}.ann-when{color:var(--text-faint);white-space:nowrap;margin-left:auto;font-size:11.5px}.ann-subject{color:var(--text);margin:0;font-size:13.5px;line-height:1.45}.ann-attach{margin-top:5px;font-size:12px;display:inline-block}.ann-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;padding:12px 16px;display:flex}@media (width<=640px){.ann-when{width:100%;margin-left:0}}.verdict-badge{letter-spacing:.04em;border-radius:5px;padding:2px 9px;font-size:11.5px;font-weight:750;display:inline-block}.verdict-BUY{background:var(--up-soft);color:var(--up)}.verdict-SELL{background:var(--down-soft);color:var(--down)}.verdict-HOLD{background:var(--surface-2);color:var(--text-muted)}.ai-panel{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;white-space:normal;max-width:900px;padding:12px 14px}.ai-points{margin:9px 0 0;padding-left:20px}.ai-points li{margin-bottom:5px;font-size:13px;line-height:1.55}.ai-points li:last-child{margin-bottom:0}.ai-foot{color:var(--text-faint);margin-top:9px;font-size:11.5px}.btn-ai{padding:3px 9px;font-size:12px}textarea.input{font-family:var(--mono);resize:vertical;font-size:12.5px;line-height:1.5}.var-chip{font-family:var(--mono);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:4px;margin:2px 3px 2px 0;padding:1px 6px;font-size:11px;display:inline-block}.var-chip:hover{border-color:var(--accent);color:var(--accent)}table.ann-table{min-width:1080px}table.ann-table td{vertical-align:top;white-space:normal}table.ann-table td.nowrap{white-space:nowrap}.ann-subject{font-size:12.5px;font-weight:600}.ann-details{color:var(--text-muted);max-width:460px;font-size:12.5px;line-height:1.45}.ann-time{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12px}.ann-time b{color:var(--text-muted);font-weight:600;display:block}.ann-doc{background:var(--surface-2);border-radius:var(--radius-sm);border-left:3px solid var(--accent);white-space:pre-wrap;max-height:320px;font-size:12.5px;line-height:1.55;font-family:var(--sans);margin-top:8px;padding:10px 12px;overflow-y:auto}.admin-topbar{background:var(--admin-bar);border-bottom-color:var(--admin-border)}.admin-topbar .nav a.active{background:var(--admin-active);color:var(--admin-ink)}.admin-topbar .nav a:hover{background:var(--admin-hover)}.admin-tag{background:var(--admin-ink);color:var(--surface);letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;border-radius:4px;margin-left:8px;padding:1px 7px;font-size:10.5px;font-weight:750;display:inline-block}.nav-divider{background:var(--admin-border);flex:none;align-self:stretch;width:1px;margin:10px 6px}.adj-bar{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:11px 14px;font-size:12.5px;display:flex}.adj-bar b{color:var(--text)}.adj-list{flex-wrap:wrap;gap:4px 14px;margin-top:4px;display:flex}.adj-list span{color:var(--text-faint);font-size:11.5px}.audit-payload{font-family:var(--mono);color:var(--text-muted);background:var(--surface-2);white-space:pre-wrap;word-break:break-word;border-radius:4px;padding:2px 6px;font-size:11.5px}.insight{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;white-space:normal;max-width:780px;padding:11px 14px}.insight-head{color:var(--text-muted);margin-bottom:7px;font-size:13px}.insight-head b{color:var(--text);font-family:var(--mono)}.insight-points{margin:0;padding-left:19px}.insight-points li{font-size:13px;line-height:1.6}.insight-points b{font-family:var(--mono)}.status-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.status-grid>div{min-width:0}.status-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:3px;font-size:11.5px;display:block}.status-grid b{font-size:14px}
