@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap");:root{--bg:#0c0e14;--bg-elevated:#13161f;--border:#1e2433;--text:#e6edf3;--text-muted:#8b949e;--accent:#58a6ff;--accent-dim:#388bfd66;--positive:#3fb950;--negative:#f85149;--chart-qual:#79c0ff;--chart-mom:#d2a8ff;--chart-minvol:#7ee787;--chart-value:#ffa657;--chart-size:#ff7b72;--chart-iwf:#a5d6ff}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:DM Sans,system-ui,sans-serif;background:var(--bg);min-height:100vh}body,html,select{color:var(--text)}select{font-family:JetBrains Mono,monospace;font-size:.9rem;padding:.5rem 1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .2s}select:focus,select:hover{border-color:var(--accent);outline:none}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border);stroke-opacity:.5}.recharts-text{fill:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.main{max-width:1100px;margin:0 auto;padding:2rem 1.5rem;min-height:100vh}.header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.header h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.subtitle{color:var(--text-muted);font-size:.95rem;margin-top:.25rem}.period-select{display:flex;flex-direction:column;gap:.35rem}.period-select label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.section{margin-bottom:2.5rem}.section h2{font-size:1rem;font-weight:500;color:var(--text-muted);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.04em}.chart-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;min-height:200px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:1rem;gap:1rem}.metric{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.9rem 1rem}.metric-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.35rem}.metric-value{font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:500}.metric-value.positive{color:var(--positive)}.metric-value.negative{color:var(--negative)}.empty-state{color:var(--text-muted);font-size:.9rem;padding:2rem;text-align:center}.empty-state.full{margin-top:4rem}.empty-state code{background:var(--bg-elevated);padding:.2rem .5rem;border-radius:4px;font-size:.85em}.loading{text-align:center;padding:4rem}.footer,.loading{color:var(--text-muted)}.footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:.8rem}.comparison-table-wrap{overflow-x:auto}.comparison-table{width:100%;border-collapse:collapse;font-size:.78rem;white-space:nowrap}.comparison-table td,.comparison-table th{padding:.35rem .45rem;text-align:right;border-bottom:1px solid var(--border)}.comparison-table th{color:var(--text-muted);font-weight:500}.comparison-table .period-cell{text-align:left;font-weight:500}.comparison-table td.positive{color:var(--positive)}.comparison-table td.negative{color:var(--negative)}.comparison-table td.na{color:var(--text-muted);opacity:.7}.comparison-table .group-start{border-left:1px solid var(--border)}.portfolio-chart-wrap{display:flex;flex-direction:column;gap:.5rem}.chart-toggles{display:flex;gap:1rem;flex-wrap:wrap}.toggle-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.85rem;color:var(--text-muted)}.toggle-label input[type=checkbox]{accent-color:var(--accent)}.toggle-label input:disabled{cursor:not-allowed;opacity:.5}.toggle-label span{-webkit-user-select:none;-moz-user-select:none;user-select:none}.header-right{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.tabs{display:flex;gap:.25rem}.tab{padding:.5rem 1rem;font-size:.9rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:background .2s,border-color .2s,color .2s}.tab:hover{color:var(--text);border-color:var(--text-muted)}.tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.train-tab{margin-top:.5rem}.train-desc{color:var(--text-muted);font-size:.9rem;margin-bottom:1.25rem}.train-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:1rem 1.5rem;gap:1rem 1.5rem;align-items:end;margin-bottom:1rem}.form-row{display:flex;flex-direction:column;gap:.35rem}.form-row label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.form-row input{font-family:JetBrains Mono,monospace;font-size:.9rem;padding:.5rem .6rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text)}.form-row input:focus{outline:none;border-color:var(--accent)}.form-row input:disabled,.form-row select:disabled{opacity:.7;cursor:not-allowed}.form-row-full{grid-column:1/-1}.form-hint{font-size:.75rem;color:var(--text-muted);margin-top:.25rem;display:block}.train-run-btn{padding:.6rem 1.25rem;font-size:.95rem;font-weight:500;background:var(--accent);color:var(--bg);border:none;border-radius:6px;cursor:pointer;transition:opacity .2s}.train-run-btn:hover:not(:disabled){opacity:.9}.train-run-btn:disabled{opacity:.6;cursor:not-allowed}.train-tab .section h3{font-size:.9rem;font-weight:500;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em}.chart-caption{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem;line-height:1.4}.export-code{font-size:.8rem;margin-top:.75rem;padding:.75rem;background:var(--bg);border-radius:6px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.chart-card h3{font-size:.9rem;font-weight:500;color:var(--text-muted);margin-bottom:.5rem}.terminal-wrap{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:1rem;max-height:360px;overflow:auto}.terminal{font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.5;color:var(--text-muted);white-space:pre-wrap;word-break:break-all;margin:0}