/* Plannings ARGOS SUPPORT — d'après le design system Argos v2 (tokens, composants, voix).
   Bureau : navigation latérale Nuit + grille semaine. Tablette/téléphone : barre haute + vue jour par jour. */

/* ---------- Tokens Argos ---------- */
:root{
  --nuit:#192d48; --turquoise:#42c6ba; --brume:#f3f8f8; --blanc:#ffffff;
  --bg:var(--brume); --surface:var(--blanc); --surface-raised:var(--blanc);
  --border:#dde7ea; --control:#667684; --text:var(--nuit); --text-secondary:#526476;
  --link:#087d75; --focus:#087d75; --accent:var(--turquoise); --on-accent:var(--nuit);
  --selection:#ddf5f1; --nav-bg:var(--nuit); --nav-text:var(--brume);
  --disabled-bg:#e6ecef; --disabled-text:#7a8895; --scrim:#d5dfe7;
  --success:#176344; --success-bg:#e4f5eb; --warning:#815500; --warning-bg:#fff3d6;
  --danger:#a62b3a; --danger-bg:#fdecef; --info:#255f9e; --info-bg:#eaf2fd;
  --danger-fill:var(--danger); --on-danger-fill:var(--blanc);
  --chip-0-bg:#eaf1f8; --chip-0-tx:#475768; --chip-1-bg:#ecefff; --chip-1-tx:#4b4d8b;
  --chip-2-bg:#f4ecff; --chip-2-tx:#624581; --chip-3-bg:#fceaf9; --chip-3-tx:#743f6f;
  --chip-4-bg:#ffe9f1; --chip-4-tx:#7f3b58; --chip-5-bg:#eff3de; --chip-5-tx:#545b04;
  --chip-6-bg:#e5f3fa; --chip-6-tx:#2a5c72; --chip-7-bg:#f6efe8; --chip-7-tx:#635241;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px; --radius-xl:28px; --radius-pill:9999px;
  --shadow-raised:0 8px 24px rgba(25,45,72,0.07);
  --control-s:36px; --control-m:44px; --control-l:52px; --field-height:48px;
  --focus-width:2px; --focus-offset:2px; --nav-width:224px; --modal-max:560px;
  --duration-hover:120ms; --duration-enter:180ms; --duration-panel:240ms; --ease-standard:cubic-bezier(.2,0,0,1);
  --font-display:"Poppins",system-ui,sans-serif; --font-sans:"Mulish",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  color-scheme:light;
}
[data-theme="dark"]{
  --bg:#0e1929; --surface:#1d3048; --surface-raised:#263d56; --border:#3a5067; --control:#7f96ad;
  --text:var(--brume); --text-secondary:#aabaca; --link:var(--turquoise); --focus:var(--turquoise);
  --selection:#265664; --nav-bg:var(--surface); --disabled-bg:#263d56; --disabled-text:#7f96ad; --scrim:var(--bg);
  --success:#88dfb0; --success-bg:#173c30; --warning:#f4d080; --warning-bg:#3d311c;
  --danger:#ffafb8; --danger-bg:#442731; --info:#a9ccff; --info-bg:#203951; --on-danger-fill:#0e1929;
  --chip-0-bg:#2a3139; --chip-0-tx:#c5d3e1; --chip-1-bg:#2c2e44; --chip-1-tx:#c7cdff;
  --chip-2-bg:#352b41; --chip-2-tx:#dbc6f7; --chip-3-bg:#3c293a; --chip-3-tx:#ecc1e7;
  --chip-4-bg:#412831; --chip-4-tx:#f7bfd3; --chip-5-bg:#30331b; --chip-5-tx:#cfd7a3;
  --chip-6-bg:#21333c; --chip-6-tx:#b0d8ec; --chip-7-bg:#372f27; --chip-7-tx:#ddcec0;
  --shadow-raised:none; color-scheme:dark;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 14px/20px var(--font-sans);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom,0px)}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.ico{width:16px;height:16px;flex:none;display:inline-block;vertical-align:middle}
.ico svg{display:block;width:100%;height:100%}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-s);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--control);background:var(--surface);color:var(--text);font:600 14px/20px var(--font-sans);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-hover) var(--ease-standard)}
.btn:hover:not(:disabled){background:var(--bg)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn.pri{background:var(--accent);border-color:transparent;color:var(--on-accent)}
.btn.pri:hover:not(:disabled){background:var(--accent);box-shadow:inset 0 0 0 999px rgba(25,45,72,.08)}
.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--control)}
.btn.armed{background:var(--danger-fill);color:var(--on-danger-fill);border-color:transparent}
.btn.big{height:var(--control-l);font-size:16px;line-height:24px;width:100%}
.btn.icon{width:var(--control-s);padding:0}
.btn:disabled{background:var(--disabled-bg);color:var(--disabled-text);border-color:transparent;cursor:not-allowed}
.linkbtn,.mini{background:none;border:0;padding:0;color:var(--link);font:600 14px/20px var(--font-sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:flex-start}
.mini{font-size:12px;line-height:16px;margin-top:var(--space-2)}
.linkbtn:hover,.mini:hover{text-decoration-thickness:2px}

/* ---------- Connexion ---------- */
.auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(360px,560px) 1fr;gap:var(--space-4);padding:var(--space-3);padding-top:calc(var(--space-3) + env(safe-area-inset-top,0px))}
.auth-brand{background:var(--nuit);color:var(--brume);border-radius:var(--radius-xl);padding:clamp(24px,5vh,48px) var(--space-12);display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-8);min-height:calc(100dvh - 24px);position:sticky;top:12px}
[data-theme="dark"] .auth-brand{background:var(--surface)}
.auth-logo{width:112px;height:auto}
.auth-illu{position:relative;width:min(100%,460px,calc(48vh * 460 / 420));aspect-ratio:460/420;color:var(--brume)}
.auth-illu .streets{position:absolute;inset:0;width:100%;height:100%}
.pill{position:absolute;display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border-radius:var(--radius-pill);background:rgba(243,248,248,.08);font:600 14px/20px var(--font-sans)}
.pill svg{width:16px;height:16px}
.bubble{position:absolute;max-width:62%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:rgba(243,248,248,.08);font:400 15px/22px var(--font-sans)}
.bubble span{display:flex;justify-content:space-between;gap:var(--space-6);font:400 12px/16px var(--font-sans);opacity:.75;margin-bottom:var(--space-1)}
.bubble span i{font-style:normal}
.bubble.argos{background:#265664}
.auth-brand h2{margin:0;font:800 clamp(32px,3.6vw,48px)/1.1 var(--font-display);letter-spacing:-.02em;text-wrap:balance}
.auth-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16,64px) var(--space-4)}
.themetoggle{position:absolute;top:var(--space-6);right:var(--space-6);width:var(--control-m);height:var(--control-m);display:grid;place-items:center;border:1px solid var(--control);border-radius:var(--radius-md);background:transparent;color:var(--text);cursor:pointer}
.themetoggle:hover{background:var(--surface)}
.themetoggle svg{width:20px;height:20px}
.themetoggle .sun,.themetoggle .moon{display:none}
[data-theme="dark"] .themetoggle .sun{display:block}
:root:not([data-theme="dark"]) .themetoggle .moon{display:block}
.auth-mobile-logo{display:none}
.authcard{width:min(424px,100%);display:flex;flex-direction:column;gap:var(--space-6)}
.authhead{display:flex;flex-direction:column;gap:var(--space-2)}
.authcard h1{font:700 32px/40px var(--font-sans);margin:0}
.authcard p{margin:0;color:var(--text-secondary);font:400 16px/24px var(--font-sans)}
.f > label{font:600 14px/20px var(--font-sans);color:var(--text)}
.pwwrap{position:relative}
.pwwrap input{padding-right:120px}
.pwtoggle{position:absolute;right:var(--space-1);top:50%;transform:translateY(-50%);height:var(--control-s);display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--link);font:600 14px/20px var(--font-sans);cursor:pointer}
.pwtoggle svg{width:18px;height:18px}
.forgot{align-self:flex-end;font-size:12px;line-height:16px;margin-top:var(--space-1)}
.btn.big .arrow{width:18px;height:18px}
.helpbox{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);font:400 14px/20px var(--font-sans);color:var(--text)}
.helpbox svg{width:20px;height:20px;flex:none;color:var(--text-secondary)}
.helpbox b{display:block;font-weight:700}
.helpbox .mail{color:var(--link);text-decoration:underline;text-underline-offset:3px;user-select:all}
.autherr{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger)!important;font-weight:600}
.autherr.ok{background:var(--success-bg);color:var(--success)!important}
.stactions{display:flex;flex-direction:column;gap:var(--space-3)}
@media (max-width:1023px){
  .auth{grid-template-columns:minmax(300px,42%) 1fr}
  .auth-brand{padding:var(--space-8)}
  .auth-brand h2{font-size:36px;line-height:42px}
}
@media (max-width:767px){
  .auth{grid-template-columns:1fr;padding:0}
  .auth-brand{display:none}
  .auth-side{justify-content:flex-start;padding:calc(var(--space-6) + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) var(--space-8) max(16px,env(safe-area-inset-left,0px));gap:var(--space-8)}
  .auth-mobile-logo{display:block;align-self:flex-start}
  .themetoggle{top:calc(var(--space-4) + env(safe-area-inset-top,0px));right:var(--space-4)}
  .authcard h1{font-size:28px;line-height:36px}
}

/* ---------- Structure de l'app ---------- */
.app{display:flex;min-height:100vh;min-height:100dvh}
.sidenav{width:var(--nav-width);flex:none;background:var(--nav-bg);color:var(--nav-text);padding:var(--space-6) var(--space-3);display:flex;flex-direction:column;gap:var(--space-6);position:sticky;top:0;height:100vh;height:100dvh}
.sidenav .logo{padding:0 var(--space-3)}
.sidenav .logo img{height:32px;width:auto;display:block}
.sidenav .product{display:block;margin-top:var(--space-2);font:600 12px/16px var(--font-sans);color:var(--turquoise);letter-spacing:.04em;text-transform:uppercase}
.navlist{display:flex;flex-direction:column;gap:var(--space-1)}
.navitem{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control-m);padding:0 var(--space-3);border-radius:var(--radius-md);border:0;background:none;color:var(--nav-text);font:400 14px/20px var(--font-sans);cursor:pointer;text-align:left;width:100%}
.navitem:hover{background:rgba(243,248,248,.08)}
.navitem[aria-selected="true"]{background:var(--accent);color:var(--on-accent);font-weight:600}
.navitem:focus-visible{outline-color:var(--turquoise)}
.navfoot{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-3)}
.navfoot .who{font:600 14px/20px var(--font-sans)}
.navfoot .who span{display:block;font-weight:400;font-size:12px;line-height:16px;opacity:.8}
.navfoot .navitem{padding:0;min-height:36px}
.appmain{flex:1;min-width:0;display:flex;flex-direction:column}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding-left:max(var(--space-6),env(safe-area-inset-left,0px));padding-right:max(var(--space-6),env(safe-area-inset-right,0px))}
header.top{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top,0px)}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6);padding-block:var(--space-4)}
.pagetitle{margin:0 auto 0 0;font:700 24px/32px var(--font-sans);display:flex;align-items:center;gap:var(--space-3)}
.toplogo{display:none;height:24px;width:auto}
.role{display:inline-flex;align-items:center;height:24px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--selection);color:var(--text);font:600 12px/16px var(--font-sans)}
.weeknav{display:flex;align-items:center;gap:var(--space-2)}
.weeknav .lbl{font:600 16px/24px var(--font-sans);padding-inline:var(--space-2);text-align:center;font-variant-numeric:tabular-nums}
.weeknav .wk{font:500 12px/16px var(--font-mono);color:var(--text-secondary);margin-right:var(--space-2)}
.tabs{display:none;gap:var(--space-6);overflow-x:auto;border-bottom:0}
.tab:not(.navitem){height:var(--control-m);padding:0;border:0;background:none;color:var(--text-secondary);font:600 14px/20px var(--font-sans);cursor:pointer;box-shadow:inset 0 -3px 0 transparent;white-space:nowrap}
.tab:not(.navitem)[aria-selected="true"]{color:var(--text);box-shadow:inset 0 -3px 0 var(--focus)}
.topacct{display:none}
@media (max-width:1023px){
  .sidenav{display:none}
  .tabs{display:flex}
  .toplogo{display:block}
  .pagetitle .ttl{display:none}
  .topacct{display:inline-flex}
}

/* ---------- Bandeau résumé, alertes ---------- */
.notice{margin-top:var(--space-4);display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);background:var(--warning-bg);color:var(--warning)}
.notice b{font-weight:700}
.summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6);padding-block:var(--space-6) var(--space-4)}
.stat{display:flex;align-items:baseline;gap:var(--space-2);color:var(--text-secondary);font-weight:600}
.stat strong{font:700 20px/28px var(--font-sans);color:var(--text);font-variant-numeric:tabular-nums}
.stat.bad strong{color:var(--danger)} .stat.mid strong{color:var(--warning)} .stat.good strong{color:var(--success)}
.actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:var(--space-3)}

/* ---------- Statuts (badge + icône, jamais la couleur seule) ---------- */
.state{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);border-radius:var(--radius-pill);font:600 12px/16px var(--font-sans);white-space:nowrap;align-self:flex-start}
.state.full{background:var(--success-bg);color:var(--success)}
.state.part,.state.absl{background:var(--warning-bg);color:var(--warning)}
.state.none{background:var(--danger-bg);color:var(--danger)}
.state.prog{background:var(--info-bg);color:var(--info)}

/* ---------- Réservoir des shifts à pourvoir ---------- */
.pool{margin-block:0 var(--space-4);padding:var(--space-4) var(--space-6);border:1px dashed var(--control);border-radius:var(--radius-lg);background:var(--surface)}
.pool h2{font:700 16px/24px var(--font-sans);margin:0 0 var(--space-3);display:flex;gap:var(--space-3);align-items:baseline;flex-wrap:wrap}
.pool h2 small{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.pool .list{display:flex;flex-wrap:wrap;gap:var(--space-2);min-height:36px;align-items:center}
.pool .empty{color:var(--text-secondary)}

/* ---------- Grille semaine ---------- */
.gridwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--space-8)}
table.grid{border-collapse:separate;border-spacing:0;width:100%;min-width:980px;table-layout:fixed;font-variant-numeric:tabular-nums}
.grid th,.grid td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top;padding:var(--space-3)}
.grid tr>*:last-child{border-right:0} .grid tbody tr:last-child>*{border-bottom:0}
.grid thead th{height:var(--control-m);font:600 12px/16px var(--font-sans);letter-spacing:.04em;text-transform:uppercase;text-align:left;color:var(--text-secondary)}
.grid thead th .d{display:block;margin-top:2px;font:700 16px/24px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--text)}
.grid thead th.today,.grid thead th.today .d{color:var(--link)}
.grid col.first{width:208px}
.grid th.rowh{position:sticky;left:0;background:var(--surface);z-index:1;text-align:left;font-weight:400}
.rowh .nm{font:700 14px/20px var(--font-sans);display:flex;align-items:center;gap:var(--space-2)}
.rowh .sub{font-size:12px;line-height:16px;color:var(--text-secondary);margin-top:var(--space-1)}
.dot{width:12px;height:12px;border-radius:4px;background:var(--cb,var(--chip-0-bg));box-shadow:inset 0 0 0 1.5px var(--ct,var(--chip-0-tx));flex:none}
td.cell{height:96px;transition:background-color var(--duration-hover) var(--ease-standard)}
td.cell.off{background:repeating-linear-gradient(135deg,transparent 0 8px,var(--bg) 8px 10px)}
td.cell.today{background:color-mix(in srgb,var(--selection) 45%,var(--surface))}
td.cell.abs{background:repeating-linear-gradient(135deg,var(--warning-bg) 0 8px,transparent 8px 14px)}
.cstack{display:flex;flex-direction:column;gap:var(--space-2)}
.chip{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;border:0;background:var(--cb,var(--chip-0-bg));color:var(--ct,var(--chip-0-tx));border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);cursor:pointer;position:relative;font:600 13px/18px var(--font-sans)}
.pool .chip{width:auto;min-width:160px}
.chip .t{font:500 12px/16px var(--font-mono);opacity:.9}
.chip .n{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip .k{font:400 12px/16px var(--font-sans)}
.chip.open{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--control);border:0;outline:1px dashed transparent}
.chip.open .n{color:var(--danger)}
.chip.claimed::after{content:"pris";position:absolute;top:4px;right:6px;font:700 10px/12px var(--font-sans);text-transform:uppercase;letter-spacing:.04em}
.chip.warn{box-shadow:0 0 0 2px var(--warning)}
.chip.mine{box-shadow:0 0 0 2px var(--focus)}
[data-drag]{touch-action:none;cursor:grab}
.add{border:1px dashed var(--control);background:none;border-radius:var(--radius-sm);color:var(--text-secondary);font:600 12px/16px var(--font-sans);padding:var(--space-1) var(--space-2);cursor:pointer;text-align:left}
.add:hover{color:var(--text);background:var(--bg)}
body.dragging{cursor:grabbing;user-select:none;-webkit-user-select:none}
body.dragging [data-drop]:not(.can-drop){opacity:.5}
.can-drop{outline:2px dashed var(--focus);outline-offset:-4px}
.over{background:var(--selection)!important;outline-style:solid}
.src{opacity:.35}
#ghost{position:fixed;left:0;top:0;z-index:60;pointer-events:none;width:176px;transform:translate(-999px,-999px);box-shadow:var(--shadow-raised),0 6px 18px rgba(25,45,72,.18);border-radius:var(--radius-sm)}

/* ---------- Vue jour (tablette / téléphone) ---------- */
.daystrip{display:flex;gap:var(--space-2);overflow-x:auto;padding-top:var(--space-4);scrollbar-width:none}
.daystrip::-webkit-scrollbar{display:none}
.day{flex:1 0 52px;min-height:var(--control-l);border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);padding:var(--space-1);text-align:center;cursor:pointer;position:relative;color:var(--text)}
.day b{display:block;font:700 18px/24px var(--font-sans);font-variant-numeric:tabular-nums}
.day span{font:600 12px/16px var(--font-sans);color:var(--text-secondary)}
.day[aria-pressed="true"]{background:var(--accent);border-color:transparent;color:var(--on-accent)}
.day[aria-pressed="true"] span{color:var(--on-accent)}
.day.alert::after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--danger)}
.cards{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:var(--space-8)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}
.card .hd{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between}
.card .hd .nm{font:700 16px/24px var(--font-sans);display:flex;align-items:center;gap:var(--space-2);min-width:0}
.card .sub,.sub{font-size:12px;line-height:16px;color:var(--text-secondary)}
.daytitle{font:700 16px/24px var(--font-sans)}
.mrow{display:flex;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);background:var(--cb,var(--chip-0-bg));color:var(--ct,var(--chip-0-tx))}
.mrow.open{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--control)}
.mrow .info{flex:1;min-width:0;cursor:pointer}
.mrow .info b{display:block;font:700 14px/20px var(--font-sans)}
.mrow .info span{font:500 12px/16px var(--font-mono)}
.mrow.open .info b{color:var(--danger)}
.mrow .btn{flex:none;height:var(--control-m)}

/* ---------- Réglages ---------- */
.settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--space-4);padding-block:var(--space-6) var(--space-8)}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);min-width:0;display:flex;flex-direction:column;gap:var(--space-3)}
.panel h2{font:700 20px/28px var(--font-sans);margin:0;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}
.panel p.hint,.hint{margin:0;color:var(--text-secondary)}
.rows{display:flex;flex-direction:column}
.row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border)}
.row .main{flex:1;min-width:0}
.row .main b{display:block;font-weight:700}
.row .main span{font-size:12px;line-height:16px;color:var(--text-secondary);overflow-wrap:anywhere}
.row.inactive .main{color:var(--disabled-text)}
.emptybox{margin-top:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);color:var(--text-secondary)}
.emptybox b{color:var(--text);font:700 20px/28px var(--font-sans)}

/* ---------- Fenêtres, champs, toast ---------- */
#modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-4)}
#modal::before{content:"";position:absolute;inset:0;background:var(--scrim);opacity:.85}
.dlg{position:relative;width:100%;max-width:var(--modal-max);max-height:calc(100dvh - 32px);overflow:auto;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-raised);animation:enter var(--duration-panel) var(--ease-standard)}
.dlg header{padding:var(--space-6) var(--space-6) 0;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}
.dlg h3{margin:0;font:700 20px/28px var(--font-sans)}
.dlg header .btn{border:0;background:transparent;margin:-6px -6px 0 0}
.dlg .body{padding:var(--space-4) var(--space-6) 0;display:flex;flex-direction:column;gap:var(--space-4)}
.dlg footer{padding:var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end}
.dlg footer .left{margin-right:auto}
.dlg footer .btn{height:var(--control-m)}
.f{display:flex;flex-direction:column;gap:var(--space-2);font:600 14px/20px var(--font-sans);color:var(--text)}
.f input,.f select,.f textarea{width:100%;height:var(--field-height);padding:0 var(--space-4);border:1px solid var(--control);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font:400 16px/24px var(--font-sans)}
.f textarea{height:auto;padding:var(--space-3) var(--space-4)}
.f input:hover,.f select:hover{border-color:var(--text)}
.f input[readonly]{background:var(--bg);border-style:dashed}
.f input::placeholder{color:var(--text-secondary)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.days,.swatches{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.days label,.swatches label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-s);border:1px solid var(--control);border-radius:var(--radius-sm);padding:0 var(--space-3);font:600 14px/20px var(--font-sans);color:var(--text);cursor:pointer}
.days input,.swatches input,.check input{accent-color:var(--turquoise);width:18px;height:18px}
.swatches label span{width:20px;height:20px;border-radius:6px;display:block}
.check{display:flex;gap:var(--space-3);align-items:center;font:400 14px/20px var(--font-sans);color:var(--text);min-height:var(--control-m)}
.warns{display:flex;flex-direction:column;gap:var(--space-2)}
.warns div{display:flex;gap:var(--space-2);background:var(--warning-bg);color:var(--warning);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}
.info{background:var(--bg);padding:var(--space-4);border-radius:var(--radius-md)}
.info dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin:0}
.info dt{color:var(--text-secondary)} .info dd{margin:0;font-weight:600}
#toast{position:fixed;left:50%;bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;display:flex;align-items:center;min-height:56px;max-width:min(480px,calc(100% - 32px));padding:var(--space-2) var(--space-6);background:var(--surface-raised);color:var(--text);border:1px solid var(--control);border-radius:var(--radius-lg);box-shadow:var(--shadow-raised);font:600 14px/20px var(--font-sans);animation:enter var(--duration-enter) var(--ease-standard)}
#toast.err{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}
@keyframes enter{from{opacity:0;transform:translate(var(--tx,0),8px)}}
#toast{--tx:-50%}

/* ---------- Petits écrans ---------- */
@media (max-width:767px){
  .wrap{padding-left:max(var(--space-4),env(safe-area-inset-left,0px));padding-right:max(var(--space-4),env(safe-area-inset-right,0px))}
  .bar{gap:var(--space-3);padding-block:var(--space-3)}
  .weeknav{order:3;width:100%;justify-content:space-between}
  .actions{margin-left:0;width:100%}
  .actions .btn{flex:1 1 auto;height:var(--control-m)}
  .summary{gap:var(--space-2) var(--space-4);padding-top:var(--space-4)}
  .stat strong{font-size:16px;line-height:24px}
  .pool{padding:var(--space-4)}
  #modal{padding:0;place-items:end stretch}
  .dlg{max-width:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92dvh}
  .dlg footer .btn{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Logos clients (discrets, lisibles dans les deux thèmes) ---------- */
.clogo{display:inline-block;vertical-align:middle;height:18px;width:auto;max-width:100%;object-fit:contain;background:#fff;border-radius:4px;padding:2px 4px;box-sizing:content-box}
.chip .n .clogo{height:14px}
.clogo.row{display:block;height:20px;margin-top:var(--space-2)}
.mrow .info b .clogo{height:16px}
.logopick{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.logopick img{height:32px;width:auto;background:#fff;border-radius:6px;padding:4px 6px;border:1px solid var(--border)}
.logopick input[type=file]{font:400 14px/20px var(--font-sans);color:var(--text-secondary);height:auto;border:0;padding:0}
