/* ============================================================
   MELTING POT : Espace de gestion
   Consomme les tokens de styles.css. Aucune couleur en dur :
   les statuts passent par --st-blue / --st-amber / --st-green / --st-red.
   ============================================================ */

.admin-body{
  background:rgba(234,220,192,.4);
  min-height:100vh;
}

/* ============================================================
   CONNEXION
   ============================================================ */

.admin-login{
  position:fixed;
  inset:0;
  z-index:200;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--cream-100);
  overflow-y:auto;
}
.admin-login[hidden]{display:none;}
.admin-login__split{
  display:grid;
  grid-template-columns:1fr 1fr;
  width:min(920px,100%);
  border-radius:var(--r-2xl);
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--cream-50);
  box-shadow:0 30px 70px -45px rgba(67,20,12,.6);
}
@media (max-width:760px){
  .admin-login__split{grid-template-columns:1fr;}
}
.admin-login__brand{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:40px;
  padding:44px;
  min-height:420px;
  background:linear-gradient(135deg,var(--bordeaux-800),var(--bordeaux-900));
  color:var(--cream-100);
}
@media (max-width:760px){.admin-login__brand{min-height:0;padding:32px;}}
.admin-login__title{
  font-family:var(--font-display);
  font-size:30px;
  font-weight:var(--display-weight);
  color:var(--cream-50);
  line-height:1.15;
}
.admin-login__lead{
  margin-top:12px;
  max-width:280px;
  font-size:14.5px;
  line-height:1.6;
  color:rgba(234,220,192,.75);
}
.admin-login__form{
  padding:44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:18px;
}
@media (max-width:760px){.admin-login__form{padding:32px 24px;}}
.admin-login__hint{
  font-size:12.5px;
  color:var(--ink-55);
  text-align:center;
}

/* ============================================================
   COQUE : sidebar + colonne principale
   ============================================================ */

.admin-shell{
  display:grid;
  grid-template-columns:248px 1fr;
  min-height:100vh;
}
.admin-shell[hidden]{display:none;}
@media (max-width:1023px){
  .admin-shell{grid-template-columns:1fr;}
}

/* ---------- Sidebar ---------- */
.admin-side{
  display:flex;
  flex-direction:column;
  padding:16px;
  background:linear-gradient(180deg,var(--bordeaux-900),var(--bordeaux-800));
  color:rgba(234,220,192,.85);
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
}
@media (max-width:1023px){
  .admin-side{
    position:fixed;
    inset:0 auto 0 0;
    width:min(280px,84vw);
    z-index:150;
    transform:translateX(-100%);
    transition:transform .3s var(--ease);
    height:100dvh;
  }
  .admin-side.is-open{transform:none;box-shadow:24px 0 60px -30px rgba(67,20,12,.7);}
}
.admin-side__brand{padding:12px 8px 16px;}
.admin-side__group{
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--clay);
  padding:0 12px;
  margin:20px 0 8px;
}
.admin-side__group:first-of-type{margin-top:0;}
.admin-side__nav{display:flex;flex-direction:column;gap:4px;}

.admin-tab{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  padding:11px 12px;
  min-height:44px;
  border-radius:var(--r-btn);
  font-size:14.5px;
  font-weight:500;
  color:inherit;
  text-align:left;
  transition:background-color .2s, color .2s;
}
.admin-tab:hover{background:rgba(243,233,212,.06);}
.admin-tab.is-active{
  background:rgba(243,233,212,.12);
  color:var(--cream-50);
}
.admin-tab .icon{width:18px;height:18px;}
.admin-tab__badge{
  margin-left:auto;
  min-width:20px;
  height:20px;
  padding-inline:6px;
  display:grid;
  place-items:center;
  border-radius:var(--r-pill);
  background:var(--gold);
  color:var(--bordeaux-900);
  font-size:11px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.admin-tab__badge[data-empty="1"]{display:none;}

/* Onglets masqués pour le rôle courant */
[data-roles]:not([data-role-visible]){display:none !important;}

.admin-side__foot{
  margin-top:auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding-top:16px;
  border-top:1px solid var(--cream-line);
}
.avatar--gold{
  background:var(--gold);
  color:var(--bordeaux-900);
  width:36px;height:36px;
  font-size:13px;
}
.admin-side__name{font-size:13px;font-weight:600;color:var(--cream-50);}
.admin-side__role{font-size:11.5px;color:var(--clay);}
.admin-side__logout{
  margin-left:auto;
  width:36px;height:36px;
  display:grid;place-items:center;
  border-radius:var(--r-sm);
  color:rgba(234,220,192,.7);
  transition:color .2s, background-color .2s;
}
.admin-side__logout:hover{color:var(--cream-50);background:rgba(243,233,212,.08);}

/* ---------- Topbar ---------- */
.admin-main{min-width:0;display:flex;flex-direction:column;}

.admin-top{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 24px;
  background:var(--cream-50);
  border-bottom:1px solid var(--line);
}
@media (max-width:640px){.admin-top{padding:10px 16px;gap:10px;}}
.admin-top__burger{display:none;}
@media (max-width:1023px){.admin-top__burger{display:grid;}}
.admin-top__title{
  font-family:var(--font-display);
  font-size:22px;
  font-weight:var(--display-weight);
  white-space:nowrap;
}
.admin-top__search{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:240px;
  padding:9px 14px;
  border:1px solid rgba(36,24,19,.12);
  border-radius:var(--r-btn);
  background:var(--cream-100);
  color:var(--ink-40);
}
.admin-top__search .icon{width:16px;height:16px;}
.admin-top__search input{
  border:0;
  background:none;
  outline:none;
  width:100%;
  font-size:13.5px;
  color:var(--ink);
}
@media (max-width:900px){.admin-top__search{display:none;}}
@media (max-width:900px){.admin-top__title{margin-right:auto;}}

.admin-realtime{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border-radius:var(--r-pill);
  font-size:12.5px;
  font-weight:600;
  background:rgba(63,122,75,.1);
  color:var(--st-green);
}
.admin-realtime__dot{
  width:8px;height:8px;
  border-radius:var(--r-pill);
  background:var(--st-green);
  animation:pulse-dot 2s ease-in-out infinite;
}
.admin-realtime.is-off{background:rgba(166,58,42,.1);color:var(--st-red);}
.admin-realtime.is-off .admin-realtime__dot{background:var(--st-red);animation:none;}
@media (max-width:640px){.admin-realtime__label{display:none;}}
@keyframes pulse-dot{
  0%,100%{opacity:1;}
  50%{opacity:.35;}
}

/* ---------- Contenu ---------- */
.admin-content{padding:24px;flex:1;}
@media (max-width:640px){.admin-content{padding:16px 16px 88px;}}
@media (max-width:1023px){.admin-content{padding-bottom:88px;}}

.admin-tabpane{display:none;}
.admin-tabpane.is-active{display:block;}

.admin-section__head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:24px;
}
.admin-section__head h2{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:var(--display-weight);
  margin-top:4px;
}
.admin-section__sub{font-size:14px;color:var(--ink-55);margin-top:4px;max-width:60ch;}
.admin-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}

.admin-input{
  min-height:40px;
  padding:9px 14px;
  border-radius:var(--r-btn);
  border:1px solid var(--line-strong);
  background:var(--cream-50);
  font-size:14px;
  color:var(--ink);
}
.admin-input:focus{
  outline:none;
  border-color:var(--bordeaux);
  box-shadow:0 0 0 3px rgba(122,42,29,.12);
}

.admin-card{
  background:var(--cream-50);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:22px;
  margin-bottom:20px;
}
.admin-card--flush{padding:0;overflow:hidden;}
.admin-card__title{
  font-family:var(--font-display);
  font-size:18px;
  font-weight:var(--display-weight);
  margin-bottom:14px;
}
.admin-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
@media (max-width:900px){.admin-grid-2{grid-template-columns:1fr;}}

.admin-empty{padding:40px 24px;text-align:center;color:var(--ink-55);font-size:14.5px;}

.linklike{
  color:var(--bordeaux);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:2px;
}

/* ============================================================
   BRIEF IA
   ============================================================ */

.ai-brief{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:20px;
  margin-bottom:24px;
  border:1px solid var(--gold-soft);
  border-radius:var(--r-lg);
  background:linear-gradient(100deg,#FFF7E6,#FFEFD0);
}
.ai-brief__icon{
  width:40px;height:40px;
  flex:none;
  display:grid;place-items:center;
  border-radius:var(--r-btn);
  background:linear-gradient(135deg,var(--gold),#E2A60A);
  color:var(--cream-50);
}
.ai-brief__body{flex:1;min-width:0;}
.ai-brief__headline{
  font-family:var(--font-display);
  font-size:17px;
  font-weight:var(--display-weight);
}
.ai-brief__bullets{margin-top:8px;display:flex;flex-direction:column;gap:5px;}
.ai-brief__bullets li{
  font-size:13.5px;
  line-height:1.55;
  color:var(--ink-65);
  padding-left:14px;
  position:relative;
}
.ai-brief__bullets li::before{
  content:"";
  position:absolute;
  left:0;top:8px;
  width:5px;height:5px;
  border-radius:var(--r-pill);
  background:var(--gold);
}
.ai-brief__loading{font-size:13.5px;color:var(--ink-65);}
.ai-brief__alerts{display:flex;flex-direction:column;gap:6px;margin-top:12px;}
.ai-brief__alert{
  display:flex;
  gap:8px;
  font-size:13px;
  padding:8px 12px;
  border-radius:var(--r-sm);
  background:rgba(255,255,255,.5);
}
.ai-brief__alert--warn{color:var(--st-amber);}
.ai-brief__alert--danger{color:var(--st-red);}
.ai-brief__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.ai-brief__action{
  font-size:12.5px;
  font-weight:600;
  padding:7px 14px;
  border-radius:var(--r-pill);
  border:1px solid rgba(195,154,78,.5);
  color:var(--bordeaux);
  background:rgba(255,255,255,.6);
}
.ai-brief__refresh{flex:none;background:rgba(255,255,255,.6);}

/* Priorisation IA */
.ai-priority{
  border:1px solid var(--gold-soft);
  border-radius:var(--r-lg);
  background:rgba(251,243,228,.6);
  padding:16px 20px;
  margin-bottom:20px;
}
.ai-priority__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.ai-priority__refresh{
  font-size:12.5px;
  font-weight:600;
  color:var(--bordeaux);
  text-decoration:underline;
  text-underline-offset:2px;
}
.ai-priority__list{display:flex;flex-direction:column;gap:6px;font-size:13.5px;}

/* ============================================================
   KPI
   ============================================================ */

.kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:24px;
}
@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.kpi-grid{grid-template-columns:1fr;}}
.kpi{
  background:var(--cream-50);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:20px;
}
.kpi--accent{border-color:var(--gold);background:rgba(195,154,78,.06);}
.kpi__label{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:600;
  color:var(--ink-55);
}
.kpi__icon{
  width:32px;height:32px;
  display:grid;place-items:center;
  border-radius:var(--r-sm);
  background:var(--cream-200);
  color:var(--bordeaux);
}
.kpi__icon .icon{width:16px;height:16px;}
.kpi__value{
  display:block;
  font-family:var(--font-display);
  font-size:30px;
  font-weight:var(--display-weight);
  line-height:1.1;
  margin-top:12px;
}
.kpi__hint{
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:4px;
  font-size:12px;
  font-weight:600;
  color:var(--ink-40);
}
.kpi__hint .icon{width:14px;height:14px;}
.kpi__hint--up{color:var(--st-green);}
.kpi__hint--down{color:var(--st-red);}

/* ============================================================
   SEGMENTED CONTROL (Cuisine / Livreur, sous-onglets catalogue)
   ============================================================ */

.seg{
  display:inline-flex;
  gap:4px;
  padding:4px;
  border-radius:var(--r-btn);
  background:var(--cream-200);
}
.seg--sub{margin-bottom:20px;}
.seg__btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  min-height:40px;
  border-radius:var(--r-sm);
  font-size:13.5px;
  font-weight:600;
  color:var(--ink-65);
  transition:background-color .2s, color .2s;
}
.seg__btn .icon{width:16px;height:16px;}
.seg__btn.is-active{background:var(--bordeaux);color:var(--cream-50);}

.autoprint{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--ink-65);
  cursor:pointer;
}
.autoprint input{width:16px;height:16px;accent-color:var(--bordeaux);}

/* ============================================================
   KDS : écran de production
   ============================================================ */

.kds{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  align-items:start;
}
@media (max-width:1280px){.kds{grid-template-columns:repeat(2,1fr);}}
@media (max-width:720px){.kds{grid-template-columns:1fr;}}

.kds__col{
  background:var(--cream-50);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:14px;
  min-height:180px;
}
.kds__head{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 4px;
  margin-bottom:14px;
}
.kds__head b{font-size:14px;}
.kds__chip{
  width:10px;height:10px;
  border-radius:3px;
}
.kds__chip--received{background:var(--st-blue);}
.kds__chip--preparing{background:var(--st-amber);}
.kds__chip--ready{background:var(--st-green);}
.kds__chip--delivering{background:var(--bordeaux);}
.kds__count{
  margin-left:auto;
  font-size:12px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:var(--ink-55);
  background:var(--cream-200);
  border-radius:var(--r-pill);
  padding:2px 10px;
}
.kds__stack{display:flex;flex-direction:column;gap:12px;}
.kds__empty{
  padding:24px 8px;
  text-align:center;
  font-size:13px;
  color:var(--ink-40);
}

/* Carte de commande */
.kds-card{
  border:1px solid var(--line);
  border-left:3px solid var(--ink-40);
  border-radius:var(--r-btn);
  background:var(--cream-50);
  padding:14px;
  box-shadow:0 8px 20px -16px rgba(67,20,12,.5);
}
.kds-card--received{border-left-color:var(--st-blue);}
.kds-card--preparing{border-left-color:var(--st-amber);}
.kds-card--ready{border-left-color:var(--st-green);}
.kds-card--delivering{border-left-color:var(--bordeaux);}

.kds-card__ai{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:8px;
}
.kds-card__ai .icon{width:13px;height:13px;}

.kds-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.kds-card__ref{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;}

/* Chrono : vert sous le seuil, ambre, rouge au-delà */
.kds-card__timer{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:12px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  padding:4px 10px;
  border-radius:var(--r-pill);
  background:rgba(63,122,75,.12);
  color:var(--st-green);
}
.kds-card__timer .icon{width:13px;height:13px;}
.kds-card__timer--warn{background:rgba(185,131,43,.15);color:var(--st-amber);}
.kds-card__timer--late{background:rgba(166,58,42,.14);color:var(--st-red);}

.kds-card__items{font-size:13px;line-height:1.5;margin-bottom:10px;}
.kds-card__items .formule{color:var(--ink-55);}

.kds-card__meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:12px;
}
.kds-card__mode{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  font-weight:700;
  padding:4px 8px;
  border-radius:var(--r-sm);
  background:rgba(36,24,19,.06);
  color:var(--ink-55);
}
.kds-card__mode .icon{width:13px;height:13px;}
.kds-card__mode--delivery{background:rgba(46,90,168,.1);color:var(--st-blue);}
.kds-card__slot{font-size:11.5px;font-weight:600;color:var(--ink-55);}
.kds-card__slot--late{color:var(--st-red);}

/* Un seul bouton d'action, coloré par l'étape en cours */
.kds-card__action{
  width:100%;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px;
  border-radius:var(--r-sm);
  font-size:13px;
  font-weight:700;
  color:var(--cream-50);
  transition:filter .2s;
}
.kds-card__action:hover{filter:brightness(1.1);}
.kds-card__action .icon{width:15px;height:15px;}
.kds-card__action--received{background:var(--st-blue);}
.kds-card__action--preparing{background:var(--st-amber);}
.kds-card__action--ready{background:var(--st-green);}
.kds-card__action--delivering{background:var(--bordeaux);}

.kds-card__secondary{
  display:flex;
  gap:8px;
  margin-top:8px;
}
.kds-card__link{
  flex:1;
  min-height:36px;
  font-size:12px;
  font-weight:600;
  color:var(--ink-55);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  transition:border-color .2s, color .2s;
}
.kds-card__link:hover{border-color:var(--line-strong);color:var(--ink);}
.kds-card__link--danger:hover{border-color:var(--st-red);color:var(--st-red);}

/* ============================================================
   TABLEAUX
   ============================================================ */

.admin-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
  min-width:820px;
}
.admin-table th{
  text-align:left;
  padding:14px 16px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--brick);
  background:rgba(234,220,192,.4);
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.admin-table th[data-sort]{cursor:pointer;user-select:none;}
.admin-table th[data-sort]:hover{color:var(--bordeaux);}
.admin-table th[data-sort]::after{content:"";margin-left:6px;opacity:.4;}
.admin-table th[data-sort][aria-sort="ascending"]::after{content:"↑";opacity:1;}
.admin-table th[data-sort][aria-sort="descending"]::after{content:"↓";opacity:1;}
.admin-table td{
  padding:14px 16px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.admin-table tbody tr:last-child td{border-bottom:0;}
.admin-table tbody tr:hover{background:rgba(251,246,236,.8);}
.admin-table .tabnum{font-variant-numeric:tabular-nums;}

/* ============================================================
   CLIENTS
   ============================================================ */

.clients-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:16px;
}
.client-card{
  background:var(--cream-50);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:18px;
  text-align:left;
  transition:border-color .2s, box-shadow .2s;
}
.client-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm);}
.client-card__head{display:flex;align-items:center;gap:12px;}
.client-card__name{font-weight:600;font-size:15px;}
.client-card__mail{font-size:12.5px;color:var(--ink-55);}
.client-card__stats{
  display:flex;
  gap:18px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--line);
  font-size:12.5px;
  color:var(--ink-55);
}
.client-card__stats b{
  display:block;
  font-family:var(--font-display);
  font-size:17px;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}

/* ============================================================
   CATALOGUE
   ============================================================ */

.catalog-list{display:flex;flex-direction:column;gap:12px;}
.catalog-item{
  display:grid;
  /* photo | nom+description | prix | actions */
  grid-template-columns:64px minmax(180px,1fr) auto auto;
  align-items:center;
  gap:16px;
  background:var(--cream-50);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:14px 18px;
}
@media (max-width:1100px){
  .catalog-item{grid-template-columns:64px 1fr;}
  .catalog-item__multi,
  .catalog-item__price,
  .catalog-item__actions{grid-column:1 / -1;}
}
@media (max-width:760px){
  .catalog-item{grid-template-columns:56px 1fr;}
}
.catalog-item__img{
  width:64px;height:64px;
  border-radius:var(--r-btn);
  overflow:hidden;
  border:1px solid var(--line);
  background:radial-gradient(circle at 50% 45%, #fff, #FFEBCB);
}
.catalog-item__img img{width:100%;height:100%;object-fit:cover;}
.catalog-item__name{font-weight:600;font-size:15px;}
.catalog-item__prices{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
}
.catalog-item__prices input{width:92px;}
.catalog-item__actions{display:flex;align-items:center;gap:10px;}

.switch{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:var(--ink-55);
  cursor:pointer;
}
.switch input{width:16px;height:16px;accent-color:var(--st-red);}

/* ============================================================
   FORMULAIRES ADMIN
   ============================================================ */

.admin-form{display:flex;flex-direction:column;gap:16px;}
.admin-form label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:13px;
  font-weight:600;
  color:var(--ink-65);
}
.admin-form input,
.admin-form textarea,
.admin-form select{
  min-height:44px;
  padding:11px 14px;
  border-radius:var(--r-btn);
  border:1px solid var(--line-strong);
  background:var(--cream-50);
  font-size:14.5px;
  font-weight:400;
  color:var(--ink);
}
.admin-form textarea{min-height:88px;resize:vertical;}
.admin-form input:focus,
.admin-form textarea:focus,
.admin-form select:focus{
  outline:none;
  border-color:var(--bordeaux);
  box-shadow:0 0 0 3px rgba(122,42,29,.12);
}
.admin-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.admin-form .form-row--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:760px){
  .admin-form .form-row,
  .admin-form .form-row--3{grid-template-columns:1fr;}
}
.admin-form__actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.monthly-preview{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:13px;
  color:var(--ink-55);
}
.monthly-preview img{
  width:88px;height:88px;
  object-fit:cover;
  border-radius:var(--r-btn);
  border:1px solid var(--line);
  background:var(--cream-200);
}

/* ============================================================
   NAVIGATION MOBILE
   ============================================================ */

.admin-bottom-nav{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:100;
  display:none;
  background:var(--cream-50);
  border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);
}
@media (max-width:1023px){
  .admin-bottom-nav{display:flex;}
}
.admin-bottom-nav__item{
  position:relative;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:10px 4px;
  min-height:56px;
  font-size:10.5px;
  font-weight:600;
  color:var(--ink-55);
  transition:color .2s;
}
.admin-bottom-nav__item .icon{width:20px;height:20px;}
.admin-bottom-nav__item.is-active{color:var(--bordeaux);}
.admin-bottom-nav__badge{
  position:absolute;
  top:4px;
  right:calc(50% - 22px);
  min-width:17px;height:17px;
  padding-inline:4px;
  display:grid;place-items:center;
  border-radius:var(--r-pill);
  background:var(--bordeaux);
  color:var(--cream-50);
  font-size:10px;
  font-weight:700;
}
.admin-bottom-nav__badge[data-empty="1"]{display:none;}

/* Voile derrière la sidebar mobile */
.admin-scrim{
  position:fixed;
  inset:0;
  z-index:140;
  background:rgba(46,13,7,.45);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s;
}
.admin-scrim.is-open{opacity:1;pointer-events:auto;}

/* ============================================================
   IMPRESSION : ticket cuisine 80 mm
   ============================================================ */

@media print{
  .admin-side,
  .admin-top,
  .admin-bottom-nav,
  .admin-actions,
  .ai-brief,
  .ai-priority,
  .kds-card__action,
  .kds-card__secondary,
  .modal__close{display:none !important;}

  .admin-body{background:#fff;}
  .admin-shell{display:block;}
  .admin-content{padding:0;}

  .ticket{
    width:80mm;
    font-family:var(--font-body);
    font-size:12px;
    color:#000;
  }
  .ticket__ref{font-size:18px;font-weight:700;}
  .ticket__line{display:flex;justify-content:space-between;gap:8px;padding:2px 0;}
  .ticket hr{border:0;border-top:1px dashed #000;margin:6px 0;}
  @page{size:80mm auto;margin:4mm;}
}

/* Zone d'impression du ticket, hors écran le reste du temps */
.ticket{position:absolute;left:-9999px;top:0;}
@media print{.ticket{position:static;left:auto;}}

/* ============================================================
   GRAPHE EN BARRES (statistiques)
   ============================================================ */
.chart-bars{display:flex;flex-direction:column;gap:10px;}
.chart-bars__empty{font-size:13.5px;color:var(--ink-55);padding:8px 0;}
.chart-bar{
  display:grid;
  grid-template-columns:52px 1fr auto;
  align-items:center;
  gap:12px;
}
.chart-bar__label{font-size:12.5px;color:var(--ink-55);white-space:nowrap;}
.chart-bar__track{
  height:10px;
  border-radius:var(--r-pill);
  background:var(--cream-200);
  overflow:hidden;
}
.chart-bar__fill{
  display:block;
  height:100%;
  border-radius:var(--r-pill);
  background:linear-gradient(90deg,var(--gold),var(--bordeaux));
  min-width:2px;
}
.chart-bar__value{
  font-size:13px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

/* ---------- Catalogue : photo cliquable, ajout, description ---------- */
.catalog-add{margin-bottom:4px;}
.catalog-item__img--edit{
  position:relative;
  cursor:pointer;
  display:block;
}
.catalog-item__img-hint{
  position:absolute;
  inset:auto 0 0 0;
  padding:3px;
  font-size:10px;
  font-weight:700;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#fff;
  background:rgba(20,16,14,.65);
  opacity:0;
  transition:opacity .2s;
}
.catalog-item__img--edit:hover .catalog-item__img-hint,
.catalog-item__img--edit:focus-within .catalog-item__img-hint{opacity:1;}
.catalog-item__descinput{
  width:100%;
  margin-top:6px;
  padding:8px 12px;
  font-size:13px;
  border-radius:var(--r-btn);
  border:1px solid var(--line);
  background:var(--cream-50);
}
.catalog-item__descinput:focus{
  outline:none;
  border-color:var(--bordeaux);
  box-shadow:0 0 0 3px rgba(181,69,51,.12);
}
.catalog-item__actions{flex-wrap:wrap;justify-content:flex-end;}

/* Prix par formule : libellé au-dessus du champ, jamais collé à côté. */
.catalog-item__multi{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.catalog-item__multi label,
.catalog-item__price label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:11px;
  font-weight:600;
  color:var(--ink-55);
}
.catalog-item__multi input{width:90px;}
.catalog-item__multi input,
.catalog-item__price input{
  padding:8px 10px;
  font-size:14px;
  font-variant-numeric:tabular-nums;
  border-radius:var(--r-btn);
  border:1px solid var(--line-strong);
  background:var(--cream-50);
}
.toggle-soldout{
  padding:8px 14px;
  min-height:38px;
  border-radius:var(--r-pill);
  border:1px solid var(--line-strong);
  font-size:12.5px;
  font-weight:600;
  color:var(--ink-65);
  white-space:nowrap;
}
.toggle-soldout.is-on{
  background:rgba(155,44,29,.1);
  border-color:var(--st-red);
  color:var(--st-red);
}
.catalog-item.is-soldout{opacity:.6;}

/* ---------- Fidélité dans la fiche client ----------
   Ces pastilles vivent hors d'une grille : sans largeur explicite,
   l'aspect-ratio de .loyalty-stamp les faisait gonfler en cercle géant. */
.client-card__loyalty,
.client-detail__loyalty{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin-top:10px;
}
.loyalty-mini{
  width:18px;
  height:18px;
  flex:none;
  border-radius:var(--r-pill);
  border:1px dashed var(--line-strong);
  background:transparent;
}
.loyalty-mini--filled{
  border-style:solid;
  border-color:var(--bordeaux);
  background:var(--bordeaux);
}
.loyalty-mini--gift{
  display:grid;
  place-items:center;
  border-style:solid;
  border-color:var(--gold);
  background:var(--gold);
  color:var(--bordeaux-900);
  margin-left:4px;
}
.loyalty-mini--gift .icon{width:11px;height:11px;stroke-width:2.2;}
.loyalty-mini--gift.is-unlocked{background:var(--st-green);border-color:var(--st-green);color:#fff;}

/* Les tampons numérotés de la fiche client : taille fixe, pas d'aspect-ratio. */
.client-detail__loyalty .loyalty-stamp{
  width:30px;
  height:30px;
  aspect-ratio:auto;
  font-size:11px;
}
.client-detail__loyalty .loyalty-stamp .icon{width:14px;height:14px;}

/* Bascule d'affichage sur la carte, distincte de la rupture du jour. */
.toggle-visible{
  padding:8px 14px;
  min-height:38px;
  border-radius:var(--r-pill);
  border:1px solid var(--line-strong);
  font-size:12.5px;
  font-weight:600;
  color:var(--ink-65);
  white-space:nowrap;
}
.toggle-visible.is-off{
  background:rgba(20,16,14,.06);
  border-color:var(--line-strong);
  color:var(--ink-40);
  text-decoration:line-through;
}
.catalog-item__name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.catalog-item__name .badge--month{flex:none;}

/* Ligne de tableau cliquable : elle ouvre la fiche correspondante. */
.row-link{cursor:pointer;}
.row-link:hover{background:rgba(255,190,38,.12);}
.row-link:focus-visible{outline:2px solid var(--bordeaux);outline-offset:-2px;}

/* ============================================================
   ÉQUIPE
   ============================================================ */
.staff-list{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.staff-row{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:var(--cream-50);
}
@media (max-width:760px){
  .staff-row{grid-template-columns:auto 1fr;}
  .staff-row select,.staff-row .btn,.staff-row__lock{grid-column:1 / -1;}
}
.staff-row__name{font-weight:600;font-size:14.5px;}
.staff-row__meta{font-size:12.5px;color:var(--ink-55);margin-top:2px;}
.staff-row__me{
  font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  background:var(--cream-200);color:var(--ink-65);
  padding:2px 8px;border-radius:var(--r-pill);margin-left:6px;
}
.staff-row__lock{font-size:12.5px;color:var(--ink-40);white-space:nowrap;}

/* Identifiants affichés une seule fois après création d'un compte. */
.credential{
  margin-top:18px;padding:18px;
  border:1px dashed var(--gold);border-radius:var(--r-md);
  background:rgba(255,190,38,.08);
}
.credential__label{
  font-size:10.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-55);
}
.credential__value{
  font-size:17px;font-weight:700;margin-top:4px;
  user-select:all;word-break:break-all;
}

/* Liste de choix (rôle du membre). */
.choice-list{display:flex;flex-direction:column;gap:8px;margin-top:18px;}
.choice{
  text-align:left;padding:14px 16px;
  border:1px solid var(--line-strong);border-radius:var(--r-md);
  background:var(--cream-50);
  transition:border-color .18s,background-color .18s;
}
.choice:hover{border-color:var(--bordeaux);background:rgba(181,69,51,.04);}
.choice b{display:block;font-size:15px;}
.choice small{display:block;margin-top:2px;font-size:12.5px;color:var(--ink-55);}

/* ============================================================
   DEVIS & FACTURES
   ============================================================ */
.doc-lines-head,
.doc-line{
  display:grid;
  grid-template-columns:1fr 80px 110px 44px;
  gap:8px;
  align-items:center;
}
.doc-lines-head{
  margin-top:8px;
  font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-55);
}
.doc-line{margin-top:6px;}
.doc-line input{min-height:40px;}
@media (max-width:600px){
  .doc-lines-head{display:none;}
  .doc-line{grid-template-columns:1fr 1fr;}
  .doc-line [data-l-label]{grid-column:1 / -1;}
}
.doc-total{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:8px;padding-top:14px;border-top:1px solid var(--line);
  font-size:15px;
}
.doc-total strong{font-size:22px;color:var(--bordeaux);}

/* Éditeur de devis/facture : plus large que la modale de confirmation. */
.modal__panel--doc{width:min(720px,100%) !important;}
