/* ═══════════════════════════════════════════════════════
 * DH DASHBOARD UI — Design System condiviso (cameriere/cucina/cassa)
 * TOKENS -> PRIMITIVES -> VIEWS. Scoped sotto .dh-dash.
 * Palette nuova (Figma) + var camaleonte mappate (autosufficiente).
 * ═══════════════════════════════════════════════════════ */

/* ---- TOKENS ---- */
.dh-dash{
  /* palette dashboard (Figma) */
  --dh-ciano:#5BF5FF;
  --dh-ciano-soft:#B3F9FF;
  --dh-verde:#CBFF98;
  --dh-verde-soft:#E2FFC8;
  --dh-dash-bg:#CECECE;
  --dh-verde-scuro:#1a7a3d;
  --dh-text:#2d5a3d;
  --dh-muted:#6b7280;
  --dh-white:#ffffff;
  /* geometria */
  --dh-radius:14px;
  --dh-radius-lg:28px;
  --dh-gap:12px;
  --dh-shadow:0 2px 12px rgba(0,0,0,.10);
  /* var CAMALEONTE (fallback; sovrascrivibili per-tenant via PHP) */
  --font:'New Atlas',Georgia,serif;
  --ease:cubic-bezier(.4,0,.2,1);
  --sp-5:24px;
  --fs-base:1rem;
  --carrara:#ffffff;
  --grafite:var(--dh-text);
  --bianco:#ffffff;
}

/* ---- PRIMITIVES: TABS (condivise cucina/cameriere/cassa) ---- */
.dh-dash .dh-k-tabs{display:flex;gap:8px;margin:0 0 18px;padding:6px;background:#BFBFBF;border-radius:var(--dh-radius);}
.dh-dash .dh-k-tab{flex:0 0 auto;background:transparent;color:var(--dh-text);border:0;border-radius:10px;padding:10px 12px;font-family:var(--font);font-size:1.05rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .2s var(--ease);}
.dh-dash .dh-k-tab:hover{background:rgba(255,255,255,.4);}
.dh-dash .dh-k-tab.is-active{background:var(--dh-white);}
.dh-dash .dh-k-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--dh-verde-scuro);color:#fff;font-weight:600;font-size:.6rem;}
.dh-dash .dh-k-tab.is-active .dh-k-badge{color:#fff;}

/* ---- VIEW CUCINA ---- */
.dh-kitchen{font-family:var(--font);}
.dh-k-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;}
.dh-k-row{display:flex;align-items:center;gap:18px;padding:18px 22px;background:var(--dh-white);border:0;border-radius:var(--dh-radius);transition:background .25s var(--ease);}
/* riordino colonne Figma: ora - qty - nome - tavolo - [Pronto] */
.dh-k-rowtime{order:1;color:var(--dh-muted);font-size:1rem;min-width:52px;}
.dh-k-rowqty{order:2;color:var(--dh-text);font-weight:700;min-width:36px;font-size:1.05rem;}
.dh-k-rowname{order:3;flex:1;color:var(--dh-text);font-size:1.15rem;}
.dh-k-rowtav{order:4;color:var(--dh-text);font-size:1.05rem;min-width:90px;text-align:right;}
.dh-k-rowrep{display:none;}
.dh-k-ready,.dh-k-row .dh-k-ready{order:5;background:var(--dh-verde-scuro);color:#fff;border:0;border-radius:22px;padding:12px 30px;font-family:var(--font);font-size:1.05rem;font-weight:500;cursor:pointer;transition:transform .1s var(--ease),opacity .2s;box-shadow:0 2px 8px rgba(26,122,61,.3);}
.dh-k-ready:hover{opacity:.9;}
.dh-k-ready:active{transform:scale(.96);}
.dh-k-ok{order:5;color:var(--dh-verde-scuro);font-weight:600;}
.dh-k-row-pronto{background:var(--dh-verde);}

/* ---- SHELL CUCINA: solo header minimal + tab reparti + lista ---- */
.dh-role-cucina{background:var(--dh-dash-bg);}
.dh-role-cucina .dh-badge-premium,
.dh-role-cucina .dh-dashboard-header h1,
.dh-role-cucina .dh-kpi-grid,
.dh-role-cucina .dh-tabs,
.dh-role-cucina #dh-view-panel,
.dh-role-cucina #dh-dash-alerts,
.dh-role-cucina #dh-dash-reservations,
.dh-role-cucina #dh-dishes-section,
.dh-role-cucina #dh-new-order-btn,
.dh-role-cucina #dh-dash-unread{display:none;}
.dh-role-cucina .dh-dashboard-wrap{max-width:none;padding:0;}
.dh-role-cucina .dh-dashboard-header{background:transparent;border:0;box-shadow:none;padding:18px 22px 0;}
.dh-role-cucina .dh-locale-sub{font-family:var(--font);font-size:1.05rem;color:var(--dh-text);opacity:.85;}
.dh-role-cucina .dh-dash-grid{display:block;}
.dh-role-cucina #dh-dash-orders{background:transparent;border:0;box-shadow:none;padding:0 22px 22px;}
.dh-role-cucina #dh-dash-orders > h2,.dh-role-cucina #dh-dash-orders > .dh-col-title{display:none;}
.dh-role-cucina .dh-btn-primary,.dh-role-cucina .dh-btn-secondary{font-family:var(--font);}

/* ---- CUCINA bg lista (grigio dietro le righe bianche) ---- */
.dh-role-cucina #dh-dash-orders,
.dh-role-cucina .dh-kitchen,
.dh-role-cucina #dh-dash-orders-list{background:#CECECE;}

/* ---- CUCINA bg lista (grigio dietro le righe) ---- */
.dh-role-cucina #dh-dash-orders,
.dh-role-cucina .dh-kitchen,
.dh-role-cucina #dh-dash-orders-list{background:#CECECE;}

/* ---- HEADER condiviso (tutte e 3 le dashboard) ---- */
.dh-dash,.dh-dash .dh-dashboard-wrap{background:#CECECE;}
.dh-dash .dh-dashboard-header{background:#CECECE;border:0;box-shadow:none;padding:28px 32px;display:flex;align-items:flex-start;justify-content:space-between;}
.dh-dash .dh-header-left{display:flex;flex-direction:column;gap:10px;}
.dh-dash .dh-locale-sub{font-family:var(--font);font-size:1rem;color:var(--dh-text);opacity:.9;margin:0;}
.dh-dash #dh-dash-clock{font-variant-numeric:tabular-nums;}
.dh-dash #dh-dash-logout{background:transparent;border:0;box-shadow:none;color:var(--dh-text);font-family:var(--font);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;padding:0;cursor:pointer;align-self:center;}
.dh-dash #dh-dash-logout:hover{opacity:.7;}
.dh-dash .dh-header-right{display:flex;align-items:center;gap:12px;}
.dh-dash #dh-dash-mute{background:#BFBFBF url('../img/sound_on.svg') center/28px no-repeat;border:0;box-shadow:none;width:56px;height:56px;border-radius:14px;font-size:0;cursor:pointer;}
.dh-dash #dh-dash-mute.is-muted{background-image:url('../img/sound_off.svg');}
.dh-dash #dh-dash-order{background:#BFBFBF url('../img/ic_order.svg') center/34px no-repeat;border:0;box-shadow:none;width:56px;height:56px;border-radius:14px;font-size:0;cursor:pointer;position:relative;}

.dh-dash #dh-dash-unread{display:none;}

/* ---- VIEW CAMERIERE (coda FIFO) ---- */
.dh-role-cameriere{background:#CECECE;}
.dh-role-cameriere .dh-kpi-grid,
.dh-role-cameriere .dh-tabs,
.dh-role-cameriere #dh-view-panel,
.dh-role-cameriere #dh-dash-alerts,
.dh-role-cameriere #dh-dash-reservations,
.dh-role-cameriere #dh-dishes-section,
.dh-role-cameriere .dh-badge-premium,
.dh-role-cameriere .dh-dashboard-header h1,
.dh-role-cameriere #dh-new-order-btn{display:none;}
.dh-role-cameriere .dh-dashboard-wrap{max-width:none;margin:0;padding:0;}
.dh-role-cameriere #dh-dash-orders{background:transparent;border:0;box-shadow:none;}
.dh-waiter{font-family:var(--font);display:flex;flex-direction:column;min-height:calc(100vh - 160px);max-width:560px;margin:0 auto;width:100%;}

/* tabs cameriere (riusa .dh-k-tabs, aggiunge il + ) */
.dh-w-tabs{position:relative;}
.dh-w-newbtn{margin-left:auto;width:52px;height:52px;flex:0 0 auto;border-radius:12px;background:#fff;border:0;color:var(--dh-text);font-size:1.8rem;font-weight:400;cursor:pointer;line-height:1;align-self:center;}
.dh-w-newbtn:hover{background:var(--dh-white);box-shadow:var(--dh-shadow);}
.dh-w-title{font-family:var(--font);font-size:2rem;font-weight:400;color:var(--dh-text);margin:18px 0 16px;}

/* coda */
.dh-w-queue{display:flex;flex-direction:column;gap:1px;}
.dh-w-card{border-radius:var(--dh-radius);padding:12px 16px;font-family:var(--font);color:var(--dh-text);}
.dh-w-queue.dh-anim-in .dh-w-card{animation:dhCardIn .35s var(--ease);}
.dh-w-preview{display:flex;align-items:center;justify-content:space-between;}
.dh-w-preview .dh-w-tav{font-size:1.15rem;letter-spacing:.03em;}
.dh-w-preview .dh-w-time{color:var(--dh-muted);}
.dh-w-active{padding-bottom:10px;}
.dh-w-cardhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.dh-w-cardhead .dh-w-tav{font-size:1.25rem;letter-spacing:.03em;}
.dh-w-cardhead .dh-w-time{color:var(--dh-muted);}
.dh-w-items{list-style:none;margin:0;padding:0;}
.dh-w-items li{font-size:1.2rem;padding:6px 0;}
.dh-w-q{font-weight:700;margin-right:10px;}
.dh-w-elimina{display:block;margin-left:auto;margin-top:14px;background:transparent;border:0;color:var(--dh-text);font-family:var(--font);font-size:1.1rem;cursor:pointer;opacity:.8;}
.dh-w-elimina:hover{opacity:1;}

/* colori coda: NUOVE=ciano, PRONTE=verde. attiva piena, anteprime via opacity inline */
.dh-w-nuove .dh-w-card{background:var(--dh-ciano);}
.dh-w-pronte .dh-w-card{background:var(--dh-verde);}

/* azioni in fondo */
.dh-w-actions{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:auto;padding-bottom:24px;}
.dh-w-modlink{background:transparent;border:0;color:var(--dh-text);font-family:var(--font);font-size:1.25rem;cursor:pointer;opacity:.85;}
.dh-w-modlink:hover{opacity:1;}

/* animazione entrata card */
@keyframes dhCardIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

/* ---- BOTTONE CAMALEONTE (Conferma/Servito) ---- */
.dh-dash .btn-camaleonte{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font);font-weight:500;font-size:1.35rem;letter-spacing:.03em;color:var(--dh-text);background:var(--dh-white);border:none;cursor:pointer;white-space:nowrap;height:64px;max-width:64px;border-radius:32px;padding:0;overflow:hidden;transition:max-width .4s var(--ease),padding .4s var(--ease);box-shadow:0 4px 20px rgba(0,0,0,.15);}
.dh-dash .btn-camaleonte.espanso{max-width:520px;padding:0 40px;}
.dh-dash .btn-camaleonte #btn-testo{opacity:0;transition:opacity .2s .25s var(--ease);}
.dh-dash .btn-camaleonte.espanso #btn-testo{opacity:1;}
.dh-dash .btn-camaleonte:active{transform:scale(.97);}

/* ---- CAMERIERE unlock contenitore (via gabbia griglia 3col) ---- */
.dh-role-cameriere .dh-dash-grid{display:block;}
.dh-role-cameriere #dh-dash-orders{width:100%;max-width:none;}
/* click camaleonte: lo span non deve rubare il target */
.dh-dash .btn-camaleonte #btn-testo{pointer-events:none;}

/* ---- CAMERIERE rifiniture ---- */
.dh-role-cameriere #dh-dash-orders > h2{display:none;}
.dh-w-titlerow{display:flex;align-items:center;justify-content:space-between;margin:18px 0 16px;}
.dh-w-titlerow .dh-w-title{margin:0;}
.dh-w-titlerow .dh-w-newbtn{margin:0;width:48px;height:48px;flex:0 0 auto;border-radius:12px;background:#fff;border:0;color:var(--dh-text);font-size:1.6rem;cursor:pointer;line-height:1;}
.dh-w-titlerow .dh-w-newbtn:hover{box-shadow:var(--dh-shadow);}
/* tavolo + ora piu piccoli */
.dh-w-preview .dh-w-tav{font-size:.95rem;}
.dh-w-preview .dh-w-time{font-size:.85rem;}
.dh-w-cardhead .dh-w-tav{font-size:1rem;}
.dh-w-cardhead .dh-w-time{font-size:.85rem;}
/* testo bottoni piu piccolo */
.dh-dash .btn-camaleonte{font-size:1.1rem;}
.dh-w-modlink{font-size:1rem !important;}

/* ---- OVERRIDE FINALI (font/dimensioni da DS) ---- */
.dh-dash .dh-locale-sub{font-size:.85rem;}
.dh-dash .dh-k-tab{font-size:.95rem;}
/* tavolo + tempo card 0.85 */
.dh-w-preview .dh-w-tav,.dh-w-preview .dh-w-time,
.dh-w-cardhead .dh-w-tav,.dh-w-cardhead .dh-w-time,
.dh-k-rowtav,.dh-k-rowtime{font-size:.85rem;}
/* qty peso normale (cameriere + cucina) */
.dh-w-q,.dh-k-rowqty{font-weight:400;}
/* camaleonte 0.95 normale */
.dh-dash .btn-camaleonte{font-size:.95rem;font-weight:400;}
/* titoli non-uppercase, peso normale, allineati alla base del + */
.dh-w-title{text-transform:none;font-weight:400;font-size:1.5rem;}
.dh-w-titlerow{align-items:baseline;}
/* tab centrate (cucina + cameriere) */
.dh-dash .dh-k-tabs{justify-content:center;}
/* pronto: stato 'pronto' stesso box del bottone (no salto posizione/dimensione) */
.dh-k-ok{order:5;display:inline-flex;align-items:center;justify-content:center;padding:12px 30px;border-radius:22px;color:var(--dh-verde-scuro);font-weight:400;background:transparent;}

/* ---- NOTA cucina (opzione C: sotto ogni piatto della comanda) ---- */
.dh-k-rowname{display:flex;flex-direction:column;gap:2px;}
.dh-k-rownote{font-size:.8rem;color:var(--dh-verde-scuro);font-style:italic;}
/* elimina x 0.85 */
.dh-w-elimina{font-size:.85rem;}

/* ---- OVERRIDE v2 (scala font + label + esci) ---- */
/* scala giu: quel che era .85 -> .75, quel che era .95 -> .85 */
.dh-dash .dh-locale-sub{font-size:.75rem;}
.dh-dash .dh-k-tab{font-size:.6rem;}
.dh-w-preview .dh-w-tav,.dh-w-preview .dh-w-time,
.dh-w-cardhead .dh-w-tav,.dh-w-cardhead .dh-w-time,
.dh-k-rowtav,.dh-k-rowtime{font-size:.75rem;}
.dh-dash .btn-camaleonte{font-size:.85rem;}
.dh-w-elimina{font-size:.75rem;}
/* items piatto nella card attiva */
.dh-w-items li{font-size:.95rem;}
/* label titolo: minuscolo, peso normale, base allineata al + (specificita alta) */
.dh-role-cameriere .dh-w-titlerow .dh-w-title{text-transform:none;font-weight:400;}
.dh-role-cameriere .dh-w-titlerow{align-items:baseline;}
/* ESCI: stesso stile di locale (nome+ora), sotto, a sinistra */
.dh-dash .dh-header-left{position:relative;}
.dh-dash #dh-dash-logout{font-size:.75rem;text-transform:none;letter-spacing:0;font-weight:400;opacity:.9;}

/* ---- OVERRIDE v3 (esci sinistra + tab full) ---- */
/* ESCI sotto nome+ora, a sinistra: sposto il logout nella colonna sinistra via order/float */
.dh-dash .dh-dashboard-header{position:relative;}
.dh-dash #dh-dash-logout{position:absolute;left:32px;top:52px;}
.dh-dash .dh-header-right{align-items:flex-start;}
/* tab si adattano al contenitore (riempiono la larghezza) */
.dh-dash .dh-k-tab{flex:1 1 0;justify-content:center;}
.dh-dash .dh-w-newbtn{flex:0 0 auto;}

/* ---- OVERRIDE v4 (verde uniforme + riga cucina font uguale) ---- */
/* tutti i testi verde principale (tranne bianchi: badge) */
.dh-role-cucina,.dh-role-cameriere,
.dh-role-cucina .dh-k-row,.dh-role-cucina .dh-k-tab,
.dh-role-cameriere .dh-w-card,.dh-role-cameriere .dh-k-tab,
.dh-k-rowtime,.dh-k-rowqty,.dh-k-rowname,.dh-k-rowtav,
.dh-w-tav,.dh-w-time,.dh-w-q,.dh-w-title,.dh-w-elimina,.dh-w-modlink{color:var(--dh-text);}
/* riga cucina: TUTTI i font stessa dimensione */
.dh-k-rowtime,.dh-k-rowqty,.dh-k-rowname,.dh-k-rowtav,
.dh-role-cucina .dh-k-ready,.dh-role-cucina .dh-k-ok{font-size:1rem;}
/* nota resta piu piccola (sotto il nome) */
.dh-k-rownote{font-size:.8rem;}

/* ---- OVERRIDE v5 (header pulito + title verde/base) ---- */
.dh-dash .dh-dashboard-header{background:#CECECE;border:0;box-shadow:none;padding:20px 20px 0;display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:0;}
/* batte .dh-dash-col h2 (uppercase/grigio/bold) */
.dh-role-cameriere .dh-dash-col .dh-w-titlerow .dh-w-title{text-transform:none;letter-spacing:0;color:var(--dh-text);font-weight:400;font-size:1.2rem;margin:0;}
.dh-role-cameriere .dh-w-titlerow{display:flex;align-items:flex-end;justify-content:space-between;}
/* forzo verde su tutti i testi lista/card (specificita ruolo) */
.dh-role-cucina .dh-kitchen *,.dh-role-cameriere .dh-waiter *{color:var(--dh-text);}
/* eccezioni bianche: badge cerchio + dentro camaleonte resta verde */
.dh-role-cucina .dh-k-badge,.dh-role-cameriere .dh-k-badge{color:#fff;}
.dh-role-cucina .dh-k-ready{color:#fff;}

/* ---- OVERRIDE v6 (esci + modifica + badge chiaro) ---- */
.dh-dash .dh-header-right #dh-dash-logout{color:var(--dh-text);background:transparent;border:0;box-shadow:none;margin:0;padding:0;left:24px;text-transform:none;letter-spacing:0;font-weight:400;font-size:.75rem;}
.dh-dash .dh-w-modlink{font-size:.85rem;color:var(--dh-text);}
/* badge tab: verde chiaro sfondo, numero verde testo */
.dh-dash .dh-k-badge{background:rgba(45,90,61,.1);color:var(--dh-text);}
.dh-dash .dh-k-tab.is-active .dh-k-badge{background:rgba(45,90,61,.1);color:var(--dh-text);}

/* ---- OVERRIDE v7 (tap-highlight + gap actions) ---- */
.dh-dash button{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;outline:none;}
.dh-dash button:focus{outline:none;}
.dh-w-actions{gap:24px;}


/* ---- ORDER DRAWER ---- */
.dh-dash .dh-order-drawer{position:fixed;inset:0;z-index:9999;visibility:hidden;}
.dh-dash .dh-order-drawer.is-open{visibility:visible;}
.dh-dash .dh-order-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4);opacity:0;transition:opacity .3s ease;}
.dh-dash .dh-order-drawer.is-open .dh-order-backdrop{opacity:1;}
.dh-dash .dh-order-panel{position:absolute;top:0;right:0;height:100%;width:92%;max-width:480px;background:var(--dh-dash-bg);overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(100%);transition:transform .3s ease;padding:20px;box-sizing:border-box;}
.dh-dash .dh-order-drawer.is-open .dh-order-panel{transform:translateX(0);}
.dh-dash .dh-order-head{display:flex;align-items:center;gap:12px;color:var(--dh-text);font-size:1.8rem;font-weight:400;margin:4px 0 18px;}
.dh-dash .dh-order-empty{color:var(--dh-text);font-size:1rem;opacity:.6;padding:20px 4px;}
.dh-dash .dh-ord-card{background:#fff;border-radius:var(--dh-radius);margin-bottom:14px;overflow:hidden;}
.dh-dash .dh-ord-card.is-served{background:var(--dh-verde);}
.dh-dash .dh-ord-cardhead{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;cursor:pointer;}
.dh-dash .dh-ord-tav{color:var(--dh-text);font-size:1rem;text-transform:uppercase;letter-spacing:.02em;}
.dh-dash .dh-ord-count{color:var(--dh-text);font-size:.95rem;font-style:italic;}
.dh-dash .dh-ord-cardbody{display:none;padding:0 20px 18px;}
.dh-dash .dh-ord-card.is-open .dh-ord-cardbody{display:block;}
.dh-dash .dh-ord-crow{display:flex;align-items:center;justify-content:space-between;margin:6px 0 12px;}
.dh-dash .dh-ord-badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--dh-text);background:#BFBFBF;}
.dh-dash .dh-ord-badge.is-ricevuta{background:#BFBFBF;}
.dh-dash .dh-ord-badge.is-cucina{background:var(--dh-ciano);}
.dh-dash .dh-ord-badge.is-preparazione{background:#D9B8FF;}
.dh-dash .dh-ord-badge.is-pronta{background:var(--dh-verde);}
.dh-dash .dh-ord-badge.is-servita{background:var(--dh-verde);}
.dh-dash .dh-ord-time{color:var(--dh-text);font-size:.95rem;}
.dh-dash .dh-ord-item{display:flex;align-items:baseline;gap:14px;margin:8px 0;color:var(--dh-text);font-size:1rem;}
.dh-dash .dh-ord-qty{font-weight:400;min-width:26px;}
.dh-dash .dh-ord-name{flex:1;}
.dh-dash .dh-ord-price{white-space:nowrap;}
.dh-dash .dh-ord-sconto{color:var(--dh-verde-scuro);font-style:italic;}
.dh-dash .dh-ord-tot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;color:var(--dh-text);font-size:1rem;}
.dh-dash .dh-ord-actions{display:flex;gap:10px;}
.dh-dash .dh-ord-actions button{border:0;background:rgba(45,90,61,.1);color:var(--dh-text);font-family:inherit;font-size:.85rem;padding:9px 16px;border-radius:8px;cursor:pointer;}
.dh-dash .dh-ord-sep{border:0;border-top:1px solid rgba(45,90,61,.15);margin:16px 0;}
.dh-dash .dh-ord-foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;}
.dh-dash .dh-ord-conto{color:var(--dh-text);font-size:1.3rem;}
.dh-dash .dh-ord-pay{border:0;background:var(--dh-verde-scuro);color:#fff;font-family:inherit;font-size:1rem;padding:14px 32px;border-radius:28px;cursor:pointer;}


/* ---- ORDER DRAWER v2 ---- */
.dh-dash .dh-order-panel{font-family:var(--font);}
.dh-dash .dh-ord-card{margin-bottom:1px;}
.dh-dash .dh-ord-card.is-served .dh-ord-badge{background:#fff;}
.dh-dash .dh-ord-actions button{width:44px;height:44px;padding:0;font-size:0;position:relative;display:inline-flex;}
.dh-dash .dh-ord-actions button::before{content:'';position:absolute;inset:0;margin:auto;width:22px;height:22px;background:var(--dh-verde-scuro);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:22px;mask-size:22px;}
.dh-dash .dh-ord-actions button[data-act="edit_order"]::before{-webkit-mask-image:url('../img/ic_edit.svg');mask-image:url('../img/ic_edit.svg');}
.dh-dash .dh-ord-actions button[data-act="cancel_order"]::before{-webkit-mask-image:url('../img/ic_delete.svg');mask-image:url('../img/ic_delete.svg');}
.dh-dash .dh-order-head{position:relative;}
.dh-dash .dh-order-close{position:absolute;top:0;right:0;width:44px;height:44px;border:0;background:transparent;color:var(--dh-text);font-size:1.8rem;line-height:1;cursor:pointer;font-family:var(--font);}


/* ---- ORDER DRAWER v3 (dimensioni allineate cameriere) ---- */
.dh-dash .dh-order-head{font-size:1.5rem;font-weight:400;}
.dh-dash .dh-ord-tav{font-size:.75rem;}
.dh-dash .dh-ord-count{font-size:.75rem;}
.dh-dash .dh-ord-time{font-size:.85rem;}
.dh-dash .dh-ord-badge{font-size:.6rem;}
.dh-dash .dh-ord-conto{font-size:1rem;}
.dh-dash .dh-ord-pay{font-size:.85rem;font-weight:400;}


/* ---- ORDER DRAWER v4 (100% + glass) ---- */
.dh-dash .dh-order-panel{width:100%;max-width:none;background:rgba(230,230,230,.55);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);}
.dh-dash .dh-order-backdrop{background:rgba(0,0,0,.12);}

/* ---- ORDER DRAWER v5 (font piatto) ---- */
.dh-dash .dh-ord-item{font-size:.95rem;}

/* ---- ORDER DRAWER v6 (scambio tot/conto) ---- */
.dh-dash .dh-ord-tot{font-size:.85rem;}

/* ---- ORDER DRAWER v7 (gap qty-nome) ---- */
.dh-dash .dh-ord-item{gap:8px;}
.dh-dash .dh-ord-qty{min-width:0;}


/* ---- ORDER TIMER ---- */
.dh-dash .dh-ord-tavwrap{display:flex;flex-direction:column;gap:2px;}
.dh-dash .dh-ord-occ{font-size:.75rem;color:var(--dh-text);opacity:.6;font-variant-numeric:tabular-nums;}
.dh-dash .dh-ord-time{font-variant-numeric:tabular-nums;}
.dh-dash .dh-k-rowtime{font-variant-numeric:tabular-nums;}

/* ---- ORDER TIMER v2 (font .65) ---- */
.dh-dash .dh-ord-occ{font-size:.65rem;}
.dh-dash .dh-ord-time{font-size:.65rem;}

/* ---- ORDER DRAWER v8 (font piatto .85) ---- */
.dh-dash .dh-ord-item{font-size:.85rem;}

/* ---- MOTORE #7: timer ritardo ---- */
.dh-dash .dh-timer-late{color:#FF7A6B;font-weight:600;}


/* ---- MOTORE #7 SWITCH ---- */
.dh-dash .dh-k-switch{display:flex;gap:4px;background:#BFBFBF;border-radius:12px;padding:4px;width:fit-content;margin:0 auto 14px;}
.dh-dash .dh-k-sw{border:0;background:transparent;color:var(--dh-text);font-family:var(--font);font-size:.9rem;font-weight:500;padding:8px 22px;border-radius:9px;cursor:pointer;}
.dh-dash .dh-k-sw.is-on{background:#fff;}
.dh-dash .dh-k-sw:disabled{opacity:.4;cursor:not-allowed;}
.dh-dash .dh-k-row-wait{opacity:.5;}
.dh-dash .dh-k-wait{order:5;color:var(--dh-text);font-size:.85rem;font-style:italic;opacity:.8;font-variant-numeric:tabular-nums;}


/* ---- CUCINA prep+del ---- */
.dh-dash .dh-k-prep{background:transparent;color:var(--dh-verde-scuro);border:1px solid var(--dh-verde-scuro);box-shadow:none;}
.dh-dash .dh-k-del{order:6;width:44px;height:44px;flex:0 0 auto;border:0;border-radius:50%;background:rgba(45,90,61,.1);cursor:pointer;position:relative;margin-left:10px;}
.dh-dash .dh-k-del::before{content:'';position:absolute;inset:0;margin:auto;width:20px;height:20px;background:var(--dh-verde-scuro);-webkit-mask:url('../img/ic_delete.svg') center/20px no-repeat;mask:url('../img/ic_delete.svg') center/20px no-repeat;}
.dh-dash .dh-k-del:active{transform:scale(.92);}


/* ---- NOTIF SHEET (cameriere) ---- */
.dh-dash .dh-notif-sheet{position:fixed;left:0;right:0;bottom:0;z-index:9998;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border-radius:20px 20px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.12);transform:translateY(calc(100% - 64px));transition:transform .32s var(--ease);font-family:var(--font);}
.dh-dash .dh-notif-sheet.is-open{transform:translateY(0);}
.dh-dash .dh-notif-handle{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;cursor:pointer;}
.dh-dash .dh-notif-title{color:var(--dh-text);font-size:1.5rem;font-weight:400;}
.dh-dash .dh-notif-badge{background:#E8632A;color:#fff;min-width:30px;height:30px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;padding:0 8px;}
.dh-dash .dh-notif-body{max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px 20px;}
.dh-dash .dh-notif-empty{color:var(--dh-text);opacity:.6;padding:16px 8px;}
.dh-dash .dh-notif-row{display:flex;align-items:center;gap:14px;background:#fff;border-left:6px solid #BFBFBF;border-radius:0 10px 10px 0;padding:16px 18px;margin-bottom:1px;}
.dh-dash .dh-notif-main{flex:1;}
.dh-dash .dh-notif-top{display:flex;justify-content:space-between;align-items:baseline;}
.dh-dash .dh-notif-tav{color:var(--dh-text);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;}
.dh-dash .dh-notif-time{color:var(--dh-text);font-size:.85rem;}
.dh-dash .dh-notif-type{color:var(--dh-text);font-size:1.4rem;font-weight:400;margin-top:2px;}
.dh-dash .dh-notif-note{color:var(--dh-text);font-size:.8rem;opacity:.7;font-style:italic;margin-top:4px;}
.dh-dash .dh-notif-visto{border:1px solid var(--dh-verde-scuro);background:transparent;color:var(--dh-text);font-family:var(--font);font-size:.95rem;padding:10px 22px;border-radius:10px;cursor:pointer;flex:0 0 auto;}


/* ---- NOTIF SHEET v2 ---- */
.dh-dash .dh-notif-sheet{left:0;right:0;margin:0 auto;max-width:480px;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -4px 24px rgba(0,0,0,.18);}
.dh-dash .dh-notif-backdrop{position:fixed;inset:0;z-index:9997;background:rgba(0,0,0,.12);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);opacity:0;visibility:hidden;transition:opacity .3s ease;}
.dh-dash .dh-notif-backdrop.is-open{opacity:1;visibility:visible;}
.dh-dash .dh-notif-visto{font-size:.75rem;padding:6px 14px;border-radius:8px;}
.dh-dash .dh-notif-type{font-size:.85rem;text-transform:none;margin-top:14px;font-weight:400;}


/* ---- NOTIF SHEET v3 ---- */
.dh-dash .dh-notif-sheet{right:auto;width:min(480px,calc(100% - 32px));left:50%;margin:0;transform:translateX(-50%) translateY(calc(100% - 64px));}
.dh-dash .dh-notif-sheet.is-open{transform:translateX(-50%) translateY(0);}
.dh-dash .dh-notif-title{font-size:.85rem;}
.dh-dash .dh-notif-badge{font-size:.85rem;min-width:24px;height:24px;border-radius:12px;}
.dh-dash .dh-notif-row{align-items:center;}
.dh-dash .dh-notif-type{margin-top:0;}
.dh-dash .dh-notif-top{margin-bottom:10px;}


/* ---- NOTIF SHEET v4 ---- */
.dh-dash .dh-notif-row{border-bottom:1px solid #ededed;}
.dh-dash .dh-notif-sheet{overscroll-behavior:contain;touch-action:none;}
.dh-dash .dh-notif-body{overscroll-behavior:contain;}


/* ---- NOTIF SHEET v5 ---- */
.dh-dash .dh-notif-sheet{right:auto;width:min(480px,calc(100% - 32px));left:50%;margin:0;transform:translateX(-50%) translateY(calc(100% - 64px));}
.dh-dash .dh-notif-sheet.is-open{transform:translateX(-50%) translateY(0);}
.dh-dash .dh-notif-title{font-size:.95rem;}
.dh-dash .dh-notif-row{display:block;border-left:0;border-radius:0;padding:16px 8px;border-bottom:1px solid #ededed;}
.dh-dash .dh-notif-main{display:block;}
.dh-dash .dh-notif-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;}
.dh-dash .dh-notif-btm{display:flex;justify-content:space-between;align-items:center;}
.dh-dash .dh-notif-type{display:inline-flex;align-items:center;gap:10px;font-size:.85rem;text-transform:none;margin:0;}
.dh-dash .dh-notif-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto;display:inline-block;}
.dh-dash .dh-notif-visto{font-size:.75rem;padding:6px 14px;border-radius:8px;flex:0 0 auto;}
.dh-dash .dh-notif-note{margin-top:6px;}


/* ---- CAMERIERE no-scroll fix ---- */





/* ---- CAMERIERE azioni sopra notifiche ---- */



/* ---- FIX esci colore + camaleonte 1rem ---- */
#dh-dashboard-root.dh-dash #dh-dash-logout{color:var(--dh-text);background:transparent;}
#dh-dashboard-root.dh-dash .btn-camaleonte{font-size:1rem;}


/* ---- CAMERIERE flex chain fix ---- */




/* ---- CAMERIERE flex chain fix2 ---- */




/* ---- CAMERIERE fix3 list+actions ---- */




/* ---- ESCI fix flusso ---- */
#dh-dashboard-root.dh-dash #dh-dash-logout{position:absolute;left:24px;bottom:14px;top:auto;right:auto;margin:0;color:var(--dh-text);opacity:1;}

/* ---- CAMERIERE azioni: flusso + 128px ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-actions{margin-top:48px;padding-bottom:64px;margin-bottom:18px;}

/* ---- CAMERIERE font tuning ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-items li{font-size:.85rem;}
#dh-dashboard-root.dh-role-cameriere .btn-camaleonte{font-size:.95rem;}
#dh-dashboard-root.dh-role-cameriere .dh-w-modlink{font-size:.95rem;}


/* ---- CAMERIERE scroll-zone ---- */
#dh-dashboard-root.dh-role-cameriere .dh-dashboard-wrap{height:calc(100dvh - 64px);overflow:hidden;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cameriere .dh-dash-grid{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cameriere #dh-dash-orders{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cameriere #dh-dash-orders-list{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cameriere .dh-waiter{flex:1;min-height:0;height:auto;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cameriere .dh-w-tabs{flex:0 0 auto;}
#dh-dashboard-root.dh-role-cameriere .dh-w-titlerow{flex:0 0 auto;}
#dh-dashboard-root.dh-role-cameriere .dh-w-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;}


/* ---- CAMERIERE hide scrollbar ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-scroll{scrollbar-width:none;-ms-overflow-style:none;}
#dh-dashboard-root.dh-role-cameriere .dh-w-scroll::-webkit-scrollbar{width:0;height:0;display:none;}


/* ---- CAMERIERE fade-top ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-scroll{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24px);mask-image:linear-gradient(to bottom,transparent 0,#000 24px);}


/* ---- CAMERIERE actions overlay ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-actions{position:sticky;bottom:50px;margin-top:24px;margin-bottom:0;padding-bottom:0;z-index:5;}


/* ---- CAMERIERE root fix padding ---- */
#dh-dashboard-root.dh-role-cameriere{min-height:0;height:100dvh;overflow:hidden;}


/* ---- CAMERIERE scroll bottom space ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-queue{padding-bottom:130px;}


/* ---- CAMERIERE scroll top space ---- */
#dh-dashboard-root.dh-role-cameriere .dh-w-queue{padding-top:20px;}


/* ---- NOTIF visto pieno ---- */
#dh-dashboard-root.dh-dash .dh-notif-visto{border:0;background:rgba(45,90,61,.1);color:var(--dh-text);}


/* ---- CUCINA scroll-zone ---- */
#dh-dashboard-root.dh-role-cucina{min-height:0;height:94dvh;padding:0 16px;overflow:hidden;}
#dh-dashboard-root.dh-role-cucina .dh-dashboard-wrap{height:100%;overflow:hidden;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cucina .dh-dash-grid{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cucina #dh-dash-orders{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cucina #dh-dash-orders-list{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cucina .dh-kitchen{flex:1;min-height:0;display:flex;flex-direction:column;}
#dh-dashboard-root.dh-role-cucina .dh-k-switch{flex:0 0 auto;}
#dh-dashboard-root.dh-role-cucina .dh-k-tabs{flex:0 0 auto;}
#dh-dashboard-root.dh-role-cucina .dh-k-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
#dh-dashboard-root.dh-role-cucina .dh-k-list::-webkit-scrollbar{width:0;height:0;display:none;}


/* ---- CUCINA riga no-wrap ---- */
#dh-dashboard-root.dh-role-cucina .dh-k-row{flex-wrap:nowrap;}
#dh-dashboard-root.dh-role-cucina .dh-k-ready,#dh-dashboard-root.dh-role-cucina .dh-k-del,#dh-dashboard-root.dh-role-cucina .dh-k-wait,#dh-dashboard-root.dh-role-cucina .dh-k-ok{flex:0 0 auto;white-space:nowrap;}
#dh-dashboard-root.dh-role-cucina .dh-k-rowname{min-width:0;}


/* ---- CUCINA full width ---- */
#dh-dashboard-root.dh-role-cucina .dh-dashboard-wrap{align-items:stretch;}
#dh-dashboard-root.dh-role-cucina .dh-dash-grid{width:100%;}
#dh-dashboard-root.dh-role-cucina #dh-dash-orders{width:100%;box-sizing:border-box;}
#dh-dashboard-root.dh-role-cucina .dh-kitchen{width:100%;}
#dh-dashboard-root.dh-role-cucina #dh-dash-orders-list{width:100%;}
/* ---- CUCINA gruppo aggregato ---- */
.dh-dash .dh-k-group{list-style:none;background:var(--dh-white);border-radius:var(--dh-radius);padding:14px 22px;display:flex;flex-direction:column;gap:8px;}
.dh-dash .dh-k-ghead{display:flex;align-items:center;gap:18px;}
.dh-dash .dh-k-ghead .dh-k-rowname{flex:1;min-width:0;}
.dh-dash .dh-k-ghead .dh-k-ready{flex:0 0 auto;white-space:nowrap;}
.dh-dash .dh-k-gsub{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;border-top:1px solid #ededed;padding-top:8px;}
.dh-dash .dh-k-gsubrow{display:flex;align-items:center;gap:14px;padding:6px 10px;background:rgba(0,0,0,.03);border-radius:8px;}
.dh-dash .dh-k-gsubrow .dh-k-rowtav,.dh-dash .dh-k-gsubrow .dh-k-rowtime,.dh-dash .dh-k-gsubrow .dh-k-rowqty{font-size:.8rem;}
.dh-dash .dh-k-gsubrow .dh-k-rowtav{flex:1;min-width:0;}
.dh-dash .dh-k-gsubrow .dh-k-del{flex:0 0 auto;}
#dh-dashboard-root.dh-role-cucina .dh-k-group{width:100%;box-sizing:border-box;}
/* ---- CUCINA riga in preparazione (viola) ---- */
.dh-dash .dh-k-row-prep{background:#D9B8FF;}
/* ============ CASSA — veste grafica uniforme ============ */
#dh-dashboard-root.dh-role-cassa .dh-tabs{display:flex;gap:8px;flex-wrap:wrap;background:#BFBFBF;padding:6px;border-radius:var(--dh-radius);margin-bottom:16px;}
#dh-dashboard-root.dh-role-cassa .dh-tab{background:transparent;border:0;border-radius:10px;padding:10px 18px;font-family:var(--font);font-size:1rem;color:var(--dh-text);cursor:pointer;transition:background .2s var(--ease);}
#dh-dashboard-root.dh-role-cassa .dh-tab.active{background:var(--dh-white);font-weight:500;box-shadow:0 2px 6px rgba(0,0,0,.12);}
#dh-dashboard-root.dh-role-cassa .dh-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px;}
#dh-dashboard-root.dh-role-cassa .kpi-card,#dh-dashboard-root.dh-role-cassa .dh-kpi{background:var(--dh-white);border-radius:var(--dh-radius);padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.06);}
#dh-dashboard-root.dh-role-cassa .kpi-value{color:var(--dh-text);font-family:var(--font);}
#dh-dashboard-root.dh-role-cassa .kpi-label{color:var(--dh-muted);font-size:.7rem;letter-spacing:1px;}
#dh-dashboard-root.dh-role-cassa .dh-dash-col{background:var(--dh-white);border-radius:var(--dh-radius);padding:18px;box-shadow:0 2px 10px rgba(0,0,0,.06);border:0;}
#dh-dashboard-root.dh-role-cassa .dh-dash-col h2{font-family:var(--font);font-size:1.15rem;text-transform:none;letter-spacing:0;color:var(--dh-text);font-weight:500;}
#dh-dashboard-root.dh-role-cassa .dh-new-order-btn{background:var(--dh-text);color:var(--dh-white);border-radius:12px;font-family:var(--font);font-weight:500;transition:opacity .2s;}
#dh-dashboard-root.dh-role-cassa .dh-new-order-btn:hover{opacity:.9;background:var(--dh-text);}
#dh-dashboard-root.dh-role-cassa .dh-newbk-submit{background:var(--dh-text);color:var(--dh-white);border:0;border-radius:10px;padding:12px;font-family:var(--font);font-weight:500;cursor:pointer;width:100%;}
#dh-dashboard-root.dh-role-cassa .dh-newbk-form input{border:1px solid #ddd;border-radius:8px;padding:10px;font-family:var(--font);}
#dh-dashboard-root.dh-role-cassa .dh-newbk summary{color:var(--dh-text);font-family:var(--font);cursor:pointer;padding:8px 0;}
#dh-dashboard-root.dh-role-cassa .dh-role-badge{display:none;}
#dh-dashboard-root.dh-role-cassa .dh-stats-soon{background:var(--dh-white);border-radius:var(--dh-radius);padding:60px 20px;text-align:center;box-shadow:0 2px 10px rgba(0,0,0,.06);}
#dh-dashboard-root.dh-role-cassa .dh-stats-icon{font-size:3rem;display:block;margin-bottom:12px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-soon h2{font-family:var(--font);color:var(--dh-text);font-weight:500;margin:0 0 8px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-soon p{color:var(--dh-muted);font-family:var(--font);margin:0;}
/* ---- CASSA: colonne senza contenitore (card libere sullo sfondo) ---- */
#dh-dashboard-root.dh-role-cassa .dh-dash-col{background:transparent;box-shadow:none;padding:0;border:0;}
#dh-dashboard-root.dh-role-cassa .dh-dash-col h2{font-size:1.6rem;}
#dh-dashboard-root.dh-role-cassa #dh-dash-alerts>h2{display:flex;align-items:flex-end;min-height:48px;margin:0 0 16px;line-height:1;}
/* ---- CASSA: header minimal come cucina ---- */
#dh-dashboard-root.dh-role-cassa .dh-badge-premium,
#dh-dashboard-root.dh-role-cassa .dh-dashboard-header h1{display:none;}
#dh-dashboard-root.dh-role-cassa .dh-dashboard-header{background:transparent;border:0;box-shadow:none;padding:18px 22px 8px;}
#dh-dashboard-root.dh-role-cassa .dh-locale-sub{font-family:var(--font);font-size:1.05rem;color:var(--dh-text);opacity:.85;}
/* ---- CASSA: header minimal come cucina ---- */
#dh-dashboard-root.dh-role-cassa .dh-badge-premium,
#dh-dashboard-root.dh-role-cassa .dh-dashboard-header h1{display:none;}
#dh-dashboard-root.dh-role-cassa .dh-dashboard-header{background:transparent;border:0;box-shadow:none;padding:18px 22px 8px;}
#dh-dashboard-root.dh-role-cassa .dh-locale-sub{font-family:var(--font);font-size:1.05rem;color:var(--dh-text);opacity:.85;}
/* ---- CASSA: tab identiche a cucina (centrate, no icone) ---- */
#dh-dashboard-root.dh-role-cassa .dh-tabs{justify-content:center;}
#dh-dashboard-root.dh-role-cassa .dh-tab{flex:0 0 auto;padding:12px 22px;font-size:1.05rem;font-weight:500;}
/* ---- CASSA: titlerow con + (stile cameriere) ---- */
#dh-dashboard-root.dh-role-cassa .dh-w-titlerow{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;}
#dh-dashboard-root.dh-role-cassa .dh-w-title{font-family:var(--font);font-size:1.6rem;font-weight:500;color:var(--dh-text);margin:0;text-transform:none;letter-spacing:0;}
#dh-dashboard-root.dh-role-cassa .dh-w-newbtn,#dh-dashboard-root.dh-role-cassa #dh-new-order-btn.is-visible{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 auto;border-radius:12px;background:var(--dh-white);border:0;color:var(--dh-text);font-size:1.8rem;line-height:1;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.08);}
#dh-dashboard-root.dh-role-cassa .dh-newbk summary{list-style:none;cursor:pointer;}
#dh-dashboard-root.dh-role-cassa .dh-newbk summary::-webkit-details-marker{display:none;}
/* ---- CASSA: fix titlerow base + prenotazioni no-box ---- */
#dh-dashboard-root.dh-role-cassa .dh-w-titlerow{align-items:flex-end;min-height:48px;margin:0 0 16px;}
#dh-dashboard-root.dh-role-cassa .dh-w-titlerow .dh-w-title{line-height:1;padding:0;}
#dh-dashboard-root.dh-role-cassa .dh-newbk{border:0;background:transparent;border-radius:0;overflow:visible;margin:0;}
#dh-dashboard-root.dh-role-cassa .dh-newbk[open]>summary{border-bottom:0;}
#dh-dashboard-root.dh-role-cassa .dh-newbk>summary{padding:0;font-weight:400;}
/* ============ CASSA — Calendario nel Design System ============ */
#dh-dashboard-root.dh-role-cassa .dh-cal-page,#dh-dashboard-root.dh-role-cassa .dh-calendar-layout{background:transparent;color:var(--dh-text);font-family:var(--font);}
#dh-dashboard-root.dh-role-cassa .dh-cal-title,#dh-dashboard-root.dh-role-cassa .dh-calendar-current,#dh-dashboard-root.dh-role-cassa .dh-cal-eyebrow{color:var(--dh-text);font-family:var(--font);}
#dh-dashboard-root.dh-role-cassa .dh-calendar-weekdays span{color:var(--dh-muted);font-family:var(--font);}
#dh-dashboard-root.dh-role-cassa .dh-calendar-grid{gap:1px;}
#dh-dashboard-root.dh-role-cassa .dh-day-cell{background:var(--dh-white);border:0;border-left:0;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);}
#dh-dashboard-root.dh-role-cassa .dh-day-cell:hover{border-color:transparent;box-shadow:var(--dh-shadow);transform:translateY(-2px);}
#dh-dashboard-root.dh-role-cassa .dh-day-cell.day-low,#dh-dashboard-root.dh-role-cassa .dh-day-cell.day-medium,#dh-dashboard-root.dh-role-cassa .dh-day-cell.day-high{background:var(--dh-verde);border-left:0;}
#dh-dashboard-root.dh-role-cassa .dh-day-cell.day-closed{background:#e5e5e5;border-left:0;opacity:.6;}
#dh-dashboard-root.dh-role-cassa .dh-day-cell.day-empty-slot{background:transparent;box-shadow:none;}
#dh-dashboard-root.dh-role-cassa .dh-day-cell.is-today{border:2px solid var(--dh-text);border-left:2px solid var(--dh-text);}
#dh-dashboard-root.dh-role-cassa .dh-day-num,#dh-dashboard-root.dh-role-cassa .dh-day-stats strong{color:var(--dh-text);}
#dh-dashboard-root.dh-role-cassa .dh-day-stats{color:var(--dh-muted);}
#dh-dashboard-root.dh-role-cassa .dh-cal-btn,#dh-dashboard-root.dh-role-cassa .dh-cal-btn-primary{background:var(--dh-white);color:var(--dh-text);border:0;border-radius:10px;font-family:var(--font);box-shadow:0 1px 4px rgba(0,0,0,.08);}
#dh-dashboard-root.dh-role-cassa .dh-cal-btn-primary{background:var(--dh-text);color:var(--dh-white);}
/* ---- CASSA Calendario: fix titolo/legenda/fondo/selezione ---- */
#dh-dashboard-root.dh-role-cassa .dh-cal-eyebrow{display:none;}
#dh-dashboard-root.dh-role-cassa .dh-cal-title{font-size:1.6rem;font-weight:500;margin:0 0 16px;}
#dh-dashboard-root.dh-role-cassa .dh-calendar-legend{display:none;}
#dh-dashboard-root.dh-role-cassa .dh-calendar-grid-wrap,#dh-dashboard-root.dh-role-cassa .dh-cal-page{background:transparent;box-shadow:none;border:0;}
#dh-dashboard-root.dh-role-cassa .dh-day-cell.is-selected{background:var(--dh-text);border:0;}
#dh-dashboard-root.dh-role-cassa .dh-day-cell.is-selected .dh-day-num,#dh-dashboard-root.dh-role-cassa .dh-day-cell.is-selected .dh-day-stats,#dh-dashboard-root.dh-role-cassa .dh-day-cell.is-selected .dh-day-stats strong,#dh-dashboard-root.dh-role-cassa .dh-day-cell.is-selected .dh-day-rate{color:var(--dh-white);}
/* ============ CASSA — Statistiche ============ */
#dh-dashboard-root.dh-role-cassa .dh-stats-wrap{font-family:var(--font);color:var(--dh-text);}
#dh-dashboard-root.dh-role-cassa .dh-stats-periods{display:flex;gap:8px;margin:0 0 18px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-per{background:var(--dh-white);border:0;border-radius:10px;padding:8px 18px;font-family:var(--font);font-size:.95rem;color:var(--dh-text);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.06);}
#dh-dashboard-root.dh-role-cassa .dh-stats-per.is-active{background:var(--dh-text);color:var(--dh-white);}
#dh-dashboard-root.dh-role-cassa .dh-stats-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 20px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-card{background:transparent;padding:18px 0;box-shadow:none;display:flex;flex-direction:column;gap:6px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-val{font-size:1.8rem;font-weight:500;color:var(--dh-text);}
#dh-dashboard-root.dh-role-cassa .dh-stats-lbl{font-size:.8rem;color:var(--dh-muted);letter-spacing:.5px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media (max-width:820px){#dh-dashboard-root.dh-role-cassa .dh-stats-charts{grid-template-columns:1fr;}}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox{background:transparent;border-radius:var(--dh-radius);padding:18px 0;box-shadow:none;}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox h3{font-family:var(--font);font-size:1.1rem;font-weight:500;color:var(--dh-text);margin:0 0 12px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-loading{padding:40px;text-align:center;color:var(--dh-muted);}
/* ---- CASSA Stats: card Maître + fasce ---- */
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre{display:flex;align-items:center;gap:20px;background:transparent;color:var(--dh-text);padding:24px 0;margin:0 0 20px;box-shadow:none;}
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre-big{font-size:2.8rem;font-weight:600;line-height:1;color:var(--dh-verde);}
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre-txt{display:flex;flex-direction:column;gap:4px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre-txt strong{font-size:1.2rem;font-weight:500;}
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre-txt span{font-size:.85rem;opacity:.85;}
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre-txt .dh-stats-maitre-sub{font-style:italic;opacity:.6;font-size:.75rem;}
#dh-dashboard-root.dh-role-cassa .dh-stats-fasce{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-fascebox{background:transparent;padding:16px 0;box-shadow:none;}
#dh-dashboard-root.dh-role-cassa .dh-stats-fascebox h4{font-family:var(--font);font-size:1rem;font-weight:500;color:var(--dh-text);margin:0 0 10px;text-transform:capitalize;}
#dh-dashboard-root.dh-role-cassa .dh-stats-fascebox ol{margin:0;padding:0 0 0 18px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-fascebox li{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;color:var(--dh-text);margin-bottom:4px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-fq{color:var(--dh-muted);font-weight:500;}
/* ---- CASSA Stats KPI: bordi + testo left ---- */
#dh-dashboard-root.dh-role-cassa .dh-stats-kpi{background:none;border:0;border-bottom:1px solid rgba(45,90,61,.2);border-radius:0;box-shadow:none;padding:0 0 16px;text-align:left;}
#dh-dashboard-root.dh-role-cassa .dh-stats-card{text-align:left;align-items:flex-start;}
#dh-dashboard-root.dh-role-cassa .dh-stats-card:not(:last-child){border-right:1px solid rgba(45,90,61,.2);}
/* ---- CASSA Stats charts: spaziatura + divisori griglia 2col ---- */
#dh-dashboard-root.dh-role-cassa .dh-stats-charts{gap:0;}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox{padding:40px 56px;border-radius:0;}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox canvas{max-height:280px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox h3{margin:0 0 20px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox:nth-child(odd){border-right:1px solid rgba(45,90,61,.2);}
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox:nth-child(1),#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox:nth-child(2){border-bottom:1px solid rgba(45,90,61,.2);}
/* ---- CASSA Stats maitre: bordo bottom ---- */
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre{border-bottom:1px solid rgba(45,90,61,.2);padding-bottom:24px;}
/* ---- CASSA: nascondi KPI header vecchi (urgenti/da gestire/ecc) ---- */
#dh-dashboard-root.dh-role-cassa .dh-kpi-grid{display:none;}
/* ---- CASSA Stats: sezione Cervello (abbinamenti co-view) ---- */
#dh-dashboard-root.dh-role-cassa .dh-stats-brain{margin:40px 0 20px;padding-bottom:60px;border-bottom:1px solid rgba(45,90,61,.2);}
#dh-dashboard-root.dh-role-cassa .dh-stats-brain-head h3{font-family:var(--font);font-size:1.3rem;font-weight:500;color:var(--dh-text);margin:0 0 4px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-brain-list{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;}
#dh-dashboard-root.dh-role-cassa .dh-stats-brain-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:var(--dh-verde-soft);border-radius:10px;}
#dh-dashboard-root.dh-role-cassa .dh-brain-pair{font-size:.9rem;color:var(--dh-text);}
#dh-dashboard-root.dh-role-cassa .dh-brain-pair em{font-style:normal;color:var(--dh-verde-scuro);font-weight:600;margin:0 4px;}
#dh-dashboard-root.dh-role-cassa .dh-brain-cnt{font-size:1.1rem;font-weight:600;color:var(--dh-verde-scuro);white-space:nowrap;}
/* ---- CASSA Stats: titoli uniformi 1.2rem + pair 0.85 ---- */
#dh-dashboard-root.dh-role-cassa .dh-stats-brain-head h3,
#dh-dashboard-root.dh-role-cassa .dh-stats-maitre-txt strong,
#dh-dashboard-root.dh-role-cassa .dh-stats-chartbox h3{font-size:1.2rem;}
#dh-dashboard-root.dh-role-cassa .dh-brain-pair{font-size:.85rem;}

/* DH-WFLAG: pill in coda / SUBITO nella card da confermare */
.dh-w-flag{margin-left:10px;padding:2px 8px;border:1px solid rgba(0,0,0,.25);border-radius:999px;background:transparent;color:var(--dh-text);font-family:var(--font);font-size:.7rem;line-height:1.5;cursor:pointer;opacity:.55;}
.dh-w-flag:hover{opacity:.85;}
.dh-w-flag.is-subito{background:var(--dh-verde-scuro);border-color:var(--dh-verde-scuro);color:#fff;opacity:1;}

/* DH-COPGRP: coperti nella card da confermare */
.dh-w-coph{font-size:.72rem;opacity:.6;text-transform:uppercase;letter-spacing:.06em;padding:10px 0 2px;}
.dh-w-items li.dh-w-coph:first-child{padding-top:0;}
.dh-w-copli{display:flex;align-items:center;gap:8px;cursor:pointer;}
.dh-w-copn{margin-left:auto;min-width:22px;height:22px;border-radius:50%;border:1px solid rgba(0,0,0,.25);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;opacity:.7;}
.dh-w-copli:active .dh-w-copn{background:var(--dh-verde-scuro);border-color:var(--dh-verde-scuro);color:#fff;opacity:1;}

/* DH-COPSEL: selettore coperto inline */
.dh-w-copli.is-open{flex-wrap:wrap;}
.dh-w-copli.is-open .dh-w-copn{display:none;}
.dh-w-copsel{margin-left:auto;display:inline-flex;gap:6px;}
.dh-w-copbtn{min-width:30px;height:30px;border-radius:50%;border:1px solid rgba(0,0,0,.3);background:rgba(255,255,255,.5);color:var(--dh-text);font-family:var(--font);font-size:.8rem;cursor:pointer;}
.dh-w-copbtn.is-on{background:var(--dh-verde-scuro);border-color:var(--dh-verde-scuro);color:#fff;}

/* DH-SUBPILL: pill "subito" al posto del numerino coperto */
.dh-w-copn{min-width:0;width:auto;border-radius:999px;padding:0 10px;border-color:transparent;}
.dh-w-copn.is-on{background:var(--dh-verde-scuro);color:#fff;border-color:var(--dh-verde-scuro);opacity:1;}
/* DH-INCORSO-CSS */
.dh-w-corso .dh-w-scroll{overflow-y:auto;max-height:calc(100vh - 160px);padding:28px 0 24px}
.dh-w-inviabtn{border:1px solid var(--dh-ciano);background:transparent;color:var(--dh-ciano);border-radius:6px;padding:4px 12px;font-size:11px;cursor:pointer;min-width:74px}
.dh-w-inviabtn.is-on{background:var(--dh-ciano);color:var(--dh-text);border-color:var(--dh-ciano)}
.dh-w-st{font-size:12px;opacity:.7;min-width:74px;text-align:right}
.dh-w-st.is-servito{opacity:.45}
/* DH-CAMPAD */
#dh-dashboard-root.dh-role-cameriere .dh-k-tabs{margin-bottom:0}
/* DH-FASCIA-CSS */
.dh-w-fascia{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.dh-w-icons{display:inline-flex;gap:8px;flex:0 0 auto}
.dh-w-ic{width:44px;height:44px;padding:0;font-size:0;position:relative;display:inline-flex;background:transparent;border:0;cursor:pointer}
.dh-w-ic::before{content:'';position:absolute;inset:0;margin:auto;width:22px;height:22px;background:var(--dh-verde-scuro);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:22px;mask-size:22px}
/* DH-ICBOX */
.dh-w-fascia .dh-w-icons{gap:10px}
.dh-w-fascia .dh-w-ic{width:44px;height:44px;padding:0;font-size:0;line-height:0;color:transparent;position:relative;display:inline-flex;background:rgba(45,90,61,.1);border:0;border-radius:8px;cursor:pointer}
.dh-w-fascia .dh-w-ic[data-ic="edit"]::before{-webkit-mask-image:url('../img/ic_edit.svg');mask-image:url('../img/ic_edit.svg')}
.dh-w-fascia .dh-w-ic[data-ic="del"]::before{-webkit-mask-image:url('../img/ic_delete.svg');mask-image:url('../img/ic_delete.svg')}
.dh-w-fascia .dh-w-camaleonte{height:44px;padding:0 22px;font-size:.85rem;border:0;border-radius:8px;color:var(--dh-text);cursor:pointer;display:inline-flex;align-items:center}
/* DH-CORSODEL-CSS */
.dh-w-corsocard .dh-ord-item .dh-w-icdel{width:28px;height:28px;border-radius:6px;flex:0 0 auto}
.dh-w-corsocard .dh-ord-item .dh-w-icdel::before{width:16px;height:16px;-webkit-mask-size:16px;mask-size:32px}
.dh-w-corsocard .dh-ord-item{display:flex;align-items:center;gap:8px}
/* DH-DELFIX */
.dh-w-corsocard .dh-w-icdel::before{-webkit-mask-image:url('../img/ic_delete.svg');mask-image:url('../img/ic_delete.svg');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.dh-w-inviabtn{font-family:var(--font)}
/* DH-CARICO-CSS */
.dh-k-carico{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;background:rgba(45,90,61,.1);color:var(--dh-text);font-size:.7rem;white-space:nowrap}
/* DH-CORSOSCROLL: lo scroll del tab In corso non e flex, le card non si schiacciano */
.dh-w-corso .dh-w-scroll{display:block}
.dh-w-corso .dh-w-corsocard{flex:0 0 auto;overflow:visible}
/* DH-MENUOVL-CSS */
.dh-menu-ovl{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center}
.dh-menu-ovl-box{position:relative;width:390px;height:780px;max-width:96vw;max-height:92vh;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.dh-menu-ovl-frame{width:100%;height:100%;border:0;display:block}
.dh-menu-ovl-x{position:absolute;top:8px;right:8px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:22px;line-height:1;cursor:pointer}
body.dh-ovl-open{overflow:hidden}
/* DH-BOTTLE-CSS */
.dh-k-bottle{display:inline-flex;align-items:center;padding:1px 6px;margin-left:4px;border-radius:6px;background:#c0392b;color:#fff;font-size:.6rem;white-space:nowrap}
/* DH-BOTTLE-WHITE: testo bianco dentro i box colorati (vince su .dh-kitchen *) */
.dh-role-cucina .dh-kitchen .dh-k-bottle,.dh-role-cameriere .dh-waiter .dh-k-bottle{color:#fff}
/* DH-ORDTITLE-HIDE: il titolo Ordini resta solo in cassa */
#dh-dashboard-root.dh-role-cucina #dh-dash-orders > .dh-w-titlerow .dh-w-title,
#dh-dashboard-root.dh-role-cameriere #dh-dash-orders > .dh-w-titlerow .dh-w-title{display:none}
/* DH-NOTIFRAD: box notifiche arrotondato su 4 angoli */
#dh-dashboard-root.dh-role-cassa #dh-dash-alerts .dh-notif-row{border-radius:14px}
/* DH-BKTABLE-CSS: il select tavolo come gli altri campi del form */
#dh-dashboard-root.dh-role-cassa .dh-newbk-form select{border:1px solid #ddd;border-radius:8px;padding:10px;font-family:var(--font);background:#fff;color:var(--dh-text);width:100%}
/* DH-NBFORM: form prenotazione come in Vista sala */
#dh-dashboard-root.dh-role-cassa .dh-newbk-form .nb-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
#dh-dashboard-root.dh-role-cassa .dh-newbk-form .nb-row-full{grid-template-columns:1fr}
#dh-dashboard-root.dh-role-cassa .dh-newbk-form .nb-row label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600;color:var(--dh-text);text-transform:uppercase;letter-spacing:.04em}
#dh-dashboard-root.dh-role-cassa .dh-newbk-form .nb-row input,#dh-dashboard-root.dh-role-cassa .dh-newbk-form .nb-row select{font-size:14px;font-weight:400;text-transform:none;padding:8px 10px;border:1px solid #ddd;border-radius:8px;font-family:var(--font);background:#fff;color:var(--dh-text);width:100%}
/* DH-NBWHITE: sfondo bianco su tutto il form prenotazione */
#dh-dashboard-root.dh-role-cassa .dh-newbk{background:transparent}
#dh-dashboard-root.dh-role-cassa .dh-newbk-form{background:#fff;padding:16px;border-radius:14px}
/* DH-NBSTACK: nome, telefono, tavolo su righe singole */
#dh-dashboard-root.dh-role-cassa .dh-newbk-form .nb-row-stack{grid-template-columns:1fr}
/* DH-PLUSFONT: il + dei bottoni erediita il font del tema (Arial di default sui button) */
#dh-dashboard-root.dh-role-cassa .dh-w-newbtn,#dh-dashboard-root.dh-role-cassa #dh-new-order-btn.is-visible{font-family:var(--font)}
/* DH-DISHES: tab Menu allineato al design system della dashboard */
#dh-dashboard-root.dh-role-cassa .dh-dishes-section{color:var(--dh-text)}
#dh-dashboard-root.dh-role-cassa .dh-dishes-list{gap:1px;padding-right:0}
#dh-dashboard-root.dh-role-cassa .dh-dish-row{background:#fff;border:0;border-radius:14px;color:var(--dh-text);padding:14px 18px}
#dh-dashboard-root.dh-role-cassa .dh-dish-nome,#dh-dashboard-root.dh-role-cassa .dh-dish-cat,#dh-dashboard-root.dh-role-cassa .dh-dish-toggle{color:var(--dh-text)}
/* DH-DISHFILT: filtri e ricerca come i tab della dashboard */
#dh-dashboard-root.dh-role-cassa .dh-dishes-toolbar{gap:8px;background:#BFBFBF;padding:6px;border-radius:var(--dh-radius);margin-bottom:16px}
#dh-dashboard-root.dh-role-cassa #dh-dishes-search{flex:0 0 220px;border:0;border-radius:10px;background:#fff;color:var(--dh-text);font-family:var(--font);padding:10px 14px}
#dh-dashboard-root.dh-role-cassa .dh-cat-btn{border:0;border-radius:10px;background:transparent;color:var(--dh-text);font-family:var(--font);font-size:.85rem;padding:10px 12px}
#dh-dashboard-root.dh-role-cassa .dh-cat-btn:hover{background:rgba(255,255,255,.4)}
#dh-dashboard-root.dh-role-cassa .dh-cat-btn.is-active{background:var(--dh-white);color:var(--dh-text);font-weight:500}
/* DH-FLOORDS: Vista sala allineata al design system */
#dh-dashboard-root.dh-role-cassa .dh-floor-sub{color:var(--dh-text);opacity:.6;font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-toolbar{background:#fff;border:0;border-radius:14px;padding:16px 18px;font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-toolbar label{color:var(--dh-text);font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-toolbar input{border:1px solid #ddd;border-radius:8px;padding:8px 10px;font-family:var(--font);color:var(--dh-text)}
#dh-dashboard-root.dh-role-cassa .dh-floor-now{color:var(--dh-text);font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi{background:#fff;border:0;border-radius:14px}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi .k-val{color:var(--dh-text);font-weight:400;font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi .k-lab{color:var(--dh-text);opacity:.6;font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi.k-occ .k-val,#dh-dashboard-root.dh-role-cassa .dh-floor-kpi.k-free .k-val{color:var(--dh-verde-scuro)}
/* DH-FLOORDS2: zone e tavoli */
#dh-dashboard-root.dh-role-cassa .dh-floor-zone-title{color:var(--dh-text);font-family:var(--font);font-weight:400;font-size:1.2rem;border-bottom:1px solid rgba(45,90,61,.15)}
#dh-dashboard-root.dh-role-cassa .dh-floor-table{background:#fff;border:0;border-radius:14px;font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-table .t-num{color:var(--dh-text);font-weight:400}
#dh-dashboard-root.dh-role-cassa .dh-floor-table .t-cap{color:var(--dh-text);opacity:.6}
#dh-dashboard-root.dh-role-cassa .dh-floor-table.is-free{background:rgba(255,255,255,.5);border:1px dashed rgba(45,90,61,.25)}
#dh-dashboard-root.dh-role-cassa .dh-floor-table.is-free .t-free-lab{color:var(--dh-text);opacity:.5}
#dh-dashboard-root.dh-role-cassa .dh-floor-table.is-occ{background:var(--dh-verde);border:0}
#dh-dashboard-root.dh-role-cassa .dh-floor-table.is-occ .t-num,#dh-dashboard-root.dh-role-cassa .dh-floor-table .t-book-row strong,#dh-dashboard-root.dh-role-cassa .dh-floor-table .t-book-row span{color:var(--dh-text)}
/* DH-FLOORBTN: Aggiorna e Adesso come i bottoni della dashboard */
#dh-dashboard-root.dh-role-cassa .dh-floor-toolbar .button-primary{background:var(--dh-text);border:0;border-radius:10px;color:#fff;font-family:var(--font);font-size:.9rem;padding:10px 20px;cursor:pointer;box-shadow:none;text-shadow:none;height:auto;line-height:1.4}
#dh-dashboard-root.dh-role-cassa a.dh-floor-now{color:var(--dh-text);font-family:var(--font);text-decoration:underline;align-self:center}
/* DH-FLOORKPI: KPI Vista sala come quelli di Statistiche */
#dh-dashboard-root.dh-role-cassa .dh-floor-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 20px;background:none;border:0;border-bottom:1px solid rgba(45,90,61,.2);border-radius:0;padding:0 0 16px}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi{background:transparent;border:0;border-radius:0;padding:18px 0;box-shadow:none;display:flex;flex-direction:column;gap:6px;text-align:left;align-items:flex-start}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi:not(:last-child){border-right:1px solid rgba(45,90,61,.2)}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi .k-val{font-size:1.8rem;font-weight:500;color:var(--dh-text);font-family:var(--font)}
#dh-dashboard-root.dh-role-cassa .dh-floor-kpi .k-lab{font-size:.8rem;color:var(--dh-muted);letter-spacing:.5px;text-transform:none;font-weight:400;font-family:var(--font);opacity:1;margin:0}
/* DH-FLOORBAR: toolbar senza fondo, solo bordo alla base */
#dh-dashboard-root.dh-role-cassa .dh-floor-toolbar{background:none;border:0;border-bottom:1px solid rgba(45,90,61,.2);border-radius:0;padding:0 0 16px;box-shadow:none}
/* DH-ICLIST: cucina e cassa aprono la lista In corso */
#dh-dashboard-root.dh-role-cucina #dh-dash-order,#dh-dashboard-root.dh-role-cassa #dh-dash-order{background-image:url('../img/ic_list.svg')}
/* DH-DRAWOPEN: accordion anche nel drawer (fuori da .dh-dash) */
.dh-order-panel .dh-ord-cardbody{display:none}
.dh-order-panel .dh-ord-card.is-open .dh-ord-cardbody{display:block}
.dh-order-panel .dh-ord-cardhead{cursor:pointer}
