/* ═══════════════════════════════════════════════════════════════════════════
   StallPOS demo-kit — shared stylesheet for the interactive showroom demos.
   Load BEFORE the demo's inline <style>: a demo's own rules win the cascade
   at equal specificity, so per-demo overrides stay in the demo file.
   Tokens + chrome are the canonical (services-demo) values.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{--paper:#FAF8F4;--card:#FFFFFF;--ink:#201D1A;--mut:#6E675E;--wine:#7A1F1F;--wine2:#5E1616;
--line:#E8E1D5;--ok:#2A6B4F;--warn:#8A6D3B;--pend:#B4771F;--gold:#C9A86A;--soft:#F3EEE5;--rose:#F4E9E4}
*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px}
body{font-family:-apple-system,'Segoe UI','Liberation Sans',Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.5;padding-bottom:60px}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
h1{font-size:18px}h2{font-size:15px}h3{font-size:16px}small{font-size:12.5px}
/* header chrome */
header{position:sticky;top:0;z-index:30;background:var(--card);border-bottom:2px solid var(--ink);padding:10px 16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.brand{font-weight:800;font-size:17px;color:var(--wine)}.brand small{display:block;font-weight:600;color:var(--mut)}
.simbadge{font-size:11px;font-weight:800;letter-spacing:.05em;background:#E4EBE6;color:var(--ok);border-radius:999px;padding:5px 11px;white-space:nowrap}
.roles{display:flex;border:1.5px solid var(--ink);border-radius:11px;overflow:hidden;margin-left:auto}
.roles button{padding:9px 12px;font-weight:800;min-height:44px;white-space:nowrap}
.roles button[aria-pressed=true]{background:var(--ink);color:#fff}
.hbtn{border:1.5px solid var(--line);border-radius:10px;padding:9px 13px;font-weight:700;min-height:44px;background:var(--card);white-space:nowrap}
.hbtn.tour{background:var(--wine);color:#fff;border-color:var(--wine)}
/* views */
.view{display:none;max-width:1200px;margin:0 auto;padding:16px}
.view.on{display:block}
.vhead{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.vhead h1{font-size:21px}
.vhead .sub{color:var(--mut);font-size:13.5px}
/* shared bits */
.badge{font-size:12px;font-weight:800;border-radius:999px;padding:4px 11px;white-space:nowrap}
.badge.dummy{background:var(--soft);color:var(--warn)}
.rh{font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--mut);text-transform:uppercase;margin:6px 0 8px}
.empty{color:var(--mut);padding:8px 2px;font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:10px 16px;font-weight:700;min-height:44px}
.chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip:disabled{opacity:.38;cursor:not-allowed}
/* sheet (modal dialog chrome) */
#overlay{position:fixed;inset:0;background:rgba(32,29,26,.45);z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}
#overlay[hidden]{display:none}
#sheet{background:var(--card);border-radius:16px;max-width:560px;width:100%;max-height:92vh;overflow:auto;padding:18px}
.shh{display:flex;align-items:flex-start;gap:10px}
#shClose{margin-left:auto;font-size:22px;min-width:44px;min-height:44px;border-radius:10px}
.sheetbtns{display:flex;gap:10px;margin-top:12px}
.sheetbtns .bigbtn{margin-top:0;flex:1}
/* tour chrome */
#tourBar{position:fixed;left:50%;transform:translateX(-50%);bottom:64px;z-index:55;background:var(--ink);color:#fff;border-radius:16px;padding:14px 18px;max-width:660px;width:calc(100% - 32px);box-shadow:0 16px 44px rgba(0,0,0,.35)}
#tourBar[hidden]{display:none}
#tourBar .tt{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--gold)}
#tourNarr{font-size:15px;margin:5px 0 10px}
#tourProg{height:4px;background:#3A342D;border-radius:99px;overflow:hidden;margin-bottom:10px}
#tourProgIn{height:100%;background:var(--gold);width:0;transition:width .3s}
.tourbtns{display:flex;gap:8px;flex-wrap:wrap}
.tbtn{border:1.5px solid #ffffff55;border-radius:9px;padding:8px 13px;font-weight:800;color:#fff;min-height:44px}
.tbtn.pri{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.tbtn:disabled{opacity:.35;cursor:not-allowed}
.halo{outline:3px solid var(--gold);outline-offset:3px;border-radius:12px;animation:halop 1.2s infinite}
@keyframes halop{50%{outline-color:#C9A86A66}}
#endOv{position:fixed;inset:0;background:rgba(32,29,26,.62);z-index:56;display:flex;align-items:center;justify-content:center;padding:16px}
#endOv[hidden]{display:none}
#endCard{background:var(--card);border-radius:20px;max-width:520px;width:100%;padding:26px;text-align:center}
#endCard h2{font-size:23px;margin:8px 0}
/* footer + self-test + banners + toast */
footer{padding:14px 16px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--card)}
footer small{color:var(--mut)}
#selfBtn{border:1.5px solid var(--ink);border-radius:10px;padding:10px 16px;font-weight:800;min-height:44px}
#selfOverlay{position:fixed;inset:0;background:rgba(32,29,26,.45);z-index:57;display:flex;align-items:center;justify-content:center;padding:16px}
#selfOverlay[hidden]{display:none}
#selfPanel{background:var(--card);border-radius:16px;max-width:680px;width:100%;max-height:88vh;overflow:auto;padding:20px}
#selfPanel .tc{display:flex;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px;align-items:baseline}
#selfPanel .tc b{white-space:nowrap}
.pill{font-size:11px;font-weight:800;border-radius:999px;padding:2px 10px;white-space:nowrap}
.pill.PASS{background:#DFEDE4;color:var(--ok)}.pill.FAIL{background:#F3DBD7;color:var(--wine)}.pill.MANUAL{background:var(--soft);color:var(--mut)}
#selfSummary{font-weight:800;margin:10px 0}
#restoreBanner{position:fixed;top:0;left:0;right:0;z-index:60;background:var(--ink);color:#fff;padding:10px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
#restoreBanner[hidden]{display:none}
#restoreBanner .mini{border-color:#fff;background:transparent;color:#fff}
#hintBar{background:var(--ink);color:#fff;padding:10px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:14px}
#hintBar[hidden]{display:none}
#hintBar .tbtn{margin-left:auto}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:12px;font-weight:700;z-index:70;box-shadow:0 8px 30px rgba(0,0,0,.3);max-width:calc(100% - 32px);text-align:center}
#toast[hidden]{display:none}

/* ── kit-only additions (not yet used by the two original demos) ── */
/* honest status chips — LIVE / INTERACTIVE DEMO / IN DESIGN */
.schip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.05em;border-radius:999px;padding:5px 12px;white-space:nowrap}
.schip .szh{font-weight:700;opacity:.75}
.schip::before{content:"";width:7px;height:7px;border-radius:99px;background:currentColor}
.schip.chip-live{background:#DFEDE4;color:var(--ok)}
.schip.chip-demo{background:#F6E8D2;color:#7A5210}
.schip.chip-design{background:var(--card);color:var(--warn);border:1.5px dashed var(--warn)}
.schip.chip-design::before{background:transparent;border:1.5px solid currentColor}
/* device frames (desktop chrome; ≤980px demos render bare full-bleed) */
.devframe{position:relative;background:var(--card);border:2px solid var(--ink);border-radius:22px;box-shadow:0 16px 38px rgba(32,29,26,.16);overflow:hidden}
.devframe .dfbar{display:flex;gap:5px;align-items:center;background:var(--ink);color:#fff;font-size:11px;font-weight:700;padding:7px 12px}
.devframe .dfbar i{width:9px;height:9px;border-radius:99px;background:#ffffff66;display:inline-block}
.devframe.f-phone{max-width:400px;border-radius:30px}
.devframe.f-phone .dfbar{justify-content:center}
.devframe.f-tablet{max-width:900px;min-height:600px}
.devframe.f-laptop{max-width:1100px;border-radius:14px}
.devframe .dfbody{padding:0}
@media (max-width:980px){.devframe{border-radius:0;border:none;box-shadow:none;max-width:none!important}.devframe .dfbar{display:none}}
