/* Groundwork — design tokens and shared components (landing + app).
   A sibling of Traza: the same editorial grammar (serif display, quiet sans, mono labels,
   hairlines not shadows, numbered sections), set at night because imagery reads best on dark.
   Accent budget: leaf green for the one lit thing, glow for HUD lines, copper for "B" and marks,
   amber only for warnings, red only for real alarms. */
:root{
  --ink-0:#070c0a;          /* stage, deepest */
  --ink-1:#0c1411;          /* panels */
  --ink-2:#121c18;          /* cards */
  --ink-3:#1a2621;          /* raised / hover */
  --line:rgba(158,216,184,.12);
  --line-2:rgba(158,216,184,.24);
  --line-3:rgba(158,216,184,.42);
  --text:#e9efe9;
  --text-2:#aab8b0;
  --text-3:#6e8077;
  --leaf:#5da983;
  --leaf-2:#79c39d;
  --glow:#9ed8b8;
  --copper:#c98a5e;
  --amber:#e2b155;
  --red:#e06a5a;
  --paper:#f6f3ec;
  --paper-2:#ece8dd;
  --paper-ink:#16241f;
  --paper-ink-2:#4b5a53;
  --paper-line:#d9d4c6;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Consolas,'Cascadia Mono',monospace;
  --r:6px;
  --r-lg:10px;
  --ease:cubic-bezier(.2,.7,.2,1);
  /* legacy names read by hub.css / hub.js */
  --bg:var(--ink-0);--bg2:var(--ink-1);--panel:rgba(12,20,17,.94);--ink:var(--text);--dim:var(--text-2);
  --faint:var(--text-3);--accent:var(--leaf);--accent2:var(--glow);--warn:var(--amber);--cyan:#7fc8d8;--ok:#86d39b;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink-0);color:var(--text);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--glow);outline-offset:2px}
.mono{font-family:var(--mono)}
.serif{font-family:var(--serif);font-weight:400}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* kicker: the mono label that opens every block */
.kick{font:500 10.5px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3)}
.kick b{color:var(--glow);font-weight:500}
.kick .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--leaf);margin-right:8px;vertical-align:1px;box-shadow:0 0 10px var(--leaf)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-2);background:transparent;border-radius:var(--r);
  padding:9px 14px;font-size:13px;text-decoration:none;color:var(--text);transition:background .15s,border-color .15s;white-space:nowrap}
.btn:hover{background:var(--ink-3);border-color:var(--line-3)}
.btn.primary{background:var(--leaf);border-color:var(--leaf);color:#06110c;font-weight:600}
.btn.primary:hover{background:var(--leaf-2);border-color:var(--leaf-2)}
.btn.ghost{border-color:transparent}
.btn.small{padding:6px 10px;font-size:12px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn .arr{font-family:var(--mono);opacity:.8}

/* chips */
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:999px;padding:2px 9px;
  font:500 10.5px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}
.chip.ok,.chip.G,.chip.complete{color:var(--ok);border-color:rgba(134,211,155,.35)}
.chip.warn,.chip.A,.chip.ongoing,.chip.active{color:var(--amber);border-color:rgba(226,177,85,.35)}
.chip.bad,.chip.R{color:var(--red);border-color:rgba(224,106,90,.4)}
.chip.leaf{color:var(--glow);border-color:var(--line-3)}
.chip.copper{color:var(--copper);border-color:rgba(201,138,94,.45)}
.rag{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--text-3)}
.rag.G{background:var(--ok)}.rag.A{background:var(--amber)}.rag.R{background:var(--red)}

/* fields */
.field{display:flex;flex-direction:column;gap:5px;margin:0 0 12px}
.field label,.field .lab{font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}
.input,.field input,.field select,.field textarea{width:100%;background:var(--ink-0);border:1px solid var(--line-2);border-radius:var(--r);padding:9px 11px;font-size:13.5px;color:var(--text)}
.field textarea{min-height:84px;resize:vertical;line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:none;border-color:var(--glow)}
.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}

/* drawn icons always carry a size (a bare svg in a flex button either vanishes or fills it) */
.ic{width:15px;height:15px;flex:none;display:inline-block;vertical-align:-3px}
.chip .ic{width:12px;height:12px;vertical-align:-2px}
.btn.small .ic{width:14px;height:14px}

/* the drawn mark */
.gw-mark{display:inline-block;width:22px;height:22px;flex:none}
