:root {
  --coral: #E8533A; --coral-ink: #C8442E; --coral-soft: #FCE9E4;
  --dark: #0D0D0D; --ink: #0D0D0D; --ink-soft: #555; --ink-faint: #999;
  --line: #ededed; --paper: #fff;
  --ok: #2f855a; --ok-soft: #e6f4ec; --warn: #b7791f; --warn-soft: #fbf1df; --danger: #b3261e; --danger-soft: #fbe9e7;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --shadow-soft: 0 1px 2px rgba(13,13,13,.04), 0 2px 8px rgba(13,13,13,.05);
  --shadow-coral: 0 8px 32px rgba(232,83,58,.12), 0 2px 8px rgba(232,83,58,.08);
  --surface: #fff; --glass: rgba(255,255,255,.82); --header-glass: rgba(255,255,255,.72);
  --muted-bg: #f4f4f4; --track: #f1f1f1; --subtle-bg: #fafafa; --row-line: #f5f5f5; --grid: #f0f0f0;
  --placeholder: #d6d6d6; --dot-idle: #d4d4d4; --dash-border: #e2e2e2; --itm: #fcfaf7; --ref-line: #cfcfcf;
  --hover-line: #bdbdbd; --on-dark: #fff; --term-bg: #0D0D0D; --term-border: transparent;
  --bloom-a: rgba(232,83,58,.10); --bloom-b: rgba(245,158,66,.12); --bloom-c: rgba(232,83,58,.07);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --coral: #F0634A; --coral-ink: #FF8C73; --coral-soft: rgba(240,99,74,.16);
    --dark: #F4F4F5; --ink: #EDEDEF; --ink-soft: #A5A5AB; --ink-faint: #6F6F76;
    --line: #26262A; --paper: #0B0B0D;
    --ok: #4FC48C; --ok-soft: rgba(79,196,140,.13); --warn: #E3A93F; --warn-soft: rgba(227,169,63,.14);
    --danger: #FF6F61; --danger-soft: rgba(255,111,97,.13);
    --shadow-soft: 0 1px 2px rgba(0,0,0,.4), 0 2px 10px rgba(0,0,0,.35);
    --shadow-coral: 0 8px 32px rgba(240,99,74,.14), 0 2px 8px rgba(0,0,0,.4);
    --surface: #141417; --glass: rgba(20,20,23,.8); --header-glass: rgba(11,11,13,.72);
    --muted-bg: #1D1D21; --track: #222226; --subtle-bg: #18181B; --row-line: #1E1E22; --grid: #1F1F23;
    --placeholder: #3A3A40; --dot-idle: #45454C; --dash-border: #2E2E33; --itm: #17161A; --ref-line: #45454C;
    --hover-line: #55555C; --on-dark: #0D0D0D; --term-bg: #060607; --term-border: #26262A;
    --bloom-a: rgba(240,99,74,.10); --bloom-b: rgba(245,158,66,.06); --bloom-c: rgba(240,99,74,.06);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --coral: #F0634A; --coral-ink: #FF8C73; --coral-soft: rgba(240,99,74,.16);
  --dark: #F4F4F5; --ink: #EDEDEF; --ink-soft: #A5A5AB; --ink-faint: #6F6F76;
  --line: #26262A; --paper: #0B0B0D;
  --ok: #4FC48C; --ok-soft: rgba(79,196,140,.13); --warn: #E3A93F; --warn-soft: rgba(227,169,63,.14);
  --danger: #FF6F61; --danger-soft: rgba(255,111,97,.13);
  --shadow-soft: 0 1px 2px rgba(0,0,0,.4), 0 2px 10px rgba(0,0,0,.35);
  --shadow-coral: 0 8px 32px rgba(240,99,74,.14), 0 2px 8px rgba(0,0,0,.4);
  --surface: #141417; --glass: rgba(20,20,23,.8); --header-glass: rgba(11,11,13,.72);
  --muted-bg: #1D1D21; --track: #222226; --subtle-bg: #18181B; --row-line: #1E1E22; --grid: #1F1F23;
  --placeholder: #3A3A40; --dot-idle: #45454C; --dash-border: #2E2E33; --itm: #17161A; --ref-line: #45454C;
  --hover-line: #55555C; --on-dark: #0D0D0D; --term-bg: #060607; --term-border: #26262A;
  --bloom-a: rgba(240,99,74,.10); --bloom-b: rgba(245,158,66,.06); --bloom-c: rgba(240,99,74,.06);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: var(--paper); color: var(--ink); font-family: var(--sans);
  -webkit-font-smoothing: antialiased; font-feature-settings: "ss01", "cv01";
}
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(60% 50% at 12% 0%, var(--bloom-a) 0%, transparent 60%),
    radial-gradient(50% 45% at 100% 12%, var(--bloom-b) 0%, transparent 55%),
    radial-gradient(45% 40% at 88% 100%, var(--bloom-c) 0%, transparent 60%);
}
body > * { position: relative; z-index: 1; }
a { color: inherit; }
.logo-mark { font-family: var(--mono); font-weight: 700; letter-spacing: -.02em; color: var(--dark); text-decoration: none; }
.logo-mark .dot { color: var(--coral); }
.label { font-family: var(--mono); text-transform: uppercase; color: var(--coral); font-size: .7rem; letter-spacing: .08em; }
.faint { color: var(--ink-faint); }
.soft { color: var(--ink-soft); }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  border: 0; border-radius: 999px; background: var(--dark); color: var(--on-dark); cursor: pointer;
  padding: .8rem 1.4rem; font: 500 .9rem var(--sans); text-decoration: none;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-2px); background: var(--coral); color: #fff; box-shadow: 0 8px 24px rgba(232,83,58,.4); }
.btn:disabled { opacity: .6; transform: none; background: var(--dark); box-shadow: none; cursor: default; }
.btn.ghost { background: transparent; color: var(--ink-soft); padding: .5rem .9rem; }
.btn.ghost:hover { color: var(--coral); background: transparent; box-shadow: none; transform: none; }
.form-input {
  width: 100%; padding: 12px 0; border: 0; border-bottom: 1px solid var(--dark); background: transparent;
  font: 1rem var(--sans); color: var(--ink); outline: none; border-radius: 0; transition: border-color .3s ease;
}
.form-input:focus { border-bottom-color: var(--coral); }
.card {
  background: var(--glass); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-soft);
}

.theme-btn { border: 1px solid var(--line); background: var(--surface); color: var(--ink-soft); width: 34px; height: 34px;
  border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.theme-btn:hover { color: var(--coral); border-color: rgba(232,83,58,.4); }
.theme-btn svg { width: 16px; height: 16px; }
body, .card, .top, .seg button, .chip, .pill, .stat, .tile { transition: background-color .25s ease, border-color .25s ease, color .25s ease; }
