/* ============================================================================
 *  Galaxy — screen styles.
 *
 *  Every screen module used to carry its own CSS as a JavaScript string and inject it into
 *  <head> the first time that screen was opened. 1,903 lines of stylesheet lived inside 24 .js
 *  files — 470 of them inside screens/pos.js alone, which was that file's single largest function.
 *
 *  Two things were wrong with that beyond the bulk. The cascade order depended on which screen the
 *  user happened to open FIRST, so where two screens styled the same class the winner varied by
 *  navigation; and CSS written as concatenated JavaScript strings gets no syntax highlighting, no
 *  linting, and no tooling of any kind.
 *
 *  This file is linked from index.html AFTER the inline <style> block, which is exactly where the
 *  runtime append used to land it — so the cascade is unchanged. Sections are in the order
 *  index.html loads the screens. Edit a screen's styles under its banner.
 *
 *  ONE RULE, AND IT MATTERS MORE HERE THAN IT USED TO. A section belongs to ONE screen, so its
 *  selectors must be scoped to that screen's own classes. Never redefine a GLOBAL class (.btn,
 *  .card, .chip — anything index.html styles) from inside a section: this file is always loaded
 *  and always later in the cascade, so such a rule silently reaches the whole application. It
 *  used to be merely intermittent — the old per-screen injection only leaked once you had opened
 *  that screen — which is worse in its own way, because the bug came and went.
 *
 *  A single line of settings CSS blanked the label on every destructive button in Galaxy this
 *  way, POS Void included. `node tools/css-global-leaks.js` finds any recurrence.
 * ========================================================================== */

/* The `hidden` ATTRIBUTE must actually hide. The browser's own [hidden]{display:none} is a UA rule,
 * so ANY author rule that sets `display` on the same element silently beats it whatever the
 * specificity — and this stylesheet sets display on nearly everything. That is how an empty ghost
 * button came to sit under Discounts on the POS check: `.pos-btn{display:inline-flex}` (below)
 * against `<button ... hidden>`. It had been met three times before and patched one element at a
 * time (.mfil, .pos-pbadge, .st-lfcount); those stay, harmlessly, but this is the rule that means
 * nobody has to know the trap exists. !important because it must outrank a later display too.
 */
[hidden] { display:none !important }
/* ============================================================================
   screens/dashboard.js
   ============================================================================ */
.db-hero { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px }
.db-day { color:var(--accent);font-weight:700 }
.db-refresh { display:inline-flex;align-items:center;gap:7px;white-space:nowrap }
.db-refresh svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.db-refresh[disabled] { opacity:.55;cursor:default }
.db-kpi { cursor:pointer;transition:border-color .12s,background .12s }
.db-kpi:hover { border-color:var(--accent-line);background:var(--hover) }
.db-cols { display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start }
@media(max-width:900px) {
  .db-cols { grid-template-columns:1fr }
}
.db-stack { display:flex;flex-direction:column;gap:16px }
.ph .db-hmeta { margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted);font-weight:500 }
.db-open { display:inline-flex;align-items:center;gap:2px;margin-left:12px;background:none;border:0;cursor:pointer;font-family:inherit;font-size:.72rem;font-weight:700;color:var(--accent);padding:0 }
.db-open svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round }
.db-open:hover { text-decoration:underline }
table.g tbody tr.db-row { cursor:pointer }
table.g tbody tr.db-row:hover td { background:var(--hover) }
.db-no { font-family:var(--mono);font-weight:700 }
.db-time { color:var(--muted) }
.db-dash { color:var(--faint) }
.db-neg { color:var(--bad) }
.db-zero { color:var(--muted) }
.db-empty { padding:28px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.db-ti-list { padding:14px 16px;display:flex;flex-direction:column;gap:13px }
.db-ti-h { display:flex;justify-content:space-between;gap:10px;align-items:baseline }
.db-ti-nm { font-size:.84rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.db-ti-rev { font-family:var(--mono);font-size:.82rem;color:var(--ink);white-space:nowrap }
.db-ti-track { height:6px;background:var(--hover);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-top:5px }
.db-ti-fill { height:100%;background:var(--accent);border-radius:4px;min-width:3px }
.db-ti-q { font-family:var(--mono);font-size:.66rem;color:var(--muted);margin-top:4px }
.db-cash { padding:14px 16px;cursor:pointer }
.db-cash:hover { background:var(--hover) }
.db-cash-top { display:flex;align-items:center;gap:10px;margin-bottom:12px }
.db-cash-l { font-weight:700;font-size:.9rem }
.pill.db-off { background:var(--hover);color:var(--muted) }
.db-cash-rows { display:flex;flex-direction:column;gap:8px }
.db-cash-r { display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:var(--muted) }
.db-cash-r b { color:var(--ink);font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums }
.db-cash-exp { border-top:1px solid var(--line);padding-top:9px;margin-top:2px }
.db-cash-exp span,.db-cash-exp b { color:var(--ink) }
.db-cash-note { font-size:.82rem;color:var(--muted);line-height:1.5 }
.db-cnts { display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line) }
.db-cnt { display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:14px 16px;background:var(--card);border:0;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s }
.db-cnt:hover { background:var(--hover) }
.db-cnt-v { font-family:var(--mono);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;color:var(--ink) }
.db-cnt-l { font-size:.72rem;color:var(--muted) }
/* ============================================================================
   screens/menu.js
   ============================================================================ */
.mtoolbar { display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap }
.msearch { position:relative;flex:1;min-width:190px;max-width:340px }
.msearch svg { position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;stroke:var(--faint);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none }
.msearch input { width:100%;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px 8px 31px;font-size:.84rem;color:var(--ink);outline:none }
.msearch input:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.seg { display:flex;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden }
.seg button { padding:7px 13px;font-size:.8rem;font-weight:600;color:var(--muted);background:none;border:0;cursor:pointer;font-family:inherit }
.seg button.on { background:var(--accent);color:#04222a }
.mfil { display:flex }
.mfil[hidden] { display:none }
.msel { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.msel:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.mcount { font-size:.8rem;color:var(--muted);margin-left:auto }
.mcount b { color:var(--warn) }
table.g tr.click { cursor:pointer;transition:background .1s }
table.g tbody tr.click:hover { background:var(--hover) }
.tname { display:flex;align-items:center;gap:8px }
.tgood { font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line-2);border-radius:5px;padding:2px 6px }
.mg { font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700 }
.empty { padding:30px 20px;text-align:center;color:var(--muted);font-size:.86rem }
.dhead { display:flex;align-items:center;gap:12px;margin-bottom:18px }
.dback { display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line-2);color:var(--ink);font-size:.82rem;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer;font-family:inherit }
.dback:hover { border-color:var(--accent-line);color:var(--accent) }
.dback svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
.dhead .dt { font-weight:800;font-size:1.15rem;letter-spacing:-.01em }
.dhead .dc { font-size:.76rem;color:var(--muted);margin-top:1px }
.ed { display:grid;grid-template-columns:290px 1fr;gap:18px;align-items:start }
.fld { margin-bottom:12px }
.fld label { display:block;font-size:.72rem;color:var(--muted);margin-bottom:4px;font-weight:600 }
.in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:.86rem;color:var(--ink);min-height:37px }
.row2 { display:grid;grid-template-columns:1fr 1fr;gap:10px }
.chips { display:flex;gap:6px;flex-wrap:wrap;margin-top:2px }
.chip { font-size:.72rem;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);border-radius:6px;padding:4px 8px;font-weight:600 }
.chip.mut { background:transparent;color:var(--muted);border-color:var(--line-2) }
.sub-i { color:var(--muted);font-size:.75rem }
.menu-costbar { display:flex;gap:16px;padding:14px 15px;background:var(--accent-soft);border-top:1px solid var(--accent-line);align-items:baseline;flex-wrap:wrap }
.menu-costbar .k { font-size:.72rem;color:var(--muted) }
.menu-costbar .v { font-family:var(--mono);font-weight:700;font-size:1.05rem;color:var(--ink) }
.menu-costbar .mg { margin-left:auto }
@media(max-width:720px) {
  .ed { grid-template-columns:1fr }
}
/* ============================================================================
   screens/inventory.js
   ============================================================================ */
.stk-notstock { border:1px solid var(--line-2);background:none;color:var(--muted);border-radius:6px;padding:0 6px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;vertical-align:middle;margin-left:6px;opacity:0;transition:opacity .12s }
tr:hover .stk-notstock, .stk-notstock:focus { opacity:1 }
.stk-notstock:hover { color:var(--bad);border-color:var(--bad) }
.gv-toolbar { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.gv-seg { display:flex;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden }
.gv-seg button { padding:7px 14px;font-size:.8rem;font-weight:600;color:var(--muted);background:none;border:0;cursor:pointer;font-family:inherit;transition:background .12s,color .12s }
.gv-seg button:not(.on):hover { background:var(--hover);color:var(--ink) }
.gv-seg button.on { background:var(--accent);color:#04222a }
.gv-sum { font-size:.8rem;color:var(--muted) }
.gv-sum b { font-weight:700 }
.gv-search { margin-left:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:.8rem;color:var(--ink);min-width:190px;outline:none;font-family:inherit }
.gv-search:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.gv-search::placeholder { color:var(--muted) }
.gv-fsel { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px;text-align:left }
.gv-fsel:focus { border-color:var(--accent) }
.gv-dates { display:inline-flex;align-items:center;gap:6px }
.gv-dates span { font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted) }
.gv-date { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none }
.gv-date:focus { border-color:var(--accent) }
.gv-cap { font-size:.74rem;color:var(--faint) }
.gv-note { display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:.84rem;color:var(--muted) }
.gv-note b { color:var(--ink);font-weight:700 }
.gv-note svg { width:17px;height:17px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.gv-cat { color:var(--faint);font-size:.72rem;margin-top:1px }
.gv-kind { color:var(--muted);font-size:.78rem;text-transform:capitalize }
.gv-unit { color:var(--muted);font-family:var(--mono);font-size:.8rem }
.pill.gv-none { background:var(--hover);color:var(--muted) }
.gv-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.stk-setup { background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;max-width:860px }
.stk-row { display:grid;grid-template-columns:220px 1fr;gap:14px;align-items:center;margin-bottom:14px }
.stk-row>label { font-size:.82rem;color:var(--muted);font-weight:600 }
.stk-row select,.stk-row input[type=text],.stk-row input[type=datetime-local] { background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:.86rem;color:var(--ink);font-family:inherit;outline:none;max-width:420px }
.stk-row select:focus,.stk-row input:focus { border-color:var(--accent) }
.stk-hint { grid-column:2;font-size:.72rem;color:var(--faint);margin-top:-6px }
.stk-segs { display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden }
.stk-seg { background:transparent;border:0;padding:9px 22px;font-size:.85rem;color:var(--muted);cursor:pointer;font-family:inherit;border-right:1px solid var(--line) }
.stk-seg:last-child { border-right:0 }
.stk-seg.on { background:var(--accent-soft);color:var(--accent2,var(--accent));font-weight:700 }
.stk-seg:hover:not(.on) { background:var(--hover) }
.stk-choose { border-top:1px solid var(--line);margin:4px 0 14px;padding-top:14px }
.stk-scoperow { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px }
.stk-scoperow .stk-seg { border:1px solid var(--line);border-radius:8px;padding:6px 14px;font-size:.8rem }
.stk-pfilter { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 11px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;margin-left:auto;min-width:150px }
.stk-picked { font-size:.76rem;color:var(--muted);font-weight:600 }
.stk-picks { display:flex;flex-wrap:wrap;gap:7px;max-height:230px;overflow:auto;padding:2px }
.stk-pick { display:inline-flex;align-items:center;gap:6px;font-size:.79rem;background:var(--check);border:1px solid var(--line-2);border-radius:9px;padding:6px 11px;cursor:pointer;color:var(--ink) }
.stk-pick.on { border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent2,var(--ink)) }
.stk-pick .stk-n { color:var(--faint);font-size:.72rem }
.stk-none { font-size:.8rem;color:var(--muted);padding:8px 2px }
.stk-go { margin-top:6px }
.stk-head { display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px }
.stk-back { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.84rem;font-weight:600;font-family:inherit;padding:0 }
.stk-title { font-weight:800;font-size:1.02rem }
.stk-when { color:var(--muted);font-size:.8rem;margin-left:auto }
.stk-tabs { display:flex;gap:6px;margin-bottom:10px }
.stk-tab { background:transparent;border:1px solid var(--line);border-radius:9px;padding:7px 16px;font-size:.83rem;color:var(--muted);cursor:pointer;font-family:inherit }
.stk-tab.on { background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent2,var(--accent));font-weight:700 }
.stk-tab .stk-n { color:var(--faint);font-size:.72rem;margin-left:4px }
.stk-sheet th.n,.stk-sheet td.n { text-align:right;white-space:nowrap }
.stk-sheet .stk-nm { min-width:200px }
.stk-sheet .stk-mut { color:var(--muted);font-family:var(--mono);font-size:.8rem }
.stk-sheet td.n b { font-family:var(--mono) }
.stk-cnt { width:104px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:.84rem;color:var(--ink);font-family:var(--mono);text-align:right;outline:none }
.stk-cnt:focus { border-color:var(--accent) }
.stk-diff { font-family:var(--mono);font-weight:700 }
.stk-neg { color:var(--bad) }
.stk-pos { color:var(--ok,var(--accent)) }
.stk-foot { font-size:.82rem;color:var(--muted) }
.inv-tabs { display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px }
.inv-tabs button { padding:9px 16px;font-size:.84rem;font-weight:600;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;margin-bottom:-1px;transition:color .12s,border-color .12s }
.inv-tabs button:hover { color:var(--ink) }
.inv-tabs button.on { color:var(--accent);border-bottom-color:var(--accent) }
.inv-form { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px }
.inv-fld { display:flex;flex-direction:column;gap:5px }
.inv-fld label { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.inv-fld select,.inv-fld input { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:170px }
.inv-fld input:focus,.inv-fld select:focus { border-color:var(--accent) }
.inv-lines td { vertical-align:middle }
.inv-lines input,.inv-lines select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.inv-lines input:focus { border-color:var(--accent) }
.inv-lines input[type=number] { font-family:var(--mono);text-align:right }
.inv-calc { font-family:var(--mono);font-size:.82rem;text-align:right;white-space:nowrap;color:var(--muted) }
.inv-x { background:none;border:0;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px;font-size:1rem;line-height:1 }
.inv-x:hover { background:var(--hover);color:var(--bad) }
.inv-foot { display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap }
.inv-total { margin-left:auto;font-family:var(--mono);font-size:1rem;font-weight:700 }
.inv-total span { font-size:.72rem;color:var(--muted);font-weight:600;margin-right:8px;font-family:inherit }
.inv-back { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;padding:0;margin-bottom:12px;display:inline-flex;align-items:center;gap:6px }
.inv-hrow { cursor:pointer }
.inv-hrow:hover td { background:var(--hover) }
.inv-meta { display:flex;gap:22px;flex-wrap:wrap;margin-bottom:14px;font-size:.84rem }
.inv-meta b { display:block;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:2px }
.inv-h { font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px }
.inv-pad { padding:14px 16px }
.inv-up { color:var(--good) }
.inv-dn { color:var(--bad) }
.inv-stats { display:flex;gap:26px;flex-wrap:wrap;padding:14px 16px }
.inv-stats b { display:block;font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:3px }
.inv-stats .v { font-family:var(--mono);font-size:1.05rem;font-weight:700 }
.inv-cnt::placeholder,.inv-lines input::placeholder { color:var(--faint) }
/* ============================================================================
   screens/pos.js
   ============================================================================ */
.pos-wrap { display:flex;flex-direction:column;gap:0 }
.pos-bar { display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap }
.pos-back { display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line-2);color:var(--ink);font-size:.82rem;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer;font-family:inherit }
.pos-back:hover { border-color:var(--accent-line);color:var(--accent) }
.pos-back svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
.pos-title { font-weight:800;font-size:1.05rem;letter-spacing:-.01em }
.pos-title .g { font-size:.74rem;color:var(--muted);font-family:var(--mono);font-weight:600;margin-left:8px }
.pos-spacer { margin-left:auto }
.pos-empty { padding:40px 20px;text-align:center;color:var(--muted);font-size:.9rem }
.pos-btn { display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:.86rem;font-weight:700;padding:10px 16px;border-radius:9px;cursor:pointer;border:0;font-family:inherit;line-height:1 }
.pos-btn svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none }
.pos-fbtn { display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line-2);color:var(--ink);font-size:.82rem;font-weight:700;padding:8px 13px;border-radius:9px;cursor:pointer;font-family:inherit;line-height:1;height:36px }
.pos-fbtn:hover { border-color:var(--accent-line);color:var(--accent) }
.pos-fbtn svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none }
.pos-iconbtn { display:inline-grid;place-items:center;width:36px;height:36px;flex:none;background:var(--card);border:1px solid var(--line-2);color:var(--muted);border-radius:9px;cursor:pointer;padding:0 }
.pos-iconbtn:hover { color:var(--ink);border-color:var(--accent-line) }
.pos-iconbtn svg { width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
.btn.g { background:var(--good);color:#04231a }
.pos-screen { display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg) }
.pos-app { flex:none;display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--topbar) }
.pos-app .home { display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line-2);color:var(--ink);font-weight:800;font-size:.82rem;padding:8px 12px 8px 9px;border-radius:10px;cursor:pointer;font-family:inherit }
.pos-app .home:hover { border-color:var(--accent-line);color:var(--accent) }
.pos-app .home svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round }
.pos-app .home .d { color:var(--accent) }
.pos-app .ttl { font-weight:800;font-size:1rem;letter-spacing:-.01em }
.pos-app .ttl .cr { color:var(--muted);font-weight:600;font-size:.82rem;margin-left:4px }
.pos-app .rt { margin-left:auto;display:flex;align-items:center;gap:8px }
.pos-tglt { background:var(--card);border:1px solid var(--line-2);border-radius:9px;padding:7px;cursor:pointer;color:var(--muted);display:grid;place-items:center }
.pos-tglt:hover { color:var(--ink);border-color:var(--accent-line) }
.pos-tglt svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.pos-body { flex:1;min-height:0;display:flex;flex-direction:column;padding:14px 16px 16px;overflow:auto }
.pos-lock { position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);padding:24px;overflow:hidden }
.pos-lock:before,.pos-lock:after { content:"";position:absolute;left:50%;border-radius:50%;background:var(--lock-glow);pointer-events:none;z-index:0 }
.pos-lock:before { top:-340px;width:820px;height:820px;margin-left:-410px;opacity:.35 }
.pos-lock:after { top:-230px;width:560px;height:560px;margin-left:-280px;opacity:.45 }
.pos-lock>* { position:relative;z-index:1 }
.pos-lock .exit { position:absolute;top:16px;left:16px;display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line-2);color:var(--muted);font-weight:800;font-size:14px;padding:9px 13px 9px 10px;border-radius:9px;cursor:pointer;font-family:inherit;line-height:1 }
.pos-lock .exit:hover { border-color:var(--accent-line);color:var(--accent) }
.pos-lock .exit svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round }
.pos-lock .exit .d { color:var(--accent) }
.pos-lock .pos-tglt { position:absolute;top:16px;right:16px;width:40px;height:34px;padding:0;border-radius:10px }
.pos-lock .pos-tglt svg { width:18px;height:18px }
.pos-lock .pos-build { position:absolute;bottom:16px;left:16px;color:var(--faint);font-size:12px;font-weight:600;letter-spacing:.3px }
.pos-lock .brand { text-align:center;margin-bottom:24px }
.pos-lock .brand .b { font-weight:800;font-size:2rem;letter-spacing:-.02em }
.pos-lock .brand .b .d { color:var(--accent) }
.pos-lock .brand .mk { display:flex;justify-content:center;margin-bottom:16px }
.pos-lock .brand .mk:only-child { margin-bottom:0 }
.pos-lock .brand .mk .gxm img { filter:drop-shadow(0 6px 22px var(--accent-soft)) }
.pos-brandlogo img { display:block;height:80px;width:auto;max-width:240px;object-fit:contain }
.pos-brandlogo .dk { display:none }
:root[data-theme="light"] .pos-brandlogo .lt { display:block }
:root[data-theme="light"] .pos-brandlogo .dk { display:none }
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) .pos-brandlogo .lt { display:none }
  :root:not([data-theme]) .pos-brandlogo .dk { display:block }
}
:root[data-theme="dark"] .pos-brandlogo .lt { display:none }
:root[data-theme="dark"] .pos-brandlogo .dk { display:block }
:root[data-theme="dark"] .pos-brandlogo.mono .dk { filter:brightness(0) invert(.9) }
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) .pos-brandlogo.mono .dk { filter:brightness(0) invert(.9) }
}
.pos-lock .brand .t { color:var(--muted);font-size:.92rem;margin-top:5px }
.pos-lockttl { color:var(--ink);font-size:26px;font-weight:700;margin-bottom:32px }
.pos-dots { display:flex;gap:16px;margin-bottom:16px }
.pos-dots i { width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);background:transparent;transition:background .1s,border-color .1s }
.pos-dots i.on { background:var(--accent);border-color:var(--accent) }
.pos-dots.err i { border-color:var(--bad) }
.pos-dots.err { animation:posShake .3s }
@keyframes posShake { 0%,100%{transform:translateX(0)}20%{transform:translateX(12px)}40%{transform:translateX(-12px)}60%{transform:translateX(12px)}80%{transform:translateX(-12px)} }
.pos-lock .msg { display:flex;align-items:center;justify-content:center;text-align:center;min-height:28px;margin-bottom:24px;color:var(--muted);font-size:14px;font-weight:400 }
.pos-lock .msg.err { color:var(--bad);font-size:15px;font-weight:600 }
.pos-lock .msg .sp { width:20px;height:20px;border-radius:50%;border:2.5px solid var(--line-2);border-top-color:var(--accent);animation:posSpin .7s linear infinite }
@keyframes posSpin { to{transform:rotate(360deg)} }
.pos-pinpad { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:300px;max-width:90% }
.pos-pk2 { height:72px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:28px;font-weight:600;cursor:pointer;font-family:inherit;display:grid;place-items:center;transition:background .08s,transform .06s }
.pos-pk2:active { background:var(--hover);transform:scale(.96) }
.pos-pk2[disabled] { opacity:.4;cursor:default }
.pos-pk2.txt { font-size:16px;font-weight:600 }
.pos-pk2 svg { width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round }
.pos-setup { max-width:420px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 26px 22px;box-shadow:var(--shadow) }
.pos-setup h3 { font-size:1.1rem;margin:6px 0 6px }
.pos-setup p { color:var(--muted);font-size:.88rem;margin:0 0 18px }
.pos-setup .ic { width:48px;height:48px;border-radius:14px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin:0 auto 12px }
.pos-setup .ic svg { width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
.pos-setup .btns { display:flex;gap:10px;justify-content:center;flex-wrap:wrap }
.pos-staffchip { display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line-2);color:var(--ink);font-weight:700;font-size:.78rem;padding:6px 11px;border-radius:9px;cursor:pointer;font-family:inherit }
.pos-staffchip:hover { border-color:var(--accent-line);color:var(--accent) }
.pos-staffchip svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round }
.pos-floor { --pf:#0d141b;--pt:#161E26;--ptb:#2a3644;--pts:0 1px 3px rgba(0,0,0,.4) }
@media(prefers-color-scheme:light) {
  .pos-floor { --pf:#e9eef4;--pt:#ffffff;--ptb:#c8d3de;--pts:0 2px 6px rgba(15,23,32,.12) }
}
:root[data-theme="light"] .pos-floor { --pf:#e9eef4;--pt:#ffffff;--ptb:#c8d3de;--pts:0 2px 6px rgba(15,23,32,.12) }
:root[data-theme="dark"] .pos-floor { --pf:#0d141b;--pt:#161E26;--ptb:#2a3644;--pts:0 1px 3px rgba(0,0,0,.4) }
.pos-zones { display:flex;gap:5px;margin-bottom:12px;flex-wrap:wrap;align-items:center }
.pos-ztab { font-size:.8rem;font-weight:700;padding:7px 14px;border-radius:9px;color:var(--muted);background:transparent;border:1px solid transparent;cursor:pointer;font-family:inherit }
.pos-ztab.on { background:var(--card);color:var(--ink);border-color:var(--line) }
.pos-ztab:hover:not(.on) { color:var(--ink) }
.pos-floor { position:relative;flex:1;min-height:320px;border:1px solid var(--line);border-radius:14px;background-color:var(--pf);background-image:radial-gradient(circle at 20px 20px,rgba(128,140,152,.18) 1px,transparent 1px),var(--beach-scrim),url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDAgNjAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjYwMCI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjMwMCIgaGVpZ2h0PSI2MDAiIGZpbGw9IiM4RkJGQzkiLz48cGF0aCBkPSJNMCAwIEgzMDAgVjE1MCBDMjQwIDE2OCAyMDAgMTQwIDE1MCAxNTUgQzEwMCAxNzAgNjAgMTQ4IDAgMTYyIFoiIGZpbGw9IiNBM0NERDMiLz48cGF0aCBkPSJNMCAxNTIgQzYwIDEzOCAxMDAgMTYwIDE1MCAxNDUgQzIwMCAxMzAgMjQwIDE1OCAzMDAgMTQwIFYyMzIgQzI0MCAyNTAgMTk1IDIyNiAxNDUgMjQwIEM5NSAyNTQgNTUgMjMyIDAgMjQ2IFoiIGZpbGw9IiNCN0RDREQiLz48cGF0aCBkPSJNMCAyMzYgQzU1IDIyMiA5NSAyNDQgMTQ1IDIzMCBDMTk1IDIxNiAyNDAgMjQwIDMwMCAyMjIgVjMwMCBDMjM4IDMyMCAxOTIgMjk2IDE0MiAzMTAgQzkyIDMyNCA1MiAzMDIgMCAzMTYgWiIgZmlsbD0iI0NCRTlFNSIvPjxwYXRoIGQ9Ik0wIDMwNiBDNTIgMjkyIDkyIDMxNCAxNDIgMzAwIEMxOTIgMjg2IDIzOCAzMTAgMzAwIDI5MCBWMzMwIEMyMzggMzUwIDE5MiAzMjYgMTQyIDM0MCBDOTIgMzU0IDUyIDMzMiAwIDM0NiBaIiBmaWxsPSIjRTRGNEVFIi8+PHBhdGggZD0iTTAgMzM2IEM1MiAzMjIgOTIgMzQ0IDE0MiAzMzAgQzE5MiAzMTYgMjM4IDM0MCAzMDAgMzIwIFYzNTIgQzIzNiAzNzIgMTkwIDM1MCAxNDAgMzY0IEM5MCAzNzggNTAgMzU2IDAgMzcwIFoiIGZpbGw9IiNGN0ZCRjYiLz48cGF0aCBkPSJNMCAzNjAgQzUwIDM0NiA5MCAzNjggMTQwIDM1NCBDMTkwIDM0MCAyMzYgMzYyIDMwMCAzNDIgVjYwMCBIMCBaIiBmaWxsPSIjRTlEREMzIi8+PHBhdGggZD0iTTAgNDA0IEM1MCAzOTAgOTIgNDEyIDE0MiAzOTggQzE5MiAzODQgMjM4IDQwNiAzMDAgMzg2IFY2MDAgSDAgWiIgZmlsbD0iI0YyRTdEMCIvPjxwYXRoIGQ9Ik0wIDQ2MiBDNTIgNDQ4IDk0IDQ3MCAxNDQgNDU2IEMxOTQgNDQyIDI0MCA0NjIgMzAwIDQ0MiBWNjAwIEgwIFoiIGZpbGw9IiNGOEYwREUiLz48ZyBvcGFjaXR5PSIwLjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PHBhdGggZD0iTTE4IDk2IEM0MiA4OCA1OCAxMDIgODQgOTQiLz48cGF0aCBkPSJNMTMyIDYwIEMxNTYgNTIgMTcyIDY2IDE5OCA1OCIvPjxwYXRoIGQ9Ik0yMDQgMTE4IEMyMjYgMTEwIDI0MCAxMjQgMjY2IDExNiIvPjxwYXRoIGQ9Ik01NiAxOTYgQzgwIDE4OCA5NiAyMDIgMTIyIDE5NCIvPjxwYXRoIGQ9Ik0xNzYgMjEyIEMxOTggMjA0IDIxNCAyMTggMjQwIDIxMCIvPjxwYXRoIGQ9Ik05NiAyNjggQzExOCAyNjAgMTM0IDI3NCAxNjAgMjY2Ii8+PC9nPjxnIG9wYWNpdHk9IjAuMzUiIGZpbGw9IiNEOUM5QTYiPjxjaXJjbGUgY3g9IjQ2IiBjeT0iNDg2IiByPSIxLjQiLz48Y2lyY2xlIGN4PSI5MiIgY3k9IjUxNCIgcj0iMS4xIi8+PGNpcmNsZSBjeD0iMTUwIiBjeT0iNDcyIiByPSIxLjMiLz48Y2lyY2xlIGN4PSIyMTIiIGN5PSI1MjgiIHI9IjEuMiIvPjxjaXJjbGUgY3g9IjI1OCIgY3k9IjQ4MCIgcj0iMS40Ii8+PGNpcmNsZSBjeD0iNzIiIGN5PSI1NTgiIHI9IjEuMiIvPjxjaXJjbGUgY3g9IjEzNCIgY3k9IjU0MiIgcj0iMS4xIi8+PGNpcmNsZSBjeD0iMTk2IiBjeT0iNTc2IiByPSIxLjMiLz48Y2lyY2xlIGN4PSIyNjYiIGN5PSI1NTIiIHI9IjEuMSIvPjxjaXJjbGUgY3g9IjI0IiBjeT0iNTMwIiByPSIxLjIiLz48Y2lyY2xlIGN4PSIxNzYiIGN5PSI1MDQiIHI9IjEuMiIvPjxjaXJjbGUgY3g9IjIzOCIgY3k9IjU5MCIgcj0iMS4xIi8+PC9nPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iNjAwIiBmaWxsPSIjRkZGRkZGIiBvcGFjaXR5PSIwLjQyIi8+PC9zdmc+");background-size:26px 26px,100% 100%,100% 100%;background-position:0 0,center,center;background-repeat:repeat,no-repeat,no-repeat;overflow:hidden }
.pos-floor { --beach-scrim:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.10)) }
:root[data-theme="dark"] .pos-floor { --beach-scrim:linear-gradient(rgba(15,26,23,.86),rgba(15,26,23,.86)) }
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) .pos-floor { --beach-scrim:linear-gradient(rgba(15,26,23,.86),rgba(15,26,23,.86)) }
}
.pos-tbl { position:absolute;border:1.5px solid var(--ptb);border-radius:12px;background:var(--pt);box-shadow:var(--pts);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6px;text-align:center;cursor:pointer;transition:transform .08s,box-shadow .12s;min-width:52px;min-height:52px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none }
.pos-tbl:hover { transform:translateY(-1px);box-shadow:var(--shadow);border-color:var(--accent-line) }
.pos-tbl:active { transform:translateY(0) }
.pos-tbl.circ { border-radius:50% }
.pos-tbl.occ.paid { border-style:dashed;opacity:.82 }
.pos-tbl.occ.paid .n { opacity:.75 }
.pos-burst { position:absolute;left:0;bottom:100%;z-index:5;background:var(--accent);color:#04121a;border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:800;white-space:nowrap;pointer-events:none;animation:posBurst .9s ease-out forwards }
@keyframes posBurst { 0%{opacity:0;transform:translateY(4px)}15%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translateY(-34px)} }
.pos-total-pulse { animation:posPulse .39s ease-out }
@keyframes posPulse { 0%{transform:scale(1)}33%{transform:scale(1.12)}100%{transform:scale(1)} }
.pos-tbl.semic { border-radius:50% 50% 12px 12px / 100% 100% 12px 12px }
.pos-tbl .posin { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100% }
.pos-tbl .n { font-weight:800;font-size:1.55rem;line-height:1.05;color:var(--ink) }
.pos-tbl .nm { font-size:.72rem;color:var(--muted);font-weight:600;line-height:1.15;margin-top:1px }
.pos-tbl .meta { display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:5px;font-size:.9rem;color:var(--muted);line-height:1.2;font-family:var(--mono);font-weight:600 }
.pos-tbl .meta .mrow { display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;font-weight:700 }
.pos-tbl .meta .mg,.pos-tbl .meta .mt { display:inline-flex;align-items:center;gap:3px }
.pos-tbl .meta .mi { width:1.05em;height:1.05em;flex:none;opacity:.9 }
.pos-tbl .meta .mmoney { white-space:nowrap;font-size:1.12rem;font-weight:800;color:var(--ink) }
.pos-tbl .meta .mavg { white-space:nowrap;font-size:.82rem;font-weight:600;opacity:.85 }
.pos-tbl:not(.occ) { border:2px solid var(--accent) }
.pos-tbl.occ { background:var(--occ);border:2px solid var(--accent);box-shadow:var(--pts) }
.pos-tbl.resv { border:2px dashed var(--sand);background:color-mix(in srgb,var(--sand) 16%,var(--pt)) }
.pos-tbl.resv .meta { color:var(--muted) }
.pos-tbl.occ .n { color:var(--ink) }
.pos-tbl.occ .meta { color:var(--accent-2) }
.pos-tbl.occ .meta .mmoney { color:var(--ink) }
.pos-legend { position:absolute;bottom:12px;right:14px;display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-size:.74rem;font-weight:600;color:var(--muted);box-shadow:0 4px 12px rgba(4,18,26,.12);pointer-events:none }
.pos-legend span { display:flex;align-items:center;gap:7px }
.pos-legend b { width:15px;height:15px;border-radius:5px;border:2px solid transparent;box-sizing:border-box;display:inline-block }
.pos-obody { display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:0;flex:1;min-height:420px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card) }
.pos-menu { min-height:0;display:flex;flex-direction:column;overflow:auto;padding:14px;background:var(--bg) }
.pos-floorwrap { display:flex;gap:12px;flex:1;min-height:0 }
.pos-zonecol { flex:0 0 128px;display:flex;flex-direction:column;gap:8px;overflow:auto;padding-top:2px }
.pos-zpill { background:var(--card);border:1px solid var(--line);border-radius:999px;padding:11px 14px;font:inherit;font-size:.88rem;font-weight:700;color:var(--muted);cursor:pointer;text-align:center;white-space:nowrap }
.pos-zpill:hover { background:var(--hover);color:var(--ink) }
.pos-zpill.on { background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-2);font-weight:800 }
.pos-signout { position:absolute;top:14px;left:130px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font:inherit;font-size:.84rem;font-weight:700;color:var(--ink);cursor:pointer;z-index:2 }
.pos-signout:hover { background:var(--hover) }
.pos-hday { display:flex;justify-content:space-between;align-items:baseline;padding:14px 16px 8px;font-weight:800;font-size:.94rem;color:var(--ink);position:sticky;top:0;background:var(--bg);z-index:1 }
.pos-hday span:last-child { font-weight:600;font-size:.8rem;color:var(--muted) }
.pos-hrow { display:grid;grid-template-columns:78px 1fr auto auto;gap:12px;align-items:center;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 12px 8px;font:inherit;cursor:pointer;color:var(--ink) }
.pos-hrow:hover { background:var(--hover) }
.pos-hrow:disabled { opacity:.55;cursor:default }
.pos-hno { font-family:var(--mono);font-weight:800 }
.pos-hsub { color:var(--muted);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.pos-hamt { font-family:var(--mono);font-weight:800;font-variant-numeric:tabular-nums }
.pos-hprint { color:var(--accent);font-weight:700;font-size:.82rem;white-space:nowrap }
.pos-hfoot { padding:10px 16px 20px;color:var(--faint);font-size:.8rem }
.pos-tillwho { font-weight:800;font-size:1rem;color:var(--ink) }
.pos-tillsub { font-size:.8rem;color:var(--muted);margin-left:8px }
@media(max-width:820px) {
  .pos-floorwrap { flex-direction:column }
  .pos-zonecol { flex:none;flex-direction:row;overflow-x:auto }
}
.pos-cats { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-content:start }
.pos-ct { position:relative;border:0;border-radius:16px;padding:14px 16px;min-height:132px;cursor:pointer;font-family:inherit;text-align:left;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.16);transition:transform .07s }
.pos-ct:active { transform:scale(.97) }
.pos-ct .ci svg { width:21px;height:21px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linejoin:round;opacity:.92;position:relative;z-index:1 }
.pos-ct .ctimg { position:absolute;inset:-8px;background-size:cover;background-position:center;filter:blur(5px);transform:scale(1.06);z-index:0 }
.pos-ct .cn { font-weight:800;font-size:1.28rem;line-height:1.14;letter-spacing:-.01em;margin-top:auto;position:relative;z-index:1;text-shadow:0 1px 4px rgba(0,0,0,.55) }
.pos-ct .cc { font-size:.86rem;opacity:.95;font-weight:600;margin-top:4px;position:relative;z-index:1;text-shadow:0 1px 3px rgba(0,0,0,.5) }
.pos-ct .ctov { position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.62));z-index:0 }
.pos-ct.on { box-shadow:0 0 0 3px var(--bg),0 0 0 6px var(--ink) }
.pos-crumb { display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap }
.pos-crumb .cbk { background:none;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font:inherit;font-size:.84rem;font-weight:700;color:var(--accent);cursor:pointer }
.pos-crumb .cbk:hover { background:var(--hover) }
.pos-crumb .cnow { font-weight:800;font-size:1.02rem;color:var(--ink) }
.pos-grid { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;align-content:start }
.pos-pc { position:relative;border:0;border-radius:14px;overflow:hidden;cursor:pointer;font-family:inherit;aspect-ratio:1/1;background:var(--card);display:flex;flex-direction:column;justify-content:flex-end;text-align:left;box-shadow:0 1px 3px rgba(0,0,0,.16);transition:transform .07s }
.pos-pc.sold .img { filter:grayscale(1) brightness(.55) }
.pos-pc.sold .pn { opacity:.6 }
.pos-pc .p86 { position:absolute;top:6px;left:6px;z-index:2;background:var(--bad);color:#fff;font-weight:800;font-size:.66rem;letter-spacing:.05em;padding:2px 7px;border-radius:6px;font-family:var(--mono) }
.pos-pc:active { transform:scale(.96) }
.pos-pc .img { position:absolute;inset:0;background-size:cover;background-position:center;background-color:var(--hover) }
.pos-pc .ov { position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 34%,rgba(0,0,0,.68) 100%) }
.pos-pc .pi { position:relative;padding:9px 11px 10px }
.pos-pc .pn { color:#fff;font-weight:700;font-size:.85rem;line-height:1.18;text-shadow:0 1px 3px rgba(0,0,0,.6);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden }
.pos-pc .pp { color:#fff;font-family:var(--mono);font-weight:700;font-size:.8rem;margin-top:3px;text-shadow:0 1px 3px rgba(0,0,0,.6) }
.pos-rail { background:var(--nav);border-right:1px solid var(--line);padding:10px 8px;overflow:auto }
.pos-cat { font-size:.8rem;font-weight:600;padding:10px 11px;border-radius:8px;color:var(--muted);margin-bottom:2px;cursor:pointer;font-family:inherit;width:100%;text-align:left;background:none;border:0;line-height:1.2 }
.pos-cat:hover { background:var(--hover);color:var(--ink) }
.pos-cat.on { background:var(--accent);color:#04222a;font-weight:700 }
.pos-prods { padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;align-content:start;overflow:auto;background:var(--bg) }
.pos-p { background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 11px 10px;min-height:78px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .1s,box-shadow .1s }
.pos-p:hover { border-color:var(--accent-line) }
.pos-p:active { box-shadow:var(--glow) }
.pos-p .nm { font-size:.83rem;font-weight:600;line-height:1.25;color:var(--ink) }
.pos-p .pr { font-family:var(--mono);font-size:.82rem;color:var(--accent);font-weight:700;margin-top:6px }
.pos-check { background:var(--check);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0 }
.pos-ch-h { padding:12px 15px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap }
.pos-ch-h .t { font-weight:800;font-size:1rem }
.pos-ch-h .g { font-size:.72rem;color:var(--muted);font-family:var(--mono);margin-left:auto }
.pos-ch-acts { display:flex;gap:2px;align-items:center }
.pos-hbtn { position:relative;width:32px;height:32px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted);cursor:pointer;padding:0 }
.pos-pbadge { position:absolute;top:-3px;right:-3px;min-width:15px;height:15px;padding:0 3px;display:grid;place-items:center;background:var(--accent);color:#04121a;border-radius:8px;font-size:.58rem;font-weight:800;font-family:var(--mono);line-height:1;box-shadow:0 0 0 1.5px var(--check) }
.pos-pbadge[hidden] { display:none }
.pos-hbtn:hover { color:var(--ink);background:var(--accent-soft) }
.pos-hbtn svg { width:18px;height:18px }
.pos-ch-meta { padding:8px 15px 0;font-size:.72rem;color:var(--muted);font-family:var(--mono) }
.pos-note { margin:8px 15px 2px;padding:7px 10px;background:var(--accent-soft);border:1px solid var(--line);border-radius:9px;display:flex;gap:8px;align-items:flex-start;font-size:.8rem;color:var(--ink);line-height:1.3 }
.pos-note .ic { flex:none;margin-top:1px;color:var(--accent) }
.pos-note .ic svg { width:15px;height:15px }
.pos-pop { position:fixed;z-index:80;min-width:214px;background:var(--card);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow);padding:6px }
.pos-pop-i { display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;background:transparent;border:0;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.86rem;font-weight:600;color:var(--ink);text-align:left }
.pos-pop-i:hover { background:var(--accent-soft) }
.pos-pop-i .ic { flex:none;width:18px;height:18px;display:grid;place-items:center;color:var(--muted) }
.pos-pop-i .ic svg { width:18px;height:18px }
.pos-pop-i.danger { color:var(--bad) }
.pos-pop-i.danger .ic { color:var(--bad) }
.pos-pop-i.danger:hover { background:color-mix(in srgb,var(--bad) 12%,transparent) }
.pos-picklist { display:flex;flex-direction:column;gap:6px }
.pos-pick { display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;font-family:inherit;text-align:left;color:var(--ink) }
.pos-pick:hover:not([disabled]) { border-color:var(--accent) }
.pos-pick[disabled] { opacity:.45;cursor:not-allowed }
.pos-pick.cur { border-color:var(--accent);background:var(--accent-soft) }
.pos-pick .pk-ic { flex:none;width:20px;height:20px;display:grid;place-items:center;color:var(--muted) }
.pos-pick .pk-ic svg { width:20px;height:20px }
.pos-pick .pk-n { font-weight:700;font-size:.9rem }
.pos-pick .pk-s { color:var(--muted);font-size:.78rem }
.pos-pick .pk-b { margin-left:auto;font-family:var(--mono);font-size:.74rem;color:var(--muted);font-weight:700 }
.pos-ta { width:100%;border:1px solid var(--line-2);border-radius:9px;background:var(--card);color:var(--ink);font-family:inherit;font-size:.9rem;padding:9px 11px;resize:vertical;line-height:1.4 }
.pos-ta:focus { outline:0;border-color:var(--accent) }
.pos-split-i { display:flex;align-items:center;gap:11px;padding:9px 2px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.86rem }
.pos-split-i input { width:18px;height:18px;accent-color:var(--accent);flex:none;cursor:pointer }
.pos-split-i .sn { flex:1;font-weight:500 }
.pos-split-i .sq { color:var(--muted);font-family:var(--mono);font-size:.78rem }
.pos-split-i .sa { font-family:var(--mono);font-weight:700 }
.pos-split-sum { margin-top:11px;font-family:var(--mono);font-size:.8rem;color:var(--accent);font-weight:700;min-height:1.1em }
.pos-in { width:100%;border:1px solid var(--line-2);border-radius:9px;background:var(--card);color:var(--ink);font-family:inherit;font-size:.9rem;padding:9px 11px;line-height:1.3 }
.pos-in:focus { outline:0;border-color:var(--accent) }
.pos-frow { display:flex;gap:12px;margin-top:12px }
.rv-info { display:flex;flex-direction:column;gap:2px }
.rv-l { display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:.88rem;color:var(--ink) }
.rv-l:last-child { border-bottom:0 }
.rv-l span { color:var(--muted);font-size:.74rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;width:64px;flex:none }
.rv-when { border:1px solid var(--line-2);border-radius:11px;padding:10px;background:var(--card) }
.rv-wkhead { display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;gap:8px }
.rv-wklabel { font-weight:700;color:var(--ink);font-size:.9rem }
.rv-wknav { width:32px;height:32px;flex:none;border-radius:8px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font-size:1.15rem;line-height:1;cursor:pointer;display:grid;place-items:center }
.rv-wknav:hover:not(:disabled) { border-color:var(--accent);color:var(--accent) }
.rv-wknav:disabled { opacity:.3;cursor:default }
.rv-week { display:grid;grid-template-columns:repeat(7,1fr);gap:5px }
.rv-day { display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-radius:9px;border:1px solid transparent;background:var(--bg);color:var(--ink);cursor:pointer;font-family:inherit }
.rv-day .rv-dow { font-size:.58rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:700 }
.rv-day .rv-dnum { font-size:1rem;font-weight:800;line-height:1.1 }
.rv-day:hover:not(.off):not(.on) { border-color:var(--accent-line) }
.rv-day.on { background:var(--accent);color:#04121a;border-color:var(--accent) }
.rv-day.on .rv-dow { color:rgba(4,18,26,.7) }
.rv-day.off { opacity:.32;cursor:default }
.rv-timerow { display:flex;align-items:center;gap:6px;margin-top:11px }
.rv-tsel { flex:1;width:auto;text-align:center;padding:8px 6px }
.rv-colon { font-weight:800;color:var(--muted) }
.rv-hint { margin-top:9px;font-size:.74rem;color:var(--muted);line-height:1.35 }
.rv-hint b { color:var(--ink);font-weight:700 }
.pos-btn.danger { background:var(--bad);color:#fff }
.pos-btn.danger:hover { filter:brightness(1.06) }
.tbadge { position:absolute;top:5px;left:5px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:9px;font-size:.66rem;font-weight:800;font-family:var(--mono);z-index:2 }
.pos-badges { position:absolute;inset:0;pointer-events:none;transform-origin:center;z-index:5 }
.pos-ind { position:absolute;top:-11px;right:-11px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;z-index:5;cursor:pointer;pointer-events:auto;box-shadow:0 3px 9px rgba(0,0,0,.42);border:2px solid var(--pf) }
.pos-ind.pulse { animation:posIndPing 1.5s ease-out infinite }
@keyframes posIndPing { 0%{box-shadow:0 0 0 0 var(--pc,rgba(0,0,0,.4))}70%,100%{box-shadow:0 0 0 12px transparent} }
.pos-indmsg { display:flex;align-items:center;gap:14px;padding:6px 2px }
.pos-indmsg .txt { font-size:.95rem;color:var(--ink);font-weight:600;line-height:1.35 }
.pos-indbig { width:46px;height:46px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff }
.pos-lines { flex:1;overflow:auto;padding:4px 15px }
.pos-li { display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line) }
.pos-li:last-child { border-bottom:0 }
.pos-qty { display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:8px;overflow:hidden }
.pos-qty button { width:26px;height:28px;display:grid;place-items:center;background:var(--card);color:var(--accent);border:0;cursor:pointer;font-family:var(--mono);font-size:1rem;font-weight:700;line-height:1 }
.pos-qty button:disabled { color:var(--faint);cursor:default }
.pos-qty .qv { min-width:24px;text-align:center;font-family:var(--mono);font-weight:700;font-size:.82rem }
.pos-li .nm { font-size:.84rem;font-weight:500;line-height:1.25 }
.pos-li .nm .m { display:block;font-size:.71rem;color:var(--muted);margin-top:1px }
.pos-li .nm .fchk { color:var(--good);font-size:.68rem;font-family:var(--mono);font-weight:700;margin-left:5px }
.pos-li .r { display:flex;align-items:center;gap:7px;justify-self:end }
.pos-li .a { font-family:var(--mono);font-size:.82rem;font-weight:700;text-align:right }
.pos-void { background:none;border:0;cursor:pointer;color:var(--faint);display:grid;place-items:center;padding:2px }
.pos-void:hover { color:var(--bad) }
.pos-void svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round }
.pos-ch-f { border-top:1px solid var(--line);padding:11px 15px }
.pos-sr { display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-bottom:4px }
.pos-sr .v { font-family:var(--mono);color:var(--ink) }
.pos-sr.disc { color:var(--good) }
.pos-sr.disc .v { color:var(--good) }
.pos-sr.grand { border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-weight:800;font-size:1.2rem;color:var(--ink);align-items:baseline }
.pos-sr.grand .v { font-size:1.72rem;color:var(--accent);font-weight:800;letter-spacing:-.01em }
.pos-vatline { font-size:.64rem;color:var(--faint);font-family:var(--mono);margin-top:7px;line-height:1.5 }
.pos-cacts { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px }
.pos-cacts .pos-pay { grid-column:1/-1;padding:15px 16px;font-size:1.06rem;font-weight:800;border-radius:12px }
.pos-cacts .pos-btn { padding:9px 10px;text-align:center;font-size:.82rem }
.pos-cacts .full { grid-column:1 / -1 }
/* Takeout has no table to free, so the settled check says so rather than leaving a dead half-cell
 * where the Pay button used to be. */
/* Source chip in the Finance ledger — theme tokens, so it follows light and dark. */
.rp-badge { display:inline-block;padding:1px 7px;margin-right:6px;border-radius:999px;font-size:.72rem;
  font-weight:700;letter-spacing:.02em;background:var(--hover);color:var(--muted);border:1px solid var(--line) }
.rp-badge.ok { background:color-mix(in srgb, var(--good) 16%, transparent);color:var(--good);
  border-color:color-mix(in srgb, var(--good) 34%, transparent) }

.pos-settled-note { grid-column:1 / -1;text-align:center;padding:11px 10px;font-size:.82rem;color:var(--muted);border:1px dashed var(--line);border-radius:9px }
.pos-chip-on { border-color:var(--accent)!important;background:var(--accent-soft)!important;color:var(--accent)!important }
.pos-crow { display:flex;flex-wrap:wrap;gap:7px;margin:8px 15px 2px }
.pos-cchip { display:inline-flex;align-items:center;gap:6px;max-width:100%;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:9px;padding:5px 5px 5px 10px;font-size:.78rem;color:var(--ink);line-height:1.2 }
.pos-cchip .cl { display:inline-flex;align-items:center;gap:6px;min-width:0 }
.pos-cchip .cl svg { width:15px;height:15px;flex:none;color:var(--accent) }
.pos-cchip .cl .nm { font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.pos-cchip .cl .sub { color:var(--muted);font-weight:600;white-space:nowrap }
.pos-cchip .amt { font-family:var(--mono);font-weight:700;color:var(--good);white-space:nowrap }
.pos-cchip.offer { background:var(--good-soft);border-color:var(--good) }
.pos-cchip.offer .cl svg { color:var(--good) }
.pos-cx { flex:none;width:20px;height:20px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:6px;padding:0 }
.pos-cx:hover { color:var(--bad) }
.pos-cx svg { width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round }
.pos-ov { position:fixed;inset:0;background:rgba(3,8,12,.62);display:flex;align-items:center;justify-content:center;z-index:70;padding:18px }
:root[data-theme="light"] .pos-ov { background:rgba(15,23,32,.4) }
.pos-modal { width:460px;max-width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden }
.pos-m-h { padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:10px }
.pos-m-h .t { font-weight:800;font-size:1.02rem }
.pos-m-h .pr { margin-left:auto;font-family:var(--mono);color:var(--accent);font-weight:700 }
.pos-m-b { padding:14px 18px;max-height:min(60vh,340px);overflow:auto }
.pos-grp { font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:4px 0 8px;display:flex;gap:8px;align-items:center }
.pos-grp .req { color:var(--bad);border:1px solid var(--bad);border-radius:4px;padding:0 5px;font-size:.55rem }
.pos-opts { display:flex;flex-direction:column;gap:7px;margin-bottom:14px }
.pos-opt { display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:11px 12px;font-size:.86rem;cursor:pointer }
.pos-opt .mk { width:17px;height:17px;border:1.5px solid var(--line-2);flex:none }
.pos-opt .mk.rd { border-radius:50% }
.pos-opt .mk.cb { border-radius:5px }
.pos-opt.on { border-color:var(--accent);background:var(--accent-soft) }
.pos-opt.on .mk.rd { border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--card) }
.pos-opt.on .mk.cb { border-color:var(--accent);background:var(--accent) }
.pos-opt .op { margin-left:auto;font-family:var(--mono);font-size:.78rem;color:var(--muted) }
.pos-m-f { padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center }
.pos-stepper { display:flex;align-items:center;border:1px solid var(--line-2);border-radius:9px;overflow:hidden }
.pos-stepper button { width:40px;height:40px;display:grid;place-items:center;background:var(--card);color:var(--accent);border:0;cursor:pointer;font-family:var(--mono);font-size:1.2rem;font-weight:700 }
.pos-stepper .sv { min-width:44px;text-align:center;font-family:var(--mono);font-weight:800;font-size:1.05rem }
.pos-gchips { display:flex;gap:7px;flex-wrap:wrap;margin-top:12px }
.pos-gchip { width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font-family:var(--mono);font-weight:700;cursor:pointer;font-size:.95rem }
.pos-gchip.on { border-color:var(--accent);background:var(--accent-soft);color:var(--accent) }
.pos-pbody { display:grid;grid-template-columns:1fr minmax(320px,360px);gap:0;flex:1;min-height:420px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card) }
.pos-pleft { padding:20px;display:flex;flex-direction:column;overflow:auto;background:var(--bg) }
.pos-due { background:var(--card);border:1px solid var(--line);border-radius:13px;padding:18px 20px;text-align:center;margin-bottom:16px }
.pos-due .lb { font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted) }
.pos-due .amt { font-family:var(--mono);font-size:2.3rem;font-weight:700;color:var(--accent);letter-spacing:-.02em;margin-top:2px }
.pos-due .rem { font-family:var(--mono);font-size:.8rem;color:var(--warn);margin-top:4px }
.pos-lbl { font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:2px 0 9px }
.pos-tenders { display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:9px }
.pos-tn { background:var(--card);border:1px solid var(--line);border-radius:10px;padding:15px 10px;text-align:center;font-weight:700;font-size:.86rem;cursor:pointer;color:var(--ink);font-family:inherit }
.pos-tn .sc { display:block;font-family:var(--mono);font-size:.58rem;color:var(--muted);font-weight:600;margin-top:3px }
.pos-tn.on { border-color:var(--accent);box-shadow:var(--glow);color:var(--accent) }
.pos-pright { background:var(--check);border-left:1px solid var(--line);padding:16px;display:flex;flex-direction:column;overflow:auto }
.pos-pl { display:flex;justify-content:space-between;align-items:center;font-size:.86rem;padding:8px 0;border-bottom:1px solid var(--line) }
.pos-pl .v { font-family:var(--mono);font-weight:600 }
.pos-pl .rm { background:none;border:0;color:var(--faint);cursor:pointer;padding:0 4px;font-size:.9rem;line-height:1 }
.pos-pl .rm:hover { color:var(--bad) }
.pos-remain { display:flex;justify-content:space-between;font-size:.82rem;color:var(--muted);padding:9px 0 2px }
.pos-remain .v { font-family:var(--mono);color:var(--warn);font-weight:700 }
.pos-change { margin:12px 0;background:var(--good-soft);border:1px solid var(--good);border-radius:10px;padding:11px 14px;display:flex;justify-content:space-between;align-items:center }
.pos-change .lb { color:var(--good);font-weight:700;font-size:.82rem }
.pos-change .v { font-family:var(--mono);font-weight:800;font-size:1.3rem;color:var(--good) }
.pos-amt { margin-top:auto;background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:11px 14px;display:flex;align-items:baseline;gap:8px }
.pos-amt .cur { color:var(--muted);font-family:var(--mono);font-size:1.1rem }
.pos-amt .val { font-family:var(--mono);font-weight:800;font-size:1.4rem;letter-spacing:-.01em }
.pos-amt .mth { margin-left:auto;font-size:.72rem;color:var(--muted);font-family:var(--mono) }
.pos-quick { display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px }
.pos-pad { display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:7px }
.pos-pk { background:var(--card);border:1px solid var(--line);border-radius:9px;height:46px;display:grid;place-items:center;font-family:var(--mono);font-weight:700;cursor:pointer;font-size:1.05rem;color:var(--ink) }
.pos-pk:hover { border-color:var(--accent-line) }
.pos-pk.q { height:38px;font-size:.82rem;font-weight:700 }
.pos-pk:active { box-shadow:var(--glow) }
.pos-pay-actions { display:grid;grid-template-columns:1fr;gap:8px;margin-top:11px }
.pos-btn.full,.pos-pay-actions .pos-btn { width:100%;text-align:center;display:block }
@media(max-width:1200px) {
  .pos-grid { grid-template-columns:repeat(4,minmax(0,1fr)) }
}
@media(max-width:980px) {
  .pos-cats { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .pos-grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
}
@media(max-width:640px) {
  .pos-cats { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .pos-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:820px) {
  .pos-obody { grid-template-columns:1fr;flex:none;height:auto }
  .pos-rail { display:flex;gap:6px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line) }
  .pos-cat { white-space:nowrap;margin-bottom:0 }
  .pos-prods { max-height:44vh }
  .pos-check { border-left:0;border-top:1px solid var(--line) }
  .pos-lines { max-height:40vh }
  .pos-pbody { grid-template-columns:1fr;flex:none;height:auto }
  .pos-pright { border-left:0;border-top:1px solid var(--line) }
}
/* COASTAL-POS-THEME:START — generated by galaxy-pos-app/tools/sync-web-theme.js from src/palette.json; do not edit by hand */
/* light / OS-default = calm coastal, scoped to the POS only */
.pos-screen { --bg:#EEF3F1;--ink:#20302D;--muted:#6E827E;--faint:#9AAAA5;--line:#DDE7E4;--line-2:#C8D6D1;--card:#FFFFFF;--topbar:#FFFFFF;--nav:#EAF0EE;--hover:#E1EBE9;--check:#F4F8F6;--accent:#3D8B82;--accent-2:#2F6E67;--accent-soft:#DEEBE7;--accent-line:#A7CDC6;--sand:#C9B79A;--sand-soft:#F1ECE0;--occ:#E1ECE7;--good:#1E9E6A;--good-soft:#E2F5EC;--warn:#B9791A;--warn-soft:#FBF0DA;--bad:#D1435A;--bad-soft:#FBE4E8;--glow:0 0 0 1px rgba(61,139,130,.25),0 8px 20px -10px rgba(61,139,130,.40);--shadow:0 1px 2px rgba(32,48,45,.06),0 20px 44px -26px rgba(32,48,45,.26);--lock-glow:#EAE3D4;--page:#E1EBE9;--page-ink:#20302D;--page-muted:#6E827E;--page-hair:#DDE7E4 }
.pos-screen .pos-floor { --pf:#E7EFEC;--pt:#FFFFFF;--ptb:#C6D8D2;--pts:0 2px 6px rgba(32,48,45,.10) }
/* explicit light toggle */
:root[data-theme="light"] .pos-screen { --bg:#EEF3F1;--ink:#20302D;--muted:#6E827E;--faint:#9AAAA5;--line:#DDE7E4;--line-2:#C8D6D1;--card:#FFFFFF;--topbar:#FFFFFF;--nav:#EAF0EE;--hover:#E1EBE9;--check:#F4F8F6;--accent:#3D8B82;--accent-2:#2F6E67;--accent-soft:#DEEBE7;--accent-line:#A7CDC6;--sand:#C9B79A;--sand-soft:#F1ECE0;--occ:#E1ECE7;--good:#1E9E6A;--good-soft:#E2F5EC;--warn:#B9791A;--warn-soft:#FBF0DA;--bad:#D1435A;--bad-soft:#FBE4E8;--glow:0 0 0 1px rgba(61,139,130,.25),0 8px 20px -10px rgba(61,139,130,.40);--shadow:0 1px 2px rgba(32,48,45,.06),0 20px 44px -26px rgba(32,48,45,.26);--lock-glow:#EAE3D4;--page:#E1EBE9;--page-ink:#20302D;--page-muted:#6E827E;--page-hair:#DDE7E4 }
:root[data-theme="light"] .pos-screen .pos-floor { --pf:#E7EFEC;--pt:#FFFFFF;--ptb:#C6D8D2;--pts:0 2px 6px rgba(32,48,45,.10) }
/* dark toggle */
:root[data-theme="dark"] .pos-screen { --bg:#0F1A17;--ink:#E4EDE9;--muted:#93A8A2;--faint:#647A73;--line:#24332E;--line-2:#34463F;--card:#16241F;--topbar:#12201C;--nav:#0E1815;--hover:#1C2A25;--check:#12201C;--accent:#5FB3A8;--accent-2:#82C7BD;--accent-soft:#14302B;--accent-line:#2E524B;--sand:#C9B79A;--sand-soft:#2A2519;--occ:#17322C;--good:#4FC59A;--good-soft:#10312A;--warn:#E0A24F;--warn-soft:#2E2413;--bad:#E5687A;--bad-soft:#301A1F;--glow:0 0 0 1px rgba(95,179,168,.35),0 8px 22px -10px rgba(95,179,168,.55);--shadow:0 1px 2px rgba(0,0,0,.5),0 24px 60px -30px rgba(0,0,0,.9);--lock-glow:#17322C;--page:#142320;--page-ink:#E4EDE9;--page-muted:#93A8A2;--page-hair:#24332E }
:root[data-theme="dark"] .pos-screen .pos-floor { --pf:#142320;--pt:#16241F;--ptb:#34463F;--pts:0 1px 3px rgba(0,0,0,.4) }
/* OS dark, no toggle */
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) .pos-screen { --bg:#0F1A17;--ink:#E4EDE9;--muted:#93A8A2;--faint:#647A73;--line:#24332E;--line-2:#34463F;--card:#16241F;--topbar:#12201C;--nav:#0E1815;--hover:#1C2A25;--check:#12201C;--accent:#5FB3A8;--accent-2:#82C7BD;--accent-soft:#14302B;--accent-line:#2E524B;--sand:#C9B79A;--sand-soft:#2A2519;--occ:#17322C;--good:#4FC59A;--good-soft:#10312A;--warn:#E0A24F;--warn-soft:#2E2413;--bad:#E5687A;--bad-soft:#301A1F;--glow:0 0 0 1px rgba(95,179,168,.35),0 8px 22px -10px rgba(95,179,168,.55);--shadow:0 1px 2px rgba(0,0,0,.5),0 24px 60px -30px rgba(0,0,0,.9);--lock-glow:#17322C;--page:#142320;--page-ink:#E4EDE9;--page-muted:#93A8A2;--page-hair:#24332E }
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme]) .pos-screen .pos-floor { --pf:#142320;--pt:#16241F;--ptb:#34463F;--pts:0 1px 3px rgba(0,0,0,.4) }
}
/* COASTAL-POS-THEME:END */
/* ============================================================================
   screens/access.js
   ============================================================================ */
.acc-badge { display:inline-block;vertical-align:middle;margin-left:9px;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:20px;background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn) }
.acc-tools { display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:11px 16px;border-bottom:1px solid var(--line) }
.acc-in { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;min-width:134px }
.acc-in:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.acc-in::placeholder { color:var(--faint) }
.acc-gs { margin-left:auto;min-width:170px }
@media(max-width:640px) {
  .acc-gs { margin-left:0;flex:1 1 100% }
}
.acc-person { min-width:150px }
.acc-name { font-weight:700;font-size:.86rem;display:flex;align-items:center;gap:7px;flex-wrap:wrap }
.acc-user { font-family:var(--mono);font-size:.72rem;color:var(--muted);margin-top:2px }
.acc-you { font-family:var(--mono);font-size:.55rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:5px;padding:1px 6px }
.acc-sel { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.82rem;color:var(--ink);font-family:inherit;min-width:152px;cursor:pointer }
.acc-sel:focus { outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.acc-sel:disabled { opacity:.5;cursor:default }
.acc-when-cell { white-space:nowrap }
.acc-when { font-family:var(--mono);font-size:.76rem;color:var(--ink) }
.acc-when.acc-never { color:var(--faint) }
.acc-when-sub { font-family:var(--mono);font-size:.67rem;color:var(--muted);margin-top:2px }
.acc-actions { white-space:nowrap }
.acc-hint { font-size:.76rem;color:var(--muted) }
.acc-was { font-family:var(--mono);font-size:.67rem;color:var(--muted);margin-left:6px }
.acc-revoke { border:1px solid var(--line-2);background:transparent;color:var(--muted) }
.acc-revoke:hover { border-color:var(--bad);color:var(--bad) }
.acc-confirm { font-size:.78rem;color:var(--bad);font-weight:600;margin-right:8px }
.acc-cf-yes { background:var(--bad);color:#fff;margin-right:6px }
.acc-self { font-size:.76rem;color:var(--faint);font-style:italic }
.acc-scroll { overflow-x:auto }
.acc-scroll table { min-width:620px }
.acc-empty { padding:34px 22px;text-align:center;color:var(--muted);font-size:.88rem;line-height:1.6;max-width:52ch;margin:0 auto }
.acc-legend { margin-top:18px }
.acc-legend-body { padding:4px 8px 8px }
.acc-role { border-bottom:1px solid var(--line) }
.acc-role:last-child { border-bottom:0 }
.acc-role-h { display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:11px 8px;color:var(--ink);font-family:inherit }
.acc-role-h:hover { color:var(--accent) }
.acc-role-name { font-weight:700;font-size:.86rem }
.acc-role-key { font-family:var(--mono);font-size:.65rem;color:var(--faint);background:var(--check);border:1px solid var(--line-2);border-radius:5px;padding:2px 6px }
.acc-role-meta { font-size:.76rem;color:var(--muted);margin-left:auto }
.acc-chev { display:inline-flex;color:var(--faint);transition:transform .15s }
.acc-chev svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.acc-role-h.acc-open .acc-chev { transform:rotate(90deg) }
.acc-perms { padding:0 8px 14px }
.acc-pgroup { margin-bottom:10px }
.acc-pgh { font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:8px 0 6px }
.acc-pbox { display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ink);background:var(--check);border:1px solid var(--line-2);border-radius:8px;padding:5px 9px;margin:0 6px 6px 0;cursor:pointer }
.acc-pbox.on { border-color:var(--accent-line);color:var(--accent2,var(--ink)) }
.acc-pbox input { cursor:pointer }
.acc-pbox input:disabled { cursor:default }
.acc-prow { display:flex;align-items:center;gap:10px;margin-top:6px }
.acc-pmsg { font-size:.74rem;color:var(--muted) }
.acc-perm { font-family:var(--mono);font-size:.7rem;color:var(--muted);background:var(--check);border:1px solid var(--line-2);border-radius:6px;padding:3px 7px }
.acc-perms-note { padding:0 8px 14px;font-size:.8rem;color:var(--muted);line-height:1.5 }
.acc-staff { margin-top:18px }
.acc-staffnote { padding:11px 16px;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted);line-height:1.55 }
.pill.acc-none { background:var(--hover);color:var(--muted) }
.acc-staff-scroll table { min-width:700px }
.acc-sbtn { font-size:.76rem;padding:6px 10px;margin-right:6px }
.acc-sbtn:last-child { margin-right:0 }
.acc-pinform { display:inline-flex;gap:7px;align-items:center;white-space:nowrap }
.acc-pin-in { width:70px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:.86rem;color:var(--ink);font-family:var(--mono);letter-spacing:.2em;text-align:center;outline:none }
.acc-pin-in:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.acc-name-in { background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:140px }
.acc-name-in:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.acc-add { display:flex;gap:9px;padding:13px 16px;border-top:1px solid var(--line);flex-wrap:wrap;align-items:center }
.acc-add input { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:180px }
.acc-add input:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.acc-add input::placeholder { color:var(--faint) }
.acc-rolesel { background:var(--bg);border:1px solid var(--line-2);border-radius:7px;padding:5px 8px;font-size:.8rem;color:var(--ink);font-family:inherit;min-width:120px;cursor:pointer }
.acc-rolesel:focus { outline:0;border-color:var(--accent) }
@media(max-width:560px) {
  .acc-role-key { display:none }
}
/* ============================================================================
   screens/reports.js
   ============================================================================ */
.rp-rangebar { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px }
.rp-chips { display:flex;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden }
.rp-chips button { padding:7px 13px;font-size:.8rem;font-weight:600;color:var(--muted);background:none;border:0;cursor:pointer;font-family:inherit;transition:background .12s,color .12s }
.rp-chips button:not(.on):hover { background:var(--hover);color:var(--ink) }
.rp-chips button.on { background:var(--accent);color:#04222a }
.rp-dates { display:flex;gap:10px;align-items:center;flex-wrap:wrap }
.rp-dates label { display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);font-weight:600 }
.rp-dates input { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:.8rem;color:var(--ink);font-family:var(--mono);outline:none;color-scheme:light dark }
.rp-dates input:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.rp-meta { margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted) }
.rp-note { display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:.84rem;color:var(--muted) }
.rp-note svg { width:17px;height:17px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.rp-rows { margin-top:7px;display:grid;gap:3px }
.rp-r { display:flex;justify-content:space-between;gap:10px;font-size:.7rem;color:var(--muted) }
.rp-r b { font-family:var(--mono);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums }
.rp-sec { margin-bottom:16px }
.rp-tblwrap { overflow-x:auto }
.rp-tbl { width:100%;border-collapse:collapse;font-size:.84rem }
.rp-tbl th { text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap }
.rp-tbl td { padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap }
.rp-tbl tbody tr:last-child td,.rp-tbl tbody tr:last-child td { border-bottom:0 }
.rp-tbl td.n,.rp-tbl th.n { text-align:right;font-family:var(--mono) }
.rp-na { color:var(--faint);cursor:help }
.rp-tabs { display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:16px }
.rp-tab { appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);font-size:.82rem;font-weight:600;padding:10px 14px;cursor:pointer;font-family:inherit }
.rp-tab:hover { color:var(--ink) }
.rp-tab.on { color:var(--accent);border-bottom-color:var(--accent) }
.rp-strip { display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:16px }
.rp-sk { background:var(--card);padding:14px 16px }
.rp-sk .l { font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:6px }
.rp-sk .v { font-size:1.35rem;font-weight:800;color:var(--ink);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap }
.rp-sk .dl { font-size:.72rem;font-weight:700;padding:2px 6px;border-radius:20px }
.rp-sk .dl.up { color:#16A34A;background:rgba(22,163,74,.12) }
.rp-sk .dl.dn { color:#DC2626;background:rgba(220,38,38,.12) }
.rp-tbl td.b { font-weight:700 }
.rp-tbl td.tl b { font-weight:700 }
.rp-tbl td.tl .z { margin-left:8px;font-size:.7rem;color:var(--muted);font-family:var(--mono) }
.rp-tbl tbody tr:hover { background:var(--hover) }
.rp-tbl tfoot td { border-top:2px solid var(--line);border-bottom:0;font-weight:800;padding-top:11px }
.rp-abc { display:inline-block;min-width:20px;text-align:center;font-family:var(--mono);font-weight:800;font-size:.72rem;padding:2px 7px;border-radius:6px }
.rp-abc.aA { background:var(--good-soft,rgba(34,197,94,.15));color:var(--good) }
.rp-abc.aB { background:var(--accent-soft);color:var(--accent) }
.rp-abc.aC { background:var(--hover);color:var(--muted) }
.rp-livewrap { padding:4px 16px 12px }
.rp-lbl { font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-bottom:7px }
.rp-live { display:flex;flex-wrap:wrap;gap:7px }
.rp-lchip { display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);border:1px solid var(--accent-line,var(--line));color:var(--ink);border-radius:20px;padding:4px 11px;font-size:.78rem;font-weight:600 }
.rp-lchip b { font-family:var(--mono);color:var(--accent);font-weight:700 }
.rp-chart { display:flex;align-items:flex-end;gap:6px;height:150px;padding:14px 14px 0 }
.rp-chart.hr { height:70px;gap:3px }
.rp-bar { flex:1;background:var(--accent);border-radius:3px 3px 0 0;opacity:.85;min-height:2px }
.rp-bar.pk { opacity:1;box-shadow:var(--glow) }
.rp-bar.z { opacity:.22 }
.rp-load { display:inline-block;width:110px;height:7px;border-radius:4px;background:var(--line);vertical-align:middle;overflow:hidden }
.rp-load>i { display:block;height:100%;background:var(--accent);border-radius:4px }
.rp-xax { display:flex;gap:6px;padding:6px 14px 12px;font-family:var(--mono);font-size:.6rem;color:var(--faint) }
.rp-xax.hr { gap:3px }
.rp-xax span { flex:1;text-align:center;overflow:hidden;white-space:nowrap }
.rp-cols { display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start }
@media(max-width:900px) {
  .rp-cols { grid-template-columns:1fr }
}
.rp-stack { display:flex;flex-direction:column;gap:16px }
.rp-scroll { overflow-x:auto }
.rp-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.rp-share { display:flex;align-items:center;gap:8px }
.rp-track { flex:1;min-width:60px;height:6px;background:var(--hover);border:1px solid var(--line);border-radius:4px;overflow:hidden }
.rp-fill { height:100%;background:var(--accent);border-radius:4px }
.rp-pct { font-family:var(--mono);font-size:.72rem;color:var(--muted);min-width:46px;text-align:right }
.rp-dash { color:var(--faint) }
.rp-scopewrap { display:flex;align-items:center;gap:8px }
.rp-scopelbl { font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700 }
.rp-lo { display:inline-block;margin-left:6px;font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--hover);border:1px solid var(--line);border-radius:20px;padding:1px 6px;vertical-align:middle }
.rp-covhint { display:block;font-size:.6rem;color:var(--faint);font-weight:600;margin-top:2px }
.rp-src { display:inline-block;margin-left:6px;font-size:.58rem;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:700 }
.rp-more { display:flex;align-items:center;gap:12px;padding:12px 16px }
.rp-morebtn { padding:6px 14px;font-size:.78rem;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-family:inherit }
.rp-morebtn:hover { background:var(--hover) }
.rp-morebtn:disabled { opacity:.6;cursor:default }
.rp-moreinfo { font-family:var(--mono);font-size:.72rem;color:var(--muted) }
.rp-subnote { padding:2px 16px 8px;font-size:.74rem;color:var(--muted) }
.rp-worsum { display:flex;flex-wrap:wrap;gap:7px;padding:12px 16px 2px }
.rp-wchip { display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:4px 11px;font-size:.76rem;color:var(--muted);font-weight:600 }
.rp-wchip b { font-family:var(--mono);color:var(--ink);font-weight:700 }
.rp-wchip i { font-style:normal;color:var(--faint);font-size:.68rem }
.rp-fbar { display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:10px 16px 2px }
.rp-fin { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;min-width:132px;cursor:pointer }
.rp-fin:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.rp-fq { min-width:172px;cursor:text }
.rp-fcnt { margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted) }
button.rp-wchip { cursor:pointer;font-family:inherit;color:var(--muted);-webkit-appearance:none;appearance:none }
button.rp-wchip:hover { border-color:var(--accent) }
button.rp-wchip.on { border-color:var(--accent);color:var(--ink);background:var(--accent-soft) }
button.fb-dbtn { width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;-webkit-appearance:none;appearance:none }
button.fb-dbtn.on .fb-dlbl { color:var(--ink);font-weight:700 }
.rp-expcell { cursor:pointer;user-select:none }
.rp-expcell:hover { color:var(--accent) }
.rp-caret { display:inline-flex;vertical-align:-1px;margin-right:5px;transition:transform .15s }
.rp-caret svg { width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round }
.rp-exprow.rp-open .rp-caret { transform:rotate(90deg) }
.rp-itemn { display:inline-block;margin-left:6px;font-family:var(--mono);font-size:.62rem;font-weight:700;color:var(--muted);background:var(--hover);border:1px solid var(--line);border-radius:20px;padding:0 6px }
.rp-detrow>td { padding:0;background:var(--bg) }
.rp-detwrap { padding:10px 16px 14px }
.rp-detlbl { font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:7px }
.rp-dettbl { background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden }
.rp-dettbl th { padding:7px 12px }
.rp-dettbl td { padding:6px 12px }
.rp-invbar { display:flex;align-items:center;gap:10px;padding:12px 16px 4px }
.rp-invlbl { font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700 }
.rp-invsel { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.82rem;color:var(--ink);font-family:inherit;min-width:150px;cursor:pointer }
.rp-invsel:focus { outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.rp-invwrap.rp-busy { opacity:.5;transition:opacity .12s }
.rp-arrow { color:var(--muted);font-family:var(--mono);padding:0 3px }
.fb-hd { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px 6px }
.fb-stars { font-size:1.3rem;letter-spacing:2px;line-height:1 }
.fb-avg { font-family:var(--mono);font-size:1.15rem;font-weight:800;color:var(--ink) }
.fb-sub { font-size:.78rem;color:var(--muted) }
.fb-star { color:var(--accent) }
.fb-staroff { color:var(--faint) }
.fb-dist { display:grid;gap:6px;padding:4px 16px 14px;max-width:440px }
.fb-drow { display:flex;align-items:center;gap:9px }
.fb-dlbl { min-width:44px;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap }
.fb-dcount { font-family:var(--mono);font-size:.74rem;color:var(--muted);min-width:34px;text-align:right }
.fb-revs { display:grid;gap:8px;padding:6px 16px 14px }
.fb-rev { border:1px solid var(--line);border-radius:10px;overflow:hidden }
.fb-rev-sum { list-style:none;cursor:pointer;display:grid;grid-template-columns:96px 172px 52px 108px 92px 1fr;gap:10px;align-items:center;padding:9px 12px;font-size:.82rem }
.fb-rev-sum::-webkit-details-marker { display:none }
.fb-rev-sum::marker { content:"" }
.fb-rev-sum:hover { background:var(--hover,rgba(127,127,127,.06)) }
.fb-rev[open] .fb-rev-sum { border-bottom:1px solid var(--line) }
.fb-rev-stars { color:var(--accent);letter-spacing:1px;white-space:nowrap }
.fb-rev-when { color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.fb-rev-tbl { color:var(--muted);white-space:nowrap }
.fb-rev-waiter { color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.fb-rev-spend { font-family:var(--mono);color:var(--ink);text-align:right;white-space:nowrap }
.fb-rev-cmt { color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.fb-rev-tag { font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 5px;margin-left:5px;font-weight:700 }
@media(max-width:760px) {
  .fb-rev-sum { grid-template-columns:auto 1fr;row-gap:5px }
  .fb-rev-when,.fb-rev-tbl,.fb-rev-waiter,.fb-rev-spend,.fb-rev-cmt { grid-column:1 / -1 }
}
.fb-rev-body { padding:10px 12px;background:var(--faintbg,rgba(127,127,127,.03)) }
.fb-rev-facts { display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.8rem;color:var(--muted) }
.fb-rev-facts b { color:var(--ink);font-weight:600;margin-right:5px }
.fb-rev-ans { margin-top:10px;display:grid;gap:0 }
.fb-ans { display:flex;justify-content:space-between;gap:14px;font-size:.82rem;border-top:1px dashed var(--line);padding:5px 0 }
.fb-aq { color:var(--muted);min-width:0 }
.fb-aa { color:var(--ink);font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere }
.fb-dishwrap { padding:2px 16px 14px;max-height:340px;overflow:auto }
.fb-dishrow { display:grid;grid-template-columns:1fr 62px 52px;gap:10px;align-items:center;font-size:.82rem;padding:5px 0;border-top:1px solid var(--line) }
.fb-dishrow .dn { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.fb-dishrow .dc { font-family:var(--mono);text-align:right;color:var(--muted) }
.fb-dishrow .da { font-family:var(--mono);text-align:right;font-weight:800 }
.fi-call { border-left-color:var(--danger,#c0392b) }
.fi-call svg { stroke:var(--danger,#c0392b) }
.fi-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:10px 16px 14px }
@media(max-width:900px) {
  .fi-grid { grid-template-columns:1fr }
}
.fi-block { min-width:0 }
.fi-h { font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-bottom:9px }
.fi-dist { display:grid;gap:6px }
.fi-lbl { flex:0 0 84px;min-width:0;font-size:.76rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis }
.fi-avg { font-family:var(--mono);font-size:.74rem;font-weight:700;color:var(--ink);min-width:46px;text-align:right;white-space:nowrap }
.fi-sub { font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:12px 16px 2px }
.rp-tbl td.fi-wrap { white-space:normal;min-width:170px;max-width:340px }
.fi-qwrap { display:grid;gap:16px;padding:8px 16px 14px }
.fi-qblock { min-width:0 }
.fi-qdist { max-width:440px }
/* ============================================================================
   screens/settings.js
   ============================================================================ */
.st-sec { margin-bottom:18px;display:none }
.st-sec.on { display:block }
.st-tabs { display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 18px;padding-bottom:4px }
.st-tab { font-size:.82rem;font-weight:700;padding:8px 14px;border-radius:9px;border:1px solid var(--line-2);background:var(--card);color:var(--muted);cursor:pointer;font-family:inherit }
.st-tab:hover { color:var(--ink);border-color:var(--accent-line) }
.st-tab.on { background:var(--accent-soft);border-color:var(--accent);color:var(--accent) }
.st-body { padding:16px }
.st-g2 { display:grid;grid-template-columns:1fr 1fr;gap:14px }
@media(max-width:760px) {
  .st-g2 { grid-template-columns:1fr }
}
.st-fld { display:flex;flex-direction:column;gap:5px;min-width:0 }
.st-fld label { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.st-in { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;width:100%;box-sizing:border-box }
.st-in:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.st-in.num { font-family:var(--mono);text-align:right }
textarea.st-in { resize:vertical;min-height:64px;line-height:1.45 }
select.st-in { cursor:pointer }
.st-hint { font-size:.7rem;color:var(--faint) }
.st-brand { display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap }
.st-logo { width:150px;height:110px;flex:none;border:1px dashed var(--line-2);border-radius:10px;background:#fff;display:grid;place-items:center;overflow:hidden }
.st-logo img { max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1) brightness(0) }
.st-logo-empty { font-size:.74rem;color:var(--faint);font-family:var(--mono) }
.st-logow { display:flex;align-items:center;gap:12px;margin-top:16px;max-width:440px }
.st-logow label { font-size:.8rem;color:var(--muted);font-weight:600;white-space:nowrap }
.st-logow input[type=range] { flex:1;min-width:0;accent-color:var(--accent);cursor:pointer }
.st-logow output { font-family:var(--mono);font-size:.82rem;font-weight:700;color:var(--ink);min-width:42px;text-align:right }
.st-sub { font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:0 0 8px }
.st-pa-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;max-width:660px }
.st-pa-grid label { display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--muted);font-weight:600 }
.pa-in { font:inherit;color:var(--ink);background:var(--field,var(--bg));border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100% }
.pa-in:focus { outline:none;border-color:var(--accent) }
textarea.pa-in { resize:vertical;min-height:44px }
@media(max-width:640px) {
  .st-pa-grid { grid-template-columns:1fr }
}
.st-pa-devices { max-width:660px }
.st-pa-wait { opacity:.75 }
.st-pa-pending { margin-bottom:8px }
.st-pa-dev { display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:.84rem;color:var(--ink) }
.st-pa-stale { margin:10px 0;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,var(--warn,#c98a2e) 14%,transparent);border:1px solid color-mix(in srgb,var(--warn,#c98a2e) 45%,transparent);font-size:.84rem;line-height:1.45;color:var(--ink) }
.st-pa-stale .btn { margin-left:8px;vertical-align:baseline }
.st-ver { font-size:.76rem;font-weight:800;padding:2px 9px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);white-space:nowrap }
.st-ver.ok { color:var(--good);border-color:var(--good);background:var(--good-soft) }
.st-ver.behind { color:var(--warn);border-color:var(--warn);background:var(--warn-soft) }
.st-brand-actions { flex:1;min-width:220px }
.st-cellin { background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;width:100%;box-sizing:border-box }
.st-cellin:focus { border-color:var(--accent) }
.st-cellin.num { font-family:var(--mono);text-align:right }
.st-addrow { display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:12px 15px;border-top:1px solid var(--line) }
.st-addrow .st-cellin { width:auto;flex:0 1 190px }
.st-chk { display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted);cursor:pointer;user-select:none }
.st-chk input { accent-color:var(--accent);width:15px;height:15px;margin:0;cursor:pointer }
.st-tgl { border:0;cursor:pointer }
.st-ico { background:none;border:0;cursor:pointer;color:var(--muted);padding:4px 6px;border-radius:6px;display:inline-grid;place-items:center;vertical-align:middle }
.st-ico.st-rot-up svg { transform:rotate(-90deg) }
.st-ico.st-rot-down svg { transform:rotate(90deg) }
.st-ico:hover { background:var(--hover);color:var(--accent) }
.st-ico.good:hover { color:var(--good) }
.st-ico.bad:hover { color:var(--bad) }
.st-ico svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.st-off td { opacity:.55 }
.st-mut { color:var(--muted) }
.btn.xs { padding:5px 10px;font-size:.74rem;border-radius:7px }
/* REMOVED: .btn.danger { color:var(--bad) }
   It set the text of every danger button to var(--bad) — the exact colour index.html already
   gives them as a BACKGROUND — so the label was drawn in the background colour and vanished.
   Same specificity as the global rule and later in the cascade, so it won everywhere: Delete
   dish, Delete ingredient, Delete product, Revoke, and the POS Void / Clear table / Clear order
   / Cancel reservation / Mark sold out buttons. All of them, in both themes.
   Shannon reported it as "delete item has no label under dishes" (request #2). */
.st-tokbox { margin:12px 15px;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:11px;padding:12px 14px }
.st-tokhd { display:flex;align-items:flex-start;gap:9px;font-size:.84rem }
.st-tokhd b { color:var(--ink) }
.st-tokhd span { color:var(--muted) }
.st-toki { width:17px;height:17px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linejoin:round }
.st-tokhd .st-ico { margin-left:auto;color:var(--muted) }
.st-tokrow { display:flex;gap:9px;align-items:center;margin:10px 0 6px }
.st-tok { flex:1;min-width:0;font-family:var(--mono);font-size:.82rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:var(--ink);overflow-x:auto;white-space:nowrap;user-select:all }
.st-tokhint { font-size:.74rem;color:var(--muted);margin:0 }
.st-rgrid { display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;padding:16px }
.st-rgroup { border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden;display:flex;flex-direction:column }
.st-rh { display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted) }
.st-rh .c { margin-left:auto;font-weight:600 }
.st-rrow { display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line);font-size:.82rem }
.st-rrow:last-of-type { border-bottom:0 }
.st-rrow .lb { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.st-rrow.off .lb { color:var(--faint);text-decoration:line-through }
.st-rempty { padding:10px 12px;font-size:.76rem;color:var(--faint) }
.st-radd { display:flex;gap:7px;padding:9px 12px;border-top:1px solid var(--line);margin-top:auto }
.st-radd .st-cellin { flex:1;min-width:0 }
.st-ftop { display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 16px 0 }
.st-zseg { display:flex;background:var(--bg);border:1px solid var(--line);border-radius:8px;overflow:hidden;flex-wrap:wrap }
.st-zseg button { padding:7px 13px;font-size:.8rem;font-weight:600;color:var(--muted);background:none;border:0;cursor:pointer;font-family:inherit;transition:background .12s,color .12s }
.st-zseg button:not(.on):hover { background:var(--hover);color:var(--ink) }
.st-zseg button.on { background:var(--accent);color:#04222a }
.st-fwrap { display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;padding:16px;align-items:start }
@media(max-width:960px) {
  .st-fwrap { grid-template-columns:1fr }
}
.st-floor { position:relative;background:var(--bg);border:1px solid var(--line-2);border-radius:10px;aspect-ratio:16/10;overflow:hidden;margin-bottom:14px;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:10% 10% }
.st-fempty { position:absolute;inset:0;display:grid;place-items:center;color:var(--faint);font-size:.82rem;text-align:center;padding:20px }
.st-tile { position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--line-2);border-radius:8px;cursor:grab;touch-action:none;color:var(--ink);padding:2px;min-width:0;overflow:hidden;transition:border-color .12s,box-shadow .12s }
.st-tile.circ { border-radius:50% }
.st-tile:hover { border-color:var(--accent-line) }
.st-tile.sel { border-color:var(--accent);box-shadow:var(--glow);z-index:2 }
.st-tile.off { opacity:.45;border-style:dashed }
.st-tile.ghost { border-style:dashed;border-color:var(--accent) }
.st-tile.drag { cursor:grabbing;box-shadow:var(--glow);border-color:var(--accent);z-index:4;opacity:.96;transition:none }
.st-tile.semic { border-radius:50% 50% 6px 6px / 100% 100% 6px 6px }
.st-rotrow { display:flex;gap:7px;align-items:center;flex-wrap:wrap }
.st-fhint { font-size:.74rem;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:6px }
.st-fhint b { color:var(--ink);font-weight:600 }
.st-rot { display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;min-width:0 }
.st-tile .tn { font-family:var(--mono);font-size:.72rem;font-weight:700;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.st-tile .tc { font-size:.56rem;color:var(--muted);font-weight:600;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.st-trow { cursor:pointer }
.st-trow:hover td { background:var(--hover) }
.st-trow.sel td { background:var(--accent-soft) }
.st-lfilt { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px }
.st-lfilt .st-in { width:auto;flex:0 1 150px;padding:7px 10px;font-size:.8rem }
.st-lfilt input.st-in { flex:0 1 200px }
.st-lfcount { margin-left:auto;font-family:var(--mono);font-size:.7rem;font-weight:600;color:var(--muted);background:none;border:0;padding:0;cursor:pointer }
.st-lfcount:hover { color:var(--ink) }
.st-lfcount[hidden] { display:none }
.st-ted { border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:14px;position:sticky;top:0 }
.st-tedh { font-weight:700;font-size:.88rem;margin-bottom:12px;display:flex;align-items:center;gap:8px }
.st-tedh .m { margin-left:auto;font-family:var(--mono);font-size:.68rem;color:var(--muted);font-weight:500 }
.st-ted .st-fld { margin-bottom:10px }
.st-row2 { display:grid;grid-template-columns:1fr 1fr;gap:9px }
.st-row4 { display:grid;grid-template-columns:repeat(4,1fr);gap:9px }
.st-geocell { display:flex;flex-direction:column;gap:4px;min-width:0 }
.st-geocap { display:flex;align-items:center;gap:4px;font-size:.64rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted) }
.st-geocap svg { width:13px;height:13px;flex:none;color:var(--accent) }
.st-actions { display:flex;gap:8px;margin-top:12px }
.st-tedempty { border:1px dashed var(--line-2);border-radius:10px;padding:26px 16px;text-align:center;color:var(--faint);font-size:.8rem }
/* ============================================================================
   screens/feedback-form.js
   ============================================================================ */
.fb-wrap { display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start }
@media(max-width:1000px) {
  .fb-wrap { grid-template-columns:1fr }
}
.fb-main { display:flex;flex-direction:column;gap:16px;min-width:0 }
.fb-side .panel { position:sticky;top:0 }
.fb-body { padding:16px }
.fb-field { display:flex;flex-direction:column;gap:5px;margin-bottom:12px;min-width:0 }
.fb-field:last-child { margin-bottom:0 }
.fb-field label { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.fb-in { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;width:100%;box-sizing:border-box }
.fb-in:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
select.fb-in { cursor:pointer }
.fb-hint { font-size:.72rem;color:var(--faint) }
.fb-mut { color:var(--faint) }
.fb-actions { display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap }
.fb-actions .btn svg,.fb-add-opt svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px }
.fb-ed-grid { display:grid;grid-template-columns:180px 1fr;gap:12px;margin-bottom:12px }
@media(max-width:560px) {
  .fb-ed-grid { grid-template-columns:1fr }
}
.fb-ed-grid .fb-field { margin-bottom:0 }
.fb-opts-host { display:flex;flex-direction:column;gap:8px }
.fb-opt { display:flex;gap:8px;align-items:center }
.fb-opt .fb-opt-val { flex:0 0 66px;text-align:right;font-family:var(--mono) }
.fb-opt .fb-opt-emoji { flex:0 0 74px;text-align:center }
.fb-opt .fb-opt-label { flex:1;min-width:0 }
.fb-add-opt { align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:2px }
.fb-toggles { display:flex;flex-direction:column;gap:9px;margin-top:14px }
.fb-chk { display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted);cursor:pointer;user-select:none }
.fb-chk input { accent-color:var(--accent);width:15px;height:15px;margin:0;cursor:pointer;flex:none }
.fb-ico { background:none;border:1px solid var(--line-2);cursor:pointer;color:var(--muted);width:30px;height:30px;border-radius:8px;display:inline-grid;place-items:center;padding:0 }
.fb-ico:hover:not(:disabled) { color:var(--ink);border-color:var(--accent-line) }
.fb-ico:disabled { opacity:.35;cursor:default }
.fb-ico.bad:hover:not(:disabled) { color:var(--bad);border-color:var(--bad) }
.fb-ico.good { color:var(--good) }
.fb-ico-svg { display:inline-grid;place-items:center }
.fb-ico svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.fb-list { display:flex;flex-direction:column }
.fb-q { display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--line) }
.fb-q:last-child { border-bottom:0 }
.fb-q.off { opacity:.55 }
.fb-q-main { flex:1;min-width:0 }
.fb-q-top { display:flex;align-items:center;gap:7px;flex-wrap:wrap }
.fb-q-label { font-weight:700;font-size:.9rem;color:var(--ink) }
.fb-q-sum { font-size:.8rem;color:var(--muted);margin-top:4px;word-break:break-word }
.fb-q-help { font-size:.74rem;color:var(--faint);margin-top:3px }
.fb-q-acts { display:flex;gap:6px;align-items:center;flex:none;flex-wrap:wrap;justify-content:flex-end }
.fb-tgl { cursor:pointer;border:0 }
.fb-empty,.fb-pv-empty { padding:22px 16px;text-align:center;color:var(--muted);font-size:.85rem }
.fb-ov { position:fixed;inset:0;background:rgba(3,8,12,.6);display:flex;align-items:flex-start;justify-content:center;z-index:120;padding:28px 16px;overflow:auto }
.fb-modal { width:560px;max-width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:var(--shadow,0 20px 60px rgba(0,0,0,.4)) }
.fb-modal-hd { padding:14px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:1rem;color:var(--ink) }
.fb-modal-bd { padding:16px 18px }
.fb-modal-ft { padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end }
.fb-pv { padding:16px }
.fb-pv-card { background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:18px }
.fb-pv-title { font-size:1.1rem;font-weight:800;color:var(--ink);text-align:center;word-break:break-word }
.fb-pv-intro { font-size:.82rem;color:var(--muted);text-align:center;margin-top:4px;word-break:break-word }
.fb-pv-section { font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:18px 0 2px;border-top:1px solid var(--line);padding-top:12px }
.fb-pv-q { margin-top:16px }
.fb-pv-label { font-size:.9rem;font-weight:600;color:var(--ink);word-break:break-word }
.fb-pv-req { color:var(--bad) }
.fb-pv-help { font-size:.74rem;color:var(--faint);margin-top:2px;word-break:break-word }
.fb-pv-rating { display:flex;gap:8px;flex-wrap:wrap;margin-top:8px }
.fb-pv-rate { display:flex;flex-direction:column;align-items:center;gap:2px;min-width:44px;padding:8px 6px;border:1px solid var(--line-2);border-radius:10px;background:var(--card) }
.fb-pv-rate .em { font-size:1.15rem;line-height:1 }
.fb-pv-rate .lb { font-size:.64rem;color:var(--muted);text-align:center;word-break:break-word }
.fb-pv-choices { display:flex;flex-direction:column;gap:7px;margin-top:8px }
.fb-pv-opt { display:flex;align-items:center;gap:9px;font-size:.84rem;color:var(--ink) }
.fb-pv-opt .mark { width:16px;height:16px;border:1.5px solid var(--line-2);flex:none;display:inline-block }
.fb-pv-opt .mark.rd { border-radius:50% }
.fb-pv-opt .mark.sq { border-radius:4px }
.fb-pv-text { margin-top:8px;border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;font-size:.82rem;color:var(--faint);background:var(--card) }
.fb-pv-thanks { margin-top:20px;padding-top:12px;border-top:1px dashed var(--line-2);font-size:.82rem;color:var(--muted);text-align:center;word-break:break-word }
/* ============================================================================
   screens/products.js
   ============================================================================ */
.pr-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.pr-tools .gs { margin-left:auto }
.pr-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.pr-in:focus { border-color:var(--accent) }
.pr-ed { background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end }
.pr-note { flex:1 1 100%;order:99;font-size:.8rem;line-height:1.5;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;margin-top:2px }
.pr-f { display:flex;flex-direction:column;gap:5px }
.pr-f label { font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.pr-f input,.pr-f select { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:130px }
.pr-f input:focus { border-color:var(--accent) }
/* ============================================================================
   screens/dishes.js
   ============================================================================ */
.dsh-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.dsh-tools .gs { margin-left:auto }
.dsh-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.dsh-in:focus { border-color:var(--accent) }
.dsh-back { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;padding:0;margin-bottom:12px }
.dsh-hd { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px }
.dsh-f { display:flex;flex-direction:column;gap:5px }
.dsh-f label { font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.dsh-f select,.dsh-f input { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.dsh-f input:focus,.dsh-f select:focus { border-color:var(--accent) }
.rl input,.rl select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.rl input[type=number] { font-family:var(--mono);text-align:right }
.rl .lc { font-family:var(--mono);text-align:right;color:var(--muted);white-space:nowrap }
.rl-x { background:none;border:0;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px }
.rl-x:hover { background:var(--hover);color:var(--bad) }
.costbar { display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:16px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:10px }
.costbar .c { display:flex;flex-direction:column;gap:2px }
.costbar .c b { font-family:var(--mono);font-size:1.05rem }
.costbar .c span { font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.costbar .save { margin-left:auto }
/* ============================================================================
   screens/preparations.js
   ============================================================================ */
.pp-per { color:var(--muted);font-size:.78em;margin-left:1px }
.pp-unc { color:var(--warn);font-weight:700;cursor:help }
.pp-tools { display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap }
.pp-tools .gs { margin-left:auto }
.pp-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.pp-in:focus { border-color:var(--accent) }
.pp-back { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;padding:0;margin-bottom:12px }
.pp-hd { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end }
.pp-f { display:flex;flex-direction:column;gap:5px }
.pp-f label { font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.pp-f select { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:130px }
.pp-f select:focus { border-color:var(--accent) }
.pp-f input { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:130px }
.pp-f input:focus { border-color:var(--accent) }
.rl input,.rl select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.rl input[type=number] { font-family:var(--mono);text-align:right }
.rl .lc { font-family:var(--mono);text-align:right;color:var(--muted);white-space:nowrap }
.rl-x { background:none;border:0;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px }
.rl-x:hover { background:var(--hover);color:var(--bad) }
.pp-cb { display:flex;gap:24px;align-items:center;margin-top:14px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:10px }
.pp-cb b { font-family:var(--mono);font-size:1.05rem }
.pp-cb span { font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted) }
.pp-cb .save { margin-left:auto }
.pp-tags { display:flex;flex-wrap:wrap;gap:4px;align-items:center;max-width:300px }
.pp-tag { display:inline-flex;align-items:center;gap:4px;font-size:.7rem;background:var(--accent-soft);color:var(--accent2,var(--accent));border:1px solid var(--accent-line);border-radius:999px;padding:2px 7px;white-space:nowrap }
.pp-tag b { font-weight:600;font-family:inherit;font-size:.7rem }
.pp-tagx { cursor:pointer;opacity:.6;font-weight:700;line-height:1 }
.pp-tagx:hover { opacity:1;color:var(--bad) }
.pp-tagadd { font-size:.7rem;color:var(--muted);border:1px dashed var(--line-2);background:transparent;border-radius:999px;padding:2px 8px;cursor:pointer;font-family:inherit }
.pp-tagadd:hover { border-color:var(--accent);color:var(--accent) }
.pp-tagin { width:110px;font-size:.72rem;padding:2px 7px;border:1px solid var(--accent);border-radius:999px;background:var(--bg);color:var(--ink);font-family:inherit;outline:none }
/* ============================================================================
   screens/ingredients.js
   ============================================================================ */
.ig-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.ig-tools .gs { margin-left:auto }
.ig-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.ig-in:focus { border-color:var(--accent) }
.ig-ed { background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end }
.ig-f { display:flex;flex-direction:column;gap:5px }
.ig-f label { font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.ct-iconbtn { display:inline-grid;place-items:center;width:30px;height:30px;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:8px;cursor:pointer;padding:0 }
.ct-iconbtn:hover { color:var(--bad);border-color:var(--bad) }
.ct-iconbtn svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
/* The losses detail row under an ingredient being edited. It is a continuation of the row above,
   so it shares its tint and drops the rule between them. */
tr.ig-lossrow > td { background:var(--accent-soft);border-top:0;padding:0 14px 14px }
.rc-nol { color:var(--faint) }
.rq-mdoc { display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer }
.rq-mdoc:hover { border-color:var(--accent) }
.rq-mdoc svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.rq-mdoc[disabled] { opacity:.55;cursor:default }
.ig-losswrap { border-left:2px solid var(--accent-line);padding:2px 0 2px 14px }
.ig-losshd { font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:9px }
.ig-losshd em { font-style:normal;text-transform:none;letter-spacing:0;font-family:inherit;font-size:.82rem;color:var(--faint);margin-left:10px }
.ig-lossgrid { display:flex;gap:14px;flex-wrap:wrap }
.ig-loss { display:flex;flex-direction:column;gap:4px }
.ig-loss > span { font-size:.72rem;color:var(--muted) }
.ig-loss-in { display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--card) }
.ig-loss-in input { width:64px;border:0;background:transparent;padding:6px 8px;font-family:var(--mono);font-size:.82rem;color:var(--ink);outline:none;text-align:right }
.ig-loss-in i { display:grid;place-items:center;padding:0 8px;font-style:normal;font-size:.76rem;color:var(--muted);background:var(--bg);border-left:1px solid var(--line) }
.ig-loss-in:focus-within { border-color:var(--accent) }
.ig-iconbtn { display:inline-grid;place-items:center;width:30px;height:30px;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:8px;cursor:pointer;padding:0;flex:none }
.ig-iconbtn:hover { color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft) }
.ig-iconbtn.ig-del:hover { color:var(--bad);border-color:var(--bad) }
.ig-iconbtn svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.ig-act { text-align:right;white-space:nowrap }
.ig-act > * { vertical-align:middle }
.ig-act > * + * { margin-left:6px }
.ig-act .ig-e-active { width:auto;min-width:92px }
tr.ig-editing .ig-e-cost { width:110px }
tr.ig-editing > td { background:var(--accent-soft);vertical-align:middle }
/* The smart-select enhancer swaps the <select> for its own trigger button, so the width rule on
   select never reaches it and the cell renders half-empty. */
tr.ig-editing .ls-ss-trigger { width:100%;box-sizing:border-box;min-width:0 }
tr.ig-editing input,tr.ig-editing select { background:var(--card);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;width:100% }
tr.ig-editing input:focus,tr.ig-editing select:focus { border-color:var(--accent) }
tr.ig-editing .ig-e-cost { text-align:right;font-family:var(--mono) }
.ig-f input,.ig-f select { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:140px }
.ig-f input:focus { border-color:var(--accent) }
.ig-note { font-size:.72rem;color:var(--muted);flex-basis:100%;margin-top:-2px }
.ig-tags { display:flex;flex-wrap:wrap;gap:4px;align-items:center;max-width:320px }
.ig-tag { display:inline-flex;align-items:center;gap:4px;font-size:.7rem;background:var(--accent-soft);color:var(--accent2,var(--accent));border:1px solid var(--accent-line);border-radius:999px;padding:2px 7px;white-space:nowrap }
.ig-tag b { font-weight:600 }
.ig-tagx { cursor:pointer;opacity:.6;font-weight:700;line-height:1 }
.ig-tagx:hover { opacity:1;color:var(--bad) }
.ig-tagadd { font-size:.7rem;color:var(--muted);border:1px dashed var(--line-2);background:transparent;border-radius:999px;padding:2px 8px;cursor:pointer;font-family:inherit }
.ig-tagadd:hover { border-color:var(--accent);color:var(--accent) }
.ig-tagin { width:110px;font-size:.72rem;padding:2px 7px;border:1px solid var(--accent);border-radius:999px;background:var(--bg);color:var(--ink);font-family:inherit;outline:none }
/* ============================================================================
   screens/categories.js
   ============================================================================ */
.ct-tabs { display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px }
.ct-tabs button { padding:9px 16px;font-size:.84rem;font-weight:600;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;margin-bottom:-1px }
.ct-tabs button.on { color:var(--accent);border-bottom-color:var(--accent) }
.ct-tbl input,.ct-tbl select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.ct-tbl input:focus { border-color:var(--accent) }
.ct-tbl input[type=number] { font-family:var(--mono);text-align:right;min-width:72px;padding-right:4px }
.ct-add { display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px }
.ct-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.ct-tools .gs { margin-left:auto }
.ct-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.ct-in:focus { border-color:var(--accent) }
.ct-f { display:flex;flex-direction:column;gap:4px }
.ct-f label { font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted) }
.ct-f input { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:120px }
.ct-imgbtn { width:46px;height:46px;border-radius:9px;border:1px dashed var(--line-2);background:var(--bg);cursor:pointer;overflow:hidden;padding:0;display:grid;place-items:center }
.ct-imgbtn img { width:100%;height:100%;object-fit:cover }
.ct-imgbtn span { font-size:.6rem;color:var(--muted);font-family:var(--mono) }
.ct-ov { position:fixed;inset:0;background:rgba(3,8,12,.6);display:flex;align-items:center;justify-content:center;z-index:80;padding:20px }
.ct-modal { width:420px;max-width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:var(--shadow,0 20px 60px rgba(0,0,0,.4)) }
.ct-mh { padding:14px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:1rem;color:var(--ink) }
.ct-mf { padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end }
/* ============================================================================
   screens/stations.js
   ============================================================================ */
.stn-add { display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:14px }
.stn-f { display:flex;flex-direction:column;gap:4px }
.stn-f label { font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted) }
.stn-f input { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:120px }
.stn-f input:focus { border-color:var(--accent) }
.stn-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px }
.stn-tools .gs { margin-left:auto }
.stn-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:140px }
.stn-in:focus { border-color:var(--accent) }
.stn-tbl td select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.stn-note { font-size:.8rem;color:var(--muted);margin:6px 0 14px }
/* ============================================================================
   screens/modifiers.js
   ============================================================================ */
.mo-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.mo-search { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);min-width:200px;flex:1;max-width:320px;outline:none;font-family:inherit }
.mo-search:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.mo-search::placeholder { color:var(--muted) }
.mo-sel { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.mo-sel:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.mo-count { font-size:.8rem;color:var(--muted);margin-left:auto }
.mo-newbody { padding:14px 16px }
.mo-form { display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end }
.mo-f { display:flex;flex-direction:column;gap:5px }
.mo-f.grow { flex:1 1 200px }
.mo-f label { font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.mo-f input,.mo-f select { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:120px }
.mo-f input:focus,.mo-f select:focus { border-color:var(--accent) }
.mo-f.narrow input { width:100px;min-width:0 }
.mo-hint { margin:10px 2px 0;font-size:.76rem;color:var(--faint) }
table.g tr.mo-click { cursor:pointer }
table.g tbody tr.mo-click:hover td { background:var(--hover) }
.mo-sub { color:var(--muted);font-size:.8rem }
.mo-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.mo-head { display:flex;align-items:center;gap:12px;margin-bottom:18px }
.mo-back { display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line-2);color:var(--ink);font-size:.82rem;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer;font-family:inherit }
.mo-back:hover { border-color:var(--accent-line);color:var(--accent) }
.mo-back svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
.mo-dt { font-weight:800;font-size:1.15rem;letter-spacing:-.01em }
.mo-dc { font-size:.76rem;color:var(--muted);margin-top:1px }
.mo-sec { margin-bottom:16px }
.mo-foot { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line) }
.ol input,.ol select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.ol input:focus,.ol select:focus { border-color:var(--accent) }
.ol input[type=number] { font-family:var(--mono);text-align:right }
.ol input[type=checkbox] { width:auto;accent-color:var(--accent);cursor:pointer }
.ol td { vertical-align:middle }
.ol-x { background:none;border:0;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px;font-size:1rem;line-height:1 }
.ol-x:hover { background:var(--hover);color:var(--bad) }
.mo-att { display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px }
@media(max-width:720px) {
  .mo-att { grid-template-columns:1fr }
}
.mo-ah { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;display:flex;align-items:baseline;gap:8px }
.mo-ah .c { font-family:var(--mono);color:var(--accent);font-size:.72rem }
.mo-asearch { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;margin-bottom:8px }
.mo-asearch:focus { border-color:var(--accent) }
.mo-afilt { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px }
.mo-asel { flex:1 1 130px;min-width:0;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none }
.mo-asel:focus { border-color:var(--accent) }
.mo-alist { max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--bg) }
.mo-arow { display:flex;align-items:center;gap:10px;padding:8px 11px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.84rem }
.mo-arow:last-child { border-bottom:0 }
.mo-arow:hover { background:var(--hover) }
.mo-arow input { accent-color:var(--accent);cursor:pointer;flex:none }
.mo-aname { color:var(--ink) }
.mo-asub { margin-left:auto;color:var(--faint);font-size:.74rem }
.mo-aempty { padding:20px;text-align:center;color:var(--muted);font-size:.82rem }
/* ============================================================================
   screens/cash.js
   ============================================================================ */
.csh-note { display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:.84rem;color:var(--muted) }
.csh-note b { color:var(--ink);font-weight:700 }
.csh-note svg { width:17px;height:17px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.csh-exp { display:flex;align-items:center;gap:10px;margin:-8px 0 22px;font-size:.78rem;color:var(--faint) }
.csh-exp .v { font-family:var(--mono);font-weight:700;color:var(--muted);filter:blur(6px);transition:filter .15s;cursor:pointer;user-select:none }
.csh-exp.show .v { filter:none }
.csh-exp .pk { background:none;border:1px solid var(--line-2);color:var(--muted);border-radius:6px;padding:3px 9px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;font-family:inherit }
.csh-exp .pk:hover { color:var(--ink);border-color:var(--accent-line) }
.csh-form { display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;padding:14px 16px;border-bottom:1px solid var(--line) }
.csh-fld { display:flex;flex-direction:column;gap:5px }
.csh-fld label { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.csh-fld select,.csh-fld input { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.csh-fld input:focus,.csh-fld select:focus { border-color:var(--accent) }
.csh-fld input[type=number] { font-family:var(--mono);text-align:right }
.csh-fld.grow { flex:1 1 180px }
.csh-fld.grow input { min-width:0;width:100% }
.csh-flt { display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line) }
.csh-fin { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;min-width:160px }
.csh-fin:focus { border-color:var(--accent) }
.csh-fin.q { flex:1 1 180px;min-width:140px }
.csh-fl { display:inline-flex;align-items:center;gap:7px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.csh-fl .csh-fin { min-width:0;width:152px;font-family:var(--mono);font-weight:400;letter-spacing:0;text-transform:none }
.csh-hint { margin-left:auto;font-size:.72rem;color:var(--faint) }
.csh-dir { font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:5px;white-space:nowrap }
.csh-dir.in { background:var(--good-soft);color:var(--good) }
.csh-dir.out { background:var(--warn-soft);color:var(--warn) }
.csh-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.csh-close { display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:16px }
.csh-close .t { font-size:.84rem;color:var(--muted);flex:1 1 260px }
.csh-close .t b { color:var(--ink) }
.csh-ov { position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:200;padding:20px;animation:cshfade .15s ease }
@keyframes cshfade { from{opacity:0}to{opacity:1} }
.csh-modal { width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;animation:cshpop .16s ease }
@keyframes cshpop { from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none} }
.csh-modal .hd { padding:15px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:1.02rem }
.csh-modal .bd { padding:18px }
.csh-modal .ft { display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line) }
.csh-lbl { font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:7px }
.csh-bigin { width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:13px 15px;font-family:var(--mono);font-size:1.5rem;font-weight:700;text-align:right;color:var(--ink);outline:none }
.csh-bigin:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.csh-res { text-align:center;padding:4px 0 16px }
.csh-res .big { font-family:var(--mono);font-size:2.1rem;font-weight:800;letter-spacing:-.01em;line-height:1.1 }
.csh-res .cap { font-size:.74rem;font-weight:700;margin-top:5px;text-transform:uppercase;letter-spacing:.08em }
.csh-res.good .big,.csh-res.good .cap { color:var(--good) }
.csh-res.warn .big,.csh-res.warn .cap { color:var(--warn) }
.csh-res.bad .big,.csh-res.bad .cap { color:var(--bad) }
.csh-bk { width:100%;border-collapse:collapse;font-size:.84rem }
.csh-bk td { padding:7px 4px;border-bottom:1px solid var(--line) }
.csh-bk td.n { font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--ink) }
.csh-bk td.k { color:var(--muted) }
.csh-bk tr.sum td { font-weight:800;color:var(--ink);border-top:1px solid var(--line-2) }
.csh-bk tr:last-child td { border-bottom:0 }
/* ============================================================================
   screens/receipts.js
   ============================================================================ */
.rc-toolbar { display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px }
.rc-fld { display:flex;flex-direction:column;gap:5px }
.rc-fld label { font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.rc-fld input,.rc-fld select { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-height:37px }
.rc-fld input:focus,.rc-fld select:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.rc-fld .ls-ss-trigger { box-sizing:border-box;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);min-height:37px;min-width:148px;max-width:230px }
.rc-search { flex:1;min-width:170px }
.rc-count { font-size:.8rem;color:var(--muted);margin-left:auto;align-self:center;white-space:nowrap }
table.g tr.rc-row { cursor:pointer }
table.g tbody tr.rc-row:hover { background:var(--hover) }
.rc-no { font-family:var(--mono);font-weight:700 }
.rc-tbl { display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom }
.rc-tender { color:var(--muted);font-size:.78rem }
.rc-empty { padding:34px 20px;text-align:center;color:var(--muted);font-size:.86rem }
.rc-back { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;padding:0;margin-bottom:14px;display:inline-flex;align-items:center;gap:6px }
.rc-actions { display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:0 auto 16px;max-width:340px }
.rc-actions .btn { display:inline-flex;align-items:center;gap:7px }
.rc-actions .btn svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
.rc-actions .btn[disabled] { opacity:.5;cursor:default;box-shadow:none }
.rcpt { width:300px;max-width:100%;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:20px 20px;font-family:var(--mono);font-size:.76rem;line-height:1.55;color:var(--ink) }
.rcpt .biz { text-align:center;font-weight:800;font-size:.98rem;letter-spacing:.02em }
.rcpt .biz-sub { text-align:center;color:var(--muted);font-size:.7rem;margin-top:2px }
.rcpt .sep { border:0;border-top:1px dashed var(--line-2);margin:9px 0 }
.rcpt .r { display:flex;justify-content:space-between;gap:12px;align-items:baseline }
.rcpt .r>span:first-child { overflow-wrap:anywhere }
.rcpt .num { font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right }
.rcpt .meta { color:var(--muted);font-size:.72rem }
.rcpt .mod { color:var(--muted);padding-left:16px;font-size:.72rem }
.rcpt .dsc { color:var(--muted);padding-left:16px;font-size:.7rem }
.rcpt .grand { font-weight:800;font-size:.92rem;margin:2px 0 }
.rcpt .sect { font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:2px 0 }
.rcpt .refund .r { color:var(--bad) }
.rcpt .foot { text-align:center;color:var(--muted);margin-top:12px;white-space:pre-wrap;font-size:.72rem }
.rcpt-paid { text-align:center;margin-top:10px }
.rcpt-paid .pill { font-size:.62rem }
.rc-ov { position:fixed;inset:0;background:rgba(3,8,12,.62);display:flex;align-items:center;justify-content:center;z-index:70;padding:18px }
:root[data-theme="light"] .rc-ov { background:rgba(15,23,32,.4) }
.rc-modal { width:400px;max-width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden }
.rc-m-h { padding:14px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:1rem;display:flex;align-items:baseline;gap:10px }
.rc-m-h .rc-remain { margin-left:auto;font-family:var(--mono);font-size:.74rem;color:var(--muted);font-weight:600 }
.rc-m-b { padding:16px 18px;display:flex;flex-direction:column;gap:13px }
.rc-m-b label { display:block;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:5px }
.rc-m-b input,.rc-m-b select,.rc-m-b textarea { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:.86rem;color:var(--ink);font-family:inherit;outline:none }
.rc-m-b input:focus,.rc-m-b select:focus,.rc-m-b textarea:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.rc-m-b input[type=number] { font-family:var(--mono);text-align:right }
.rc-m-f { display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line) }
@media print {
  @page { size:80mm auto;margin:0 }
  html,body { height:auto!important;overflow:visible!important;background:#fff!important }
  body * { visibility:hidden!important }
  .rcpt-print,.rcpt-print * { visibility:visible!important }
  .rcpt-print { position:absolute!important;left:0!important;top:0!important;width:80mm!important;max-width:80mm!important;margin:0!important;padding:4mm 3mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;color:#000!important;font-size:11px!important }
  .rcpt-print .biz,.rcpt-print .grand,.rcpt-print .num { color:#000!important }
  .rcpt-print .biz-sub,.rcpt-print .meta,.rcpt-print .mod,.rcpt-print .dsc,.rcpt-print .sect,.rcpt-print .foot { color:#333!important }
  .rcpt-print .refund .r { color:#000!important }
  .rcpt-print .sep { border-top-color:#000!important }
  .rcpt-print .pill { color:#000!important;background:none!important;border:1px solid #000!important }
}
/* ============================================================================
   screens/customers.js
   ============================================================================ */
.cx-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.cx-tools .gs { margin-left:auto }
.cx-count { font-size:.8rem;color:var(--muted) }
.cx-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:210px }
.cx-in:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.cx-in::placeholder { color:var(--muted) }
.cx-sel { min-width:150px }
.cx-w { display:inline-flex;align-items:center }
.cx-oh { min-width:150px;padding:5px 9px;font-size:.76rem;font-weight:500 }
.cx-t { display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--hover);color:var(--muted);border:1px solid var(--line-2) }
.cx-t.disc { background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line) }
.cx-id { font-family:var(--mono);font-size:.8rem;color:var(--muted) }
.cx-day { font-family:var(--mono);font-size:.8rem;color:var(--muted) }
.cx-dash { color:var(--faint) }
.cx-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
table.g tbody tr.cx-row { cursor:pointer }
table.g tbody tr.cx-row:hover td { background:var(--hover) }
.cx-form { display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:15px 16px;margin-bottom:16px }
.cx-f { display:flex;flex-direction:column;gap:5px }
.cx-f label { font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.cx-f input,.cx-f select { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:160px }
.cx-f input:focus,.cx-f select:focus { border-color:var(--accent) }
.cx-f input:disabled,.cx-f select:disabled { opacity:.6;cursor:not-allowed }
.cx-full { flex-basis:100% }
.cx-note { display:flex;gap:10px;align-items:flex-start;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:9px;padding:10px 13px;font-size:.8rem;color:var(--muted);margin-top:2px }
.cx-note svg { width:15px;height:15px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.cx-note b { color:var(--ink);font-weight:700 }
.cx-back { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;padding:0;margin-bottom:14px;display:inline-flex;align-items:center;gap:5px }
.cx-hd { display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap }
.cx-hd .nm { font-weight:800;font-size:1.25rem;letter-spacing:-.01em }
.cx-hd .sub { font-size:.72rem;color:var(--muted);font-family:var(--mono);margin-top:2px }
/* ============================================================================
   screens/marketing.js
   ============================================================================ */
.mk-tabs { display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap }
.mk-tabs button { padding:9px 16px;font-size:.84rem;font-weight:600;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;margin-bottom:-1px }
.mk-tabs button.on { color:var(--accent);border-bottom-color:var(--accent) }
.mk-note { display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:.84rem;color:var(--muted) }
.mk-note b { color:var(--ink);font-weight:700 }
.mk-add { display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:16px }
.mk-f { display:flex;flex-direction:column;gap:5px }
.mk-f label { font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.mk-f input,.mk-f select { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.mk-f input:focus,.mk-f select:focus { border-color:var(--accent) }
.mk-f input[type=number] { font-family:var(--mono);text-align:right }
.mk-f.grow { flex:1 1 180px }
.mk-f.grow input { min-width:0;width:100% }
.mk-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.mk-tools .gs { margin-left:auto }
.mk-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.mk-in:focus { border-color:var(--accent) }
.mk-tbl input,.mk-tbl select { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.mk-tbl input:focus,.mk-tbl select:focus { border-color:var(--accent) }
.mk-tbl input[type=number] { font-family:var(--mono);text-align:right }
.mk-mono { font-family:var(--mono) }
.mk-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.mk-set { max-width:560px }
.mk-set .row { display:flex;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line) }
.mk-set .row:last-of-type { border-bottom:0 }
.mk-set .row .lab { flex:1 1 auto }
.mk-set .row .lab .t { font-weight:700;color:var(--ink);font-size:.9rem }
.mk-set .row .lab .d { font-size:.78rem;color:var(--muted);margin-top:3px }
.mk-set .row .ctl { flex:none }
.mk-set .row .ctl input,.mk-set .row .ctl select { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;width:120px }
.mk-set .row .ctl input[type=number] { font-family:var(--mono);text-align:right }
.mk-ov { position:fixed;inset:0;background:rgba(3,8,12,.6);display:flex;align-items:center;justify-content:center;z-index:120;padding:20px }
.mk-modal { width:400px;max-width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:var(--shadow,0 20px 60px rgba(0,0,0,.4)) }
.mk-modal .hd { padding:14px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:1rem;color:var(--ink) }
.mk-modal .bd { padding:16px 18px;display:flex;flex-direction:column;gap:12px }
.mk-modal .ft { padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end }
@keyframes tiPing { 0%{box-shadow:0 0 0 0 var(--pc,rgba(0,0,0,.4))}70%,100%{box-shadow:0 0 0 11px transparent} }
.ti-badge { width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex:none }
.ti-badge.pulse { animation:tiPing 1.5s ease-out infinite }
.ti-row { display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);margin-bottom:10px }
.ti-row.off { opacity:.55 }
.ti-main { flex:1;min-width:0 }
.ti-main .nm { font-weight:700;color:var(--ink);font-size:.92rem }
.ti-main .tr { font-size:.76rem;color:var(--muted);margin-top:3px;line-height:1.4 }
.ti-acts { display:flex;gap:6px;align-items:center;flex:none }
.ti-ic { width:30px;height:30px;border-radius:8px;border:1px solid var(--line-2);background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit }
.ti-ic:hover:not(:disabled) { color:var(--ink);border-color:var(--accent-line) }
.ti-ic:disabled { opacity:.35;cursor:default }
.ti-ic.danger:hover { color:var(--bad);border-color:var(--bad) }
.ti-modal { width:480px;max-width:100%;background:var(--card);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:var(--shadow,0 20px 60px rgba(0,0,0,.4));max-height:92vh;display:flex;flex-direction:column }
.ti-modal .hd { padding:14px 18px;border-bottom:1px solid var(--line);font-weight:800;font-size:1rem;color:var(--ink);display:flex;align-items:center;gap:12px }
.ti-modal .bd { padding:16px 18px;display:flex;flex-direction:column;gap:14px;overflow:auto }
.ti-modal .ft { padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end }
.ti-lbl { font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;display:block }
.ti-in { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.86rem;color:var(--ink);font-family:inherit;outline:none }
.ti-in:focus { border-color:var(--accent) }
.ti-in[type=number] { font-family:var(--mono);text-align:right }
.ti-iconpick { display:grid;grid-template-columns:repeat(9,1fr);gap:6px }
.ti-iconpick button { aspect-ratio:1;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer }
.ti-iconpick button.on { border:2px solid var(--accent);color:var(--accent) }
.ti-sw { display:flex;gap:9px;flex-wrap:wrap }
.ti-sw button { width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;outline-offset:2px }
.ti-sw button.on { outline:2px solid var(--ink) }
.ti-prev { display:flex;align-items:center;gap:14px;padding:14px;border-radius:11px;background:#0F172A }
.ti-prev .pn { color:#cbd5e1;font-size:.82rem;font-family:var(--mono) }
.ti-cats { display:flex;flex-wrap:wrap;gap:7px }
.ti-cats label { display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:5px 11px;cursor:pointer;user-select:none }
.ti-cats label.on { border-color:var(--accent);background:var(--accent-soft);color:var(--accent) }
.ti-cats input { display:none }
.ti-cond { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line) }
.ti-cond:last-child { border-bottom:0 }
.ti-cond .cl { font-size:.84rem;color:var(--ink) }
.ti-cond .cl .d { font-size:.72rem;color:var(--muted);margin-top:1px }
.ti-cond .cr { display:flex;align-items:center;gap:7px;flex:none;font-size:.82rem;color:var(--muted) }
.ti-cond .cr input { width:78px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-family:var(--mono);text-align:right;color:var(--ink);outline:none }
.ti-cond .cr input:focus { border-color:var(--accent) }
.ti-conds { display:flex;flex-direction:column;gap:9px;margin-top:2px }
.ti-condrow { border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:var(--bg) }
.ti-cline { display:flex;align-items:center;gap:7px }
.ti-cline select { flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;cursor:pointer }
.ti-cline select:focus { border-color:var(--accent) }
.ti-crm { flex:none;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);cursor:pointer;font-size:.8rem;line-height:1 }
.ti-crm:hover { border-color:var(--bad);color:var(--bad) }
.ti-cvn-wrap { display:flex;align-items:center;gap:6px;margin-top:8px;font-size:.82rem;color:var(--muted) }
.ti-cvn { width:110px;background:var(--card);border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-family:var(--mono);text-align:right;color:var(--ink);outline:none }
.ti-cvn:focus { border-color:var(--accent) }
.ti-condrow .ti-cats { margin-top:9px }
.ti-sec { font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:2px 0 -4px }
/* ============================================================================
   screens/finance.js
   ============================================================================ */
.fi-rangebar { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px }
.fi-chips { display:flex;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden }
.fi-chips button { padding:7px 13px;font-size:.8rem;font-weight:600;color:var(--muted);background:none;border:0;cursor:pointer;font-family:inherit;transition:background .12s,color .12s }
.fi-chips button:not(.on):hover { background:var(--hover);color:var(--ink) }
.fi-chips button.on { background:var(--accent);color:#04222a }
.fi-dates { display:flex;gap:10px;align-items:center;flex-wrap:wrap }
.fi-dates label { display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);font-weight:600 }
.fi-dates input { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:.8rem;color:var(--ink);font-family:var(--mono);outline:none;color-scheme:light dark }
.fi-dates input:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.fi-meta { margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted) }
.fi-tabs { display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px }
.fi-tabs button { padding:9px 15px;font-size:.84rem;font-weight:700;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-family:inherit;transition:color .12s,border-color .12s }
.fi-tabs button:hover { color:var(--ink) }
.fi-tabs button.on { color:var(--ink);border-bottom-color:var(--accent) }
.fi-note { display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:16px;font-size:.84rem;color:var(--muted) }
.fi-note b { color:var(--ink);font-weight:700 }
.fi-note code { font-family:var(--mono);color:var(--ink) }
.fi-note svg { width:17px;height:17px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.fi-sec { margin-bottom:16px }
.fi-scroll { overflow-x:auto }
.fi-empty { padding:26px 16px;text-align:center;color:var(--muted);font-size:.86rem }
.kpi.fi-net { border-color:var(--accent-line,var(--accent)) }
.kpi.fi-net .v { color:var(--accent) }
.fi-form { display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;padding:14px 16px;border-bottom:1px solid var(--line) }
.fi-fld { display:flex;flex-direction:column;gap:5px }
.fi-fld label { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.fi-fld select,.fi-fld input { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.84rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.fi-fld input:focus,.fi-fld select:focus { border-color:var(--accent) }
.fi-fld input[type=number] { font-family:var(--mono);text-align:right }
.fi-fld.grow { flex:1 1 200px }
.fi-fld.grow input { min-width:0;width:100% }
.fi-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line) }
.fi-tools .fi-gs { margin-left:auto }
.fi-in { background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;min-width:150px }
.fi-in:focus { border-color:var(--accent) }
.fi-fcount { font-family:var(--mono);font-size:.72rem;color:var(--muted);white-space:nowrap }
.fi-x { background:none;border:1px solid var(--line);color:var(--muted);border-radius:7px;padding:4px 10px;font-size:.72rem;font-weight:700;cursor:pointer;font-family:inherit }
.fi-x:hover { border-color:var(--bad);color:var(--bad) }
.fi-tag { display:inline-block;font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:5px;background:var(--hover);color:var(--muted);text-transform:uppercase }
/* ============================================================================
   screens/invadmin.js
   ============================================================================ */
.iad-tabs { display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:16px }
.iad-tabs button { padding:9px 16px;font-size:.84rem;font-weight:600;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;margin-bottom:-1px;transition:color .12s,border-color .12s }
.iad-tabs button:hover { color:var(--ink) }
.iad-tabs button.on { color:var(--accent);border-bottom-color:var(--accent) }
.iad-note { display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:.84rem;color:var(--muted) }
.iad-note b { color:var(--ink);font-weight:700 }
.iad-note svg { width:17px;height:17px;flex:none;margin-top:1px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round }
.iad-bar { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px }
.iad-sum { font-size:.8rem;color:var(--muted) }
.iad-sum b { color:var(--ink);font-weight:700 }
.iad-search { margin-left:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:.8rem;color:var(--ink);min-width:190px;outline:none;font-family:inherit }
.iad-search:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.iad-search::placeholder { color:var(--muted) }
.iad-filter { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;cursor:pointer;min-width:150px }
.iad-filter:focus { border-color:var(--accent) }
.iad-in { width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none }
.iad-in:focus { border-color:var(--accent) }
.iad-in.mono { font-family:var(--mono) }
select.iad-in { cursor:pointer }
tr.iad-addrow td { background:var(--accent-soft);border-top:1px solid var(--accent-line);border-bottom:1px solid var(--accent-line);vertical-align:middle }
tr.iad-addrow td:first-child { border-left:1px solid var(--accent-line) }
tr.iad-addrow td:last-child { border-right:1px solid var(--accent-line) }
.iad-act { display:flex;gap:4px;justify-content:flex-end }
.iad-lnk { background:none;border:0;color:var(--accent);cursor:pointer;font-size:.8rem;font-weight:600;font-family:inherit;padding:4px 7px;border-radius:6px }
.iad-lnk:hover { background:var(--hover) }
.iad-lnk.mut { color:var(--muted) }
.iad-lnk:disabled { opacity:.6;cursor:default }
.iad-mono { font-family:var(--mono);font-variant-numeric:tabular-nums }
.iad-mut { color:var(--muted) }
.iad-hint { color:var(--faint);font-size:.72rem }
.pill.iad-off { background:var(--hover);color:var(--muted) }
.iad-empty { padding:22px 16px;text-align:center;color:var(--muted);font-size:.86rem }
/* ============================================================================
   screens/kds.js
   ============================================================================ */
.kds-bar { display:flex;align-items:center;gap:12px;margin-bottom:16px }
.kds-count { font-size:.82rem;color:var(--muted);font-family:var(--mono) }
.kds-refresh { margin-left:auto;display:inline-flex;align-items:center;gap:7px }
.kds-refresh svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round }
.kds-refresh[disabled] { opacity:.6;cursor:default }
.kds-refresh.spin svg { animation:kdsSpin .8s linear infinite }
@keyframes kdsSpin { to{transform:rotate(360deg)} }
.kds-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;align-items:start }
.kds-card { display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);transition:opacity .24s ease,transform .24s ease }
.kds-card.leaving { opacity:0;transform:scale(.96) }
.kds-head { display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line) }
.kds-no { font-family:var(--mono);font-weight:800;font-size:1.06rem;letter-spacing:-.01em }
.kds-tbl { color:var(--muted);font-size:.75rem;margin-top:2px }
.kds-note { display:flex;gap:8px;align-items:baseline;padding:9px 14px;background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--line);font-size:.9rem;font-weight:600;line-height:1.35 }
.kds-note-l { flex:none;font-size:.6rem;font-weight:800;letter-spacing:.08em;background:var(--warn);color:#fff;padding:2px 6px;border-radius:5px;font-family:var(--mono) }
.kds-timer { font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:800;font-size:1.18rem;letter-spacing:-.01em;white-space:nowrap;color:var(--muted) }
.kds-timer.t-ok { color:var(--good) }
.kds-timer.t-warn { color:var(--warn) }
.kds-timer.t-bad { color:var(--bad) }
.kds-lines { list-style:none;margin:0;padding:0 }
.kds-line { display:flex;align-items:center;gap:11px;padding:12px 14px;min-height:50px;border-bottom:1px solid var(--line);cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .12s }
.kds-line:hover { background:var(--hover) }
.kds-line:active { background:var(--accent-soft) }
.kds-qty { flex:none;min-width:34px;text-align:right;font-family:var(--mono);font-weight:700;font-size:.92rem;color:var(--accent) }
.kds-name { flex:1;min-width:0;font-size:.92rem;font-weight:600;line-height:1.3;word-break:break-word }
.kds-mods { display:block;margin-top:2px;font-size:.74rem;font-weight:400;color:var(--muted);line-height:1.35 }
.kds-check { flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;color:transparent;transition:background .15s,border-color .15s,color .15s }
.kds-check svg { width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round }
.kds-line:hover .kds-check { border-color:var(--good);color:var(--good) }
.kds-line.done { opacity:.55 }
.kds-line.done .kds-name,.kds-line.done .kds-qty { text-decoration:line-through;color:var(--faint) }
.kds-line.done .kds-mods { text-decoration:line-through }
.kds-line.done .kds-check { background:var(--good);border-color:var(--good);color:#04222a }
.kds-line.done:hover .kds-check { background:var(--warn);border-color:var(--warn);color:#04222a }
.kds-foot { padding:11px 12px;border-top:1px solid var(--line) }
.kds-alldone { width:100%;padding:11px;font-size:.84rem }
.kds-sk { min-height:150px }
@media(max-width:520px) {
  .kds-grid { grid-template-columns:1fr }
}
/* ============================================================================
   screens/activity.js
   ============================================================================ */
.al-bar { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px }
.al-chips { display:flex;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden }
.al-chips button { padding:7px 13px;font-size:.8rem;font-weight:600;color:var(--muted);background:none;border:0;cursor:pointer;font-family:inherit;transition:background .12s,color .12s }
.al-chips button:not(.on):hover { background:var(--hover);color:var(--ink) }
.al-chips button.on { background:var(--accent);color:#04222a }
.al-dates { display:flex;gap:10px;align-items:center;flex-wrap:wrap }
.al-dates label { display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);font-weight:600 }
.al-dates input { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:.8rem;color:var(--ink);font-family:var(--mono);outline:none;color-scheme:light dark }
.al-dates input:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.al-sel { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:.8rem;color:var(--ink);font-family:inherit;outline:none;cursor:pointer;min-width:132px;max-width:210px;text-align:left }
.al-sel:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.al-search { flex:1;min-width:180px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:.8rem;color:var(--ink);outline:none;font-family:inherit }
.al-search:focus { border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft) }
.al-search::placeholder { color:var(--muted) }
.al-meta { margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--muted);white-space:nowrap }
.al-strip { display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px }
.al-chip { display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:4px 10px 4px 8px;font-size:.74rem;color:var(--muted);max-width:100% }
.al-chip-l { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-family:var(--mono);font-size:.7rem;color:var(--ink) }
.al-chip b { font-family:var(--mono);font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums }
.al-chip.al-total { border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent) }
.al-chip.al-total b { color:var(--accent) }
.al-chip.al-more { color:var(--faint) }
.al-m { font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.04em;padding:2px 5px;border-radius:4px;background:var(--hover);color:var(--muted);text-transform:uppercase;white-space:nowrap }
.al-m.al-post { background:var(--accent-soft);color:var(--accent) }
.al-m.al-put,.al-m.al-patch { background:var(--warn-soft);color:var(--warn) }
.al-m.al-delete { background:var(--bad-soft);color:var(--bad) }
table.g tr.al-row:hover td { background:var(--hover) }
.al-time .t { font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap }
.al-time .d { display:block;font-family:var(--mono);font-size:.66rem;color:var(--faint);margin-top:1px }
.al-user { white-space:nowrap }
.al-uid { font-family:var(--mono);color:var(--muted) }
.al-path { font-family:var(--mono);font-size:.78rem;color:var(--ink);display:inline-block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom }
.al-reason { display:block;font-size:.7rem;color:var(--muted);max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px }
.al-evt { font-family:var(--mono);font-size:.78rem;color:var(--ink) }
.al-dash { color:var(--faint) }
.al-empty { padding:34px 20px;text-align:center;color:var(--muted);font-size:.86rem }
.pill.al-none { background:var(--hover);color:var(--muted) }
/* ============================================================================
   screens/assistant-log.js
   ============================================================================ */
.agl-bar { display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:12px }
.agl-f { display:flex;flex-direction:column;gap:3px }
.agl-f label { font-size:11px;color:var(--muted) }
.agl-f input,.agl-f select { font:inherit;font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px }
.agl-tabs { display:flex;gap:6px;margin-bottom:12px }
.agl-tab { border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:13px }
.agl-tab.on { background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600 }
.agl-q { border:1px solid var(--line);border-radius:10px;background:var(--card);margin-bottom:8px;overflow:hidden }
.agl-qh { display:flex;gap:10px;align-items:flex-start;padding:9px 11px;cursor:pointer }
.agl-qh:hover { background:var(--hover) }
.agl-n { font-family:var(--mono);font-size:11px;color:var(--faint);min-width:34px }
.agl-qt { flex:1;font-size:13px;line-height:1.4 }
.agl-meta { font-size:11px;color:var(--muted);margin-top:3px }
.agl-a { display:none;padding:0 11px 11px 55px;font-size:13px;line-height:1.55;color:var(--ink);white-space:pre-wrap;border-top:1px solid var(--line);padding-top:9px }
.agl-q.open .agl-a { display:block }
.agl-tools { font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:6px }
.agl-gap { border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:var(--card);padding:10px 12px;margin-bottom:8px }
.agl-gap.refused { border-left-color:var(--bad) }
.agl-gap.deflected { border-left-color:var(--warn) }
.agl-gq { font-size:13px;font-weight:600;line-height:1.4 }
.agl-gw { font-size:12px;color:var(--muted);margin-top:3px }
.agl-gm { font-size:11px;color:var(--faint);margin-top:4px }
.agl-cnt { float:right;font-family:var(--mono);font-size:12px;color:var(--ink);font-weight:700 }
.agl-pager { display:flex;gap:8px;align-items:center;justify-content:center;margin-top:12px;font-size:12px;color:var(--muted) }

/* ============================================================================
   screens/requests.js
   ============================================================================ */
.rq-thread { max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding:10px 2px;margin:8px 0 }
.rq-tload { color:var(--muted);font-size:.84rem;padding:6px 2px }
.rq-msg { max-width:82%;border:1px solid var(--line);border-radius:11px;padding:8px 11px;background:var(--card) }
.rq-msg.fil { align-self:flex-start;border-bottom-left-radius:3px }
.rq-msg.rev { align-self:flex-end;background:var(--accent-soft);border-color:var(--accent-line);border-bottom-right-radius:3px }
.rq-mh { display:flex;gap:9px;align-items:baseline;font-size:.72rem;color:var(--muted);margin-bottom:3px }
.rq-mh b { font-size:.78rem;color:var(--ink) }
.rq-mt { font-size:.88rem;line-height:1.45;white-space:pre-wrap;word-break:break-word }
.rq-mf { display:flex;gap:6px;flex-wrap:wrap;margin-top:7px }
.rq-mi { max-width:150px;max-height:150px;border-radius:7px;border:1px solid var(--line);cursor:zoom-in;background:var(--bg) }
.rq-reply { border-top:1px solid var(--line);padding-top:10px;margin-top:4px }
.rq-rtext { width:100%;resize:vertical;font:inherit;font-size:.88rem;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink) }
.rq-rtext:focus { border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft) }
.rq-rbar { display:flex;align-items:center;gap:9px;margin-top:7px;flex-wrap:wrap }
.rq-rhint { font-size:.76rem;color:var(--muted) }
.rq-rsend { margin-left:auto }
.rq-rthumbs { display:flex;gap:5px;flex-wrap:wrap }
.rq-th { position:relative;display:inline-block }
.rq-th img { width:42px;height:42px;object-fit:cover;border-radius:6px;border:1px solid var(--line) }
.rq-th button { position:absolute;top:-6px;right:-6px;width:17px;height:17px;line-height:15px;padding:0;border-radius:50%;border:1px solid var(--line-2);background:var(--card);color:var(--muted);font-size:10px;cursor:pointer }
.rq-th button:hover { color:var(--bad);border-color:var(--bad) }
.rq-wrap { display:flex;flex-direction:column;gap:14px }
.rq-chips { display:flex;gap:8px;flex-wrap:wrap }
.rq-chip { border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;cursor:pointer }
.rq-chip span { color:var(--faint);font-weight:400;margin-left:3px }
.rq-chip:hover { color:var(--ink);border-color:var(--accent-line) }
.rq-chip.on { color:var(--ink);border-color:var(--accent-line);background:var(--accent-soft) }
.rq-list { display:flex;flex-direction:column;gap:8px }
.rq-row { background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden }
.rq-row.open { border-color:var(--accent-line) }
.rq-head { display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--ink);padding:11px 14px;cursor:pointer;font:inherit }
.rq-head:hover { background:var(--hover) }
.rq-id { flex:none;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--muted);min-width:2.4em;user-select:text }
.rq-kind { flex:none;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:2px 7px }
.rq-kind.kb { background:var(--bad-soft);color:var(--bad) }
.rq-kind.kf { background:var(--accent-soft);color:var(--accent) }
.rq-title { font-weight:600;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.rq-shot { flex:none;display:inline-flex;color:var(--muted) }
.rq-shot svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round }
.rq-meta { margin-left:auto;flex:none;font-size:11.5px;color:var(--muted);white-space:nowrap }
.rq-st { flex:none;font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px }
.rq-st.st-new { background:var(--warn-soft);color:var(--warn) }
.rq-st.st-planned { background:var(--accent-soft);color:var(--accent) }
.rq-st.st-done { background:var(--good-soft);color:var(--good) }
.rq-st.st-declined { background:var(--hover);color:var(--muted) }
.rq-detail { border-top:1px solid var(--line);padding:13px 14px;display:flex;flex-direction:column;gap:11px }
.rq-body { font-size:13px;line-height:1.55;white-space:pre-wrap }
.rq-body.rq-none { color:var(--faint) }
.rq-img { border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg) }
.rq-img img { display:block;max-width:100%;max-height:520px;object-fit:contain;margin:0 auto }
.rq-imgload { display:block;padding:18px;font-size:12px;color:var(--faint);text-align:center }
.rq-act { display:flex;align-items:center;gap:8px;flex-wrap:wrap }
.rq-act label { font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted) }
.rq-sel { font:inherit;font-size:12.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px }
.rq-note { flex:1;min-width:220px;font:inherit;font-size:12.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 10px }
.rq-note:focus, .rq-sel:focus { outline:none;border-color:var(--accent) }
.rq-upd { font-size:11px;color:var(--faint) }
.rq-empty { padding:26px;text-align:center;color:var(--muted);font-size:13px }

/* ============================================================================
   screens/manufacture.js
   ============================================================================ */
.mf-iconbtn { display:inline-grid;place-items:center;width:30px;height:30px;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:8px;cursor:pointer;padding:0 }
.mf-iconbtn:hover { color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft) }
.mf-iconbtn svg { width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round }
/* The item name takes the slack; every other column is as wide as it needs to be, so the action
   column stops claiming a third of the table and leaving the pencil stranded. */
.mf-tbl th:first-child,.mf-tbl td:first-child { width:100% }
.mf-tbl th:not(:first-child),.mf-tbl td:not(:first-child) { white-space:nowrap }
.mf-tbl .mf-actcol { width:1px }
.mf-act { text-align:right;white-space:nowrap }
.mf-act > * { vertical-align:middle }
.mf-act > * + * { margin-left:6px }
.mf-tbl td.n,.mf-tbl th { vertical-align:middle }
.mf-tbl .mf-m { min-width:120px }
.mf-tbl .mf-u { min-width:78px }
.mf-tbl .mf-y { text-align:right;font-family:var(--mono);width:110px }
.mf-none { color:var(--muted) }
.mf-uom { color:var(--muted);font-size:.78em }
tr.mf-editing > td { background:var(--accent-soft) }
tr.mf-editing .mf-y { width:110px }
.mf-tools { display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px }
.mf-tools .gs { margin-left:auto }
.mf-in { background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:.82rem;color:var(--ink);font-family:inherit;outline:none;min-width:220px }
.mf-in:focus { border-color:var(--accent) }
.mf-tabs { display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap }
.mf-tab { border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:9px;padding:6px 14px;font-size:.82rem;font-weight:600;cursor:pointer }
.mf-tab:hover { color:var(--ink);border-color:var(--line-2) }
.mf-tab.on { background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent) }
.mf-make { padding:16px 18px;display:flex;flex-direction:column;gap:6px }
.mf-l { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:6px }
.mf-row { display:flex;gap:10px;align-items:center;flex-wrap:wrap }
.mf-row input[type=number] { width:150px;font-family:var(--mono);text-align:right }
.mf-item { max-width:520px }
.mf-hint { font-size:.78rem;color:var(--muted) }
.mf-chk { display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:var(--muted);margin-top:10px;cursor:pointer }
.mf-chk input { margin:0 }
.mf-note { flex:1;min-width:220px }
.mf-pv { margin-top:16px;border-top:1px solid var(--line);padding-top:14px }
.mf-pvout { font-size:1rem;margin-bottom:4px }
.mf-plus { font-family:var(--mono);font-weight:700;color:var(--good);margin-left:4px }
.mf-pvh { font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px }
.mf-tbl { width:100%;border-collapse:collapse;font-size:.86rem }
.mf-tbl td { padding:5px 8px;border-bottom:1px solid var(--line) }
.mf-tbl td.n { font-family:var(--mono);text-align:right;white-space:nowrap }
.mf-oh { color:var(--muted) }
.mf-short td { color:var(--bad) }
.mf-flag { font-size:.76rem;color:var(--bad);white-space:nowrap }
.mf-in { color:var(--good) }
.mf-out { color:var(--muted) }
.mf-ev { font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em }
.mf-warn { margin-top:12px;background:var(--warn-soft);border:1px solid var(--warn);color:var(--warn);border-radius:9px;padding:9px 12px;font-size:.84rem }
.mf-ovr { color:inherit;margin-top:6px }
.mf-err { margin-top:10px;background:var(--bad-soft);border:1px solid var(--bad);color:var(--bad);border-radius:9px;padding:9px 12px;font-size:.84rem }
.mf-actions { margin-top:14px;display:flex;justify-content:flex-end;gap:10px }
.mf-hist { display:flex;flex-direction:column;gap:7px }
.mf-hrow { display:grid;grid-template-columns:auto 1fr auto auto auto auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 13px;cursor:pointer }
.mf-hrow:hover { border-color:var(--line-2) }
.mf-hrow.open { border-color:var(--accent-line);background:var(--hover) }
.mf-code { font-family:var(--mono);font-size:.78rem;font-weight:700;color:var(--muted) }
.mf-hname { font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.mf-hq { font-family:var(--mono);font-size:.85rem;white-space:nowrap }
.mf-yield { font-family:var(--mono);font-size:.78rem;font-weight:700;border-radius:6px;padding:1px 7px;white-space:nowrap }
.mf-yield.ok { background:var(--good-soft);color:var(--good) }
.mf-yield.warn { background:var(--warn-soft);color:var(--warn) }
.mf-yield.bad { background:var(--bad-soft);color:var(--bad) }
.mf-hmeta { font-size:.76rem;color:var(--muted);white-space:nowrap }
.mf-rvd { font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--bad) }
.mf-hdetail { border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:12px 14px;background:var(--bg);margin-top:-8px }
.mf-dgrid { display:flex;gap:22px;flex-wrap:wrap;margin-bottom:10px }
.mf-kv { display:flex;flex-direction:column;gap:2px }
.mf-kv b { font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted) }
.mf-kv span { font-family:var(--mono);font-size:.9rem }
.mf-dnote { font-size:.84rem;color:var(--muted);margin-bottom:10px;white-space:pre-wrap }
.mf-moves { margin-top:6px }
.mf-stock { font-family:var(--mono);font-size:.82rem;color:var(--muted) }
.mf-inf { font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--warn);background:var(--warn-soft);border-radius:5px;padding:1px 5px }
.mf-note-card { padding:12px 15px;font-size:.86rem;margin-bottom:12px }
.mf-empty { padding:22px;text-align:center;color:var(--muted) }
@media(max-width:820px) {
  .mf-hrow { grid-template-columns:auto 1fr auto;row-gap:5px }
}

/* ── command palette (Cmd/Ctrl-K) ─────────────────────────────────── public/app.js openPalette */
#cmdOverlay { position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.44);
  display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;
  animation:cmdIn .12s ease-out }
@keyframes cmdIn { from{opacity:0} to{opacity:1} }
@media (prefers-reduced-motion:reduce) { #cmdOverlay { animation:none } }
#cmdBox { width:100%;max-width:560px;background:var(--card);border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;
  max-height:70vh }
#cmdBox .cmd-top { display:flex;align-items:center;gap:10px;padding:13px 15px;
  border-bottom:1px solid var(--line) }
#cmdBox .cmd-mag { display:grid;place-items:center;color:var(--muted);flex:none }
#cmdBox .cmd-mag svg { width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round }
#cmdInput { flex:1;border:none;background:transparent;outline:none;color:var(--ink);
  font:inherit;font-size:15px;min-width:0 }
#cmdInput::placeholder { color:var(--muted) }
#cmdBox kbd { font:inherit;font-size:10px;letter-spacing:.03em;color:var(--muted);
  border:1px solid var(--line-2);border-radius:4px;padding:1px 5px;background:var(--bg) }
#cmdList { overflow-y:auto;padding:6px;flex:1;min-height:0 }
.cmd-row { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;
  padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--ink);
  font:inherit;font-size:14px;text-align:left;cursor:pointer }
.cmd-row.on { background:var(--accent-soft) }
.cmd-row.on .cmd-ic { color:var(--accent) }
.cmd-ic { display:grid;place-items:center;color:var(--muted) }
.cmd-ic svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round }
.cmd-t { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.cmd-g { color:var(--muted) }
.cmd-g::after { content:' \203A ';color:var(--muted) }
.cmd-c { color:var(--muted);font-size:11.5px;justify-self:end;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;max-width:44% }
.cmd-empty { padding:22px;text-align:center;color:var(--muted);font-size:14px }
#cmdBox .cmd-foot { display:flex;gap:14px;align-items:center;padding:8px 15px;
  border-top:1px solid var(--line);font-size:11px;color:var(--muted) }
#cmdBox .cmd-foot span:last-child { margin-left:auto }
@media (max-width:560px) { .cmd-c { display:none } #cmdOverlay { padding-top:8vh } }

/* ── Ingredients: say WHICH unit a cost is per ───────── public/screens/ingredients.js costLabel */
/* moving_avg_cost is pesos per ENTRY unit (per g for a kg item) while the dropdown beside it says
   "kg". Unlabelled, that invites a 1000x typo -- which is exactly how three live ingredients came
   to be priced per kilo in the per-gram column. */
.ig-perunit { color:var(--muted);font-size:.8em;margin-left:2px }
.ig-costwrap { display:inline-flex;align-items:center;gap:3px }
.ig-costwrap .ig-e-cost { text-align:right }
.ig-costu { color:var(--muted);font-size:.8em;font-style:normal;white-space:nowrap }
