/* LimnPOS platform UI. Brand colors/fonts come from the brands table via CSS vars (--brand, --brand-ink, --accent, --brand-dark, --font-head, --font-body). */
:root,[data-theme=light]{--bg:#f5f7fb;--panel:#fff;--panel2:#f0f3f8;--line:#e2e7ef;--tx:#141a26;--mut:#5d6779;--ok:#0f8a5f;--okbg:#e6f6ef;--warn:#9a6200;--warnbg:#fff4dc;--err:#b42318;--errbg:#fdecea;--shadow:0 1px 2px rgba(16,24,40,.06),0 4px 16px rgba(16,24,40,.05);color-scheme:light}
[data-theme=dark]{--bg:#0b1020;--panel:#121a2e;--panel2:#18223a;--line:#24314f;--tx:#e8edf7;--mut:#97a3bc;--ok:#3fd19b;--okbg:#0f2e25;--warn:#f5b84a;--warnbg:#33270e;--err:#ff8a7f;--errbg:#3a1714;--shadow:0 1px 2px rgba(0,0,0,.4);color-scheme:dark}
:root{--brand:#1a6dff;--brand-ink:#fff;--accent:#00c2e8;--brand-dark:#0a1328;--font-head:system-ui,sans-serif;--font-body:system-ui,sans-serif;--r:12px}
*{box-sizing:border-box}html,body{margin:0}body{font:15px/1.5 var(--font-body);background:var(--bg);color:var(--tx)}
h1,h2,h3{font-family:var(--font-head);line-height:1.2;margin:0 0 .5em}h2{font-size:18px}h3{font-size:15px}a{color:var(--brand)}[data-theme=dark] a{color:var(--accent)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--tx);font:700 18px var(--font-head)}.logo img{height:30px;width:auto}.logo span{display:none}
.logo-d{display:none}[data-theme=dark] .logo-l{display:none}[data-theme=dark] .logo-d{display:block}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;background:var(--brand);color:var(--brand-ink);font:600 14px var(--font-body);padding:10px 16px;border-radius:10px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.05)}.btn.ghost{background:transparent;color:var(--tx);border-color:var(--line)}.btn.sm{padding:6px 12px;font-size:13px}.btn.danger{background:var(--err);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}
.theme-btn{border:1px solid var(--line);background:var(--panel);color:var(--tx);border-radius:999px;padding:6px 12px;cursor:pointer;font:500 13px var(--font-body)}
.ico-sun{display:none}[data-theme=dark] .ico-sun{display:inline}[data-theme=dark] .ico-moon{display:none}
input,select,textarea{width:100%;font:inherit;color:var(--tx);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}textarea{font:13px/1.45 ui-monospace,Menlo,monospace;min-height:110px}
input:focus,select,textarea:focus{outline:none}input:focus,textarea:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--brand)}label{display:block;font-weight:600;font-size:13px;margin:0 0 6px}.field{margin-bottom:14px}.hint{color:var(--mut);font-size:12.5px;margin-top:4px;font-weight:400}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:16px;background:var(--okbg);color:var(--ok);font-weight:500}.flash.err{background:var(--errbg);color:var(--err)}.flash.warn{background:var(--warnbg);color:var(--warn)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.card>h2:first-child{margin-bottom:12px}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}.stat b{display:block;font:800 30px var(--font-head)}.stat span{color:var(--mut);font-size:13px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);font-weight:600}
.pill{display:inline-block;white-space:nowrap;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--panel2);color:var(--mut)}.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.err{background:var(--errbg);color:var(--err)}
.mut{color:var(--mut)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:13px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}.inline{display:inline}
/* console */
.console{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.side{background:var(--panel);border-right:1px solid var(--line);padding:20px 14px;min-height:100vh}.side .logo{padding:4px 10px 6px}.side-tag{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);padding:0 10px 14px;border-bottom:1px solid var(--line);margin-bottom:10px}
.side nav a{display:block;padding:9px 12px;border-radius:9px;color:var(--tx);text-decoration:none;font-weight:500;font-size:14px;margin-bottom:2px}.side nav a:hover{background:var(--panel2)}.side nav a.on{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--tx);font-weight:700;box-shadow:inset 3px 0 0 var(--brand)}
.top{display:flex;align-items:center;gap:16px;padding:16px 28px;border-bottom:1px solid var(--line);background:var(--panel)}.top h1{font-size:22px;margin:0}.top-r{margin-left:auto;display:flex;align-items:center;gap:14px}
.who{display:flex;flex-direction:column;line-height:1.2;text-align:right}.who small{color:var(--mut);font-size:12px}.content{padding:24px 28px;max-width:1240px}
/* public/auth */
.pub{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(900px 480px at 80% -10%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 60%),var(--bg)}
.pub-top{display:flex;align-items:center;justify-content:space-between;padding:20px 32px}.pub-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.pub-foot{text-align:center;color:var(--mut);font-size:13px;padding:20px}
.auth{width:100%;max-width:420px}.auth .card{padding:30px}.auth h1{font-size:26px}.auth .sub{color:var(--mut);margin:0 0 20px}.auth .btn{width:100%;justify-content:center;padding:12px}.auth .links{display:flex;justify-content:space-between;margin-top:16px;font-size:14px}
.placeholder{max-width:720px;text-align:center}.placeholder h1{font-size:44px}
/* payments */
.envs{display:grid;grid-template-columns:1fr 1fr;gap:18px}.env-h{display:flex;align-items:center;gap:10px;margin-bottom:14px}.env-h h2{margin:0}
.masked{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--panel2);border:1px dashed var(--line);border-radius:10px;font-family:ui-monospace,Menlo,monospace;font-size:13px}
.toggle-card{display:flex;align-items:center;gap:18px}.switch{position:relative;width:52px;height:30px;flex:none}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:var(--line);border-radius:99px;transition:.2s;cursor:pointer}.switch span:before{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:var(--ok)}.switch input:checked+span:before{transform:translateX(22px)}
.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}
@media (max-width:900px){.console{grid-template-columns:1fr}.side{position:static;height:auto}.g2,.g3,.g4,.envs{grid-template-columns:1fr}}
a.btn,[data-theme=dark] a.btn{color:var(--brand-ink)}a.btn.ghost,[data-theme=dark] a.btn.ghost{color:var(--tx)}
.demobar{display:flex;align-items:center;gap:12px;padding:10px 28px;background:var(--warnbg);color:var(--tx);border-bottom:1px solid var(--line);font-size:14px;flex-wrap:wrap}
.side-demo{display:block;margin:0 0 10px;padding:9px 12px;border-radius:9px;background:var(--warnbg);color:var(--warn)!important;font-weight:600;font-size:13px;text-decoration:none}
.pos{display:grid;grid-template-columns:1fr 380px;gap:18px;align-items:start}.cat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.cat-tabs button.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.tile{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:14px;text-align:left;cursor:pointer;color:var(--tx);font:inherit;min-height:86px;display:flex;flex-direction:column;justify-content:space-between}
.tile:hover{border-color:var(--brand)}.tile b{font-size:14px}.tile span{color:var(--mut);font-size:13px}.ticket{position:sticky;top:12px}.ticket ul{list-style:none;margin:0 0 12px;padding:0;max-height:340px;overflow:auto}.ticket li{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.ticket li .x{margin-left:auto;border:0;background:none;color:var(--mut);cursor:pointer;font-size:16px}.tot{display:flex;justify-content:space-between;font-size:14px;padding:3px 0}.tot.big{font:800 22px var(--font-head);padding-top:8px}
.paytypes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.paytypes label{border:1px solid var(--line);border-radius:9px;padding:8px;text-align:center;cursor:pointer;font-weight:500;margin:0}.paytypes input{display:none}.paytypes input:checked+span{color:var(--brand);font-weight:700}
.bar{height:8px;border-radius:4px;background:var(--brand);min-width:2px}
#lines .mods{margin-top:6px;padding:7px 10px;font-size:13px}.send-k{display:flex;align-items:center;gap:8px;margin:10px 0;font-weight:600}.send-k input{width:auto}
.onl{max-width:760px;margin:0 auto}.onl-it{display:flex;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.onl-it>div{flex:1}.onl-it input[name^=note]{margin-top:6px;padding:7px 10px;font-size:13px}.onl-it input[type=number]{width:84px;min-height:46px;text-align:center;font-size:17px}.onl-foot{position:sticky;bottom:0;background:var(--panel);padding-top:14px;margin-top:10px}
/* ===== Register (tablet POS) ===== */
.reg{display:grid;grid-template-columns:132px minmax(0,1fr) 400px;gap:16px;align-items:start;margin:-6px 0 18px}
.reg-rail{display:flex;flex-direction:column;gap:8px;position:sticky;top:12px;max-height:calc(100vh - 120px);overflow:auto;padding-bottom:4px}
.rail-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;min-height:84px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--tx);font:600 13px/1.2 var(--font-body);cursor:pointer;text-align:center;transition:transform .12s,background .15s,border-color .15s;touch-action:manipulation}
.rail-ico{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font:800 16px var(--font-head);color:#fff;background:linear-gradient(135deg,hsl(var(--h,220) 70% 55%),hsl(calc(var(--h,220) + 40) 70% 42%))}
.rail-btn.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);box-shadow:0 6px 18px color-mix(in srgb,var(--brand) 35%,transparent)}.rail-btn.on .rail-ico{background:rgba(255,255,255,.22)}
.reg-search input{min-height:50px;font-size:16px;border-radius:14px;padding-left:16px;margin-bottom:14px}
.reg .tiles{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:14px}
.reg .tile{position:relative;padding:0;min-height:0;overflow:hidden;border-radius:16px;display:flex;flex-direction:column;justify-content:flex-start;text-align:left;box-shadow:var(--shadow);transition:transform .12s ease,box-shadow .15s,border-color .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.reg .tile:active,.pop{animation:pop .22s ease}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(.95)}100%{transform:scale(1)}}
.reg .tile.in{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}
.tile-img{display:block;aspect-ratio:1/1;width:100%;background:var(--panel2);overflow:hidden}.tile-img img{width:100%;height:100%;object-fit:cover;display:block}
.tile-img.fb,.thumb.fb{display:grid;place-items:center;background:radial-gradient(120% 90% at 20% 10%,hsl(var(--h) 85% 72%),transparent 60%),linear-gradient(140deg,hsl(var(--h) 70% 52%),hsl(calc(var(--h) + 45) 65% 34%))}
.tile-img.fb i,.thumb.fb i{font:800 46px var(--font-head);font-style:normal;color:rgba(255,255,255,.92);text-shadow:0 2px 10px rgba(0,0,0,.18)}
.tile-t{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px}.reg .tile-t b{font-size:15px;line-height:1.25}.reg .tile-t span{color:var(--mut);font-weight:600;font-size:14px}
.tile-n:not(:empty){position:absolute;top:8px;right:8px;min-width:30px;height:30px;padding:0 8px;border-radius:99px;background:var(--brand);color:var(--brand-ink);font:800 15px/30px var(--font-head);text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.reg-order{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow);position:sticky;top:12px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 24px);overflow:auto}
.ord-h{display:flex;align-items:center;gap:8px}.ord-h h2{margin:0;flex:1}.ord-close{display:none}
.ord-meta{gap:8px}.ord-meta input,.ord-meta select{min-height:46px}.ord-meta select{max-width:130px}
.lines{list-style:none;margin:0;padding:0;min-height:90px}.lines-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--mut);padding:26px 0;font-weight:500}.lines-empty span{font-size:30px;opacity:.6}
.line{padding:8px 0;border-bottom:1px solid var(--line)}.line-r{display:flex;align-items:center;gap:10px}.line-n{flex:1;font-weight:600;font-size:15px}.line-p{font-weight:700;font-variant-numeric:tabular-nums}
.line .x{border:0;background:none;color:var(--mut);cursor:pointer;font-size:22px;width:36px;height:40px}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden}.qty button{width:38px;height:40px;border:0;background:var(--panel2);color:var(--tx);font:700 18px var(--font-body);cursor:pointer}.qty b{min-width:30px;text-align:center}
.line .mods{margin-top:6px;padding:8px 10px;font-size:13px;border-style:dashed}
.adj{border:1px solid var(--line);border-radius:12px;padding:0 12px;margin-bottom:8px}.adj summary{display:flex;justify-content:space-between;padding:12px 0;cursor:pointer;font-weight:700;list-style:none;min-height:46px;align-items:center}.adj summary::-webkit-details-marker{display:none}.adj[open]{padding-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chip{min-height:42px;min-width:56px;padding:6px 14px;border-radius:99px;border:1px solid var(--line);background:var(--panel2);color:var(--tx);font:700 14px var(--font-body);cursor:pointer;touch-action:manipulation}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.inl{display:flex;align-items:center;gap:8px;font-weight:600;margin:0}.inl input{max-width:130px}
.tots{border-top:1px solid var(--line);padding-top:8px}.tot.disc span:last-child{color:var(--ok);font-weight:700}.tot.big{font-size:26px}
.tender{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.tender label{margin:0;cursor:pointer}.tender input{position:absolute;opacity:0;pointer-events:none}
.tender span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;min-height:60px;justify-content:center;border:1px solid var(--line);border-radius:12px;font:700 12px var(--font-body);background:var(--panel)}.tender i{font-style:normal;font-size:20px}
.tender input:checked+span{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--panel));box-shadow:0 0 0 1px var(--brand)}.tender input:focus-visible+span{outline:2px solid var(--accent)}
.pay-x{background:var(--panel2);border-radius:12px;padding:12px}.pay-x label{font-weight:700;margin-bottom:6px;display:block}.change{margin-top:8px;font-size:15px}.change b{font-size:20px;color:var(--ok)}.err{color:var(--err);font-weight:700}
.split-row{gap:8px;margin-bottom:8px;align-items:center}.split-row select{max-width:130px}.split-row .x{border:0;background:none;color:var(--mut);font-size:22px;cursor:pointer}
.pay-btn{width:100%;justify-content:center;min-height:64px;font:800 21px var(--font-head);border-radius:16px;box-shadow:0 8px 22px color-mix(in srgb,var(--brand) 35%,transparent)}.pay-btn:disabled{box-shadow:none}
.pay-btn.loading{opacity:.8}.pay-note{text-align:center;font-size:12px;margin:0}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.keypad button{min-height:58px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--tx);font:700 22px var(--font-head);cursor:pointer}
.big-btn{width:100%;justify-content:center;min-height:54px;font-size:17px}.open-card{max-width:520px}
.sheet-bar{display:none}.recent .tbl{overflow:auto}
.empty{text-align:center;padding:48px 20px;border:2px dashed var(--line);border-radius:18px;background:var(--panel)}.empty-ico{font-size:38px}.empty h3{margin:8px 0 4px}
@media (max-width:1366px){.reg{grid-template-columns:108px minmax(0,1fr) 360px}.reg .tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
@media (max-width:1000px){.reg{grid-template-columns:1fr}.reg-rail{flex-direction:row;position:sticky;top:0;z-index:4;overflow-x:auto;max-height:none;background:var(--bg);padding:6px 0;margin:0 -4px}.rail-btn{flex:none;flex-direction:row;min-height:52px;padding:8px 14px}.rail-ico{width:28px;height:28px;font-size:13px}
 .reg-order{position:fixed;inset:auto 0 0 0;top:auto;max-height:88vh;border-radius:22px 22px 0 0;z-index:30;transform:translateY(105%);transition:transform .25s ease;box-shadow:0 -10px 40px rgba(0,0,0,.25)}.sheet-open .reg-order{transform:none}.ord-close{display:inline-flex}
 .sheet-bar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:20;align-items:center;gap:12px;min-height:62px;padding:0 20px;border:0;border-radius:16px;background:var(--brand);color:var(--brand-ink);font:700 16px var(--font-body);box-shadow:0 10px 30px rgba(0,0,0,.25);cursor:pointer}.sheet-bar b{font:800 20px var(--font-head);margin-right:auto}
 .sheet-open .sheet-bar{display:none}.reg-menu{padding-bottom:84px}}
@media (max-width:560px){.reg .tiles{grid-template-columns:repeat(2,1fr);gap:10px}.tender{grid-template-columns:repeat(3,1fr)}}
/* ===== Responsive console: off-canvas nav ===== */
.menu-btn{display:none;border:1px solid var(--line);background:var(--panel);color:var(--tx);border-radius:12px;min-width:46px;min-height:46px;font-size:20px;cursor:pointer}
@media (max-width:1180px){.console{display:block}.side{position:fixed;inset:0 auto 0 0;width:270px;z-index:50;transform:translateX(-100%);transition:transform .22s ease;overflow:auto;height:100vh;box-shadow:0 0 40px rgba(0,0,0,.25)}.nav-open .side{transform:none}.menu-btn{display:inline-grid;place-items:center}
 .nav-scrim{display:none}.nav-open .nav-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:45}.top{padding:12px 16px;gap:10px;position:sticky;top:0;z-index:15}.top h1{font-size:19px}.content{padding:16px}.who small{display:none}}
@media (max-width:640px){.who{display:none}.top .ico-moon,.top .ico-sun{font-size:0}.top .ico-moon:before{content:"☾";font-size:15px}.top .ico-sun:before{content:"☀";font-size:15px}.top-r{gap:8px}}
.side nav a{min-height:44px;display:flex;align-items:center}
/* ===== Receipt ===== */
.rcpt-wrap{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:24px;align-items:start}.rcpt{background:#fff;color:#141a26;border-radius:6px;padding:26px 24px;font:14px/1.5 ui-monospace,Menlo,monospace;box-shadow:var(--shadow);position:relative}
.rcpt:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:10px;background:linear-gradient(-45deg,transparent 7px,#fff 0) 0 0/14px 10px,linear-gradient(45deg,transparent 7px,#fff 0) 0 0/14px 10px}
.rcpt h2{font:800 20px var(--font-head);text-align:center;margin:0}.rcpt .c{text-align:center;color:#5d6779}.rcpt hr{border:0;border-top:1px dashed #b9c1cf;margin:12px 0}.rcpt .r{display:flex;justify-content:space-between;gap:10px}.rcpt .m{color:#b42318;font-size:12px;padding-left:22px}.rcpt .big{font-weight:800;font-size:17px}
.done{display:flex;flex-direction:column;gap:14px}.done-ok{display:flex;gap:14px;align-items:center}.done-ok i{width:58px;height:58px;border-radius:50%;background:var(--okbg);color:var(--ok);display:grid;place-items:center;font:800 30px var(--font-head);font-style:normal}
.done .btn{min-height:56px;justify-content:center;font-size:17px}
@media (max-width:900px){.rcpt-wrap{grid-template-columns:1fr}}
@media print{.side,.top,.done,.demobar,.nav-scrim{display:none!important}.console{display:block}.rcpt{box-shadow:none}.content{padding:0}}
/* ===== Catalog ===== */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.cat-it{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.thumb{display:block;aspect-ratio:4/3;background:var(--panel2);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.cat-it .b{padding:12px 14px;display:flex;flex-direction:column;gap:4px;flex:1}.cat-it .b .row{justify-content:space-between;align-items:center}
.cat-it.off{opacity:.55}.cat-edit{padding:0 14px 14px}.cat-edit .field{margin-bottom:8px}.drop{display:flex;align-items:center;gap:12px;border:2px dashed var(--line);border-radius:12px;padding:12px;cursor:pointer}.drop input{border:0;padding:0;background:none}
.prev{width:64px;height:64px;border-radius:10px;object-fit:cover;flex:none;background:var(--panel2)}
.onl-th{width:76px;height:76px;aspect-ratio:auto;border-radius:12px;flex:none}.onl-th.fb i{font-size:28px}
.reg-order>*{flex-shrink:0}.onl-it input[type=number]{width:68px}
.tot[hidden]{display:none}.reg-order .pay-btn{position:sticky;bottom:0;z-index:2}
/* ===== Auth: set password, demo buttons ===== */
.set-pw{display:flex;flex-direction:column;gap:2px;margin:16px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--tx);background:var(--panel2);min-height:56px;transition:border-color .15s}.set-pw:hover{border-color:var(--brand)}.set-pw b{color:var(--brand)}[data-theme=dark] .set-pw b{color:var(--accent)}.set-pw span{font-size:13px;color:var(--mut)}
.demo-login{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}.demo-h{font-weight:700;font-size:14px;margin-bottom:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.demo-grid form{margin:0}.demo-btn{width:100%;min-height:68px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--tx);cursor:pointer;display:flex;flex-direction:column;gap:2px;font:inherit;transition:border-color .15s,transform .1s}.demo-btn:hover{border-color:var(--brand)}.demo-btn:active{transform:scale(.98)}.demo-btn b{font-size:15px}.demo-btn span{font-size:12px;color:var(--mut);line-height:1.3}
.btn.loading{opacity:.75;cursor:progress}
.pw-wrap{position:relative}.pw-wrap input{padding-right:70px}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--brand);font-weight:700;cursor:pointer;min-height:40px;padding:0 10px}
.meter{height:6px;border-radius:99px;background:var(--panel2);margin-top:8px;overflow:hidden}.meter i{display:block;height:100%;width:0;transition:width .2s,background .2s;background:var(--err)}.meter i.s2{background:var(--warn)}.meter i.s3,.meter i.s4{background:var(--ok)}.meter-l{font-size:12px;color:var(--mut);margin-top:4px}
.rules{list-style:none;padding:0;margin:0 0 14px;font-size:13px;color:var(--mut)}.rules li{padding:3px 0 3px 24px;position:relative}.rules li:before{content:"○";position:absolute;left:4px}.rules li.ok{color:var(--ok)}.rules li.ok:before{content:"✓";font-weight:800}
.okt{color:var(--ok)!important}.errt{color:var(--err)!important}.sent-ico{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;font-size:28px;background:color-mix(in srgb,var(--brand) 15%,transparent);margin-bottom:12px}
@media (max-width:420px){.demo-grid{grid-template-columns:1fr}}
.nav-scrim{display:none}@media (max-width:1180px){.nav-open .nav-scrim{display:block}}

/* demo controls */
.ind-card{margin:0;cursor:pointer;transition:border-color .15s,box-shadow .15s}.ind-card:hover{border-color:var(--brand)}.ind-card.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}
.demo-cta{border-color:var(--brand);background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 10%,var(--panel)),var(--panel))}.demo-cta .btn{min-height:44px}
.demo-user{display:block;margin-top:4px;font:12px ui-monospace,monospace;color:var(--mut);word-break:break-all}.demo-pw{margin-top:10px;font-size:13px;text-align:center}.demo-pw code{font-weight:700;padding:2px 6px;border-radius:6px;background:var(--panel);border:1px solid var(--line)}
/* ---------- modifier sheet (register + online) ---------- */
body.mp-open{overflow:hidden}
.mp-scrim{position:fixed;inset:0;background:rgba(6,10,22,.55);backdrop-filter:blur(3px);z-index:80;animation:mpf .18s ease}
.mp-sheet{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 32px));max-height:min(88vh,980px);display:flex;flex-direction:column;background:var(--panel);color:var(--tx);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.35);animation:mpu .22s cubic-bezier(.2,.9,.3,1.2)}
@keyframes mpf{from{opacity:0}}@keyframes mpu{from{opacity:0;transform:translate(-50%,-46%) scale(.98)}}
.mp-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 12px;border-bottom:1px solid var(--line)}.mp-h h2{margin:0;font:800 24px/1.15 var(--font-head)}
.mp-x{width:48px;height:48px;border-radius:14px;border:1px solid var(--line);background:var(--panel2,var(--panel));color:var(--tx);font-size:20px;cursor:pointer;flex:none}
.mp-b{overflow:auto;padding:6px 22px 18px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.mp-g{padding:16px 0 4px;border-bottom:1px dashed var(--line);border-radius:12px}.mp-g:last-child{border-bottom:0}
.mp-gh{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.mp-gh h3{margin:0;font:700 17px var(--font-head)}
.mp-rule{font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--mut);background:var(--panel2,transparent);border:1px solid var(--line);padding:4px 10px;border-radius:999px;white-space:nowrap}
.mp-rule.req{color:var(--warn);background:var(--warnbg);border-color:transparent}.mp-g.ok .mp-rule.req{color:var(--ok);background:var(--okbg)}.mp-g.ok .mp-rule.req::before{content:"✓ "}
.mp-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.mp-o{position:relative;min-height:60px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;text-align:left;padding:10px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--bg);color:var(--tx);font:600 15px/1.2 var(--font-body);cursor:pointer;transition:transform .08s,border-color .12s,background .12s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.mp-o:active{transform:scale(.97)}.mp-o .mp-p{font-size:13px;font-weight:700;color:var(--mut)}
.mp-o.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 14%,var(--panel));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 40%,transparent)}.mp-o.on .mp-p{color:var(--tx)}
.mp-o.on::after{content:"✓";position:absolute;top:8px;right:10px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:13px;background:var(--brand);color:var(--brand-ink)}
.mp-o.no .mp-on{color:var(--err)}.mp-o.no.on{border-color:var(--err);background:var(--errbg);box-shadow:0 0 0 2px color-mix(in srgb,var(--err) 35%,transparent)}.mp-o.no.on::after{background:var(--err);color:#fff;content:"✕"}
.mp-oq{display:none;align-items:center;gap:8px;margin-top:4px}.mp-o.on .mp-oq{display:inline-flex}.mp-oq i{font-style:normal;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line);font-size:18px;font-weight:800}.mp-oq b{min-width:16px;text-align:center}
.mp-note{display:flex;flex-direction:column;gap:8px}.mp-note textarea{width:100%;min-height:64px;font:inherit;border-radius:12px;padding:12px;resize:vertical}.mp-np{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--mut)}.mp-np input{width:110px}
.mp-f{display:flex;align-items:center;gap:10px;padding:14px 22px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel);border-radius:0 0 22px 22px}
.mp-qty{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:14px;padding:4px}.mp-qty button{width:46px;height:46px;border-radius:11px;border:0;background:var(--bg);color:var(--tx);font-size:22px;font-weight:800;cursor:pointer}.mp-qty b{min-width:28px;text-align:center;font-size:18px}
.mp-f select{width:auto;min-height:52px}.mp-go{flex:1;min-height:56px;justify-content:space-between;font-size:17px;padding:0 20px}.mp-go.dim{opacity:.75;filter:saturate(.6)}.mp-rm{min-height:56px;color:var(--err)}
.mp-g.need{animation:mpn .9s ease}.mp-g.shake{animation:mps .35s}
@keyframes mpn{0%,100%{background:transparent}30%{background:var(--warnbg)}}@keyframes mps{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.mp-toast{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);background:var(--tx);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:700;opacity:0;pointer-events:none}.mp-toast.show{animation:mpt 1.8s ease}
@keyframes mpt{10%,80%{opacity:1}100%{opacity:0}}
@media (max-width:640px){.mp-sheet{left:0;right:0;top:auto;bottom:0;transform:none;width:100%;max-height:92vh;border-radius:22px 22px 0 0;animation:mpm .25s ease}.mp-f{border-radius:0}.mp-opts{grid-template-columns:1fr 1fr}.mp-f{flex-wrap:wrap}.mp-go{flex-basis:100%;order:9}}
@keyframes mpm{from{transform:translateY(40px);opacity:0}}
/* order lines with modifiers */
.line-edit{background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px}
.line-hint{font-size:11px;font-weight:700;color:var(--brand);text-transform:uppercase;letter-spacing:.04em;opacity:.85}
.line-mods{list-style:none;margin:2px 0 4px 58px;padding:0 0 0 10px;border-left:2px solid var(--line);font-size:13px;color:var(--mut)}.line-mods li{display:flex;justify-content:space-between;gap:8px;padding:1px 0}
.line-mods li.no span:first-child{color:var(--err);font-weight:700}.line-mods li.note span:first-child{font-style:italic;color:var(--tx)}
.tile-mod{position:absolute;left:10px;top:10px;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;backdrop-filter:blur(4px)}
/* receipt modifiers */
.rcpt .m{padding-left:16px;font-size:12px;display:flex;justify-content:space-between;color:#4b5563}.rcpt .m.no span:first-child{font-weight:800;color:#111}
/* catalog modifier editor */
.mg-list{display:grid;gap:12px}.mg{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--panel)}.mg-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mg-h h3{margin:0;font-size:17px}
.mg-opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.mg-opts span{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:4px 10px}.mg-opts span.no{color:var(--err)}
.mg-att{font-size:13px;color:var(--mut);margin-top:8px}
.opt-rows{display:grid;gap:8px}.opt-row{display:grid;grid-template-columns:minmax(140px,2fr) 110px repeat(3,auto) 80px auto;gap:8px;align-items:center}.opt-row label{display:flex;gap:6px;align-items:center;font-size:13px;white-space:nowrap}.opt-row input[type=checkbox]{width:auto}
.att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;max-height:280px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:12px}.att-grid label{display:flex;gap:8px;align-items:center;font-size:14px;min-height:36px;padding:2px 8px;border-radius:8px}.att-grid label:hover{background:var(--bg)}.att-grid input{width:auto}
@media (max-width:700px){.opt-row{grid-template-columns:1fr 1fr}}
.onl-pick{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--tx);border-radius:14px;padding:10px;margin:6px 0;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;font:inherit;min-height:72px}.onl-pick:active{transform:scale(.99)}.onl-tx{flex:1;display:flex;flex-direction:column;gap:2px}.onl-add{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand);color:var(--brand-ink);font-weight:800;font-size:20px}
.onl-cart{list-style:none;margin:0 0 12px;padding:0}.onl-line{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.onl-edit{flex:1;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:44px}.onl-line .line-mods{margin:0;border:0;padding:0}.onl-line .line-mods .no{color:var(--err);font-weight:700}
[hidden]{display:none!important}
/* Register mode on phone/tablet: top bar hidden by default behind the ☰ toggle; denser item grid (fixes 2026-10-19) */
.reg-bar-tog{display:none}
@media (max-width:1024px){
 .reg-mode .reg-bar-tog{display:flex}.reg-bar-tog.on{border-color:var(--brand)}
 .reg-mode:not(.reg-bar-open) .main>.top,.reg-mode:not(.reg-bar-open) .main>.demobar{display:none}
 .reg-mode .content{padding-top:8px}
}
@media (max-width:1000px){.reg-mode .reg-rail{gap:6px}.reg-mode .rail-btn{min-height:44px;padding:6px 10px}}
@media (max-width:560px){
 .reg-mode .content{padding:6px 10px 16px}
 .reg .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .reg .tile{border-radius:12px}.reg .tile-img{aspect-ratio:4/3}.reg .tile-img.fb i{font-size:30px}
 .reg .tile-t{padding:6px 8px 8px!important;font-size:12.5px;line-height:1.25}.reg .tile-t b{font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .reg .tile-mod{font-size:9.5px!important;padding:2px 6px!important;top:5px!important;left:5px!important}
 .reg-search{margin-bottom:8px}.reg-search input{min-height:42px}
 .reg-mode .reg-bar-l{display:none}.reg-mode .reg-bar-tog{padding:6px 12px}
}
/* online order queue + settings */
.oq-list{display:flex;flex-direction:column;gap:10px}.oq{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.oq-a{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}.oq-b,.oq-c{font-size:13.5px}.oq-d{gap:8px}
.oo-hrs input[type=time]{padding:6px 8px;min-width:0}.oo-hrs td,.oo-hrs th{padding:6px 4px}
/* landing page editor */
.se{display:grid;gap:20px;grid-template-columns:1fr}.se-prev{position:sticky;top:12px;align-self:start}.se-prev-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.se-dev{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.se-dev button{border:0;background:var(--panel);color:var(--tx);padding:6px 12px;font:600 13px var(--font-body);cursor:pointer}.se-dev button.on{background:var(--brand);color:var(--brand-ink)}
.se-frame{height:min(78vh,860px);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;position:relative}.se-frame iframe{border:0;transform-origin:0 0;display:block}
.se-tpls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.se-tpl{border:1.5px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;margin:0;font-weight:500}.se-tpl input{position:absolute;opacity:0}.se-tpl:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 20%,transparent)}
.se-tpl small{color:var(--mut);font-size:12px;line-height:1.35}.se-sw{display:flex;height:34px;border-radius:7px;overflow:hidden;margin-bottom:4px}.se-sw i{flex:1}
.tpl-sw-classic .se-sw i:nth-child(1){background:#fbf6ee}.tpl-sw-classic .se-sw i:nth-child(2){background:#8a3b12}.tpl-sw-classic .se-sw i:nth-child(3){background:#3a2a1d}
.tpl-sw-modern .se-sw i:nth-child(1){background:#fff;border:1px solid #e5e7eb}.tpl-sw-modern .se-sw i:nth-child(2){background:#111827}.tpl-sw-modern .se-sw i:nth-child(3){background:#6366f1}
.tpl-sw-bold .se-sw i:nth-child(1){background:#0c0c0e}.tpl-sw-bold .se-sw i:nth-child(2){background:#facc15}.tpl-sw-bold .se-sw i:nth-child(3){background:#17171b}
.se-ta{font:inherit;min-height:0}.se-imgs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.se-imgs figure{margin:0;width:110px}.se-imgs img{width:110px;height:80px;object-fit:cover;border-radius:8px}.se-imgs label{font-weight:500;font-size:12.5px;margin-top:4px}
.se-rev{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:8px}.se-slug{display:flex;align-items:center;gap:4px;flex:1;min-width:240px}.se-slug .mut{font-size:13px;white-space:nowrap}
.se-up{border:1px solid var(--line);border-radius:14px;padding:16px}.se-up h3{margin:0 0 4px;font-size:17px}.se-price{font:800 20px var(--font-head);margin:0 0 6px}
.se-save{position:sticky;bottom:0;background:var(--bg);padding:12px 0;z-index:2}
@media (min-width:1200px){.se{grid-template-columns:minmax(0,1fr) 440px}}
@media (max-width:600px){.se-tpls{grid-template-columns:1fr}}
.pr-tbl input,.pr-tbl textarea{padding:6px 8px}.pr-tbl td{vertical-align:top}
.se>*{min-width:0}.oo-hrs{width:100%;table-layout:fixed}.oo-hrs input[type=time]{width:100%;box-sizing:border-box}
@media(max-width:480px){.oo-hrs th:first-child,.oo-hrs td:first-child{width:44px}.oo-hrs th:last-child,.oo-hrs td:last-child{width:58px}.oo-hrs input[type=time]{padding:6px 2px;font-size:13px}}
