*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d1117;--panel: #0d1117;--surface: #161b22;--border: #21262d;--border2: #30363d;--text: #c9d1d9;--text-sec: #8b949e;--muted: #6e7681;--muted2: #4d5460;--green: #3fb950;--red: #f85149;--blue: #58a6ff;--font: "Segoe UI", system-ui, -apple-system, sans-serif}[data-theme=light]{--bg: #f6f8fa;--panel: #ffffff;--surface: #ffffff;--border: #d0d7de;--border2: #d0d7de;--text: #1f2328;--text-sec: #57606a;--muted: #57606a;--muted2: #6e7781}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.5;transition:background .2s,color .2s}input,textarea,select{background:var(--panel);color:var(--text);border-color:var(--border2);transition:background .2s,color .2s,border-color .2s}.app{max-width:1600px;margin:0 auto;padding:24px 28px}.header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:20px}.header-left{display:flex;align-items:baseline;gap:12px}h1{font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.4px}.subtitle{color:var(--muted);font-size:12px}.tab-nav{flex-wrap:wrap;display:flex;gap:0;margin-bottom:20px;border-bottom:1px solid var(--border)}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;padding:8px 18px;margin-bottom:-1px;display:flex;align-items:center;gap:7px;transition:color .15s,border-color .15s;white-space:nowrap;flex-shrink:0}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--text);border-bottom-color:var(--blue);font-weight:600}.tab-badge{font-size:9px;font-weight:600;background:#58a6ff1f;color:#58a6ff;border-radius:8px;padding:1px 6px;letter-spacing:.04em;text-transform:uppercase}.summary-bar{display:flex;gap:28px}.stat{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.stat-label{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.stat-value{font-size:16px;font-weight:600;color:var(--text)}.stat-value.green{color:var(--green)}.stat-value.red{color:var(--red)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 900px){.grid{grid-template-columns:1fr}.card.span-2{grid-column:span 1}}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px 20px}.card.span-2{grid-column:span 2}.card h2{font-size:13px;font-weight:600;color:var(--text);margin-bottom:16px;display:flex;align-items:center;gap:8px}.badge-count{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:9px;background:var(--border);color:var(--muted);font-size:10px;font-weight:600}.date-badge{font-size:11px;color:var(--muted);font-weight:400;background:var(--border);padding:1px 7px;border-radius:10px}.subtitle-inline{font-size:11px;color:var(--muted);font-weight:400}.empty{color:var(--muted);padding:8px 0}.green{color:var(--green)}.red{color:var(--red)}.muted{color:var(--muted)}.sym{font-weight:600;color:var(--text)}code{font-family:SF Mono,Consolas,monospace;font-size:11px;background:var(--border);padding:1px 5px;border-radius:3px}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:6px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#8080800f}.theme-toggle{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 10px 4px 8px;cursor:pointer;font-family:var(--font);font-size:11px;font-weight:600;color:var(--muted);transition:color .15s,border-color .15s,background .15s;white-space:nowrap}.theme-toggle:hover{color:var(--text);border-color:var(--blue)}.theme-toggle-icon{font-size:13px;line-height:1}.signal-table{width:100%;border-collapse:collapse}.signal-table th{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;padding:5px 10px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}.signal-table th:first-child{text-align:left}.signal-table td{padding:7px 10px;border-bottom:1px solid var(--border);text-align:center}.signal-table td:first-child{text-align:left}.signal-table tr:last-child td{border-bottom:none}.sym-cell{display:flex;align-items:center;gap:7px}.asset-badge{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:1px 5px;border-radius:3px;background:var(--border);color:var(--muted)}.asset-badge.equity{background:#1c2c4e;color:#58a6ff}.asset-badge.bond{background:#1c2e2e;color:#3fb950}.asset-badge.commodity{background:#2e2c1c;color:#e3b341}.asset-badge.crypto{background:#2e1c2e;color:#bc8cff}.sig-long{color:var(--green);font-weight:700;font-size:14px}.sig-short{color:var(--red);font-weight:700;font-size:14px}.sig-flat{color:var(--border)}.ticker-name{font-size:10px;color:var(--muted);font-weight:400;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.ai-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.5px;padding:1px 5px;border-radius:3px;background:#1e1a3e;color:#a78bfa;vertical-align:middle;line-height:1.4;margin-left:4px}.ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.two-col-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 860px){.ops-grid,.two-col-grid{grid-template-columns:1fr}}.env-row{display:grid;grid-template-columns:220px 1fr auto;gap:12px;padding:6px 0;border-bottom:1px solid var(--border);align-items:start}@media (max-width: 600px){.env-row{grid-template-columns:1fr;gap:3px}}@media (max-width: 768px){.app{padding:10px 12px 24px}h1{font-size:16px}.subtitle{display:none}.tab-btn{padding:8px 10px;font-size:12px}.tab-badge{display:none}.summary-bar{gap:14px}.stat-value{font-size:13px}}
