:root {
  --bg: #0f1115;
  --panel: #161a22;
  --panel-2: #1e2330;
  --line: #2a3142;
  --text: #e7ecf3;
  --muted: #8b95a8;
  --accent: #4ea3ff;
  --ok: #4ade80;
  --warn: #fbbf24;
  --error: #f87171;
}
* { box-sizing: border-box; }
html, body { background: var(--bg); color: var(--text); margin: 0; font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

.topbar { display:flex; align-items:center; justify-content:space-between; padding:.75rem 1.5rem; border-bottom:1px solid var(--line); background:var(--panel); }
.topbar .brand-lockup { display:flex; align-items:baseline; gap:.5rem; }
.topbar .brand { font-weight:700; letter-spacing:.06em; }
.topbar .company { color:var(--muted); font-size:.8rem; }
.topbar nav { display:flex; gap:1rem; align-items:center; }
.topbar .user { color: var(--muted); }

.container { max-width: 1200px; margin: 1.5rem auto; padding: 0 1.5rem; }

h1, h2, h3 { margin-top:.2rem; }
h1 { font-size:1.4rem; }
h2 { font-size:1.15rem; color: var(--muted); }

button, input, select, textarea {
  background: var(--panel-2); color: var(--text);
  border: 1px solid var(--line); border-radius:6px; padding:.45rem .65rem;
  font: inherit;
}
button { cursor: pointer; }
button:hover { border-color: var(--accent); }
button.primary { background: var(--accent); color:#001833; border-color: var(--accent); font-weight:600; }
button.link { background:none; border:none; color: var(--accent); padding:0; }
button.link:hover { text-decoration: underline; }
button.danger { color: var(--error); border-color: var(--error); }

.flashes { list-style:none; padding:0; margin: 0 0 1rem 0; }
.flash { padding:.5rem .75rem; border-radius:6px; margin-bottom:.35rem; }
.flash-ok { background: #0f3a22; color:#9bf3b8; }
.flash-error { background:#3a1313; color:#fca5a5; }

.card { background: var(--panel); border:1px solid var(--line); border-radius:8px; padding:1rem 1.25rem; margin-bottom:1rem; }
.row { display:flex; gap:1rem; flex-wrap:wrap; }
.row > .col { flex:1 1 320px; }

table { width:100%; border-collapse: collapse; font-size:.92rem; }
th, td { text-align:left; padding:.4rem .55rem; border-bottom:1px solid var(--line); }
th { color: var(--muted); font-weight:600; }
tr:hover td { background: var(--panel-2); }

td.right, th.right { text-align:right; font-variant-numeric: tabular-nums; }
td input[type=number], td input[type=text], td select { width: 100%; padding:.25rem .35rem; }

.badge { display:inline-block; padding: 0 .45rem; border-radius:10px; font-size:.75rem; }
.badge.error { background:#3a1313; color:#fca5a5; }
.badge.warning { background:#3a2c0d; color:#fcd34d; }
.badge.info { background:#0f2a3a; color:#7dd3fc; }
.badge.ok { background:#0f3a22; color:#9bf3b8; }

.muted { color: var(--muted); }
.kbd { background: var(--panel-2); border:1px solid var(--line); border-radius:4px; padding: 0 .35rem; font-family: ui-monospace, monospace; font-size:.8rem; }

.excluded { opacity: .45; text-decoration: line-through; }

form.inline { display:inline-flex; gap:.5rem; align-items:center; }

.plot-wrap { background: var(--panel); border:1px solid var(--line); border-radius:8px; padding:.5rem; }
