/* ============================================================
   theme.css — habillage moderne, clair et simple (chargé APRÈS style.css).
   Ne change que l'apparence : aucune règle de fonctionnement, aucun identifiant.
   Les écrans de jeu (roue, dé) gardent leur thème casino rouge et or.
   ============================================================ */

/* ---------- 1. Couleurs, arrondis, ombres (valables partout) ---------- */
:root{
  --paper:#F6F5F2; --paper-dark:#ECEAE5;
  --bordeaux:#8E2F3B; --bordeaux-dark:#6F222C;
  --charcoal:#1F2328; --charcoal-2:#2B3037;
  --ember:#EE8A2F; --ember-dim:#B45F06;
  --sage:#1F8A5B; --slate:#667085; --ink:#1F2328; --danger:#C0392B; --gold:#C79A2B;
  --line:#E6E3DD; --card:#FFFFFF; --brand:#8E2F3B; --brand-soft:#F8EAEC;
  --ok:#1F8A5B; --ok-soft:#E4F4EC; --warn:#B45F06; --warn-soft:#FDF0DC; --bad:#C0392B; --bad-soft:#FBE7E4;
  --r-card:16px; --r-ctl:12px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 4px 14px rgba(16,24,40,.06);
  --shadow-up:0 -4px 20px rgba(16,24,40,.10);
}

/* ---------- 2. Texte : une seule police, lisible, titres nets ---------- */
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;font-size:15px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;}
h1,h2,h3,.display,[style*="Fraunces"],h2.section,.pcard h3,.tcard .tnum,.stat-card .value,.dice-head,.loy-title,.upsell-title,.cl-summary strong,.finance-card h3,.casino-marquee-off{font-family:'Inter',system-ui,sans-serif !important;letter-spacing:-.01em;}
h2.section{font-size:22px;font-weight:700;margin:0 0 16px;}
label{font-size:13.5px;color:var(--ink);}
.empty{color:var(--slate);}

/* ---------- 3. Boutons : un bouton principal bien visible, les autres discrets ---------- */
.primary-btn{background:var(--bordeaux);color:#fff;border:none;border-radius:var(--r-ctl);min-height:48px;padding:12px 18px;font-size:15px;font-weight:600;letter-spacing:0;box-shadow:0 1px 2px rgba(16,24,40,.12);transition:background .15s,transform .05s;}
.primary-btn:hover{background:var(--bordeaux-dark);}
.primary-btn:active{transform:translateY(1px);}
.primary-btn:disabled{background:#D5D2CC;color:#fff;opacity:1;box-shadow:none;}
.ghost-btn{background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:var(--r-ctl);min-height:44px;padding:10px 14px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s;}
.ghost-btn:hover{background:var(--paper);border-color:#D4D0C8;}
.ghost-btn.danger{color:var(--bad);border-color:#EFC7C1;background:#fff;}
.ghost-btn.danger:hover{background:var(--bad-soft);}
.link-btn{color:var(--bordeaux);}
.chip,.cat-btn,.subtab,.admin-tab{border-radius:999px;}
.chip{border:1px solid var(--line);color:var(--ink);background:#fff;padding:8px 14px;font-size:13px;}
.chip.active{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux);}
.remove-x{color:var(--slate);font-size:16px;width:32px;height:32px;border-radius:50%;}
.remove-x:hover{background:var(--bad-soft);color:var(--bad);}

/* ---------- 4. Champs de saisie : grands, nets, faciles à toucher ---------- */
select,input[type=text],input[type=number],input[type=time],input[type=email],input[type=password],input[type=url],input[type=date],textarea{border:1px solid #D9D5CC;border-radius:var(--r-ctl);background:#fff;font-size:15px;padding:11px 12px;min-height:44px;color:var(--ink);transition:border-color .15s,box-shadow .15s;}
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(142,47,59,.14);}
textarea{min-height:76px;}
input[type=checkbox],input[type=radio]{accent-color:var(--bordeaux);}

/* ---------- 5. Barre du haut : claire et sobre ---------- */
.topbar{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:none;padding:10px 18px;}
body:has(#client-view) .topbar{position:static;}
.brand .mark{background:var(--bordeaux);color:#fff;border-radius:11px;width:36px;height:36px;font-size:18px;}
.brand h1{font-size:16px;font-weight:700;color:var(--ink);}
.brand small{color:var(--slate);opacity:1;font-size:10.5px;letter-spacing:.5px;}
.tabs{background:var(--paper-dark);border-radius:12px;padding:4px;}
.tab-btn{color:var(--slate);opacity:1;border-radius:9px;padding:8px 14px;font-size:13.5px;}
.tab-btn:hover{color:var(--ink);}
.tab-btn.active{background:#fff;color:var(--bordeaux);box-shadow:var(--shadow);}
.top-select{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;font-size:13px;padding:7px 10px;}
.account-btn{background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;min-height:38px;}
.account-btn:hover{background:var(--paper);}
.topbar .ghost-btn{color:var(--ink);border-color:var(--line);background:#fff;min-height:38px;padding:7px 12px;font-size:12.5px;width:auto;}
.topbar .ghost-btn:hover{background:var(--paper);}
.view{padding:20px 18px 110px;}

/* ---------- 6. Page client : l'en-tête du menu ---------- */
.client-header h2{font-size:26px;font-weight:800;}
.period-badge{background:var(--brand-soft);color:var(--bordeaux);font-weight:600;font-size:12px;padding:5px 11px;}
#table-lock-info{font-size:13px;color:var(--slate);}
#table-lock-info .ghost-btn{min-height:36px;padding:6px 12px;font-size:12.5px;width:auto;}

/* Catégories : une rangée qui défile, collée en haut pendant la lecture du menu */
.cats{position:sticky;top:0;z-index:30;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;margin:10px -18px 14px;padding:10px 18px;background:rgba(246,245,242,.96);backdrop-filter:blur(6px);-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.cats::-webkit-scrollbar{display:none;}
.cat-btn{flex:none;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 16px;font-size:14px;font-weight:600;}
.cat-btn.active{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux);box-shadow:0 2px 8px rgba(142,47,59,.25);}

/* ---------- 7. Produits : cartes nettes, prix en évidence ---------- */
.grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:16px;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;}
.pcard:hover{transform:none;box-shadow:0 2px 4px rgba(16,24,40,.06),0 8px 22px rgba(16,24,40,.09);}
.pcard h3{font-size:16.5px;font-weight:700;margin:2px 28px 4px 0;}
.pcard p{font-size:13.5px;color:var(--slate);line-height:1.45;min-height:0;margin:0 0 10px;}
.pcard .allerg{font-size:11.5px;color:var(--warn);background:var(--warn-soft);display:inline-block;border-radius:8px;padding:3px 8px;margin-bottom:10px;align-self:flex-start;}
.price-row{margin-top:auto;padding-top:8px;}
.price{font-size:18px;font-weight:800;color:var(--ink);}
.price-from{font-size:12px;font-weight:600;color:var(--slate);}
.price-old{font-size:13px;}
.price-hh{color:var(--bad);}
.addbtn{background:var(--bordeaux);color:#fff;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;min-height:42px;border:none;}
.addbtn:hover{background:var(--bordeaux-dark);}
.addbtn:disabled{background:#D5D2CC;opacity:1;}
.fav-heart{top:10px;right:10px;width:36px;height:36px;font-size:18px;border-radius:50%;}
.unavail-tag{background:var(--slate);border-radius:8px;font-size:11px;padding:4px 9px;position:static;display:inline-block;margin-bottom:8px;align-self:flex-start;}
.pcard.unavailable{opacity:.6;}

/* ---------- 8. Progression fidélité : compacte et rassurante ---------- */
#loyalty-bar{position:static;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);border-radius:var(--r-card);padding:14px 16px;margin-bottom:12px;}
.loy-top{font-size:14px;margin-bottom:10px;}
.loy-title{font-size:15px;font-weight:700;color:var(--ink);}
.loy-amount{font-size:16px;font-weight:800;}
.loy-track.big{height:12px;border:none;background:var(--paper-dark);overflow:visible;}
.loy-track.big .loy-fill{background:linear-gradient(90deg,#F5B54A,var(--ember));}
.loy-shine{display:none;}
.loy-gift{right:-4px;top:-10px;font-size:22px;}
.loy-sub{text-align:left;font-size:13.5px;color:var(--slate);margin-top:10px;}
.loy-sub strong{color:var(--ink);}
.loy-google{font-size:12.5px;color:var(--slate);background:var(--paper);border:none;border-radius:10px;padding:8px 10px;margin-top:8px;}
.spin-cta{background:var(--ember);color:#fff;border-radius:var(--r-ctl);min-height:48px;font-size:15px;box-shadow:0 2px 10px rgba(238,138,47,.4);}
.cashback-pill,.cashback-card{background:var(--ok-soft);border:none;color:#14583B;border-radius:12px;}
.cashback-block{background:var(--ok-soft);border:none !important;border-radius:12px;}
#my-tab{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);font-size:13.5px;box-shadow:var(--shadow);}
#my-tab .mt-ref{background:var(--paper);}
.happy-banner{background:var(--warn-soft);border:none;color:#7A3F00;border-radius:var(--r-card);box-shadow:none;font-size:14px;}

/* ---------- 9. Panier : bouton flottant en bas + tiroir clair ---------- */
.cart-fab{background:var(--bordeaux);color:#fff;border-radius:16px;padding:14px 20px;font-size:15px;box-shadow:0 6px 24px rgba(142,47,59,.38);}
.cart-fab .cart-badge{background:#fff;color:var(--bordeaux);font-weight:800;}
@media (max-width:640px){
  .cart-fab{left:14px;right:14px;bottom:14px;justify-content:center;padding:15px 20px;font-size:16px;}
  .fab-hint{left:14px;right:14px;bottom:78px;max-width:none;text-align:center;}
  .fab-hint::after{right:50%;margin-right:-8px;}
}
.fab-hint{background:var(--ink);border-radius:12px;font-size:13px;}
.fab-hint::after{border-top-color:var(--ink);}
.drawer-overlay{background:rgba(17,24,39,.5);}
.drawer{background:#fff;box-shadow:-10px 0 40px rgba(16,24,40,.2);}
.drawer-head{background:#fff;border-bottom:1px solid var(--line);padding:14px 18px;}
.drawer-head strong{font-size:18px !important;}
.cart-back{color:var(--ink);font-size:14.5px;font-weight:600;padding:8px 6px;}
.drawer-body{padding:8px 18px;}
.drawer-foot{background:var(--paper);border-top:1px solid var(--line);padding:16px 18px 22px;}
.cart-line{border-bottom:1px solid var(--line);padding:14px 0;font-size:15px;}
.cart-line .opts{font-size:12.5px;color:var(--slate);}
.gift-tag{background:var(--ok-soft);color:#14583B;}
.section-block{border-top:1px solid var(--line);margin:16px 0;padding-top:14px;}
.section-block strong{font-size:12px;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:700;font-size:14px;margin-bottom:10px;}
.pay-method{border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 14px;font-size:14px;background:#fff;}
.pay-method:has(input:checked){border-color:var(--bordeaux);background:var(--brand-soft);}
.promo-row button{background:var(--ink);border-radius:var(--r-ctl);padding:0 18px;font-size:14px;min-height:44px;}
.totals-row{font-size:14.5px;margin-bottom:6px;}
.totals-row.total{font-size:20px;font-weight:800;border-top:1px solid var(--line);margin-top:10px;padding-top:12px;}
.totals-row.discount{color:var(--ok);}
.promo-banner{background:var(--ok-soft);border:none;color:#14583B;border-radius:var(--r-card);}
.demo-note{background:var(--warn-soft);color:#7A4A10;border-radius:10px;font-size:12.5px;padding:8px 10px;}

/* ---------- 10. Suivi de commande : ticket + étapes claires ---------- */
.ticket{background:#fff;border-radius:14px;box-shadow:none;border:1px solid var(--line);background-image:none;padding:18px 16px;}
.ticket::before,.ticket::after{display:none;}
.stepper{margin:20px 0 10px;}
.step{font-size:11.5px;color:var(--slate);font-weight:600;}
.step .dot{width:18px;height:18px;background:var(--paper-dark);border:2px solid var(--paper-dark);margin-bottom:8px;}
.step.done .dot{background:var(--ok);border-color:var(--ok);}
.step.current .dot{background:#fff;border-color:var(--bordeaux);box-shadow:0 0 0 5px rgba(142,47,59,.14);}
.step.done,.step.current{color:var(--ink);}
.step-line{top:8px;height:3px;background:var(--paper-dark);}
.step.done .step-line{background:var(--ok);}
.stars{font-size:28px;letter-spacing:4px;}
.star{color:#DAD6CD;}
.star.on{color:var(--gold);}
.upsell-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:16px;}
.upsell-title{font-size:17px;color:var(--ink);}
.upsell-sub{color:var(--slate);font-size:13px;}
.upsell-row{border-top:1px solid var(--line);}
.upsell-q{border-color:var(--line);color:var(--ink);width:38px;height:38px;}
.upsell-add{background:var(--bordeaux);}
.dice-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--r-card);}
.dice-card.won{background:var(--ok-soft);border-color:#BDE3CF;}
.dice-head{font-size:17px;color:var(--ink);}
.google-card{border-radius:var(--r-card);}

/* ---------- 11. Fenêtres (modales) : feuille qui monte du bas sur téléphone ---------- */
.modal-overlay{background:rgba(17,24,39,.5);backdrop-filter:blur(2px);}
.modal{border-radius:20px;box-shadow:0 24px 60px rgba(16,24,40,.25);padding:22px;}
@media (max-width:640px){
  .modal-overlay:not(.page-mode):not(#wheel-overlay){align-items:flex-end;padding:0;}
  .modal-overlay:not(.page-mode):not(#wheel-overlay) .modal{max-width:100%;border-radius:22px 22px 0 0;max-height:92vh;padding:22px 18px 26px;animation:sheetup .25s ease-out;}
}
@keyframes sheetup{from{transform:translateY(40px);opacity:.4;}to{transform:none;opacity:1;}}
.size-choice{border:1px solid var(--line);border-radius:var(--r-ctl);padding:13px 14px;font-size:15px;}
.size-choice:has(input:checked){border-color:var(--bordeaux);background:var(--brand-soft);}

/* ---------- 12. Messages, bandeaux, pied de page ---------- */
#toast-wrap{left:50%;transform:translateX(-50%);bottom:84px;align-items:center;max-width:min(420px,calc(100vw - 28px));width:100%;}
.toast{border-radius:14px;padding:13px 16px;font-size:14px;font-weight:500;box-shadow:0 10px 30px rgba(16,24,40,.28);}
.toast.success{background:var(--ok);}
.toast.warn{background:var(--warn);}
.toast.danger{background:var(--bad);}
#cookie-banner{left:12px;right:12px;bottom:12px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-up);padding:14px 16px;font-size:13.5px;}
#cookie-banner a{color:var(--bordeaux) !important;}
#cookie-banner .accept{background:var(--bordeaux);color:#fff;border-radius:var(--r-ctl);padding:10px 18px;font-size:14px;min-height:42px;}
.legal-footer{font-size:12.5px;}
.conn-banner{font-size:14px;}

/* ---------- Page client : en-tête compact (table + appel serveur) ---------- */
.client-header{align-items:flex-start;gap:10px;}
.client-header #table-lock-info{display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right;}
.table-pill{display:inline-flex;align-items:center;gap:6px;background:var(--brand-soft);color:var(--bordeaux);font-weight:700;font-size:14px;border-radius:999px;padding:7px 14px;}
.table-actions{display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.tbl-btn{width:auto !important;min-height:40px;padding:8px 14px !important;font-size:13.5px !important;}
.tbl-link{font-size:12.5px;color:var(--slate);padding:6px 4px;}
@media (max-width:640px){
  .client-header{flex-direction:column;align-items:stretch;}
  .client-header #table-lock-info{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;text-align:left;width:100%;}
  .table-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;}
  .topbar{padding:8px 14px;}
  #push-toggle-btn{font-size:0 !important;padding:0 !important;width:40px;height:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;}
  #push-toggle-btn::before{content:'🔔';font-size:17px;}
  .brand h1{font-size:15px;}
}@media (max-width:640px){
  .client-header #table-lock-info{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;}
  .table-actions{display:contents;}
  .tbl-btn{justify-self:end;}
  .tbl-link{grid-column:1/-1;justify-self:start;padding:2px 2px;}
  .client-header h2{font-size:22px;}
}
/* ---------- Fenêtre « Ajouter au panier » : choix faciles à toucher ---------- */
.opt-group{margin:18px 0;}
.opt-title{display:block;font-size:14px;font-weight:700;margin-bottom:2px;color:var(--ink);}
.opt-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r-ctl);padding:12px 14px;font-size:15px;margin-top:8px;cursor:pointer;background:#fff;}
.opt-row:has(input:checked){border-color:var(--bordeaux);background:var(--brand-soft);}
.opt-row input{width:20px;height:20px;margin:0;flex:none;}
#opt-modal #qty-minus,#opt-modal #qty-plus{width:46px !important;height:46px;min-height:46px;font-size:22px;border-radius:50%;padding:0;}
#opt-modal #qty-val{font-size:20px;min-width:34px !important;}
#opt-modal h3{font-size:22px !important;font-weight:800;margin-bottom:4px !important;}
/* ============================================================
   ESPACE RESTAURATEUR : cuisine, salle, back-office
   ============================================================ */
#staff-who{color:var(--slate) !important;opacity:1 !important;font-size:13px !important;}
.top-actions{gap:8px;flex-wrap:wrap;}

/* ---------- Cuisine : tickets clairs, bande de couleur selon l'attente ---------- */
#kds-view.active{background:transparent;min-height:0;margin-top:0;padding-top:20px;max-width:1280px;}
.kds-topbar{color:var(--ink);padding:0 0 6px;align-items:center;}
.kds-topbar h2{font-family:'Inter',system-ui,sans-serif;color:var(--ink);font-size:24px;font-weight:800;}
.kds-topbar h2 small{font-size:14px;font-weight:500;color:var(--slate);margin-left:8px;}
.conn-pill{font-size:12.5px;font-weight:600;padding:7px 14px;}
.conn-on{background:var(--ok-soft);color:#14583B;border:1px solid #BDE3CF;}
.conn-off{background:var(--bad-soft);color:var(--bad);border:1px solid #EFC7C1;}
.kds-controls button{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;min-height:38px;}
.station-tabs{padding:0 0 16px;gap:8px;}
.station-tab{background:#fff;color:var(--ink);border:1px solid var(--line);padding:9px 16px;font-family:'Inter',system-ui,sans-serif;font-size:13.5px;font-weight:600;border-radius:999px;min-height:40px;}
.station-tab.active{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux);}
.kds-grid{padding:0 0 40px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.kticket{background:#fff;border:1px solid var(--line);border-left:6px solid var(--ok);border-radius:var(--r-card);padding:16px 16px 14px;font-family:'Inter',system-ui,sans-serif;color:var(--ink);box-shadow:var(--shadow);}
.kticket.is-warn{border-left-color:var(--ember);}
.kticket.is-late{border-left-color:var(--bad);background:#FFFAF9;}
.kticket .kt-head{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px;align-items:baseline;}
.kticket .kt-num{font-size:20px;font-weight:800;color:var(--ink);}
.kticket .kt-table{font-size:15px;font-weight:700;color:var(--bordeaux);}
.kticket .kt-item{font-size:16px;font-weight:600;margin-bottom:12px;}
.kticket .kt-item .station-tag{background:var(--paper-dark);color:var(--slate);font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;}
.kticket .kt-item .mods{color:var(--slate);font-size:13.5px;font-weight:500;padding-left:34px;margin-top:2px;}
.kticket .kt-item-check input{accent-color:var(--ok);}
.kticket .kt-item-done .kt-item-check span{color:#9AA0A8;}
.kticket .kt-timer{font-size:13.5px;color:var(--ok);font-weight:700;margin:12px 0 0;}
.kticket.is-warn .kt-timer{color:var(--warn);}
.kticket .kt-timer.late{color:var(--bad);}
.kt-badge{top:12px;right:12px;border-radius:999px;background:var(--paper-dark);color:var(--ink);font-size:11.5px;font-weight:700;padding:4px 11px;}
.kt-urgent-flag{display:none;}
.kt-status-bar{margin-top:14px;}
.kt-status-btn{font-family:'Inter',system-ui,sans-serif;font-size:15px;border-radius:var(--r-ctl);background:var(--bordeaux);color:#fff;min-height:54px;font-weight:700;}
.kt-status-btn.served{background:var(--ok);color:#fff;}
.kt-status-btn.back{background:#fff;color:var(--ink);border:1px solid var(--line);font-size:13.5px;min-height:46px;}
.kt-status-btn.cancel{background:#fff;color:var(--slate);border:1px solid var(--line);min-height:42px;font-size:12.5px;}
.kt-status-btn.cancel:hover{color:var(--bad);border-color:#EFC7C1;background:var(--bad-soft);}

/* ---------- Salle : plan des tables, à servir, caisse ---------- */
.table-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:18px 14px;transition:box-shadow .15s,transform .1s;}
.tcard:hover{box-shadow:0 2px 4px rgba(16,24,40,.06),0 8px 22px rgba(16,24,40,.1);}
.tcard:active{transform:scale(.98);}
.tcard .tnum{font-size:26px;font-weight:800;}
.tcard .tzone{color:var(--slate);font-size:12.5px;}
.status-pill{font-size:12px;font-weight:700;padding:5px 12px;}
.st-libre{background:var(--ok-soft);color:#14583B;}
.st-cours{background:var(--warn-soft);color:var(--warn);}
.st-addition{background:var(--bad-soft);color:var(--bad);}
.subtabs{gap:8px;margin-bottom:16px;}
.subtab{background:#fff;border:1px solid var(--line);color:var(--ink);padding:10px 18px;font-size:14px;font-weight:600;min-height:42px;}
.subtab.active{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux);}
.serve-group{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:16px 18px;}
.serve-item{border-bottom:1px solid var(--line);}
.serve-status{font-size:12px;padding:4px 11px;}
.ss-attente{background:var(--paper-dark);color:var(--slate);}
.ss-pret{background:var(--warn-soft);color:var(--warn);}
.ss-servi{background:var(--ok-soft);color:#14583B;}
.serve-btn{background:var(--bordeaux);border-radius:var(--r-ctl);font-weight:600;}
.serve-btn.undo{background:#fff;color:var(--ink);border:1px solid var(--line);}
.serve-btn.serve-all{background:var(--ok);color:#fff;}
#service-calls-bar .sc-item{background:var(--warn-soft);border:1px solid #F3D49A;color:#6A3B00;border-radius:var(--r-card);}
#service-calls-bar .sc-btn{background:var(--ok);border-radius:var(--r-ctl);}
#undo-bar{background:var(--ink);border-radius:14px;}
#undo-bar .ub-btn{background:#fff;color:var(--ink);border-radius:10px;}

/* ---------- Back-office : menu à gauche (ordinateur) ou menu déroulant (téléphone) ---------- */
#admin-view .section{font-size:24px;font-weight:800;}
.admin-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px;align-items:start;}
.admin-nav{position:sticky;top:78px;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:10px;max-height:calc(100vh - 100px);overflow-y:auto;}
.admin-nav-toggle{display:none;}
.admin-group + .admin-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);}
.admin-group-title{font-size:12px;font-weight:700;color:var(--slate);padding:10px 10px 4px;}
.admin-nav .admin-tab{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;background:transparent;border:none;color:var(--ink);padding:11px 12px;font-size:14.5px;font-weight:500;border-radius:10px;min-height:42px;margin:1px 0;cursor:pointer;}
.admin-nav .admin-tab:hover{background:var(--paper);}
.admin-nav .admin-tab.active{background:var(--brand-soft);color:var(--bordeaux);font-weight:700;border:none;}
.admin-content{min-width:0;}
.admin-content > .admin-panel{background:transparent;}
@media (max-width:900px){
  .admin-shell{grid-template-columns:1fr;gap:14px;}
  .admin-nav{position:relative;top:0;padding:0;max-height:none;overflow:visible;z-index:20;}
  .admin-nav-toggle{display:flex;align-items:center;gap:10px;width:100%;background:#fff;border:none;border-radius:var(--r-card);padding:14px 16px;font-size:15px;cursor:pointer;min-height:54px;}
  .ant-label{font-size:12px;font-weight:700;color:var(--slate);background:var(--paper-dark);border-radius:999px;padding:3px 10px;}
  .ant-current{flex:1;text-align:left;font-weight:700;color:var(--ink);}
  .ant-chev{color:var(--slate);transition:transform .2s;}
  .admin-nav.open .ant-chev{transform:rotate(180deg);}
  .admin-nav-list{display:none;padding:6px 10px 12px;border-top:1px solid var(--line);max-height:70vh;overflow-y:auto;}
  .admin-nav.open .admin-nav-list{display:block;}
}

/* ---------- Tableaux, cartes de chiffres, formulaires du back-office ---------- */
table.admin-table{border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);font-size:14px;}
table.admin-table th{background:#FAF9F7;font-size:12px;text-transform:none;letter-spacing:0;font-weight:700;color:var(--slate);padding:12px 14px;}
table.admin-table td{border-top:1px solid var(--line);padding:12px 14px;}
.admin-table th,.admin-table td{vertical-align:middle;}
.table-scroll{border-radius:var(--r-card);}
.avail-select{font-size:13px;padding:7px 8px;min-height:38px;}
.stat-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:18px;}
.stat-card .label{font-size:13px;color:var(--slate);text-transform:none;letter-spacing:0;font-weight:600;}
.stat-card .value{font-size:28px;font-weight:800;color:var(--ink);margin-top:6px;}
.top-products,.finance-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);}
.fin-flow{background:var(--paper);}
.fin-total strong{color:var(--ink);}
form.menu-form{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:18px;gap:12px;}
form.menu-form label{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:5px;}
.admin-panel .section-block{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:18px;margin:0 0 14px;}
.admin-panel .section-block strong{font-size:16px;margin-bottom:6px;}
.admin-panel .section-block .demo-note{font-size:13px;}
.log-type{font-size:11px;padding:3px 9px;border-radius:999px;}
.log-type.order{background:var(--ok-soft);color:#14583B;}
.log-type.payment{background:var(--warn-soft);color:var(--warn);}
.log-type.security{background:var(--bad-soft);color:var(--bad);}
.log-type.system{background:#E6EEF8;color:#2B5278;}
.fb-item{border:1px solid var(--line);border-radius:var(--r-card);background:#fff;}
.cl-summary div{border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);}
.cl-summary strong{font-weight:800;}
/* Barre du haut du back-office : nom + trois boutons simples */
#staff-who{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.who-name{display:flex;flex-direction:column;line-height:1.2;font-weight:700;font-size:14px;color:var(--ink);margin-right:4px;text-align:right;}
.who-name small{font-size:11.5px;font-weight:500;color:var(--slate);}
.who-btn{width:auto !important;min-height:38px !important;padding:7px 13px !important;font-size:13px !important;}
.kt-badge{position:static;display:inline-block;margin-bottom:10px;}
.kticket .kt-head{margin-top:0;}
/* Onglets simples (page Plateforme) */
.admin-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.admin-tabs .admin-tab{background:#fff;border:1px solid var(--line);color:var(--ink);padding:10px 18px;font-size:14px;font-weight:600;border-radius:999px;min-height:42px;cursor:pointer;}
.admin-tabs .admin-tab.active{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux);}

/* ---------- Pages de connexion (restaurateur, plateforme) : une carte centrée ---------- */
#staff-gate>div[style*="max-width"],#platform-gate>div[style*="max-width"]{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:30px 26px !important;text-align:left !important;margin:40px auto !important;}
#staff-gate h2,#platform-gate h2{font-size:24px;font-weight:800;margin:0 0 6px;}
#staff-gate h2::before,#platform-gate h2::before{content:"🍽";display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:15px;background:var(--bordeaux);font-size:26px;margin-bottom:16px;}
#platform-gate h2::before{content:"🏢";}
#staff-gate label,#platform-gate label{display:block;font-weight:600;font-size:14px;margin-top:6px;}
#staff-gate p,#platform-gate p{font-size:13.5px !important;}
.pw-toggle{color:var(--slate);}
.help-list{margin:6px 0 14px;padding-left:20px;font-size:13.5px;color:var(--slate);line-height:1.6;}
.help-list b{color:var(--ink);}