:root{--brand:#F6B91B;--accent:#E98725;--ink:#201D19;--paper:#FAF8F4;--font:'Archivo',sans-serif;--display:'Archivo',sans-serif;--onbrand:#201D19;--crust-ink:#121314;--crust-graphite:#565A5E;--crust-rule:#DADCD8;--crust-sheet:#FBFBFA;--crust-lime:#D4F53C;--crust-lilac:#D5C6FF;--crust-sky:#9FD6FF;--crust-lime-text:#121314;--surface:#FFFFFF;--surface-raised:#FFFFFF;--surface-soft:#FBFBFA;--surface-warm:#FBFBFA;--surface-hover:#F5F5F2;--muted:#565A5E;--muted-soft:#74787B;--line:#DADCD8;--line-strong:#121314;--soft:#FBFBFA;--positive:#285C44;--positive-soft:#EDF5EF;--danger:#A52D28;--danger-soft:#FFF1EE;--warning-color:#8A6100;--warning-soft:#FFF6DF;--ticket-neutral:#8D9691;--ticket-amber:#C68A00;--ticket-red:#B83230;--radius:2px;--radius-sm:2px;--radius-lg:2px;--radius-xl:2px;--radius-pill:2px;--shadow-xs:none;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--content-width:1280px;--touch-target:44px;--ease:cubic-bezier(.2,.7,.2,1);--speed-fast:120ms;--speed:170ms;--speed-slow:240ms;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:140px;overflow-x:clip;-webkit-text-size-adjust:100%}
body{margin:0;min-width:0;min-height:100vh;overflow-x:clip;background:var(--crust-sheet);color:var(--crust-ink);font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 100;font-size:16px;font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 100}
button,select{cursor:pointer}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:disabled{opacity:.4;cursor:not-allowed;transform:none!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--crust-ink);outline-offset:3px}
button:focus:not(:focus-visible){outline:none}
input,select,textarea{color:var(--crust-ink);accent-color:var(--crust-ink)}
input::placeholder,textarea::placeholder{color:#797D80;opacity:1}
img,svg{max-width:100%}img{height:auto}
svg{stroke-linecap:round;stroke-linejoin:round}
a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}
/* blue1011: iOS paints unstyled controls system blue (-apple-system-blue / -webkit-link). Every control and link inherits the ink token and the
   page typeface (sizes stay as each screen sets them; zero specificity, so every class rule still sets its own look). Date/time, checkbox, radio, range and select keep native drawing. */
:where(button,input[type=button],input[type=submit],input[type=reset]){-webkit-appearance:none;appearance:none;color:inherit;font-family:inherit;-webkit-tap-highlight-color:transparent}
:where(input:not([type=checkbox],[type=radio],[type=range],[type=date],[type=time],[type=datetime-local],[type=month],[type=week]),textarea){-webkit-appearance:none;appearance:none}
:where(input,select,textarea){color:var(--crust-ink);font-family:inherit;-webkit-tap-highlight-color:transparent}
:where(a,a:link,a:visited){color:inherit;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance}
h1,h2,h3,.brandname{font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(34px,4.2vw,52px);line-height:.98}
h2{font-size:clamp(24px,2.5vw,34px);line-height:1.08}
h3{font-size:19px;line-height:1.18}
h4{font-size:16px;font-weight:700;line-height:1.3}
small,.small{font-size:13px;line-height:1.45}
strong{font-weight:700}
.muted{color:var(--crust-graphite)}
.hide{display:none!important}
::selection{background:var(--crust-lime);color:var(--crust-ink)}
.price,.dealprice,.amount,.metric b,.qty,.summaryrow>:last-child,.ticket .thead b,.ticket .tqty,.receipt,.tablebutton b{font-family:'IBM Plex Mono',monospace!important;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.price,.dealprice,.amount,.metric b{font-weight:600}
.shell{max-width:var(--content-width);margin:0 auto;min-width:0;padding:32px 30px calc(176px + env(safe-area-inset-bottom,0px))}
.shell>*{min-width:0}
.shell>.card,.shell>.hero,.shell>.momenthero{margin-bottom:24px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:#FFFFFF;border-top:8px solid var(--crust-ink);border-bottom:1px solid var(--crust-rule);box-shadow:none}
.topinner{max-width:var(--content-width);margin:auto;padding:16px 30px 12px;display:flex;align-items:center;gap:24px;min-width:0;flex-wrap:wrap}
.crustmark{position:relative;display:inline-flex;align-items:center;color:var(--crust-ink);font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;font-size:25px;font-weight:800;letter-spacing:-.06em;line-height:1;white-space:nowrap}
.crustmark span{display:inline-block;flex:0 0 auto;width:12px;height:3px;margin-right:10px;background:var(--crust-ink);border-radius:0;transform:none}
.switcher{display:flex;align-items:center;gap:0;min-width:0;padding:0;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px}
.switcher button{position:relative;min-height:42px;border:0;border-right:1px solid var(--crust-rule);border-radius:0;padding:10px 16px;background:#FFFFFF;color:var(--crust-graphite);font-size:13px;font-weight:600;line-height:1.2;transition:background var(--speed-fast),color var(--speed-fast)}
.switcher button:last-child{border-right:0}
.switcher button:hover:not(.active){background:var(--crust-sheet);color:var(--crust-ink)}
.switcher button.active{background:var(--crust-lime);color:var(--crust-ink);font-weight:800;box-shadow:inset 0 -2px 0 var(--crust-ink)}
.toplabel{margin-left:auto;color:var(--crust-graphite);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.tabs{display:flex;align-items:center;gap:4px;max-width:var(--content-width);margin:auto;padding:0 30px 12px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tabs button{position:relative;flex-shrink:0;min-height:44px;border:0;border-bottom:2px solid transparent;border-radius:0;padding:11px 14px;background:transparent;color:var(--crust-graphite);font-size:13px;font-weight:600;white-space:nowrap;transition:background var(--speed-fast),color var(--speed-fast)}
.tabs button:hover:not(.active){color:var(--crust-ink);background:var(--crust-sheet)}
.tabs button.active{background:linear-gradient(to top,var(--crust-lime) 0 42%,transparent 42%);color:var(--crust-ink);border-bottom-color:var(--crust-ink);font-weight:800;box-shadow:none}
.card{min-width:0;padding:24px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;box-shadow:none}
.card>*{min-width:0}
.panel{padding:24px;background:var(--crust-sheet);border:1px solid var(--crust-rule);border-radius:2px}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;max-width:100%;padding:5px 9px;background:var(--crust-sheet);border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-ink);font-size:11px;font-weight:700;line-height:1.35;letter-spacing:.02em}
.brandpill{background:var(--crust-lime);border-color:transparent;color:var(--crust-ink)}
.notice{margin:16px 0;padding:13px 16px;background:#FFFFFF;border:1px solid var(--crust-rule);border-left:3px solid var(--crust-ink);border-radius:2px;color:var(--crust-ink);font-size:14px;line-height:1.5}
.success{border-left-color:var(--positive)}
.warning{border-left-color:var(--warning-color)}
.sectionhead{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:40px 0 16px}
.sectionhead p{margin-top:6px;color:var(--crust-graphite);font-size:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch-target);min-width:0;padding:11px 18px;border:1px solid var(--crust-rule);border-radius:2px;background:#FFFFFF;color:var(--crust-ink);font-size:14px;font-weight:700;line-height:1.25;text-align:center;text-decoration:none;box-shadow:none;transition:background var(--speed-fast),border-color var(--speed-fast),color var(--speed-fast)}
.btn:hover:not(:disabled){transform:none;background:var(--crust-sheet);border-color:var(--crust-ink);box-shadow:none}
.btn:active:not(:disabled){transform:none;background:#EEEEEA}
.btn.primary{background:var(--brand);color:var(--onbrand);border-color:var(--brand);box-shadow:none}
.btn.primary:hover:not(:disabled){filter:brightness(.96);border-color:var(--brand);box-shadow:none}
.btn.dark{background:var(--crust-lime);color:var(--crust-ink);border-color:var(--crust-lime)}
.btn.dark:hover:not(:disabled){filter:none;background:#C3E32E;border-color:#C3E32E}
.btn.smallbtn{min-height:38px;padding:8px 12px;font-size:12px}
.btn.selected{background:var(--crust-sheet);border:1.5px solid var(--crust-ink);box-shadow:none}
.btn.full{display:flex;width:100%}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cols{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.85fr);gap:16px}
.twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.metricgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.grid>*,.cols>*,.twocol>*,.metricgrid>*{min-width:0}
.metric{min-width:0;padding:20px 22px;background:#FFFFFF;border:1px solid var(--crust-rule);border-top:1.5px solid var(--crust-ink);border-radius:2px;box-shadow:none;color:var(--crust-graphite);font-size:13px}
.metric b{display:block;margin:12px 0 6px;color:var(--crust-ink);font-size:clamp(25px,2.5vw,34px);line-height:1.1}
.field{display:flex;flex-direction:column;gap:8px;min-width:0;margin:16px 0}
.field label{color:var(--crust-ink);font-size:13px;font-weight:700}
.field input,.field select,.field textarea{display:block;width:100%;min-width:0;min-height:46px;padding:12px 13px;background:#FFFFFF;color:var(--crust-ink);border:1px solid var(--crust-rule);border-radius:2px;font-size:15px;line-height:1.4;box-shadow:none;transition:border-color var(--speed-fast)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--crust-graphite)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--crust-ink);box-shadow:none;outline:1px solid var(--crust-ink);outline-offset:0}
.field textarea{min-height:92px;resize:vertical}
.divider{height:1px;margin:24px 0;background:var(--crust-rule)}
.line{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:14px 0}
.line>*{min-width:0}
.price{flex-shrink:0;color:var(--crust-ink);font-size:14px;white-space:nowrap}
.softtile{display:flex;align-items:end;height:145px;margin-bottom:16px;padding:14px;overflow:hidden;border:1px solid var(--crust-rule);border-radius:2px;background:#F0F0EB;color:var(--crust-graphite);font-size:11px;font-weight:700}
.softtile.alt1{background:#ECECE6}.softtile.alt2{background:#E9EAE8}.softtile.alt3{background:#F1EFE9}
.itemcard{display:flex;flex-direction:column;min-width:0;transition:border-color var(--speed-fast)}
.itemcard:hover{border-color:var(--crust-ink);box-shadow:none}
.itemcard h3{font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 100;font-size:16px;font-weight:700;line-height:1.3;letter-spacing:-.01em}
.itemcard p{flex:1;margin-top:8px;color:var(--crust-graphite);font-size:13px;line-height:1.5}
.itemcard .line{margin-top:16px;padding-bottom:0;border-top:1px solid var(--crust-rule)}
.hero{display:flex;align-items:center;justify-content:space-between;gap:32px;min-width:0;padding:48px;background:#FFFFFF;border:1px solid var(--crust-rule);border-top:1.5px solid var(--crust-ink);border-radius:2px;box-shadow:none}
.hero-copy{flex:1;min-width:0;max-width:760px}
.hero-copy h1{color:var(--ink);font-family:var(--display),'Archivo',sans-serif;font-weight:800;letter-spacing:-.035em;line-height:1.03}
.hero-copy p{max-width:540px;margin:14px 0 24px;color:var(--crust-graphite);font-size:16px;line-height:1.5}
.logoarea{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:190px;min-height:132px;padding:20px;background:var(--paper);border:1px solid var(--crust-rule);border-radius:2px}
.logoarea img{display:block;max-width:100%;max-height:105px;object-fit:contain}
.brandname{font-family:var(--display),'Archivo',sans-serif;font-size:21px;font-weight:800}
.deal{min-width:0;padding:20px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;transition:border-color var(--speed-fast)}
.deal:hover{border-color:var(--crust-ink);box-shadow:none}
.deal b{display:block;font-size:16px;font-weight:700}
.deal small{color:var(--crust-graphite)}
.dealprice{margin:12px 0;font-size:26px}
.editor{min-width:0;margin-top:20px;padding:24px;background:#FFFFFF;border:1px solid var(--crust-rule);border-top:2px solid var(--crust-ink);border-radius:2px;box-shadow:none}
.editor input,.editor select,.editor textarea{box-sizing:border-box;width:100%;min-width:0}
.editor .twocol>*{min-width:0}
.chips{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:16px 0}
.chip{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-ink);font-size:13px;font-weight:700;line-height:1.25;transition:background var(--speed-fast),border-color var(--speed-fast)}
.chip:hover{background:var(--crust-sheet);border-color:var(--crust-graphite)}
.chip.on{background:var(--brand);border-color:var(--brand);color:var(--onbrand)}
.chip:focus-visible{outline:2px solid var(--crust-ink);outline-offset:2px}
.cartline{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:16px 0;border-bottom:1px solid var(--crust-rule)}
.cartline:last-child{border-bottom:0}
.cartline .grow{flex:1;min-width:0}
.cartline small{display:block;margin-top:4px;color:var(--crust-graphite);line-height:1.45}
.qty{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:14px}
.qty button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-ink);font-family:'Archivo',sans-serif;font-size:17px;font-weight:600}
.qty button:hover{background:var(--crust-sheet);border-color:var(--crust-ink)}
.summaryrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:12px 0;color:var(--crust-graphite);font-size:14px}
.summaryrow>:last-child{color:var(--crust-ink);font-weight:600}
.summaryrow.total{margin-top:20px;padding-top:20px;border-top:1.5px solid var(--crust-ink);color:var(--crust-ink);font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;font-size:23px;font-weight:800;letter-spacing:-.02em}
.summaryrow.total>:last-child{font-family:'IBM Plex Mono',monospace;font-size:23px}
.discount{color:var(--positive);font-weight:700}
.bottom{position:fixed;z-index:40;bottom:0;left:0;right:0;width:100%;padding-bottom:env(safe-area-inset-bottom,0px);background:#FFFFFF;border-top:1.5px solid var(--crust-ink);box-shadow:none}
.bottombar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:var(--content-width);min-width:0;margin:auto;padding:12px 30px}
.bottombar>*{min-width:0}.bottombar .btn{flex-shrink:0}
.bottomnav{display:flex;align-items:stretch;justify-content:space-around;gap:2px;max-width:var(--content-width);margin:auto;padding:4px 24px;border-top:1px solid var(--crust-rule)}
.bottomnav button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:1;min-width:0;min-height:44px;padding:9px 5px;background:transparent;border:0;border-radius:0;color:var(--crust-graphite);font-size:12px;font-weight:600;line-height:1.2;transition:background var(--speed-fast),color var(--speed-fast)}
.bottomnav button:hover{background:var(--crust-sheet);color:var(--crust-ink)}
.bottomnav button.active{color:var(--crust-ink);font-weight:800;background:linear-gradient(to top,var(--crust-lime) 0 28%,transparent 28%)}
.bottomnav button.active::after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:2px;background:var(--crust-ink);border-radius:0}
.momenthero{position:relative;isolation:isolate;min-width:0;overflow:hidden;padding:clamp(32px,5vw,64px);background:#FFFFFF;border:1px solid var(--crust-rule);border-top:1.5px solid var(--crust-ink);border-radius:2px;color:var(--crust-ink);box-shadow:none}
.momenthero::before{content:"";position:absolute;z-index:-1;width:16px;height:100%;top:0;right:0;background:var(--crust-lime);pointer-events:none}
.momenthero::after{content:none}
.momenthero h1{max-width:850px;margin:24px 0;font-size:clamp(40px,5.4vw,72px);font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;font-weight:800;line-height:.98;letter-spacing:-.025em}
.momenthero p{max-width:490px;color:var(--crust-graphite);font-size:17px;line-height:1.5}
.momenthero .pill{background:var(--crust-lime);color:var(--crust-ink);border-color:transparent;padding:6px 10px;font-size:12px;letter-spacing:0}
.momenthero .actions{margin-top:32px}
.momenthero .btn.primary{min-height:52px;padding:14px 22px;font-size:15px}
.stars{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:20px 0}
.frame{position:relative;flex:0 0 auto;width:52px;height:64px;padding:5px 5px 14px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;box-shadow:none;transform:none;transition:border-color var(--speed-fast),transform var(--speed)}
.frame:nth-child(even){transform:none}
.frame:hover{transform:translateY(-2px);border-color:var(--crust-ink);box-shadow:none}
.frame i{display:block;width:100%;height:100%;border-radius:0;background:#EEEEEA}
.frame.earned i{background:var(--crust-lime)}
.frame.faded i{background:var(--crust-lime);opacity:.3}
.star{display:inline-flex;align-items:center;justify-content:center;width:39px;height:39px;background:var(--crust-sheet);border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-graphite);font-size:20px}
.star.earned{background:var(--crust-lime);border-color:var(--crust-ink);color:var(--crust-ink)}
.timeline{position:relative;margin-left:8px;padding-left:24px;border-left:1.5px solid var(--crust-ink)}
.event{position:relative;padding:0 0 28px 4px}
.event::before{content:"";position:absolute;top:6px;left:-30px;width:10px;height:10px;background:var(--crust-lime);border:1.5px solid var(--crust-ink);border-radius:0;box-shadow:none}
.event:last-child{padding-bottom:0}
.event small{color:var(--crust-graphite)}
.tablemap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tablebutton{position:relative;min-width:0;min-height:102px;padding:16px 10px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-ink);text-align:center;transition:background var(--speed-fast),border-color var(--speed-fast)}
.tablebutton:hover{transform:none;border-color:var(--crust-ink);background:var(--crust-sheet);box-shadow:none}
.tablebutton b{display:block;font-size:19px;font-weight:600}
.tablebutton span{display:block;margin-top:6px;color:var(--crust-graphite);font-size:12px;line-height:1.3}
.tablebutton.occupied{background:#F7F4FF;border-color:var(--crust-lilac)}
.tablebutton.occupied::before{content:"";position:absolute;width:7px;height:7px;top:12px;right:12px;background:#705BA8;border-radius:2px}
.tablebutton.selected{background:var(--crust-lilac);border:1.5px solid var(--crust-ink);box-shadow:none}
.tablebutton.selected span{color:var(--crust-ink);font-weight:700}
.positem{display:flex;align-items:center;gap:12px;width:100%;min-width:0;min-height:72px;padding:13px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-ink);text-align:left;transition:background var(--speed-fast),border-color var(--speed-fast)}
.positem:hover{background:#F7F4FF;border-color:var(--crust-ink);box-shadow:none}
.positem:active{background:var(--crust-lilac)}
.positem span{flex:1;min-width:0;font-size:13px;font-weight:700;line-height:1.35}
.positem small{color:var(--crust-graphite);font-size:11px;font-weight:600}
.positem svg{flex:0 0 auto;width:24px;height:24px;color:var(--crust-ink);stroke:currentColor;stroke-width:1.75;fill:none}
.postiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.svgicon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px}
.svgicon svg{width:100%;height:100%;stroke-width:1.75;fill:none}
.guestdevice{position:relative;max-width:580px;min-width:0;min-height:480px;margin:32px auto;padding:40px 32px;background:#FFFFFF;border:2px solid var(--crust-ink);border-radius:2px;box-shadow:none}
.guestdevice h2{margin:20px 0;text-align:center;font-size:clamp(25px,3vw,34px);line-height:1.1}
.guestdevice .amount{margin:20px 0 24px;color:var(--crust-ink);text-align:center;font-size:clamp(46px,6vw,68px);font-weight:600;line-height:1.05}
.guestdevice .center{text-align:center}
.guestdevice .btn,.guestdevice .chip{min-height:50px}
.guestdevice .actions{gap:8px}
.guestdevice .actions .btn,.guestdevice .actions .chip{flex:1 1 auto}
.guestdevice .btn.primary{min-height:60px;font-size:16px}
.guestdevice .summaryrow.total{font-size:24px}
.guestdevice .pill{background:var(--crust-lilac);border-color:transparent}
.bigpay{display:flex;align-items:center;justify-content:center;width:100%;min-height:64px;padding:18px 20px;font-size:16px;font-weight:800;border-radius:2px}
.guestdevice .bigpay{background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.configrow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0;padding:16px 0;border-bottom:1px solid var(--crust-rule)}
.configrow:last-child{border-bottom:0}
.configrow>*{min-width:0}
.configrow span:last-child{max-width:65%;color:var(--crust-ink);font-size:13px;font-weight:700;line-height:1.4;text-align:right;overflow-wrap:anywhere}
.legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:16px 0}
.togglelabel{display:flex;align-items:center;gap:12px;min-height:40px;margin:12px 0;font-size:14px;font-weight:600}
.togglelabel input{width:19px;height:19px;flex:0 0 auto;accent-color:var(--crust-ink)}
.receipt{max-width:390px;min-width:0;margin:24px auto;padding:28px;background:#FFFFFF;border:1px solid var(--crust-rule);border-radius:2px;color:var(--crust-ink);font-size:12px;line-height:1.65;box-shadow:none}
.receipt h3{margin-bottom:12px;font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;text-align:center}
.ticketgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr));gap:12px}
.ticket{display:flex;flex-direction:column;gap:12px;min-width:0;padding:17px;background:#FFFFFF;border:1px solid var(--crust-rule);border-top:3px solid var(--ticket-neutral);border-radius:2px;box-shadow:none;transition:border-color var(--speed-fast)}
.ticket:hover{border-color:var(--crust-graphite);box-shadow:none}
.ticket.warm{border-top-color:var(--ticket-amber);background:#FFFFFF}
.ticket.late{border-top-color:var(--ticket-red);background:#FFFFFF}
.ticket .thead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ticket .thead b{font-size:24px;font-weight:600}
.ticket .tline{display:flex;align-items:flex-start;gap:10px;min-width:0;font-size:14px;font-weight:700;line-height:1.4}
.ticket .tline small{display:block;margin-top:3px;color:var(--crust-graphite);font-size:12px;font-weight:400}
.ticket .tqty{flex:0 0 auto;min-width:28px;padding:4px 6px;background:var(--crust-sheet);border:1px solid var(--crust-rule);border-radius:2px;text-align:center;font-size:13px;font-weight:600}
.ticket .btn{margin-top:auto}
.ticket .btn.primary{background:var(--crust-lilac);border-color:var(--crust-lilac);color:var(--crust-ink)}
.ticket.warm .thead{color:#815A00}.ticket.late .thead{color:#A52D28}
.equip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:14px 0}
.dot{display:inline-block;flex:0 0 auto;width:7px;height:7px;margin-right:6px;background:var(--positive);border-radius:50%}
.dot.off{background:var(--crust-graphite)}
.tourcard{position:fixed;z-index:60;right:18px;bottom:calc(155px + env(safe-area-inset-bottom,0px));width:min(400px,calc(100vw - 36px));max-height:min(70vh,620px);overflow-y:auto;padding:24px;background:#FFFFFF;border:1px solid var(--crust-ink);border-top:6px solid var(--crust-ink);border-radius:2px;box-shadow:0 8px 28px rgba(18,19,20,.09)}
.footerhint{margin-top:24px;color:var(--crust-graphite);font-size:12px;line-height:1.5}
@media (hover:hover) and (pointer:fine){.card,.panel{transition:border-color var(--speed-fast)}.card:hover{border-color:var(--crust-graphite)}.chip:hover,.tablebutton:hover,.positem:hover{cursor:pointer}}
@media (hover:none){.btn:hover,.tablebutton:hover,.frame:hover{transform:none}.itemcard:hover,.card:hover{box-shadow:none}}
@media (max-width:1000px){.shell,.topinner,.tabs{padding-left:24px;padding-right:24px}.metricgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.cols{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.tablemap{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{padding:32px}}
@media (max-width:850px){.cols{grid-template-columns:minmax(0,1fr)}.metricgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toplabel{display:none}.hero{align-items:flex-start;flex-direction:column-reverse;gap:24px}.logoarea{width:100%;min-height:90px}.postiles{grid-template-columns:repeat(2,minmax(0,1fr))}.guestdevice{max-width:600px}}
@media (max-width:550px){
html{scroll-padding-top:160px}body{font-size:15px}
h1{font-size:clamp(32px,8vw,42px)}h2{font-size:25px}h3{font-size:18px}
.shell{width:100%;padding:24px 16px calc(190px + env(safe-area-inset-bottom,0px))}
.top{border-top-width:6px}.topinner{gap:12px;padding:12px 16px 8px}.crustmark{font-size:23px}
.switcher{order:3;width:100%;gap:0;overflow:hidden}
.switcher button{flex:1 1 0;min-width:0;min-height:40px;padding:8px 5px;font-size:11px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.tabs{gap:3px;padding:0 16px 8px}.tabs button{min-height:42px;padding:10px 11px;font-size:12px}
.card{padding:18px}.panel{padding:18px}
.sectionhead{align-items:flex-start;gap:8px;margin:32px 0 14px}.sectionhead p{font-size:13px}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.twocol{grid-template-columns:minmax(0,1fr);gap:12px}
.metricgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:16px}.metric b{font-size:25px}
.hero{gap:20px;padding:24px}.hero-copy p{font-size:14px;margin:12px 0 20px}
.logoarea{width:100%;min-height:90px;padding:16px}.logoarea img{max-height:80px}
.itemcard h3{font-size:14px;line-height:1.3}.itemcard p{font-size:12px}
.softtile{height:105px;padding:10px;margin-bottom:12px}
.itemcard .line{flex-wrap:wrap;align-items:center}.itemcard .line .btn{min-height:39px;padding:8px 11px;font-size:12px}
.deal{padding:16px}.dealprice{font-size:24px}.editor{padding:18px}
.tablemap{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tablebutton{min-height:88px;padding:12px 5px}.tablebutton b{font-size:16px}.tablebutton span{font-size:11px}
.postiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.positem{min-height:68px;padding:10px;gap:9px}.positem span{font-size:12px}.positem svg{width:22px;height:22px}
.momenthero{padding:32px 22px}.momenthero h1{margin:22px 0 18px;font-size:clamp(35px,9vw,48px)}.momenthero p{font-size:15px;line-height:1.5}
.momenthero::before{width:7px}.momenthero .actions{margin-top:24px}.momenthero .btn{flex:1 1 auto}
.stars{gap:7px}.frame{width:45px;height:57px}
.guestdevice{width:100%;min-height:0;margin:18px auto;padding:24px 16px;border-width:2px}
.guestdevice h2{font-size:24px}.guestdevice .amount{font-size:clamp(42px,11vw,58px)}
.guestdevice .actions{gap:7px}.guestdevice .actions .btn,.guestdevice .actions .chip{min-height:50px;padding:10px;font-size:12px}
.bigpay{min-height:60px;font-size:15px}
.ticketgrid{grid-template-columns:minmax(0,1fr)}.ticket{padding:16px}
.configrow{gap:10px}.configrow span:last-child{max-width:58%}
.bottombar{gap:10px;padding:10px 16px}.bottombar .btn{min-height:43px;padding:10px 12px;font-size:12px;white-space:normal}
.bottomnav{gap:0;padding:4px 5px 3px}.bottomnav button{min-height:43px;padding:7px 2px;font-size:10px;letter-spacing:-.01em}
.tourcard{right:12px;bottom:calc(142px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);padding:18px}
.receipt{padding:20px}.actions{gap:8px}
.shell>*,.card>*,.panel>*{max-width:100%}.actions .btn{max-width:100%}
.configrow,.cartline,.line,.summaryrow{min-width:0}}
@media (max-width:390px){.shell,.topinner,.tabs{padding-left:13px;padding-right:13px}.card{padding:16px}.hero{padding:20px}.grid{gap:8px}.itemcard h3{font-size:13px}.itemcard .line{gap:7px}.tablemap{gap:7px}.tablebutton b{font-size:15px}.tablebutton span{font-size:10px}.metric{padding:13px}.metric b{font-size:23px}.guestdevice{padding:20px 12px}.guestdevice .amount{font-size:44px}.bottomnav button{font-size:9px;padding-left:1px;padding-right:1px}.momenthero h1{font-size:35px}.bottombar .btn{padding:10px;font-size:11px}.switcher button{font-size:10px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (prefers-contrast:more){:root{--crust-graphite:#343638;--crust-rule:#858989}.card,.panel,.metric,.tablebutton,.positem,.ticket,.btn{border-width:1.5px}.btn:focus-visible,.chip:focus-visible,.tablebutton:focus-visible{outline-width:3px}.ticket{border-top-width:5px}}
.shell,.card,.panel,.hero,.momenthero,.editor,.guestdevice,.ticket,.metric{overflow-wrap:break-word}
.postiles>*,.tablemap>*,.ticketgrid>*{min-width:0}
button,input,select,textarea{max-width:100%}
.topinner .btn.primary{background:var(--crust-ink);border-color:var(--crust-ink);color:#FFFFFF}
.topinner .btn.primary:hover:not(:disabled){filter:none;background:#2A2C2E}


/* lime belongs to Crust's own screens; business skins highlight with their own color */
.switcher button.active{background:var(--crust-ink);color:#FFFFFF;box-shadow:none}
.tabs button.active{background:linear-gradient(to top,color-mix(in srgb,var(--brand) 34%,transparent) 0 42%,transparent 42%)}
.bottomnav button.active{background:linear-gradient(to top,color-mix(in srgb,var(--brand) 34%,transparent) 0 28%,transparent 28%)}
.brandpill,.momenthero .pill{background:var(--brand);color:var(--onbrand)}
.momenthero::before{background:var(--brand)}
.frame.earned i,.frame.faded i{background:var(--brand)}
.star.earned{background:var(--brand);color:var(--onbrand)}
.event::before{background:var(--brand)}
.walletmoment [data-action="moment1"]{background:#EFA47A;border-color:#EFA47A;color:#121314}
.swatch{display:inline-flex;width:58px;height:38px;padding:0;border:1px solid var(--crust-rule);border-radius:2px;overflow:hidden;background:#fff}
.swatch i{flex:1;display:block}
.swatch.on{outline:2px solid var(--crust-ink);outline-offset:2px}
.pulsehead{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:8px 0 18px}
.pulsehead h2{margin-top:4px}
.readings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reading{background:#fff;border:1px solid var(--crust-rule);border-top:1.5px solid var(--crust-ink);border-radius:2px;padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.reading.off{border-top-color:var(--ticket-amber)}
.rlabel{font-size:12px;font-weight:700;color:var(--crust-graphite);text-transform:uppercase;letter-spacing:.06em}
.rvalue{font-family:'IBM Plex Mono',monospace;font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1}
.rvalue small{font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;color:var(--crust-graphite);margin-left:6px;letter-spacing:0}
.meter{position:relative;height:8px;background:#EEEEEA;border-radius:2px}
.meter .zone{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--brand) 45%,#fff);border-radius:2px}
.meter .needle{position:absolute;top:-4px;width:3px;height:16px;background:var(--crust-ink);transform:translateX(-50%)}
.rnote{font-size:12px;color:var(--crust-graphite)}
.moves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.move{background:#fff;border:1px solid var(--crust-rule);border-left:3px solid var(--brand);border-radius:2px;padding:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.reports{margin-top:28px;border-top:1px solid var(--crust-rule);padding-top:14px}
.reports summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--crust-graphite);padding:8px 0}
@media (max-width:850px){.readings,.moves{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:550px){.readings{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.moves{grid-template-columns:minmax(0,1fr)}.rvalue{font-size:26px}.reading{padding:14px}}
/* CRUST ENGINE — FINAL POLISH OVERRIDES (ChatGPT round 3, 10/10/26) */
:root{--radius:2px;--radius-sm:2px;--radius-lg:2px;--radius-xl:2px;--radius-pill:2px;--shadow-xs:none;--shadow-sm:none;--shadow-md:none;--shadow-lg:none}
body{background:#FBFBFA;color:#121314;font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 100}
h1,h2,h3,.brandname{font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;font-weight:800;letter-spacing:-.02em}
.price,.amount,.qty,.dealprice,.rvalue,.reading .meter,.ticket .thead b{font-variant-numeric:tabular-nums}
.shell{padding-top:28px}
.shell>.card,.shell>.hero,.shell>.momenthero{margin-bottom:20px}
.card,.panel,.hero,.momenthero,.editor,.reading,.move{border-radius:2px;box-shadow:none}
.card{padding:22px}
.sectionhead{margin:30px 0 14px}
.sectionhead p,.footerhint{color:var(--crust-graphite);line-height:1.45}
.divider{margin:20px 0}
.actions{gap:8px}
.btn{letter-spacing:-.01em}
.btn:active:not(:disabled){filter:brightness(.96)}
.card:hover{border-color:var(--crust-rule)}
.top{background:#fff;border-top:8px solid #121314;box-shadow:none}
.topinner{gap:18px;padding-top:12px;padding-bottom:8px}
.tabs{padding-bottom:8px}
.tabs button.active{background:linear-gradient(to top,color-mix(in srgb,var(--brand) 25%,transparent) 0 32%,transparent 32%);border-bottom-color:#121314}
.bottomnav button.active{background:linear-gradient(to top,color-mix(in srgb,var(--brand) 24%,transparent) 0 22%,transparent 22%)}
.switcher button.active{background:#121314;color:#fff}
.brandpill,.momenthero .pill{background:var(--brand);color:var(--onbrand)}
.pill{letter-spacing:0}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--onbrand)}
.btn.dark{background:#fff;border-color:#121314;color:#121314}
.btn.dark:hover:not(:disabled){background:#F1F1ED;border-color:#121314}
.tablebutton.occupied{background:color-mix(in srgb,var(--brand) 9%,#fff);border-color:color-mix(in srgb,var(--brand) 30%,#DADCD8)}
.tablebutton.occupied::before{background:var(--brand);border:1px solid #121314}
.tablebutton.selected{background:color-mix(in srgb,var(--brand) 24%,#fff);border-color:#121314}
.positem:hover,.positem:active{background:color-mix(in srgb,var(--brand) 9%,#fff)}
.ticket .btn.primary{background:color-mix(in srgb,var(--brand) 35%,#fff);border-color:var(--brand);color:#121314}
.swatch{position:relative;display:inline-flex;isolation:isolate;vertical-align:middle;width:68px;height:49px;min-width:68px;padding:4px;gap:0;overflow:hidden;background:#fff;border:1px solid #DADCD8;border-radius:2px;box-shadow:0 2px 0 #E7E7E3;transition:border-color 120ms,transform 120ms}
.swatch i{display:block;flex:1 1 50%;height:100%;min-width:0;border:0}
.swatch i:first-child{border-radius:1px 0 0 1px}
.swatch i:last-child{border-radius:0 1px 1px 0}
.swatch:hover{border-color:#121314;transform:translateY(-1px)}
.swatch.on{border-color:#121314;outline:2px solid #121314;outline-offset:2px;box-shadow:0 2px 0 #DADCD8}
.swatch:focus-visible{outline:3px solid #121314;outline-offset:3px}
.swatch:active{transform:translateY(0)}
.momenthero{padding:clamp(32px,4.5vw,58px);background:#fff;border-top:2px solid #121314}
.momenthero::before{width:8px;background:var(--brand)}
.momenthero h1{max-width:810px;margin:22px 0 20px;font-size:clamp(38px,5vw,68px);line-height:.99}
.momenthero p{max-width:460px;font-size:16px;line-height:1.45}
.momenthero .actions{margin-top:26px}
.momenthero .btn.primary{min-height:54px;padding:14px 24px;font-size:15px}
.momenthero .pill{padding:7px 11px;font-size:12px}
.stars{gap:8px;margin:16px 0}
.frame{border-color:#DADCD8;background:#fff}
.frame.earned{border-color:color-mix(in srgb,var(--brand) 65%,#121314)}
.frame.earned i{background:color-mix(in srgb,var(--brand) 65%,#fff)}
.frame.faded i{background:var(--brand);opacity:.22}
.star.earned{background:var(--brand);border-color:#121314;color:var(--onbrand)}
.timeline{margin:18px 0 12px 10px;padding-left:26px;border-left:1.5px solid #DADCD8}
.event{position:relative;padding:1px 0 24px 7px;line-height:1.45}
.event::before{top:8px;left:-33px;width:12px;height:12px;border:2px solid #fff;outline:1px solid #121314;background:var(--brand);border-radius:50%}
.event:first-child::before{width:14px;height:14px;left:-34px;top:7px}
.event b,.event strong{font-weight:700;color:#121314}
.event small{display:block;margin-top:4px;color:#565A5E;font-size:12px}
.event:last-child{padding-bottom:4px}
.timeline+.actions{margin-top:18px}
.frame:hover{border-color:#121314;transform:translateY(-2px)}
.guestdevice{max-width:580px;min-height:470px;margin:36px auto;padding:clamp(28px,4vw,46px);background:#fff;border:1.5px solid #121314;text-align:center}
.guestdevice .center{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}
.guestdevice .center img{display:block;max-width:150px;max-height:110px;margin:4px auto 12px;object-fit:contain}
.guestdevice h2{margin:14px 0 12px;font-size:clamp(30px,3.4vw,42px);line-height:1.05}
.guestdevice p{color:#565A5E;line-height:1.45}
.guestdevice .amount{font-size:clamp(45px,5vw,66px);margin:18px 0 22px}
.guestdevice .btn.primary{min-height:62px;padding:16px 26px;font-size:17px;font-weight:800;background:var(--brand);color:var(--onbrand);border-color:var(--brand)}
.guestdevice .bigpay{min-height:64px}
.guestdevice .actions{justify-content:center;gap:8px;margin:20px 0}
.guestdevice .actions .btn.primary{flex:1 1 100%}
.guestdevice .pill{background:color-mix(in srgb,var(--brand) 24%,#fff);border-color:transparent;color:#121314}
.guestdevice .divider{margin:22px 0}
.guestdevice .summaryrow{text-align:left}
.guestdevice .summaryrow.total{font-size:23px}
.guestdevice .muted{color:#565A5E}
.walletmoment{background:#fff;border-color:#DADCD8}
.walletmoment [data-action="moment1"],.walletmoment .btn[data-action="moment1"]{background:#EFA47A!important;border-color:#EFA47A!important;color:#121314!important;font-weight:800;min-height:46px}
.walletmoment [data-action="moment1"]:hover{background:#E5946A!important;border-color:#E5946A!important;color:#121314!important}
.walletmoment [data-action="moment1"]:focus-visible{outline:3px solid #121314;outline-offset:3px}
.walletmoment .pill{background:#D4F53C;color:#121314;border-color:transparent}
.pulsehead{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:8px 0 20px}
.pulsehead h2{margin:3px 0 0;font-size:clamp(30px,3.2vw,42px);line-height:1}
.pulsehead small{color:#565A5E;font-size:12px}
.readings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.reading{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:165px;gap:0;padding:20px 20px 17px;background:#fff;border:1px solid #DADCD8;border-top:2px solid #121314;transition:border-color 140ms}
.reading:hover{border-color:#989C97;border-top-color:#121314}
.reading.off{border-top-color:#B27A00;background:#FFFDF8}
.rlabel{display:block;color:#565A5E;font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.075em;text-transform:uppercase}
.rvalue{display:block;min-width:0;margin:12px 0 16px;color:#121314;font-family:'IBM Plex Mono',monospace;font-size:clamp(28px,2.9vw,39px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.055em;line-height:1.08;white-space:normal;overflow-wrap:anywhere}
.rvalue small{display:inline-block;margin-left:5px;color:#565A5E;font-family:'Archivo',sans-serif;font-size:12px;font-weight:600;letter-spacing:0;vertical-align:baseline}
.meter{position:relative;isolation:isolate;flex:0 0 auto;width:100%;height:8px;margin-top:auto;overflow:visible;background:#ECEDE9;border:0;border-radius:1px}
.meter .zone{position:absolute;z-index:1;top:0;bottom:0;background:color-mix(in srgb,var(--brand) 24%,#D5DED0);border-radius:1px}
.meter .needle{position:absolute;z-index:2;top:-4px;width:3px;height:16px;background:#121314;border-radius:1px;transform:translateX(-50%);box-shadow:0 0 0 1px #fff}
.reading.off .meter .zone{background:#F0D9A0}
.reading.off .meter .needle{background:#815500}
.rnote{display:block;min-height:16px;margin-top:12px;color:#565A5E;font-size:12px;line-height:1.35}
.reading.off .rnote{color:#815500;font-weight:700}
.moves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch;margin:4px 0 8px}
.move{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;min-height:115px;padding:18px 18px 17px;background:#fff;border:1px solid #DADCD8;border-left:3px solid var(--brand);color:#121314;line-height:1.4;transition:border-color 140ms,background 140ms}
.move:hover{background:color-mix(in srgb,var(--brand) 5%,#fff);border-color:#969A95;border-left-color:var(--brand)}
.move b,.move strong{font-weight:700}
.move p,.move small{color:#565A5E;font-size:13px;line-height:1.4}
.move .btn{align-self:flex-start;min-height:38px;padding:8px 13px;font-size:12px}
.move .btn.primary{background:var(--brand);color:var(--onbrand)}
.move:focus-within{outline:2px solid #121314;outline-offset:2px}
details.reports,.reports{margin-top:28px;padding:12px 0 0;border:0;border-top:1px solid #DADCD8;background:transparent}
details.reports>summary,.reports>summary{min-height:44px;padding:12px 2px;color:#565A5E;font-size:13px;font-weight:700;line-height:1.4;cursor:pointer}
details.reports>summary:hover{color:#121314}
details.reports>summary:focus-visible{outline:2px solid #121314;outline-offset:3px}
details.reports[open]>summary{color:#121314;border-bottom:1px solid #DADCD8;margin-bottom:16px}
details.reports .card{border-color:#DADCD8}
details.reports .grid,details.reports .twocol{gap:12px}
.metric{padding:17px 18px}
.metric b{margin:8px 0 4px}
.configrow{padding:12px 0}
.tablebutton{min-height:96px}
.softtile{border-color:#E5E6E2}
.footerhint{margin-top:18px;font-size:12px}
.bottom{background:#fff}
.bottombar{padding-top:10px;padding-bottom:10px}
.bottomnav{padding-top:3px;padding-bottom:3px}
@media(max-width:850px){.readings{grid-template-columns:repeat(2,minmax(0,1fr))}.moves{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.shell{padding-top:20px}.card{padding:17px}.sectionhead{margin:26px 0 12px}.readings{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reading{padding:15px 13px 13px;min-height:148px}.rlabel{font-size:10px;letter-spacing:.035em}.rvalue{margin:10px 0 15px;font-size:27px;letter-spacing:-.045em}.rvalue small{font-size:10px;margin-left:3px}.rnote{font-size:11px;margin-top:10px}.moves{grid-template-columns:minmax(0,1fr);gap:8px}.move{min-height:0;padding:15px;gap:9px}.pulsehead{margin-bottom:14px}.pulsehead h2{font-size:32px}.momenthero{padding:30px 22px}.momenthero h1{font-size:clamp(35px,9vw,46px);margin:20px 0 17px}.momenthero p{font-size:15px}.timeline{padding-left:22px}.event::before{left:-29px}.event:first-child::before{left:-30px}.guestdevice{margin:16px auto;padding:27px 18px;min-height:0}.guestdevice h2{font-size:29px}.guestdevice .btn.primary{min-height:58px;font-size:15px}.swatch{width:60px;min-width:60px;height:45px}}
@media(max-width:390px){.shell{padding-left:13px;padding-right:13px}.reading{padding:13px 11px}.rvalue{font-size:25px}.rvalue small{display:inline;margin-left:3px}.rlabel{font-size:10px}.meter{height:7px}.meter .needle{height:15px}.momenthero h1{font-size:35px}.guestdevice{padding:23px 14px}.guestdevice h2{font-size:27px}.actions{gap:7px}.move{padding:14px}}
@media(prefers-reduced-motion:reduce){.swatch,.reading,.move,.frame{transition:none!important}}
@media(prefers-contrast:more){.reading,.move,.guestdevice{border-color:#565A5E}.meter{background:#B7BBB5}.meter .zone{background:#879B77}.meter .needle{width:4px}.rlabel,.rnote,.event small{color:#343638}}
/* keep Crust's header button ink */
.topinner .btn.primary{background:var(--crust-ink);border-color:var(--crust-ink);color:#FFFFFF}
.btn .svgicon,.event .svgicon,.deal .svgicon,.line .svgicon{width:18px;height:18px;vertical-align:-3px;color:currentColor}
/* Front tiles: icon left, name above price; words never split mid-word */
.positem{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;row-gap:2px;align-items:center}
.positem .svgicon{grid-row:1/3}
.positem span{overflow-wrap:normal;word-break:normal;hyphens:manual;line-height:1.25}
.positem small{grid-column:2;justify-self:start}
/* ===== live app navigation (10/10): one staff bar, no demo chrome ===== */
header.top,.bottomnav{display:none!important}
.shell{padding-top:14px}
.staffnav{position:sticky;top:env(safe-area-inset-top,0px);z-index:35;display:flex;align-items:center;gap:14px;margin:0 -30px 18px;padding:10px 30px;background:#fff;border-top:6px solid var(--crust-ink);border-bottom:1px solid var(--crust-rule)}
.sncrust{font-family:'Archivo',sans-serif;font-variation-settings:"wdth" 125;font-weight:800;font-size:19px;letter-spacing:-.05em}
.sntabs{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.sntabs::-webkit-scrollbar{display:none}
.sntabs button{flex-shrink:0;min-height:42px;padding:9px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--crust-graphite);font-weight:700;font-size:14px}
.sntabs button.on{color:var(--crust-ink);border-bottom-color:var(--crust-ink);background:linear-gradient(to top,color-mix(in srgb,var(--brand) 28%,transparent) 0 34%,transparent 34%)}
.snwho{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--crust-graphite);white-space:nowrap}
@media(max-width:550px){.staffnav{margin:0 -16px 14px;padding:8px 16px;gap:8px;flex-wrap:wrap}.snwho{order:2;margin-left:auto}.sntabs{order:3;flex-basis:100%}.sntabs button{font-size:13px;padding:8px 10px}}
@media(max-width:390px){.staffnav{margin:0 -13px 12px;padding:8px 13px}}
/* ===== the Front: rolodex items, check stays in view ===== */
body.v-front .postiles{max-height:min(56vh,560px);overflow-y:auto;scroll-snap-type:y proximity;overscroll-behavior:contain;padding:2px 4px 2px 0;mask-image:linear-gradient(to bottom,#000 92%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 92%,transparent)}
body.v-front .positem{scroll-snap-align:start}
@media(min-width:851px){
body.v-front .cols>aside{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}
body.v-front footer.bottom{display:none}
body.v-front .shell{padding-bottom:40px}
}
@media(max-width:850px){body.v-front .postiles{max-height:46vh}}
/* ===== floating confirmations ===== */
.toast{position:fixed;z-index:90;transform:translate(-50%,8px);opacity:0;background:var(--crust-ink);color:#fff;padding:10px 14px;border-radius:2px;font-size:14px;font-weight:700;line-height:1.35;box-shadow:0 10px 30px rgba(18,19,20,.18);pointer-events:none;transition:opacity .18s ease,transform .25s ease;text-align:center}
.toast.in{opacity:1;transform:translate(-50%,0)}
.toast.out{opacity:0;transform:translate(-50%,-18px)}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
.cartline .grow{cursor:pointer}
.cartline .grow:hover b{text-decoration:underline;text-underline-offset:3px}
.editor.quick{padding:16px 18px}
.editor.quick .chips{margin:8px 0 12px}
.sizebig{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.sizebig .chip{min-height:64px;flex-direction:column;gap:2px;font-size:15px;background:var(--brand);border-color:var(--brand);color:var(--onbrand)}
.sizebig .chip small{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;opacity:.85}
/* desktop "Phone view" preview */
@media(max-width:700px){.snphone{display:none}}
body.phoneview{background:#ECECE8}
body.phoneview .shell,body.phoneview .bottombar{max-width:430px}
body.phoneview .shell{background:var(--crust-sheet);box-shadow:0 0 0 1px var(--crust-rule);min-height:100vh}
body.phoneview .cols,body.phoneview .twocol,body.phoneview .readings,body.phoneview .moves{grid-template-columns:minmax(0,1fr)!important}
body.phoneview .grid,body.phoneview .postiles,body.phoneview .metricgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body.phoneview .staffnav{margin-left:-16px;margin-right:-16px;flex-wrap:wrap}
body.phoneview .sntabs{order:3;flex-basis:100%}
body.phoneview .cols>aside{position:static!important;max-height:none!important}
body.phoneview footer.bottom{display:block!important}
body.phoneview .bottom{left:50%;right:auto;width:430px;transform:translateX(-50%)}
body.phoneview .shell{padding-left:16px;padding-right:16px}

/* ===== the blend (approved 10/10): chrome, POS switcher, one bottom tab bar, calmer type, no zoom traps ===== */
html{-webkit-text-size-adjust:100%}
body{touch-action:manipulation}
input,select,textarea{font-size:16px!important}
.staffnav{display:none!important}
.chrome{position:sticky;top:0;z-index:35;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -30px 10px;padding:calc(8px + env(safe-area-inset-top,0px)) 30px 8px;background:var(--paper,#FBFBFA);border-bottom:1px solid var(--crust-rule)}
.chrome .wmbox{display:block;height:20px}
.chrome .wm{height:20px;width:auto;display:block;fill:var(--crust-ink)}
.chrome .who{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--crust-graphite);white-space:nowrap}
.chrome .chip{min-height:34px;padding:6px 12px;border:1px solid var(--crust-ink);background:#fff;font-weight:700;font-size:13px;border-radius:2px}
.posseg{display:flex;gap:6px;margin:0 0 14px;padding:4px;border:1px solid var(--crust-rule);background:#fff;border-radius:2px}
.posseg button{flex:1;min-height:40px;border:0;background:transparent;font-weight:700;font-size:14px;color:var(--crust-graphite);border-radius:2px}
.posseg button.on{background:var(--crust-ink);color:#fff}
.appbar{position:fixed;z-index:45;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--crust-rule)}
.appbar .ab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:48px;justify-content:center;color:var(--crust-graphite);text-decoration:none;font-size:12px;font-weight:700;cursor:pointer}
.appbar .ab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.appbar .ab span{padding:1px 8px;border-radius:2px}
.appbar .ab.on{color:var(--crust-ink)}
.appbar .ab.on span{background:#D4F53C}
body:has(.appbar){padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
body:has(.appbar) .bottom{bottom:calc(61px + env(safe-area-inset-bottom,0px));padding-bottom:0}
h1{font-size:clamp(24px,6.5vw,29px)!important;font-weight:700!important;letter-spacing:-.01em!important;line-height:1.08!important}
h2{font-size:clamp(19px,5vw,22px)!important;font-weight:700!important}
@media(max-width:550px){.chrome{margin:0 -16px 10px;padding-left:16px;padding-right:16px}}
@media(max-width:390px){.chrome{margin:0 -13px 10px;padding-left:13px;padding-right:13px}}
@media(max-width:700px){.chrome .snphone{display:none}}
body.phoneview .chrome{margin-left:-16px;margin-right:-16px}
.chrome{margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding-left:16px!important;padding-right:16px!important}
body:has(.posseg.guestonly) .appbar,body:has(.posseg.guestonly) .chrome{display:none}
.posseg.guestonly{opacity:.55;max-width:320px;margin:0 auto 10px}
.chrome{position:fixed!important;top:0;left:0;right:0;margin:0!important;width:auto}
body:has(.chrome){padding-top:calc(54px + env(safe-area-inset-top,0px))}
body:has(.posseg.guestonly){padding-top:0}

/* the blend front door */
.unlock{max-width:420px;margin:8px auto 0;display:grid;gap:14px}
.unlock h1{margin:0}
.mono-label{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--crust-graphite);margin:0}
.unlockstore{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--crust-rule);background:#fff}
.unlockstore span:last-child{color:var(--crust-graphite);font-size:14px}
.pinpad{display:grid;gap:12px;padding:18px;border:1.5px solid var(--crust-ink);background:#F4EEE2;box-shadow:6px 6px 0 #E8DCC6}
.pindots{display:flex;gap:10px;justify-content:center;min-height:18px}
.pindots i{width:14px;height:14px;border:1.5px solid var(--crust-ink);border-radius:50%}
.pindots i.on{background:var(--crust-ink)}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.keys button{min-height:58px;font-size:22px;font-weight:700;background:#fff;border:1px solid var(--crust-ink);border-radius:2px}
.keys button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;vertical-align:middle}
.unlockgo{min-height:52px}
.linkbtn{background:none;border:0;text-decoration:underline;color:var(--crust-graphite);font-size:14px;justify-self:center;min-height:44px}
body:has(.unlock) .bottom,body:has(.unlock) #bottom{display:none!important}

/* the blend Front: approved a-front.html */
body:has(.posseg) .cols > section > .card{border:0;padding:0;background:transparent;box-shadow:none}
.frontbiz{height:40px;margin:2px 0 6px}.frontbiz img{height:40px;width:auto;display:block}
.frontnew{font-size:24px!important;font-weight:700!important;letter-spacing:-.03em!important;margin:2px 0 0}
.frontmode .btn{border:1px solid var(--crust-rule);background:#fff;font-weight:800;min-height:42px}
.frontmode .btn.selected{background:#F0E1C8;border:2px solid var(--crust-ink);color:var(--crust-ink)}
.positem{min-height:96px;border:1.5px solid var(--crust-rule);padding:12px;gap:10px}
.positem b,.positem .pname{font-size:16px;font-weight:800;letter-spacing:-.015em;line-height:1.1}
.positem .price,.positem small{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;color:var(--crust-graphite)}
.positem:hover{background:#FBF7EF}
.positem:active{background:#F0E1C8}
.bottom .bottombar b{font-size:17px}
.positem>span{font-size:16px;font-weight:800;letter-spacing:-.015em;line-height:1.1}
.positem>small{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;color:var(--crust-graphite)}

/* the blend Guest View (approved a-guest-thanks.html) */
.gvthanks{font-size:30px!important;font-weight:800!important;text-align:center;margin:2px 0 4px!important;letter-spacing:-.03em}
.gvtotal{text-align:center;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:26px;margin-bottom:12px}
.gvcard{border:1.5px solid var(--crust-ink);background:#fff;padding:14px;margin:12px 0}
.gvcard:first-of-type{background:#F4EEE2}
.gvcardtitle{font-size:20px;font-weight:800;letter-spacing:-.02em}
.gvphone{display:flex;gap:8px;margin-top:10px}
.gvphone input{flex:1;min-width:0;min-height:52px;border:1.5px solid var(--crust-ink);padding:0 12px;font-family:'IBM Plex Mono',monospace}
.gvphone .btn{min-height:52px;min-width:88px}
.gvwelcome{font-size:20px;font-weight:700;margin:22px 0 6px}
.gvby{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--crust-graphite);font-size:13px;margin:18px 0 4px}
.gvby .wmbox{display:inline-block;height:14px}.gvby .wm{height:14px;width:auto;display:block;fill:var(--crust-ink)}
body:has(.gvthanks) .bottom,body:has(.gvthanks) #bottom{display:none!important}

/* the blend Office */
.officehead h1{margin:2px 0 10px}
.officeseg{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:4px;border:1px solid var(--crust-rule);background:#fff;margin:0 0 16px;border-radius:2px}
.officeseg button{min-height:40px;border:0;background:transparent;font-weight:700;font-size:13px;color:var(--crust-graphite);border-radius:2px;padding:0 2px}
.officeseg button.on{background:#D4F53C;color:var(--crust-ink);box-shadow:inset 0 0 0 1.5px var(--crust-ink)}
.officemore{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 6px;padding-top:12px;border-top:1px solid var(--crust-rule)}
.reportsplain{margin-top:4px}
.pulsehead .pill{display:none}

/* the blend Office: inside the sections (approved r-office-*.html) */
.officebody .card{border:1px solid var(--crust-rule);box-shadow:none;padding:16px}
.officebody .cols{gap:14px}
.officebody .chips .chip{min-height:40px;border:1px solid var(--crust-rule);background:#fff;font-weight:700}
.officebody .chips .chip.on{background:#D4F53C;color:var(--crust-ink);border:1.5px solid var(--crust-ink)}
.officebody .menuitem,.officebody .itemrow{border-bottom:1px solid var(--crust-rule);padding:12px 0}
.officebody .small.muted{color:var(--crust-graphite)}
.officebody input:not([type=checkbox]):not([type=radio]),.officebody select{min-height:40px;border:1px solid var(--crust-rule);border-radius:2px;padding:0 10px;background:#fff;max-width:100%}
.officebody .btn.smallbtn:not(.primary){min-height:38px;padding:6px 12px;border:1px solid var(--crust-ink);background:#fff;font-weight:700}
.officebody h3{font-size:18px;font-weight:800;letter-spacing:-.015em}
.officebody .reading{border:1px solid var(--crust-rule);box-shadow:none}
.officebody .reading .rvalue{font-family:'IBM Plex Mono',monospace}
.officebody .move{border:1.5px solid var(--crust-ink);background:#F7FAD9}
.officebody .btn.primary{background:var(--crust-ink)!important;color:#fff!important;border:1px solid var(--crust-ink)!important}
/* Guest View: the guest pays with the big button in the screen; the staff cart bar never shows here (it covered the pay button) */
body:has(.posseg.guestonly) .bottom,body:has(.posseg.guestonly) #bottom{display:none!important}
body:has(.posseg.guestonly){padding-bottom:24px!important}
/* the Front: sizes in line with standard phone apps (Josh 10/11: a touch larger, proportionate) */
body:has(.posseg){font-size:16px}
.posseg button{font-size:15px;min-height:44px}
.positem>span{font-size:17px}
.positem>small{font-size:15px}
body:has(.posseg) .chips .chip,body:has(.posseg) .chip{font-size:15px;min-height:44px}
.frontnew{font-size:26px!important}
.frontmode .btn{font-size:15px;min-height:44px}
.bottom .bottombar b{font-size:18px}
.bottom .bottombar .btn{font-size:15px;min-height:48px}
.chrome .who{font-size:14px}
.appbar .ab{font-size:12.5px}
/* the blend Home + Count */
body.v-home .bottom,body.v-count .bottom,body.v-home #bottom,body.v-count #bottom{display:none!important}
.home{display:grid;gap:12px;max-width:560px;margin:0 auto}
.seed{border:1.5px solid var(--crust-ink);background:#fff;padding:18px;box-shadow:6px 6px 0 #F0E1C8}
.seed h1{margin:4px 0 6px}.seed p{margin:0;color:var(--crust-graphite);font-size:16px;line-height:1.45}
.hthought{border:1px solid var(--crust-rule);background:#fff;padding:16px}.hthought b{display:block;margin-top:4px;font-size:18px;line-height:1.3}
.hnums{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hnum{border-top:3px solid var(--crust-ink);border-left:1px solid var(--crust-rule);border-right:1px solid var(--crust-rule);border-bottom:1px solid var(--crust-rule);background:#fff;padding:14px;display:grid;gap:8px;align-content:start}
.hnum .mono{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600}
.ramp{display:flex;align-items:flex-end;gap:6px;height:42px}.ramp i{flex:1;background:#EEF4C4;border:1.5px solid var(--crust-ink)}.ramp i.on{background:#D4F53C}
.loop{--p:0;width:84px;height:84px;border-radius:50%;background:conic-gradient(#D4F53C calc(var(--p)*1%),#ECECE6 0);display:grid;place-items:center;border:1.5px solid var(--crust-ink)}
.loop span{width:56px;height:56px;border-radius:50%;background:#fff;display:grid;place-items:center;border:1.5px solid var(--crust-ink);font-size:15px}
.bigopen{min-height:56px;font-size:17px;width:100%}
.countseg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border:1px solid var(--crust-rule);background:#fff;margin:0 0 16px;border-radius:2px}
.countseg button{min-height:42px;border:0;background:transparent;font-weight:700;font-size:15px;color:var(--crust-graphite);border-radius:2px}
.countseg button.on{background:#D4F53C;color:var(--crust-ink);box-shadow:inset 0 0 0 1.5px var(--crust-ink)}
.ccard{border:1.5px solid var(--crust-ink);background:#fff;padding:16px;display:grid;gap:8px}.ccard.lime{background:#F4F9D6}
.cbtns{display:flex;gap:8px;flex-wrap:wrap}.cbtns .btn{min-height:48px;flex:1}
.btn.capture{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--crust-ink);background:#fff;font-weight:700;cursor:pointer}
.clist{border:1px solid var(--crust-rule);background:#fff}
.crow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--crust-rule)}.crow:last-child{border-bottom:0}
.crow span{display:grid;font-weight:700}.crow small{font-weight:400;color:var(--crust-graphite);font-size:13px}
.crow .mono{font-family:'IBM Plex Mono',monospace}
.cprog{display:grid;gap:6px;margin-bottom:10px}.cprog i{display:block;height:6px;background:#D4F53C;border:1px solid var(--crust-ink)}
.ccard.walk h2{margin:0}
.cbig{display:grid;grid-template-columns:72px 1fr 72px;gap:10px;margin:8px 0}
.cbig button{min-height:72px;font-size:32px;font-weight:700;border:1.5px solid var(--crust-ink);background:#fff;border-radius:2px}
.cbig input{min-height:72px;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:34px!important;border:1.5px solid var(--crust-ink);border-radius:2px}
.ctitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.ctitle b{font-size:18px}
.iconbtn{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--crust-ink);background:#fff;border-radius:2px}
.iconbtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linejoin:round}
.bigopen,.bigopen:hover,.bigopen:focus{background:var(--crust-ink)!important;color:#fff!important;border:1.5px solid var(--crust-ink)!important;filter:none!important}
.unlockgo:not(:disabled),.unlockgo:not(:disabled):hover{background:var(--crust-ink)!important;color:#fff!important;border-color:var(--crust-ink)!important;filter:none!important}

/* the blend sign-in (first time on a device) */
.signin{margin-bottom:14px}
.signincard{max-width:420px;margin:0 auto;display:grid;gap:12px}
.signincard .tablebutton{border:1px solid var(--crust-ink);background:#fff;min-height:56px!important;font-size:17px;text-align:left;border-radius:2px}
.signincard .tablebutton:hover{background:#FBF7EF}
.signincard .grid{gap:10px}
.signincard .actions .btn{min-height:50px;font-size:16px}
.signincard .actions .btn.primary:not(:disabled){background:var(--crust-ink)!important;color:#fff!important;border-color:var(--crust-ink)!important}
.signincard b.small{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--crust-graphite)}
body:has(.signincard) .bottom,body:has(.signincard) #bottom{display:none!important}
.signincard .tablebutton b{font-family:'Archivo',system-ui,sans-serif!important;font-weight:700;font-size:17px;letter-spacing:-.01em}

/* fixes 10/11 */
.cbig{grid-template-columns:64px minmax(0,1fr) 64px}
.cbig input{min-width:0;width:100%;box-sizing:border-box}
.cprog i{max-width:100%}
.backlink{justify-self:start;margin:0 0 6px;padding:0}
.editfirst .card{border:1.5px solid var(--crust-ink)}
.reading .rrow{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.reading .meter{display:none}
.loop.sm{width:48px;height:48px}.loop.sm span{width:30px;height:30px}
.ramp.sm{height:30px;width:64px;gap:4px}
.stairs{display:flex;align-items:flex-end;gap:3px;height:34px}.stairs i{width:12px;background:#EEF4C4;border:1.5px solid var(--crust-ink)}.stairs i.on{background:#D4F53C}
/* Guest View on a phone: the pay button stays in reach */
.guestdevice{margin:10px auto!important;padding:18px 14px 90px!important}
.guestdevice .bigpay{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:5;box-shadow:0 -10px 18px #fff}
.guestdevice .bigpay[data-action=moment1]{position:static;box-shadow:none} /* only Done/Tap to Pay pins; Make a moment stayed stuck over the total */
.guestdevice img{max-height:56px!important}

.ohrow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.bizswitch{display:flex;gap:4px;padding:3px;border:1px solid var(--crust-rule);background:#fff;border-radius:2px}
.bizswitch button{min-height:36px;padding:0 10px;border:0;background:transparent;font-weight:700;font-size:13px;color:var(--crust-graphite);border-radius:2px}
.bizswitch button.on{background:var(--crust-ink);color:#fff}

/* screens without the top chrome (sign-in, unlock, Guest View) keep clear of the clock and notch */
body:not(:has(.chrome)){padding-top:calc(env(safe-area-inset-top,0px) + 16px)!important}
.keys button,.cbig button,.posseg button,.officeseg button,.countseg button,.bizswitch button,.appbar .ab{-webkit-appearance:none;appearance:none;color:var(--crust-ink);-webkit-tap-highlight-color:transparent}.keys button svg{stroke:var(--crust-ink)}.posseg button:not(.on),.officeseg button:not(.on),.countseg button:not(.on){color:var(--crust-graphite)}.posseg button.on,.bizswitch button.on{color:#fff}

.switchbtn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1.5px solid var(--crust-ink);background:#fff;font-weight:700;font-size:14px;border-radius:2px;color:var(--crust-ink);-webkit-appearance:none}
.switchbtn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75}
.switchsheet{border:1.5px solid var(--crust-ink);background:#fff;padding:14px;margin:0 0 14px;display:grid;gap:6px;box-shadow:6px 6px 0 #F0E1C8}
.swrow{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:8px 12px;border:1px solid var(--crust-rule);background:#fff;text-align:left;border-radius:2px;color:var(--crust-ink);-webkit-appearance:none}
.swrow b{font-size:16px}.swrow span{font-size:13px;color:var(--crust-graphite)}
.swrow.on{border:1.5px solid var(--crust-ink);background:#F4F9D6}
.swadd{font-size:14px;color:var(--crust-graphite);text-decoration:underline;margin-top:6px;min-height:40px;display:inline-flex;align-items:center}

/* ===== Count: approved design CSS (r-count-*.html), scoped to .dz ===== */
.dz{max-width:520px;margin:0 auto;font-family:'Archivo',system-ui,sans-serif;color:#121314}
.dz *{box-sizing:border-box}
.dz .z-kicker,.dz .z-crumb{font:600 12px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:#565A5E}
.dz .z-h1{font-size:29px!important;line-height:1!important;font-weight:700!important;letter-spacing:-.035em!important;margin:7px 0 12px!important}
.dz .z-top{display:flex;align-items:end;justify-content:space-between;gap:12px}
.dz .z-share{width:40px;height:40px;border:0;background:transparent;padding:0;display:grid;place-items:center;margin-bottom:10px}
.dz .z-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.dz .z-switcher button{height:40px;background:#fff;border:1px solid #DADCD8;font:700 14px 'Archivo',sans-serif;color:#121314;border-radius:0;-webkit-appearance:none}
.dz .z-switcher .z-on{background:#D6E59A;border:2px solid #121314;font-weight:800}
.dz .z-panel{background:#fff;border:1.5px solid #DADCD8;margin-bottom:12px;padding:0}
.dz .z-hero,.dz .z-walk{background:#F3F8C9;border:2px solid #121314;box-shadow:6px 6px 0 #D6E59A;padding:14px;margin-bottom:14px}
.dz .z-hero h2{font-size:22px;line-height:1.05;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.dz .z-hero p,.dz .z-walk p{margin:0;color:#3f4448;line-height:1.32;font-size:15px}
.dz .z-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.dz .z-btn{background:#D6E59A;border:2px solid #121314;padding:12px;font:800 15px 'Archivo',sans-serif;color:#121314;border-radius:0;min-height:48px;-webkit-appearance:none;cursor:pointer}
.dz .z-btn.z-ink{background:#121314;color:#fff}
.dz .z-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.dz .z-chip{font:600 12px 'IBM Plex Mono',monospace;background:#fff;border:1px solid #DADCD8;padding:7px 9px;color:#121314;min-height:0;border-radius:0;-webkit-appearance:none}
.dz .z-chip.z-on{background:#121314;color:#fff;border-color:#121314}
.dz .z-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border-bottom:1px solid #ECEDE8}
.dz .z-row:last-child{border-bottom:0}
.dz .z-box{width:32px;height:32px;border:1.75px solid #121314;background:#fff;display:grid;place-items:center}
.dz .z-box.z-done,.dz .z-done .z-box{background:#D6E59A}
.dz .z-row h3{font-size:17px;font-weight:800;margin:0;letter-spacing:-.01em;overflow-wrap:anywhere}
.dz .z-row p{margin:2px 0 0;color:#565A5E;font-size:14px}
.dz .z-pill{font:600 12px 'IBM Plex Mono',monospace;background:#D6E59A;border:1px solid #C9DA83;padding:7px 8px;white-space:nowrap}
.dz .z-warn{background:#F4EFE5}
.dz .z-sectiontitle{font:600 12px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:#565A5E;margin:14px 0 8px}
.dz .z-progress{background:#fff;border:1.5px solid #DADCD8;padding:12px;margin-bottom:12px}
.dz .z-progress b{font:600 16px 'IBM Plex Mono',monospace}
.dz .z-meter{height:12px;background:#ECEDE8;border:1px solid #DADCD8;margin-top:10px;display:block!important}
.dz .z-meter i{display:block;height:100%;background:#D6E59A;border-right:2px solid #121314}
.dz .z-walk h2{font-size:26px;line-height:1;font-weight:800;letter-spacing:-.03em;margin:4px 0 6px}
.dz .z-countbox{background:#fff;border:2px solid #121314;margin:14px 0;padding:14px;text-align:center}
.dz .z-walk .z-qty{font:600 58px 'IBM Plex Mono',monospace;letter-spacing:-.06em;line-height:1.05}
.dz .z-unit{color:#565A5E;font:600 12px 'IBM Plex Mono',monospace;text-transform:uppercase}
.dz .z-stepper{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.dz .z-stepper button{height:54px;border:2px solid #121314;background:#fff;font:800 28px 'Archivo',sans-serif;color:#121314;border-radius:0;-webkit-appearance:none}
.dz .z-stepper .z-done{background:#121314;color:#fff;font-size:18px}
.dz .z-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.dz .z-pad button{height:46px;background:#fff;border:1px solid #DADCD8;font:800 20px 'Archivo',sans-serif;color:#121314;border-radius:0;-webkit-appearance:none}
.dz .z-summary{background:#fff;border:1.5px solid #DADCD8;padding:12px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}
.dz .z-summary b{font:600 16px 'IBM Plex Mono',monospace}
.dz .z-group{border:1.5px solid #DADCD8;background:#fff;margin-bottom:12px}
.dz .z-grouphead{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #DADCD8;padding:11px 12px;background:#FBFBFA}
.dz .z-grouphead h2{font-size:20px;margin:0;font-weight:700}
.dz .z-tag{font:600 12px 'IBM Plex Mono',monospace;background:#F3F8C9;border:1px solid #121314;padding:6px 8px}
.dz .z-row .z-qty{font:600 13px 'IBM Plex Mono',monospace;white-space:nowrap}
.dz .z-done h3{text-decoration:line-through;text-decoration-thickness:2px;color:#565A5E}

/* ===== table service (approved e-floor / e-maumee-front) ===== */
.dz .z-flhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 10px}
.dz .z-flhead img,.dz .z-tbhrow img{height:40px;width:auto}
.dz .z-legend{display:flex;gap:12px;flex-wrap:wrap;font:600 12px 'IBM Plex Mono',monospace;color:#565A5E;margin:4px 0 10px}
.dz .z-legend .d{display:inline-block;width:12px;height:12px;border:1.5px solid #121314;background:#fff;margin-right:6px;vertical-align:-2px}
.dz .z-legend .seated,.dz .z-tbl.seated{background:#F0E1C8}
.dz .z-legend .ordered,.dz .z-tbl.ordered,.dz .z-tbl.open{background:#D6E59A}
.dz .z-legend .check,.dz .z-tbl.check{background:#C9A27A}
.dz .z-floor{position:relative;aspect-ratio:4/5;max-width:100%;background:#F7F4EC;border:2px solid #121314;margin-bottom:14px;overflow:hidden;background-image:linear-gradient(#ECE7DA 1px,transparent 1px),linear-gradient(90deg,#ECE7DA 1px,transparent 1px);background-size:24px 24px}
.dz .z-zone{position:absolute;font:600 11px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:#565A5E}
.dz .z-zone.bar{left:6%;top:63%}.dz .z-zone.patio{left:6%;top:82%}.dz .z-zone.door{right:4%;bottom:2%}
.dz .z-floor::before{content:"";position:absolute;left:4%;right:4%;top:66%;height:0;border-top:3px solid #121314}
.dz .z-floor::after{content:"";position:absolute;left:0;right:0;top:80%;border-top:1px dashed #A9ADA6}
.dz .z-tbl{position:absolute;width:24%;aspect-ratio:1;border:2px solid #121314;background:#fff;display:grid;place-content:center;text-align:center;padding:0;border-radius:4px;color:#121314;-webkit-appearance:none}
.dz .z-tbl.round{border-radius:50%}
.dz .z-tbl.rect{aspect-ratio:1.25}
.dz .z-tbl.stool{width:15%;border-radius:50%}
.dz .z-tbl b{font:800 18px 'Archivo',sans-serif;line-height:1}
.dz .z-tbl small{font:600 10px 'IBM Plex Mono',monospace;color:#3f4448}
.dz .z-row{width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #ECEDE8;-webkit-appearance:none;color:#121314}
.dz .z-input{width:100%;min-height:48px;border:2px solid #121314;padding:0 12px;margin-top:10px;font-size:16px}
.tbh{margin-bottom:8px}
.dz .z-tbhrow{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dz .z-tabletag{font:800 18px 'Archivo',sans-serif;border:2px solid #121314;background:#D6E59A;padding:8px 12px}
.v-front .protofloor{display:none!important}

.dz .z-tbl.patio{width:20%;border-radius:50%}
.dz .z-zone.bar{top:59%}.dz .z-zone.patio{top:77%}.dz .z-zone.door{right:4%;top:2%;bottom:auto}
.dz .z-floor::before{top:62%}.dz .z-floor::after{top:76%}
body:has(.fl) .bottom,body:has(.fl) #bottom{display:none!important}

/* ===== The Line (approved e-the-line) ===== */
.dz .z-counts{border:1.5px solid #DADCD8;background:#fff;padding:12px;margin-bottom:12px}
.dz .z-counts h2{font-size:17px;margin:0 0 10px;font-weight:700}
.dz .z-countgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dz .z-count{border:1px solid #DADCD8;background:#FBFBFA;padding:9px 8px}
.dz .z-count b{font:600 23px 'IBM Plex Mono',monospace}
.dz .z-count span{display:block;color:#565A5E;font-size:13px;line-height:1.1}
.dz .z-note{font-size:13px;color:#565A5E;margin:0 0 10px}
.dz .z-ticket{background:#fff;border:1.5px solid #DADCD8;margin-bottom:14px;padding:12px}
.dz .z-ticket.urgent{border:2px solid #9D2F2F;box-shadow:6px 6px 0 #F3D4D4}
.dz .z-ticket.warn{border:2px solid #B68020;box-shadow:6px 6px 0 #F5E3B6}
.dz .z-ticket.neutral{box-shadow:6px 6px 0 #ECEDE8}
.dz .z-tickethead{display:flex;justify-content:space-between;gap:10px;align-items:start;border-bottom:1px solid #ECEDE8;padding-bottom:10px;margin-bottom:10px}
.dz .z-ticket h3{font-size:21px;margin:2px 0 0;font-weight:700;letter-spacing:-.02em}
.dz .z-timer{font:600 22px 'IBM Plex Mono',monospace;border:1px solid #DADCD8;background:#FBFBFA;padding:6px 8px}
.dz .urgent .z-timer{border-color:#9D2F2F;color:#9D2F2F;background:#FFF5F5}
.dz .warn .z-timer{border-color:#B68020;color:#7A4F09;background:#FFF8E8}
.dz .z-line{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:start;margin-bottom:8px}
.dz .z-line .z-qty{height:28px;border:1.5px solid #121314;display:grid;place-items:center;font:600 14px 'IBM Plex Mono',monospace}
.dz .z-line b{font-size:18px}
.dz .z-line p{margin:2px 0 0;color:#565A5E;line-height:1.25;font-size:14px}
.dz .z-bump{background:#D6E59A;border:2px solid #121314}
.dz button.z-pill{cursor:pointer;-webkit-appearance:none;color:#121314}
.coursebar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 12px}.coursebar .chip{min-height:44px;border:2px solid var(--crust-ink);background:#fff;font-weight:800}

/* ===== Community (approved o-community / o-community-docs) ===== */
.dz .z-sub{margin:-4px 0 12px;color:#565A5E;font-size:14px}
.dz .z-compose{border:2px solid #121314;background:#fff;padding:12px;margin-bottom:14px;display:grid;gap:8px}
.dz .z-compose input,.dz .z-compose textarea,.dz .z-compose select,.dz .z-search input{width:100%;min-height:44px;border:1.5px solid #DADCD8;padding:10px;font:16px 'Archivo',sans-serif;border-radius:0;background:#fff}
.dz .z-compose textarea{min-height:84px;resize:vertical}
.dz .z-crow{display:grid;grid-template-columns:1fr auto;gap:8px}
.dz .z-search{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}
.dz .z-thread{display:grid;grid-template-columns:44px 1fr;gap:10px;background:#fff;border:1.5px solid #DADCD8;padding:12px;margin-bottom:10px}
.dz .z-vote{display:grid;justify-items:center;align-content:start;gap:2px;width:44px;min-height:56px;border:1.5px solid #121314;background:#fff;font:600 13px 'IBM Plex Mono',monospace;-webkit-appearance:none;color:#121314}
.dz .z-vote.z-on{background:#D6E59A}
.dz .z-tbody{text-align:left;background:none;border:0;padding:0;color:#121314;-webkit-appearance:none}
.dz .z-tbody h3{font-size:19px;font-weight:800;margin:2px 0 4px;letter-spacing:-.01em}
.dz .z-tbody p{margin:0;color:#3f4448;font-size:15px;line-height:1.35}
.dz .z-tmeta{display:flex;gap:10px;align-items:center;margin-top:8px;font:600 12px 'IBM Plex Mono',monospace;color:#565A5E}
.dz .z-drawer{border:1.5px solid #121314;border-top:6px solid #121314;background:#fff;margin-bottom:12px;box-shadow:4px 4px 0 #ECEDE8}
.dz .z-docbody{white-space:pre-wrap;color:#121314!important}
.dz .z-when{font:400 12px 'IBM Plex Mono',monospace;color:#565A5E}
.hcomm{display:grid;gap:4px;text-align:left;border:1px solid var(--crust-rule);background:#fff;padding:14px;-webkit-appearance:none;color:var(--crust-ink)}
.hcomm b{font-size:17px}.hcomm span{font-size:13px;color:var(--crust-graphite)}
.hclock{display:flex;align-items:center;justify-content:center;min-height:52px;border:2px solid var(--crust-ink);background:#D6E59A;font-weight:800;color:var(--crust-ink);text-decoration:none}

/* switch as a bottom sheet */
.swback{position:fixed;inset:0;background:rgba(18,19,20,.32);z-index:60}
.switchsheet{position:fixed!important;left:0;right:0;bottom:0;z-index:61;margin:0!important;max-height:72vh;overflow:auto;padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px))!important;border:0!important;border-top:2px solid var(--crust-ink)!important;box-shadow:0 -8px 24px rgba(0,0,0,.12)!important}
.swgrab{width:44px;height:5px;background:#DADCD8;border-radius:3px;margin:2px auto 10px}
/* Guest View: the staff switch sits below the clock and stays tappable */
.posseg.guestonly{opacity:1!important;margin:calc(env(safe-area-inset-top,0px) + 6px) auto 10px!important;max-width:300px}
body:has(.posseg.guestonly){padding-top:0!important}

.grpchip{font-size:16px!important;min-height:48px!important;padding:0 18px!important}
.subchips{margin-top:8px}
.subchips .chip{font-size:14px!important;min-height:40px!important;background:#FBFBFA}

.dz .z-editfloor{justify-self:end;display:block;margin:0 0 8px auto;min-height:40px;padding:0 12px;border:1.5px solid #121314;background:#fff;font-weight:800;color:#121314;-webkit-appearance:none}
.dz .z-editing .z-tbl{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.dz .z-editing .z-tbl.z-sel{outline:3px solid #121314;outline-offset:3px;background:#D6E59A}
.teamlinks{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}.teamlinks .chip{text-decoration:none;color:var(--crust-ink)}
.dz .z-code{font:600 28px 'IBM Plex Mono',monospace;letter-spacing:.3em;text-align:center}
.dz .z-err{color:#9D2F2F;font-weight:700;margin:10px 0 0}
button.swadd{background:none;border:0;padding:0;-webkit-appearance:none}
.dz .z-code{font:600 28px 'IBM Plex Mono',monospace;letter-spacing:.3em;text-align:center}
.dz .z-err{color:#9D2F2F;font-weight:700;margin:10px 0 0}
button.swadd{background:none;border:0;padding:0;-webkit-appearance:none}

/* ===== the POS as its own full-screen app ===== */
.posbar{position:fixed;top:0;left:0;right:0;z-index:40;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:8px;padding:calc(6px + env(safe-area-inset-top,0px)) 10px 6px;background:var(--paper,#FBFBFA);border-bottom:1px solid var(--crust-rule)}
.posbar .posseg{margin:0!important;max-width:none!important;opacity:1!important}
.posmenu{width:44px;height:44px;display:grid;place-items:center;border:1.5px solid var(--crust-ink);background:#fff;border-radius:2px;-webkit-appearance:none;color:var(--crust-ink)}
.posmenu svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.poswho{font-size:13px;color:var(--crust-graphite);max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:has(.posbar){padding-top:calc(64px + env(safe-area-inset-top,0px))!important;padding-bottom:0!important}
body:has(.posbar) .bottom{bottom:0!important;padding-bottom:env(safe-area-inset-bottom,0px)!important}
/* Guest View: the switch stays pinned below the clock at any scroll, so the way back to the Front is always one tap */
body:has(.posbar .posseg.guestonly) .posbar{position:fixed;background:var(--paper,#FBFBFA);border:0}
body:has(.posbar .posseg.guestonly){padding-top:calc(76px + env(safe-area-inset-top,0px))!important}
body:has(.posbar .posseg.guestonly) .posmenu,body:has(.posbar .posseg.guestonly) .poswho{visibility:hidden}
@media(max-width:700px){.posmenusheet .snphone{display:none}}

/* ===== iPad layer (ipad1011, ChatGPT) ===== */

@media (min-width:768px){

  body:not(.v-guest){
    --ipad-posbar-h:calc(64px + env(safe-area-inset-top,0px));
    --ipad-chrome-h:calc(54px + env(safe-area-inset-top,0px));
    --ipad-appbar-h:calc(72px + env(safe-area-inset-bottom,0px));
    overflow-x:hidden;
  }

  /* ------------------------------------------------------------
     A. POS Front / cafe register
     ------------------------------------------------------------ */
  body.v-front:has(.cols){
    padding-top:var(--ipad-posbar-h)!important;
    padding-bottom:0!important;
    overflow:hidden;
    height:100dvh;
    background:var(--crust-sheet);
  }

  body.v-front:has(.cols) footer.bottom,
  body.v-front:has(.cols) #bottom{
    display:none!important;
  }

  body.v-front:has(.cols) .posbar,
  body.v-front:has(.dz.fl) .posbar,
  body.v-line .posbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:auto!important;
    margin:0!important;
    transform:none!important;
    z-index:40;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:calc(6px + env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-right,0px)) 6px max(10px,env(safe-area-inset-left,0px));
    background:var(--paper,#FBFBFA);
    border-bottom:1px solid var(--crust-rule);
  }

  body.v-front:has(.posbar) .poswho,
  body.v-line:has(.posbar) .poswho{
    max-width:160px!important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  body.v-front:has(.posbar) .posseg,
  body.v-line:has(.posbar) .posseg{
    margin:0!important;
    min-width:0;
  }

  body.v-front:has(.posbar) .posmenu,
  body.v-line:has(.posbar) .posmenu{
    min-width:44px;
    min-height:44px;
  }

  body.v-front:has(.cols) .shell{
    width:100%;
    max-width:none;
    height:calc(100dvh - var(--ipad-posbar-h));
    min-height:0;
    margin:0;
    padding:
      14px
      max(14px,env(safe-area-inset-right,0px))
      max(14px,env(safe-area-inset-bottom,0px))
      max(14px,env(safe-area-inset-left,0px));
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }

  body.v-front:has(.cols) .cols{
    flex:1 1 auto;
    min-height:0;
    width:100%;
    margin-top:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) clamp(300px,39vw,330px)!important;
    gap:14px;
    align-items:stretch;
    overflow:hidden;
  }

  body.v-front:has(.cols) .cols > section{
    min-height:0;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:0 2px 12px 0;
  }

  body.v-front:has(.cols) .cols > section > .card{
    min-height:100%;
    padding:0;
    border:0;
    background:transparent;
    overflow:visible;
  }

  body.v-front:has(.cols) .frontbiz img{
    max-height:44px;
    width:auto;
  }

  body.v-front:has(.cols) .frontnew{
    font-size:clamp(28px,3vw,38px);
    line-height:1;
    letter-spacing:-.035em;
  }

  body.v-front:has(.cols) .frontmode .btn,
  body.v-front:has(.cols) .chips .chip{
    min-height:44px;
  }

  body.v-front:has(.cols) .postiles{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px;
    overflow:visible!important;
    max-height:none!important;
    padding-bottom:22px;
    scroll-snap-type:none!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }

  body.v-front:has(.cols) .postiles::after{
    content:none!important;
    display:none!important;
  }

  body.v-front:has(.cols) .postiles > *,
  body.v-front:has(.cols) .positem{
    scroll-snap-align:none!important;
    scroll-margin:0!important;
  }

  body.v-front:has(.cols) .positem{
    min-height:104px;
    padding:14px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    grid-template-rows:auto auto;
    align-items:center;
    column-gap:12px;
    row-gap:6px;
    border:1px solid var(--crust-rule);
    background:#fff;
    box-shadow:none;
  }

  body.v-front:has(.cols) .positem .svgicon{
    grid-row:1 / 3;
    width:30px;
    height:30px;
  }

  body.v-front:has(.cols) .positem > span:not(.svgicon){
    grid-column:2;
    font-size:15px;
    line-height:1.12;
    letter-spacing:-.015em;
  }

  body.v-front:has(.cols) .positem small{
    grid-column:2;
    font:600 14px 'IBM Plex Mono',monospace;
    color:var(--crust-graphite);
  }

  body.v-front:has(.cols) .cols > aside.card{
    height:100%;
    max-height:100%;
    min-height:0;
    padding:22px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    background:#fff;
    border:1px solid var(--crust-rule);
    border-radius:2px;
  }

  body.v-front:has(.cols) .cols > aside.card > .line:first-child{
    position:sticky;
    top:-22px;
    z-index:5;
    margin:-22px -22px 0;
    padding:22px;
    background:#fff;
    border-bottom:1px solid var(--crust-rule);
  }

  body.v-front:has(.cols) .cartline{
    padding:18px 0;
  }

  body.v-front:has(.cols) .qty button{
    width:44px;
    height:44px;
  }

  body.v-front:has(.cols) .summaryrow.total{
    position:sticky;
    bottom:154px;
    z-index:4;
    margin-left:-22px;
    margin-right:-22px;
    padding:18px 22px 8px;
    background:#fff;
  }

  body.v-front:has(.cols) .summaryrow.total + *{
    position:sticky;
    bottom:112px;
    z-index:4;
    margin-left:-22px!important;
    margin-right:-22px!important;
    padding:0 22px 10px;
    background:#fff;
  }

  body.v-front:has(.cols) .summaryrow.total + * + .actions{
    position:sticky;
    bottom:58px;
    z-index:5;
    margin-left:-22px;
    margin-right:-22px;
    padding:10px 22px 8px;
    background:#fff;
    border-top:1px solid var(--crust-rule);
  }

  body.v-front:has(.cols) .summaryrow.total + * + .actions ~ .actions{
    position:sticky;
    bottom:0;
    z-index:6;
    margin-left:-22px;
    margin-right:-22px;
    padding:8px 22px 10px;
    background:#fff;
    border-top:1px solid var(--crust-rule);
  }

  body.v-front:has(.cols) .cols > aside.card .btn{
    min-height:44px;
  }


  /* ------------------------------------------------------------
     B. Floor / restaurant map
     ------------------------------------------------------------ */
  body.v-front:has(.dz.fl){
    padding-top:var(--ipad-posbar-h)!important;
    background:var(--crust-sheet);
  }

  body.v-front:has(.dz.fl) .shell{
    width:100%;
    max-width:1360px;
    padding:
      18px
      max(24px,env(safe-area-inset-right,0px))
      40px
      max(24px,env(safe-area-inset-left,0px));
  }

  body.v-front .dz.fl{
    width:100%;
    max-width:none;
    margin:0 auto;
  }

  body.v-front .dz.fl .z-flhead{
    align-items:end;
  }

  body.v-front .dz.fl .z-h1{
    font-size:clamp(32px,4vw,44px)!important;
  }

  body.v-front .dz.fl .z-switcher{
    max-width:560px;
  }

  body.v-front .dz.fl .z-switcher button,
  body.v-front .dz.fl .z-editfloor{
    min-height:44px;
  }

  body.v-front .dz.fl .z-editfloor{
    border:1.5px solid #121314;
    background:#fff;
    padding:0 14px;
    font:800 14px 'Archivo',sans-serif;
    color:#121314;
    border-radius:2px;
  }

  body.v-front .dz.fl .z-floor{
    width:100%;
    max-width:none;
    aspect-ratio:4 / 3;
    min-height:500px;
    margin:14px 0 16px;
  }

  body.v-front .dz.fl .z-tbl{
    width:16%;
    min-width:74px;
    max-width:136px;
    border-radius:2px;
  }

  body.v-front .dz.fl .z-tbl.round{
    border-radius:50%;
  }

  body.v-front .dz.fl .z-tbl.rect{
    width:18%;
  }

  body.v-front .dz.fl .z-tbl.stool{
    width:10.5%;
    min-width:58px;
  }

  body.v-front .dz.fl .z-tbl.patio{
    width:13.5%;
    min-width:66px;
  }

  body.v-front .dz.fl .z-tbl b{
    font-size:clamp(17px,2vw,23px);
  }

  body.v-front .dz.fl .z-panel{
    background:#fff;
  }

  @media (min-width:1024px){
    body.v-front .dz.fl{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(300px,360px);
      gap:10px 22px;
      align-items:start;
    }

    body.v-front .dz.fl .z-flhead{
      grid-column:1 / -1;
    }

    body.v-front .dz.fl .z-switcher{
      grid-column:1;
      grid-row:2;
    }

    body.v-front .dz.fl .z-legend{
      grid-column:1;
      grid-row:3;
    }

    body.v-front .dz.fl .z-editfloor{
      grid-column:2;
      grid-row:2 / span 2;
      justify-self:end;
      align-self:center;
    }

    body.v-front .dz.fl .z-floor{
      grid-column:1;
      grid-row:4 / span 4;
      margin-top:6px;
    }

    body.v-front .dz.fl .z-sectiontitle{
      grid-column:2;
      grid-row:4;
      margin-top:6px;
    }

    body.v-front .dz.fl .z-panel{
      grid-column:2;
      grid-row:5;
      max-height:calc(100dvh - var(--ipad-posbar-h) - 170px);
      overflow:auto;
      -webkit-overflow-scrolling:touch;
    }
  }


  /* ------------------------------------------------------------
     C. The Line / multi-column ticket board
     ------------------------------------------------------------ */
  body.v-line{
    padding-top:var(--ipad-posbar-h)!important;
    background:var(--crust-sheet);
  }

  body.v-line .shell{
    width:100%;
    max-width:none;
    margin:0;
    padding:
      18px
      max(18px,env(safe-area-inset-right,0px))
      40px
      max(18px,env(safe-area-inset-left,0px));
  }

  body.v-line .dz.ln{
    width:100%;
    max-width:none;
    margin:0;
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:14px;
    align-items:start;
  }

  body.v-line .dz.ln > .z-crumb,
  body.v-line .dz.ln > .z-h1{
    grid-column:1 / -1;
  }

  body.v-line .dz.ln > .z-h1{
    font-size:clamp(34px,4vw,48px)!important;
    margin-bottom:0!important;
  }

  body.v-line .dz.ln > .z-counts,
  body.v-line .dz.ln > .z-switcher{
    grid-column:1 / -1;
    margin:0;
  }

  body.v-line .dz.ln .z-countgrid{
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  }

  body.v-line .dz.ln .z-switcher button{
    min-height:44px;
  }

  body.v-line .dz.ln > article.z-ticket:first-of-type{
    grid-column:1;
  }

  body.v-line .dz.ln .z-ticket{
    height:100%;
    min-height:230px;
    margin:0;
    display:flex;
    flex-direction:column;
    background:#fff;
  }

  body.v-line .dz.ln .z-tickethead{
    flex:0 0 auto;
  }

  body.v-line .dz.ln .z-line{
    flex:0 0 auto;
  }

  body.v-line .dz.ln .z-actions{
    margin-top:auto;
  }

  body.v-line .dz.ln .z-actions .z-btn,
  body.v-line .dz.ln .z-btn.z-bump{
    min-height:50px;
  }

  @media (min-width:1100px){
    body.v-line .dz.ln > .z-counts{
      grid-column:1 / 3;
    }

    body.v-line .dz.ln > .z-switcher{
      grid-column:3 / -1;
      align-self:stretch;
    }
  }


  /* ------------------------------------------------------------
     D. Count / inventory two-pane layout
     ------------------------------------------------------------ */
  body.v-count{
    background:var(--crust-sheet);
  }

  body.v-count .shell{
    width:100%;
    max-width:1280px;
    padding-left:max(24px,env(safe-area-inset-left,0px));
    padding-right:max(24px,env(safe-area-inset-right,0px));
    padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
  }

  body.v-count .dz{
    --count-left:clamp(300px,34vw,390px);
    --count-gap:24px;
    width:100%;
    max-width:1160px;
    margin:0 auto;
  }

  body.v-count .dz::after{
    content:"";
    display:block;
    clear:both;
  }

  body.v-count .dz > .z-crumb,
  body.v-count .dz > .z-h1,
  body.v-count .dz > .z-top,
  body.v-count .dz > .z-switcher,
  body.v-count .dz > .z-hero,
  body.v-count .dz > .z-progress,
  body.v-count .dz > .z-walk,
  body.v-count .dz > .z-summary,
  body.v-count .dz > .z-prep{
    float:left;
    clear:left;
    width:var(--count-left);
  }

  body.v-count .dz > .z-sectiontitle,
  body.v-count .dz > .z-panel,
  body.v-count .dz > .z-group{
    margin-left:calc(var(--count-left) + var(--count-gap));
  }

  body.v-count .dz > .z-panel,
  body.v-count .dz > .z-group{
    margin-bottom:14px;
  }

  body.v-count .dz .z-h1{
    font-size:clamp(34px,4vw,46px)!important;
  }

  body.v-count .dz .z-switcher button{
    min-height:44px;
  }

  body.v-count .dz .z-hero,
  body.v-count .dz .z-walk{
    padding:18px;
  }

  body.v-count .dz .z-actions{
    gap:10px;
  }

  body.v-count .dz .z-btn,
  body.v-count .dz .z-actions .z-btn{
    min-height:52px;
  }

  body.v-count .dz .z-mini{
    gap:8px;
  }

  body.v-count .dz .z-chip{
    min-height:40px;
  }

  body.v-count .dz .z-row{
    min-height:64px;
    grid-template-columns:38px minmax(0,1fr) auto;
  }

  body.v-count .dz .z-box{
    width:36px;
    height:36px;
  }

  body.v-count .dz .z-progress{
    padding:16px;
  }

  body.v-count .dz .z-meter{
    height:14px;
  }

  body.v-count .dz .z-countbox{
    padding:18px;
  }

  body.v-count .dz .z-walk .z-qty{
    font-size:clamp(64px,8vw,92px);
  }

  body.v-count .dz .z-stepper button{
    height:64px;
  }

  body.v-count .dz .z-pad{
    gap:10px;
  }

  body.v-count .dz .z-pad button{
    height:62px;
    font-size:24px;
  }

  body.v-count .dz:has(.z-switcher .z-on[data-value="grocery"]) > .z-panel,
  body.v-count .dz:has(.z-switcher .z-on[data-value="grocery"]) > .z-group{
    break-inside:avoid;
  }

  @media (max-height:1050px){
    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]){
      --count-left:380px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-h1{
      font-size:42px!important;
      margin-bottom:10px!important;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-switcher{
      margin-bottom:10px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-progress{
      padding:12px;
      margin-bottom:10px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-walk{
      padding:14px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-countbox{
      margin:10px 0 12px;
      padding:10px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-walk .z-qty{
      font-size:64px;
      line-height:1;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-stepper{
      gap:8px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-stepper button{
      height:56px;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-pad{
      gap:8px;
      margin:12px 0 0;
    }

    body.v-count .dz:has(.z-switcher .z-on[data-value="walk"]) .z-pad button{
      height:50px;
      font-size:22px;
    }
  }


  /* ------------------------------------------------------------
     E. Home / staff dashboard
     ------------------------------------------------------------ */
  body.v-home{
    background:var(--crust-sheet);
  }

  body.v-home .shell{
    width:100%;
    max-width:1180px;
    padding-left:max(24px,env(safe-area-inset-left,0px));
    padding-right:max(24px,env(safe-area-inset-right,0px));
    padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
  }

  body.v-home .home{
    width:100%;
    max-width:1100px;
    margin:0 auto;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    align-items:stretch;
  }

  body.v-home .home .seed{
    order:1;
    grid-column:span 2;
    min-height:160px;
    padding:22px;
  }

  body.v-home .home .hthought{
    order:2;
    grid-column:span 2;
    min-height:160px;
    padding:22px;
  }

  body.v-home .home .hnums{
    order:3;
    grid-column:span 2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }

  body.v-home .home .hnum{
    min-height:178px;
    padding:18px;
  }

  body.v-home .home .hcomm{
    order:4;
    grid-column:span 2;
    min-height:178px;
    border:1px solid var(--crust-rule);
    background:#fff;
    padding:18px;
    text-align:left;
    color:var(--crust-ink);
    display:grid;
    align-content:start;
    gap:8px;
  }

  body.v-home .home .bigopen{
    order:5;
    grid-column:1 / -1;
    min-height:68px;
    width:100%;
    background:#121314;
    border-color:#121314;
    color:#fff;
    font-size:22px;
    font-weight:800;
  }


  /* ------------------------------------------------------------
     F. Community / board + composer
     ------------------------------------------------------------ */
  body.v-community{
    background:var(--crust-sheet);
  }

  body.v-community .shell{
    width:100%;
    max-width:1240px;
    padding-left:max(24px,env(safe-area-inset-left,0px));
    padding-right:max(24px,env(safe-area-inset-right,0px));
    padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
  }

  body.v-community .dz.cm{
    width:100%;
    max-width:1120px;
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,360px);
    gap:14px 22px;
    align-items:start;
  }

  body.v-community .dz.cm > .z-crumb,
  body.v-community .dz.cm > .z-h1,
  body.v-community .dz.cm > .z-sub,
  body.v-community .dz.cm > .z-switcher,
  body.v-community .dz.cm > .z-panel,
  body.v-community .dz.cm > .z-thread,
  body.v-community .dz.cm > .thread,
  body.v-community .dz.cm > .doclink{
    grid-column:1;
  }

  body.v-community .dz.cm > .z-compose{
    grid-column:2;
    grid-row:1 / span 8;
    position:sticky;
    top:calc(70px + env(safe-area-inset-top,0px));
    border:1.5px solid #121314;
    background:#fff;
    padding:14px;
  }

  body.v-community .dz.cm .z-h1{
    font-size:clamp(34px,4vw,46px)!important;
  }

  body.v-community .dz.cm .z-switcher button{
    min-height:44px;
  }

  body.v-community .dz.cm .z-compose input,
  body.v-community .dz.cm .z-compose textarea{
    width:100%;
    min-width:0;
    border:1px solid var(--crust-rule);
    background:#fff;
    color:#121314;
    font:600 16px 'Archivo',sans-serif;
    padding:12px;
  }

  body.v-community .dz.cm .z-compose input{
    min-height:44px;
  }

  body.v-community .dz.cm .z-compose textarea{
    min-height:120px;
    resize:vertical;
  }

  body.v-community .dz.cm .z-crow{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    margin-top:8px;
  }

  body.v-community .dz.cm .z-crow .z-btn{
    min-height:48px;
    white-space:nowrap;
  }

  body.v-community .dz.cm .z-panel{
    margin-bottom:0;
  }


  /* ------------------------------------------------------------
     G. Office / leave wide office intact
     ------------------------------------------------------------ */
  body.v-office .shell{
    width:100%;
    padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;
  }


  /* ------------------------------------------------------------
     H. Staff chrome / compact iPad tab bars
     ------------------------------------------------------------ */
  body:not(.v-guest) .chrome{
    padding-left:max(16px,env(safe-area-inset-left,0px))!important;
    padding-right:max(16px,env(safe-area-inset-right,0px))!important;
  }

  body:not(.v-guest) .appbar{
    justify-content:center;
    gap:2px;
    padding-left:max(8px,env(safe-area-inset-left,0px));
    padding-right:max(8px,env(safe-area-inset-right,0px));
  }

  body:not(.v-guest) .appbar .ab{
    flex:0 0 112px;
    max-width:112px;
    min-height:50px;
  }

  body:not(.v-guest) .bottomnav{
    max-width:620px;
    justify-content:center;
    gap:0;
    padding-left:8px;
    padding-right:8px;
  }

  body:not(.v-guest) .bottomnav button{
    flex:0 1 104px;
    min-width:84px;
  }

  body:not(.v-guest) .bottombar{
    max-width:760px;
  }
}


@media (min-width:1024px){

  /* A. POS Front / cafe register — iPad portrait and up */
  body.v-front:has(.cols) .cols{
    grid-template-columns:minmax(0,1fr) clamp(340px,33vw,390px)!important;
    gap:16px;
  }

  body.v-front:has(.cols) .postiles{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  body.v-front:has(.cols) .positem > span:not(.svgicon){
    font-size:16px;
  }
}


@media (min-width:1100px){

  /* B. Floor / wider map proportions */
  body.v-front .dz.fl .z-floor{
    aspect-ratio:16 / 10;
  }

  /* D. Count / wider two-pane measure */
  body.v-count .dz{
    --count-left:380px;
    --count-gap:28px;
    max-width:1200px;
  }

  /* E. Home / dashboard max width */
  body.v-home .home{
    gap:16px;
  }

  /* F. Community / roomier composer rail */
  body.v-community .dz.cm{
    grid-template-columns:minmax(0,1fr) 380px;
    gap:16px 26px;
  }
}


@media (min-width:1180px){

  /* A. POS Front / cafe register — landscape density */
  body.v-front:has(.cols) .shell{
    padding-left:max(24px,env(safe-area-inset-left,0px));
    padding-right:max(24px,env(safe-area-inset-right,0px));
  }

  body.v-front:has(.cols) .cols{
    grid-template-columns:minmax(0,1fr) clamp(360px,30vw,410px)!important;
    gap:20px;
  }

  body.v-front:has(.cols) .postiles{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:10px;
  }

  body.v-front:has(.cols) .positem{
    min-height:112px;
  }
}

/* ===== iPad layer addendum (ipad1011 r3, ChatGPT) ===== */
@media (min-width:768px){
  body.v-line .dz.ln > .z-note{
    grid-column:1 / -1;
  }

  body.v-line .dz.ln > section.z-panel{
    grid-column:1 / -1;
    grid-row:auto;
    justify-self:center;
    width:min(100%,560px);
    max-height:none;
    overflow:visible;
    margin:0;
    background:#fff;
  }

  body.v-line .dz.ln > section.z-panel .z-row{
    min-height:88px;
    border-bottom:0;
    grid-template-columns:minmax(0,1fr);
    text-align:center;
  }

  body.v-line .dz.ln > section.z-panel .z-row > :first-child:empty{
    display:none;
  }
}

/* ===== iPad layer addendum (ipad1011 r4, ChatGPT) ===== */

@media (min-width:768px){
  /* ===== 1. OFFICE: two-pane iPad rail ===== */
  body.v-office:not(.v-guest){
    overflow-x:hidden;
  }

  body.v-office:not(.v-guest) .shell{
    --office-rail:clamp(220px,25vw,256px);
    --office-gap:24px;
    --office-pad-x:max(24px,env(safe-area-inset-left,0px));
    --office-sticky-top:calc(64px + env(safe-area-inset-top,0px));
    display:grid;
    grid-template-columns:var(--office-rail) minmax(0,1fr);
    grid-template-rows:auto auto auto minmax(0,1fr);
    column-gap:var(--office-gap);
    row-gap:0;
    align-items:start;
    width:100%;
    max-width:var(--content-width);
    padding:24px var(--office-pad-x) calc(96px + env(safe-area-inset-bottom,0px));
  }

  body.v-office:not(.v-guest) .shell > .chrome,
  body.v-office:not(.v-guest) .shell > .appbar{
    grid-column:1 / -1;
  }

  body.v-office:not(.v-guest) .officehead,
  body.v-office:not(.v-guest) .officehead .ohrow{
    display:contents;
  }

  body.v-office:not(.v-guest) .officehead > .mono-label{
    grid-column:2;
    grid-row:2;
    margin:0 0 6px;
  }

  body.v-office:not(.v-guest) .officehead .ohrow > h1{
    grid-column:2;
    grid-row:3;
    margin:0 0 16px;
    min-width:0;
  }

  body.v-office:not(.v-guest) .officehead .switchbtn{
    grid-column:1;
    grid-row:2 / span 2;
    align-self:end;
    justify-self:stretch;
    min-width:0;
    width:100%;
    min-height:48px;
    padding:0 12px;
    background:#fff;
    border:1px solid var(--crust-ink);
    border-radius:2px;
    color:var(--crust-ink);
    font:800 14px 'Archivo',sans-serif;
  }

  body.v-office:not(.v-guest) .officehead .switchbtn span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  body.v-office:not(.v-guest) .officeseg{
    grid-column:1;
    grid-row:4;
    position:sticky;
    top:var(--office-sticky-top);
    z-index:12;
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    width:100%;
    min-width:0;
    margin:0;
    padding:8px;
    background:#fff;
    border:1px solid var(--crust-rule);
    border-radius:2px;
  }

  body.v-office:not(.v-guest) .officeseg::before{
    content:"Sections";
    display:block;
    padding:4px 6px 9px;
    color:var(--crust-graphite);
    font:600 12px 'IBM Plex Mono',monospace;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  body.v-office:not(.v-guest) .officeseg button{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    width:100%;
    min-width:0;
    min-height:48px;
    padding:0 12px;
    text-align:left;
    background:#fff;
    border:0;
    border-top:1px solid #ECEDE8;
    border-radius:2px;
    color:var(--crust-graphite);
    font:700 14px 'Archivo',sans-serif;
  }

  body.v-office:not(.v-guest) .officeseg button.on{
    margin:6px 0;
    background:var(--crust-lime);
    border:2px solid var(--crust-ink);
    color:var(--crust-ink);
    font-weight:800;
    box-shadow:none;
  }

  body.v-office:not(.v-guest) .officebody{
    grid-column:2;
    grid-row:4;
    position:relative;
    min-width:0;
    width:100%;
    margin:0;
  }

  body.v-office:not(.v-guest) .pulsehead{
    margin-top:0;
  }

  body.v-office:not(.v-guest) .readings{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  body.v-office:not(.v-guest) .reading{
    min-height:156px;
  }

  body.v-office:not(.v-guest) .moves{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }

  body.v-office:not(.v-guest) .move{
    min-height:0;
  }

  body.v-office:not(.v-guest) .officebody .officemore{
    position:absolute;
    left:calc(-1 * (var(--office-rail) + var(--office-gap)));
    top:318px;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    width:var(--office-rail);
    margin:0;
    padding:12px;
    background:#fff;
    border:1px solid var(--crust-rule);
    border-radius:2px;
  }

  body.v-office:not(.v-guest) .officemore .mono-label{
    margin:0 0 2px;
  }

  body.v-office:not(.v-guest) .officemore .chip{
    justify-content:flex-start;
    width:100%;
    min-height:44px;
    padding:10px 12px;
    text-align:left;
    background:#fff;
    border:1px solid var(--crust-rule);
    border-radius:2px;
  }

  body.v-office:not(.v-guest) .officemore .chip:hover{
    border-color:var(--crust-ink);
    background:var(--crust-sheet);
  }

  /* ===== 2. SIGN-IN: iPad calm card / large tiles / large PIN ===== */
  body:not(.v-guest):has(.unlock.signin):has(.signincard){
    overflow-x:hidden;
    background:var(--crust-sheet);
  }

  body:not(.v-guest):has(.unlock.signin):has(.signincard) .shell{
    display:grid;
    align-content:center;
    justify-items:center;
    gap:14px;
    width:100%;
    max-width:none;
    min-height:100dvh;
    padding:clamp(32px,7vh,76px) max(28px,env(safe-area-inset-left,0px)) calc(40px + env(safe-area-inset-bottom,0px)) max(28px,env(safe-area-inset-right,0px));
  }

  body:not(.v-guest):has(.unlock.signin):has(.signincard) .unlock{
    width:min(100%,760px);
    max-width:none;
    margin:0;
    gap:12px;
  }

  body:not(.v-guest):has(.unlock.signin):has(.signincard) .unlock h1{
    margin:0;
    font-size:clamp(34px,4.2vw,48px);
    line-height:.98;
    letter-spacing:-.035em;
  }

  body:not(.v-guest):has(.unlock.signin):has(.signincard) .unlock .muted{
    max-width:56ch;
    font-size:16px;
    line-height:1.35;
  }

  body:not(.v-guest):has(.unlock.signin):has(.signincard .tablebutton) .unlock{
    width:min(100%,860px);
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard{
    width:min(100%,860px);
    max-width:none;
    margin:0;
    gap:16px;
    padding:22px;
    background:#fff;
    border:2px solid var(--crust-ink);
    border-radius:2px;
    box-shadow:8px 8px 0 #F0E1C8;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard > b.small{
    margin-top:4px;
    color:var(--crust-graphite);
    font:600 12px 'IBM Plex Mono',monospace;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard > b.small:first-child{
    margin-top:0;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard .grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
    margin:0 0 12px !important;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard .tablebutton{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-height:76px !important;
    padding:18px !important;
    text-align:left !important;
    background:#fff;
    border:1px solid var(--crust-ink);
    border-radius:2px;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard .tablebutton b{
    font-family:'Archivo',sans-serif !important;
    font-size:18px;
    font-weight:800;
    line-height:1.08;
    letter-spacing:-.02em;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard .tablebutton:hover{
    background:var(--crust-sheet);
    border-color:var(--crust-ink);
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard .actions{
    justify-content:flex-start;
    margin-top:4px !important;
  }

  body:not(.v-guest):has(.signincard .tablebutton) .signincard .actions .btn{
    min-height:50px;
    padding-inline:20px;
    font-size:15px;
  }

  body:not(.v-guest):has(.unlock.signin):has(.pinpad) .unlock{
    width:min(100%,560px);
  }

  body:not(.v-guest):has(.pinpad) .signincard{
    width:min(100%,560px);
    max-width:none;
    margin:0;
    gap:16px;
  }

  body:not(.v-guest):has(.pinpad) .unlockstore{
    padding:16px 18px;
    background:#fff;
    border:1px solid var(--crust-rule);
    border-radius:2px;
  }

  body:not(.v-guest):has(.pinpad) .pinpad{
    gap:16px;
    padding:24px;
    background:#F4EFE5;
    border:2px solid var(--crust-ink);
    border-radius:2px;
    box-shadow:8px 8px 0 #F0E1C8;
  }

  body:not(.v-guest):has(.pinpad) .pindots{
    min-height:22px;
    gap:12px;
  }

  body:not(.v-guest):has(.pinpad) .pindots i{
    width:16px;
    height:16px;
    border:1.5px solid var(--crust-ink);
  }

  body:not(.v-guest):has(.pinpad) .keys{
    gap:12px;
  }

  body:not(.v-guest):has(.pinpad) .keys button{
    min-height:76px;
    background:#fff;
    border:1px solid var(--crust-ink);
    border-radius:2px;
    color:var(--crust-ink);
    font:800 26px 'Archivo',sans-serif;
  }

  body:not(.v-guest):has(.pinpad) .keys button:active{
    background:var(--crust-lime);
  }

  body:not(.v-guest):has(.pinpad) .signincard .actions{
    justify-content:center !important;
    gap:10px;
    margin-top:8px !important;
  }

  body:not(.v-guest):has(.pinpad) .signincard .actions .btn{
    min-width:116px;
    min-height:52px;
    font-size:16px;
  }

  /* ===== 3. FLOOR: full-height map + full-height open-check rail ===== */
  body.v-front:not(.v-guest):has(.dz.fl){
    overflow-x:hidden;
  }

  body.v-front:not(.v-guest):has(.dz.fl) .shell{
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    width:100%;
    max-width:none;
    min-height:calc(100dvh - var(--ipad-posbar-h,64px));
    padding:0 max(24px,env(safe-area-inset-left,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-right,0px));
  }

  body.v-front:not(.v-guest):has(.dz.fl) .shell > .posbar{
    grid-row:1;
  }

  body.v-front:not(.v-guest) .dz.fl{
    grid-row:2;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    width:100%;
    max-width:none;
    min-width:0;
    min-height:0;
    margin:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-flhead,
  body.v-front:not(.v-guest) .dz.fl .z-switcher,
  body.v-front:not(.v-guest) .dz.fl .z-legend,
  body.v-front:not(.v-guest) .dz.fl .z-editfloor,
  body.v-front:not(.v-guest) .dz.fl .z-floor,
  body.v-front:not(.v-guest) .dz.fl .z-sectiontitle,
  body.v-front:not(.v-guest) .dz.fl .z-panel{
    min-width:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-flhead{
    margin:18px 0 4px;
  }

  body.v-front:not(.v-guest) .dz.fl .z-switcher{
    max-width:620px;
    margin:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-switcher button,
  body.v-front:not(.v-guest) .dz.fl .z-editfloor{
    min-height:44px;
  }

  body.v-front:not(.v-guest) .dz.fl .z-legend{
    margin:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-floor{
    width:100%;
    height:clamp(560px,calc(100dvh - 326px - env(safe-area-inset-bottom,0px)),980px);
    max-width:none;
    min-height:560px;
    aspect-ratio:auto;
    margin:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-tbl{
    width:clamp(68px,9.5vw,128px);
    height:clamp(68px,9.5vw,128px);
    min-width:44px;
    min-height:44px;
    aspect-ratio:auto;
    border-radius:2px;
  }

  body.v-front:not(.v-guest) .dz.fl .z-tbl.round{
    border-radius:50%;
  }

  body.v-front:not(.v-guest) .dz.fl .z-tbl.rect{
    width:clamp(96px,11vw,150px);
    height:clamp(76px,8.5vw,116px);
  }

  body.v-front:not(.v-guest) .dz.fl .z-tbl.stool{
    width:clamp(58px,7vw,92px);
    height:clamp(58px,7vw,92px);
    border-radius:2px;
  }

  body.v-front:not(.v-guest) .dz.fl .z-tbl.patio{
    width:clamp(86px,9.5vw,128px);
    height:clamp(76px,8.5vw,112px);
    border-radius:2px;
  }

  body.v-front:not(.v-guest) .dz.fl .z-tbl b{
    font-size:clamp(18px,2vw,26px);
  }
}

@media (min-width:1024px){
  /* ===== 2. SIGN-IN: 3-up lists when the card has room ===== */
  body:not(.v-guest):has(.signincard .tablebutton) .signincard .grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media (min-width:960px) and (orientation:landscape){
  /* ===== 2. SIGN-IN: PIN screen two-column landscape composition ===== */
  body:not(.v-guest):has(.pinpad) .shell{
    grid-template-columns:minmax(280px,360px) minmax(420px,520px);
    justify-content:center;
    align-items:start;
    column-gap:56px;
    row-gap:0;
  }

  body:not(.v-guest):has(.pinpad) .unlock{
    grid-column:1;
    justify-self:end;
    align-self:start;
    width:100%;
  }

  body:not(.v-guest):has(.pinpad) .signincard{
    grid-column:2;
    justify-self:start;
    align-self:start;
    width:100%;
  }

  body:not(.v-guest):has(.pinpad) .pinpad{
    padding:26px;
  }

  body:not(.v-guest):has(.pinpad) .keys button{
    min-height:78px;
  }
}

@media (min-width:1000px){
  /* ===== 1. OFFICE: denser detail pane on larger iPads ===== */
  body.v-office:not(.v-guest) .moves{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (min-width:1024px){
  /* ===== 3. FLOOR: right open-check rail with independent scroll ===== */
  body.v-front:not(.v-guest):has(.dz.fl){
    overflow:hidden;
  }

  body.v-front:not(.v-guest):has(.dz.fl) .shell{
    height:calc(100dvh - var(--ipad-posbar-h,64px));
    min-height:0;
    overflow:hidden;
  }

  body.v-front:not(.v-guest):has(.dz.fl) .shell > .posbar{
    min-width:0;
  }

  body.v-front:not(.v-guest) .dz.fl{
    grid-template-columns:minmax(0,1fr) clamp(300px,28vw,380px);
    grid-template-rows:auto auto auto minmax(0,1fr);
    column-gap:22px;
    row-gap:12px;
    align-self:stretch;
    height:auto;
    min-height:0;
    overflow:hidden;
  }

  body.v-front:not(.v-guest) .dz.fl > *{
    min-height:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-flhead{
    grid-column:1 / -1;
    grid-row:1;
    margin:20px 0 2px;
  }

  body.v-front:not(.v-guest) .dz.fl .z-switcher{
    grid-column:1;
    grid-row:2;
  }

  body.v-front:not(.v-guest) .dz.fl .z-editfloor{
    grid-column:2;
    grid-row:2;
    align-self:start;
    justify-self:end;
    margin:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-legend{
    grid-column:1;
    grid-row:3;
    align-self:center;
  }

  body.v-front:not(.v-guest) .dz.fl .z-sectiontitle{
    grid-column:2;
    grid-row:3;
    align-self:center;
    margin:0;
  }

  body.v-front:not(.v-guest) .dz.fl .z-floor{
    grid-column:1;
    grid-row:4;
    align-self:stretch;
    height:auto;
    min-height:0;
    max-height:none;
    margin:0;
    overflow:hidden;
  }

  body.v-front:not(.v-guest) .dz.fl .z-panel{
    grid-column:2;
    grid-row:4;
    align-self:stretch;
    height:auto;
    min-height:0;
    margin:0;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
}

@media (min-width:1180px){
  /* ===== 1. OFFICE: 3-column Rhythm readings on wide iPad / desktop widths ===== */
  body.v-office:not(.v-guest) .readings{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (min-width:768px) and (max-height:850px){
  /* ===== 2. SIGN-IN: avoid vertical clipping on landscape iPads ===== */
  body:not(.v-guest):has(.unlock.signin):has(.signincard) .shell{
    align-content:start;
    padding-top:28px;
  }
}
/* code1011: "Send a new code" on the add-account card - same square bordered button, white ground (lime = Different email, ink = Sign in) */
.dz .z-btn.z-plain{background:#fff}
.dz .z-btn:disabled{opacity:.55;cursor:default}
.dz .z-hero .z-aanote{margin-top:8px;font-weight:600}
.dz .z-aaold[hidden]{display:none}
/* code1011: the measured top bar (live.js sets --bar-h) - content always starts below it, focus scrolling too */
body:has(.chrome){padding-top:max(calc(54px + env(safe-area-inset-top,0px)),calc(var(--bar-h,0px) + 6px))}
html:has(.chrome),html:has(.posbar){scroll-padding-top:calc(var(--bar-h,60px) + 8px)}
@media(max-width:767px){body:has(.posbar){padding-top:max(calc(64px + env(safe-area-inset-top,0px)),calc(var(--bar-h,0px) + 6px))!important}}

/* square1011: Live from Square */
.sqhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:18px 0 10px}
.sqhead .mono-label{margin:0}
.sqpill{background:var(--crust-lime);border-color:transparent}
.sqsrc{display:block;margin-top:4px;font-size:11px}
.sqcard{margin-top:15px}
.sqtop{margin-top:15px}
.sqhours{display:flex;align-items:flex-end;gap:4px;height:120px;margin-top:12px;padding-bottom:18px}
.sqhr{position:relative;flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center}
.sqhr .sqlw{position:absolute;bottom:0;left:12%;right:12%;border:1px dashed #989C97;border-bottom:0}
.sqhr .sqnow{position:relative;width:64%;background:var(--crust-ink)}
.sqhr small{position:absolute;bottom:-18px;font-size:10px;color:var(--crust-graphite);font-variant-numeric:tabular-nums}
.sqrow span{display:grid;grid-template-columns:3.5em 6.5em 5em;gap:8px;text-align:right;font-variant-numeric:tabular-nums}
.sqrow i{font-style:normal}
.sqrowhead,.sqrowtotal{font-weight:700}
@media (max-width:550px){.sqrow span{grid-template-columns:2.5em 5.5em 4.2em;gap:4px;font-size:14px}.sqhours{gap:2px}.sqhr small{font-size:9px}}

/* cart1011: no cart bar means no footer at all (no empty white strip or rule above the tabs) */
#bottom:not(:has(.bottombar)){display:none!important}

/* ===== simple1011 (Josh 10/11, the Simplicity walk): thin tabs in the brand, one switcher, Done on the POS, Team sheets ===== */
/* thin tabs: one 1.5px ink frame, 1px ink dividers, the lit tab in lime. Same look on every segmented control. */
.thinseg,.officeseg,.dz .z-switcher,.posseg{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0!important;padding:0!important;border:1.5px solid var(--crust-ink)!important;background:#fff!important;border-radius:2px!important;box-shadow:none!important;overflow:hidden}
.thinseg{margin:0 0 14px}
.thinseg button,.officeseg button,.dz .z-switcher button,.posseg button{min-height:36px!important;height:auto!important;margin:0!important;padding:0 6px!important;border:0!important;border-left:1px solid var(--crust-ink)!important;border-radius:0!important;background:#fff!important;color:var(--crust-ink)!important;font:700 13px/1.1 'Archivo',sans-serif!important;box-shadow:none!important;-webkit-appearance:none;appearance:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.thinseg button:first-child,.officeseg button:first-child,.dz .z-switcher button:first-child,.posseg button:first-child{border-left:0!important}
.thinseg button.on,.officeseg button.on,.dz .z-switcher button.z-on,.posseg button.on{background:#D6E59A!important;color:var(--crust-ink)!important;font-weight:800!important}
.officeseg{margin:0 0 16px!important}
.officeseg button{font-size:12.5px!important;padding:0 2px!important}
.posseg button{min-height:40px!important;font-size:14px!important}
.setupseg{margin-top:-4px}
@media (max-width:380px){.officeseg button{font-size:11.5px!important}}
/* POS: big touch targets stay on the register and The Line (iPad), the frame stays thin */
@media (min-width:768px){body.v-front .posseg button,body.v-line .posseg button,body.v-front .dz .z-switcher button,body.v-line .dz .z-switcher button,body.v-count .dz .z-switcher button,body.v-community .dz.cm .z-switcher button{min-height:44px!important}}
/* iPad Office keeps its approved section rail (a vertical list), not a strip */
@media (min-width:768px){
  body.v-office:not(.v-guest) .officeseg{display:grid!important;grid-auto-flow:row;grid-template-columns:1fr;padding:8px!important;border:1px solid var(--crust-rule)!important;overflow:visible}
  body.v-office:not(.v-guest) .officeseg button{min-height:48px!important;justify-content:flex-start;text-align:left;padding:0 12px!important;border:0!important;border-top:1px solid #ECEDE8!important;font-size:14px!important}
  body.v-office:not(.v-guest) .officeseg button.on{border:1.5px solid var(--crust-ink)!important;margin:4px 0!important}
}
/* the one switcher opens from the business name, top right of every tab */
.bizbtn{display:inline-flex;align-items:center;gap:4px;min-height:36px;max-width:56vw;padding:0 8px 0 10px;border:1.5px solid var(--crust-ink);background:#fff;border-radius:2px;color:var(--crust-ink);font:700 14px 'Archivo',sans-serif;-webkit-appearance:none;appearance:none;cursor:pointer}
.bizbtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bizbtn svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.bizbtn[aria-expanded="true"]{background:#D6E59A}
.onesheet .swme{border:1.5px solid var(--crust-ink);background:#F4F9D6}
.onesheet .mono-label{margin:10px 0 2px}
.onesheet .swout{margin-top:10px}
.onesheet .swforget{justify-self:start;min-height:40px;font-size:14px;color:var(--crust-graphite)}
button.swrow{-webkit-appearance:none;appearance:none;width:100%;cursor:pointer}
@media (min-width:768px){.switchsheet.onesheet,.switchsheet.tmsheet{left:50%!important;right:auto!important;width:min(560px,92vw);transform:translateX(-50%);bottom:24px!important;border:1.5px solid var(--crust-ink)!important;box-shadow:7px 7px 0 #F0E1C8}}
/* Done on the POS (personal devices). A station keeps the register full screen, no way out without a PIN. */
.posbar{grid-template-columns:auto minmax(0,1fr) auto!important}
.posdone{min-width:64px;min-height:44px;padding:0 12px;border:1.5px solid var(--crust-ink);background:#fff;border-radius:2px;color:var(--crust-ink);font:800 15px 'Archivo',sans-serif;-webkit-appearance:none;appearance:none;cursor:pointer}
.posdone.ghost{display:block;min-width:0;width:0;padding:0;border:0;background:none}
body:has(.posbar .posseg.guestonly) .posdone{visibility:hidden}
/* Office > Team: people as a list, each opens a sheet; add a person with a role template */
.tmlist{padding:6px 0!important}
.tmrow{display:grid;grid-template-columns:36px minmax(0,1fr) auto 14px;align-items:center;gap:10px;width:100%;min-height:58px;padding:8px 14px;border:0;border-top:1px solid #ECEDE8;background:#fff;text-align:left;color:var(--crust-ink);-webkit-appearance:none;appearance:none;cursor:pointer}
.tmrow:first-child{border-top:0}
.tmrow.off{opacity:.55}
.tmav{width:36px;height:36px;display:grid;place-items:center;background:#DED7F0;font:800 15px 'Archivo',sans-serif}
.tmwho{min-width:0;display:grid}.tmwho b{font-size:15px}.tmwho small{font-size:12.5px;color:var(--crust-graphite);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tmtag{font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--crust-graphite)}
.tmrow .arrow{color:var(--crust-graphite)}
.tmaddbtn{margin:10px 14px 8px;width:calc(100% - 28px)}
.tmlog summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tmsheet .tmh{font:800 26px/1.05 'Archivo',sans-serif;font-stretch:112%;margin:2px 0 6px}
.tmsheet .field{display:grid;gap:4px;margin:8px 0}
.tmsheet .field input,.tmpin input{min-height:44px;border:1px solid var(--crust-rule);padding:0 12px;font-size:16px;background:#fff;border-radius:2px}
.tmsheet .tmgo{width:100%;margin-top:12px;min-height:48px}
.tmsheet .linkbtn{justify-self:center;min-height:40px}
.tmtpl{display:grid;gap:3px;width:100%;padding:12px 14px;border:1px solid var(--crust-rule);background:#fff;text-align:left;border-radius:2px;color:var(--crust-ink);-webkit-appearance:none;appearance:none;cursor:pointer}
.tmtpl b{font-size:17px}.tmtpl span{font-size:13.5px;color:var(--crust-graphite)}
.tmtpl.on{border:2px solid var(--crust-ink);background:#D6E59A}
.tmgroup{margin:12px 0 4px!important}
.tmperm{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:46px;padding:6px 10px;border:0;border-top:1px solid #ECEDE8;background:#fff;text-align:left;color:var(--crust-ink);-webkit-appearance:none;appearance:none;cursor:pointer}
.tmperm b{font-size:15px;font-weight:700}.tmperm small{font:500 12px 'IBM Plex Mono',monospace;color:var(--crust-graphite);text-align:right}
.tmperm .tmbox{width:22px;height:22px;border:1.5px solid var(--crust-ink);display:grid;place-items:center;background:#fff}
.tmperm.on .tmbox{background:#D6E59A}
.tmperm.changed b::after{content:" · changed";font:600 11px 'IBM Plex Mono',monospace;color:var(--crust-graphite);letter-spacing:.04em}
.tmperm:disabled{opacity:.5;cursor:default}
.tmchips{flex-wrap:wrap}
.tmpin{display:flex;gap:8px;align-items:center}.tmpin input{width:120px}
.tmoff{color:#A52D28!important}
.tmready{display:grid;gap:2px;padding:12px 14px;border:2px solid var(--crust-ink);background:#F3F8C9;margin:8px 0}
.tmready b{font-size:18px}.tmready span{font-size:13.5px;color:var(--crust-graphite)}
.sa-embed{padding:0!important;margin:0!important}
/* Rhythm: Reports and exports fold in under the readings; the engine drawings (stairs, loops, ramps) are untouched */
details.reports#reports>summary{min-height:48px;display:flex;align-items:center}
/* launch1011: invite a teammate */
.tmbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 14px 8px}.tmbtns .btn{min-height:46px}
.tminv{cursor:default}.tminv .tmav{background:#F3F8C9}
.tmready .tmlink{font:500 13px 'IBM Plex Mono',monospace;word-break:break-all}.tmready .tmcode{font:700 26px 'IBM Plex Mono',monospace;letter-spacing:.08em}
a.btn.tmmail{display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--crust-ink)}
/* launch1011: no menu yet (self-contained so it reads the same on Home, the staff Home and the POS) */
.nomenuwrap{margin:12px 0}
.nomenuwrap .nomenu{display:block;background:#F3F8C9;border:2px solid #121314;box-shadow:7px 7px 0 #F0E1C8;padding:18px;margin:0}
.nomenu .mono-label{margin:0 0 4px}
.nomenu h2{font:800 24px/1.08 'Archivo',sans-serif;font-stretch:112%;margin:0 0 6px;color:#121314}
.nomenu p{margin:0 0 4px;color:#121314;font-size:15px}
.nomenu .z-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.nomenu .z-btn{display:flex;align-items:center;justify-content:center;min-height:48px;border:2px solid #121314;background:#D6E59A;color:#121314;font:800 15px 'Archivo',sans-serif;border-radius:2px;cursor:pointer;-webkit-appearance:none;appearance:none}
.nomenu .z-btn.z-ink{background:#121314;color:#fff}
/* simple1011: Moments at the counter, on receipts and in the wallet */
.mmbox{margin:12px 0 4px;padding:10px 12px;border:1.5px solid var(--crust-ink);background:#fff}
.mmbox .mono-label{margin:0 0 6px}.mmbox input{width:100%;min-height:44px;border:1px solid var(--crust-rule);padding:0 10px;font-size:16px;border-radius:2px}
.mmname{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;min-height:44px;padding:0;border:0;background:none;text-align:left;color:var(--crust-ink);-webkit-appearance:none;appearance:none;cursor:pointer}
.mmav{width:32px;height:32px;display:grid;place-items:center;background:#D6E59A;font-weight:800}
.mmname b{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mmfr{font:500 12px 'IBM Plex Mono',monospace;color:var(--crust-graphite)}
.mmready{font:700 11px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;background:#D4F53C;padding:2px 6px}
.mmrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #ECEDE8}
.mmrow span{display:grid}.mmrow small{color:var(--crust-graphite)}
.mmapplied{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;padding:6px 8px;background:#F3F8C9;font-weight:700;font-size:14px}
.gvqr{display:flex;align-items:center;gap:14px;text-align:left}.gvqr img{flex:none;border:1.5px solid #121314}
.gvqr span{display:grid;gap:2px}
.rcqr{text-align:center;margin:14px 0}.rcqr img{border:1.5px solid #121314}
.dishcard{margin:16px 0;border:2px solid #121314;box-shadow:7px 7px 0 #F0E1C8;background:#F3F8C9}
.dishcard h3{font-size:22px;margin:2px 0 6px}.dishpick{display:flex;flex-wrap:wrap;gap:6px}
.qrcards{margin:0 0 15px}
.dishrow .z-mini{margin-top:6px}
@media (max-width:600px){.posbar:has(.posdone:not(.ghost)) .poswho{display:none}.posseg button{font-size:13px!important;padding:0 4px!important}}
/* ===== simple1011 · ChatGPT polish pass (gpt-5.5, 10/11), applied within Josh's constraints ===== */
.chrome .bizbtn{min-height:36px;padding:0 10px 0 12px;background:#FBFBFA;font-weight:800;box-shadow:none}
.chrome{background:#FBFBFA!important;border-bottom:1px solid #ECEDE8}
.thinseg,.officeseg,.sa .seg.thin,.posseg{background:#FBFBFA!important}
.thinseg button:not(.on),.officeseg button:not(.on),.posseg button:not(.on),.dz .z-switcher button:not(.z-on){background:#FBFBFA!important}
.posbar .posdone{min-height:40px;min-width:56px;background:#FBFBFA;font-weight:800;box-shadow:none}
.switchsheet.onesheet .swrow{min-height:48px;border:1px solid #ECEDE8;background:#fff;box-shadow:none}
.switchsheet.onesheet .swrow.on,.switchsheet.onesheet .swme{border:1.5px solid #121314}
.tmrow{padding:10px 14px}
@media (max-width:767px){.switchsheet.tmsheet{background:#FBFBFA!important;border-top:1.5px solid #121314!important;box-shadow:0 -6px 0 #F0E1C8!important;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px))!important}}
.mmbox{border:1px solid #DADCD8;padding:12px 14px}
.mmname b{white-space:normal;overflow-wrap:anywhere;line-height:1.15}
/* Setup > Moments: the reward rows stack on a phone (frames · reward · remove, then the description full width) */
@media (max-width:600px){
  .officebody .twocol[style*="80px 1fr 1.6fr auto"]{grid-template-columns:64px minmax(0,1fr) 44px!important}
  .officebody .twocol[style*="80px 1fr 1.6fr auto"]>:nth-child(3){grid-column:1 / -1;grid-row:2}
  .officebody .twocol[style*="80px 1fr 1.6fr auto"]>:nth-child(4){grid-column:3;grid-row:1}
}
.tmsheet button:disabled{background:#ECEDE8!important;color:#565A5E!important;border:1px solid #DADCD8!important;box-shadow:none!important;opacity:1}

/* guests1012: Guests in Moments. Authored by ChatGPT (gpt-5.5), applied verbatim; see From Chat - Moments guests.md */
.gx {
  --ink: #121314;
  --graphite: #565A5E;
  --rule: #DADCD8;
  --sheet: #FBFBFA;
  --lime: #D4F53C;
  --tab: #D6E59A;
  --positive: #285C44;
  --danger: #A52D28;

  box-sizing: border-box;
  width: 100%;
  overflow-x: hidden;
  background: var(--sheet);
  color: var(--ink);
  font-family: "Archivo", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 1.35;
}

.gx *,
.gx *::before,
.gx *::after {
  box-sizing: inherit;
}

.gx .mono-label,
.gx .gx-count,
.gx .gx-date,
.gx .gx-num,
.gx .gx-stat-value,
.gx input,
.gx textarea {
  font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

.gx h2,
.gx h3,
.gx p {
  margin: 0;
}

.gx h2 {
  font-size: 26px;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.gx h3 {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.gx .gx-muted {
  color: var(--graphite);
}

.gx .mono-label {
  font-size: 10px;
  line-height: 1.1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--graphite);
}

.gx .card {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 2px;
  padding: 16px;
}

.gx .gx-shell {
  display: block;
}

.gx .gx-shell .gx-detailpane {
  display: none;
}

.gx .gx-shell.gx--detail-open .gx-listpane {
  display: none;
}

.gx .gx-shell.gx--detail-open .gx-detailpane {
  display: block;
}

.gx .gx-listpane,
.gx .gx-detailpane,
.gx .gx-single {
  min-width: 0;
}

.gx .gx-head {
  display: grid;
  gap: 5px;
  margin-bottom: 14px;
}

.gx .gx-kicker {
  color: var(--graphite);
  font-size: 13px;
}

.gx .field {
  display: grid;
  gap: 6px;
}

.gx .field label {
  font-size: 12px;
  color: var(--graphite);
}

.gx input,
.gx textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 10px 11px;
  font-size: 14px;
}

.gx textarea {
  min-height: 78px;
  resize: vertical;
}

.gx input:focus,
.gx textarea:focus,
.gx button:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}

.gx .thinseg {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  margin: 12px 0;
}

.gx .thinseg button {
  min-width: 0;
  min-height: 44px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 0 5px;
  font: inherit;
  font-size: 11.5px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  white-space: nowrap;
}

.gx .thinseg button.on {
  border: 1.5px solid var(--ink);
  background: var(--tab);
}

.gx .gx-count {
  font-size: 10.5px;
}

.gx .gx-quick {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-bottom: 10px;
}

.gx .gx-entry {
  min-height: 44px;
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
}

.gx .gx-list {
  display: grid;
  gap: 8px;
}

.gx .gx-guestrow {
  width: 100%;
  min-height: 66px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 10px 11px;
  font: inherit;
  text-align: left;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.gx .gx-guest-main {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.gx .gx-name {
  font-weight: 800;
  font-size: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gx .gx-sub {
  color: var(--graphite);
  font-size: 12.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gx .gx-guest-side {
  display: grid;
  justify-items: end;
  gap: 5px;
  color: var(--graphite);
  font-size: 11.5px;
}

.gx .gx-total {
  margin-top: 12px;
  color: var(--graphite);
  font-size: 12px;
}

.gx .gx-back {
  min-height: 44px;
  border: 0;
  background: transparent;
  color: var(--ink);
  padding: 0;
  margin-bottom: 6px;
  font: inherit;
  font-weight: 800;
}

.gx .gx-cardhead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.gx .gx-cardname {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.gx .gx-section {
  border-top: 1px solid var(--rule);
  padding-top: 16px;
  margin-top: 16px;
  display: grid;
  gap: 10px;
}

.gx .gx-strip {
  display: flex;
  gap: 6px;
  align-items: center;
}

.gx .gx-strip.mini {
  gap: 3px;
}

.gx .gx-frame {
  position: relative;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border: 1.5px solid var(--ink);
  border-radius: 2px;
  background: #fff;
}

.gx .gx-frame::after {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px solid var(--rule);
  border-radius: 2px;
}

.gx .gx-frame.filled {
  background: linear-gradient(rgba(212, 245, 60, 0.34), rgba(212, 245, 60, 0.34)), #fff;
}

.gx .gx-strip.mini .gx-frame {
  width: 13px;
  height: 13px;
  border-width: 1px;
}

.gx .gx-strip.mini .gx-frame::after {
  inset: 3px;
}

.gx .gx-stripline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.gx .pill,
.gx .chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 4px 8px;
  font-size: 12.5px;
}

.gx .pill.ready {
  border-color: var(--positive);
  color: var(--positive);
  background: linear-gradient(rgba(212, 245, 60, 0.22), rgba(212, 245, 60, 0.22)), #fff;
}

.gx .gx-chiprow,
.gx .gx-pillrow {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.gx .gx-statgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.gx .gx-stat {
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  padding: 9px;
  min-width: 0;
}

.gx .gx-stat-value {
  display: block;
  margin-top: 4px;
  font-size: 15px;
  color: var(--ink);
}

.gx .configrow {
  min-height: 44px;
  border-top: 1px solid var(--rule);
  padding: 10px 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.gx .configrow:first-of-type {
  border-top: 0;
}

.gx .gx-rowmain {
  min-width: 0;
}

.gx .gx-note {
  border: 1px solid var(--rule);
  border-radius: 2px;
  padding: 10px;
  background: #fff;
  display: grid;
  gap: 5px;
}

.gx .gx-inlineform {
  display: grid;
  gap: 8px;
}

.gx .gx-occform {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 104px;
  gap: 8px;
}

.gx .gx-occform .btn {
  grid-column: 1 / -1;
}

.gx .gx-adj {
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  padding: 10px;
}

.gx details.gx-adj summary {
  min-height: 44px;
  cursor: pointer;
  font-weight: 800;
  display: flex;
  align-items: center;
}

.gx .gx-adjbody {
  display: grid;
  gap: 10px;
  padding-top: 8px;
}

.gx .gx-stepper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.gx .btn {
  min-height: 44px;
  border: 1px solid var(--ink);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 0 12px;
  font: inherit;
  font-weight: 800;
}

.gx .btn.primary {
  background: var(--tab);
}

.gx .btn.smallbtn {
  min-height: 36px;
  padding: 0 10px;
  font-size: 12.5px;
}

.gx .gx-log {
  display: grid;
  gap: 6px;
}

.gx .gx-logrow {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px;
  color: var(--graphite);
  font-size: 12.5px;
}

.gx .gx-delta {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  color: var(--ink);
}

.gx .gx-pairhead,
.gx .gx-calendarhead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.gx .gx-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.gx .gx-profile {
  min-width: 0;
  border: 1px solid var(--rule);
  border-radius: 2px;
  padding: 10px;
  background: #fff;
  display: grid;
  gap: 7px;
}

.gx .gx-pair-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}

.gx .gx-week {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.gx .gx-weektitle {
  padding-top: 4px;
}

.gx .gx-occasionrow {
  width: 100%;
  min-height: 54px;
  border: 1px solid var(--rule);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  padding: 9px 11px;
  font: inherit;
  text-align: left;
  display: grid;
  grid-template-columns: 94px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.gx .gx-empty {
  border: 1px dashed var(--rule);
  border-radius: 2px;
  background: #fff;
  padding: 18px;
  color: var(--graphite);
}

@media (min-width: 768px) {
  .gx .gx-shell,
  .gx .gx-shell.gx--detail-open {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
  }

  .gx .gx-shell .gx-listpane,
  .gx .gx-shell.gx--detail-open .gx-listpane,
  .gx .gx-shell .gx-detailpane,
  .gx .gx-shell.gx--detail-open .gx-detailpane {
    display: block;
  }

  .gx .card {
    padding: 22px;
  }

  .gx .gx-back {
    display: none;
  }

  .gx .gx-quick {
    grid-template-columns: 1fr 1fr;
  }

  .gx .gx-frame {
    width: 52px;
    height: 52px;
  }

  .gx .gx-occform {
    grid-template-columns: minmax(0, 1fr) 120px auto;
  }

  .gx .gx-occform .btn {
    grid-column: auto;
  }

  .gx .gx-inlineform.noteform {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }
}
.gx .gx-guestrow[aria-current="true"]{border-color:var(--ink)}
.momseg{max-width:420px}
@media (min-width:768px){.gx .gx-single .gx-back{display:inline-flex;align-items:center}}
/* guests1012 Chat check loop round 1: more room for the iPad detail pane; note form stacks */
@media (min-width:768px){
  .gx .gx-shell,.gx .gx-shell.gx--detail-open{grid-template-columns:minmax(300px,.95fr) minmax(340px,1.05fr)}
  .gx .gx-detailpane .gx-inlineform.noteform{grid-template-columns:1fr;gap:10px}
  .gx .gx-detailpane .gx-inlineform.noteform .btn{width:100%}
}
/* guests1012 craft fixes after round 1 (logged): no wrapping in the narrower iPad list pane or the card strip */
.gx .gx-num{white-space:nowrap}
.gx .thinseg button{padding:0 4px!important;font-size:12px!important;gap:3px}
.gx .thinseg .gx-count{font-size:10px}
@media (min-width:768px){
  .gx .gx-quick{grid-template-columns:1fr}
  .gx .gx-entry span{white-space:nowrap}
  .gx .gx-frame{width:44px;height:44px}
  .gx .gx-detailpane{position:sticky;top:12px}
}

/* qrpay1012: Pay by phone (staff QR sheet, Guest View card, Front button). Authored by ChatGPT (gpt-5.5); tokens scoped here so the brand vars of each business skin stay untouched. */
.ppqr,.gvpp,.ppfrontnote,.pppbtn{--ink:#121314;--mute:#565A5E;--rule:#DADCD8;--lime:#D6E59A;--pale:#F3F8C9;--cream:#F0E1C8}
.pppbtn{
  position:relative;
  padding-left:54px;
  min-height:58px;
}
.pppbtn:before{
  content:"";
  position:absolute;
  left:18px;
  top:50%;
  width:22px;
  height:22px;
  transform:translateY(-50%);
  background:
    linear-gradient(var(--ink),var(--ink)) 0 0/8px 8px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 14px 0/8px 8px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 0 14px/8px 8px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 14px 14px/4px 4px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 18px 18px/4px 4px no-repeat,
    linear-gradient(var(--ink),var(--ink)) 10px 10px/4px 4px no-repeat;
}
.ppfrontnote{
  margin:0 0 10px;
  color:var(--mute);
  font-weight:800;
  font-size:18px;
}
.ppqr{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  background:rgba(251,251,250,.94);
  color:var(--ink);
}
.ppqr .ppqrbox{
  position:relative;
  width:min(900px,calc(100vw - 64px));
  max-height:calc(100vh - 64px);
  overflow:auto;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:2px;
  box-shadow:12px 12px 0 var(--cream);
  padding:34px;
  text-align:center;
}
.ppqr .ppqrclose{
  position:absolute;
  top:16px;
  right:16px;
  width:52px;
  height:52px;
  border:2px solid var(--ink);
  border-radius:2px;
  background:#fff;
  color:var(--ink);
  font-size:34px;
  line-height:1;
  font-weight:800;
}
.ppqr #ppqrT{
  margin:0;
  font-size:58px;
  line-height:.92;
  font-weight:900;
  font-stretch:72%;
}
.ppqr .ppqrsub{
  margin:12px 0 24px;
  color:var(--mute);
  font-size:24px;
  font-weight:800;
}
.ppqr .ppqrgrid{
  display:grid;
  grid-template-columns:460px 1fr;
  gap:30px;
  align-items:start;
  text-align:left;
}
.ppqr .ppqrscan{
  text-align:center;
}
.ppqr .ppqrimg{
  width:420px;
  height:420px;
  display:block;
  margin:0 auto;
  object-fit:contain;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:2px;
  padding:22px;
  box-shadow:8px 8px 0 var(--cream);
}
.ppqr .ppqrhelp{
  margin:22px auto 0;
  max-width:560px;
  color:var(--ink);
  font-size:22px;
  line-height:1.25;
  font-weight:760;
}
.ppqr .ppqrstat{
  background:var(--pale);
  border:2px solid var(--ink);
  border-radius:2px;
  box-shadow:7px 7px 0 var(--cream);
  padding:18px;
}
.ppqr .ppqrstat h3{
  margin:0 0 14px;
  font-size:28px;
  line-height:1;
  font-weight:900;
  font-stretch:78%;
}
.ppqr .ppqrrow{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:10px 0;
  border-bottom:1.5px solid var(--rule);
  color:var(--mute);
  font-size:20px;
  font-weight:760;
}
.ppqr .ppqrrow b{
  color:var(--ink);
  font-weight:900;
}
.ppqr .ppqrrow.strong{
  margin-top:4px;
  padding-top:14px;
  border-top:2px solid var(--ink);
  border-bottom:0;
  color:var(--ink);
  font-size:24px;
}
.ppqr .ppqrpaylist{
  margin-top:18px;
}
.ppqr .ppqrpay{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  padding:12px;
  margin-top:8px;
  background:#fff;
  border:1.5px solid var(--ink);
  font-size:18px;
  font-weight:800;
}
.ppqr .ppqrpay small{
  display:block;
  margin-top:3px;
  color:var(--mute);
  font-size:14px;
  font-weight:700;
}
.ppqr .ppqrpay em{
  font-style:normal;
  font-family:"IBM Plex Mono",monospace;
  font-size:13px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.ppqr .ppqrdone{
  margin:24px auto;
  max-width:560px;
  background:var(--lime);
  border:2px solid var(--ink);
  border-radius:2px;
  box-shadow:8px 8px 0 var(--ink);
  padding:30px;
}
.ppqr .ppqrmark{
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  background:#fff;
  border:2px solid var(--ink);
  font-size:58px;
  font-weight:900;
}
.ppqr .ppqrdone b{
  display:block;
  font-size:42px;
  line-height:1;
  font-weight:900;
  font-stretch:75%;
}
.ppqr .ppqroff{
  margin:24px auto;
  max-width:620px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:2px;
  box-shadow:8px 8px 0 var(--cream);
  padding:28px;
  text-align:left;
}
.ppqr .ppqroff h3{
  margin:0 0 8px;
  font-size:34px;
  line-height:1;
  font-weight:900;
}
.ppqr .ppqroff p{
  margin:0;
  color:var(--mute);
  font-size:21px;
  line-height:1.3;
  font-weight:700;
}
.ppqr .ppqractions{
  display:flex;
  justify-content:flex-end;
  gap:14px;
  margin-top:30px;
}
.ppqr .ppqrbtn{
  min-width:150px;
  min-height:62px;
  border:2px solid var(--ink);
  border-radius:2px;
  background:var(--lime);
  color:var(--ink);
  box-shadow:6px 6px 0 var(--ink);
  font:inherit;
  font-size:20px;
  font-weight:900;
}
.ppqr .ppqrbtn.secondary{
  min-width:130px;
  background:#fff;
  box-shadow:none;
}
.gvpp{
  width:580px;
  max-width:calc(100% - 32px);
  margin:22px auto;
  padding:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:2px;
  box-shadow:8px 8px 0 var(--cream);
  color:var(--ink);
  text-align:left;
}
.gvpp .gvppimg{
  width:180px;
  height:180px;
  object-fit:contain;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:2px;
  padding:10px;
}
.gvpp span{
  display:block;
}
.gvpp b{
  display:block;
  font-size:32px;
  line-height:1;
  font-weight:900;
  font-stretch:78%;
}
.gvpp small{
  display:block;
  margin-top:8px;
  color:var(--mute);
  font-size:20px;
  line-height:1.25;
  font-weight:700;
}

@media (max-width:820px){.ppqr .ppqrbox{padding:22px;width:calc(100vw - 24px)}.ppqr #ppqrT{font-size:40px}.ppqr .ppqrgrid{grid-template-columns:1fr}.ppqr .ppqrimg{width:min(340px,70vw);height:min(340px,70vw)}.gvpp{flex-direction:column;text-align:center}}
.gvpp .gvppimg{width:180px!important;height:180px!important;max-width:none!important;max-height:none!important;flex:0 0 180px}

/* ===== Reservations (resv1012): design by ChatGPT (gpt-5.5), applied as delivered; Crust adds the stacked row text ===== */
.dz .rz-front-switcher{grid-template-columns:repeat(4,1fr)}
.dz .rz-hero{background:#FBFBFA;border:2px solid #121314;box-shadow:6px 6px 0 #D6E59A;padding:12px;margin:0 0 12px}
.dz .rz-tonight-strip{display:grid;gap:10px;background:#FBFBFA;border:2px solid #121314;padding:10px;margin:0 0 10px}
.dz .rz-tonight-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dz .rz-kicker{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:#565A5E}
.dz .rz-counts{font-weight:800;color:#121314}
.dz .rz-arrivals{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}
.dz .rz-arrival-chip{appearance:none;border:1.5px solid #121314;background:#F3F8C9;color:#121314;padding:8px 9px;border-radius:2px;font-weight:800;white-space:nowrap;text-align:left}
.dz .rz-arrival-chip:active,.dz .rz-arrival-chip.z-on{background:#D6E59A}
.dz .z-floor .z-tbl{overflow:visible}
.dz .z-tbl .rz-tbltag{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);max-width:92px;padding:2px 5px;border:1.5px solid #121314;background:#FBFBFA;color:#121314;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:9px;line-height:1.05;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.dz .z-tbl .rz-tbltag.rz-arriving{background:#FFF6DF;color:#8A6100}
.dz .z-tbl .rz-tbltag.rz-arriving-soon{background:#F0C86A;color:#121314}
.dz .z-tbl .rz-tbltag.rz-seated{background:#D6E59A;color:#121314}
.dz .z-tbl .rz-tbltag.rz-noshow{background:#FFF1EE;color:#A52D28;text-decoration:line-through}
.dz .rz-book-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.dz .rz-book-title{font-size:22px;font-weight:900;letter-spacing:-.02em;color:#121314}
.dz .rz-book-list{display:grid;gap:12px}
.dz .rz-day-block{border:2px solid #121314;background:#FBFBFA}
.dz .rz-day-block.rz-today{background:#F3F8C9}
.dz .rz-day-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-bottom:2px solid #121314;font-weight:900;color:#121314}
.dz .rz-day-meta{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;text-transform:uppercase;color:#565A5E;white-space:nowrap}
.dz .rz-upcoming-rule{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:2px 0;color:#565A5E;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.dz .rz-upcoming-rule:before,.dz .rz-upcoming-rule:after{content:'';height:1.5px;background:#DADCD8}
.dz .rz-book-row{appearance:none;width:100%;display:grid;grid-template-columns:54px 1fr auto;gap:9px;align-items:start;padding:10px;border:0;border-bottom:1.5px solid #DADCD8;background:transparent;text-align:left;color:#121314}
.dz .rz-book-row:last-child{border-bottom:0}
.dz .rz-book-row:active{background:#D6E59A}
.dz .rz-time{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;font-weight:700;color:#121314;padding-top:2px}
.dz .rz-guest{font-weight:900;line-height:1.15}
.dz .rz-sub{margin-top:2px;color:#565A5E;font-size:13px;font-weight:700}
.dz .rz-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.dz .rz-tag{display:inline-flex;align-items:center;min-height:20px;border:1.5px solid #121314;background:#FBFBFA;padding:2px 5px;border-radius:2px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;line-height:1;text-transform:uppercase;color:#121314}
.dz .rz-tag.rz-warn{background:#FFF6DF;color:#8A6100}
.dz .rz-tag.rz-good{background:#EDF5EF;color:#285C44}
.dz .rz-tag.rz-danger{background:#FFF1EE;color:#A52D28}
.dz .rz-pill{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #121314;border-radius:2px;padding:4px 6px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;text-transform:uppercase;font-weight:800;white-space:nowrap;background:#FBFBFA;color:#121314}
.dz .rz-pill.rz-booked{background:#FFF6DF;color:#8A6100}
.dz .rz-pill.rz-seated{background:#EDF5EF;color:#285C44}
.dz .rz-pill.rz-noshow{background:#FFF1EE;color:#A52D28;text-decoration:line-through}
.dz .rz-sheet-backdrop{position:fixed;inset:0;background:rgba(18,19,20,.18);z-index:40;display:grid;align-items:end}
.dz .rz-sheet{width:100%;max-height:88vh;overflow:auto;background:#FBFBFA;border-top:2px solid #121314;padding:12px 12px 18px;color:#121314}
.dz .rz-sheet-grab{width:42px;height:4px;background:#DADCD8;margin:0 auto 10px}
.dz .rz-sheet-head{display:flex;justify-content:space-between;gap:12px;align-items:start;border-bottom:2px solid #121314;padding-bottom:10px;margin-bottom:10px}
.dz .rz-sheet-title{font-size:22px;font-weight:900;letter-spacing:-.02em}
.dz .rz-sheet-meta{margin-top:3px;color:#565A5E;font-weight:800}
.dz .rz-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.dz .rz-actions .z-btn{width:100%}
.dz .rz-actions .rz-wide{grid-column:1/-1}
.dz .rz-btn-danger{background:#FFF1EE!important;color:#A52D28!important;border-color:#A52D28!important}
.dz .rz-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.dz .rz-edit-grid label{display:grid;gap:4px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;text-transform:uppercase;color:#565A5E}
.dz .rz-edit-grid input,.dz .rz-edit-grid select,.dz .rz-edit-grid textarea{width:100%;border:1.5px solid #121314;background:#FBFBFA;border-radius:0;padding:9px;font-family:Archivo,system-ui,sans-serif;font-size:15px;color:#121314}
.dz .rz-edit-grid textarea,.dz .rz-edit-grid .rz-full{grid-column:1/-1}
.dz .rz-moments-card{border:2px solid #121314;background:#EDF5EF;padding:10px;margin:10px 0}
.dz .rz-moments-card a{color:#285C44;font-weight:900;text-decoration:underline;text-underline-offset:2px}
.dz .rz-table-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.dz .rz-table-choice{appearance:none;border:1.5px solid #121314;background:#FBFBFA;color:#121314;padding:11px 7px;border-radius:2px;font-weight:900;text-align:center}
.dz .rz-table-choice.z-on{background:#D6E59A}
.dz .rz-feature-block{border:2px solid #121314;background:#FBFBFA;padding:0;margin-top:12px}
.dz .rz-feature-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border-bottom:1.5px solid #DADCD8}
.dz .rz-feature-row:last-child{border-bottom:0}
.dz .rz-feature-title{font-weight:900;color:#121314}
.dz .rz-feature-copy{margin-top:2px;color:#565A5E;font-size:13px;font-weight:700}
.dz .rz-toggle{appearance:none;width:48px;height:28px;border:2px solid #121314;background:#FBFBFA;border-radius:2px;position:relative}
.dz .rz-toggle:before{content:'';position:absolute;top:4px;left:4px;width:16px;height:16px;background:#121314;transition:left .15s}
.dz .rz-toggle:checked{background:#D6E59A}
.dz .rz-toggle:checked:before{left:24px}
.dz .rz-link-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px;border-bottom:1.5px solid #DADCD8}
.dz .rz-public-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1.5px solid #DADCD8;background:#FBFBFA;padding:9px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;color:#121314}
.dz .rz-status-line{padding:10px 12px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;text-transform:uppercase;color:#565A5E}
.dz .rz-status-line.rz-live{color:#285C44;background:#EDF5EF}
@media (min-width:700px){.dz .rz-book-shell{max-width:none}.dz .rz-book-list{grid-template-columns:1fr 1fr}.dz .rz-day-block.rz-today{grid-column:1/-1}.dz .rz-sheet{width:min(620px,calc(100% - 32px));margin:0 auto 16px;border:2px solid #121314}.dz .rz-table-picker{grid-template-columns:repeat(5,1fr)}}.dz .rz-guest,.dz .rz-sub{display:block}.dz .rz-book-row{grid-template-columns:66px 1fr auto}.dz .rz-book-shell{margin-top:4px}.dz .rz-sheet .z-sectiontitle{margin-top:6px}.dz .rz-moments-card a{display:inline-block;margin-top:6px}.dz .rz-sheet>p.rz-feature-copy{margin:0 0 6px}
/* resv1012 check loop (ChatGPT round 2, mapped onto our class names) */
.dz .rz-arrivals{scrollbar-width:none;padding:0 2px 6px;-webkit-overflow-scrolling:touch}
.dz .rz-arrivals::-webkit-scrollbar{display:none}
.dz .rz-arrival-chip{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center}
.dz .rz-sheet .z-btn{min-height:44px}
.dz .rz-tags{gap:4px}
.dz .rz-tag{line-height:1.15;min-height:18px;padding:3px 5px;white-space:normal}

/* ===== Reservations final polish (resyswitch1012, Josh 10/12). ChatGPT (gpt-5.5) round 1, applied as given; merged where
   its two passes overlapped. Log: iCloud The Universe/2026-10-01 Crust/Reservations/From Chat - final polish.md ===== */
/* iPad: Tonight strip across the top of the floor (row 3); legend + Open checks title row 4; map + checks row 5.
   Scoped with :has() so a business with reservations off keeps the original four rows. */
@media (min-width:1024px){
  body.v-front:not(.v-guest) .dz.fl:has(.rz-tonight-strip){grid-template-rows:auto auto auto auto minmax(0,1fr)}
  body.v-front:not(.v-guest) .dz.fl:has(.rz-tonight-strip) .rz-tonight-strip{grid-column:1/-1;grid-row:3;align-self:start;margin:0}
  body.v-front:not(.v-guest) .dz.fl:has(.rz-tonight-strip) .z-legend{grid-column:1;grid-row:4}
  body.v-front:not(.v-guest) .dz.fl:has(.rz-tonight-strip) .z-sectiontitle{grid-column:2;grid-row:4}
  body.v-front:not(.v-guest) .dz.fl:has(.rz-tonight-strip) .z-floor{grid-column:1;grid-row:5}
  body.v-front:not(.v-guest) .dz.fl:has(.rz-tonight-strip) .z-panel{grid-column:2;grid-row:5}
  body.v-front:not(.v-guest) .dz.fl:has(.rz-book-shell){grid-template-rows:auto auto minmax(0,1fr)}
  body.v-front:not(.v-guest) .dz.fl .rz-book-shell{grid-column:1/-1;grid-row:3;justify-self:stretch;width:100%;max-width:none;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  body.v-front:not(.v-guest) .dz.fl .rz-book-row{grid-template-columns:72px minmax(0,1fr) max-content}
}
.dz .rz-book-row>*{min-width:0}
.dz .rz-upcoming-rule{grid-column:1/-1}
/* Tonight chips: a clean scroll rail at 390 */
.dz .rz-tonight-strip,.dz .rz-tonight-top,.dz .rz-arrivals{min-width:0;max-width:100%}
.dz .rz-tonight-top{flex-wrap:wrap}
.dz .rz-arrivals{width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-right:14px}
.dz .rz-arrival-chip{scroll-snap-align:start;min-height:48px}
/* table tags readable at speed */
.dz .z-tbl .rz-tbltag{font-size:11px;line-height:1.1;bottom:-14px;max-width:112px;padding:3px 6px}
@media (max-width:480px){.dz .z-tbl .rz-tbltag{font-size:10px;bottom:-13px;max-width:96px}}
/* touch targets: 48 on staff controls */
.dz .rz-table-choice,.dz .rz-book-row{min-height:48px}
.dz .rz-edit-grid input,.dz .rz-edit-grid select,.dz .rz-edit-grid textarea{min-height:48px}
.dz .rz-toggle{width:64px;height:44px}
.dz .rz-toggle:before{top:10px;left:8px;width:20px;height:20px}
.dz .rz-toggle:checked:before{left:32px}
.dz .rz-public-link{min-height:44px;display:flex;align-items:center}
/* round 2 (ChatGPT): visible Close on every sheet, Back on the picker, one filled primary (Seat), On/Off text on the switch */
.dz .rz-sheet-side{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.dz .rz-sheet-close{min-height:48px;min-width:72px;padding:0 16px;background:#fff}
.dz .rz-sheet-close:focus-visible,.dz .rz-picker-back:focus-visible{outline:3px solid #121314;outline-offset:2px}
.dz .rz-picker-bar{display:flex;align-items:center;gap:12px;margin:8px 0 10px}
.dz .rz-picker-bar .z-sectiontitle{margin:0}
.dz .rz-picker-back{min-height:48px;min-width:72px;padding:0 16px;background:#fff}
.dz .rz-sheet [data-action="rzpick"]{background:#D6E59A;color:#121314}
.dz .rz-sheet [data-action="rzedit"]{background:#fff;color:#121314;border:2px solid #121314}
.dz .rz-front-switcher button{min-height:44px}
@media (min-width:768px){.dz .rz-front-switcher button{min-height:48px}}
.dz .rz-moments-card a{min-height:44px;display:inline-flex;align-items:center}
.dz .rz-toggle-wrap{display:inline-flex;align-items:center;gap:10px;font:800 14px 'Archivo',sans-serif;color:#121314;cursor:pointer}
/* resvmoments1012: celebration on the booking sheet + the dessert cap in Setup (design: ChatGPT gpt-5.5) */
.dz .rz-tag.rz-cel{
  border:2px solid #121314;
  background:#FFF4E6;
  color:#121314;
  font-weight:900;
  min-height:24px;
  padding:4px 7px;
}

.dz .rz-cel-card{
  border:2px solid #121314;
  background:#FFF4E6;
  color:#121314;
  padding:12px;
  margin:10px 0;
  border-radius:0;
  box-shadow:none;
}

.dz .rz-cel-card .rz-kicker{
  margin:0 0 4px;
  font:900 11px/1.1 'Archivo',system-ui,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#565A5E;
}

.dz .rz-cel-card strong{
  display:block;
  color:#121314;
  font:900 18px/1.15 'Archivo',system-ui,sans-serif;
}

.dz .rz-cel-card .rz-feature-copy{
  margin-top:6px;
  color:#3F4347;
  font-size:13px;
  font-weight:800;
}

.dz .rz-cel-btn{
  width:100%;
  min-height:48px;
  margin-top:10px;
  border:2px solid #121314;
  background:#D6E59A;
  color:#121314;
  border-radius:0;
  box-shadow:none;
  font-weight:900;
}

.dz .rz-cel-btn:focus-visible{
  outline:3px solid #121314;
  outline-offset:2px;
}

.rz-cap-card,
.dz .rz-cap-card{
  margin-top:16px;
  border:2px solid #121314;
  background:#FBFBFA;
  color:#121314;
  border-radius:0;
  box-shadow:none;
}

.rz-cap-card h3,
.dz .rz-cap-card h3{
  color:#121314;
  font:900 18px/1.15 'Archivo',system-ui,sans-serif;
}

.rz-cap-card .small,
.dz .rz-cap-card .small{
  color:#565A5E;
  font-weight:800;
}

.rz-cap-row,
.dz .rz-cap-row{
  display:grid;
  grid-template-columns:auto minmax(92px,120px) auto;
  align-items:center;
  gap:10px;
  margin-top:12px;
}

.rz-cap-row label,
.dz .rz-cap-row label{
  color:#121314;
  font-weight:900;
}

.rz-cap-row input,
.dz .rz-cap-row input{
  min-height:48px;
  width:100%;
  border:2px solid #121314;
  background:#FBFBFA;
  color:#121314;
  border-radius:0;
  padding:10px;
  font-weight:900;
}

.rz-cap-row input:disabled,
.dz .rz-cap-row input:disabled{
  background:#E9E9E4;
  color:#565A5E;
  opacity:1;
}

.rz-cap-row .z-btn,
.dz .rz-cap-row .z-btn{
  min-height:48px;
  border:2px solid #121314;
  border-radius:0;
  background:#D6E59A;
  color:#121314;
  font-weight:900;
}

.rz-cap-row input:focus-visible,
.rz-cap-row .z-btn:focus-visible,
.dz .rz-cap-row input:focus-visible,
.dz .rz-cap-row .z-btn:focus-visible{
  outline:3px solid #121314;
  outline-offset:2px;
}

@media (max-width:520px){
  .rz-cap-row,
  .dz .rz-cap-row{
    grid-template-columns:auto 1fr;
  }

  .rz-cap-row .z-btn,
  .dz .rz-cap-row .z-btn{
    grid-column:1/-1;
    width:100%;
  }
}
.dz .rz-cel-card{background:#FFF3DE}.dz .rz-cel-btn:hover{background:#CBDD82}

/* resvpolish2 (Josh 10/12) final polish 2, ChatGPT (gpt-5.5) S1: Mark dessert served is a white outline inside the Celebrating card, so Seat stays the one filled primary and Change table the one lime */
.dz .rz-cel-btn{background:#FBFBFA;color:#121314}.dz .rz-cel-btn:hover{background:#F3F4EC}.dz .rz-cel-btn:active{background:#E9E9E4}
/* vouchers1012: Moments "On us" treats, design by ChatGPT (gpt-5.5) */
/* ===== Moments · On us treats ===== */
.onus-wallet{background:#fff;border:1px solid var(--crust-rule);border-radius:2px}
.onus-wallet .mono-label{margin:0 0 6px}
.onus-wallet h2{margin:0 0 14px;color:var(--crust-ink)}
.onus-ticket{
  position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;
  min-height:64px;margin:10px 0;padding:12px 14px;background:#fff;border:1.5px solid var(--crust-ink);
  border-radius:2px;overflow:hidden
}
.onus-ticket:after{
  content:"";position:absolute;top:8px;bottom:8px;right:46px;border-right:1.5px dashed var(--crust-rule)
}
.onus-ticket:before{
  content:"";position:absolute;top:50%;right:40px;width:14px;height:14px;margin-top:-7px;
  background:var(--crust-sheet);border:1.5px solid var(--crust-ink);border-radius:50%
}
.onus-ic{
  width:34px;height:34px;display:grid;place-items:center;flex:none;background:var(--crust-sheet);
  border:1px solid var(--crust-rule);border-radius:2px;font-size:18px;line-height:1
}
.onus-txt{display:grid;gap:2px;min-width:0}
.onus-txt b{font-size:15px;line-height:1.2;color:var(--crust-ink);overflow-wrap:anywhere}
.onus-txt small{color:var(--crust-graphite);font-size:12px;line-height:1.35}
.onus-next{margin-top:14px;padding-top:12px;border-top:1px solid var(--crust-rule)}
.onus-remind{
  display:flex;align-items:center;gap:10px;min-height:44px;margin-top:12px;color:var(--crust-ink);
  font-size:14px;font-weight:700;line-height:1.25;cursor:pointer
}
.onus-remind input,.onus-check input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--crust-lime)}
.onus-email{
  width:100%;min-height:44px;margin-top:8px;padding:0 12px;border:1px solid var(--crust-rule);
  border-radius:2px;background:#fff;color:var(--crust-ink);font-size:16px
}
.onus-invite{
  margin-top:16px;padding:14px;background:var(--crust-sheet);border:1px solid var(--crust-rule);border-radius:2px
}
.onus-invite h3{margin:0 0 6px}
.onus-qr{
  display:block;width:150px;height:150px;max-width:150px;margin:12px auto;border:1.5px solid var(--crust-ink);
  background:#fff
}
.onus-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.onus-link span{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:44px;display:flex;align-items:center;
  padding:0 10px;background:#fff;border:1px solid var(--crust-rule);border-radius:2px;
  font:600 12px/1.2 'IBM Plex Mono',ui-monospace,monospace;color:var(--crust-graphite)
}
.onus-link .btn,.onus-wallet .smallbtn{min-height:44px}

/* Staff front check */
.mmbox .onus-box{margin-top:12px;padding-top:10px;border-top:1px solid var(--crust-rule)}
.onus-box .mono-label{margin:0 0 8px}
.onus-row{
  display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;
  padding:10px 0;border-top:1px solid #ECEDE8;color:var(--crust-ink)
}
.onus-row:first-of-type{border-top:0}
.onus-row .linkbtn,.onus-row .btn,.dz .rz-onus-card .z-btn{min-height:44px;white-space:nowrap}
.onus-row .btn.primary,.dz .rz-onus-card .z-btn.rz-onus-btn{
  background:var(--crust-lime);border-color:var(--crust-ink);color:var(--crust-ink);font-weight:900
}
.onus-on{
  margin:6px 0;padding:10px;background:#fff;border:1.5px solid var(--crust-ink);border-left:6px solid var(--crust-lime);
  border-radius:2px
}
.onus-off{opacity:1;color:var(--crust-graphite)}
.onus-off .onus-ic{opacity:.55}
.onus-off .onus-txt b,.onus-off .onus-txt small{color:var(--crust-graphite)}
.onus-rule{
  margin-top:10px;padding-top:10px;border-top:1px dashed var(--crust-rule);color:var(--crust-graphite);
  font-size:12px;line-height:1.4
}

/* Booking sheet */
.dz .rz-onus-card{
  margin:10px 0;padding:12px;background:#fff;border:1.5px solid #121314;border-radius:2px;color:#121314;
  box-shadow:none
}
.dz .rz-onus-card .rz-kicker{
  margin:0 0 6px;font:900 11px/1.1 'Archivo',system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#565A5E
}
.dz .rz-onus-card .onus-row{
  grid-template-columns:34px minmax(0,1fr) auto;min-height:58px;padding:10px 0;border-top:1px dashed #DADCD8
}
.dz .rz-onus-card .onus-row:first-of-type{border-top:0}
.dz .rz-onus-card .onus-on{border:1.5px solid #121314;border-left:6px solid #D4F53C;padding:10px;margin:6px 0}
.dz .rz-onus-card .rz-feature-copy{margin-top:8px;color:#565A5E;font-size:13px;font-weight:800}
.dz .rz-onus-card .onus-rule{color:#565A5E;font-size:12px}

/* Office > Setup > Moments */
.onus-office h3{margin:0 0 6px}
.onus-office>.onus-rule{margin:12px 0 14px}
.onus-prog{
  margin:10px 0;background:#fff;border:1px solid var(--crust-rule);border-radius:2px;overflow:hidden
}
.onus-prog-head{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:12px
}
.onus-prog-head span:first-child{display:grid;gap:3px;min-width:0}
.onus-prog-head small{color:var(--crust-graphite)}
.onus-prog-head b{font-size:16px;line-height:1.2;color:var(--crust-ink);overflow-wrap:anywhere}
.onus-prog-act{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:max-content}
.onus-prog .linkbtn{min-height:44px}
.onus-prog.onus-off{background:var(--crust-sheet)}
.onus-prog.onus-off .onus-prog-head{opacity:.72}
.onus-form{
  display:grid;grid-template-columns:1fr;gap:10px;padding:12px;border-top:1px solid var(--crust-rule);background:var(--crust-sheet)
}
.onus-form label{
  display:grid;gap:5px;color:var(--crust-graphite);font:700 11px/1.2 'IBM Plex Mono',ui-monospace,monospace;
  letter-spacing:.06em;text-transform:uppercase
}
.onus-form input,.onus-form select{
  width:100%;min-height:44px;padding:0 10px;border:1px solid var(--crust-rule);border-radius:2px;background:#fff;
  color:var(--crust-ink);font:500 15px/1.2 'Archivo',sans-serif;text-transform:none;letter-spacing:0
}
.onus-form .btn.primary,.onus-office>.btn{min-height:44px}
.onus-form .btn.primary{background:var(--crust-lime);border-color:var(--crust-ink);color:var(--crust-ink)}
.onus-check{
  min-height:44px;display:flex!important;grid-column:1/-1;align-items:center;gap:10px;color:var(--crust-ink)!important;
  font:700 14px/1.25 'Archivo',sans-serif!important;letter-spacing:0!important;text-transform:none!important
}

@media (max-width:480px){
  .onus-row{grid-template-columns:34px minmax(0,1fr)}
  .onus-row .linkbtn,.onus-row .btn,.dz .rz-onus-card .z-btn{grid-column:2;justify-self:start}
  .onus-prog-head{grid-template-columns:1fr}
  .onus-prog-act{justify-content:flex-start;min-width:0;flex-wrap:wrap}
}
@media (min-width:760px){
  .onus-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .onus-form .btn.primary{justify-self:start}
}

/* vouchers1012 check loop 1 (ChatGPT gpt-5.5) */
/* ===== ENGINE CSS FIXES · Moments On us treats ===== */

/* Wallet tickets: reserve a real stub lane so perforation never sits on copy */
.onus-ticket{
  padding-right:78px;
}
.onus-ticket:after{
  right:54px;
  top:10px;
  bottom:10px;
  pointer-events:none;
  z-index:1;
}
.onus-ticket:before{
  right:47px;
  pointer-events:none;
  z-index:2;
}
.onus-ticket > *{
  position:relative;
  z-index:3;
}

/* Staff / booking cards: respond to the actual column width, not the viewport */
.onus-box{
  container-type:inline-size;
  container-name:onus-box;
}
.rz-onus-card{
  container-type:inline-size;
  container-name:rz-onus-card;
}

@container onus-box (max-width:340px){
  .onus-row{
    grid-template-columns:34px minmax(0,1fr);
    align-items:start;
  }
  .onus-row .linkbtn,
  .onus-row .btn,
  .onus-row .z-btn{
    grid-column:2;
    justify-self:start;
    width:auto;
    max-width:100%;
    min-height:44px;
    margin-top:4px;
    white-space:nowrap;
  }
}

@container rz-onus-card (max-width:340px){
  .onus-row{
    grid-template-columns:34px minmax(0,1fr);
    align-items:start;
  }
  .onus-row .linkbtn,
  .onus-row .btn,
  .onus-row .z-btn,
  .onus-row .rz-onus-btn{
    grid-column:2;
    justify-self:start;
    width:auto;
    max-width:100%;
    min-height:44px;
    margin-top:4px;
    white-space:nowrap;
  }
}

/* Office form: checkbox fields stay compact; label remains beside the box */
.onus-office{
  container-type:inline-size;
  container-name:onus-office;
}
.onus-form{
  grid-template-columns:1fr;
}
.onus-form input[type="checkbox"]{
  width:18px;
  inline-size:18px;
  height:18px;
  block-size:18px;
  min-width:18px;
  min-height:18px;
  padding:0;
  margin:0;
  flex:0 0 18px;
  justify-self:start;
  accent-color:var(--crust-lime);
}
.onus-check,
.onus-form label:has(input[type="checkbox"]){
  min-height:44px;
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  max-width:100%;
  color:var(--crust-ink)!important;
  font:700 14px/1.25 'Archivo',sans-serif!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.onus-check input[type="checkbox"],
.onus-form label:has(input[type="checkbox"]) input[type="checkbox"]{
  flex:0 0 18px;
}

/* Office program On/Off control: local compact switch styling */
.onus-prog-act{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
  min-height:44px;
  flex-wrap:nowrap;
}
.onus-prog-act > label,
.onus-prog-act .rz-toggle-label{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  margin:0;
  color:var(--crust-ink);
  font:800 13px/1.2 'Archivo',sans-serif;
  white-space:nowrap;
}
.onus-prog-act .linkbtn,
.onus-prog-act a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.onus-prog-act input.rz-toggle{
  -webkit-appearance:none;
  appearance:none;
  position:relative;
  width:44px;
  inline-size:44px;
  height:44px;
  block-size:44px;
  min-width:44px;
  min-height:44px;
  flex:0 0 44px;
  padding:0;
  margin:0;
  border:1.5px solid var(--crust-ink);
  border-radius:2px;
  background:
    linear-gradient(var(--crust-ink),var(--crust-ink)) no-repeat 6px 50% / 16px 16px,
    #fff;
  box-shadow:none;
  cursor:pointer;
  vertical-align:middle;
}
.onus-prog-act input.rz-toggle:checked{
  background:
    linear-gradient(var(--crust-ink),var(--crust-ink)) no-repeat calc(100% - 22px) 50% / 16px 16px,
    var(--crust-lime);
}
.onus-prog-act input.rz-toggle:focus-visible{
  outline:2px solid var(--crust-ink);
  outline-offset:2px;
}
.onus-prog-act input.rz-toggle:disabled{
  opacity:.55;
  cursor:not-allowed;
}

@container onus-office (min-width:620px){
  .onus-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .onus-check,
  .onus-form label:has(input[type="checkbox"]){
    grid-column:1 / -1;
  }
  .onus-form .btn.primary{
    justify-self:start;
  }
}

@container onus-office (max-width:520px){
  .onus-prog-head{
    grid-template-columns:1fr;
  }
  .onus-prog-act{
    justify-content:flex-start;
  }
}

/* review1013: the owner's device tools on Home (scan, notifications, offline count) */
.ntools{display:grid;gap:8px;border:1px solid var(--crust-rule);background:#fff;padding:14px}
.ntools .mono-label{margin:0 0 2px}
.ntool{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:12px;width:100%;min-height:58px;padding:10px 12px;border:1.5px solid var(--crust-ink);background:#fff;color:var(--crust-ink);text-align:left;font:inherit;cursor:pointer;-webkit-appearance:none;border-radius:0}
.ntool:active{background:#F1F5DC}
.ntool b{display:block;font-size:16px;line-height:1.25}
.ntool small{display:block;font-size:13px;line-height:1.35;color:var(--crust-graphite);margin-top:2px}
.ntool.ndone{border-color:var(--crust-rule);cursor:default}
.ntico{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#E9F3B5;border:1px solid var(--crust-ink)}
.offnote{margin:10px 0}
@media (min-width:1024px){
  body.v-home .home .ntools{order:6;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
  body.v-home .home .ntools .mono-label{grid-column:1 / -1}
}

/* signin1013: billing rows in Office > Setup > Account (ChatGPT, design/billing_office_chatgpt.txt) */
.dz .z-bill-row,.dz .z-bill-link{min-height:48px;box-sizing:border-box}
.dz .z-bill-row{align-items:start}  /* ChatGPT check: the P mark sits with the plan name, not mid-block */
.dz .z-bill-row p,.dz .z-bill-link p{overflow-wrap:anywhere}
.dz .z-bill-unlock{display:block;width:100%;margin-top:10px}
.dz .z-bill-link{text-decoration:none;color:inherit}
/* payconnect1014: Card payments row in Office > Setup > Account (ChatGPT, design/payconnect_chatgpt.txt; scoped under .dz) */
.dz .z-pill.z-wait{background:#f2f2f0;color:#333;border-color:#DADCD8}
.dz .z-payrow{row-gap:8px}
.dz .z-payrow>.z-box{grid-column:1;grid-row:1}
.dz .z-paycopy{display:contents}
.dz .z-paycopy h3{grid-column:2;grid-row:1;min-width:0}
.dz .z-paycopy p{grid-column:2/-1;grid-row:2;min-width:0}
.dz .z-payrow>.z-pill{grid-column:3;grid-row:1;align-self:start;white-space:nowrap}
.dz .z-payrow>.z-btn{grid-column:2/-1;justify-self:start;min-height:48px;max-width:100%;white-space:normal}
.dz .z-payrow>.z-paystatus{grid-column:2/-1;margin:0;overflow-wrap:anywhere}
.dz .z-payrow>.z-paystatus:empty{display:none}

/* invoicing1014: Office > Invoicing (ChatGPT gpt-5.5) */
.iv{
  --iv-ink:#121314;
  --iv-graphite:#565A5E;
  --iv-rule:#DADCD8;
  --iv-sheet:#FBFBFA;
  --iv-card:#FFFFFF;
  --iv-lime:#D4F53C;
  color:var(--iv-ink);
  max-width:760px;
  margin:0 auto;
}

.iv *{box-sizing:border-box}

.iv button,
.iv input,
.iv textarea,
.iv select{
  font:inherit;
}

.iv button{
  min-height:44px;
  border-radius:2px;
}

.iv button:active,
.iv .btn:active,
.iv .iv-row:active,
.iv .iv-pick:active{
  transform:translateY(1px);
}

.iv .iv-mono{
  font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:600;
  letter-spacing:.01em;
}

.iv .iv-card{
  border-radius:2px;
  box-shadow:none;
}

.iv-head{
  margin-bottom:12px;
}

.iv-headrow,
.iv-titleline,
.iv-cardtop,
.iv-detailtop,
.iv-linehead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.iv h2{
  margin:2px 0 0;
  font-size:24px;
  line-height:1;
  letter-spacing:-.02em;
  font-weight:700;
}

.iv h3{
  margin:0 0 10px;
  font-size:16px;
  line-height:1.05;
  font-weight:700;
}

.iv-summary{
  margin:8px 0 12px;
  color:var(--iv-graphite);
  font-size:14px;
  line-height:1.35;
}

.iv-new{
  width:100%;
  min-height:48px;
  font-weight:800;
}

.iv-export{
  white-space:nowrap;
}

.iv-tabs{
  margin:12px 0;
}

.iv-tabs button{
  min-height:44px;
}

.iv-count{
  font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11px;
  margin-left:2px;
}

.iv-search,
.iv-field{
  display:grid;
  gap:6px;
  width:100%;
  margin:10px 0;
}

.iv-input{
  width:100%;
  min-height:44px;
  border:1px solid var(--iv-ink);
  border-radius:2px;
  background:var(--iv-card);
  color:var(--iv-ink);
  padding:10px;
  font-size:15px;
}

.iv-input:focus{
  outline:2px solid var(--iv-ink);
  outline-offset:2px;
}

.iv-textarea{
  min-height:104px;
  resize:vertical;
  line-height:1.35;
}

.iv-moneyinput{
  font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:600;
}

.iv-list{
  display:grid;
  gap:8px;
  margin-top:12px;
}

.iv-row{
  width:100%;
  border:1px solid var(--iv-rule);
  background:var(--iv-card);
  border-radius:2px;
  padding:10px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  text-align:left;
}

.iv-rowmain{
  min-width:0;
  display:grid;
  gap:4px;
}

.iv-rowmain b{
  font-size:15px;
  line-height:1.15;
}

.iv-sub{
  color:var(--iv-graphite);
  font-size:12px;
  line-height:1.3;
}

.iv-rowright{
  display:grid;
  justify-items:end;
  gap:7px;
  flex:0 0 auto;
}

.iv-amt{
  font-size:13px;
  white-space:nowrap;
}

.iv-late{
  color:#A52D28;
  font-weight:700;
}

.iv-status{
  margin:0;
}

.iv-reminders{
  margin-top:16px;
}

.iv-toggle{
  min-height:48px;
  border:1px solid var(--iv-rule);
  background:var(--iv-card);
  border-radius:2px;
  padding:10px;
  margin-top:8px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

.iv-switch{
  width:48px;
  height:28px;
  min-height:28px;
  padding:2px;
  border:1px solid var(--iv-ink);
  background:var(--iv-card);
  flex:0 0 auto;
}

.iv-switch i{
  display:block;
  width:22px;
  height:22px;
  background:var(--iv-ink);
  transition:transform .16s ease;
}

.iv-switch[aria-pressed="true"]{
  background:var(--iv-lime);
}

.iv-switch[aria-pressed="true"] i{
  transform:translateX(20px);
}

.iv-booklink{
  width:100%;
  margin-top:12px;
  text-align:center;
}

.iv-back{
  border:0;
  background:transparent;
  padding:8px 0;
  min-height:44px;
  font-weight:700;
  color:var(--iv-ink);
}

.iv-form{
  padding-bottom:14px;
}

.iv-next{
  border:1px solid var(--iv-rule);
  padding:7px 8px;
  background:#F8F8F6;
  font-size:13px;
  white-space:nowrap;
}

.iv-section{
  border-top:1px solid var(--iv-rule);
  margin-top:16px;
  padding-top:16px;
}

.iv-selected{
  border:1px solid var(--iv-ink);
  background:linear-gradient(90deg,var(--iv-lime) 0 8px,var(--iv-card) 8px);
  padding:12px 12px 12px 18px;
  border-radius:2px;
}

.iv-selected b{
  display:block;
  margin-bottom:3px;
}

.iv-picklist,
.iv-linepicker,
.iv-lines{
  display:grid;
  gap:8px;
  margin-top:10px;
}

.iv-pick{
  width:100%;
  min-height:48px;
  border:1px solid var(--iv-rule);
  background:var(--iv-card);
  border-radius:2px;
  padding:9px 10px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  text-align:left;
}

.iv-pick b{
  display:block;
  line-height:1.15;
}

.iv-pick small{
  display:block;
  margin-top:3px;
  color:var(--iv-graphite);
  font-size:12px;
  line-height:1.2;
}

.iv-inlinebtn,
.iv-collapse{
  width:100%;
  border:1px solid var(--iv-ink);
  background:var(--iv-card);
  margin-top:10px;
  font-weight:800;
  text-align:left;
}

.iv-mini{
  border:1px solid var(--iv-rule);
  background:#F8F8F6;
  padding:10px;
  margin-top:10px;
  display:grid;
  gap:6px;
}

.iv-emptyline{
  border:1px dashed var(--iv-rule);
  background:#F8F8F6;
  color:var(--iv-graphite);
  padding:12px;
  margin-top:10px;
  font-size:14px;
}

.iv-line{
  border:1px solid var(--iv-ink);
  background:var(--iv-card);
  border-radius:2px;
  padding:10px;
}

.iv-linename{
  font-weight:700;
}

.iv-remove{
  min-height:44px;
  border:1px solid var(--iv-rule);
  background:var(--iv-card);
  color:#A52D28;
  flex:0 0 auto;
}

.iv-linegrid{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:8px;
  align-items:end;
  margin-top:8px;
}

.iv-stepper{
  display:grid;
  grid-template-columns:32px 30px 32px;
  height:44px;
  border:1px solid var(--iv-ink);
  background:var(--iv-card);
}

.iv-stepper button{
  border:0;
  background:var(--iv-card);
  min-height:42px;
  padding:0;
  font-weight:800;
}

.iv-stepper span{
  display:grid;
  place-items:center;
  border-left:1px solid var(--iv-ink);
  border-right:1px solid var(--iv-ink);
  font-size:13px;
}

.iv-linetotal,
.iv-summarybox div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border-top:1px solid var(--iv-rule);
  margin-top:10px;
  padding-top:10px;
  font-size:14px;
}

.iv-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:10px 0;
}

.iv .chip{
  min-height:44px;
}

.iv .chip.on,
.iv .chip[aria-pressed="true"]{
  background:var(--iv-lime);
  color:var(--iv-ink);
}

.iv-due{
  margin-top:8px;
}

.iv-summarybox{
  border-top:1px solid var(--iv-ink);
  margin-top:16px;
}

.iv-summarybox div{
  border-top:0;
  margin-top:0;
  font-size:16px;
}

.iv-footer{
  position:static;   /* deviation: a sticky footer sat under the app's tab bar */
  bottom:auto;
  z-index:7;
  background:rgba(251,251,250,.96);
  border-top:1px solid var(--iv-rule);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:10px 0;
  margin-top:12px;
}

.iv-footer .btn{
  min-height:48px;
  font-weight:800;
}

.iv-detailtop{
  align-items:flex-start;
}

.iv-detailmoney{
  display:grid;
  gap:3px;
  justify-items:end;
  min-width:116px;
}

.iv-detailmoney span{
  color:var(--iv-graphite);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.iv-detailmoney b{
  font-size:15px;
}

.iv-table{
  border-top:1px solid var(--iv-ink);
  margin-top:14px;
}

.iv-table div{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:10px;
  border-bottom:1px solid var(--iv-rule);
  padding:10px 0;
  font-size:13px;
  align-items:start;
}

.iv-dates{
  display:grid;
  gap:5px;
  margin-top:12px;
}

.iv-dates p,
.iv-note p{
  margin:0;
  color:var(--iv-graphite);
  font-size:14px;
  line-height:1.35;
}

.iv-note{
  border:1px solid var(--iv-rule);
  background:#F8F8F6;
  padding:10px;
  margin-top:12px;
}

.iv-timeline{
  border-left:1px solid var(--iv-ink);
  margin:12px 0 0 7px;
  padding-left:12px;
  display:grid;
  gap:9px;
}

.iv-timeline div{
  position:relative;
  color:var(--iv-graphite);
  font-size:13px;
  line-height:1.3;
}

.iv-timeline div:before{
  content:"";
  position:absolute;
  left:-17px;
  top:4px;
  width:8px;
  height:8px;
  background:var(--iv-lime);
  border:1px solid var(--iv-ink);
  border-radius:50%;
}

.iv-actionscard{
  margin-top:12px;
  display:grid;
  gap:8px;
}

.iv-actionscard .btn{
  width:100%;
  min-height:48px;
}

.iv-dangerbtn{
  color:#A52D28;
  border-color:#A52D28;
}

.iv-scrim{
  position:fixed;
  inset:0;
  background:rgba(18,19,20,.28);
  z-index:80;
}

.iv-sheet{
  position:fixed;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  z-index:81;
  width:100%;
  max-width:760px;
  max-height:86dvh;
  overflow:auto;
  background:var(--iv-sheet);
  border:1px solid var(--iv-ink);
  border-bottom:0;
  border-radius:2px 2px 0 0;
  padding:10px 16px 16px;
}

.iv-grab{
  width:44px;
  height:4px;
  background:var(--iv-rule);
  margin:0 auto 12px;
}

.iv-sheet h2{
  margin-bottom:6px;
}

@media (min-width:700px){
  .iv-new{
    width:auto;
    min-width:180px;
  }

  .iv-head{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px 12px;
    align-items:end;
  }

  .iv-headrow,
  .iv-summary{
    grid-column:1;
  }

  .iv-new{
    grid-column:2;
    grid-row:1 / span 2;
  }

  .iv-list{
    gap:10px;
  }

  .iv-row{
    padding:12px;
  }

  .iv-linegrid{
    grid-template-columns:110px 1fr;
  }
}

/* invoicing1014 check loop (ChatGPT gpt-5.5): six Office labels fit at 375px, quiet paid card, switch track, compact line adder */
.officeseg.six button{font-size:clamp(10px,2.65vw,13px)!important;padding:0 3px!important;letter-spacing:-.035em;text-overflow:clip!important}
.iv-actions-quiet{padding-block:14px}
.iv-paidfull{margin:0;color:var(--crust-graphite);font-weight:700}
.iv-switch{width:50px;height:30px;min-height:30px;padding:3px;background:#EEEEEC;border:1px solid var(--crust-ink);border-radius:2px;transition:background 140ms ease}
.iv-switch i{width:22px;height:22px;background:var(--crust-ink)}
.iv-switch[aria-pressed="true"]{background:#D4F53C}
.iv-switch:focus-visible{outline:2px solid var(--crust-ink);outline-offset:2px}
.iv-addline{display:block;width:100%;min-height:44px;margin:10px 0 6px;padding:0 12px;text-align:left;border:1px solid var(--crust-ink);border-radius:2px;background:var(--crust-ink);color:#fff;font-weight:700}

/* resv1017b: Double-booked on the Front (table tag + booking sheet) and the minimum-notice inputs in Setup */
.dz .z-tbl .rz-tbltag.rz-dbl{background:#FFF1EE;color:#A52D28;border-color:#A52D28}
.dz .rz-tag.rz-dbl{border-color:#A52D28}
.dz .rz-dbl-note{margin:10px 0 0;padding:8px 10px;border:1.5px solid #A52D28;background:#FFF1EE;color:#A52D28;font-size:13px;line-height:1.35}
.dz label .rz-feature-title,.dz label .rz-feature-copy{display:block}
.dz .rz-notice-in{width:88px;min-height:44px;padding:8px 10px;border:1.5px solid #121314;border-radius:2px;background:#FFFFFF;color:#121314;font:inherit;font-size:16px;text-align:right}
.dz .rz-notice-in:focus-visible{outline:2px solid #121314;outline-offset:2px}

/* handbook1017: the handbook setup fields in Docs */
.hbsetup .hbf{display:grid;gap:4px;margin:10px 0}.hbsetup .hbf span{font-size:13px;opacity:.8}.hbsetup .hbf input{width:100%;padding:10px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;font:inherit}

/* zones1017: placed by the walk-in photo */
.z-pill.z-photo{font-size:11px;margin-top:6px;display:inline-block;opacity:.85}

/* walkthrough1020: the Crust+ greeting (light ground, Archivo + Plex Mono, lilac primary, no emoji) */
#wt{position:fixed;inset:0;z-index:9000;background:#FBFBFA;color:#121314;overflow:auto;display:flex;justify-content:center}
#wt .wt-card{width:100%;max-width:440px;min-height:100%;padding:28px 22px 24px;display:flex;flex-direction:column;font-family:'Archivo',sans-serif}
#wt .wt-mark{display:inline-flex;align-items:center;gap:2px;border-top:3px solid #121314;padding-top:4px;margin-bottom:26px;align-self:flex-start}
#wt .wt-mark b{font-weight:800;font-size:22px;letter-spacing:-.02em}#wt .wt-mark i{font-style:normal;font-weight:800;background:#D5C6FF;padding:0 6px;font-size:18px}
#wt h1{font-size:32px;line-height:1.1;font-weight:800;font-stretch:115%;margin:0 0 14px}
#wt p{font-size:17px;line-height:1.45;margin:0 0 10px}
#wt .wt-rows{margin:14px 0 6px;border-top:1px solid #DADCD8}
#wt .wt-row{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #DADCD8;font-size:15px}
#wt .wt-row span{color:#565A5E}#wt .wt-row b{font-weight:600;text-align:right}
#wt .wt-note{color:#565A5E;font-size:15px;margin-top:14px}
#wt .wt-foot{margin-top:auto;padding-top:24px;display:grid;gap:10px}
#wt .wt-btn{min-height:54px;border-radius:12px;font:600 17px 'Archivo',sans-serif;cursor:pointer;border:1.5px solid #121314}
#wt .wt-lilac{background:#D5C6FF;border-color:#D5C6FF;color:#121314}
#wt .wt-outline{background:#FFFFFF;color:#121314;border-color:#DADCD8}
#wt .wt-ink{background:#121314;color:#FBFBFA}
#wt .wt-meta{text-align:center;font:500 13px/1.5 'IBM Plex Mono',monospace;color:#565A5E;margin:4px 0 0}

/* loyalty1020: mirrored stars on the Front, and Setup › Moments › Move */
.srbox{margin-top:10px;padding-top:8px;border-top:1px solid var(--crust-rule)}
.srhead{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;padding:4px 0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.srhead .svgicon svg{width:18px;height:18px}.srhead .mmready{margin-left:auto}
.mmrow.sroff b{color:var(--crust-graphite)}
.onus-ic .svgicon svg{width:18px;height:18px}
.mv h3{margin:4px 0 6px}.mv{margin-bottom:12px}
.mv-ladder{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:10px}
.mv-tier{border:1.5px solid var(--crust-ink);padding:10px 12px;display:grid;gap:2px}.mv-tier b{font-size:22px}
.mv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:10px 0}
.mv-kpi{border:1px solid var(--crust-rule);padding:10px 12px;display:grid}.mv-kpi b{font-size:24px}.mv-kpi span{font-size:13px;color:var(--crust-graphite)}
.mv-held{border-top:1px solid var(--crust-rule);margin-top:6px}
.mv-hrow{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #ECEDE8}
.mv-hrow span{display:grid}.mv-hrow small{color:var(--crust-graphite)}.mv-hhead{font:600 11px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--crust-graphite)}
.mv-act{display:flex!important;gap:6px;justify-content:flex-end}
.mv-batch{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #ECEDE8}.mv-batch span{display:grid}.mv-batch small{color:var(--crust-graphite)}
@media (max-width:640px){.mv-hrow{grid-template-columns:1fr 1fr}.mv-act{grid-column:1/-1;justify-content:flex-start}}

/* register1020: the coffee-counter Front */
.ct{margin-top:10px}.ct-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ct-drawer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--crust-rule);background:#fff;font-size:14px;margin-bottom:10px}
.ct-drawer>span{font-weight:700;margin-right:auto}.ct-inl{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}
.ct-inl input,.ct-dform input{min-height:40px;border:1px solid var(--crust-rule);padding:0 8px;font-size:16px;width:120px;border-radius:2px}
.ct-dform{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--crust-rule);border-top:0;background:#fff;margin:-10px 0 10px}
.ct-dform label{display:grid;gap:4px;font-size:13px;font-weight:600}
.ct-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;align-items:start}
.ct-check{position:sticky;top:8px;display:grid;gap:10px}
.ct-mode{display:flex;gap:6px;justify-content:center}.ct-mode button{min-height:40px;padding:0 14px;border:1.5px solid var(--crust-ink);background:#fff;font:700 14px Archivo,sans-serif;color:var(--crust-ink);cursor:pointer}
.ct-mode button.on{background:var(--crust-ink);color:#fff}
.ct-empty{color:var(--crust-graphite);text-align:center;padding:18px 0;margin:0}.ct-after{display:flex;gap:8px;justify-content:center}
.ct-lines{display:grid}.ct-line{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:start;padding:9px 0;border-bottom:1px solid #ECEDE8}
.ct-line div{display:grid}.ct-line small{color:var(--crust-graphite);font-size:13px}.ct-amt{font:500 15px 'IBM Plex Mono',monospace}
.ct-x{border:0;background:none;padding:2px;cursor:pointer;color:var(--crust-graphite)}.ct-x .svgicon svg{width:16px;height:16px}
.ct-tot{display:grid;gap:3px;font-size:14px}.ct-tot div{display:flex;justify-content:space-between}.ct-tot span:last-child{font-family:'IBM Plex Mono',monospace}
.ct-total{font-size:20px;font-weight:800;margin-top:4px}.ct-pay{min-height:56px;font-size:18px}
.ct-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ct-tabs button{min-height:42px;padding:0 14px;border:1px solid var(--crust-rule);background:#fff;font:600 15px Archivo,sans-serif;color:var(--crust-ink);cursor:pointer}
.ct-tabs button.on{border:1.5px solid var(--crust-ink);background:#DED7F0}
.ct-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ct-tile{display:flex;flex-direction:column;justify-content:space-between;min-height:96px;padding:12px;border:1.5px solid var(--crust-ink);background:#fff;text-align:left;cursor:pointer;font:inherit;color:var(--crust-ink)}
.ct-tile b{font-size:16px;line-height:1.2}.ct-tile span{font:500 14px 'IBM Plex Mono',monospace;color:#3a3d40}.ct-tile:active{background:#D4F53C}
.ct-tile:disabled{opacity:.45}.ct-ql{margin:18px 0 8px}
.ct-scrim{position:fixed;inset:0;background:rgba(18,19,20,.28);z-index:60}
.ct-sheet{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:61;width:min(820px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;background:#fff}
.ct-sh-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:6px}.ct-sh-head h3{margin:0}
.ct-price{font:600 24px 'IBM Plex Mono',monospace}
.ct-gl{font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--crust-graphite);margin:12px 0 6px}
.ct-chips{display:flex;flex-wrap:wrap;gap:6px}
.ct-chip{min-height:42px;padding:0 12px;border:1px solid var(--crust-rule);background:#fff;font:500 15px Archivo,sans-serif;color:var(--crust-ink);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.ct-chip small{font:500 12px 'IBM Plex Mono',monospace;color:var(--crust-graphite)}.ct-chip.on{border:1.5px solid var(--crust-ink);background:#DED7F0;font-weight:700}
.ct-more{color:var(--crust-graphite)}
.ct-step{display:inline-flex;border:1.5px solid var(--crust-ink)}.ct-step button{width:44px;min-height:42px;border:0;background:#fff;font-size:20px;cursor:pointer}
.ct-step span{width:44px;display:grid;place-items:center;border-left:1px solid var(--crust-rule);border-right:1px solid var(--crust-rule);font-family:'IBM Plex Mono',monospace}
.ct-sh-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;position:sticky;bottom:-18px;background:#fff;padding:10px 0}
.ct-addbtn{min-height:52px;padding:0 26px;font-size:17px}
.ct-tenders{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0}
.ct-tender{display:grid;gap:4px;min-height:96px;place-content:center;text-align:center;border:1.5px solid var(--crust-ink);background:#fff;cursor:pointer;font:inherit;color:var(--crust-ink)}
.ct-tender b{font-size:19px}.ct-tender small{color:var(--crust-graphite)}.ct-tender.on,.ct-tender:first-child{background:#DED7F0}
.ct-cash{display:grid;gap:10px;padding:10px 0;border-top:1px solid var(--crust-rule)}.ct-labnote{margin:8px 0 0}
.toastline{margin-top:10px;font-size:14px;color:var(--crust-graphite)}
@media (max-width:900px){.ct-grid{grid-template-columns:1fr}.ct-check{position:static}.ct-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-tenders{grid-template-columns:1fr}}

.dr-table{display:grid;margin-top:10px;overflow-x:auto}.dr-row{display:grid;grid-template-columns:2.2fr repeat(6,1fr);gap:10px;padding:9px 0;border-top:1px solid #ECEDE8;font-size:14px;min-width:720px}
.dr-row span{display:grid;align-content:start}.dr-row small{color:var(--crust-graphite);font-size:12px}.dr-head{font:600 11px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--crust-graphite)}
.dr-short{color:#A52D28;font-weight:700}.dr-over{color:#2F6B3A;font-weight:700}
.lb-grid{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start;margin-top:12px}.lb-form{display:grid;gap:10px}
.lb-form label{display:grid;gap:4px;font-weight:600;font-size:14px}.lb-form input[type=text]{min-height:42px;border:1px solid var(--crust-rule);padding:0 10px;font-size:16px}
.lb-form .lb-ck{display:flex;gap:8px;align-items:center;font-weight:500}
.lb-prev .lab{width:2.25in;height:1.25in;padding:.07in .1in;display:flex;flex-direction:column;border:1.5px solid #121314;border-radius:4px;background:#fff}
.lb-prev .top{display:flex;justify-content:space-between;font:500 8px 'IBM Plex Mono',monospace}.lb-prev .t{font:800 15px/1.05 Archivo,sans-serif;font-stretch:115%;margin:3px 0 1px}
.lb-prev .b{font:800 10px Archivo,sans-serif}.lb-prev .r{font-size:9px;color:#333}.lb-prev .bot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end}
.lb-prev .n{font:700 10px Archivo,sans-serif}.lb-prev .f{font:500 7px 'IBM Plex Mono',monospace}
@media (max-width:640px){.lb-grid{grid-template-columns:1fr}}
.ct .ct-pay,.ct-sheet .ct-addbtn,.ct-sheet .btn.dark,.ct .btn.dark{background:var(--crust-ink);color:#fff;border-color:var(--crust-ink)}
.lb-prev .top{background:none!important;color:inherit!important;position:static!important;height:auto!important;min-height:0!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important}
/* order1012: online ordering on staff screens (ChatGPT gpt-5.5): new-order banner, Online pill, orders sheet, Setup rows */
.wo-banner{
  position:fixed;
  z-index:10050;
  top:12px;
  left:50%;
  transform:translateX(-50%);
  width:min(980px, calc(100vw - 24px));
  min-height:86px;
  background:#FBFBFA;
  color:#121314;
  border:4px solid #121314;
  border-radius:2px;
  box-shadow:8px 8px 0 #121314;
  display:grid;
  grid-template-columns:1fr auto;
  gap:16px;
  align-items:center;
  padding:14px;
  font-family:'Archivo',sans-serif;
  animation:wo-banner-pulse 1.25s ease-in-out infinite;
}
.wo-banner__main{
  min-width:0;
}
.wo-banner__kicker{
  margin:0 0 4px;
  color:#121314;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.wo-banner__title{
  margin:0;
  color:#121314;
  font-size:26px;
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.02em;
}
.wo-banner__actions{
  display:flex;
  gap:10px;
  align-items:center;
}
.wo-banner__btn{
  min-height:52px;
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
  color:#121314;
  padding:0 18px;
  font:900 15px/1 'Archivo',sans-serif;
  box-shadow:none;
}
.wo-banner__btn:hover,
.wo-banner__btn:focus-visible{
  background:#F0F1EC;
}
.wo-banner__btn--primary{
  background:#D6E59A;
}
.wo-banner__btn--primary:hover,
.wo-banner__btn--primary:focus-visible{
  background:#cddd85;
}
.wo-banner__btn:focus-visible{
  outline:3px solid #121314;
  outline-offset:3px;
}
@keyframes wo-banner-pulse{
  0%,100%{box-shadow:8px 8px 0 #121314; transform:translateX(-50%) scale(1)}
  50%{box-shadow:12px 12px 0 #121314; transform:translateX(-50%) scale(1.012)}
}
@media (prefers-reduced-motion: reduce){
  .wo-banner{animation:none;background:#D6E59A}
}
@media (max-width:720px){
  .wo-banner{
    grid-template-columns:1fr;
    align-items:stretch;
    top:8px;
  }
  .wo-banner__title{font-size:21px}
  .wo-banner__actions{display:grid;grid-template-columns:1fr 1fr}
}

.wo-pill{
  position:fixed;
  z-index:9500;
  left:16px;
  bottom:104px;
  min-height:52px;
  border:2px solid #121314;
  border-radius:2px;
  background:#D6E59A;
  color:#121314;
  padding:0 14px;
  font:900 15px/1 'Archivo',sans-serif;
  box-shadow:4px 4px 0 #121314;
}
.wo-pill[data-count="0"],
.wo-pill.is-calm{
  background:#FBFBFA;
  box-shadow:none;
}
.wo-pill:hover,
.wo-pill:focus-visible{
  transform:translateY(-1px);
}
.wo-pill:focus-visible{
  outline:3px solid #121314;
  outline-offset:3px;
}
@media (max-width:820px){
  .wo-pill{bottom:92px;left:12px}
}

.wo-sheet{
  position:fixed;
  z-index:10000;
  top:0;
  right:0;
  bottom:0;
  width:min(520px, 100vw);
  background:#FBFBFA;
  color:#121314;
  border-left:2px solid #121314;
  border-radius:2px 0 0 2px;
  box-shadow:-8px 0 0 rgba(18,19,20,.12);
  font-family:'Archivo',sans-serif;
  display:grid;
  grid-template-rows:auto 1fr;
}
.wo-sheet *{
  box-sizing:border-box;
}
.wo-sheet__top{
  border-bottom:2px solid #121314;
  padding:16px;
  background:#FBFBFA;
}
.wo-sheet__title-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
}
.wo-sheet__title{
  margin:0;
  color:#121314;
  font-size:28px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.03em;
}
.wo-sheet__close{
  width:48px;
  height:48px;
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
  color:#121314;
  font:900 22px/1 'Archivo',sans-serif;
}
.wo-sheet__close:hover,
.wo-sheet__close:focus-visible{
  background:#F0F1EC;
}
.wo-sheet__pause{
  margin-top:14px;
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
}
.wo-sheet__pause-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  padding:12px;
}
.wo-sheet__pause-title{
  color:#121314;
  font-size:18px;
  line-height:1.1;
  font-weight:900;
}
.wo-sheet__pause-copy{
  margin-top:3px;
  color:#565A5E;
  font-size:13px;
  line-height:1.25;
  font-weight:800;
}
.wo-sheet__status{
  border-top:1.5px solid #DADCD8;
  padding:10px 12px;
  color:#565A5E;
  font-size:13px;
  line-height:1.25;
  font-weight:900;
}
.wo-sheet__toggle{
  appearance:none;
  width:56px;
  height:34px;
  border:2px solid #121314;
  background:#FBFBFA;
  border-radius:2px;
  position:relative;
  margin:0;
}
.wo-sheet__toggle::after{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:22px;
  height:22px;
  background:#121314;
  border-radius:1px;
  transition:transform .14s ease;
}
.wo-sheet__toggle:checked{
  background:#D6E59A;
}
.wo-sheet__toggle:checked::after{
  transform:translateX(22px);
}
.wo-sheet__body{
  overflow:auto;
  padding:14px 16px 18px;
}
.wo-sheet__group-title{
  margin:18px 0 8px;
  color:#565A5E;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.wo-sheet__group-title:first-child{
  margin-top:0;
}
.wo-card{
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
  color:#121314;
  margin:0 0 12px;
}
.wo-card.is-new{
  background:#FFF8D7;
  box-shadow:5px 5px 0 #121314;
}
.wo-card.is-ready{
  background:#D6E59A;
}
.wo-card.is-picked-up{
  opacity:.58;
}
.wo-card__head{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:start;
  padding:12px;
  border-bottom:1.5px solid #DADCD8;
}
.wo-card__title{
  margin:0;
  color:#121314;
  font-size:20px;
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.02em;
}
.wo-card__meta{
  margin-top:4px;
  color:#565A5E;
  font-size:13px;
  line-height:1.25;
  font-weight:900;
}
.wo-card__chip{
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
  color:#121314;
  padding:6px 8px;
  font-size:12px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
}
.wo-card.is-new .wo-card__chip{
  background:#D6E59A;
}
.wo-card__body{
  padding:12px;
}
.wo-card__phone{
  margin:0 0 10px;
  color:#121314;
  font-size:14px;
  line-height:1.25;
  font-weight:900;
}
.wo-card__items{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.wo-card__items li{
  color:#121314;
  font-size:14px;
  line-height:1.28;
  font-weight:850;
}
.wo-card__details,
.wo-card__note,
.wo-card__order-note{
  display:block;
  margin-top:2px;
  color:#565A5E;
  font-size:12px;
  line-height:1.3;
  font-weight:750;
}
.wo-card__note{
  color:#121314;
  font-style:italic;
}
.wo-card__order-note{
  margin-top:10px;
  padding:8px;
  border:1.5px solid #121314;
  background:#FBFBFA;
}
.wo-card__actions{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  padding:12px;
  border-top:1.5px solid #DADCD8;
}
.wo-card__btn{
  min-height:48px;
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
  color:#121314;
  padding:0 12px;
  font:900 14px/1 'Archivo',sans-serif;
}
.wo-card__btn--primary{
  background:#D6E59A;
}
.wo-card__btn:hover,
.wo-card__btn:focus-visible,
.wo-sheet__close:focus-visible,
.wo-sheet__toggle:focus-visible{
  outline:3px solid #121314;
  outline-offset:3px;
}
.wo-card__btn:hover{
  background:#F0F1EC;
}
.wo-card__btn--primary:hover{
  background:#cddd85;
}
@media (max-width:820px){
  .wo-sheet{
    width:100vw;
    border-left:0;
    border-radius:0;
  }
}

.wo-num{
  display:grid;
  grid-template-columns:1fr 160px;
  gap:12px;
  align-items:center;
}
.wo-num__input{
  width:100%;
  min-height:48px;
  border:2px solid #121314;
  border-radius:2px;
  background:#FBFBFA;
  color:#121314;
  padding:8px 10px;
  font:900 16px/1 'Archivo',sans-serif;
  text-align:right;
}
.wo-num__input:focus-visible{
  outline:3px solid #121314;
  outline-offset:3px;
}
@media (max-width:620px){
  .wo-num{
    grid-template-columns:1fr;
  }
  .wo-num__input{
    text-align:left;
  }
}

.wo-stripe{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
}
.wo-stripe__btn{
  min-height:48px;
  border:2px solid #121314;
  border-radius:2px;
  background:#D6E59A;
  color:#121314;
  padding:0 12px;
  font:900 15px/1 'Archivo',sans-serif;
}
.wo-stripe__btn:hover,
.wo-stripe__btn:focus-visible{
  background:#cddd85;
  outline:3px solid #121314;
  outline-offset:3px;
}
@media (max-width:620px){
  .wo-stripe{
    grid-template-columns:1fr;
  }
}
/* order1012 wiring (Claude): hidden wins; states Chat's sample didn't cover */
.wo-pill[hidden],.wo-banner[hidden],.wo-sheet[hidden]{display:none!important}
.wo-sheet__empty{margin:8px 0 16px;color:#565A5E;font:700 14px 'Archivo',sans-serif}
.wo-card.is-accepted .wo-card__chip{background:#FFF6DF}
/* order1012 final polish (Claude; ChatGPT round 2 blocked on OpenAI credits): pill off the floor map, pause row stacked */
.wo-pill{left:auto;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
@media (max-width:720px){.wo-pill{left:auto;right:12px}}
.wo-sheet__pause-title{display:block;margin-bottom:2px}
.wo-sheet__pause-copy{display:block}

/* reader1020 */
.ct-tenders.one{grid-template-columns:1fr}.ct-payerr{margin:6px 0;padding:8px 10px;background:#FBEAE8;color:#7A1F1A;font-weight:600;font-size:14px}
.rd select{min-height:40px;border:1px solid var(--crust-rule);padding:0 8px;font-size:15px;background:#fff;max-width:200px}
.rd-dot{width:14px!important;height:14px!important;min-width:14px;border-radius:50%;background:#C9CCC8;border:0!important}.rd-dot.on{background:#3E8E4E}

/* web1020: online tickets on The Line */
.z-online{display:inline-block;margin-left:6px;padding:1px 6px;border:1.5px solid #121314;background:#D4F53C;font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.06em;color:#121314}
.z-ticket.z-web .z-tickethead{background:#FFE7A6}.z-ticket.held{opacity:.7}.z-ticket.held .z-timer{font-size:13px;white-space:nowrap}
.rd-picks{display:grid;gap:6px;justify-items:start}.rd-picks label{display:flex;gap:6px;align-items:center;font-size:15px}
/* web1020: Drink Passport */
.dbk-front{margin-top:10px;padding-top:8px;border-top:1px solid var(--crust-rule);display:grid;gap:8px}
.dbk-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.dbk-row>div{display:grid}.dbk-row small{color:var(--crust-graphite)}
.dbk-paper{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;padding:8px;border:1px solid var(--crust-rule)}
.dbk-paper label{display:flex;gap:6px;align-items:center;font-size:14px}.dbk-paper .btn{grid-column:1/-1;justify-self:start}
.dbk-wallet{margin:14px 0;padding:16px;background:#fff;border:1.5px solid var(--crust-ink)}.dbk-wallet h3{margin:2px 0 10px}
.dbk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.dbk-sq{aspect-ratio:1;border:1.5px solid var(--crust-ink);display:grid;place-items:center;align-content:center;gap:2px;text-align:center;font-size:12px;padding:4px;background:#fff;color:var(--crust-ink)}
.dbk-sq.done{background:#C98A3B;color:#1C1714}.dbk-sq.locked{border-style:dashed;color:#8a8780;background:transparent}
.dbk-grid.big .dbk-sq{font-size:15px}.dbk-show{position:fixed;inset:0;z-index:70;overflow:auto;margin:0;border:0}
.dbk-count{margin:12px 0 2px}.dbk-showbtn{width:100%;margin-top:10px;background:var(--crust-ink);color:#fff}
.dbk-office input,.dbk-office select{min-height:40px;border:1px solid var(--crust-rule);padding:0 8px;font-size:15px;background:#fff}
.dbk-office select[multiple]{min-height:80px;padding:4px}
.dbk-ofrow{display:flex;gap:14px;flex-wrap:wrap;align-items:end;margin-top:8px}.dbk-ofrow label{display:grid;gap:4px;font-weight:600;font-size:14px}.dbk-ck{display:flex!important;align-items:center;gap:6px;font-weight:500!important}
.dbk-sqlist{display:grid;gap:8px;margin:6px 0 8px}.dbk-sqrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 0;border-top:1px solid #ECEDE8}
.dbk-lockpill{display:inline-flex;gap:4px;align-items:center;font-size:12px;color:#7a4b00}
/* offline1021: the Reader button on Crust running on a Stripe reader */
.rdbar{position:relative}.rdmenu{position:absolute;z-index:40;top:44px;left:0;display:grid;min-width:240px;background:#fff;border:1.5px solid var(--crust-ink)}
.rdmenu button{min-height:48px;text-align:left;padding:0 14px;border:0;border-bottom:1px solid #ECEDE8;background:#fff;font:600 15px Archivo,sans-serif;color:var(--crust-ink)}

/* scroll1026: the bottom bar steps aside while the keyboard is up (iOS moved it mid-screen) */
body.kb-open .appbar{display:none}

/* dp1028 (design pass p.2/p.11): The Line. Flat receipt tickets, 1px rules; urgency is words, a timer, rules and an
   icon, never a warm color. 8 min = CHECK (sky); 15 min = double ink rule + PRIORITY (lilac), moved to the front. */
.dz .z-ticket{border:1px solid #DADCD8;border-radius:0;box-shadow:none}
.dz .z-ticket.neutral{box-shadow:none}
.dz .z-ticket.warn{border:1px solid #121314;box-shadow:none}
.dz .z-ticket.urgent{border:4px double #121314;box-shadow:none}
.dz .z-ticket.z-web .z-tickethead{background:none}
.dz .z-timer,.dz .urgent .z-timer,.dz .warn .z-timer{font:500 22px/1.2 "IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums;border:0;background:none;color:#121314;padding:0}
.dz .z-flag{display:flex;align-items:center;gap:6px;margin:-2px 0 8px}
.dz .z-tag{display:inline-block;font:600 12px/1.4 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.06em;padding:1px 6px;color:#121314;border:0;border-radius:0}
.dz .z-check{background:#9FD6FF}.dz .z-prio{background:#D5C6FF}
.dz .z-ico{flex:none}

/* history1030: the current Crust type, rules and lime carry through payments. */
.ch-history{margin-top:24px}.ch-history .k-stat span{overflow-wrap:anywhere}.ch-payment{padding:16px 0;border-bottom:1px solid var(--crust-rule)}
.ch-payment p{margin:6px 0}.ch-confirm{border-top:2px solid var(--crust-ink);padding:20px 0;margin-top:20px}.ch-confirm input,.ch-search input{min-height:48px;font-size:16px;width:100%;border:1px solid var(--crust-rule);padding:10px;background:#fff}
.ch-search{display:flex;gap:12px;margin:20px 0}.ch-search input{min-width:0}.ch-search .btn{flex:0 0 auto}.ch-history .actions{flex-wrap:wrap}.ch-history .k-links{gap:20px;flex-wrap:wrap}
.ppqr{--lime:var(--crust-lime);--cream:transparent}.ppqr .ppqrbox{box-shadow:none;border:0;border-top:2px solid var(--crust-ink);text-align:left;background:var(--crust-sheet)}
.ppqr .ppqrbtn,.ppqr .ppqrimg,.ppqr .ppqrmark{box-shadow:none}.ppqr .ppqrbtn{background:var(--crust-lime);border:1px solid var(--crust-ink)}.ppqr .ppqrbtn.secondary{background:transparent}.ppqr .ppqrstat{background:transparent;border:0}.ppqr #ppqrT{font-stretch:112%}
@media(max-width:600px){.ppqr .ppqrbox{width:100%;max-height:100dvh;padding:calc(24px + env(safe-area-inset-top,0px)) 20px calc(24px + env(safe-area-inset-bottom,0px))}.ppqr .ppqrgrid{gap:16px}.ppqr .ppqrimg{width:200px;height:200px;margin:0 auto}.ppqr .ppqrhelp{text-align:left}.ppqr .ppqrclose{top:calc(16px + env(safe-area-inset-top,0px))}}

.ppqrbrand{margin-bottom:24px}.ppqrbrand svg{width:76px;height:auto;fill:var(--crust-ink)}

.ppqr .ppqrhelp{font-size:15px;font-weight:400;line-height:1.4;color:var(--crust-graphite)}.ppqr .ppqrsub{font:500 16px 'IBM Plex Mono',monospace}.ppqr .ppqrstat{padding:12px 0}.ppqr .ppqrstat h3{font-size:22px;font-weight:700}.ppqr .ppqrrow{font-size:16px;font-weight:400}.ppqr .ppqrrow b{font:500 16px 'IBM Plex Mono',monospace}.ppqr .ppqrbtn{font-size:16px;font-weight:600;min-height:48px}
