:root{
  /* ?? Legacy (compatibilit?) ?? */
  --primary:#003896;--accent:#E2001A;--pvp:#d97706;--salad:#0f766e;--frigo:#0ea5e9;--todo:#7c3aed;
  --reception:#059669;--inspection:#7c3aed;
  --bg:#f5f5f0;--surface:#ffffff;--text:#1e293b;--success:#10b981;--danger:#ef4444;--muted:#64748b;
  --ce-blue:#003896;--ce-red:#E2001A;--carrefour:#003896;--carrefour-red:#E2001A;

  /* ?? V10 Design Tokens ?? */

  /* Couleurs modules */
  --color-accueil:        #1A5CB8;
  /* Dossiers accueil (springboard) */
  --folder-tile-bg1:      #f4f8ff;
  --folder-tile-bg2:      #e2ebfb;
  --folder-tile-border:   rgba(26,92,184,.2);
  --folder-face-bg:       rgba(255,255,255,.55);
  --folder-mini-empty:    rgba(26,92,184,.08);
  --color-dlc:            #185FA5;
  --color-checklist:      #534AB7;
  --color-mypie:          #854F0B;
  --color-reception:      #0F6E56;
  --color-stock:          #993C1D;
  --color-pvp:            #534AB7;
  --color-saladbar:       #0F6E56;
  --color-aide-commande:  #BA7517;
  --color-autocontrol:    #0C447C;
  --color-messagerie:     #E24B4A;
  --color-admin:          #0C447C;
  --color-employe:        #0F6E56;
  --color-parametres:     #444441;

  /* Backgrounds s?mantiques */
  --color-background-primary:   #ffffff;
  --color-background-secondary: #f8fafc;
  --color-border-tertiary:      #e2e8f0;
  --color-border-secondary:     #cbd5e1;
  --color-text-primary:         #1e293b;
  --color-text-secondary:       #475569;
  --color-text-tertiary:        #94a3b8;

  /* Badges statuts */
  --badge-up-bg:    #EAF3DE; --badge-up-text:   #3B6D11;
  --badge-down-bg:  #FCEBEB; --badge-down-text:  #A32D2D;
  --badge-warn-bg:  #FAEEDA; --badge-warn-text:  #633806;
  --badge-info-bg:  #E6F1FB; --badge-info-text:  #0C447C;

  /* Temp?ratures / Conformit? */
  --temp-ok:   #3B6D11;
  --temp-warn: #BA7517;
  --temp-bad:  #E24B4A;

  /* CA Chart */
  --bar-past:   #B5D4F4;
  --bar-today:  #1A5CB8;
  --bar-future: #e2e8f0;

  /* Shifts Planning */
  --shift-fermeture-bg:  #FCEBEB; --shift-fermeture-text: #A32D2D;
  --shift-matin-bg:      #E6F1FB; --shift-matin-text:     #0C447C;
  --shift-reception-bg:  #EAF3DE; --shift-reception-text: #3B6D11;
  --shift-cuisson-bg:    #FAEEDA; --shift-cuisson-text:   #633806;
  --shift-conges-bg:     #FBEAF0; --shift-conges-text:    #993556;

  /* Fr?quences Hygi?ne */
  --freq-journalier: #E24B4A;
  --freq-2xsem:      #BA7517;
  --freq-hebdo:      #185FA5;
  --freq-mensuel:    #534AB7;
  --freq-semestre:   #5F5E5A;
  --freq-appareil:   #0F6E56;

  /* Typographie */
  --fs-xs:   9px;
  --fs-sm:   10px;
  --fs-base: 11px;
  --fs-md:   12px;
  --fs-lg:   13px;
  --fs-xl:   14px;
  --fs-2xl:  18px;
  --fs-3xl:  22px;

  /* Border radius */
  --r-sm:   7px;
  --r-md:   8px;
  --r-base: 9px;
  --r-lg:   10px;
  --r-xl:   11px;
  --r-2xl:  12px;
  --r-3xl:  14px;
  --r-fab:  15px;
  --ios-blur: saturate(180%) blur(18px);
  --ios-border: rgba(15,23,42,.08);
  --ios-shadow: 0 8px 26px rgba(15,23,42,.08);
  --brand-700:#0C447C;
  --brand-600:#185FA5;
  --brand-500:#1A5CB8;
  --brand-100:#eaf2ff;
  --surface-0:#ffffff;
  --surface-1:#f8fafc;
  --surface-2:#f1f5f9;
  --ink-900:#0f172a;
  --ink-700:#334155;
  --ink-500:#64748b;
  --line-soft:#dbe7f7;
  --line-mid:#cbd5e1;
  --shadow-soft:0 4px 12px rgba(15,23,42,.05);
  --shadow-card:0 6px 16px rgba(15,23,42,.06);

  /* ?? Finition Apple : syst?me d'espacement 4pt ?? */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
  --sp-5:20px; --sp-6:24px; --sp-8:32px; --sp-10:40px;
  /* Rayons fluides (HIG) */
  --r-pill:999px;
  --r-tile:14px;
  --r-sheet:24px;
  /* ?l?vations ? une seule ?chelle coh?rente */
  --elev-1:0 1px 3px rgba(15,23,42,.06);
  --elev-2:0 6px 20px rgba(15,23,42,.09);
  --elev-3:0 18px 48px rgba(15,23,42,.18);
  /* Courbes d'animation Apple */
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:320ms;
  /* Verre d?poli (header / dock / sheets) */
  --glass-bg:rgba(255,255,255,.72);
  --glass-blur:saturate(180%) blur(20px);
  --hairline:rgba(15,23,42,.10);
  --accent:#1A5CB8;
  --accent-soft:#eaf2ff;
  --danger:#dc2626;
}

/* ?? CARREFOUR EXPRESS BANNER ?? */
#home-banner{
  background:linear-gradient(135deg,#003896 0%,#1a50c8 50%,#003896 100%);
  border-radius:18px;
  padding:0;
  margin-bottom:16px;
  overflow:hidden;
  box-shadow:0 8px 30px rgba(0,56,150,.25);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:72px;
}
#home-banner::before{
  content:'';position:absolute;top:0;left:0;right:0;bottom:0;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0,rgba(255,255,255,.03) 1px,transparent 1px,transparent 12px);
}
#home-banner .banner-logo-wrap{display:flex;align-items:center;gap:12px;padding:12px 16px;position:relative;z-index:2;}
#home-banner .banner-logo{height:46px;object-fit:contain;filter:brightness(10);}
#home-banner .banner-text{color:#fff;position:relative;z-index:2;}
#home-banner .banner-title{font-weight:500;font-size:15px;letter-spacing:.5px;}
#home-banner .banner-sub{font-size:11px;opacity:.75;margin-top:2px;}
#home-banner .banner-red-stripe{width:8px;background:var(--ce-red);align-self:stretch;flex-shrink:0;}

/* ?? MODULE CARREFOUR & GESTION MAGASIN ?? */
.module-parent-card{
  background:var(--surface-0);
  border-radius:18px;
  padding:0;
  box-shadow:var(--shadow-card);
  margin-bottom:15px;
  overflow:hidden;
  border:1px solid var(--line-soft);
}
.module-parent-header{
  background:linear-gradient(135deg,var(--brand-700),var(--brand-500));
  padding:14px 18px;
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
}
.module-parent-header.red-header{
  background:linear-gradient(135deg,#b91c1c,#ef4444);
}
.module-parent-header.green-header{
  background:linear-gradient(135deg,#065f46,#059669);
}
.module-parent-header i{color:#fff;font-size:22px;}
.module-parent-header-text{color:#fff;}
.module-parent-header-text .mph-title{font-weight:500;font-size:16px;}
.module-parent-header-text .mph-sub{font-size:12px;opacity:.75;margin-top:2px;}
.module-parent-body{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.module-sub-btn{
  background:linear-gradient(135deg,var(--surface-1),var(--surface-0));
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:14px 10px;
  text-align:center;
  cursor:pointer;
  transition:all .15s;
  position:relative;
}
.module-sub-btn:active{transform:scale(.97);}
.module-sub-btn i{font-size:22px;margin-bottom:6px;display:block;}
.module-sub-btn .msb-title{font-weight:500;font-size:13px;color:#1e293b;}
.module-sub-btn .msb-sub{font-size:11px;color:#64748b;margin-top:3px;}
.module-sub-btn.wide{grid-column:1/-1;}
.module-sub-btn.blue-accent{border-color:#bfdbfe;}
.module-sub-btn.blue-accent i{color:#003896;}
.module-sub-btn.red-accent{border-color:#fecaca;}
.module-sub-btn.red-accent i{color:#E2001A;}
.module-sub-btn.green-accent{border-color:#bbf7d0;}
.module-sub-btn.green-accent i{color:#059669;}
.module-sub-btn.purple-accent{border-color:#e9d5ff;}
.module-sub-btn.purple-accent i{color:#7c3aed;}
.module-sub-btn.orange-accent{border-color:#fed7aa;}
.module-sub-btn.orange-accent i{color:#ea580c;}

/* ?? PLANNING MODULE ?? */
#view-planning{animation:fadeIn .2s ease;}
#plan-employees{overflow-x:auto;}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.planning-week-nav{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:14px;padding:12px 16px;margin-bottom:14px;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.planning-week-nav button{background:#f1f5f9;border:none;border-radius:10px;padding:8px 14px;font-weight:500;cursor:pointer;font-size:16px;}
.planning-week-nav .wk-label{font-weight:500;font-size:15px;color:var(--ink-900);}
.planning-staff-row{background:var(--surface-0);border-radius:14px;margin-bottom:10px;overflow:hidden;box-shadow:var(--shadow-soft);}
.planning-staff-header{background:var(--surface-1);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:0.5px solid var(--line-soft);}
.planning-staff-name{font-weight:500;font-size:14px;color:#1e293b;}
.planning-staff-hours{font-size:12px;font-weight:500;color:var(--primary);}
.planning-days-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:8px;}
.planning-day-cell{border-radius:8px;padding:4px;text-align:center;cursor:pointer;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:all .15s;border:1.5px solid transparent;}
.planning-day-cell.off{background:#f8fafc;color:#94a3b8;}
.planning-day-cell.work{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;}
.planning-day-cell.rest{background:#fce7f3;border-color:#f9a8d4;color:#be185d;}
.planning-day-cell.work .dc-hours{font-size:10px;font-weight:500;}
.planning-day-cell .dc-day{font-size:10px;font-weight:500;margin-bottom:2px;}
.planning-day-cell .dc-content{font-size:11px;font-weight:500;}
.planning-rules-banner{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1.5px solid #fcd34d;border-radius:12px;padding:12px;margin-bottom:14px;}
.planning-rules-banner h4{margin:0 0 6px 0;color:#92400e;font-size:13px;display:flex;align-items:center;gap:6px;}
.rule-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.7);border-radius:20px;padding:4px 10px;font-size:11px;font-weight:500;color:#78350f;margin:3px;}
.planning-new-staff{background:#fff;border-radius:14px;padding:14px;box-shadow:0 2px 8px rgba(0,0,0,.05);margin-bottom:14px;}
.shift-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9000;display:flex;align-items:flex-end;justify-content:center;padding:16px;}
.shift-modal-card{background:#fff;border-radius:20px;padding:22px;width:100%;max-width:420px;animation:slideUp .22s cubic-bezier(.34,1.56,.64,1);}
.time-input-row{display:flex;gap:10px;align-items:center;margin-bottom:12px;}
.time-input-row label{font-size:12px;font-weight:500;color:#64748b;white-space:nowrap;}
.time-input-row input{flex:1;padding:12px;border:1.5px solid #cbd5e1;border-radius:10px;font-size:16px;background:#fff;outline:none;}

/* ?? CARREFOUR MODULE VIEW ?? */
#view-carrefour{animation:fadeIn .2s ease;}
.carrefour-sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.carrefour-sub-card{
  background:#fff;border-radius:18px;padding:18px 12px;
  text-align:center;border:2px solid #e2e8f0;
  cursor:pointer;transition:all .15s;
  box-shadow:0 3px 10px rgba(0,0,0,.05);
}
.carrefour-sub-card:active{transform:scale(.97);}
.carrefour-sub-card i{font-size:28px;margin-bottom:8px;display:block;}
.carrefour-sub-card .csc-title{font-weight:500;font-size:14px;color:#1e293b;}
.carrefour-sub-card .csc-sub{font-size:11px;color:#64748b;margin-top:4px;}
.carrefour-sub-card.wide{grid-column:1/-1;}

/* ?? METI MODULE ?? */
#view-meti{animation:fadeIn .2s ease;}
#meti-iframe-wrap{position:fixed;inset:0;z-index:8000;background:#fff;display:flex;flex-direction:column;}
#meti-bar{background:var(--primary);padding:12px 16px;display:flex;align-items:center;gap:12px;padding-top:calc(12px + env(safe-area-inset-top));}

/* ?? GESTION MAGASIN ?? */
#view-gestion-magasin{animation:fadeIn .2s ease;}
.gm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.gm-card{background:#fff;border-radius:18px;padding:18px 10px;text-align:center;cursor:pointer;color:#fff;font-weight:500;box-shadow:0 8px 20px rgba(0,0,0,.08);transition:transform .15s;}
.gm-card:active{transform:scale(.97);}
.gm-card i{font-size:24px;margin-bottom:8px;display:block;}
.gm-card .gmc-sub{font-size:11px;opacity:.8;margin-top:4px;font-weight:500;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-family:system-ui,sans-serif;user-select:none;}
body{margin:0;background:var(--bg);color:var(--text);height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;}
/* iOS safe area */
body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);}
.hidden{display:none!important;}

/* Focus clavier visible */
:focus-visible{outline:2px solid #1A5CB8;outline-offset:2px;}
button:focus-visible,.nav-btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px rgba(26,92,184,.22);}

/* ?? TOAST ?? */
#toast-container{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none;width:min(380px,92vw);}
.toast{background:#1e293b;color:#fff;padding:13px 16px;border-radius:14px;font-size:14px;font-weight:500;box-shadow:0 8px 30px rgba(0,0,0,.25);display:flex;align-items:center;gap:10px;animation:toastIn .25s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:auto;}
.toast.ok{background:#064e3b;border-left:4px solid #10b981;}
.toast.err{background:#7f1d1d;border-left:4px solid #ef4444;}
.toast.warn{background:#78350f;border-left:4px solid #f59e0b;}
.toast.info{background:#1e3a5f;border-left:4px solid #3b82f6;}
.toast-out{animation:toastOut .2s ease forwards;}
@keyframes toastIn{from{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}

/* ?? SPINNER ?? */
#spinner-overlay{position:fixed;inset:0;z-index:90000;background:#ffffff;display:flex;align-items:center;justify-content:center;}
.spinner-panel{display:flex;flex-direction:column;align-items:center;gap:16px;}
.spinner-logo{width:min(180px,48vw);height:auto;aspect-ratio:1;object-fit:contain;border-radius:0;box-shadow:none;}
.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

/* ?? CONFIRM / PROMPT ?? */
#modal-confirm,#modal-prompt,#modal-select{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:80000;display:flex;align-items:flex-end;justify-content:center;padding:16px;}
.dlg-card{background:#fff;border-radius:20px;padding:24px;width:100%;max-width:420px;animation:slideUp .22s cubic-bezier(.34,1.56,.64,1);}
.dlg-title{font-size:17px;font-weight:500;margin:0 0 8px 0;}
.dlg-msg{color:var(--muted);font-size:14px;margin:0 0 20px 0;line-height:1.5;}
.dlg-btns{display:flex;gap:10px;}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}

/* ?? OFFLINE ?? */
#offline-banner{position:fixed;top:0;left:0;right:0;z-index:70000;background:#7f1d1d;color:#fff;text-align:center;padding:8px;font-size:13px;font-weight:500;transform:translateY(-100%);transition:transform .3s;}
#offline-banner.show{transform:translateY(0);}

/* ?? LOGIN ?? */
#login-overlay{position:fixed;inset:0;z-index:10000;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;overflow-y:auto;}
/* Pas de flash connexion avant le picker magasin ou la fin du chargement auth */
html[data-boot-screen="picker"] #login-overlay,
html[data-boot-screen="booting"] #login-overlay{
  display:none!important;
  visibility:hidden!important;
}
html[data-boot-screen="picker"] #store-picker-overlay.hidden,
html[data-boot-screen="picker"] #store-picker-overlay{
  display:flex!important;
}
html[data-boot-screen="picker"] #main-app{
  display:none!important;
}
html[data-boot-screen="booting"] #main-app{
  display:none!important;
}
html[data-boot-screen="booting"] #spinner-overlay,
html[data-boot-screen="picker"] #spinner-overlay{
  display:none!important;visibility:hidden!important;pointer-events:none!important;
}
.login-card{width:min(540px,94vw);}
.login-hp-wrap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;}
.login-help{
  display:block;width:100%;font-size:12px;color:var(--muted);text-align:center;margin-top:10px;cursor:pointer;
  background:none;border:none;padding:0;font-family:inherit;
}
.login-form{display:block;width:100%;}
.login-field-label{
  display:block;font-size:11px;font-weight:600;color:#64748b;margin:0 0 4px 2px;letter-spacing:.02em;
}
.login-field-label+.login-field-label{margin-top:4px;}
.login-error{display:none;background:#fee2e2;color:#991b1b;padding:10px 12px;border-radius:10px;font-weight:500;font-size:13px;margin-top:10px;}
body.premium-ui #login-overlay{
  background:linear-gradient(165deg,#f8fafc 0%,#eef4ff 42%,#f5f8fc 100%);
  padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));
}
body.premium-ui .login-card{
  background:var(--surface-0,#fff);
  border:1px solid var(--hairline,#e8edf3);
  border-radius:var(--r-sheet,24px);
  padding:28px 22px 22px;
  box-shadow:var(--elev-2,0 6px 20px rgba(15,23,42,.09));
}
body.premium-ui #login-overlay input{
  border-radius:12px!important;
  margin-bottom:10px;
  border:1px solid #e2e8f0!important;
  background:#fff!important;
}
body.premium-ui .login-seg{
  display:flex;gap:4px;padding:4px;margin-bottom:14px;
  background:#f1f5f9;border-radius:12px;border:1px solid #e8edf3;
}
body.premium-ui .login-seg-btn{
  flex:1;margin:0!important;padding:10px 12px!important;
  border:none!important;border-radius:9px!important;
  background:transparent!important;color:#64748b!important;
  font-size:14px!important;font-weight:600!important;
  box-shadow:none!important;cursor:pointer;
  transition:background var(--dur-fast,.14s),color var(--dur-fast),box-shadow var(--dur-fast);
}
body.premium-ui .login-seg-btn.is-active{
  background:#fff!important;color:var(--ink-900,#0f172a)!important;
  box-shadow:0 1px 4px rgba(15,23,42,.08)!important;
}
body.premium-ui .login-submit-btn{
  margin-top:12px!important;
  padding:15px 16px!important;
  font-size:16px!important;
  letter-spacing:-.2px!important;
  text-transform:none!important;
}
body.premium-ui #login-store-badge{
  background:#f0fdf4!important;border:1px solid #bbf7d0!important;border-radius:12px!important;
}
body.premium-ui #login-invite-banner{border-radius:12px!important;}

/* ?? HEADER & NAV ?? */
header{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:0 var(--sp-4);height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);box-shadow:none;position:sticky;top:0;z-index:50;border-bottom:1px solid var(--hairline);}
#app-header{
  padding-left:max(8px,env(safe-area-inset-left,0px));
  padding-right:max(10px,env(safe-area-inset-right,0px));
  gap:8px;
}
#app-header .logout-btn{display:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important;}
.app-header__lead{display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0;}
.app-header__brand{flex-direction:row;align-items:center;justify-content:flex-start;gap:0;min-width:0;flex:1;margin:0;padding:0;}
.app-header__logo{display:none!important;}
.app-header__store{font:700 14px/1.2 -apple-system,system-ui,"Segoe UI",sans-serif;color:var(--ink-900);letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:none;flex:1;text-align:left;}
.app-header__title{font:700 18px/1.15 -apple-system,system-ui,"Segoe UI",sans-serif;color:var(--ink-900);letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.app-header__sub{font:500 12px/1.1 -apple-system,system-ui,"Segoe UI",sans-serif;color:var(--ink-500,#94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw;}
.app-header__actions{display:flex;align-items:center;gap:var(--sp-2);min-width:0;}
.app-header__profile{width:38px;height:38px;border-radius:var(--r-pill);border:1px solid var(--hairline);background:var(--surface-0);color:var(--ink-700);font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast);flex-shrink:0;}
.app-header__profile:hover{background:var(--surface-1);}
.app-header__profile:active{transform:scale(.92);}
.user-badge{display:none!important;}

/* ?? Bottom sheet (menu profil) ?? */
.sheet-overlay{position:fixed;inset:0;z-index:100020;background:rgba(15,23,42,.42);backdrop-filter:blur(6px) saturate(120%);-webkit-backdrop-filter:blur(6px) saturate(120%);display:flex;align-items:flex-end;justify-content:center;opacity:1;transition:opacity var(--dur-base) var(--ease-out);}
.sheet-overlay.hidden{display:none!important;}
.sheet-overlay.is-closing{opacity:0;}
.sheet-card{width:100%;max-width:520px;background:var(--surface-0);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:10px var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom));box-shadow:var(--elev-3);transform:translateY(0);transition:transform var(--dur-slow) var(--ease-out);}
.sheet-overlay.is-closing .sheet-card{transform:translateY(100%);}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
.sheet-overlay:not(.is-closing) .sheet-card{animation:sheetUp var(--dur-slow) var(--ease-out);}
.sheet-handle{width:38px;height:5px;border-radius:var(--r-pill);background:var(--line-mid);margin:0 auto 14px;}
.sheet-head{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-1) var(--sp-3);}
.sheet-avatar{width:46px;height:46px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;text-transform:uppercase;flex-shrink:0;}
.sheet-id{min-width:0;}
.sheet-name{font:600 17px/1.2 -apple-system,system-ui,sans-serif;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sheet-meta{font-size:13px;color:var(--ink-500);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sheet-actions{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px;}
.sheet-act{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:12px;border:none;background:var(--surface-1);border-radius:var(--r-tile);cursor:pointer;text-align:left;transition:background var(--dur-fast),transform var(--dur-fast) var(--ease-out);}
.sheet-act:hover{background:var(--surface-2);}
.sheet-act:active{transform:scale(.985);}
.sheet-act.hidden{display:none!important;}
.sheet-act__ic{width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.sheet-act__lbl{flex:1;font:600 15px/1.2 -apple-system,system-ui,sans-serif;color:var(--ink-900);}
.sheet-act__arrow{color:var(--line-mid);font-size:13px;}
.sheet-act--danger .sheet-act__lbl{color:var(--danger);}
.sheet-cancel{width:100%;padding:14px;border:none;background:var(--surface-2);border-radius:var(--r-tile);font:600 15px/1 -apple-system,system-ui,sans-serif;color:var(--ink-700);cursor:pointer;transition:background var(--dur-fast);}
.sheet-cancel:hover{background:var(--line-soft);}
@media (prefers-reduced-motion: reduce){
  .sheet-overlay,.sheet-card,.sheet-overlay:not(.is-closing) .sheet-card{animation:none!important;transition:none!important;}
}
.logout-btn{border:none;background:var(--surface-2);color:var(--ink-700);padding:8px 12px;border-radius:12px;cursor:pointer;font-weight:500;margin-right:auto;}
main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:15px;padding-bottom:calc(24px + env(safe-area-inset-bottom));}
nav{position:fixed;bottom:0;left:0;right:0;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);height:80px;display:flex;justify-content:flex-start;align-items:center;gap:12px;box-shadow:0 -12px 32px rgba(15,23,42,.08);z-index:100;padding:0 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--hairline);}
.nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#94a3b8;cursor:pointer;font-size:10px;font-weight:500;min-width:58px;min-height:44px;background:none;border:none;border-radius:14px;transition:color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),background var(--dur-fast);}
.nav-btn i{font-size:22px;transition:transform var(--dur-base) var(--ease-spring);}
.nav-btn-home{color:#1A5CB8;border-radius:16px;padding:6px 8px;transition:background var(--dur-fast,.14s) var(--ease-out,ease),transform var(--dur-fast,.14s) var(--ease-out,ease);}
.nav-btn-home.active{background:var(--accent-soft,#eaf2ff);}
.nav-btn.active{color:#1A5CB8;}
.nav-btn.active i{transform:translateY(-2px) scale(1.06);}
.nav-btn.active span{font-weight:700;}
.nav-btn:active{transform:scale(.9);}
.nav-dock-btn{border-radius:14px;transition:background var(--dur-fast,.14s) var(--ease-out,ease),transform var(--dur-fast,.14s) var(--ease-out,ease);}
.nav-dock-btn.active{background:var(--accent-soft,#eaf2ff);}
@media (prefers-reduced-motion: reduce){
  .nav-btn,.nav-btn i{transition:none!important;}
  .nav-btn.active i{transform:none;}
}
.nav-dock-slots{display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:8px;flex:1;justify-content:flex-end;min-width:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.nav-dock-slots::-webkit-scrollbar{display:none;}
.nav-dock-btn{color:#64748b;}
.nav-dock-edit i{font-size:17px;}
.nav-dock-btn span{max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nav-dock-btn.active{color:#1A5CB8;}
.nav-dock-btn:active{transform:translateY(1px);}
.nav-btn span{line-height:1.2;}
.nav-dock-btn{padding:5px 7px;}
.nav-dock-customize{
  flex-shrink:0;
  color:#64748b;
  min-width:48px;
  margin-left:2px;
}
.nav-dock-customize i{font-size:19px;color:#1A5CB8;}
.nav-dock-customize:active{opacity:.85;}
.nav-btn-home{margin-right:6px;}
/* ?? Dock tiles (mini app icons) ?? */
.dock-tile{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.28);flex-shrink:0;transition:transform .12s;}
.dock-tile i{font-size:19px;color:#fff;}
.dock-app-cover{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block;}
.nav-dock-btn .dock-tile{margin-bottom:2px;}
.nav-dock-btn.active .dock-tile{box-shadow:0 0 0 2.5px #fff,0 3px 12px rgba(0,0,0,.28);}
.nav-dock-btn:active .dock-tile{transform:scale(.9);}
/* ?? Dock drag states ?? */
.nav-dock-btn.dock-dragging{opacity:.2;}
.nav-dock-btn.dock-dragging .dock-tile{animation:none!important;}
.nav-dock-btn.dock-drop-hi{background:rgba(26,92,184,.14)!important;border-radius:12px;outline:2px solid #1A5CB8;outline-offset:2px;}
#nav-dock-slots.dock-slots-edit .nav-dock-btn{touch-action:none;}
#nav-dock-slots.dock-slots-edit .nav-dock-btn .dock-tile{animation:dockJiggle .24s ease-in-out infinite alternate;}
@keyframes dockJiggle{from{transform:rotate(-2.2deg) translateZ(0);}to{transform:rotate(2.2deg) translateZ(0);}}
#app-nav.dock-bar-edit .nav-dock-customize i{color:#0d4a8c;}
.dock-app-icon-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.dock-app-icon-btn{
  aspect-ratio:1;border-radius:14px;border:2px solid #e2e8f0;background:#f8fafc;
  display:flex;align-items:center;justify-content:center;font-size:20px;color:#334155;
  cursor:pointer;padding:0;
}
.dock-app-icon-btn:active{transform:scale(.94);}
.dock-app-icon-btn i{pointer-events:none;}
.nav-dock-btn--folder .dock-tile--folder{
  width:44px;height:44px;padding:5px!important;box-sizing:border-box;
  background:linear-gradient(165deg,var(--folder-tile-bg1) 0%,var(--folder-tile-bg2) 100%)!important;
  border:0.5px solid var(--folder-tile-border);
  display:flex;align-items:center;justify-content:center;border-radius:14px;
}
.dock-folder-face{display:grid;grid-template-columns:1fr 1fr;gap:2px;width:100%;height:100%;max-width:100%;max-height:100%;box-sizing:border-box;padding:1px;overflow:visible;}
.dock-folder-mini{width:100%;aspect-ratio:1;border-radius:5px;display:flex;align-items:center;justify-content:center;background:linear-gradient(155deg,rgba(255,255,255,.35) 0%,transparent 45%),var(--fm,#64748b);overflow:hidden;min-width:0;min-height:0;}
.dock-folder-mini i{font-size:9px;color:#fff;}
.dock-folder-mini .module-icon-svg{width:10px;height:10px;object-fit:contain;max-width:100%;max-height:100%;}
.dock-folder-mini--empty{visibility:hidden;pointer-events:none;background:transparent!important;}
.dock-folder-cover{width:100%;height:100%;object-fit:cover;border-radius:10px;}
.dock-folder-icon-only{width:100%;height:100%;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--color-accueil) 0%,#153e80 120%);}
.dock-folder-icon-only i{font-size:18px;color:#fff;}
.folder-edit-modal:not(.hidden){z-index:25014!important;}
#app-nav.dock-drop-zone{background:rgba(26,92,184,.22)!important;border-top:2px solid #1A5CB8;}
/* ?? Module Grid Overlay ?? */
.mi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px 8px;}
.mi{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.mi:active{opacity:.7;}
.mi-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;}
.mi-icon .module-icon-svg{width:24px;height:24px;object-fit:contain;}
.mi-label{font-size:10px;font-weight:500;color:#aaa;text-align:center;line-height:1.3;}

/* ?? UI COMPONENTS ?? */
.card{background:var(--surface-0);border-radius:18px;padding:20px;box-shadow:var(--shadow-card);margin-bottom:15px;border:1px solid var(--line-soft);}
input,select,textarea{width:100%;padding:14px;border:1.5px solid var(--line-mid);border-radius:10px;font-size:16px;background:var(--surface-0);margin-bottom:10px;outline:none;transition:border-color .15s,box-shadow .15s;}
input:focus,select:focus,textarea:focus{border-color:var(--primary);}
input.invalid{border-color:var(--danger)!important;background:#fff5f5;}
textarea{min-height:80px;resize:none;}
.field-err{font-size:12px;color:var(--danger);font-weight:500;margin-top:-8px;margin-bottom:8px;display:none;}
.field-err.show{display:block;}
.btn{width:100%;padding:16px;border-radius:12px;border:none;font-weight:500;font-size:16px;background:var(--primary);color:#fff;cursor:pointer;margin-top:5px;transition:opacity .15s,transform .1s;}
.btn:active{transform:scale(.97);opacity:.9;}
.btn.secondary{background:var(--surface-2);color:var(--ink-700);}
.btn.danger{background:var(--danger);}
.btn.success{background:#00563f;}
.btn.pvp{background:var(--pvp);}
.btn.mypie{background:#f97316;}
.btn.salad{background:var(--salad);}
.btn.frigo{background:var(--frigo);}
.btn.todo{background:var(--todo);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.tabs{display:flex;background:var(--surface-2);padding:4px;border-radius:12px;margin-bottom:15px;gap:4px;border:1px solid var(--line-soft);}
.tab{flex:1;text-align:center;padding:10px 4px;font-weight:500;font-size:11px;color:var(--ink-500);border-radius:9px;cursor:pointer;transition:all .15s;}
.tab.active     {background:var(--surface-0);color:var(--primary);box-shadow:0 2px 6px rgba(15,23,42,.08);}
.tab.active-pvp {background:#fff;color:var(--pvp);   box-shadow:0 2px 4px rgba(0,0,0,.1);}
.tab.active-mypie{background:#fff;color:#ea580c;box-shadow:0 2px 4px rgba(0,0,0,.1);}
.tab.active-salad{background:#fff;color:var(--salad); box-shadow:0 2px 4px rgba(0,0,0,.1);}
.tab.active-frigo{background:#fff;color:var(--frigo); box-shadow:0 2px 4px rgba(0,0,0,.1);}
.tab.active-todo{background:#fff;color:var(--todo);  box-shadow:0 2px 4px rgba(0,0,0,.1);}
.tab.active-reception{background:#fff;color:var(--reception);box-shadow:0 2px 4px rgba(0,0,0,.1);}
#view-reception .reception-tabs{
  overflow-x:auto;
  overflow-y:hidden;
  flex-wrap:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
#view-reception .reception-tabs::-webkit-scrollbar{display:none;}
#view-reception .reception-tabs .tab{
  flex:0 0 auto;
  min-width:4.5rem;
  padding-left:8px;
  padding-right:8px;
  white-space:nowrap;
}
#view-reception .reception-tabs .tab i{font-size:10px;margin-right:3px;opacity:.9;}
.actl-rec-picker{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
  margin-top:14px;
  width:100%;
  max-width:560px;
}
.actl-rec-picker__btn{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:16px !important;
  min-height:124px !important;
  width:100% !important;
  padding:22px 18px !important;
  border-radius:22px !important;
  border:2px solid #e2e8f0;
  background:#fff;
  cursor:pointer;
  text-align:left;
  font:inherit;
  transition:transform .12s ease,box-shadow .12s ease;
  box-sizing:border-box;
}
.actl-rec-picker__btn:active{transform:scale(.985);}
.actl-rec-picker__btn--liv{
  border-color:#86efac !important;
  background:linear-gradient(145deg,#ecfdf5 0%,#fff 58%) !important;
  box-shadow:0 10px 28px rgba(15,110,86,.14) !important;
}
.actl-rec-picker__btn--actl{
  border-color:#cbd5e1 !important;
  background:linear-gradient(145deg,#f1f5f9 0%,#fff 58%) !important;
  box-shadow:0 10px 28px rgba(15,23,42,.1) !important;
}
.actl-rec-picker__ic{
  flex:0 0 auto;
  width:64px !important;
  height:64px !important;
  border-radius:18px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px !important;
}
.actl-rec-picker__btn--liv .actl-rec-picker__ic{background:#dcfce7;color:var(--reception,#0F6E56);}
.actl-rec-picker__btn--actl .actl-rec-picker__ic{background:#e2e8f0;color:var(--rec-color,#475569);}
.actl-rec-picker__body{flex:1 1 auto;min-width:0;}
.actl-rec-picker__title{
  display:block;
  font-weight:800;
  font-size:19px !important;
  color:#0f172a;
  line-height:1.2;
  margin-bottom:6px;
}
.actl-rec-picker__sub{
  display:block;
  font-size:14px !important;
  color:#64748b;
  line-height:1.35;
}
.actl-rec-picker__chev{
  flex:0 0 auto;
  color:#94a3b8;
  font-size:18px !important;
}
#reception-actl .ahy-zone-identity{margin-bottom:12px;}

/* ?? HOME ?? */
.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.home-btn{border-radius:18px;padding:18px 10px;color:#fff;text-align:center;font-weight:500;box-shadow:0 10px 25px rgba(0,0,0,.08);cursor:pointer;line-height:1.2;position:relative;transition:transform .15s;}
.home-btn:active{transform:scale(.97);}
.home-btn i{font-size:26px;margin-bottom:8px;}
.home-btn.wide{grid-column:1/-1;}
.home-badge{position:absolute;top:10px;right:10px;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:rgba(255,255,255,.92);color:#111827;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.2);}
.home-badge.red{background:rgba(255,255,255,.95);color:#991b1b;}
.home-badge.blue{background:rgba(255,255,255,.95);color:#075985;}
.home-badge.purple{background:rgba(255,255,255,.95);color:#5b21b6;}

/* ?? LISTS ?? */
.group-header{background:#334155;color:#fff;padding:12px 15px;border-radius:10px;margin-top:15px;font-weight:500;text-transform:uppercase;font-size:14px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.list-item{background:#fff;border-radius:12px;padding:12px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px rgba(0,0,0,.05);min-height:72px;gap:10px;animation:itemIn .2s ease;}
/* Biblioth?que catalogue (PVP / My Pie) : titre pleine largeur, boutons en dessous */
.bib-list-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  gap:10px !important;
}
.bib-list-row .bib-list-main{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  width:100%;
}
.bib-list-row .bib-list-text{
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
}
.bib-list-row .item-title{
  word-break:normal !important;
  overflow-wrap:break-word !important;
  white-space:normal !important;
  line-height:1.3 !important;
}
.bib-list-row .item-sub{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:unset !important;
}
.bib-list-row .right-col{
  width:100%;
  flex-shrink:1;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}
.bib-list-row .icon-btn{
  width:36px;
  height:36px;
  font-size:14px;
}
@keyframes itemIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.swipe-wrapper{background:var(--danger);border-radius:12px;margin-bottom:8px;overflow:hidden;position:relative;}
.swipe-content{background:#fff;position:relative;z-index:2;transition:transform 0.12s;padding:12px;display:flex;align-items:center;justify-content:space-between;min-height:72px;width:100%;gap:10px;}
.item-img{width:52px;height:52px;border-radius:10px;object-fit:cover;background:#f1f5f9;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#cbd5e1;font-size:20px;cursor:pointer;}
.item-info{flex:1;min-width:0;overflow:hidden;}
.item-title{font-weight:500;font-size:15px;word-break:break-word;overflow-wrap:break-word;margin-bottom:4px;}
.item-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.right-col{flex-shrink:0;display:flex;align-items:center;gap:8px;}
.qty-ctrl{display:flex;align-items:center;gap:8px;background:#f8fafc;width:fit-content;padding:4px 8px;border-radius:8px;border:0.5px solid #e2e8f0;margin-top:5px;}
.qty-btn{width:30px;height:30px;border-radius:8px;border:none;background:#fff;box-shadow:0 2px 3px rgba(0,0,0,.1);font-weight:500;color:var(--primary);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s;}
.qty-btn:active{transform:scale(.9);}
.icon-btn{width:40px;height:40px;border-radius:12px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;transition:transform .1s,opacity .1s;}
.icon-btn:active{transform:scale(.9);opacity:.85;}
.icon-btn.pvp{background:var(--pvp);}
.icon-btn.mypie{background:#f97316;}
.icon-btn.salad{background:var(--salad);}
.icon-btn.frigo{background:var(--frigo);}
.icon-btn.todo{background:var(--todo);}
.icon-btn.gray{background:#94a3b8;}
.icon-btn.red{background:var(--danger);}
.icon-btn.dark{background:#0f172a;}
.icon-btn.green{background:var(--success);}
.date-col{text-align:right;width:90px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;}
.d-lbl{font-size:11px;color:#64748b;margin-bottom:2px;}
.d-val{font-size:13px;font-weight:500;color:var(--success);white-space:nowrap;}
.d-val.expired{color:var(--danger);}
.date-badge{width:52px;height:52px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:500;flex-shrink:0;}
#view-frais .date-badge.frais-ddm-badge{width:auto;min-width:58px;max-width:88px;height:auto;min-height:52px;padding:6px 7px;gap:2px;text-align:center;}
#view-frais .date-badge.frais-ddm-badge span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.frais-dlc-half50{border:none;font-size:13px;font-weight:900;background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;border-radius:12px;padding:8px 10px;line-height:1;letter-spacing:.02em;flex-shrink:0;box-shadow:0 5px 14px rgba(220,38,38,.32);cursor:pointer;user-select:none;font-variant-numeric:tabular-nums;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:54px;min-height:44px;}
.frais-dlc-half50 b{font-size:12px;background:rgba(255,255,255,.18);border-radius:999px;padding:2px 7px;}
.frais-dlc-half50:active{transform:scale(0.96);}
.frais-dlc-delete{border:none;background:#fee2e2;color:#991b1b;border-radius:12px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;cursor:pointer;box-shadow:0 4px 12px rgba(153,27,27,.16);}
.frais-dlc-delete:active{transform:scale(0.96);}
.frais-dlc-date-filters{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;}
.frais-dlc-date-chip{
  border:1.5px solid #cbd5e1!important;background:#fff!important;color:#475569!important;border-radius:999px!important;
  padding:8px 12px!important;font-size:12px!important;font-weight:700!important;cursor:pointer!important;margin:0!important;
  -webkit-tap-highlight-color:transparent;appearance:none!important;-webkit-appearance:none!important;
}
.frais-dlc-date-chip:active{transform:scale(.97);}
.frais-dlc-date-chip.active{background:#185FA5!important;color:#fff!important;border-color:#185FA5!important;}
.bg-red{background:#ef4444;}.bg-orange{background:#f59e0b;}.bg-green{background:#10b981;}.bg-grey{background:#94a3b8;}
.chip{font-size:11px;padding:3px 8px;border-radius:999px;font-weight:500;display:inline-flex;align-items:center;gap:4px;}
.chip.warn{background:#ffedd5;color:#9a3412;}
.chip.admin{background:#fee2e2;color:#991b1b;}
.chip.staff{background:#e0f2fe;color:#075985;}
.chip.frigo{background:#e0f2fe;color:#075985;}
.chip.ok{background:#d1fae5;color:#065f46;}
.chip.late{background:#fee2e2;color:#991b1b;}
.chip.todo{background:#ede9fe;color:#5b21b6;}
.small{font-size:12px;color:var(--muted);}
.todo-check{width:36px;height:36px;border:2.5px solid #cbd5e1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;cursor:pointer;transition:all .2s;}
.todo-check.checked{background:var(--success);border-color:var(--success);color:#fff;}
.item-done{opacity:.65;background:#f8fafc;}
.item-done .item-title{text-decoration:line-through;color:#94a3b8;}

/* ?? TODO SPECIFIC ?? */
.zone-header{border-radius:14px;padding:14px 16px;color:#fff;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.zone-progress{height:6px;border-radius:3px;background:rgba(255,255,255,.3);margin-top:8px;overflow:hidden;}
.zone-progress-fill{height:100%;border-radius:3px;background:#fff;transition:width .4s ease;}
.task-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:8px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);border-left:4px solid transparent;}
.task-card.done{opacity:.6;border-left-color:var(--success);}
.task-card.overdue{border-left-color:var(--danger);background:#fff5f5;}
.time-chip{font-size:12px;font-weight:500;padding:4px 10px;border-radius:8px;background:#f1f5f9;color:#334155;white-space:nowrap;flex-shrink:0;}
.time-chip.overdue{background:#fee2e2;color:#991b1b;}
.time-chip.done{background:#d1fae5;color:#065f46;}
.day-pill{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:500;cursor:pointer;}
.day-pill.on{background:var(--todo);color:#fff;}
.day-pill.off{background:#f1f5f9;color:#94a3b8;}
.progress-bar-wrap{background:#e2e8f0;border-radius:999px;height:8px;margin:10px 0 4px 0;overflow:hidden;}
.progress-bar-fill{height:100%;border-radius:999px;background:var(--todo);transition:width .4s ease;}
.empty-state{text-align:center;padding:40px 20px;color:var(--muted);}
.empty-state i{font-size:40px;margin-bottom:12px;opacity:.35;display:block;}

/* ?? SEARCH ?? */
.search-wrap{position:relative;margin-bottom:12px;}
.search-wrap i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px;pointer-events:none;}
.search-input{padding:13px 13px 13px 40px!important;border-radius:12px!important;background:#f8fafc!important;border:1.5px solid #e2e8f0!important;font-size:15px!important;margin-bottom:0!important;}
.search-input:focus{border-color:var(--primary)!important;background:#fff!important;}
.search-no-result{text-align:center;padding:30px;color:var(--muted);font-size:14px;}

/* ?? MODALS ?? */
.modal-bc{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:5000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;}
#modal-barcode{z-index:6500;}
.modal-card{background:#fff;padding:25px;border-radius:20px;width:100%;max-width:500px;max-height:88vh;overflow-y:auto;animation:mIn .22s cubic-bezier(.34,1.56,.64,1);}
@keyframes mIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.row{display:flex;gap:10px;}
.divider{border:none;border-top:0.5px solid #e2e8f0;margin:16px 0;}
.color-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;}
.color-swatch{height:40px;border-radius:10px;cursor:pointer;border:3px solid transparent;transition:transform .1s;}
.color-swatch.selected{border-color:#1e293b;transform:scale(.95);}
.ahy-icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px;}
.ahy-icon-swatch{
  height:40px;border-radius:10px;border:2px solid #e2e8f0;background:#f8fafc;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:17px;color:#475569;transition:border-color .12s,background .12s,transform .1s;
}
.ahy-icon-swatch:hover{background:#f1f5f9;}
.ahy-icon-swatch.selected{border-color:#0C447C;background:#eff6ff;color:#0C447C;transform:scale(.96);}
.ahy-zone-icon-svg{width:22px;height:22px;display:block;flex-shrink:0;}
.ahy-zone-icon-img{width:22px;height:22px;display:block;flex-shrink:0;object-fit:contain;border-radius:4px;}
.ahy-zone-list-ic .ahy-zone-icon-svg{width:18px;height:18px;}
.ahy-zone-list-ic .ahy-zone-icon-img{width:18px;height:18px;}
.actl-tile__icon .ahy-zone-icon-svg{width:28px;height:28px;}
.actl-tile__icon .ahy-zone-icon-img{width:72px;height:72px;border-radius:8px;}
.actl-tile--brand{background:transparent;box-shadow:0 2px 10px rgba(15,23,42,.12);}
.actl-tile__brand{position:relative;width:100%;aspect-ratio:1;display:block;line-height:0;}
.actl-tile__brand .ahy-zone-icon-img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block;}
.actl-tile--brand .actl-tile__badge{top:6px;right:6px;}

/* Hub Quality Store ? app dans l'app */
#view-autocontrol.actl-qs-immersive{
  background:linear-gradient(165deg,#120e2e 0%,#1a1640 45%,#221b52 100%);
  min-height:100%;
  padding-bottom:20px;
}
#view-autocontrol.actl-qs-immersive .mod-hdr{
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:4px;
  padding:6px 0 8px;
}
#view-autocontrol.actl-qs-immersive .mod-hdr-title{color:#fff;}
#view-autocontrol.actl-qs-immersive .mod-hdr-sub{color:rgba(255,255,255,.55);}
#view-autocontrol.actl-qs-immersive .mod-hdr-back{
  background:rgba(255,255,255,.1);
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
}
#view-autocontrol.actl-qs-immersive #autocontrol-tabs{
  background:rgba(0,0,0,.2);
  border-radius:12px;
  padding:4px;
  border:1px solid rgba(255,255,255,.08);
}
#view-autocontrol.actl-qs-immersive #autocontrol-tabs .btn{
  background:rgba(255,255,255,.12);
  color:#fff;
  border:none;
  box-shadow:none;
}
#view-autocontrol.actl-qs-immersive #autocontrol-tabs .btn.secondary{
  background:transparent;
  color:rgba(255,255,255,.55);
}
#view-autocontrol .actl-qs-hub-wrap{
  background:transparent;
  border-radius:0;
  padding:6px 4px 12px;
  margin:0;
}
.actl-qs-hub{display:flex;flex-direction:column;}
.actl-qs-app{
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.02) 100%);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:14px 12px 16px;
  box-shadow:0 12px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);
}
.actl-qs-rayons{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:14px;
}
.actl-qs-rayon{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-height:52px;
  padding:8px 10px;
  border:none;
  border-radius:16px;
  color:#fff;
  font-weight:700;
  font-size:11px;
  line-height:1.15;
  text-align:left;
  cursor:pointer;
  box-shadow:0 3px 8px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.15);
  transition:transform .12s,opacity .12s,box-shadow .12s;
}
.actl-qs-rayon:active:not(:disabled){transform:scale(.97);}
.actl-qs-rayon--off{opacity:.32;cursor:not-allowed;box-shadow:none;filter:saturate(.6);}
.actl-qs-rayon--off:not([disabled]){cursor:pointer;opacity:.62;}
.actl-qs-rayon--off:not([disabled]):active{transform:scale(.98);opacity:.8;}
.actl-qs-rayon--eco{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#111!important;
  border:2px solid rgba(255,255,255,.85);
  border-radius:12px;
  padding:12px 14px;
  font-size:13px;
  font-weight:700;
  color:#fff;
}
.actl-qs-rayon__ic{
  flex:0 0 34px;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
}
.actl-qs-rayon__ic .ahy-zone-icon-img{width:34px;height:34px;border-radius:8px;object-fit:cover;}
.actl-qs-rayon__ic .ahy-zone-icon-svg{width:26px;height:26px;stroke:#fff;}
.actl-qs-rayon__lbl{flex:1;min-width:0;}
.actl-qs-rayon__chev{font-size:18px;opacity:.9;}
.actl-qs-rayon__new{
  position:absolute;
  top:-4px;
  right:-4px;
  z-index:1;
  min-width:28px;
  height:28px;
  padding:0 5px;
  border-radius:999px;
  background:#e53935;
  color:#fff;
  font-size:8px;
  font-weight:800;
  line-height:28px;
  text-align:center;
  box-shadow:0 2px 4px rgba(0,0,0,.3);
}
.actl-qs-dock{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding-top:4px;
  border-top:2px solid rgba(255,255,255,.75);
}
.actl-qs-dock__frame{
  border:2px dashed rgba(255,255,255,.35);
  border-radius:18px;
  padding:10px 12px;
  background:rgba(0,0,0,.15);
}
.actl-qs-manager{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  min-height:56px;
  padding:10px 16px;
  border:none;
  border-radius:16px;
  color:#fff;
  font-weight:700;
  font-size:15px;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .12s;
}
.actl-qs-manager:active{transform:scale(.98);}
.actl-qs-manager__ic{
  flex:0 0 40px;
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.9);
  font-size:20px;
  background:rgba(255,255,255,.15);
}
.actl-qs-manager__lbl{flex:1;text-align:left;}
.actl-qs-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px 20px;
  padding:6px 4px 2px;
}
.actl-qs-action{
  flex:0 0 86px;
  width:86px;
  max-width:22%;
  border:none;
  background:transparent;
  cursor:pointer;
  padding:0;
  text-align:center;
}
.actl-qs-action__arc{
  display:block;
  font-size:7.5px;
  font-weight:700;
  color:#fff;
  line-height:1.15;
  min-height:30px;
  margin-bottom:6px;
  text-shadow:0 1px 2px rgba(0,0,0,.4);
}
.actl-qs-action__disc{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  margin:0 auto;
  border-radius:50%;
  background:linear-gradient(180deg,#e1f5fe 0%,#81d4fa 55%,#4fc3f7 100%);
  border:3px solid #fff;
  color:#0d47a1;
  font-size:24px;
  box-shadow:0 4px 12px rgba(0,0,0,.3),inset 0 -2px 4px rgba(0,0,0,.08);
}
.actl-qs-action:active .actl-qs-action__disc{transform:scale(.95);}
.actl-qs-action__sync{
  position:absolute;
  right:-3px;
  bottom:-3px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#1565c0;
  color:#fff;
  font-size:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid #fff;
  box-shadow:0 2px 4px rgba(0,0,0,.25);
}
@media (max-width:520px){
  .actl-qs-rayons{grid-template-columns:repeat(2,minmax(0,1fr));}
  .actl-qs-rayon--eco{grid-column:span 2!important;}
  .actl-qs-rayon{font-size:10px;min-height:48px;}
  .actl-qs-actions{gap:12px 14px;}
  .actl-qs-action{flex:0 0 72px;width:72px;}
  .actl-qs-action__disc{width:58px;height:58px;font-size:21px;}
  .actl-qs-manager{font-size:14px;min-height:52px;}
}

/* Plein ?cran + style uniforme dans tout Autocontr?les */
body.actl-qs-shell{overflow:hidden;}
body.actl-qs-shell #app-header,
body.actl-qs-shell #session-top-bar,
body.actl-qs-shell #app-nav,
body.actl-qs-shell #fab-dial,
body.actl-qs-shell #fab-dial-2{display:none!important;}
body.actl-qs-shell main{
  padding:0!important;
  padding-bottom:0!important;
  overflow:hidden!important;
  min-height:100dvh!important;
  display:block!important;
}
body.actl-qs-shell #view-autocontrol.actl-qs-immersive{
  position:fixed;
  inset:0;
  z-index:11000;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:max(env(safe-area-inset-top),6px) 10px max(env(safe-area-inset-bottom),12px);
  margin:0!important;
  max-width:none!important;
  min-height:100dvh;
}
#view-autocontrol.actl-qs-immersive .mod-hdr-avatar{
  border:2px solid rgba(255,255,255,.25);
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}
#view-autocontrol.actl-qs-immersive.autocontrol-subview #autocontrol-tabs{display:none!important;}
.actl-qs-app--inner{margin-top:4px;}
.actl-qs-inner-hint{
  font-size:11px;
  color:rgba(255,255,255,.65);
  margin-bottom:12px;
  line-height:1.35;
}
.actl-qs-inner-meta{
  margin-top:12px;
  font-size:11px;
  color:rgba(255,255,255,.55);
}
.actl-qs-inline-btn{
  margin:0!important;
  padding:2px 8px!important;
  font-size:11px!important;
  vertical-align:baseline!important;
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.2)!important;
}
.actl-qs-export{
  margin-top:14px;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(255,255,255,.25)!important;
}
.actl-qs-export__title{font-weight:600;font-size:13px;color:#334155;margin-bottom:6px;}
.actl-qs-export__sub{font-size:11px;color:#64748b;margin-bottom:10px;}

.actl-qs-hub--config{padding:0;}
.actl-qs-config-title{
  font-size:15px;
  font-weight:700;
  color:#fff;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:8px;
}
.actl-qs-config-list{display:flex;flex-direction:column;gap:8px;}
.actl-qs-config-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.actl-qs-config-row--off{opacity:.55;}
.actl-qs-config-rayon{
  width:44px;
  height:44px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:18px;
  flex-shrink:0;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.actl-qs-config-rayon img{max-width:28px;max-height:28px;object-fit:contain;}
.actl-qs-config-info{flex:1;min-width:0;}
.actl-qs-config-name{font-weight:600;font-size:13px;color:#fff;}
.actl-qs-config-status{font-size:11px;color:rgba(255,255,255,.6);margin-top:2px;}
.actl-qs-config-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;flex-shrink:0;}
.actl-qs-config-btn{
  margin:0!important;
  padding:6px 10px!important;
  font-size:11px!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.2)!important;
  border-radius:10px!important;
}
.actl-qs-config-btn--primary{background:rgba(76,175,80,.35)!important;border-color:rgba(76,175,80,.5)!important;}
.actl-qs-config-btn--danger{background:rgba(239,68,68,.22)!important;border-color:rgba(239,68,68,.45)!important;}
.actl-qs-config-btn--settings{background:rgba(12,68,124,.28)!important;border-color:rgba(12,68,124,.5)!important;}
.actl-qs-manager--off{opacity:.32;cursor:not-allowed;filter:saturate(.6);}

/* Navigation rayons ? pastilles avec compteur */
.actl-qs-rayon-nav{margin:0 0 10px;}
.actl-qs-rayon-nav-scroll{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:2px 2px 6px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.25) transparent;
}
.actl-qs-rayon-nav-empty{
  font-size:11px;
  color:rgba(255,255,255,.6);
  padding:8px 4px 10px;
  line-height:1.35;
}
.actl-qs-rayon-chip{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:40px;
  padding:6px 10px 6px 8px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  transition:transform .12s,background .12s,border-color .12s;
}
.actl-qs-rayon-chip:active{transform:scale(.97);}
.actl-qs-rayon-chip--on{
  background:color-mix(in srgb,var(--chip-color,#0C447C) 38%,rgba(255,255,255,.12));
  border-color:color-mix(in srgb,var(--chip-color,#0C447C) 55%,rgba(255,255,255,.25));
  box-shadow:0 4px 12px rgba(0,0,0,.22);
}
.actl-qs-rayon-chip--pending .actl-qs-rayon-chip__ic{box-shadow:0 0 0 2px rgba(229,57,53,.85);}
.actl-qs-rayon-chip__ic{
  width:26px;
  height:26px;
  border-radius:8px;
  background:var(--chip-color,#0C447C);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  flex-shrink:0;
}
.actl-qs-rayon-chip__ic .ahy-zone-icon-img{width:20px;height:20px;border-radius:4px;object-fit:cover;}
.actl-qs-rayon-chip__ic .ahy-zone-icon-svg{width:16px;height:16px;stroke:#fff;}
.actl-qs-rayon-chip__lbl{
  font-size:11px;
  font-weight:700;
  line-height:1.1;
  max-width:72px;
  text-align:left;
}
.actl-qs-zone-tools{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin:0 0 12px;
}
.actl-qs-zone-tool{
  margin:0!important;
  padding:5px 10px!important;
  font-size:10px!important;
  font-weight:700!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.1)!important;
  color:rgba(255,255,255,.72)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:none!important;
}
.actl-qs-zone-tool i{margin-right:4px;font-size:9px;}
.actl-qs-zone-tool--on{
  background:rgba(255,255,255,.22)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.28)!important;
}
.actl-qs-zone-tool.hidden{display:none!important;}

/* Identit? visuelle zone (int?rieur hub) */
.ahy-zone-identity{
  --ahy-zone-color:#0C447C;
  background:linear-gradient(135deg,var(--ahy-zone-color),color-mix(in srgb,var(--ahy-zone-color) 62%,#0f172a));
  border-radius:16px;
  padding:12px 14px;
  margin-bottom:12px;
  color:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.18);
}
.ahy-zone-identity__main{display:flex;align-items:center;gap:12px;}
.ahy-zone-identity__ic{
  width:48px;
  height:48px;
  border-radius:14px;
  background:rgba(255,255,255,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25);
}
.ahy-zone-identity__ic .ahy-zone-icon-img{width:34px;height:34px;border-radius:8px;object-fit:cover;}
.ahy-zone-identity__ic .ahy-zone-icon-svg{width:26px;height:26px;stroke:#fff;}
.ahy-zone-identity__name{font-size:15px;font-weight:800;line-height:1.2;letter-spacing:.01em;}
.ahy-zone-identity__sub{font-size:11px;opacity:.92;margin-top:3px;line-height:1.35;}
.ahy-zone-identity__progress{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.22);}
.ahy-zone-identity__count{font-size:11px;opacity:.95;margin-bottom:6px;}
.ahy-zone-identity__progress .todo-progress-track{height:5px;border-radius:999px;background:rgba(255,255,255,.35);overflow:hidden;}
.ahy-zone-identity__progress .todo-progress-fill{height:100%;border-radius:999px;background:#fff;transition:width .35s ease;}
.ahy-zone-identity__progress .ahy-hist-export{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px;}
.ahy-zone-identity__progress .ahy-hist-export-btn{
  background:rgba(255,255,255,.18)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.28)!important;
}
.actl-qs-zone-note{
  margin-bottom:12px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.25);
  color:#334155;
  font-size:12px;
  line-height:1.4;
}
#view-autocontrol.actl-qs-immersive .ahy-zone-shell .tab.active-todo,
#view-autocontrol.actl-qs-immersive .ahy-zone-shell .tab.active{
  background:color-mix(in srgb,var(--ahy-zone-color,#0C447C) 40%,rgba(255,255,255,.18))!important;
  border:1px solid color-mix(in srgb,var(--ahy-zone-color,#0C447C) 50%,rgba(255,255,255,.25))!important;
  color:#fff!important;
}
#view-autocontrol.actl-qs-immersive .ahy-zone-shell .ahy-wizard-yes.is-picked,
#view-autocontrol.actl-qs-immersive .ahy-zone-shell .ahy-yn-yes.is-picked{
  background:#dcfce7!important;
  border-color:#16a34a!important;
  color:#15803d!important;
}
#view-autocontrol.actl-qs-immersive .ahy-audit-summary{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
}
#view-autocontrol.actl-qs-immersive .ahy-hist-row{
  background:rgba(255,255,255,.96)!important;
  border-color:rgba(255,255,255,.3)!important;
}
#view-autocontrol.actl-qs-immersive .group-header{
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
#view-autocontrol.actl-qs-immersive .frigo-log-row,
#view-autocontrol.actl-qs-immersive .frigo-histo-toolbar,
#view-autocontrol.actl-qs-immersive .frigo-histo-empty{
  background:rgba(255,255,255,.97)!important;
  color:#0f172a!important;
  border-color:rgba(255,255,255,.35)!important;
}
#view-autocontrol.actl-qs-immersive .frigo-log-title{color:#0f172a!important;}
#view-autocontrol.actl-qs-immersive .frigo-log-meta{color:#64748b!important;}
#view-autocontrol.actl-qs-immersive .frigo-histo-toolbar .small{color:#64748b!important;}
#view-autocontrol.actl-qs-immersive #frigo-histo-fridge{background:#fff;color:#0f172a;}
#view-autocontrol.actl-qs-immersive .frigo-histo-chip:not(.frigo-histo-chip--on){background:#fff;color:#334155;border-color:#e2e8f0;}

#view-autocontrol.actl-qs-immersive #autocontrol-panel-actl-checklist,
#view-autocontrol.actl-qs-immersive #autocontrol-panel-frigo,
#view-autocontrol.actl-qs-immersive #autocontrol-panel-documentation,
#view-autocontrol.actl-qs-immersive #autocontrol-panel-inspection,
#view-autocontrol.actl-qs-immersive #autocontrol-tab-config{
  background:linear-gradient(180deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,.03) 100%);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:8px 8px 10px;
  box-shadow:0 12px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);
}
#view-autocontrol.actl-qs-immersive .tabs,
body.actl-qs-shell #view-autocontrol.actl-qs-immersive .tabs{
  background:rgba(0,0,0,.28)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:14px!important;
  margin:0 0 6px!important;
  padding:3px!important;
  color:#fff!important;
  box-shadow:none!important;
}
#view-autocontrol.actl-qs-immersive .tab,
body.actl-qs-shell #view-autocontrol.actl-qs-immersive .tab,
body.premium-ui #view-autocontrol.actl-qs-immersive .tab{
  color:rgba(255,255,255,.72)!important;
  font-size:10px!important;
  font-weight:700!important;
  text-shadow:none!important;
  border-radius:10px!important;
  padding:7px 5px!important;
  background:transparent!important;
  border:none!important;
  box-shadow:none!important;
}
#view-autocontrol.actl-qs-immersive .tab.active,
#view-autocontrol.actl-qs-immersive .tab.active-todo,
#view-autocontrol.actl-qs-immersive .tab.active-frigo,
#view-autocontrol.actl-qs-immersive .tab.active-pvp,
body.premium-ui #view-autocontrol.actl-qs-immersive .tab.active,
body.premium-ui #view-autocontrol.actl-qs-immersive .tab.active-todo,
body.premium-ui #view-autocontrol.actl-qs-immersive .tab.active-frigo{
  background:rgba(255,255,255,.2)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 2px 6px rgba(0,0,0,.2)!important;
}
#view-autocontrol.actl-qs-immersive .card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 4px 14px rgba(0,0,0,.12);
}
#view-autocontrol.actl-qs-immersive .empty-state{
  color:rgba(255,255,255,.72);
}
#view-autocontrol.actl-qs-immersive .empty-state .small{color:rgba(255,255,255,.5);}
#view-autocontrol.actl-qs-immersive #autocontrol-panel-actl-checklist .task-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.25);
}
#view-autocontrol.actl-qs-immersive #autocontrol-panel-actl-checklist .todo-progress-hero,
#view-autocontrol.actl-qs-immersive #autocontrol-panel-actl-checklist .todo-zone-head{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.15);
  border-radius:14px;
}
#view-autocontrol.actl-qs-immersive #autocontrol-panel-actl-checklist .todo-progress-date,
#view-autocontrol.actl-qs-immersive #autocontrol-panel-actl-checklist .todo-zone-name{
  color:#fff;
}
#view-autocontrol.actl-qs-immersive .btn.secondary{
  background:rgba(255,255,255,.12);
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
}
#view-autocontrol.actl-qs-immersive .btn:not(.secondary){
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
#view-autocontrol.actl-qs-immersive input,
#view-autocontrol.actl-qs-immersive select,
#view-autocontrol.actl-qs-immersive textarea{
  background:rgba(255,255,255,.96);
  border-color:rgba(255,255,255,.35);
}
#view-autocontrol.actl-qs-immersive .actl-docs-crumb,
#view-autocontrol.actl-qs-immersive .actl-docs-empty{color:rgba(255,255,255,.65);}
#view-autocontrol.actl-qs-immersive .actl-docs-row{background:rgba(255,255,255,.92);}
.ahy-daily-time-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.ahy-daily-time-lbl{min-width:72px;color:#64748b;font-weight:500;}
.ahy-daily-time-in{flex:1;margin:0;}
.ahy-daily-time-rm{color:#94a3b8;}
.ahy-slot-progress{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.02em;}
.ahy-slot-progress--done{background:#d1fae5;color:#065f46;}
.ahy-task-row--off{opacity:.88;background:#f8fafc;}
.ahy-zone-list-ic{width:32px;height:32px;border-radius:10px;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.days-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}

/* ?? PERMISSIONS ?? */
.perm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.perm-toggle{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-radius:10px;padding:10px 12px;gap:8px;}
.perm-toggle label{font-size:13px;font-weight:500;color:#334155;cursor:pointer;flex:1;}
.perm-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);flex-shrink:0;}
.perm-section-title{font-size:11px;font-weight:500;text-transform:uppercase;color:var(--muted);margin:12px 0 6px 0;grid-column:1/-1;}
.channel-config-row{background:#f8fafc;border-radius:12px;padding:12px;margin-bottom:10px;border:1.5px solid #e2e8f0;}
.channel-config-row .ch-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.channel-config-row .ch-name-input{flex:1;padding:10px;border:1.5px solid #cbd5e1;border-radius:8px;font-size:14px;font-weight:500;background:#fff;outline:none;}
.channel-access-grid{display:flex;flex-wrap:wrap;gap:6px;}

/* ?? FREQUENCY SELECTOR ?? */
.freq-type-tabs{display:flex;gap:6px;margin-bottom:12px;}
.freq-tab{flex:1;padding:10px 6px;text-align:center;border-radius:10px;border:2px solid #e2e8f0;font-weight:500;font-size:12px;cursor:pointer;transition:all .15s;}
.freq-tab.active{border-color:var(--todo);background:var(--todo);color:#fff;}
.ahy-freq-tabs{
  display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:4px;
  background:#f1f5f9;border-radius:12px;
}
.ahy-freq-tab{
  flex:1 1 auto;min-width:64px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#475569;
  font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,color .15s;
}
.ahy-freq-tab__n{
  min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e2e8f0;color:#334155;
  font-size:10px;line-height:18px;text-align:center;
}
.ahy-freq-tab.is-on{background:#fff;color:#0C447C;box-shadow:0 1px 3px rgba(15,23,42,.08);}
.ahy-freq-tab.is-on .ahy-freq-tab__n{background:#dbeafe;color:#1e40af;}
@media(max-width:520px){
  .ahy-freq-tab{min-width:calc(33.33% - 6px);font-size:11px;padding:8px 6px;}
}
.freq-panel{display:none;}
.freq-panel.active{display:block;}
.month-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:10px;}
.month-day-btn{height:36px;border-radius:8px;border:2px solid #e2e8f0;font-weight:500;font-size:12px;cursor:pointer;background:#fff;transition:all .15s;}
.month-day-btn.on{background:var(--todo);border-color:var(--todo);color:#fff;}
.ahy-crit-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.ahy-crit-row .ahy-crit-in{flex:1;margin:0;}
#ahy-tt-audit-fields.hidden{display:none!important;}

/* Audit méthode de travail (hub) */
.ama-wrap{padding:4px 2px 16px;}
.ama-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.ama-toolbar__title{font-weight:800;font-size:15px;color:#0f172a;}
.ama-toolbar__actions{display:flex;gap:6px;flex-wrap:wrap;}
.ama-intro{font-size:13px;color:#64748b;margin-bottom:12px;line-height:1.4;}
.ama-rayon-list{display:flex;flex-direction:column;gap:10px;}
.ama-rayon-card{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  padding:14px 16px;border-radius:16px;border:1.5px solid #e2e8f0;background:#fff;
  box-shadow:0 2px 8px rgba(15,23,42,.04);cursor:pointer;font:inherit;
}
.ama-rayon-card__ic{
  width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:#dbeafe;color:#1d4ed8;font-size:20px;flex-shrink:0;
}
.ama-rayon-card__body{flex:1;min-width:0;}
.ama-rayon-card__title{display:block;font-weight:800;font-size:15px;color:#0f172a;}
.ama-rayon-card__sub{display:block;font-size:12px;color:#64748b;margin-top:2px;}
.ama-rayon-card__chev{color:#94a3b8;}
.ama-sheet{padding:14px 12px 18px;border-left:4px solid #1d4ed8;}
.ama-sheet__title{
  font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.02em;
  color:#0C447C;margin-bottom:12px;line-height:1.35;
}
.ama-meta{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;
}
.ama-meta label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:#475569;}
.ama-meta input{font-weight:500;font-size:13px;}
@media(max-width:640px){.ama-meta{grid-template-columns:1fr;}}
.ama-table-head{
  display:none;
}
.ama-section{margin-bottom:12px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;}
.ama-section__head{
  background:#fbbf24;color:#0f172a;font-weight:800;font-size:12px;
  padding:8px 12px;text-transform:uppercase;
}
.ama-row{padding:10px 12px;border-top:1px solid #f1f5f9;background:#fff;}
.ama-row__label{font-size:13px;font-weight:600;color:#0f172a;margin-bottom:8px;line-height:1.35;}
.ama-row__statuses{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;}
.ama-status{
  flex:1;min-width:90px;padding:8px 6px;border-radius:10px;border:2px solid #e2e8f0;
  background:#f8fafc;font-size:11px;font-weight:700;color:#64748b;cursor:pointer;
}
.ama-status.is-on[data-st="ok"]{border-color:#16a34a;background:#dcfce7;color:#166534;}
.ama-status.is-on[data-st="nc"]{border-color:#dc2626;background:#fee2e2;color:#991b1b;}
.ama-status.is-on[data-st="na"]{border-color:#64748b;background:#e2e8f0;color:#334155;}
.ama-row__action input{width:100%;font-size:12px;}
.ama-hist-list{display:flex;flex-direction:column;gap:8px;}
.ama-hist-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-radius:12px;background:#fff;border:1px solid #e2e8f0;
}
.ama-hist-row__title{font-weight:700;font-size:14px;color:#0f172a;}
.ama-edit-sec{margin-bottom:10px;padding:12px;}
.ama-edit-sec__head{display:flex;gap:8px;margin-bottom:8px;}
.ama-edit-sec__head input{flex:1;}
.ama-edit-pt{display:flex;gap:6px;margin-bottom:6px;}
.ama-edit-pt input{flex:1;}

/* ?? R?CEPTION MODULE ?? */
.reception-card{background:var(--surface);border-radius:16px;padding:16px;box-shadow:0 4px 10px rgba(0,0,0,.04);margin-bottom:12px;border-left:5px solid var(--reception);}
.supplier-chip{font-size:12px;padding:4px 10px;border-radius:20px;background:#d1fae5;color:#065f46;font-weight:500;}
.temp-display{font-size:28px;font-weight:500;color:var(--reception);}
.temp-ok{color:var(--success);}
.temp-warn{color:#f59e0b;}
.temp-err{color:var(--danger);}

/* ?? INSPECTION MODULE ?? */
.gear-btn{width:44px;height:44px;border-radius:50%;border:none;background:#f1f5f9;color:#334155;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:transform .3s;}
.gear-btn:hover{transform:rotate(90deg);}
.inspection-section{background:var(--surface);border-radius:16px;padding:16px;margin-bottom:12px;box-shadow:0 4px 10px rgba(0,0,0,.03);}
.inspection-section h4{margin:0 0 12px 0;color:var(--primary);font-size:15px;display:flex;align-items:center;gap:8px;}
.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px;}
.kpi-card{border-radius:12px;padding:14px;text-align:center;}
.kpi-card .kpi-val{font-size:28px;font-weight:500;}
.kpi-card .kpi-lbl{font-size:11px;font-weight:500;opacity:.8;margin-top:2px;}
/* ?? SUPPLIER SELECT ?? */
/* Base neutre — le look tuiles est porté par #view-reception (évite bandeaux verts legacy) */
.supplier-select-btn{
  padding:14px;border-radius:14px;background:#fff;color:#0f172a;cursor:pointer;text-align:left;
  border:2px solid #e2e8f0;transition:all .15s;font:inherit;
}
.supplier-select-btn:active{transform:scale(.97);}
.supplier-select-btn.selected{border-color:#059669;box-shadow:0 0 0 2px rgba(5,150,105,.18);}

/* ?? ?TIQUETTES ?? */
.etiq-product-row{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;border:2px solid #e9d5ff;display:flex;align-items:center;gap:12px;}
.etiq-product-row.selected{border-color:#9333ea;background:#faf5ff;}
.etiq-check{width:28px;height:28px;border-radius:8px;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s;}
.etiq-check.on{background:#9333ea;border-color:#9333ea;color:#fff;}
.etiq-qty-ctrl{display:flex;align-items:center;gap:8px;}
.etiq-qty-ctrl button{width:32px;height:32px;border-radius:8px;border:none;background:#f1f5f9;font-weight:500;font-size:16px;cursor:pointer;}
.etiq-label-preview{background:linear-gradient(135deg,#9333ea,#6b21a8);color:#fff;border-radius:16px;padding:20px;text-align:center;margin:12px 0;}
.etiq-label-preview .etiq-name{font-weight:500;font-size:18px;line-height:1.2;}
.etiq-label-preview .etiq-prix-original{font-size:14px;text-decoration:line-through;opacity:.7;margin-top:6px;}
.etiq-label-preview .etiq-prix-reduit{font-size:32px;font-weight:500;margin-top:4px;}
.etiq-label-preview .etiq-pct{font-size:14px;background:rgba(255,255,255,.25);border-radius:8px;padding:4px 10px;margin-top:6px;display:inline-block;}

/* ?? SUPPLIER TYPE BUTTONS ?? */
.sup-type-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;}
.sup-type-btn{padding:12px 6px;border-radius:12px;border:2px solid #e2e8f0;font-weight:500;font-size:12px;cursor:pointer;text-align:center;background:#fff;transition:all .15s;line-height:1.3;}
.sup-type-btn:active{transform:scale(.96);}
.sup-type-btn.frais.on{background:#d1fae5;border-color:#059669;color:#065f46;}
.sup-type-btn.surgele.on{background:#dbeafe;border-color:#1e3a8a;color:#1e3a8a;}
.sup-type-btn.sec.on{background:#fef3c7;border-color:#92400e;color:#92400e;}

/* ?? PLANNING LIVRAISON ?? */
.planning-card{background:#fff;border-radius:14px;padding:12px 14px;margin-bottom:8px;border:1.5px solid #e2e8f0;}
.planning-day-header{font-weight:500;font-size:14px;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.planning-delivery{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;border-bottom:1.5px dashed #f1f5f9;}
.planning-delivery:last-child{border-bottom:none;}
.sup-badge-sm{padding:2px 7px;border-radius:6px;font-weight:500;font-size:10px;}
.sup-badge-sec{background:#fef3c7;color:#92400e;}
.sup-badge-frais{background:#d1fae5;color:#065f46;}
.sup-badge-surgele{background:#dbeafe;color:#1e3a8a;}
.today-highlight{border-left:5px solid var(--primary);background:linear-gradient(135deg,#eff6ff,#fff);}

/* ?? PVP DLC BADGE ?? */
.pvp-dlc-badge{position:absolute;top:-8px;right:-8px;background:#ef4444;color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;border:2px solid #fff;z-index:10;}

/* PVP / DLC / My Pie / Salad stock actions — pastilles sobres (pas de dégradés flashy) */
.pvp-stock-acts{display:inline-flex!important;gap:4px!important;flex-wrap:nowrap!important;align-items:center!important;max-width:100%!important;}
.pvp-stock-act{
  margin:0!important;padding:7px 10px!important;min-height:36px!important;font-size:12px!important;font-weight:700!important;
  border:1px solid transparent!important;border-radius:10px!important;white-space:nowrap!important;cursor:pointer!important;
  display:inline-flex!important;align-items:center!important;gap:5px!important;line-height:1.15!important;
  -webkit-tap-highlight-color:transparent;appearance:none!important;-webkit-appearance:none!important;
  box-shadow:none!important;letter-spacing:.01em;
}
.pvp-stock-act i{font-size:12px!important;}
.pvp-stock-act--vendu{background:#ecfdf5!important;color:#047857!important;border-color:#a7f3d0!important;}
.pvp-stock-act--promo{background:#fffbeb!important;color:#b45309!important;border-color:#fde68a!important;}
.pvp-stock-act--jeter{background:#fef2f2!important;color:#b91c1c!important;border-color:#fecaca!important;}
.pvp-stock-act:active{transform:scale(.97);opacity:.92;}
/* Cartes rayon / DLC : fond swipe rouge masqué + séparation nette entre produits */
.swipe-wrapper.stock-rayon-wrap,
.swipe-wrapper:has(.stock-rayon-card){
  background:transparent;
  margin-bottom:10px;
  border-radius:14px;
  overflow:visible;
}
.swipe-content.stock-rayon-card{
  flex-wrap:wrap;
  align-items:flex-start;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  margin:0;
}
.stock-rayon-meta{
  margin-top:5px;font-size:15px;font-weight:700;color:#334155;line-height:1.35;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.stock-rayon-row{
  display:flex;align-items:center;justify-content:space-between;margin-top:8px;
  flex-wrap:nowrap;gap:8px;width:100%;
}
.stock-rayon-row--single{flex-wrap:nowrap;}
.stock-rayon-qty-acts{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;flex:1 1 auto;}
.stock-rayon-qty{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:36px;padding:0 8px;border-radius:10px;
  background:#f1f5f9;color:#0f172a;font-size:15px;font-weight:800;
  font-variant-numeric:tabular-nums;flex-shrink:0;
}
.stock-rayon-recharge{
  width:36px!important;height:36px!important;min-width:36px!important;padding:0!important;
  border-radius:10px!important;background:#f1f5f9!important;color:#0f766e!important;
  border:1px solid #cbd5e1!important;flex-shrink:0;
  display:inline-flex!important;align-items:center;justify-content:center;
}
.stock-rayon-recharge i{font-size:14px;}
.stock-rayon-end{
  margin:0;border:none;background:transparent;padding:4px 0;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;max-width:min(100%,11rem);min-width:0;flex-shrink:0;
  font-size:14px;font-weight:800;color:#334155;line-height:1.25;text-align:right;
}
.stock-rayon-end span{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.stock-rayon-end i{font-size:11px;opacity:.8;flex-shrink:0;}
.stock-rayon-end.is-urgent{color:#dc2626;}
.stock-rayon-end.is-warn{color:#c2410c;}

@media (max-width:420px){
  .stock-rayon-row,.stock-rayon-qty-acts,.pvp-stock-acts{flex-wrap:wrap!important;}
}
/* ?? DLC PARENT MODULE ?? */
.dlc-module-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;}
.dlc-sub-card{background:var(--surface);border-radius:18px;padding:22px 16px;box-shadow:0 4px 14px rgba(0,0,0,.06);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;gap:8px;border:2px solid transparent;transition:all .2s;position:relative;text-align:center;}
.dlc-sub-card:active{transform:scale(.97);}
.dlc-sub-card i{font-size:30px;}
.dlc-sub-card .sub-title{font-weight:500;font-size:14px;}
.dlc-sub-card .sub-sub{font-size:11px;color:var(--muted);}
.dlc-sub-card.wide{grid-column:1/-1;}

/* ?? Admin hub ?? */
#view-admin-hub .admin-hub-lead{
  margin:0 0 14px;
  font-size:13px;
  line-height:1.35;
  color:#64748b;
  font-weight:500;
}
.admin-hub-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.admin-hub-card{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  margin:0;
  padding:14px 12px;
  border:1px solid #d7e3f1;
  border-radius:16px;
  background:#fff;
  box-shadow:0 6px 14px rgba(15,23,42,.06);
  cursor:pointer;
  text-align:left;
  font:inherit;
  color:inherit;
  transition:transform .15s ease, box-shadow .15s ease;
  min-height:76px;
  box-sizing:border-box;
}
.admin-hub-card:active{transform:scale(.985);}
.admin-hub-card--plan{grid-column:1/-1;min-height:88px;border-color:#bcd2f5;background:linear-gradient(135deg,#f0f7ff 0%,#fff 70%);}
.admin-hub-card--treso{border-color:#c7d7ef;background:linear-gradient(160deg,#f8fbff,#fff);}
.admin-hub-card--pertes{border-color:#f0c9c9;background:linear-gradient(160deg,#fff8f8,#fff);}
.admin-hub-card--pdf{grid-column:1/-1;border-color:#c4b5fd;background:linear-gradient(160deg,#f5f3ff,#fff);}
.admin-hub-card__icon{
  width:44px;height:44px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;
}
.admin-hub-card--plan .admin-hub-card__icon{background:#e8f1fc;color:#0C447C;}
.admin-hub-card--treso .admin-hub-card__icon{background:#eef4fb;color:#0c4a8a;}
.admin-hub-card--pertes .admin-hub-card__icon{background:#fdecec;color:#B91C1C;}
.admin-hub-card--pdf .admin-hub-card__icon{background:#ede9fe;color:#6d28d9;}
.admin-hub-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.admin-hub-card__title{font-size:15px;font-weight:800;letter-spacing:-.2px;color:#0f172a;line-height:1.2;}
.admin-hub-card--plan .admin-hub-card__title{color:#0C447C;font-size:16px;}
.admin-hub-card--treso .admin-hub-card__title{color:#0c4a8a;}
.admin-hub-card--pertes .admin-hub-card__title{color:#B91C1C;}
.admin-hub-card--pdf .admin-hub-card__title{color:#6d28d9;}
.admin-hub-card__sub{font-size:11px;font-weight:500;color:#64748b;line-height:1.3;}
.admin-hub-card__go{color:#94a3b8;font-size:13px;flex-shrink:0;padding:0 2px;}
@media (max-width:380px){
  .admin-hub-grid{grid-template-columns:1fr;}
  .admin-hub-card--plan,.admin-hub-card--treso,.admin-hub-card--pertes{grid-column:1/-1;}
}
@media (min-width:720px){
  .admin-hub-grid{grid-template-columns:1.2fr 1fr 1fr;gap:12px;}
  .admin-hub-card--plan,.admin-hub-card--treso,.admin-hub-card--pertes{grid-column:auto;min-height:110px;flex-direction:column;align-items:flex-start;padding:18px 16px;gap:14px;}
  .admin-hub-card__go{align-self:flex-end;margin-top:auto;}
  .admin-hub-card__icon{width:48px;height:48px;font-size:20px;border-radius:14px;}
  .admin-hub-card__title{font-size:16px;}
  .admin-hub-card__sub{font-size:12px;}
}

body.premium-ui #view-admin-hub .admin-hub-card{
  border-radius:16px !important;
  box-shadow:0 10px 18px rgba(15,23,42,.08) !important;
}
.fraicheur-rules{
  background:linear-gradient(135deg,#eff6ff,#f8fafc);
  border:1px solid #bfdbfe;
  border-radius:14px;
  padding:12px 14px;
  margin:0 0 14px;
  font-size:12px;
  line-height:1.45;
  color:#1e3a5f;
}
.fraicheur-rules-title{font-weight:700;font-size:13px;margin-bottom:8px;color:#1d4ed8;}
.fraicheur-rules-list{margin:0;padding-left:18px;}
.fraicheur-rules-list li{margin-bottom:4px;}
.rayon-dup-panel{
  background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;margin:0 16px 12px;
}
.rayon-dup-panel--compact{margin:0 0 10px;padding:10px 12px;}
.rayon-dup-label{display:flex;align-items:flex-start;gap:10px;}
.rayon-dup-label input[type=checkbox]{
  width:20px !important;height:20px !important;min-width:20px;flex-shrink:0;margin-top:2px;accent-color:#2563eb;
}
.rayon-dup-title{display:block;font-weight:600;font-size:13px;color:#1e293b;}
.rayon-dup-hint{display:block;font-size:11px;color:#64748b;line-height:1.4;margin-top:2px;}
.rayon-dup-save{margin-top:8px !important;font-size:12px;padding:8px 12px !important;}
#view-pvp #pvp-rayon-options .rayon-dup-panel,
#view-mypie #mypie-rayon-options .rayon-dup-panel,
#view-salad #salad-bib-options .rayon-dup-panel{margin:0 16px 10px;}
.fraicheur-hub-total{
  display:none;
  align-items:center;
  justify-content:center;
  background:#ef4444;
  color:#fff;
  font-weight:700;
  font-size:13px;
  border-radius:12px;
  padding:8px 14px;
  margin:0 0 12px;
  text-align:center;
}
.fraicheur-card-badge{
  position:absolute;
  top:6px;right:8px;
  background:#ef4444;color:#fff;
  border-radius:50%;
  min-width:22px;height:22px;
  font-size:11px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  padding:0 4px;z-index:2;
}
.fraicheur-card-pill{
  display:none;
  background:#ef4444;color:#fff;
  border-radius:20px;
  padding:2px 10px;
  font-size:11px;font-weight:600;
  margin-bottom:4px;
}
.fraicheur-card-dates{border-color:#003896!important;background:linear-gradient(135deg,#eff6ff,#fff)!important;}
.fraicheur-card-dates i{color:#003896;}
.fraicheur-card-dates .sub-title{color:#003896;}
.fraicheur-card-pvp{border-color:#534AB7!important;background:linear-gradient(135deg,#f5f3ff,#fff)!important;}
.fraicheur-card-pvp i{color:#534AB7;}
.fraicheur-card-pvp .sub-title{color:#534AB7;}
.fraicheur-card-mypie{border-color:#f97316!important;background:linear-gradient(135deg,#fff7ed,#fff)!important;}
.fraicheur-card-mypie i{color:#f97316;}
.fraicheur-card-mypie .sub-title{color:#ea580c;}
.fraicheur-card-salad{border-color:#16a34a!important;background:linear-gradient(135deg,#f0fdf4,#fff)!important;}
.fraicheur-card-salad i{color:#16a34a;}
.fraicheur-card-salad .sub-title{color:#15803d;}
.fraicheur-card-traca{border-color:#0891b2!important;background:linear-gradient(135deg,#ecfeff,#fff)!important;}
.fraicheur-card-traca i{color:#0891b2;}
.fraicheur-card-traca .sub-title{color:#0e7490;}
body.purpan-handheld #view-dlc .fraicheur-rules{font-size:11px;padding:10px 12px;}
body.purpan-handheld #view-dlc .dlc-sub-card{padding:16px 12px;}
body.purpan-handheld #view-dlc .dlc-sub-card i{font-size:26px;}
.traca-tabs .tab.active-traca{color:#0891b2;border-bottom-color:#0891b2;font-weight:700;}
.traca-zone-hint{margin:8px 16px 4px;color:#64748b;}
.traca-ok-badge{font-size:10px;color:#059669;font-weight:600;white-space:nowrap;}
.traca-link-badge{font-size:10px;color:#0891b2;font-weight:600;white-space:nowrap;}
.traca-warn-badge{font-size:10px;color:#b45309;font-weight:600;white-space:nowrap;}
.traca-opt-badge{font-size:10px;color:#64748b;font-weight:600;white-space:nowrap;}
.traca-row-optional{border-left:4px solid #cbd5e1!important;}
.traca-rayon-chip{font-size:10px;font-weight:600;padding:2px 6px;border-radius:6px;background:#e0f2fe;color:#0369a1;}
.traca-rayon-mypie{background:#ffedd5;color:#c2410c;}
.traca-rayon-salad{background:#dcfce7;color:#15803d;}
.traca-rayon-fl{background:#f0fdf4;color:#166534;}
.traca-group-header{background:#0891b2!important;}
#view-tracabilite .traca-scan-hero{
  margin:12px 12px 0;padding:14px 16px;border:1.5px dashed #67e8f9;border-radius:14px;
  background:linear-gradient(180deg,#ecfeff,#f0fdfa);display:flex;align-items:center;gap:12px;cursor:pointer;
}
#view-tracabilite .traca-scan-hero i{font-size:28px;color:#0891b2;}
.traca-filter-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 4px;}
.traca-chip{
  border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:999px;padding:6px 12px;
  font-size:12px;font-weight:600;cursor:pointer;
}
.traca-chip.active{background:#0891b2;color:#fff;border-color:#0891b2;}
.traca-chip-n{
  display:none;margin-left:4px;background:#b45309;color:#fff;border-radius:999px;
  font-size:10px;padding:1px 5px;font-weight:700;
}
.traca-chip.active .traca-chip-n{background:rgba(255,255,255,.25);}
.traca-tab-count{
  margin-left:6px;background:#b45309;color:#fff;border-radius:999px;font-size:10px;
  padding:2px 7px;font-weight:700;vertical-align:middle;
}
.traca-todo-row{cursor:pointer;}
.traca-todo-row:active{background:#f0fdfa;}
.traca-row-attention{border-left:4px solid #f59e0b!important;}
.traca-row-missing{border-left-color:#dc2626!important;background:linear-gradient(90deg,#fef2f2 0%,#fff 28%);}
.traca-row-stale{border-left-color:#f59e0b!important;background:linear-gradient(90deg,#fffbeb 0%,#fff 28%);}
.traca-hist-section-hdr{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.45px;color:#475569;margin:18px 0 8px;padding:6px 0 6px 10px;border-left:4px solid #0891b2;}
.traca-hist-section-hdr:first-of-type{margin-top:4px;}
.traca-hist-section-pvp{border-left-color:#534AB7;}
.traca-hist-section-fl{border-left-color:#15803d;}
.traca-hist-section-mypie{border-left-color:#f97316;}
.traca-hist-section-salad{border-left-color:#0F6E56;}
.traca-rayon-pvp{background:#ede9fe;color:#5b21b6;}
.traca-scan-pick-title{padding:8px 4px 10px;font-weight:600;color:#0e7490;}
.traca-pick-row{
  width:100%;display:flex;align-items:center;gap:8px;padding:12px;margin-bottom:6px;
  border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;text-align:left;
}
.traca-pick-name{flex:1;font-weight:600;}
.traca-all-done i{color:#059669;font-size:32px;margin-bottom:8px;}
.traca-flow-hint{margin:12px 16px 4px;color:#475569;font-size:13px;font-weight:500;}
.traca-step-num{
  display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  border-radius:50%;background:#0891b2;color:#fff;font-size:11px;font-weight:700;margin-right:4px;
}
.traca-step-hint .traca-step-num{margin-bottom:8px;width:28px;height:28px;font-size:14px;}
#view-tracabilite .traca-search-card{margin:8px 12px 10px;padding:10px 12px;border-left:4px solid #0891b2;}
#view-tracabilite .traca-search-wrap{margin:0;}
.traca-list-title{
  display:flex;align-items:center;gap:8px;padding:4px 2px 10px;font-size:13px;font-weight:700;color:#0e7490;
}
.traca-list-count{
  background:#b45309;color:#fff;border-radius:999px;font-size:11px;padding:2px 8px;font-weight:700;
}
.traca-fl-tools{
  display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px;
}
.traca-hist-row{cursor:default;}
.traca-rayon-fl{background:#f0fdf4;color:#166534;}

/* Compte ? pointeuse murale ? uniquement : masquer les vues modules, garder l?overlay pointeuse */
body.ptse-kiosk-only-mode #app-header,
body.ptse-kiosk-only-mode #app-nav,
body.ptse-kiosk-only-mode #fab-dial,
body.ptse-kiosk-only-mode #fab-dial-2{display:none!important;}
body.ptse-kiosk-only-mode main > div[id^="view-"]{display:none!important;}

/* ?? POINTEUSE ?? */
#view-pointeuse{animation:fadeIn .2s ease;}
/* iPhone / iOS : fixed + inset ignore le padding body ; safe-area + hauteur -webkit-fill-available ?vitent encoche / home indicator et 100dvh trop grand sous Safari. */
.pointeuse-overlay{
  position:fixed;
  inset:0;
  background:#fff;
  z-index:9100;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-sizing:border-box;
  padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);
  min-height:100%;
  min-height:-webkit-fill-available;
  height:100vh;
  height:100dvh;
  height:100svh;
  overscroll-behavior:contain;
}
.pointeuse-bar{
  background:#fff!important;color:#1e293b!important;padding:12px 16px;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"back title extra" "nav nav nav";
  gap:8px 10px;align-items:center;border-bottom:1px solid #e2e8f0;flex-shrink:0;
  box-shadow:0 1px 0 rgba(15,23,42,.04);
}
.pointeuse-bar .ptse-bar-back{grid-area:back;}
.pointeuse-bar-title{grid-area:title;min-width:0;color:#1e293b!important;}
#ptse-borne-mode-wrap,#ptse-borne-change-btn{grid-area:extra;justify-self:end;}
.pointeuse-bar .ptse-bar-back,.pointeuse-bar .ptse-bar-change,.pointeuse-bar button.ptse-nav-btn{background:#f1f5f9!important;border:1px solid #e2e8f0!important;color:#334155!important;border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer;font-size:13px;flex-shrink:0;}
.pointeuse-bar button.ptse-nav-btn{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;line-height:1.2;min-width:0;}
.pointeuse-bar button.ptse-nav-btn i{font-size:14px;flex-shrink:0;width:1.1em;text-align:center;color:#6366f1!important;opacity:1;}
.pointeuse-bar button.ptse-nav-btn span{font-size:12px;color:inherit!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:5.5rem;}
.pointeuse-bar button.ptse-nav-btn.ptse-tab-active{background:#eef2ff!important;border-color:#c7d2fe!important;color:#4338ca!important;box-shadow:0 2px 0 #6366f1,inset 0 1px 0 rgba(255,255,255,.8);}
.pointeuse-bar button.ptse-nav-btn.ptse-tab-active i{color:#4f46e5!important;}
.pointeuse-bar-title-main{font-weight:600;font-size:16px;color:#0f172a!important;line-height:1.25;display:flex;align-items:center;gap:8px;}
.pointeuse-bar-title-main i{color:#6366f1!important;font-size:15px;flex-shrink:0;}
.pointeuse-bar-date{font-size:11px;color:#64748b!important;margin-top:2px;line-height:1.3;}
.pointeuse-bar-session{font-size:13px;font-weight:700;color:#0f766e!important;margin-top:3px;letter-spacing:-.01em;line-height:1.3;}
.pointeuse-bar-tabs{
  grid-area:nav;width:100%;min-width:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:6px;align-items:stretch;
}
.pointeuse-bar-tabs > .ptse-nav-btn{width:100%;max-width:none;}
@media (min-width:960px){
  .pointeuse-bar{
    grid-template-columns:auto minmax(0,1fr) auto minmax(0,max-content);
    grid-template-areas:"back title extra nav";
    gap:10px 12px;
  }
  .pointeuse-bar-tabs{
    width:auto;max-width:min(560px,48vw);
    display:flex;flex-wrap:nowrap;gap:6px;justify-content:flex-end;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;
  }
  .pointeuse-bar-tabs > .ptse-nav-btn{width:auto;flex:0 0 auto;}
  .pointeuse-bar button.ptse-nav-btn span{max-width:none;}
}
.ptse-period-label{color:#334155!important;font-weight:600;font-size:14px;flex:1;text-align:center;}
.ptse-btn-light{background:#eef2ff!important;border:1px solid #c7d2fe!important;color:#4338ca!important;border-radius:10px;padding:8px 14px;font-size:12px;font-weight:600;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.ptse-btn-light i{color:#4f46e5!important;}
.pointeuse-overlay--gate .pointeuse-bar-tabs .ptse-nav-btn:not(#ptse-tab-clock-btn){display:none;}
@media (max-width:700px){
  .pointeuse-overlay--gate .pointeuse-bar-tabs{display:none;}
}
.ptse-gate-plan-mobile{display:none;margin-bottom:12px;}
@media (max-width:700px){
  .ptse-gate-plan-mobile{display:block;}
}
.ptse-gate-plan-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;}
.ptse-gate-plan-card--hint p{margin:6px 0 0;font-size:12px;color:#64748b;line-height:1.4;}
.ptse-gate-plan-title{font-size:13px;font-weight:800;color:#0f172a;margin-bottom:6px;}
.ptse-gate-plan-shift{font-size:14px;font-weight:600;color:#334155;line-height:1.45;}
.ptse-gate-plan-warn{margin-top:10px;padding:8px 10px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;font-size:12px;font-weight:600;color:#9a3412;line-height:1.35;}
.ptse-gate-plan-ok{margin-top:10px;padding:8px 10px;border-radius:8px;background:#f0fdf4;border:1px solid #bbf7d0;font-size:12px;font-weight:600;color:#15803d;}
.ptse-gate-empty-users{grid-column:1/-1;color:#64748b;text-align:center;padding:14px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;font-size:13px;line-height:1.45;}
.ptse-clock-store-cfg{margin:10px 12px 14px;padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;}
.ptse-clock-store-cfg .pointeuse-section-title{margin-bottom:4px;font-size:13px;font-weight:800;color:#0f172a;}
.pointeuse-overlay--gate .ptse-clock-store-cfg{display:none!important;}
.ptse-clock-store-cfg #ptse-clock-store-cfg-body{padding-bottom:8px;}
.ptse-bar-store-cfg{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:10px;padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0;}
.ptse-bar-store-cfg i{font-size:13px;}
.ptse-cfg-block{margin-bottom:4px;}
.ptse-cfg-h{font-size:13px;font-weight:800;color:#0f172a;margin-bottom:6px;}
.ptse-cfg-subh{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin:12px 0 8px;}
.ptse-cfg-p{font-size:11px;color:#64748b;line-height:1.45;margin:0 0 10px;}
.ptse-cfg-count{font-size:11px;font-weight:700;color:#6366f1;margin-bottom:10px;}
.ptse-cfg-empty{font-size:12px;color:#94a3b8;padding:10px 12px;background:#f8fafc;border-radius:10px;border:1px dashed #e2e8f0;margin-bottom:10px;}
.ptse-cfg-user-list{display:flex;flex-direction:column;gap:6px;}
.ptse-cfg-user-list--muted{opacity:.95;}
.ptse-cfg-user{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;}
.ptse-cfg-user--on{border-color:#c7d2fe;background:#f8fafc;}
.ptse-cfg-user-btn{border:none;background:#6366f1;color:#fff;border-radius:8px;padding:7px 12px;font-size:11px;font-weight:700;cursor:pointer;flex-shrink:0;}
.ptse-cfg-user-btn--off{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;}
.ptse-cfg-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;margin-bottom:12px;font-size:13px;color:#334155;}
.ptse-cfg-check input{width:18px;height:18px;accent-color:#6366f1;margin-top:2px;flex-shrink:0;}
.ptse-cfg-lbl{display:block;font-size:11px;font-weight:600;color:#64748b;margin-bottom:6px;}
.ptse-cfg-num{width:100%;max-width:120px;padding:10px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;margin-bottom:8px;}
.ptse-cfg-num:disabled{opacity:.45;background:#f1f5f9;}
.ptse-cfg-save{border:none;background:#6366f1;color:#fff;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;}
.ptse-cfg-badge{font-size:10px;font-weight:800;color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:5px 10px;white-space:nowrap;flex-shrink:0;}
.ptse-access-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.ptse-access-row{
  display:grid;grid-template-columns:minmax(0,1.35fr) repeat(4,minmax(52px,1fr)) minmax(52px,auto);
  gap:6px 8px;align-items:center;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;
}
.ptse-access-row--admin{background:#f5f3ff;border-color:#ddd6fe;}
.ptse-access-head{background:#fff;border-style:dashed;padding:8px 12px;}
.ptse-access-head .ptse-access-lbl{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em;}
.ptse-access-name{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.ptse-access-nm{font-size:13px;font-weight:700;color:#0f172a;}
.ptse-access-warn{font-size:10px;font-weight:700;color:#b45309;}
.ptse-access-col{display:flex;justify-content:center;align-items:center;}
.ptse-access-chk{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:0;}
.ptse-access-chk input{width:18px;height:18px;accent-color:#6366f1;cursor:pointer;margin:0;}
.ptse-access-chk input:disabled{opacity:.55;cursor:not-allowed;}
.ptse-access-pin{display:flex;justify-content:center;}
@media (max-width:640px){
  .ptse-access-row,.ptse-access-head{
    grid-template-columns:1fr 1fr 1fr;
    grid-template-areas:
      "name name pin"
      "p1 p2 p3"
      "p4 p4 p4";
  }
  .ptse-access-name{grid-area:name;}
  .ptse-access-pin{grid-area:pin;justify-self:end;}
  .ptse-access-row [data-col="pointeuse"]{grid-area:p1;}
  .ptse-access-row [data-col="admin"]{grid-area:p2;}
  .ptse-access-row [data-col="borne"]{grid-area:p3;}
  .ptse-access-row [data-col="planning"]{grid-area:p4;}
  .ptse-access-head [data-col="pointeuse"]{grid-area:p1;}
  .ptse-access-head [data-col="admin"]{grid-area:p2;}
  .ptse-access-head [data-col="borne"]{grid-area:p3;}
  .ptse-access-head [data-col="planning"]{grid-area:p4;}
  .ptse-access-head .ptse-access-pin{display:none;}
}
.ptse-cfg-user--admin{border-color:#c7d2fe;background:#f5f3ff;}
.ptse-scroll-panel{overflow-y:auto;max-height:calc(100vh - 200px);padding-bottom:24px;-webkit-overflow-scrolling:touch;}
.ptse-nav-arrow{background:#f1f5f9;border:1px solid #e2e8f0;color:#334155;border-radius:10px;padding:8px 14px;cursor:pointer;}
.ptse-nav-btn{min-height:40px;white-space:nowrap;}
.ptse-loading,.ptse-empty{color:#94a3b8;text-align:center;padding:24px 12px;font-size:13px;}
.ptse-day-head{color:#64748b;font-size:12px;margin-bottom:10px;font-weight:600;}
.ptse-day-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px 14px;margin-bottom:10px;box-shadow:0 1px 3px rgba(15,23,42,.06);}
.ptse-day-card.ptse-st--absent{border-color:#fecaca;background:#fef2f2;}
.ptse-day-card.ptse-st--on{border-color:#86efac;background:#f0fdf4;}
.ptse-day-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;}
.ptse-day-name{font-weight:700;font-size:15px;color:#0f172a;}
.ptse-day-post{font-size:11px;color:#64748b;margin-top:2px;}
.ptse-day-status{font-size:10px;font-weight:800;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#475569;}
.ptse-day-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:12px;}
.ptse-day-lbl{display:block;font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;}
.ptse-day-grid strong{color:#1e293b;font-weight:600;}
.ptse-ecart{display:inline-block;font-size:10px;font-weight:700;margin-left:4px;padding:2px 6px;border-radius:6px;}
.ptse-ecart--ok{background:#dcfce7;color:#15803d;}
.ptse-ecart--warn{background:#fef3c7;color:#b45309;}
.ptse-ecart--bad{background:#fee2e2;color:#b91c1c;}
.ptse-ecart--na{opacity:.45;}
.ptse-card-btn{margin-top:10px;width:100%;border:none;background:#eef2ff;color:#4338ca;border-radius:10px;padding:10px;font-size:12px;font-weight:600;cursor:pointer;}
.ptse-chip{border:1px solid #e2e8f0;background:#f8fafc;color:#475569;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;margin:0 6px 6px 0;}
.ptse-chip--on{background:#6366f1;border-color:#6366f1;color:#fff;}
.ptse-view-filter-wrap{margin-bottom:12px;}
.ptse-view-filter{display:flex;flex-direction:column;gap:8px;}
.ptse-view-filter-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.ptse-view-filter-select-wrap{display:flex;flex-direction:column;gap:4px;}
.ptse-view-filter-lbl{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;}
.ptse-view-filter-select{width:100%;max-width:100%;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;font-weight:500;background:#fff;color:#0f172a;}
.ptse-paie-block{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:14px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.ptse-paie-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;}
.ptse-paie-name{font-weight:700;font-size:15px;}
.ptse-paie-meta{font-size:11px;opacity:.85;margin-top:2px;}
.ptse-paie-total{font-size:18px;font-weight:800;}
.ptse-paie-disclaimer{font-size:10px;color:#64748b;padding:8px 14px;background:#f8fafc;border-bottom:1px solid #f1f5f9;line-height:1.35;}
.ptse-paie-disclaimer i{margin-right:4px;color:#7c3aed;}
.ptse-paie-types{padding:8px 10px;}
.ptse-paie-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;margin-bottom:6px;border-radius:10px;background:var(--paie-bg,#f8fafc);border-left:4px solid var(--paie-color,#64748b);}
.ptse-paie-row-lbl{font-weight:600;font-size:12px;color:var(--paie-color,#334155);}
.ptse-paie-row-hint{font-size:10px;color:#64748b;margin-top:2px;line-height:1.3;}
.ptse-paie-row-val{font-weight:800;font-size:14px;color:var(--paie-color,#0f172a);white-space:nowrap;}
.ptse-paie-jf-title,.ptse-paie-weeks-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;padding:8px 14px 4px;letter-spacing:.04em;}
.ptse-paie-jf-list{padding:0 14px 10px;}
.ptse-paie-jf-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:12px;}
.ptse-paie-jf-item span:first-child{flex:1;font-weight:500;color:#92400e;}
.ptse-paie-weeks{padding:0 14px 12px;display:flex;flex-direction:column;gap:6px;}
.ptse-paie-week{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:8px 10px;background:#f8fafc;border-radius:10px;font-size:11px;}
.ptse-paie-week-lbl{font-weight:600;color:#334155;}
.ptse-paie-week-val{font-weight:700;color:#059669;}
.ptse-paie-week-badges{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;}
.ptse-paie-week-badges span{background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:2px 8px;font-size:10px;color:#475569;}
.ptse-paie-cost{padding:10px 14px;font-size:12px;color:#166534;background:#f0fdf4;border-top:1px solid #bbf7d0;}
.ptse-paie-sign-btn{display:block;width:calc(100% - 28px);margin:0 14px 14px;border:none;background:#0891b2;color:#fff;border-radius:10px;padding:10px;font-size:12px;font-weight:600;cursor:pointer;}
.sigdlg-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:100002;display:flex;align-items:center;justify-content:center;padding:16px;}
.sigdlg-card{background:#fff;border-radius:16px;padding:16px;max-width:360px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.2);}
.sigdlg-title{font-weight:700;font-size:16px;color:#0f172a;margin-bottom:4px;}
.sigdlg-sub{font-size:12px;color:#64748b;line-height:1.35;margin-bottom:12px;}
.sigdlg-canvas{display:block;width:100%;height:140px;border:2px dashed #cbd5e1;border-radius:12px;touch-action:none;cursor:crosshair;background:#fff;}
.sigdlg-actions{display:flex;gap:8px;margin-top:12px;justify-content:flex-end;flex-wrap:wrap;}
.sigdlg-btn{border:none;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600;cursor:pointer;}
.sigdlg-btn--ghost{background:#f1f5f9;color:#334155;}
.sigdlg-btn--ok{background:#0f6e56;color:#fff;}
.sigdlg-preview{display:block;width:100%;max-height:220px;object-fit:contain;border:2px solid #e2e8f0;border-radius:12px;background:#fff;margin-top:8px;}
.ptse-sig-hint{font-size:11px;text-align:center;margin:6px 0 0;padding:6px 10px;border-radius:8px;font-weight:600;}
.ptse-sig-hint--ok{background:#dcfce7;color:#166534;}
.ptse-sig-hint--warn{background:#fff7ed;color:#9a3412;}
.ptse-sig-hint.hidden{display:none;}
.ptse-month-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.ptse-month-summary--4{grid-template-columns:repeat(2,1fr);}
@media(min-width:520px){.ptse-month-summary--4{grid-template-columns:repeat(4,1fr);}}
.ptse-month-summary>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px;text-align:center;}
.ptse-month-summary span{display:block;font-size:10px;color:#64748b;text-transform:uppercase;}
.ptse-month-summary strong{display:block;font-size:15px;color:#1e293b;margin-top:4px;}
.ptse-month-summary small{display:block;font-size:9px;color:#94a3b8;margin-top:3px;line-height:1.2;}
.ptse-week-planned-sub{font-size:11px;color:#64748b;font-weight:500;margin-top:2px;}
.ptse-week-sum-lbl{display:block;font-size:10px;font-weight:600;color:#94a3b8;text-transform:uppercase;}
.ptse-month-chart{display:flex;gap:12px;justify-content:center;align-items:flex-end;min-height:90px;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:10px;}
.ptse-bar-col{text-align:center;min-width:36px;}
.ptse-bars{display:flex;gap:4px;align-items:flex-end;justify-content:center;height:60px;}
.ptse-bar{width:14px;border-radius:4px 4px 0 0;min-height:4px;}
.ptse-bar--plan{background:#cbd5e1;}
.ptse-bar--real{background:#6366f1;}
.ptse-bar-lbl{font-size:10px;color:#64748b;margin-top:6px;}
.ptse-month-hint{font-size:11px;color:#94a3b8;line-height:1.4;margin:0;}
.ptse-week-block{margin-bottom:16px;}
.ptse-week-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.ptse-week-name{font-weight:600;font-size:15px;color:#1e293b;}
.ptse-week-sum{font-size:17px;font-weight:700;color:#4f46e5;}
.ptse-week-row{display:grid;grid-template-columns:32px 1fr auto auto 32px;gap:6px;align-items:center;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:4px;font-size:12px;}
.ptse-week-row--rest{opacity:.55;border-style:dashed;background:#f8fafc;}
.ptse-week-row--absent{border-color:#fecaca;background:#fef2f2;}
.ptse-week-day{color:#64748b;font-weight:600;min-width:2rem;font-size:11px;}
#ptse-tab-month .ptse-week-day{min-width:4.6rem;font-size:10px;line-height:1.25;}
#ptse-tab-month .ptse-week-row{grid-template-columns:4.6rem 1fr auto auto 32px;}
.ptse-week-title{color:#1e293b;font-weight:600;}
.ptse-week-sub{color:#94a3b8;font-size:10px;margin-top:2px;}
.ptse-week-total{color:#4f46e5;font-weight:700;text-align:right;}
.ptse-week-edit{border:none;background:#e0f2fe;color:#0369a1;border-radius:8px;padding:6px 8px;cursor:pointer;}
.pointeuse-overlay--borne #ptse-tab-day.pointeuse-body,
.pointeuse-overlay--borne #ptse-tab-month.pointeuse-body{padding:16px 12px;}
.pointeuse-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 16px;color:#1e293b;}
.ptse-total-label{font-size:12px;color:#64748b;margin-top:8px;min-height:1.2em;}
.ptse-meta-line{font-size:11px;margin-top:4px;min-height:1.1em;}
.pointeuse-demands{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0;}
.ptse-absence-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;margin:10px 0 4px;border:1.5px solid #e2e8f0;border-radius:12px;background:#f8fafc;color:#334155;font-size:13px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.ptse-absence-toggle:active{background:#e0f2fe;border-color:#0891b2;}
.pointeuse-overlay--borne .ptse-absence-toggle{background:#f8fafc;border-color:#e2e8f0;color:#334155;}
.pointeuse-overlay--borne .ptse-absence-toggle:active{background:#e0f2fe;border-color:#0891b2;}
.pointeuse-demands-title{font-size:11px;font-weight:700;color:#64748b;letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;}
.pointeuse-demands-sub{font-size:12px;font-weight:600;color:#334155;margin:12px 0 8px;}
.ptse-demand-primary{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 14px;border:none;border-radius:14px;background:linear-gradient(135deg,#0891b2,#0e7490);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(8,145,178,.35);}
.ptse-demand-primary:active{transform:scale(.98);}
.pointeuse-demands-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.ptse-demand-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:8px 6px;border-radius:12px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#0f172a;font-size:12px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.ptse-demand-chip:active{background:#e0f2fe;border-color:#0891b2;}
.ptse-demand-chip--wide{grid-column:span 3;}
.ptse-dc-ico{font-size:16px;line-height:1;}
@media (max-width:380px){
  .pointeuse-demands-grid{grid-template-columns:repeat(2,1fr);}
  .ptse-demand-chip--wide{grid-column:span 2;}
}
.pointeuse-clock{text-align:center;padding:30px 0 24px;}
.pointeuse-timer{font-size:56px;font-weight:500;color:#1e293b;letter-spacing:2px;font-variant-numeric:tabular-nums;text-shadow:none;}
.pointeuse-status-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:999px;font-weight:500;font-size:14px;margin-top:12px;}
.pointeuse-status-chip.off{background:#f1f5f9;color:#64748b;}
.pointeuse-status-chip.on{background:rgba(34,197,94,.15);color:#16a34a;border:1.5px solid rgba(22,163,74,.25);}
.pointeuse-status-chip.pause{background:rgba(251,191,36,.15);color:#d97706;border:1.5px solid rgba(217,119,6,.25);}
.pointeuse-overlay--borne .pointeuse-status-chip.pause{background:rgba(251,191,36,.15);color:#d97706;border:1.5px solid rgba(217,119,6,.25);}
.pointeuse-status-chip .dot{width:10px;height:10px;border-radius:50%;background:currentColor;}
@media (prefers-reduced-motion:no-preference){
  .pointeuse-status-chip.on .dot{animation:ptseDotPulse 2.4s ease-in-out infinite;}
}
@keyframes ptseDotPulse{0%,100%{opacity:1}50%{opacity:.55}}
.pointeuse-btn-wrap{display:flex;justify-content:center;margin:16px 0 28px;}
.pointeuse-main-btn{width:160px;height:160px;border-radius:50%;border:none;cursor:pointer;font-size:18px;font-weight:500;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:all .2s;box-shadow:0 4px 24px rgba(99,102,241,.3);}
.pointeuse-main-btn.btn-in{background:linear-gradient(135deg,#6366f1,#4f46e5);}
.pointeuse-main-btn.btn-out{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 24px rgba(239,68,68,.3);}
.pointeuse-main-btn:active{transform:scale(.94);}
.pointeuse-main-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none;}
.pointeuse-main-btn i{font-size:36px;}
.pointeuse-pause-btn{display:block;margin:0 auto 28px;background:#dde3ec;border:1.5px solid #b8c4d4;color:#334155;border-radius:14px;padding:13px 28px;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s;}
.pointeuse-pause-btn:active{background:#c8d2e0;}
.pointeuse-section{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06);border-radius:16px;padding:16px;margin-bottom:14px;}
.pointeuse-section-title{font-size:12px;font-weight:500;color:#64748b;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px;}

/* Pointeuse mode borne ? th?me clair (tablette murale) */
.ptse-borne-mode-wrap{display:inline-flex;align-items:center;gap:6px;color:#475569;font-size:11px;font-weight:600;cursor:pointer;user-select:none;flex-shrink:0;}
.ptse-borne-mode-wrap input{width:14px;height:14px;accent-color:#6366f1;cursor:pointer;}
.pointeuse-overlay--borne{background:#fff!important;}
.pointeuse-overlay--borne .pointeuse-bar{background:#fff;border-bottom:1px solid #e2e8f0;color:#1e293b;}
.pointeuse-overlay--borne #ptse-tab-clock.pointeuse-body{padding:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.pointeuse-overlay--borne #ptse-tab-logs.pointeuse-body,
.pointeuse-overlay--borne #ptse-tab-manager.pointeuse-body,
.pointeuse-overlay--borne #ptse-tab-timesheet.pointeuse-body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.tp-borne-gate{
  --tp-s0:#fff;--tp-s1:#f8fafc;--tp-s2:#f1f5f9;--tp-s3:#fff;--tp-brd:#e2e8f0;
  --tp-t1:#0f172a;--tp-t2:#475569;--tp-t3:#64748b;--tp-ac:#6366f1;--tp-ac2:#4f46e5;
  --tp-mono:'IBM Plex Mono',ui-monospace,monospace;
  flex:1 1 auto;min-height:0;width:100%;
  display:grid;grid-template-columns:1fr 1fr;align-items:stretch;
  font-family:Outfit,system-ui,sans-serif;color:var(--tp-t1);
  overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;
  position:relative;isolation:isolate;
}
.tp-borne-left{
  display:flex;flex-direction:column;justify-content:center;align-items:center;padding:clamp(16px,4vw,36px);
  background:linear-gradient(145deg,var(--tp-s1),var(--tp-s2));border-right:1px solid var(--tp-brd);gap:clamp(12px,3vw,24px);
  overflow:visible;min-width:0;box-sizing:border-box;
}
.tp-borne-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px;align-self:flex-start;width:100%;max-width:380px;}
.tp-borne-brand-ico{width:52px;height:52px;border-radius:14px;background:var(--tp-s3);border:1px solid var(--tp-brd);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--tp-ac2);}
.tp-borne-brand-title{font-size:clamp(22px,4vw,28px);font-weight:900;letter-spacing:-.03em;margin:0;line-height:1.1;}
.tp-borne-brand-sub{font-size:12px;color:var(--tp-t3);margin-top:2px;}
.tp-borne-clock-wrap{text-align:center;width:100%;}
.tp-borne-wall{font-size:clamp(48px,10vw,64px);font-weight:800;font-family:var(--tp-mono);letter-spacing:-.06em;font-variant-numeric:tabular-nums;line-height:1;}
.tp-borne-date-line{font-size:15px;color:var(--tp-t3);text-transform:capitalize;margin-top:8px;}
.tp-borne-info-card{
  width:100%;max-width:380px;padding:16px 18px;border-radius:14px;background:var(--tp-s3);border:1px solid var(--tp-brd);
  box-shadow:0 4px 16px rgba(15,23,42,.08);
  box-sizing:border-box;min-width:0;
}
.tp-borne-info-label{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--tp-t3);margin-bottom:10px;}
.tp-borne-planning-lines{font-size:14px;font-weight:600;color:var(--tp-t2);line-height:1.55;overflow-x:hidden;word-wrap:break-word;}
.tp-borne-planning-lines .ptse-plan-line{padding:8px 0;border-bottom:1px solid var(--tp-brd);}
.tp-borne-planning-lines .ptse-plan-line:last-child{border-bottom:none;}
.tp-borne-plan-muted{color:var(--tp-t3);font-size:13px;font-weight:500;}
.tp-borne-right{
  display:flex;flex-direction:column;justify-content:center;padding:clamp(16px,4vw,32px);
  overflow:visible;min-width:0;box-sizing:border-box;
  background:var(--tp-s0);
}
.tp-borne-id-title{font-size:18px;font-weight:800;margin:0 0 14px;letter-spacing:-.02em;}
.tp-borne-user-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;}
@media (max-width:520px){.tp-borne-user-grid{grid-template-columns:repeat(2,1fr);}}
.tp-borne-tile{
  display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:12px;border:2px solid var(--tp-brd);
  background:var(--tp-s2);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;color:var(--tp-t1);
  font:inherit;-webkit-tap-highlight-color:transparent;min-height:76px;
}
.tp-borne-tile:hover{border-color:#c7d2fe;background:#f8fafc;}
.tp-borne-tile--sel{border-color:var(--tp-ac);background:#eef2ff;box-shadow:0 0 0 2px rgba(99,102,241,.2);}
.tp-borne-tile--nocode{opacity:.45;cursor:not-allowed;}
.tp-borne-tile-lock{position:absolute;top:5px;right:5px;font-size:9px;color:var(--tp-t3);background:var(--tp-s1);border-radius:4px;padding:2px 4px;line-height:1;}
.tp-borne-tile-av{
  width:36px;height:36px;border-radius:10px;background:var(--tp-s3);display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;font-family:var(--tp-mono);color:var(--tp-ac2);
}
.tp-borne-tile-name{font-size:11px;font-weight:700;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.tp-borne-tile-role{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:5px;}
.tp-borne-tile-role--staff{background:rgba(10,189,227,.18);color:#48cae4;}
.tp-borne-tile-role--admin{background:rgba(231,76,60,.18);color:#ff6b6b;}
.wi-gate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
@media (max-width:520px){.wi-gate-grid{grid-template-columns:repeat(2,1fr);}}
.wi-gate-tile{
  display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border-radius:14px;border:2px solid #e9d5ff;
  background:linear-gradient(180deg,#faf5ff,#fff);cursor:pointer;transition:border-color .2s,box-shadow .2s;
  font:inherit;color:#1e293b;-webkit-tap-highlight-color:transparent;min-height:84px;
}
.wi-gate-tile:hover{border-color:#7c3aed;box-shadow:0 4px 14px rgba(124,58,237,.15);}
.wi-gate-tile--selected{border-color:#6d28d9;box-shadow:0 0 0 3px rgba(109,40,217,.15),0 8px 20px rgba(109,40,217,.18);}
.wi-gate-tile-av{
  width:40px;height:40px;border-radius:12px;background:#ede9fe;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:#6d28d9;
}
.wi-gate-tile-name{font-size:12px;font-weight:700;text-align:center;line-height:1.25;max-width:100%;}
.tp-borne-pin-label{font-size:10px;font-weight:800;color:var(--tp-t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.tp-borne-pin-dots{display:flex;gap:10px;justify-content:center;margin-bottom:12px;flex-wrap:wrap;}
.tp-borne-pin-dot{width:14px;height:14px;border-radius:50%;background:var(--tp-s3);border:1px solid var(--tp-brd);transition:background .2s,box-shadow .2s;}
.tp-borne-pin-dot--on{background:var(--tp-ac);border-color:var(--tp-ac);box-shadow:0 0 10px rgba(108,92,231,.55);}
.tp-borne-numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:340px;margin:0 auto;width:100%;}
.tp-borne-nk{
  height:62px;border-radius:12px;border:1px solid var(--tp-brd);background:var(--tp-s2);color:var(--tp-t1);
  font-size:24px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s;
}
.tp-borne-nk:hover{background:#e2e8f0;border-color:#cbd5e1;}
.tp-borne-nk:active{transform:scale(.97);}
.tp-borne-nk--ghost{visibility:hidden;pointer-events:none;}
.tp-borne-err{color:#ff6b6b;text-align:center;font-size:13px;font-weight:600;margin-top:10px;}
.tp-borne-err.hidden{display:none!important;}
.tp-borne-connect{
  width:100%;max-width:260px;margin:14px auto 0;padding:14px 16px;border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:800;
  background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 6px 20px rgba(99,102,241,.28);font-family:inherit;
}
.tp-borne-connect:active{transform:scale(.98);}
.tp-borne-foot{margin-top:12px;font-size:11px;color:var(--tp-t3);text-align:center;line-height:1.45;max-width:280px;margin-left:auto;margin-right:auto;}
.ptse-borne-strip{
  margin-top:16px;padding:14px 16px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;
  font-family:Outfit,system-ui,sans-serif;
}
.ptse-borne-strip-time{font-size:24px;font-weight:800;font-family:'IBM Plex Mono',ui-monospace,monospace;color:#0f172a;letter-spacing:-.02em;}
.ptse-borne-strip-plan{margin-top:8px;font-size:13px;font-weight:600;color:#475569;line-height:1.5;}
.ptse-borne-strip-plan .ptse-plan-line{padding:6px 0;border-bottom:1px solid #e2e8f0;color:#334155;}
.ptse-borne-strip-plan .ptse-plan-line:last-child{border-bottom:none;}
/* Sous ~1200px : une seule colonne + flux haut ? bas (?vite chevauchement horloge/planning vs grille PIN en mode 2 colonnes). */
@media (max-width:1200px){
  .tp-borne-gate{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .tp-borne-left{
    flex:0 0 auto;
    justify-content:flex-start;
    align-items:stretch;
    border-right:none;
    border-bottom:1px solid var(--tp-brd);
    padding:14px 16px 16px;
  }
  .tp-borne-brand{align-self:center;max-width:100%;}
  .tp-borne-clock-wrap{align-self:center;}
  .tp-borne-info-card{
    max-width:100%;
    max-height:min(38vh,260px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .tp-borne-right{
    flex:1 1 auto;
    justify-content:flex-start;
    min-height:0;
    padding:16px 14px 20px;
  }
}

/* Tr?s grands ?crans : planning + identification c?te ? c?te (contenu align? en haut pour ?viter le chevauchement visuel avec colonne gauche haute). */
@media (min-width:1201px){
  .tp-borne-gate{display:grid;grid-template-columns:1fr 1fr;}
  .tp-borne-left{overflow:auto;justify-content:flex-start;}
  .tp-borne-right{overflow:auto;justify-content:flex-start;}
}

/* Pointeuse ? petits ?crans (t?l?phone) */
@media (max-width:600px){
  .pointeuse-bar{padding:10px 12px;gap:8px;}
  .pointeuse-bar-title-main{font-size:15px!important;}
  .pointeuse-bar-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
  .pointeuse-bar-tabs > .ptse-nav-btn{
    min-height:44px;padding:10px 6px!important;font-size:11px!important;
    flex-direction:column;gap:3px;
  }
  .pointeuse-bar-tabs > .ptse-nav-btn span{
    max-width:100%;font-size:10px!important;line-height:1.1;
  }
  .pointeuse-bar-tabs > .ptse-nav-btn i{font-size:16px!important;}
  .pointeuse-body{padding:14px 12px;}
  .pointeuse-timer{font-size:clamp(34px,11vw,52px);letter-spacing:1px;}
  .pointeuse-clock{padding:22px 0 18px;}
  .pointeuse-main-btn{width:min(152px,44vw);height:min(152px,44vw);font-size:15px;}
  .pointeuse-main-btn i{font-size:30px;}
  .pointeuse-pause-btn{width:calc(100% - 8px);max-width:340px;padding:12px 18px;font-size:14px;}
  .pointeuse-section{padding:14px 12px;border-radius:14px;}
  #ptse-tab-timesheet > div:first-child{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
    align-items:center;
  }
  #ptse-tab-timesheet > div:first-child #ptse-week-label{
    grid-row:1;
    grid-column:1 / -1;
    text-align:center;
    font-size:13px!important;
    color:#64748b!important;
  }
  #ptse-tab-timesheet > div:first-child > button:first-of-type{grid-row:2;grid-column:1;justify-self:start;}
  #ptse-tab-timesheet > div:first-child > button:last-of-type{grid-row:2;grid-column:2;justify-self:end;}
}
@media (max-width:700px){
  /* Safe area d?j? sur .pointeuse-overlay ? ?viter double marge sous encoche */
  .pointeuse-bar{padding-top:10px;}
  .pointeuse-bar-tabs{grid-template-columns:repeat(auto-fit,minmax(68px,1fr));}
  .pointeuse-bar-tabs > .ptse-nav-btn:not(.hidden){
    min-height:42px;padding:9px 4px!important;font-size:11px!important;border-radius:9px;
  }
  .pointeuse-overlay--borne #ptse-tab-clock.pointeuse-body{
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .tp-borne-gate{
    display:block;
    overflow-y:auto;
  }
  .tp-borne-left{
    display:none;
  }
  .tp-borne-right{
    min-height:100%;
    padding:14px 12px 18px;
  }
  .tp-borne-user-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .tp-borne-numpad{
    max-width:none;
    gap:7px;
  }
  .tp-borne-nk{
    height:56px;
    font-size:22px;
  }
}
@media (max-width:400px){
  .tp-borne-nk{height:50px;font-size:20px;}
  .tp-borne-connect{padding:12px 14px;font-size:14px;}
}

.punch-log{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;background:#f8fafc;margin-bottom:6px;border:0.5px solid #e2e8f0;}
.ptse-recap-total{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid #e2e8f0;font-size:12px;color:#64748b;font-weight:600;}
.ptse-recap-total-val{font-size:15px;font-weight:700;color:#4f46e5;}
.punch-log:last-child{margin-bottom:0;}
.punch-log .punch-time{font-size:16px;font-weight:500;color:#1e293b;}
.punch-log .punch-label{font-size:12px;font-weight:500;}
.punch-label.in{color:#16a34a;}
.punch-label.out{color:#dc2626;}
.punch-label.pause{color:#d97706;}
.punch-log .punch-dur{font-size:12px;color:#64748b;font-weight:500;}
.timesheet-row{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#f8fafc;border-radius:12px;margin-bottom:6px;border:0.5px solid #e2e8f0;}
.timesheet-row .ts-name{font-weight:500;color:#1e293b;font-size:14px;}
.timesheet-row .ts-total{font-size:20px;font-weight:500;color:#4f46e5;}

/* ?? DYNACAD ?? */
#dynacad-overlay{position:fixed;inset:0;z-index:9500;background:#000;display:flex;flex-direction:column;}
#dynacad-bar{background:var(--primary);color:#fff;padding:10px 14px;display:flex;align-items:center;gap:12px;flex-shrink:0;height:50px;}
#dynacad-iframe{flex:1;border:none;width:100%;background:#f8fafc;}

/* ?? FRIGO HISTORY EDIT ?? */
.frigo-log-row{padding:10px;border:1.5px solid #e2e8f0;border-radius:12px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;color:#0f172a;}
.frigo-log-row--nc{border-color:#fecaca;background:#fff5f5;}
.frigo-log-body{flex:1;min-width:0;}
.frigo-log-title{font-weight:600;font-size:14px;line-height:1.35;color:#0f172a;}
.frigo-log-meta{font-size:12px;color:#64748b;margin-top:4px;line-height:1.35;}
.frigo-log-action{font-size:12px;color:#b45309;margin-top:6px;line-height:1.35;font-weight:500;}
.frigo-log-temp{color:var(--frigo);font-weight:700;}
.frigo-log-temp--nc{color:#dc2626;}
.frigo-log-badge{display:inline-block;border-radius:6px;padding:1px 6px;font-size:10px;font-weight:700;vertical-align:middle;}
.frigo-log-badge--ok{background:#dcfce7;color:#166534;}
.frigo-log-badge--nc{background:#fee2e2;color:#b91c1c;}
.frigo-log-tag{display:inline-block;border-radius:6px;padding:1px 5px;font-size:10px;font-weight:600;vertical-align:middle;}
.frigo-log-tag--nc{background:#fee2e2;color:#dc2626;}
.frigo-log-tag--corr{background:#e0f2fe;color:#075985;}
.frigo-log-stamp{font-size:10px;color:#94a3b8;align-self:center;flex-shrink:0;}
.frigo-log-range-alert{font-size:12px;line-height:1.4;color:#991b1b;background:#fff;border:1px solid #fecaca;border-radius:8px;padding:8px 10px;margin-bottom:8px;}
.frigo-histo-toolbar{padding:12px;}
.frigo-histo-presets{display:flex;flex-wrap:wrap;gap:6px;}
.frigo-histo-chip{border:1.5px solid #e2e8f0;background:#fff;color:#334155;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;}
.frigo-histo-chip--on{background:var(--frigo);border-color:var(--frigo);color:#fff;}
.frigo-histo-chip:active{transform:scale(.97);}
.frigo-probe-steps{margin:0 0 12px;padding-left:18px;font-size:13px;color:#475569;line-height:1.5;}
.frigo-probe-result{padding:10px 12px;border-radius:10px;font-size:13px;font-weight:500;margin:8px 0;}
.frigo-probe-result--ok{background:#dcfce7;color:#166534;}
.frigo-probe-result--nc{background:#fee2e2;color:#b91c1c;}
.frigo-probe-hint{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:8px 10px;margin:0 0 10px;line-height:1.4;}
.frigo-probe-check{display:flex;align-items:flex-start;gap:8px;margin:8px 0 12px;font-size:13px;cursor:pointer;}
.frigo-docs-card{padding:12px 14px!important;}
.frigo-docs-title{font-weight:600;font-size:13px;color:var(--frigo);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.frigo-docs-list{display:flex;flex-direction:column;gap:6px;}
.frigo-doc-link{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#f0f9ff;color:#0369a1;text-decoration:none;font-size:13px;font-weight:500;}
.frigo-doc-link:hover{background:#e0f2fe;}
.frigo-doc-link i{color:#0284c7;}
.frigo-probe-check input{margin-top:3px;width:auto;flex-shrink:0;}
.frigo-disinfect-card{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;margin:10px 0 14px;border-radius:14px;border:2px solid #86efac;background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 100%);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;box-shadow:0 1px 4px rgba(15,118,110,.08);}
.frigo-disinfect-card--off{border-color:#fdba74;background:linear-gradient(135deg,#fff7ed 0%,#fffbeb 100%);box-shadow:0 1px 4px rgba(234,88,12,.1);}
.frigo-disinfect-card__input{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
.frigo-disinfect-card__icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff;font-size:17px;color:#0d9488;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(13,148,136,.12);}
.frigo-disinfect-card--off .frigo-disinfect-card__icon{color:#ea580c;box-shadow:inset 0 0 0 1px rgba(234,88,12,.15);}
.frigo-disinfect-card__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.frigo-disinfect-card__title{font-size:14px;font-weight:700;color:#0f766e;line-height:1.2;}
.frigo-disinfect-card--off .frigo-disinfect-card__title{color:#9a3412;}
.frigo-disinfect-card__sub{font-size:11px;color:#64748b;line-height:1.35;}
.frigo-disinfect-card__pill{font-size:10px;font-weight:700;padding:5px 10px;border-radius:999px;background:#bbf7d0;color:#166534;flex-shrink:0;letter-spacing:.02em;}
.frigo-disinfect-card--off .frigo-disinfect-card__pill{background:#fed7aa;color:#c2410c;}
.frigo-disinfect-card:has(.frigo-disinfect-card__input:checked) .frigo-disinfect-card__pill{background:#bbf7d0;color:#166534;}
.frigo-disinfect-card:has(.frigo-disinfect-card__input:checked) .frigo-disinfect-card__pill::after{content:' ?';}
.frigo-tile-tag{font-size:9px;background:rgba(255,255,255,.25);border-radius:4px;padding:1px 4px;margin-left:4px;}
.frigo-probe-section .list-item{margin-bottom:8px;}
.frigo-nc-actions{margin-top:10px;}
.frigo-nc-actions__title{font-size:12px;font-weight:600;color:#b91c1c;margin-bottom:6px;}
.frigo-nc-actions__grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;}
.frigo-nc-chk{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:#334155;cursor:pointer;line-height:1.35;}
.frigo-nc-chk input{margin-top:2px;width:auto;flex-shrink:0;}
.frigo-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;margin-bottom:12px;}
.frigo-tile{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px;border:2px solid #e2e8f0;border-radius:14px;background:#fff;color:#0f172a;cursor:pointer;text-align:center;transition:border-color .15s,box-shadow .15s,background .15s;}
.frigo-tile:hover:not(:disabled){border-color:#7dd3fc;box-shadow:0 4px 12px rgba(14,165,233,.15);}
.frigo-tile:disabled{opacity:.65;cursor:default;}
.frigo-tile i{font-size:22px;color:var(--frigo);margin-bottom:2px;}
.frigo-tile-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-bottom:2px;}
.frigo-tile-icon-wrap>i{font-size:22px;color:var(--frigo);margin-bottom:0;}
.frigo-tile-icon-wrap .frigo-kind-icon,.item-img .frigo-kind-icon{width:22px;height:22px;color:var(--frigo);}
.frigo-tile-gtc{position:absolute;top:-5px;right:-12px;font-size:7px;font-weight:800;line-height:1;padding:2px 5px;border-radius:5px;background:#0369a1;color:#fff;letter-spacing:.04em;box-shadow:0 1px 3px rgba(3,105,161,.35);pointer-events:none;}
.frigo-tile-icon-wrap--gtc>i{color:#0284c7;}
.frigo-tile--probe i{color:#7c3aed;}
.frigo-tile--probe.frigo-tile--due{border-color:#f59e0b;background:#fffbeb;}
.frigo-tile--due{border-color:#f59e0b;background:#fffbeb;}
.frigo-tile--partial{border-color:#7dd3fc;background:#f0f9ff;}
.frigo-tile--done{border-color:#86efac;background:#f0fdf4;}
.frigo-tile-name{font-size:11px;font-weight:700;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.frigo-tile-sub,.frigo-tile-legal{font-size:9px;color:#64748b;line-height:1.2;}
.frigo-tile-badge{font-size:10px;font-weight:700;margin-top:2px;padding:2px 7px;border-radius:999px;background:#e0f2fe;color:#0369a1;}
.frigo-tile--done .frigo-tile-badge{background:#dcfce7;color:#166534;}
.frigo-tile--due .frigo-tile-badge{background:#fef3c7;color:#b45309;}
.frigo-panel-grid{display:grid;gap:8px;}
.frigo-panel-ctrl{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:12px;background:#fff;text-align:left;cursor:pointer;font-size:14px;font-weight:500;color:#0f172a;}
.frigo-panel-ctrl:hover:not(:disabled){border-color:#7dd3fc;background:#f0f9ff;}
.frigo-panel-ctrl i{color:var(--frigo);width:18px;text-align:center;}
.frigo-panel-ctrl--optional{border-style:dashed;background:#f8fafc;color:#475569;}
.frigo-panel-ctrl--optional i{color:#64748b;}
.frigo-panel-optional-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#94a3b8;margin:12px 0 6px;}
.frigo-panel-all-done{text-align:center;padding:20px;color:#166534;font-weight:500;}

/* ?? PWA INSTALL BANNER ?? */
/* Banni?re mise ? jour application (prioritaire, en haut) */
#update-banner{
  position:fixed;top:max(8px,env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);
  z-index:65000;width:min(440px,calc(100vw - 16px));
  background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 55%,#2563eb 100%);
  color:#fff;border-radius:16px;padding:14px 16px;
  display:flex;align-items:flex-start;gap:12px;
  box-shadow:0 12px 40px rgba(29,78,216,.45),0 0 0 1px rgba(255,255,255,.12);
  animation:updateBannerIn .4s cubic-bezier(.22,1,.36,1),updateBannerPulse 2.4s ease-in-out infinite 1s;
}
#update-banner .update-banner-icon{
  width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;
}
#update-banner .update-banner-body{flex:1;min-width:0;}
#update-banner .update-banner-title{font-weight:700;font-size:15px;line-height:1.25;}
#update-banner .update-banner-sub{font-size:12px;opacity:.92;margin-top:4px;line-height:1.35;}
#update-banner .update-banner-ver{
  display:inline-block;margin-top:6px;font-size:11px;font-weight:600;
  background:rgba(255,255,255,.16);border-radius:8px;padding:4px 8px;
}
#update-banner .update-banner-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0;}
#update-banner .update-banner-btn{
  border:none;border-radius:10px;padding:10px 14px;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap;
}
#update-banner .update-banner-btn--primary{background:#fff;color:#1d4ed8;}
#update-banner .update-banner-btn--ghost{background:rgba(255,255,255,.14);color:#fff;font-weight:600;}
#update-reminder-pill{
  position:fixed;top:max(6px,env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);
  z-index:64990;display:flex;align-items:center;gap:8px;
  background:#1e3a8a;color:#fff;border-radius:999px;padding:8px 14px;
  font-size:12px;font-weight:600;box-shadow:0 6px 20px rgba(30,58,138,.35);
  cursor:pointer;max-width:calc(100vw - 20px);
}
#update-reminder-pill.hidden{display:none!important;}
@keyframes updateBannerIn{from{opacity:0;transform:translateX(-50%) translateY(-16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes updateBannerPulse{0%,100%{box-shadow:0 12px 40px rgba(29,78,216,.45),0 0 0 1px rgba(255,255,255,.12)}50%{box-shadow:0 14px 44px rgba(59,130,246,.55),0 0 0 2px rgba(255,255,255,.22)}}
body.has-update-banner main{padding-top:88px;}
body.has-update-reminder main{padding-top:52px;}

#pwa-install-banner{display:none;position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:60000;background:linear-gradient(135deg,#003896,#1a50c8);color:#fff;border-radius:18px;padding:14px 18px;align-items:center;gap:14px;box-shadow:0 8px 30px rgba(0,56,150,.4);width:min(360px,92vw);animation:slideUpCentered .3s ease;}
#pwa-install-banner .pwa-text{flex:1;min-width:0;}
#pwa-install-banner .pwa-title{font-weight:500;font-size:14px;}
#pwa-install-banner .pwa-sub{font-size:12px;opacity:.8;margin-top:2px;}
#pwa-install-banner .pwa-btn{background:#fff;color:#003896;border:none;border-radius:10px;padding:10px 16px;font-weight:500;font-size:13px;cursor:pointer;white-space:nowrap;}
#pwa-install-banner .pwa-close{background:rgba(255,255,255,.15);border:none;color:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:16px;flex-shrink:0;}



/* ?? CHAT MODULE (iOS Conversations + fil) ?? */
#view-chat.ios-chat-root{
  animation:fadeIn .2s ease;
  display:flex;
  flex-direction:column;
  flex:1;
  width:100%;
  max-width:100%;
  min-height:calc(100svh - 148px);
  padding:0!important;
  margin:0;
  box-sizing:border-box;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
.ios-chat-root .ios-chat-screen{display:flex;flex-direction:column;flex:1;min-height:0;max-height:calc(100svh - 148px);background:#fff;}
.ios-conv-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:0.5px solid #e5e5ea;background:#fff;position:sticky;top:0;z-index:5;}
.ios-conv-header-btn{width:40px;height:40px;border:none;border-radius:50%;background:transparent;color:#007aff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.ios-conv-header-btn--accent{color:#007aff;font-size:22px;font-weight:300;}
.ios-conv-title{flex:1;text-align:center;font-size:17px;font-weight:700;color:#000;margin:0;letter-spacing:-0.3px;}
.ios-conv-search-row{display:flex;align-items:center;gap:10px;padding:8px 14px 6px;background:#fff;}
.ios-conv-search-wrap{flex:1;position:relative;}
.ios-conv-search{width:100%;box-sizing:border-box;padding:10px 14px 10px 36px;border:none;border-radius:10px;background:#f2f2f7;font-size:16px;outline:none;color:#000;}
.ios-conv-search::placeholder{color:#8e8e93;}
.ios-conv-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#8e8e93;font-size:14px;pointer-events:none;}
.ios-conv-archive-btn{width:44px;height:44px;border:none;border-radius:10px;background:#f2f2f7;color:#007aff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ios-conv-archive-btn.is-on{background:#e3f2fd;}
.ios-conv-chips{display:flex;gap:8px;padding:6px 14px 10px;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;}
.ios-conv-chips::-webkit-scrollbar{display:none;}
.ios-conv-chip{flex-shrink:0;padding:8px 16px;border-radius:20px;border:none;background:#f2f2f7;color:#3c3c43;font-size:14px;font-weight:500;cursor:pointer;}
.ios-conv-chip.is-active{background:#cfe8ff;color:#007aff;}
.ios-conv-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:120px;background:#fff;}
.ios-conv-row{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px 16px;border:none;border-bottom:0.5px solid #e5e5ea;background:#fff;cursor:pointer;text-align:left;box-sizing:border-box;}
.ios-conv-row:active{background:#f2f2f7;}
.ios-conv-row.is-unread .ios-conv-row-name{font-weight:700;}
.ios-conv-row-avatar{width:54px;height:54px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:600;}
.ios-conv-row-body{flex:1;min-width:0;padding-top:2px;}
.ios-conv-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px;}
.ios-conv-row-name{font-size:16px;font-weight:600;color:#000;display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;}
.ios-conv-row-name > span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ios-conv-row-name .fa-users,.ios-conv-row-name .fa-bullhorn{color:#8e8e93;font-size:13px;flex-shrink:0;}
.ios-conv-row-time{font-size:14px;color:#8e8e93;flex-shrink:0;}
.ios-conv-row-preview{font-size:14px;color:#8e8e93;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ios-conv-preview-muted{font-style:italic;opacity:.85;}
.ios-conv-row-preview .fa-file{margin-right:4px;opacity:.7;}
.ios-conv-row-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;padding-top:4px;}
.ios-conv-pin{border:none;background:transparent;color:#c7c7cc;padding:4px;cursor:pointer;font-size:14px;}
.ios-conv-pin.is-on{color:#007aff;}
.ios-conv-empty{padding:48px 24px;text-align:center;color:#8e8e93;font-size:15px;}
/* Fil discussion */
#chat-screen-thread{background:#e8edf3;}
#chat-screen-thread:not(.hidden){
  display:flex!important;
  flex-direction:column;
  flex:1;
  min-height:0;
}
.ios-thread-header{display:flex;align-items:center;gap:8px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));background:rgba(248,250,252,.94);backdrop-filter:blur(12px);border-bottom:0.5px solid #e5e5ea;position:sticky;top:0;z-index:6;}
.ios-thread-back,.ios-thread-info{width:40px;height:40px;border:none;border-radius:50%;background:transparent;color:#007aff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ios-thread-title-block{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;}
.ios-thread-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;flex-shrink:0;}
.ios-thread-title{font-size:17px;font-weight:600;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ios-thread-messages{
  flex:1 1 auto;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:12px 12px 8px;
  min-height:120px;
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:stretch;
}
.ios-thread-empty{text-align:center;padding:40px 20px;color:#8e8e93;font-size:15px;}
.ios-thread-compose{display:flex;align-items:flex-end;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#f6f7f9;border-top:0.5px solid #e5e5ea;flex-shrink:0;}
.ios-compose-plus{width:36px;height:36px;border-radius:50%;border:none;background:#007aff;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(0,122,255,.35);}
.ios-compose-input{flex:1;min-height:36px;max-height:100px;border-radius:20px;border:1px solid #d1d1d6;padding:10px 16px;font-size:16px;font-family:inherit;resize:none;background:#fff;outline:none;line-height:1.3;}
.ios-compose-input:focus{border-color:#007aff;}
.ios-compose-send{width:36px;height:36px;border-radius:50%;border:none;background:#007aff;color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.chat-msg-wrap{display:flex;align-items:flex-end;gap:8px;margin-bottom:4px;flex-shrink:0;width:100%;box-sizing:border-box;}
.chat-msg-wrap.me{flex-direction:row-reverse;}
.chat-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#5ac8fa,#007aff);color:#fff;font-weight:600;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.chat-avatar.me{background:linear-gradient(135deg,#007aff,#0051d5);}
.chat-bubble{max-width:78%;border-radius:18px;padding:8px 12px;}
.chat-bubble.other{background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.chat-bubble.me{background:#007aff;color:#fff;border-bottom-right-radius:4px;}
.chat-sender{font-size:12px;font-weight:600;color:#8e8e93;margin-bottom:4px;}
.chat-text{font-size:16px;line-height:1.35;word-break:break-word;}
.chat-bubble.me .chat-text{color:#fff;}
.chat-time{font-size:11px;opacity:.55;margin-top:4px;text-align:right;}
.chat-msg-wrap.is-pinned .chat-bubble.other{box-shadow:0 0 0 2px rgba(255,193,7,.35);}
.chat-pinned-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#b45309;background:#fff8e6;border-radius:8px;padding:4px 8px;margin-bottom:6px;display:inline-flex;align-items:center;gap:5px;}
.chat-bubble.me .chat-pinned-badge{color:#fef3c7;background:rgba(255,255,255,.2);}
.chat-msg-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;}
.chat-msg-footer .chat-time{margin-top:0;text-align:left;flex:1;}
.chat-msg-pin{background:rgba(0,0,0,.06);border:none;border-radius:8px;width:28px;height:28px;cursor:pointer;color:#64748b;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.chat-bubble.me .chat-msg-pin{background:rgba(255,255,255,.25);color:#fff;}
.chat-msg-pin:hover{opacity:.85;}
.chat-text--muted{font-size:14px;opacity:.9;}
.chat-attachments{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.chat-att-file{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(0,0,0,.06);border-radius:12px;font-size:14px;font-weight:500;color:inherit;text-decoration:none;max-width:100%;}
.chat-bubble.me .chat-att-file{background:rgba(255,255,255,.22);color:#fff;}
.chat-att-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.chat-att-img-wrap{display:block;max-width:min(280px,88vw);border-radius:14px;overflow:hidden;margin-top:4px;}
.chat-att-thumb{width:100%;height:auto;max-height:240px;object-fit:cover;display:block;}

.modal-chat-channel-card{
  max-width:min(440px,94vw);
  max-height:min(88vh,720px);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
.modal-chat-hr{margin:18px 0;border:none;border-top:1px solid #e2e8f0;}
.modal-chat-admin-title{font-weight:600;color:#0891b2;margin:0 0 4px;}
#modal-chat-channel-access .channel-access-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
  max-height:220px;
  overflow-y:auto;
  padding:4px 0;
}
#modal-chat-channel-access .chat-sheet-del{margin-top:12px;width:100%;}

/* ?? CONSEILLER BANNER ?? */
#conseiller-banner{display:none;position:fixed;top:0;left:0;right:0;z-index:65000;background:linear-gradient(90deg,#0891b2,#0369a1);color:#fff;padding:9px 16px;align-items:center;justify-content:space-between;font-size:13px;font-weight:500;gap:10px;}
#conseiller-banner.show{display:flex;}

/* ?? HOME REORDER MODE ?? */
.reorder-mode{cursor:grab!important;border:2px dashed rgba(255,255,255,.5)!important;animation:wiggle .4s ease infinite alternate;}
.reorder-mode:active,.dragging{cursor:grabbing!important;}
@keyframes wiggle{from{transform:rotate(-.5deg) scale(1)}to{transform:rotate(.5deg) scale(1.01)}}
.grip-icon{position:absolute;top:8px;left:8px;color:rgba(255,255,255,.7);font-size:14px;z-index:5;pointer-events:none;}
#home-reorder-btn{display:none;position:fixed;bottom:88px;right:16px;z-index:50000;background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;border:none;border-radius:50%;width:48px;height:48px;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 20px rgba(124,58,237,.5);cursor:pointer;}

/* ?? FLOATING GEAR SETTINGS BUTTON ?? */
#float-settings-btn{
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:200;
  background:linear-gradient(135deg,#003896,#1a50c8);color:#fff;border:none;
  border-radius:14px 0 0 14px;padding:14px 10px;cursor:pointer;
  box-shadow:-4px 4px 16px rgba(0,56,150,.3);display:none;flex-direction:column;align-items:center;gap:4px;
}
#float-settings-btn:active{opacity:.85;}
#float-settings-btn i{font-size:20px;transition:transform .3s;}
#float-settings-btn:hover i{transform:rotate(60deg);}
#float-settings-btn span{font-size:9px;font-weight:500;letter-spacing:.5px;writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);opacity:.8;}

/* ?? PLANNING STYLE COMBOHR ?? */
.plan-grid-row{display:grid;grid-template-columns:150px repeat(7,1fr) 60px;gap:3px;margin-bottom:3px;align-items:stretch;}
.plan-header-row{margin-bottom:6px;}
.plan-footer-row{margin-top:4px;}
.plan-day-header{background:#f1f5f9;border-radius:8px;padding:6px 4px;text-align:center;transition:all .15s;}
.plan-day-header.today{background:#003896;color:#fff;}
.plan-day-name{font-size:10px;font-weight:500;text-transform:uppercase;opacity:.7;}
.plan-day-header.today .plan-day-name{opacity:.8;color:#fff;}
.plan-day-num{font-size:16px;font-weight:500;}
.plan-emp-col{display:flex;align-items:center;gap:8px;padding:4px 6px;background:#f8fafc;border-radius:10px;}
.plan-avatar{width:32px;height:32px;border-radius:50%;color:#fff;font-weight:500;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.plan-emp-info{flex:1;min-width:0;}
.plan-emp-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.plan-emp-contract{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.plan-emp-del{background:none;border:none;color:#cbd5e1;font-size:12px;cursor:pointer;padding:2px;flex-shrink:0;transition:color .15s;}
.plan-emp-del:hover{color:#ef4444;}
.plan-cell{border-radius:8px;min-height:52px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.plan-cell:active{transform:scale(.97);}
.plan-cell.rest{background:#f8fafc;border:1.5px dashed #e2e8f0;}
.plan-cell.rest.today{background:#eff6ff;border-color:#bfdbfe;}
.plan-cell.leave{background:#fdf2f8;border:1.5px solid #f9a8d4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.plan-cell.leave.today{background:#fce7f3;}
.plan-rest-label{color:#cbd5e1;font-size:18px;font-weight:500;}
.plan-cell.work{border:1.5px solid transparent;border-color:color-mix(in srgb, var(--shift-color) 30%, transparent);}
/* ?? DRAG & DROP PLANNING ?? */
.plan-cell{position:relative;transition:box-shadow .15s,transform .12s;}
.plan-cell.dragging{opacity:.5;transform:scale(.97);}
.plan-cell.drag-over{box-shadow:0 0 0 3px #0891b2;background:#e0f2fe!important;}

/* ?? HR PROFILE CHIP ?? */
.hr-profile-chip{display:inline-flex;align-items:center;gap:5px;background:#f0f9ff;border:1.5px solid #bae6fd;border-radius:8px;padding:3px 8px;font-size:11px;font-weight:500;color:#0369a1;cursor:pointer;}
.hr-profile-chip:active{background:#e0f2fe;}

/* ?? PRINT PLANNING ?? */
@media print{
  @page{size:landscape;margin:10mm;}
  body>*{display:none!important;}
  #print-planning-wrap{display:block!important;margin:0;padding:0;}
  #print-planning-wrap .p-card{box-shadow:none;}
  #print-planning-wrap,#print-planning-wrap *{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
}
#print-planning-wrap{display:none;font-family:Inter,Arial,sans-serif;font-size:11px;color:#0f172a;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
#print-planning-wrap .p-card{border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;background:#fff;}
#print-planning-wrap .p-header{padding:10px 12px;background:linear-gradient(135deg,#0f4ca3,#1d4ed8);color:#fff;}
#print-planning-wrap .p-title{font-size:18px;font-weight:700;letter-spacing:.2px;}
#print-planning-wrap .p-meta{font-size:11px;opacity:.95;margin-top:4px;}
#print-planning-wrap .p-legend{display:flex;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;}
#print-planning-wrap .p-pill{font-size:10px;font-weight:600;padding:2px 7px;border-radius:999px;border:1px solid transparent;}
#print-planning-wrap .p-pill.work{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe;}
#print-planning-wrap .p-pill.rest{background:#fce7f3;color:#be185d;border-color:#fbcfe8;}
#print-planning-wrap .p-pill.total{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
#print-planning-wrap table{width:100%;border-collapse:collapse;}
#print-planning-wrap th,#print-planning-wrap td{border:0.6px solid #cbd5e1;padding:6px 5px;text-align:center;vertical-align:middle;}
#print-planning-wrap th{background:#0f4ca3;color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;}
#print-planning-wrap tbody tr:nth-child(even){background:#f8fafc;}
#print-planning-wrap td:first-child{text-align:left;font-weight:600;min-width:130px;background:#f8fafc;}
#print-planning-wrap .p-work{background:#eef6ff;color:#1d4ed8;font-weight:600;font-size:9.5px;line-height:1.3;}
#print-planning-wrap .p-rest{background:#fff1f2;color:#9f1239;font-size:9.5px;font-weight:600;}
#print-planning-wrap .p-total{background:#ecfdf5;color:#065f46;font-weight:700;min-width:72px;}
#print-planning-wrap .p-warn{background:#fef9c3;color:#854d0e;}
#print-planning-wrap tfoot td{background:#e2e8f0;font-weight:700;font-size:9.5px;}
.plan-shift-post{font-size:9px;font-weight:500;padding:1px 5px;border-radius:4px;text-align:center;letter-spacing:.3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.plan-shift-times{font-size:10px;font-weight:500;color:#374151;}
.plan-shift-h{font-size:9px;color:#6b7280;font-weight:500;}
.plan-total-col{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#f8fafc;border-radius:8px;padding:4px 2px;}
.plan-total-h{font-size:13px;font-weight:500;}
.plan-rest-badge{font-size:10px;font-weight:500;border-radius:4px;padding:1px 4px;}
.plan-rest-badge.ok{background:#d1fae5;color:#065f46;}
.plan-rest-badge.warn{background:#fee2e2;color:#991b1b;}
.plan-warn-row{background:#fffbeb;border-left:3px solid #f59e0b;border-radius:6px;padding:4px 10px;font-size:11px;color:#92400e;margin-bottom:4px;grid-column:1/-1;}
.has-warn{border-left:3px solid #fbbf24;}
.plan-day-footer{background:#f1f5f9;border-radius:6px;padding:4px;text-align:center;}
.plan-day-count{font-size:10px;font-weight:500;color:#003896;}
.plan-day-hours{font-size:10px;color:#64748b;font-weight:500;}
/* Post color pills legend */
.post-legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.post-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:500;}

/* ?? NOTIFICATION BTN ?? */
#notif-toggle-btn{display:none!important;}
.header-mini-badge{position:absolute;top:-5px;right:-5px;background:#ef4444;color:#fff;border-radius:999px;min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1;}
.header-mini-badge.hidden{display:none!important;}

/* ?? SHIFT EDITOR MODAL ?? */
#modal-shift-editor .shift-type-toggle{display:flex;align-items:center;gap:10px;margin-bottom:14px;background:#f8fafc;border-radius:10px;padding:12px;}
#modal-shift-editor .shift-type-toggle label{font-weight:500;font-size:14px;flex:1;}
.plan-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;}
.plan-post-btn{border:2px solid #e2e8f0;border-radius:8px;padding:8px 4px;text-align:center;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;}
.plan-post-btn.selected{border-color:currentColor;background:color-mix(in srgb,currentColor 15%,#fff);}

/* ?? ALERTNET OVERLAY (kept CSS but overlay removed) ?? */
#alertnet-overlay{position:fixed;inset:0;z-index:9000;background:#fff;display:none;flex-direction:column;}
#alertnet-bar{background:#dc2626;padding:12px 16px;display:flex;align-items:center;gap:12px;padding-top:calc(12px + env(safe-area-inset-top));}
#alertnet-iframe{flex:1;border:none;width:100%;background:#f8fafc;}

/* ?????????????????????????????????????????????????????????????? */
/* ?? PLANNING CONNECTEAM-STYLE CSS ?????????????????????????????? */
/* ?????????????????????????????????????????????????????????????? */

/* Onglets */
.ct-tabs{display:flex;gap:0;margin-bottom:12px;background:#fff;border-radius:14px;padding:4px;box-shadow:0 2px 8px rgba(0,0,0,.07);overflow:hidden;}
.ct-tab{flex:1;text-align:center;padding:10px 6px;font-size:12px;font-weight:500;border-radius:10px;cursor:pointer;transition:all .2s;color:#64748b;}
.ct-tab.active{background:#0891b2;color:#fff;box-shadow:0 2px 8px rgba(8,145,178,.3);}
.ct-tab:not(.active):hover{background:#f1f5f9;}

/* Barre de navigation semaine */
.ct-nav-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;background:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 2px 8px rgba(0,0,0,.06);gap:8px;flex-wrap:wrap;}
.ct-nav-btn{width:32px;height:32px;border:1.5px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:#475569;transition:all .15s;}
.ct-nav-btn:hover{background:#f1f5f9;border-color:#cbd5e1;}
.ct-week-label{font-weight:500;font-size:13px;color:#0891b2;white-space:nowrap;}
.ct-today-btn{padding:6px 12px;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:8px;font-size:11px;font-weight:500;color:#1d4ed8;cursor:pointer;}
.ct-action-btn{height:32px;padding:0 10px;border:1.5px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;font-size:12px;color:#475569;font-weight:500;display:flex;align-items:center;gap:5px;transition:all .15s;white-space:nowrap;}
.ct-action-btn:hover{background:#f8fafc;}
.ct-btn-green{background:#059669!important;border-color:#059669!important;color:#fff!important;}
.ct-btn-blue{background:#0891b2!important;border-color:#0891b2!important;color:#fff!important;}

/* R?serve planning (drag & drop) */
.plan-staging-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin-bottom:8px;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:10px;min-height:44px;transition:border-color .15s,background .15s,width .2s,height .2s;max-width:100%;}
.plan-staging-bar.plan-staging-over{border-color:#0ea5e9;background:#ecfeff;}
.plan-staging-label{font-size:12px;font-weight:700;color:#0c4a6e;white-space:nowrap;}
.plan-staging-hint{font-size:11px;color:#94a3b8;}
.plan-staging-clear{margin-left:auto;font-size:11px;padding:4px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#64748b;cursor:pointer;}
.plan-staging-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;width:100%;}
.plan-staging-empty{font-size:11px;color:#94a3b8;font-style:italic;}
.plan-tools-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;margin-top:8px;}
.plan-vhp-panel{flex:1 1 320px;min-width:0;}
.plan-shift-staging-slot{flex:0 1 280px;min-width:200px;max-width:100%;}
.plan-shift-staging-slot:not(.hidden){display:block;}
.plan-shift-staging-slot .plan-staging-bar{margin-bottom:0;}
.plan-staging-compact .plan-staging-hint{display:none;}
.plan-vhp-panel--collapsed .plan-vhp-body{display:none;}
.plan-vhp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;user-select:none;}
.plan-vhp-toggle{border:none;background:transparent;color:#64748b;font-size:14px;cursor:pointer;padding:4px 8px;}
.ct-row-day .ct-day-timeline{position:relative;min-height:72px;background:#fafcff;border-radius:8px;border:1px solid #e2e8f0;overflow:visible;}
.ct-hour-scale{display:grid;grid-template-columns:repeat(var(--ct-hours,17),minmax(44px,1fr));border-bottom:1px solid #e2e8f0;background:#f8fafc;}
.ct-hour-tick{font-size:9px;font-weight:600;color:#94a3b8;text-align:center;padding:4px 2px;border-right:0.5px solid #e2e8f0;}
.ct-hour-tick:last-child{border-right:none;}
.ct-day-timeline-grid{position:absolute;inset:20px 0 4px;display:grid;grid-template-columns:repeat(var(--ct-hours,17),1fr);pointer-events:none;}
.ct-hour-line{border-right:0.5px dashed #e2e8f0;}
.ct-day-shift-abs{position:absolute;top:8px;min-height:52px;border-radius:8px;border:1.5px solid color-mix(in srgb,var(--sc) 40%,transparent);background:color-mix(in srgb,var(--sc) 12%,#fff);padding:4px 6px;font-size:10px;overflow:visible;pointer-events:auto;cursor:pointer;z-index:2;min-width:40px;box-sizing:border-box;}
.ct-day-timeline-msg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;min-height:72px;font-size:12px;font-weight:600;color:#94a3b8;}
.ct-day-add-shift-btn{border:1px dashed #0891b2;background:#f0f9ff;color:#0369a1;border-radius:8px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;}
.ct-day-add-shift-btn--float{position:absolute;right:6px;top:6px;z-index:4;padding:4px 8px;}
.ct-day-drop-zone.ct-drag-over{outline:2px dashed #0891b2;outline-offset:-2px;background:rgba(8,145,178,.06);}
.ct-cell.ct-work-multi{min-height:72px;}
.ct-cell.ct-work-multi .ct-shift-post{font-size:9px;}
.ct-cell.ct-cell-locked{pointer-events:none;opacity:.72;cursor:not-allowed;}
.ct-cell.ct-cell-locked .ct-lock-badge{pointer-events:none;}
.plan-alerts-modal{background:#fff;border-radius:16px;width:min(420px,94vw);max-height:min(78vh,560px);display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(15,23,42,.25);overflow:hidden;}
.plan-alerts-modal__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e2e8f0;}
.plan-alerts-modal__head h3{margin:0;font-size:17px;font-weight:700;color:#0f172a;}
.plan-alerts-modal__close{border:none;background:transparent;font-size:22px;color:#94a3b8;cursor:pointer;line-height:1;padding:4px;}
.plan-alerts-modal__body{padding:12px 16px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;}
.plan-alert-card{display:flex;gap:12px;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;}
.plan-alert-card__icon{font-size:22px;line-height:1;flex-shrink:0;}
.plan-alert-card__title{font-size:14px;font-weight:700;color:#0f172a;margin:0 0 6px;}
.plan-alert-card__text{font-size:12px;color:#475569;line-height:1.45;margin:0;}
.plan-alert-card__foot{display:flex;justify-content:flex-end;margin-top:10px;}
.plan-alert-card__ok{border:none;background:transparent;color:#0f172a;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}

/* Cl?ture de journ?e */
.cloture-home-card{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;border-radius:12px;padding:10px 12px;background:linear-gradient(135deg,#fffbeb 0%,#fef3c7 100%);box-shadow:0 2px 8px rgba(180,83,9,.1);cursor:pointer;}
.cloture-home-card__ic{width:30px;height:30px;border-radius:9px;background:#fde68a;color:#b45309;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.cloture-home-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.cloture-home-card__title{font-size:13px;font-weight:700;color:#92400e;}
.cloture-home-card__sub{font-size:11px;color:#b45309;}
.cloture-home-card__badge{min-width:18px;height:18px;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;}
.cloture-home-card__chev{color:#d97706;font-size:12px;flex-shrink:0;}
.cloture-home-card--matin{background:linear-gradient(135deg,#e0f2fe 0%,#bae6fd 100%);box-shadow:0 2px 12px rgba(3,105,161,.12);}
.cloture-home-card--matin .cloture-home-card__title{color:#0c4a6e;}
.cloture-home-card--matin .cloture-home-card__sub{color:#0369a1;}
.cloture-home-card--matin .cloture-home-card__chev{color:#0284c7;}
.cloture-home-card__ic--matin{background:#7dd3fc;color:#0c4a6e;}
.home-cloture-duo{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.home-cloture-duo:has(.cloture-home-card.hidden:only-child),
.home-cloture-duo:not(:has(.cloture-home-card:not(.hidden))){display:none;}
.home-cloture-duo:has(#home-cloture-matin-card.hidden):has(#home-cloture-card:not(.hidden)),
.home-cloture-duo:has(#home-cloture-card.hidden):has(#home-cloture-matin-card:not(.hidden)){grid-template-columns:1fr;max-width:160px;}
.cloture-home-card--square{flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;gap:8px;min-height:unset;padding:8px 10px;position:relative;aspect-ratio:unset;}
.cloture-home-card--square .cloture-home-card__chev{display:none;}
.cloture-home-card--square .cloture-home-card__body{align-items:flex-start;flex:1;min-width:0;}
.cloture-home-card--square .cloture-home-card__title{font-size:12px;line-height:1.2;}
.cloture-home-card--square .cloture-home-card__sub{font-size:10px;line-height:1.2;}
.cloture-home-card--square .cloture-home-card__badge{position:static;margin-left:auto;flex-shrink:0;}
@media (min-width:640px){
  .home-cloture-duo:has(#home-cloture-matin-card.hidden):has(#home-cloture-card:not(.hidden)),
  .home-cloture-duo:has(#home-cloture-card.hidden):has(#home-cloture-matin-card:not(.hidden)){
    grid-template-columns:1fr;max-width:min(100%,360px);
  }
}
.home-widgets-row{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:10px;
  width:100%;
}
.home-widgets-row:empty,.home-widgets-row[style*="display: none"]{display:none!important;}
/* Commande | Réception côte à côte, Planning équipe pleine largeur en dessous */
.home-widgets-ops{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px;
  width:100%;
  align-items:stretch;
}
.home-widgets-ops>.home-widget-cube{
  min-width:0;
  width:100%;
  display:flex;
}
.home-widgets-ops>.home-widget-cube:empty{display:none;}
.home-widgets-ops>.home-widget-cube:only-child{grid-column:1/-1;}
.home-widgets-ops .home-cube{
  flex:1;
  width:100%;
  margin:0;
  min-height:112px;
  box-sizing:border-box;
}
/* Mobile : Commande / Réception en pleine largeur (texte + créneaux visibles) */
@media (max-width:720px){
  .home-widgets-ops,
  .home-delivery-stack,
  .ep-home-ops{
    grid-template-columns:1fr!important;
    gap:8px;
  }
  .home-widgets-ops .home-cube,
  .home-delivery-stack>.home-cube{
    min-height:0;
    height:auto;
    overflow:visible;
  }
  #home-widgets-row .home-cube--order .home-cube-slot-t,
  #home-widgets-row .home-cube--delivery .home-cube-slot-t,
  #home-widgets-row .home-cube--order .home-cube-main,
  #home-widgets-row .home-cube--delivery .home-cube-main,
  .ep-home-widgets .home-cube-slot-t,
  .ep-home-widgets .home-cube-main{
    white-space:normal;
    overflow:visible;
    text-overflow:unset;
  }
  #home-widgets-row .home-cube--order .home-cube-slot-line,
  #home-widgets-row .home-cube--delivery .home-cube-slot-line,
  .ep-home-widgets .home-cube-slot-line{
    flex-wrap:wrap;
    align-items:flex-start;
  }
  #home-widgets-row .home-cube--order .home-cube-slot-h,
  #home-widgets-row .home-cube--delivery .home-cube-slot-h,
  .ep-home-widgets .home-cube-slot-h{
    white-space:normal;
  }
  .home-cube-problem{flex-wrap:wrap;}
}
#home-team-today{
  width:100%;
  min-width:0;
  display:flex;
}
#home-team-today>.home-cube{flex:1;width:100%;}
.home-cube-daynav{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:4px;flex-wrap:wrap;}
.home-cube-daynav-label{font-size:10px;font-weight:600;color:#475569;min-width:88px;text-align:center;line-height:1.2;}
.cloture-modal__deadline{font-size:12px;color:#64748b;margin-top:4px;font-weight:500;}
.cloture-modal__head{align-items:flex-start;}
.cloture-modal{width:min(480px,100%);max-height:min(88vh,720px);background:#fff;border-radius:20px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 48px rgba(15,23,42,.25);}
.cloture-modal__head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid #f1f5f9;}
.cloture-modal__head h3{margin:0;font-size:17px;font-weight:700;color:#0f172a;}
.cloture-modal__close{border:none;background:transparent;font-size:22px;color:#94a3b8;cursor:pointer;line-height:1;padding:4px;}
.cloture-modal__body{padding:12px 16px;overflow-y:auto;flex:1;}
.cloture-modal__foot{padding:12px 16px 16px;border-top:1px solid #f1f5f9;}
.cloture-summary{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;font-size:13px;margin-bottom:12px;}
.cloture-summary--warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;}
.cloture-list{display:flex;flex-direction:column;gap:10px;}
.cloture-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;}
.cloture-card__head{display:flex;align-items:flex-start;gap:10px;}
.cloture-card--danger{border-left:4px solid #dc2626;}
.cloture-card--warn{border-left:4px solid #f59e0b;}
.cloture-card__icon{font-size:22px;line-height:1;flex-shrink:0;}
.cloture-card__head-text{flex:1;min-width:0;}
.cloture-card__title{font-size:14px;font-weight:700;color:#0f172a;margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cloture-card__count{background:#f1f5f9;color:#0f172a;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;}
.cloture-card__mandatory{background:#fef2f2;color:#b91c1c;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.cloture-opt-shell{display:flex;flex-direction:column;gap:14px;}
.cloture-opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 14px;margin-top:10px;}
.cloture-opt-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569;}
.cloture-opt-field input[type="time"],.cloture-opt-field select,.cloture-opt-field input[type="number"]{padding:8px 10px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;font-size:13px;}
.cloture-opt-table-wrap{overflow:auto;margin-top:10px;}
.cloture-opt-table{width:100%;border-collapse:collapse;font-size:12px;}
.cloture-opt-table th,.cloture-opt-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;text-align:center;}
.cloture-opt-table th:first-child,.cloture-opt-table td:first-child{text-align:left;}
.cloture-opt-table thead th{background:#fffbeb;color:#92400e;font-weight:700;}
.cloture-opt-table__subhead th{font-size:11px;font-weight:600;color:#64748b;background:#fafafa;}
.cloture-opt__module{font-weight:600;color:#0f172a;white-space:nowrap;}
.cloture-opt__cell input[type="checkbox"]{width:16px;height:16px;accent-color:#b45309;}
.cloture-opt__na{color:#cbd5e1;}
.cloture-opt-grid--2{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
.cloture-cat-grid{display:flex;flex-direction:column;gap:12px;}
.cloture-cat-card{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fafafa;}
.cloture-cat-card__title{font-weight:700;font-size:12px;color:#475569;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em;}
.cloture-cat-card__rows{display:flex;flex-direction:column;gap:8px;}
.cloture-mod-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#fff;border-radius:10px;border:1px solid #f1f5f9;}
.cloture-mod-row__title{font-weight:600;font-size:13px;color:#0f172a;flex:1;min-width:140px;}
.cloture-mod-row__toggles{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.cloture-mod-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:4px 8px;cursor:pointer;}
.cloture-mod-chip input{width:14px;height:14px;accent-color:#b45309;}
.cloture-mod-chip--mand{background:#fff7ed;border-color:#fed7aa;}
.cloture-card__lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.cloture-line{padding:8px 10px;background:#f8fafc;border-radius:10px;border:1px solid #f1f5f9;}
.cloture-line__text{display:block;font-size:13px;font-weight:600;color:#0f172a;line-height:1.35;}
.cloture-line__sub{display:block;font-size:11px;color:#64748b;margin-top:2px;line-height:1.4;}
.cloture-line--more{font-size:11px;color:#94a3b8;font-style:italic;background:transparent;border:none;padding:4px 10px;}
.cloture-card__module-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:12px;padding:11px 14px;font-size:13px;font-weight:700;cursor:pointer;background:#0f172a;color:#fff;}
.cloture-card__module-btn:active{opacity:.9;}
.cloture-ok{text-align:center;padding:32px 16px;}
.cloture-ok__icon{width:56px;height:56px;border-radius:50%;background:#dcfce7;color:#15803d;font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;}
.cloture-ok h4{margin:0 0 8px;font-size:17px;color:#0f172a;}
.cloture-ok p{margin:0;font-size:13px;color:#64748b;line-height:1.5;}

.ct-day-col--jf-toggle{cursor:pointer;}
.ct-day-jf-badge{font-size:8px;font-weight:700;margin-top:2px;padding:1px 4px;border-radius:4px;}
.ct-view-active{background:#0891b2 !important;color:#fff !important;border-color:#0891b2 !important;}

/* L?gende */
.ct-legend{display:none;}
.ct-legend-chip{font-size:10px;font-weight:500;padding:3px 9px;border-radius:20px;}

/* Grille principale */
.ct-grid-wrap{background:#fff;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.06);overflow:hidden;overflow-x:auto;}

/* Header de la grille */
.ct-header-row{display:grid;grid-template-columns:140px repeat(7,1fr) 54px;gap:2px;background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:0 2px;}
.ct-emp-header{display:flex;align-items:center;padding:8px 10px;font-size:10px;font-weight:500;color:#94a3b8;letter-spacing:.5px;}
.ct-total-header{display:flex;align-items:center;justify-content:center;padding:6px 2px;font-size:9px;font-weight:500;color:#94a3b8;text-align:center;}
.ct-day-col{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;gap:1px;border-radius:6px;transition:all .15s;}
.ct-day-col.ct-today{background:#0891b2;color:#fff;border-radius:8px;}
.ct-day-name{font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;opacity:.7;}
.ct-day-col.ct-today .ct-day-name{opacity:.9;color:#fff;}
.ct-cell-locked{position:relative;outline:1px dashed #f59e0b;}
.ct-lock-badge{position:absolute;top:4px;right:4px;font-size:11px;line-height:1;}
.ct-day-num{font-size:16px;font-weight:500;}
.ct-day-stats{font-size:8px;font-weight:500;opacity:.6;}

/* Lignes employ?s */
.ct-row{display:grid;grid-template-columns:140px repeat(7,1fr) 54px;gap:2px;padding:2px;border-bottom:0.5px solid #f1f5f9;transition:background .15s;}
.ct-row:hover{background:#fafcff;}
.ct-row-selected{background:#eff6ff!important;}
.ct-has-warn{border-left:3px solid #dc2626;background:#fff5f5!important;}

/* Colonne employ? */
.ct-emp-col{display:flex;align-items:center;gap:7px;padding:6px 8px;cursor:pointer;border-radius:10px;transition:background .15s;min-width:0;}
.ct-emp-col:hover{background:#f1f5f9;}
.ct-avatar{width:30px;height:30px;border-radius:50%;color:#fff;font-weight:500;font-size:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ct-emp-info{flex:1;min-width:0;}
.ct-emp-name{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1e293b;}
.ct-emp-contract{font-size:9px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px;}
.ct-progress-bar{height:3px;background:#e2e8f0;border-radius:2px;overflow:hidden;margin-bottom:1px;}
.ct-progress-fill{height:100%;border-radius:2px;transition:width .3s;}
.ct-hours-label{font-size:9px;font-weight:500;}
.ct-emp-settings-btn{background:none;border:none;color:#cbd5e1;font-size:11px;cursor:pointer;padding:4px;border-radius:6px;flex-shrink:0;transition:all .15s;}
.ct-emp-settings-btn:hover{color:#475569;background:#f1f5f9;}

/* Cellules de grille */
.ct-cell{border-radius:8px;min-height:58px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;position:relative;overflow:hidden;transition:all .15s;font-size:10px;}
.ct-cell:active{transform:scale(.96);}
.ct-cell.ct-rest{background:#f8fafc;border:1.5px dashed #e2e8f0;}
.ct-cell.ct-rest.ct-today{background:#eff6ff;border-color:#bfdbfe;}
.ct-rest-dash{color:#d1d5db;font-size:18px;font-weight:300;}
.ct-cell.ct-leave{background:#fdf2f8;border:1.5px solid #f9a8d4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.ct-leave-icon{font-size:14px;}
.ct-leave-lbl{font-size:8px;font-weight:500;color:#9d174d;}
.ct-cell.ct-absent{background:#e5e7eb;border:1.5px solid #9ca3af;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;opacity:.92;filter:grayscale(.35);}
.ct-cell.ct-absent.ct-today{background:#d1d5db;border-color:#6b7280;}
.ct-cell.ct-work.ct-work-absent{background:#f3f4f6;border-color:#9ca3af;filter:grayscale(.45);opacity:.95;}
.ct-cell.ct-work.ct-work-absent .ct-shift-post,.ct-cell.ct-work.ct-work-absent .ct-shift-times,.ct-cell.ct-work.ct-work-absent .ct-shift-h{color:#4b5563!important;}
.ct-absent-tag{position:absolute;top:3px;right:4px;font-size:8px;font-weight:800;color:#6b7280;letter-spacing:.35px;background:#e5e7eb;border-radius:4px;padding:1px 4px;line-height:1.2;z-index:2;}
.ct-absent-lbl{font-size:9px;font-weight:700;color:#6b7280;letter-spacing:.4px;}
.ct-cell.ct-work{border:1.5px solid color-mix(in srgb, var(--sc) 30%, transparent);background:color-mix(in srgb, var(--sc) 8%, #fff);}
.ct-cell.ct-today{box-shadow:inset 0 0 0 2px #0891b2;}
.ct-cell.ct-drag-over{box-shadow:0 0 0 3px #0891b2!important;background:#e0f2fe!important;}
.ct-cell.ct-cell-selected{box-shadow:0 0 0 3px #0ea5e9!important;background:#e0f2fe!important;}
.ct-cell.ct-cell-selected::after{content:'?';position:absolute;top:4px;right:4px;width:14px;height:14px;border-radius:50%;background:#0ea5e9;color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;}

/* Barre de temps visuelle (d?corative) */
.ct-shift-bar{position:absolute;top:0;height:3px;border-radius:0 0 3px 3px;opacity:.6;transition:width .3s;}
.ct-shift-post{font-size:8px;font-weight:500;padding:1px 5px;border-radius:4px;background:color-mix(in srgb, var(--sc) 15%, #fff);letter-spacing:.3px;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;}
.ct-shift-times{font-size:10px;font-weight:500;color:#1e293b;}
.ct-shift-h{font-size:9px;color:#6b7280;font-weight:500;}

/* Colonne total */
.ct-total-col{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 2px;}
.ct-total-h{font-size:13px;font-weight:500;}
.ct-rest-badge{font-size:9px;font-weight:500;border-radius:4px;padding:1px 5px;}
.ct-rest-badge.ok{background:#d1fae5;color:#065f46;}
.ct-rest-badge.warn{background:#fee2e2;color:#991b1b;}

/* Ligne d'alerte */
.ct-warn-row{background:#fff5f5;border-left:3px solid #dc2626;padding:4px 10px 4px 140px;font-size:10px;color:#991b1b;font-weight:500;grid-column:1/-1;}
/* Cellule journali?re en anomalie */
.ct-cell-warn{border:2px solid #dc2626!important;background:#fff1f2!important;}
.ct-cell-warn .ct-shift-times{color:#dc2626;}

/* Barre summary */
.ct-summary-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px;}
.ct-sum-item{text-align:center;background:#f8fafc;border-radius:10px;padding:8px 4px;}
.ct-sum-val{font-size:20px;font-weight:500;}
.ct-sum-lbl{font-size:10px;color:#64748b;margin-top:1px;}

/* ?? NOTE INDICATOR ON SHIFT CELL ?? */
.ct-shift-note{position:absolute;bottom:1px;right:3px;font-size:8px;opacity:.55;line-height:1;}

/* ?????????????????????????????????????????????????????????????? */
/* ?? VUE MOBILE PLANNING ???????????????????????????????????????? */
/* ?????????????????????????????????????????????????????????????? */

/* Calendrier semaine mini */
.plan-mob-week-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:#fff;border-radius:14px;padding:10px 6px;box-shadow:0 2px 8px rgba(0,0,0,.06);margin-bottom:8px;}
.plan-mob-day-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:10px;cursor:pointer;transition:all .15s;}
.plan-mob-day-btn:hover{background:#f1f5f9;}
.plan-mob-day-btn.today .plan-mob-day-num{color:#0891b2;font-weight:500;}
.plan-mob-day-btn.selected{background:#0891b2;color:#fff;}
.plan-mob-day-btn.selected .plan-mob-day-name,
.plan-mob-day-btn.selected .plan-mob-day-num{color:#fff;}
.plan-mob-day-name{font-size:9px;font-weight:500;text-transform:uppercase;opacity:.7;}
.plan-mob-day-num{font-size:18px;font-weight:500;line-height:1.1;}
.plan-mob-dot{width:5px;height:5px;border-radius:50%;background:#0891b2;}
.plan-mob-day-btn.selected .plan-mob-dot{background:rgba(255,255,255,.7);}

/* Onglets sous-vue mobile */
.plan-mob-tabs{display:flex;gap:0;background:#f1f5f9;border-radius:12px;padding:3px;margin-bottom:10px;}
.plan-mobt{flex:1;text-align:center;padding:8px 4px;font-size:11px;font-weight:500;border-radius:9px;cursor:pointer;border:none;background:transparent;color:#64748b;transition:all .2s;white-space:nowrap;}
.plan-mobt.active{background:#fff;color:#0891b2;box-shadow:0 1px 4px rgba(0,0,0,.1);}

/* Cartes shift mobile */
.plan-mob-card{background:#fff;border-radius:12px;padding:14px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;transition:all .15s;}
.plan-mob-card:active{transform:scale(.98);}
.plan-mob-card.plan-mob-work:hover{box-shadow:0 4px 14px rgba(0,0,0,.1);}
.plan-mob-list-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:10px 12px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border:1px solid #e2e8f0;}
.plan-mob-list-toolbar-title{font-weight:600;font-size:14px;color:#0f172a;letter-spacing:-.01em;}
.plan-mob-toolbar-meta{font-size:12px;color:#64748b;font-weight:500;}
.plan-mob-toolbar-tag{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:#ecfdf5;color:#047857;}
.plan-mob-card--week{padding:0;overflow:hidden;}
.plan-mob-card-head{display:flex;align-items:center;gap:12px;padding:14px 14px 10px;background:linear-gradient(180deg,#fafafa,#fff);}
.plan-mob-card-head-text{flex:1;min-width:0;}
.plan-mob-name{font-weight:700;font-size:14px;color:#0f172a;text-transform:uppercase;letter-spacing:.02em;line-height:1.2;}
.plan-mob-meta{font-size:12px;color:#64748b;font-weight:500;margin-top:2px;}
.plan-mob-shift-lines{padding:0 12px 14px;display:flex;flex-direction:column;gap:6px;}
.plan-mob-shift-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;font-size:13px;}
.plan-mob-day-pill{flex-shrink:0;min-width:3rem;font-size:11px;font-weight:700;color:#475569;text-transform:lowercase;}
.plan-mob-time{font-weight:600;color:#0f172a;font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.plan-mob-work-row{display:flex;align-items:flex-start;gap:12px;}
.plan-mob-work-main{flex:1;min-width:0;}
.plan-mob-post{font-size:12px;font-weight:600;margin-top:2px;}
.plan-mob-slots-hint{font-size:11px;color:#0f766e;font-weight:600;margin-top:2px;}
.plan-mob-notes{font-size:11px;color:#64748b;margin-top:4px;line-height:1.35;}
.plan-mob-work-times{text-align:right;flex-shrink:0;padding-top:2px;}
.plan-mob-time-big{font-weight:700;font-size:13px;color:#0f172a;font-variant-numeric:tabular-nums;}
.plan-mob-hrs{font-size:11px;color:#94a3b8;margin-top:2px;}
.plan-mob-admin-requests-wrap{margin-top:14px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.07);border:1px solid #fce7f3;}
.plan-mob-admin-requests-hdr{background:linear-gradient(135deg,#db2777,#be185d);padding:11px 14px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.plan-mob-admin-requests-title{font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px;}
.plan-mob-admin-requests-refresh{background:rgba(255,255,255,.22);border:none;border-radius:8px;padding:6px 10px;color:#fff;font-size:12px;cursor:pointer;}
.plan-mob-admin-requests-body{padding:10px 12px;}

/* Planning PDF viewer */
#plan-panel-pdf{padding:8px 0 12px;}
.plan-pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.plan-pdf-loading{text-align:center;color:#64748b;padding:28px 12px;font-size:14px;}
.plan-pdf-iframe{width:100%;height:min(72vh,640px);border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;}
#ep-ts-content .plan-pdf-iframe{height:min(65vh,520px);}

/* ?? Planning : vue mobile (?768px) ?? */
@media (max-width:768px){
  body.planning-fullscreen #view-planning{
    padding:8px 8px calc(12px + env(safe-area-inset-bottom));
    height:auto;
    min-height:100dvh;
  }
  #view-planning .mod-hdr{
    margin:0 -4px 8px;
    padding:10px 12px;
  }
  #view-planning .mod-hdr-sub{font-size:11px;}
  #plan-requests-banner,
  #plan-violations-panel{
    margin-left:-4px;
    margin-right:-4px;
  }
  #view-planning .ct-tabs{
    margin-bottom:8px;
    border-radius:12px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    flex-wrap:nowrap;
  }
  #view-planning .ct-tab{
    flex:1 0 auto;
    min-width:72px;
    font-size:11px;
    padding:10px 8px;
    white-space:nowrap;
  }
  #view-planning .ct-tab i{
    display:block;
    font-size:15px;
    margin-bottom:3px;
  }
  body.planning-mobile-ui #plan-panel-mobile:not(.hidden){
    display:block!important;
  }
  body.planning-mobile-ui:not(.planning-show-grid) #plan-panel-grid{
    display:none!important;
  }
  body.planning-mobile-ui.planning-show-grid #plan-panel-grid:not(.hidden){
    display:block!important;
  }
  body.planning-mobile-ui.planning-show-grid #plan-panel-mobile{
    display:none!important;
  }
  #plan-panel-mobile .ct-nav-bar{
    flex-wrap:wrap;
    justify-content:center;
    gap:6px;
    padding:8px 10px;
  }
  #plan-panel-mobile .ct-week-label{
    font-size:12px;
    text-align:center;
    flex:1 1 100%;
    order:-1;
    margin-bottom:4px;
  }
  .plan-mob-week-cal{
    padding:8px 4px;
    gap:2px;
  }
  .plan-mob-day-btn{
    padding:6px 2px;
  }
  .plan-mob-day-num{font-size:16px;}
  .plan-mob-tabs{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    flex-wrap:nowrap;
  }
  .plan-mobt{
    flex:1 0 auto;
    min-width:88px;
    font-size:10px;
    padding:8px 6px;
  }
  #plan-panel-recap,
  #plan-panel-rh{
    padding:0 2px;
  }
  #plan-recap-content,
  #plan-rh-content{
    overflow-x:hidden;
  }
  #plan-recap-grid{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  /* Grille admin (onglet Grille) : scroll horizontal + colonne employ? fixe */
  body.planning-show-grid .ct-nav-bar{
    flex-direction:column;
    align-items:stretch;
    gap:8px;
  }
  body.planning-show-grid .ct-nav-bar > div:first-child{
    justify-content:center;
    width:100%;
  }
  body.planning-show-grid .ct-nav-bar > div:last-child{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    justify-content:flex-start;
    max-height:120px;
    overflow-y:auto;
  }
  body.planning-show-grid .ct-legend{
    max-height:72px;
    overflow-y:auto;
  }
  body.planning-show-grid .ct-grid-wrap{
    margin:0 -4px;
    border-radius:12px;
    -webkit-overflow-scrolling:touch;
  }
  body.planning-show-grid .ct-header-row,
  body.planning-show-grid .ct-row{
    min-width:680px;
  }
  body.planning-show-grid .ct-emp-col,
  body.planning-show-grid .ct-emp-header{
    position:sticky;
    left:0;
    z-index:3;
    background:#fff;
    box-shadow:4px 0 8px rgba(15,23,42,.06);
  }
  body.planning-show-grid .ct-header-row .ct-emp-header{
    background:#f8fafc;
    z-index:4;
  }
  body.planning-show-grid .ct-cell{
    min-height:52px;
    min-width:44px;
  }
  body.planning-show-grid .ct-shift-times{font-size:11px;}
  body.planning-show-grid .ct-summary-bar{
    grid-template-columns:repeat(2,1fr);
  }
  body.planning-mobile-ui .plan-tools-row{
    flex-direction:column;
  }
  body.planning-mobile-ui #plan-edit-actions{
    display:none!important;
  }
  body.planning-mobile-ui #plan-mob-actions-btn{
    display:inline-flex!important;
  }
  body.planning-mobile-ui.planning-show-grid #plan-edit-actions{
    display:none!important;
  }
}

@media (max-width:480px){
  body.planning-fullscreen main{padding-bottom:calc(92px + env(safe-area-inset-bottom))!important;}
  #view-planning .ct-tab{font-size:10px;min-width:64px;padding:8px 4px;}
  .plan-mob-card{padding:12px;}
  .plan-mob-time-big{font-size:15px;}
  body.planning-show-grid .ct-action-btn{
    height:36px;
    font-size:11px;
    padding:0 8px;
  }
  body.planning-show-grid .ct-action-btn span{display:none;}
}

/* ?? RESPONSIVE MOBILE ?? */
#view-parametres .param-tabs{
  flex-wrap:nowrap;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  gap:4px;
  scrollbar-width:none;
}
#view-parametres .param-tabs::-webkit-scrollbar{display:none;}
#view-parametres .param-tabs .tab{
  flex:0 0 auto;
  white-space:nowrap;
  padding:10px 12px;
  font-size:11px;
}
.settings-tabs .tab{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}
.settings-tabs .tab i{font-size:12px;}
.settings-shell{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.settings-hero{
  border-radius:20px;
  padding:16px;
  color:#fff;
  box-shadow:0 10px 28px rgba(15,23,42,.10);
}
.settings-hero--users{background:linear-gradient(135deg,#0f6e56,#1f9d7a 58%,#7dd3fc 130%);}
.settings-hero--general{background:linear-gradient(135deg,#1e3a8a,#2563eb 60%,#22c55e 160%);}
.settings-hero__copy h3{
  margin:4px 0 8px;
  font-size:20px;
  line-height:1.2;
}
.settings-hero__copy p{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:rgba(255,255,255,.86);
}
.settings-eyebrow{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
  opacity:.86;
}
.settings-stat-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.settings-stat{
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  padding:12px;
  backdrop-filter:blur(8px);
}
.settings-stat__value{
  font-size:24px;
  font-weight:800;
  line-height:1;
}
.settings-stat__label{
  margin-top:4px;
  font-size:12px;
  font-weight:600;
}
.settings-stat__hint{
  margin-top:4px;
  font-size:11px;
  opacity:.85;
}
.settings-card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
}
.settings-card--blue{border-top:4px solid #2563eb;}
.settings-card--amber{border-top:4px solid #d97706;}
.settings-card--violet{border-top:4px solid #7c3aed;}
.settings-card--emerald{border-top:4px solid #0f766e;}
.settings-card--rose{border-top:4px solid #dc2626;}
.settings-card--slate{border-top:4px solid #475569;}
.settings-subcard{
  border-radius:14px;
  border:1px solid #dbeafe;
  background:#f8fbff;
}
.settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.settings-toolbar{
  display:flex;
  gap:8px;
  align-items:center;
  margin-bottom:12px;
}
.settings-toolbar__grow{
  flex:1;
  min-width:0;
}
.settings-inline-note{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  margin-bottom:12px;
}
.settings-inline-note__title{
  font-size:13px;
  font-weight:700;
  color:#0f172a;
}
.settings-inline-note__text{
  font-size:12px;
  color:#64748b;
  margin-top:2px;
  line-height:1.45;
}
.scanner-setup-bar{
  margin:10px 0 0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid #fde68a;
  background:linear-gradient(135deg,#fffbeb,#fff);
}
.scanner-setup-bar__text{
  font-size:12px;
  color:#92400e;
  line-height:1.45;
  margin-bottom:0;
}
.scanner-setup-bar__text i{margin-right:6px;color:#d97706;}
.scanner-setup-bar__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.scanner-setup-bar__btn{
  margin:0!important;
  padding:8px 12px!important;
  font-size:12px!important;
  border-radius:10px!important;
}
.scanner-btn-row{
  display:flex;
  gap:8px;
  margin:10px 0 0;
  align-items:stretch;
}
.scanner-btn-row__main{
  flex:1;
  margin:0!important;
  padding:10px 14px!important;
  font-size:13px!important;
  border-radius:12px!important;
}
.scanner-btn-row__help{
  flex:0 0 auto;
  margin:0!important;
  padding:10px 14px!important;
  font-size:12px!important;
  border-radius:12px!important;
}
.dt50-setup-guide{
  margin:10px 0 0;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid #bae6fd;
  background:#f0f9ff;
  font-size:12px;
  color:#0c4a6e;
}
.dt50-setup-guide summary{
  cursor:pointer;
  font-weight:600;
  list-style:none;
}
.dt50-setup-guide summary::-webkit-details-marker{display:none;}
.dt50-setup-guide summary i{margin-right:6px;color:#0284c7;}
.dt50-setup-steps{
  margin:10px 0 0;
  padding-left:18px;
  line-height:1.45;
  color:#334155;
}
.dt50-setup-steps li{margin-bottom:4px;}
.settings-inline-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:700;
}
.settings-inline-pill--ok{background:#dcfce7;color:#166534;}
.settings-inline-pill--warn{background:#fef3c7;color:#92400e;}
.settings-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.settings-section-title{
  font-size:15px;
  font-weight:700;
  color:#0f172a;
  display:flex;
  align-items:center;
  gap:8px;
}
.settings-section-text{
  margin:6px 0 0;
  font-size:12px;
  line-height:1.5;
  color:#64748b;
}
.settings-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.settings-actions .btn{
  margin:0;
  flex:1 1 180px;
}
.settings-note{
  margin-top:12px;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  padding:10px 12px;
  font-size:12px;
  line-height:1.5;
  color:#475569;
}
.settings-list-host{
  border-radius:16px;
  overflow:hidden;
  border:1px solid #e2e8f0;
  background:#fff;
}
.conn-shell{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.conn-shell--admin{
  display:grid;
  grid-template-columns:minmax(280px,0.95fr) minmax(0,1.65fr);
  gap:12px;
  align-items:start;
}
.conn-toolbar{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:12px;
}
.conn-search{
  position:relative;
}
.conn-search i{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  color:#94a3b8;
  font-size:12px;
}
.conn-search input{
  width:100%;
  padding:12px 14px 12px 34px;
  border:1px solid #d6e1ef;
  border-radius:14px;
  background:#fff;
  font-size:13px;
}
.conn-device-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.conn-device-chip{
  border:1px solid #d6e1ef;
  background:#fff;
  color:#475569;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:600;
}
.conn-device-chip.is-on{
  background:#eff6ff;
  color:#1d4ed8;
  border-color:#93c5fd;
}
.conn-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.conn-stat{
  background:#fff;
  border:1px solid #d6e1ef;
  border-radius:14px;
  padding:12px;
  box-shadow:var(--premium-shadow-soft);
}
.conn-stat__label{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#64748b;
  font-weight:700;
}
.conn-stat__value{
  margin-top:6px;
  font-size:18px;
  font-weight:800;
  color:#0f172a;
}
.conn-stat__sub{
  margin-top:4px;
  font-size:11px;
  color:#64748b;
}
.conn-users-pane,
.conn-detail-pane{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.conn-users-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:62vh;
  overflow:auto;
  padding-right:2px;
}
.conn-user-card{
  border:1px solid #d6e1ef;
  background:#fff;
  border-radius:16px;
  padding:12px;
  text-align:left;
  box-shadow:var(--premium-shadow-soft);
}
.conn-user-card.is-on{
  border-color:#93c5fd;
  background:#eff6ff;
}
.conn-user-card__top{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:flex-start;
}
.conn-user-card__identity{
  min-width:0;
}
.conn-user-card__name{
  font-size:13px;
  font-weight:700;
  color:#0f172a;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.conn-user-card__email{
  font-size:11px;
  color:#64748b;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.conn-user-card__count{
  font-size:12px;
  font-weight:800;
  color:#1d4ed8;
}
.conn-user-card__chips{
  margin-top:8px;
}
.conn-user-card__foot{
  margin-top:8px;
  font-size:11px;
  color:#64748b;
}
.conn-selected-card{
  border:1px solid #d6e1ef;
  background:#fff;
  border-radius:18px;
  padding:14px;
  box-shadow:var(--premium-shadow-soft);
}
.conn-selected-card__title{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#64748b;
  font-weight:700;
}
.conn-selected-card__name{
  margin-top:6px;
  font-size:18px;
  font-weight:800;
  color:#0f172a;
}
.conn-selected-card__meta{
  margin-top:2px;
  font-size:12px;
  color:#64748b;
}
.conn-selected-card__footer{
  margin-top:10px;
  font-size:12px;
  color:#475569;
}
.conn-role{
  display:inline-flex;
  align-items:center;
  margin-top:8px;
  font-size:10px;
  font-weight:700;
  padding:3px 8px;
  border-radius:999px;
}
.conn-role--admin{background:#1e3a8a;color:#fff;}
.conn-role--advisor{background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc;}
.conn-role--super{background:#4c1d95;color:#fff;}
.conn-role--owner{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;}
.conn-role--staff{background:#f1f5f9;color:#475569;}
.conn-timeline{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.conn-event{
  display:flex;
  gap:12px;
  align-items:flex-start;
  border:1px solid #d6e1ef;
  background:#fff;
  border-radius:16px;
  padding:12px 14px;
  box-shadow:var(--premium-shadow-soft);
}
.conn-event__icon{
  width:34px;
  height:34px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eff6ff;
  color:#1d4ed8;
  flex-shrink:0;
}
.conn-event__body{
  min-width:0;
  flex:1;
}
.conn-event__top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.conn-event__top strong{
  font-size:13px;
  color:#0f172a;
}
.conn-event__top span{
  font-size:11px;
  color:#64748b;
  white-space:nowrap;
}
.conn-event__sub{
  margin-top:2px;
  font-size:11px;
  color:#94a3b8;
}
.conn-event__ua{
  margin-top:8px;
  font-size:11px;
  color:#475569;
  word-break:break-word;
}
.conn-empty{
  border:1px dashed #cbd5e1;
  background:#f8fafc;
  color:#64748b;
  text-align:center;
  padding:22px;
  border-radius:16px;
}
.conn-empty--error{
  color:#b91c1c;
  background:#fef2f2;
  border-style:solid;
  border-color:#fecaca;
}

@media (max-width: 640px) {
  .settings-grid{grid-template-columns:1fr;}
  .settings-inline-note,
  .settings-section-head,
  .settings-toolbar{flex-direction:column;}
  .settings-toolbar__grow,
  .settings-actions .btn{width:100%;}
  .conn-shell--admin,
  .conn-summary{grid-template-columns:1fr;}
  .conn-event__top{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 480px) {
  main{padding:8px;padding-bottom:90px;}
  nav{
    padding:0 10px calc(8px + env(safe-area-inset-bottom));
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    height:auto;
    min-height:84px;
  }
  .nav-btn{min-width:52px;min-height:44px;font-size:8.5px;flex-shrink:0;}
  .nav-btn i{font-size:20px;}
  .nav-btn-home{margin-right:0;}
  .nav-dock-btn span{display:block;font-size:8.5px;line-height:1.15;max-width:76px;}
  .nav-dock-customize span{display:inline;}
  .nav-dock-edit span{display:inline;}
  .nav-dock-btn{min-width:48px;width:auto;padding:0 4px;flex-shrink:0;}
  .nav-dock-customize{min-width:40px;padding:0 4px;}
  .nav-dock-btn i{font-size:21px;}
  .nav-dock-slots{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
    padding-left:10px;
    border-left:1px solid rgba(100,116,139,.22);
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .nav-dock-slots::-webkit-scrollbar{display:none;}
  .card{padding:14px;}

  /* Planning ? grille scrollable horizontalement */
  .ct-grid-wrap{-webkit-overflow-scrolling:touch;}
  .ct-header-row,.ct-row{min-width:600px;}
  .ct-tabs{gap:0;}
  .ct-tab{font-size:10px;padding:8px 2px;}
  .ct-nav-bar{padding:8px 6px;gap:3px;}
  .ct-action-btn{height:28px;padding:0 7px;font-size:11px;}
  .ct-week-label{font-size:11px;}

  /* Pointeuse ? r?duire tailles sur petits ?crans */
  .pointeuse-timer{font-size:40px!important;letter-spacing:1px;}
  .pointeuse-main-btn{width:130px!important;height:130px!important;}
  .pointeuse-main-btn i{font-size:28px!important;}
  .pointeuse-clock{padding:14px 0 8px!important;}
  .pointeuse-btn-wrap{margin:8px 0 12px!important;}
  .pointeuse-body{padding:14px 12px;}
}

/* Version connexion */
#login-changelog{scrollbar-width:thin;}

/* ?? AIDE ? LA COMMANDE ?? */
.cmd-order-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:12px;margin-bottom:8px;border:1.5px solid #e2e8f0;box-shadow:0 2px 6px rgba(0,0,0,.04);transition:opacity .2s;}
.cmd-order-item.done{opacity:.55;}
.cmd-order-item.done>div:first-child>div:first-child{text-decoration:line-through;color:#94a3b8;}
.cmd-bib-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:12px;margin-bottom:6px;border:1.5px solid #e2e8f0;transition:opacity .2s;}
.cmd-bib-item.archived{opacity:.55;border-style:dashed;}
.cmd-arch-badge{display:inline-block;background:#e2e8f0;color:#64748b;border-radius:20px;padding:1px 8px;font-size:10px;font-weight:500;vertical-align:middle;margin-left:4px;}

/* ?? DOCUMENTS EMPLOY?S ?? */
.emp-doc-row{display:flex;align-items:center;gap:10px;padding:8px 0;}
.emp-doc-row+.emp-doc-row{border-top:0.5px solid #f1f5f9;}

/* ?? DIAL NAV ?? */
.fab-dial{position:fixed;bottom:82px;width:60px;height:60px;border-radius:50%;color:#fff;border:none;z-index:950;cursor:pointer;display:none;align-items:center;justify-content:center;font-size:26px;transition:transform .25s,background .25s,box-shadow .25s;-webkit-tap-highlight-color:transparent;}
.fab-dial-right{left:calc(50% + 6px);right:auto;background:linear-gradient(135deg,#003896,#1e40af);box-shadow:0 4px 22px rgba(0,56,150,.5);}
.fab-dial-left{right:calc(50% + 6px);left:auto;background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 22px rgba(124,58,237,.5);}
.fab-dial.visible{display:none!important;}
.dial-overlay{display:none!important;}
.fab-dial-right:active{transform:scale(.9);}
.fab-dial-left:active{transform:scale(.9);}
.fab-dial-right.fab-open{background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 4px 22px rgba(239,68,68,.5);transform:rotate(135deg);}
.fab-dial-left.fab-open{background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 4px 22px rgba(239,68,68,.5);transform:rotate(135deg);}
.fab-dial-right.fab-open:active{transform:rotate(135deg) scale(.9);}
.fab-dial-left.fab-open:active{transform:rotate(135deg) scale(.9);}

.dial-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:1500;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;}
.dial-overlay.dial-open{opacity:1;pointer-events:all;}

.dial-close-btn{position:absolute;top:20px;right:20px;background:rgba(255,255,255,.12);border:none;color:#fff;width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.dial-close-btn:active{background:rgba(255,255,255,.25);}

.dial-selected-info{text-align:center;margin-bottom:24px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dial-selected-name{color:#fff;font-weight:500;font-size:22px;letter-spacing:.5px;transition:opacity .15s;}
.dial-selected-sub{color:rgba(255,255,255,.5);font-size:13px;margin-top:5px;}

.dial-ring-wrap{position:relative;width:360px;height:360px;touch-action:none;}
.dial-item{position:absolute;width:86px;height:86px;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transform:translate(-50%,-50%);color:#fff;font-size:10px;font-weight:500;text-align:center;line-height:1.2;cursor:pointer;transition:transform .2s,box-shadow .2s,filter .2s;box-shadow:0 4px 16px rgba(0,0,0,.45);user-select:none;-webkit-user-select:none;}
.dial-item i{font-size:26px;line-height:1;}
.dial-item.dial-active{transform:translate(-50%,-50%) scale(1.22);box-shadow:0 8px 32px rgba(0,0,0,.6),0 0 0 3px rgba(255,255,255,.35);}
.dial-item:not(.dial-active){filter:brightness(.72);}

.dial-item-badge{position:absolute;top:-5px;right:-5px;background:#ef4444;color:#fff;border-radius:50%;min-width:18px;height:18px;font-size:10px;font-weight:500;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1;border:2px solid rgba(0,0,0,.6);}

.dial-hint{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:26px;color:rgba(255,255,255,.45);font-size:12px;text-align:center;}
.dial-hint-arrow{font-size:24px;color:rgba(255,255,255,.6);animation:dialBounceUp 1s ease-in-out infinite;}
@keyframes dialBounceUp{0%,100%{transform:translateY(2px)}50%{transform:translateY(-6px)}}

/* Home simplifi?e */
.home-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72vh;text-align:center;gap:14px;padding:0 20px 20px;}
.home-logo-card{background:#fff;border-radius:24px;padding:16px 22px;box-shadow:0 4px 24px rgba(0,0,0,.12);border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;}

.home-hero-logo{height:clamp(140px,38vw,260px);object-fit:contain;filter:drop-shadow(0 0 20px rgba(34,197,94,0.5));}
/* Logo marque (JPEG/SVG) ? pas de filtre pour ?viter artefacts / ? carr? gris ? */
.brand-logo-hero{height:clamp(72px,22vw,140px);object-fit:contain;filter:none;}
.home-hero-title{font-weight:500;font-size:28px;color:var(--primary);letter-spacing:.5px;}
.home-hero-greeting{color:#64748b;font-size:15px;margin-top:4px;}
.home-hero-hint{color:#94a3b8;font-size:13px;margin-top:8px;display:flex;align-items:center;gap:6px;}
.cache-clear-btn{background:none;border:0.5px solid #e2e8f0;color:#94a3b8;border-radius:10px;padding:7px 16px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:color .15s,border-color .15s;}
.cache-clear-btn:active{color:#003896;border-color:#003896;}
@keyframes slideUpCentered{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.img-pick-thumb{border-radius:8px;overflow:hidden;border:2.5px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s;aspect-ratio:1;}
.img-pick-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.img-pick-thumb.selected{border-color:var(--pvp);transform:scale(1.05);}
.img-pick-thumb:active{transform:scale(.95);}

/* Actualit?s */
.actu-fab-btn{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#003896,#1e40af);color:#fff;border:none;border-radius:14px;padding:12px 22px;font-size:14px;font-weight:500;cursor:pointer;box-shadow:0 4px 16px rgba(0,56,150,.3);transition:transform .15s;letter-spacing:.3px;position:relative;}
.actu-fab-btn:active{transform:scale(.95);}
.actu-new-dot{position:absolute;top:-4px;right:-4px;width:12px;height:12px;background:#ef4444;border-radius:50%;border:2px solid #fff;display:none;}
.actu-new-dot.show{display:block;}
.actu-item{display:flex;align-items:center;gap:12px;background:#f8fafc;border-radius:12px;padding:12px 14px;margin-bottom:8px;border-left:4px solid var(--primary);}
.actu-item-info{flex:1;min-width:0;}
.actu-item-title{font-weight:500;font-size:14px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.actu-item-date{font-size:11px;color:#94a3b8;margin-top:2px;}

/* Banni?re vue employ? */
#empview-banner{display:none;position:fixed;top:0;left:0;right:0;z-index:3000;background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;padding:9px 16px;text-align:center;font-weight:500;font-size:13px;box-shadow:0 2px 12px rgba(220,38,38,.4);align-items:center;justify-content:center;gap:14px;}
#empview-banner.show{display:flex;}
body.empview-active header{top:38px;}
body.empview-active main{padding-top:54px;}

/* Personnel cards */
.personnel-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 2px 10px rgba(0,0,0,.06);border:1.5px solid #e2e8f0;}
.personnel-card details>summary::-webkit-details-marker{display:none;}
.personnel-card details[open]>summary{color:#0891b2;}

/* =========================================================
   Personnel / Rôles — layouts BEM (Équipe + Paramètres)
   Look Proxi Pilote : cartes blanches, bleus existants
   ========================================================= */
.personnel-role-group{
  background:#fff;
  border:1.5px solid #e2e8f0;
  border-radius:14px;
  margin-bottom:10px;
  box-shadow:0 2px 10px rgba(15,23,42,.05);
  overflow:hidden;
  border-left:4px solid var(--prg-color,#1A5CB8);
}
.personnel-role-group>summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  cursor:pointer;
  user-select:none;
  background:#f8fafc;
  font-weight:700;
  color:#0f172a;
}
.personnel-role-group>summary::-webkit-details-marker{display:none;}
.personnel-role-group>summary::before{
  content:'\25B8';
  color:#94a3b8;
  font-size:12px;
  flex-shrink:0;
  transition:transform .15s ease;
}
.personnel-role-group[open]>summary::before{transform:rotate(90deg);color:#1A5CB8;}
.personnel-role-group[open]>summary{background:#fff;border-bottom:1px solid #eef2f7;}
.personnel-role-group__left{
  display:flex;align-items:center;gap:8px;min-width:0;flex:1;
}
.personnel-role-group__title{
  font-size:13px;font-weight:700;color:#0f172a;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.personnel-role-group__count{
  flex-shrink:0;
  min-width:22px;height:22px;padding:0 7px;
  border-radius:999px;
  background:#eef2ff;color:#1A5CB8;
  font-size:11px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center;
}
.personnel-role-group__list{padding:10px 10px 4px;}

.personnel-card--compact{
  padding:12px;
  margin-bottom:8px;
  border-radius:14px;
}
.personnel-card__row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.personnel-card__avatar{
  width:40px;height:40px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;font-weight:800;
  flex-shrink:0;text-transform:uppercase;
  box-shadow:0 2px 6px rgba(15,23,42,.12);
}
.personnel-card__main{flex:1;min-width:0;}
.personnel-card__title{
  font-size:14px;font-weight:700;color:#0f172a;line-height:1.3;
  display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;
}
.personnel-card__meta{
  font-size:12px;color:#64748b;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.personnel-card__role{
  flex:0 1 140px;min-width:110px;
}
.personnel-card__actions{
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex-shrink:0;
}
.personnel-role-select{
  width:100%;
  margin:0!important;
  padding:8px 10px!important;
  font-size:12px!important;
  font-weight:600!important;
  border-radius:10px!important;
  border:1px solid #dbe4ef!important;
  background:#fff!important;
  color:#0f172a!important;
}
.personnel-card__more{
  margin-top:10px;
  border-top:1px solid #eef2f7;
  padding-top:8px;
}
.personnel-card__more>summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  color:#475569;
  padding:6px 4px;
  border-radius:8px;
}
.personnel-card__more>summary::-webkit-details-marker{display:none;}
.personnel-card__more>summary::before{
  content:'\25B8';
  color:#94a3b8;
  font-size:11px;
}
.personnel-card__more[open]>summary{color:#1A5CB8;}
.personnel-card__more[open]>summary::before{transform:rotate(90deg);display:inline-block;}
.personnel-card__more-meta{
  margin-left:auto;
  font-size:11px;font-weight:600;color:#94a3b8;
}
.personnel-card__section{
  margin-top:10px;
  padding:10px;
  background:#f8fafc;
  border:1px solid #eef2f7;
  border-radius:12px;
}
.personnel-card__section-title{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
  color:#64748b;margin-bottom:8px;
  display:flex;align-items:center;gap:6px;
}
.role-defaults-card{margin-bottom:12px;}
.shared-role-card{border-left-width:3px;}

/* Compte partagé — recherche / chips */
.shared-users-picker{margin-top:8px;}
.shared-users-selected{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;min-height:28px;
}
.shared-sel-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 8px 5px 10px;
  border-radius:999px;
  background:#eff6ff;color:#1d4ed8;
  border:1px solid #bfdbfe;
  font-size:11px;font-weight:700;
}
.shared-sel-chip.is-nopin{background:#fff7ed;color:#9a3412;border-color:#fed7aa;}
.shared-sel-chip__warn{font-size:10px;font-weight:600;opacity:.9;}
.shared-sel-chip__x{
  border:none;background:transparent;color:inherit;
  cursor:pointer;font-size:14px;line-height:1;padding:0 2px;font-weight:800;
}
.shared-users-search-box{position:relative;}
.shared-users-search-wrap{
  display:flex;align-items:center;gap:8px;
  background:#fff;border:1.5px solid #dbe4ef;border-radius:12px;
  padding:0 12px;margin:0;
}
.shared-users-search-wrap i{color:#94a3b8;font-size:13px;}
.shared-users-search-wrap input{
  border:none!important;box-shadow:none!important;margin:0!important;
  padding:11px 0!important;background:transparent!important;
  font-size:13px!important;
}
.shared-users-results{
  margin-top:6px;max-height:220px;overflow:auto;
  border:1px solid #e2e8f0;border-radius:12px;background:#fff;
  box-shadow:0 8px 20px rgba(15,23,42,.08);
}
.shared-users-empty{padding:12px;font-size:12px;color:#94a3b8;text-align:center;}
.shared-user-hit{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:10px 12px;border:none;border-bottom:1px solid #f1f5f9;
  background:#fff;text-align:left;cursor:pointer;
}
.shared-user-hit:last-child{border-bottom:none;}
.shared-user-hit:hover{background:#f8fafc;}
.shared-user-hit.is-on{background:#eff6ff;}
.shared-user-hit:disabled{opacity:.55;cursor:not-allowed;}
.shared-user-av{
  width:32px;height:32px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;font-size:11px;font-weight:800;flex-shrink:0;
}
.shared-user-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.shared-user-name{font-size:13px;font-weight:700;color:#0f172a;}
.shared-user-meta{
  font-size:11px;color:#64748b;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.shared-user-hit__act{font-size:11px;font-weight:700;color:#1A5CB8;flex-shrink:0;}
.shared-user-hit.is-on .shared-user-hit__act{color:#059669;}

/* Droits par rôle */
.role-rights-panel{margin-top:4px;}
.role-filter-row{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;
}
.role-filter-chip{
  border:1px solid #dbe4ef;background:#fff;color:#475569;
  border-radius:999px;padding:6px 10px;
  font-size:11px;font-weight:700;cursor:pointer;
}
.role-filter-chip.is-on{background:#1A5CB8;border-color:#1A5CB8;color:#fff;}
.role-filter-chip.has-on:not(.is-on){border-color:#93c5fd;color:#1d4ed8;}
.role-right-chip{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 8px;border-radius:999px;
  background:#eef2ff;color:#3730a3;
  font-size:10px;font-weight:700;
}
.role-right-chip.is-empty{background:#f1f5f9;color:#94a3b8;font-weight:600;}
.role-perm-acc-host{display:flex;flex-direction:column;gap:6px;}
.role-perm-acc{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:12px;
  overflow:hidden;
}
.role-perm-acc>summary{
  list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:10px 12px;cursor:pointer;background:#f8fafc;
  font-weight:700;color:#0f172a;
}
.role-perm-acc>summary::-webkit-details-marker{display:none;}
.role-perm-acc>summary::before{
  content:'\25B8';color:#94a3b8;font-size:11px;margin-right:4px;
}
.role-perm-acc[open]>summary{background:#fff;border-bottom:1px solid #eef2f7;}
.role-perm-acc[open]>summary::before{display:inline-block;transform:rotate(90deg);color:#1A5CB8;}
.role-perm-acc__left{display:flex;align-items:center;gap:8px;min-width:0;flex:1;}
.role-perm-acc__title{font-size:12px;font-weight:700;}
.role-group-count{
  font-size:11px;font-weight:800;color:#64748b;
  background:#f1f5f9;border-radius:999px;padding:2px 8px;
}
.role-perm-acc.has-on .role-group-count{background:#eef2ff;color:#1A5CB8;}
.role-perm-acc__body{padding:4px 6px 8px;}
.role-perm-row.is-on{background:#f0f9ff;}

@media (max-width:720px){
  .personnel-card__row{gap:8px;}
  .personnel-card__role{flex:1 1 100%;}
  .personnel-card__actions{width:100%;}
  .personnel-role-group__title{font-size:12px;}
}

/* ?? v2.6.0 additions ?? */
.badge-commande{background:#fef3c7;color:#d97706;border:1.5px solid #fde68a;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500;white-space:nowrap;}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:85000;display:flex;align-items:flex-end;justify-content:center;padding:16px;}
.modal-box{background:#fff;border-radius:20px 20px 20px 20px;padding:22px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .22s cubic-bezier(.34,1.56,.64,1);}
@media (max-width:767px){
  body.planning-show-grid .plan-edit-btn{display:none!important;}
  #plan-panel-mobile .plan-edit-btn{display:inline-flex!important;align-items:center;justify-content:center;min-width:44px;min-height:44px;}
}

/* ?? v2.5.0 additions ?? */
.task-card.urgent{background:linear-gradient(135deg,#fff5f5,#fff);border-left-color:#dc2626!important;animation:pulse-urgent 2s infinite;}
@keyframes pulse-urgent{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.15);}50%{box-shadow:0 0 0 6px rgba(220,38,38,.0);}}

/* ?? v10.0 additions ?? */
/* CA Weekly Grid */
.sales-week-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;}
.sales-week-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px;min-width:770px;}
.sales-week-card{background:#fff;border-radius:14px;overflow:hidden;border:1px solid #eef2f7;box-shadow:0 1px 3px rgba(15,23,42,.05);}
.sales-week-today{border-color:#bcd2f5!important;box-shadow:0 0 0 2px rgba(29,78,216,.14),0 4px 16px rgba(0,56,150,.12)!important;}
.sales-week-past{opacity:.98;}
.sales-week-nav{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.sales-week-nav-btn,.sales-week-nav-today{
  border:1px solid #dbe4ef;background:#fff;color:#1A5CB8;border-radius:8px;
  padding:6px 10px;cursor:pointer;font-size:12px;font-weight:600;
}
.sales-week-nav-btn{width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;}
.sales-week-nav-today{font-size:11px;color:#475569;}
.sales-week-nav-label{font-size:13px;font-weight:700;color:#334155;text-align:center;}
.sales-week-ref-hint{display:block;font-size:10px;color:#94a3b8;margin-top:6px;text-align:center;line-height:1.35;}
.sales-week-summary{
  background:linear-gradient(135deg,#f8fafc,#eff6ff);border:1px solid #e3edf9;
  border-radius:14px;padding:12px 14px;margin-bottom:12px;
}
.home-ca-card .sales-week-summary{margin-bottom:10px;padding:11px 12px;}
.sws-main{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.sws-col{min-width:0;}
.sws-col--right{text-align:right;}
.sws-lbl{font-size:9px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;}
.sws-val{font-size:20px;font-weight:800;line-height:1.1;margin-top:2px;letter-spacing:-.4px;}
.sws-val--muted{color:#64748b;font-weight:700;font-size:16px;}
.home-ca-card .sws-val{font-size:17px;}
.home-ca-card .sws-val--muted{font-size:14px;}
.sws-bar{height:7px;border-radius:999px;background:#e6edf6;overflow:hidden;margin:9px 0 7px;box-shadow:inset 0 1px 2px rgba(15,23,42,.06);}
.sws-bar-fill{height:100%;border-radius:999px;transition:width .5s cubic-bezier(.22,.61,.36,1);min-width:2px;}
.sws-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.sws-pct{font-size:14px;font-weight:800;letter-spacing:-.2px;}
.sws-ecart{font-size:12px;font-weight:700;}
.swc-locked{font-size:10px;margin-left:2px;}
.swc-actual-lbl{display:block;font-size:9px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;}
.swc-head{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;background:#f8fafc;border-bottom:0.5px solid #e2e8f0;}
.swc-today{background:linear-gradient(135deg,#003896,#1e40af)!important;border-bottom-color:#1e40af!important;}
.swc-today span{color:#fff!important;}
.swc-body{padding:10px 10px 8px;}
.swc-forecast{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:8px;padding:6px 8px;margin-bottom:8px;text-align:center;}
.swc-forecast-label{display:block;font-size:9px;font-weight:500;color:#3b82f6;text-transform:uppercase;letter-spacing:.6px;margin-bottom:2px;}
.swc-forecast-val{font-size:14px;font-weight:500;color:#1d4ed8;}
.swc-pin-ref{display:block;font-size:9px;color:#0f766e;font-weight:600;margin-top:4px;line-height:1.25;}
.swc-actual{font-size:20px;font-weight:500;text-align:center;margin-bottom:5px;line-height:1;}
.swc-bar{background:#e6edf6;border-radius:999px;height:6px;overflow:hidden;margin-bottom:3px;}
.swc-bar>div{border-radius:999px!important;}
.swc-pct{font-size:11px;font-weight:500;text-align:center;margin-bottom:4px;}
.swc-edit-btn{width:100%;padding:5px;background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;font-size:12px;margin-top:2px;}
.swc-edit-btn:active{background:#e2e8f0;}
@media(min-width:900px){.sales-week-grid{min-width:unset;}}

/* Autocontrol Hub Cards */
.actl-hub-card{background:#fff;border-radius:16px;padding:14px 16px;cursor:pointer;display:flex;flex-direction:row;align-items:center;gap:14px;box-shadow:0 2px 10px rgba(0,0,0,.07);transition:transform .13s,box-shadow .13s;user-select:none;}
.actl-hub-card:active{transform:scale(.97);box-shadow:0 1px 4px rgba(0,0,0,.05);}
.actl-hub-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.actl-hub-label{font-weight:500;font-size:15px;color:#1e293b;margin-bottom:2px;}
.actl-hub-sub{font-size:12px;color:#64748b;line-height:1.3;}

/* Autocontrol hub / frigo tabs */
.autocontrol-panel-frigo .tabs{display:flex;gap:0;margin-bottom:12px;border-radius:10px;overflow:hidden;}

/* Lot C alignment: Autocontrol / Temp / MyPie */
#view-autocontrol .card,
#view-commande-mypie .card{
  border-radius:10px;
  border:0.5px solid var(--color-border-tertiary);
  box-shadow:var(--v-shadow-soft);
  padding:11px;
}
#view-autocontrol .btn,
#view-commande-mypie .btn{
  border-radius:9px;
  padding:10px;
  font-size:12px;
}
#view-autocontrol input,
#view-autocontrol select,
#view-autocontrol textarea,
#view-commande-mypie input,
#view-commande-mypie select,
#view-commande-mypie textarea{
  border-radius:8px;
  border:0.5px solid var(--color-border-secondary);
  padding:10px 11px;
  font-size:12px;
}
#view-autocontrol .tabs,
#view-commande-mypie .tabs{
  border-radius:10px;
  margin-bottom:10px;
}
#view-autocontrol .tab,
#view-commande-mypie .tab{
  font-size:10px;
  padding:8px 4px;
}

/* Hub cards closer to mockup compact rhythm */
.actl-hub-card{
  border-radius:12px;
  border:0.5px solid var(--color-border-tertiary);
  box-shadow:var(--v-shadow-soft);
  padding:10px 12px;
  gap:10px;
}
.actl-hub-icon{
  width:42px;
  height:42px;
  border-radius:10px;
  font-size:19px;
}
.actl-hub-label{font-size:13px;}
.actl-hub-sub{font-size:10px;}

/* Fridge panel cards in autocontrol */
#autocontrol-panel-frigo .list-item{
  border-radius:10px;
  border:0.5px solid var(--color-border-tertiary);
  box-shadow:none;
}

/* Check-list Manager : pas de marges n?gatives (.mod-view .tabs) ? ?vite sauts / d?bordement horizontal */
#view-autocontrol #autocontrol-panel-actl-checklist > .tabs{
  margin-left:0!important;
  margin-right:0!important;
  margin-top:0!important;
}
/* M?me hi?rarchie que #view-todo : ces classes sont partag?es mais le panneau est dans #view-autocontrol */
#view-autocontrol #autocontrol-panel-actl-checklist .task-card{
  border-radius:10px;
  border:0.5px solid var(--color-border-tertiary);
  box-shadow:none;
  padding:10px 11px;
  margin-bottom:6px;
  box-sizing:border-box;
  min-height:52px;
  align-items:flex-start;
}
#view-autocontrol #autocontrol-panel-actl-checklist .task-card .todo-check{
  align-self:center;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-hero{
  background:linear-gradient(135deg,var(--todo),#5b21b6);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:10px;
  color:#fff;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-hero-next{
  background:linear-gradient(135deg,#475569,#334155);
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-date{
  font-size:12px;
  font-weight:500;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-count{
  font-size:10px;
  opacity:.9;
  margin:2px 0 7px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-track{
  height:5px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.3);
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-fill{
  height:100%;
  border-radius:999px;
  background:#fff;
  transition:width .4s ease;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-progress-pct{
  text-align:right;
  font-size:10px;
  margin-top:3px;
  opacity:.9;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-zone-head{
  border-radius:9px;
  padding:8px 10px;
  margin:0 0 4px;
  color:#fff;
  box-sizing:border-box;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-zone-head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-zone-name{
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  word-break:break-word;
  overflow-wrap:anywhere;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-zone-ratio{
  font-size:11px;
  font-weight:600;
  opacity:.95;
  white-space:nowrap;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-zone-track{
  height:4px;
  border-radius:3px;
  margin-top:6px;
  overflow:hidden;
  background:rgba(255,255,255,.3);
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-zone-fill{
  height:100%;
  border-radius:3px;
  background:#fff;
  transition:width .4s ease;
}
#view-autocontrol #autocontrol-panel-actl-checklist .time-chip{
  font-size:10px;
  padding:3px 8px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .todo-check{
  width:28px;
  height:28px;
  border-width:1.5px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-task-body{
  word-break:break-word;
  overflow-wrap:anywhere;
}
#view-autocontrol #autocontrol-panel-actl-checklist .task-card.nc{
  border-left-color:#dc2626!important;
  background:#fff5f5;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  flex-shrink:0;
  align-self:stretch;
  width:100%;
  margin-top:8px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-btn{
  min-width:0;
  min-height:52px;
  padding:12px 10px;
  border-radius:14px;
  border:2px solid #e2e8f0;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  line-height:1.2;
  background:#f8fafc;
  color:#334155;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-yes{
  background:#f8fafc;
  border-color:#e2e8f0;
  color:#334155;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-no{
  background:#f8fafc;
  border-color:#e2e8f0;
  color:#334155;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-yes.is-picked{
  background:#dcfce7;
  border-color:#16a34a;
  color:#15803d;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-no.is-picked{
  background:#fee2e2;
  border-color:#ef4444;
  color:#b91c1c;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-answer-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  flex-shrink:0;
  align-self:center;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-ans{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  padding:5px 10px;
  border-radius:8px;
  font-size:12px;
  font-weight:700;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-ans--yes{
  background:#dcfce7;
  color:#15803d;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-ans--no{
  background:#fee2e2;
  color:#b91c1c;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-change-btn{
  border:none;
  background:#f1f5f9;
  color:#475569;
  width:28px;
  height:28px;
  border-radius:8px;
  cursor:pointer;
  font-size:11px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .task-card.ahy-compact,
#view-todo .task-card.ahy-compact{
  padding:8px 10px;
  margin-bottom:4px;
  min-height:0;
  align-items:stretch;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-card-row,
#view-todo .ahy-card-row{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  min-width:0;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-task-body,
#view-todo .ahy-task-body{
  flex:1;
  min-width:0;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-task-title,
#view-todo .ahy-task-title{
  font-weight:600;
  font-size:13px;
  line-height:1.25;
  color:#1e293b;
}
#view-autocontrol #autocontrol-panel-actl-checklist .task-card.done .ahy-task-title,
#view-todo .task-card.done .ahy-task-title{
  color:#64748b;
  font-weight:500;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-freq,
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-urgent,
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-late,
#view-todo .ahy-freq,
#view-todo .ahy-urgent,
#view-todo .ahy-late{
  display:inline-block;
  margin-left:5px;
  padding:1px 5px;
  border-radius:6px;
  font-size:9px;
  font-weight:600;
  vertical-align:middle;
  white-space:nowrap;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-freq,
#view-todo .ahy-freq{
  background:#f1f5f9;
  color:#64748b;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-urgent,
#view-todo .ahy-urgent{
  background:#fee2e2;
  color:#dc2626;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-late,
#view-todo .ahy-late{
  background:#fef2f2;
  color:#dc2626;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-hint,
#view-todo .ahy-hint{
  margin-top:3px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-hint summary,
#view-todo .ahy-hint summary{
  font-size:10px;
  color:#64748b;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-hint summary::-webkit-details-marker,
#view-todo .ahy-hint summary::-webkit-details-marker{display:none;}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-hint summary::before,
#view-todo .ahy-hint summary::before{
  content:'? ';
  font-size:9px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-hint[open] summary::before,
#view-todo .ahy-hint[open] summary::before{content:'? ';}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-hint-body,
#view-todo .ahy-hint-body{
  font-size:10px;
  line-height:1.35;
  color:#64748b;
  margin-top:2px;
  padding-left:10px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-doc-row,
#view-todo .ahy-doc-row{
  display:flex;
  gap:6px;
  margin-top:2px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-doc-link,
#view-todo .ahy-doc-link{
  color:#0C447C;
  font-size:11px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.ahy-doc-link__lbl{font-weight:500;}
.ahy-res-zone-hub{margin-bottom:12px;}
.ahy-res-zone-hub__title{margin:0 0 6px;font-size:16px;font-weight:700;color:#0C447C;display:flex;align-items:center;gap:8px;}
.ahy-res-zone-hub__hint{margin:0 0 12px;color:#64748b;line-height:1.45;}
.ahy-res-zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;}
.ahy-res-zone-card{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff;border-left:4px solid var(--zone-color,#0C447C);}
.ahy-res-zone-card__head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.ahy-res-zone-card__ic{width:36px;height:36px;border-radius:10px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;color:var(--zone-color,#0C447C);flex-shrink:0;}
.ahy-res-zone-card__title{font-weight:700;font-size:14px;color:#1e293b;line-height:1.3;}
.ahy-res-zone-card__stats{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:#64748b;margin-bottom:10px;}
.ahy-res-zone-card__acts{display:flex;flex-direction:column;gap:6px;}
.ahy-res-zone-card__btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:12px;font-weight:600;color:#334155;cursor:pointer;margin:0;}
.ahy-res-zone-card__btn:hover{background:#f1f5f9;}
.ahy-res-zone-card__btn--arch{background:#fffbeb;border-color:#fde68a;color:#92400e;}
.ahy-res-zone-back{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.ahy-res-zone-back__link{border:none;background:transparent;color:#0C447C;font-weight:600;font-size:13px;cursor:pointer;padding:4px 0;}
.ahy-res-zone-back__link:hover{text-decoration:underline;}
.ahy-res-card{margin-bottom:12px;position:relative;overflow:hidden;}
.ahy-res-card__head{margin-bottom:10px;}
.ahy-res-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.ahy-res-tab{
  display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:10px;
  background:#fff;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;margin:0;
}
.ahy-res-tab:hover{background:#f8fafc;border-color:#cbd5e1;}
.ahy-res-tab.is-on{background:#eff6ff;border-color:#93c5fd;color:#0C447C;}
.ahy-res-card__title{margin:0 0 4px;font-size:15px;font-weight:700;color:#0C447C;}
.ahy-res-card__hint{margin:0;color:#64748b;line-height:1.4;}
.ahy-res-nav{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.ahy-res-back{
  flex-shrink:0;width:36px;height:36px;border:1px solid #e2e8f0;border-radius:10px;
  background:#fff;color:#0C447C;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
}
.ahy-res-back:hover{background:#f1f5f9;border-color:#cbd5e1;}
.ahy-res-crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-width:0;
  padding:8px 10px;background:#f1f5f9;border-radius:10px;font-size:12px;
  position:static!important;height:auto!important;width:auto!important;
  box-shadow:none!important;border:none!important;z-index:auto!important;
}
.ahy-res-crumb__btn{border:none;background:transparent;color:#0C447C;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:6px;}
.ahy-res-crumb__btn:hover{background:#e2e8f0;}
.ahy-res-crumb__cur{color:#334155;font-weight:700;}
.ahy-res-crumb__sep{font-size:9px;color:#94a3b8;}
.ahy-res-add{
  margin-bottom:12px;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;
}
.ahy-res-add__row{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;}
.ahy-res-add__folder{
  display:flex;flex:1 1 220px;min-width:0;gap:6px;align-items:center;
}
.ahy-res-add__folder .ahy-res-url-in{flex:1;min-width:0;}
.ahy-res-add__btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;
  font-size:13px;font-weight:600;color:#334155;cursor:pointer;white-space:nowrap;flex-shrink:0;
  margin:0;
}
.ahy-res-add__btn:hover{background:#f1f5f9;border-color:#cbd5e1;}
.ahy-res-add__btn.is-on{background:#eff6ff;border-color:#93c5fd;color:#0C447C;}
.ahy-res-add__btn--folder{background:#fffbeb;border-color:#fde68a;color:#92400e;}
.ahy-res-add__btn--folder:hover{background:#fef3c7;}
.ahy-res-add__btn--file{background:#f0fdf4;border-color:#bbf7d0;color:#166534;}
.ahy-res-add__btn--file:hover{background:#dcfce7;}
.ahy-res-add__btn--link{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6;}
.ahy-res-add__btn--link:hover{background:#ede9fe;}
.ahy-res-add__btn--submit{background:#0C447C;border-color:#0C447C;color:#fff;}
.ahy-res-add__btn--submit:hover{background:#0a3a68;}
.ahy-res-link-panel{margin-top:8px;padding-top:8px;border-top:1px dashed #e2e8f0;}
.ahy-res-link-panel.hidden{display:none!important;}
.ahy-res-link-panel__fields{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.ahy-res-link-panel__fields .ahy-res-url-in{flex:1 1 140px;}
.ahy-res-url-in{min-width:0;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff;}
.ahy-res-url-in:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 2px rgba(147,197,253,.35);}
.ahy-res-drop{
  position:absolute;inset:8px;border:3px dashed #0C447C;border-radius:12px;
  background:rgba(236,242,255,.94);z-index:20;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;color:#0C447C;font-weight:600;pointer-events:none;
}
.ahy-res-drop.hidden{display:none!important;}
.ahy-res-drop i{font-size:32px;}
.ahy-res-list-hdr{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin:0 0 8px;padding-top:10px;border-top:1px solid #f1f5f9;
  font-size:12px;color:#64748b;font-weight:600;
}
.ahy-res-list-hdr__path{color:#94a3b8;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ahy-res-list{display:flex;flex-direction:column;gap:6px;}
.ahy-res-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
.ahy-res-item--folder{background:#fffbeb;border-color:#fde68a;}
.ahy-res-folder-btn{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:none;background:transparent;cursor:pointer;text-align:left;padding:0;color:#92400e;}
.ahy-res-folder-btn i{font-size:18px;color:#d97706;}
.ahy-res-folder-btn__name{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ahy-res-folder-btn__meta{color:#b45309;margin-left:auto;flex-shrink:0;font-size:11px;}
.ahy-res-item__link{flex:1;min-width:0;display:flex;align-items:center;gap:8px;color:#0C447C;font-size:13px;font-weight:500;text-decoration:none;overflow:hidden;}
.ahy-res-item__link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ahy-res-item__date{font-size:11px;color:#94a3b8;font-weight:500;margin-left:auto;flex-shrink:0;}
.ahy-res-item--archive{background:#f8fafc;border-color:#e2e8f0;}
.ahy-res-item--archive .ahy-res-item__link{color:#334155;}
.ahy-res-item__acts{display:flex;gap:4px;flex-shrink:0;}
.ahy-res-item--edit{align-items:stretch;}
.ahy-res-edit-form{display:flex;flex-direction:column;gap:8px;width:100%;}
.ahy-res-edit-actions{display:flex;gap:8px;flex-wrap:wrap;}
.ahy-res-empty{
  text-align:center;color:#94a3b8;padding:24px 12px 8px;border-top:1px solid #f1f5f9;margin-top:4px;
}
.ahy-res-empty i{font-size:28px;display:block;margin-bottom:8px;color:#cbd5e1;}
.ahy-res-empty p{margin:0 0 4px;font-size:14px;color:#64748b;font-weight:500;}
@media (max-width:520px){
  .ahy-res-add__btn span{display:none;}
  .ahy-res-add__btn{padding:8px 10px;}
  .ahy-res-add__folder{flex:1 1 100%;}
}
.ahy-res-links{display:flex;flex-direction:column;gap:8px;}
.ahy-res-link-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
.ahy-res-link-row__task{flex:1 1 200px;min-width:0;}
.ahy-res-link-row__task strong{display:block;font-size:13px;}
.ahy-res-link-row__pick{flex:0 1 220px;min-width:160px;}
.ahy-res-link__sel{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;}
.ahy-task-sub{color:#64748b;margin-top:2px;font-size:12px;line-height:1.35;}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-log-line,
#view-todo .ahy-log-line{
  font-size:10px;
  margin-top:3px;
  line-height:1.3;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  width:100%;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-yn-row .ahy-yn-btn{
  min-width:0;
  min-height:52px;
  padding:12px 10px;
  font-size:15px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .time-chip,
#view-todo .time-chip{
  flex-shrink:0;
  align-self:center;
}
#view-todo .ahy-card-row .todo-check{
  flex-shrink:0;
  align-self:center;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-done-group,
#view-todo .ahy-done-group{
  margin:4px 0 6px;
  border:0.5px solid var(--color-border-tertiary);
  border-radius:9px;
  background:#f8fafc;
  overflow:hidden;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-done-group summary,
#view-todo .ahy-done-group summary{
  padding:8px 10px;
  font-size:12px;
  font-weight:600;
  color:#475569;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-done-group summary::-webkit-details-marker,
#view-todo .ahy-done-group summary::-webkit-details-marker{display:none;}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-done-count,
#view-todo .ahy-done-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  margin-left:4px;
  border-radius:999px;
  background:#dcfce7;
  color:#15803d;
  font-size:10px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-done-list,
#view-todo .ahy-done-list{
  padding:0 6px 6px;
}
#view-autocontrol #autocontrol-panel-actl-checklist .ahy-done-list .task-card,
#view-todo .ahy-done-list .task-card{
  background:#fff;
  opacity:1;
}

/* Hub tuiles (style Associate Home) */
#view-autocontrol .actl-tile-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:4px;
}
#view-autocontrol .actl-tile{
  display:block;
  width:100%;
  border:none;
  border-radius:12px;
  padding:0;
  overflow:hidden;
  background:#fff;
  box-shadow:0 2px 10px rgba(15,23,42,.08);
  cursor:pointer;
  text-align:center;
}
#view-autocontrol .actl-tile:active{transform:scale(.97);}
#view-autocontrol .actl-tile__icon{
  position:relative;
  padding:20px 8px 16px;
  font-size:30px;
  background:#f8fafc;
}
#view-autocontrol .actl-tile__badge{
  position:absolute;
  top:8px;
  right:8px;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:6px;
  background:#22c55e;
  color:#fff;
  font-size:11px;
  font-weight:700;
  line-height:22px;
}
#view-autocontrol .actl-tile__foot{
  padding:8px 6px;
  font-size:10px;
  font-weight:700;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.03em;
  line-height:1.25;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
}
#view-autocontrol .actl-hub-info{padding:12px 14px;}
.actl-docs-crumb{cursor:pointer;color:#7c3aed;}
.actl-docs-empty{text-align:center;color:#94a3b8;padding:30px 16px;}
.actl-docs-empty i{font-size:32px;display:block;margin-bottom:8px;color:#c4b5fd;}
.actl-docs-card{padding:8px!important;}
.actl-docs-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;background:#f8fafc;border-radius:10px;margin-bottom:6px;}
.actl-docs-row--folder{background:#faf5ff;border:1px solid #e9d5ff;}
.actl-docs-row-main{display:flex;align-items:center;gap:8px;flex:1;background:none;border:none;text-align:left;cursor:pointer;color:#5b21b6;font-weight:500;font-size:13px;min-width:0;}
.actl-docs-row-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.actl-docs-row-main i.fa-folder{color:#a855f7;}
.actl-docs-row-info{flex:1;min-width:0;}
.actl-docs-row-title{font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1e293b;}
.actl-docs-row-title i{margin-right:6px;color:#7c3aed;}
.actl-docs-row-cat{font-size:11px;color:#94a3b8;margin-top:2px;}
.actl-docs-row-actions{display:flex;gap:6px;flex-shrink:0;align-items:center;}
.actl-docs-view{background:#7c3aed;color:#fff;border:none;border-radius:8px;padding:7px 12px;font-weight:500;font-size:12px;cursor:pointer;white-space:nowrap;}
.actl-docs-view--alt{background:#003896;}
.actl-docs-del{background:#ef4444;color:#fff;border:none;border-radius:8px;padding:6px 9px;font-size:11px;cursor:pointer;}
.actl-docs-icon-btn{background:#f1f5f9;color:#475569;border:none;border-radius:8px;padding:6px 9px;font-size:11px;cursor:pointer;}
.actl-docs-icon-btn:hover{background:#e2e8f0;}
.actl-docs-ctx{position:fixed;z-index:86000;min-width:200px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 40px rgba(15,23,42,.18);padding:6px;overflow:hidden;}
.actl-docs-ctx.hidden{display:none!important;}
.actl-docs-ctx-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:none;text-align:left;font-size:13px;color:#1e293b;cursor:pointer;border-radius:8px;}
.actl-docs-ctx-item:hover:not(:disabled){background:#f5f3ff;color:#5b21b6;}
.actl-docs-ctx-item:disabled{opacity:.55;cursor:default;}
.actl-docs-ctx-item--danger{color:#dc2626;}
.actl-docs-ctx-item--danger:hover:not(:disabled){background:#fef2f2;color:#b91c1c;}
.actl-docs-ctx-item i{width:16px;text-align:center;color:#7c3aed;}
.actl-docs-ctx-item--danger i{color:#ef4444;}
.actl-docs-drop{position:absolute;inset:12px;border:3px dashed #a78bfa;border-radius:16px;background:rgba(245,243,255,.92);z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#5b21b6;font-weight:600;pointer-events:none;}
.actl-docs-drop.hidden{display:none!important;}
.actl-docs-drop i{font-size:40px;}
#autocontrol-panel-documentation{position:relative;}
.actl-docs-preview{position:fixed;inset:0;background:rgba(15,23,42,.72);z-index:85000;display:flex;align-items:center;justify-content:center;padding:12px;}
.actl-docs-preview.hidden{display:none!important;}
.actl-docs-preview-card{background:#fff;border-radius:16px;width:100%;max-width:920px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.25);}
.actl-docs-preview-hdr{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid #e2e8f0;}
.actl-docs-preview-hdr-title{font-weight:600;font-size:15px;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.actl-docs-preview-body{flex:1;min-height:0;overflow:auto;background:#f1f5f9;padding:8px;display:flex;align-items:center;justify-content:center;}
.actl-docs-preview-frame{width:100%;height:min(78vh,720px);border:0;border-radius:8px;background:#fff;}
.actl-docs-preview-img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:8px;}
.actl-docs-preview-fallback{text-align:center;padding:32px 20px;color:#64748b;}
.actl-docs-preview-fallback i{font-size:40px;margin-bottom:12px;color:#94a3b8;}

/* Assistant contr?le ? 1 question ? la fois */
#view-autocontrol .ahy-wizard-top{
  background:linear-gradient(135deg,var(--todo),#5b21b6);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:10px;
  color:#fff;
}
#view-autocontrol .ahy-wizard-top-date{font-size:12px;font-weight:600;}
#view-autocontrol .ahy-wizard-top-count{font-size:11px;opacity:.92;margin-top:2px;}
#view-autocontrol .ahy-wizard-top .todo-progress-track{
  height:5px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.35);
}
#view-autocontrol .ahy-wizard-top .todo-progress-fill{height:100%;border-radius:999px;background:#fff;}
#view-autocontrol .ahy-wizard-stepbar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;
}
#view-autocontrol .ahy-wizard-step-label{font-size:12px;font-weight:600;color:#334155;}
#view-autocontrol .ahy-wizard-list-btn{
  border:none;background:#f1f5f9;color:#475569;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600;cursor:pointer;
}
#view-autocontrol .ahy-list-mode-bar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;
  font-size:12px;font-weight:600;color:#475569;
}
#view-autocontrol .ahy-wizard-dots{
  display:flex;flex-wrap:wrap;gap:5px;justify-content:center;margin-bottom:10px;
}
#view-autocontrol .ahy-wizard-dot{
  width:9px;height:9px;border-radius:999px;border:none;padding:0;background:#cbd5e1;cursor:pointer;
}
#view-autocontrol .ahy-wizard-dot.is-active{background:#0C447C;transform:scale(1.15);}
#view-autocontrol .ahy-wizard-dot.is-done{background:#86efac;}
#view-autocontrol .ahy-wizard-card,
#view-autocontrol .ahy-stack-card,
#view-reception #reception-actl .ahy-wizard-card,
#view-reception #reception-actl .ahy-stack-card{
  position:relative;
  background:#fff !important;
  border-radius:14px !important;
  border:1px solid #e8edf3 !important;
  border-left:1px solid #e8edf3 !important;
  padding:10px 12px 12px !important;
  margin-bottom:8px !important;
  box-shadow:0 2px 10px rgba(15,23,42,.05) !important;
}
#view-autocontrol .ahy-wizard-card.overdue,
#view-autocontrol .ahy-stack-card.overdue,
#view-reception #reception-actl .ahy-wizard-card.overdue,
#view-reception #reception-actl .ahy-stack-card.overdue{
  background:#fff !important;
  box-shadow:0 2px 10px rgba(220,38,38,.08) !important;
  border-color:#fecaca !important;
}
#view-autocontrol .ahy-wizard-card.done,
#view-reception #reception-actl .ahy-wizard-card.done{
  border-color:#bbf7d0 !important;
}
#view-autocontrol .ahy-wizard-card.nc,
#view-reception #reception-actl .ahy-wizard-card.nc{
  border-color:#fecaca !important;
  background:#fffafa !important;
}
.ahy-q-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.ahy-q-card__title,
#view-autocontrol .ahy-wizard-name,
#view-reception #reception-actl .ahy-wizard-name{
  font-size:14px !important;
  font-weight:700 !important;
  color:#0f172a !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  line-height:1.3 !important;
  margin:0 !important;
  flex:1;
  min-width:0;
}
.ahy-q-status{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  margin-top:1px;
}
.ahy-q-status--ok{background:#dcfce7;color:#15803d;}
.ahy-q-status--todo{background:#e0f2fe;color:#0369a1;}
.ahy-q-status--late{background:#ffedd5;color:#c2410c;}
.ahy-q-status--nc{background:#fee2e2;color:#b91c1c;}
#view-autocontrol .ahy-wizard-meta,
#view-reception #reception-actl .ahy-wizard-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin:0;
  flex:1;
  min-width:0;
}
#view-autocontrol .ahy-wizard-meta--below,
#view-reception #reception-actl .ahy-wizard-meta--below{
  flex:none;
  width:100%;
  margin:0 0 6px;
}
#view-autocontrol .ahy-wizard-yn,
#view-reception #reception-actl .ahy-wizard-yn{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:8px !important;
  margin-top:2px;
}
#view-autocontrol .ahy-wizard-yes,
#view-autocontrol .ahy-wizard-no,
#view-reception #reception-actl .ahy-wizard-yes,
#view-reception #reception-actl .ahy-wizard-no{
  min-height:46px !important;
  padding:10px 10px !important;
  border-radius:999px !important;
  border:1.5px solid #e2e8f0 !important;
  font-size:14px !important;
  font-weight:700 !important;
  background:#f8fafc !important;
  color:#334155 !important;
}
#view-autocontrol .ahy-wizard-yes.is-picked,
#view-reception #reception-actl .ahy-wizard-yes.is-picked{
  background:#dcfce7 !important;
  border-color:#16a34a !important;
  color:#15803d !important;
}
#view-autocontrol .ahy-wizard-no.is-picked,
#view-reception #reception-actl .ahy-wizard-no.is-picked{
  background:#fee2e2 !important;
  border-color:#ef4444 !important;
  color:#b91c1c !important;
}
#view-autocontrol .ahy-stack-list,
#view-reception #reception-actl .ahy-stack-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0 0 8px;
  background:transparent;
}
#view-autocontrol .ahy-wizard-top{
  background:#fff !important;
  color:#0f172a !important;
  border-radius:18px !important;
  border:1px solid #e8edf3 !important;
  box-shadow:0 4px 18px rgba(15,23,42,.05) !important;
  padding:14px 16px !important;
}
#view-autocontrol .ahy-wizard-top-date{font-size:13px;font-weight:700;color:#0f172a;}
#view-autocontrol .ahy-wizard-top-count{font-size:12px;opacity:1;color:#64748b;margin-top:2px;}
#view-autocontrol .ahy-wizard-top .todo-progress-track{
  height:6px;border-radius:999px;overflow:hidden;background:#e2e8f0;
}
#view-autocontrol .ahy-wizard-top .todo-progress-fill{background:#003896 !important;}
#view-autocontrol .ahy-wizard-nav .btn{
  border-radius:999px !important;
  min-height:46px;
  font-weight:700;
}
#view-autocontrol #autocontrol-panel-actl-checklist .task-card,
#view-todo .task-card{
  border-radius:16px !important;
  border:1px solid #e8edf3 !important;
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
  padding:14px 14px !important;
  margin-bottom:10px !important;
  background:#fff !important;
}
#view-autocontrol .ahy-wizard-yes.is-picked,
#view-autocontrol .ahy-wizard-no.is-picked,
#view-autocontrol .ahy-yn-btn.is-picked{
  box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor;
  transform:scale(1.01);
}
#view-autocontrol .ahy-wizard-yes.is-picked{background:#dcfce7;border-color:#16a34a;color:#15803d;}
#view-autocontrol .ahy-wizard-no.is-picked{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
#view-autocontrol .ahy-yn-yes.is-picked{background:#dcfce7;border-color:#16a34a;color:#15803d;}
#view-autocontrol .ahy-yn-no.is-picked{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
#view-autocontrol .ahy-pend-nc{margin-top:12px;display:flex;flex-direction:column;gap:4px;}
#view-autocontrol .ahy-pend-criteria{
  border:1px solid #fecaca;border-radius:10px;background:#fff7f7;padding:8px 10px;margin:0 0 6px;
}
#view-autocontrol .ahy-pend-criteria legend{font-size:12px;font-weight:700;color:#991b1b;padding:0 4px;}
#view-autocontrol .ahy-pend-criteria label{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:#334155;padding:5px 0;cursor:pointer;}
#view-autocontrol .ahy-pend-criteria input{width:auto;margin:2px 0 0;accent-color:#dc2626;flex-shrink:0;}
#view-autocontrol .ahy-pend-label{font-weight:600;color:#475569;margin-top:4px;}
#view-autocontrol .ahy-pend-field{
  width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:13px;
  font-family:inherit;resize:vertical;min-height:52px;
}
#view-autocontrol .ahy-pend-sign{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
#view-autocontrol .ahy-sign-btn{flex:1;min-width:160px;margin:0;background:#0C447C;color:#fff;}
#view-autocontrol .ahy-pend-cancel{margin:0;}
#view-autocontrol .ahy-pend-hint{color:#64748b;margin:8px 0 0;text-align:center;}
.modal-card--wide{max-width:min(920px,96vw);max-height:90vh;overflow:auto;}
.modal-card--xl{max-width:min(1180px,98vw);max-height:92vh;overflow:hidden;display:flex;flex-direction:column;padding:12px 14px;}
.modal-card--fullscreen{max-width:100vw;width:100vw;max-height:100vh;height:100dvh;border-radius:0;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden;}
.ahy-fl-bio-fs.modal-bc{align-items:stretch;justify-content:stretch;padding:0;}
.ahy-fl-bio-fs .modal-card--fullscreen{box-shadow:none;}
.ahy-fl-excel-modal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0;}
.ahy-fl-excel-modal__title{margin:0;font-size:15px;color:#0C447C;flex:1;min-width:0;}
.ahy-fl-excel-modal__close{border:none;background:#f1f5f9;color:#64748b;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px;flex-shrink:0;}
.ahy-fl-excel-modal__close:hover{background:#e2e8f0;color:#0f172a;}
.ahy-fl-excel-modal__host{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:0;}
.ahy-fl-excel-modal__foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;border-top:1px solid #e2e8f0;background:#fff;flex-shrink:0;}
.ahy-fl-excel-modal__save{margin:0!important;background:#0C447C!important;color:#fff!important;padding:8px 14px!important;font-size:13px!important;}
.ahy-fl-excel-modal__foot .btn{margin:0!important;padding:8px 14px!important;font-size:13px!important;}
.ahy-fl-excel-modal__foot .btn.secondary{flex:0 0 auto;}
#modal-actlhy-fl-bio .ahy-fl-excel-modal__host > .ahy-fl-excel--wb{flex:1;min-height:0;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb{border:none;border-radius:0;box-shadow:none;min-height:0;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__ribbon,
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__banner{display:none;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__toolbar{padding:4px 8px;gap:6px 10px;flex-shrink:0;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__viewport{flex:1;min-height:0;padding:0;background:#fff;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__grid-wrap{flex:1;min-height:0;display:flex;flex-direction:column;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__scroll{flex:1;min-height:0;max-height:none;order:1;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__scroll-hint{order:2;flex-shrink:0;padding:2px 8px;font-size:10px;border-top:1px solid #e8e8e8;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add-panel{order:3;flex-shrink:0;border-top:1px solid #e2e8f0;background:#f8fafc;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add-panel summary{padding:6px 10px;font-size:12px;font-weight:700;color:#334155;cursor:pointer;list-style:none;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add-panel summary::-webkit-details-marker{display:none;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add-panel[open] summary{border-bottom:1px solid #e2e8f0;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add{padding:6px 8px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add-in{padding:6px 10px;font-size:13px;min-height:32px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__add-btn{padding:6px 12px!important;font-size:12px!important;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__suggest{max-height:72px;margin-top:4px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__tabs{flex-shrink:0;padding:2px 6px 0;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__row--empty .ahy-fl-excel__empty{min-height:min(50vh,420px);display:flex;align-items:center;justify-content:center;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__grid{min-height:auto;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__grid--recv .ahy-fl-excel__letter{min-width:72px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__grid tbody .ahy-fl-excel__row:not(.ahy-fl-excel__row--empty) .ahy-fl-excel__cell{height:48px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__grid--recv .ahy-fl-excel__cell--prod{padding:6px 10px!important;font-size:13px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__in{display:block;width:100%;height:100%;min-height:48px;font-size:15px;padding:10px 12px;line-height:1.2;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__cell--date .ahy-fl-excel__in--date{max-width:none;min-height:32px;height:32px;font-size:12px;padding:4px 6px;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__cell--act{width:28px;min-width:28px;padding:2px!important;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__del{width:22px;height:22px;min-width:22px;border-radius:4px;background:#f1f5f9;color:#64748b;font-size:16px;font-weight:700;line-height:1;font-family:inherit;}
#modal-actlhy-fl-bio .ahy-fl-excel--wb .ahy-fl-excel__del:hover{background:#fee2e2;color:#b91c1c;}
#modal-actlhy-fl-bio .ahy-fl-excel{flex:1;min-height:0;display:flex;flex-direction:column;}
#modal-actlhy-fl-bio .ahy-fl-excel__viewport{flex:1;min-height:0;display:flex;flex-direction:column;}
#modal-actlhy-fl-bio .ahy-fl-excel__grid-wrap{flex:1;min-height:0;display:flex;flex-direction:column;}
#modal-actlhy-fl-bio .ahy-fl-excel__scroll{flex:1;min-height:0;max-height:none;}
#modal-actlhy-fl-bio .ahy-fl-excel__help{flex-shrink:0;margin-bottom:4px;}
#modal-actlhy-fl-bio .ahy-fl-excel__tabs{flex-shrink:0;}
.ahy-fl-excel-modal__title{margin:0;font-size:15px;color:#0C447C;}

/* ?? Simulation Excel ? fiches BIO ?? */
.ahy-fl-excel{border:1px solid #d4d4d4;border-radius:4px;background:#fff;font-family:Calibri,'Segoe UI',Arial,sans-serif;font-size:12px;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.ahy-fl-excel__ribbon{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#217346 0%,#1e6b41 100%);color:#fff;padding:6px 12px;font-size:12px;}
.ahy-fl-excel__brand{font-weight:700;letter-spacing:.02em;}
.ahy-fl-excel__save{opacity:.85;font-size:11px;}
.ahy-fl-excel__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 10px;background:#f3f3f3;border-bottom:1px solid #d4d4d4;}
.ahy-fl-excel__meta-label{font-size:11px;color:#666;font-weight:600;}
.ahy-fl-excel__meta-val{font-size:12px;font-weight:700;color:#333;background:#fff;border:1px solid #d4d4d4;padding:3px 8px;border-radius:2px;}
.ahy-fl-excel__meta-chip{font-size:11px;color:#217346;background:#e8f5ee;border:1px solid #b8dfc8;padding:3px 8px;border-radius:2px;}
.ahy-fl-excel__meta-chip--auto{color:#166534;}
.ahy-fl-excel__neant{margin-left:auto;font-size:11px;display:flex;align-items:center;gap:6px;}
.ahy-fl-excel__banner{padding:10px 12px;background:#fff;border-bottom:1px solid #e0e0e0;text-align:center;line-height:1.35;}
.ahy-fl-excel__banner strong{display:block;font-size:13px;color:#333;}
.ahy-fl-excel__banner span{font-size:11px;color:#666;}
.ahy-fl-excel__jump{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e8e8e8;}
.ahy-fl-excel__jump label{font-size:11px;color:#555;font-weight:600;margin:0;}
.ahy-fl-excel__jump-in{flex:1 1 160px;max-width:280px;border:1px solid #d4d4d4;border-radius:2px;padding:5px 8px;font-size:12px;}
.ahy-fl-excel__jump-btn{padding:5px 12px!important;font-size:11px!important;}
.ahy-fl-excel__viewport{background:#e8e8e8;padding:0 0 4px;}
.ahy-fl-excel__scroll-hint{padding:6px 10px;font-size:11px;color:#64748b;background:#fafafa;border-bottom:1px solid #e8e8e8;}
.ahy-fl-excel__scroll{overflow:auto;max-height:min(62vh,560px);background:#fff;-webkit-overflow-scrolling:touch;}
.ahy-fl-excel__grid{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;}
.ahy-fl-excel__grid th,.ahy-fl-excel__grid td{border:1px solid #d4d4d4;padding:0;vertical-align:middle;}
.ahy-fl-excel__thead{position:sticky;top:0;z-index:3;}
.ahy-fl-excel__thead th{box-shadow:0 1px 0 #d4d4d4;}
.ahy-fl-excel__corner{width:32px;min-width:32px;background:#f3f3f3;}
.ahy-fl-excel__letters th{background:#f3f3f3;color:#666;font-weight:600;font-size:10px;text-align:center;padding:2px 4px;}
.ahy-fl-excel__letter{min-width:52px;}
.ahy-fl-excel__cell{padding:0!important;min-height:36px;}
.ahy-fl-excel__cell--rn{width:32px;min-width:32px;background:#f9f9f9;color:#888;text-align:center;font-size:11px;font-weight:600;}
.ahy-fl-excel__cell--head{background:#f3f3f3;color:#333;font-weight:700;text-align:center;padding:8px 6px!important;font-size:11px;line-height:1.3;}
.ahy-fl-excel__cell--multiline small{font-weight:500;color:#666;}
.ahy-fl-excel__cell--sticky{position:sticky;left:32px;z-index:2;background:#fff;box-shadow:2px 0 4px rgba(0,0,0,.05);}
.ahy-fl-excel__grid--recv .ahy-fl-excel__cell--prod{width:220px;min-width:180px;font-weight:600;color:#333;padding:8px 10px!important;font-size:12px;line-height:1.25;}
.ahy-fl-excel__grid--stock .ahy-fl-excel__cell--prod{width:220px;min-width:180px;padding:8px 10px!important;}
.ahy-fl-excel__grid--bilan .ahy-fl-excel__cell--prod{width:200px;min-width:160px;font-weight:600;padding:8px 10px!important;}
.ahy-fl-excel__cell--date{background:#fafafa;text-align:center;padding:6px 4px!important;min-width:64px;}
.ahy-fl-excel__cell--date .ahy-fl-excel__sub{display:block;font-size:9px;color:#888;margin-bottom:3px;}
.ahy-fl-excel__cell--num{text-align:right;min-width:56px;}
.ahy-fl-excel__cell--total{background:#fff9e6;font-weight:700;color:#333;text-align:right;padding:8px 10px!important;font-size:12px;}
.ahy-fl-excel__cell--total-h{background:#fff3cd!important;}
.ahy-fl-excel__cell--formula{background:#e8f5ee;color:#166534;font-weight:700;text-align:right;padding:8px 10px!important;}
.ahy-fl-excel__cell--conf{text-align:center;padding:6px!important;}
.ahy-fl-excel__cell--act{width:40px;min-width:40px;text-align:center;padding:4px!important;}
.ahy-fl-excel__cell--act-h{width:40px;min-width:40px;}
.ahy-fl-excel__cell--banner{background:#f9f9f9;font-size:10px;color:#666;text-align:center;padding:4px!important;}
.ahy-fl-excel__in{width:100%;border:none;background:transparent;padding:8px 10px;font-size:13px;font-family:inherit;box-sizing:border-box;min-height:36px;}
.ahy-fl-excel__in--qty{text-align:right;font-variant-numeric:tabular-nums;}
.ahy-fl-excel__in:focus{outline:2px solid #217346;outline-offset:-2px;background:#fff;}
.ahy-fl-excel__in--date{text-align:center;max-width:80px;margin:0 auto;display:block;font-size:12px;}
.ahy-fl-excel__in--toolbar{max-width:88px;border:1px solid #d4d4d4!important;background:#fff!important;border-radius:3px;padding:6px 8px!important;min-height:32px;}
.ahy-fl-excel__in--week{min-width:120px;border:1px solid #d4d4d4!important;background:#fff!important;border-radius:2px;}
.ahy-fl-excel__note{width:calc(100% - 20px);border:1px solid #d4d4d4;border-radius:4px;padding:10px;font-size:13px;margin:10px;}
.ahy-fl-excel__row:nth-child(even):not(.ahy-fl-excel__row--empty) .ahy-fl-excel__cell{background:#fcfcfc;}
.ahy-fl-excel__row:nth-child(even):not(.ahy-fl-excel__row--empty) .ahy-fl-excel__cell--prod{background:#f8fafc;}
.ahy-fl-excel__row--filled .ahy-fl-excel__cell--prod{background:#f0fdf4!important;}
.ahy-fl-excel__row--empty .ahy-fl-excel__empty{padding:28px 16px;text-align:center;color:#64748b;font-size:13px;line-height:1.45;}
.ahy-fl-excel__row--empty .ahy-fl-excel__empty i{color:#217346;margin-right:6px;}
.ahy-fl-excel__del{width:30px;height:30px;border:none;border-radius:6px;background:#fee2e2;color:#b91c1c;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;padding:0;}
.ahy-fl-excel__del:hover{background:#fecaca;}
.ahy-fl-excel__add{padding:10px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;}
.ahy-fl-excel__add-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;}
.ahy-fl-excel__add-row label{flex:0 0 auto;margin:0;font-size:12px;font-weight:700;color:#334155;white-space:nowrap;}
.ahy-fl-excel__add-in{flex:1 1 200px;min-width:160px;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:14px;background:#fff;}
.ahy-fl-excel__add-in:focus{outline:2px solid #217346;border-color:#217346;}
.ahy-fl-excel__add-btn{flex:0 0 auto;margin:0!important;padding:10px 16px!important;font-size:13px!important;background:#217346!important;color:#fff!important;border:none!important;border-radius:8px!important;}
.ahy-fl-excel__add-btn:hover{background:#1a5c38!important;}
.ahy-fl-excel__add-hint{margin:6px 0 0;color:#64748b;}
.ahy-fl-excel__suggest{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;max-height:120px;overflow-y:auto;}
.ahy-fl-excel__chip{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;margin:0;font-family:inherit;}
.ahy-fl-excel__chip:hover{background:#dcfce7;}
.ahy-fl-excel__chip--custom{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;}
.ahy-fl-excel__chip--custom:hover{background:#dbeafe;}
.ahy-fl-excel__suggest-empty{color:#94a3b8;margin:4px 0 0;}
.ahy-fl-excel__row--nc .ahy-fl-excel__cell--total{background:#fecaca;color:#991b1b;}
.ahy-fl-excel__row--highlight{animation:ahy-fl-excel-flash 2s ease;}
@keyframes ahy-fl-excel-flash{0%,100%{background:transparent;}15%,40%{background:#fef08a;}}
.ahy-fl-excel__tabs{display:flex;flex-wrap:wrap;gap:2px;padding:4px 8px 0;background:#f3f3f3;border-top:1px solid #d4d4d4;overflow-x:auto;}
.ahy-fl-excel__tab{display:inline-flex;align-items:center;gap:5px;padding:5px 14px 6px;background:#e8e8e8;border:1px solid #d4d4d4;border-bottom:none;border-radius:4px 4px 0 0;font-size:11px;font-weight:600;color:#555;cursor:pointer;font-family:inherit;}
.ahy-fl-excel__tab:hover{background:#fff;}
.ahy-fl-excel__tab.is-active{background:#fff;color:#217346;margin-bottom:-1px;border-top:2px solid #217346;}
.ahy-fl-excel__tab.is-done:not(.is-active){border-top:2px solid #16a34a;color:#166534;}
.ahy-fl-excel__tab.is-pending:not(.is-active){border-top:2px solid #d97706;color:#b45309;}
.ahy-fl-wb-body{padding:12px 14px 14px;}
.ahy-fl-wb-body--compact{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.ahy-fl-wb-body--compact .btn{flex:0 1 auto;}
.ahy-fl-wb-hint{margin:0 0 10px;color:#64748b;}
.ahy-fl-wb-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.ahy-fl-wb-pill{font-size:10px;font-weight:700;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;}
.ahy-fl-wb-pill.is-done{background:#dcfce7;color:#166534;border-color:#86efac;}
.ahy-fl-wb-pill.is-pending{background:#fffbeb;color:#b45309;border-color:#fde68a;}
.ahy-fl-wb-pill.is-catchup{background:#fef2f2;color:#b91c1c;border-color:#fecaca;}
.ahy-fl-wb-alert{margin:0 0 10px;color:#b45309;}
.ahy-fl-wb-open{width:100%!important;padding:12px!important;font-size:14px!important;}
.ahy-fl-wb-pdf{width:100%!important;margin-top:6px!important;padding:10px!important;font-size:13px!important;}
.ahy-fl-bio-hist{margin-top:14px;border-left:4px solid #0C447C;}
.ahy-fl-bio-hist__title{margin:0 0 6px;font-size:15px;color:#0C447C;display:flex;align-items:center;gap:8px;}
.ahy-fl-bio-hist__hint{margin:0 0 12px;color:#64748b;}
.ahy-fl-bio-hist__empty{margin:0;color:#94a3b8;}
.ahy-fl-bio-hist__list{display:flex;flex-direction:column;gap:8px;}
.ahy-fl-bio-hist__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;}
.ahy-fl-bio-hist__main{flex:1;min-width:180px;}
.ahy-fl-bio-hist__meta{color:#64748b;margin-top:3px;}
.ahy-fl-bio-hist__acts{display:flex;flex-wrap:wrap;gap:6px;}
.ahy-fl-bio-hist__pdf,.ahy-fl-bio-hist__edit{margin:0!important;padding:8px 12px!important;font-size:12px!important;}
.ahy-fl-bio-hist__tag{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle;}
.ahy-fl-bio-hist__tag--closed{background:#dcfce7;color:#166534;}
.ahy-fl-bio-hist__tag--open{background:#fffbeb;color:#b45309;}
.ahy-fl-wb-close{width:100%!important;margin-top:8px!important;padding:12px!important;font-size:14px!important;background:#b45309!important;color:#fff!important;border:none!important;border-radius:10px!important;}
.ahy-fl-wb-close:hover{background:#92400e!important;}
.ahy-fl-wb-closed-tag{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#166534;background:#dcfce7;border:1px solid #86efac;border-radius:999px;padding:2px 8px;margin-left:4px;}
.ahy-fl-bio-close-month{background:#b45309!important;color:#fff!important;border:none!important;margin-top:0!important;}
.ahy-fl-bio-close-month:hover{background:#92400e!important;}
.ahy-fl-excel__help{margin:0 0 8px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:6px 10px;}
.ahy-fl-excel__help summary{cursor:pointer;font-size:12px;font-weight:650;color:#334155;}
.ahy-fl-excel__help ul{margin:6px 0 0;padding-left:18px;color:#475569;}
.ahy-fl-tare-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.ahy-fl-tare-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#f0fdf4;color:#166534;font-size:12px;font-weight:600;}
.ahy-fl-tare-proto{margin-bottom:12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px;}
.ahy-fl-tare-proto summary{cursor:pointer;font-size:12px;font-weight:650;color:#334155;}
.ahy-fl-tare-proto ul{margin:6px 0 0;padding-left:18px;color:#475569;}
.ahy-fl-tare-pkg{margin-bottom:14px;border:1px solid #e2e8f0;border-radius:12px;padding:10px;background:#fff;}
.ahy-fl-tare-pkg-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:8px;}
.ahy-fl-tare-pkg-head label{flex:1 1 100%;margin:0;}
.ahy-fl-tare-table-wrap{overflow-x:auto;}
.ahy-fl-tare-table{width:100%;border-collapse:collapse;font-size:12px;}
.ahy-fl-tare-table th,.ahy-fl-tare-table td{border:1px solid #e2e8f0;padding:6px 8px;text-align:left;vertical-align:middle;}
.ahy-fl-tare-table th{background:#f1f5f9;font-weight:650;color:#334155;white-space:nowrap;}
.ahy-fl-tare-in{width:100%;min-width:72px;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;font-size:12px;}
.ahy-fl-tare-in--wide{min-width:160px;}
.ahy-fl-tare-moy{font-weight:600;color:#0C447C;white-space:nowrap;}
.ahy-fl-tare-conf{text-align:center;}
.ahy-fl-tare-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;}
.ahy-fl-tare-badge--ok{background:#dcfce7;color:#166534;}
.ahy-fl-tare-badge--ko{background:#fecaca;color:#991b1b;}
.ahy-fl-tare-add-row{width:100%;margin-top:6px;font-size:12px;}
.ahy-fl-bio-pick{margin-top:4px;}
.ahy-fl-bio-oblig{margin:0 0 8px;border:1px solid #bbf7d0;border-radius:10px;background:#f0fdf4;padding:8px 10px;}
.ahy-fl-bio-oblig summary{cursor:pointer;font-size:12px;font-weight:650;color:#166534;}
.ahy-fl-bio-oblig ul{margin:6px 0 0;padding-left:18px;color:#475569;}
.ahy-fl-bio-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;}
.ahy-fl-bio-add-prod{margin-bottom:10px;}
.ahy-fl-bio-neant{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:500;}
.ahy-fl-bio-neant input[type="checkbox"]{width:18px;height:18px;min-width:18px;padding:0;margin:0;flex-shrink:0;accent-color:#166534;}
.ahy-fl-bio-week-select{max-width:240px;margin-bottom:0!important;}
.ahy-fl-bio-prod-search-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.ahy-fl-bio-prod-search-row .ahy-fl-tare-in{flex:1 1 180px;margin-bottom:0!important;}
.ahy-fl-bio-prod-add-btn{flex:0 0 auto;width:auto!important;margin:0!important;padding:8px 14px!important;font-size:12px!important;}
.ahy-fl-bio-prod-suggest{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;max-height:150px;overflow-y:auto;}
.ahy-fl-bio-prod-chip{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;cursor:pointer;margin:0;}
.ahy-fl-bio-prod-chip:hover{background:#dcfce7;}
.ahy-fl-bio-prod-empty{color:#94a3b8;margin:4px 0 0;}
.ahy-fl-bio-log-wrap{margin-top:6px;}
.ahy-fl-bio-log-detail{margin-top:4px;}
.ahy-fl-bio-log-entry{display:inline-block;margin:0 6px 4px 0;padding:2px 8px;border-radius:999px;background:#f1f5f9;font-size:11px;}
.ahy-fl-bio-log-neant{color:#64748b;}
.ahy-fl-log-view-btn{width:auto!important;margin:6px 0 0!important;padding:6px 12px!important;font-size:12px!important;}
.ahy-fl-bio-done .ahy-fl-bio-log-wrap{max-height:220px;overflow-y:auto;}
.ahy-fl-bio-log-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.ahy-compta-intro{padding:10px 12px;}
/* ?? R?ception hebdo ? carte mois ?? */
.ahy-fl-bio-month-card{
  display:block;width:100%;margin-bottom:14px;border-radius:16px;border:1px solid #e2e8f0;
  background:#fff;box-shadow:0 4px 18px rgba(15,23,42,.06);overflow:hidden;
  border-left:4px solid var(--ahy-bio-accent,#16a34a);
}
.ahy-fl-bio-month-hero{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;
  padding:14px 16px;background:linear-gradient(135deg,#f0fdf4 0%,#fff 55%);
  border-bottom:1px solid #e2e8f0;
}
.ahy-fl-bio-month-hero__title{margin:0;font-size:15px;font-weight:700;color:#0C447C;line-height:1.25;}
.ahy-fl-bio-month-hero__sub{margin:4px 0 0;font-size:12px;color:#64748b;}
.ahy-fl-bio-month-hero__prog{min-width:140px;flex:1 1 160px;max-width:220px;}
.ahy-fl-bio-month-hero__prog-label{font-size:12px;color:#475569;margin-bottom:4px;text-align:right;}
.ahy-fl-bio-month-hero__track{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden;}
.ahy-fl-bio-month-hero__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#16a34a,#22c55e);transition:width .25s;}
.ahy-fl-bio-month-body{
  display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:14px;padding:14px 16px 16px;
}
.ahy-fl-bio-month-side{display:flex;flex-direction:column;gap:10px;min-width:0;}
.ahy-fl-bio-month-alert{
  display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;
  border:1px solid #fde68a;background:#fffbeb;font-size:12px;color:#92400e;
}
.ahy-fl-bio-month-alert.is-catchup{border-color:#fecaca;background:#fef2f2;color:#991b1b;}
.ahy-fl-bio-month-alert.is-ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534;}
.ahy-fl-bio-month-alert i{font-size:16px;margin-top:1px;flex-shrink:0;}
.ahy-fl-bio-month-alert strong{display:block;font-size:13px;margin-bottom:2px;}
.ahy-fl-bio-month-alert span{display:block;color:inherit;opacity:.9;}
.ahy-fl-bio-oblig--inline{margin:0;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:8px 10px;}
.ahy-fl-bio-month-legend{display:flex;flex-direction:column;gap:4px;color:#64748b;}
.ahy-fl-bio-month-legend span{display:flex;align-items:center;gap:6px;}
.ahy-leg{display:inline-block;width:10px;height:10px;border-radius:3px;flex-shrink:0;}
.ahy-leg--done{background:#22c55e;}
.ahy-leg--catchup{background:#ef4444;}
.ahy-leg--current{background:#f59e0b;}
.ahy-leg--future{background:#cbd5e1;}
.ahy-fl-bio-week-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;align-content:start;
}
.ahy-fl-bio-week-tile{
  display:flex;flex-direction:column;gap:8px;min-height:132px;padding:12px;
  border:1.5px solid #e2e8f0;border-radius:14px;background:#fafafa;
  transition:box-shadow .15s,border-color .15s;
}
.ahy-fl-bio-week-tile:hover{box-shadow:0 4px 12px rgba(15,23,42,.08);}
.ahy-fl-bio-week-tile__top{display:flex;align-items:center;justify-content:space-between;gap:6px;}
.ahy-fl-bio-week-tile__badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 8px;
  border-radius:8px;background:#0C447C;color:#fff;font-size:13px;font-weight:800;line-height:1;
}
.ahy-fl-bio-week-tile__status{font-size:10px;font-weight:650;color:#64748b;white-space:nowrap;}
.ahy-fl-bio-week-tile__status i{margin-right:3px;}
.ahy-fl-bio-week-tile__range{font-size:11px;color:#94a3b8;font-weight:500;}
.ahy-fl-bio-week-tile__note{margin:0;font-size:10px;color:#64748b;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ahy-fl-bio-week-tile__actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;}
.ahy-fl-bio-week-tile--done{border-color:#86efac;background:linear-gradient(160deg,#f0fdf4,#fff);}
.ahy-fl-bio-week-tile--done .ahy-fl-bio-week-tile__badge{background:#16a34a;}
.ahy-fl-bio-week-tile--done .ahy-fl-bio-week-tile__status{color:#166534;}
.ahy-fl-bio-week-tile--catchup{border-color:#fca5a5;background:linear-gradient(160deg,#fef2f2,#fff);}
.ahy-fl-bio-week-tile--catchup .ahy-fl-bio-week-tile__badge{background:#dc2626;}
.ahy-fl-bio-week-tile--catchup .ahy-fl-bio-week-tile__status{color:#b91c1c;font-weight:700;}
.ahy-fl-bio-week-tile--current{border-color:#fcd34d;background:linear-gradient(160deg,#fffbeb,#fff);}
.ahy-fl-bio-week-tile--current .ahy-fl-bio-week-tile__badge{background:#d97706;}
.ahy-fl-bio-week-tile--current .ahy-fl-bio-week-tile__status{color:#b45309;font-weight:700;}
.ahy-fl-bio-week-tile--pending{border-color:#fde68a;background:linear-gradient(160deg,#fffbeb,#fff);}
.ahy-fl-bio-week-tile--pending .ahy-fl-bio-week-tile__badge{background:#ca8a04;}
.ahy-fl-bio-week-tile--future{border-color:#e2e8f0;background:#fff;opacity:.92;}
.ahy-fl-bio-week-tile--future .ahy-fl-bio-week-tile__badge{background:#94a3b8;}
.ahy-fl-bio-week-fill{width:100%!important;margin:0!important;margin-top:auto!important;padding:8px 10px!important;font-size:12px!important;}
.ahy-fl-bio-week-fill--primary{background:#0C447C!important;}
@media (max-width:720px){
  .ahy-fl-bio-month-body{grid-template-columns:1fr;}
  .ahy-fl-bio-month-hero__prog{max-width:none;}
  .ahy-fl-bio-week-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:420px){
  .ahy-fl-bio-week-grid{grid-template-columns:1fr;}
}
.ahy-fl-bio-line{margin-bottom:12px;border:1px solid #e2e8f0;border-radius:10px;padding:8px;background:#fafafa;}
.ahy-fl-bio-line-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;}
.ahy-fl-bio-total{margin-left:auto;font-weight:700;color:#0C447C;font-size:12px;}
.ahy-fl-bio-table--bilan th{font-size:10px;}
.ahy-fl-bio-auto-cell{background:#f0fdf4;vertical-align:middle;}
.ahy-fl-bio-auto-val{display:block;font-weight:700;color:#166534;font-size:12px;}
.ahy-fl-bio-auto-hint{display:block;font-size:9px;color:#64748b;margin-top:2px;}
.ahy-fl-bio-auto-chip{background:#ecfdf5!important;color:#166534!important;}
.ahy-fl-tare-summary{margin-top:4px;color:#64748b;}
.ahy-mypie-temp-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.ahy-mypie-temp-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:12px;font-weight:600;}
.ahy-mypie-temp-grid{display:grid;gap:6px;margin-bottom:12px;}
.ahy-mypie-temp-label{display:block;margin:8px 0 4px;color:#64748b;font-weight:600;}
.ahy-mypie-temp-table-wrap{overflow-x:auto;margin-bottom:8px;}
.ahy-mypie-temp-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#f1f5f9;color:#64748b;}
.ahy-mypie-temp-badge--ok{background:#dcfce7;color:#166534;}
.ahy-mypie-temp-badge--warn{background:#ffedd5;color:#9a3412;}
.ahy-mypie-temp-badge--ko{background:#fecaca;color:#991b1b;}
.ahy-mypie-temp-summary{margin-top:4px;color:#9a3412;}
.ahy-mypie-temp-pick .btn{background:#E65100;border-color:#E65100;color:#fff;}
#view-autocontrol .ahy-criteria{margin:8px 0 10px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;}
#view-autocontrol .ahy-criteria summary{list-style:none;cursor:pointer;padding:7px 9px;font-size:12px;font-weight:650;color:#334155;}
#view-autocontrol .ahy-criteria summary::-webkit-details-marker{display:none;}
#view-autocontrol .ahy-criteria ul{margin:0;padding:0 12px 9px 28px;color:#475569;font-size:12px;line-height:1.45;}
#view-autocontrol .ahy-source-badge{
  display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 8px;border-radius:999px;
  background:#eff6ff;color:#0C447C;font-size:10px;font-weight:650;text-decoration:none;
}
#view-autocontrol .ahy-locked-sig{color:#64748b;font-size:12px;margin-left:4px;}
#view-autocontrol .ahy-hist-row--signed{cursor:pointer;}
#view-autocontrol .ahy-hist-row--signed:active{background:#f8fafc;}
#view-autocontrol .ahy-hist-sig{color:#64748b;margin-left:4px;}
#view-autocontrol .ahy-hist-tap{color:#94a3b8;font-style:italic;}
#view-autocontrol .ahy-hist-export{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;}
#view-autocontrol .ahy-hist-export-btn{margin:0!important;min-width:88px;}
#view-autocontrol .ahy-audit-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 12px;}
#view-autocontrol .ahy-audit-summary>div{display:flex;flex-direction:column;align-items:center;padding:9px 4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
#view-autocontrol .ahy-audit-summary strong{font-size:18px;color:#0C447C;}
#view-autocontrol .ahy-audit-summary span{font-size:10px;color:#64748b;}
#view-autocontrol .ahy-audit-summary .is-alert{background:#fff7ed;border-color:#fed7aa;}
#view-autocontrol .ahy-audit-summary .is-alert strong{color:#c2410c;}
#view-autocontrol .actl-freq-group{margin-top:10px;}
#view-autocontrol .actl-freq-group summary{list-style:none;cursor:pointer;}
#view-autocontrol .actl-freq-group summary::-webkit-details-marker{display:none;}
#view-autocontrol .actl-freq-head{margin-top:0!important;border-radius:10px;}
#view-autocontrol .actl-freq-head-lbl{display:inline-flex;align-items:center;gap:2px;}
#view-autocontrol .actl-freq-chevron{font-size:11px;width:14px;transition:transform .18s ease;opacity:.9;}
#view-autocontrol .actl-freq-group[open] .actl-freq-chevron{transform:rotate(90deg);}
#view-autocontrol .actl-zone-group{margin-top:8px;}
#view-autocontrol .actl-zone-group-body{padding:4px 0 6px;border-left:2px solid #e2e8f0;margin:0 0 0 10px;}
#view-autocontrol .ahy-zone-group-sum{list-style:none;cursor:pointer;}
#view-autocontrol .ahy-zone-group-sum::-webkit-details-marker{display:none;}
#view-autocontrol .ahy-zone-group-sum .list-item{margin-bottom:0;}
#view-autocontrol .ahy-zone-grp-chevron{color:#64748b;font-size:11px;flex-shrink:0;width:12px;}
#view-autocontrol .actl-freq-count{opacity:.92;}
#view-autocontrol .actl-freq-body{padding:6px 0 2px;}
#view-autocontrol .ahy-wizard-yes,
#view-autocontrol .ahy-wizard-no{
  background:#f8fafc;
  color:#334155;
  border:2px solid #e2e8f0;
}
#view-autocontrol .ahy-wizard-yes.is-picked{background:#dcfce7;border-color:#16a34a;color:#15803d;}
#view-autocontrol .ahy-wizard-no.is-picked{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
#view-autocontrol .ahy-wizard-result{
  text-align:center;padding:12px;border-radius:10px;font-size:16px;font-weight:700;margin-bottom:8px;
}
#view-autocontrol .ahy-wizard-result--yes{background:#dcfce7;color:#15803d;}
#view-autocontrol .ahy-wizard-result--no{background:#fee2e2;color:#b91c1c;}
#view-autocontrol .ahy-wizard-change{width:100%;margin:0;}
#view-autocontrol .ahy-wizard-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;}
#view-autocontrol .ahy-stack-list{
  display:flex;flex-direction:column;gap:8px;padding:0 0 8px;
}
#view-autocontrol .ahy-stack-card{margin-bottom:0;}
#view-autocontrol .ahy-stack-card .ahy-criteria,
#view-autocontrol .ahy-wizard-card .ahy-criteria{
  margin:4px 0 6px;
}
#view-autocontrol .ahy-stack-card .ahy-hint,
#view-autocontrol .ahy-wizard-card .ahy-hint,
#view-autocontrol .ahy-hint--tight{
  margin:0 0 6px;
}
#view-autocontrol .ahy-stack-card .ahy-source-badge,
#view-autocontrol .ahy-wizard-card .ahy-source-badge{
  margin:0 0 6px;
  display:inline-flex;
}
#view-autocontrol #autocontrol-panel-frigo .task-card{
  border-radius:10px;
  border:0.5px solid var(--color-border-tertiary);
  box-shadow:none;
  padding:10px 11px;
  margin-bottom:6px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:#fff;
  border-left:4px solid transparent;
}
#view-autocontrol #autocontrol-panel-frigo .task-card.nc{
  border-left-color:#dc2626!important;
  background:#fff5f5;
}
#view-autocontrol #autocontrol-panel-frigo .task-card.done{
  border-left-color:var(--frigo);
  opacity:.92;
}
#view-autocontrol #autocontrol-panel-frigo .ahy-yn{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  flex-shrink:0;
  align-self:stretch;
  width:100%;
  margin-top:6px;
}
#view-autocontrol #autocontrol-panel-frigo .ahy-answer-col{
  display:flex;
  flex-direction:column;
  gap:5px;
  flex-shrink:0;
  align-self:center;
}
#view-autocontrol #autocontrol-panel-frigo .ahy-yn-btn{
  min-width:0;
  min-height:52px;
  padding:12px 10px;
  border-radius:14px;
  border:2px solid #e2e8f0;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  background:#f8fafc;
  color:#334155;
}
#view-autocontrol #autocontrol-panel-frigo .ahy-yn-yes{background:#f8fafc;border-color:#e2e8f0;color:#334155;}
#view-autocontrol #autocontrol-panel-frigo .ahy-yn-no{background:#f8fafc;border-color:#e2e8f0;color:#334155;}
#view-autocontrol #autocontrol-panel-frigo .ahy-yn-yes.is-picked{background:#dcfce7;border-color:#16a34a;color:#15803d;}
#view-autocontrol #autocontrol-panel-frigo .ahy-yn-no.is-picked{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
#view-autocontrol #autocontrol-panel-frigo .ahy-ans{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:700;
}
#view-autocontrol #autocontrol-panel-frigo .ahy-ans--yes{background:#dcfce7;color:#15803d;}
#view-autocontrol #autocontrol-panel-frigo .ahy-ans--no{background:#fee2e2;color:#b91c1c;}

/* Autocontr?les Manager : barres d?onglets pleine largeur (?vite marges n?gatives .mod-view) */
#view-autocontrol.mod-view #autocontrol-tabs{
  margin-left:0!important;
  margin-right:0!important;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  display:flex!important;
  flex-wrap:nowrap;
  gap:8px!important;
}
/* Sous-vues (Temp?rature, Inspection, hub zones Autocontrol) : masquer barre Choix/Historique/Config */
#view-autocontrol.mod-view.autocontrol-subview #autocontrol-tabs,
#view-autocontrol.mod-view.autocontrol-subview #autocontrol-tab-config{
  display:none!important;
}
#view-autocontrol.mod-view #autocontrol-tabs>.btn{
  flex:1 1 0;
  min-width:0;
}
#view-autocontrol.mod-view .tabs{
  margin-left:0!important;
  margin-right:0!important;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap;
}
#view-autocontrol.mod-view .tabs .tab{
  flex:1 1 auto;
  min-width:0;
}
body.premium-ui #view-autocontrol.mod-view .tabs{
  margin-left:0!important;
  margin-right:0!important;
}

/* Responsive + accessibility pass */
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible{
  outline:2px solid #1d4ed8;
  outline-offset:2px;
}

@media (max-width:480px){
  main{
    padding:10px;
    padding-bottom:calc(88px + env(safe-area-inset-bottom));
  }
  .mod-view .mod-hdr{
    padding:6px 0 10px;
  }
  .mod-view .mod-hdr-title{
    font-size:13px;
  }
  .mod-view .mod-hdr-sub{
    font-size:9px;
  }
  body.premium-ui .mod-view .mod-hdr-sub{
    font-size:10px !important;
    color:#fff !important;
    opacity:.92;
  }
  .mod-view .tabs{
    margin:0 -10px 10px;
    padding:4px 10px;
  }
  body.premium-ui .mod-view .tabs,
  body.premium-ui .mod-view .tabs.tabs{
    background:#f1f5fb !important;
    margin:0 0 12px 0 !important;
    padding:4px !important;
    border-radius:14px !important;
  }
  .mod-view .tab{
    font-size:9px;
    padding:7px 4px;
  }
  body.premium-ui .mod-view .tab,
  body.premium-ui .mod-view .tabs .tab{
    font-size:11px !important;
    padding:9px 8px !important;
    color:#475569 !important;
    text-shadow:none !important;
  }
  body.premium-ui .mod-view .tab.active,
  body.premium-ui .mod-view .tab.active-pvp,
  body.premium-ui .mod-view .tab.active-mypie,
  body.premium-ui .mod-view .tab.active-salad,
  body.premium-ui .mod-view .tab.active-todo,
  body.premium-ui .mod-view .tab.active-frigo{
    color:#0f172a !important;
    background:#fff !important;
  }
  #view-reception .supplier-select-btn{
    /* ne pas compresser les tuiles téléphone */
    min-height:72px;
  }
}

/* ?? Strict visual parity pack (mockup-like) ?? */
/* Applies only on functional module screens, not home/dashboard */
#view-frais.mod-view,
#view-pvp.mod-view,
#view-salad.mod-view,
#view-todo.mod-view,
#view-reception.mod-view,
#view-commande-mypie.mod-view,
#view-commande-materiel.mod-view{
  --v-gap: 8px;
}

#view-frais .mod-hdr,
#view-pvp .mod-hdr,
#view-salad .mod-hdr,
#view-todo .mod-hdr,
#view-reception .mod-hdr,
#view-commande-mypie .mod-hdr,
#view-commande-materiel .mod-hdr{
  padding:6px 0 10px !important;
}

#view-frais .mod-hdr-title,
#view-pvp .mod-hdr-title,
#view-salad .mod-hdr-title,
#view-todo .mod-hdr-title,
#view-reception .mod-hdr-title,
#view-commande-mypie .mod-hdr-title,
#view-commande-materiel .mod-hdr-title{
  font-size:13px !important;
  line-height:1.2;
}

#view-frais .mod-hdr-sub,
#view-pvp .mod-hdr-sub,
#view-salad .mod-hdr-sub,
#view-todo .mod-hdr-sub,
#view-reception .mod-hdr-sub,
#view-commande-mypie .mod-hdr-sub,
#view-commande-materiel .mod-hdr-sub{
  font-size:9px !important;
  color:rgba(100,116,139,.95) !important;
}
body.premium-ui #view-frais .mod-hdr-sub,
body.premium-ui #view-pvp .mod-hdr-sub,
body.premium-ui #view-salad .mod-hdr-sub,
body.premium-ui #view-todo .mod-hdr-sub,
body.premium-ui #view-reception .mod-hdr-sub,
body.premium-ui #view-commande-mypie .mod-hdr-sub,
body.premium-ui #view-commande-materiel .mod-hdr-sub,
body.premium-ui #view-mypie .mod-hdr-sub,
body.premium-ui #view-autocontrol .mod-hdr-sub,
body.premium-ui #view-inspection .mod-hdr-sub,
body.premium-ui #view-pertes .mod-hdr-sub,
body.premium-ui #view-parametres .mod-hdr-sub,
body.premium-ui #view-pointeuse .mod-hdr-sub,
body.premium-ui #view-etiquettes .mod-hdr-sub,
body.premium-ui #view-commande-pvp .mod-hdr-sub,
body.premium-ui #view-fl .mod-hdr-sub{
  color:#fff !important;
  opacity:.92;
  font-size:11px !important;
  font-weight:500;
}

/* tab bars like compact mockups */
#view-frais .tabs,
#view-pvp .tabs,
#view-salad .tabs,
#view-todo .tabs,
#view-reception .tabs,
#view-commande-mypie .tabs,
#view-autocontrol .tabs{
  margin-bottom:10px !important;
  border-radius:9px !important;
  padding:3px !important;
  gap:3px !important;
}

#view-frais .tab,
#view-pvp .tab,
#view-salad .tab,
#view-todo .tab,
#view-reception .tab,
#view-commande-mypie .tab,
#view-autocontrol .tab{
  padding:7px 4px !important;
  font-size:10px !important;
  border-radius:7px !important;
  font-weight:500 !important;
}
body.premium-ui #view-frais .tabs,
body.premium-ui #view-pvp .tabs,
body.premium-ui #view-salad .tabs,
body.premium-ui #view-todo .tabs,
body.premium-ui #view-reception .tabs,
body.premium-ui #view-commande-mypie .tabs,
body.premium-ui #view-autocontrol .tabs,
body.premium-ui #view-mypie .tabs,
body.premium-ui #view-inspection .tabs,
body.premium-ui #view-pertes .tabs,
body.premium-ui #view-commande-pvp .tabs{
  background:#f1f5fb !important;
  border:1px solid #d9e2ef !important;
  border-radius:14px !important;
  margin:0 0 14px 0 !important;
  padding:4px !important;
  gap:3px !important;
  color:inherit !important;
}
body.premium-ui #view-frais .tab,
body.premium-ui #view-pvp .tab,
body.premium-ui #view-salad .tab,
body.premium-ui #view-todo .tab,
body.premium-ui #view-reception .tab,
body.premium-ui #view-commande-mypie .tab,
body.premium-ui #view-autocontrol .tab,
body.premium-ui #view-mypie .tab,
body.premium-ui #view-inspection .tab,
body.premium-ui #view-pertes .tab,
body.premium-ui #view-commande-pvp .tab{
  color:#475569 !important;
  font-size:12px !important;
  font-weight:600 !important;
  text-shadow:none !important;
  border-radius:11px !important;
  padding:10px 10px !important;
}
body.premium-ui #view-frais .tab.active,
body.premium-ui #view-pvp .tab.active,
body.premium-ui #view-pvp .tab.active-pvp,
body.premium-ui #view-salad .tab.active,
body.premium-ui #view-salad .tab.active-salad,
body.premium-ui #view-todo .tab.active,
body.premium-ui #view-todo .tab.active-todo,
body.premium-ui #view-reception .tab.active,
body.premium-ui #view-reception .tab.active-reception,
body.premium-ui #view-commande-mypie .tab.active,
body.premium-ui #view-autocontrol .tab.active,
body.premium-ui #view-mypie .tab.active,
body.premium-ui #view-mypie .tab.active-mypie,
body.premium-ui #view-inspection .tab.active,
body.premium-ui #view-pertes .tab.active,
body.premium-ui #view-commande-pvp .tab.active,
body.premium-ui #view-commande-pvp .tab.active-pvp{
  color:#0f172a !important;
  background:#fff !important;
  border:1px solid #cfdae9 !important;
  box-shadow:0 3px 8px rgba(15,23,42,.08) !important;
}

/* card and list anatomy parity */
#view-frais .card,
#view-pvp .card,
#view-salad .card,
#view-todo .card,
#view-reception .card,
#view-autocontrol .card,
#view-commande-mypie .card{
  border-radius:11px !important;
  border:0.5px solid var(--color-border-tertiary) !important;
  box-shadow:none !important;
  padding:11px !important;
  margin-bottom:9px !important;
}

#view-frais .list-item,
#view-pvp .list-item:not(.bib-list-row),
#view-salad .list-item,
#view-reception .list-item,
#view-autocontrol .list-item,
#view-commande-mypie .list-item{
  border-radius:10px !important;
  border:0.5px solid var(--color-border-tertiary) !important;
  box-shadow:none !important;
  min-height:60px !important;
  padding:9px 10px !important;
}
#view-pvp .bib-list-row,
#view-mypie .bib-list-row{
  border-radius:10px !important;
  border:0.5px solid var(--color-border-tertiary) !important;
  box-shadow:none !important;
  min-height:0 !important;
  padding:9px 10px !important;
}

#view-frais .item-title,
#view-pvp .item-title,
#view-salad .item-title,
#view-reception .item-title,
#view-autocontrol .item-title,
#view-commande-mypie .item-title{
  font-size:11px !important;
  line-height:1.25 !important;
}

#view-frais .item-sub,
#view-pvp .item-sub,
#view-salad .item-sub,
#view-reception .item-sub,
#view-autocontrol .item-sub,
#view-commande-mypie .item-sub{
  font-size:9px !important;
  color:#64748b !important;
}

/* controls */
#view-frais .btn,
#view-pvp .btn,
#view-salad .btn,
#view-todo .btn,
#view-reception .btn,
#view-autocontrol .btn,
#view-commande-mypie .btn{
  padding:10px !important;
  font-size:12px !important;
  border-radius:9px !important;
}

#view-frais input,#view-frais select,#view-frais textarea,
#view-pvp input,#view-pvp select,#view-pvp textarea,
#view-salad input,#view-salad select,#view-salad textarea,
#view-todo input,#view-todo select,#view-todo textarea,
#view-reception input,#view-reception select,#view-reception textarea,
#view-autocontrol input,#view-autocontrol select,#view-autocontrol textarea,
#view-commande-mypie input,#view-commande-mypie select,#view-commande-mypie textarea{
  font-size:12px !important;
  padding:9px 10px !important;
  border-radius:8px !important;
  border:0.5px solid var(--color-border-secondary) !important;
}

#view-frais .search-wrap,
#view-pvp .search-wrap,
#view-salad .search-wrap{
  margin-bottom:9px !important;
}
#view-frais .search-input,
#view-pvp .search-input,
#view-salad .search-input{
  font-size:12px !important;
  padding:9px 9px 9px 33px !important;
  border-radius:9px !important;
}

/* reception parity: supplier/type chips — tailles gérées plus bas (tuiles téléphone) */
#view-reception .sup-type-btn{
  border-radius:12px !important;
  padding:12px 8px !important;
  font-size:12px !important;
}

/* checklist parity: denser rows + compact status chips */
#view-todo .task-card{
  border-radius:10px !important;
  padding:9px 10px !important;
}
#view-todo .chip{
  font-size:9px !important;
  padding:2px 6px !important;
}
#view-todo .small{
  font-size:10px !important;
}

/* ?? V10 Quick Actions ?? */
#home-quick-actions{display:flex;flex-direction:column;gap:0;}
.qa-sec-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.qa-sec-title{font-size:9px;font-weight:500;color:#888780;text-transform:uppercase;letter-spacing:0.5px;}
.qa-modify-btn{
  font-size:11px;font-weight:600;color:#185FA5;padding:6px 10px;border-radius:10px;
  background:#E6F1FB;border:1px solid rgba(26,92,184,.18);cursor:pointer;
  transition:transform .14s ease,box-shadow .14s ease,background .14s ease;
}
.qa-modify-btn:hover{box-shadow:0 4px 12px rgba(26,92,184,.15);}
.qa-modify-btn:active{transform:translateY(1px) scale(.98);}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.qa-grid .qa-card{min-height:84px;}
.qa-card{position:relative;border-radius:11px;border:0.5px solid #d0cec8;background:#ffffff;overflow:hidden;cursor:pointer;transition:opacity 0.15s;}
.qa-card:active{opacity:.85;}
.qa-top{display:flex;align-items:center;gap:7px;padding:8px 10px 5px;}
.qa-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;}
.qa-name-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.qa-name{font-size:11px;font-weight:500;color:#1a1a1a;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qa-badge{font-size:8px;font-weight:500;padding:1px 5px;border-radius:6px;display:inline-block;width:fit-content;}
.qa-cta{display:block;margin:0 10px 8px;padding:5px 8px;border-radius:7px;text-align:center;font-size:10px;font-weight:500;color:#ffffff;border:none;cursor:pointer;width:calc(100% - 20px);transition:opacity 0.15s;}
.qa-cta:active{opacity:.85;}
.qa-customize{width:100%;background:none;border:1.5px dashed #d0cec8;border-radius:10px;padding:7px;color:#888780;font-size:10px;font-weight:500;cursor:pointer;transition:background 0.15s;}
.qa-customize:active{background:#f8fafc;}

/* ?? V10 Quick Actions Editor ?? */
.qa-editor-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;}
.qa-editor-sheet{background:var(--color-background-primary);border-radius:20px 20px 0 0;width:100%;max-height:80vh;overflow-y:auto;padding:20px;transform:translateY(0);transition:transform 0.3s ease;}
.qa-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.qa-editor-title{font-size:var(--fs-lg);font-weight:500;color:var(--color-text-primary);}
.qa-editor-count{font-size:var(--fs-sm);font-weight:500;}
.qa-editor-count.full{color:#E24B4A;}
.qa-editor-count.ok{color:var(--color-text-tertiary);}
.qa-editor-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-xl);margin-bottom:5px;border:0.5px solid var(--color-border-tertiary);cursor:pointer;transition:all 0.15s;}
.qa-editor-item.selected{background:var(--badge-info-bg);border-color:#85B7EB;}
.qa-editor-item.disabled{opacity:.4;pointer-events:none;}
.qa-editor-item-icon{width:32px;height:32px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.qa-editor-item-icon i{font-size:15px;color:#fff;}
.qa-editor-item-icon .module-icon-svg{width:16px;height:16px;object-fit:contain;}
.qa-editor-item-name{font-size:var(--fs-lg);font-weight:500;color:var(--color-text-primary);flex:1;}
.qa-editor-item-check{font-size:16px;}
.qa-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;}
.qa-editor-cancel{padding:12px;border:0.5px solid var(--color-border-secondary);border-radius:var(--r-xl);background:var(--color-background-primary);color:var(--color-text-secondary);font-size:var(--fs-lg);font-weight:500;cursor:pointer;}
.qa-editor-save{padding:12px;border:none;border-radius:var(--r-xl);background:var(--color-accueil);color:#fff;font-size:var(--fs-lg);font-weight:500;cursor:pointer;}
.qa-dragging{background:#f0f6ff!important;box-shadow:0 6px 20px rgba(0,0,0,.15)!important;border-color:#85B7EB!important;border-radius:10px;position:relative;z-index:5;}

/* ?? Accueil style iOS (springboard) ?? */
.ios-home-wrap{position:relative;user-select:none;-webkit-user-select:none;}
.ios-home-wrap.ios-home-edit .ios-home-tile{
  animation:iosJiggle 0.22s ease-in-out infinite;
}
.ios-home-wrap.ios-home-edit{
  background:linear-gradient(180deg,rgba(26,92,184,.05) 0%,rgba(26,92,184,0) 72%);
  border-radius:16px;
  padding:6px 4px 8px;
}
/* Pendant le glissement : pas d?animation sur toute la grille (sinon lag important). */
.ios-home-wrap.ios-home-dragging .ios-home-tile{
  animation:none;
}
@keyframes iosJiggle{
  0%,100%{transform:rotate(-1.2deg) translateZ(0);}
  50%{transform:rotate(1.2deg) translateZ(0);}
}
.ios-home-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px 10px;
  padding:8px 4px 12px;
  max-width:420px;
  margin:0 auto;
}
.ios-home-slot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  min-height:0;
  touch-action:none;
}
.ios-home-slot.ios-drop-target{
  outline:none;border-radius:18px;
  box-shadow:0 0 0 2px #1A5CB8,0 0 0 7px rgba(26,92,184,.16);
  background:rgba(26,92,184,.04);
}
.ios-home-tile{
  width:60px;height:60px;border-radius:18px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(15,23,42,.16),0 1px 3px rgba(15,23,42,.12),inset 0 1px 0 rgba(255,255,255,.4),inset 0 -2px 6px rgba(0,0,0,.12);
  cursor:pointer;
  position:relative;
  transition:transform var(--dur-fast,.14s) var(--ease-out,ease),opacity .12s,box-shadow .16s;
}
.ios-home-tile::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 42%);
}
@media(hover:hover){.ios-home-tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.2),inset 0 1px 0 rgba(255,255,255,.4);}}
.ios-home-wrap.ios-home-edit .ios-home-tile{
  box-shadow:0 6px 16px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.35);
}
.ios-home-tile--folder{
  padding:8px!important;
  box-sizing:border-box;
  background:linear-gradient(165deg,var(--folder-tile-bg1) 0%,var(--folder-tile-bg2) 55%,#d0ddf5 100%)!important;
  border:0.5px solid var(--folder-tile-border);
  box-shadow:0 6px 20px rgba(26,92,184,.12),inset 0 1px 0 rgba(255,255,255,.9);
}
.ios-home-tile--folder.is-folder-media{
  padding:5px!important;
  background:linear-gradient(165deg,#f8faff 0%,#e8f0fc 100%)!important;
}
.ios-home-tile--folder:active{transform:scale(.94);}
.ios-folder-cover{
  width:100%;height:100%;object-fit:cover;border-radius:12px;
  display:block;box-shadow:inset 0 0 0 0.5px rgba(26,92,184,.12);
}
.ios-folder-icon-only{
  width:100%;height:100%;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--color-accueil) 0%,#153e80 120%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25);
}
.ios-folder-icon-only i{font-size:28px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));}
.folder-edit-preview-slot .ios-home-tile--folder,
.folder-edit-preview-slot .ios-home-tile--folder.is-folder-media{
  width:64px;height:64px;margin:0 auto;
  cursor:default;animation:none!important;
}
.folder-edit-preview-slot .ios-folder-icon-only i{font-size:26px;}
.ios-home-tile:active{transform:scale(.94);}
.ios-home-tile i{font-size:26px;color:#fff;position:relative;z-index:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));}
.ios-home-tile .module-icon-svg{position:relative;z-index:1;}
.ios-home-tile .module-icon-svg{width:30px;height:30px;object-fit:contain;}
/* Dossiers : ne pas h?riter du 30px sur la grille 2?2 (sinon ic?nes coup?es) */
.ios-home-tile--folder .ios-folder-face .module-icon-svg,
.ios-home-tile--folder .ios-folder-face .module-icon-svg.module-icon-svg--mini{
  width:9px!important;height:9px!important;max-width:100%;max-height:100%;object-fit:contain;display:block;
}
.ios-home-ghost--folder .ios-folder-face .module-icon-svg,
.ios-home-ghost--folder .ios-folder-face .module-icon-svg.module-icon-svg--mini{
  width:13px!important;height:13px!important;object-fit:contain;
}
.ios-edit-remove-btn{
  position:absolute;top:-7px;left:-7px;z-index:6;
  width:22px;height:22px;border-radius:50%;
  border:2px solid #fff;background:#ef4444;color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;line-height:1;cursor:pointer;
  box-shadow:0 3px 8px rgba(0,0,0,.22);padding:0;
}
.ios-edit-remove-btn:active{transform:scale(.94);}
.ios-home-slot--add .ios-home-label{color:#1A5CB8;}
.ios-home-tile--add{
  background:linear-gradient(160deg,#e8f1ff 0%,#d7e8ff 100%)!important;
  border:1.5px dashed #7aa8e8;
  box-shadow:none;
}
.ios-home-tile--add i{color:#1A5CB8!important;font-size:24px;}
.ios-home-tile--app-media{padding:5px;}
.ios-app-cover{
  width:100%;height:100%;object-fit:cover;border-radius:12px;display:block;
  box-shadow:inset 0 0 0 0.5px rgba(26,92,184,.12);
}
.ios-home-label{
  font-size:11px;font-weight:600;color:var(--ink-900,#1c1c1e);text-align:center;
  max-width:84px;line-height:1.2;letter-spacing:-.1px;
  display:flex;flex-direction:column;align-items:center;gap:3px;
}
.ios-home-name{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  width:100%;
}
.ios-home-badge{
  position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:#ef4444;color:#fff;font-size:11px;font-weight:600;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.2);
}
.ios-folder-face{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
  width:100%;height:100%;max-width:100%;max-height:100%;margin:0 auto;
  padding:3px;border-radius:11px;box-sizing:border-box;
  background:var(--folder-face-bg);
  box-shadow:inset 0 1px 2px rgba(255,255,255,.85),inset 0 -1px 1px rgba(26,92,184,.08);
  overflow:visible;
}
.ios-folder-face .ios-folder-mini{
  width:100%;aspect-ratio:1;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;
  background:linear-gradient(155deg,rgba(255,255,255,.35) 0%,transparent 45%),var(--fm,#64748b);
  box-shadow:0 2px 6px rgba(26,92,184,.2),inset 0 1px 0 rgba(255,255,255,.35);
  overflow:visible;
  min-width:0;
  min-height:0;
  padding:1px;
  box-sizing:border-box;
}
.ios-folder-face .ios-folder-mini--empty{
  visibility:hidden;background:none!important;box-shadow:none!important;
  pointer-events:none;
}
.ios-folder-face .ios-folder-mini i{color:#fff;font-size:13px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));}
.ios-mini-app-cover{width:100%;height:100%;object-fit:cover;border-radius:7px;display:block;}
.ios-folder-modal-shell{
  max-height:min(88vh,580px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.ios-folder-modal-shell #ios-folder-body,
.ios-folder-modal-shell #dock-folder-body{
  flex:1;
  min-height:0;
  max-height:min(52vh,400px);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-bottom:4px;
}
.ios-folder-modal-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px 8px;
  justify-items:center;
  align-content:start;
}
.ios-folder-modal-grid .ios-home-slot{
  touch-action:manipulation;
  max-width:100%;
}
.ios-folder-modal-grid .ios-home-tile{width:54px;height:54px;}
.ios-folder-modal-grid .ios-home-tile--folder .ios-folder-face .module-icon-svg,
.ios-folder-modal-grid .ios-home-tile--folder .ios-folder-face .module-icon-svg.module-icon-svg--mini{
  width:12px!important;height:12px!important;max-width:100%;max-height:100%;object-fit:contain;
}
.ios-folder-modal-grid .ios-home-tile i{font-size:22px;}
.ios-folder-modal-grid .ios-home-label{
  max-width:92px;min-height:2.5em;padding:0 2px 4px;line-height:1.2;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
#ios-folder-hint{margin-top:10px!important;padding-bottom:4px!important;}
.ios-home-ghost{
  position:fixed;pointer-events:none!important;z-index:12000;
  width:60px;height:60px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px rgba(0,0,0,.28);
  opacity:.92;
}
.ios-home-ghost--folder{
  padding:8px;box-sizing:border-box;
  background:linear-gradient(165deg,var(--folder-tile-bg1) 0%,#c5d6f0 100%)!important;
  border:0.5px solid var(--folder-tile-border);
}
.ios-home-ghost--folder.is-ghost-media{padding:5px!important;}
.ios-home-ghost--folder .ios-folder-face{max-width:none;max-height:none;width:100%;height:100%;}
.ios-home-ghost--folder .ios-folder-cover{width:100%;height:100%;border-radius:12px;}
.ios-home-ghost--folder .ios-folder-icon-only{width:100%;height:100%;border-radius:12px;}
.ios-home-ghost i{font-size:26px;color:#fff;}
.qa-ios-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;}
.qa-ios-bar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
.qa-modify-btn--ghost{
  background:rgba(26,92,184,.08)!important;color:#1A5CB8!important;
  border:0.5px solid rgba(26,92,184,.2);
  font-size:12px!important;font-weight:600;
}
.qa-modify-btn--accent{
  background:linear-gradient(135deg,#1A5CB8,#2D74D2)!important;
  color:#fff!important;
  border:1px solid rgba(18,73,149,.35)!important;
}
.qa-ios-hint{font-size:10px;color:#94a3b8;padding:0 4px;line-height:1.35;}

/* ?? ?dition dossier accueil ?? */
.folder-edit-modal{
  position:fixed;inset:0;z-index:1004;background:rgba(0,0,0,.45);
  display:flex;align-items:flex-end;justify-content:center;padding:0;
}
.folder-edit-modal.hidden{display:none!important;}
.folder-edit-panel{
  background:var(--color-background-primary);
  width:100%;max-width:440px;max-height:88vh;overflow-y:auto;
  border-radius:22px 22px 0 0;padding:18px 16px 22px;
  box-shadow:0 -8px 40px rgba(0,0,0,.12);
}
.folder-edit-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.folder-edit-panel-title{font-weight:600;font-size:17px;color:var(--color-text-primary);}
.folder-edit-close{background:none;border:none;font-size:24px;color:var(--color-text-tertiary);cursor:pointer;line-height:1;padding:4px;}
.folder-edit-lead{font-size:10px;font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.4px;margin:14px 0 8px;}
.folder-edit-lead:first-of-type{margin-top:0;}
.folder-edit-preview-wrap{display:flex;justify-content:center;margin-bottom:4px;}
.folder-edit-label{display:block;font-size:12px;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px;}
.folder-edit-input{
  width:100%;box-sizing:border-box;padding:12px 14px;border-radius:12px;border:0.5px solid var(--color-border-secondary);
  font-size:16px;background:var(--color-background-secondary);
}
.folder-edit-secondary{
  width:100%;padding:11px;border-radius:12px;border:0.5px solid var(--color-border-secondary);
  background:var(--color-background-secondary);color:var(--color-accueil);font-size:13px;font-weight:600;cursor:pointer;margin-bottom:10px;
}
.folder-edit-icon-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px;
}
.folder-edit-icon-btn{
  aspect-ratio:1;border-radius:12px;border:0.5px solid var(--color-border-tertiary);
  background:var(--color-background-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--color-accueil);font-size:18px;padding:0;
}
.folder-edit-icon-btn.is-sel{
  border-color:var(--color-accueil);background:rgba(26,92,184,.1);box-shadow:0 0 0 2px rgba(26,92,184,.15);
}
.folder-edit-file-label{
  display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:500;color:var(--color-text-secondary);
}
.folder-edit-file-label input[type=file]{font-size:12px;}
.folder-edit-hint{font-size:11px;color:var(--color-text-tertiary);margin:0 0 8px;line-height:1.35;}
.folder-edit-kids{display:flex;flex-direction:column;gap:8px;}
.folder-edit-kid{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;
  border:0.5px solid var(--color-border-tertiary);background:var(--color-background-secondary);
  touch-action:none;user-select:none;
}
.folder-edit-kid-reorder{display:flex;flex-direction:column;gap:3px;flex-shrink:0;}
.folder-edit-kid-reorder button{
  border:0.5px solid var(--color-border-secondary);border-radius:8px;background:var(--color-background-primary);
  font-size:11px;font-weight:600;padding:3px 10px;cursor:pointer;color:var(--color-text-secondary);line-height:1.2;
}
.folder-edit-kid-reorder button:disabled{opacity:.35;cursor:default;}
.folder-edit-kid.is-dragging{opacity:.85;box-shadow:0 8px 24px rgba(0,0,0,.12);}
.folder-edit-kid-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.folder-edit-kid-icon i{font-size:16px;color:#fff;}
.folder-edit-kid span{flex:1;font-size:13px;font-weight:500;color:var(--color-text-primary);min-width:0;}
.folder-edit-kid button{
  border:none;background:none;color:var(--danger);font-size:20px;cursor:pointer;padding:4px 8px;line-height:1;
}
.folder-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;}
.folder-edit-cancel{
  padding:14px;border-radius:14px;border:0.5px solid var(--color-border-secondary);
  background:var(--color-background-primary);color:var(--color-text-secondary);font-weight:600;font-size:15px;cursor:pointer;
}
.folder-edit-save{
  padding:14px;border-radius:14px;border:none;background:var(--color-accueil);color:#fff;font-weight:600;font-size:15px;cursor:pointer;
}

@media(max-width:480px){
  .ios-home-grid{gap:16px 8px;padding:6px 0 10px;}
  .ios-home-tile{width:56px;height:56px;}
  .ios-home-tile i{font-size:24px;}
}

/* ?? Section Label ?? */
.sec-label{font-size:9px;font-weight:500;color:#888780;text-transform:uppercase;letter-spacing:0.5px;display:flex;align-items:center;gap:6px;margin:8px 0 4px;}
.sl-line{flex:1;height:0.5px;background:#d8d6ce;}

/* ?? V10 Planning ?quipe du jour ?? */
.ptt-card{background:#ffffff;border:0.5px solid #d8d6ce;border-radius:11px;overflow:hidden;}
.ptt-header{padding:7px 10px 6px;display:flex;align-items:center;justify-content:space-between;border-bottom:0.5px solid #d8d6ce;}
.ptt-title{font-size:10px;font-weight:500;color:#888780;text-transform:uppercase;letter-spacing:0.4px;}
.ptt-link{font-size:10px;color:#185FA5;cursor:pointer;font-weight:400;}
.ptt-row{display:flex;align-items:center;gap:6px;padding:7px 10px;border-bottom:0.5px solid #d8d6ce;}
.ptt-row-last{border-bottom:none;}
.ptt-extra{font-size:9px;color:#888780;text-align:center;padding:5px 10px 7px;border-top:0.5px solid #d8d6ce;}
.ptt-avatar{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:500;flex-shrink:0;}
.ptt-name{font-size:10px;font-weight:500;color:#1a1a1a;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ptt-pill{font-size:8px;font-weight:500;padding:2px 6px;border-radius:7px;flex-shrink:0;}
.ptt-hours{font-size:9px;color:#a8a5a0;min-width:58px;text-align:right;flex-shrink:0;}
.ptt-date{font-size:9px;color:#888780;}
.ptt-manage-btn{display:block;width:100%;padding:6px;background:none;border:0.5px solid #d8d6ce;border-radius:8px;color:#185FA5;font-size:10px;font-weight:500;cursor:pointer;}

/* ?? CA Chart tiles ?? */
#home-sales-forecast{display:flex;align-items:stretch;gap:5px;padding:2px 0 0;min-height:52px;}
.home-ca-skeleton-row{display:flex;align-items:stretch;gap:5px;padding:2px 0 0;min-height:52px;}
.ca-tile--skel{background:#f1f5f9;border:1px solid #e8ecf2;animation:home-ca-pulse 1.2s ease-in-out infinite;}
.ca-tile--skel .ca-tile-val{color:#cbd5e1;}
@keyframes home-ca-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.ca-tile{
  flex:1;border-radius:12px;border:1px solid #eef2f7;background:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;
  padding:7px 3px 8px;min-height:56px;position:relative;overflow:hidden;
  transition:transform .15s var(--ease-out,ease),box-shadow .15s;cursor:default;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.ca-today{border-color:#bcd2f5!important;box-shadow:0 0 0 2px rgba(29,78,216,.14),0 2px 8px rgba(29,78,216,.10);}
.ca-tile.ca-below-fc{border-color:#f6cfcf!important;}
.ca-tile-day{font-size:9px;font-weight:700;color:#94a3b8;line-height:1;letter-spacing:0;text-transform:none;}
.ca-today .ca-tile-day{color:#1A5CB8;}
.ca-below-fc .ca-tile-day{color:#b91c1c!important;}
.ca-tile-val{font-size:12px;font-weight:800;line-height:1.1;text-align:center;white-space:nowrap;letter-spacing:-.3px;margin-top:1px;}
.ca-tile-fc{font-size:8px;color:#94a3b8;line-height:1;font-weight:600;}
.ca-tile-delta{font-size:9px;font-weight:700;line-height:1;}
.ca-tile-prog{position:absolute;left:7px;right:7px;bottom:5px;height:3px;border-radius:999px;background:#eef2f7;overflow:hidden;}
.ca-tile-prog-fill{display:block;height:100%;border-radius:999px;transition:width .5s var(--ease-out,ease);}
.home-ca-card{
  background:linear-gradient(180deg,var(--surface-0) 0%,#f8fbff 120%);
  border:1px solid var(--line-soft);border-radius:14px;padding:8px 10px;
  box-shadow:var(--shadow-card);
}
.home-ca-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.home-ca-title{font-size:10px;font-weight:700;color:var(--ink-700);text-transform:uppercase;letter-spacing:.5px;}
.home-ca-range{font-size:10px;color:#64748b;font-weight:600;text-transform:none;letter-spacing:0;margin-left:4px;}
.home-ca-range-past{color:#94a3b8;font-weight:600;font-size:9px;}
.home-ca-range-future{color:#0891b2;font-weight:600;font-size:9px;}
.home-ca-actions{display:flex;align-items:center;gap:6px;}
.home-ca-nav{
  width:24px;height:24px;border-radius:7px;border:1px solid #dbe4ef;background:#fff;color:#1A5CB8;
  display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;
}
.home-ca-nav:active{transform:scale(.96);}
.home-ca-nav-today{width:auto;padding:0 8px;font-size:9px;font-weight:700;}
.home-ca-link{font-size:10px;color:var(--brand-600);cursor:pointer;font-weight:600;}

/* ?? Blue Home Header ?? */
.home-blue-header{background:#1A5CB8;color:#fff;padding:14px 16px 12px;margin:-15px -15px 0;width:calc(100% + 30px);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
@media(max-width:480px){.home-blue-header{margin:-8px -8px 0;width:calc(100% + 16px);}}

/* ?? Alert Strip ?? */
.home-alert-strip{background:#E24B4A;padding:6px 12px;display:flex;align-items:center;gap:6px;cursor:pointer;}
.home-alert-strip{border-radius:14px;box-shadow:0 6px 16px rgba(226,75,74,.24);}
#view-home{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:calc(100dvh - 56px - 30px - env(safe-area-inset-bottom));
  box-sizing:border-box;
}
.home-top-stack{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;}
#home-widgets-row{flex:0 0 auto;min-height:0;margin-bottom:0!important;}
#home-widgets-row .home-cube{max-height:none;overflow:visible;}
#home-widgets-row .home-cube--team-main{
  cursor:pointer;
  padding:14px 12px 12px;
  border-left-width:4px;
}
#home-widgets-row .home-cube--team-compact{
  padding:10px 10px 8px;
  border-left-width:3px;
  gap:4px;
}
#home-widgets-row .home-cube--team-compact .home-cube-kicker{font-size:10px;margin-bottom:2px;}
#home-widgets-row .home-cube--team-compact .home-cube-main{font-size:13px;font-weight:700;line-height:1.2;}
#home-widgets-row .home-cube--team-compact .home-cube-sub{font-size:11px;margin-top:2px;}
#home-widgets-row .home-cube--team-compact .home-cube-icon{width:32px;height:32px;font-size:16px;border-radius:10px;}
#home-widgets-row .home-cube--team-compact .home-cube-shift-name{font-size:12px;font-weight:600;}
#home-widgets-row .home-cube--team-compact .home-cube-shift-slot-h{font-size:11px;font-weight:700;}
#home-widgets-row .home-cube--team-compact .home-cube-shift-av{width:22px;height:22px;font-size:8px;}
#home-widgets-row .home-cube--team-compact .home-cube-shifts{gap:5px;margin-top:4px;}
#home-widgets-row .home-cube--team-compact .home-cube-plan-link{font-size:11px;padding:6px 0 2px;margin-top:4px;}
#home-widgets-row .home-cube--team-compact .home-cube-daynav{margin-bottom:2px;}
#home-widgets-row .home-cube--team-compact .home-cube-more{font-size:10px;margin-top:2px;}
#home-widgets-row .home-cube--team-main .home-cube-kicker{font-size:11px;margin-bottom:4px;}
#home-widgets-row .home-cube--team-main .home-cube-main{font-size:16px;font-weight:800;line-height:1.25;}
#home-widgets-row .home-cube--team-main .home-cube-sub{font-size:13px;margin-top:4px;}
#home-widgets-row .home-cube--team-main .home-cube-icon{width:40px;height:40px;font-size:20px;border-radius:12px;}
#home-widgets-row .home-cube--team-main .home-cube-shift-name{font-size:13px;font-weight:700;}
#home-widgets-row .home-cube--team-main .home-cube-shift-slot-h{font-size:12px;font-weight:800;}
#home-widgets-row .home-cube--team-main .home-cube-shift-av{width:26px;height:26px;font-size:9px;}
#home-widgets-row .home-cube--team-main .home-cube-shifts{gap:8px;margin-top:8px;}
#home-widgets-row .home-cube--team-main:active{transform:scale(.99);}
.home-cloture-duo{flex:0 0 auto;}
#home-quick-actions{
  flex:1 1 auto;
  display:flex!important;
  flex-direction:column;
  justify-content:stretch;
  margin-top:4px!important;
  margin-bottom:6px!important;
  min-height:140px;
  width:100%;
}
#home-quick-actions .qa-ios-bar{flex:0 0 auto;margin-bottom:4px;}
#home-quick-actions .ios-home-wrap{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:none;
  margin:0;
  min-height:0;
}
#home-quick-actions .ios-home-grid{
  --qa-tile:60px;
  --qa-cols:4;
  flex:1 1 auto;
  display:grid;
  width:100%;
  max-width:none;
  margin:0;
  box-sizing:border-box;
  grid-template-columns:repeat(var(--qa-cols),minmax(0,1fr));
  gap:clamp(6px,1.2vh,14px) clamp(4px,1.5vw,10px);
  align-content:space-evenly;
  justify-items:center;
  align-items:center;
  min-height:0;
  padding:2px 0 6px;
}
#home-quick-actions .ios-home-slot{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:0;
  gap:4px;
  justify-content:center;
}
#home-quick-actions .ios-home-tile{
  width:var(--qa-tile);
  height:var(--qa-tile);
  border-radius:calc(var(--qa-tile) * .28);
  flex-shrink:0;
  transition:transform var(--dur-fast,.14s) var(--ease-out,ease),box-shadow .16s;
}
#home-quick-actions .ios-home-tile i{
  font-size:calc(var(--qa-tile) * .42);
}
#home-quick-actions .ios-home-tile .module-icon-svg{
  width:calc(var(--qa-tile) * .48);
  height:calc(var(--qa-tile) * .48);
  flex-shrink:0;
  aspect-ratio:1;
  display:block;
  object-fit:contain;
  contain:strict;
}
#home-quick-actions .ios-home-label{
  font-size:clamp(9px,calc(var(--qa-tile) * .18),12px);
  max-width:100%;
  line-height:1.15;
}
.home-widgets-duo{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  margin-bottom:10px;
  align-items:stretch;
}
.home-widgets-duo:empty,
.home-widgets-duo[style*="display: none"]{display:none!important;}
.home-widget-cube{min-width:0;display:flex;}
.home-widget-cube>.home-cube{flex:1;width:100%;}
.home-cube{
  display:flex;flex-direction:column;align-items:stretch;gap:6px;
  background:var(--surface-0,#fff);
  border:1px solid var(--line-soft,#e2e8f0);
  border-radius:12px;padding:9px 8px 8px;
  box-shadow:var(--shadow-card,0 1px 3px rgba(15,23,42,.06));
  cursor:pointer;min-height:0;height:auto;box-sizing:border-box;
  transition:transform .12s ease,box-shadow .12s ease;
}
.home-cube:active{transform:scale(.98);}
.home-cube--team{cursor:default;}
.home-cube--team:active{transform:none;}
.home-cube--delivery{border-left:3px solid #059669;}
.home-cube--order{border-left:3px solid #d97706;margin-bottom:0;}
.home-cube--order .home-cube-icon{background:#fffbeb;}
/* Repli portail / anciens hosts */
.home-delivery-stack{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px;
  width:100%;
  align-items:stretch;
}
.home-delivery-stack>.home-cube{margin:0;height:100%;min-height:112px;box-sizing:border-box;}
.home-delivery-stack>.home-cube:only-child{grid-column:1/-1;}
.home-cube--team{border-left:3px solid #1A5CB8;}
#home-widgets-row .home-cube--order .home-cube-kicker,
#home-widgets-row .home-cube--delivery .home-cube-kicker{
  font-size:10px;letter-spacing:.35px;
}
#home-widgets-row .home-cube--order .home-cube-main,
#home-widgets-row .home-cube--delivery .home-cube-main{
  font-size:13px;font-weight:700;line-height:1.25;
}
#home-widgets-row .home-cube--order .home-cube-slot-t,
#home-widgets-row .home-cube--delivery .home-cube-slot-t{
  font-size:12px;font-weight:600;
}
#home-widgets-row .home-cube--order .home-cube-slot-h,
#home-widgets-row .home-cube--delivery .home-cube-slot-h{
  font-size:11px;
}
.home-cube-plan-link{
  margin-top:10px;width:100%;border:none;background:#eff6ff;color:#1A5CB8;
  font-size:12px;font-weight:700;padding:8px 10px;border-radius:10px;cursor:pointer;
}
.home-cube-top{display:flex;align-items:center;gap:6px;min-width:0;}
.home-cube-icon{
  width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:14px;line-height:1;flex-shrink:0;
}
.home-cube--delivery .home-cube-icon{background:#ecfdf5;}
.home-cube--team .home-cube-icon{background:#eff6ff;}
.home-cube-head{flex:1;min-width:0;}
.home-cube-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.home-cube-kicker{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#64748b;margin-bottom:1px;}
.home-cube-main{font-size:11px;font-weight:600;color:#0f172a;line-height:1.25;}
.home-cube-sub{font-size:10px;color:#64748b;margin-top:1px;line-height:1.2;}
.home-cube-problem{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  margin-top:6px;padding:7px 10px;
  border-radius:10px;
  background:#fff5ed;
  border:1px solid #fed7aa;
  font-size:10px;line-height:1.3;color:#9a3412;
  box-sizing:border-box;width:100%;
}
.home-cube-problem-lbl{
  color:#9a3412;font-weight:800;
  text-transform:uppercase;letter-spacing:.02em;
}
.home-cube-problem-sep{display:none;}
.home-cube-problem-num{
  color:#9a3412;font-weight:800;
  text-decoration:underline;text-underline-offset:2px;
  white-space:nowrap;
}
a.home-cube-problem-num{color:#9a3412;}
a.home-cube-problem-num:active{opacity:.8;}
.home-cube-problem--compact{font-size:9px;padding:6px 8px;gap:5px;}
.home-cube-tag{display:inline-block;margin-top:5px;font-size:9px;font-weight:600;padding:2px 6px;border-radius:5px;}
.home-cube-tag--warn{background:#fef3c7;color:#92400e;}
.home-cube-slots,.home-cube-shifts{margin-top:5px;display:flex;flex-direction:column;gap:3px;}
.home-cube-shifts--scroll{
  max-height:min(42vh,340px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-right:2px;
  scrollbar-width:thin;
}
.home-cube-slot{
  display:flex;align-items:center;gap:4px;font-size:10px;line-height:1.2;color:#334155;min-width:0;
}
.home-cube-slot-dot{
  width:5px;height:5px;border-radius:50%;background:#059669;flex-shrink:0;
}
.home-cube-slot-line,.home-cube-shift-line{
  display:flex;align-items:baseline;gap:4px;min-width:0;flex:1;
}
.home-cube-slot-t,.home-cube-shift-name{
  font-weight:600;color:#1e293b;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.home-cube-slot-h,.home-cube-shift-h{
  color:#64748b;font-size:9px;font-weight:500;white-space:nowrap;flex-shrink:0;
}
.home-cube-shift{display:flex;align-items:flex-start;gap:4px;font-size:10px;min-width:0;}
.home-cube-shift--multi{align-items:flex-start;}
.home-cube-shift-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.home-cube-shift-times{display:flex;flex-direction:column;gap:2px;}
.home-cube-shift-slot{display:flex;align-items:center;gap:4px;font-size:9px;line-height:1.2;}
.home-cube-shift-slot-h{font-weight:700;color:#0f172a;white-space:nowrap;}
.home-cube-daynav,.home-cube-daynav-label,.home-cube-sub{text-decoration:none;}
.home-cube-shift-slot--done .home-cube-shift-slot-h{color:#94a3b8;text-decoration:line-through;}
.home-cube-shift-slot--done .home-cube-shift-post,
.home-cube-shift-slot--done .home-cube-shift-pause{color:#94a3b8;}
.home-cube-shift-slot--active .home-cube-shift-slot-h{color:#0369a1;}
.home-cube-shift-ix{font-size:8px;font-weight:800;color:#64748b;min-width:10px;}
.home-cube-shift-post{font-size:8px;color:#64748b;font-weight:600;}
.home-cube-shift-pause{font-size:8px;color:#0369a1;font-weight:700;white-space:nowrap;}
.home-cube-shift-multi{font-size:8px;font-weight:800;color:#0369a1;background:#e0f2fe;padding:1px 5px;border-radius:6px;white-space:nowrap;flex-shrink:0;}
.home-cube-shift-av{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;flex-shrink:0;margin-top:1px;}
.home-cube-more{font-size:9px;color:#64748b;margin-top:3px;font-weight:500;}
.home-cube-empty{font-size:10px;color:#94a3b8;margin-top:4px;line-height:1.25;}
.home-alert-text{font-size:10px;font-weight:500;color:#ffffff;flex:1;}
.home-alert-action{font-size:9px;font-weight:500;color:#ffffff;background:rgba(255,255,255,.2);padding:2px 7px;border-radius:8px;white-space:nowrap;}

/* ?? KPI Cards ?? */
.home-kpi-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.home-kpi-card{
  background:var(--surface-0,#fff);
  border:1px solid #eef2f7;border-radius:var(--r-tile,14px);padding:11px 11px 12px;
  box-shadow:var(--elev-1,0 1px 3px rgba(15,23,42,.06));
  display:flex;flex-direction:column;gap:5px;position:relative;overflow:hidden;
}
.home-kpi-top{display:flex;align-items:flex-start;gap:6px;min-width:0;min-height:22px;}
.home-kpi-ic{
  width:22px;height:22px;flex-shrink:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;background:#eef2f7;color:#64748b;
}
.home-kpi-card--today .home-kpi-ic{background:#eef4ff;color:#1d4ed8;}
.home-kpi-card--actual .home-kpi-ic{background:#e9f9ef;color:#16a34a;}
.home-kpi-card--week .home-kpi-ic{background:#eaf7f5;color:#0d9488;}
.home-kpi-label{font-size:10px;color:var(--ink-500);text-transform:uppercase;letter-spacing:.3px;font-weight:700;line-height:1.2;padding-top:2px;}
.home-kpi-value{font-size:19px;font-weight:800;color:var(--ink-900);line-height:1.05;letter-spacing:-.5px;}
.home-kpi-sub{font-size:11px;font-weight:700;line-height:1.2;}
.home-kpi-badge{font-size:8px;font-weight:500;padding:1px 4px;border-radius:4px;display:inline-flex;margin-top:2px;}
.home-kpi-badge.up{background:#EAF3DE;color:#3B6D11;}
.home-kpi-badge.down{background:#FCEBEB;color:#A32D2D;}
/* ?? V10 Module Headers ?? */
.mod-hdr{display:flex;align-items:center;gap:10px;padding:10px 0 14px;}
.mod-hdr-back{width:34px;height:34px;border-radius:10px;border:0.5px solid #e2e8f0;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:#475569;font-size:14px;}
.mod-hdr-back:active{background:#f1f5f9;}
.mod-hdr-info{flex:1;min-width:0;}
.mod-hdr-title{font-size:15px;font-weight:500;color:#1a1a1a;}
.mod-hdr-sub{font-size:10px;color:#888780;margin-top:1px;}
.mod-hdr-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:#fff;flex-shrink:0;}

/* ?? V10 Dark module tab bars (.mod-view) ?? */
.mod-view .tabs{background:var(--mod-c,#185FA5);color:#fff;margin:0 -15px 14px;padding:4px 15px;border-radius:0;gap:2px;}
.mod-view .tab{color:rgba(255,255,255,.86)!important;border-radius:7px;text-shadow:0 1px 1px rgba(0,0,0,.24);}
.mod-view .tab.active,.mod-view .tab.active-pvp,.mod-view .tab.active-mypie,.mod-view .tab.active-salad,.mod-view .tab.active-todo,.mod-view .tab.active-frigo{background:rgba(255,255,255,.22);color:#fff!important;box-shadow:none;text-shadow:none;}
body.premium-ui .mod-view .tabs{background:#f1f5fb!important;color:#475569!important;margin:0 0 14px 0!important;padding:4px!important;border-radius:14px!important;border:1px solid #d9e2ef!important;box-shadow:none!important;}
body.premium-ui .mod-view .tab{color:#475569!important;text-shadow:none!important;border-radius:11px!important;font-size:12px!important;font-weight:600!important;padding:10px 10px!important;}
body.premium-ui .mod-view .tab.active,body.premium-ui .mod-view .tab.active-pvp,body.premium-ui .mod-view .tab.active-mypie,body.premium-ui .mod-view .tab.active-salad,body.premium-ui .mod-view .tab.active-todo,body.premium-ui .mod-view .tab.active-frigo{color:#0f172a!important;background:#fff!important;border:1px solid #cfdae9!important;box-shadow:0 3px 8px rgba(15,23,42,.08)!important;}

/* ?? Contraste renforc? : texte blanc sur fonds bleus fonc?s ?? */
[style*="background:#003896"],
[style*="background:#0C447C"],
[style*="background:#185FA5"],
[style*="background:#1A5CB8"],
[style*="background:#0891b2"],
[style*="background:#0e7490"],
[style*="background:linear-gradient(135deg,#003896"],
[style*="background:linear-gradient(135deg,#0C447C"],
[style*="background:linear-gradient(135deg,#185FA5"],
[style*="background:linear-gradient(135deg,#1A5CB8"],
[style*="background:linear-gradient(135deg,#0891b2"],
[style*="background:linear-gradient(90deg,#0891b2"]{
  color:#fff !important;
}
[style*="background:#003896"] *,
[style*="background:#0C447C"] *,
[style*="background:#185FA5"] *,
[style*="background:#1A5CB8"] *,
[style*="background:#0891b2"] *,
[style*="background:#0e7490"] *,
[style*="background:linear-gradient(135deg,#003896"] *,
[style*="background:linear-gradient(135deg,#0C447C"] *,
[style*="background:linear-gradient(135deg,#185FA5"] *,
[style*="background:linear-gradient(135deg,#1A5CB8"] *,
[style*="background:linear-gradient(135deg,#0891b2"] *,
[style*="background:linear-gradient(90deg,#0891b2"] *{
  color:inherit !important;
}

/* ?? V10 Sales dark tab bar ?? */
.sales-tab-bar{background:#1A5CB8;color:#fff;margin:0 -15px 14px;padding:6px 15px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;}
.sales-tab-bar::-webkit-scrollbar{display:none;}
.sales-tab-bar>button.btn{color:rgba(255,255,255,.65)!important;background:transparent!important;box-shadow:none!important;border:none!important;flex:1;font-size:11px;padding:8px 6px;}
.sales-tab-bar>button.btn:not(.secondary){background:rgba(255,255,255,.18)!important;color:#fff!important;}
body.premium-ui .sales-tab-bar{background:#f1f5fb!important;border:1px solid #d9e2ef;border-radius:14px!important;margin:0 0 14px 0!important;padding:4px!important;}
body.premium-ui .sales-tab-bar>button.btn{color:#475569!important;background:transparent!important;font-weight:600!important;font-size:12px!important;border-radius:11px!important;padding:10px 8px!important;}
body.premium-ui .sales-tab-bar>button.btn:not(.secondary){color:#0f172a!important;background:#fff!important;border:1px solid #cfdae9!important;box-shadow:0 3px 8px rgba(15,23,42,.08)!important;}

/* ?? Visual Alignment Kit (visuel/*) ?? */
:root{
  --v-radius-card: 12px;
  --v-radius-row: 10px;
  --v-radius-tab: 8px;
  --v-shadow-soft: 0 2px 6px rgba(15,23,42,.06);
  --v-input-pad: 10px 11px;
  --v-font-title: 13px;
  --v-font-meta: 10px;
}

.mod-view .mod-hdr{
  padding:8px 0 12px;
}
.mod-view .mod-hdr-title{
  font-size:14px;
}
.mod-view .mod-hdr-sub{
  font-size:10px;
  color:#94a3b8;
}

.mod-view .tabs{
  border-radius:10px;
  margin-bottom:12px;
}
.mod-view .tab{
  font-size:10px;
  padding:8px 5px;
}
body.premium-ui .mod-view .tabs{background:#f1f5fb!important;border:1px solid #d9e2ef!important;border-radius:14px!important;margin:0 0 14px 0!important;padding:4px!important;}
body.premium-ui .mod-view .tab{color:#475569!important;font-size:12px!important;font-weight:600!important;text-shadow:none!important;padding:10px 10px!important;border-radius:11px!important;}

.mod-view .card{
  border-radius:var(--v-radius-card);
  box-shadow:var(--v-shadow-soft);
  border:0.5px solid var(--color-border-tertiary);
  padding:12px;
}

/* Tr?sorerie en quasi plein ?cran, lisible sur toute la hauteur */
#view-tresorerie .mod-hdr{
  margin-bottom:6px;
}
#view-tresorerie .card{
  margin-bottom:0 !important;
  min-width:0;
}
#tresorerie-frame{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
}
#treso-fs-back{
  display:none;
}

/* Tr?sorerie : remplir main sans scroll page (barre bleue journal toujours visible) */
main:has(> #view-tresorerie:not(.hidden)){
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:100% !important;
  min-height:0 !important;
  padding-bottom:0 !important;
}
body.route-tresorerie{
  overflow:hidden;
}
#view-tresorerie.treso-fullscreen{
  flex:1 1 auto;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:0;
  height:auto;
  max-height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  align-self:stretch;
}
#view-tresorerie.treso-fullscreen .mod-hdr{
  display:none !important;
}
#view-tresorerie.treso-fullscreen .card{
  flex:1 1 auto;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:0 !important;
  height:auto !important;
  max-height:100%;
  overflow:hidden;
}
#view-tresorerie.treso-fullscreen #tresorerie-frame{
  width:100% !important;
  max-width:100% !important;
}
#view-tresorerie.treso-fullscreen #treso-fs-back{
  display:flex !important;
  position:fixed;
  top:10px;
  left:10px;
  z-index:1200;
  box-shadow:0 6px 16px rgba(15,23,42,.18);
}
@media (max-width:768px){
  #view-tresorerie.treso-fullscreen{
    padding:0;
    min-height:100dvh;
  }
  #view-tresorerie.treso-fullscreen .card{
    height:100dvh !important;
    min-height:100dvh !important;
    border-radius:0;
  }
  #view-tresorerie.treso-fullscreen #treso-fs-back{
    top:max(10px,env(safe-area-inset-top,0px));
    left:max(10px,env(safe-area-inset-left,0px));
    width:44px;
    height:44px;
    border-radius:12px;
  }
  #view-tresorerie.treso-fullscreen #tresorerie-frame{
    min-height:100%;
  }
}
/* Tr?sorerie : fen?tre partag?e (navigateur ~50 % largeur) */
@media (max-width:1100px){
  #view-tresorerie.treso-fullscreen .card{
    min-width:0;
  }
  #view-tresorerie.treso-fullscreen #tresorerie-frame{
    width:100%;
    min-width:0;
  }
}

/* Forms inside priority modules */
#view-frais input,#view-frais select,#view-frais textarea,
#view-pvp input,#view-pvp select,#view-pvp textarea,
#view-salad input,#view-salad select,#view-salad textarea,
#view-todo input,#view-todo select,#view-todo textarea,
#view-reception input,#view-reception select,#view-reception textarea{
  padding:var(--v-input-pad);
  border-radius:8px;
  border:0.5px solid var(--color-border-secondary);
  font-size:12px;
}

#view-frais .search-input,
#view-pvp .search-input,
#view-salad .search-input{
  border-radius:9px!important;
  font-size:12px!important;
  padding:10px 10px 10px 35px!important;
}

#view-frais .btn,
#view-pvp .btn,
#view-salad .btn,
#view-todo .btn,
#view-reception .btn{
  border-radius:9px;
  padding:11px;
  font-size:12px;
  font-weight:500;
}

/* Lists in DLC/PVP/Salad */
#view-frais .list-item,
#view-pvp .list-item,
#view-salad .list-item{
  border-radius:10px;
  box-shadow:none;
  border:0.5px solid var(--color-border-tertiary);
  min-height:64px;
}
#view-frais .item-title,
#view-pvp .item-title,
#view-salad .item-title{
  font-size:12px;
  font-weight:500;
}
#view-frais .item-sub,
#view-pvp .item-sub,
#view-salad .item-sub{
  font-size:10px;
  color:#64748b;
}

/* TODO visual hierarchy closer to mockup */
#view-todo .task-card{
  border-radius:10px;
  border:0.5px solid var(--color-border-tertiary);
  box-shadow:none;
  padding:10px 11px;
  margin-bottom:6px;
}
#view-todo .todo-progress-hero{
  background:linear-gradient(135deg,var(--todo),#5b21b6);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:10px;
  color:#fff;
}
#view-todo .todo-progress-hero-next{
  background:linear-gradient(135deg,#475569,#334155);
}
#view-todo .todo-progress-date{
  font-size:12px;
  font-weight:500;
}
#view-todo .todo-progress-count{
  font-size:10px;
  opacity:.9;
  margin:2px 0 7px;
}
#view-todo .todo-progress-track{
  height:5px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.3);
}
#view-todo .todo-progress-fill{
  height:100%;
  border-radius:999px;
  background:#fff;
  transition:width .4s ease;
}
#view-todo .todo-progress-pct{
  text-align:right;
  font-size:10px;
  margin-top:3px;
  opacity:.9;
}
#view-todo .todo-zone-head{
  border-radius:9px;
  padding:8px 10px;
  margin-bottom:4px;
  color:#fff;
}
#view-todo .todo-zone-head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
#view-todo .todo-zone-name{
  font-size:11px;
  font-weight:500;
  text-transform:uppercase;
}
#view-todo .todo-zone-ratio{
  font-size:10px;
  opacity:.95;
}
#view-todo .todo-zone-track{
  height:4px;
  border-radius:3px;
  margin-top:6px;
  overflow:hidden;
  background:rgba(255,255,255,.3);
}
#view-todo .todo-zone-fill{
  height:100%;
  border-radius:3px;
  background:#fff;
  transition:width .4s ease;
}
#view-todo .time-chip{
  font-size:10px;
  padding:3px 8px;
}
#view-todo .todo-check{
  width:28px;
  height:28px;
  border-width:1.5px;
}

/* Reception cards/buttons — tuiles téléphone plus bas */
#view-reception .sup-type-btn{
  border-radius:12px;
  padding:12px 8px;
  font-size:12px;
}
#view-reception .card h3{
  font-size:14px;
}
#view-reception .small{
  font-size:10px;
}

/* ???????????????????????????????????????????????
   DLC & TRA?ABILIT? ? scan form (mockup-match)
??????????????????????????????????????????????? */

/* Alert strip */
#view-frais .frais-alert-strip{
  display:flex;
  align-items:center;
  gap:7px;
  background:#E24B4A;
  color:#fff;
  font-size:11px;
  font-weight:500;
  padding:8px 14px;
  cursor:pointer;
  margin:0 -15px 0;
}
.frais-alert-count{
  margin-left:auto;
  background:rgba(255,255,255,.25);
  border-radius:20px;
  padding:2px 8px;
  font-size:10px;
  white-space:nowrap;
}

/* Tabs override for 5 tabs ? specificity ?lev?e pour battre .mod-view .tabs */
#view-frais .frais-tabs{
  display:flex !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  gap:0 !important;
  padding:0 !important;
  border-bottom:2px solid #e2e8f0 !important;
  background:#fff !important;
  margin:0 !important;
  border-radius:0 !important;
}
#view-frais .frais-tabs::-webkit-scrollbar{display:none;}
#view-frais .frais-tabs .tab{
  flex:0 0 auto !important;
  padding:9px 13px !important;
  font-size:12px !important;
  font-weight:500 !important;
  white-space:nowrap;
  border:none !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#64748b !important;
  border-bottom:2px solid transparent !important;
  margin-bottom:-2px !important;
  box-shadow:none !important;
}
#view-frais .frais-tabs .tab.active{
  color:#185FA5 !important;
  border-bottom-color:#185FA5 !important;
  font-weight:600 !important;
  background:transparent !important;
}
#view-frais .frais-tabs{
  position:relative;
}
#view-frais .frais-tabs::after{
  content:'';
  position:absolute;
  top:0;right:0;bottom:2px;
  width:32px;
  pointer-events:none;
  background:linear-gradient(to left,#fff 0%,rgba(255,255,255,0));
}
#view-frais .frais-tabs.is-scrolled-end::after{display:none;}
#view-frais #frais-history,
#view-frais #frais-deleted-log{
  max-width:100%;
  overflow-x:hidden;
}
#view-frais .frais-log-card{
  max-width:100%;
  overflow:hidden;
  word-break:break-word;
  overflow-wrap:anywhere;
}
#view-frais .frais-log-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
#view-frais .frais-log-thumb{
  width:52px;
  height:52px;
  border-radius:10px;
  object-fit:cover;
  flex-shrink:0;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
}
#view-frais .frais-log-thumb-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#94a3b8;
  font-size:16px;
}
#view-frais .frais-log-body{
  min-width:0;
  flex:1;
}
#view-frais .frais-log-title,
#view-frais .frais-log-meta,
#view-frais .frais-log-card .small{
  overflow-wrap:anywhere;
  word-break:break-word;
}
#view-frais .frais-long-grp-btn.active{
  background:#185FA5 !important;
  color:#fff !important;
  border-color:#185FA5 !important;
}

/* Scan hero */
#view-frais .frais-scan-hero{
  position:relative;
  margin:14px 0 0;
  border:1.5px dashed #93c5fd;
  border-radius:14px;
  background:#f0f7ff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:22px 16px;
  cursor:pointer;
  min-height:100px;
}
.frais-scan-icon{
  width:48px;height:48px;
  background:#dbeafe;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:4px;
}
.frais-scan-label{
  font-size:13px;font-weight:500;color:#185FA5;
}
.frais-scan-hint{
  font-size:10px;color:#64748b;
}

/* Divider */
#view-frais .frais-divider{
  display:flex;align-items:center;gap:8px;
  margin:12px 0;
}
#view-frais .frais-div-line{flex:1;height:1px;background:#e2e8f0;}
#view-frais .frais-div-text{font-size:10px;color:#94a3b8;white-space:nowrap;}

/* Form block */
#view-frais .frais-form-block{
  padding:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
#view-frais .frais-field-group{display:flex;flex-direction:column;gap:5px;}
#view-frais .frais-field-label{
  font-size:10px !important;
  font-weight:600 !important;
  letter-spacing:.06em;
  color:#94a3b8 !important;
  text-transform:uppercase;
}
#view-frais .frais-field-input{
  width:100% !important;
  border:1.5px solid #e2e8f0 !important;
  border-radius:9px !important;
  padding:9px 11px !important;
  font-size:13px !important;
  color:#1e293b !important;
  background:#fff !important;
  box-sizing:border-box;
  outline:none;
  transition:border-color .15s;
}
#view-frais .frais-field-input:focus{border-color:#185FA5 !important;}
#view-frais .frais-name-sub{
  width:100% !important;
  border:1px solid #e2e8f0 !important;
  border-radius:8px !important;
  padding:6px 10px !important;
  font-size:11px !important;
  color:#64748b !important;
  background:#f8fafc !important;
  box-sizing:border-box;
  outline:none;
}
#view-frais .frais-name-sub:focus{border-color:#185FA5 !important;background:#fff !important;}

/* Rayon pills */
#view-frais .frais-rpills{display:flex;flex-wrap:wrap;gap:6px;}
#view-frais .frais-rpill{
  padding:5px 11px !important;
  border-radius:20px !important;
  font-size:11px !important;
  font-weight:500 !important;
  border:1.5px solid #e2e8f0 !important;
  color:#475569 !important;
  background:#f8fafc !important;
  cursor:pointer;
  transition:all .15s;
  user-select:none;
  display:inline-block;
  box-shadow:none !important;
}
#view-frais .frais-dlc-kind-btn.active,
#view-frais .frais-ddm-fmt.active{
  background:#185FA5!important;
  color:#fff!important;
  border-color:#185FA5!important;
}
#view-frais .frais-ddm-fmt.active .small{color:rgba(255,255,255,.85)!important;}
#view-frais .frais-rpill.sel{
  background:#185FA5 !important;
  border-color:#185FA5 !important;
  color:#fff !important;
}
#view-frais .frais-rpill.disabled{
  opacity:.45;
  cursor:not-allowed;
  filter:grayscale(.2);
}

/* Date pills */
#view-frais .frais-dpills{display:flex;gap:6px;flex-wrap:wrap;}
#view-frais .frais-dpill{
  padding:5px 11px !important;
  border-radius:20px !important;
  font-size:11px !important;
  font-weight:500 !important;
  border:1.5px solid #e2e8f0 !important;
  color:#475569 !important;
  background:#f8fafc !important;
  cursor:pointer;
  transition:all .15s;
  user-select:none;
  display:inline-block;
  box-shadow:none !important;
}
#view-frais .frais-dpill.sel{background:#185FA5 !important;border-color:#185FA5 !important;color:#fff !important;}
#view-frais .frais-dpill-0{border-color:#fca5a5 !important;color:#dc2626 !important;background:#fef2f2 !important;}
#view-frais .frais-dpill-0.sel{background:#dc2626 !important;border-color:#dc2626 !important;color:#fff !important;}
#view-frais .frais-dpill-1{border-color:#fdba74 !important;color:#ea580c !important;background:#fff7ed !important;}
#view-frais .frais-dpill-1.sel{background:#ea580c !important;border-color:#ea580c !important;color:#fff !important;}
#view-frais .frais-dpill-2{border-color:#86efac !important;color:#16a34a !important;background:#f0fdf4 !important;}
#view-frais .frais-dpill-2.sel{background:#16a34a !important;border-color:#16a34a !important;color:#fff !important;}

#view-frais .frais-date-input{
  margin-top:4px;
  padding:7px 10px !important;
  border:1.5px solid #185FA5 !important;
  border-radius:8px !important;
  font-size:12px !important;
  width:100%;
  box-sizing:border-box;
}
#view-frais .frais-date-label{
  font-size:10px;
  color:#185FA5;
  min-height:14px;
  margin-top:3px;
}

/* Quantity row */
#view-frais .frais-qty-row{display:flex;align-items:center;gap:10px;}
#view-frais .frais-qty-btn{
  width:32px !important;height:32px !important;
  border-radius:50% !important;
  border:1.5px solid #cbd5e1 !important;
  background:#fff !important;
  font-size:18px !important;
  line-height:1;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  color:#475569 !important;
  font-weight:400;
  padding:0 !important;
  box-shadow:none !important;
}
#view-frais .frais-qty-btn:active{background:#f1f5f9 !important;}
#view-frais .frais-qty-val{
  font-size:18px;
  font-weight:500;
  color:#1e293b;
  min-width:28px;
  text-align:center;
}
#view-frais .frais-qty-unit{font-size:11px;color:#94a3b8;}

/* CTA button */
#view-frais .frais-cta-btn{
  display:block;
  width:100%;
  margin:16px 0 20px;
  padding:13px;
  border:none;
  border-radius:11px;
  background:#185FA5;
  color:#fff;
  font-size:13px;
  font-weight:600;
  text-align:center;
  cursor:pointer;
  transition:opacity .15s,background .15s;
  box-shadow:none;
}
#view-frais .frais-cta-disabled{
  background:#cbd5e1 !important;
  color:#94a3b8 !important;
  cursor:not-allowed;
}

/* Scan tab spacing */
#view-frais #frais-scan{
  padding-bottom:20px;
}

/* ?? Ergonomie globale: navigation + actions rapides ?? */
#module-grid-overlay .mi-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px 10px;
}
#module-grid-overlay .mi-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  font-size:23px;
}
#module-grid-overlay .mi-label{
  font-size:11px;
  color:#d4d4d8;
}
#module-grid-overlay .mi-group-tag{
  margin-top:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:9px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#a8b3c7;
}
#module-grid-overlay .mi-group-operations,#module-grid-overlay .mg-group-operations{background:#1f2937;color:#93c5fd;border-color:#1d4ed8;}
#module-grid-overlay .mi-group-controles,#module-grid-overlay .mg-group-controles{background:#1f2937;color:#c4b5fd;border-color:#6d28d9;}
#module-grid-overlay .mi-group-communication,#module-grid-overlay .mg-group-communication{background:#1f2937;color:#fbcfe8;border-color:#be185d;}
#module-grid-overlay .mi-group-administration,#module-grid-overlay .mg-group-administration{background:#1f2937;color:#a7f3d0;border-color:#047857;}
#module-grid-overlay .mi-group-autres,#module-grid-overlay .mg-group-autres{background:#1f2937;color:#cbd5e1;border-color:#475569;}
#module-grid-overlay .mg-group-legend{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:4px 0 12px;
}
#module-grid-overlay .mg-group-pill{
  display:inline-flex;
  align-items:center;
  font-size:10px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid #374151;
  background:#1f2937;
  color:#e5e7eb;
}

.qa-cat-pill{
  margin-top:0;
  display:inline-flex;
  font-size:8px;font-weight:700;
  padding:2px 7px;
  border-radius:999px;
  background:#eef2ff;
  color:#475569;
  line-height:1.3;
  text-transform:uppercase;letter-spacing:.4px;
}
.qa-cat-operations{background:#dbeafe;color:#1e3a8a;}
.qa-cat-controles{background:#ede9fe;color:#5b21b6;}
.qa-cat-communication{background:#fce7f3;color:#9d174d;}
.qa-cat-administration{background:#dcfce7;color:#166534;}
.qa-cat-pilotage{background:#e0f2fe;color:#075985;}
.qa-cat-planning{background:#ecfccb;color:#3f6212;}
.qa-cat-autres{background:#e2e8f0;color:#334155;}
.qa-tile-group{
  box-shadow:0 0 0 1px rgba(255,255,255,.2) inset,0 10px 24px rgba(15,23,42,.16);
}

#reception-new .card{
  padding-bottom:90px;
}
#reception-new .rec-action-bar{
  position:sticky;
  bottom:0;
  background:linear-gradient(180deg,rgba(255,255,255,.7),#fff 26%);
  padding-top:8px;
  z-index:12;
}
#reception-new .rec-action-bar .btn{
  box-shadow:0 3px 10px rgba(15,23,42,.14);
}

@media (max-width:380px){
  #module-grid-overlay .mi-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* =========================================================
   Premium Brand Overhaul (global modules)
   ========================================================= */
body.premium-ui{
  --premium-bg:#eef2f7;
  --premium-surface:#ffffff;
  --premium-surface-soft:#f8fafc;
  --premium-border:#d9e2ef;
  --premium-text:#0f172a;
  --premium-muted:#64748b;
  --premium-brand:#003896;
  --premium-brand-2:#1a5cb8;
  --premium-danger:#d92d20;
  --premium-success:#15803d;
  --premium-shadow:0 10px 26px rgba(15,23,42,.08);
  --premium-shadow-soft:0 4px 12px rgba(15,23,42,.06);
  --premium-radius-card:16px;
  --premium-radius-row:12px;
  --premium-radius-pill:999px;
}

body.premium-ui{
  background:linear-gradient(180deg,#f7f9fc 0%,var(--premium-bg) 100%);
  color:var(--premium-text);
}

body.premium-ui header{
  backdrop-filter:saturate(130%) blur(6px);
  background:rgba(255,255,255,.9);
  border-bottom:1px solid var(--premium-border);
}
body.premium-ui nav{
  background:rgba(255,255,255,.94);
  border-top:1px solid var(--premium-border);
  box-shadow:0 -8px 26px rgba(15,23,42,.09);
}

body.premium-ui main > div[id^="view-"]{
  animation:premiumFadeIn .2s ease;
}
@keyframes premiumFadeIn{
  from{opacity:.4;transform:translateY(3px);}
  to{opacity:1;transform:translateY(0);}
}

/* Shared cards and rows */
body.premium-ui .card,
body.premium-ui .reception-card,
body.premium-ui .planning-card,
body.premium-ui .personnel-card,
body.premium-ui .sales-week-card,
body.premium-ui .plan-mob-card,
body.premium-ui .list-item{
  background:var(--premium-surface) !important;
  border:1px solid var(--premium-border) !important;
  border-radius:var(--premium-radius-card) !important;
  box-shadow:var(--premium-shadow-soft) !important;
}

body.premium-ui .empty-state{
  background:var(--premium-surface-soft);
  border:1px dashed #c9d6e8;
  border-radius:16px;
}

/* Inputs / controls */
body.premium-ui input,
body.premium-ui select,
body.premium-ui textarea{
  border:1px solid #cfdae9 !important;
  background:#fff !important;
  border-radius:12px !important;
  color:var(--premium-text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
body.premium-ui input:focus,
body.premium-ui select:focus,
body.premium-ui textarea:focus{
  border-color:#3b82f6 !important;
  box-shadow:0 0 0 3px rgba(59,130,246,.15) !important;
}
body.premium-ui .btn{
  border-radius:12px !important;
  font-weight:600;
  letter-spacing:-.1px;
  box-shadow:0 4px 12px rgba(26,92,184,.18);
  transition:transform var(--dur-fast,.14s) var(--ease-out,ease),box-shadow var(--dur-fast),opacity var(--dur-fast);
}
body.premium-ui .btn:active{transform:scale(.98);opacity:.95;}
body.premium-ui .btn.secondary{
  background:#eef2f7 !important;
  color:#334155 !important;
  box-shadow:none !important;
  border:1px solid #e2e8f0 !important;
}
body.premium-ui .btn.success{
  background:linear-gradient(180deg,#1e5cb8 0%,#1a5cb8 100%) !important;
  box-shadow:0 6px 16px rgba(26,92,184,.28) !important;
}
body.premium-ui .qa-ios-bar .qa-modify-btn{
  border-radius:var(--r-pill,999px)!important;
  font-size:12px!important;font-weight:600!important;
  padding:7px 14px!important;
  box-shadow:none!important;
  border:1px solid #dbe4ef!important;
  background:#fff!important;
  color:#1A5CB8!important;
}
body.premium-ui .qa-ios-bar .qa-modify-btn--accent{
  background:var(--accent-soft,#eaf2ff)!important;
  border-color:#bcd2f5!important;
}
body.premium-ui .qa-sec-title{
  font-size:11px!important;font-weight:700!important;
  color:var(--ink-500,#64748b)!important;
  letter-spacing:.4px!important;
}

/* Module shell */
body.premium-ui .mod-view .mod-hdr{
  background:linear-gradient(135deg,#0c2f67,#1a5cb8) !important;
  color:#fff;
  border-radius:18px;
  padding:12px 14px !important;
  margin-bottom:10px;
  box-shadow:0 10px 20px rgba(0,56,150,.2);
}
body.premium-ui .mod-view .mod-hdr-back,
body.premium-ui #view-planning > .mod-hdr .mod-hdr-back,
body.premium-ui #view-team > .mod-hdr .mod-hdr-back,
body.premium-ui #view-gestion-personnel > .mod-hdr .mod-hdr-back,
body.premium-ui #view-sales > .mod-hdr .mod-hdr-back,
body.premium-ui #view-documents > .mod-hdr .mod-hdr-back,
body.premium-ui #view-chat:not(.ios-chat-root) > .mod-hdr .mod-hdr-back{
  background:rgba(255,255,255,.16);
  color:#fff;
  border:1px solid rgba(255,255,255,.25);
}
body.premium-ui .mod-view .mod-hdr-title,
body.premium-ui #view-planning > .mod-hdr .mod-hdr-title,
body.premium-ui #view-team > .mod-hdr .mod-hdr-title,
body.premium-ui #view-gestion-personnel > .mod-hdr .mod-hdr-title,
body.premium-ui #view-sales > .mod-hdr .mod-hdr-title,
body.premium-ui #view-documents > .mod-hdr .mod-hdr-title,
body.premium-ui #view-chat:not(.ios-chat-root) > .mod-hdr .mod-hdr-title{
  color:#fff !important;
  font-size:14px !important;
  font-weight:600;
}
body.premium-ui .mod-view .mod-hdr-sub,
body.premium-ui #view-planning > .mod-hdr .mod-hdr-sub,
body.premium-ui #view-team > .mod-hdr .mod-hdr-sub,
body.premium-ui #view-gestion-personnel > .mod-hdr .mod-hdr-sub,
body.premium-ui #view-sales > .mod-hdr .mod-hdr-sub,
body.premium-ui #view-documents > .mod-hdr .mod-hdr-sub,
body.premium-ui #view-chat:not(.ios-chat-root) > .mod-hdr .mod-hdr-sub{
  color:#fff !important;
  opacity:.92;
  font-size:11px !important;
  font-weight:500;
  letter-spacing:.02em;
}
body.premium-ui .mod-view .mod-hdr-avatar,
body.premium-ui #view-planning > .mod-hdr .mod-hdr-avatar,
body.premium-ui #view-team > .mod-hdr .mod-hdr-avatar,
body.premium-ui #view-gestion-personnel > .mod-hdr .mod-hdr-avatar,
body.premium-ui #view-sales > .mod-hdr .mod-hdr-avatar,
body.premium-ui #view-documents > .mod-hdr .mod-hdr-avatar,
body.premium-ui #view-chat:not(.ios-chat-root) > .mod-hdr .mod-hdr-avatar{
  border:2px solid rgba(255,255,255,.35);
  box-shadow:0 6px 14px rgba(0,0,0,.18);
}

body.premium-ui .mod-view .tabs,
body.premium-ui .mod-view .tabs.tabs{
  background:#f1f5fb !important;
  border:1px solid #d9e2ef !important;
  border-radius:14px !important;
  box-shadow:none !important;
  margin:0 0 14px 0 !important;
  padding:4px !important;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  color:inherit !important;
}
body.premium-ui .mod-view .tabs::-webkit-scrollbar{
  display:none;
}
body.premium-ui .mod-view .tab,
body.premium-ui .mod-view .tabs .tab{
  border-radius:11px !important;
  color:#475569 !important;
  font-weight:600 !important;
  font-size:12px !important;
  min-height:38px;
  padding:10px 10px !important;
  display:flex;
  align-items:center;
  justify-content:center;
  text-shadow:none !important;
  white-space:nowrap;
  flex-shrink:0;
}
body.premium-ui .mod-view .tab.active,
body.premium-ui .mod-view .tab.active-pvp,
body.premium-ui .mod-view .tab.active-mypie,
body.premium-ui .mod-view .tab.active-salad,
body.premium-ui .mod-view .tab.active-todo,
body.premium-ui .mod-view .tab.active-frigo,
body.premium-ui .mod-view .tabs .tab.active,
body.premium-ui .mod-view .tabs .tab.active-pvp,
body.premium-ui .mod-view .tabs .tab.active-mypie,
body.premium-ui .mod-view .tabs .tab.active-salad,
body.premium-ui .mod-view .tabs .tab.active-todo,
body.premium-ui .mod-view .tabs .tab.active-frigo{
  color:#0f172a !important;
  background:#fff !important;
  border:1px solid #cfdae9 !important;
  box-shadow:0 3px 8px rgba(15,23,42,.08) !important;
  text-shadow:none !important;
}

/* Home / quick actions */
body.premium-ui #home-banner{
  border:1px solid rgba(255,255,255,.25);
  box-shadow:0 14px 28px rgba(0,56,150,.28);
}
body.premium-ui .qa-card{
  border:1px solid #d8e3f0;
  border-radius:16px;
  box-shadow:0 6px 14px rgba(15,23,42,.06);
}
body.premium-ui .premium-qa-card{
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  transition:transform .12s ease, box-shadow .12s ease;
}
body.premium-ui .premium-qa-card:active{
  transform:translateY(1px) scale(.99);
  box-shadow:0 3px 8px rgba(15,23,42,.12);
}
body.premium-ui .qa-cta{
  border-radius:10px;
}

/* Grid overlay */
body.premium-ui #module-grid-overlay{
  background:radial-gradient(circle at 20% -10%,#2b4f94 0%,#0f1d35 55%,#090f1c 100%) !important;
}
body.premium-ui #module-grid-overlay .mi-icon{
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 8px 18px rgba(0,0,0,.25);
}

/* Module-specific accents */
body.premium-ui #view-frais .frais-alert-strip{
  background:linear-gradient(135deg,#d92d20,#f04438) !important;
}
body.premium-ui #view-frais .frais-urgent-banner{
  display:flex;
  align-items:center;
  gap:10px;
  background:linear-gradient(135deg,#fff1f1,#fff7f7);
  border:1px solid #f3c7c7;
  border-left:4px solid #dc2626;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:10px;
}
body.premium-ui #view-frais .frais-urgent-banner i{
  color:#dc2626;
  font-size:18px;
}
body.premium-ui #view-frais .frais-urgent-title{
  font-weight:600;
  color:#9f1239;
  font-size:13px;
}
body.premium-ui #view-frais .frais-urgent-sub{
  font-size:11px;
  color:#b91c1c;
}
body.premium-ui #view-frais .frais-log-card{
  background:#fff;
  border:1px solid #f1d2d2;
  border-left:4px solid #ef4444;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:8px;
}
body.premium-ui #view-frais .frais-log-title{
  font-weight:600;
  font-size:13px;
}
body.premium-ui #view-frais .frais-log-meta{
  color:#dc2626;
  margin-top:2px;
}
body.premium-ui #view-todo .task-card{
  border:1px solid #e1dbfb;
  box-shadow:0 6px 14px rgba(83,74,183,.08);
}
body.premium-ui #view-reception .supplier-select-btn.selected{
  box-shadow:0 0 0 2px rgba(15,110,86,.25),0 8px 18px rgba(15,110,86,.12);
}
body.premium-ui #view-reception .rec-action-bar{
  border-top:1px solid #d9e2ef;
  backdrop-filter:blur(6px);
}
body.premium-ui .reception-plan-use-btn{
  background:linear-gradient(135deg,#0f6e56,#10b981);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:6px 10px;
  font-weight:600;
  cursor:pointer;
  font-size:11px;
  box-shadow:0 4px 10px rgba(15,110,86,.24);
}
body.premium-ui .reception-plan-del-btn{
  background:#ef4444;
  color:#fff;
  border:none;
  border-radius:8px;
  padding:4px 8px;
  cursor:pointer;
  font-size:11px;
}
body.premium-ui #view-chat .ios-thread-messages{
  border-radius:0;
}
body.premium-ui .actl-hub-card{
  border:1px solid #d8e3f0;
  box-shadow:var(--premium-shadow-soft);
}

/* Focus visibility */
body.premium-ui button:focus-visible,
body.premium-ui [role="button"]:focus-visible,
body.premium-ui .tab:focus-visible,
body.premium-ui input:focus-visible,
body.premium-ui select:focus-visible,
body.premium-ui textarea:focus-visible{
  outline:3px solid rgba(26,92,184,.35);
  outline-offset:2px;
}

@media (max-width:480px){
  body.premium-ui main{padding:10px;padding-bottom:92px;}
  body.premium-ui .mod-view .mod-hdr{border-radius:14px;padding:10px 12px !important;}
  body.premium-ui .mod-view .mod-hdr-title{font-size:13px !important;}
  body.premium-ui .card{padding:13px;}
  body.premium-ui .mod-view .tab{font-size:10px !important;padding:8px 8px !important;min-width:max-content;}
}

/* Premium look for non-mod-view module hubs */
body.premium-ui #view-dlc > div:first-child,
body.premium-ui #view-commande > div:first-child,
body.premium-ui #view-gestion-stock > div:first-child,
body.premium-ui #view-etiquettes > div:first-child,
body.premium-ui #view-dlc-decompte > div:first-child,
body.premium-ui #view-gestion-magasin > div:first-child,
body.premium-ui #view-admin-hub > div:first-child,
body.premium-ui #view-gestion-personnel > div:first-child,
body.premium-ui #view-planning > div:first-child,
body.premium-ui #view-team > div:first-child,
body.premium-ui #view-chat:not(.ios-chat-root) > div:first-child,
body.premium-ui #view-sales > div:first-child,
body.premium-ui #view-documents > div:first-child{
  background:linear-gradient(135deg,#0c2f67,#1a5cb8);
  color:#fff;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.15);
  padding:12px 14px;
  box-shadow:0 10px 20px rgba(0,56,150,.18);
  margin-bottom:12px !important;
}
body.premium-ui #view-chat.ios-chat-root > .ios-chat-screen:first-child{
  background:transparent!important;
  color:inherit!important;
  border:none!important;
  box-shadow:none!important;
  padding:0!important;
  margin-bottom:0!important;
}

body.premium-ui #view-dlc > div:first-child .small,
body.premium-ui #view-commande > div:first-child .small,
body.premium-ui #view-gestion-stock > div:first-child .small,
body.premium-ui #view-etiquettes > div:first-child .small,
body.premium-ui #view-dlc-decompte > div:first-child .small,
body.premium-ui #view-gestion-magasin > div:first-child .small,
body.premium-ui #view-admin-hub > div:first-child .small,
body.premium-ui #view-gestion-personnel > div:first-child .small,
body.premium-ui #view-planning > div:first-child .small,
body.premium-ui #view-team > div:first-child .small,
body.premium-ui #view-chat:not(.ios-chat-root) > div:first-child .small,
body.premium-ui #view-sales > div:first-child .small,
body.premium-ui #view-documents > div:first-child .small{
  color:rgba(255,255,255,.8) !important;
}

body.premium-ui #view-dlc .dlc-sub-card,
body.premium-ui #view-commande .dlc-sub-card,
body.premium-ui #view-gestion-magasin .gm-card,
body.premium-ui #view-admin-hub .gm-card,
body.premium-ui #view-admin-hub .admin-hub-card,
body.premium-ui #view-dlc .dlc-module-grid .dlc-sub-card,
body.premium-ui .module-parent-card,
body.premium-ui .carrefour-sub-card{
  border-radius:16px !important;
  border:1px solid #d7e3f1 !important;
  box-shadow:0 10px 18px rgba(15,23,42,.08) !important;
}

body.premium-ui #view-parametres .param-tabs,
body.premium-ui #view-gestion-stock .tabs,
body.premium-ui #view-dlc-decompte .tabs,
body.premium-ui #view-etiquettes .tabs,
body.premium-ui #view-team .tabs,
body.premium-ui #view-planning .tabs,
body.premium-ui #view-sales .tabs{
  background:#f1f5fb !important;
  border:1px solid #d9e2ef;
  border-radius:13px;
  padding:4px;
}
body.premium-ui #view-parametres .param-tabs .tab,
body.premium-ui #view-gestion-stock .tab,
body.premium-ui #view-dlc-decompte .tab,
body.premium-ui #view-etiquettes .tab,
body.premium-ui #view-team .tab,
body.premium-ui #view-planning .tab,
body.premium-ui #view-sales .tab{
  border-radius:10px !important;
  font-weight:600;
}
body.premium-ui #view-parametres .param-tabs .tab.active,
body.premium-ui #view-gestion-stock .tab.active,
body.premium-ui #view-dlc-decompte .tab.active,
body.premium-ui #view-etiquettes .tab.active,
body.premium-ui #view-team .tab.active,
body.premium-ui #view-planning .tab.active,
body.premium-ui #view-sales .tab.active{
  background:#fff !important;
  border:1px solid #cfdae9;
  box-shadow:0 4px 10px rgba(15,23,42,.08);
}

body.premium-ui #view-chat .ios-conv-row{
  border-bottom-color:#e2e8f0;
}

body.premium-ui #view-team .team-msg-card,
body.premium-ui #view-team .card,
body.premium-ui #view-documents .card,
body.premium-ui #param-panel-connlogs .card{
  border:1px solid #d6e1ef !important;
  box-shadow:var(--premium-shadow-soft) !important;
}

body.premium-ui #view-sales .kpi-card{
  border-radius:14px;
  border:1px solid #d7e3f1;
  box-shadow:0 8px 14px rgba(15,23,42,.06);
}

body.premium-ui #view-dlc > div:first-child *,
body.premium-ui #view-commande > div:first-child *,
body.premium-ui #view-gestion-stock > div:first-child *,
body.premium-ui #view-gestion-magasin > div:first-child *,
body.premium-ui #view-admin-hub > div:first-child *{
  color:#fff !important;
}
/* Bouton retour hubs : pas de carré blanc opaque (chevron blanc sur blanc). */
body.premium-ui #view-dlc > .mod-hdr .mod-hdr-back,
body.premium-ui #view-commande > .mod-hdr .mod-hdr-back,
body.premium-ui #view-gestion-stock > .mod-hdr .mod-hdr-back,
body.premium-ui #view-gestion-magasin > .mod-hdr .mod-hdr-back,
body.premium-ui #view-admin-hub > .mod-hdr .mod-hdr-back,
body.premium-ui #view-etiquettes > .mod-hdr .mod-hdr-back,
body.premium-ui #view-dlc-decompte > .mod-hdr .mod-hdr-back,
body.premium-ui #view-gestion-personnel > .mod-hdr .mod-hdr-back{
  background:rgba(255,255,255,.18)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  color:#fff!important;
}
/* Logos SVG modules dans les headers */
.mod-hdr-avatar .module-icon-svg,
.mod-hdr-avatar .mod-hdr-module-icon{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:inherit;
}
body.premium-ui .mod-hdr-avatar:has(.module-icon-svg),
body.premium-ui .mod-hdr-avatar:has(.mod-hdr-module-icon){
  background:transparent!important;
  border:none!important;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
  border-radius:12px;
  overflow:hidden;
}
body.premium-ui #view-dlc > div:first-child .small *,
body.premium-ui #view-commande > div:first-child .small *,
body.premium-ui #view-gestion-stock > div:first-child .small *{
  color:rgba(255,255,255,.8) !important;
}

/* Barre navigation : raccourcis + bouton */
button.nav-btn,nav .nav-btn{
  border:none;
  background:transparent;
  font:inherit;
  padding:0;
}

/* ?? PHASE 1 UI SYSTEM : lisibilit? terrain + coh?rence actions ?? */
:root{
  --ui-primary:#0C447C;
  --ui-primary-strong:#003896;
  --ui-primary-soft:#E6F1FB;
  --ui-success:#0F6E56;
  --ui-success-soft:#EAF3DE;
  --ui-danger:#B42318;
  --ui-danger-soft:#FCEBEB;
  --ui-warning:#BA7517;
  --ui-warning-soft:#FAEEDA;
  --ui-neutral:#475569;
  --ui-neutral-soft:#f1f5f9;
  --ui-stroke:#d9e2ef;
  --ui-radius:14px;
}

body.premium-ui .btn,
body.premium-ui .export-btn{
  min-height:44px;
  border-radius:var(--ui-radius) !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.15;
}

body.premium-ui .btn:not(.secondary):not(.danger):not(.success):not(.pvp):not(.mypie):not(.salad):not(.frigo):not(.todo),
body.premium-ui .export-btn.primary{
  background:var(--ui-primary) !important;
  color:#fff !important;
}

body.premium-ui .btn.success,
body.premium-ui .export-btn.success{
  background:var(--ui-success) !important;
  color:#fff !important;
}

body.premium-ui .btn.danger,
body.premium-ui .export-btn.danger,
body.premium-ui .icon-btn.red{
  background:var(--ui-danger) !important;
  color:#fff !important;
}

body.premium-ui .btn.secondary,
body.premium-ui .export-btn.secondary{
  background:var(--ui-neutral-soft) !important;
  color:var(--ink-700) !important;
  border:1px solid var(--ui-stroke) !important;
}

body.premium-ui .icon-btn{
  min-width:40px;
  min-height:40px;
  border-radius:13px;
}

body.premium-ui .icon-btn.red{
  box-shadow:0 0 0 3px rgba(180,35,24,.08);
}

body.premium-ui .list-item,
body.premium-ui .task-card,
body.premium-ui .inspection-section{
  border:1px solid var(--ui-stroke);
  box-shadow:0 6px 14px rgba(15,23,42,.05);
}

body.premium-ui .item-title,
body.premium-ui .task-card b,
body.premium-ui .task-card [style*="font-weight:500"]{
  color:var(--ink-900);
}

body.premium-ui .item-sub,
body.premium-ui .small{
  color:var(--ink-500);
}

body.premium-ui .inspection-section{
  padding:14px;
  border-radius:18px;
}

body.premium-ui .inspection-section h4{
  color:var(--ui-primary);
  font-size:14px;
  margin-bottom:8px;
}

.inspection-action-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}

.inspection-action-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.export-btn{
  width:100%;
  border:0;
  padding:12px 13px;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  text-align:center;
}

.export-btn .export-sub{
  display:block;
  margin-top:2px;
  font-size:10px;
  font-weight:600;
  opacity:.78;
}

body.premium-ui .inspection-note{
  background:var(--ui-primary-soft);
  border:1px solid #c8dbf2;
  border-radius:14px;
  color:var(--ui-primary);
  padding:10px 12px;
  font-size:12px;
  line-height:1.35;
}

body.premium-ui .danger-zone{
  background:var(--ui-danger-soft) !important;
  border-color:#f3c7c7 !important;
}

body.premium-ui .danger-zone h4{
  color:var(--ui-danger) !important;
}

@media (max-width:430px){
  body.premium-ui .card,
  body.premium-ui .list-item,
  body.premium-ui .task-card{
    border-radius:16px;
  }
  body.premium-ui .right-col{
    gap:7px;
  }
  body.premium-ui .icon-btn{
    width:40px;
    height:40px;
  }
  .inspection-action-row{
    grid-template-columns:1fr;
  }
}

/* ?? PHASE 2 UI SYSTEM : actions danger, densit? mobile, hi?rarchie, onglets ?? */

/* === A. ACTIONS DANGEREUSES : halo rouge, s?paration visuelle === */

body.premium-ui .icon-btn.red,
body.premium-ui button.frais-dlc-delete{
  background:var(--ui-danger) !important;
  color:#fff !important;
  box-shadow:0 0 0 3px rgba(180,35,24,.12);
  position:relative;
}

body.premium-ui .frais-dlc-half50{
  background:var(--ui-danger) !important;
  box-shadow:0 4px 10px rgba(180,35,24,.22);
}

body.premium-ui #modal-confirm .dlg-card,
body.premium-ui #modal-disposition .dlg-card{
  border:2px solid var(--ui-stroke);
}

body.premium-ui #modal-confirm .btn.danger,
body.premium-ui #disp-btn-jete{
  background:var(--ui-danger) !important;
  box-shadow:0 0 0 3px rgba(180,35,24,.12);
  font-weight:700;
}

body.premium-ui #disp-btn-vendu{
  background:var(--ui-success) !important;
}

body.premium-ui #disp-btn-vendu-50{
  background:var(--ui-warning-soft) !important;
  color:#92400e !important;
  border:1.5px solid #fcd34d !important;
  font-weight:600;
}

body.premium-ui .swipe-wrapper{
  background:var(--ui-danger);
  border-radius:16px;
}

body.premium-ui .swipe-content{
  border-radius:16px;
}

/* === B. DENSIT? MOBILE : respiration, lisibilit? terrain === */

body.premium-ui .card{
  padding:16px;
  margin-bottom:12px;
}

body.premium-ui .list-item{
  min-height:64px;
  padding:12px 14px;
  border-radius:16px;
  gap:12px;
}

body.premium-ui .task-card{
  padding:14px 16px;
  border-radius:16px;
  gap:14px;
}

body.premium-ui .item-title{
  font-size:14px;
  line-height:1.3;
}

body.premium-ui .item-sub{
  font-size:11px;
  margin-top:2px;
}

body.premium-ui .qty-ctrl{
  padding:5px 10px;
  border-radius:10px;
  gap:10px;
}

body.premium-ui .qty-btn{
  width:34px;
  height:34px;
  border-radius:10px;
  font-size:20px;
}

body.premium-ui .date-badge{
  width:48px;
  height:48px;
  border-radius:12px;
  font-size:13px;
}

body.premium-ui .right-col{
  gap:8px;
}

/* === C. HEADER / ACCUEIL : hi?rarchie claire === */

body.premium-ui header{
  height:56px;
  padding:8px 14px;
}
body.premium-ui #app-header{
  padding-left:max(8px,env(safe-area-inset-left,0px));
  padding-right:max(10px,env(safe-area-inset-right,0px));
}

body.premium-ui .user-badge{
  font-size:13px;
  padding:5px 14px;
  border-radius:22px;
  font-weight:700;
  letter-spacing:.02em;
}

body.premium-ui #home-banner{
  border-radius:20px;
  min-height:64px;
}

body.premium-ui .ios-home-tile{
  border-radius:16px;
  transition:transform .12s ease;
}

body.premium-ui .ios-home-label{
  font-size:11px;
  font-weight:600;
  line-height:1.2;
  margin-top:4px;
}

body.premium-ui .ios-home-badge{
  font-size:11px;
  font-weight:700;
  min-width:20px;
  height:20px;
  padding:0 5px;
  top:-4px;
  right:-4px;
}

/* === D. ONGLETS : coh?rence entre modules === */

body.premium-ui .tabs{
  background:#f1f5fb;
  border:1px solid var(--ui-stroke);
  border-radius:14px;
  padding:4px;
  gap:3px;
  margin-bottom:14px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

body.premium-ui .tabs::-webkit-scrollbar{
  display:none;
}

body.premium-ui .tab{
  border-radius:11px;
  font-size:11px;
  font-weight:600;
  padding:9px 8px;
  white-space:nowrap;
  color:#60708a;
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

body.premium-ui .tab.active,
body.premium-ui .tab.active-pvp,
body.premium-ui .tab.active-mypie,
body.premium-ui .tab.active-salad,
body.premium-ui .tab.active-todo,
body.premium-ui .tab.active-frigo{
  color:var(--ink-900) !important;
  background:#fff !important;
  border:1px solid #cfdae9;
  box-shadow:0 3px 8px rgba(15,23,42,.07) !important;
}

/* === F. ZONE HEADERS (Check-list / Autocontr?les) === */

body.premium-ui .zone-header{
  border-radius:16px;
  padding:14px 18px;
}

body.premium-ui .zone-progress{
  height:5px;
  border-radius:3px;
  margin-top:10px;
}

/* === G. CHIPS / BADGES : normalisation === */

body.premium-ui .chip{
  font-size:10px;
  font-weight:700;
  padding:3px 9px;
  border-radius:999px;
  letter-spacing:.01em;
}

body.premium-ui .chip.ok{
  background:var(--ui-success-soft);
  color:var(--ui-success);
}

body.premium-ui .chip.late,
body.premium-ui .chip.admin{
  background:var(--ui-danger-soft);
  color:var(--ui-danger);
}

body.premium-ui .chip.warn{
  background:var(--ui-warning-soft);
  color:#92400e;
}

body.premium-ui .chip.staff{
  background:var(--ui-primary-soft);
  color:var(--ui-primary);
}

/* === H. MODALS : plus propres === */

body.premium-ui .dlg-card{
  border-radius:22px;
  padding:22px;
  border:1px solid var(--ui-stroke);
}

body.premium-ui .dlg-title{
  font-size:16px;
  font-weight:700;
  color:var(--ink-900);
}

body.premium-ui .dlg-msg{
  font-size:13px;
  line-height:1.5;
  color:var(--ink-500);
}

body.premium-ui .dlg-btns{
  gap:10px;
  margin-top:4px;
}

body.premium-ui .dlg-btns .btn{
  flex:1;
  padding:14px 10px;
  font-size:14px;
  margin:0;
}

body.premium-ui .modal-card{
  border-radius:22px;
  padding:22px;
  border:1px solid var(--ui-stroke);
}

/* === I. R?CEPTION : stepper plus clair === */

body.premium-ui .reception-card{
  border-radius:18px;
  border-left:5px solid var(--ui-success);
  padding:16px;
}

body.premium-ui .supplier-select-btn{
  /* tailles / layout : #view-reception .supplier-select-btn (tuiles téléphone) */
  font-weight:700;
}

body.premium-ui .supplier-select-btn.selected{
  border-color:#fff;
  box-shadow:0 0 0 3px var(--ui-success);
}

/* === J. RESPONSIVE PETIT MOBILE === */

@media (max-width:380px){
  body.premium-ui .card{padding:12px;}
  body.premium-ui .list-item{padding:10px 12px;min-height:58px;}
  body.premium-ui .task-card{padding:12px 14px;}
  body.premium-ui .icon-btn{width:38px;height:38px;font-size:14px;}
  body.premium-ui .qty-btn{width:30px;height:30px;font-size:17px;}
  body.premium-ui .btn{padding:14px 10px;font-size:14px;}
  body.premium-ui .tab{font-size:10px;padding:8px 6px;}
  body.premium-ui .dlg-card{padding:18px;}
  body.premium-ui .item-title{font-size:13px;}
}

/* ?? PHASE 3 UI SYSTEM : headers modules, CA widget, nav, login, empty states ?? */

/* === A. MODULE HEADERS : couleur par module === */

body.premium-ui .mod-view .mod-hdr{
  border-radius:20px;
  padding:14px 16px !important;
  margin-bottom:12px;
  position:relative;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(15,23,42,.16);
}
body.premium-ui .mod-view .mod-hdr::before{
  content:"";position:absolute;top:-55%;right:-12%;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.22),rgba(255,255,255,0) 68%);
  pointer-events:none;
}
body.premium-ui .mod-view .mod-hdr > *{position:relative;z-index:1;}
body.premium-ui .mod-view .mod-hdr-back{transition:transform var(--dur-fast,.14s) var(--ease-out,ease),background var(--dur-fast,.14s);}
body.premium-ui .mod-view .mod-hdr-back:active{transform:scale(.9);background:rgba(255,255,255,.3)!important;}

body.premium-ui #view-frais > .mod-hdr,
body.premium-ui #view-dlc > .mod-hdr{
  background:linear-gradient(135deg,#0c3a6e,var(--color-dlc)) !important;
}
body.premium-ui #view-pvp > .mod-hdr,
body.premium-ui #view-commande-pvp > .mod-hdr{
  background:linear-gradient(135deg,#3b1d6e,var(--color-pvp)) !important;
}
body.premium-ui #view-mypie > .mod-hdr,
body.premium-ui #view-commande-mypie > .mod-hdr{
  background:linear-gradient(135deg,#6b3500,var(--color-mypie)) !important;
}
body.premium-ui #view-salad > .mod-hdr{
  background:linear-gradient(135deg,#064e3b,var(--color-saladbar)) !important;
}
body.premium-ui #view-frigo > .mod-hdr,
body.premium-ui #view-autocontrol > .mod-hdr{
  background:linear-gradient(135deg,#0c3d65,var(--color-autocontrol)) !important;
}
body.premium-ui #view-todo > .mod-hdr{
  background:linear-gradient(135deg,#3b1d6e,var(--color-checklist)) !important;
}
body.premium-ui #view-reception > .mod-hdr{
  background:linear-gradient(135deg,#064e3b,var(--color-reception)) !important;
}
body.premium-ui #view-pointeuse > .mod-hdr{
  background:linear-gradient(135deg,#0c2f67,var(--color-accueil)) !important;
}
body.premium-ui #view-inspection > .mod-hdr{
  background:linear-gradient(135deg,#3b1d6e,var(--color-checklist)) !important;
}
body.premium-ui #view-pertes > .mod-hdr{
  background:linear-gradient(135deg,#6b3500,#e24b4a) !important;
}
body.premium-ui #view-parametres > .mod-hdr{
  background:linear-gradient(135deg,#1e293b,var(--color-parametres)) !important;
}

body.premium-ui .mod-hdr-avatar{
  width:38px;
  height:38px;
  font-size:13px;
  font-weight:700;
  border:2px solid rgba(255,255,255,.3);
  box-shadow:0 4px 10px rgba(0,0,0,.15);
}

body.premium-ui .mod-hdr-back{
  width:36px;
  height:36px;
  border-radius:12px;
  font-size:15px;
}

body.premium-ui .mod-hdr-title{
  font-size:15px !important;
  font-weight:700;
  letter-spacing:.02em;
  color:#fff !important;
}

body.premium-ui .mod-hdr-sub{
  font-size:11px !important;
  color:#fff !important;
  opacity:.92;
  margin-top:2px;
  font-weight:500;
}

/* === B. WIDGET CA ACCUEIL : plus lisible === */

body.premium-ui .sales-week-card{
  border-radius:16px;
  border:1.5px solid var(--ui-stroke);
}

body.premium-ui .sales-week-today{
  border-color:var(--ui-primary-strong) !important;
  box-shadow:0 4px 14px rgba(0,56,150,.15) !important;
}

body.premium-ui .swc-head{
  padding:8px 12px;
  border-bottom:1px solid var(--ui-stroke);
}

body.premium-ui .swc-actual{
  font-size:18px;
  font-weight:700;
  color:var(--ink-900);
}

body.premium-ui .swc-forecast{
  border-radius:10px;
  padding:7px 10px;
}

body.premium-ui .swc-pct{
  font-size:12px;
  font-weight:700;
}

body.premium-ui .swc-bar{
  height:6px;
  border-radius:4px;
}

/* === C. BARRE NAVIGATION : s?paration et active state === */

body.premium-ui nav{
  background:rgba(255,255,255,.92);
  border-top:1px solid var(--ui-stroke);
  box-shadow:0 -8px 24px rgba(15,23,42,.06);
}

body.premium-ui .nav-btn{
  color:#94a3b8;
  font-weight:600;
  transition:color .12s;
}

body.premium-ui .nav-btn.active{
  color:var(--ui-primary-strong);
}

body.premium-ui .nav-btn.active i{
  transform:translateY(-2px);
}

body.premium-ui .nav-btn-home{
  color:var(--ui-primary-strong);
}

body.premium-ui .dock-tile{
  border-radius:14px;
}

/* === D. LOGIN : plus a?r? et moderne === */

body.premium-ui #login-overlay{
  background:linear-gradient(180deg,#f8fbff 0%,#e8f0fc 100%);
}

body.premium-ui .login-card{
  max-width:540px;
}

body.premium-ui .login-card input{
  border-radius:14px !important;
  padding:16px !important;
  font-size:15px !important;
  border:1.5px solid var(--ui-stroke) !important;
  background:#fff !important;
}

body.premium-ui .login-card input:focus{
  border-color:var(--ui-primary) !important;
  box-shadow:0 0 0 3px rgba(12,68,124,.12) !important;
}

body.premium-ui .login-card .btn{
  border-radius:16px !important;
  padding:16px !important;
  font-size:15px !important;
  font-weight:700;
  letter-spacing:.02em;
}

body.premium-ui .login-card .btn.success{
  background:var(--ui-success) !important;
  box-shadow:0 6px 16px rgba(15,110,86,.2);
}

body.premium-ui .login-card .btn.secondary{
  background:var(--ui-neutral-soft) !important;
  border:1.5px solid var(--ui-stroke) !important;
  box-shadow:none !important;
}

body.premium-ui .login-error{
  border-radius:14px;
  border:1.5px solid #f3c7c7;
  padding:12px 14px;
  font-size:13px;
}

/* === E. EMPTY STATES === */

body.premium-ui .empty-state{
  padding:48px 24px;
  border-radius:20px;
  background:var(--ui-neutral-soft);
  border:1.5px dashed var(--ui-stroke);
}

body.premium-ui .empty-state i{
  font-size:36px;
  opacity:.3;
  margin-bottom:14px;
  color:var(--ui-primary);
}

/* === F. SEARCH BARS === */

body.premium-ui .search-input{
  border-radius:16px !important;
  border:1.5px solid var(--ui-stroke) !important;
  background:#fff !important;
  padding:14px 14px 14px 42px !important;
  font-size:14px !important;
}

body.premium-ui .search-input:focus{
  border-color:var(--ui-primary) !important;
  box-shadow:0 0 0 3px rgba(12,68,124,.1) !important;
}

/* === G. KPI CARDS (accueil, analyse pertes) === */

body.premium-ui .kpi-card{
  border-radius:16px;
  border:1.5px solid var(--ui-stroke);
  background:#fff;
  box-shadow:0 4px 10px rgba(15,23,42,.04);
}

body.premium-ui .kpi-card .kpi-val{
  font-weight:800;
  color:var(--ink-900);
}

body.premium-ui .kpi-card .kpi-lbl{
  font-size:10px;
  font-weight:600;
  color:var(--ink-500);
  text-transform:uppercase;
  letter-spacing:.03em;
}

/* === H. POINTEUSE : couleurs normalis?es === */

body.premium-ui .pointeuse-overlay{
  background:#f8fbff;
}

body.premium-ui .pointeuse-bar,
body.premium-ui .pointeuse-overlay--borne .pointeuse-bar{
  background:#fff!important;
  color:#1e293b!important;
  border-bottom:1px solid #e2e8f0!important;
}
body.premium-ui .pointeuse-bar .pointeuse-bar-title-main,
body.premium-ui .pointeuse-bar .pointeuse-bar-date,
body.premium-ui .pointeuse-bar .pointeuse-bar-session{
  color:inherit!important;
}
body.premium-ui .pointeuse-bar .pointeuse-bar-title-main{color:#0f172a!important;}
body.premium-ui .pointeuse-bar .pointeuse-bar-date{color:#64748b!important;}
body.premium-ui .pointeuse-bar .pointeuse-bar-session{color:#0f766e!important;}
body.premium-ui .pointeuse-bar button.ptse-nav-btn{
  background:#f1f5f9!important;
  border:1px solid #e2e8f0!important;
  color:#334155!important;
  border-radius:12px;
  font-weight:600;
  padding:9px 12px;
}
body.premium-ui .pointeuse-bar button.ptse-nav-btn i{color:#6366f1!important;}
body.premium-ui .pointeuse-bar button.ptse-nav-btn.ptse-tab-active{
  background:#eef2ff!important;
  border-color:#c7d2fe!important;
  color:#4338ca!important;
  box-shadow:0 2px 0 #6366f1,inset 0 1px 0 rgba(255,255,255,.8)!important;
}
body.premium-ui .pointeuse-bar .ptse-bar-back,
body.premium-ui .pointeuse-bar .ptse-bar-change{
  background:#f1f5f9!important;
  color:#334155!important;
  border:1px solid #e2e8f0!important;
}

/* === I. R?CEPTION PLANNING CARDS === */

body.premium-ui .planning-card{
  border-radius:16px;
  border:1.5px solid var(--ui-stroke);
}

body.premium-ui .today-highlight{
  border-left:5px solid var(--ui-primary-strong);
  background:linear-gradient(135deg,#f0f6ff,#fff);
}

/* === J. PERSONNEL CARDS (Param?tres) === */

body.premium-ui .personnel-card{
  border-radius:18px;
  border:1.5px solid var(--ui-stroke);
  padding:16px;
  box-shadow:0 4px 10px rgba(15,23,42,.04);
}

body.premium-ui .perm-grid{
  gap:6px;
}

body.premium-ui .perm-toggle{
  border-radius:12px;
  padding:10px 12px;
  background:var(--ui-neutral-soft);
  border:1px solid transparent;
}

body.premium-ui .perm-toggle label{
  font-size:12px;
  font-weight:600;
}

/* Module grid : glisser plus lisible */
#module-grid-overlay .mi-dragging{
  transform:scale(1.03);
  z-index:5;
  box-shadow:0 8px 24px rgba(0,0,0,.45);
  border-radius:14px;
}
#module-grid-overlay .mg-section-dragging{
  outline:2px dashed rgba(255,255,255,.35);
  border-radius:14px;
}

/* Accueil & modules : confort grand ?cran (ordinateur) */
@media (min-width:1024px){
  main{padding:20px 24px calc(96px + env(safe-area-inset-bottom));}
  body{font-size:17px;}
  #view-home{
    max-width:1500px;
    margin:0 auto;
  }
  main > div[id^="view-"]{
    max-width:1680px;
    margin-left:auto;
    margin-right:auto;
  }
  .card{
    padding:16px 18px;
    border-radius:16px;
  }
  .btn{
    font-size:18px;
    padding:18px 16px;
    border-radius:14px;
  }
  input,select,textarea{
    font-size:17px !important;
    padding:14px 13px !important;
    min-height:48px;
  }
  .mod-hdr-title{font-size:20px;}
  .mod-hdr-sub{font-size:13px;}
  .mod-hdr-avatar{width:42px;height:42px;font-size:14px;}
  .mod-hdr-back{width:40px;height:40px;font-size:16px;}
  .tabs{padding:5px;gap:6px;}
  .tab{font-size:13px;padding:12px 8px;}
  .search-input{font-size:16px;}
  .item-title{font-size:17px;}
  .item-sub{font-size:13px;}
  .group-header{font-size:15px;padding:12px 14px;}
  .ios-home-wrap{
    max-width:none;
    width:100%;
    margin:0;
  }
  .ios-home-grid{
    gap:18px 16px;
    max-width:none;
  }
  .ios-home-tile{
    width:76px;
    height:76px;
    border-radius:20px;
  }
  .ios-home-tile i{font-size:32px;}
  .ios-home-label{
    font-size:13px;
    max-width:110px;
  }
  .ios-folder-modal-grid .ios-home-tile{
    width:68px;
    height:68px;
  }
  .ios-folder-modal-grid .ios-home-tile i{font-size:28px;}
  .home-ca-card{padding:14px 14px;}
  #home-sales-forecast{gap:8px;min-height:76px;}
  .home-cloture-duo{gap:14px;}
  /* Accueil : ops (commande|réception) puis planning pleine largeur */
  .home-widgets-row{flex-direction:column!important;flex-wrap:nowrap;gap:12px;}
  .home-widgets-row .home-widget-cube{flex:0 0 auto;width:100%;min-width:0;}
  .home-widgets-ops{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
  .home-delivery-stack{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
  /* Grille modules PC : colonnes fixes (?vite auto-fill ? 1 colonne via shrink-wrap flex) */
  #home-quick-actions .ios-home-wrap{
    width:100%;
    max-width:none;
  }
  #home-quick-actions .ios-home-grid{
    width:100%;
    max-width:none;
    margin:0;
    grid-template-columns:repeat(var(--qa-cols,6),minmax(0,1fr));
    gap:22px 16px;
    padding:10px 4px 16px;
    justify-items:center;
  }
  #home-quick-actions .ios-home-tile{
    width:var(--qa-tile,84px);
    height:var(--qa-tile,84px);
    border-radius:calc(var(--qa-tile,84px) * .26);
  }
  #home-quick-actions .ios-home-tile i{font-size:calc(var(--qa-tile,84px) * .4);}
  #home-quick-actions .ios-home-label{
    font-size:clamp(11px,calc(var(--qa-tile,84px) * .16),13px);
    max-width:120px;
  }
  nav{
    height:auto;min-height:72px;
    padding:8px 18px calc(10px + env(safe-area-inset-bottom));
  }
  .nav-dock-slots{gap:10px;overflow-x:visible;}
  .nav-dock-btn{padding:6px 10px;}
  .nav-dock-btn span{max-width:110px;font-size:11px;white-space:nowrap;}
  .nav-btn-home{min-width:64px;}
  .ca-tile{min-height:68px;padding:9px 6px 11px;}
  .ca-tile-day{font-size:10px;}
  .ca-tile-val{font-size:14px;}
  .ca-tile-fc,.ca-tile-delta{font-size:10px;}
  #view-frais .frais-field-label{font-size:12px;}
  #view-frais .frais-rpill,#view-frais .frais-dpill{font-size:12px !important;padding:7px 12px !important;}
  #view-frais .frais-date-input{font-size:14px !important;}
  #view-frais .frais-cta-btn{font-size:17px;}
  .qa-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .premium-qa-card .qa-name{font-size:15px!important;}
  .premium-qa-card .qa-cta{font-size:13px!important;padding:10px 12px!important;}
  #home-delivery-widgets .card{font-size:15px;}
  #module-grid-overlay .mi-grid{
    grid-template-columns:repeat(6,1fr)!important;
    gap:24px 14px!important;
  }
  #module-grid-overlay .mi-icon{width:66px;height:66px;font-size:26px;}
  #module-grid-overlay .mi-label{font-size:13px;}
  #module-grid-overlay .mi-group-tag{font-size:10px;}
}

/* Tr?s grand ?cran : exploiter la largeur pour planning et pages */
@media (min-width:1400px){
  main{padding:22px 28px calc(100px + env(safe-area-inset-bottom));}
  #view-home{max-width:1700px;}
  main > div[id^="view-"]{max-width:1900px;}
  #home-quick-actions .ios-home-grid{
    grid-template-columns:repeat(var(--qa-cols,8),minmax(0,1fr));
    gap:24px 18px;
  }
  #home-quick-actions .ios-home-tile{
    width:var(--qa-tile,88px);
    height:var(--qa-tile,88px);
  }
  .ct-grid-wrap{overflow-x:visible;}
  .ct-header-row,.ct-row{grid-template-columns:220px repeat(7,minmax(140px,1fr)) 86px;}
  .ct-day-name{font-size:10px;}
  .ct-day-num{font-size:18px;}
  .ct-emp-name{font-size:13px;}
  .ct-emp-contract{font-size:10px;}
  .ct-cell{min-height:72px;}
  .ct-shift-times{font-size:11px;}
  .ct-shift-post{font-size:9px;}
}

/* Planning RH : lisibilit? */
.planning-day-cell .dc-day{font-size:11px!important;font-weight:600;}
.planning-day-cell .dc-content{font-size:12px!important;line-height:1.35;}
.planning-day-cell.work .dc-hours{font-size:11px!important;}
.planning-staff-name{font-size:15px!important;}
.planning-week-nav .wk-label{font-size:16px!important;}
.planning-delivery{font-size:14px!important;line-height:1.4;}
.planning-card .planning-day-header{font-size:15px!important;}

/* ?????????????????????????????????????????????????????????????
   Planning fullscreen style (inspir? Connecteam)
   ????????????????????????????????????????????????????????????? */
body.planning-fullscreen main{
  padding:0!important;
  padding-bottom:calc(92px + env(safe-area-inset-bottom))!important;
}
body.planning-fullscreen #view-planning{
  height:100dvh;
  overflow:auto;
  background:linear-gradient(180deg,#f4f8ff 0%,#eef4ff 100%);
  padding:14px;
}
body.planning-fullscreen #view-planning > div:first-child{
  max-width:none!important;
  width:100%!important;
  padding:0!important;
}
body.planning-fullscreen .ct-tabs{
  border-radius:18px;
  padding:6px;
  margin-bottom:14px;
  box-shadow:0 8px 28px rgba(15,23,42,.10);
}
body.planning-fullscreen .ct-tab{
  font-size:14px;
  padding:12px 10px;
  border-radius:12px;
  font-weight:600;
}
body.planning-fullscreen .ct-nav-bar{
  border-radius:18px;
  padding:12px 14px;
  margin-bottom:14px;
  box-shadow:0 8px 28px rgba(15,23,42,.10);
}
body.planning-fullscreen .ct-nav-btn{
  width:40px;height:40px;font-size:14px;border-radius:10px;
}
body.planning-fullscreen .ct-week-label{
  font-size:18px;
  font-weight:700;
}
body.planning-fullscreen .ct-today-btn{
  font-size:13px;
  padding:9px 14px;
  border-radius:10px;
}
body.planning-fullscreen .ct-action-btn{
  height:40px;
  font-size:13px;
  padding:0 12px;
  border-radius:10px;
}
body.planning-fullscreen .ct-legend{
  gap:8px;
  margin-bottom:14px;
}
body.planning-fullscreen .ct-legend-chip{
  font-size:12px;
  padding:5px 11px;
}
body.planning-fullscreen .ct-grid-wrap{
  border-radius:20px;
  box-shadow:0 10px 34px rgba(15,23,42,.12);
}
body.planning-fullscreen .ct-header-row,
body.planning-fullscreen .ct-row{
  grid-template-columns:220px repeat(7,minmax(160px,1fr)) 90px;
}
body.planning-fullscreen .ct-day-name{font-size:11px;}
body.planning-fullscreen .ct-day-num{font-size:20px;font-weight:700;}
body.planning-fullscreen .ct-day-stats{font-size:10px;}
body.planning-fullscreen .ct-emp-col{padding:10px 12px;gap:9px;}
body.planning-fullscreen .ct-avatar{width:40px;height:40px;font-size:13px;}
body.planning-fullscreen .ct-emp-name{font-size:14px;font-weight:700;}
body.planning-fullscreen .ct-emp-contract{font-size:11px;}
body.planning-fullscreen .ct-hours-label{font-size:11px;}
body.planning-fullscreen .ct-cell{min-height:84px;font-size:12px;border-radius:10px;}
body.planning-fullscreen .ct-shift-post{font-size:10px;padding:2px 6px;}
body.planning-fullscreen .ct-shift-times{font-size:12px;font-weight:700;}
body.planning-fullscreen .ct-shift-h{font-size:11px;}
body.planning-fullscreen .ct-total-h{font-size:15px;}
body.planning-fullscreen .ct-rest-badge{font-size:10px;}

/* ?? PHASE 4 : POLISH & FINITIONS ?? */

/* === A. TRANSITIONS GLOBALES : touches interactives uniquement (all?g?) === */

body.premium-ui .btn,
body.premium-ui .icon-btn,
body.premium-ui .tab,
body.premium-ui .module-sub-btn,
body.premium-ui .ios-home-tile{
  transition:transform .12s ease, opacity .12s ease;
}

/* === B. GROUP HEADERS : d?grad? subtil, ic?ne anim?e === */

body.premium-ui .group-header{
  background:linear-gradient(135deg,var(--ui-primary-strong),#1e5cb8) !important;
  color:#fff !important;
  border-radius:14px !important;
  padding:13px 16px !important;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:.04em;
  box-shadow:0 4px 12px rgba(0,56,150,.15);
  border:none !important;
}

body.premium-ui .group-header .count,
body.premium-ui .group-header span[style*="opacity"]{
  background:rgba(255,255,255,.2);
  padding:2px 8px;
  border-radius:20px;
  font-size:11px;
  font-weight:600;
}

body.premium-ui .group-header i{
  transition:transform .2s ease;
}

/* === C. ICON BUTTONS : ombres coh?rentes, feedback tactile === */

body.premium-ui .icon-btn{
  border-radius:13px !important;
  box-shadow:0 4px 10px rgba(0,0,0,.1) !important;
  border:none !important;
}

body.premium-ui .icon-btn:active{
  transform:scale(.88) !important;
  box-shadow:0 2px 4px rgba(0,0,0,.08) !important;
}

body.premium-ui .icon-btn.gray{
  background:#e2e8f0 !important;
  color:#475569 !important;
  box-shadow:0 2px 6px rgba(0,0,0,.06) !important;
}

body.premium-ui .icon-btn.green{
  background:var(--ui-success) !important;
  box-shadow:0 4px 10px rgba(5,150,105,.2) !important;
}

body.premium-ui .icon-btn.dark{
  background:#1e293b !important;
  box-shadow:0 4px 10px rgba(15,23,42,.2) !important;
}

/* === D. CARDS : hover doux, bordures plus subtiles === */

body.premium-ui .card{
  border:1px solid var(--ui-stroke) !important;
  border-radius:18px !important;
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
  background:#fff !important;
}

body.premium-ui .list-item{
  border:1px solid var(--ui-stroke) !important;
  border-radius:16px !important;
  background:#fff !important;
}

body.premium-ui .swipe-content{
  background:#fff !important;
}

/* === E. DIALOGS/MODALS : backdrop flou, animations plus douces === */

body.premium-ui #modal-confirm,
body.premium-ui #modal-prompt,
body.premium-ui #modal-select{
  background:rgba(15,23,42,.5) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}

body.premium-ui .dlg-card{
  border-radius:24px !important;
  padding:24px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 20px 60px rgba(15,23,42,.2) !important;
}

body.premium-ui .dlg-title{
  font-size:17px !important;
  font-weight:700 !important;
  color:var(--ink-900) !important;
}

body.premium-ui .dlg-msg{
  font-size:14px !important;
  color:var(--ink-500) !important;
  line-height:1.6 !important;
}

body.premium-ui .dlg-btns{
  gap:10px !important;
  margin-top:4px;
}

body.premium-ui .dlg-btns .btn{
  border-radius:14px !important;
  padding:14px 10px !important;
  font-size:14px !important;
  font-weight:700 !important;
  letter-spacing:.02em;
}

body.premium-ui .dlg-btns .btn.secondary{
  background:#f1f5f9 !important;
  color:#475569 !important;
  border:1px solid #d9e2ef !important;
  box-shadow:none !important;
}

body.premium-ui .dlg-btns .btn.danger{
  box-shadow:0 4px 12px rgba(180,35,24,.2) !important;
}

body.premium-ui .modal-overlay{
  background:rgba(15,23,42,.5) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}

body.premium-ui .modal-box{
  border-radius:24px 24px 24px 24px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 20px 60px rgba(15,23,42,.2) !important;
}

body.premium-ui .modal-card{
  border-radius:24px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 20px 60px rgba(15,23,42,.2) !important;
}

body.premium-ui .modal-bc{
  background:rgba(15,23,42,.6) !important;
  backdrop-filter:blur(10px) !important;
  -webkit-backdrop-filter:blur(10px) !important;
}

body.premium-ui .shift-modal-overlay{
  background:rgba(15,23,42,.5) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}

body.premium-ui .shift-modal-card{
  border-radius:24px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 20px 60px rgba(15,23,42,.2) !important;
}

/* === F. FRAIS TABS : coh?rence premium === */

body.premium-ui #view-frais .frais-tabs{
  background:#f1f5fb !important;
  border:1px solid #d9e2ef !important;
  border-radius:14px !important;
  border-bottom:none !important;
  margin:0 0 14px 0 !important;
  padding:4px !important;
  gap:3px !important;
}

body.premium-ui #view-frais .frais-tabs .tab{
  color:#475569 !important;
  font-size:12px !important;
  font-weight:600 !important;
  border:none !important;
  border-bottom:none !important;
  border-radius:11px !important;
  padding:10px 10px !important;
  margin-bottom:0 !important;
  background:transparent !important;
}

body.premium-ui #view-frais .frais-tabs .tab.active{
  color:#0f172a !important;
  background:#fff !important;
  border:1px solid #cfdae9 !important;
  border-bottom-color:#cfdae9 !important;
  box-shadow:0 3px 8px rgba(15,23,42,.08) !important;
}

/* === G. INPUTS DANS MODULES : plus de coh?rence === */

body.premium-ui input,
body.premium-ui select,
body.premium-ui textarea{
  border:1.5px solid #d1d9e6 !important;
  border-radius:12px !important;
  background:#fff !important;
  font-size:15px !important;
  padding:13px 14px !important;
  color:var(--ink-900) !important;
  transition:border-color .15s, box-shadow .15s !important;
}

body.premium-ui input:focus,
body.premium-ui select:focus,
body.premium-ui textarea:focus{
  border-color:var(--ui-primary) !important;
  box-shadow:0 0 0 3px rgba(26,92,184,.12) !important;
  outline:none !important;
}

body.premium-ui input::placeholder,
body.premium-ui textarea::placeholder{
  color:#94a3b8 !important;
}

body.premium-ui select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8'%3E%3Cpath d='M6 8.5L1 3.5h10z'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 14px center !important;
  padding-right:36px !important;
}

/* === H. TR?SORERIE : moderniser === */

body.premium-ui #view-tresorerie .mod-hdr{
  background:linear-gradient(135deg,#052e5a,#0c4a8a) !important;
}

/* En mode plein-?cran : pas de bordure/radius pour ne pas couper l'iframe
   et ?viter les re-paints qui ralentissent la saisie */
body.premium-ui #view-tresorerie.treso-fullscreen .card,
body.treso-fullscreen #view-tresorerie .card{
  border-radius:0 !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
}

body.premium-ui #view-tresorerie:not(.treso-fullscreen) .card{
  border-radius:18px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
}

/* === I. ?TIQUETTES : moderniser === */

body.premium-ui #view-etiquettes > .mod-hdr{
  background:linear-gradient(135deg,#1e293b,#475569) !important;
}

/* === J. NAVIGATION AM?LIOR?E : active state plus visible === */

body.premium-ui .nav-btn.active{
  position:relative;
}

body.premium-ui .nav-btn.active::after{
  content:'';
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:20px;
  height:3px;
  background:var(--ui-primary-strong);
  border-radius:0 0 3px 3px;
}

/* === K. HEADER : plus clean === */

body.premium-ui header{
  background:#ffffff !important;
  border-bottom:1px solid var(--ui-stroke) !important;
  box-shadow:0 2px 8px rgba(15,23,42,.04) !important;
}

/* Tr?sorerie / Planning fullscreen : cacher header global pour ?viter
   les re-paints (backdrop-filter, ombres) qui rendent l'iframe laggy */
body.treso-fullscreen > header,
body.planning-fullscreen > header{
  display:none !important;
}

body.premium-ui .user-badge{
  background:linear-gradient(135deg,#e8f0fc,#dbeafe) !important;
  color:var(--ui-primary-strong) !important;
  font-weight:700 !important;
  border:1px solid rgba(26,92,184,.15) !important;
  padding:7px 16px !important;
  border-radius:22px !important;
}

body.premium-ui .logout-btn{
  background:#f1f5f9 !important;
  border:1px solid #d9e2ef !important;
  color:#475569 !important;
  border-radius:12px !important;
  font-weight:600 !important;
  padding:8px 14px !important;
}

body.premium-ui .logout-btn:active{
  background:#e2e8f0 !important;
  transform:scale(.97);
}

/* === L. OFFLINE BANNER : moderniser === */

body.premium-ui #offline-banner{
  background:linear-gradient(135deg,#7f1d1d,#dc2626) !important;
  font-weight:600 !important;
  letter-spacing:.02em;
  box-shadow:0 4px 16px rgba(127,29,29,.3);
}

/* === M. LOADING SPINNER : plus subtil === */

body.premium-ui #splash .loader{
  border-width:3px !important;
  border-color:rgba(26,92,184,.15) !important;
  border-top-color:var(--ui-primary-strong) !important;
}

/* === N. EMPTY STATES : plus invitants === */

body.premium-ui .empty-state{
  background:linear-gradient(180deg,#f8fbff,#f1f5fb) !important;
  border:1.5px dashed #c9d6e8 !important;
  border-radius:22px !important;
  padding:52px 28px !important;
}

body.premium-ui .empty-state i{
  font-size:40px !important;
  opacity:.25 !important;
  color:var(--ui-primary) !important;
}

body.premium-ui .empty-state div,
body.premium-ui .empty-state p{
  color:#64748b !important;
  font-size:13px !important;
  font-weight:500 !important;
}

/* === O. SCROLL SNAP : navigation tabs fluide === */

body.premium-ui .tabs{
  scroll-snap-type:x mandatory;
}

body.premium-ui .tab{
  scroll-snap-align:center;
}

/* === P. QTY CONTROLS : plus lisible === */

body.premium-ui .qty-ctrl{
  background:#f8fbff !important;
  border:1px solid #d9e2ef !important;
  border-radius:12px !important;
  padding:4px 10px !important;
}

body.premium-ui .qty-btn{
  width:34px !important;
  height:34px !important;
  border-radius:10px !important;
  background:#fff !important;
  border:1px solid #d9e2ef !important;
  box-shadow:0 2px 4px rgba(15,23,42,.06) !important;
  font-weight:700 !important;
  color:var(--ui-primary-strong) !important;
}

body.premium-ui .qty-btn:active{
  background:#f1f5fb !important;
  transform:scale(.9) !important;
}

/* === Q. DATE BADGES : normaliser === */

body.premium-ui .date-badge{
  border-radius:10px !important;
  font-weight:700 !important;
  font-size:10px !important;
  padding:4px 10px !important;
}

/* === R. PLANNING : cellules plus lisibles === */

body.premium-ui .planning-day-cell{
  border-radius:10px !important;
  transition:transform .1s ease, box-shadow .1s ease !important;
}

body.premium-ui .planning-day-cell:active{
  transform:scale(.95) !important;
}

body.premium-ui .planning-day-cell.work{
  background:linear-gradient(180deg,#dbeafe,#eff6ff) !important;
  border-color:#93c5fd !important;
}

body.premium-ui .planning-staff-row{
  border-radius:16px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 4px 12px rgba(15,23,42,.04) !important;
  overflow:hidden !important;
}

body.premium-ui .planning-staff-header{
  background:linear-gradient(180deg,#f8fafc,#f1f5f9) !important;
}

body.premium-ui .planning-week-nav{
  border-radius:16px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 4px 12px rgba(15,23,42,.04) !important;
}

body.premium-ui .planning-week-nav button{
  background:#e8f0fc !important;
  color:var(--ui-primary-strong) !important;
  border-radius:12px !important;
  font-weight:700 !important;
  border:none !important;
}

body.premium-ui .planning-week-nav button:active{
  background:#d0e2fa !important;
  transform:scale(.95);
}

/* === S. FAB BUTTONS : tokens premium === */

body.premium-ui .fab-dial{
  width:58px !important;
  height:58px !important;
  box-shadow:0 8px 24px rgba(0,56,150,.35) !important;
  border:2px solid rgba(255,255,255,.2) !important;
}

body.premium-ui .fab-dial-right{
  background:linear-gradient(135deg,var(--ui-primary-strong),#1e5cb8) !important;
}

body.premium-ui .fab-dial-left{
  background:linear-gradient(135deg,#6d28d9,#7c3aed) !important;
  box-shadow:0 8px 24px rgba(109,40,217,.35) !important;
}

body.premium-ui .fab-dial-right.fab-open,
body.premium-ui .fab-dial-left.fab-open{
  background:linear-gradient(135deg,#b91c1c,#ef4444) !important;
  box-shadow:0 8px 24px rgba(185,28,28,.35) !important;
}

body.premium-ui .actu-fab-btn{
  background:linear-gradient(135deg,var(--ui-primary-strong),#1e5cb8) !important;
  border-radius:16px !important;
  padding:13px 24px !important;
  font-weight:700 !important;
  font-size:13px !important;
  box-shadow:0 8px 20px rgba(0,56,150,.25) !important;
  border:1px solid rgba(255,255,255,.15) !important;
}

body.premium-ui .actu-fab-btn:active{
  transform:scale(.93) !important;
  box-shadow:0 4px 12px rgba(0,56,150,.2) !important;
}

body.premium-ui .dial-overlay{
  background:rgba(15,23,42,.85) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
}

/* === T. PLANNING .ct-tabs : pill tabs coh?rentes === */

body.premium-ui .ct-tabs{
  background:#f1f5fb !important;
  border:1px solid #d9e2ef !important;
  border-radius:14px !important;
  padding:4px !important;
  box-shadow:none !important;
  gap:3px !important;
}

body.premium-ui .ct-tab{
  color:#475569 !important;
  font-weight:600 !important;
  font-size:12px !important;
  border-radius:11px !important;
  padding:10px 10px !important;
  transition:all .15s ease !important;
}

body.premium-ui .ct-tab.active{
  background:#fff !important;
  color:#0f172a !important;
  border:1px solid #cfdae9 !important;
  box-shadow:0 3px 8px rgba(15,23,42,.08) !important;
}

body.premium-ui .ct-tab:not(.active):hover{
  background:rgba(255,255,255,.5) !important;
}

body.premium-ui .ct-nav-bar{
  background:#fff !important;
  border:1px solid var(--ui-stroke) !important;
  border-radius:16px !important;
  box-shadow:0 4px 12px rgba(15,23,42,.04) !important;
}

body.premium-ui .ct-nav-btn{
  background:#e8f0fc !important;
  color:var(--ui-primary-strong) !important;
  border:none !important;
  border-radius:12px !important;
}

body.premium-ui .ct-nav-btn:active{
  background:#d0e2fa !important;
  transform:scale(.93) !important;
}

body.premium-ui .ct-today-btn{
  background:var(--ui-primary-strong) !important;
  color:#fff !important;
  border-radius:12px !important;
  font-weight:700 !important;
  box-shadow:0 4px 10px rgba(0,56,150,.2) !important;
}

body.premium-ui .ct-action-btn{
  border-radius:12px !important;
  font-weight:600 !important;
}

body.premium-ui .ct-grid-wrap{
  border-radius:18px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 6px 20px rgba(15,23,42,.06) !important;
  overflow:hidden !important;
}

body.premium-ui .ct-cell{
  transition:background .12s ease !important;
}

body.premium-ui .ct-legend-chip{
  border-radius:10px !important;
  font-weight:600 !important;
  font-size:11px !important;
}

/* === U. SHIFT MODAL : classes au lieu d'inline === */

body.premium-ui .shift-modal-overlay{
  background:rgba(15,23,42,.5) !important;
  backdrop-filter:blur(8px) !important;
  -webkit-backdrop-filter:blur(8px) !important;
}

body.premium-ui .shift-modal-card{
  border-radius:24px !important;
  padding:24px !important;
  border:1px solid var(--ui-stroke) !important;
  box-shadow:0 20px 60px rgba(15,23,42,.2) !important;
}

body.premium-ui .shift-modal-card h3{
  font-size:17px !important;
  font-weight:700 !important;
  color:var(--ink-900) !important;
  margin-bottom:16px !important;
}

body.premium-ui .shift-modal-card label{
  font-size:12px !important;
  font-weight:600 !important;
  color:#475569 !important;
  text-transform:uppercase !important;
  letter-spacing:.03em !important;
}

body.premium-ui .shift-modal-card input,
body.premium-ui .shift-modal-card select{
  border-radius:14px !important;
  padding:14px !important;
  border:1.5px solid #d1d9e6 !important;
}

body.premium-ui .shift-modal-card input:focus,
body.premium-ui .shift-modal-card select:focus{
  border-color:var(--ui-primary) !important;
  box-shadow:0 0 0 3px rgba(26,92,184,.12) !important;
}

body.premium-ui .time-input-row{
  gap:12px !important;
  margin-bottom:14px !important;
}

/* ?? UTILITY CLASSES ?? */
/* Flex */
.d-flex          { display:flex; }
.flex-col        { flex-direction:column; }
.flex-wrap       { flex-wrap:wrap; }
.align-center    { align-items:center; }
.align-start     { align-items:flex-start; }
.justify-between { justify-content:space-between; }
.justify-center  { justify-content:center; }
.gap-4           { gap:4px; }
.gap-8           { gap:8px; }
.gap-12          { gap:12px; }
.gap-16          { gap:16px; }
.flex-1          { flex:1; }
.flex-shrink-0   { flex-shrink:0; }

/* Spacing */
.p-8   { padding:8px; }
.p-12  { padding:12px; }
.p-16  { padding:16px; }
.px-12 { padding-left:12px; padding-right:12px; }
.py-8  { padding-top:8px; padding-bottom:8px; }
.mt-0  { margin-top:0; }
.mt-4  { margin-top:4px; }
.mt-6  { margin-top:6px; }
.mt-8  { margin-top:8px; }
.mt-12 { margin-top:12px; }
.mb-4  { margin-bottom:4px; }
.mb-8  { margin-bottom:8px; }
.mb-10 { margin-bottom:10px; }
.mb-12 { margin-bottom:12px; }
.mb-16 { margin-bottom:16px; }
.m-0   { margin:0; }

/* Typographie */
.text-xs   { font-size:var(--fs-xs); }
.text-sm   { font-size:var(--fs-sm); }
.text-base { font-size:var(--fs-base); }
.text-md   { font-size:var(--fs-md); }
.text-lg   { font-size:var(--fs-lg); }
.text-muted    { color:var(--ink-500); }
.text-primary  { color:var(--color-text-primary); }
.font-medium   { font-weight:500; }
.text-bold     { font-weight:600; }
.text-upper    { text-transform:uppercase; letter-spacing:.5px; }
.text-center   { text-align:center; }
.text-right    { text-align:right; }

/* Formes */
.rounded    { border-radius:var(--r-md); }
.rounded-lg { border-radius:var(--r-2xl); }
.rounded-xl { border-radius:var(--r-3xl); }
.border-soft { border:1px solid var(--line-soft); }
.border-mid  { border:1px solid var(--line-mid); }

/* Surfaces */
.surface-0 { background:var(--surface-0); }
.surface-1 { background:var(--surface-1); }
.shadow-soft { box-shadow:var(--shadow-soft); }
.shadow-card { box-shadow:var(--shadow-card); }

/* Largeur */
.w-full  { width:100%; }
.w-half  { width:50%; }

/* Overflow */
.overflow-hidden { overflow:hidden; }
.text-ellipsis   { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Position */
.relative { position:relative; }
.absolute { position:absolute; }

/* Interactivit? */
.cursor-pointer { cursor:pointer; }
.no-select      { user-select:none; }

/* ?? S?lection magasin (multi-tenant) ?? */
.store-picker-overlay {
  position: fixed;
  inset: 0;
  z-index: 97000;
  background: linear-gradient(165deg, #0f172a 0%, #1e3a5f 55%, #0f766e 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 16px;
  overflow-y: auto;
}
.store-picker-overlay.hidden { display: none !important; }
.store-picker-card-wrap {
  width: min(440px, 100%);
  background: #fff;
  border-radius: 20px;
  padding: 22px 18px 18px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.store-picker-title {
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  color: #0f172a;
  margin: 0 0 6px;
}
.store-picker-sub {
  font-size: 13px;
  color: #64748b;
  text-align: center;
  line-height: 1.45;
  margin: 0 0 16px;
}
.store-picker-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: min(50vh, 360px);
  overflow-y: auto;
}
.store-picker-card {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.15s, background 0.15s;
}
.store-picker-card:hover {
  border-color: #0891b2;
  background: #ecfeff;
}
.store-picker-card--selected {
  border-color: #6d28d9;
  background: #faf5ff;
  box-shadow: 0 0 0 2px rgba(109, 40, 217, 0.18);
}
.store-picker-card--selected:hover {
  border-color: #6d28d9;
  background: #f3e8ff;
}
.store-picker-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.store-picker-card__name {
  font-weight: 600;
  font-size: 14px;
  color: #0f172a;
}
.store-picker-card__id {
  font-size: 11px;
  color: #94a3b8;
  text-transform: lowercase;
}
.store-picker-card__arrow {
  color: #94a3b8;
  flex-shrink: 0;
}
.store-picker-card mark {
  background: #fef3c7;
  color: inherit;
  padding: 0 2px;
  border-radius: 3px;
}
.store-picker-card .store-picker-card__logo {
  width: 140px;
  height: 56px;
  max-width: 140px;
  object-fit: contain;
  object-position: center;
  flex-shrink: 0;
  margin: 0;
}
.store-picker-validate {
  width: 100%;
  margin: 12px 0 0;
  background: #0891b2;
  border: none;
  color: #fff;
  font-weight: 600;
  padding: 12px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.store-picker-validate:hover { background: #0e7490; }
.store-picker-validate.hidden { display: none; }
.store-picker-foot {
  text-align: center;
  color: #94a3b8;
  margin-top: 14px;
  line-height: 1.4;
}
.store-picker-search-wrap {
  position: relative;
  margin-bottom: 12px;
}
.store-picker-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
  pointer-events: none;
}
.store-picker-search {
  width: 100%;
  padding: 11px 12px 11px 36px;
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  font-size: 14px;
  background: #fff;
  color: #0f172a;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.store-picker-search:focus {
  border-color: #0891b2;
  box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.12);
}
.store-picker-empty {
  text-align: center;
  color: #94a3b8;
  font-size: 12px;
  padding: 14px 10px;
  background: #f8fafc;
  border-radius: 10px;
  border: 1px dashed #e2e8f0;
  margin-top: 4px;
}
.store-picker-empty.hidden { display: none; }
.store-brand-block { text-align: center; }
.store-brand-logo-img {
  width: min(360px, 92vw);
  height: 108px;
  max-width: min(360px, 92vw);
  object-fit: contain;
  object-position: center;
  display: block;
  margin: 0 auto;
}
#login-brand {
  width: 100%;
  min-height: clamp(132px, 30vw, 168px);
  margin: 0 0 16px;
  padding: 4px 0 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
#login-brand .store-brand-logo-img {
  width: 100%;
  height: clamp(132px, 30vw, 168px);
  max-width: 100%;
  max-height: 168px;
  object-fit: contain;
  object-position: center;
  margin: 0;
}
.store-brand-label { display: none !important; }
.session-top-bar {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 99990;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: calc(100vw - 24px);
}
.session-top-bar.hidden { display: none !important; }
.session-top-bar__btn {
  padding: 8px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.session-top-bar__btn:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
}
.session-top-bar__btn--param {
  background: #f8fafc;
  color: #444441;
}
.session-top-bar__btn--logout {
  background: #f1f5f9;
  color: #475569;
}
body.premium-ui .session-top-bar__btn {
  border-radius: 12px !important;
  font-weight: 600 !important;
}
#app-header .logout-btn { display: none !important; }
body.has-session-top-bar header {
  padding-top: 52px;
  min-height: 60px;
  box-sizing: border-box;
}
body.has-session-top-bar #login-overlay {
  padding-top: 56px;
}
.nav-btn-back{color:#475569;}
.nav-btn-back.hidden{display:none!important;}
body.has-bottom-nav .mod-hdr-back{display:none!important;}
body.has-bottom-nav #treso-fs-back{display:none!important;}
.store-picker-connexion-btn {
  position: fixed;
  top: 16px;
  left: 16px;
  z-index: 97010;
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 10px;
  background: rgba(15,23,42,0.55);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  backdrop-filter: blur(6px);
}
.store-picker-connexion-btn:hover {
  background: rgba(15,23,42,0.75);
}
.store-format-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
  justify-content: center;
}
.store-format-chip {
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid #e2e8f0;
  background: #fff;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
}
.store-format-chip--on {
  border-color: currentColor;
  background: #f8fafc;
  box-shadow: 0 0 0 1px currentColor;
}
.store-format-chip[data-format="express"] { color: #006B3F; }
.store-format-chip[data-format="city"] { color: #8BC34A; }
.store-format-chip[data-format="contact"] { color: #9AC527; }
.store-format-chip[data-format="market"] { color: #E30613; }
.store-dev-overlay {
  position: fixed;
  inset: 0;
  z-index: 97500;
  background: linear-gradient(165deg, #0f172a 0%, #1e3a5f 50%, #334155 100%);
  overflow-y: auto;
  padding: 20px 16px;
}
.store-dev-overlay.hidden { display: none !important; }
body.store-dev-open { overflow: hidden; }
.store-dev-panel {
  width: min(480px, 100%);
  margin: 0 auto;
  background: #fff;
  border-radius: 16px;
  padding: 18px 16px 20px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.35);
}
.store-dev-close {
  border: none;
  background: transparent;
  color: #64748b;
  font-size: 13px;
  cursor: pointer;
  padding: 0;
  margin-bottom: 8px;
}
.store-dev-title {
  margin: 0 0 6px;
  font-size: 18px;
  color: #0f172a;
}
.store-dev-status { color: #64748b; margin-bottom: 12px; }
.store-dev-input {
  width: 100%;
  padding: 10px 12px;
  margin-top: 8px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 14px;
  box-sizing: border-box;
}
.store-dev-btn-primary {
  width: 100%;
  margin-top: 12px;
  background: #334155;
  border: none;
  color: #fff;
  padding: 12px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
}
.store-dev-section {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}
.store-dev-section-title {
  font-weight: 600;
  font-size: 13px;
  color: #334155;
  margin-bottom: 8px;
}
.store-dev-format-pick {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 10px;
}
.store-dev-format-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  cursor: pointer;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
}
.store-dev-format-option input { position: absolute; opacity: 0; pointer-events: none; }
.store-dev-format-swatch {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  flex-shrink: 0;
}
.store-dev-format-option--on {
  border-color: #6d28d9;
  background: #faf5ff;
}
.store-dev-picker-list {
  max-height: min(42vh, 320px);
  margin-bottom: 12px;
}
.store-dev-store-edit {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}
.store-dev-section .store-format-filters {
  margin-bottom: 10px;
}
.store-dev-section .store-picker-search-wrap {
  margin-bottom: 10px;
}
.store-dev-edit-card {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 10px;
  background: #f8fafc;
}
.store-dev-edit-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.store-dev-edit-logo {
  width: 180px;
  height: 68px;
  object-fit: contain;
}
.store-dev-logo-upload {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}
.store-dev-hint {
  font-size: 11px;
  color: #64748b;
  margin: -4px 0 10px;
}
.store-dev-field-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  margin: 6px 0 4px;
}
.store-dev-edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.store-dev-edit-actions .btn {
  flex: 1;
  min-width: 120px;
  margin: 0;
  font-size: 12px;
  padding: 8px 10px;
}
.store-picker-admin-wrap {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}
.store-picker-admin-toggle {
  width: 100%;
  padding: 10px 12px;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
}
.store-picker-admin-toggle:hover {
  border-color: #94a3b8;
  background: #f1f5f9;
}
.store-picker-admin-panel {
  margin-top: 10px;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #fff;
}
.store-picker-admin-panel.hidden { display: none !important; }
.store-picker-admin-input {
  width: 100%;
  padding: 8px 10px;
  margin-top: 6px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 13px;
  box-sizing: border-box;
}
.store-picker-admin-list {
  max-height: 120px;
  overflow-y: auto;
  margin-top: 6px;
}

/* ????????????????????????????????????????????
   PORTAIL EMPLOY? (vue simplifi?e fa?on Skello)
   ???????????????????????????????????????????? */
body.emp-portal-active { overflow: hidden; }
body.emp-portal-active .session-top-bar { display: none !important; }
body.emp-portal-active.has-session-top-bar header { padding-top: 0; min-height: 0; }
#employee-portal-overlay {
  position: fixed; inset: 0; z-index: 100010;
  background: linear-gradient(165deg, #f8fafc 0%, #eef4ff 48%, #f5f8fc 100%);
  display: none;
  flex-direction: column;
  align-items: stretch;
  justify-content: stretch;
}
.ep-portal-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: calc(env(safe-area-inset-top, 0px) + 8px) 14px 8px;
  background: var(--glass-bg, rgba(255,255,255,.88));
  backdrop-filter: var(--glass-blur, saturate(180%) blur(20px));
  -webkit-backdrop-filter: var(--glass-blur, saturate(180%) blur(20px));
  border-bottom: 1px solid var(--hairline, rgba(15,23,42,.10));
  box-shadow: none;
  z-index: 5;
}
.ep-portal-toolbar.hidden { display: none !important; }
.ep-global-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 16px 0 12px;
  border: 1px solid var(--hairline, #e2e8f0);
  border-radius: 12px;
  background: #fff;
  color: #1A5CB8;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--elev-1, 0 1px 3px rgba(15,23,42,.06));
  transition: transform var(--dur-fast,.14s), background var(--dur-fast);
}
.ep-global-back:hover { background: var(--accent-soft, #eaf2ff); }
.ep-global-back:active { transform: scale(0.98); }
.ep-global-back span { white-space: nowrap; }
.ep-portal-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ep-shell {
  display: flex; flex-direction: column;
  height: 100%; width: 100%;
  max-width: 640px; margin: 0 auto;
  background: transparent;
  min-height: 0;
}
.ep-top {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px 12px;
  padding: calc(env(safe-area-inset-top, 0px) + 10px) 16px 12px;
  background: var(--glass-bg, rgba(255,255,255,.92));
  backdrop-filter: var(--glass-blur, saturate(180%) blur(20px));
  -webkit-backdrop-filter: var(--glass-blur, saturate(180%) blur(20px));
  border-bottom: 1px solid var(--hairline, rgba(15,23,42,.10));
  color: var(--ink-900, #0f172a);
  position: relative;
  z-index: 2;
}
.ep-top--no-back { grid-template-columns: 1fr; }
.ep-top-brand {
  display: flex; align-items: center; gap: 12px;
  min-width: 0;
}
.ep-top--no-back .ep-top-brand { justify-content: flex-start; }
.ep-top-brand-ic{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  background:var(--accent-soft,#eaf2ff);color:#1A5CB8;
  display:inline-flex;align-items:center;justify-content:center;font-size:17px;
}
.ep-top-brand-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.ep-top-brand-title{font-weight:700;font-size:17px;letter-spacing:-.3px;line-height:1.15;}
.ep-top-brand-sub{font-size:12px;font-weight:500;color:var(--ink-500,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ep-top-back {
  background: rgba(255,255,255,.22); color: #fff; border: 1px solid rgba(255,255,255,.35);
  min-height: 40px; padding: 0 14px 0 12px; border-radius: 11px;
  cursor: pointer; font-size: 14px; font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.ep-top-back--ph { visibility: hidden; pointer-events: none; padding: 0; min-width: 0; width: 0; border: none; }
.ep-top-back:hover { background: rgba(255,255,255,.36); }
.ep-top-back:active { background: rgba(255,255,255,.42); }
.ep-top-back-lbl { white-space: nowrap; }
.ep-top-close {
  background: rgba(255,255,255,.18); color: #fff; border: none;
  width: 40px; height: 40px; border-radius: 11px; cursor: pointer;
  font-size: 18px; display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ep-top-close--ph { visibility: hidden; pointer-events: none; width: 0; padding: 0; }
.ep-top-close:hover { background: rgba(255,255,255,.32); }
.ep-scroll {
  flex: 1 1 auto; overflow-y: auto;
  min-height: 0;
  padding: 16px 16px calc(86px + env(safe-area-inset-bottom, 0px));
  -webkit-overflow-scrolling: touch;
}
.ep-nav {
  flex: 0 0 auto;
  position: relative;
  width: 100%;
  display: flex;
  background: var(--glass-bg, rgba(255,255,255,.92));
  backdrop-filter: var(--glass-blur, saturate(180%) blur(20px));
  -webkit-backdrop-filter: var(--glass-blur, saturate(180%) blur(20px));
  border-top: 1px solid var(--hairline, rgba(15,23,42,.10));
  padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -8px 24px rgba(15,23,42,.06);
  gap: 4px;
}
.ep-tab {
  flex: 1; background: none; border: none; cursor: pointer;
  padding: 8px 4px 7px; color: #94a3b8;
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  font-size: 10px; font-weight: 600;
  border-radius: 14px;
  transition: color var(--dur-fast), background var(--dur-fast), transform var(--dur-fast);
}
.ep-tab i { font-size: 20px; transition: transform var(--dur-base) var(--ease-spring, ease); }
.ep-tab-ic { position: relative; display: inline-flex; line-height: 1; }
.ep-tab-badge {
  position: absolute; top: -5px; right: -9px; min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 999px; background: #dc2626; color: #fff; font-size: 9px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; line-height: 1;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.ep-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.ep-quick--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ep-quick-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  min-height: 72px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff;
  color: #334155; font-size: 12px; font-weight: 700; cursor: pointer; padding: 10px 8px;
}
.ep-quick-btn--accent { border-color: #93c5fd; background: linear-gradient(180deg, #eff6ff 0%, #fff 100%); color: #1d4ed8; }
.ep-quick-btn--accent i { color: #1d4ed8; }
.ep-quick-btn i { font-size: 20px; color: #1A5CB8; }
.ep-quick-btn:active { background: #f8fafc; transform: scale(.98); }
.ep-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.ep-home-widgets { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; }
.ep-home-widget-slot { min-width: 0; }
.ep-home-widgets .home-cube.ep-home-cube {
  width: 100%; min-height: auto; padding: 14px 16px; border-radius: 14px;
  box-shadow: 0 1px 4px rgba(15,23,42,.06); border: 1px solid #e2e8f0;
}
.ep-home-widgets .home-cube--team.ep-home-cube:active { transform: none; }
.ep-home-widgets .home-cube-kicker { font-size: 11px; margin-bottom: 4px; }
.ep-home-widgets .home-cube-main { font-size: 16px; font-weight: 800; line-height: 1.25; }
.ep-home-widgets .home-cube-sub { font-size: 13px; color: #475569; margin-top: 4px; line-height: 1.3; }
.ep-home-widgets .home-cube-icon { width: 38px; height: 38px; font-size: 20px; border-radius: 12px; }
.ep-home-widgets .home-cube-slot-t,
.ep-home-widgets .home-cube-shift-name { font-size: 13px; font-weight: 700; color: #334155; }
.ep-home-widgets .home-cube-slot-h,
.ep-home-widgets .home-cube-shift-h { font-size: 13px; font-weight: 800; color: #0f172a; }
.ep-home-widgets .home-cube-shift { align-items: flex-start; gap: 8px; }
.ep-home-widgets .home-cube-shift-av { width: 28px; height: 28px; font-size: 10px; margin-top: 2px; }
.ep-home-widgets .home-cube-shift-multi { font-size: 10px; padding: 2px 7px; }
.ep-home-widgets .home-cube-shift-slot-h { font-size: 13px; font-weight: 800; color: #0f172a; }
.ep-home-widgets .home-cube-shift-slot--done .home-cube-shift-slot-h { font-size: 12px; }
.ep-home-widgets .home-cube-shift-times { gap: 4px; margin-top: 2px; }
.ep-home-widgets .home-cube-slots,
.ep-home-widgets .home-cube-shifts { gap: 10px; margin-top: 10px; }
.ep-home-widgets .home-cube-tag { font-size: 11px; padding: 4px 8px; margin-top: 8px; }
.ep-home-widgets .home-cube-more { font-size: 12px; margin-top: 6px; }
.ep-home-widgets .home-cube-empty { font-size: 13px; color: #64748b; margin-top: 8px; }
.ep-home-widgets .home-ca-card--mirror { pointer-events: none; user-select: none; }
.ep-home-widgets .home-ca-card--mirror .home-ca-actions { pointer-events: auto; }
.ep-home-widgets .home-ca-card--mirror .home-ca-header { margin-bottom: 8px; }
.ep-home-widget-slot .home-ca-card { margin: 0; }
.ep-action-btn {
  display: flex; align-items: center; gap: 12px; width: 100%;
  min-height: 52px; border: 1px solid #e2e8f0; border-radius: 14px; background: #fff;
  color: #334155; font-size: 15px; font-weight: 700; cursor: pointer; padding: 12px 16px;
}
.ep-action-btn i { font-size: 18px; color: #1A5CB8; width: 22px; text-align: center; }
.ep-action-btn--primary { border-color: #93c5fd; background: linear-gradient(180deg, #eff6ff 0%, #fff 100%); color: #1d4ed8; }
.ep-action-btn--primary i { color: #1d4ed8; }
.ep-action-btn:active { background: #f8fafc; transform: scale(.99); }
.ep-alert {
  width: 100%; display: flex; align-items: center; gap: 12px; text-align: left;
  border: 1px solid #fecaca; border-radius: 14px; padding: 12px 14px; margin-bottom: 14px;
  background: linear-gradient(90deg, #fef2f2 0%, #fff 70%); cursor: pointer; font: inherit;
}
.ep-alert--action { border-color: #fca5a5; box-shadow: 0 2px 10px rgba(220,38,38,.08); }
.ep-alert-ic { width: 40px; height: 40px; border-radius: 12px; background: #fee2e2; color: #dc2626; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.ep-alert-body { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ep-alert-body b { font-size: 14px; color: #991b1b; }
.ep-alert-body span { font-size: 12px; color: #b45309; }
.ep-alert-chev { color: #f87171; font-size: 12px; flex-shrink: 0; }
.ep-page-hint { font-size: 13px; color: #64748b; line-height: 1.5; margin: -4px 0 14px; }
.ep-page-hint b { color: #334155; font-weight: 600; }
.ep-page-hint--future { background: #eff6ff; border-radius: 10px; padding: 10px 12px; color: #1e40af; margin-bottom: 12px; }
.ep-page-hint--future i { margin-right: 6px; }
.ep-steps { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.ep-step { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: #475569; background: #f1f5f9; border-radius: 999px; padding: 5px 10px; }
.ep-step-n { width: 18px; height: 18px; border-radius: 50%; background: #4f46e5; color: #fff; font-size: 10px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ep-legend { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 10px; font-size: 11px; color: #64748b; }
.ep-legend-item { display: inline-flex; align-items: center; gap: 5px; }
.ep-legend-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.ep-legend-dot--pos { background: #10b981; }
.ep-legend-dot--neg { background: #ef4444; }
.ep-legend-dot--ok { background: #6366f1; }
.ep-punch-hint { font-size: 12px; color: #64748b; line-height: 1.45; margin-bottom: 8px; }
.ep-punch-help { width: 100%; margin-top: 10px; border: none; background: none; color: #4f46e5; font-size: 12px; font-weight: 600; cursor: pointer; padding: 6px 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.ep-punch-help:active { opacity: .7; }
.ep-info--ok { background: #ecfdf5; color: #047857; }
.ep-section-sub i { margin-right: 5px; color: #94a3b8; }
.ep-section-sub--team { color: #b45309; }
.ep-section-sub--team i { color: #f59e0b; }
.ep-hrow-edit-btn { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; border: none; background: #e0f2fe; color: #0369a1; border-radius: 8px; padding: 5px 8px; cursor: pointer; font-size: 11px; font-weight: 700; }
.ep-hrow-edit-btn:active { background: #bae6fd; }
.ep-bigbtn--accent { border-color: #93c5fd; background: linear-gradient(180deg, #eff6ff 0%, #fff 100%); }
.ep-bigbtn--accent span > i:first-child { color: #1d4ed8; }
.ep-hours-foot .ep-linkbtn { font-size: 13px; font-weight: 600; border: none; background: none; color: #4f46e5; cursor: pointer; padding: 8px 12px; border-radius: 10px; }
.ep-hours-foot .ep-linkbtn:active { background: #eef2ff; }
.ep-info-row--tap {
  width: 100%; border: none; background: transparent; cursor: pointer; text-align: inherit;
  font: inherit; display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.ep-info-row--tap:active { background: #f8fafc; margin: 0 -8px; padding-left: 8px; padding-right: 8px; border-radius: 8px; }
.ep-info-chev { font-size: 10px; color: #94a3b8; margin-left: 4px; }
.ep-punch-timer-compact { text-align: center; margin: 10px 0 6px; }
.ep-punch-timer-compact #ep-punch-live-timer { display: block; font-size: 28px; font-weight: 800; color: #047857; letter-spacing: -.02em; line-height: 1; }
.ep-punch-timer-lbl { display: block; font-size: 10px; color: #64748b; margin-top: 4px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.ep-week-arrow {
  width: 40px; height: 40px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff;
  color: #334155; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
}
.ep-week-arrow:active { background: #f1f5f9; }
.ep-week-arrow--off { opacity: .35; cursor: default; }
.ep-week-range { font-weight: 600; font-size: 13px; color: #0f172a; text-align: center; line-height: 1.25; }
.ep-week-today {
  width: 36px; height: 36px; border: none; border-radius: 10px; background: #eef2ff; color: #4f46e5;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 14px;
}
.ep-hrow--today { border-color: #93c5fd; background: linear-gradient(90deg, #eff6ff 0%, #fff 40%); box-shadow: 0 1px 0 #bfdbfe; }
.ep-hrow-today { display: block; font-size: 9px; font-weight: 800; color: #1d4ed8; font-style: normal; margin-top: 2px; }
.ep-hrow-ongoing { font-size: 9px; font-weight: 700; color: #6366f1; font-style: normal; margin-left: 4px; }
.ep-hours-note { font-size: 11px; color: #64748b; margin: -6px 0 10px; line-height: 1.4; }
.ep-hrow-lbl { font-size: 11px; font-weight: 800; color: #475569; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.ep-hrow-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ep-hrow-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ep-hrow-col { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 12px; min-width: 0; }
.ep-hrow-foot { display: flex; justify-content: flex-end; padding-top: 2px; }
.ep-hrow-foot .ep-hrow-edit-btn { margin-top: 0; font-size: 12px; padding: 7px 12px; }
@media (max-width: 420px) {
  .ep-hrow-cols { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .ep-hrow-real { flex-shrink: 0; }
}
.ep-tab.active {
  color: #1A5CB8;
  background: var(--accent-soft, #eaf2ff);
}
.ep-tab.active i { transform: translateY(-2px) scale(1.05); }
.ep-tab:active{transform:scale(.94);}

.ep-hello { margin-bottom: 16px; padding: 0 2px; }
.ep-hello-hi { font-size: 26px; font-weight: 800; color: #0f172a; letter-spacing: -.4px; line-height: 1.15; }
.ep-hello-sub { font-size: 14px; color: #64748b; text-transform: capitalize; margin-top: 4px; }

.ep-card {
  background: #fff; border-radius: var(--r-tile, 16px); padding: 16px 18px;
  border: 1px solid #eef2f7;
  box-shadow: var(--elev-1, 0 1px 3px rgba(15,23,42,.06)); margin-bottom: 14px;
}
.ep-card--hero{
  border-color:#bcd2f5;
  box-shadow:0 4px 16px rgba(26,92,184,.10);
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.ep-card-h {
  font-size: 11px; font-weight: 700; color: #64748b;
  text-transform: uppercase; letter-spacing: .45px;
  display: flex; align-items: center; gap: 8px; margin-bottom: 12px;
}
.ep-card-h i { color: #1A5CB8; }
.ep-muted { color: #94a3b8; font-size: 14px; line-height: 1.5; }
.ep-info {
  background: #fff7ed; color: #c2410c; border-radius: 12px;
  padding: 12px 14px; font-size: 13.5px; line-height: 1.5;
}
.ep-next-day { font-size: 18px; font-weight: 700; color: #0f172a; text-transform: capitalize; margin-bottom: 8px; }
.ep-next-slots { display: flex; flex-direction: column; gap: 6px; }
.ep-slot { display: block; font-size: 15px; color: #334155; }
.ep-slot b { color: #1A5CB8; }

.ep-bigbtn {
  width: 100%; background: #fff; border: 1px solid #e2e8f0; border-radius: var(--r-tile, 14px);
  padding: 15px 16px; font-size: 15px; font-weight: 600; color: #0f172a;
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  cursor: pointer; margin-bottom: 14px;
  box-shadow: var(--elev-1, 0 1px 3px rgba(15,23,42,.06));
  transition: transform var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast);
}
.ep-bigbtn span { display: flex; align-items: center; gap: 10px; }
.ep-bigbtn span > i:first-child { color: #1A5CB8; }
.ep-bigbtn i.fa-chevron-right { color: #94a3b8; font-size: 12px; }
.ep-bigbtn:active { background: #f8fafc; transform: scale(.98); }

.ep-info-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 0; font-size: 14px; color: #475569;
  border-bottom: 1px solid #f1f5f9;
}
.ep-info-row:last-child { border-bottom: none; }
.ep-info-row b { color: #0f172a; }
.ep-pin { font-family: monospace; font-size: 17px; letter-spacing: 2px; color: #1A5CB8; }

/* Planning */
.ep-week-nav {
  display: grid; grid-template-columns: 40px 1fr 40px auto; gap: 6px; align-items: center;
  background: #fff; border-radius: 14px; padding: 8px 10px; margin-bottom: 14px;
  box-shadow: 0 2px 10px rgba(15,23,42,.05);
}
@media (max-width: 360px) {
  .ep-week-nav { grid-template-columns: 36px 1fr 36px auto; }
  .ep-week-today span { display: none; }
}
.ep-week-nav .ep-week-arrow {
  width: 40px; height: 40px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff;
  color: #334155; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px;
}
.ep-week-nav .ep-week-arrow:active { background: #f1f5f9; }
.ep-week-nav .ep-week-arrow:disabled,
.ep-week-nav .ep-week-arrow.ep-week-arrow--off { opacity: .35; cursor: default; }
.ep-week-nav .ep-week-today {
  width: auto; min-width: 36px; height: 36px; padding: 0 8px; gap: 4px;
  border: none; border-radius: 10px; background: #eef2ff; color: #4f46e5;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
}
.ep-week-nav .ep-week-today:active { background: #e0e7ff; }
.ep-week-label { font-weight: 600; font-size: 14px; color: #0f172a; text-align: center; }
.ep-week-now { display: block; font-size: 11px; font-weight: 600; color: #1A5CB8; text-transform: none; }
.ep-alert--info { border-color: #93c5fd; background: linear-gradient(90deg, #eff6ff 0%, #fff 70%); }
.ep-alert-ic--info { background: #dbeafe; color: #1d4ed8; }
.ep-alert--info .ep-alert-body b { color: #1e40af; }
.ep-alert--info .ep-alert-body span { color: #3b82f6; }
.ep-empty-state { text-align: center; padding: 28px 16px; color: #64748b; }
.ep-empty-state i { font-size: 32px; color: #cbd5e1; margin-bottom: 10px; display: block; }
.ep-empty-state b { display: block; font-size: 15px; color: #334155; margin-bottom: 6px; }
.ep-empty-state p { font-size: 13px; line-height: 1.5; margin: 0; }
.ep-empty-state--sm { padding: 18px 12px; }
.ep-empty-state--sm i { font-size: 24px; }
.ep-card--tap { width: 100%; text-align: left; cursor: pointer; font: inherit; border: 1px solid #eef2f7; }
.ep-card--tap:active { transform: scale(.99); }
.ep-tap-link { display: block; margin-top: 10px; font-size: 12px; font-weight: 700; color: #1A5CB8; }
.ep-nav--3 .ep-tab span { font-size: 11px; }
.ep-section-sub--block { margin-top: 6px; margin-bottom: 10px; font-size: 13px; text-transform: none; letter-spacing: 0; color: #334155; }
.ep-plist--plan { margin-top: 4px; }
.ep-week-reset {
  width: 100%; background: none; border: none; color: #1A5CB8; font-size: 13px;
  font-weight: 600; padding: 12px; cursor: pointer; margin-top: 4px;
}
.ep-plist {
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(15,23,42,.05);
}
.ep-prow {
  display: flex; align-items: stretch; gap: 12px;
  padding: 12px 14px; border-bottom: 1px solid #f1f5f9;
}
.ep-prow:last-child { border-bottom: none; }
.ep-prow.today { background: var(--accent-soft, #eaf2ff); border-left: 3px solid #1A5CB8; padding-left: 11px; }
.ep-prow.rest { opacity: .72; }
.ep-pdate {
  flex: 0 0 72px; display: flex; flex-direction: column; gap: 2px;
}
.ep-day-head b, .ep-pdate b { font-size: 14px; color: #0f172a; text-transform: capitalize; display: block; font-weight: 800; line-height: 1.2; }
.ep-day-head span, .ep-pdate span { font-size: 12px; color: #64748b; font-weight: 600; display: block; margin-top: 2px; }
.ep-pdate .ep-hrow-today, .ep-hrow-day .ep-hrow-today { display: inline-block; margin-left: 4px; font-size: 10px; }
.ep-pbody { flex: 1; display: flex; flex-direction: column; gap: 3px; justify-content: center; }
.ep-day-rest { color: #94a3b8; font-size: 14px; }
.ep-day-absent { color: #6b7280; font-size: 14px; font-weight: 600; background: #f3f4f6; border-radius: 8px; padding: 6px 10px; display: inline-block; }
.ep-day-absent-tag { display: inline-block; font-size: 11px; font-weight: 700; color: #6b7280; background: #e5e7eb; border-radius: 6px; padding: 3px 8px; margin-bottom: 6px; }
.ep-day-work--absent { opacity: .92; filter: grayscale(.35); }
.ep-post-head { font-size: 12px; font-weight: 700; color: #7c3aed; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.ep-hrow--plan-absent .ep-hrow-col { opacity: .85; }
.ep-day-leave { color: #be185d; font-size: 14px; font-weight: 500; }
.ep-day-work { display: flex; flex-direction: column; gap: 2px; }
.ep-day-work .ep-slot { font-size: 14px; }
.ep-week-total {
  display: flex; align-items: center; justify-content: space-between;
  background: linear-gradient(135deg, #1e5cb8, #1a5cb8); color: #fff; border-radius: 14px;
  padding: 14px 16px; font-size: 14px; margin-top: 14px;
  box-shadow: 0 6px 16px rgba(26,92,184,.22);
}
.ep-week-total b { font-size: 17px; }

.ep-plan-picker {
  background: #fff; border-radius: 14px; padding: 12px 14px; margin-bottom: 12px;
  box-shadow: 0 2px 10px rgba(15,23,42,.05);
}
.ep-plan-picker-lbl {
  display: block; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: #64748b; margin-bottom: 8px;
}
.ep-plan-picker-lbl i { margin-right: 6px; color: #1A5CB8; }
.ep-plan-picker-select {
  width: 100%; font-size: 15px; padding: 10px 12px; border-radius: 10px;
  border: 1.5px solid #e2e8f0; background: #f8fafc; color: #0f172a;
}
.ep-card--team-hint { border: 1px solid #bae6fd; background: #f0f9ff; }
.ep-card--punch { border: 1px solid #c7d2fe; background: linear-gradient(160deg, #eef2ff 0%, #fff 55%); }
.ep-punch-status { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; margin-bottom: 8px; }
.ep-punch-status--on { color: #047857; }
.ep-punch-status--off { color: #64748b; }
.ep-punch-status--wait { color: #b45309; }
.ep-punch-dot { width: 10px; height: 10px; border-radius: 50%; background: #10b981; box-shadow: 0 0 0 4px rgba(16,185,129,.2); }
.ep-punch-meta { font-size: 13px; color: #475569; margin-bottom: 10px; }
.ep-punch-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
.ep-punch-btn {
  width: 100%; border: none; border-radius: 12px; padding: 12px 10px; font-weight: 700; font-size: 14px;
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.ep-punch-btn--in { background: #059669; color: #fff; grid-column: 1 / -1; }
.ep-punch-btn--out { background: #dc2626; color: #fff; }
.ep-punch-btn--pause { background: #f59e0b; color: #fff; }
.ep-punch-btn--req { background: #0891b2; color: #fff; grid-column: 1 / -1; }
.ep-punch-logs { margin-top: 12px; padding-top: 10px; border-top: 1px solid #e2e8f0; display: flex; flex-direction: column; gap: 6px; }
.ep-punch-log { display: flex; justify-content: space-between; font-size: 13px; color: #475569; }
.ep-punch-page { padding: 2px 0 8px; }
.ep-punch-page-date { font-size: 14px; font-weight: 600; color: #64748b; margin-bottom: 12px; text-align: center; }
.ep-card--punch-full { padding: 18px 16px; border-width: 2px; }
.ep-punch-live { text-align: center; margin: 16px 0 12px; }
.ep-punch-live #ep-punch-live-timer { display: block; font-size: 42px; font-weight: 800; color: #047857; letter-spacing: -0.02em; line-height: 1; }
.ep-punch-live-lbl { display: block; font-size: 12px; color: #64748b; margin-top: 6px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.ep-punch-logs-title { font-size: 12px; font-weight: 700; color: #64748b; margin-bottom: 8px; text-transform: uppercase; letter-spacing: .04em; }
.ep-nav .ep-tab { min-width: 0; padding-left: 6px; padding-right: 6px; }
.ep-nav .ep-tab span { font-size: 10px; }
.ep-nav--4 .ep-tab span { font-size: 11px; }
.ep-nav--4 .ep-tab i { font-size: 19px; }
.ep-nav--5 .ep-tab span { font-size: 10px; }
.ep-nav--5 .ep-tab i { font-size: 18px; }
.ep-tab-new {
  position: absolute; top: -2px; right: -10px; z-index: 2;
  font-size: 8px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase;
  background: #dc2626; color: #fff; border-radius: 6px; padding: 1px 4px; line-height: 1.2;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}
.ep-tab-ic { position: relative; }
.ep-apps-page { padding: 4px 0 12px; min-width: 0; }
.ep-apps-head {
  display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; flex-wrap: wrap;
}
.ep-apps-back {
  flex-shrink: 0; width: 36px; height: 36px; border: 1px solid #e2e8f0; border-radius: 10px;
  background: #fff; color: #334155; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
}
.ep-apps-head-text { flex: 1; min-width: 0; }
.ep-apps-title { margin: 0; font-size: 20px; font-weight: 800; color: #0f172a; }
.ep-apps-sub { margin: 4px 0 0; font-size: 13px; color: #64748b; }
.ep-apps-manage { flex-shrink: 0; font-size: 12px; padding: 8px 10px; }
.ep-apps-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px;
}
.ep-app-tile {
  position: relative; border: none; border-radius: 16px; background: #fff;
  box-shadow: 0 1px 3px rgba(15,23,42,.08), 0 0 0 1px rgba(15,23,42,.04);
  padding: 14px 8px 12px; min-height: 96px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  color: #0f172a; text-align: center;
}
.ep-app-tile:active { transform: scale(.98); }
.ep-app-tile-ic {
  width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--ep-app-c, #003896) 12%, #fff);
  color: var(--ep-app-c, #003896); font-size: 18px; overflow: hidden; flex-shrink: 0;
}
.ep-app-tile-img { width: 28px; height: 28px; object-fit: contain; display: block; }
.ep-app-tile-ic .ep-app-tile-img { width: 30px; height: 30px; }
.ep-apps-form-card { max-width: 480px; }
.ep-apps-form-preview-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ep-apps-form-preview {
  width: 48px; height: 48px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--ep-app-c, #003896) 12%, #fff);
  color: var(--ep-app-c, #003896); overflow: hidden; flex-shrink: 0;
}
.ep-apps-form-preview img { width: 32px; height: 32px; object-fit: contain; }
.ep-apps-form-preview-hint { font-size: 12px; }
.ep-apps-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ep-apps-form-col { min-width: 0; }
@media (max-width: 400px) { .ep-apps-form-row { grid-template-columns: 1fr; } }
.ep-app-tile--folder .ep-app-tile-ic { background: #f1f5f9; color: #475569; }
.ep-app-tile-lbl {
  font-size: 11px; font-weight: 700; line-height: 1.25; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.ep-app-tile-count {
  position: absolute; top: 8px; right: 8px; font-size: 10px; font-weight: 700; color: #64748b;
  background: #f1f5f9; border-radius: 999px; padding: 2px 6px;
}
.ep-app-tile-del {
  position: absolute; top: 4px; left: 4px; width: 22px; height: 22px; border: none; border-radius: 999px;
  background: #fee2e2; color: #b91c1c; font-size: 16px; line-height: 1; cursor: pointer; z-index: 2;
}
.ep-app-tile--add {
  border: 2px dashed #cbd5e1; background: #f8fafc; color: #475569; box-shadow: none;
}
.ep-app-tile--add i { font-size: 20px; }
.ep-apps-empty { text-align: center; }
@media (min-width: 480px) {
  .ep-apps-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.ep-plan-hint { margin: -4px 0 12px; }
.ep-hrow-plan--rich .ep-slot { display: block; margin-bottom: 2px; }
.ep-hrow--future { opacity: .92; }
.ep-hrow-future { color: #6366f1; font-weight: 600; font-size: 12px; }
.ep-team-foot { padding: 8px 12px 10px; text-align: right; border-top: 1px solid #e2e8f0; }
.ep-account-actions { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.ep-corr-logs { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; max-height: 200px; overflow-y: auto; }
.ep-corr-opt { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #e2e8f0; border-radius: 10px; font-size: 13px; cursor: pointer; }
.ep-corr-opt--card { padding: 12px; border-radius: 12px; }
.ep-corr-opt--card:has(input:checked) { border-color: #93c5fd; background: #eff6ff; }
.ep-corr-opt-body { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.ep-corr-opt-time { font-size: 18px; font-weight: 800; color: #0f172a; }
.ep-corr-opt-hint { font-size: 11px; color: #64748b; }
.ep-corr-opt input { flex-shrink: 0; }
.ep-corr-opt--new { border-style: dashed; background: #f8fafc; }
.ep-corr-presets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.ep-corr-preset {
  border: 1px solid #e2e8f0; background: #fff; border-radius: 999px; padding: 7px 12px;
  font-size: 12px; font-weight: 700; color: #334155; cursor: pointer;
}
.ep-corr-preset.active { border-color: #4f46e5; background: #eef2ff; color: #4338ca; }
.ep-corr-plan { font-size: 12px; color: #1e40af; background: #eff6ff; border-radius: 10px; padding: 8px 10px; margin-bottom: 10px; }
.ep-corr-plan--muted { color: #64748b; background: #f8fafc; }
.ep-corr-plan i { margin-right: 6px; }
.ep-corr-ctx { display: grid; gap: 10px; margin-bottom: 14px; }
.ep-corr-ctx-row { background: #fff; border: 1px solid #cbd5e1; border-radius: 14px; padding: 14px 16px; color: #0f172a; }
.ep-corr-ctx-row > b { display: block; font-size: 11px; font-weight: 800; letter-spacing: .05em; color: #334155; text-transform: uppercase; margin-bottom: 10px; }
.ep-corr-ctx-row--plan { border-color: #93c5fd; background: #f0f9ff; }
.ep-corr-ctx-row--punch { border-color: #fcd34d; background: #fffbeb; }
.ep-timeline-inner { display: flex; flex-direction: column; gap: 8px; }
.ep-tl-row { display: grid; grid-template-columns: 76px 1fr; gap: 4px 12px; align-items: baseline; }
.ep-tl-lbl { font-size: 12px; font-weight: 800; color: #475569; text-transform: uppercase; letter-spacing: .03em; }
.ep-tl-row--in .ep-tl-lbl { color: #0369a1; }
.ep-tl-row--pause .ep-tl-lbl { color: #b45309; }
.ep-tl-row--out .ep-tl-lbl { color: #047857; }
.ep-tl-main { font-size: 17px; font-weight: 800; color: #0f172a; line-height: 1.25; letter-spacing: -.02em; grid-column: 2; }
.ep-tl-main--muted { font-size: 15px; font-weight: 600; color: #64748b; }
.ep-tl-sub { grid-column: 2; font-size: 11px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .04em; }
.ep-tl-sep { height: 8px; }
.ep-tl-plage { font-size: 11px; font-weight: 800; color: #64748b; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.ep-corr-ctx .ep-tl-main { font-size: 19px; }
.ep-corr-ctx .ep-tl-lbl { font-size: 13px; }
.ep-hrow .ep-tl-main { font-size: 16px; }
.ep-hrow .ep-tl-lbl { font-size: 11px; }
.ep-shift-block { min-width: 0; }
.ep-shift-block--multi { background: #fff; border: 1px solid #dbeafe; border-radius: 12px; padding: 10px 12px; }
.ep-shift-block--multi + .ep-shift-block--multi { margin-top: 10px; }
.ep-shift-hd {
  font-size: 13px; font-weight: 800; color: #1d4ed8; text-transform: uppercase; letter-spacing: .05em;
  margin-bottom: 8px; display: flex; align-items: center; gap: 8px; line-height: 1.2;
}
.ep-shift-hd::before {
  content: ''; flex: 0 0 10px; width: 10px; height: 10px; border-radius: 999px; background: #3b82f6;
}
.ep-hrow-col .ep-shift-block--multi { padding: 8px 10px; }
.ep-hrow-col .ep-shift-hd { font-size: 12px; margin-bottom: 6px; }
.ep-corr-ctx .ep-shift-block--multi { background: rgba(255,255,255,.65); border-color: #93c5fd; padding: 12px; }
.ep-corr-ctx .ep-shift-hd { font-size: 14px; }
.ep-corr-sheet { display: grid; gap: 12px; }
.ep-corr-compare {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: stretch;
}
.ep-corr-compare--compact { gap: 8px; }
.ep-corr-col {
  border-radius: 14px; padding: 12px 14px; min-width: 0;
}
.ep-corr-col--actual { background: #fffbeb; border: 1px solid #fcd34d; }
.ep-corr-col--prop { background: #f0fdf4; border: 1px solid #86efac; }
.ep-corr-col-title {
  font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
  color: #334155; margin-bottom: 10px;
}
.ep-corr-fields { display: grid; gap: 8px; }
.ep-corr-fields--edit { grid-template-columns: 1fr 1fr; gap: 8px; }
.ep-corr-field {
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
  font-size: 14px; color: #334155;
}
.ep-corr-field b { font-size: 16px; font-weight: 800; color: #0f172a; }
.ep-corr-field--chg b { color: #047857; }
.ep-corr-inp-lbl {
  display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-weight: 700;
  color: #475569; text-transform: uppercase; letter-spacing: .03em;
}
.ep-corr-inp-lbl input { font-size: 15px; }
.ep-req-compare { margin: 10px 0 4px; display: grid; gap: 8px; }
.ep-req-compare .ep-shift-hd { margin: 4px 0 0; font-size: 12px; }
.ep-req-card--admin .ep-corr-col-title { font-size: 10px; }
.ep-req-card--admin .ep-corr-field { font-size: 13px; }
.ep-req-card--admin .ep-corr-field b { font-size: 15px; }
.ep-day-work--multi .ep-shift-block--multi { margin-bottom: 0; }
.ep-modal-input--lg { font-size: 16px; padding: 11px 12px; }
.ep-hrow-ongoing { font-size: 9px; font-weight: 700; color: #6366f1; font-style: normal; margin-left: 2px; }
.ep-modal-card--wide { max-width: 560px; }
.ep-ts-page { padding: 4px 0 12px; }
.ep-ts-title { font-size: 15px; font-weight: 700; color: #0f172a; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.ep-ts-title i { color: #4f46e5; }
.ep-ts-nav { margin-bottom: 14px; }
.ep-ts-loading { text-align: center; color: #64748b; padding: 28px 12px; font-size: 14px; }
.ep-ts-page .ptse-week-block { margin-bottom: 14px; }
.ep-ts-page .ptse-week-row { grid-template-columns: 32px 1fr auto auto; }
.ep-scroll--heures,
.ep-scroll--planning { padding-bottom: 8px; }
/* Segmented toggle Moi / ?quipe */
.ep-seg { display: flex; background: #eef2ff; border-radius: 12px; padding: 4px; margin-bottom: 12px; gap: 4px; }
.ep-seg-btn { flex: 1; border: none; background: transparent; color: #4f46e5; font-size: 13px; font-weight: 600; padding: 8px 10px; border-radius: 9px; cursor: pointer; }
.ep-seg-btn.active { background: #fff; color: #1e1b4b; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.ep-plan-subtabs { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.ep-plan-subtab {
  flex: 1; min-width: 0; border: 1px solid #e2e8f0; background: #fff; color: #475569;
  font-size: 12px; font-weight: 700; padding: 8px 10px; border-radius: 10px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.ep-plan-subtab i { font-size: 11px; color: #64748b; }
.ep-plan-subtab.active { border-color: #93c5fd; background: linear-gradient(180deg, #eff6ff 0%, #fff 100%); color: #1d4ed8; }
.ep-plan-subtab.active i { color: #1d4ed8; }
.ep-team-week-list { display: flex; flex-direction: column; gap: 10px; }
.ep-team-card { background: #fff; border-radius: 12px; padding: 0; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.ep-team-card-head { display: flex; align-items: center; gap: 12px; padding: 12px 14px 10px; background: linear-gradient(180deg, #fafafa, #fff); }
.ep-team-av { width: 36px; height: 36px; border-radius: 10px; color: #fff; font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ep-team-name { font-size: 14px; font-weight: 700; color: #0f172a; }
.ep-team-meta { font-size: 11px; color: #64748b; margin-top: 2px; }
.ep-team-shifts { padding: 0 14px 12px; display: flex; flex-direction: column; gap: 6px; }
.ep-team-shift-line { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; }
.ep-team-shift-line--absent .ep-team-time { color: #9ca3af; font-weight: 600; }
.ep-team-shift-line--absent .ep-team-day b, .ep-team-shift-line--absent .ep-team-day span { color: #9ca3af; }
.ep-team-day { min-width: 52px; flex-shrink: 0; line-height: 1.15; }
.ep-team-day b { font-size: 11px; font-weight: 700; color: #64748b; text-transform: capitalize; display: block; }
.ep-team-day span { font-size: 10px; font-weight: 600; color: #94a3b8; display: block; margin-top: 1px; }
.ep-team-time { color: #0f172a; font-weight: 600; font-variant-numeric: tabular-nums; }
/* R?sum? R?el / Pr?vu / ?cart */
.ep-hours-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.ep-hours-stat { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 8px; text-align: center; }
.ep-hours-stat-lbl { display: block; font-size: 10px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.ep-hours-stat b { font-size: 17px; color: #1e293b; }
.ep-hours-stat--pos b { color: #047857; }
.ep-hours-stat--neg b { color: #b91c1c; }
.ep-hours-stat--ok b { color: #4f46e5; }
.ep-hours-list { display: flex; flex-direction: column; gap: 10px; }
.ep-hrow { display: flex; flex-direction: column; gap: 10px; align-items: stretch; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 14px; margin-bottom: 10px; }
.ep-hrow--rest { opacity: .72; border-style: dashed; background: #f8fafc; }
.ep-hrow--absent { border-color: #fecaca; background: #fef2f2; }
.ep-hrow-day { font-size: 14px; font-weight: 800; color: #0f172a; line-height: 1.2; min-width: 88px; flex-shrink: 0; }
.ep-hrow-day .ep-day-head b { font-size: 14px; font-weight: 800; color: #0f172a; text-transform: capitalize; display: block; }
.ep-hrow-day .ep-day-head span { display: block; font-size: 12px; font-weight: 600; color: #64748b; margin-top: 2px; }
.ep-hrow-abs { color: #b91c1c; font-weight: 800; font-size: 16px; }
.ep-hrow-plan { font-size: 12px; color: #64748b; margin-top: 2px; }
.ep-hours-picker-wrap { margin-bottom: 12px; }
.ep-hours-emp-name { font-size: 15px; font-weight: 700; color: #1e293b; margin-bottom: 10px; }
.ep-hrow-edit { display: inline-flex; align-items: center; justify-content: center; margin-top: 4px; border: none; background: #e0f2fe; color: #0369a1; border-radius: 8px; width: 30px; height: 28px; cursor: pointer; font-size: 12px; }
.ep-hrow-real { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
.ep-hrow-real b { display: block; font-size: 18px; font-weight: 800; color: #4f46e5; line-height: 1; }
.ep-hrow-ecart { display: inline-block; font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 8px; }
.ep-hrow-ecart--pos { background: #dcfce7; color: #047857; }
.ep-hrow-ecart--neg { background: #fee2e2; color: #b91c1c; }
.ep-hrow-ecart--ok { background: #eef2ff; color: #4f46e5; }
.ep-hours-foot { margin-top: 14px; font-size: 12px; color: #64748b; text-align: center; }
.ep-linkbtn { border: none; background: none; color: #4f46e5; font-weight: 600; cursor: pointer; text-decoration: underline; font-size: 12px; padding: 0; }
/* Demandes */
.ep-section-sub { font-size: 12px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .04em; margin: 16px 0 8px; }
.ep-pad8 { padding: 8px 2px; }
.ep-bigbtn--accent { background: #eef2ff; color: #4f46e5; border-color: #c7d2fe; }
.ep-req-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 12px; margin-bottom: 8px; }
.ep-req-card--admin { border-color: #c7d2fe; background: #f5f7ff; }
.ep-req-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ep-req-card-top-end { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
.ep-req-del { border: none; background: #f1f5f9; color: #64748b; width: 30px; height: 30px; border-radius: 8px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.ep-req-del:active { background: #fee2e2; color: #dc2626; }
.ep-dem-clear { width: 100%; margin: 10px 0 4px; border: 1px dashed #cbd5e1; background: #fff; color: #64748b; border-radius: 10px; padding: 10px; font-size: 12px; font-weight: 600; cursor: pointer; }
.ep-dem-clear i { margin-right: 6px; }
.ep-section-sub--done { margin-top: 14px; color: #64748b; }
.ep-admin-page { display: flex; flex-direction: column; gap: 4px; }
.ep-admin-block { margin-bottom: 18px; padding-bottom: 6px; border-bottom: 1px solid #e2e8f0; }
.ep-admin-block:last-child { border-bottom: none; margin-bottom: 0; }
.ep-admin-block--mine { border-bottom: none; }
.ep-active-punch-list { display: flex; flex-direction: column; gap: 8px; }
.ep-active-punch { display: grid; grid-template-columns: 1fr auto auto; gap: 8px 12px; align-items: center; padding: 10px 12px; border-radius: 12px; background: #f8fafc; border: 1px solid #e2e8f0; }
.ep-active-punch--on { border-left: 4px solid #10b981; }
.ep-active-punch--pause { border-left: 4px solid #f59e0b; }
.ep-active-punch-name { font-weight: 600; font-size: 14px; color: #0f172a; }
.ep-active-punch-meta { font-size: 12px; color: #64748b; margin-top: 2px; display: flex; align-items: center; gap: 6px; }
.ep-active-punch-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; display: inline-block; }
.ep-active-punch--on .ep-active-punch-meta { color: #059669; }
.ep-active-punch--pause .ep-active-punch-meta { color: #d97706; }
.ep-active-punch-dur { font-weight: 700; font-size: 15px; color: #4f46e5; white-space: nowrap; }
.ep-hrow--ongoing { border-left: 3px solid #6366f1; }
.ep-my-req-accueil { margin-top: 4px; }
.ep-req-card-top b { font-size: 14px; color: #1e293b; }
.ep-req-card-when { font-size: 12px; color: #64748b; margin-top: 4px; }
.ep-req-card-reason { font-size: 12px; color: #475569; margin-top: 6px; background: #f8fafc; border-radius: 8px; padding: 6px 8px; }
.ep-req-note { font-size: 12px; color: #b45309; margin-top: 6px; }
.ep-req-chip { font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 999px; white-space: nowrap; }
.ep-req-chip--wait { background: #fef9c3; color: #92400e; }
.ep-req-chip--ok { background: #dcfce7; color: #047857; }
.ep-req-chip--no { background: #fee2e2; color: #b91c1c; }
.ep-req-chip--me { background: #e0e7ff; color: #3730a3; }
.ep-punch-hint--warn { color: #b45309; background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px; padding: 8px 10px; font-size: 12px; margin-bottom: 8px; }
.ep-req-actions { display: flex; gap: 8px; margin-top: 10px; }
.ep-req-approve, .ep-req-reject { flex: 1; border: none; border-radius: 9px; padding: 9px 8px; font-size: 12px; font-weight: 700; cursor: pointer; }
.ep-req-approve { background: #dcfce7; color: #047857; }
.ep-req-reject { background: #fee2e2; color: #b91c1c; }
/* Modal portail */
.ep-modal { position: fixed; inset: 0; background: rgba(15,23,42,.6); z-index: 100050; display: flex; align-items: flex-end; justify-content: center; padding: 14px; }
.ep-modal-card { background: #fff; border-radius: 20px; padding: 18px; max-width: 440px; width: 100%; max-height: 88vh; overflow: auto; }
.ep-modal-title { font-size: 16px; font-weight: 700; color: #4f46e5; display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.ep-modal-sub { font-size: 12px; color: #64748b; margin-bottom: 12px; }
.ep-modal-lbl { display: block; font-size: 12px; font-weight: 600; color: #475569; margin: 8px 0 4px; }
.ep-modal-input { width: 100%; border: 1px solid #cbd5e1; border-radius: 10px; padding: 9px 10px; font-size: 14px; box-sizing: border-box; }
textarea.ep-modal-input { resize: vertical; }
.ep-modal-actions { display: flex; gap: 8px; margin-top: 16px; }
.ep-modal-cancel, .ep-modal-ok { flex: 1; border: none; border-radius: 10px; padding: 11px; font-size: 14px; font-weight: 700; cursor: pointer; }
.ep-modal-cancel { background: #f1f5f9; color: #334155; }
.ep-modal-ok { background: #4f46e5; color: #fff; }
.ep-modal--required { z-index: 100060; }
.ep-modal-card--required .ep-modal-ok { flex: 1; }
@media (min-width: 769px) { .ep-modal { align-items: center; } }
.ep-team-list { display: flex; flex-direction: column; gap: 14px; }
.ep-team-block {
  background: #fff; border-radius: 16px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(15,23,42,.05);
}
.ep-team-head {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  background: linear-gradient(135deg, #f8fafc, #f1f5f9); border-bottom: 1px solid #e2e8f0;
}
.ep-team-av {
  flex: 0 0 40px; height: 40px; border-radius: 12px; background: #1A5CB8; color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700;
}
.ep-team-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ep-team-name { font-weight: 700; font-size: 15px; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ep-team-role { font-size: 12px; font-weight: 600; color: #64748b; }
.ep-team-h { font-size: 14px; font-weight: 700; color: #1A5CB8; white-space: nowrap; }
.ep-plist--team .ep-prow { padding-left: 12px; padding-right: 12px; }
.ep-single-head { margin-bottom: 10px; padding: 0 2px; }
.ep-single-name { font-size: 18px; font-weight: 700; color: #0f172a; }
.ep-single-role { display: block; font-size: 13px; color: #64748b; margin-top: 2px; }

.ep-empty {
  background: #fff; border-radius: 16px; padding: 36px 20px; text-align: center;
  box-shadow: 0 2px 10px rgba(15,23,42,.05);
}
.ep-empty i { font-size: 36px; color: #cbd5e1; }
.ep-empty-title { font-size: 17px; font-weight: 700; color: #0f172a; margin: 14px 0 6px; }
.ep-empty-sub { font-size: 14px; color: #64748b; line-height: 1.5; }

/* Demandes */
.ep-section-title { font-size: 20px; font-weight: 700; color: #0f172a; margin: 4px 0 14px; }
.ep-req {
  width: 100%; background: #fff; border: none; border-radius: 14px;
  padding: 14px 16px; margin-bottom: 12px; cursor: pointer;
  display: flex; align-items: center; gap: 14px; text-align: left;
  box-shadow: 0 2px 10px rgba(15,23,42,.05);
}
.ep-req:active { background: #f8fafc; }
.ep-req-ic {
  flex: 0 0 44px; height: 44px; border-radius: 12px;
  background: var(--accent-soft, #eaf2ff); color: #1A5CB8; display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.ep-req-txt { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.ep-req-txt b { font-size: 15px; color: #0f172a; }
.ep-req-txt span { font-size: 12.5px; color: #94a3b8; line-height: 1.4; }
.ep-req-arrow { color: #cbd5e1; }

/* Compte */
.ep-profile { text-align: center; padding: 12px 0 18px; }
.ep-avatar {
  width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 12px;
  background: linear-gradient(135deg, #1e5cb8, #1a5cb8); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; font-weight: 700;
  box-shadow: 0 8px 20px rgba(26,92,184,.25);
}
.ep-profile-name { font-size: 20px; font-weight: 700; color: #0f172a; }
.ep-profile-role { font-size: 14px; color: #64748b; margin-top: 2px; }
.ep-logout {
  width: 100%; background: #fef2f2; color: #dc2626; border: 1.5px solid #fecaca;
  border-radius: 14px; padding: 15px; font-size: 15px; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 6px;
}
.ep-logout:active { background: #fee2e2; }

@media (min-width: 769px) {
  body.emp-portal-active { overflow: hidden; }
  #employee-portal-overlay {
    align-items: stretch;
    justify-content: flex-start;
    background: linear-gradient(165deg, #e8edf5 0%, #dbe4f0 100%);
    padding: 0;
    box-sizing: border-box;
  }
  .ep-portal-body {
    padding: 20px 24px 24px;
    display: flex;
    justify-content: center;
    align-items: stretch;
  }
  .ep-portal-toolbar { padding-left: 22px; padding-right: 22px; }
  .ep-global-back { font-size: 16px; min-height: 46px; }
  .ep-shell {
    width: min(1100px, 100%);
    max-width: 100%;
    height: 100%;
    max-height: none;
    flex: 1;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.22);
    background: linear-gradient(180deg, #fafbfd 0%, #f1f5f9 100%);
    border: 1px solid rgba(255,255,255,.8);
  }
  .ep-top {
    padding-top: 18px;
    padding-left: 22px;
    padding-right: 22px;
    padding-bottom: 14px;
  }
  .ep-top-back { min-height: 44px; padding: 0 16px 0 14px; font-size: 15px; }
  .ep-top-back-lbl { display: inline; }
  .ep-scroll {
    padding: 22px 28px 18px;
  }
  .ep-scroll--accueil {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 20px;
    align-content: start;
  }
  .ep-scroll--accueil > .ep-hello { grid-column: 1 / -1; }
  .ep-scroll--accueil > .ep-bigbtn { grid-column: 1 / -1; }
  .ep-scroll--accueil > .ep-alert,
  .ep-scroll--accueil > .ep-card--punch,
  .ep-scroll--accueil > #ep-punch-card,
  .ep-scroll--accueil > .ep-home-widgets,
  .ep-scroll--accueil > .ep-actions,
  .ep-scroll--accueil > .ep-my-req-accueil { grid-column: 1 / -1; }
  .ep-scroll--accueil .ep-home-widgets {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 16px;
  }
  .ep-scroll--accueil .ep-home-widget-slot:first-child { grid-column: 1 / -1; }
  .ep-scroll--applications { max-width: 720px; margin: 0 auto; width: 100%; }
  .ep-scroll--applications .ep-apps-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ep-scroll--planning {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .ep-scroll--planning .ep-week-nav { max-width: 100%; flex-shrink: 0; }
  .ep-scroll--planning .ep-plist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    background: transparent;
    box-shadow: none;
    overflow: visible;
  }
  .ep-scroll--planning .ep-prow {
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 1px 6px rgba(15, 23, 42, 0.05);
  }
  .ep-scroll--planning .ep-week-total,
  .ep-scroll--planning .ep-week-reset,
  .ep-scroll--planning .ep-week-nav,
  .ep-scroll--planning .ep-empty,
  .ep-scroll--planning > .ep-card {
    grid-column: 1 / -1;
    width: 100%;
  }
  .ep-scroll--demandes {
    max-width: 640px;
    margin: 0 auto;
    width: 100%;
  }
  .ep-scroll--compte {
    max-width: 520px;
    margin: 0 auto;
    width: 100%;
  }
  .ep-nav {
    border-radius: 0 0 20px 20px;
    padding: 4px 8px 6px;
  }
  .ep-tab { padding: 12px 10px 11px; font-size: 12px; }
  .ep-tab i { font-size: 20px; }
  .ep-hello-hi { font-size: 28px; }
  .ep-card { margin-bottom: 0; }
}
@media (min-width: 1200px) {
  .ep-shell { width: min(1200px, 100%); }
  .ep-scroll--planning .ep-plist {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* === G. Finition lot 2 : picker magasin, listes, modales overlay === */

body.premium-ui .store-picker-overlay{
  background:linear-gradient(165deg,#f8fafc 0%,#eef4ff 42%,#f0f9ff 100%) !important;
  padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom)) !important;
}
body.premium-ui .store-picker-card-wrap{
  border-radius:var(--r-sheet,24px) !important;
  border:1px solid var(--hairline,#e8edf3) !important;
  box-shadow:var(--elev-2,0 6px 20px rgba(15,23,42,.09)) !important;
  padding:26px 20px 20px !important;
}
body.premium-ui .store-picker-title{
  font-size:22px !important;
  font-weight:800 !important;
  letter-spacing:-.4px !important;
}
body.premium-ui .store-picker-card{
  border-radius:14px !important;
  background:#fff !important;
  border:1px solid #eef2f7 !important;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:transform var(--dur-fast,.14s) var(--ease-out,ease),border-color var(--dur-fast),box-shadow var(--dur-fast);
}
body.premium-ui .store-picker-card:hover{
  border-color:#bcd2f5 !important;
  background:#f8fbff !important;
}
body.premium-ui .store-picker-card--selected{
  border-color:#1A5CB8 !important;
  background:#f8fbff !important;
  box-shadow:0 0 0 2px rgba(26,92,184,.14) !important;
}
body.premium-ui .store-picker-card--selected:hover{
  background:#f0f6ff !important;
}
body.premium-ui .store-picker-search{
  border-radius:12px !important;
  border:1px solid #e2e8f0 !important;
}
body.premium-ui .store-picker-search:focus{
  border-color:#3b82f6 !important;
  box-shadow:0 0 0 3px rgba(59,130,246,.15) !important;
}
body.premium-ui .store-picker-validate{
  border-radius:12px !important;
  background:linear-gradient(180deg,#1e5cb8 0%,#1a5cb8 100%) !important;
  padding:14px !important;
  font-size:15px !important;
  font-weight:700 !important;
  box-shadow:0 6px 16px rgba(26,92,184,.22) !important;
  margin-top:14px !important;
}
body.premium-ui .store-picker-validate:hover{background:#174fa3 !important;}

body.premium-ui .list-item{
  box-shadow:var(--elev-1,0 1px 3px rgba(15,23,42,.06)) !important;
  margin-bottom:10px !important;
  padding:14px 12px !important;
  min-height:68px !important;
  transition:transform var(--dur-fast,.14s) var(--ease-out,ease),box-shadow var(--dur-fast);
}
body.premium-ui .list-item:active{transform:scale(.995);}
body.premium-ui .item-title{
  font-weight:600 !important;
  font-size:15px !important;
  letter-spacing:-.2px;
  color:var(--ink-900,#0f172a);
}
body.premium-ui .item-sub{font-size:12px !important;color:var(--ink-500,#64748b) !important;}
body.premium-ui .item-img{border-radius:12px !important;border:1px solid #eef2f7;}
body.premium-ui .card{padding:16px 18px !important;}

body.premium-ui .home-alert-strip{
  border-radius:var(--r-tile,14px) !important;
  padding:10px 14px !important;
  box-shadow:0 4px 14px rgba(226,75,74,.22) !important;
}
body.premium-ui .home-alert-text{font-size:12px !important;font-weight:600 !important;}

body.premium-ui .sigdlg-overlay{
  background:rgba(15,23,42,.42) !important;
  backdrop-filter:blur(6px) saturate(120%) !important;
  -webkit-backdrop-filter:blur(6px) saturate(120%) !important;
}
body.premium-ui .sigdlg-card{
  border-radius:var(--r-sheet,24px) !important;
  border:1px solid var(--hairline,#e8edf3) !important;
  box-shadow:var(--elev-3) !important;
  padding:20px !important;
}

body.premium-ui #modal-quick-actions,
body.premium-ui #modal-nav-dock,
body.premium-ui #modal-dock-app-icon,
body.premium-ui #modal-ios-folder{
  background:rgba(15,23,42,.42) !important;
  backdrop-filter:blur(6px) saturate(120%) !important;
  -webkit-backdrop-filter:blur(6px) saturate(120%) !important;
}
body.premium-ui #modal-quick-actions > div,
body.premium-ui #modal-nav-dock > div,
body.premium-ui #modal-dock-app-icon > div{
  border-radius:var(--r-sheet,24px) var(--r-sheet,24px) 0 0 !important;
  border:1px solid var(--hairline,#e8edf3) !important;
  box-shadow:var(--elev-3) !important;
}
body.premium-ui .ios-folder-modal-shell{
  border-radius:var(--r-sheet,24px) !important;
  border:1px solid var(--hairline,#e8edf3) !important;
  box-shadow:var(--elev-3) !important;
  background:#fff !important;
}
body.premium-ui #modal-ios-folder #ios-folder-title{
  font-weight:700 !important;
  font-size:18px !important;
  letter-spacing:-.3px;
}

/* === H. Finition lot 3 : 2FA, param?tres, planning === */

.totp-gate{
  position:fixed;inset:0;z-index:96000;
  display:flex;align-items:center;justify-content:center;
  padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
  overflow-y:auto;
}
.totp-gate.hidden{display:none!important;}
body.premium-ui .totp-gate{
  background:linear-gradient(165deg,#f8fafc 0%,#eef4ff 42%,#f5f8fc 100%);
}
.totp-gate-card{
  width:min(400px,100%);
  background:#fff;
  border-radius:var(--r-sheet,24px);
  padding:26px 22px 22px;
  border:1px solid var(--hairline,#e8edf3);
  box-shadow:var(--elev-3,0 18px 48px rgba(15,23,42,.18));
}
.mfa-method-picker{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:14px;
}
.mfa-method-btn{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:8px 4px;border:1.5px solid #e2e8f0;border-radius:12px;
  background:#f8fafc;color:#475569;font-size:10px;font-weight:700;cursor:pointer;
  transition:border-color .12s,background .12s;
}
.mfa-method-btn i{font-size:15px;}
.mfa-method-btn.active{border-color:#1A5CB8;background:#eff6ff;color:#1A5CB8;}
.mfa-method-btn.disabled,.mfa-method-btn:disabled{opacity:.45;cursor:not-allowed;}
.mfa-method-btn__label{line-height:1.15;text-align:center;}
.mfa-panel{margin-bottom:10px;}
.mfa-webauthn-actions,.mfa-email-actions{display:flex;flex-direction:column;gap:8px;}
.mfa-onboarding-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 10px;margin:0 0 14px;padding:0;}
.mfa-onboarding-step{font-size:11px;font-weight:600;color:#94a3b8;padding:4px 10px;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;}
.mfa-onboarding-step.is-active{color:#1A5CB8;background:#eff6ff;border-color:#93c5fd;}
.mfa-onboarding-step.is-done{color:#15803d;background:#f0fdf4;border-color:#86efac;}
.mfa-onboarding-continue{margin:10px 0 4px;}
.totp-gate-head{text-align:center;margin-bottom:16px;}
.totp-gate-eyebrow{
  font-size:11px;font-weight:800;color:#1A5CB8;
  text-transform:uppercase;letter-spacing:.5px;
}
.totp-gate-title{
  margin:8px 0 6px;font-size:22px;font-weight:800;color:var(--ink-900,#0f172a);
  letter-spacing:-.4px;line-height:1.15;
}
.totp-gate-hint,.totp-gate-note{
  margin:0;font-size:13px;color:var(--ink-500,#64748b);line-height:1.45;
}
.totp-gate-note{margin-bottom:8px;}
.totp-gate-note--center{text-align:center;}
.totp-gate-note--block{margin-bottom:10px;}
.totp-qr-wrap{text-align:center;margin-bottom:12px;}
.totp-qr-img{
  max-width:220px;border-radius:12px;border:1px solid #e2e8f0;
  display:none;margin:0 auto;
}
.totp-app-links{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px;
}
.totp-app-link{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 12px;border:1px solid #dbeafe;border-radius:12px;
  background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:700;text-decoration:none;
  transition:background var(--dur-fast),transform var(--dur-fast);
}
.totp-app-link:active{transform:scale(.98);background:#dbeafe;}
.totp-manual-secret{
  display:block;font-size:11px;word-break:break-all;
  background:#f8fafc;padding:10px 12px;border-radius:10px;
  border:1px solid #e2e8f0;margin-bottom:8px;color:#334155;
}
.totp-regenerate-btn{width:100%;margin-bottom:10px!important;font-size:13px!important;}
.totp-code-input{
  width:100%;text-align:center;font-size:26px;letter-spacing:.28em;font-weight:800;
  padding:14px 12px;border-radius:14px;border:2px solid #e2e8f0;margin-bottom:10px;
  background:#fff;outline:none;
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
}
.totp-code-input:focus{
  border-color:#3b82f6;
  box-shadow:0 0 0 3px rgba(59,130,246,.15);
}
.totp-clock-warn,.totp-error{display:none;margin-bottom:8px;}
.totp-clock-warn{background:#fffbeb!important;border-color:#fcd34d!important;color:#92400e!important;}
.totp-action-btn{width:100%;margin-bottom:8px!important;}
.totp-logout-btn{width:100%;margin-top:4px!important;}

body.premium-ui #view-parametres .settings-hero{
  border-radius:20px !important;
  box-shadow:0 10px 26px rgba(15,23,42,.12) !important;
}
body.premium-ui #view-parametres .settings-card{
  border-radius:18px !important;
  border:1px solid #eef2f7 !important;
  box-shadow:var(--elev-1) !important;
  padding:16px 18px !important;
}
body.premium-ui #view-parametres .settings-inline-note{
  border-radius:14px !important;
  background:#f8fafc !important;
  border:1px solid #eef2f7 !important;
}
body.premium-ui #view-parametres .settings-subcard{
  border-radius:14px !important;
  border:1px solid #e3edf9 !important;
}
body.premium-ui #view-parametres .param-tabs .tab.active{
  color:#0f172a !important;
  font-weight:700 !important;
}

body.premium-ui.planning-fullscreen #view-planning{
  background:linear-gradient(180deg,#f8fafc 0%,#eef4ff 55%,#f5f8fc 100%) !important;
}
body.premium-ui.planning-fullscreen .ct-tabs,
body.premium-ui.planning-fullscreen .ct-nav-bar{
  background:#fff !important;
  border:1px solid #eef2f7 !important;
  box-shadow:var(--elev-1) !important;
}
body.premium-ui.planning-fullscreen .ct-grid-wrap{
  border:1px solid #eef2f7 !important;
  box-shadow:var(--elev-2) !important;
}
body.premium-ui.planning-fullscreen .ct-tab.active{
  box-shadow:0 2px 8px rgba(15,23,42,.08) !important;
}
body.premium-ui.planning-fullscreen .ct-week-label{
  letter-spacing:-.3px;
}
body.premium-ui #view-planning > .mod-hdr{
  margin-bottom:12px;
}

/* ?? DT50 / terminaux rugged (Urovo, Honeywell?) ?? */
html.purpan-handheld-root,
body.purpan-handheld{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-x:hidden;
  max-width:100vw;
}
body.purpan-handheld{
  height:100vh;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
body.purpan-handheld main{
  min-height:0;
  overflow-x:hidden;
  padding:10px 10px calc(76px + env(safe-area-inset-bottom));
}
body.purpan-handheld header,
body.purpan-handheld nav{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:#fff !important;
}
body.purpan-handheld nav{
  height:72px;
  padding-bottom:calc(8px + env(safe-area-inset-bottom));
}
body.purpan-handheld #pwa-install-banner{
  display:none !important;
}
body.purpan-handheld .mod-view .tabs,
body.purpan-handheld .tabs:not(.frais-tabs){
  display:flex !important;
  flex-wrap:nowrap !important;
  overflow-x:auto !important;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  margin-left:0 !important;
  margin-right:0 !important;
  max-width:100%;
}
body.purpan-handheld .mod-view .tabs::-webkit-scrollbar,
body.purpan-handheld .tabs:not(.frais-tabs)::-webkit-scrollbar{
  display:none;
}
body.purpan-handheld .mod-view .tab,
body.purpan-handheld .tabs:not(.frais-tabs) .tab{
  flex:0 0 auto !important;
  white-space:nowrap !important;
  min-width:max-content;
  font-size:11px !important;
  padding:8px 10px !important;
}
body.purpan-handheld .sales-tab-bar{
  margin-left:0 !important;
  margin-right:0 !important;
}
body.purpan-handheld .sales-tab-bar>button.btn{
  flex:0 0 auto !important;
  white-space:nowrap;
}
body.purpan-handheld .mod-view,
body.purpan-handheld .card,
body.purpan-handheld .home-grid,
body.purpan-handheld .ios-home-grid{
  max-width:100%;
  min-width:0;
}
body.purpan-handheld .mod-hdr-sub,
body.purpan-handheld .app-header__store{
  overflow:hidden;
  text-overflow:ellipsis;
}
body.purpan-handheld #spinner-overlay{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:#ffffff !important;
}
body.purpan-handheld .sheet-overlay{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:rgba(15,23,42,.55) !important;
}
body.purpan-handheld .modal-card,
body.purpan-handheld .dlg-card{
  max-height:92vh;
  max-width:min(500px,calc(100vw - 20px));
}

/* PVP / My Pie / Salad : paysage DT50 ? titre au-dessus, boutons en ligne en dessous */
body.purpan-handheld #view-pvp #tp-4,
body.purpan-handheld #view-mypie #mtp-4{
  display:none !important;
}
body.purpan-handheld #view-pvp .list-item,
body.purpan-handheld #view-mypie .list-item,
body.purpan-handheld #view-salad .list-item{
  flex-direction:column !important;
  align-items:stretch !important;
  gap:10px !important;
}
body.purpan-handheld #view-pvp .list-item > div:first-child,
body.purpan-handheld #view-mypie .list-item > div:first-child,
body.purpan-handheld #view-salad .list-item > div:first-child{
  width:100% !important;
  min-width:0 !important;
}
body.purpan-handheld #view-pvp .item-title,
body.purpan-handheld #view-mypie .item-title,
body.purpan-handheld #view-salad .item-title{
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  line-height:1.3 !important;
}
body.purpan-handheld #view-pvp .right-col,
body.purpan-handheld #view-mypie .right-col,
body.purpan-handheld #view-salad .right-col{
  width:100% !important;
  flex-wrap:wrap !important;
  justify-content:flex-end !important;
  gap:6px !important;
}
body.purpan-handheld #view-pvp .icon-btn,
body.purpan-handheld #view-mypie .icon-btn,
body.purpan-handheld #view-salad .icon-btn{
  width:36px !important;
  height:36px !important;
  font-size:14px !important;
  flex-shrink:0;
}
body.purpan-handheld #view-pvp .tabs,
body.purpan-handheld #view-mypie .tabs{
  overflow-x:auto !important;
  flex-wrap:nowrap !important;
}

/* M?me correctif paysage ?troit (DT50 tenu horizontalement) m?me sans d?tection UA */
@media (orientation:landscape) and (max-height:520px){
  #view-pvp #tp-4,
  #view-mypie #mtp-4{display:none !important;}
  #view-pvp .list-item,
  #view-mypie .list-item,
  #view-salad .list-item{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:10px !important;
  }
  #view-pvp .list-item > div:first-child,
  #view-mypie .list-item > div:first-child,
  #view-salad .list-item > div:first-child{
    width:100% !important;
    min-width:0 !important;
  }
  #view-pvp .item-title,
  #view-mypie .item-title,
  #view-salad .item-title{
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;
  }
  #view-pvp .right-col,
  #view-mypie .right-col,
  #view-salad .right-col{
    width:100% !important;
    flex-wrap:wrap !important;
    justify-content:flex-end !important;
  }
}

/* ?? ?tiquettes PVP (ardoise + ingr?dients) ?? */
#view-pvp input[type=checkbox],#view-pvp input[type=radio],
.etiq-pvp-wrap input[type=checkbox],.etiq-pvp-wrap input[type=radio]{
  width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;
  padding:0!important;margin:0!important;border-radius:4px!important;border:1.5px solid #cbd5e1!important;
  accent-color:#534AB7;flex-shrink:0;box-shadow:none!important;
}
.etiq-pvp-wrap{padding:0 0 16px;}
.etiq-pvp-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0;}
.etiq-pvp-save-badge{font-size:11px;font-weight:600;color:#64748b;}
.etiq-pvp-save-badge--ok{color:#0f766e;}
.etiq-pvp-save-badge--err{color:#b91c1c;}
.etiq-pvp-save-badge--dirty{color:#b45309;}
.etiq-pvp-subtabs{display:flex;gap:6px;margin:0 0 12px;}
.etiq-pvp-subtab{flex:1;border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:10px;font-size:12px;font-weight:600;color:#475569;cursor:pointer;}
.etiq-pvp-subtab.active{background:#534AB7;color:#fff;border-color:#534AB7;}
.etiq-pvp-cart-badge{display:inline-flex;min-width:18px;justify-content:center;background:#e2e8f0;border-radius:999px;padding:0 6px;font-size:10px;margin-left:4px;}
.etiq-pvp-subtab.active .etiq-pvp-cart-badge{background:rgba(255,255,255,.25);color:#fff;}
.etiq-pvp-layout{display:grid;grid-template-columns:minmax(240px,38%) 1fr;gap:12px;}
@media(max-width:720px){.etiq-pvp-layout{grid-template-columns:1fr;}}
.etiq-pvp-side{min-width:0;}
.etiq-pvp-product-list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,520px);overflow:auto;}
.etiq-pvp-prod-row{display:flex;align-items:stretch;border:1px solid #e2e8f0;border-radius:10px;background:#fff;overflow:hidden;min-height:44px;}
.etiq-pvp-prod-row.on{border-color:#534AB7;background:#f5f3ff;}
.etiq-pvp-prod-row.is-checked{border-color:#a78bfa;}
.etiq-pvp-prod-chk{display:flex;align-items:center;padding:0 4px 0 10px;flex-shrink:0;cursor:pointer;margin:0;}
.etiq-pvp-prod{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;border:0;border-radius:0;padding:8px 10px 8px 2px;background:transparent;cursor:pointer;flex:1 1 0;min-width:0;width:auto;color:#1e293b!important;-webkit-tap-highlight-color:transparent;}
.etiq-pvp-prod:focus-visible{outline:2px solid #534AB7;outline-offset:-2px;}
.etiq-pvp-prod__name{font-weight:600;font-size:13px;line-height:1.25;color:#1e293b!important;display:block;width:100%;word-break:break-word;}
.etiq-pvp-prod__meta{font-size:11px;color:#64748b!important;display:block;width:100%;line-height:1.2;margin-top:2px;}
.etiq-pvp-bulk{display:flex;flex-direction:column;gap:8px;margin:8px 0;padding:8px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;}
.etiq-pvp-bulk-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.etiq-pvp-bulk-all{margin:0!important;}
.etiq-pvp-bulk-count{flex:1;min-width:80px;color:#64748b!important;}
.etiq-pvp-bulk-print{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:6px;width:100%;}
.etiq-pvp-bulk-print .btn{width:100%!important;margin:0!important;padding:8px 6px!important;font-size:10px!important;min-height:36px;}
.etiq-bulk-print-btn:disabled{opacity:.45;pointer-events:none;}
#view-pvp .etiq-pvp-prod,.etiq-pvp-wrap .etiq-pvp-prod{color:#1e293b!important;background:transparent!important;box-shadow:none!important;}
#view-pvp .etiq-pvp-prod__name,.etiq-pvp-wrap .etiq-pvp-prod__name{color:#1e293b!important;}
#view-pvp .etiq-pvp-prod__meta,.etiq-pvp-wrap .etiq-pvp-prod__meta{color:#64748b!important;}
.etiq-pvp-fmt-hint{margin:0 0 10px;font-size:11px;color:#64748b;line-height:1.35;}
.etiq-pvp-editor-split{display:grid;grid-template-columns:1fr;gap:12px;}
@media(min-width:760px){.etiq-pvp-editor-split{grid-template-columns:1fr minmax(200px,42%);align-items:start;}}
.etiq-pvp-form-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px;}
.etiq-pvp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-bottom:10px;}
.etiq-pvp-form-grid label{font-size:11px;font-weight:600;color:#475569;display:block;}
.etiq-pvp-form-grid input,.etiq-pvp-form-grid select{width:100%;margin:4px 0 0;padding:8px 10px;border-radius:8px;border:1px solid #cbd5e1;font-size:13px;box-sizing:border-box;}
.etiq-pvp-field{margin-bottom:10px;}
.etiq-pvp-field>span{display:block;font-size:11px;font-weight:600;color:#475569;margin-bottom:4px;}
.etiq-pvp-wrap textarea{width:100%;margin:0;padding:8px 10px;border-radius:8px;border:1px solid #cbd5e1;font-size:13px;box-sizing:border-box;resize:vertical;min-height:72px;}
.etiq-pvp-toggles{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;}
.etiq-pvp-toggle{border:1px solid #e2e8f0;background:#f8fafc;color:#475569;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.etiq-pvp-toggle.is-on{background:#534AB7;border-color:#534AB7;color:#fff;}
.etiq-pvp-check{display:inline-flex;align-items:center;gap:6px;font-size:11px;margin:4px 8px 4px 0;}
.etiq-pvp-form-actions,.etiq-pvp-print-row,.etiq-pvp-cart-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.etiq-pvp-form-actions .btn,.etiq-pvp-print-row .btn{width:auto;flex:1;min-width:0;padding:10px 12px!important;font-size:11px!important;margin-top:0!important;}
.etiq-pvp-save-hint{font-size:10px;color:#0f766e;align-self:center;}
.etiq-flake-placement{margin:0 0 10px;padding:8px 10px;border-radius:10px;background:#f0f9ff;border:1px solid #bae6fd;}
.etiq-flake-placement.hidden{display:none;}
.etiq-pvp-preview-wrap{padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;}
@media(min-width:760px){.etiq-pvp-preview-wrap{position:sticky;top:8px;}}
.etiq-pvp-preview-head{font-size:11px;font-weight:700;color:#475569;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em;}
.etiq-pvp-preview{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;}
.etiq-pvp-preview-col{display:flex;flex-direction:column;gap:4px;}
.etiq-pvp-empty{text-align:center;padding:20px;color:#64748b;font-size:13px;}
.etiq-pvp-format-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.etiq-pvp-format-card{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff;}
.etiq-pvp-format-card.on{border-color:#534AB7;background:#faf5ff;}
.etiq-pvp-format-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.etiq-pvp-cart-row{display:flex;justify-content:space-between;gap:8px;align-items:center;border:1px solid #e2e8f0;border-radius:10px;padding:10px;margin-bottom:8px;background:#fff;}
.etiq-pvp-cart-row__qty{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end;}
.etiq-cart-qty-lbl{font-size:10px;font-weight:600;color:#64748b;min-width:42px;}
.etiq-cart-qty-val{min-width:18px;text-align:center;font-weight:700;font-size:13px;}
.etiq-cart-qty-btn{min-width:28px!important;padding:6px 8px!important;}
.etiq-cart-qty-sep{width:8px;}
.etiq-cart-qty-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;}
.etiq-cart-qty-grid label{font-size:12px;font-weight:600;color:#475569;}
.etiq-cart-qty-grid input{width:100%;margin-top:4px;padding:8px;border-radius:8px;border:1px solid #cbd5e1;box-sizing:border-box;}
.etiq-cart-quick-btns{display:flex;flex-wrap:wrap;gap:6px;}
.etiq-pvp-preview-sheet{display:flex;flex-wrap:wrap;gap:8px;}
.etiq-pvp-preview-sheet--cart{gap:6px;}
.etiq-pvp-cart-preview-item{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:flex-start;}
.etiq-cat-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f1f5f9;}
.etiq-pvp-preview-cols{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;}
.etiq-pvp-preview-label{font-weight:600;margin-bottom:6px;color:#475569;}
.etiq-pvp-preview-ruler{color:#94a3b8;margin-bottom:8px;}
.etiq-pvp-preview-stage{display:inline-flex;align-items:flex-start;padding:4px;border:1px dashed #cbd5e1;border-radius:8px;background:#fff;}
.etiq-pvp-preview-stage--ardoise .etiq-ardoise{outline:2px solid #534AB7;outline-offset:1px;border-radius:2px;}
.etiq-pvp-preview-stage--ardoise .etiq-ingredients{opacity:.4;}
.etiq-pvp-preview-stage--compo .etiq-ingredients{outline:2px solid #534AB7;outline-offset:1px;}
.etiq-pvp-preview-stage--compo .etiq-ardoise{opacity:.4;}
.etiq-pair{display:inline-flex;gap:1mm;flex-wrap:nowrap;align-items:flex-start;}
.etiq-ardoise{display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:2.5mm 2.5mm;}
.etiq-ardoise--fit{height:auto;}
.etiq-ardoise--fit .etiq-ardoise__body{flex:0 0 auto;}
.etiq-ardoise__top{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;min-height:0;width:100%;}
.etiq-ardoise__top--flake .etiq-ardoise__name{padding-left:7mm;}
.etiq-flake-slot--ardoise{position:absolute;left:0;top:0;z-index:1;display:flex;align-items:flex-start;}
.etiq-logo-slot--ardoise{position:absolute;right:0;top:0;z-index:1;display:flex;align-items:flex-start;}
.etiq-ardoise__name{flex:1;text-align:center;font-weight:900;font-style:italic;line-height:1.05;word-break:break-word;letter-spacing:-0.02em;font-family:"Arial Black","Arial Bold",Gadget,sans-serif;}
.etiq-title-name{font-weight:900;font-style:italic;line-height:1.05;word-break:break-word;letter-spacing:-0.02em;text-transform:uppercase;}
.etiq-flake{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0;overflow:visible;}
.etiq-flake svg{display:block;width:100%;height:100%;overflow:visible;}
.etiq-ing__flake{display:flex;align-items:center;gap:1mm;margin-top:1.2mm;padding-top:0.8mm;border-top:0.15mm solid #e2e8f0;font-size:5pt;font-weight:700;color:#0077b6;letter-spacing:0.01em;}
.etiq-ing__flake .etiq-flake{flex-shrink:0;align-self:center;}
.etiq-ing__flake-txt{display:inline-block;line-height:1.15;min-width:0;vertical-align:middle;}
.etiq-ing__flake-main{display:block;font-size:5pt;font-weight:700;}
.etiq-ing__flake-sub{display:block;font-size:3.5pt;font-weight:600;opacity:.9;letter-spacing:0;margin-top:0.15mm;}
.etiq-logo{flex-shrink:0;display:block;}
.etiq-ingredients__head-row{display:flex;align-items:center;gap:1mm;}
.etiq-ingredients--fit .etiq-ingredients__head-row{height:auto;}
.etiq-ingredients__head-text{flex:1;min-width:0;}
.etiq-ardoise__body{display:flex;flex:1;align-items:flex-end;justify-content:space-between;gap:2mm;min-height:0;}
.etiq-ardoise__left{display:flex;flex-direction:column;justify-content:flex-end;}
.etiq-ardoise__right{display:flex;align-items:flex-end;justify-content:flex-end;flex:1;}
.etiq-ardoise__price{font-weight:800;line-height:0.95;white-space:nowrap;}
.etiq-ardoise__kg{opacity:.9;}
.etiq-ingredients{display:flex;flex-direction:column;border:0.4mm solid #000;background:#fff;color:#111;box-sizing:border-box;}
.etiq-ingredients--fit{height:auto!important;max-height:none!important;overflow:visible!important;}
.etiq-ingredients--fit .etiq-ingredients__head{overflow:visible!important;max-height:none!important;height:auto!important;}
.etiq-ingredients__head{color:#fff;display:flex;flex-direction:column;justify-content:center;flex-shrink:0;}
.etiq-ingredients__head-name{text-align:center;}
.etiq-ingredients__head-sum{opacity:.9;margin-top:1px;}
.etiq-ingredients__body{flex:0 0 auto;overflow:visible!important;max-height:none!important;height:auto!important;word-break:break-word;}
.etiq-ing-empty{color:#94a3b8;}
.etiq-pvp-model-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;}
.etiq-pvp-model-header-actions{display:flex;flex-wrap:wrap;gap:6px;}
.etiq-pvp-model-header-actions .btn{width:auto;flex:none;padding:8px 12px!important;font-size:11px!important;margin:0!important;}
.etiq-pvp-model-layout{display:grid;grid-template-columns:1fr minmax(200px,42%);gap:14px;align-items:start;}
@media(max-width:800px){.etiq-pvp-model-layout{grid-template-columns:1fr;}}
.etiq-pvp-model-sections{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.etiq-pvp-model-sec{border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600;color:#475569;cursor:pointer;}
.etiq-pvp-model-sec.active{background:#534AB7;color:#fff;border-color:#534AB7;}
.etiq-pvp-model-fields{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff;}
.etiq-pvp-model-preview{position:sticky;top:8px;border:1px dashed #cbd5e1;border-radius:12px;padding:12px;background:#f8fafc;min-width:0;}
.etiq-mdl-size-group{display:flex;flex-direction:column;gap:12px;margin-bottom:4px;}
.etiq-mdl-size{padding:8px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;}
.etiq-mdl-size__head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;font-weight:600;color:#475569;}
.etiq-mdl-size__val{color:#534AB7;font-size:12px;white-space:nowrap;}
.etiq-mdl-size__range{width:100%;margin:0 0 6px;accent-color:#534AB7;}
.etiq-mdl-size__num{width:100%;margin:0;padding:6px 8px;border-radius:8px;border:1px solid #cbd5e1;font-size:13px;box-sizing:border-box;}
.etiq-pvp-model-fields .etiq-mdl-size__num{width:100%!important;}
.etiq-pvp-preview-cols--model.is-ardoise .etiq-pvp-preview-col.is-dimmed,
.etiq-pvp-preview-cols--model.is-compo .etiq-pvp-preview-col.is-dimmed{opacity:.35;transform:scale(.92);transform-origin:top left;}
.etiq-pvp-preview-cols--model.is-ardoise .etiq-pvp-preview-col:not(.is-dimmed),
.etiq-pvp-preview-cols--model.is-compo .etiq-pvp-preview-col:not(.is-dimmed){transform:scale(1.02);transform-origin:top left;}
.etiq-pvp-preview-hint{color:#64748b;margin-bottom:6px;line-height:1.35;font-size:11px;}
.etiq-pvp-override-details{margin-top:8px;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;background:#fafafa;}
.etiq-pvp-override-details.on{border-color:#534AB7;background:#f5f3ff;}
.etiq-pvp-override-details>summary{font-size:11px;font-weight:600;color:#475569;cursor:pointer;list-style:none;}
.etiq-pvp-override-details>summary::-webkit-details-marker{display:none;}
.etiq-pvp-override-details[open]>summary{margin-bottom:8px;color:#534AB7;}
.etiq-ov-pair{display:flex;gap:4px;margin-top:4px;}
.etiq-ov-pair input{flex:1;margin:0!important;}

/* ???????????????????????????????????????????????
   R?CEPTION ? alignement premium-ui (formulaire)
??????????????????????????????????????????????? */

.reception-next-delivery{display:none;margin-bottom:12px;}
.reception-next-delivery.is-visible{display:block;}
.reception-next-cube{cursor:default;}
.reception-next-cube:active{transform:none;}
.reception-next-cube .home-cube-main{font-size:13px;font-weight:700;}
.reception-next-cube .home-cube-kicker{font-size:10px;}

#view-reception .reception-card{
  border-left:4px solid var(--reception,#0F6E56);
  border-radius:16px !important;
  padding:16px !important;
}
#view-reception .reception-card__title{
  margin:0 0 12px;
  color:var(--reception,#0F6E56);
  font-size:15px;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:8px;
}
#view-reception .rec-supplier-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  margin-bottom:18px;
  width:100%;
}
/* Featured Direct / Classique : toujours pleine largeur */
#view-reception .supplier-select-btn--featured{
  grid-column:1 / -1 !important;
  min-height:108px !important;
  padding:18px 16px !important;
}
#view-reception .supplier-select-btn{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  min-height:92px !important;
  width:100% !important;
  max-width:100% !important;
  text-align:left !important;
  background:#fff !important;
  color:#0f172a !important;
  border:2px solid #e2e8f0 !important;
  box-shadow:0 6px 16px rgba(15,23,42,.07) !important;
  padding:16px 14px !important;
  border-radius:18px !important;
  cursor:pointer;
  font:inherit;
  box-sizing:border-box !important;
  transition:border-color .12s,box-shadow .12s,background .12s,transform .1s;
}
/* 2 colonnes seulement sur grand écran — jamais 3 */
@media (min-width:1100px){
  #view-reception .rec-supplier-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #view-reception .supplier-select-btn--featured{
    grid-column:1 / -1 !important;
  }
}
#view-reception .supplier-select-btn:active{transform:scale(.985);}
#view-reception .supplier-select-btn .sup-btn-icon{
  flex:0 0 auto;
  width:56px !important;
  height:56px !important;
  border-radius:16px !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  background:#f1f5f9;
  color:#475569;
  font-size:22px !important;
  margin:0 !important;
}
#view-reception .supplier-select-btn .sup-btn-body{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
#view-reception .supplier-select-btn .sup-btn-name{
  font-weight:800 !important;
  font-size:17px !important;
  line-height:1.2 !important;
  color:#0f172a;
}
#view-reception .supplier-select-btn--featured .sup-btn-name{
  font-size:18px !important;
}
#view-reception .supplier-select-btn .sup-btn-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 8px;
}
#view-reception .supplier-select-btn .sup-btn-sub,
#view-reception .supplier-select-btn .sup-btn-code{
  font-size:12px !important;
  color:#64748b;
  font-weight:500;
  margin:0 !important;
}
#view-reception .supplier-select-btn .sup-btn-chev{
  flex:0 0 auto;
  color:#94a3b8;
  font-size:14px;
  padding-left:4px;
}
#view-reception .supplier-select-btn.selected{
  background:#ecfdf5 !important;
  border-color:#059669 !important;
  color:#065f46 !important;
  box-shadow:0 0 0 2px rgba(5,150,105,.16),0 6px 16px rgba(5,150,105,.1) !important;
}
#view-reception .supplier-select-btn.selected .sup-btn-sub,
#view-reception .supplier-select-btn.selected .sup-btn-code{color:#047857;}
#view-reception .supplier-select-btn.selected .sup-btn-chev{color:#059669;}
#view-reception .supplier-select-btn--fl-direct{
  background:linear-gradient(135deg,#f7fee7 0%,#fff 70%) !important;
  border-color:#a3e635 !important;
}
#view-reception .supplier-select-btn--fl-direct .sup-btn-icon{
  background:#d9f99d !important;
  color:#3f6212 !important;
}
#view-reception .supplier-select-btn--fl-direct.selected{
  background:#ecfccb !important;
  border-color:#65a30d !important;
  box-shadow:0 0 0 2px rgba(101,163,13,.2),0 6px 16px rgba(101,163,13,.12) !important;
}
#view-reception .supplier-select-btn--fl-classic{
  background:linear-gradient(135deg,#eff6ff 0%,#fff 70%) !important;
  border-color:#93c5fd !important;
}
#view-reception .supplier-select-btn--fl-classic .sup-btn-icon{
  background:#dbeafe !important;
  color:#1d4ed8 !important;
}
#view-reception .supplier-select-btn--fl-classic.selected{
  background:#dbeafe !important;
  border-color:#2563eb !important;
  box-shadow:0 0 0 2px rgba(37,99,235,.18),0 6px 16px rgba(37,99,235,.12) !important;
}
#view-reception .sup-btn-badge{
  display:inline-flex !important;
  align-items:center;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.03em;
  text-transform:uppercase;
  border-radius:999px;
  padding:4px 9px !important;
  line-height:1.2;
  margin:0 !important;
}
#view-reception .sup-btn-badge--direct{
  color:#3f6212 !important;
  background:#d9f99d !important;
}
#view-reception .sup-btn-badge--classic{
  color:#1e40af !important;
  background:#bfdbfe !important;
}

#view-reception .rec-type-section{margin-bottom:12px;}
#view-reception #rec-type-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
}
#view-reception .sup-type-btn{
  min-height:72px !important;
  padding:14px 10px !important;
  border-radius:16px !important;
  font-size:13px !important;
  box-shadow:0 2px 8px rgba(15,23,42,.05);
}
#view-reception .rec-selected-supplier{margin-bottom:12px;}
#view-reception .rec-sup-summary{
  background:#f0fdf4;
  border:1.5px solid rgba(5,150,105,.25);
  border-radius:14px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
#view-reception .rec-clear-btn{
  border:none;
  background:#fee2e2;
  color:#991b1b;
  border-radius:10px;
  padding:7px 12px;
  font-weight:600;
  font-size:12px;
  cursor:pointer;
  flex-shrink:0;
}
#view-reception .rec-temp-box{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:12px;
  margin-bottom:10px;
}
#view-reception .rec-temp-range-label{
  font-weight:600;
  color:#475569;
  margin-bottom:8px;
}
#view-reception .rec-temp-msg{
  padding:10px 12px;
  border-radius:10px;
  font-weight:600;
  font-size:12px;
  margin-top:8px;
  line-height:1.35;
}
#view-reception .rec-temp-msg--ok{background:#dcfce7;color:#15803d;}
#view-reception .rec-temp-msg--bad{background:#fee2e2;color:#b91c1c;}

#view-reception .rec-sig-box{
  position:relative;
  background:#fff;
  border:2px dashed #94a3b8;
  border-radius:14px;
  margin-bottom:8px;
  overflow:hidden;
}
#view-reception .rec-sig-canvas{
  display:block;
  width:100%;
  height:140px;
  touch-action:none;
  cursor:crosshair;
  background:#fff;
}
#view-reception .rec-sig-clear{
  position:absolute;
  top:8px;right:8px;
  border:none;border-radius:8px;
  background:#f1f5f9;color:#475569;
  font-size:11px;font-weight:600;
  padding:6px 10px;cursor:pointer;
}
#view-reception .rec-hist-sig{
  margin-top:8px;padding:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;
}
#view-reception .rec-hist-sig img{
  display:block;width:100%;max-height:90px;object-fit:contain;background:#fff;border-radius:8px;
}
#view-reception .rec-hist-sig .small{margin-bottom:4px;color:#64748b;font-weight:600;}

#view-reception .rec-section-title{
  font-weight:700;
  font-size:11px;
  color:#64748b;
  margin:12px 0 10px;
  text-transform:uppercase;
  letter-spacing:.4px;
  border-top:1px solid #f1f5f9;
  padding-top:12px;
  display:flex;
  align-items:center;
  gap:6px;
}
#view-reception .rec-bool-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:12px;
}
#view-reception .rec-bool-btn{
  flex:1;
  min-height:52px;
  padding:12px 10px;
  border:2px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
  font-weight:700;
  cursor:pointer;
  font-size:15px;
  color:#334155;
  transition:background .12s,border-color .12s,color .12s,transform .1s;
}
#view-reception .rec-bool-btn:active{transform:scale(.985);}
#view-reception .rec-bool-btn--yes{
  background:#dcfce7;
  border-color:#16a34a;
  color:#15803d;
}
#view-reception .rec-bool-btn--no{
  background:#fee2e2;
  border-color:#ef4444;
  color:#b91c1c;
}
#view-reception .rec-fl-direct-section{
  margin-top:12px;
  padding:12px;
  border-radius:14px;
  background:#f7fee7;
  border:1.5px solid #bef264;
}
#view-reception .rec-fl-direct-section .rec-section-title{
  color:#3f6212;
  margin-bottom:6px;
}
#view-reception .rec-fl-direct-hint{
  font-size:11px;
  color:#4d7c0f;
  line-height:1.35;
  margin:0 0 10px;
}
#view-reception .rec-fl-direct-progress{
  font-size:12px;
  font-weight:600;
  color:#3f6212;
  background:#ecfccb;
  border:1px solid #bef264;
  border-radius:10px;
  padding:8px 10px;
  margin:0 0 12px;
}
#view-reception .rec-fl-direct-progress--ok{
  color:#15803d;
  background:#dcfce7;
  border-color:#86efac;
}
#view-reception .rec-fl-case{
  margin-bottom:10px;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.65);
  border:1.5px solid transparent;
  transition:border-color .12s,background .12s;
}
#view-reception .rec-fl-case--done{
  border-color:#86efac;
  background:#fff;
}
#view-reception .rec-fl-case label{
  margin-bottom:6px;
}
#view-reception .rec-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:10px;
}
#view-reception .rec-photo-preview{
  width:100%;
  max-height:180px;
  object-fit:contain;
  border-radius:12px;
  margin-bottom:10px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
}
#view-reception .rec-action-bar{
  display:flex;
  gap:8px;
  margin-top:8px;
}
#view-reception .rec-action-bar .btn{flex:1;}

body.premium-ui #view-reception .reception-card{
  border-radius:18px !important;
  box-shadow:0 4px 14px rgba(15,23,42,.06) !important;
  border:1px solid var(--ui-stroke,#e2e8f0) !important;
  border-left:4px solid var(--color-reception,#0F6E56) !important;
}

/* Autocontr?le embed dans R?ception ? m?mes cartes / boutons que le hub */
#view-reception .reception-actl-shell{
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:12px 10px 14px;
  margin-top:2px;
}
#view-reception #reception-actl .ahy-stack-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:0 0 6px;
}
#view-reception #reception-actl .ahy-wizard-card,
#view-reception #reception-actl .ahy-stack-card{
  background:#fff !important;
  border-radius:14px !important;
  border:1px solid #e8edf3 !important;
  border-left:1px solid #e8edf3 !important;
  padding:10px 12px 12px !important;
  margin-bottom:0 !important;
  box-shadow:0 2px 10px rgba(15,23,42,.05) !important;
}
#view-reception #reception-actl .ahy-wizard-card.overdue,
#view-reception #reception-actl .ahy-stack-card.overdue{
  border-color:#fecaca !important;
  background:#fff !important;
}
#view-reception #reception-actl .ahy-wizard-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px;}
#view-reception #reception-actl .ahy-wizard-name{
  font-size:13px;
  font-weight:700;
  color:#1e293b;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.35;
  margin-bottom:8px;
}
#view-reception #reception-actl .ahy-wizard-yn{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#view-reception #reception-actl .ahy-wizard-yes,
#view-reception #reception-actl .ahy-wizard-no{
  padding:14px 10px;
  border-radius:14px;
  border:2px solid #e2e8f0;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  background:#f8fafc;
  color:#334155;
}
#view-reception #reception-actl .ahy-wizard-yes.is-picked,
#view-reception #reception-actl .ahy-wizard-no.is-picked,
#view-reception #reception-actl .ahy-yn-btn.is-picked{
  box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor;
  transform:scale(1.01);
}
#view-reception #reception-actl .ahy-wizard-yes.is-picked{background:#dcfce7;border-color:#16a34a;color:#15803d;}
#view-reception #reception-actl .ahy-wizard-no.is-picked{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
#view-reception #reception-actl .ahy-late{
  display:inline-block;
  margin-left:5px;
  padding:2px 6px;
  border-radius:6px;
  font-size:9px;
  font-weight:600;
  background:#fef2f2;
  color:#dc2626;
}
#view-reception #reception-actl .time-chip{
  font-size:11px;
  font-weight:600;
  padding:3px 8px;
  border-radius:8px;
  background:#f1f5f9;
  color:#334155;
}
#view-reception #reception-actl .time-chip.overdue{background:#fee2e2;color:#991b1b;}
#view-reception #reception-actl .ahy-slot-progress{
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  background:#e0f2fe;
  color:#0369a1;
  font-size:11px;
  font-weight:700;
}
#view-reception #reception-actl .ahy-hint{margin-top:3px;margin-bottom:10px;}
#view-reception #reception-actl .ahy-hint summary{
  font-size:11px;
  color:#64748b;
  cursor:pointer;
  list-style:none;
}
#view-reception #reception-actl .ahy-hint summary::-webkit-details-marker{display:none;}
#view-reception #reception-actl .ahy-hint summary::before{content:'? ';}
#view-reception #reception-actl .ahy-hint[open] summary::before{content:'? ';}
#view-reception #reception-actl .ahy-hint-body{
  font-size:12px;
  color:#475569;
  line-height:1.4;
  padding:6px 0 2px;
}
#view-reception #reception-actl .ahy-criteria{
  margin:8px 0 10px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#f8fafc;
}
#view-reception #reception-actl .ahy-criteria summary{
  list-style:none;
  cursor:pointer;
  padding:7px 9px;
  font-size:12px;
  font-weight:650;
  color:#334155;
}
#view-reception #reception-actl .ahy-criteria summary::-webkit-details-marker{display:none;}
#view-reception #reception-actl .ahy-criteria ul{
  margin:0;
  padding:0 12px 9px 28px;
  color:#475569;
  font-size:12px;
  line-height:1.45;
}
#view-reception #reception-actl .ahy-source-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  font-weight:600;
  color:#1A5CB8;
  background:#eff6ff;
  border:1px solid #bfdbfe;
  border-radius:8px;
  padding:5px 8px;
  margin:0 0 10px;
  text-decoration:none;
}
#view-reception #reception-actl .task-card{
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:6px;
  box-shadow:0 1px 3px rgba(15,23,42,.06);
  background:#fff;
  border:1px solid #e2e8f0;
}
#view-reception #reception-actl .ahy-yn{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#view-reception #reception-actl .ahy-yn-btn{
  min-height:52px;
  min-width:0;
  padding:12px 10px;
  border-radius:14px;
  border:2px solid #e2e8f0;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  background:#f8fafc;
  color:#334155;
}
#view-reception #reception-actl .ahy-yn-yes{background:#f8fafc;color:#334155;border-color:#e2e8f0;}
#view-reception #reception-actl .ahy-yn-no{background:#f8fafc;color:#334155;border-color:#e2e8f0;}
#view-reception #reception-actl .ahy-yn-yes.is-picked{background:#dcfce7;border-color:#16a34a;color:#15803d;}
#view-reception #reception-actl .ahy-yn-no.is-picked{background:#fee2e2;border-color:#ef4444;color:#b91c1c;}
#view-reception #reception-actl .empty-state{
  color:#64748b;
  padding:20px 12px;
  text-align:center;
}

/* R?ception ? th?me sombre immersif (module entier, comme Autocontr?les) */
body.rec-shell main{
  padding:0!important;
  padding-bottom:0!important;
  overflow:hidden!important;
  min-height:100dvh!important;
  display:block!important;
}
body.rec-shell #view-reception.rec-immersive{
  position:fixed;
  inset:0;
  z-index:11000;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:max(env(safe-area-inset-top),10px) 14px max(env(safe-area-inset-bottom),18px);
  margin:0!important;
  max-width:none!important;
  min-height:100dvh;
  background:linear-gradient(165deg,#120e2e 0%,#1a1640 45%,#221b52 100%) !important;
}
body.premium-ui body.rec-shell #view-reception.rec-immersive > .mod-hdr,
body.rec-shell #view-reception.rec-immersive > .mod-hdr{
  background:transparent !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:none !important;
  border-radius:20px !important;
  margin-bottom:8px;
}
body.rec-shell #view-reception.rec-immersive .mod-hdr-title,
body.premium-ui body.rec-shell #view-reception.rec-immersive .mod-hdr-title{
  color:#fff !important;
}
body.rec-shell #view-reception.rec-immersive .mod-hdr-sub,
body.premium-ui body.rec-shell #view-reception.rec-immersive .mod-hdr-sub{
  color:rgba(255,255,255,.55) !important;
  opacity:1 !important;
}
body.rec-shell #view-reception.rec-immersive .mod-hdr-back{
  background:rgba(255,255,255,.1) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.12);
}
body.rec-shell #view-reception.rec-immersive .mod-hdr-avatar{
  border-color:rgba(255,255,255,.25);
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
body.premium-ui body.rec-shell #view-reception.rec-immersive .reception-tabs,
body.rec-shell #view-reception.rec-immersive .reception-tabs{
  background:rgba(0,0,0,.28) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:14px !important;
  color:#fff !important;
  box-shadow:none !important;
}
body.premium-ui body.rec-shell #view-reception.rec-immersive .reception-tabs .tab,
body.rec-shell #view-reception.rec-immersive .reception-tabs .tab{
  color:rgba(255,255,255,.72) !important;
  background:transparent !important;
  box-shadow:none !important;
  font-weight:700 !important;
}
body.premium-ui body.rec-shell #view-reception.rec-immersive .reception-tabs .tab.active,
body.premium-ui body.rec-shell #view-reception.rec-immersive .reception-tabs .tab.active-reception,
body.rec-shell #view-reception.rec-immersive .reception-tabs .tab.active,
body.rec-shell #view-reception.rec-immersive .reception-tabs .tab.active-reception{
  background:rgba(255,255,255,.2) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:0 2px 6px rgba(0,0,0,.2) !important;
}
body.rec-shell #view-reception.rec-immersive .reception-card,
body.rec-shell #view-reception.rec-immersive .card{
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(255,255,255,.2) !important;
  box-shadow:0 4px 14px rgba(0,0,0,.12) !important;
  color:#1e293b;
}
/* Intitul?s : sombres dans les cartes blanches, clairs sur le fond violet */
body.rec-shell #view-reception.rec-immersive .reception-card label,
body.rec-shell #view-reception.rec-immersive .card label,
body.rec-shell #view-reception.rec-immersive .list-item label,
body.rec-shell #view-reception.rec-immersive .planning-card label{
  color:#334155 !important;
}
body.rec-shell #view-reception.rec-immersive .reception-card .reception-card__title{
  color:var(--reception,#0F6E56) !important;
}
body.rec-shell #view-reception.rec-immersive .reception-card .rec-section-title{
  color:#64748b !important;
}
body.rec-shell #view-reception.rec-immersive .reception-card .rec-temp-range-label,
body.rec-shell #view-reception.rec-immersive .reception-card .small,
body.rec-shell #view-reception.rec-immersive .card .small,
body.rec-shell #view-reception.rec-immersive .list-item .small{
  color:#64748b !important;
}
body.rec-shell #view-reception.rec-immersive .list-item .item-title,
body.rec-shell #view-reception.rec-immersive .card .item-title,
body.rec-shell #view-reception.rec-immersive .planning-card .item-title{
  color:#1e293b !important;
}
body.rec-shell #view-reception.rec-immersive .list-item .item-sub,
body.rec-shell #view-reception.rec-immersive .card .item-sub{
  color:#64748b !important;
}
body.rec-shell #view-reception.rec-immersive .card h3,
body.rec-shell #view-reception.rec-immersive .card h4{
  color:#0f172a !important;
}
body.rec-shell #view-reception.rec-immersive .reception-next-cube,
body.rec-shell #view-reception.rec-immersive .home-cube--delivery{
  background:rgba(255,255,255,.96);
  border-color:rgba(255,255,255,.25);
}
body.rec-shell #view-reception.rec-immersive .reception-actl-shell{
  background:linear-gradient(180deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,.03) 100%);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  box-shadow:0 12px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);
  padding:8px 8px 10px;
}
body.rec-shell #view-reception.rec-immersive #reception-actl .ahy-wizard-card,
body.rec-shell #view-reception.rec-immersive #reception-actl .ahy-stack-card{
  background:#fff!important;
  border-radius:14px!important;
  padding:10px 12px 12px!important;
}
body.rec-shell #view-reception.rec-immersive #reception-actl .ahy-wizard-card,
body.rec-shell #view-reception.rec-immersive #reception-actl .ahy-stack-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.25);
  box-shadow:0 4px 14px rgba(0,0,0,.12);
}
body.rec-shell #view-reception.rec-immersive #reception-actl .empty-state,
body.rec-shell #view-reception.rec-immersive .empty-state{
  color:rgba(255,255,255,.72);
}
body.rec-shell #view-reception.rec-immersive .list-item,
body.rec-shell #view-reception.rec-immersive .planning-card{
  background:rgba(255,255,255,.96) !important;
  border-color:rgba(255,255,255,.2) !important;
}
body.rec-shell #view-reception.rec-immersive .group-header{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.15);
  color:#fff;
}

/* Picker R?ception / Autocontr?le (hub autocontr?les) */
body.premium-ui .actl-rec-picker__btn{
  border-radius:20px;
  box-shadow:0 8px 22px rgba(15,23,42,.08);
}
body.premium-ui .actl-rec-picker__title{font-size:17px;font-weight:800;}
body.premium-ui .actl-rec-picker__sub{font-size:13px;}

/* Modal entrep?t r?ception */
.rec-wh-overlay{
  position:fixed;inset:0;z-index:100010;
  background:rgba(15,23,42,.55);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
}
.rec-wh-card{
  background:#fff;border-radius:20px;
  width:100%;max-width:420px;max-height:90vh;overflow-y:auto;
  padding:18px 18px 16px;
  box-shadow:0 24px 60px rgba(15,23,42,.22);
  border:1px solid #e2e8f0;
}
.rec-wh-card__hdr{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-bottom:14px;
}
.rec-wh-card__title{
  font-weight:700;font-size:17px;color:var(--reception,#0F6E56);
  display:flex;align-items:center;gap:8px;
}
.rec-wh-card__close{
  width:36px;height:36px;border:none;border-radius:10px;
  background:#f1f5f9;color:#64748b;cursor:pointer;font-size:15px;
}
.rec-wh-lbl{
  display:block;font-size:12px;font-weight:600;color:#475569;
  margin:0 0 6px;
}
.rec-wh-inp{
  width:100%;padding:11px 12px!important;margin:0 0 12px!important;
  font-size:14px!important;border-radius:10px!important;
  border:1.5px solid #e2e8f0!important;
}
.rec-wh-inp[readonly]{background:#f8fafc!important;color:#64748b;}
.rec-wh-type-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  margin-bottom:14px;
}
.rec-wh-kind-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin-bottom:8px;
}
.rec-wh-kind-btn{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:14px 10px;border-radius:14px;border:2.5px solid #e2e8f0;
  background:#fff;color:#334155;font-size:12px;font-weight:800;
  cursor:pointer;transition:all .12s ease;
}
.rec-wh-kind-btn i{font-size:18px;}
.rec-wh-kind-btn--cf.on{
  border-color:#60a5fa;background:linear-gradient(180deg,#eff6ff,#fff 70%);color:#1d4ed8;
}
.rec-wh-kind-btn--ext.on{
  border-color:#94a3b8;background:linear-gradient(180deg,#f8fafc,#fff 70%);color:#334155;
}
.rec-wh-kind-btn:disabled{
  opacity:.72;cursor:not-allowed;
}
.rec-wh-type-btn{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:12px 6px;border-radius:12px;border:2px solid #e2e8f0;
  background:#fff;color:#334155;font-size:11px;font-weight:700;
  cursor:pointer;transition:all .12s ease;
}
.rec-wh-type-btn i{font-size:16px;color:var(--tc-color,#334155);}
.rec-wh-type-btn.on{
  background:var(--tc-bg,#ecfdf5);
  border-color:var(--tc-color,#059669);
  color:var(--tc-color,#065f46);
  box-shadow:0 0 0 2px rgba(5,150,105,.1);
}
.rec-wh-day-grid{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;
}
.rec-wh-day-btn{
  min-width:42px;padding:8px 10px;border-radius:9px;
  border:2px solid #e2e8f0;background:#fff;color:#475569;
  font-size:12px;font-weight:600;cursor:pointer;
}
.rec-wh-day-btn.on{
  background:var(--reception,#0F6E56);border-color:var(--reception,#0F6E56);color:#fff;
}
.rec-wh-hint{
  font-size:11px;color:#64748b;line-height:1.35;margin:0 0 12px;
}
.rec-wh-temps{
  background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;
  padding:10px 12px;margin-bottom:14px;
}
.rec-wh-temps__title{
  font-size:11px;font-weight:700;color:#64748b;margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.03em;
}
.rec-wh-temps__row{
  display:flex;justify-content:space-between;gap:8px;
  font-size:11px;color:#475569;padding:3px 0;
}
.rec-wh-temps__row span:first-child{font-weight:700;color:#334155;}
.rec-wh-actions{
  display:flex;gap:8px;
}
.rec-wh-actions .btn{flex:1;margin:0!important;}

/* -- Pertes rayons : desktop table + mobile cards -- */
.pertes-rayon-hero{border-left:5px solid #dc2626;margin-bottom:12px;padding:12px 14px;}
.pertes-rayon-hero__top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.pertes-rayon-hero__title{font-weight:800;color:#991b1b;font-size:15px;line-height:1.2;}
.pertes-rayon-hero__status{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;}
.pertes-rayon-hero__status.is-open{background:#ecfdf5;color:#047857;}
.pertes-rayon-hero__status.is-locked{background:#fff7ed;color:#b45309;}
.pertes-rayon-hero__hint{margin-top:8px;font-size:11px;line-height:1.35;color:#64748b;}
.pertes-rayon-hero__hint span{color:#dc2626;font-weight:700;}
.pertes-rayon-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%;}
.pertes-rayon-toolbar input[type=month],
.pertes-rayon-toolbar select{margin:0;padding:8px 10px;border-radius:9px;border:1px solid #cbd5e1;font-size:13px;min-height:40px;background:#fff;}
.pertes-rayon-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;}
.pertes-rayon-table-wrap{overflow:auto;max-width:100%;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.06);-webkit-overflow-scrolling:touch;overflow-anchor:none;}
.pertes-rayon-table{min-width:1680px;border-collapse:separate;border-spacing:0;font-size:12px;width:100%;}
.pertes-rayon-th-week{background:#fee2e2;color:#7f1d1d;text-align:center;border-left:3px solid #fb7185;padding:7px 5px;font-size:11px;letter-spacing:.02em;}
.pertes-rayon-th-week.is-active{background:#fecaca;box-shadow:inset 0 -3px 0 #dc2626;}
.pertes-rayon-th-month{background:#ddd6fe;color:#4c1d95;text-align:center;border-left:3px solid #8b5cf6;padding:7px 5px;font-size:11px;}
.pertes-rayon-th-marge{background:#e0f2fe;color:#0369a1;text-align:center;padding:7px 5px;font-size:11px;min-width:72px;vertical-align:middle;}
.pertes-rayon-th-metric{min-width:72px;background:#fff1f2;color:#9f1239;text-align:center;padding:6px 4px;font-size:10px;}
.pertes-rayon-td{text-align:center;padding:4px;}
.pertes-rayon-td.is-active{background:#fff7ed;}
.pertes-rayon-td-marge{background:#f0f9ff;}
.pertes-rayon-num-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;height:28px;padding:0 6px;border-radius:999px;flex-shrink:0;
  background:#fee2e2;color:#991b1b;font-size:12px;font-weight:900;line-height:1;
}
.pertes-rayon-num-input{
  width:52px;margin:0;padding:8px 6px;border:1px solid #cbd5e1;border-radius:8px;
  font-size:13px;font-weight:900;text-align:center;color:#0f172a;background:#fff;
  box-sizing:border-box;appearance:textfield;-moz-appearance:textfield;
}
.pertes-rayon-num-input::-webkit-outer-spin-button,
.pertes-rayon-num-input::-webkit-inner-spin-button{appearance:none;margin:0;}
.pertes-rayon-manage{margin-bottom:12px;border-left:4px solid #0369a1;padding:12px 14px;}
.pertes-rayon-manage__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.pertes-rayon-manage__title{font-weight:800;color:#0c4a6e;font-size:14px;margin:0 0 2px;}
.pertes-rayon-manage__hint{font-size:11px;color:#64748b;line-height:1.35;margin:0;}
.pertes-rayon-manage__cols{
  display:grid;grid-template-columns:88px 56px minmax(0,1fr) 84px;gap:8px;align-items:center;
  padding:0 10px 6px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b;
}
.pertes-rayon-manage__list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,360px);overflow:auto;}
.pertes-rayon-manage__row{
  display:grid;grid-template-columns:88px 56px minmax(0,1fr) 84px;gap:8px;align-items:center;
  padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;
}
.pertes-rayon-manage__row.is-off{opacity:.55;background:#f8fafc;}
.pertes-rayon-manage__name{font-weight:800;font-size:13px;color:#0f172a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pertes-rayon-manage__acts{display:flex;gap:4px;justify-content:flex-end;}
.pertes-rayon-switch{display:inline-flex;align-items:center;gap:6px;margin:0;cursor:pointer;user-select:none;}
.pertes-rayon-switch input{position:absolute;opacity:0;width:0;height:0;}
.pertes-rayon-switch__ui{
  width:36px;height:22px;border-radius:999px;background:#cbd5e1;position:relative;flex-shrink:0;
  transition:background .15s ease;
}
.pertes-rayon-switch__ui::after{
  content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(15,23,42,.2);transition:transform .15s ease;
}
.pertes-rayon-switch input:checked + .pertes-rayon-switch__ui{background:#059669;}
.pertes-rayon-switch input:checked + .pertes-rayon-switch__ui::after{transform:translateX(14px);}
.pertes-rayon-switch__lbl{font-size:11px;font-weight:800;color:#334155;min-width:24px;}
.pertes-rayon-input{display:inline-block;width:68px;margin:0;padding:7px 5px;border:1px solid #cbd5e1;border-radius:9px;font-size:12px;text-align:right;background:#fff;box-shadow:inset 0 1px 2px rgba(15,23,42,.04);box-sizing:border-box;}
.pertes-rayon-input.is-ro{border-color:#e2e8f0;background:#f8fafc;color:#334155;min-width:68px;}
.pertes-rayon-icon-btn{background:#eff6ff;color:#1d4ed8;border:none;border-radius:8px;min-width:36px;min-height:36px;padding:0;cursor:pointer;font-size:12px;display:inline-flex;align-items:center;justify-content:center;}
.pertes-rayon-icon-btn.is-danger{background:#fee2e2;color:#dc2626;}
.pertes-rayon-mobile{display:none;}
@media (max-width:720px){
  .pertes-rayon-desktop{display:none!important;}
  .pertes-rayon-mobile{display:block;}
  .pertes-rayon-hero__hint{font-size:11px;line-height:1.35;}
  .pertes-rayon-kpis{grid-template-columns:1fr 1fr;gap:6px;}
  .pertes-rayon-kpis .card{padding:10px 12px;}
  .pertes-rayon-kpis .card > div:first-child{font-size:18px!important;}
  .pertes-rayon-toolbar{width:100%;}
  .pertes-rayon-toolbar input[type=month],
  .pertes-rayon-toolbar select{flex:1 1 140px;}
  .pertes-rayon-manage__cols{display:none;}
  .pertes-rayon-manage__row{grid-template-columns:1fr auto;grid-template-areas:"sw name" "num acts";gap:8px 10px;}
  .pertes-rayon-manage__row .pertes-rayon-switch{grid-area:sw;}
  .pertes-rayon-manage__row .pertes-rayon-num-input{grid-area:num;}
  .pertes-rayon-manage__row .pertes-rayon-manage__name{grid-area:name;}
  .pertes-rayon-manage__row .pertes-rayon-manage__acts{grid-area:acts;}
  .pertes-rayon-mobile__week{background:#fff;border:1px solid #fecaca;border-radius:14px;padding:12px 14px;margin-bottom:10px;box-shadow:0 4px 14px rgba(220,38,38,.08);}
  .pertes-rayon-mobile__week-title{font-weight:800;color:#991b1b;font-size:14px;margin-bottom:6px;}
  .pertes-rayon-mobile__week-kpis{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:12px;color:#475569;}
  .pertes-rayon-cards{display:flex;flex-direction:column;gap:10px;}
  .pertes-rayon-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px;box-shadow:0 2px 10px rgba(15,23,42,.05);}
  .pertes-rayon-card__head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
  .pertes-rayon-card__num{background:#fee2e2;color:#991b1b;border-radius:999px;min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;flex-shrink:0;}
  .pertes-rayon-card__title{flex:1;font-weight:700;font-size:14px;color:#0f172a;line-height:1.2;min-width:0;}
  .pertes-rayon-card__acts{display:flex;gap:6px;flex-shrink:0;}
  .pertes-rayon-card__fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;}
  .pertes-rayon-card__fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:#64748b;}
  .pertes-rayon-input--mobile,.pertes-rayon-card .pertes-rayon-input{width:100%;min-height:44px;font-size:16px;padding:10px 12px;border-radius:10px;}
  .pertes-rayon-card__pct{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;background:#f8fafc;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:600;}
  .pertes-rayon-card__pct b{font-size:18px;font-weight:800;}
  .pertes-rayon-card__foot{margin-top:10px;padding-top:8px;border-top:1px solid #f1f5f9;font-size:11px;color:#64748b;}
  .pertes-rayon-num-input{min-width:48px;min-height:36px;font-size:14px;}
}
@media (max-width:480px){
  #view-pertes .tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;}
  #pertes-period-bar{gap:6px!important;}
  #pertes-period-bar button{min-height:36px;}
}

/* -- ?diteur PDF (UI type Acrobat) -- */
#view-pdf-editor{padding:0!important;margin:-15px;width:calc(100% + 30px);max-width:none;height:calc(100dvh - 56px - env(safe-area-inset-bottom));display:flex;flex-direction:column;box-sizing:border-box;}
@media(max-width:480px){#view-pdf-editor{margin:-8px;width:calc(100% + 16px);}}
body.pdfed-fullscreen #view-pdf-editor{margin:0;width:100%;height:100%;flex:1;min-height:0;}
body.pdfed-fullscreen main{flex:1;min-height:0;}
.pdfed-shell{display:flex;flex-direction:column;flex:1;min-height:0;background:#525659;color:#e8e8e8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.pdfed-topbar{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#323232;border-bottom:1px solid #1f1f1f;flex-shrink:0;flex-wrap:wrap;}
.pdfed-brand{font-weight:700;font-size:13px;color:#fff;display:flex;align-items:center;gap:6px;white-space:nowrap;}
.pdfed-brand i{color:#ff6b6b;}
.pdfed-menubar{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0;}
.pdfed-menubar button,.pdfed-text-btn{border:none;background:#3f3f3f;color:#eee;border-radius:6px;padding:6px 9px;font-size:11px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.pdfed-menubar button:hover,.pdfed-text-btn:hover,.pdfed-icon-btn:hover{background:#505050;}
.pdfed-icon-btn{width:32px;height:32px;border:none;border-radius:6px;background:#3f3f3f;color:#eee;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.pdfed-top-actions{display:flex;gap:4px;}
.pdfed-body{display:grid;grid-template-columns:72px minmax(0,1fr) 168px;flex:1;min-height:0;}
.pdfed-sidebar{background:#2c2c2c;border-right:1px solid #1a1a1a;overflow-y:auto;padding:6px 4px;display:flex;flex-direction:column;gap:4px;}
.pdfed-tool{border:none;background:transparent;color:#d4d4d4;border-radius:8px;padding:8px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;font-weight:600;line-height:1.1;}
.pdfed-tool i{font-size:15px;}
.pdfed-tool.is-active,.pdfed-tool:hover{background:#1473e6;color:#fff;}
.pdfed-stage{overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:18px;min-height:0;min-width:0;-webkit-overflow-scrolling:touch;background:#525659;}
.pdfed-canvas-wrap{display:flex;justify-content:center;width:100%;min-height:120px;}
.pdfed-page{position:relative;box-shadow:0 8px 28px rgba(0,0,0,.45);background:#fff;touch-action:none;}
.pdfed-page canvas{display:block;width:100%;height:100%;max-width:none;}
.pdfed-overlay{position:absolute;inset:0;z-index:2;}
.pdfed-text-hits{position:absolute;inset:0;z-index:3;pointer-events:none;}
.pdfed-texthit{
  position:absolute;border:1px solid rgba(20,115,230,.55);background:rgba(20,115,230,.12);
  border-radius:2px;padding:0;margin:0;cursor:text;pointer-events:auto;
}
.pdfed-texthit:hover{background:rgba(20,115,230,.28);border-color:#1473e6;}
.pdfed-stage[data-tool="edittext"] .pdfed-overlay{pointer-events:none;}
.pdfed-obj{position:absolute;box-sizing:border-box;cursor:move;user-select:none;}
.pdfed-obj.is-selected{outline:2px solid #1473e6;outline-offset:1px;}
.pdfed-obj--text{white-space:pre-wrap;font-family:Helvetica,Arial,sans-serif;font-weight:500;line-height:1.15;padding:1px 2px;}
.pdfed-obj--img img{width:100%;height:100%;object-fit:contain;pointer-events:none;}
.pdfed-obj--wo{background:#fff;border:1px dashed #94a3b8;}
.pdfed-obj--hl{opacity:.45;border:none;}
.pdfed-obj--rect,.pdfed-obj--ell{border:2px solid #dc2626;background:transparent;}
.pdfed-obj--ell{border-radius:50%;}
.pdfed-obj--ink{pointer-events:none;}
.pdfed-props{background:#2c2c2c;border-left:1px solid #1a1a1a;padding:10px 10px;overflow-y:auto;font-size:11px;}
.pdfed-props-title{font-weight:700;font-size:12px;margin-bottom:10px;color:#fff;}
.pdfed-props label{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;color:#c5c5c5;font-weight:600;}
.pdfed-props input[type=number],.pdfed-props input[type=color]{width:100%;border-radius:6px;border:1px solid #555;background:#1f1f1f;color:#eee;padding:6px;}
.pdfed-props-hint{font-size:10px;color:#9ca3af;line-height:1.35;margin-top:8px;}
.pdfed-statusbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:#323232;border-top:1px solid #1f1f1f;flex-shrink:0;flex-wrap:wrap;}
.pdfed-pager{display:flex;align-items:center;gap:4px;}
.pdfed-pager input{width:52px;border-radius:6px;border:1px solid #555;background:#1f1f1f;color:#eee;padding:5px 6px;text-align:center;}
.pdfed-status{font-size:11px;color:#b0b0b0;font-weight:500;}
.pdfed-empty{background:#3a3a3a;border:1px dashed #666;border-radius:14px;padding:36px 22px;text-align:center;max-width:420px;margin:40px auto;color:#ddd;}
.pdfed-empty i{font-size:42px;color:#ff6b6b;margin-bottom:10px;}
.pdfed-empty-title{font-size:18px;font-weight:700;margin-bottom:6px;}
.pdfed-empty-sub{font-size:12px;color:#aaa;margin-bottom:16px;line-height:1.4;}
.pdfed-modal{position:fixed;inset:0;z-index:95000;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;}
.pdfed-modal-card{background:#fff;color:#111;border-radius:14px;padding:16px;width:min(460px,100%);box-shadow:0 20px 50px rgba(0,0,0,.35);}
.pdfed-modal-title{font-weight:700;margin-bottom:10px;}
#pdfed-sign-pad{width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;touch-action:none;}
.pdfed-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap;}
@media(max-width:720px){
  .pdfed-topbar{padding:6px 8px;gap:6px;}
  .pdfed-brand{font-size:12px;}
  .pdfed-menubar{order:3;flex:1 1 100%;max-height:72px;overflow:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;}
  .pdfed-menubar button{min-height:40px;padding:8px 10px;font-size:12px;}
  .pdfed-menubar button span{display:none;}
  .pdfed-icon-btn,.pdfed-tool{min-width:44px;min-height:44px;width:44px;height:44px;}
  .pdfed-body{
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,1fr) auto;
  }
  .pdfed-sidebar{
    order:2;
    flex-direction:row;
    overflow-x:auto;
    overflow-y:hidden;
    border-right:none;
    border-top:1px solid #1a1a1a;
    padding:6px 8px;
    gap:4px;
    -webkit-overflow-scrolling:touch;
  }
  .pdfed-tool{flex:0 0 auto;padding:6px 8px;min-width:56px;}
  .pdfed-tool span{display:none;}
  .pdfed-stage{order:1;padding:10px;padding-bottom:12px;}
  .pdfed-stage[data-tool="select"] .pdfed-page{touch-action:pan-x pan-y;}
  .pdfed-props{
    position:fixed;left:0;right:0;bottom:0;z-index:94000;
    max-height:min(48vh,360px);border-left:none;border-radius:16px 16px 0 0;
    box-shadow:0 -12px 32px rgba(0,0,0,.35);
    transform:translateY(110%);transition:transform .22s ease;padding-bottom:calc(12px + env(safe-area-inset-bottom));
  }
  .pdfed-props.is-open{transform:translateY(0);}
  .pdfed-props-title{display:flex;align-items:center;justify-content:space-between;}
  .pdfed-props-close{border:none;background:#3f3f3f;color:#eee;border-radius:8px;width:36px;height:36px;cursor:pointer;}
  .pdfed-props-fab{
    position:fixed;right:14px;bottom:calc(64px + env(safe-area-inset-bottom));z-index:93000;
    width:48px;height:48px;border-radius:999px;border:none;background:#1473e6;color:#fff;
    box-shadow:0 8px 20px rgba(20,115,230,.45);font-size:16px;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;
  }
  .pdfed-statusbar{padding-bottom:calc(6px + env(safe-area-inset-bottom));}
  .pdfed-text-btn span{display:none;}
  .pdfed-pager .pdfed-text-btn{min-height:40px;min-width:40px;padding:8px;}
}
@media(min-width:721px){
  .pdfed-props-fab,.pdfed-props-close{display:none!important;}
  .pdfed-props{transform:none!important;}
}

/* ── My Pie température — jauge ── */
.mypie-temp-gauge-overlay{position:fixed;inset:0;z-index:92000;background:rgba(15,23,42,.55);display:flex;align-items:flex-end;justify-content:center;padding:16px;}
.mypie-temp-gauge-card{background:#fff;border-radius:20px;padding:20px 18px 16px;width:100%;max-width:420px;box-shadow:0 18px 40px rgba(15,23,42,.25);animation:slideUp .22s cubic-bezier(.34,1.56,.64,1);}
.mypie-temp-gauge-title{font-size:17px;font-weight:700;margin:0 0 4px;color:#0f172a;line-height:1.3;white-space:pre-line;}
.mypie-temp-gauge-meta{font-size:12px;color:#64748b;margin-bottom:8px;}
.mypie-temp-gauge-viz{display:flex;flex-direction:column;align-items:center;margin:4px 0 8px;}
.mypie-temp-gauge-svg{display:block;max-width:100%;height:auto;}
.mypie-temp-gauge-needle{color:#94a3b8;transition:transform .18s ease-out,color .18s ease;}
.mypie-temp-gauge-needle[data-zone="ok"]{color:#16a34a;}
.mypie-temp-gauge-needle[data-zone="warn"]{color:#d97706;}
.mypie-temp-gauge-needle[data-zone="remount"]{color:#ea580c;}
.mypie-temp-gauge-needle[data-zone="ko"]{color:#dc2626;}
.mypie-temp-gauge-needle[data-zone="empty"]{color:#94a3b8;}
.mypie-temp-gauge-readout{margin-top:-6px;font-size:28px;font-weight:800;letter-spacing:-.02em;color:#94a3b8;min-height:34px;}
.mypie-temp-gauge-readout[data-zone="ok"]{color:#15803d;}
.mypie-temp-gauge-readout[data-zone="warn"]{color:#b45309;}
.mypie-temp-gauge-readout[data-zone="remount"]{color:#c2410c;}
.mypie-temp-gauge-readout[data-zone="ko"]{color:#b91c1c;}
.mypie-temp-gauge-instr{font-size:13px;line-height:1.4;border-radius:12px;padding:10px 12px;margin-bottom:12px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;min-height:3.2em;}
.mypie-temp-gauge-instr[data-zone="ok"]{background:#dcfce7;color:#166534;border-color:#86efac;}
.mypie-temp-gauge-instr[data-zone="warn"]{background:#fffbeb;color:#92400e;border-color:#fcd34d;}
.mypie-temp-gauge-instr[data-zone="remount"]{background:#ffedd5;color:#9a3412;border-color:#fdba74;}
.mypie-temp-gauge-instr[data-zone="ko"]{background:#fee2e2;color:#991b1b;border-color:#fca5a5;}
.mypie-temp-gauge-stepper{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.mypie-temp-gauge-step{width:52px;height:52px;border:none;border-radius:14px;background:#f1f5f9;color:#0f172a;font-size:26px;font-weight:700;cursor:pointer;flex-shrink:0;}
.mypie-temp-gauge-step:active{background:#e2e8f0;}
.mypie-temp-gauge-input{flex:1;min-width:0;height:52px;border:2px solid #cbd5e1;border-radius:14px;text-align:center;font-size:22px;font-weight:700;margin:0;}
.mypie-temp-gauge-input:focus{outline:none;border-color:#0891b2;box-shadow:0 0 0 3px rgba(8,145,178,.18);}
.mypie-temp-gauge-btns{display:flex;gap:10px;}
.mypie-temp-gauge-btns .btn{flex:1;}
.mypie-temp-gauge-ok--good{background:#16a34a!important;border-color:#16a34a!important;}
.mypie-temp-gauge-ok--bad{background:#dc2626!important;border-color:#dc2626!important;}
.mypie-temp-gauge-probe{margin:0 0 12px;}
@media(min-width:640px){
  .mypie-temp-gauge-overlay{align-items:center;}
}

/* ── Sonde Bluetooth (saisie auto T°) ── */
.temp-probe-bt-row{
  display:flex;align-items:stretch;gap:8px;width:100%;
}
.temp-probe-bt-row > input{
  flex:1;min-width:0;margin:0!important;
}
.temp-probe-bt-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  flex-shrink:0;min-width:76px;padding:0 12px;border-radius:12px;
  border:1.5px solid #cbd5e1;background:#f8fafc;color:#475569;
  font-size:12px;font-weight:700;cursor:pointer;line-height:1;
  transition:background .12s,border-color .12s,color .12s,transform .1s;
}
.temp-probe-bt-btn i{font-size:14px;}
.temp-probe-bt-btn:active{transform:scale(.97);}
.temp-probe-bt-btn[data-probe-status="disconnected"]{border-color:#fdba74;background:#fff7ed;color:#c2410c;}
.temp-probe-bt-btn[data-probe-status="connecting"]{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;}
.temp-probe-bt-btn[data-probe-status="connected"]{border-color:#86efac;background:#ecfdf5;color:#15803d;}
.temp-probe-bt-btn[data-probe-status="unsupported"]{opacity:.55;border-color:#e2e8f0;background:#f1f5f9;color:#94a3b8;}
.mypie-temp-gauge-probe .temp-probe-bt-btn{width:100%;min-height:44px;}
.rec-temp-box .temp-probe-bt-row{margin-top:4px;}
.temp-gauge-open-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  flex-shrink:0;min-width:72px;padding:0 12px;border-radius:12px;min-height:44px;
  border:1.5px solid #99f6e4;background:#f0fdfa;color:#0f766e;
  font-size:12px;font-weight:700;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.temp-gauge-open-btn i{font-size:14px;}
.temp-gauge-open-btn:active{transform:scale(.97);opacity:.92;}
.temp-probe-bt-row .temp-gauge-open-btn{align-self:stretch;}
.ahy-mypie-temp-table .temp-probe-bt-row{gap:6px;}
.ahy-mypie-temp-table .temp-gauge-open-btn{min-width:64px;padding:0 8px;min-height:40px;}

/* Hub Traçabilité — tuiles modules */
.traca-hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.traca-hub-grid--todo{margin:0;}
.traca-hub-grid--mini{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:10px;}
@media(min-width:720px){
  .traca-hub-grid{grid-template-columns:repeat(4,1fr);}
}
.traca-hub-tile{
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  min-height:104px;padding:14px 12px;border-radius:14px;border:1.5px solid #e2e8f0;
  background:#fff;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.traca-hub-tile i{font-size:20px;margin-bottom:2px;}
.traca-hub-tile-title{font-size:14px;font-weight:800;color:#0f172a;line-height:1.2;}
.traca-hub-tile-sub{font-size:11px;color:#64748b;line-height:1.3;}
.traca-hub-tile.active{border-width:2px;box-shadow:0 0 0 3px rgba(8,145,178,.12);}
.traca-hub-tile--photos{border-color:#a5f3fc;background:linear-gradient(160deg,#ecfeff,#fff);}
.traca-hub-tile--photos i,.traca-hub-tile--photos.active{color:#0e7490;}
.traca-hub-tile--decong{border-color:#c4b5fd;background:linear-gradient(160deg,#ede9fe,#fff);}
.traca-hub-tile--decong i,.traca-hub-tile--decong.active{color:#534AB7;}
.traca-hub-tile--cuit{border-color:#fdba74;background:linear-gradient(160deg,#fff7ed,#fff);}
.traca-hub-tile--cuit i,.traca-hub-tile--cuit.active{color:#ea580c;}
.traca-hub-tile--jeter{border-color:#fca5a5;background:linear-gradient(160deg,#fef2f2,#fff);}
.traca-hub-tile--jeter i,.traca-hub-tile--jeter.active{color:#b91c1c;}
.traca-hub-mini{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:56px;padding:8px 6px;border-radius:12px;border:1.5px solid #e2e8f0;
  background:#fff;font-size:11px;font-weight:700;color:#334155;cursor:pointer;
}
.traca-hub-mini span{font-size:15px;font-weight:800;color:#0f172a;}
.traca-hub-mini.active{border-color:#0891b2;background:#ecfeff;color:#0e7490;}
.traca-hub-mini--warn{border-color:#fcd34d;background:#fffbeb;color:#92400e;}
.traca-hub-mini--warn span{color:#b45309;}
.traca-hub-panel{
  margin:0 0 12px;padding:12px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;
}
.traca-hub-panel-hd{font-weight:800;font-size:14px;color:#0e7490;margin-bottom:6px;}
.traca-hub-periods{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.traca-hub-dates{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;}
.traca-hub-dates label{display:block;margin-bottom:2px;color:#64748b;}
.traca-hub-dates input[type="date"]{width:100%;padding:8px;border-radius:8px;border:1.5px solid #cbd5e1;}
.traca-hub-dates-btn{grid-column:1/-1;margin:0;font-size:13px;}
@media(min-width:520px){
  .traca-hub-dates{grid-template-columns:1fr 1fr auto;}
  .traca-hub-dates-btn{grid-column:auto;white-space:nowrap;align-self:end;}
}

/* === Contrôles Oui/Non unifiés (Proxi Pilote) — docs/ui-controls-aesthetic.md === */
:root{
  --pp-ctrl-idle-bg:#f8fafc;
  --pp-ctrl-idle-bd:#e2e8f0;
  --pp-ctrl-idle-fg:#334155;
  --pp-ctrl-yes-bg:#dcfce7;
  --pp-ctrl-yes-bd:#16a34a;
  --pp-ctrl-yes-fg:#15803d;
  --pp-ctrl-no-bg:#fee2e2;
  --pp-ctrl-no-bd:#ef4444;
  --pp-ctrl-no-fg:#b91c1c;
}
.ahy-wizard-yes i,
.ahy-wizard-no i,
.ahy-yn-btn i,
.rec-bool-btn i{
  margin-right:6px;
  font-size:.92em;
}
.ahy-wizard-yn,
.ahy-yn.ahy-yn-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:10px !important;
  width:100%;
}
.ahy-wizard-yes,
.ahy-wizard-no,
.ahy-yn-btn,
#view-reception .rec-bool-btn{
  min-height:52px;
  border-radius:14px;
  font-weight:700;
  -webkit-tap-highlight-color:transparent;
}
#view-autocontrol .ahy-sign-btn{
  background:#003896 !important;
  color:#fff !important;
  min-height:48px;
  border-radius:14px;
  font-weight:700;
}

/* === Boutons entrepôts Réception (pressables, 1 colonne) === */
#view-reception .rec-wh-grid,
.rec-wh-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  width:100% !important;
  margin:0 0 16px !important;
}
#view-reception .rec-wh-btn,
.rec-wh-btn{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  width:100% !important;
  min-height:108px !important;
  margin:0 !important;
  padding:18px 14px !important;
  border-radius:20px !important;
  border:2.5px solid #cbd5e1 !important;
  background:#fff !important;
  box-shadow:0 8px 20px rgba(15,23,42,.08) !important;
  color:#0f172a !important;
  font:inherit !important;
  text-align:center !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent;
  transition:transform .1s,box-shadow .12s,border-color .12s,background .12s;
}
#view-reception .rec-wh-btn:active,
.rec-wh-btn:active{
  transform:scale(.97);
  box-shadow:0 2px 8px rgba(15,23,42,.12) !important;
}
#view-reception .rec-wh-btn__icon{
  width:52px;height:52px;border-radius:16px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#f1f5f9;color:#334155;font-size:22px;
}
#view-reception .rec-wh-btn__label{
  font-size:17px;font-weight:800;line-height:1.15;color:#0f172a;
}
#view-reception .rec-wh-btn__sub{
  font-size:12px;font-weight:500;color:#64748b;line-height:1.3;
}
#view-reception .rec-wh-btn__badge{
  display:inline-flex;margin-top:2px;padding:4px 10px;border-radius:999px;
  font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  background:#e2e8f0;color:#334155;
}
#view-reception .rec-wh-btn--cf{
  min-height:120px !important;
  border-color:#60a5fa !important;
  background:linear-gradient(180deg,#eff6ff 0%,#fff 70%) !important;
}
#view-reception .rec-wh-btn--cf .rec-wh-btn__icon{background:#bfdbfe;color:#1d4ed8;}
#view-reception .rec-wh-btn--cf .rec-wh-btn__badge{background:#bfdbfe;color:#1e40af;}
#view-reception .rec-wh-btn--ext{
  min-height:120px !important;
  border-color:#94a3b8 !important;
  background:linear-gradient(180deg,#f8fafc 0%,#fff 70%) !important;
}
#view-reception .rec-wh-btn--ext .rec-wh-btn__icon{background:#e2e8f0;color:#334155;}
#view-reception .rec-wh-btn--ext .rec-wh-btn__badge{background:#e2e8f0;color:#334155;}
#view-reception .rec-wh-btn--direct{
  min-height:120px !important;
  border-color:#94a3b8 !important;
  background:linear-gradient(180deg,#f8fafc 0%,#fff 70%) !important;
}
#view-reception .rec-wh-btn--direct .rec-wh-btn__icon{background:#e2e8f0;color:#334155;}
#view-reception .rec-wh-btn--direct .rec-wh-btn__badge{background:#e2e8f0;color:#334155;}
#view-reception .rec-wh-btn--classic{
  min-height:120px !important;
  border-color:#60a5fa !important;
  background:linear-gradient(180deg,#eff6ff 0%,#fff 70%) !important;
}
#view-reception .rec-wh-btn--classic .rec-wh-btn__icon{background:#bfdbfe;color:#1d4ed8;}
#view-reception .rec-wh-btn--classic .rec-wh-btn__badge{background:#bfdbfe;color:#1e40af;}
#view-reception .rec-wh-btn.selected{
  border-color:#059669 !important;
  box-shadow:0 0 0 3px rgba(5,150,105,.22),0 8px 20px rgba(5,150,105,.12) !important;
}

/* Hub Réception : toujours empilé, gros boutons */
.actl-rec-picker,
.actl-rec-picker--stack,
#view-autocontrol .actl-rec-picker{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  width:100% !important;
  max-width:100% !important;
  grid-template-columns:none !important;
}
.actl-rec-picker__btn,
#view-autocontrol .actl-rec-picker__btn{
  min-height:128px !important;
  width:100% !important;
  border-width:2.5px !important;
  border-radius:22px !important;
  box-shadow:0 10px 26px rgba(15,23,42,.1) !important;
}
.actl-rec-picker__btn:active{transform:scale(.97);}
.actl-rec-picker__ic{width:64px !important;height:64px !important;font-size:28px !important;}
.actl-rec-picker__title{font-size:19px !important;font-weight:800 !important;}
.actl-rec-picker__sub{font-size:14px !important;}

/* Phone-first legacy overrides (supplier-select-btn) — gardés inoffensifs */
#view-reception .rec-supplier-grid{display:none;}
