:root{--bg: #0f1412;--bg-elev: #1a221e;--ink: #e8efe9;--muted: #8fa396;--line: #2a3830;--accent: #c4a35a;--accent-2: #3d8f6e;--danger: #c45a5a;--paper: #d4b96a;--real: #5ac48a;--backtest: #6a9fd4;--font-display: "Source Serif 4", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-mono);background:radial-gradient(ellipse 80% 50% at 10% -10%,#1e3a2f 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 90% 0%,#2a2418 0%,transparent 50%),var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:var(--accent-2);border:1px solid transparent;color:#04140e;padding:.45rem .85rem;border-radius:2px}button.secondary{background:transparent;border-color:var(--line);color:var(--ink)}button.danger{background:var(--danger);color:#1a0808}input,select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:2px;padding:.4rem .55rem;width:100%}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);background:#0f1412eb;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem}.brand{font-family:var(--font-display);font-size:1.55rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}.brand span{display:block;font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:.35rem}.nav{display:flex;flex-direction:column;gap:.2rem}.nav a{padding:.4rem .55rem;border-radius:2px;color:var(--muted);font-size:.82rem}.nav a.active,.nav a:hover{background:var(--bg-elev);color:var(--ink)}.mode-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:2px}.mode-pill[data-mode=Paper]{color:var(--paper);border-color:color-mix(in srgb,var(--paper) 40%,var(--line))}.mode-pill[data-mode=Real]{color:var(--real);border-color:color-mix(in srgb,var(--real) 40%,var(--line))}.mode-pill[data-mode=Backtest]{color:var(--backtest);border-color:color-mix(in srgb,var(--backtest) 40%,var(--line))}.main{padding:1.25rem 1.5rem 2rem;overflow:auto}.page-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem}.page-head h1{font-family:var(--font-display);font-size:1.75rem;margin:0;font-weight:600}.page-head p{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}.panel{background:#1a221eb8;border:1px solid var(--line);border-radius:2px;padding:1rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid{display:grid;gap:.75rem}.form-grid label{display:grid;gap:.3rem;font-size:.78rem;color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:.75rem}th,td{border-bottom:1px solid var(--line);padding:.4rem .45rem;text-align:left;white-space:nowrap}th{color:var(--muted);font-weight:500;background:#0003;position:sticky;top:0}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);padding:2rem;background:linear-gradient(160deg,rgba(61,143,110,.12),transparent 40%),var(--bg-elev);border:1px solid var(--line)}.login-card h1{font-family:var(--font-display);margin:0 0 .35rem}.login-card p{color:var(--muted);margin:0 0 1.25rem;font-size:.9rem}.row-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.metrics{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:.85rem;font-size:.8rem}.metrics strong{color:var(--accent);font-weight:600}.toast{position:fixed;right:1rem;bottom:1rem;background:var(--bg-elev);border:1px solid var(--accent);padding:.75rem 1rem;max-width:360px;font-size:.8rem;animation:rise .35s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.nav{flex-direction:row;flex-wrap:wrap}.grid-2{grid-template-columns:1fr}}
