:root{--sat:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--sab:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--sal:var(--safe-area-inset-left,env(safe-area-inset-left,0px));--sar:var(--safe-area-inset-right,env(safe-area-inset-right,0px));--red:#E81F2A;--red2:#B8101A;--red3:#FFEDEE;--ink:#1c1212;--ink2:#2a1b1b;--mut:#7d6f6f;--line:#f0e7e6;--bg:#fbf7f6;--ok:#16a05a;--amber:#f2a516;--violet:#8b45c9;--blue:#2b7de9;--r:20px;--sh:0 10px 30px rgba(70,10,10,.12);--sh2:0 2px 10px rgba(60,10,10,.06)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--red);color-scheme:light}
html,body{margin:0;min-height:100%;color:var(--ink);font:15px/1.45 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
body{background:var(--red)}
h1,h2,h3,.brand,.h2{font-family:'Baloo 2',Inter,sans-serif;margin:0;line-height:1.08;letter-spacing:-.01em}
.h2{font-size:27px}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;padding:0}
input,textarea,select{font:inherit;width:100%;padding:14px 15px;border:1.5px solid var(--line);border-radius:14px;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;color:var(--ink)}
input:focus,textarea:focus,select:focus{border-color:var(--red);box-shadow:0 0 0 4px rgba(232,31,42,.1)}
a{color:var(--red)} code{background:#f4eceb;padding:1px 6px;border-radius:6px;font-size:.92em}
#app{max-width:560px;margin:0 auto;min-height:100vh;position:relative;background:var(--bg)}
#app:has(.hero),#app:has(.splash),#app:has(.login),#app:has(.confirm){background:linear-gradient(var(--red),var(--red)) top/100% 14px no-repeat,var(--bg)}
.wide #app{max-width:1280px}
.muted{color:var(--mut)}.small{font-size:13px}.b{font-weight:700}.op{opacity:.85}.ell{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* buttons */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,#F2333D,var(--red));color:#fff;font-weight:700;border-radius:999px;padding:15px 20px;width:100%;font-size:16px;box-shadow:0 8px 20px rgba(232,31,42,.32);transition:transform .1s,opacity .2s;text-decoration:none}
.btn:active{transform:scale(.97)}.btn[disabled]{opacity:.45;box-shadow:none}
.btn.ghost{background:#fff;color:var(--red);box-shadow:none;border:1.5px solid #f3c9cb}
.btn.dark{background:var(--ink);box-shadow:none}.btn.green{background:var(--ok);box-shadow:0 8px 18px rgba(22,160,90,.28)}
.btn.white{background:#fff;color:var(--red);box-shadow:0 8px 20px rgba(0,0,0,.18)}
.btn.sm{padding:11px 15px;font-size:14px;width:auto}.btn.big{padding:18px;font-size:17px}.btn.icon{flex:0 0 auto!important;width:46px;padding:11px 0}
.chip{display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-weight:600;font-size:14px;white-space:nowrap;color:var(--ink);transition:.15s}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip.ghost{background:transparent;border-style:dashed;color:var(--mut)}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--red3);color:var(--red2);vertical-align:middle}
.tag.warn{background:#fff3d6;color:#8a5b00}
.hot{font-size:12px;letter-spacing:-2px}
/* logo */
.logo{width:52px;height:52px;border-radius:50%;background:#170909;display:grid;place-items:center;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.logo img{width:86%}.logo.sm{width:42px;height:42px;box-shadow:none}.logo.xl{width:110px;height:110px;box-shadow:0 0 0 6px rgba(255,255,255,.2),0 20px 40px rgba(0,0,0,.25)}
.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--red);color:#fff}
.splash .brand{font-size:34px}
.splash .logo.xl{animation:pop 1.2s ease-in-out infinite alternate}
@keyframes pop{to{transform:scale(1.06)}}
/* hero */
.hero{background:radial-gradient(120% 90% at 100% 0,#ff4a52 0,transparent 55%),linear-gradient(180deg,var(--red) 0 8px,transparent 8px),linear-gradient(160deg,#E81F2A,#C9131D);color:#fff;padding:calc(14px + var(--sat)) 18px 40px;border-radius:0 0 32px 32px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 14px,transparent 14px 28px);pointer-events:none}
.hero>*{position:relative}
.hero .row{display:flex;align-items:center;gap:12px}
.hero-title{font-family:'Baloo 2';font-size:30px;font-weight:800;line-height:1.05;margin-top:18px}
.hero .addr{width:100%;color:#fff;text-align:left;background:rgba(0,0,0,.2);backdrop-filter:blur(6px);border-radius:16px;padding:11px 14px;margin-top:16px;display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.18)}
.hero .addr small{display:block;opacity:.8;font-size:12px}.hero .addr b{font-size:15.5px}.pin{font-size:22px}.chev{font-size:24px;opacity:.8}
.topbtn{background:rgba(255,255,255,.17);color:#fff;border-radius:999px;padding:8px 13px;font-weight:600;font-size:13px;text-decoration:none;white-space:nowrap;border:1px solid rgba(255,255,255,.15)}
.topbtn.pulse{animation:pl 1.6s infinite}@keyframes pl{50%{box-shadow:0 0 0 6px rgba(232,31,42,.35)}}
.search{margin:-26px 16px 0;position:relative;z-index:3}
.search input{border:0;box-shadow:var(--sh);padding:16px 16px 16px 46px;border-radius:18px;font-size:15px}
.search span{position:absolute;left:17px;top:15px;opacity:.5}
.live-order{display:flex;align-items:center;gap:12px;width:calc(100% - 32px);margin:14px 16px 0;background:var(--ink);color:#fff;border-radius:18px;padding:13px 16px;box-shadow:var(--sh)}
.live-order .dot{width:12px;height:12px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:ld 1.5s infinite}
@keyframes ld{to{box-shadow:0 0 0 10px rgba(61,220,132,0)}}
.info{display:flex;gap:8px;margin:14px 16px 0;overflow-x:auto;scrollbar-width:none}
.info::-webkit-scrollbar,.cats::-webkit-scrollbar,.carousel::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}
.info .pill{flex:none;background:#fff;border-radius:16px;padding:10px 13px;font-size:12px;color:var(--mut);box-shadow:var(--sh2)}
.info .pill b{display:block;font-size:14.5px;color:var(--ink)}
.warnbar{margin:12px 16px 0;background:#fff3d6;color:#7a5000;border-radius:14px;padding:12px 14px;font-size:14px}.warnbar button{font-weight:700;text-decoration:underline}
.cats{position:sticky;top:0;z-index:20;display:flex;gap:8px;overflow-x:auto;padding:12px 16px;background:rgba(251,247,246,.92);backdrop-filter:blur(10px);scrollbar-width:none;margin-top:8px}
.sec{padding:6px 16px 2px}.sec h2{font-size:24px;margin:16px 0 10px}
.carousel{display:flex;gap:12px;overflow-x:auto;padding:2px 16px 8px;scroll-snap-type:x mandatory;scrollbar-width:none}
.card-top{flex:none;width:172px;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh2);scroll-snap-align:start;text-align:left}
.card-top .imgw{height:124px;overflow:hidden;background:#f3e9e8}.card-top img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.card-top:active img{transform:scale(1.05)}
.card-top .ct{padding:10px 12px 12px}.card-top .n{font-weight:700;font-size:14px;line-height:1.25;height:36px;overflow:hidden}.card-top .pr{color:var(--red);font-weight:800;margin-top:4px}
.prod{display:flex;gap:14px;background:#fff;border-radius:var(--r);padding:13px;margin:0 0 10px;width:100%;text-align:left;box-shadow:var(--sh2);align-items:stretch;transition:transform .1s}
.prod:active{transform:scale(.99)}
.prod .t{flex:1;min-width:0;display:flex;flex-direction:column}
.prod .n{font-weight:700;font-size:15.5px;line-height:1.25}.prod .d{color:var(--mut);font-size:13px;margin:5px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prod .p{margin-top:auto;font-weight:800}
.prod .ph{width:108px;height:108px;border-radius:16px;flex:none;position:relative;background:#f3e9e8}
.prod .ph img{width:100%;height:100%;object-fit:cover;border-radius:16px}
.prod .plus{position:absolute;right:-5px;bottom:-5px;width:36px;height:36px;border-radius:50%;background:var(--red);color:#fff;font-size:24px;font-weight:600;display:grid;place-items:center;box-shadow:0 4px 12px rgba(232,31,42,.4);border:3px solid #fff}
.qbadge{position:absolute;left:-6px;top:-6px;background:var(--ink);color:#fff;border-radius:999px;min-width:26px;height:26px;font-size:13px;font-weight:700;display:grid;place-items:center;padding:0 7px;border:2px solid #fff}
.cartbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + var(--sab));width:calc(100% - 28px);max-width:532px;z-index:50}
.cartbar .btn{justify-content:space-between;padding:16px 20px}.cartbar .cnt{background:rgba(255,255,255,.25);border-radius:999px;padding:2px 10px}
.foot{padding:30px 16px 130px;text-align:center;line-height:1.6}
/* sheets */
.overlay{position:fixed;inset:0;background:rgba(25,6,6,.5);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}
.overlay.center{align-items:center;padding:20px}
.sheet{background:#fff;width:100%;max-width:560px;max-height:94vh;overflow:auto;border-radius:28px 28px 0 0;animation:up .3s cubic-bezier(.2,.9,.3,1);padding-bottom:var(--sab);position:relative}
.wide-sheet{max-width:640px}
.sheet .img{width:100%;height:250px;object-fit:cover;display:block}
.grab{width:44px;height:5px;border-radius:9px;background:#e2d8d8;margin:10px auto 6px}
.sheet .in{padding:12px 20px 18px}
.sheet .close{position:absolute;margin:14px;width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:var(--sh);font-size:18px;z-index:2}
.price-l{color:var(--red);font-weight:800;font-size:19px;margin:6px 0}
.grp{margin-top:18px}.grp h4{margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;font-size:15px}
.opt{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);width:100%;text-align:left}
.opt .rd{width:23px;height:23px;border-radius:50%;border:2px solid #d3c5c5;flex:none;display:grid;place-items:center;transition:.15s}
.opt.multi .rd{border-radius:7px}
.opt.on .rd{border-color:var(--red);background:var(--red)}.opt.on .rd:after{content:"✓";color:#fff;font-size:13px;font-weight:800}
.opt span:nth-child(2){flex:1}
.sheet .bar{position:sticky;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);padding:12px 20px calc(12px + var(--sab));display:flex;gap:12px;border-top:1px solid var(--line)}
.qty{display:flex;align-items:center;gap:4px;background:var(--bg);border-radius:999px;padding:4px}
.qty button{width:40px;height:40px;border-radius:50%;background:#fff;font-size:20px;font-weight:700;color:var(--red);box-shadow:var(--sh2)}
.qty.sm button{width:34px;height:34px;font-size:16px}.qty b{min-width:24px;text-align:center}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}@keyframes fade{from{opacity:0}}
.cartbar{transform:translateX(-50%)}
/* address sheet */
.or{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:13px;margin:14px 0}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}
.sbox{position:relative}.sbox span{position:absolute;left:15px;top:14px;opacity:.5}.sbox input{padding-left:42px}
.res{margin:6px 0}.ri{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;padding:10px 6px;border-bottom:1px solid var(--line)}
.minimap{height:200px;border-radius:18px;overflow:hidden;margin:12px 0;position:relative;box-shadow:inset 0 0 0 1px var(--line)}
.minimap.big{height:230px}
.pin-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);z-index:500;pointer-events:none;filter:drop-shadow(0 4px 4px rgba(0,0,0,.3))}
.field{margin-bottom:11px}.field label{display:block;font-size:13px;font-weight:600;margin:0 0 5px 4px;color:#4a3b3b}
.zone{font-size:14px;padding:10px 12px;border-radius:12px;background:var(--bg)}.okdot,.kodot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);margin-right:4px}.kodot{background:var(--red)}
/* checkout */
.bar-top{display:flex;align-items:center;gap:12px;padding:calc(12px + var(--sat)) 16px 12px;position:sticky;top:0;background:rgba(251,247,246,.94);backdrop-filter:blur(10px);z-index:30}
.bar-top h1{font-size:26px;flex:1}
.back{width:42px;height:42px;border-radius:50%;background:#fff;box-shadow:var(--sh2);font-size:20px}
.box{background:#fff;border-radius:var(--r);padding:16px;margin:0 16px 12px;box-shadow:var(--sh2)}
.box h3{font-size:19px;margin-bottom:10px}
.addr-card{display:flex;gap:12px;align-items:center}.addr-map{width:84px;height:84px;border-radius:16px;overflow:hidden;flex:none}.addr-txt{flex:1;min-width:0}
.okt{color:var(--ok);font-weight:600;margin-top:3px}.kot{color:var(--red);font-weight:600;margin-top:3px}
.need-addr{display:flex;gap:12px;align-items:center;width:100%;padding:14px;border-radius:16px;border:2px dashed #f0b9bc;background:var(--red3)}
.line{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.line:last-of-type{border:0}
.line img{width:54px;height:54px;border-radius:14px;object-fit:cover}.line .t{flex:1;min-width:0}
.sum{display:flex;justify-content:space-between;gap:10px;padding:4px 0}.sum.tot{font-weight:800;font-size:19px;padding-top:10px;border-top:1px dashed var(--line);margin-top:6px}
.pay{display:flex;gap:10px}.pay button{flex:1;border:1.5px solid var(--line);border-radius:16px;padding:13px;text-align:left;background:#fff;transition:.15s}
.pay button.on{border-color:var(--red);background:var(--red3);box-shadow:0 0 0 3px rgba(232,31,42,.08)}
.cta-wrap{padding:4px 16px calc(34px + var(--sab))}
/* confirm */
.confirm{min-height:100vh;background:radial-gradient(100% 60% at 50% 0,#ff4a52,transparent),linear-gradient(170deg,#EE2530,#B90F19);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 24px;gap:12px}
.burst{width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;animation:bz .6s cubic-bezier(.2,1.6,.4,1)}
.check{width:84px;height:84px;border-radius:50%;background:#fff;color:var(--ok);font-size:48px;font-weight:800;display:grid;place-items:center}
@keyframes bz{from{transform:scale(.3);opacity:0}}
.confirm h1{font-size:36px}.ordnum{font-family:'Baloo 2';font-size:22px;background:rgba(0,0,0,.2);padding:4px 16px;border-radius:999px;letter-spacing:.04em}
.from-card{display:flex;gap:14px;align-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:16px;margin:10px 0;width:100%;max-width:400px;animation:fade .8s .3s both}
.confirm .btn{max-width:400px}
/* tracking */
.track{position:fixed;inset:0;display:flex;flex-direction:column;max-width:560px;margin:0 auto;background:#eee}
.track #map{flex:1;min-height:50vh}
.track .float{position:absolute;top:calc(12px + var(--sat));left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;z-index:500;pointer-events:none}
.track .float>*{pointer-events:auto}
.float-num{background:var(--ink);color:#fff;font-family:'Baloo 2';font-weight:700;padding:7px 14px;border-radius:999px;font-size:16px;box-shadow:var(--sh)}
.circle{width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:var(--sh);display:grid;place-items:center;font-size:20px;text-decoration:none}
.track .panel{background:#fff;border-radius:28px 28px 0 0;margin-top:-28px;z-index:400;position:relative;box-shadow:0 -10px 30px rgba(0,0,0,.12);max-height:52vh;overflow:auto;padding:0 18px calc(18px + var(--sab))}
.eta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:6px}
.eta h2{font-size:25px;margin:2px 0}
.eta .min{color:#fff;border-radius:18px;padding:9px 12px;text-align:center;font-family:'Baloo 2';line-height:1;min-width:64px;transition:background .3s}
.eta .min b{font-size:28px;display:block}
.steps2{display:flex;justify-content:space-between;margin:16px 0 4px;position:relative}
.steps2:before{content:"";position:absolute;left:8%;right:8%;top:18px;height:4px;background:#f0e6e6;border-radius:9px}
.st2{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;z-index:1}
.st2 .ic{width:38px;height:38px;border-radius:50%;background:#f4ecec;display:grid;place-items:center;font-size:17px;filter:grayscale(1);opacity:.6;transition:.3s}
.st2 .lb{font-size:11px;color:var(--mut);font-weight:600}
.st2.done .ic{background:var(--red3);filter:none;opacity:1}
.st2.cur .ic{background:var(--red);filter:none;opacity:1;box-shadow:0 0 0 5px rgba(232,31,42,.18);animation:pl 1.6s infinite}
.st2.cur .lb{color:var(--red)}
.from{display:flex;gap:12px;align-items:center;background:var(--bg);border-radius:18px;padding:12px;margin-top:14px}
.rider{display:flex;align-items:center;gap:12px;background:var(--bg);border-radius:18px;padding:12px;margin-top:10px}
.av{width:46px;height:46px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:22px;flex:none}
.recap{margin-top:10px;background:var(--bg);border-radius:18px;padding:12px 14px}
.recap summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none}.recap summary::-webkit-details-marker{display:none}
.recap[open] summary{margin-bottom:8px}
/* markers */
.mk{display:grid;place-items:center;border-radius:50%;border:3px solid #fff;box-shadow:0 6px 14px rgba(0,0,0,.28)}
.mk.rider{background:var(--red);width:50px;height:50px;font-size:24px}
.mk.rider:before{content:"";position:absolute;inset:-12px;border-radius:50%;background:rgba(232,31,42,.25);animation:pulse 1.8s infinite;z-index:-1}
@keyframes pulse{from{transform:scale(.6);opacity:1}to{transform:scale(1.5);opacity:0}}
.mk.shop{background:#170909;width:46px;height:46px}.mk.shop img{width:38px}
.mk.home{background:#fff;width:40px;height:40px;border-color:var(--red)}
.leaflet-container{font:inherit;background:#f1ece8}
.leaflet-tile-pane{filter:saturate(.75) contrast(1.02) brightness(1.03)}
.leaflet-tooltip{font-weight:700;border-radius:10px;border:0;box-shadow:var(--sh2)}
/* login */
.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px 20px;color:#fff;background:radial-gradient(100% 60% at 50% 0,#ff4a52,transparent),linear-gradient(170deg,#EE2530,#B90F19);text-align:center}
.login h1{font-size:36px}
.lcard{background:#fff;color:var(--ink);border-radius:24px;padding:20px;width:100%;max-width:380px;text-align:left;box-shadow:0 20px 50px rgba(0,0,0,.25);margin:8px 0 12px}
/* staff */
.ops-h{background:linear-gradient(90deg,#1c1010,#2c1414);color:#fff;padding:calc(12px + var(--sat)) 16px 12px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:30;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.ops-h h1{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-h .logo{width:42px;height:42px}
.tabs{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;align-items:center}.tabs.wrap{flex-wrap:wrap}.sep{width:1px;height:26px;background:var(--line);margin:0 4px}
.kcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 16px 20px}
@media(max-width:900px){.kcols{grid-template-columns:1fr}}
.kcol{background:#f4eeed;border-radius:22px;padding:12px;min-height:200px}
.kcol h3{font-size:18px;margin:2px 4px 10px;display:flex;justify-content:space-between}.kcol h3 span{background:#fff;border-radius:999px;padding:0 10px;font-size:15px}
.kcol .ord{margin-bottom:10px}
.grid{display:grid;gap:12px;padding:0 16px 40px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.grid.one{grid-template-columns:1fr}
.ord{background:#fff;border-radius:18px;padding:14px;box-shadow:var(--sh2);border-left:6px solid #ccc}
.ord.nuovo{border-color:var(--red);animation:blink 1.2s 4}.ord.accettato,.ord.in_preparazione{border-color:var(--amber)}.ord.pronto{border-color:var(--blue)}.ord.in_consegna{border-color:var(--violet)}.ord.consegnato{border-color:var(--ok);opacity:.8}.ord.rifiutato{opacity:.5}
@keyframes blink{50%{box-shadow:0 0 0 6px rgba(232,31,42,.25)}}
.ord .hd{display:flex;justify-content:space-between;align-items:center}
.ord .code{font-family:'Baloo 2';font-size:24px;font-weight:800;letter-spacing:.02em}
.st{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:#eee;white-space:nowrap}
.s-nuovo{background:var(--red3);color:var(--red2)}.s-accettato,.s-in_preparazione{background:#fff1d1;color:#8a5b00}.s-pronto{background:#e3efff;color:#1d5bb5}.s-in_consegna{background:#f1e5fb;color:#6a2c9f}.s-consegnato{background:#dff5e9;color:#0f7a43}.s-rifiutato{background:#eee;color:#666}
.ord ul{margin:8px 0;padding-left:18px}.ord li{margin:3px 0}
.note{background:#fff7dd;border-radius:10px;padding:7px 10px;font-size:14px;margin:6px 0;font-weight:600}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.acts .btn{flex:1}
.empty{text-align:center;padding:50px 20px;color:var(--mut)}.empty h3{color:var(--ink);margin:8px 0}.empty.sm{padding:20px}
.switch{display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--r);padding:14px 16px;margin:12px 16px;box-shadow:var(--sh2)}
.switch.inl{margin:16px 0;background:var(--bg);box-shadow:none}
.tg{width:56px;height:32px;border-radius:99px;background:#cfc4c4;position:relative;flex:none;transition:.2s}.tg:after{content:"";position:absolute;width:26px;height:26px;top:3px;left:3px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.tg.on{background:var(--ok)}.tg.on:after{left:27px}
#rmap{height:240px;margin:0 16px 12px;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh2)}
.rider-sede{display:flex;gap:12px;align-items:center;margin:12px 16px 0;background:#fff;border-radius:var(--r);padding:12px 14px;box-shadow:var(--sh2)}
.route-box{margin:10px 0;display:flex;flex-direction:column;gap:10px;position:relative}
.rb{display:flex;gap:10px}.rb-dot{width:14px;height:14px;border-radius:50%;margin-top:4px;flex:none}.rb-dot.shop{background:var(--ink)}.rb-dot.home{background:var(--red)}
.cash{margin-top:8px;font-weight:800;background:#fff3d6;color:#7a5000;border-radius:12px;padding:8px 12px}.cash.paid{background:#dff5e9;color:#0f7a43}
.count{background:var(--red);color:#fff;border-radius:999px;padding:0 10px;font-size:18px;vertical-align:middle}
/* printer */
.pstate{margin:12px 0;padding:12px 14px;border-radius:14px;background:#fff3d6;color:#7a5000;font-size:14px}.pstate.ok{background:#dff5e9;color:#0f6b3b}
.seg{display:flex;background:var(--bg);border-radius:14px;padding:4px;gap:4px}.seg button{flex:1;padding:10px;border-radius:11px;font-weight:700}.seg button.on{background:#fff;box-shadow:var(--sh2);color:var(--red)}
.two{display:flex;gap:12px}
.howto{margin-top:14px;background:var(--bg);border-radius:16px;padding:12px 14px;font-size:14px}.howto ol{padding-left:18px;margin:8px 0}.howto li{margin:6px 0}
.tk-prev{display:flex;flex-direction:column;align-items:center;max-height:90vh;overflow:auto}
.tk-prev .paper{background:#fff;padding:14px 10px 24px;box-shadow:0 20px 40px rgba(0,0,0,.35);border-radius:4px 4px 0 0;position:relative}
.tk-prev .paper:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:10px;background:linear-gradient(-45deg,transparent 6px,#fff 0) 0 0/12px 10px,linear-gradient(45deg,transparent 6px,#fff 0) 0 0/12px 10px}
.tk{font-family:'Courier New',ui-monospace,monospace;color:#000;font-size:13px;line-height:1.35}
.tk.w80{width:72mm}.tk.w58{width:48mm;font-size:11.5px}
.tk-c{text-align:center}.tk-brand{font-weight:900;font-size:1.6em;letter-spacing:.08em}.tk-num{font-size:2.2em;font-weight:900;margin:2px 0}
.tk-sm{font-size:.86em}.tk-hr{border-top:1.5px dashed #000;margin:6px 0}
.tk-row{display:flex;justify-content:space-between;gap:8px}.tk-item{margin:4px 0}.tk-q{font-size:1.15em}.tk-opt{padding-left:16px;font-size:.92em}
.tk-note{font-weight:900;border:2px solid #000;padding:4px}.tk-tot{font-weight:900;font-size:1.3em;margin-top:2px}.tk-pay{text-align:center;font-weight:900;border:2px solid #000;margin-top:6px;padding:3px}
.tk-cut{border-top:1px dotted #999;margin:14px 0}
#print-area{display:none}
@media print{
  body>*:not(#print-area){display:none!important}
  #print-area{display:block!important}
  html,body{background:#fff!important;margin:0!important}
  .tk-cut{page-break-after:always;border:0}
}
/* monitor */
.mon{padding:0 0 30px}
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:16px}
@media(max-width:900px){.kpis{grid-template-columns:repeat(3,1fr)}}
.kpi{background:#fff;border-radius:18px;padding:14px 16px;box-shadow:var(--sh2);border-top:4px solid var(--ink)}
.kpi .v{font-family:'Baloo 2';font-size:28px;font-weight:800;line-height:1}.kpi .l{font-size:13px;color:var(--mut);margin-top:4px}
.kpi.red{border-color:var(--red)}.kpi.amber{border-color:var(--amber)}.kpi.violet{border-color:var(--violet)}.kpi.green{border-color:var(--ok)}
.mon-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;padding-right:16px}
@media(max-width:900px){.mon-grid{grid-template-columns:1fr;padding-right:0}}
.mon-map{height:340px;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh2);margin:12px 0}
@media(max-width:900px){.mon-map{margin:12px 16px}}
.sedebox{margin:0 0 10px}
@media(max-width:900px){.sedebox{margin:0 16px 10px}}
.mtable{margin:0 16px;background:#fff;border-radius:var(--r);box-shadow:var(--sh2);overflow:hidden}
.mrow{display:grid;grid-template-columns:1.1fr 1fr .9fr 1.2fr .8fr 1fr 1.2fr;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);align-items:center;text-decoration:none;color:var(--ink);font-size:14px}
.mrow:hover{background:#fdf6f6}.mrow.mh{font-weight:700;color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:#faf4f3}
@media(max-width:700px){.mrow{grid-template-columns:1fr 1fr 1fr}.mrow span:nth-child(4),.mrow span:nth-child(5),.mrow span:nth-child(6){display:none}}
/* demo */
.creds{padding:6px 16px}.cred{display:flex;align-items:center;width:100%;text-align:left;padding:12px 0;border-bottom:1px solid var(--line)}.cred:last-child{border:0}.cred span:first-child{flex:1}
.steps-ol{padding-left:18px;margin:0;line-height:1.6}.steps-ol li{margin-bottom:6px}
#toast{position:fixed;left:50%;top:calc(16px + var(--sat));transform:translateX(-50%) translateY(-160%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:16px;z-index:2000;transition:.3s cubic-bezier(.2,.9,.3,1.2);font-weight:600;max-width:90vw;text-align:center;box-shadow:var(--sh)}
#toast.on{transform:translateX(-50%)}
/* app rider */
.rapp{min-height:100vh;background:var(--bg)}
.rmap-wrap{position:relative}
.rapp #rmap{height:52vh;margin:0;border-radius:0;box-shadow:none}
.recenter{position:absolute;right:14px;bottom:44px;z-index:500;font-size:22px}
.duty{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600;white-space:nowrap}
.duty .dd{width:10px;height:10px;border-radius:50%;background:#9a8b8b}.duty.on{background:rgba(22,160,90,.25);border-color:rgba(61,220,132,.5)}.duty.on .dd{background:#3ddc84;animation:ld 1.5s infinite}
.rsheet{position:relative;margin-top:-28px;z-index:400;padding-bottom:40px}
.rcard{background:#fff;border-radius:28px 28px 22px 22px;margin:0 0 12px;padding:4px 16px 16px;box-shadow:0 -10px 30px rgba(0,0,0,.12)}
.rcard.idle{text-align:center;padding-bottom:26px}.rcard.idle h3{font-size:22px;margin:6px 0}
.rc-top{display:flex;justify-content:space-between;align-items:center;margin:4px 0 10px}
.rc-top .code{font-family:'Baloo 2';font-size:28px;font-weight:800}
.stage{font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px}.stage.swait{background:#fff1d1;color:#8a5b00}.stage.sready{background:#e3efff;color:#1d5bb5}.stage.sgo{background:var(--red3);color:var(--red2)}
.legs{position:relative;display:flex;flex-direction:column;gap:12px;padding-left:4px}
.legs:before{content:"";position:absolute;left:17px;top:30px;bottom:30px;border-left:3px dotted #e0d2d2}
.leg{display:flex;gap:12px;align-items:flex-start;opacity:.6}.leg.cur{opacity:1}.leg.done{opacity:.55}
.leg .ln{width:28px;height:28px;border-radius:50%;background:#efe5e5;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none;position:relative;z-index:1}
.leg.cur .ln{background:var(--red);color:#fff;box-shadow:0 0 0 5px rgba(232,31,42,.15)}.leg.done .ln{background:var(--ok);color:#fff}
.items{margin:12px 0 0;color:#4a3b3b}
.arrived{margin-top:8px;background:#dff5e9;color:#0f6b3b;border-radius:12px;padding:8px 12px;font-weight:700}
.navrow{display:flex;gap:8px;margin:12px 0 6px}.navrow .btn{flex:1}
.simbtn{display:block;margin:10px auto 0;color:var(--mut);font-size:13px;font-weight:600;text-decoration:underline}
.rq{background:#fff;border-radius:22px;margin:0 12px 12px;padding:12px 14px;box-shadow:var(--sh2)}
.rq h3{font-size:18px;margin:2px 0 6px;display:flex;align-items:center;gap:8px}
.qi{display:flex;gap:10px;align-items:center;width:100%;padding:11px 2px;border-top:1px solid var(--line);font-size:14px}.qi.done{opacity:.7}
.code.sm{font-family:'Baloo 2';font-weight:800;font-size:16px;background:var(--bg);border-radius:10px;padding:3px 8px}
.done-h{display:flex;justify-content:space-between;width:100%;padding:4px 2px}
/* Pagamenti online */
.pay button:disabled{opacity:.5;cursor:not-allowed}
.pay-sheet .in{padding-bottom:8px}
#ps-pe{min-height:60px}
.paybadge{display:inline-block;font-weight:800;font-size:11px;padding:2px 8px;border-radius:999px;letter-spacing:.02em}
.paybadge.paid{background:#e3f6ea;color:#11743b}
.paybadge.cash{background:#fff3d6;color:#8a5b00}
/* ---- v8: scheda prodotto semplice, upsell e cross-sell ---- */
.ph-emoji{display:grid;place-items:center;width:100%;height:100%;font-size:40px;background:linear-gradient(160deg,#fff1f1,#ffe1e2);border-radius:inherit}
.sheet .img.noimg{display:grid;place-items:center;font-size:90px;background:linear-gradient(160deg,#fff1f1,#ffd9db);height:170px}
.tag.ok{background:#e3f6ec;color:#0f7a43}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.ochip{padding:11px 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font-weight:600;font-size:14px;min-height:44px;transition:.12s}
.ochip em{font-style:normal;color:var(--mut);font-weight:600;margin-left:2px}
.ochip.on{background:var(--red);border-color:var(--red);color:#fff}.ochip.on em{color:#ffe1e2}
.sizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.size{border:1.5px solid var(--line);border-radius:16px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;min-height:76px}
.size b{font-size:15px}.size span{color:var(--red);font-weight:800}.size small{color:var(--mut);font-size:11.5px}.size small.pv{color:#8a5b00}
.size.on{border-color:var(--red);box-shadow:0 0 0 3px rgba(232,31,42,.14);background:var(--red3)}
.upmenu{display:flex;align-items:center;gap:12px;width:100%;margin-top:18px;padding:14px;border-radius:18px;text-align:left;background:linear-gradient(135deg,#1c1212,#3a1416);color:#fff;box-shadow:0 10px 24px rgba(28,18,18,.25)}
.upmenu .um-ic{font-size:26px}.upmenu .um-t{flex:1}.upmenu .um-t b{font-size:16px}
.upmenu .um-sw{width:46px;height:28px;border-radius:999px;background:rgba(255,255,255,.25);position:relative;flex:none;transition:.15s}
.upmenu .um-sw:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.15s}
.upmenu.on{background:linear-gradient(135deg,#F2333D,#B8101A)}.upmenu.on .um-sw{background:#fff}.upmenu.on .um-sw:after{left:21px;background:var(--red)}
.xs-row{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scroll-snap-type:x mandatory}
.xs-card{flex:none;width:132px;background:#fff;border:1.5px solid var(--line);border-radius:16px;overflow:hidden;text-align:left;position:relative;scroll-snap-align:start;display:flex;flex-direction:column}
.xs-card .xs-img{height:84px;background:#f3e9e8}.xs-card .xs-img img{width:100%;height:100%;object-fit:cover;display:block}.xs-card .xs-img .ph-emoji{font-size:32px;border-radius:0}
.xs-card .xs-n{font-weight:700;font-size:13px;line-height:1.2;padding:7px 9px 0;min-height:38px}.xs-card .xs-n .muted{font-weight:500}
.xs-card .xs-p{color:var(--red);font-weight:800;font-size:13.5px;padding:2px 9px 8px}
.xs-card .xs-add{margin:auto 8px 8px;padding:9px 0;border-radius:999px;background:var(--red);color:#fff;font-weight:700;font-size:13px}
.xs-card .xs-add.done{background:var(--ok)}
.xs-card .xs-tick{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:#fff;color:var(--red);display:grid;place-items:center;font-weight:800;box-shadow:var(--sh2)}
.xs-card.on{border-color:var(--red);box-shadow:0 0 0 3px rgba(232,31,42,.14)}.xs-card.on .xs-tick{background:var(--red);color:#fff}
.mini-up{margin-top:6px;padding:6px 10px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px;font-weight:700}
.line .lth{width:54px;height:54px;border-radius:14px;overflow:hidden;flex:none;background:#f3e9e8}.line .lth img{width:100%;height:100%;object-fit:cover}.line .lth .ph-emoji{font-size:24px}
.sheet.after .in{padding-top:18px}
.tk-opt.tk-no{font-weight:800;text-transform:none}
/* ---- v9: aree sicure (Dynamic Island, notch, foro fotocamera, barra gesti) ----
   I valori arrivano da env(safe-area-inset-*) del telefono (o da --safe-area-inset-* iniettati da Capacitor su Android):
   nessuna altezza fissa, si adattano a ogni modello e all'orientamento. */
/* Niente striscia/pallino disegnato sulla notch o sulla Dynamic Island:
   le barre sticky si estendono da sole nell'area sicura, con il loro sfondo. */
/* in orizzontale l'isola/notch sta di lato: spostiamo il contenuto solo se la colonna centrale la tocca davvero */
:root{--gl:max(0px,calc(var(--sal) - max(0px,(100vw - 560px) / 2)));--gr:max(0px,calc(var(--sar) - max(0px,(100vw - 560px) / 2)))}
.wide{--gl:max(0px,calc(var(--sal) - max(0px,(100vw - 1280px) / 2)));--gr:max(0px,calc(var(--sar) - max(0px,(100vw - 1280px) / 2)))}
#app{padding-left:var(--gl);padding-right:var(--gr)}
.cats{top:0;padding-top:calc(12px + var(--sat))}
.splash,.login,.confirm{padding-top:calc(30px + var(--sat));padding-bottom:calc(30px + var(--sab));padding-left:max(20px,var(--sal));padding-right:max(20px,var(--sar))}
.foot{padding-bottom:calc(130px + var(--sab))}
.cartbar{width:calc(100% - 28px - var(--sal) - var(--sar))}
.overlay{padding-top:calc(8px + var(--sat));padding-left:var(--sal);padding-right:var(--sar)}
.overlay.center{padding:max(20px,calc(8px + var(--sat))) max(20px,var(--sar)) max(20px,var(--sab)) max(20px,var(--sal))}
.sheet{max-height:calc(100vh - 8px - var(--sat))}
@supports(height:100dvh){.sheet{max-height:calc(100dvh - 8px - var(--sat))}.tk-prev{max-height:calc(100dvh - 40px - var(--sat) - var(--sab))}}
.track{padding-left:var(--gl);padding-right:var(--gr)}
.track .float{left:calc(12px + var(--gl));right:calc(12px + var(--gr))}
.sheet:has(.bar){padding-bottom:0}
.rsheet{padding-bottom:calc(40px + var(--sab))}
.grid,.kcols{padding-bottom:calc(20px + var(--sab))}
.foot a[href^="tel"]{white-space:nowrap}.foot a{color:var(--red2,#c4141d)}

/* ---- v15: niente "pallino" sotto la Dynamic Island + brand Crazy Kebab ----
   Il pallino era il #toast VUOTO: nascosto con translateY(-160%) della sua altezza (24px) restava una pillola scura
   36×24 px appena sotto l'isola quando c'è safe-area-inset-top. Ora da nascosto esce del tutto ed è invisibile. */
#toast{transform:translateX(-50%) translateY(calc(-100% - 40px - var(--sat)));opacity:0;visibility:hidden;transition:transform .3s cubic-bezier(.2,.9,.3,1.2),opacity .2s,visibility 0s linear .3s}
#toast.on{transform:translateX(-50%);opacity:1;visibility:visible;transition:transform .3s cubic-bezier(.2,.9,.3,1.2),opacity .2s,visibility 0s}
#toast:empty{display:none}
/* hero: stelle del marchio + sigillo del logo in filigrana (non tocca la zona dell'isola) */
.hero{background:linear-gradient(180deg,var(--red) 0,rgba(232,31,42,0) calc(var(--sat) + 36px)),radial-gradient(120% 90% at 100% 0,#ff4a52 0,transparent 55%),radial-gradient(90% 70% at 0 100%,rgba(120,0,8,.35) 0,transparent 60%),linear-gradient(160deg,#E81F2A,#C9131D);padding-bottom:44px}
.hero:before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='%23fff'%3E%3Cpath d='M20 10l2.4 5 5.4.6-4 3.7 1.1 5.3L20 22l-4.9 2.6 1.1-5.3-4-3.7 5.4-.6z' opacity='.55'/%3E%3Cpath d='M70 56l1.8 3.8 4.1.4-3 2.8.8 4L70 65l-3.7 2 .8-4-3-2.8 4.1-.4z' opacity='.4'/%3E%3C/g%3E%3C/svg%3E") 0 0/96px 96px repeat;opacity:.16}
.hero:after{content:"";position:absolute;right:-46px;top:calc(48px + var(--sat));width:230px;height:252px;background:url(/img/seal-white.webp) center/contain no-repeat;opacity:.13;transform:rotate(-12deg);pointer-events:none}
.hero .logo{width:58px;height:58px;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 8px 18px rgba(80,0,0,.35)}
.stars{font-size:10px;letter-spacing:3px;line-height:1;opacity:.95}
.wordmark{font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:26px;line-height:1;margin:3px 0 2px;text-shadow:0 2px 0 rgba(120,0,8,.35)}
.hero-title{font-size:31px;margin-top:20px;text-shadow:0 2px 0 rgba(120,0,8,.25)}
.hl{display:inline-block;background:#170909;color:#fff;padding:0 .28em;border-radius:12px;transform:rotate(-2.5deg);box-shadow:0 4px 0 rgba(120,0,8,.4);text-shadow:none;margin:0 .04em}
.slogan{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:6px 13px;border-radius:999px;background:rgba(255,255,255,.96);color:var(--red);font-family:'Baloo 2';font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 6px 14px rgba(90,0,6,.25)}
.slogan span{font-size:10px}
/* categorie: chip attiva rossa, il colore del marchio */
.chip.on{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 6px 14px rgba(232,31,42,.28)}
/* titoli di sezione con il tratto rosso */
.sec h2{font-weight:800;position:relative;padding-bottom:6px}
.sec h2:after{content:"";position:absolute;left:0;bottom:0;width:38px;height:5px;border-radius:9px;background:linear-gradient(90deg,var(--red) 0 70%,#170909 70%)}
/* card "Più amati": sigillo Crazy */
.card-top{box-shadow:0 8px 22px rgba(90,10,10,.10)}
.card-top .imgw{position:relative}
.seal{position:absolute;right:8px;top:8px;width:38px;height:38px;border-radius:50%;background:#170909;display:grid;place-items:center;transform:rotate(-12deg);box-shadow:0 0 0 2px #fff,0 4px 10px rgba(0,0,0,.25)}
.seal img{width:86%}
.card-top .pr{font-family:'Baloo 2';font-size:18px;line-height:1.1}
.prod .p{color:var(--ink)}
.prod .plus{background:linear-gradient(180deg,#F2333D,var(--red2))}
/* barra carrello con il marchio */
.cartbar .btn{background:linear-gradient(180deg,#F2333D,var(--red2))}
.cb-l{display:flex;align-items:center;gap:8px}.cb-logo{width:30px;height:30px;border-radius:50%;background:#170909;display:grid;place-items:center;box-shadow:0 0 0 2px rgba(255,255,255,.8)}.cb-logo img{width:86%}
/* footer: cartellino del brand */
.brandcard{position:relative;overflow:hidden;margin:0 0 18px;padding:24px 16px 20px;border-radius:26px;color:#fff;background:radial-gradient(100% 80% at 100% 0,#ff4a52,transparent 60%),linear-gradient(160deg,#E81F2A,#B8101A);box-shadow:0 14px 30px rgba(184,16,26,.28)}
.brandcard:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='%23fff'%3E%3Cpath d='M20 10l2.4 5 5.4.6-4 3.7 1.1 5.3L20 22l-4.9 2.6 1.1-5.3-4-3.7 5.4-.6z' opacity='.55'/%3E%3Cpath d='M70 56l1.8 3.8 4.1.4-3 2.8.8 4L70 65l-3.7 2 .8-4-3-2.8 4.1-.4z' opacity='.4'/%3E%3C/g%3E%3C/svg%3E") 0 0/96px 96px repeat;opacity:.16}
.brandcard:after{content:"";position:absolute;left:-60px;bottom:-70px;width:220px;height:240px;background:url(/img/seal-white.webp) center/contain no-repeat;opacity:.1;transform:rotate(14deg)}
.brandcard>*{position:relative;z-index:1}
.brandcard .logo.xl{width:92px;height:92px;margin:0 auto 8px;box-shadow:0 0 0 4px rgba(255,255,255,.9),0 14px 28px rgba(80,0,0,.35)}
.brandcard .wordmark{font-size:28px}
.bc-slogan{font-family:'Baloo 2';font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:15px;margin:2px 0 4px}
.bc-slogan.sm{font-size:12px;opacity:.85;margin-top:8px}
.foot .brandcard .small{color:#fff}
/* splash, login, conferma: stesso rosso, stelle e sigillo in filigrana */
.splash,.login,.confirm{position:relative;overflow:hidden;background:radial-gradient(100% 60% at 50% 0,#ff4a52,transparent),linear-gradient(170deg,#EE2530,#B90F19)}
.splash:before,.login:before,.confirm:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='%23fff'%3E%3Cpath d='M20 10l2.4 5 5.4.6-4 3.7 1.1 5.3L20 22l-4.9 2.6 1.1-5.3-4-3.7 5.4-.6z' opacity='.55'/%3E%3Cpath d='M70 56l1.8 3.8 4.1.4-3 2.8.8 4L70 65l-3.7 2 .8-4-3-2.8 4.1-.4z' opacity='.4'/%3E%3C/g%3E%3C/svg%3E") 0 0/96px 96px repeat;opacity:.14;pointer-events:none}
.splash:after,.login:after,.confirm:after{content:"";position:absolute;left:50%;top:50%;width:min(130vw,640px);height:min(140vw,690px);transform:translate(-50%,-46%) rotate(-10deg);background:url(/img/seal-white.webp) center/contain no-repeat;opacity:.07;pointer-events:none}
.splash>*,.login>*,.confirm>*{position:relative;z-index:1}
.splash .logo.xl,.login .logo.xl{box-shadow:0 0 0 5px rgba(255,255,255,.9),0 20px 40px rgba(80,0,0,.35)}
.splash .wordmark{font-size:34px}
.login .stars{margin-top:4px}
/* checkout: marchio nella barra */
.bar-top .logo.sm{width:40px;height:40px;box-shadow:0 0 0 2px #fff,0 4px 10px rgba(0,0,0,.18)}
/* staff: barra scura con filo rosso del marchio (schermate operative restano pulite) */
.ops-h{border-bottom:3px solid var(--red)}
/* categorie agganciate: stanno SOTTO l'area sicura (top = inset) e solo quando sono agganciate un'ombra piena color crema
   copre la fascia dell'isola. Niente padding extra quando non sono agganciate (prima c'era un buco di ~59px sopra le chip). */
.cats{top:var(--sat);padding-top:12px}
.cats.stuck{background:#fbf7f6;box-shadow:0 calc(-1 * var(--sat)) 0 0 #fbf7f6,0 6px 14px rgba(60,10,10,.07)}

/* ---- v16: esauriti, avvisi e Gestione negozio ---- */
.so-tag{display:inline-block;vertical-align:middle;font-family:Inter,sans-serif;font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:#170909;color:#fff}
.so-tag.big{position:absolute;left:8px;bottom:8px;font-size:12px;padding:5px 10px}
.prod.soldout,.card-top.soldout{cursor:not-allowed}
.prod.soldout .ph img,.card-top.soldout img{filter:grayscale(1);opacity:.55}
.prod.soldout .n,.prod.soldout .p,.card-top.soldout .n,.card-top.soldout .pr{color:#8c8080}
.line.gone .lth,.line.gone .t>.b{opacity:.6}
.notice{margin:12px 16px 0;background:#fff;border-left:5px solid var(--red);border-radius:14px;padding:12px 14px;font-size:14px;box-shadow:var(--sh2);font-weight:600}
.gx{max-width:980px;margin:0 auto;padding:0 0 calc(40px + var(--sab))}
.gx-tabs{display:flex;gap:8px;overflow-x:auto;padding:14px 16px 6px;scrollbar-width:none}.gx-tabs::-webkit-scrollbar{display:none}
.gx-card{background:#fff;border-radius:var(--r);box-shadow:var(--sh2);margin:10px 16px;padding:16px}
.gx-card h3{font-size:21px;margin:0 0 4px}
.gx-row{display:flex;align-items:center;gap:10px}
.gx-sub{color:var(--mut);font-size:14px;margin:4px 0 8px}
.gx-pill{font-size:13px;font-weight:800;padding:6px 12px;border-radius:999px;white-space:nowrap}
.gx-pill.on{background:#dff5e9;color:#0f7a43}.gx-pill.off{background:#f1eaea;color:#6b5b5b}.gx-pill.pause{background:#fff1d1;color:#8a5b00}
.gx-facts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 2px}.gx-facts span{background:var(--bg);border-radius:999px;padding:6px 11px;font-size:13px}
.gx-note{background:#fff7dd;border-radius:12px;padding:9px 12px;font-size:14px;margin:12px 0 10px;font-weight:600;color:#6e4a00}
.gx-stop{background:linear-gradient(180deg,#2a1b1b,#170909);box-shadow:0 8px 20px rgba(23,9,9,.25)}
.gx-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.gx-actions .btn{flex:1;min-width:150px}
.gx-foot{text-align:center;padding:10px 16px}
.gx textarea{resize:vertical}
.gx-seg{display:flex;background:#f4eeed;border-radius:999px;padding:4px;gap:4px}
.gx-seg button{flex:1;padding:10px 12px;border-radius:999px;font-weight:700;font-size:14px;color:#5a4a4a;white-space:nowrap;min-height:40px}
.gx-seg button.on{background:#fff;color:var(--ink);box-shadow:var(--sh2)}
.gx-seg.sedi{margin:8px 16px 0}.gx-seg.sedi button.on{background:var(--red);color:#fff}
.gx-sede1{margin:10px 16px 0;font-weight:700}
.gx-seg.sm{flex:none}.gx-seg.sm button{padding:8px 10px;font-size:12.5px;min-height:38px}
.gx-seg.sm button.on.ok{background:#16a05a;color:#fff}.gx-seg.sm button.on.esaurito{background:#170909;color:#fff}.gx-seg.sm button.on.nascosto{background:#7d6f6f;color:#fff}
.gx-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.gx-legend{margin:0 18px 4px}
.gx-cat h4{font-family:'Baloo 2';font-size:19px;margin:16px 18px 6px}
.gx-item{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;margin:0 16px 8px;padding:10px 12px;box-shadow:var(--sh2)}
.gx-item .lth{width:50px;height:50px;border-radius:12px;overflow:hidden;flex:none;background:#f3e9e8}.gx-item .lth img{width:100%;height:100%;object-fit:cover}.gx-item .lth .ph-emoji{font-size:22px}
.gx-item .t{flex:1;min-width:0}.gx-item .t b{display:block;font-size:14.5px;line-height:1.25}
.gx-item.st-esaurito,.gx-item.st-nascosto{background:#fbf5f4}.gx-item.st-esaurito .lth img,.gx-item.st-nascosto .lth img{filter:grayscale(1);opacity:.6}
.gx-flag{color:var(--red2);font-weight:800}
@media(max-width:620px){.gx-item{flex-wrap:wrap}.gx-item .gx-seg.sm{width:100%}.gx-item .gx-seg.sm button{flex:1}}
.gx-week{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.gx-day{display:grid;grid-template-columns:100px 92px 1fr;grid-template-areas:"dn tg tm" "dn hint hint";align-items:center;gap:4px 10px;background:var(--bg);border-radius:14px;padding:10px 12px}
.gx-day .dn{grid-area:dn}.gx-day .gx-tg{grid-area:tg}.gx-day .tm{grid-area:tm;display:flex;align-items:center;gap:6px}.gx-day .hint{grid-area:hint;min-height:0}
.gx-day .tm input{padding:9px 8px;border-radius:10px;min-width:0}
.gx-day.closed .tm{opacity:.4}
.gx-tg{padding:9px 0;border-radius:999px;font-weight:800;font-size:13px;background:#e9dfdf;color:#6b5b5b}.gx-tg.on{background:#dff5e9;color:#0f7a43}
@media(max-width:480px){.gx-day{grid-template-columns:1fr 92px;grid-template-areas:"dn tg" "tm tm" "hint hint"}}
.gx-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 12px;margin-top:8px}
.gx-cl{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.gx-log{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}
.gx-busy .gx{opacity:.7;pointer-events:none}
/* ---- account cliente, I miei ordini, notifiche ---- */
.acc-btn{margin-left:auto;align-self:flex-start;max-width:42vw;overflow:hidden;text-overflow:ellipsis}
.acc-hero{text-align:center;color:#fff;padding:6px 16px 18px}.acc-hero .logo.xl{margin:0 auto 10px;width:92px;height:92px}.acc-hero .wordmark{font-size:30px}
body:has(.acc-hero) ,body:has(.ord-card){background:var(--bg)}
.acc-hero{background:linear-gradient(160deg,#E81F2A,#C9131D);margin:-4px 0 14px;border-radius:0 0 28px 28px}
.seg{display:flex;background:#f6eeed;border-radius:999px;padding:4px;margin-bottom:14px}.seg button{flex:1;padding:10px;border-radius:999px;font-weight:700;color:var(--mut)}.seg button.on{background:#fff;color:var(--red);box-shadow:var(--sh2)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#4a3b3b;margin:4px 2px 12px;line-height:1.4}.consent input{width:20px;height:20px;flex:0 0 20px;padding:0;margin:1px 0 0;accent-color:var(--red)}
.linkbtn{display:block;margin:12px auto 0;color:var(--red);font-weight:600;font-size:14px;background:none}
.acc-card{display:flex;gap:14px;align-items:center;margin:4px 16px 12px;padding:18px;border-radius:var(--r);color:#fff;background:linear-gradient(160deg,#E81F2A,#C9131D);box-shadow:0 10px 24px rgba(232,31,42,.28)}
.acc-card .av{width:54px;height:54px;border-radius:50%;background:#fff;color:var(--red);display:grid;place-items:center;font:800 26px 'Baloo 2',sans-serif}
.menu-row{display:flex;align-items:center;gap:12px;width:100%;background:none;padding:2px 0}.menu-row .mi{font-size:28px}
.addr-row{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.addr-row:last-child{border:0}
.row-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.row-btns .btn{flex:1}
.box.danger h3{color:var(--red2)}.btn.ghost.danger{color:var(--red2);border-color:#f0b8bb}
.ord-card{display:block;width:calc(100% - 32px);margin:0 16px 12px;padding:14px 16px;background:#fff;border-radius:var(--r);box-shadow:var(--sh2);text-align:left}
.oc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.oc-top b{font-size:18px}
.oc-t{margin:6px 0 10px;font-weight:600}.oc-bot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.oc-bot .chip{margin-left:auto}
.chip.sm{padding:7px 12px;font-size:13px}
.st-chip{color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.push-card{display:flex;gap:12px;align-items:flex-start;background:var(--red3);border:1.5px solid #f6c6c9;border-radius:16px;padding:12px 14px;text-align:left}
.push-card .pc-ic{font-size:26px;line-height:1}.push-card.ok{background:#eaf8f0;border-color:#bfe8d1}.push-card.off{background:#f5f1f0;border-color:var(--line)}
.ios-share{display:inline-block;border:1.5px solid currentColor;border-radius:5px;padding:0 4px;font-size:11px}
.acc-note{margin-top:4px;color:#4a3b3b}.acc-note a{color:var(--red);font-weight:600}
.addr-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}
/* resto contanti */
.cash-q{margin:14px 0 8px}.cash-amt{display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:600}.cash-amt input{max-width:140px;font-weight:700;font-size:18px}
.cashline{margin-top:6px;font-weight:700;color:#8a5b00;background:#fff3d6;border-radius:10px;padding:6px 10px;display:inline-block}.cashline.big{font-size:15px}
.tk-cash{text-align:center;font-weight:800;font-size:1.25em;border:2px solid #000;margin:6px 0;padding:4px}
