:root{--bg:#0b0d12;--surface:#12151c;--border:#232834;--text:#e6e9ef;--text-muted:#9aa3b2;--accent:#5b8cff;--positive:#34c98f;--negative:#ef6b6b;--warning-bg:#2a2410;--warning-border:#6b5a12}@media (prefers-color-scheme:light){:root{--bg:#f5f6f8;--surface:#ffffff;--border:#dde1e8;--text:#10131a;--text-muted:#565f70;--accent:#2f5fe0;--positive:#15804a;--negative:#c23434;--warning-bg:#fff8e0;--warning-border:#e0c34a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--accent)}.app-shell{max-width:1080px;margin:0 auto;padding:1.5rem 1rem 4rem}.top-bar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.top-bar h1{font-size:1.25rem;margin:0}.mode-banner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:8px;padding:.6rem 1rem;margin-bottom:1.5rem;font-size:.9rem}.mode-badge{color:var(--accent)}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.tabs a{padding:.6rem 1rem;text-decoration:none;color:var(--text-muted);border-bottom:2px solid transparent}.tabs a[data-active=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.card-header h2{margin:0;font-size:1.05rem}.tag{font-size:.75rem;font-family:ui-monospace,monospace}.callout,.tag{color:var(--text-muted)}.callout{font-size:.85rem;background:color-mix(in srgb,var(--warning-bg) 60%,transparent);border:1px solid var(--warning-border);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.callout code{font-size:.8em}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:1rem;gap:1rem;margin:0 0 1rem}.stat-grid dt{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.stat-grid dd{margin:.15rem 0 0;font-size:1.2rem;font-weight:600}.positive{color:var(--positive)}.negative{color:var(--negative)}.sparkline{display:block;margin:.5rem 0 1rem}table.trades{width:100%;border-collapse:collapse;font-size:.85rem;overflow-x:auto;display:block}table.trades caption{text-align:left;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}table.trades td,table.trades th{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border)}.connection-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:.75rem;gap:.75rem;padding:0;margin:0 0 .75rem}.connection-card{border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.status{font-size:.8rem;display:inline-flex;align-items:center;gap:.3rem}.muted,.status,.status-disconnected{color:var(--text-muted)}.muted{font-size:.85rem}.proposal-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:1rem;gap:1rem;align-items:end}.proposal-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.proposal-form input,.proposal-form select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;font-size:.95rem}.proposal-form button,.row-actions button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.55rem 1rem;font-size:.9rem;cursor:pointer}.row-actions{display:flex;gap:.4rem}.row-actions button{padding:.35rem .6rem;font-size:.75rem}.status-pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid var(--border)}.status-acknowledged,.status-filled,.status-open{color:var(--positive);border-color:var(--positive)}.status-cancelled,.status-rejected,.status-risk_rejected,.status-unknown{color:var(--negative);border-color:var(--negative)}.status-unknown{font-weight:700}.status-partial,.status-proposed,.status-reconciled,.status-risk_approved,.status-submitting{color:var(--text-muted)}.inline-close-form{display:flex;gap:.4rem;align-items:center}.inline-close-form input{width:90px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.3rem .4rem;font-size:.8rem}.status-running{color:var(--positive);border-color:var(--positive);font-weight:700}.status-completed,.status-stopped{color:var(--text-muted)}.login-shell{min-height:80vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:420px}.login-form{gap:1rem}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{gap:.3rem;font-size:.8rem;color:var(--text-muted)}.login-form input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.55rem .65rem;font-size:.95rem}.login-form button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.65rem 1rem;font-size:.95rem;cursor:pointer}.login-error{font-weight:600;margin:0 0 1rem}.user-bar{display:flex;align-items:center;gap:.6rem;font-size:.85rem}.logout-button{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:6px;padding:.3rem .6rem;font-size:.8rem;cursor:pointer}.logout-button:hover{color:var(--negative);border-color:var(--negative)}