/* ============================================================================
   Nightsheet — foglio di lavoro della notte. Interfaccia densa, piatta, leggibile
   al buio e a due del mattino: una barra sola, tab a striscia, contenitori senza
   ornamenti, numeri in monospazio tabellare come su un foglio cassa.
   I COLORI stanno solo nelle variabili: i temi (ns_temi) le sovrascrivono.
   ============================================================================ */
:root{
  /* tema classico "Notte in Maremma": carbone caldo + ottone. Vedi app.css.pre-restyle. */
  --bg:#131210;--panel:#1b1813;--panel2:#232019;--line:#37322a;
  --txt:#f4efe6;--muted:#a89e8c;--accent:#cda349;--accent2:#a6552e;--on-accent:#1a1508;
  --ok:#3fa06a;--bad:#e5484d;--warn:#e0a13a;
  /* derivati dell'accento (i temi li sovrascrivono tutti insieme) */
  --accent-hover:#dcb25e;--login-glow:#2c1e10;--header-a:#1b1813;--header-b:#241a12;--accent-glow:rgba(205,163,73,.18);
  /* tipografia: una famiglia, due tagli. Il monospazio e' per i NUMERI (soldi, orari, codici). */
  --ui:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --display:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  /* misure */
  --r:10px;--r-s:7px;--hdr:44px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--ui);background:var(--bg);color:var(--txt);font-size:14px;line-height:1.4;font-feature-settings:"tnum" 1}
.hidden{display:none!important}
h1,h2,h3{margin:0 0 6px;font-family:var(--display);font-weight:600;letter-spacing:-.012em;line-height:1.2}
h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}
.muted{color:var(--muted)}
.err{color:var(--bad);font-size:13px;margin-top:6px}
.hint{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.45}
.hint code{font-family:var(--mono);font-size:12px;background:var(--panel2);padding:0 4px;border-radius:4px}

/* Controlli: stessa altezza (32px), stesso raggio, bordo che si accende al focus */
input,select,button,textarea{font:inherit;color:var(--txt)}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-s);padding:6px 9px;min-height:32px;transition:border-color .12s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}
input[type=number]{text-align:right;font-family:var(--mono);font-size:13.5px}
input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--accent)}
input[type=file]{background:transparent;border:1px dashed var(--line);padding:6px}
button{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-s);padding:6px 11px;min-height:32px;cursor:pointer;font-weight:500;font-size:13.5px;line-height:1.2;transition:border-color .12s,background .12s,color .12s}
button:hover{border-color:var(--accent)}
button:disabled{opacity:.5;cursor:default}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}
button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
button.ghost{background:transparent;border-color:transparent;color:var(--muted)}
button.ghost:hover{color:var(--txt);border-color:var(--line);background:var(--panel2)}
button.danger{border-color:transparent;color:var(--bad);background:transparent}
button.danger:hover{border-color:var(--bad);background:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* Login: la sola cosa al centro, con il logo del locale */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(1100px 560px at 50% -12%,var(--login-glow),var(--bg))}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 24px;width:340px;display:flex;flex-direction:column;gap:10px}
.login-card input{width:100%;min-height:38px}
.login-card button.primary{min-height:38px;margin-top:4px}
.login-card .brand{font-size:24px;font-weight:700;font-family:var(--display)}
.login-logo{display:block;width:220px;max-width:80%;margin:0 auto 6px}
.login-card .sub{color:var(--muted);margin-bottom:6px;text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.18em}
.header-logo{height:22px;width:auto;display:block;flex:0 0 auto}
.brand b{color:var(--accent)}
.uhead{margin-bottom:0;padding-bottom:2px;border-bottom:1px solid var(--line)}
.uhead .uh{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
td.ucalc{font-weight:600;text-align:center;font-family:var(--mono);color:var(--accent)}

/* Shell: UNA barra di 44px con tutto in riga; sotto, la striscia delle tab */
header{position:sticky;top:0;z-index:20;min-height:var(--hdr);background:linear-gradient(90deg,var(--header-a),var(--header-b));border-bottom:1px solid var(--line);box-shadow:0 1px 0 var(--accent-glow);padding:5px 14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
header .brand{font-weight:600;font-family:var(--display);letter-spacing:.06em;font-size:12px;text-transform:uppercase;color:var(--muted)}
header button{padding:5px 9px;min-height:30px;font-size:13px}
header button.ghost{color:var(--muted)}
header .field{flex-direction:row;align-items:center;gap:6px}
header .field label{margin:0}
header select{min-width:220px;min-height:30px;padding:4px 8px;font-weight:600}
#whoami{font-size:12px}
.grow{flex:1}
.field{display:flex;flex-direction:column;gap:3px}
.field label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500}
.tabs{display:flex;gap:2px;padding:0 14px;flex-wrap:wrap;background:var(--bg);position:sticky;top:var(--hdr);z-index:10;border-bottom:1px solid var(--line)}
.tabs button{background:transparent;border:none;border-radius:0;min-height:0;padding:9px 10px;color:var(--muted);font-weight:600;font-size:13px;opacity:1;box-shadow:inset 0 -2px 0 transparent;transition:color .12s,box-shadow .12s}
.tabs button:hover{color:var(--txt)}
.tabs button.active{color:var(--txt);background:transparent;font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}
/* Menu a tendina dei gruppi di tab */
.tabgroup{position:relative;display:inline-block}
.tabmenu{position:absolute;top:100%;left:0;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:0 0 var(--r) var(--r);box-shadow:0 14px 34px rgba(0,0,0,.5);display:flex;flex-direction:column;padding:4px;z-index:30}
.tabmenu button{border-radius:6px;width:100%;text-align:left;margin:0;padding:7px 10px;box-shadow:none;font-weight:500}
.tabmenu button:hover{background:var(--panel2)}
.tabmenu-sub{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#9a9080);padding:8px 10px 2px;border-top:1px solid var(--line);margin-top:4px}
.tabmenu button.sub{padding-left:22px}
.tabmenu button.active{background:var(--panel2);color:var(--txt);font-weight:700;box-shadow:inset 3px 0 0 var(--accent)}
main{padding:14px 20px 40px;max-width:1280px;margin:0 auto}
/* La tab PR ha tabelle larghe: su schermi grandi usa quasi tutta la larghezza + celle compatte */
body[data-tab="pr"] main{max-width:min(1600px,97vw)}
body[data-tab="pr"] .grid-table td,body[data-tab="pr"] .grid-table th{padding:5px 6px}

/* Contenitori: piatti, un bordo sottile, poco spazio perso */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
.panel.tcard{padding:8px 12px;margin-bottom:6px}  /* card tavoli: lista fitta */
.panel>h2:first-child,.panel>h3:first-child{margin-bottom:8px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pill{padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);cursor:pointer;font-weight:600;font-size:13px;line-height:1.3}
.pill.active{background:var(--accent);border-color:transparent;color:var(--on-accent)}
.pill .badge{font-size:11px;margin-left:6px;padding:1px 6px;border-radius:999px;background:rgba(0,0,0,.3);font-family:var(--mono)}

/* Tabelle: il foglio cassa. Righe sottili, intestazioni piccole, numeri monospazio */
table{width:100%;border-collapse:collapse}
th{font-weight:600}
table.denom td,table.denom th{padding:3px 6px;border-bottom:1px solid var(--line);text-align:right}
table.denom th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
table.denom td{font-family:var(--mono);font-size:13.5px}
table.denom td:first-child{text-align:left;color:var(--muted);font-family:var(--ui)}
table.denom input{width:76px;padding:4px 7px;min-height:28px}
table.denom tfoot td{font-weight:700;border-top:2px solid var(--line);border-bottom:none;padding-top:7px}
.denoms{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:680px){.denoms{grid-template-columns:1fr}}

/* --- Header a scomparsa sul TELEFONO: chiuso mostra solo la serata --- */
#hdrBar{display:none}
@media(max-width:760px){
  body{font-size:15px}
  /* Sul telefono ogni pixel orizzontale conta: contenuto quasi a filo bordo. */
  main{padding:8px 6px 32px}
  .tabs{padding:0 4px;gap:0}
  .tabs button{padding:9px 8px}
  header{padding:6px 10px}
  header .field{flex-direction:column;align-items:stretch;gap:3px}
  #hdrBar{display:flex;width:100%;align-items:center;gap:10px;cursor:pointer;
          padding:2px 0;-webkit-tap-highlight-color:transparent}
  #hdrBar #hdrSerata{font-weight:700;font-size:16px;flex:1;
          white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #hdrBar #hdrChev{color:var(--accent);font-size:18px}
  /* Chiuso: si vede solo la barra compatta. Aperto: tutto (i pulsanti nascosti
     per ruolo restano nascosti dal loro style inline). */
  header:not(.open)>*:not(#hdrBar){display:none!important}
  header.open{padding-bottom:10px;gap:6px}
  header.open .grow{display:none}
  header.open .field{width:100%}
  header.open #serataSel{width:100%;min-width:0}
  header.open button{min-height:34px}
  #btnBell{display:none!important}   /* su telefono la campanella sta nella barra compatta (btnBellM) */
  /* Le tab sotto l'header compatto: riallinea lo sticky. */
  .tabs{top:auto}
  /* Tabelle larghe: scorre il contenitore, non la pagina (la barra e le tab restano ferme) */
  .panel{padding:12px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .recon{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
  .stat{padding:8px 10px}
  .stat .v{font-size:19px}
  .row{gap:8px}
  .row .field{flex:1 1 140px;min-width:0}
  .row .field input,.row .field select{width:100%;min-width:0}
  button,input,select,textarea{min-height:36px}
}

/* Riquadri di sintesi: etichetta piccola, numero grande in monospazio */
.recon{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px;margin-top:8px}   /* 7 riquadri in una riga a 1280 */
/* Il numero sta sempre in basso: con etichette di lunghezza diversa i valori
   della stessa riga restano allineati tra loro (la griglia rende i box alti uguali). */
.stat{background:var(--panel2);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.stat .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;line-height:1.3}
.stat .k .muted{display:block;text-transform:none;letter-spacing:0;font-size:11px;opacity:.85}
.stat .v{font-size:21px;font-weight:600;font-family:var(--mono);margin-top:auto;letter-spacing:-.02em;line-height:1.15;white-space:nowrap}
.v.ok{color:var(--ok)}.v.bad{color:var(--bad)}.v.warn{color:var(--warn)}

.grid-table th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.grid-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;font-family:var(--mono);font-size:13px}
.grid-table td:first-child,.grid-table th:first-child{text-align:left}
.grid-table td:first-child{font-family:var(--ui);font-size:13.5px}
.grid-table tbody tr:hover td{background:rgba(255,255,255,.025)}
/* righe evidenziate (fuori soglia): sfondo chiaro + testo scuro, leggibile anche in tema scuro */
.grid-table tr.rowbad td{background:#fde8e8;color:#8a1c1c}
.grid-table tr.rowbad td.bad{color:#c0392b;font-weight:700}
.linelist{display:flex;flex-direction:column;gap:6px}
.lineitem{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.lineitem input,.lineitem select{flex:1;min-width:90px}
.lineitem input.amt{flex:0 0 110px}
.tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.02em}

.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(40px);background:var(--panel);border:1px solid var(--line);padding:10px 16px;border-radius:var(--r-s);opacity:0;transition:.2s;z-index:1000;box-shadow:0 10px 30px rgba(0,0,0,.55);font-size:13.5px;max-width:min(92vw,520px)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.ok{border-color:var(--ok)}.toast.bad{border-color:var(--bad)}

.frozen-banner{background:#3a1d22;border-bottom:1px solid var(--bad);color:#ffb3b3;padding:6px 16px;text-align:center;font-weight:600;font-size:13px}
/* Serata bloccata = sola lettura, TRANNE per l'admin (che puo' correggere). */
body.frozen:not(.role-admin):not(.role-pr) main input,body.frozen:not(.role-admin):not(.role-pr) main select,body.frozen:not(.role-admin):not(.role-pr) main textarea{pointer-events:none;opacity:.55}
body.frozen:not(.role-admin):not(.role-pr) main button:not(.noprint){pointer-events:none;opacity:.4}

#print-area{display:none}

/* Lineup: pallino LIVE lampeggiante come le radio, e barre della vista timeline */
.live-dot{display:inline-block;width:.62em;height:.62em;border-radius:50%;background:#ff3b30;margin-right:.35em;vertical-align:middle;animation:liveblink 1s steps(2,start) infinite;box-shadow:0 0 8px #ff3b30}
@keyframes liveblink{50%{opacity:.12}}
.lu-bar{height:12px;border-radius:6px;background:#3a3a45;overflow:hidden;min-width:20px}
.lu-bar>i{display:block;height:100%;border-radius:6px;background:var(--accent)}
.lu-live{outline:2px solid #ff3b30;outline-offset:2px;border-radius:10px}
/* Voci di lineup gia' passate: ingrigite e depennate, restano in elenco */
/* Orologio Lineup: alone d'ottone che pulsa lento (stile Ibiza) */
.lu-clock{background:linear-gradient(180deg,#f6e7b2,#cda349 52%,#9c6f2c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:clockGlow 2s ease-in-out infinite}
@keyframes clockGlow{0%,100%{text-shadow:0 0 20px rgba(214,176,90,.45),0 0 54px rgba(205,163,73,.22)}50%{text-shadow:0 0 30px rgba(245,227,165,.95),0 0 62px rgba(214,176,90,.72),0 0 115px rgba(205,163,73,.48)}}
.lu-past{opacity:.4}
.lu-past .lu-time{text-decoration:line-through;text-decoration-thickness:2px}
.lu-past .lu-nm{text-decoration:line-through}

@media print{
  header,.tabs,.noprint,.frozen-banner{display:none!important}
  body{background:#fff;color:#000}
  .panel,.stat{background:#fff!important;color:#000!important;border-color:#ccc!important}
  /* Stampa lista agenzia: mostra solo #print-area */
  body.printing>*:not(#print-area){display:none!important}
  /* Margine su due livelli, come per il listino: il @page vale per OGNI
     pagina (indispensabile sui documenti lunghi come il foglio firme, che
     va su piu' fogli), il padding interno e' la rete di sicurezza quando
     nella finestra di stampa i margini sono su "Nessuno" e il @page viene
     scavalcato. Il padding pero' agisce solo a inizio blocco: dalla seconda
     pagina in poi resta il @page a fare il lavoro. */
  @page{size:A4;margin:14mm}
  body.printing #print-area{display:block!important;color:#000;box-sizing:border-box;
    /* Margine DENTRO il contenuto: se la finestra di stampa e' su "Nessun margine"
       scavalca il @page e il contenuto finirebbe a filo carta. 14/15mm = margine
       sicuro anche a bordi azzerati (il listino ha il suo blocco .listino). */
    padding:14mm 15mm;font-family:Arial,Helvetica,sans-serif;font-size:13px}
  #print-area h1{font-size:20px;margin:0 0 2px}
  #print-area h2{font-size:16px;margin:0 0 4px}
  #print-area .sub{color:#333;margin:0 0 16px}
  #print-area table{border-collapse:collapse;width:100%;margin-top:6px}
  #print-area th,#print-area td{border:1px solid #999;padding:6px 8px;text-align:left}
  #print-area th{background:#e6e6e6}
  #print-area td.r,#print-area th.r{text-align:right}
  #print-area td.c,#print-area th.c{text-align:center}
  #print-area h2{margin-top:22px}
  #print-area td.ore,#print-area th.ore{font-weight:bold;background:#eee}
  #print-area tfoot td{font-weight:bold;background:#f2f2f2}
  #print-area .nota{font-size:12px;color:#333;font-style:italic;margin-top:8px}
  #print-area .sez-sicurezza{margin-top:44px;padding-top:16px;border-top:3px solid #000}
  #print-area .hint{font-size:11px;color:#555;margin:0 0 6px}
  #print-area .firma{margin-top:56px;display:flex;justify-content:space-between;gap:40px}
  #print-area .firma div{border-top:1px solid #000;padding-top:6px;width:45%;font-size:12px}
  /* Foglio firme di arrivo: righe alte per scrivere ora e firma a mano */
  #print-area tr.firmarow td{height:34px}
  #print-area td.box,#print-area th.box{text-align:center;width:70px}
}

/* --- Pop-up griglia tagli (fondo / prelievi / conteggio) --- */
.mdl-back{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}
.mdl{background:var(--panel,#16161c);border:1px solid var(--line,#2a2a35);border-radius:12px;max-width:440px;width:100%;max-height:88vh;display:flex;flex-direction:column}
.mdl-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line,#2a2a35)}
.mdl-head h3{margin:0;flex:1;font-size:16px}
.mdl-body{padding:12px 14px;overflow:auto}
.mdl-foot{padding:10px 14px;border-top:1px solid var(--line,#2a2a35);display:flex;justify-content:flex-end;gap:8px}
/* Riquadri cliccabili col totale */
.cashbox{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.cashbox .cb{flex:1;min-width:150px;background:var(--panel2,#1d1d27);border:1px solid var(--line,#2a2a35);
  border-radius:var(--r-s);padding:10px 12px;cursor:pointer;text-align:left}
.cashbox .cb:hover{border-color:var(--accent)}
.cashbox .cb{display:flex;flex-direction:column}
.cashbox .cb .k{font-size:12px;color:var(--muted,#9a9aa8)}
.cashbox .cb .v{margin-top:auto}
.cashbox .cb .v{font-size:24px;font-weight:600;font-family:var(--mono);margin-top:2px;letter-spacing:-.02em}
.cashbox .cb .h{font-size:11px;color:var(--muted,#9a9aa8);margin-top:4px}

/* --- LISTINO A4 da appendere alla porta (stampa) --- */
@media print{
  /* Tre alfabeti a scelta. Il default e' un neo-grottesco (Helvetica Neue):
     presente su ogni Mac, quindi niente font da scaricare in stampa. */
  /* Il margine sta DENTRO il contenuto, non solo nel @page: la finestra di
     stampa del Mac ha una sua voce "Margini" che, se messa su Nessuno,
     scavalca il @page e manda il listino a filo dei bordi. Un padding
     interno non lo puo' scavalcare nessuno. */
  #print-area.listino{color:#000;text-align:center;
    box-sizing:border-box;padding:16mm 15mm 10mm;
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
  #print-area.listino.f-sistema{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,sans-serif}
  #print-area.listino.f-classico{font-family:Georgia,"Times New Roman",serif}
  /* Si usa logo-nero.png, una copia del logo coi pixel gia' neri. Il logo
     normale e' bianco (sta su fondo scuro) e su carta sparirebbe; risolverlo
     con filter:brightness(0) funzionava nell'anteprima ma NON nel PDF salvato
     dalla finestra di stampa del Mac, che scarta i filtri CSS. Un'immagine
     gia' nera non dipende da nessun filtro e si comporta uguale ovunque. */
  #print-area.listino .lg{display:block;margin:0 auto 6mm;max-width:78mm;max-height:42mm;object-fit:contain;
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-area.listino h1{font-size:32pt;letter-spacing:-.015em;margin:0 0 1.5mm;font-weight:700;text-transform:uppercase}
  #print-area.listino.f-classico h1{font-size:30pt;letter-spacing:.14em}
  #print-area.listino .serata{font-size:17pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
    margin:0 0 2mm;color:#000}
  #print-area.listino .occhiello{font-size:13pt;letter-spacing:.34em;text-transform:uppercase;color:#444;margin:0 0 7mm}
  #print-area.listino .riga{display:flex;align-items:baseline;gap:5mm;padding:3mm 0;border-bottom:1px solid #bbb;text-align:left}
  #print-area.listino .riga:last-of-type{border-bottom:none}
  /* min-width:0 : senza, un nome lungo non si restringe e spinge il prezzo
     oltre il bordo destro invece di andare a capo. */
  #print-area.listino .voce{flex:1;min-width:0;overflow-wrap:break-word;
    font-size:34pt;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;line-height:1.05}
  #print-area.listino .quando{display:block;font-size:13pt;font-weight:400;letter-spacing:0;color:#555;
    text-transform:none;margin-top:1.2mm;line-height:1.2}
  #print-area.listino.f-classico .quando{font-style:italic}
  #print-area.listino .prezzo{font-size:34pt;font-weight:700;white-space:nowrap;letter-spacing:-.02em;line-height:1.05}
  #print-area.listino .sezione{margin-top:6mm;font-size:12pt;letter-spacing:.24em;text-transform:uppercase;color:#444;
    border-top:2px solid #000;padding-top:3mm;text-align:left}
  /* Con molte voci il corpo doppio sfonderebbe l'A4: si rientra in proporzione
     invece di finire a pagina 2. */
  #print-area.listino.molte .voce{font-size:26pt}
  #print-area.listino.molte .prezzo{font-size:26pt}
  #print-area.listino.molte .quando{font-size:11pt}
  #print-area.listino.molte .riga{padding:2.2mm 0}
  #print-area.listino.molte .lg{max-height:32mm;margin-bottom:4mm}
  #print-area.listino.tante .voce{font-size:20pt}
  #print-area.listino.tante .prezzo{font-size:20pt}
  #print-area.listino.tante .quando{font-size:10pt}
  #print-area.listino.tante .riga{padding:1.8mm 0}
  #print-area.listino.tante .lg{max-height:26mm;margin-bottom:3mm}
  #print-area.listino .cond{margin-top:10mm;padding-top:3mm;border-top:1px solid #999;
    font-size:9pt;line-height:1.5;text-align:center;color:#333;letter-spacing:.02em}
  /* Il listino occupa il foglio da solo */
  body.printing-listino>*:not(#print-area){display:none!important}
  body.printing-listino #print-area{display:block!important}
  /* Margini: 14mm ai lati venivano tagliati da alcune stampanti, che hanno
     un'area non stampabile piu' larga del previsto. In alto se ne mette di
     piu' che in basso: a occhio un blocco centrato geometricamente sembra
     spostato in alto, e va abbassato per apparire in equilibrio. */
  @page{size:A4;margin:12mm}
}

/* --- TAGLIANDI DRINK (stampa) --- */
@media print{
  body.printing-drink>*:not(#print-area){display:none!important}
  body.printing-drink #print-area{display:block!important}
  #print-area.drink{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#000}
  #print-area.drink .tg{width:80mm;box-sizing:border-box;padding:5mm 4mm;text-align:center;
    page-break-after:always;break-after:page;display:flex;flex-direction:column;justify-content:center}
  #print-area.drink .tg.pr{height:120mm}
  #print-area.drink .tg.staff,#print-area.drink .tg.soft{height:60mm;padding:3mm}
  #print-area.drink .lg{display:block;margin:0 auto 3mm;max-width:52mm;max-height:20mm;object-fit:contain}
  #print-area.drink .tg.pr .lg{max-width:64mm;max-height:30mm;margin-bottom:5mm}
  /* STAFF/ANALCOLICA = chit interno: fascia nera piena e dominante in alto,
     a tutta larghezza (i margini negativi annullano il padding da 3mm). */
  #print-area.drink .banda{background:#000;color:#fff;font-weight:800;letter-spacing:.2em;
    padding:3.5mm 0;margin:-3mm -3mm 3mm;font-size:20pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-area.drink .tg.soft .banda{font-size:16pt;letter-spacing:.12em}
  /* PR = voucher ospite: righe di separazione sopra/sotto il 1 DRINK gigante */
  #print-area.drink .tg.pr .rule{height:0;border-top:.6mm solid #000;width:64mm;margin:2.5mm auto}
  #print-area.drink .big{font-weight:800;letter-spacing:-.02em;line-height:1}
  #print-area.drink .tg.pr .big{font-size:58pt;margin:3mm 0}
  #print-area.drink .tg.staff .big,#print-area.drink .tg.soft .big{font-size:26pt;margin:2mm 0}
  #print-area.drink .data{font-weight:700;letter-spacing:.06em}
  #print-area.drink .tg.pr .data{font-size:15pt;margin-bottom:3mm}
  #print-area.drink .tg.staff .data,#print-area.drink .tg.soft .data{font-size:11pt;margin-bottom:1.5mm}
  #print-area.drink .chi{font-weight:700;text-transform:uppercase}
  #print-area.drink .tg.pr .chi{font-size:14pt}
  #print-area.drink .tg.staff .chi,#print-area.drink .tg.soft .chi{font-size:12pt}
  #print-area.drink .ruolo{font-size:8.5pt;color:#444;margin-top:.6mm}
  #print-area.drink .bc{margin:3mm auto 0;height:9mm;display:flex;align-items:stretch;justify-content:center}
  #print-area.drink .bc i{display:block;height:100%;background:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #print-area.drink .bc i.w{background:transparent}
  #print-area.drink .pie{font-size:7pt;color:#555;margin-top:2mm}
  @page{size:80mm auto;margin:0}
}

/* Stampa LINEUP: grande e ad alto contrasto, leggibile in consolle al buio. */
@media print{
  body.printing-lineup>*:not(#print-area){display:none!important}
  body.printing-lineup #print-area{display:block!important}
  #print-area.lineup-print{color:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:12mm}
  #print-area.lineup-print h1{font-size:42pt;margin:0 0 2mm;letter-spacing:.02em;font-weight:800}
  #print-area.lineup-print .sub{font-size:17pt;margin:0 0 8mm;color:#000}
  #print-area.lineup-print .r{display:flex;align-items:baseline;gap:10mm;border-bottom:3px solid #000;padding:5mm 0}
  #print-area.lineup-print .t{font-size:36pt;font-weight:800;min-width:54mm}
  #print-area.lineup-print .n{font-size:30pt;font-weight:700}
  #print-area.lineup-print .n em{font-size:15pt;font-style:normal;text-transform:uppercase;color:#333;letter-spacing:.1em}
  #print-area.lineup-print .nt{font-size:16pt;margin:1mm 0 3mm 54mm;color:#000;font-style:italic}
  @page{size:A4;margin:0}
}

/* --- CASSA (mod_pos.js): tasti grandi, comanda a destra, tastierino --- */
.pos-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:10px;align-items:start}
.pos-top{grid-column:1 / -1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pos-top select{font-weight:600;min-height:36px}
.pos-sx{min-width:0}
.pos-cats{margin-bottom:8px}
.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));grid-auto-rows:minmax(78px,96px);align-content:start;gap:8px;max-height:calc(100vh - 190px);overflow:auto;padding-bottom:6px}
.pos-btn{min-height:78px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.65);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:8px 9px;text-align:left;font-weight:700;font-size:14px;line-height:1.15;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.pos-btn:active{transform:scale(.97)}
.pos-btn .n{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.pos-btn .p{font-family:var(--mono);font-size:13px;font-weight:600;align-self:flex-end;opacity:.95}
.pos-cart{position:sticky;top:calc(var(--hdr) + 44px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;max-height:calc(100vh - 110px)}
.pos-cart-head{display:flex;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13.5px}
.pos-lines{flex:1;overflow:auto;min-height:120px}
.pos-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 8px;border-bottom:1px solid var(--line)}
.pos-line .t{min-width:0;font-size:13.5px;cursor:pointer}
.pos-line .i{font-family:var(--mono);font-size:13.5px;white-space:nowrap}
.pos-line .v{font-size:12.5px;color:var(--accent);font-weight:600;margin-top:1px}
.pos-qty{display:flex;align-items:center;gap:2px}
.pos-qty button{min-width:32px;min-height:32px;padding:0;font-size:16px}
.pos-qty .q{min-width:22px;text-align:center;font-family:var(--mono);font-weight:700}
.pos-tot{display:flex;justify-content:space-between;align-items:flex-end;padding:8px 10px;border-top:1px solid var(--line)}
.pos-tot .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pos-tot .v{font-family:var(--mono);font-size:26px;font-weight:600;letter-spacing:-.02em}
.pos-sco{font-size:12px;color:var(--warn)}
.pos-paglist{padding:4px 10px;border-top:1px solid var(--line)}
.pos-pag{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:13px;padding:3px 0}
.pos-actions{display:flex;gap:6px;padding:6px 8px 0}
.pos-actions button{flex:1}
.pos-pay{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:8px}
.pos-pay button{min-height:52px;font-size:15px;font-weight:700}
.pos-disp{font-family:var(--mono);font-size:34px;text-align:right;padding:8px 12px;background:var(--panel2);border-radius:8px;margin-bottom:6px;min-height:56px}
.pos-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.pos-keypad button{min-height:54px;font-size:22px;font-family:var(--mono)}
.pos-rapidi{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pos-rapidi button{flex:1;min-height:40px;font-family:var(--mono)}
.pos-esito{text-align:center}
.pos-esito .big{font-size:18px;font-weight:700}
.pos-esito .v{font-family:var(--mono);font-size:40px;font-weight:600;margin:6px 0}
.pos-esito .resto{font-size:22px;color:var(--ok)}
.pos-esito .resto b{display:block;font-family:var(--mono);font-size:46px;line-height:1.1}
.pos-sw{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--line);vertical-align:middle}
.pos-ritiro .pos-res{margin-top:12px;border-radius:12px;padding:22px 16px;text-align:center;background:var(--panel2);border:2px solid var(--line);min-height:120px}
.pos-res .t{font-size:30px;font-weight:800;letter-spacing:.04em}
.pos-res .n{font-size:20px;margin-top:6px}
.pos-res.ok{border-color:var(--ok);background:rgba(0,200,120,.12)}.pos-res.ok .t{color:var(--ok)}
.pos-res.usato{border-color:var(--bad);background:rgba(255,50,80,.14)}.pos-res.usato .t{color:var(--bad)}
.pos-res.no{border-color:var(--warn);background:rgba(255,200,0,.10)}.pos-res.no .t{color:var(--warn)}
.pos-hist{display:flex;gap:8px;font-size:13px;padding:4px 8px;border-left:3px solid var(--line)}
.pos-hist.ok{border-color:var(--ok)}.pos-hist.usato{border-color:var(--bad)}.pos-hist.no{border-color:var(--warn)}
@media(max-width:900px){
  .pos-wrap{grid-template-columns:1fr}
  .pos-grid{max-height:none}
  .pos-cart{position:static;max-height:none}
}
.grid-table td.t{font-family:var(--ui);font-size:13.5px}

/* --- CASSA v2: kiosk a schermo intero (tablet), PIN, layout fisso, modificatori --- */
body.kiosk{overflow:hidden}
body.kiosk #app{display:none}
body.kiosk main#kiosk{padding:8px 10px;max-width:none;height:100vh;height:100dvh;box-sizing:border-box;display:flex;flex-direction:column}
.pos-wrap.kiosk{grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto minmax(0,1fr);align-content:start;height:100%;min-height:0}
.pos-wrap.kiosk .pos-sx{display:flex;flex-direction:column;min-height:0;height:100%}
.pos-wrap.kiosk .pos-grid{flex:1;max-height:none;overflow:auto;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:minmax(96px,124px)}
/* icone del set: quadrate, colore ereditato */
.ico{display:inline-flex;width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.35em}
.ico svg{width:100%;height:100%;display:block}
/* maschera a passi: barra a frecce in basso */
.pren-wiz{display:flex;flex-direction:column;min-height:min(62vh,520px)}
.pren-wiz-body{flex:1;min-height:0}
.pren-steps{display:flex;gap:2px;margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.pren-step{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:2px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);
  padding:9px 16px 9px 22px;font:600 12.5px var(--sans);white-space:nowrap;overflow:hidden;cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}
.pren-step:first-child{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);padding-left:14px;border-radius:8px 0 0 8px}
.pren-step:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,12px 50%);border-radius:0 8px 8px 0}
.pren-step .t{overflow:hidden;text-overflow:ellipsis}
.pren-step.done{color:var(--ok);border-color:var(--ok)}
.pren-step.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.pren-nav{display:flex;gap:8px;margin-top:10px}
.pren-nav button{flex:1;min-height:46px;font-size:15px;font-weight:700}
.pren-pax{display:flex;gap:8px;align-items:center}
.pren-pax input{flex:1;text-align:center;font:700 22px var(--mono);min-height:48px}
.pren-pax button{min-width:52px;min-height:48px;font-size:22px}
.pren-sugg-i{display:flex;gap:8px;align-items:flex-start}
@media(max-width:560px){ .pren-step .t{display:none} .pren-step{padding:9px 10px 9px 18px} }
.pren-sez{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700;border-bottom:1px solid var(--line);padding-bottom:4px;margin:14px 0 8px}
.pren-sez:first-child{margin-top:0}
.pos-mtav.scelto{outline:3px solid var(--accent);outline-offset:2px}
.pren-tab tr.attesa td{background:rgba(224,161,58,.10)}
.pren-tab tr.stornato td{opacity:.5;text-decoration:line-through}
.pren-tab tr.stornato td:last-child,.pren-tab tr.stornato td:nth-child(10){text-decoration:none}
.pren-sugg{display:none;position:absolute;z-index:40;left:0;right:0;top:100%;background:var(--panel);border:1px solid var(--accent);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.5);max-height:260px;overflow:auto}
.pren-sugg.on{display:block}
.pren-sugg-i{padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--line)}
.pren-sugg-i:last-child{border-bottom:0}
.pren-sugg-i:hover{background:var(--panel2)}
.menu-banner-prev{height:120px;border-radius:10px;background:var(--panel2) center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;margin-bottom:8px}
.menu-thumb{width:76px;height:38px;border-radius:6px;background:var(--panel2) center/contain no-repeat;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font:600 11px var(--mono);cursor:pointer;border:1px dashed var(--line);vertical-align:middle}
.menu-foto{white-space:nowrap}
.menu-tab tr.menu-cat td{background:var(--panel2);text-align:left;padding:8px 10px}
.pos-scan{display:flex;gap:6px;margin:8px 0 4px}
.pos-scan input{flex:1;font-size:17px;min-height:48px;font-family:var(--mono)}
.pos-scan button{min-width:52px;min-height:48px;font-size:18px}
.pos-filtri{gap:6px;flex-wrap:wrap;margin:8px 0}
.pos-tblwrap{overflow-x:auto}
.pos-tconti td,.pos-tconti th{white-space:nowrap}
.pos-tconti tr.stornato td{opacity:.55;text-decoration:line-through}
.pos-tconti tr.stornato td:last-child,.pos-tconti tr.stornato td:nth-child(8){text-decoration:none}
.tag.ok{color:var(--ok);border-color:var(--ok)}
.tag.bad{color:var(--bad);border-color:var(--bad)}
.pos-fast{display:flex;gap:6px;padding:6px 8px 0}
.pos-fast button{flex:1;min-height:44px;font-family:var(--mono);font-weight:700;font-size:15px}
.pos-fast button.ghost{flex:0 0 auto;min-width:52px;font-family:inherit}
.pos-wrap.kiosk .pos-fast button{min-height:52px;font-size:16px}
.pos-pay button small{display:block;font-size:11px;font-weight:500;opacity:.8;line-height:1}
.pos-qmul{margin-left:auto;display:flex;gap:6px;align-self:center}
.pos-qmul .pill{font-family:var(--mono);min-width:44px;text-align:center}
.pos-scontrino{position:relative;background:#fff;color:#111;font-family:var(--mono);font-size:12.5px;line-height:1.35;white-space:pre;overflow-x:auto;text-align:left;padding:14px 16px 18px;margin:12px auto 0;max-width:360px;border-radius:3px;box-shadow:0 10px 28px rgba(0,0,0,.45);border-bottom:6px dotted #ccc}
.pos-stampe{display:flex;gap:14px;overflow-x:auto;align-items:flex-start;padding:10px 4px 6px;margin-top:8px;scroll-snap-type:x proximity}
.mdl.wide .pos-stampe{flex-wrap:wrap;justify-content:center;overflow:visible}
.pos-stampe .pos-scontrino{margin:0;flex:0 0 auto;width:340px;scroll-snap-align:center}
.pos-tagliando{flex:0 0 auto;width:236px;background:#fff;color:#111;font-family:var(--mono);font-size:11px;line-height:1.3;text-align:center;padding:12px 10px 16px;border-radius:3px;box-shadow:0 10px 28px rgba(0,0,0,.45);border-bottom:6px dotted #ccc;scroll-snap-align:center;animation:pos-stampa 1s ease-out both}
.pos-tagliando img{max-width:72%;max-height:60px;display:block;margin:0 auto 6px}
.pos-tagliando .brand{font-size:18px;font-weight:800;margin-bottom:4px}
.pos-tagliando .rule{overflow:hidden;white-space:nowrap;letter-spacing:-1px;margin:4px 0}
.pos-tagliando .nome{font-size:21px;font-weight:800;line-height:1.05;margin:6px 0 2px;word-break:break-word}
.pos-tagliando .qta{font-size:15px;font-weight:700;margin-bottom:2px}
.pos-tagliando .bc{display:block;width:88%;height:52px;margin:8px auto 4px;fill:#000}
.pos-tagliando .cod{font-size:10px;color:#666;margin-bottom:6px}
.pos-tagliando .cod span{color:#b33}
.pos-tagliando .prova{display:inline-block;background:#000;color:#fff;font-weight:800;font-size:17px;padding:2px 10px;margin:4px 0}
.pos-scontrino{animation:pos-stampa 1s ease-out both}
@keyframes pos-stampa{from{clip-path:inset(0 0 100% 0);transform:translateY(-10px)}to{clip-path:inset(0 0 0 0);transform:none}}
@media (prefers-reduced-motion:reduce){.pos-tagliando,.pos-scontrino{animation:none}}
.pos-scontrino .sim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:900 44px/1 var(--sans,sans-serif);color:rgba(200,30,30,.16);transform:rotate(-24deg);letter-spacing:.1em;pointer-events:none}
.pos-wrap.kiosk .pos-cart{position:static;max-height:100%;height:100%}
.pos-wrap.kiosk .pos-btn{min-height:92px;font-size:16px}
.pos-wrap.kiosk .pos-cats .pill{min-height:42px;padding:8px 16px;font-size:14px}
.pos-wrap.kiosk .pos-pay button{min-height:60px;font-size:17px}
.pos-wrap.kiosk .pos-tot .v{font-size:32px}
.pos-wrap.kiosk .pos-line{padding:8px 10px}
.pos-wrap.kiosk .pos-qty button{min-width:38px;min-height:38px}
.pos-postbtn{font-size:14px}
.pos-serata{font-size:12.5px}
.pos-badge.bad{color:var(--bad);border-color:var(--bad)}
.pos-grid.fixed{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(80px,124px);gap:8px}
.pos-grid.fixed .pos-btn{min-height:0;height:100%}
.pos-btn.fun{background:var(--panel);border-style:dashed;color:var(--txt);text-shadow:none;justify-content:center;align-items:center;text-align:center;font-weight:600}
.pos-btn .opt{opacity:.8;font-weight:400}
.pos-qtybig{margin-bottom:10px;gap:10px}
.pos-qtybig .q{font-size:22px;min-width:36px}
.pos-qtybig button{min-width:44px;min-height:44px;font-size:20px}
.pos-modgrp{margin:8px 0}
.pos-modgrp .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.pos-modopts{display:flex;gap:6px;flex-wrap:wrap}
.pos-modopts button{min-height:44px}
.pos-modopts button .p{font-family:var(--mono);font-size:12px;opacity:.85}
.pos-tip{display:flex;gap:8px;align-items:center;font-size:13px;margin:6px 0;text-transform:none;visibility:hidden}
.ns-sospesa{background:#7a1f1f;color:#fff;text-align:center;padding:8px 12px;font-weight:600;position:sticky;top:0;z-index:50}
.pos-serate{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:10px 0}
.pos-serate .pos-serata-b{min-height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:10px 14px;text-align:left}
.pos-serate .pos-serata-b span{font-size:12.5px;opacity:.8;font-weight:500}
.pos-pinwrap{min-height:100vh;display:flex;align-items:center;justify-content:center}
.pos-gestbtn{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--txt);font-weight:600;font-size:13px}
.pos-lock{position:fixed;inset:0;z-index:5000;background:var(--bg);display:flex;align-items:center;justify-content:center}
.pos-lock .pos-pinwrap{min-height:0;width:100%}
.pos-pin .logo{display:block;max-width:220px;max-height:84px;margin:0 auto 10px}
.pos-pindisp.wait{opacity:.6}
.pos-pindisp.no{animation:pos-shake .4s}
@keyframes pos-shake{0%,100%{transform:none}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.pos-pin .sub2{font-size:12.5px;color:var(--muted);margin:-4px 0 10px}
.pos-pin{width:320px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 20px;text-align:center}
.pos-pin .brand{font-size:20px;font-weight:700}
.pos-pin .sub{color:var(--muted);font-size:13px;margin:2px 0 12px}
.pos-pindisp{font-family:var(--mono);font-size:30px;letter-spacing:.3em;min-height:46px;background:var(--panel2);border-radius:8px;padding:6px;margin-bottom:10px}
.pos-pin .pos-keypad button{min-height:58px;font-size:22px}
.mdl .pos-pinwrap{min-height:0}
.mdl .pos-pin{width:100%;border:none;padding:6px 0 0}
.pos-funmenu button{font-size:15px}
@media(max-width:900px){ .pos-wrap.kiosk{grid-template-columns:1fr;height:auto} body.kiosk{overflow:auto} body.kiosk main#kiosk{height:auto} .pos-wrap.kiosk .pos-cart{height:auto} }
.pos-layed{margin-top:10px}
.pos-cell{border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;font-weight:600;cursor:pointer;padding:4px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);min-height:0}
.pos-cell:not(.full){color:var(--muted);text-shadow:none;background:transparent}
.pos-cell.full{border-style:solid;background:var(--panel2)}
/* --- Cassa: scelta tavolo dalla mappa e conto tavolo --- */
.pos-tavchip{font-size:14px}
.pos-tavchip .muted{color:inherit;opacity:.8;font-family:var(--mono);font-weight:500}
.pos-borsinfo{margin:0 10px 6px}
.sala-wrap{width:100%;display:flex;justify-content:center}
.pos-mappa{position:relative;width:100%;aspect-ratio:16/10;background:#0e0f14 center/100% 100% no-repeat;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pos-mtav{position:absolute;width:36px;height:36px;min-width:0;min-height:0;box-sizing:border-box;border-radius:6px;border:2px solid rgba(255,255,255,.55);background:rgba(14,15,20,.55);color:var(--txt);display:flex;align-items:center;justify-content:center;padding:0;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.45);text-shadow:0 1px 2px rgba(0,0,0,.8)}
.pos-mcap{position:absolute;transform:translate(-50%,0);pointer-events:none;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;background:rgba(0,0,0,.65);color:var(--txt);padding:1px 5px;border-radius:4px;font-weight:600}
.pos-mtav.tondo{border-radius:50%}
.pos-mtav .c{font-size:1em}
.pos-mtav .n{font-size:clamp(8px,1vw,11px);font-weight:500;color:var(--muted);max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pos-mtav .r{font-size:clamp(8px,1vw,11px);font-family:var(--mono);color:var(--accent)}
.pos-mtav.libero{background:rgba(14,15,20,.25);border-color:rgba(255,255,255,.45)}
.pos-mtav.prenotato{border-color:var(--accent);background:rgba(205,163,73,.35)}
.pos-mtav.entrati{border-color:var(--ok);background:rgba(0,150,90,.25)}
.pos-mtav.aperto{border-color:var(--bad);background:rgba(220,40,60,.28)}
.pos-mtav.aperto .r{color:var(--bad)}
.pos-conto-head{display:flex;gap:12px;align-items:baseline;margin-bottom:8px}
.pos-conto-head .tv{font-size:26px;font-weight:800}
.pos-conto-head .nm{font-size:16px;font-weight:600}
.pos-movs{max-height:34vh;overflow:auto;margin:8px 0;border:1px solid var(--line);border-radius:8px}
.pos-mov{display:grid;grid-template-columns:44px 1fr auto;gap:8px;padding:5px 8px;border-bottom:1px solid var(--line);font-size:13px}
.pos-mov .o{color:var(--muted);font-family:var(--mono)}
.pos-mov .i{font-family:var(--mono)}
.pos-mov .i.neg{color:var(--bad)}.pos-mov .i.pos{color:var(--ok)}
.pos-mov.void{opacity:.45;text-decoration:line-through}
.mdl.wide{max-width:760px}
.pos-actions2{padding-top:6px}
.pos-actions2 button{min-height:46px;font-size:14.5px;font-weight:700}
.pos-wrap.kiosk .pos-actions2 button{min-height:54px;font-size:16px}

/* --- Marchio del prodotto e avviso di versione -----------------------------
   Il gestionale e' un prodotto (Nightsheet) installato presso il locale: la
   barra in alto resta del locale, il marchio del prodotto sta in piccolo
   accanto e nel piede. La targhetta "beta" dice che il software e' in
   sviluppo attivo. Il marchio usa currentColor, cosi' segue l'accento del
   tema scelto dal locale. */
.ns-mark{flex:0 0 auto;display:inline-flex;color:var(--accent)}
.ns-mark svg{display:block}
.ns-beta{display:inline-flex;align-items:center;flex:0 0 auto;font-family:var(--mono);
  font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:1px 6px;line-height:1.6}
.ns-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:14px 14px 26px;margin-top:10px;border-top:1px solid var(--line);
  color:var(--muted);font-size:12px}
.ns-foot b{color:var(--txt);font-weight:600}
.ns-foot__note{opacity:.85;flex:1 1 320px;min-width:0;line-height:1.45}
.login-foot{display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:12px;padding-top:12px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--muted)}
.login-foot b{color:var(--txt);font-weight:600}
@media(max-width:760px){
  .ns-foot{padding:12px 10px 22px;font-size:11.5px;gap:7px}
  .ns-foot__note{flex-basis:100%}
}
/* Documento commerciale (RT) in cassa */
.pos-fisc{margin:10px 0 0;padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);font-weight:600}
.pos-fisc.wait{color:var(--muted)}
.pos-fisc.ok{border-color:var(--ok);color:var(--ok)}
.pos-fisc.bad{border-color:var(--bad);color:var(--txt);background:rgba(220,40,60,.12)}
.pos-fiscprob .big{font-size:20px;font-weight:800;margin-bottom:6px}
.pos-battitura{margin-top:10px}
.pos-battitura table{width:100%}
