/* Sites by Leo: order-ahead layer (templates/menu/order.js).
   Set these on :root in the site's own CSS to match it: --o-accent --o-on-accent --o-ink --o-muted --o-bg --o-line --o-font --o-bottom */
.mlist li{position:relative}
.o-ctl{display:inline-flex;align-items:center;gap:6px;flex:none;margin-left:10px}
.o-add{border:1.5px solid var(--o-accent,#1B1714);background:transparent;color:var(--o-accent,#1B1714);border-radius:999px;min-height:36px;padding:0 14px;font:700 14px/1 var(--o-font,inherit);cursor:pointer}
.o-add:hover{background:var(--o-accent,#1B1714);color:var(--o-on-accent,#fff)}
.o-q{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--o-accent,#1B1714);background:transparent;color:var(--o-accent,#1B1714);font:700 18px/1 var(--o-font,inherit);cursor:pointer;display:grid;place-items:center}
.o-n{min-width:18px;text-align:center;font-variant-numeric:tabular-nums}
.o-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--o-bottom,16px) + env(safe-area-inset-bottom,0px));width:min(560px,calc(100% - 24px));z-index:60}
.o-bar[hidden]{display:none}
.o-bar>button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-radius:999px;background:var(--o-accent,#1B1714);color:var(--o-on-accent,#fff);padding:8px 8px 8px 20px;font:700 15px/1.25 var(--o-font,inherit);text-align:left;cursor:pointer;box-shadow:0 16px 36px -14px rgba(0,0,0,.5)}
.o-bar small{display:block;opacity:.8;font-size:13px;font-variant-numeric:tabular-nums}
.o-bar-b{background:var(--o-on-accent,#fff);color:var(--o-accent,#1B1714);border-radius:999px;padding:10px 18px;font-weight:700;white-space:nowrap}
body.o-has{padding-bottom:96px}
.o-scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:80}
.o-sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);max-height:88vh;background:var(--o-bg,#fff);color:var(--o-ink,#1B1714);border-radius:22px 22px 0 0;z-index:81;display:flex;flex-direction:column;font-family:var(--o-font,inherit);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:700px){.o-sheet{bottom:auto;top:50%;transform:translate(-50%,-50%);border-radius:22px}}
.o-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 8px}
.o-head h3{margin:0}
.o-x{width:40px;height:40px;border-radius:50%;border:1px solid var(--o-line,#E4DACB);background:transparent;color:var(--o-ink,#1B1714);font-size:24px;line-height:1;cursor:pointer}
.o-body{overflow-y:auto;padding:4px 20px 12px;display:grid;gap:14px}
.o-lines{list-style:none;margin:0;padding:0;display:grid}
.o-lines li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--o-line,#E4DACB)}
.o-lines .o-ctl{margin:0}
.o-ln{font-weight:700}
.o-lp{font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.o-tot{display:flex;justify-content:space-between;font-size:18px}
.o-f{display:grid;gap:6px;font-weight:700;font-size:14px}
.o-f small{font-weight:500;color:var(--o-muted,#645A50)}
.o-f select,.o-f textarea{font:500 16px/1.4 var(--o-font,inherit);color:var(--o-ink,#1B1714);background:var(--o-bg,#fff);border:1.5px solid var(--o-line,#E4DACB);border-radius:10px;padding:10px 12px;width:100%}
.o-small{margin:0;font-size:13.5px;color:var(--o-muted,#645A50)}
.o-empty{color:var(--o-muted,#645A50)}
.o-foot{padding:12px 20px 16px;border-top:1px solid var(--o-line,#E4DACB)}
.o-pay{width:100%;min-height:52px;border:0;border-radius:999px;background:var(--o-accent,#1B1714);color:var(--o-on-accent,#fff);font:700 17px/1 var(--o-font,inherit);cursor:pointer}
.o-ghost{background:transparent;color:var(--o-ink,#1B1714);border:1.5px solid var(--o-line,#E4DACB)}
.o-toast{position:fixed;left:50%;bottom:calc(110px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(460px,calc(100% - 32px));background:#111;color:#fff;padding:14px 16px;border-radius:14px;font:500 14.5px/1.45 var(--o-font,inherit);z-index:90;box-shadow:0 16px 40px -12px rgba(0,0,0,.5)}
@media (prefers-reduced-motion:no-preference){.o-sheet{animation:o-up .2s ease-out}@keyframes o-up{from{opacity:.5;translate:0 24px}}}

/* Katsu: the item added from the home page gets a matcha highlight */
.mlist li.o-just{background:color-mix(in srgb,#9CC45A 30%,transparent);box-shadow:-12px 0 0 color-mix(in srgb,#9CC45A 30%,transparent),12px 0 0 color-mix(in srgb,#9CC45A 30%,transparent)}

/* Pay on a mockup: the order ticket the shop would get (order.js paid) */
.o-ticket{background:#FFFDF6;color:#1B1714;border:1.5px dashed #B9AE9F;border-radius:8px;padding:14px 16px;font:500 14.5px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:grid;gap:8px}
.o-tk-row{display:flex;justify-content:space-between;gap:12px;margin:0}
.o-tk-lines{list-style:none;margin:0;padding:8px 0;border-block:1.5px dashed #B9AE9F;display:grid;gap:4px}
.o-tk-lines li{display:flex;justify-content:space-between;gap:12px}
.o-tk-note{margin:0;font-style:italic}
/* Choices (milk, size, decaf...) for items with options */
.o-cnt{font-variant-numeric:tabular-nums;font-size:14px;color:var(--o-muted,#645A50)}
.o-ln small{display:block;font-weight:400;font-size:13px;color:var(--o-muted,#645A50)}
.o-opts{border:0;margin:0;padding:0;display:grid;gap:6px}
.o-opts legend{font-weight:700;font-size:15px;padding:0;margin-bottom:6px}
.o-opts legend small{font-weight:400;color:var(--o-muted,#645A50)}
.o-opt{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border:1.5px solid var(--o-line,#E4DACB);border-radius:12px;cursor:pointer}
.o-opt:has(input:checked){border-color:var(--o-accent,#1B1714)}
.o-opt input{width:20px;height:20px;margin:0;accent-color:var(--o-accent,#1B1714)}
.o-opt span{flex:1}
.o-opt small{color:var(--o-muted,#645A50);font-variant-numeric:tabular-nums}
.o-row{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.o-row legend{grid-column:1/-1}
.o-row .o-opt{padding:0 10px;gap:8px}
