/* ==========================================================================
   Depot — multi-tier POS and inventory
   One stylesheet for the whole clickable prototype.

   Every colour is a token, so a direction can be swapped at the root
   (see [data-look="b"] / [data-look="c"]) without touching a screen.
   ========================================================================== */

/* ── 1 · Tokens ─────────────────────────────────────────────────────────── */

:root{
  /* A · Depot — painted concrete, ink, one hi-vis marker (the built direction) */
  --floor:#EDEFEA; --deck:#FFFFFF; --sunk:#E0E3DC;
  --ink:#14181A; --ink-2:#5A615E; --muted:#8C938E; --rule:#CDD1C9;
  --panel:#1B2220; --panel-2:#2A322F; --panel-3:#39413E;
  --panel-ink:#EDEFEA; --panel-muted:#8D968F; --panel-rule:#39413E;
  --hv:#CDE322; --hv-w:#F0F5C8; --hv-ink:#14181A;
  --pos:#1F6B4E; --pos-w:#E3EDE7; --warn:#C06A12; --warn-w:#F6E9DA;
  --neg:#A93224; --neg-w:#F6E4E1;
  --t-pos:#7FD3A8;                      /* positive on the graphite panel */
  --shadow:0 2px 10px rgba(20,24,26,.10);

  --f-display:Archivo,'Arial Narrow',Haettenschweiler,sans-serif;
  --f-ui:'Instrument Sans',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --f-num:'Martian Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  color-scheme:light;
}

/* B · Night shift — dark throughout, teal signal that can carry type */
:root[data-look="b"]{
  --floor:#0F1418; --deck:#161D22; --sunk:#1B242A;
  --ink:#DDE3E8; --ink-2:#9AA7B0; --muted:#6C7A84; --rule:#2E383F;
  --panel:#070A0C; --panel-2:#161D22; --panel-3:#2E383F;
  --panel-ink:#DDE3E8; --panel-muted:#6C7A84; --panel-rule:#232B31;
  --hv:#4DD0C4; --hv-w:#12302E; --hv-ink:#06231F;
  --pos:#4FBF87; --pos-w:#13291F; --warn:#E9A84C; --warn-w:#302512;
  --neg:#E4695C; --neg-w:#331916;
  --t-pos:#4FBF87;
  --shadow:0 2px 14px rgba(0,0,0,.45);
  color-scheme:dark;
}

/* C · Tier colour — each tier owns a hue, the screen takes it */
:root[data-look="c"]{
  --floor:#F4F4F2; --deck:#FFFFFF; --sunk:#EDEBF3;
  --ink:#1A1A1A; --ink-2:#4A4A52; --muted:#8A8A93; --rule:#D6D6D2;
  --panel:#5B2E8C; --panel-2:#6E3CA4; --panel-3:#8659BB;
  --panel-ink:#FFFFFF; --panel-muted:#D3C2E6; --panel-rule:#7A4AAE;
  --hv:#F2C200; --hv-w:#FDF3CC; --hv-ink:#1A1A1A;
  --pos:#1D7A4F; --pos-w:#E2F0E9; --warn:#C2410C; --warn-w:#FDEEDC;
  --neg:#B3261E; --neg-w:#FBE6E4;
  --t-pos:#9BE8C0;
  --shadow:0 2px 10px rgba(26,26,26,.12);
}

/* ── 2 · Base ───────────────────────────────────────────────────────────── */

*{box-sizing:border-box}

body{
  margin:0; background:var(--floor); color:var(--ink);
  font-family:var(--f-ui); font-size:13.5px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
  padding-bottom:56px;            /* room for the fixed prototype bar */
}

h1,h2,h3,h4{margin:0}
p{margin:0}

.d{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;letter-spacing:-.012em}
.n{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.lb{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

a{color:inherit;text-decoration:none}
.inline-link{box-shadow:inset 0 -2px 0 var(--hv)}
.inline-link:hover{box-shadow:inset 0 -6px 0 var(--hv)}

:focus-visible{outline:2px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 5px var(--hv)}
:root[data-look="b"] :focus-visible{outline-color:var(--hv)}

.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Several conditional blocks are toggled with the hidden attribute and also
   carry an explicit display, which would otherwise win on source order. */
[hidden]{display:none !important}

/* ── 3 · Top bar ────────────────────────────────────────────────────────── */

.top{
  height:48px;background:var(--panel);color:var(--panel-ink);
  display:flex;align-items:center;gap:16px;padding:0 20px;
  position:sticky;top:0;z-index:40;
}
.mk{width:13px;height:13px;background:var(--hv);flex:none}
.bd{font-family:var(--f-display);font-variation-settings:'wdth' 125;font-weight:800;font-size:15px;letter-spacing:.06em}
.tsep{width:1px;height:20px;background:var(--panel-rule);flex:none}
.tloc{font-size:12.5px;white-space:nowrap}
.tloc span{color:var(--panel-muted)}
.till-chip{background:var(--panel-2);padding:5px 11px;border-radius:3px;font-size:12px;white-space:nowrap}
.top .tr{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:11.5px;color:var(--panel-muted);white-space:nowrap}
.top .tr b{color:var(--panel-ink);font-weight:500}
.picker{
  display:inline-flex;align-items:center;gap:8px;background:var(--panel-2);
  border:1px solid var(--panel-3);border-radius:3px;padding:5px 10px;font-size:12.5px;
  color:var(--panel-ink);font-family:inherit;cursor:pointer;
}
.picker .cv{width:7px;height:7px;background:var(--hv);border-radius:50%}
.conn{
  display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;
  font-size:11.5px;font-weight:600;background:rgba(31,107,78,.3);color:var(--t-pos);
  border:0;font-family:inherit;cursor:pointer;
}
.conn .dot{width:7px;height:7px;border-radius:50%;background:var(--t-pos)}
.conn.off{background:rgba(169,50,36,.28);color:#F0A79C}
.conn.off .dot{background:#F0A79C}

/* ── 4 · Chain rail ─────────────────────────────────────────────────────── */

.rail{background:var(--deck);border-bottom:1px solid var(--rule);padding:11px 20px 12px;display:flex;align-items:stretch}
.raillb{width:64px;flex:none;display:flex;align-items:center}
.node{
  flex:1;background:var(--sunk);padding:9px 13px 10px;border:0;border-top:3px solid transparent;min-width:0;
  text-align:left;font-family:inherit;cursor:pointer;display:block;color:inherit;
}
.node.here{background:var(--deck);border-top-color:var(--hv);box-shadow:0 0 0 1px var(--rule)}
.node .nm{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.node.here .nm{color:var(--ink)}
.node .nv{font-size:17px;margin-top:3px;color:var(--ink-2);font-family:var(--f-num);
  font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.node.here .nv{color:var(--ink)}
.node .ns{font-size:11px;color:var(--muted);margin-top:1px}
.node:hover{background:var(--deck);box-shadow:0 0 0 1px var(--rule)}
.lnk{width:30px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--rule)}
.lnk.live{color:var(--hv)}

/* ── 5 · Body, nav, main ────────────────────────────────────────────────── */

.body{display:flex;min-height:calc(100vh - 48px - 105px - 56px)}
.nav{width:220px;flex:none;border-right:1px solid var(--rule);padding:16px 0 24px;background:var(--floor)}
.ngrp{padding:0 0 13px}
.ngh{padding:0 20px 6px}
.ni{
  display:flex;align-items:center;gap:9px;padding:7px 20px 7px 17px;
  border-left:3px solid transparent;font-size:13px;color:var(--ink-2);cursor:pointer;
}
.ni:hover{background:var(--deck);color:var(--ink)}
.ni.on{border-left-color:var(--hv);background:var(--deck);color:var(--ink);font-weight:600}
.ni .cnt{margin-left:auto;font-size:10.5px;color:var(--muted);font-family:var(--f-num);
  font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums}

.main{flex:1;padding:20px 24px 28px;min-width:0;display:flex;flex-direction:column;gap:14px}

.hdr{display:flex;align-items:flex-end;gap:16px;border-bottom:3px solid var(--ink);padding-bottom:11px;flex-wrap:wrap}
.h1{font-size:27px;line-height:1.1}
.sub{font-size:12.5px;color:var(--ink-2);margin-top:4px;max-width:100ch}
.hdr .r{margin-left:auto;display:flex;gap:9px;align-items:center;flex-wrap:wrap}

/* the plain-language strip that sits under every screen header */
.purpose{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--deck);border:1px solid var(--rule);border-left:3px solid var(--hv);
  padding:11px 14px;font-size:12.5px;line-height:1.55;
}
.purpose .pk{
  flex:none;font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);width:104px;padding-top:2px;
}
.purpose p{color:var(--ink-2)}
.purpose p b{color:var(--ink);font-weight:600}
.purpose .px{margin-left:auto;flex:none}

/* ── 6 · Core components ────────────────────────────────────────────────── */

.card{background:var(--deck);border:1px solid var(--rule)}
.ch{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--rule);background:var(--sunk)}
.ch .r{margin-left:auto;font-size:11.5px;color:var(--ink-2)}

.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:11.5px}
thead th{
  background:var(--sunk);text-align:left;padding:7px 9px;font-size:9px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule);white-space:nowrap;
}
thead th.r{text-align:right}
thead th.c{text-align:center}
thead th em{display:block;font-style:normal;font-weight:500;letter-spacing:.04em;opacity:.8}
tbody td{padding:7px 9px;border-bottom:1px solid var(--rule);vertical-align:middle}
tbody td.r{text-align:right}
tbody td.c{text-align:center}
tbody tr td:first-child{border-left:3px solid transparent}
tbody tr.mark td:first-child{border-left-color:var(--hv)}
tbody tr.mark{background:var(--hv-w)}
tbody tr.crit td:first-child{border-left-color:var(--neg)}
tbody tr.low td:first-child{border-left-color:var(--warn)}
tbody tr.diff{background:var(--warn-w)}
tbody tr.diff td:first-child{border-left-color:var(--warn)}
tfoot td{padding:9px;border-top:2px solid var(--ink);font-size:11.5px}
.sku{display:block;font-size:10px;color:var(--muted);margin-top:2px;font-family:var(--f-num);
  font-variation-settings:'wdth' 75;letter-spacing:-.02em}
.rowlink{cursor:pointer}
.rowlink:hover td{background:var(--hv-w)}

.pill{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;white-space:nowrap}
.pill.ok{background:var(--pos-w);color:var(--pos)}
.pill.w{background:var(--warn-w);color:var(--warn)}
.pill.x{background:var(--neg-w);color:var(--neg)}
.pill.hv{background:var(--hv);color:var(--hv-ink)}
.pill.nt{background:var(--sunk);color:var(--ink-2)}
.chip{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border-radius:3px;background:var(--hv);color:var(--hv-ink);display:inline-block}
.chip.draft{background:var(--sunk);color:var(--ink-2)}

.btn{background:var(--ink);color:var(--floor);border:0;padding:9px 15px;font:inherit;font-size:12.5px;font-weight:600;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;justify-content:center}
.btn.lt{background:var(--hv);color:var(--hv-ink)}
.btn.gh{background:transparent;color:var(--ink);border:1px solid var(--rule)}
.btn.gh:hover{border-color:var(--ink)}
.btn.sm{padding:6px 11px;font-size:11.5px}
.btn:disabled,.btn.off{background:var(--sunk);color:var(--muted);cursor:not-allowed;border-color:var(--rule)}
.btn.lt:disabled{background:var(--sunk);color:var(--muted)}

.f{font-size:12px;padding:6px 11px;border:1px solid var(--rule);border-radius:3px;background:var(--deck);color:var(--ink-2);cursor:pointer;font-family:inherit}
.f.on{background:var(--ink);color:var(--floor);border-color:var(--ink);font-weight:600}

.fld label{display:block;font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.fld input,.fld select{width:100%;padding:9px 11px;border:1px solid var(--rule);border-radius:3px;background:var(--floor);
  font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-size:13px;color:var(--ink)}
.fld .hlp{font-size:11px;color:var(--muted);margin-top:5px}
.fld .err{font-size:11px;color:var(--neg);margin-top:5px}

input,select,textarea,button{font-family:inherit}

/* commit gate — graphite, always says what a button will do */
.gate{background:var(--panel);color:var(--panel-ink);padding:13px 15px 15px}
.gate .gh{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hv)}
.gate ul{margin:9px 0 0;padding:0;list-style:none}
.gate li{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--panel-rule);font-size:12px;line-height:1.5}
.gate li:first-child{border-top:0}
.gate li .k{color:var(--panel-muted);flex:none;width:70px}
.gate li b{font-weight:600}
.gate .warn{margin-top:11px;padding:10px 12px;background:var(--panel-2);border-left:3px solid var(--hv);font-size:11.5px;line-height:1.55}
.gate .warn b{color:var(--hv);font-weight:600}
.gate .btnrow{display:flex;gap:9px;margin-top:13px}
.gate .btn{padding:12px 16px;font-size:13px;font-weight:700}
.gate .btn.gh{color:var(--panel-ink);border-color:var(--panel-3);font-weight:500}

/* reason note — every suggested number explains itself */
.note{background:var(--panel);color:var(--panel-ink);padding:13px 16px;display:flex;gap:16px;align-items:flex-start}
.note .nh{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hv)}
.note p{margin:5px 0 0;font-size:12.5px;line-height:1.6;max-width:96ch}
.note p b{font-weight:600}
.note .act{margin-left:auto;flex:none;align-self:center}
/* Buttons on the dark panel take the panel's palette. The default pair is
   dark ink on light floor, which all but disappears against var(--panel). */
.note .btn{background:var(--hv);color:var(--hv-ink)}
.note .btn.gh{background:transparent;color:var(--panel-ink);border:1px solid var(--panel-3)}
.note .btn.gh:hover{border-color:var(--panel-ink)}
.note .btn:disabled,.note .btn.off{background:var(--panel-3);color:var(--panel-muted);border-color:var(--panel-3)}

/* light reason note, for use on the deck */
.rn{border-top:3px solid var(--ink);background:var(--deck);padding:11px 13px}
.rn .rh{font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rn p{margin:5px 0 0;font-size:11.5px;color:var(--ink-2);line-height:1.5}

.kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.kpi > div{background:var(--deck);padding:11px 13px 12px}
.kpi .v{font-size:22px;display:block;margin-top:3px;font-family:var(--f-num);
  font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.kpi .s{font-size:11px;color:var(--muted);margin-top:2px;display:block;line-height:1.4}

.empt{padding:24px 14px;text-align:left}
.empt .et{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:15px}
.empt p{margin:6px 0 10px;font-size:12px;color:var(--ink-2);line-height:1.55;max-width:60ch}

.split{display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:14px;align-items:start}
.split.wide{grid-template-columns:minmax(0,1fr) 440px}
.stack{display:flex;flex-direction:column;gap:14px;min-width:0}

.sh{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--rule);padding-bottom:8px;margin-bottom:13px;flex-wrap:wrap}
.sh h2{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:17px}
.sh span{font-size:12px;color:var(--ink-2)}

/* a quantity cell you can type into */
.qi{
  display:inline-block;width:54px;padding:5px 8px;border:1px solid var(--rule);border-radius:3px;
  background:var(--floor);font-family:var(--f-num);font-variation-settings:'wdth' 87.5;
  font-variant-numeric:tabular-nums;font-size:13px;text-align:right;color:var(--ink);
}
.qi.set{background:var(--hv-w);border-color:var(--ink);font-weight:600}
.qi.zero{color:var(--muted)}
.qi.off{background:var(--warn-w);border-color:var(--warn);color:var(--warn);font-weight:600}
.qi.over{background:var(--neg-w);border-color:var(--neg);color:var(--neg);font-weight:600}

/* stock bar with this store's own reorder point marked */
.bar{display:block;position:relative;height:5px;background:var(--sunk);margin-top:6px;max-width:230px}
.bar i{display:block;height:100%;background:var(--pos)}
.bar i.w{background:var(--warn)}
.bar i.c{background:var(--neg)}
.bar .rp{position:absolute;top:-3px;width:2px;height:11px;background:var(--ink)}

/* movement ledger rows */
.mv{display:flex;gap:11px;padding:8px 13px;border-bottom:1px solid var(--rule);font-size:11.5px;align-items:baseline}
.mv .t{color:var(--muted);flex:none;width:86px;font-size:10.5px}
.mv .q{flex:none;width:44px;text-align:right;font-weight:600}
.mv .q.in{color:var(--pos)}
.mv .q.out{color:var(--neg)}
.mv .w{flex:1;color:var(--ink-2)}
.mv .w b{color:var(--ink);font-weight:600}
.mv .who{color:var(--muted)}
.okline{display:flex;gap:9px;align-items:flex-start;background:var(--pos-w);color:var(--pos);padding:9px 11px;font-size:11.5px;line-height:1.5}
.okline b{font-weight:600}

/* live tape */
.tl{display:flex;gap:10px;padding:7px 13px;border-bottom:1px solid var(--rule);font-size:11.5px;align-items:baseline}
.tl .tt{color:var(--muted);flex:none;width:44px;font-size:10.5px}
.tl .tq{flex:none;width:34px;text-align:right;font-weight:600}
.tl .tq.in{color:var(--pos)}
.tl .tq.out{color:var(--neg)}
.tl .tx{flex:1;color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl .tx b{color:var(--ink);font-weight:600}
.tl.fresh{animation:flash 1.4s ease-out}
@keyframes flash{from{background:var(--hv)}to{background:transparent}}

.bal{display:flex;align-items:baseline;gap:10px;padding:9px 13px;border-bottom:1px solid var(--rule);font-size:12px}
.bal:last-child{border-bottom:0}
.bal .bk{flex:1;color:var(--ink-2)}
.bal .bv{font-size:14px}
.bal .bv.drop{color:var(--warn)}
.bal .bv.bad{color:var(--neg)}

/* ── 7 · The counter (till) ─────────────────────────────────────────────── */

.till-wrap{display:grid;grid-template-columns:minmax(0,1fr) 512px;min-height:calc(100vh - 48px - 56px);align-items:stretch}
.till-left{padding:20px 22px;display:flex;flex-direction:column;gap:14px;min-width:0}

.searchbox{position:relative}
.searchbox input{
  width:100%;font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-size:19px;
  padding:16px 18px 16px 50px;border:2px solid var(--ink);border-radius:3px;background:var(--deck);
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.searchbox .ic{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--ink-2)}
.searchhint{display:flex;gap:14px;margin-top:7px;font-size:11.5px;color:var(--muted);align-items:center;flex-wrap:wrap}
.searchhint b{color:var(--ink-2);font-weight:500}
.kk{display:inline-block;font-family:var(--f-num);font-size:10px;font-weight:600;padding:2px 6px;
  background:var(--sunk);border:1px solid var(--rule);border-radius:3px;color:var(--ink-2)}

.res{background:var(--deck);border:1px solid var(--rule)}
.resh{display:flex;align-items:center;padding:8px 14px;background:var(--sunk);border-bottom:1px solid var(--rule)}
.resh .r{margin-left:auto;font-size:11.5px;color:var(--ink-2)}
.row{display:flex;align-items:center;gap:14px;padding:11px 14px;border-bottom:1px solid var(--rule);border-left:3px solid transparent}
.row:last-child{border-bottom:0}
.row.sel{border-left-color:var(--hv);background:var(--hv-w)}
.row .nm{flex:1;min-width:0}
.row .nm .t{font-size:14px;font-weight:600}
.row .nm .s{font-size:11px;color:var(--muted);margin-top:2px}
.row .nm .s em{font-style:normal;color:var(--ink-2)}
.row .stk{width:112px;flex:none;text-align:right}
.row .stk .q{font-size:15px}
.row .stk .w{font-size:10.5px;color:var(--muted);margin-top:1px}
.row .pr{width:96px;flex:none;text-align:right;font-size:16px}
.row .add{flex:none}
.badge{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:3px}
.badge.out{background:var(--neg-w);color:var(--neg)}
.badge.low{background:var(--warn-w);color:var(--warn)}
.elsewhere{display:flex;align-items:center;gap:10px;padding:9px 14px 11px 20px;background:var(--sunk);
  border-bottom:1px solid var(--rule);font-size:12px;color:var(--ink-2);flex-wrap:wrap}
.elsewhere b{color:var(--ink);font-weight:600}

.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.qt{background:var(--deck);border:1px solid var(--rule);border-radius:3px;padding:11px 12px 12px;
  text-align:left;font:inherit;cursor:pointer;min-height:62px;color:var(--ink)}
.qt:hover{border-color:var(--ink)}
.qt .qn{font-size:12.5px;font-weight:600;line-height:1.25}
.qt .qp{font-size:13px;margin-top:5px;color:var(--ink-2)}
.qt:disabled{opacity:.45;cursor:not-allowed}

.keys{margin-top:auto;display:flex;gap:16px;padding-top:12px;border-top:1px solid var(--rule);
  font-size:11.5px;color:var(--muted);flex-wrap:wrap}

.panel{background:var(--panel);color:var(--panel-ink);display:flex;flex-direction:column;min-width:0}
.panel .ph{display:flex;align-items:baseline;gap:10px;padding:15px 18px 13px;border-bottom:1px solid var(--panel-rule)}
.panel .ph h2{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:19px}
.panel .ph .r{margin-left:auto;font-size:11.5px;color:var(--panel-muted)}
.cart{flex:1;overflow-y:auto;max-height:46vh}
.ci{display:flex;align-items:flex-start;gap:12px;padding:11px 18px;border-bottom:1px solid var(--panel-rule)}
.ci.new{background:var(--panel-2);border-left:3px solid var(--hv);padding-left:15px}
.ci .cn{flex:1;min-width:0}
.ci .cn .t{font-size:13.5px;font-weight:500}
.ci .cn .s{font-size:11px;color:var(--panel-muted);margin-top:2px}
.ci .cq{width:78px;flex:none;display:flex;align-items:center;gap:6px;justify-content:flex-end}
.stp{width:22px;height:22px;border:1px solid var(--panel-3);background:transparent;color:var(--panel-ink);
  border-radius:3px;font:inherit;font-size:13px;line-height:1;cursor:pointer;padding:0}
.stp:hover{background:var(--panel-2)}
.ci .cq .v{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-size:13.5px;min-width:20px;text-align:center}
.ci .ct{width:88px;flex:none;text-align:right;font-size:14px}
.disc{margin:6px 0 0;font-size:11px;color:var(--hv)}
.cart-empty{padding:30px 18px;color:var(--panel-muted);font-size:12.5px;line-height:1.6}

.tot{border-top:1px solid var(--panel-rule);padding:13px 18px 0}
.tot .tl2{display:flex;padding:5px 0;font-size:13px}
.tot .tl2 .k{flex:1;color:var(--panel-muted)}
.tot .tl2.big{border-top:1px solid var(--panel-rule);margin-top:8px;padding-top:12px;align-items:baseline}
.tot .tl2.big .k{color:var(--panel-ink);font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:17px}
.tot .tl2.big .v{font-family:var(--f-num);font-variation-settings:'wdth' 100;font-variant-numeric:tabular-nums;
  font-size:33px;font-weight:600;letter-spacing:-.04em}

.cust{display:flex;align-items:center;gap:12px;margin:13px 18px 0;padding:11px 13px;background:var(--panel-2);border-radius:3px}
.cust .ini{width:32px;height:32px;flex:none;background:var(--hv);color:var(--hv-ink);display:flex;align-items:center;
  justify-content:center;font-family:var(--f-num);font-size:12px;font-weight:600;border-radius:3px}
.cust .cd{flex:1;min-width:0}
.cust .cd .t{font-size:13px;font-weight:500}
.cust .cd .s{font-size:11px;color:var(--panel-muted);margin-top:1px}
.cust .sk{font-size:11.5px;color:var(--panel-muted);border:1px solid var(--panel-3);background:transparent;
  padding:5px 10px;border-radius:3px;font:inherit;cursor:pointer}

.why{margin:11px 18px 0;padding:10px 13px;background:var(--panel-2);border-left:3px solid var(--hv);font-size:11.5px;line-height:1.55}
.why b{color:var(--hv);font-weight:600}

.panel .foot{padding:14px 18px 16px;display:flex;gap:9px}
.pay{flex:1;background:var(--hv);color:var(--hv-ink);border:0;border-radius:3px;padding:15px;font:inherit;
  font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}
.pay:disabled{background:var(--panel-3);color:var(--panel-muted);cursor:not-allowed}
.pay .kk{background:rgba(20,24,26,.13);border-color:transparent;color:var(--hv-ink)}
.sec{background:transparent;color:var(--panel-ink);border:1px solid var(--panel-3);border-radius:3px;
  padding:15px 16px;font:inherit;font-size:13px;cursor:pointer}
.sec:hover{background:var(--panel-2)}

/* tender */
.pad{display:flex;flex-direction:column;gap:8px}
.tn{
  display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:14px;text-align:left;
  background:var(--deck);border:1px solid var(--rule);border-left:3px solid transparent;border-radius:3px;
  padding:13px 15px;font:inherit;cursor:pointer;color:var(--ink);
}
.tn:hover{border-color:var(--ink)}
.tn.on{border-left-color:var(--hv);background:var(--hv-w);border-color:var(--ink)}
.tn .tt{font-size:14.5px;font-weight:600}
.tn .ts{font-size:11.5px;color:var(--ink-2)}
.tn .amt{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}
.tn.dis{opacity:.6;cursor:not-allowed;background:var(--sunk)}
.tn.dis .ts{color:var(--neg)}

.cash{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--panel);color:var(--panel-ink)}
.cash > div{padding:15px 18px}
.cash > div + div{border-left:1px solid var(--panel-rule)}
.cash .gv,.cash .change{display:block;margin-top:6px;font-family:var(--f-num);font-variation-settings:'wdth' 100;
  font-variant-numeric:tabular-nums;font-size:31px;font-weight:600;letter-spacing:-.045em}
.cash .change{color:var(--hv)}

/* Cash given is typed, not only tapped — a cashier keys the amount they were
   handed, and the note buttons add to it the way notes land on the counter. */
.gvwrap{display:flex;align-items:baseline;gap:4px;margin-top:6px;border-bottom:2px solid var(--panel-3);padding-bottom:3px}
.gvwrap:focus-within{border-bottom-color:var(--hv)}
.gvcur{font-family:var(--f-num);font-variation-settings:'wdth' 100;font-size:26px;font-weight:600;color:var(--panel-muted)}
.gvin{
  flex:1;min-width:0;background:transparent;border:0;padding:0;color:var(--panel-ink);
  font-family:var(--f-num);font-variation-settings:'wdth' 100;font-variant-numeric:tabular-nums;
  font-size:31px;font-weight:600;letter-spacing:-.045em;
}
.gvin:focus{outline:none}
.gvin:focus-visible{outline:none;box-shadow:none}
.gvin::-webkit-outer-spin-button,.gvin::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.given{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}
.given .q{border:1px solid var(--panel-3);background:transparent;color:var(--panel-ink);border-radius:3px;
  padding:7px 11px;font:inherit;font-size:12px;cursor:pointer;font-family:var(--f-num);font-variation-settings:'wdth' 87.5}
.given .q:hover{border-color:var(--hv);color:var(--hv)}
.given .q.on{background:var(--hv);color:var(--hv-ink);border-color:var(--hv);font-weight:600}
.given .q.act{border-color:var(--panel-ink)}
.given .q.act:hover{background:var(--hv);color:var(--hv-ink);border-color:var(--hv)}
.chs{font-size:11.5px;color:var(--panel-muted);margin-top:12px;line-height:1.55}
.chs b{color:var(--panel-ink);font-weight:600}

.splitlegs{background:var(--deck);border:1px solid var(--rule)}
.sr{display:flex;align-items:baseline;gap:12px;padding:10px 14px;border-bottom:1px solid var(--rule);font-size:12.5px}
.sr:last-child{border-bottom:0}
.sr .sk{flex:1;color:var(--ink)}
.sr .st{color:var(--muted);font-size:11.5px}
.sr .sv{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;font-size:14px}
.sr.rem{background:var(--sunk);border-top:2px solid var(--ink)}
.sr.rem .sk{font-weight:600}
.sr.rem.due .sv{color:var(--neg);font-weight:600}
.sr .drop{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.sr .drop:hover{color:var(--neg)}

.sum{padding:13px 18px 0}
.sum .sl{display:flex;padding:5px 0;font-size:13px}
.sum .sl .k{flex:1;color:var(--panel-muted)}
.sum .sl.b{border-top:1px solid var(--panel-rule);margin-top:8px;padding-top:12px;align-items:baseline}
.sum .sl.b .k{color:var(--panel-ink);font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:17px}
.sum .sl.b .v{font-family:var(--f-num);font-variation-settings:'wdth' 100;font-variant-numeric:tabular-nums;
  font-size:31px;font-weight:600;letter-spacing:-.04em}

.back{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);cursor:pointer;background:none;border:0;padding:0}
.back:hover{color:var(--ink)}

/* ── 8 · Drawer close ───────────────────────────────────────────────────── */

.shift{background:var(--deck);border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap}
.shift > div{padding:11px 20px;border-left:1px solid var(--rule);flex:1;min-width:170px}
.shift > div:first-child{border-left:0}
.shift .sv{font-size:15px;margin-top:3px;display:block}
.shift .ss{font-size:11px;color:var(--muted);margin-top:1px;display:block}

.den{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--rule)}
.dc{background:var(--deck);padding:11px 13px 12px}
.dc .dn{display:flex;align-items:baseline;gap:6px}
.dc .dd{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-size:15px;font-weight:600}
.dc .dt{font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.dc .di{margin-top:7px;display:flex;align-items:center;gap:8px}
.dc input{width:56px;padding:6px 8px;border:1px solid var(--rule);border-radius:3px;background:var(--floor);
  font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;
  font-size:13.5px;text-align:right;color:var(--ink)}
.dc input.f2{background:var(--hv-w);border-color:var(--ink);font-weight:600}
.dc .dv{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;
  font-size:12.5px;color:var(--ink-2);margin-left:auto}
.dtot{display:flex;align-items:baseline;gap:14px;padding:14px 16px;border-top:2px solid var(--ink);background:var(--deck);flex-wrap:wrap}
.dtot .k{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:17px}
.dtot .s{font-size:11.5px;color:var(--muted)}
.dtot .v{margin-left:auto;font-family:var(--f-num);font-variation-settings:'wdth' 100;
  font-variant-numeric:tabular-nums;font-size:33px;font-weight:600;letter-spacing:-.045em}

.mask{background:var(--panel);color:var(--panel-ink);padding:16px 18px 18px}
.mask .mh{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hv)}
.mrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--panel-rule);font-size:13px}
.mrow:first-of-type{border-top:0;margin-top:10px}
.mrow .k{flex:1;color:var(--panel-muted)}
.mrow .mval{font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;font-size:14px}
.bars{display:flex;gap:3px}
.bars i{width:9px;height:15px;background:var(--panel-3);border-radius:1px}
.mbig{display:flex;align-items:center;gap:14px;margin-top:13px;padding:14px 15px;background:var(--panel-2);border-left:3px solid var(--hv)}
.mbig .mk2{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:16px;flex:1}
.mbig .bars i{height:24px;width:13px}
.mbig .mval{font-family:var(--f-num);font-variation-settings:'wdth' 100;font-variant-numeric:tabular-nums;font-size:27px;font-weight:600;letter-spacing:-.04em}
.mwhy{margin-top:13px;font-size:11.5px;line-height:1.6}
.mwhy b{color:var(--hv);font-weight:600}
.mfoot{margin-top:14px;display:flex;gap:9px}
.mask .btn{background:var(--hv);color:var(--hv-ink);padding:13px 17px;font-size:13.5px;font-weight:700}
.mask .btn.gh{background:transparent;color:var(--panel-ink);border:1px solid var(--panel-3);font-weight:500}
.mask .btn:disabled{background:var(--panel-3);color:var(--panel-muted)}

.payrow{display:flex;align-items:baseline;gap:12px;padding:10px 14px;border-bottom:1px solid var(--rule);font-size:12.5px}
.payrow:last-child{border-bottom:0}
.payrow .k{flex:1;color:var(--ink-2)}
.payrow .k b{color:var(--ink);font-weight:600}
.payrow .t{font-size:11px;color:var(--muted)}

.reveal{border-top:3px solid var(--ink);background:var(--sunk);padding:16px 18px 18px}
.reveal .rh2{display:flex;align-items:baseline;gap:12px;margin-bottom:13px;flex-wrap:wrap}
.reveal .rh2 h3{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:17px}
.reveal .rh2 .rs{font-size:12.5px;color:var(--ink-2)}
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 392px;gap:14px;align-items:start}
.rt{background:var(--deck);border:1px solid var(--rule);padding:12px 14px 13px}
.rt .rv{font-family:var(--f-num);font-variation-settings:'wdth' 100;font-variant-numeric:tabular-nums;
  font-size:25px;font-weight:600;letter-spacing:-.04em;display:block;margin-top:5px}
.rt .rd{font-size:11px;color:var(--muted);margin-top:3px;display:block;line-height:1.45}
.rsign{background:var(--deck);border:1px solid var(--rule);border-top:3px solid var(--neg);padding:12px 14px 13px}
.rsign.okv{border-top-color:var(--pos)}
.rsign .sh2{font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--neg)}
.rsign.okv .sh2{color:var(--pos)}
.rsign p{margin:7px 0 0;font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.rsign p b{color:var(--ink);font-weight:600}
.rsign .rb{display:flex;gap:8px;margin-top:11px;flex-wrap:wrap}

/* ── 9 · Invoice and receipt ────────────────────────────────────────────── */

.papers{display:flex;gap:36px;align-items:flex-start;flex-wrap:wrap}
.cap{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;display:block}

.a4{
  width:794px;max-width:100%;background:#fff;color:#14181A;padding:44px 56px 34px;flex:none;
  box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:1123px;
}
.a4 .ihead{display:flex;align-items:flex-start;gap:24px;border-bottom:3px solid #14181A;padding-bottom:20px}
.a4 .brandline{display:flex;align-items:center;gap:10px}
.a4 .brandline .mk{width:17px;height:17px;background:#CDE322}
.a4 .brandline .bd{font-size:23px}
.a4 .iaddr{font-size:13px;color:#5A615E;line-height:1.55;margin-top:9px}
.a4 .ihead .r{margin-left:auto;text-align:right}
.a4 .ihead .r h1{font-size:29px;line-height:1}
.a4 .ihead .r .ino{font-size:19px;margin-top:7px}
.a4 .ihead .r .idt{font-size:13px;color:#5A615E;margin-top:5px;line-height:1.55}
.a4 .meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px;padding:18px 0;border-bottom:1px solid #CDD1C9}
.a4 .meta .mv2{font-size:15px;margin-top:4px;line-height:1.45}
.a4 .meta .ms{font-size:12.5px;color:#5A615E;margin-top:2px}
.a4 table{margin-top:20px;font-size:14.5px}
.a4 thead th{background:none;text-align:left;padding:0 8px 9px;font-size:11px;letter-spacing:.12em;color:#8C938E;border-bottom:2px solid #14181A}
.a4 thead th.r{text-align:right}
.a4 tbody td{padding:11px 8px;border-bottom:1px solid #CDD1C9;font-size:14.5px;vertical-align:top;border-left:0}
.a4 tbody td.r{text-align:right}
.a4 tbody td:first-child{padding-left:0;border-left:0}
.a4 tbody td:last-child{padding-right:0}
.a4 thead th:first-child{padding-left:0}
.a4 thead th:last-child{padding-right:0}
.a4 .isku{font-size:12px;color:#8C938E;display:block;margin-top:2px}
.a4 .totwrap{display:flex;margin-top:22px}
.a4 .terms{flex:1;padding-right:34px;font-size:12.5px;color:#5A615E;line-height:1.65}
.a4 .terms b{color:#14181A;font-weight:600}
.a4 .itot{width:290px;flex:none}
.a4 .tr2{display:flex;padding:6px 0;font-size:14.5px}
.a4 .tr2 .k{flex:1;color:#5A615E}
.a4 .tr2.grand{border-top:2px solid #14181A;margin-top:9px;padding-top:13px;align-items:baseline}
.a4 .tr2.grand .k{color:#14181A;font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:17px}
.a4 .tr2.grand .v{font-family:var(--f-num);font-variation-settings:'wdth' 100;font-variant-numeric:tabular-nums;font-size:27px;font-weight:600;letter-spacing:-.04em}
.a4 .paid{margin-top:14px;background:#E0E3DC;padding:12px 14px}
.a4 .paid .pr2{display:flex;padding:3px 0;font-size:13.5px}
.a4 .paid .pr2 .k{flex:1;color:#5A615E}
.a4 .ifoot{margin-top:auto;padding-top:22px;border-top:1px solid #CDD1C9;display:flex;align-items:flex-end;gap:24px}
.a4 .ifoot .ft{font-size:12px;color:#8C938E;line-height:1.6;flex:1}
.a4 .ifoot .ft b{color:#5A615E;font-weight:600}

.roll{width:302px;flex:none}
.paper{
  width:302px;background:#fff;padding:22px 18px 26px;box-shadow:var(--shadow);
  font-family:var(--f-num);font-variation-settings:'wdth' 87.5;font-variant-numeric:tabular-nums;
  font-size:12px;line-height:1.6;color:#000;
}
.paper .rh3{text-align:center;padding-bottom:12px;border-bottom:1px dashed #000}
.paper .rb2{font-family:var(--f-display);font-variation-settings:'wdth' 125;font-weight:800;font-size:19px;letter-spacing:.1em}
.paper .rs2{font-size:11px;line-height:1.5;margin-top:5px}
.paper .rm{display:flex;justify-content:space-between;font-size:11px;padding:8px 0;border-bottom:1px dashed #000}
.paper .rm div{line-height:1.5}
.rl{display:flex;gap:6px;padding:5px 0}
.rl .rn2{flex:1;min-width:0}
.rl .rq{width:34px;text-align:right}
.rl .rv{width:62px;text-align:right}
.rl.rd{font-size:10.5px;padding-left:0;color:#444}
.rsep{border-top:1px dashed #000;margin:7px 0}
.rtt{display:flex;justify-content:space-between;padding:3px 0}
.rtt.big{font-size:17px;font-weight:700;padding:8px 0 4px}
.rq2{display:flex;gap:12px;align-items:center;margin-top:14px;padding-top:13px;border-top:1px dashed #000}
.rq2 .qtx{font-size:10.5px;line-height:1.55;flex:1}
.rfoot{text-align:center;font-size:10.5px;line-height:1.6;margin-top:14px;padding-top:11px;border-top:1px dashed #000}
.rollnote{margin-top:16px;background:var(--panel);color:var(--panel-ink);padding:14px 15px;
  font-family:var(--f-ui);font-size:12.5px;line-height:1.6}
.rollnote b{color:var(--hv);font-weight:600}
.rollnote .rt3{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hv);margin-bottom:7px;display:block}

/* download tray */
.dl .dlrow{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.dl .dlrow:last-child{border-bottom:0}
.dl .dlrow .dli{flex:1;min-width:180px}
.dl .dlrow .dlt{font-size:12.5px;font-weight:600}
.dl .dlrow .dls{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.45}

/* ── 10 · Prototype chrome ──────────────────────────────────────────────── */

.protobar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;height:56px;
  background:var(--panel);color:var(--panel-ink);border-top:1px solid var(--panel-rule);
  display:flex;align-items:center;gap:14px;padding:0 16px;font-size:12px;
}
.protobar .pbrand{display:flex;align-items:center;gap:9px;flex:none}
.protobar .pbrand .mk{width:10px;height:10px}
.protobar .pbrand b{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--panel-muted)}
.protobar .journey{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.protobar .jname{color:var(--panel-muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;white-space:nowrap}
.protobar .jsteps{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}
.protobar .jsteps::-webkit-scrollbar{display:none}
.jstep{
  display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:3px;white-space:nowrap;
  background:var(--panel-2);color:var(--panel-muted);border:1px solid transparent;font-size:11.5px;cursor:pointer;font-family:inherit;
}
.jstep:hover{color:var(--panel-ink)}
.jstep.on{background:var(--hv);color:var(--hv-ink);font-weight:600}
.jstep i{font-style:normal;font-family:var(--f-num);font-size:10px;opacity:.7}
.protobar .pacts{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}
.pbtn{
  background:transparent;border:1px solid var(--panel-3);color:var(--panel-ink);border-radius:3px;
  padding:7px 11px;font:inherit;font-size:11.5px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
}
.pbtn:hover{background:var(--panel-2)}
.pbtn.on{background:var(--hv);color:var(--hv-ink);border-color:var(--hv);font-weight:600}

/* explain / guide */
.gnum{
  position:absolute;z-index:30;top:-10px;left:-10px;width:21px;height:21px;border-radius:50%;
  background:var(--hv);color:var(--hv-ink);font-family:var(--f-num);font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--floor);cursor:pointer;border:0;
}
.guided{position:relative;outline:2px solid var(--hv);outline-offset:3px}
.guided.hot{outline-width:3px;box-shadow:0 0 0 9px var(--hv-w)}

.explain{
  position:fixed;right:0;top:0;bottom:56px;width:400px;max-width:92vw;z-index:70;
  background:var(--deck);border-left:1px solid var(--rule);box-shadow:-8px 0 26px rgba(20,24,26,.14);
  display:flex;flex-direction:column;transform:translateX(102%);transition:transform .18s ease-out;
}
.explain.open{transform:none}
.explain .exh{display:flex;align-items:flex-start;gap:12px;padding:16px 18px 13px;border-bottom:3px solid var(--ink)}
.explain .exh h2{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:19px}
.explain .exh .exs{font-size:11.5px;color:var(--muted);margin-top:3px}
.explain .exclose{margin-left:auto;background:none;border:0;font-size:19px;line-height:1;cursor:pointer;color:var(--muted);padding:0 2px}
.explain .exbody{flex:1;overflow-y:auto;padding:0 0 20px}
.exsec{padding:13px 18px;border-bottom:1px solid var(--rule)}
.exsec p{font-size:12.5px;line-height:1.6;color:var(--ink-2);margin-top:5px}
.exsec p b{color:var(--ink);font-weight:600}
.exfacts{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin-top:9px;font-size:12px}
.exfacts dt{color:var(--muted);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding-top:3px}
.exfacts dd{margin:0;color:var(--ink-2);line-height:1.5}
.exnote{display:flex;gap:11px;padding:11px 18px;border-bottom:1px solid var(--rule);cursor:pointer;align-items:flex-start;width:100%;text-align:left;background:none;border-left:0;border-right:0;border-top:0}
.exnote:hover{background:var(--hv-w)}
.exnote .en{
  flex:none;width:21px;height:21px;border-radius:50%;background:var(--hv);color:var(--hv-ink);
  font-family:var(--f-num);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.exnote .et2{font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.exnote .et2 b{color:var(--ink);font-weight:600}

.scrim{position:fixed;inset:0;background:rgba(20,24,26,.34);z-index:65;opacity:0;pointer-events:none;transition:opacity .18s}
.scrim.on{opacity:1;pointer-events:auto}

/* modal */
.modal{
  position:fixed;z-index:80;left:50%;top:50%;transform:translate(-50%,-48%);width:780px;max-width:94vw;
  max-height:82vh;overflow-y:auto;background:var(--deck);border:1px solid var(--rule);box-shadow:0 18px 50px rgba(20,24,26,.3);
  opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;
}
.modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
.modal .mh2{display:flex;align-items:flex-start;gap:12px;padding:16px 20px 13px;border-bottom:3px solid var(--ink)}
.modal .mh2 h2{font-family:var(--f-display);font-variation-settings:'wdth' 118;font-weight:700;font-size:20px}
.modal .mh2 .ms2{font-size:12px;color:var(--muted);margin-top:3px}
.modal .mclose{margin-left:auto;background:none;border:0;font-size:20px;line-height:1;cursor:pointer;color:var(--muted)}
.modal .mb2{padding:16px 20px 20px}
.legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.lg{display:flex;gap:11px;align-items:flex-start}
.lg .lgs{flex:none;width:38px;padding-top:2px}
.lg .lgt{font-size:12.5px;font-weight:600}
.lg .lgd{font-size:11.5px;color:var(--ink-2);margin-top:2px;line-height:1.45}

.toast{
  position:fixed;left:50%;bottom:76px;transform:translate(-50%,14px);z-index:90;
  background:var(--panel);color:var(--panel-ink);border-left:3px solid var(--hv);
  padding:12px 16px;font-size:12.5px;line-height:1.55;max-width:640px;box-shadow:0 10px 30px rgba(20,24,26,.3);
  opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;
}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast b{color:var(--hv);font-weight:600}
.toast a{box-shadow:inset 0 -2px 0 var(--hv);cursor:pointer}

/* ── 11 · Responsive ────────────────────────────────────────────────────── */

@media (max-width:1240px){
  .rgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rsign{grid-column:1/-1}
}
@media (max-width:1180px){
  .split,.split.wide{grid-template-columns:minmax(0,1fr)}
  .till-wrap{grid-template-columns:minmax(0,1fr)}
  .cart{max-height:none}
}
@media (max-width:1080px){
  .body{display:block}
  .nav{width:auto;border-right:0;border-bottom:1px solid var(--rule);display:flex;overflow-x:auto;padding:0;gap:0}
  .ngrp{padding:8px 0;border-right:1px solid var(--rule);flex:none}
  .ngh{padding:0 14px 4px}
  .ni{padding:5px 14px;border-left:0;border-bottom:3px solid transparent;white-space:nowrap}
  .ni.on{border-left:0;border-bottom-color:var(--hv)}
  .kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .den{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .rail{display:none}
  .kpi,.legend-grid,.rgrid{grid-template-columns:minmax(0,1fr)}
  .den{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cash{grid-template-columns:minmax(0,1fr)}
  .cash > div + div{border-left:0;border-top:1px solid var(--panel-rule)}
  .main,.till-left{padding:16px 14px 24px}
  .top{gap:10px;padding:0 12px;overflow-x:auto}
  .protobar{height:auto;padding:8px 12px;flex-wrap:wrap;gap:8px}
  body{padding-bottom:112px}
  .explain{bottom:0}
  .a4{padding:28px 24px;min-height:0}
  .tn{grid-template-columns:1fr auto}
  .purpose{flex-wrap:wrap}
  .purpose .pk{width:auto}
}

/* ── 12 · Print — only the paper, at real size ──────────────────────────── */

@media print{
  body{padding:0;background:#fff}
  .top,.rail,.nav,.protobar,.explain,.scrim,.toast,.modal,.purpose,.no-print,.hdr,.rollnote,.dl,.cap,.gnum{display:none !important}
  .main,.till-wrap{padding:0;display:block}
  .papers{display:block}
  .a4,.paper{box-shadow:none;width:auto;max-width:none;padding:0;min-height:0}
  .roll{width:auto}
  .guided{outline:0 !important;box-shadow:none !important}
  body.print-a4 .roll{display:none}
  body.print-roll .a4{display:none}
  body.print-roll .paper{width:72mm;font-size:10px}
  @page{size:A4;margin:14mm}
}
