:root{--bg: #0f1115;--surface: #171a21;--surface-2: #1f232c;--border: #2a2f3a;--text: #e8eaed;--text-dim: #9aa2b1;--accent: #5b8def;--accent-dim: #2c3f66;--good: #3ec28f;--bad: #e65b6d;--warn: #e0a83e;--radius: 10px;--variant-0: #5b8def;--variant-1: #e0a83e;--variant-2: #3ec28f;--variant-3: #c26be0;--variant-4: #e6795b;--variant-5: #5be0d3}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .brand{font-weight:700;font-size:16px;padding:0 12px 20px}.nav-link{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--radius);color:var(--text-dim);font-weight:500}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-dim);color:var(--text)}.nav-badge{margin-left:auto;background:var(--bad);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 6px}.main{flex:1;padding:28px 36px;max-width:1200px}.page-title{font-size:22px;font-weight:700;margin:0 0 20px}.page-subtitle{color:var(--text-dim);margin:-14px 0 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:9px 16px;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--bad)}.btn.small{padding:5px 10px;font-size:12px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field label{font-size:12px;color:var(--text-dim);font-weight:600}.field input,.field select,.field textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.error-banner{background:#e65b6d1f;border:1px solid var(--bad);color:var(--bad);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:13px}.warn-banner{background:#e0a83e1f;border:1px solid var(--warn);color:var(--warn);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:13px}.info-banner{background:#5b8def1a;border:1px solid var(--accent);color:var(--text);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:13px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--text-dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em}tr.winner-row{background:#3ec28f14}tr.excluded-row{opacity:.5}.badge{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.badge.status-running{background:#5b8def2e;color:var(--accent)}.badge.status-draft{background:var(--surface-2);color:var(--text-dim)}.badge.status-paused,.badge.status-maturing{background:#e0a83e2e;color:var(--warn)}.badge.status-done{background:#3ec28f2e;color:var(--good)}.badge.status-cancelled{background:#e65b6d2e;color:var(--bad)}.variant-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.profit-positive{color:var(--good);font-weight:600}.profit-negative{color:var(--bad);font-weight:600}.stat-row{display:flex;gap:24px;margin-bottom:18px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:2px}.stat .label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.stat .value{font-size:20px;font-weight:700}.actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:360px}.footnote{color:var(--text-dim);font-size:12px;margin-top:8px}.empty-state{color:var(--text-dim);padding:30px 0;text-align:center}.spinner-inline{color:var(--text-dim);font-size:13px}
