/* Tiers of Tiramisu · Order Simulator v2. One signature: the tiramisu cross-section (strata). Everything else stays quiet. */
:root{--ink:#2A1B12;--cacao:#5A3A24;--cacao2:#7B5136;--finger:#D7B78A;--masc:#FFFCF6;--crema:#F5EEE3;--line:#E5D8C6;--mute:#776252;--gold:#8F6B1E;--err:#A23B2C;--ok:#3C6B3F;--warn:#86570F;
 --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--r:14px;--r2:9px;
 --strata:radial-gradient(circle at 30% 40%,rgba(70,40,22,.55) 0 .8px,transparent 1.4px) 0 0/6px 5px,linear-gradient(180deg,#6A4430 0 20%,#FFF7EA 20% 38%,#BE915F 38% 60%,#FFF7EA 60% 78%,#4B2F1F 78% 100%)}
*{box-sizing:border-box}html{background:transparent}
body{margin:0;padding:18px;min-height:0;background:transparent;color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .45em;color:var(--ink)}
h1{font-size:30px;letter-spacing:-.01em}h2{font-size:22px}h3{font-size:17px}h3 small{font:500 13px var(--sans);color:var(--gold);margin-left:6px}
p{margin:0 0 .6em}a{color:var(--cacao);text-decoration:underline;text-underline-offset:2px}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}
input,select,textarea{font:inherit;color:var(--ink);width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r2);background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--cacao);outline-offset:0;border-color:transparent}
:focus-visible{outline:2px solid var(--cacao);outline-offset:2px}
.mut{color:var(--mute)}.small{font-size:13px}
.ph{display:block;position:relative;overflow:hidden;border-radius:var(--r2);background:var(--strata)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* contact gate */
.gate{display:grid;justify-items:center;padding:6px 0 40px}
.gcard{width:100%;max-width:620px;background:var(--masc);border:1px solid var(--line);border-radius:18px;padding:0 28px 22px;overflow:hidden;box-shadow:0 18px 44px rgba(60,35,20,.10)}
.strata{height:40px;margin:0 -28px 24px;background:var(--strata)}
.lede{color:var(--mute);max-width:46ch;margin-bottom:18px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gcap{margin:4px 0}.robot{background:#fff;border:1px solid var(--line);border-radius:var(--r2);padding:12px 14px;max-width:260px}

/* layout: builder 4 of 5 columns, Item View 1 (min 340px) */
.app{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:minmax(0,4fr) minmax(340px,1fr);gap:22px;align-items:start}
.builder{min-width:0}.bhead{margin-bottom:16px}.evs{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:2px 0 0;padding:10px 16px;border-radius:var(--r2);background:var(--crema);font-size:16px}.evs b{font-family:var(--serif);font-size:21px;font-weight:600}.evs.bad{background:#FBF1DD;color:var(--warn)}.evs.bad b{font-size:17px}.evs input{width:auto;padding:6px 8px}.evs .lnk{font-size:15px}.fday{margin:0;padding:11px 0;font-weight:600}.fld>small{display:block;font-size:12.5px;line-height:1.35;margin-top:4px;color:var(--mute)}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:var(--crema);border-radius:999px;margin:0 0 18px}
.tabs button{border:0;background:transparent;padding:11px;border-radius:999px;font-weight:600}
.tabs button.on{background:var(--cacao);color:#fff}
.stage,.ful{background:var(--masc);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:18px}
.sh{margin-bottom:14px}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:14px}
.card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 10px 14px}
.card:hover{border-color:var(--cacao2)}
.card .ph{width:100%;aspect-ratio:4/3;margin-bottom:8px}
.card b{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.25}
.card em{font-style:normal;font-weight:700;color:var(--cacao);margin-top:6px;font-variant-numeric:tabular-nums}
.ph.mos{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;background:var(--line)}.ph.mos img{position:static;width:100%;height:100%;min-height:0;object-fit:cover}

/* item panel */
.back{border:0;background:none;color:var(--cacao);padding:0;margin-bottom:14px;font-weight:600}
.phead{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:start;margin-bottom:8px}
.phead .ph{width:132px;aspect-ratio:1}.phead p:last-child{max-width:62ch}
.sec{border-top:1px solid var(--line);padding:16px 0 6px}
.fld{display:block;margin:0 0 12px}.fld>span{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;font-weight:600;margin-bottom:5px}
.fld>span small{font-weight:500;color:var(--mute)}
.fld em,.ae,.locs>em{display:block;font-style:normal;font-size:13px;color:var(--err);margin-top:4px}
.fld em:empty,.ae:empty,.locs>em:empty{display:none}
.cnt{font-style:normal;font-weight:500;color:var(--mute);font-variant-numeric:tabular-nums}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;text-align:left}
.chip small{color:var(--mute)}.chip.on{border-color:var(--cacao);background:var(--cacao);color:#fff}.chip.on small{color:#F0E1CC}
.chips.pics .chip{border-radius:var(--r);padding:8px 14px 8px 8px}.chip .ph{width:46px;height:46px;flex:0 0 46px}
.dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.18);display:inline-block;flex:0 0 14px}
.dot.mix{background:conic-gradient(#B3202A,#C9A227,#2E7D5B,#2E4A9E,#5E2A4F,#B3202A)}
.chk{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:14px}
.chk input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--cacao)}.chk small{color:var(--mute)}
.stepper{display:inline-grid;grid-template-columns:46px 74px 46px;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.stepper button{border:0;background:var(--crema);font-size:20px;line-height:1}.stepper input{border:0;border-radius:0;text-align:center;padding:10px 4px}
.num{max-width:150px}
.pal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 16px;margin:2px 0 12px}
.pf small{display:block;color:var(--mute);margin-bottom:4px}.pf div{display:flex;gap:6px}
.sw{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);padding:0}.sw.on{box-shadow:0 0 0 2px var(--cacao)}
.upl{display:block;border:1px dashed var(--finger);border-radius:var(--r2);padding:12px;background:#fff;margin-bottom:10px}
.upl input{border:0;padding:0;margin-bottom:6px}.upl span{font-size:13px;color:var(--mute)}
.pbox{margin-top:14px;background:var(--crema);border-radius:var(--r);padding:14px 16px}
.prow{display:flex;justify-content:space-between;gap:14px;padding:3px 0;font-variant-numeric:tabular-nums}
.prow.tot{border-top:1px solid var(--line);margin-top:6px;padding-top:9px;font-family:var(--serif);font-size:18px}
.acts{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.upsell{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;background:#FBF3E4;border:1px solid var(--finger);border-radius:var(--r);padding:12px 14px;margin-bottom:16px}
.upsell p{margin:0;font-family:var(--serif);font-size:17px}.upsell div{display:flex;gap:8px;flex-wrap:wrap}

/* buttons + messages */
.btn{border:1px solid var(--cacao);background:#fff;color:var(--cacao);border-radius:999px;padding:12px 22px;font-weight:700}
.btn.pri{background:var(--cacao);color:#fff}.btn.pri:hover{background:#4A2F1D}
.btn.ghost{border-color:var(--line);color:var(--ink)}
.btn:disabled{opacity:.45;cursor:not-allowed}.btn.wide{width:100%;margin-top:12px}
a.btn{display:inline-block;text-align:center;text-decoration:none}a.btn.wide{display:block;box-sizing:border-box}
.lnk{border:0;background:none;padding:0;color:var(--cacao);text-decoration:underline;text-underline-offset:2px;font-size:13px}
.msg{margin:8px 0;font-size:13.5px;border-radius:var(--r2);padding:8px 11px}.msg:empty{display:none}
.msg.err{color:var(--err);background:#FBEAE6}.msg.warn{color:var(--warn);background:#FBF1DD}.msg.ok{color:var(--ok);background:#EAF2E6}.msg.note{color:var(--cacao);background:#F4EADC}

/* delivery | pickup */
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:4px 0 12px;background:#fff}
.seg button{border:0;background:transparent;padding:12px;font-weight:600}.seg button+button{border-left:1px solid var(--line)}
.seg button.on{background:var(--cacao);color:#fff}.seg button:disabled{color:#B3A393;background:var(--crema);cursor:not-allowed}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.g3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:0 12px}
.locs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.loc{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.loc b{font-family:var(--serif);font-size:16px}.loc small{color:var(--mute)}.loc.on{border-color:var(--cacao);box-shadow:inset 0 0 0 1px var(--cacao)}
.loc:disabled{opacity:.6;cursor:not-allowed}.locs>em{grid-column:1/-1}
.disc{font-size:13px;color:#6B5747;background:var(--crema);border-radius:var(--r2);padding:10px 12px;margin-top:4px}
details.opt{margin:2px 0 12px}details.opt summary{cursor:pointer;color:var(--cacao);font-weight:600;font-size:14px;margin-bottom:10px}

.spin:before{content:'';display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px;border:2px solid var(--finger);border-top-color:var(--cacao);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* Item View: the order slip, topped with the strata */
.side{position:sticky;top:18px;min-width:0}.view{position:relative;overflow:auto;background:var(--masc);border:1px solid var(--line);border-radius:var(--r);padding:0 18px 18px;box-shadow:0 12px 32px rgba(60,35,20,.09)}
.view:before{content:'';display:block;height:12px;margin:0 -18px 16px;background:var(--strata)}
.vh{display:flex;justify-content:space-between;align-items:baseline}.dclose{display:none}
.empty{color:var(--mute);font-style:italic;padding:14px 0;border-bottom:1px solid var(--line);margin:0}
.ln{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.ln .ph{width:52px;height:52px}.ln p{margin:2px 0;font-size:13px}.ln.flash{animation:fl 2s ease-out}
@keyframes fl{from{background:#F5E3BD}to{background:transparent}}
.lt{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.lt b{font-family:var(--serif);font-size:15.5px;line-height:1.25}
.lt span,.lf b,.subl span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.part{color:#6B5747;padding-left:9px;border-left:2px solid var(--finger)}
.sten{font-family:var(--serif);font-style:italic;color:var(--cacao)}
.subl{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#6B5747}
.lf{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px}
.trow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.trow.total{border-bottom:0;border-top:2px solid var(--ink);margin-top:6px;padding-top:12px;font-family:var(--serif);font-size:21px}
.fl{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.fl p{margin:2px 0;font-size:13px}
.fl.ghost{color:var(--mute);border:1px dashed var(--finger);border-radius:var(--r2);padding:10px 12px;margin:10px 0}
.fl.wait{color:var(--mute)}.fl.req{color:var(--cacao)}
.sum{font-size:13.5px;color:#6B5747;margin:10px 0}
.seals{display:grid;justify-items:center;gap:14px;margin:16px 0 4px;text-align:center}.seals figure{margin:0}.seals figcaption{font-size:13px;color:var(--mute);margin-bottom:6px}.seals img{display:block;height:60px;width:auto;max-width:100%;margin:0 auto;border-radius:10px}.seals .rd{height:96px;border-radius:50%}
.minis{display:flex;justify-content:center;align-items:flex-end;gap:22px;margin:14px 0 4px}.minis figure{margin:0;text-align:center}.minis figcaption{font-size:11.5px;color:var(--mute);margin-bottom:4px}.minis img{display:block;margin:0 auto;height:44px;width:auto;border-radius:8px}.minis .rd{height:54px;border-radius:50%}.view .minis{display:none}

/* details modal + toast + mobile bar */
.modal{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-start;justify-content:center;padding:28px 14px;overflow:auto;background:rgba(32,20,12,.55)}
.mbox{position:relative;width:100%;max-width:660px;background:var(--masc);border-radius:18px;padding:24px 24px 20px}
.mbox .x{position:absolute;right:14px;top:8px;border:0;background:none;font-size:30px;line-height:1;color:var(--mute)}
.mbox h3{margin-top:18px}.mbox h3 small{color:var(--mute)}
.pays{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.pay{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r2);padding:12px;background:#fff;font-weight:600}.pay input{width:auto;accent-color:var(--cacao)}
.zl{display:grid;gap:8px;background:var(--crema);border-radius:var(--r);padding:14px 16px;margin:12px 0}.zl div{display:flex;justify-content:space-between;gap:12px}
.big{font-family:var(--serif);font-size:20px}
.toast{position:fixed;left:50%;bottom:22px;z-index:40;max-width:calc(100vw - 32px);transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--ink);color:#fff;padding:11px 18px;border-radius:999px;font-size:14px;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translate(-50%,0)}.toast.bad{background:var(--err)}
.bar{display:none}
@media (max-width:980px){
 body{padding:10px 10px 92px}.app{grid-template-columns:1fr}
 .view{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:25;max-height:86vh;border-radius:18px 18px 0 0;transform:translateY(105%);transition:transform .25s ease;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
 .side{position:static}.tt.drawer .view{transform:none}.dclose{display:inline}
 .tt.drawer:before{content:'';position:fixed;inset:0;z-index:24;background:rgba(32,20,12,.45)}
 .bar{display:flex;gap:8px;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20}.bar button{flex:1;border:1px solid var(--cacao);border-radius:999px;padding:14px 10px;background:#fff;color:var(--cacao);font-weight:700;box-shadow:0 10px 26px rgba(42,27,18,.3)}.bar button+button{background:var(--cacao);color:#fff}.bar button:disabled{opacity:.55}.view .minis{display:flex}.side .seals{display:none}
 .tt.drawer .bar{display:none}.toast{bottom:84px}
 .acts{position:sticky;bottom:78px;background:var(--masc);padding:10px 0 0;margin-top:10px}
}
@media (max-width:620px){h1{font-size:26px}.g2,.g3,.locs{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.phead{grid-template-columns:84px 1fr;gap:12px}.phead .ph{width:84px}.stage,.ful{padding:16px}.gcard{padding:0 18px 18px}.strata{margin:0 -18px 20px}.pays{grid-template-columns:1fr}.acts .btn{flex:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
