/* My Kitchen Lab · additions on top of the prototype CSS (base.css) */
.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:#1c1818;color:#fff;padding:10px 16px;border-radius:10px;font-size:.9rem;z-index:80;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:min(92vw,420px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.jerr{color:var(--red);font-weight:600;font-size:.88rem;min-height:1.2em;margin:10px 0 0}
.sndbtn{width:100%;margin-bottom:10px;min-height:46px}
.gcancel{text-align:center;margin:10px 0 0}
a.btn{display:inline-block;text-decoration:none}
.row2{display:flex;justify-content:space-between;align-items:center;gap:8px}
/* guest on desktop: phone frame only, centred */
@media(min-width:960px){body.guest .stage{grid-template-columns:400px}}

/* ---------- Restaurant live: always bright, never dark ---------- */
.card.scene{background:linear-gradient(#fff8ee,#fff1df);color:#3a2a20;border-color:#f3d9bd}
.card.scene .mute{color:#8a6a55}
.card.scene .lvh b{color:#c8202f}
.scbox{border-radius:12px;background:radial-gradient(120% 90% at 50% 10%,#fffaf2,#ffe9d2);margin-top:6px;overflow:hidden;min-height:120px}
.scpills{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 4px}
.scp{background:#fff;color:#3a2a20;border:1px solid #f0d6bb;border-radius:99px;padding:3px 10px;font-size:.72rem;font-weight:700;box-shadow:0 2px 6px #c8202f14}
.scp.live{color:#c8202f;letter-spacing:.06em}
.scp.live::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#e33;margin-right:5px;vertical-align:1px;animation:blink 1.1s infinite}
.scene .slg{color:#6b4e3d;margin-top:6px}
.sccoin{transform-box:fill-box;transform-origin:center;animation:scCoin 1.6s linear infinite}
@keyframes scCoin{0%{transform:scaleX(1)}25%{transform:scaleX(.15)}50%{transform:scaleX(-1)}75%{transform:scaleX(.15)}100%{transform:scaleX(1)}}
.scbird{animation:scBird 9s linear infinite}
@keyframes scBird{0%{transform:translate(-6px,8px)}50%{transform:translate(18px,0)}100%{transform:translate(40px,14px)}}
.scwing{transform-box:fill-box;transform-origin:center;animation:scWing .35s ease-in-out infinite alternate}
@keyframes scWing{to{transform:scaleY(-.6)}}
.scring{animation:scRing 6s linear infinite}
@keyframes scRing{to{stroke-dashoffset:-28}}
.scnum{animation:scGlow 2s ease-in-out infinite}

/* ---------- admin layout (no phone frame) ---------- */
body.adm{overflow:auto;height:auto;min-height:100%}
body.adm .wrap{max-width:980px;margin:0 auto;padding:12px 14px 60px}
body.adm header{max-width:none}
body.adm .seg{display:flex}
.offline{display:none;background:#f2b134;color:#2b1d00;font-size:.72rem;font-weight:700;border-radius:99px;padding:3px 10px}
.offline.on{display:inline-block}
.who-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.8rem}
.who-bar select{width:auto;padding:6px 8px}
.login{max-width:400px;margin:30px auto}
/* floor plan */
.fp{width:100%;height:auto;display:block;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.fp .tb{cursor:pointer;outline:none}
.fp .tb:focus-visible .tr{stroke-width:4;stroke:#f2672b}
.fp .tb:hover .tr{filter:brightness(1.03)}
.fp text{font-family:Inter,system-ui,sans-serif}
.fp .tl2{font:400 15px 'Bebas Neue',Impact,'Arial Narrow',sans-serif;letter-spacing:.03em}
.fp .ln{font-size:9.5px;font-weight:600;fill:var(--ink)}
.fp .tmr{font-size:9px;font-weight:700}
.fp .onway{animation:fpPulse 1.1s ease-in-out infinite}
@keyframes fpPulse{0%,100%{opacity:.25}50%{opacity:1}}
.chips2{display:flex;flex-wrap:wrap;gap:8px}
.lchip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);border-radius:99px;padding:8px 14px;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;min-height:44px}
.lchip.hold{border-color:var(--red);box-shadow:0 0 0 2px #9b111e22}
.lchip small{font-weight:600;color:var(--mute)}
.sheet .acts{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.sheet .acts .btn{width:100%;min-height:48px}
.sheet .acts a.btn{text-align:center}
.cdown{font-size:1.05rem;font-weight:700;margin:10px 0 0}
.gbox{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:10px;font-size:.92rem}
.nrow .step b{min-width:70px}
.adm .kv b .mute{font-weight:400}
.pill2{display:inline-block;font-size:.7rem;font-weight:700;border-radius:99px;padding:2px 9px;background:var(--bg);border:1px solid var(--line)}
/* super admin */
.rcard{margin-top:12px}
.rcard h3{margin:0;font:400 1.6rem 'Bebas Neue',Impact,sans-serif;color:var(--red)}
.rmeta{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.qr{width:120px;height:120px;background:#fff;border-radius:8px;padding:6px}
.qr svg,.qr img{width:100%;height:100%}
.secret{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;word-break:break-all;background:var(--bg);padding:8px;border-radius:8px;border:1px dashed var(--line)}
.lnkrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lnkrow code{font-size:.78rem;word-break:break-all}
@media(prefers-reduced-motion:reduce){.fp .onway{opacity:.7}}
body.adm header{flex-wrap:wrap;row-gap:8px}
body.adm .hr{flex-wrap:wrap;justify-content:flex-end}
body.adm .hr select{width:auto;max-width:160px;padding:8px}
.ahint{font-size:.82rem;color:var(--mute);text-align:center;margin:10px 4px 0}.ahint.on{color:#0b6b3d;font-weight:600}
body.ready .ahint.on{color:#06281a}
.abtn{margin-top:10px}

/* accessibility: brand is the page heading; red text readable on dark backgrounds */
h1.brand{margin:0;font-weight:400;line-height:1.1}
:root[data-theme="dark"]{--redt:#ff7a83}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--redt:#ff7a83}}
:root[data-theme="dark"] :where(h2,.lvh b,nav button.on,.brand,.lnk.red,.wrow.hold .tk,.arch b,.sech h2,.tn,.mb,.msh i,.fc:not(.on),.chv),
:root:not([data-theme="light"]) :where(h2,.lvh b,nav button.on,.brand,.lnk.red,.wrow.hold .tk,.arch b,.sech h2,.tn,.mb,.msh i,.chv){color:var(--redt,var(--red))}
:root[data-theme="dark"] .mb.on{color:#fff}
.card.scene .lvh b{color:#c8202f!important}
.uc.back{color:#ff4d5a}
.obar .mute,.pad .mute{color:#5f564f}
.rate{margin-top:10px;text-align:center}
.stars{display:flex;justify-content:center;gap:4px;margin:6px 0 4px}
.stars button{background:none;border:0;font-size:2rem;line-height:1;color:var(--line);cursor:pointer;min-width:44px;min-height:44px}
.stars button.on{color:#f2b134}
.rate textarea,.sheet textarea{width:100%;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}
.rate label{text-align:left}
.fbitem{padding:8px 0;border-bottom:1px dashed var(--line);font-size:.85rem}.fbitem:last-child{border:0}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* TABLE READY (green) screen: readable in light and dark mode */
body.ready{--mute:#053a22;--panel:#e9fbf1;--line:#9fdcbc}
:root[data-theme="dark"] body.ready :is(h2,.lvh b,nav button.on,.lnk.red,.arch b,.sech h2,.mb,.msh i,.chv){color:var(--red)}
:root[data-theme="dark"] body.ready :is(.brand,h1.brand){color:#06281a}
:root[data-theme="dark"] body.ready .mb.on{color:#fff}
:root[data-theme="dark"] :where(h3,.rcard h3){color:var(--redt,var(--red))}
