:root{
  --bg:#F2F1ED; --surface:#FFFFFF; --surface-2:#F5F3EE; --ink:#16213A; --ink-2:#5B6378; --line:#DDD8CC;
  --brand:#14213D; --on-brand:#FFFFFF; --brand-soft:#E4E7EF;
  --gold:#B8924A; --gold-2:#D9BD83;
  --seated:#2F7D5B; --on-seated:#FFFFFF;
  --group:#7A2E3A; --on-group:#FFFFFF; --group-soft:#F3E2E4;
  --event:#C9A15B; --on-event:#1D1606; --event-soft:#F5EAD3;
  --bad:#A83A2F; --bad-soft:#F6DCD8;
  --wa:#E3F1E7;
  --shadow:0 1px 2px rgba(20,33,61,.06),0 12px 32px rgba(20,33,61,.10);
  --font-body:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Playfair Display',Georgia,'Times New Roman',serif;
  --col:44px; --ncol:36;
  --exp:#2C6E6A; --on-exp:#FFFFFF; --exp-soft:#DCEDEA;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0C1220; --surface:#141C2E; --surface-2:#1B2539; --ink:#EDEAE2; --ink-2:#A8AEBF; --line:#2A3550;
    --brand:#D9BD83; --on-brand:#14213D; --brand-soft:#2B3450;
    --gold:#D9BD83; --gold-2:#B8924A;
    --seated:#5BC08F; --on-seated:#06220F;
    --group:#D98A96; --on-group:#2A0C12; --group-soft:#3A2230;
    --event:#E2C07E; --on-event:#1D1606; --event-soft:#40361F;
    --bad:#F0948A; --bad-soft:#4A221E; --wa:#1F3A2E;
    --exp:#6CC3BB; --on-exp:#06201E; --exp-soft:#1E3A38;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.4);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
    --bg:#0C1220; --surface:#141C2E; --surface-2:#1B2539; --ink:#EDEAE2; --ink-2:#A8AEBF; --line:#2A3550;
    --brand:#D9BD83; --on-brand:#14213D; --brand-soft:#2B3450;
    --gold:#D9BD83; --gold-2:#B8924A;
    --seated:#5BC08F; --on-seated:#06220F;
    --group:#D98A96; --on-group:#2A0C12; --group-soft:#3A2230;
    --event:#E2C07E; --on-event:#1D1606; --event-soft:#40361F;
    --bad:#F0948A; --bad-soft:#4A221E; --wa:#1F3A2E;
    --exp:#6CC3BB; --on-exp:#06201E; --exp-soft:#1E3A38;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.4);
    color-scheme:dark;
}
html{scroll-padding-top:env(safe-area-inset-top,0px);}
*,*::before,*::after{box-sizing:inherit;}
[hidden]{display:none !important;}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.45 var(--font-body);-webkit-text-size-adjust:100%;}
h1,h2,h3,p{margin:0;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}

/* top bar */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;}
.brand{font:600 22px/1 var(--font-display);letter-spacing:.01em;display:flex;align-items:baseline;flex-wrap:wrap;}
.brand small{font:500 13px var(--font-body);color:var(--gold);margin-left:10px;letter-spacing:.02em;}
.push{margin-left:auto;}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px;}
.seg button{border:0;background:transparent;color:var(--ink-2);font:600 14px var(--font-body);padding:8px 14px;border-radius:999px;cursor:pointer;min-height:36px;}
.seg button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand);}
.seg.full{display:flex;width:100%;}
.seg.full button{flex:1;}
.btn{font:600 14px var(--font-body);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:9px 14px;cursor:pointer;min-height:40px;}
.btn:hover{border-color:var(--brand);}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand);}
.btn.danger{color:var(--bad);border-color:var(--bad);}
.btn.small{padding:5px 10px;min-height:32px;font-size:13px;}
.btn.block{display:block;width:100%;padding:14px;font-size:16px;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}

/* guest app */
.tip{max-width:430px;margin:16px auto 0;padding:0 16px;color:var(--ink-2);font-size:13px;text-align:center;}
.phone{max-width:430px;margin:12px auto 32px;background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;position:relative;}
.langs{position:absolute;top:10px;right:10px;z-index:3;display:flex;gap:2px;padding:3px;border-radius:999px;background:rgba(0,0,0,.22);}
.langs button{border:0;background:transparent;color:var(--hero-ink,#FFFFFF);font:600 11px/1 var(--font-body);letter-spacing:.04em;min-width:34px;min-height:30px;padding:0 8px;border-radius:999px;cursor:pointer;}
.langs button[aria-pressed="true"]{background:var(--hero-accent,#B8924A);color:var(--hero,#14213D);}
.langs button:focus-visible{outline:2px solid var(--hero-accent-2,#D9BD83);outline-offset:1px;}
.topbar .langs{position:static;background:var(--brand-soft);}
.topbar .langs button{color:var(--ink);}
.topbar .langs button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand);}
.login .langs{top:10px;right:10px;}
.langs + .hero{padding-top:46px;}
.edlang{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--brand-soft);}
.edlang b{font-size:13px;}
.trhint{display:block;margin-top:4px;font-size:12px;color:var(--ink-2);}
@media (max-width:520px){.phone{margin:0;border-radius:0;border-left:0;border-right:0;box-shadow:none;}.tip{display:none;}}
.hero{background:var(--hero,#14213D);color:var(--hero-ink,#FFFFFF);padding:22px 22px 0;text-align:center;}
.arch{margin:0 auto;max-width:300px;border:1px solid var(--hero-accent,#B8924A);border-bottom:0;border-radius:150px 150px 0 0;padding:44px 22px 22px;position:relative;}
.arch::before{content:"";position:absolute;inset:7px 7px 0;border:1px solid var(--hero-accent-soft,rgba(217,189,131,.4));border-bottom:0;border-radius:143px 143px 0 0;pointer-events:none;}
.hero .logo{display:block;margin:0 auto 6px;max-width:190px;max-height:110px;width:auto;height:auto;object-fit:contain;}
.hero.plain .arch{border:0;border-radius:0;padding:26px 10px 24px;}
.hero.plain .arch::before{display:none;}
.hero.plain{padding-bottom:0;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.logoprev{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px;}
.logoprev .lp{background:var(--hero,#14213D);border-radius:12px;padding:12px 18px;min-width:120px;min-height:64px;display:flex;align-items:center;justify-content:center;}
.logoprev .lp img{max-width:160px;max-height:80px;}
.logoprev .lp span{color:#D9BD83;font-size:12px;}
#c-logo{width:auto;max-width:100%;border:0;padding:0;font-size:14px;}
.hero .kicker{font:500 12px var(--font-body);color:var(--hero-accent-2,#D9BD83);letter-spacing:.08em;}
.hero h1{font:600 34px/1.1 var(--font-display);letter-spacing:.005em;margin-top:8px;}
.hero p{margin:10px auto 0;font-size:13.5px;color:var(--hero-ink-2,#D8DCE6);max-width:30ch;}
.staffbar{background:var(--event-soft);color:var(--ink);padding:10px 20px;font-size:13px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.sec{padding:16px 20px;border-top:1px solid var(--line);}
.sec:first-of-type{border-top:0;}
.sec h3{font:600 14px var(--font-body);color:var(--ink-2);margin-bottom:10px;}
.hint{color:var(--ink-2);font-size:13px;margin-top:8px;}
.stepper{display:flex;align-items:center;gap:16px;}
.round{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 22px/1 var(--font-body);cursor:pointer;}
.round:hover{border-color:var(--brand);}
.num{font:600 38px/1 var(--font-display);min-width:52px;text-align:center;}
.stepper .unit{color:var(--ink-2);}
.dscroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin:0 -20px;padding-left:20px;padding-right:20px;scrollbar-width:thin;}
.dchip{flex:0 0 auto;min-width:58px;padding:8px 7px;text-align:center;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);cursor:pointer;}
.dchip b{display:block;font:600 19px/1.2 var(--font-display);}
.dchip span{font-size:12px;color:var(--ink-2);}
.dchip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand);}
.dchip[aria-pressed="true"] span{color:var(--on-brand);opacity:.85;}
.sub{font-size:13px;color:var(--ink-2);margin:12px 0 6px;}
.sub:first-child{margin-top:0;}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.tchip{padding:10px 0;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;font:600 14px var(--font-body);cursor:pointer;}
.tchip:hover:not([disabled]){border-color:var(--brand);}
.tchip.full{background:var(--surface-2);color:var(--ink-2);text-decoration:line-through;border-style:dashed;}
.tchip[disabled]{opacity:.35;cursor:not-allowed;text-decoration:none;}
.tchip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:var(--on-brand);text-decoration:none;}
.tchip.full[aria-pressed="true"]{background:var(--event);border-color:var(--event);color:var(--on-event);text-decoration:none;border-style:solid;}
.pills{display:flex;flex-wrap:wrap;gap:8px;}
.pill{border:1px solid var(--line);border-radius:999px;padding:7px 13px;font:500 13px var(--font-body);background:var(--surface);color:var(--ink);cursor:pointer;}
.pill[aria-pressed="true"]{background:var(--brand-soft);border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);}
.spaces{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.space{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;}
.space b{display:block;font:600 17px var(--font-display);}
.space span{font-size:12px;color:var(--ink-2);}
.space[aria-pressed="true"]{border-color:var(--gold);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--gold);}
.space[disabled]{opacity:.4;cursor:not-allowed;}
.field{margin-bottom:12px;}
.field label{display:block;font:600 13px var(--font-body);color:var(--ink-2);margin-bottom:5px;}
.field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:400 16px var(--font-body);}
.summary{background:var(--surface-2);border-radius:14px;padding:6px 14px;margin-bottom:14px;}
.kv{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin:0;padding:8px 0;}
.kv dt{color:var(--ink-2);font-size:13px;}
.kv dd{margin:0;font-weight:500;text-align:right;}
.err{color:var(--bad);font-size:13px;margin-bottom:10px;}
.ok{padding:26px 20px 28px;}
.ok h2{font:600 30px/1.1 var(--font-display);}
.ok .ref{margin:8px 0 18px;color:var(--ink-2);}
.wa{background:var(--wa);border-radius:16px 16px 16px 4px;padding:12px 14px;white-space:pre-line;font-size:14px;margin:12px 0 4px;}
.wa-cap{font-size:12px;color:var(--ink-2);margin-bottom:16px;}
.stack{display:grid;gap:10px;margin-top:18px;}

/* dashboard */
.dash{padding:16px;max-width:1440px;margin:0 auto;}
.dbar{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin-bottom:14px;}
.dbar h2{font:600 30px/1.1 var(--font-display);}
.dbar p{color:var(--ink-2);font-size:13px;margin-top:4px;}
.dnav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto;}
.dnav input[type=date]{font:500 14px var(--font-body);padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-height:40px;}
.strip{display:flex;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:14px;}
.strip div{flex:1 1 150px;padding:12px 16px;border-right:1px solid var(--line);border-top:2px solid var(--gold);}
.strip div:last-child{border-right:0;}
.strip b{display:block;font:600 28px/1.1 var(--font-display);}
.strip span{font-size:13px;color:var(--ink-2);}
.vrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-left:auto;}
.legend i{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-1px;margin-right:5px;}
.sw-table{background:var(--brand);}.sw-group{background:var(--group);}.sw-event{background:var(--event);}.sw-seated{background:var(--seated);}
.sw-noshow{background:var(--bad-soft);border:1px dashed var(--bad);}
.tl-wrap{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow-x:auto;}
.tl{position:relative;min-width:calc(96px + var(--col)*var(--ncol));}
.tl-row{display:flex;height:38px;border-bottom:1px solid var(--line);background:var(--surface);}
.tl-row.head{height:30px;}
.tl-row.occ{height:48px;}
.lbl{flex:0 0 96px;position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line);padding:0 12px;display:flex;align-items:center;gap:8px;font-size:13px;}
.lbl b{font-weight:600;}
.lbl span{color:var(--ink-2);font-size:12px;}
.cells{position:relative;flex:0 0 calc(var(--col)*var(--ncol));background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--col)*2 - 1px),var(--line) calc(var(--col)*2 - 1px),var(--line) calc(var(--col)*2));}
.cells.hd{display:flex;background-image:none;}
.hh{flex:0 0 calc(var(--col)*2);padding-left:6px;font:600 12px var(--font-body);color:var(--ink-2);display:flex;align-items:center;border-left:1px solid var(--line);}
.hh:first-child{border-left:0;}
.occ-cells{display:flex;align-items:flex-end;}
.oc{flex:0 0 var(--col);height:100%;padding:0 6px;display:flex;align-items:flex-end;}
.oc i{display:block;width:100%;background:var(--brand);opacity:.5;border-radius:3px 3px 0 0;}
.oc.hot i{background:var(--event);opacity:1;}
.zone-h{background:var(--surface-2);border-bottom:1px solid var(--line);padding:6px 0;font:600 13px var(--font-body);}
.zone-h span{position:sticky;left:12px;display:inline-block;}
.bar{position:absolute;top:5px;bottom:5px;border:0;border-radius:7px;padding:0 8px;font:600 12px/28px var(--font-body);text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:var(--brand);color:var(--on-brand);}
.bar.k-group{background:var(--group);color:var(--on-group);}
.bar.k-event{background:var(--event);color:var(--on-event);}
.bar.seated{background:var(--seated);color:var(--on-seated);}
.bar.noshow{background:repeating-linear-gradient(45deg,var(--bad-soft),var(--bad-soft) 6px,transparent 6px,transparent 12px);color:var(--bad);border:1px dashed var(--bad);line-height:26px;}
.nowline{position:absolute;top:30px;bottom:0;width:2px;background:var(--bad);z-index:1;pointer-events:none;}
.floor-ctl{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:12px;}
.floor-ctl label{font-weight:600;}
.floor-ctl input[type=range]{flex:1 1 220px;accent-color:var(--brand);}
.floor-ctl output{font:700 24px var(--font-display);min-width:60px;}
.floor{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;}
.zone{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;}
.zone h3{font:700 17px var(--font-display);}
.zone .zs{font-size:12px;color:var(--ink-2);margin:2px 0 12px;}
.tables{display:flex;flex-wrap:wrap;gap:10px;}
.tb{border:2px dashed var(--line);background:var(--surface-2);color:var(--ink-2);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;overflow:hidden;font:600 13px var(--font-body);cursor:default;}
.tb span{font-weight:500;font-size:11px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tb.s2{width:66px;height:66px;border-radius:50%;}
.tb.s4{width:94px;height:66px;border-radius:14px;}
.tb.s6{width:126px;height:66px;border-radius:14px;}
.tb.s8{width:150px;height:74px;border-radius:14px;}
.tb.res{border-style:solid;border-color:var(--brand);background:var(--brand);color:var(--on-brand);cursor:pointer;}
.tb.res.k-group{border-color:var(--group);background:var(--group);color:var(--on-group);}
.tb.res.k-event{border-color:var(--event);background:var(--event);color:var(--on-event);}
.tb.res.seated{border-color:var(--seated);background:var(--seated);color:var(--on-seated);}
.cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;margin-top:16px;align-items:start;}
@media (max-width:900px){.cols{grid-template-columns:1fr;}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.panel h3{font:700 17px var(--font-display);padding:14px 16px 10px;}
.ritem{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line);cursor:pointer;}
.ritem:hover{background:var(--surface-2);}
.ritem .t{font:700 17px var(--font-display);}
.ritem .who{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ritem .meta{font-size:12px;color:var(--ink-2);}
.ritem .acts{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
@media (max-width:560px){.ritem{grid-template-columns:52px minmax(0,1fr);}.ritem .acts{grid-column:1 / -1;justify-content:flex-start;}}
.chip{display:inline-block;font:600 11px var(--font-body);padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);}
.chip.group{background:var(--group-soft);color:var(--ink);border-color:transparent;}
.chip.event{background:var(--event-soft);color:var(--ink);border-color:transparent;}
.chip.seated{background:var(--seated);color:var(--on-seated);border-color:transparent;}
.chip.noshow{background:var(--bad-soft);color:var(--bad);border-color:transparent;}
.chip.ok{background:var(--brand-soft);color:var(--ink);border-color:transparent;}
.empty{padding:16px;color:var(--ink-2);font-size:14px;border-top:1px solid var(--line);}
.witem{padding:12px 16px;border-top:1px solid var(--line);}
.witem .who{font-weight:600;}
.witem .meta{font-size:12px;color:var(--ink-2);margin:2px 0 8px;}
.witem .acts{display:flex;gap:8px;flex-wrap:wrap;}

/* service picker */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.svc .space{min-height:74px;}
.svc .space:first-child{grid-column:1 / -1;}
.tchip small{display:block;font-size:11px;font-weight:500;opacity:.8;}
.bar.k-cooking,.bar.k-tea{background:var(--exp);color:var(--on-exp);cursor:default;}
.bar.k-breakfast{background:var(--gold);color:#1D1606;}
.bar.k-breakfast.seated{background:var(--seated);color:var(--on-seated);}
.sw-exp{background:var(--exp);}.sw-bf{background:var(--gold);}
.chip.cooking,.chip.tea{background:var(--exp-soft);color:var(--ink);border-color:transparent;}
.chip.breakfast{background:var(--event-soft);color:var(--ink);border-color:transparent;}
.xs{padding:10px 16px;border-top:1px solid var(--line);}
.xs .who{font-weight:600;display:flex;justify-content:space-between;gap:8px;}
.xs .meta{font-size:12px;color:var(--ink-2);margin-top:2px;}
.cap{height:6px;border-radius:3px;background:var(--surface-2);margin-top:6px;overflow:hidden;}
.cap i{display:block;height:100%;background:var(--exp);}

/* menu and drinks */
.gtabs{padding:12px 20px 0;}
.mgroup{padding:14px 20px 4px;}
.mjump{display:flex;gap:8px;overflow-x:auto;padding:6px 20px 12px;scrollbar-width:thin;}
.mjump button{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 13px;font:500 13px var(--font-body);cursor:pointer;}
.msec{padding:6px 20px 8px;scroll-margin-top:70px;}
.msec h3{font:600 22px/1.2 var(--font-display);color:var(--ink);margin:10px 0 2px;}
.msec h3::after{content:"";display:block;width:36px;height:2px;background:var(--gold);margin-top:8px;}
.mitem{display:grid;grid-template-columns:1fr auto;gap:3px 14px;padding:13px 0;border-top:1px solid var(--line);}
.mitem:first-of-type{border-top:0;}
.mitem b{font-weight:600;font-size:15px;}
.mitem .pr{font:600 16px var(--font-display);white-space:nowrap;}
.mitem p{grid-column:1 / -1;font-size:13px;color:var(--ink-2);}
.veg{display:inline-block;margin-left:6px;font:600 10.5px var(--font-body);color:var(--seated);border:1px solid var(--seated);border-radius:999px;padding:1px 6px;vertical-align:2px;}
.mnote{margin:6px 20px 0;padding:12px 14px;background:var(--surface-2);border-radius:12px;font-size:13px;color:var(--ink-2);}
.mcta{padding:14px 20px 18px;}
.msedit{border-top:1px solid var(--line);padding:14px 0;}
.msedit:first-of-type{border-top:0;padding-top:4px;}
.mihead{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:10px;align-items:end;}
.mirow{border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:10px;background:var(--surface-2);}
.mirow .top{display:grid;grid-template-columns:minmax(0,1fr) 110px auto auto;gap:8px;align-items:center;}
.mirow input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:400 15px var(--font-body);min-width:0;}
.mirow .desc{margin-top:8px;}
.mirow label.v{display:flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap;}
.xbtn{border:0;background:transparent;color:var(--bad);font:600 20px/1 var(--font-body);cursor:pointer;padding:4px 8px;border-radius:6px;}
@media (max-width:560px){.mirow .top{grid-template-columns:minmax(0,1fr) 90px;}.mihead{grid-template-columns:1fr;}}

/* owner settings */
.set{max-width:980px;margin:0 auto;padding:16px 16px 0;}
.set h2{font:600 30px/1.1 var(--font-display);}
.set .lead{color:var(--ink-2);font-size:14px;margin:6px 0 16px;max-width:62ch;}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px;scroll-margin-top:80px;}
.card h3{font:600 20px var(--font-display);}
.card .ch{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:4px;}
.card .ch span{font-size:13px;color:var(--ink-2);}
.card .cd{font-size:13px;color:var(--ink-2);margin-bottom:12px;max-width:64ch;}
.steps{margin:0;padding-left:22px;display:grid;gap:8px;font-size:14px;}
.steps a{color:var(--ink);font-weight:600;text-underline-offset:3px;}
.steps span{color:var(--ink-2);}
.frow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.frow .field{margin-bottom:0;}
.field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:400 16px var(--font-body);}
.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:400 15px/1.4 var(--font-body);min-height:64px;resize:vertical;}
.field small{display:block;color:var(--ink-2);font-size:12px;margin-top:4px;}
.svcrow{border-top:1px solid var(--line);padding:12px 0;}
.svcrow:first-of-type{border-top:0;padding-top:4px;}
.tog{display:flex;align-items:center;gap:10px;font-weight:600;margin-bottom:10px;cursor:pointer;}
.tog input{width:20px;height:20px;accent-color:var(--brand);}
.off{opacity:.5;}
.zset{border-top:1px solid var(--line);padding-top:12px;margin-top:12px;}
.zset:first-of-type{border-top:0;margin-top:0;padding-top:0;}
.trow{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;}
.tedit{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:5px 6px 5px 10px;background:var(--surface-2);}
.tedit b{font-weight:600;min-width:30px;}
.tedit select{padding:5px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:500 13px var(--font-body);}
.tedit button{border:0;background:transparent;color:var(--bad);font:600 18px/1 var(--font-body);cursor:pointer;padding:4px 6px;border-radius:6px;}
.code{display:block;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre;}
.errs{background:var(--bad-soft);color:var(--ink);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:14px;}
.errs ul{margin:6px 0 0;padding-left:18px;}
.savebar{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 -16px;box-shadow:0 -6px 20px rgba(20,33,61,.06);}
.savebar p{flex:1 1 200px;font-size:13px;color:var(--ink-2);}
.savebar.dirty p{color:var(--ink);font-weight:600;}

/* design settings */
.presets{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px;}
.preset{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:7px 11px;font:600 13px var(--font-body);cursor:pointer;}
.preset i{display:inline-flex;width:30px;height:18px;border-radius:5px;overflow:hidden;}
.preset i b{flex:1;}
.colr{display:flex;align-items:center;gap:10px;}
.colr input[type=color]{width:52px;height:40px;padding:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;}
.colr span{font:500 13px ui-monospace,Menlo,Consolas,monospace;color:var(--ink-2);}
.dprev{border-radius:14px;overflow:hidden;border:1px solid var(--line);margin-top:14px;max-width:360px;}
.dprev .ph{padding:18px;text-align:center;}
.dprev .ph small{display:block;font-size:11px;letter-spacing:.08em;}
.dprev .ph b{display:block;font-size:26px;margin-top:4px;}
.dprev .pb{padding:14px;display:flex;gap:8px;align-items:center;}
.dprev .pbtn{border-radius:10px;padding:9px 14px;font-weight:600;font-size:14px;}
.dprev .pchip{border-radius:10px;padding:8px 12px;font-size:13px;border:2px solid;}

/* online booking stop switch */
.stopbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:14px;}
.stopbar .txt{flex:1 1 240px;}
.stopbar .txt b{font:600 16px var(--font-display);}
.stopbar .txt p{font-size:12.5px;color:var(--ink-2);margin-top:2px;}
.stops{display:flex;flex-wrap:wrap;gap:8px;}
.stopbtn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:6px 12px;font:600 13px var(--font-body);cursor:pointer;min-height:40px;text-align:left;}
.stopbtn span{display:block;font-weight:500;font-size:11.5px;color:var(--seated);}
.stopbtn[aria-pressed="true"]{background:var(--bad-soft);border-color:var(--bad);}
.stopbtn[aria-pressed="true"] span{color:var(--bad);}
.closed{background:var(--bad-soft);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:14px;margin-bottom:10px;}
.btn.warn{border-color:var(--gold);color:var(--ink);background:var(--event-soft);}
.tfree{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px;}
.tfree button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:5px 9px;font:500 12.5px var(--font-body);cursor:pointer;}
.tfree button.fit{border-color:var(--seated);}
.tfree button small{color:var(--ink-2);}
.bar.unassigned{background:transparent;color:var(--ink);border:1.5px dashed var(--gold);line-height:25px;}
.sw-todo{background:transparent;border:1.5px dashed var(--gold);}

/* zones in guest app */
.zones{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.zones .pill{border-radius:12px;padding:10px 12px;text-align:left;}
.zones .pill small{display:block;font-size:11.5px;color:var(--ink-2);font-weight:400;margin-top:2px;}
/* embed mode (iframe on the website) */
.embed body{background:transparent;}
.embed .topbar,.embed .tip{display:none !important;}
.staffin{background:none;border:0;color:var(--ink-2);font:500 12px var(--font-body);text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-top:8px;padding:6px;}
.embed .staffin{display:none;}
.login{max-width:380px;margin:40px auto;padding:0 16px;}
.login .phone{margin:0;}
.login form{padding:20px;}
.login input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 22px var(--font-body);letter-spacing:.3em;text-align:center;}
.login .hint{text-align:center;}
.who-chip{font:600 12px var(--font-body);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:5px 10px;}
.embed .phone{margin:0 auto;box-shadow:none;}
.foot{padding:14px 20px 18px;text-align:center;font-size:12px;color:var(--ink-2);border-top:1px solid var(--line);}

/* teams */
.teambar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin-bottom:14px;}
.teambar b{font:600 14px var(--font-body);}
.teambar p{font-size:13px;color:var(--ink-2);flex:1 1 260px;}
.side{display:grid;gap:16px;}
.act{padding:10px 16px;border-top:1px solid var(--line);font-size:14px;}
.act b{font-weight:600;}
.act .ago{display:block;font-size:12px;color:var(--ink-2);}
.cm{background:var(--surface-2);border-radius:10px;padding:8px 10px;margin-bottom:8px;font-size:14px;}
.cm b{font-weight:600;}
.cm span{color:var(--ink-2);font-size:12px;margin-left:6px;}
.cm p{margin-top:2px;}
.cm-h{font:600 14px var(--font-body);color:var(--ink-2);margin:14px 0 8px;}
.cm-form{display:flex;gap:8px;}
.cm-form input{flex:1;min-width:0;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:400 16px var(--font-body);}

/* modal + toasts */
.overlay{position:fixed;inset:0;background:rgba(6,16,14,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50;}
.sheet{background:var(--surface);border-radius:18px;max-width:440px;width:100%;padding:20px;max-height:92%;overflow:auto;box-shadow:var(--shadow);}
.sheet h2{font:600 25px/1.15 var(--font-display);}
.sheet .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 6px;}
.sheet .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:60;width:min(92vw,420px);pointer-events:none;}
.toast{background:var(--ink);color:var(--bg);padding:12px 14px;border-radius:12px;font-size:14px;box-shadow:var(--shadow);animation:pop .2s ease-out;}
@keyframes pop{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;}}
.search{flex:1 1 220px;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:400 15px var(--font-body);min-height:40px;}
.ritem .t small{display:block;font:500 11px var(--font-body);color:var(--ink-2);}
.efrm .frow{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.dirs{text-align:center;text-decoration:none;}
@media print{
  .topbar,.dnav,.stopbar,.vrow,.tl-wrap,.floor-ctl,.floor,.side,.toasts,#modal,.ritem .btn{display:none !important;}
  body{background:#fff;color:#000;}
  .dash{padding:0;}
  .cols{display:block;margin:0;}
  .panel{border:0;}
  .ritem{break-inside:avoid;}
}

/* ---------- real app additions ---------- */
a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
a.btn.block{display:flex;}
.foot a{color:inherit;}
a.staffin{display:inline-block;}
.login .authf{padding:20px;}
.login .authf h2{font:600 24px var(--font-display);text-align:center;margin-bottom:6px;}
.login .authf .hint{text-align:center;margin:0 0 14px;}
.login .authf input{font:400 16px var(--font-body);letter-spacing:0;text-align:left;padding:11px 12px;}
.login .authf .btn{margin-top:4px;}
.today{font:600 12px var(--font-body);background:var(--brand);color:var(--on-brand);border-radius:999px;padding:3px 9px;vertical-align:middle;margin-left:6px;}
#venue-pick{padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 13px var(--font-body);min-height:32px;}
.staff-add{margin-top:0;}
.staff-add .staffbar{border-radius:0;}
.btn[disabled]{cursor:progress;}

.hero .logo-wait{width:150px;height:96px;margin:0 auto 6px;}

.stepper input.num{width:84px;min-width:0;padding:6px 4px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);-moz-appearance:textfield;appearance:textfield;}
.stepper input.num:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 25%,transparent);}
.stepper input.num::-webkit-outer-spin-button,.stepper input.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.tchip small.end{opacity:.75;}

.dchip.more{border-style:dashed;}
.dchip.more[aria-pressed="true"]{border-style:solid;}
.cal{margin-top:12px;border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--surface);}
.calh{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.calh b{font:600 17px var(--font-display);text-transform:capitalize;}
.calh .round{width:40px;height:40px;font-size:22px;}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;}
.calg .dow{font-size:11px;color:var(--ink-2);padding:4px 0;text-transform:capitalize;}
.calg .cd{min-height:40px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:500 15px var(--font-body);cursor:pointer;}
.calg .cd:hover:not(:disabled){background:var(--brand-soft);}
.calg .cd.today{box-shadow:inset 0 0 0 1.5px var(--gold);}
.calg .cd[aria-pressed="true"]{background:var(--brand);color:var(--on-brand);}
.calg .cd:disabled{color:var(--line);cursor:default;}

.chip.svcl{border-color:transparent;color:var(--ink);font-weight:700;}
.svc-breakfast{--svc:#F3E3B5;} .svc-lunch{--svc:#D9EAD3;} .svc-dinner{--svc:#D6DDF0;} .svc-cooking{--svc:#F4D6C6;} .svc-tea{--svc:#CFE8E4;} .svc-event{--svc:#EAD6EE;}
.chip.svcl{background:var(--svc,var(--surface-2));}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip.svcl{color:#16213A;}}
.svcf{margin:0 0 10px;}
.svcf .pill small{opacity:.7;font-weight:500;margin-left:4px;}
.svcf .pill[class*="svc-"]{border-left:6px solid var(--svc);}
.ritem .acts .chip,.ritem .acts .btn{flex:0 0 auto;width:auto;align-self:center;}
