/* Brass · sistema visivo condiviso (app clienti, cucina, rider, admin) */
@font-face{font-family:'Anton';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/anton-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/barlow-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/barlow-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/barlow-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/barlow-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/barlow-condensed-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/barlow-condensed-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/barlow-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2) format('woff2')}

:root{
  --yellow:#FAB400;--gold:#F5BE4A;--orange:#D68333;--caramel:#B6814F;--umber:#5E462B;
  --espresso:#221812;--brown:#33221B;--ink:#2A1F17;--cream:#F7EDE0;--paper:#FBF8F1;--steel:#2A2421;
  --ok:#6FCB7A;--okd:#2F7D3A;--danger:#E2553B;
  --mute:rgba(247,237,224,.66);--line:rgba(247,237,224,.12);--card:#2F2219;--card2:#3D2C21;
  --display:'Anton','Impact','Arial Narrow Bold',sans-serif;
  --body:'Barlow','Helvetica Neue',Arial,sans-serif;
  --cond:'Barlow Condensed','Arial Narrow','Helvetica Neue',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --gut:max(20px, env(safe-area-inset-left, 0px));--gutR:max(20px, env(safe-area-inset-right, 0px));
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--espresso);color:var(--cream);font-family:var(--body);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit;-webkit-tap-highlight-color:transparent}
button:disabled{cursor:not-allowed}
a{color:inherit}
img{display:block;max-width:100%}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wrap{padding-left:var(--gut);padding-right:var(--gutR)}
.mute{color:var(--mute)}.s{font-size:13px;line-height:1.4}.xs{font-size:12px;line-height:1.4}.center{text-align:center}
.lbl{display:block;font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.sec-t{font-family:var(--display);font-weight:400;font-size:28px;line-height:1;text-transform:uppercase;margin:0}
.price{font-family:var(--cond);font-weight:700;font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:0 20px;border-radius:16px;background:var(--yellow);color:var(--ink);font-family:var(--cond);font-weight:700;font-size:18px;letter-spacing:.05em;text-transform:uppercase;transition:transform .12s,filter .12s;text-align:center}
.btn:active{transform:scale(.98)}
.btn:disabled{filter:grayscale(1) brightness(.55)}
.btn.dark{background:var(--card2);color:var(--cream)}
.btn.ghost{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 2px var(--line)}
.btn.danger{background:var(--danger);color:#fff}
.btn .r{margin-left:auto;font-variant-numeric:tabular-nums}.btn .l{margin-right:auto}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:999px;background:var(--card);font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:.04em;white-space:nowrap;flex:none}
.chip .ic{width:16px;height:16px}.chip.y{background:var(--yellow);color:var(--ink)}
.tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;font-family:var(--cond);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;background:var(--card2);color:var(--gold);white-space:nowrap}
.tag.y{background:var(--yellow);color:var(--ink)}.tag.o{background:var(--orange);color:var(--ink)}.tag.g{background:var(--okd);color:#fff}
.ibtn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--card);color:var(--cream);flex:none}
.stepper{display:inline-flex;align-items:center;gap:2px;background:var(--card);border-radius:999px;padding:4px;flex:none}
.stepper button{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--card2)}
.stepper button:disabled{opacity:.35}
.stepper b{min-width:28px;text-align:center;font-family:var(--cond);font-size:18px;font-variant-numeric:tabular-nums}
.stepper .ic{width:16px;height:16px}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{min-height:38px;padding:0 14px;border-radius:999px;background:var(--card);font-family:var(--cond);font-weight:700;font-size:14.5px;letter-spacing:.04em}
.seg button.on{background:var(--cream);color:var(--ink)}
.switch{flex:none;width:54px;height:32px;border-radius:99px;background:var(--card2);position:relative;transition:background .2s}
.switch::after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:var(--cream);transition:transform .2s,background .2s}
.switch.on{background:var(--yellow)}.switch.on::after{transform:translateX(22px);background:var(--ink)}
.field{display:grid;gap:6px;margin-top:12px}
.field label{font-family:var(--cond);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.field input,.field textarea,.field select{width:100%;min-height:50px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--cream);font:inherit;font-size:16px;padding:12px 14px}
.field textarea{min-height:80px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--yellow);outline-offset:0;border-color:transparent}
.field .err{color:#FF9B85;font-size:13px}
.radio{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid rgba(247,237,224,.45);display:grid;place-items:center;margin-top:1px}
.toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 14px);z-index:900;max-width:calc(100% - 32px);transform:translate(-50%,-14px);opacity:0;pointer-events:none;padding:12px 16px;border-radius:14px;background:var(--cream);color:var(--ink);font-weight:600;font-size:14.5px;line-height:1.35;box-shadow:0 10px 30px rgba(0,0,0,.45);transition:opacity .25s,transform .25s;text-align:center;width:max-content}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:#FFD9CF;color:#5A1A0C}
.pat{position:relative;background:var(--brown);isolation:isolate}
.pat::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(182,129,79,.2);-webkit-mask:url(/img/pattern.png) 0 0/224px 192px repeat;mask:url(/img/pattern.png) 0 0/224px 192px repeat}
.logo-mask{display:block;aspect-ratio:502/614;background:var(--cream);-webkit-mask:url(/img/logo.png) center/contain no-repeat;mask:url(/img/logo.png) center/contain no-repeat}
.flag-mask{display:block;aspect-ratio:325/279;background:currentColor;-webkit-mask:url(/img/flag.png) center/contain no-repeat;mask:url(/img/flag.png) center/contain no-repeat}
.pulse{flex:none;width:10px;height:10px;border-radius:50%;background:#FF6B3D;animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,107,61,.6)}70%{box-shadow:0 0 0 10px rgba(255,107,61,0)}100%{box-shadow:0 0 0 0 rgba(255,107,61,0)}}
@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes shake{10%,90%{transform:translate(-1px,1px)}20%,80%{transform:translate(3px,-2px)}30%,50%,70%{transform:translate(-6px,3px)}40%,60%{transform:translate(6px,-3px)}}

/* burger glyph: strati disegnati in CSS */
.glyph{display:flex;flex-direction:column;align-items:center;width:13.2em;font-size:10px;line-height:0}
.L{display:block;flex:none;width:12em;transition:height .32s,margin .32s,opacity .32s;position:relative}
.L+.L{margin-top:-.18em}
.L.off{height:0!important;opacity:0;margin-top:0}
.t-bunTop{height:4.4em;border-radius:50% 50% 16% 16%/86% 86% 14% 14%;background:radial-gradient(55% 45% at 34% 26%,rgba(255,238,196,.6),transparent 70%),linear-gradient(#E9AA55,#C27B2C);box-shadow:inset 0 -.35em 0 rgba(120,60,10,.22)}
.t-bunBot{height:2.1em;border-radius:12% 12% 46% 46%/26% 26% 74% 74%;background:linear-gradient(#D49040,#AD6D29)}
.t-patty,.t-patty2{height:2em;width:12.9em;border-radius:1em;background:radial-gradient(circle at 30% 40%,rgba(255,190,140,.16) 0 .22em,transparent .28em) 0 0/1.3em 1em,linear-gradient(#5E3420,#3A1D10 60%,#2A140A)}
.t-patty2{background:radial-gradient(circle at 30% 40%,rgba(255,200,150,.14) 0 .22em,transparent .28em) 0 0/1.3em 1em,linear-gradient(#6A3D27,#4A2615)}
.t-chicken{height:2.2em;width:13em;border-radius:1em;background:radial-gradient(circle at 30% 40%,#F2B860 0 .32em,transparent .38em) 0 0/1.1em 1.1em,linear-gradient(#DDA048,#B3721F)}
.t-veggie{height:2em;width:12.8em;border-radius:1em;background:radial-gradient(circle at 30% 40%,rgba(200,230,140,.2) 0 .22em,transparent .28em) 0 0/1.2em 1em,linear-gradient(#617F34,#3D5A1D)}
.t-cheese,.t-cheeseW{height:.75em;width:12.7em;border-radius:.2em;background:#F3A81E}
.t-cheeseW{background:#F1E6CC}
.t-cheese::before,.t-cheese::after,.t-cheeseW::before,.t-cheeseW::after{content:"";position:absolute;top:.5em;width:.95em;height:1.15em;border-radius:0 0 .48em .48em;background:inherit}
.t-cheese::before,.t-cheeseW::before{left:17%}.t-cheese::after,.t-cheeseW::after{left:67%;height:.8em}
.t-bacon{height:.95em;width:12.5em;border-radius:.45em;background:repeating-linear-gradient(90deg,#B8452C 0 1.2em,#E07A5E 1.2em 1.55em,#8C2C1B 1.55em 2.4em)}
.t-jam{height:.72em;width:11.8em;border-radius:.36em;background:#7A2A18}
.t-pastrami{height:1.5em;width:12.6em;border-radius:.6em;background:repeating-linear-gradient(170deg,#C6626A 0 .5em,#E39AA0 .5em .65em,#B04F57 .65em 1.1em)}
.t-brisket{height:1.5em;width:12.6em;border-radius:.6em;background:repeating-linear-gradient(100deg,#7C3B22 0 .7em,#5E2B17 .7em 1em,#9A5333 1em 1.3em)}
.t-pulled{height:1.6em;width:12.4em;border-radius:.8em;background:repeating-linear-gradient(75deg,#9A5532 0 .35em,#7A3E22 .35em .7em,#B56B43 .7em .9em)}
.t-leaf{height:1.1em;width:13.2em;border-radius:50%/80%;background:linear-gradient(#9AD15A,#6FA83A)}
.t-tomato{height:.85em;width:11.6em;border-radius:.42em;background:linear-gradient(#E85A3C,#BF3420)}
.t-pickle{height:.7em;width:11.2em;border-radius:.35em;background:radial-gradient(circle,#C4D27A .18em,transparent .22em) 0 0/1em .7em,#7C8F2D}
.t-onion{height:.8em;width:11.6em;border-radius:.4em;background:repeating-linear-gradient(90deg,#C98234 0 .8em,#A86321 .8em 1.2em)}
.t-onionS{height:.6em;width:12.6em;border-radius:.3em;background:#D7B07A}
.t-crumble{height:.8em;width:11.8em;background:radial-gradient(circle,#E5B05C .28em,transparent .32em) 0 0/.9em .8em}
.t-eggplant{height:.8em;width:11.6em;border-radius:.4em;background:linear-gradient(#7A4B60,#4E2C3C)}
.t-sauce{height:.5em;width:11.4em;border-radius:.3em;background:var(--c,#F3EAC2)}
.L.new{animation:drop .7s cubic-bezier(.25,1.4,.5,1)}
@keyframes drop{0%{transform:translateY(-4em) scale(.9,1.5);opacity:0}45%{transform:translateY(0) scale(1.28,.5);opacity:1}70%{transform:scale(.95,1.12)}100%{transform:none}}

/* scontrino termico (cucina, rider, sacchetto) */
.paper{background:var(--paper);color:#1C1712;font-family:var(--mono);font-weight:500}
.zig{-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/12px 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/12px 100%}

/* mappa (Leaflet) in tonalità Brass */
.map{position:relative;border-radius:20px;overflow:hidden;background:#1d1611;isolation:isolate}
.map .leaflet-tile-pane{filter:invert(1) hue-rotate(185deg) brightness(.9) contrast(.88) saturate(.55) sepia(.22)}
.map .leaflet-container{background:#1d1611;font-family:var(--body)}
.leaflet-control-attribution{background:rgba(20,13,9,.7)!important;color:rgba(247,237,224,.7)!important;font-size:10px!important}
.leaflet-control-attribution a{color:var(--gold)!important}
.leaflet-bar a{background:var(--card)!important;color:var(--cream)!important;border-color:var(--line)!important}
.pin{position:relative;display:grid;place-items:center;border-radius:50%;box-shadow:0 6px 16px rgba(0,0,0,.5)}
.pin-brass{width:40px;height:40px;background:var(--yellow);color:var(--ink);border:3px solid var(--ink)}
.pin-brass .flag-mask{width:22px}
.pin-home{width:36px;height:36px;background:var(--cream);color:var(--ink);border:3px solid var(--ink)}
.pin-rider{width:46px;height:46px;background:var(--orange);color:var(--ink);border:3px solid var(--cream)}
.pin-rider::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid var(--orange);animation:ring 1.8s ease-out infinite}
@keyframes ring{from{transform:scale(.6);opacity:1}to{transform:scale(1.5);opacity:0}}
.pin-drag{width:44px;height:44px;background:var(--yellow);color:var(--ink);border:3px solid var(--ink);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.pin-drag .ic{transform:rotate(45deg)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
