/* Pointage RH — GSA HOLDING GROUP — V5 — charte d'origine : bleu marine et bleu */
:root{
  --navy:#0f2e57;--navy2:#173f73;--blue:#2563eb;--blue-soft:#eaf2ff;
  --bg:#f5f7fb;--card:#fff;--text:#182233;--muted:#5f6b7a;--line:#dfe5ec;--line2:#edf1f5;
  --ok:#067647;--ok-bg:#ecfdf3;--warn:#a04a05;--warn-bg:#fff4e5;--danger:#b42318;--danger-bg:#fff1f0;--info:#175cd3;--info-bg:#eff6ff;--muted-bg:#f2f4f7;
  --radius:12px;--shadow:0 8px 24px rgba(15,46,87,.08)
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{font-family:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;font-size:15px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);line-height:1.45}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;line-height:1.25}
.muted{color:var(--muted)}.small{font-size:13px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ico{flex-shrink:0;vertical-align:middle}

/* ---------- Structure ---------- */
.shell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh;background:linear-gradient(to right,var(--navy) 268px,var(--bg) 268px)}
.sidebar{background:var(--navy);color:#dbe7f7;display:flex;flex-direction:column;gap:10px;padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 16px;border-bottom:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none!important}
.brand-mark{width:46px;height:46px;border-radius:12px;background:#fff url(logo-mark.png) center/84% auto no-repeat;color:transparent;font-size:0;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.brand-mark.big{width:120px;height:70px;border-radius:14px;background:#fff url(logo-gsa.png) center/contain no-repeat;box-shadow:none;margin-bottom:14px}
.brand-text b{display:block;font-size:15px;letter-spacing:.02em}.brand-text span{display:block;font-size:11.5px;color:#9eb7d6}
.nav{display:flex;flex-direction:column;gap:2px;flex:1}
.nav-group summary{list-style:none;display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 12px;border-radius:10px;cursor:pointer;font-weight:600;font-size:14px;color:#dbe7f7;user-select:none}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-group[open]{background:rgba(255,255,255,.04);border-radius:12px}
.nav-group.is-current>summary{color:#fff}.nav-group.is-current>summary .ico{color:#8fb6ff}
.nav-label{flex:1}.nav-chev{display:flex;opacity:.55;transition:transform .15s}
.nav-group[open] .nav-chev{transform:rotate(90deg)}
.nav-body{display:flex;flex-direction:column;gap:1px;margin:0 8px 8px 21px;padding-left:10px;border-left:1px solid rgba(255,255,255,.14)}
.nav-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:8px;color:#c3d4ea;font-size:13.5px;text-decoration:none!important}
.nav-link:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-link.active{background:var(--blue);color:#fff;font-weight:600}
.nav-count{min-width:22px;padding:1px 7px;border-radius:999px;background:#f59e0b;color:#1f1300;font-size:11.5px;font-weight:700;text-align:center}
.side-user{display:flex;align-items:center;gap:10px;padding:14px 8px 4px;border-top:1px solid rgba(255,255,255,.1)}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex-shrink:0}
.side-user-text b{display:block;color:#fff;font-size:13px}.side-user-text span{display:block;font-size:12px;color:#9eb7d6}
.side-links{display:flex;gap:14px;padding:4px 8px 0;font-size:12.5px}.side-links a{color:#dbe7f7;display:inline-flex;align-items:center;gap:5px}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;min-height:72px;padding:10px 28px;background:#fff;border-bottom:1px solid var(--line)}
.topbar-title{flex:1;min-width:0}.topbar h1{font-size:20px}.topbar p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.crumb{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.top-search{display:flex;align-items:center;gap:8px;width:280px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--muted)}
.top-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;padding:0;box-shadow:none}
.today{font-size:13px;color:var(--muted);white-space:nowrap}
.menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;width:42px;height:42px;align-items:center;justify-content:center;cursor:pointer}
.content{padding:24px 28px 40px;width:100%;max-width:1480px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.foot{padding:16px 28px;font-size:12px;color:var(--muted);text-align:center}

/* ---------- Blocs ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.card-pad{padding:20px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.section-head h2{font-size:17px;color:var(--navy)}.section-head p{margin:3px 0 0;font-size:13px;color:var(--muted)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.grid{display:grid;gap:16px}.cols-side{grid-template-columns:300px minmax(0,1fr);align-items:start}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{display:flex;flex-direction:column;gap:4px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--text);text-decoration:none!important}
a.kpi:hover{border-color:#b8c5d4;box-shadow:var(--shadow)}
.kpi-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.kpi-value{font-size:30px;font-weight:750;color:var(--navy);line-height:1.15}
.kpi-note{font-size:12.5px;color:var(--muted)}
.kpi.accent{background:var(--navy);border-color:var(--navy)}.kpi.accent .kpi-label,.kpi.accent .kpi-note{color:#b7c9e2}.kpi.accent .kpi-value{color:#fff}
.alert-list{display:flex;flex-direction:column}
.alert-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-top:1px solid var(--line2);color:var(--text);text-decoration:none!important}
.alert-row:first-child{border-top:0}.alert-row:hover{background:#fafbfd}
.alert-num{min-width:40px;height:36px;border-radius:9px;display:grid;place-items:center;font-weight:750;font-size:15px}
.alert-num.danger{background:var(--danger-bg);color:var(--danger)}.alert-num.warn{background:var(--warn-bg);color:var(--warn)}.alert-num.info{background:var(--info-bg);color:var(--info)}.alert-num.ok{background:var(--ok-bg);color:var(--ok)}
.alert-text{flex:1}.alert-text b{display:block;font-size:14px;font-weight:600}.alert-text span{font-size:12.5px;color:var(--muted)}
.bars{display:flex;flex-direction:column;gap:10px}
.bar{display:grid;grid-template-columns:140px 1fr 56px;gap:12px;align-items:center;font-size:13.5px}
.bar-track{height:10px;border-radius:6px;background:var(--line2);overflow:hidden}.bar-fill{height:100%;background:var(--blue);border-radius:6px}
.bar-val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}

/* ---------- Tableaux ---------- */
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
table.table{width:100%;border-collapse:collapse;font-size:13.5px}
.table th{background:#f7f9fc;color:#4d5b6e;text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:11px 14px;border-bottom:1px solid var(--line2);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover td{background:#fafbfd}
.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.table .nowrap{white-space:nowrap}
.cell-main{font-weight:600;color:var(--text)}
.cell-sub{display:block;font-size:12px;color:var(--muted)}
.mat{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:13px;white-space:nowrap}
a.mat-link{color:var(--blue);text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}a.mat-link:hover{text-decoration-style:solid}
.table td:first-child{min-width:190px}

/* ---------- Badges, onglets ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.muted{background:var(--muted-bg);color:#475467}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{padding:10px 14px;border-bottom:2px solid transparent;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap;text-decoration:none!important}
.tab:hover{color:var(--navy)}.tab.active{color:var(--navy);border-bottom-color:var(--blue)}
.tab-count{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--muted-bg);font-size:12px;text-align:center}
.tab.active .tab-count{background:var(--blue-soft);color:var(--blue)}

/* ---------- Formulaires ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 15px;border-radius:9px;border:1px solid var(--line);background:#fff;color:#26364b;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none!important;white-space:nowrap}
.btn:hover{border-color:#b8c5d4}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.primary:hover{background:var(--navy2)}
.btn.blue{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.danger{color:var(--danger);border-color:#f1b8b3}.btn.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn.ok{color:var(--ok);border-color:#a6e3c0}
.btn.sm{min-height:32px;padding:5px 10px;font-size:13px}
.btn.wide{width:100%}
.icon-btn{border:0;background:transparent;cursor:pointer;border-radius:8px;padding:6px;display:inline-flex}.icon-btn:hover{background:var(--muted-bg)}
.form{display:grid;gap:14px}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.span-2{grid-column:span 2}.span-all{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#3b4a5c}
input,select,textarea{width:100%;min-height:40px;border:1px solid #cfd8e3;border-radius:9px;background:#fff;padding:8px 11px;font-weight:400;outline:none}
input:focus,select:focus,textarea:focus{border-color:#7aa7ef;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
textarea{min-height:80px;resize:vertical}
input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;padding:0;accent-color:var(--navy)}
.section-label{margin:6px 0 0;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--navy)}
.checks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.yn{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font-size:13.5px;font-weight:600}
.yn-choice{display:flex;gap:12px;font-weight:500}.yn-choice label{display:flex;align-items:center;gap:5px;cursor:pointer}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:14px 16px}
.filters .field{min-width:160px;flex:1}.filters .field.grow{flex:2}
.picker-result{font-size:13px;font-weight:500;min-height:18px}
.picker-result .found{color:var(--ok)}.picker-result .err{color:var(--danger)}
.calc{padding:12px 14px;border-radius:10px;background:var(--blue-soft);color:#16325c;font-size:13.5px;font-weight:500}
.calc b{color:var(--navy)}

/* ---------- Fenêtres ---------- */
dialog.modal{border:0;border-radius:16px;padding:0;width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 32px);box-shadow:0 30px 80px rgba(15,23,42,.3)}
dialog.modal.wide{width:min(860px,calc(100vw - 24px))}
dialog.modal::backdrop{background:rgba(15,23,42,.45)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}
.modal-head h3{font-size:17px;color:var(--navy)}
.modal-body{padding:18px 20px 20px}

/* ---------- Messages ---------- */
.alert{padding:12px 16px;border-radius:10px;border:1px solid;font-size:14px}
.alert.success{background:var(--ok-bg);border-color:#a6e3c0;color:#05603a}
.alert.danger{background:var(--danger-bg);border-color:#f3c3be;color:#912018}
.alert.warning{background:var(--warn-bg);border-color:#f6d3a1;color:#7a3a04}
.alert.info{background:var(--info-bg);border-color:#bcd3fb;color:#1848a8}
.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 16px;color:var(--muted);text-align:center}
.empty .ico{color:var(--ok)}.empty p{margin:0}
.pager{display:flex;align-items:center;justify-content:center;gap:14px;font-size:13.5px;color:var(--muted)}

/* ---------- Fiche agent ---------- */
.profile{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.profile-mark{width:64px;height:64px;border-radius:16px;background:var(--blue-soft);color:var(--navy);display:grid;place-items:center;font-size:22px;font-weight:750}
.profile h2{font-size:21px;color:var(--navy)}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 20px}.facts.f3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fact span{display:block;font-size:12px;color:var(--muted)}.fact b{font-weight:600}
.timeline{display:flex;flex-direction:column}
.tl{display:grid;grid-template-columns:110px 14px 1fr;gap:12px}
.tl-date{font-size:12.5px;color:var(--muted);padding-top:1px;text-align:right}
.tl-dot{display:flex;flex-direction:column;align-items:center}.tl-dot i{width:10px;height:10px;border-radius:50%;background:var(--blue);margin-top:5px}.tl-dot s{flex:1;width:2px;background:var(--line);text-decoration:none}
.tl-body{padding-bottom:16px}.tl-body b{display:block;font-size:14px}.tl-body span{font-size:13px;color:var(--muted)}

/* ---------- Connexion / installation ---------- */
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,#f7f9fc,#e9f0f9)}
.auth-box{width:min(440px,100%)}.auth-box.wide{width:min(720px,100%)}
.auth-card{background:#fff;border:1px solid #e5eaf0;border-radius:20px;padding:34px;box-shadow:0 25px 70px rgba(15,46,87,.13);display:flex;flex-direction:column;gap:12px}
.auth-card h1{font-size:28px;color:var(--navy)}
.eyebrow{margin:0;font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--blue)}
.auth-foot{margin:6px 0 0;text-align:center;font-size:12px;color:var(--muted)}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:4px;font-size:14px}.checks .ok{color:var(--ok)}.checks .ko{color:var(--danger);font-weight:600}
.steps{margin:0;padding-left:20px;display:grid;gap:6px}

/* ---------- V5.1 : santé, caisse, OPJ ---------- */
.table.dense th,.table.dense td{padding:9px 10px;font-size:13px}
.table.dense td:first-child{min-width:0}
.table td.sel{min-width:0;width:34px}
.opj-blocks{display:grid;gap:10px}
.opj-blocks>div{padding:10px 14px;border:1px solid var(--line);border-radius:10px}
.opj-blocks>div>span{display:block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.opj-blocks p{margin:4px 0 0;font-size:14px}
.opj-act{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.picker-result .btn.sm{margin:4px 4px 0 0}

/* ---------- Écrans moyens et téléphones ---------- */
@media (max-width:1180px){.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.top-search{width:220px}.today{display:none}}
@media (max-width:900px){
  .shell{grid-template-columns:1fr;background:var(--bg)}
  .sidebar{position:fixed;inset:0 auto 0 0;width:290px;z-index:60;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.3)}
  body.menu-open .sidebar{transform:none}
  body.menu-open::after{content:"";position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:50}
  .menu-btn{display:inline-flex}
  .topbar{padding:10px 16px;gap:12px}.top-search{display:none}
  .content{padding:16px}
  .cols-2,.cols-3,.cols-side{grid-template-columns:1fr}
}
@media (max-width:620px){
  .cols-4{grid-template-columns:1fr 1fr}.kpi-value{font-size:24px}
  .grid2,.grid3,.checks-grid{grid-template-columns:1fr}.span-2{grid-column:auto}
  .bar{grid-template-columns:100px 1fr 44px}
  .tl{grid-template-columns:78px 14px 1fr}
  .facts,.facts.f3{grid-template-columns:1fr 1fr}
  .auth-card{padding:24px 20px}
}
/* ---------- Page de connexion (V5.5) ---------- */
.login-body{margin:0;min-height:100vh;background:#fff}
.login{min-height:100vh;display:block}
.login-panel{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 16px;background:linear-gradient(160deg,#f7f9fc 0%,#e8eff9 100%)}
.login-foot{margin:0;font-size:12.5px;color:var(--muted);text-align:center}
.notif-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--ink,#1f2937);margin-left:6px}.notif-bell:hover{background:rgba(15,46,87,.08)}.notif-count{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#d92d20;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.aide-btn{position:fixed;right:20px;bottom:20px;z-index:60;width:52px;height:52px;border-radius:50%;border:0;background:#0f2e57;color:#fff;font-size:22px;font-weight:700;box-shadow:0 8px 22px rgba(15,46,87,.35);cursor:pointer;transition:transform .15s}
.aide-btn:hover{transform:scale(1.06)}
.aide-panel{position:fixed;right:20px;bottom:84px;z-index:61;width:min(410px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 110px));display:flex;flex-direction:column;background:#fff;border:1px solid #e3e8ef;border-radius:16px;box-shadow:0 18px 44px rgba(15,46,87,.22);overflow:hidden;box-sizing:border-box}
.aide-panel *{box-sizing:border-box}
.aide-panel[hidden]{display:none}
.aide-head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(135deg,#0f2e57,#1d4f8f);color:#fff}
.aide-head .aide-ico{flex:none;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.aide-head .aide-titles{flex:1;min-width:0;line-height:1.3}.aide-head .aide-titles b{display:block;font-size:16px}.aide-head .aide-titles span{font-size:12.5px;opacity:.85}
.aide-head .icon-btn{flex:none;width:32px;height:32px;border-radius:8px;color:#fff;background:transparent;border:0;font-size:22px;line-height:1;cursor:pointer}
.aide-head .icon-btn:hover{background:rgba(255,255,255,.15)}
.aide-search{position:relative;padding:14px 18px 10px;border-bottom:1px solid #eef1f5}
.aide-search svg{position:absolute;left:31px;top:50%;margin-top:2px;transform:translateY(-50%);color:#8a97a8;pointer-events:none}
.aide-panel input.aide-q{width:100%;margin:0;min-height:42px;padding:10px 14px 10px 40px;border:1px solid #d5dce6;border-radius:10px;font-size:14px;background:#f8fafc}
.aide-panel input.aide-q:focus{background:#fff;border-color:#1d4f8f;box-shadow:0 0 0 3px rgba(29,79,143,.12)}
.aide-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 18px 2px}
.aide-chips button{border:1px solid #d5dce6;background:#fff;border-radius:999px;padding:5px 11px;font-size:12.5px;color:#1d4f8f;cursor:pointer}
.aide-chips button:hover{background:#eef4fc;border-color:#9fbbe0}
.aide-list{flex:1;overflow:auto;padding:8px 18px 16px}
.aide-label{margin:10px 0 6px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a97a8}
.aide-list details{border:1px solid #e8edf3;border-radius:12px;margin:0 0 8px;background:#fff;transition:border-color .15s,box-shadow .15s}
.aide-list details[open]{border-color:#bcd0ea;box-shadow:0 2px 10px rgba(15,46,87,.07)}
.aide-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;font-weight:600;font-size:14px;line-height:1.4;color:#0f2e57}
.aide-list summary::-webkit-details-marker{display:none}
.aide-list summary::after{content:'';flex:none;width:8px;height:8px;border-right:2px solid #8a97a8;border-bottom:2px solid #8a97a8;transform:rotate(45deg);margin-top:-4px;transition:transform .15s}
.aide-list details[open] summary::after{transform:rotate(225deg);margin-top:4px}
.aide-body{padding:0 14px 14px}
.aide-body p{margin:0 0 10px;font-size:13.5px;line-height:1.65;color:#374151}
.aide-path{display:inline-block;margin:0 0 10px;padding:4px 9px;border-radius:6px;background:#f1f5fa;color:#1d4f8f;font-size:12.5px;font-weight:600}
.aide-body a.aide-go{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;background:#0f2e57;color:#fff;font-size:13px;font-weight:600;text-decoration:none}
.aide-body a.aide-go:hover{background:#1d4f8f}
.aide-empty{margin:18px 0;text-align:center;font-size:13.5px;line-height:1.6;color:#6b7280}
.aide-foot{padding:10px 18px;border-top:1px solid #eef1f5;font-size:12px;color:#8a97a8;text-align:center}
@media print{.aide-btn,.aide-panel{display:none!important}}
.install{margin-top:10px;display:flex;flex-direction:column;align-items:center;gap:6px}.install-help{font-size:12.5px;color:var(--muted);max-width:420px;text-align:center}
.login-card{width:min(420px,100%);background:#fff;border:1px solid #e3e9f1;border-radius:22px;padding:36px 34px 28px;box-shadow:0 30px 80px rgba(15,46,87,.12);display:flex;flex-direction:column;gap:12px}
.login-logo{width:170px;height:auto;margin:0 auto 6px;display:block}
.login-card h1{font-size:26px;color:var(--navy);text-align:center}
.login-sub{margin:-4px 0 6px;text-align:center;font-size:14px}
.login-form{gap:14px}
.input-ico{position:relative;display:block}
.input-ico>.ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8795a8;pointer-events:none}
.input-ico input{padding-left:40px!important;height:46px;border-radius:11px}
.input-ico input:focus{border-color:#0038b8;box-shadow:0 0 0 4px rgba(0,56,184,.12);outline:none}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:#8795a8;cursor:pointer;display:grid;place-items:center}
.pw-toggle:hover,.pw-toggle.on{background:#eef3fb;color:#0038b8}
.input-ico input[type=password],.input-ico input#login-pw{padding-right:46px!important}
.btn.primary.login-btn{height:48px;font-size:15.5px;border-radius:11px;background:#0038b8;border-color:#0038b8;margin-top:4px}
.btn.primary.login-btn:hover{background:#002f99}
.login-note{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;padding-top:14px;border-top:1px solid var(--line2);font-size:12.5px;color:var(--muted);line-height:1.5}
.login-note .ico{margin-top:2px;color:#0038b8}
@media (max-width:600px){
  .login-panel{justify-content:flex-start;padding:28px 16px}
  .login-card{padding:28px 22px 22px}
}
@media print{.sidebar,.topbar,.actions,.filters,.foot,.btn,.tabs{display:none!important}.shell{display:block}.content{padding:0}.table-wrap,.card{border-color:#bbb}}
.top-import{flex-shrink:0}@media (max-width:760px){.top-import{padding:6px 10px;font-size:12.5px}}
/* Choix de l'agent par matricule ou par nom (V5.8.3) */
.picker{position:relative;display:block}
.picker-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(15,46,87,.16);max-height:300px;overflow-y:auto;padding:4px}
.picker-list button{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500}
.picker-list button:hover,.picker-list button:focus{background:var(--blue-soft);outline:none}
.picker-list .mat{font-size:13px}.picker-list .muted{font-size:12.5px}
@media (max-width:600px){.picker-list button{grid-template-columns:1fr}.picker-list .muted{display:none}}
.linkish{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--blue);cursor:pointer;text-align:left}.linkish:hover{text-decoration:underline}

/* V5.17.2 : champ date jj/mm/aaaa avec bouton calendrier */
.date-fr{position:relative;display:flex;align-items:center;width:100%}
.date-fr input[type=text]{padding-right:40px}
.date-fr .date-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#5b6b80;padding:6px;cursor:pointer;border-radius:6px;display:flex}
.date-fr .date-btn:hover{background:#eef2f7}
.date-fr .date-native{position:absolute;left:0;bottom:0;width:1px;height:1px;min-height:0;padding:0;border:0;opacity:0;pointer-events:none}

.bar-link{color:inherit;text-decoration:none!important;border-radius:8px;padding:3px 6px;margin:-3px -6px}
.bar-link:hover{background:var(--line2)}
.bar-link:hover span:first-child{color:var(--blue);text-decoration:underline}

/* V5.17.4 : détail sous chaque département (tableau de bord) */
.dept-detail>summary{list-style:none;cursor:pointer;grid-template-columns:140px 1fr 56px 18px;border-radius:8px;padding:3px 6px;margin:-3px -6px}
.dept-detail>summary::-webkit-details-marker{display:none}
.dept-detail>summary:hover{background:var(--line2)}
.dept-detail>summary svg{color:var(--muted);transition:transform .15s}
.dept-detail[open]>summary svg{transform:rotate(90deg)}
.dept-dims{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0 6px;padding:12px;background:var(--line2);border-radius:10px;font-size:13px}
.dept-dims b{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}
.dept-dims ul{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto}
.dept-dims li a{display:flex;justify-content:space-between;gap:8px;padding:3px 4px;border-radius:6px;color:inherit;text-decoration:none}
.dept-dims li a:hover{background:#fff;color:var(--blue)}
.dept-dims li a span:last-child{font-weight:600;font-variant-numeric:tabular-nums}
@media (max-width:700px){.dept-dims{grid-template-columns:1fr}.dept-detail>summary{grid-template-columns:100px 1fr 44px 18px}}
.dept-dims li.dim-sit a span:first-child{font-style:italic;color:#8a5a00}

/* V5.17.6 : bouton Actualiser */
.refresh-btn{border:1px solid var(--line);background:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px;width:auto!important;padding:0 12px;font:inherit;font-size:13px;font-weight:600;color:var(--navy)}
.refresh-btn:hover{background:var(--line2)}
.refresh-btn.spin svg{animation:refresh-spin .8s linear infinite}
@keyframes refresh-spin{to{transform:rotate(360deg)}}
@media (max-width:900px){.refresh-label{display:none}.refresh-btn{padding:0 8px}}

/* V5.20 : bloc Enquête (OPJ) */
.enq{margin:14px 0;padding:14px 16px;border:1px solid #dbe4ef;border-radius:12px;background:#f8fafc}
.enq-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.enq-head>b{font-size:15px;color:#0f2e57}
.enq-item{background:#fff;border:1px solid #e6ebf2;border-radius:10px;padding:10px 12px;margin:0 0 8px}
.enq-item-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.enq-item p{margin:6px 0 0;font-size:13.5px;line-height:1.6;color:#374151}
.enq-doc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;font-size:13.5px}
.enq-add>summary{list-style:none;display:inline-flex}.enq-add>summary::-webkit-details-marker{display:none}

/* V5.22 : actualisation de la base */
.actu-sec{padding:12px 18px;margin-bottom:12px}
.actu-sec>summary{cursor:pointer;display:flex;gap:8px;align-items:center;padding:4px 0;list-style:revert}
.actu-sec[open]>summary{margin-bottom:6px}
.actu-sec .table-wrap{max-height:520px;overflow:auto}
.actu-bar{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:0;background:var(--bg);padding:12px 72px 12px 0;margin-top:8px;border-top:1px solid var(--line)}

/* V5.24 : contrats et sites */
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ct-card{display:flex;flex-direction:column;gap:3px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;color:var(--text)}
.ct-card:hover{border-color:var(--blue);background:var(--blue-soft);text-decoration:none}
.ct-card b{font-size:16px;margin-bottom:3px}.ct-card span{font-size:13px;color:var(--muted)}
.ct-card .warn-txt{color:var(--warn)}.ct-card .ct-open{color:var(--blue);font-weight:600;margin-top:6px}

/* V5.24.1 : contrats en liste dépliable */
.ctl{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ctl-head,.ctl-row,.ctl-site>summary{display:grid;grid-template-columns:minmax(200px,2fr) minmax(140px,1.5fr) 90px 90px 90px;gap:12px;align-items:center;padding:11px 16px}
.ctl-head{background:var(--muted-bg);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ctl-row{border-top:1px solid var(--line2);color:var(--text)}
.ctl-row:hover{background:var(--blue-soft);text-decoration:none}
.ctl-row.open{background:var(--blue-soft);font-weight:600}
.ctl-name{display:flex;gap:8px;align-items:center}.ctl-arrow,.ctl-arrow2{color:var(--blue);width:14px;display:inline-block}
.ctl-body{padding:10px 16px 14px 34px;background:#fafbfd;border-top:1px solid var(--line2)}
.ctl-site{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
.ctl-site>summary{grid-template-columns:minmax(180px,2fr) minmax(140px,1.5fr) 110px auto;cursor:pointer;list-style:none;padding:9px 12px}
.ctl-site>summary::-webkit-details-marker{display:none}
.ctl-site[open]>summary .ctl-arrow2{transform:rotate(90deg)}
.ctl-site>.table,.ctl-site>p{margin:0 12px 10px;width:calc(100% - 24px)}
.ctl-act{text-align:right}
.ctl .num{text-align:right}
@media (max-width:760px){.ctl-head{display:none}.ctl-row,.ctl-site>summary{grid-template-columns:1fr auto}.ctl-row>span:nth-child(2),.ctl-row>span:nth-child(3),.ctl-row>span:nth-child(5){display:none}}

/* V5.26.1 : actualisation simplifiée */
.actu-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}
.actu-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;cursor:pointer;text-align:left;font:inherit}
.actu-stat b{font-size:26px}.actu-stat:hover{border-color:var(--blue)}
.actu-main{max-height:none}

/* V5.28 : suppression par l'administrateur */
.tl-del{display:block;margin-top:6px}

/* ---------- V5.39 : menus en haut, bandeau, onglets, accueil par modules ---------- */
.shell.top-layout{display:block;min-height:100vh;background:var(--bg)}
.appbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;height:58px;padding:0 20px;background:var(--navy);color:#fff}
.appbar .brand{padding:0;border:0;margin-right:auto;gap:10px}
.appbar .brand-mark{width:38px;height:38px;border-radius:10px}
.appbar .brand-text b{font-size:14.5px}.appbar .brand-text span{font-size:11px}
.appbar .top-search{background:rgba(255,255,255,.1);border-color:transparent;color:#b7c9e2;height:38px}
.appbar .top-search input{color:#fff}.appbar .top-search input::placeholder{color:#9eb7d6}
.appbar .notif-bell{color:#dbe7f7;margin-left:0}.appbar .notif-bell:hover{background:rgba(255,255,255,.12)}
.appbar .refresh-btn{background:transparent;border-color:rgba(255,255,255,.25);color:#fff;height:38px}.appbar .refresh-btn:hover{background:rgba(255,255,255,.12)}
.appbar .menu-btn{color:var(--navy)}
.user-menu{position:relative}
.user-menu summary{list-style:none;display:flex;align-items:center;gap:9px;cursor:pointer;padding:4px 8px;border-radius:10px}
.user-menu summary::-webkit-details-marker{display:none}.user-menu summary:hover,.user-menu[open] summary{background:rgba(255,255,255,.12)}
.user-menu-text b{display:block;font-size:13px;color:#fff;line-height:1.2}.user-menu-text span{display:block;font-size:11.5px;color:#9eb7d6}
.user-menu-body{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px rgba(15,46,87,.18);padding:6px;display:flex;flex-direction:column;z-index:60}
.user-menu-body a{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;color:var(--text);font-size:14px;text-decoration:none!important}.user-menu-body a:hover{background:var(--blue-soft)}

.menubar{position:sticky;top:58px;z-index:35;display:flex;flex-direction:row;flex-wrap:wrap;gap:2px;padding:5px 14px;background:#fff;border-bottom:1px solid var(--line);flex:none}
.menubar .nav-group{position:relative;background:none!important;border-radius:0}
.menubar .nav-group summary{min-height:0;gap:7px;padding:7px 11px;border-radius:8px;font-size:14px;font-weight:500;color:var(--text)}
.menubar .nav-group summary .ico{color:var(--muted)}
.menubar .nav-group summary:hover{background:var(--line2);color:var(--navy)}
.menubar .nav-group.is-current>summary{color:var(--navy);font-weight:650;box-shadow:inset 0 -2px 0 var(--blue);border-radius:8px 8px 0 0}
.menubar .nav-group.is-current>summary .ico{color:var(--blue)}
.menubar .nav-group[open]>summary{background:var(--blue-soft);color:var(--navy)}
.menubar .nav-label{flex:none}.menubar .nav-chev{display:none}
.nav-sum{min-width:20px;padding:0 6px;border-radius:999px;background:#e5533d;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.menubar .nav-body{position:absolute;top:calc(100% + 4px);left:0;min-width:270px;margin:0;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 28px rgba(15,46,87,.16);z-index:50}
.menubar .nav-group:nth-last-of-type(-n+2) .nav-body{left:auto;right:0}
.menubar .nav-link{color:var(--text);font-size:14px;padding:8px 12px}
.menubar .nav-link:hover{background:var(--blue-soft);color:var(--navy)}
.menubar .nav-link.active{background:var(--blue);color:#fff}
.menubar .nav-count{background:#e5533d;color:#fff}
.menubar .side-links{display:none}

.infobar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:7px 20px;background:#f0f3f8;border-bottom:1px solid var(--line);font-size:13px;color:var(--text)}
.infobar b{color:var(--navy)}.ib-sep{color:#c4ccd8}.ib-blue{color:var(--blue)}.ib-muted{color:var(--muted)}
.infobar a{text-decoration:none!important}.ib-green{color:var(--ok);font-weight:600}.ib-alert{display:inline-flex;align-items:center;gap:5px;color:var(--danger);font-weight:600}

.tabsbar{display:flex;gap:4px;padding:8px 16px 0;background:#e9edf3;border-bottom:1px solid #cfd7e2;overflow-x:auto;scrollbar-width:thin}
.tabsbar:empty{display:none}
.wtab{display:inline-flex;align-items:center;gap:6px;flex:none;max-width:250px;padding:6px 6px 6px 14px;background:#dde3ec;border:1px solid #cfd7e2;border-bottom:0;border-radius:8px 8px 0 0;font-size:13px;color:#4a5869}
.wtab a{color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none!important}
.wtab:hover{background:#e6ebf2}
.wtab.act{background:#fff;color:var(--navy);font-weight:600;margin-bottom:-1px;padding-bottom:7px}
.wtab button{border:0;background:none;cursor:pointer;color:#7a8798;font-size:16px;line-height:1;width:22px;height:22px;border-radius:5px;padding:0}
.wtab button:hover{background:#c9d1dd;color:var(--text)}
.wtab.pin{padding-right:14px}

.top-layout .main{display:block}
.page-head{display:flex;align-items:center;gap:14px;width:100%;max-width:1480px;margin:0 auto;padding:20px 28px 0}
.page-head .topbar-title{flex:1;min-width:0}.page-head h1{font-size:21px;color:var(--navy);margin:0}.page-head p{margin:2px 0 0;font-size:13px;color:var(--muted)}
body[data-page=accueil] .page-head{display:none}
body[data-page=accueil] .content{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-top:20px;margin-bottom:20px;padding:20px 30px 34px;width:calc(100% - 40px)}

.home-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:0 0 16px;border-bottom:1px solid var(--line)}
.home-logo{width:118px;height:56px;background:url(logo-gsa.png) left center/contain no-repeat}
.home-name b{display:block;font-size:22px;color:var(--navy);line-height:1.2}.home-name span{font-size:13px;color:var(--muted)}
.home-todo{margin:0 auto;background:#1f8f4e;color:#fff;font-size:13px;padding:6px 14px;border-radius:6px}.home-todo.calm{background:var(--ok-bg);color:var(--ok)}
.home-date{display:flex;align-items:center;gap:7px;font-size:14.5px}.home-date .ico{color:var(--danger)}.home-date b{font-size:16px;color:var(--navy)}
.home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;padding-top:6px}
.home-mod{display:flex;gap:14px;min-width:0}
.home-ico{flex:0 0 58px;height:58px;border-radius:14px;display:grid;place-items:center;color:#fff;box-shadow:0 4px 10px rgba(15,46,87,.15)}
.home-ico .ico{stroke-width:1.9}
.home-mod-body{min-width:0}
.home-mod h2{display:inline-block;margin:2px 0 4px;padding-bottom:2px;border-bottom:2px solid var(--c);font-size:18px;font-weight:600;color:var(--text)}
.home-mod p{margin:0 0 8px;font-size:12.5px;color:var(--muted);line-height:1.35}
.home-mod ul{list-style:none;margin:0;padding:0}
.home-mod li{display:flex;align-items:center;gap:6px;font-size:14px;line-height:1.85}
.home-mod li a{color:#2c3e57}.home-mod li a.first{color:var(--blue);text-decoration:underline}.home-mod li a:hover{color:var(--blue);text-decoration:underline}
.home-mod .nav-count{background:#e5533d;color:#fff;font-size:11px;line-height:17px;padding:0 7px}

@media (max-width:1280px){.home-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.user-menu-text{display:none}}
@media (max-width:900px){
  .appbar{padding:0 12px;gap:8px}.appbar .menu-btn{display:inline-flex;width:38px;height:38px}
  .menubar{position:fixed;inset:0 auto 0 0;top:0;width:290px;z-index:60;flex-direction:column;flex-wrap:nowrap;gap:2px;padding:16px 12px;background:var(--navy);border:0;overflow-y:auto;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.3)}
  body.menu-open .menubar{transform:none}
  .menubar .nav-group summary{color:#dbe7f7;padding:10px 12px;font-weight:600}.menubar .nav-group summary .ico{color:#9eb7d6}
  .menubar .nav-group summary:hover,.menubar .nav-group[open]>summary{background:rgba(255,255,255,.08);color:#fff}
  .menubar .nav-group.is-current>summary{color:#fff;box-shadow:none}
  .menubar .nav-label{flex:1}.menubar .nav-chev{display:flex}
  .menubar .nav-body{position:static;min-width:0;margin:0 8px 8px 21px;padding:0 0 0 10px;border:0;border-left:1px solid rgba(255,255,255,.14);border-radius:0;background:none;box-shadow:none}
  .menubar .nav-link{color:#c3d4ea;font-size:13.5px}.menubar .nav-link:hover{background:rgba(255,255,255,.08);color:#fff}
  .menubar .side-links{display:flex;margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}
  .infobar{padding:6px 12px;font-size:12px}.ib-muted,.infobar .ib-sep:nth-last-of-type(-n+2){display:none}
  .page-head{padding:14px 16px 0}
  body[data-page=accueil] .content{width:calc(100% - 24px);padding:16px}
  .home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.home-todo{margin:0}
}
@media (max-width:620px){.home-grid{grid-template-columns:1fr}.appbar .brand-text{display:none}.home-logo{width:90px}}
@media print{.appbar,.menubar,.infobar,.tabsbar,.page-head .top-import{display:none!important}}

/* ---------- V5.40 : menu à gauche repliable, barre du haut, page « Aujourd'hui » ---------- */
.shell.side-layout{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh;background:linear-gradient(to right,#fff 267px,var(--line) 267px,var(--line) 268px,var(--bg) 268px)}
html.sb-mini .shell.side-layout{grid-template-columns:68px minmax(0,1fr);background:linear-gradient(to right,#fff 67px,var(--line) 67px,var(--line) 68px,var(--bg) 68px)}
.sb{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:12px;padding:16px 12px;background:#fff;border-right:1px solid var(--line);overflow-y:auto;overflow-x:hidden;z-index:30;margin-right:-1px;scrollbar-width:thin}
.sb-top{display:flex;align-items:center;gap:6px}
.sb-logo{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:2px 4px;text-decoration:none!important;color:var(--navy)}
.sb-logo .brand-mark{width:38px;height:38px;border-radius:10px;box-shadow:0 0 0 1px var(--line)}
.sb-txt{min-width:0}.sb-txt b{display:block;font-size:14px;letter-spacing:.02em;color:var(--navy);white-space:nowrap}.sb-txt span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-fold{flex:none;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--muted);display:grid;place-items:center;cursor:pointer;transform:rotate(180deg)}
.sb-fold:hover{background:var(--line2);color:var(--navy)}
.sb-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--muted)}
.sb-search input{border:0;outline:0;background:transparent;flex:1;min-width:0;padding:0;box-shadow:none;font-size:13.5px}
.sb-search kbd{font:600 10.5px inherit;font-family:inherit;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:5px;padding:1px 5px;white-space:nowrap}
.sb-search:focus-within{border-color:var(--blue);background:#fff}
.sb-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.sb-sec{padding:12px 10px 4px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#8592a6;white-space:nowrap}
.sb-mod>summary,.sb-one{list-style:none;display:flex;align-items:center;gap:10px;min-height:38px;padding:8px 10px;border-radius:9px;color:#3c4a60;font-size:13.4px;font-weight:550;cursor:pointer;text-decoration:none!important;user-select:none;white-space:nowrap}
.sb-mod>summary::-webkit-details-marker{display:none}
.sb-mod>summary .ico,.sb-one .ico{flex:none;color:#7b889c}
.sb-mod>summary:hover,.sb-one:hover{background:var(--line2);color:var(--navy)}
.sb-mod.is-current>summary,.sb-one.is-current{color:var(--blue);font-weight:650}.sb-mod.is-current>summary .ico,.sb-one.is-current .ico{color:var(--blue)}
.sb-one.is-current{background:var(--blue-soft)}
.sb-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.sb-mod em,.sb-one em,.sb-it em{font-style:normal;flex:none;min-width:20px;padding:0 6px;border-radius:999px;background:#e5533d;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.sb-mod em.soft,.sb-one em.soft{background:var(--line2);color:#3c4a60}
.sb-chev{display:flex;color:#a3adbb;transition:transform .15s}.sb-mod[open] .sb-chev{transform:rotate(90deg)}
.sb-items{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px 19px;padding-left:12px;border-left:1px solid var(--line)}
.sb-fly-t{display:none}
.sb-h{display:block;padding:8px 10px 2px;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#8592a6}
.sb-it{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:8px;color:#4a5870;font-size:13.3px;text-decoration:none!important}
.sb-it:hover{background:var(--line2);color:var(--navy)}
.sb-it.active{background:var(--blue-soft);color:var(--blue);font-weight:650}
.sb-me{border:1px solid var(--line);border-radius:12px;position:relative}
.sb-me summary{list-style:none;display:flex;align-items:center;gap:10px;padding:9px 10px;cursor:pointer}.sb-me summary::-webkit-details-marker{display:none}
.sb-me .avatar{background:var(--navy)}
.sb-me-body{display:flex;flex-direction:column;padding:0 6px 8px}.sb-me-body span{padding:4px 8px 6px}
.sb-me-body a{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;color:var(--text);font-size:13.5px;text-decoration:none!important}.sb-me-body a:hover{background:var(--line2)}

/* Menu replié : icônes seules ; le module s'ouvre en volet au survol. */
html.sb-mini .sb{padding:16px 10px;overflow:visible}
html.sb-mini .sb-txt,html.sb-mini .sb-l,html.sb-mini .sb-chev,html.sb-mini .sb-search input,html.sb-mini .sb-search kbd{display:none}
html.sb-mini .sb-top{flex-direction:column;gap:10px}
html.sb-mini .sb-fold{transform:none}
html.sb-mini .sb-search{justify-content:center;padding:0;cursor:pointer}
html.sb-mini .sb-sec{padding:8px 0 2px;font-size:0;border-top:1px solid var(--line2);margin:4px 6px 0}
html.sb-mini .sb-mod>summary,html.sb-mini .sb-one{justify-content:center;padding:9px 0;position:relative}
html.sb-mini .sb-mod>summary em,html.sb-mini .sb-one em{position:absolute;top:2px;right:2px;min-width:16px;padding:0 4px;font-size:10px;line-height:15px}
html.sb-mini .sb-mod{position:relative}
html.sb-mini .sb-mod .sb-items{display:none;position:absolute;left:calc(100% + 8px);top:-6px;margin:0;padding:8px;min-width:250px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(15,46,87,.18);z-index:80}
html.sb-mini .sb-mod .sb-items::before{content:"";position:absolute;left:-12px;top:0;bottom:0;width:12px}
html.sb-mini .sb-mod:hover .sb-items,html.sb-mini .sb-mod:focus-within .sb-items{display:flex}
html.sb-mini .sb-fly-t{display:block;padding:4px 10px 6px;font-weight:700;color:var(--navy);font-size:13.5px;border-bottom:1px solid var(--line2);margin-bottom:4px}
html.sb-mini .sb-me summary{justify-content:center;padding:8px 0}
html.sb-mini .sb-me-body{position:absolute;left:calc(100% + 8px);bottom:0;width:240px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(15,46,87,.18);padding:8px}

.side-layout .main{min-width:0;display:flex;flex-direction:column}
.tb{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:10px;height:60px;padding:0 24px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.tb-crumbs{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tb-crumbs b{color:var(--text);font-weight:650}
.tb-sp{flex:1}
.tb-ibtn{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;color:#4a5870;background:#fff;text-decoration:none!important}.tb-ibtn:hover{background:var(--line2)}
.tb-ibtn sup{position:absolute;top:-6px;right:-6px;min-width:18px;padding:0 5px;border-radius:999px;background:#e5533d;color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center;border:2px solid #fff}
.tb .refresh-btn{height:38px;border-radius:10px}
.tb-new{position:relative}.tb-new summary{list-style:none;height:38px;border-radius:10px;cursor:pointer}.tb-new summary::-webkit-details-marker{display:none}
.tb-new-body{position:absolute;right:0;top:calc(100% + 6px);width:260px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(15,46,87,.18);display:flex;flex-direction:column;z-index:60}
.tb-new-body a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;color:var(--text);font-size:13.5px;text-decoration:none!important}.tb-new-body a:hover{background:var(--blue-soft);color:var(--navy)}.tb-new-body a .ico{color:var(--blue)}
.side-layout .tabsbar{padding:8px 20px 0}
.side-layout .page-head{padding:22px 28px 0;max-width:1480px}
.side-layout .content{padding:18px 28px 40px}
body[data-page=accueil] .page-head{display:none}
body[data-page=accueil] .side-layout .content{background:none;border:0;border-radius:0;margin:0 auto;width:100%;padding-top:24px}

/* Page « Aujourd'hui » */
.hello h2{margin:0;font-size:25px;font-weight:700;color:var(--navy)}.hello p{margin:4px 0 0;color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.kpi2{display:flex;flex-direction:column;gap:5px;padding:17px 19px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(16,24,40,.04);color:var(--text);text-decoration:none!important;min-width:0}
a.kpi2:hover{border-color:#b8c5d4;box-shadow:var(--shadow)}
.k-l{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:650;color:#4a5870}.k-l i{width:27px;height:27px;border-radius:8px;display:grid;place-items:center}
.k-blue{background:#eaf2ff;color:#2a78d6}.k-green{background:#e7f6ef;color:#0f8a5f}.k-amber{background:#fff4e5;color:#c25a1b}.k-violet{background:#efedfc;color:#6250d6}
.k-v{font-size:29px;font-weight:750;color:var(--navy);line-height:1.15;white-space:nowrap}.k-v small{font-size:14px;color:var(--muted);font-weight:600}
.k-s{font-size:12.5px;color:var(--muted)}.k-s .up,.kpi2 .up{color:#0f8a5f}.k-s .dn{color:var(--danger)}
.spark{display:block;width:100%;height:32px;margin-top:2px}
.g-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;align-items:start}
.g-side{display:flex;flex-direction:column;gap:20px}
.ch2{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}.ch2 h2{margin:0;font-size:15.5px;color:var(--text)}.ch2>span{font-size:12.5px;color:var(--muted)}.ch2-r{margin-left:auto;align-self:center}
.queue{display:flex;flex-direction:column}
.qi{display:grid;grid-template-columns:5px 46px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:11px 4px;border-top:1px solid var(--line2);color:var(--text);text-decoration:none!important;border-radius:8px}
.qi:first-child{border-top:0}.qi:hover{background:#fafbfd}
.qi-bar{width:5px;height:34px;border-radius:4px;background:var(--danger)}
.qi-n{font-size:21px;font-weight:750;color:var(--danger);text-align:center}
.qi-t b{display:block;font-weight:600;font-size:14px}.qi-t small{display:block;color:var(--muted);font-size:12.5px}
.qi-tag{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--line2);color:#4a5870;white-space:nowrap}
.q-more{display:flex;align-items:center;gap:8px;margin-top:6px;padding-top:12px;border-top:1px dashed var(--line);font-weight:600;font-size:13px}
.empty-ok{display:flex;align-items:center;gap:10px;padding:14px;border-radius:10px;background:var(--ok-bg);color:var(--ok);font-weight:600}
.stack{display:flex;gap:2px;height:14px;border-radius:7px;overflow:hidden;margin:4px 0 14px;background:var(--line2)}.stack i{display:block;height:100%;min-width:5px}
.s1{background:#2a78d6}.s2{background:#eb6834}.s3{background:#1baf7a}.s4{background:#eda100}
.leg{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.leg div{display:flex;align-items:center;gap:8px;font-size:13px;color:#4a5870}.leg div i{width:10px;height:10px;border-radius:3px;flex:none}.leg b{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums}
.week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.day{border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center;color:var(--text);text-decoration:none!important}.day:hover{border-color:#b8c5d4}
.day span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.day b{font-size:18px}
.day.on{background:var(--blue-soft);border-color:#cfe0ff}.day.on b{color:var(--blue)}.day.past{opacity:.55}
.deps{display:flex;flex-direction:column;gap:2px}
.dep2>summary{list-style:none;display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 56px 16px;gap:14px;align-items:center;padding:8px;border-radius:9px;font-size:13.5px;cursor:pointer}
.dep2>summary::-webkit-details-marker{display:none}.dep2>summary:hover{background:var(--line2)}
.dep2>summary b{text-align:right;font-variant-numeric:tabular-nums}.dep2>summary svg{color:#a3adbb;transition:transform .15s}
.dep2[open]>summary{background:var(--blue-soft)}.dep2[open]>summary svg{transform:rotate(90deg);color:var(--blue)}
.dep-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dep-t{height:8px;border-radius:99px;background:var(--line2);overflow:hidden}.dep-t i{display:block;height:100%;border-radius:99px;background:#2a78d6}
.drill{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:6px 0 10px;padding:14px 16px;border:1px solid #dbe7ff;border-radius:12px;background:#fbfcff}
.drill h4{margin:0 0 6px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.drill a{display:flex;justify-content:space-between;gap:8px;padding:4px 4px;border-bottom:1px dashed var(--line2);font-size:13px;color:var(--text);text-decoration:none!important;border-radius:5px}
.drill a:hover{background:#fff;color:var(--blue)}.drill a b{font-variant-numeric:tabular-nums}.drill a.more{color:var(--blue);border:0}
.feed p{display:flex;gap:10px;margin:0;padding:9px 0;border-top:1px solid var(--line2);font-size:13px}.feed p:first-child{border-top:0}
.feed-dot{flex:none;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--line2);color:#4a5870}
.feed b{font-weight:600}.feed small{display:block;color:var(--muted);font-size:12px}
/* Réglage des alertes */
.alert-legend{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;color:#4a5870}.alert-legend b{display:inline-block;padding:1px 8px;border-radius:6px;color:#fff;margin-right:4px}
.lg-u{background:var(--danger)}.lg-n{background:var(--blue)}.lg-m{background:#7a8798}
.segs{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg{position:relative;cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:6px 13px;font-size:13px;color:var(--muted);border-right:1px solid var(--line);background:#fff}.seg:last-child span{border-right:0}
.seg input:checked+span{color:#fff;font-weight:700}.seg-U input:checked+span{background:var(--danger)}.seg-N input:checked+span{background:var(--blue)}.seg-M input:checked+span{background:#7a8798}
.seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:-2px}
.notif-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 28px;margin-top:6px}
.ng{margin:14px 0 2px;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--blue)}

@media (max-width:1280px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.drill{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.g-main{grid-template-columns:1fr}.notif-groups{grid-template-columns:1fr}}
@media (max-width:900px){
  .shell.side-layout,html.sb-mini .shell.side-layout{grid-template-columns:1fr;background:var(--bg)}
  .sb,html.sb-mini .sb{position:fixed;inset:0 auto 0 0;width:280px;height:100vh;z-index:60;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.25);overflow-y:auto}
  body.menu-open .sb{transform:none}
  body.menu-open::after{content:"";position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:50}
  html.sb-mini .sb-txt,html.sb-mini .sb-l,html.sb-mini .sb-chev,html.sb-mini .sb-search input,html.sb-mini .sb-search kbd{display:revert}
  html.sb-mini .sb-sec{font-size:10.5px;border:0;margin:0;padding:12px 10px 4px}
  html.sb-mini .sb-mod>summary,html.sb-mini .sb-one{justify-content:flex-start;padding:8px 10px}
  html.sb-mini .sb-mod .sb-items{display:flex;position:static;box-shadow:none;border:0;border-left:1px solid var(--line);border-radius:0;margin:2px 0 6px 19px;padding:0 0 0 12px;min-width:0}
  html.sb-mini .sb-mod:not([open]) .sb-items{display:none}
  html.sb-mini .sb-fly-t{display:none}
  html.sb-mini .sb-top{flex-direction:row}
  .sb-fold{display:none}
  .tb{padding:0 12px}.tb .menu-btn{display:inline-flex;width:38px;height:38px}
  .tb-crumbs span{display:none}
  .side-layout .page-head{padding:14px 16px 0}.side-layout .content{padding:14px 16px 30px}
  .kpis{gap:10px}.kpi2{padding:13px 14px 10px}.k-v{font-size:23px;white-space:normal}.k-v small{font-size:12px}
  .qi{grid-template-columns:5px 36px minmax(0,1fr);row-gap:6px}.qi-tag,.qi .btn{display:none}
}
@media (max-width:620px){.kpis{grid-template-columns:1fr 1fr}.drill{grid-template-columns:1fr 1fr}.leg{grid-template-columns:1fr}.dep2>summary{grid-template-columns:110px minmax(0,1fr) 44px 14px;gap:8px}.refresh-label{display:none}}
@media print{.sb,.tb,.tabsbar{display:none!important}.shell.side-layout{display:block}}

/* ---------- V5.41 : liste Effectif (vues, filtres en pastilles, panneau latéral) ---------- */
.eff-card{overflow:hidden}
.views{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.vw{display:inline-flex;align-items:center;gap:7px;padding:12px 12px 11px;font-weight:600;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;text-decoration:none!important}
.vw:hover{color:var(--navy)}.vw.on{color:var(--blue);border-color:var(--blue)}
.vw em{font-style:normal;font-size:11.5px;font-weight:700;background:var(--line2);color:#4a5870;border-radius:999px;padding:1px 8px}.vw.on em{background:var(--blue-soft);color:var(--blue)}
.eff-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line2)}
.eff-search{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);width:280px;max-width:100%}
.eff-search input{border:0;outline:0;padding:0;box-shadow:none;background:transparent;flex:1;min-width:0;font-size:13.5px}
.eff-search:focus-within{border-color:var(--blue)}
.chip-sel select{height:34px;padding:0 30px 0 12px;border:1px solid var(--line);border-radius:999px;background-color:#fff;font-size:13px;color:#4a5870;width:auto;max-width:210px;cursor:pointer}
.chip-sel.on select{border-color:#cfe0ff;background-color:var(--blue-soft);color:var(--blue);font-weight:600}
.eff-clear{font-size:13px;font-weight:600}
.eff-sp{flex:1}
.eff-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 0}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;color:#4a5870;text-decoration:none!important}
.chip.on{border-color:#cfe0ff;background:var(--blue-soft);color:var(--blue);font-weight:600}
.eff-table{overflow-x:auto}
.eff-table .table{border:0}
.eff-table tbody tr[data-peek]{cursor:pointer}
.eff-table tbody tr[data-peek]:hover td{background:#fafbfd}
.eff-table tbody tr.sel td{background:var(--blue-soft)!important}
.eff-table tbody tr:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.who-av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;letter-spacing:.02em}
.who-av.big{width:54px;height:54px;border-radius:15px;font-size:18px}
.who-t{min-width:0}.who-t .cell-main{display:block;color:var(--text);text-decoration:none!important}.who-t .cell-main:hover{color:var(--blue)}
.who-t .mat{color:var(--muted);font-size:12px}
.pill{display:inline-flex;align-items:center;gap:6px;max-width:100%;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;line-height:1.35}
.pill::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:currentColor}
.p-ok{background:var(--ok-bg);color:var(--ok)}.p-warn{background:var(--warn-bg);color:var(--warn)}.p-danger{background:var(--danger-bg);color:var(--danger)}.p-info{background:var(--info-bg);color:var(--info)}.p-muted{background:var(--muted-bg);color:var(--muted)}
.warn-txt{color:var(--warn)!important}
.eff-card .pager{padding:12px 14px}
/* Panneau latéral */
.peek{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;z-index:45;background:#fff;border-left:1px solid var(--line);box-shadow:-18px 0 40px rgba(16,24,40,.12);display:flex;flex-direction:column;animation:peek-in .16s ease-out}
.peek[hidden]{display:none}
@keyframes peek-in{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
.peek-in{display:flex;flex-direction:column;height:100%;min-height:0}
.peek-h{display:flex;align-items:center;gap:14px;padding:20px 22px 10px}
.peek-n{flex:1;min-width:0}.peek-n b{display:block;font-size:16.5px;color:var(--navy);line-height:1.25}.peek-n .mat{color:var(--muted)}
.peek-pills{display:flex;flex-wrap:wrap;gap:6px;padding:0 22px 14px;border-bottom:1px solid var(--line)}
.peek-b{flex:1;overflow-y:auto;padding:16px 22px;display:flex;flex-direction:column;gap:16px}
.peek-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.peek-facts span{display:block;font-size:11.5px;color:var(--muted)}.peek-facts b{font-size:13.5px;font-weight:600;word-break:break-word}
.peek-acts{display:flex;flex-wrap:wrap;gap:6px}
.peek-t{margin:0;font-size:13.5px}
.peek-b .timeline{margin:0}
.peek-f{padding:14px 22px;border-top:1px solid var(--line)}
.peek-load{padding:30px 22px;color:var(--muted)}
@media (min-width:1500px){body.peek-open .side-layout .content{padding-right:448px}}
@media (max-width:900px){.peek{width:100vw}.eff-search{width:100%}.eff-sp{display:none}}
@media print{.peek,.views,.eff-filters{display:none!important}}
body.peek-open .aide-btn,body.peek-open .aide-panel{display:none!important}

/* ---------- V5.41.1 : mouvements (ouvertures en douceur) ---------- */
:root{--ease:cubic-bezier(.22,1,.36,1)}
/* Panneau de l'agent : glisse depuis la droite, voile léger derrière, contenu qui apparaît par étapes. */
.peek{animation:peek-slide .32s var(--ease) both}
.peek.closing{animation:peek-out .2s ease-in both}
@keyframes peek-slide{from{transform:translateX(100%);box-shadow:none}to{transform:none}}
@keyframes peek-out{to{transform:translateX(100%);opacity:.6}}
.peek-veil{position:fixed;inset:0;z-index:44;background:rgba(15,23,42,.18);animation:fade-in .25s ease both}
.peek-veil.closing{animation:fade-out .2s ease both}
.peek-in>*{animation:rise .38s var(--ease) both}
.peek-in>*:nth-child(2){animation-delay:.04s}.peek-in>*:nth-child(3){animation-delay:.08s}.peek-in>*:nth-child(4){animation-delay:.12s}
.peek-b>*{animation:rise .4s var(--ease) both}
.peek-b>*:nth-child(1){animation-delay:.06s}.peek-b>*:nth-child(2){animation-delay:.11s}.peek-b>*:nth-child(3){animation-delay:.16s}.peek-b>*:nth-child(4){animation-delay:.2s}
.peek-h .who-av{animation:pop .45s var(--ease) both}
.peek-load{position:relative;overflow:hidden}
.peek-load::after{content:"";position:absolute;left:22px;right:22px;bottom:18px;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--blue),transparent);animation:shimmer 1s linear infinite}
/* Ligne choisie : un léger glissement. */
.eff-table tbody tr td{transition:background .18s ease}
.eff-table tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
/* Fenêtres de saisie : apparition avec un petit rebond. */
dialog.modal[open]{animation:modal-pop .3s var(--ease) both}
dialog.modal[open]::backdrop{animation:fade-in .25s ease both}
/* Menus déroulants et volets : fondu + glissement. */
.tb-new[open] .tb-new-body,.sb-me[open] .sb-me-body{animation:drop .22s var(--ease) both;transform-origin:top right}
html.sb-mini .sb-mod:hover .sb-items{animation:fly .2s var(--ease) both}
.sb-mod[open]>.sb-items{animation:rise .25s var(--ease) both}
html.sb-mini .sb-mod[open]>.sb-items{animation:none}
html.sb-mini .sb-mod:hover>.sb-items{animation:fly .2s var(--ease) both}
.shell.side-layout{transition:grid-template-columns .25s var(--ease)}
.sb-chev,.sb-fold{transition:transform .25s var(--ease),background .15s}
/* Accueil : les cartes arrivent l'une après l'autre. */
body[data-page=accueil] .hello,body[data-page=accueil] .kpi2,body[data-page=accueil] .content>div>section,body[data-page=accueil] .g-side>section{animation:rise .5s var(--ease) both}
body[data-page=accueil] .kpi2:nth-child(2){animation-delay:.05s}body[data-page=accueil] .kpi2:nth-child(3){animation-delay:.1s}body[data-page=accueil] .kpi2:nth-child(4){animation-delay:.15s}
body[data-page=accueil] .content>div:nth-of-type(3)>section{animation-delay:.18s}body[data-page=accueil] .g-side>section{animation-delay:.24s}
body[data-page=accueil] .content>div:nth-of-type(4)>section{animation-delay:.3s}
.kpi2,.qi,.day,.vw{transition:transform .18s var(--ease),box-shadow .18s,border-color .18s,background .18s}
a.kpi2:hover{transform:translateY(-2px)}
.qi:hover{transform:translateX(3px)}
.day:hover{transform:translateY(-2px)}
.spark polyline{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.1s .25s var(--ease) forwards}
.spark circle{animation:pop .4s 1.1s var(--ease) both}
.stack i{animation:grow-x .8s var(--ease) both;transform-origin:left}
.dep-t i{animation:grow-x .9s var(--ease) both;transform-origin:left}
.dep2[open] .drill{animation:rise .3s var(--ease) both}
/* Liste Effectif : les lignes apparaissent en cascade (les 12 premières). */
.eff-table tbody tr{animation:rise .35s var(--ease) both}
.eff-table tbody tr:nth-child(2){animation-delay:.02s}.eff-table tbody tr:nth-child(3){animation-delay:.04s}.eff-table tbody tr:nth-child(4){animation-delay:.06s}.eff-table tbody tr:nth-child(5){animation-delay:.08s}.eff-table tbody tr:nth-child(6){animation-delay:.1s}.eff-table tbody tr:nth-child(7){animation-delay:.12s}.eff-table tbody tr:nth-child(8){animation-delay:.14s}.eff-table tbody tr:nth-child(9){animation-delay:.16s}.eff-table tbody tr:nth-child(10){animation-delay:.18s}.eff-table tbody tr:nth-child(n+11){animation-delay:.2s}
.page-head,.side-layout .content>.card:first-child{animation:rise .35s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fly{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
@keyframes drop{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes modal-pop{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes fade-out{to{opacity:0}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
/* Ceux qui ont demandé moins d'animations dans leur système n'en ont pas. */
@media (prefers-reduced-motion:reduce){*,*::before,*::after,dialog.modal[open]::backdrop{animation:none!important;transition:none!important}.spark polyline{stroke-dashoffset:0}}
@media (max-width:900px){.peek-veil{background:rgba(15,23,42,.35)}}

/* ---------- V5.42 : page de connexion ---------- */
.lg2{background:#fff}
.lg{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,1fr);min-height:100vh}
.lg-brand{position:relative;overflow:hidden;background:linear-gradient(150deg,#0b2447 0%,#0f2e57 45%,#16427c 100%);color:#fff}
.lg-grid{position:absolute;inset:0;width:100%;height:100%}
.lg-glow{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55}
.lg-glow.g1{width:420px;height:420px;background:#2563eb;top:-120px;right:-80px;animation:lg-float 14s ease-in-out infinite alternate}
.lg-glow.g2{width:360px;height:360px;background:#0ea5a4;bottom:-140px;left:-100px;opacity:.35;animation:lg-float 18s ease-in-out infinite alternate-reverse}
@keyframes lg-float{from{transform:translate(0,0)}to{transform:translate(-40px,50px)}}
.lg-brand-in{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:44px 56px}
.lg-mark{display:flex;align-items:center;gap:12px}.lg-mark .brand-mark{width:44px;height:44px;border-radius:12px}
.lg-mark b{display:block;font-size:14px;letter-spacing:.08em}.lg-mark small{display:block;font-size:12px;color:#9fb6d6;letter-spacing:.04em}
.lg-hero{max-width:470px;animation:rise .7s var(--ease,ease) both}
.lg-hero h2{margin:0 0 12px;font-size:42px;font-weight:750;letter-spacing:-.01em;line-height:1.1}
.lg-hero p{margin:0 0 30px;font-size:16.5px;line-height:1.55;color:#c9d7ea}
.lg-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.lg-feats li{display:flex;gap:14px;align-items:center;animation:rise .6s var(--ease,ease) both}
.lg-feats li:nth-child(2){animation-delay:.08s}.lg-feats li:nth-child(3){animation-delay:.16s}
.lg-feats li>span{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#9cc2ff}
.lg-feats b{display:block;font-size:14.5px}.lg-feats small{display:block;font-size:13px;color:#a9bcd6}
.lg-copy{margin:0;font-size:12.5px;color:#8ea6c7}
.lg-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:40px 28px;background:#fff}
.lg-card{width:min(400px,100%);display:flex;flex-direction:column;gap:12px;animation:rise .5s var(--ease,ease) both}
.lg-logo{width:120px;height:auto;margin:0 0 14px}
.lg-eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.lg-card h1{margin:0;font-size:27px;color:var(--navy);letter-spacing:-.01em}
.lg-sub{margin:0 0 8px;color:var(--muted);font-size:14.5px}
.lg-err{display:flex;align-items:center;gap:8px;animation:lg-shake .4s ease}
@keyframes lg-shake{0%,100%{transform:none}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.lg-card .field{font-weight:600;font-size:13.5px}
.lg-card .input-ico input{height:48px;border-radius:11px;background:#f8fafc;border-color:#dfe5ec;transition:border-color .15s,box-shadow .15s,background .15s}
.lg-card .input-ico input:focus{background:#fff;border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.lg-caps{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;font-weight:600;color:var(--warn)}
.lg-caps[hidden]{display:none}
.lg-card .login-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:50px;margin-top:6px;background:var(--navy);border-color:var(--navy);transition:background .15s,transform .15s,box-shadow .15s}
.lg-card .login-btn:hover{background:#0b2447;box-shadow:0 10px 24px rgba(15,46,87,.25);transform:translateY(-1px)}
.lg-card .login-btn .ico{transition:transform .2s}.lg-card .login-btn:hover .ico{transform:translateX(3px)}
.lg-card .login-note{margin-top:10px}
.lg-bottom{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.lg-bottom .install{margin:0}
@media (max-width:980px){
  .lg{grid-template-columns:1fr}
  .lg-brand-in{padding:22px 22px 26px;gap:18px}
  .lg-hero h2{font-size:26px;margin-bottom:6px}.lg-hero p{font-size:14px;margin:0}
  .lg-feats,.lg-copy{display:none}
  .lg-form-side{justify-content:flex-start;padding:28px 20px}
  .lg-logo,.lg-eyebrow{display:none}
}
@media (prefers-reduced-motion:reduce){.lg-glow{animation:none!important}}

/* V5.43.1 : la barre du haut et les onglets restent toujours visibles (figés) pendant le défilement. */
.side-layout .tabsbar{position:sticky;top:60px;z-index:24;background:#e9edf3}
.side-layout .tabsbar:empty{display:none}
.side-layout .tb{background:#fff;backdrop-filter:none}
.side-layout .tabsbar::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:7px;background:linear-gradient(rgba(15,46,87,.07),transparent);pointer-events:none;opacity:0;transition:opacity .2s}
body.scrolled .side-layout .tabsbar::after{opacity:1}

/* V5.44 : dossiers OPJ clôturés grisés */
tr.row-closed td{color:var(--muted);background:#fafbfc}
tr.row-closed td .cell-main,tr.row-closed td b{color:#7a8798}
tr.row-closed td .badge{filter:grayscale(1);opacity:.85}
tr.row-closed{opacity:.75}
tr.row-closed:hover{opacity:1}

/* ---------- V5.46 : descentes, constats, postes ---------- */
.tfilters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.tfilters>select,.tfilters>input{height:36px;width:auto!important;max-width:260px;flex:0 0 auto}
.tfilters>.btn.sm{height:36px}
.tfilters>.date-fr{flex:0 0 170px;width:170px}.tfilters>.date-fr input{height:36px;min-height:36px}
.nw{white-space:nowrap}
.cdoc-h h2{white-space:nowrap}
.tday{color:var(--navy);margin:0 6px}
.tsplit{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:16px;align-items:start}.tsplit.one{grid-template-columns:minmax(0,1fr)}
.tsplit>.card{min-width:0}
.trow.sel td{background:var(--blue-soft)!important}
.row-alert td:first-child{box-shadow:inset 3px 0 0 var(--danger)}
.tpanel{padding:16px 18px;position:sticky;top:120px}
.tp-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}.tp-h h3{flex:1;margin:0;font-size:16px;color:var(--navy)}
.tp-t{margin:0 0 10px;font-size:14.5px;color:var(--navy)}
.tdl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13.5px}.tdl dt{color:var(--muted)}.tdl dd{margin:0;text-align:right;font-weight:600}
.tlbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8592a6;font-weight:700;margin:16px 0 6px}
.ttxt{background:var(--bg);border-radius:9px;padding:10px 12px;font-size:13.5px;line-height:1.5;color:#3c4a60}
.tchips{display:flex;flex-wrap:wrap;gap:6px}.tchips>*{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12.5px;color:var(--text)}
.tfiles{display:flex;flex-wrap:wrap;gap:8px}.tfiles a{width:92px;display:flex;flex-direction:column;gap:3px;text-decoration:none!important;color:var(--muted);font-size:11px}
.tfiles img,.tfiles b{width:92px;height:68px;border-radius:8px;object-fit:cover;border:1px solid var(--line);background:var(--bg);display:grid;place-items:center;color:var(--danger)}
.tfiles span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbtns{display:flex;flex-direction:column;gap:8px;margin-top:16px}.tbtns .btn{justify-content:center;white-space:normal;text-align:center;height:auto;min-height:38px;padding-top:7px;padding-bottom:7px}.tbtns form .actions .btn{flex:1}
.cside .tbtns{margin-top:0}
.cgrid{display:grid;grid-template-columns:300px minmax(0,1fr) 280px;gap:16px;align-items:start}
.clist{overflow:hidden}.citem{display:flex;flex-direction:column;gap:3px;padding:11px 14px;border-bottom:1px solid var(--line2);color:var(--text);text-decoration:none!important;font-size:13.5px}
.citem b{display:flex;justify-content:space-between;align-items:center;gap:8px}.citem span{color:var(--muted);font-size:12.5px}
.citem:hover{background:#fafbfd}.citem.sel{background:var(--blue-soft);box-shadow:inset 3px 0 0 var(--blue)}
.cdoc{padding:24px 28px}.cdoc-h{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid var(--navy);padding-bottom:12px;margin-bottom:14px}.cdoc-h h2{color:var(--navy);font-size:19px}
.cmeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cmeta div{background:var(--bg);border-radius:8px;padding:8px 10px;font-size:13.5px}.cmeta small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.csig{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.csig div{border:1px dashed var(--line);border-radius:9px;padding:10px 12px;font-size:12.5px;color:var(--muted);min-height:64px}.csig b{display:block;color:var(--text)}
.cside{display:flex;flex-direction:column;gap:16px}
.tkpis{margin-bottom:16px}.kpi-alert{border-color:#f3c5c0;background:#fff8f7}.kpi-alert .k-v{color:var(--danger)}
.tcheck{border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;gap:6px}.tcheck legend{font-size:13px;font-weight:600;padding:0 4px}
.tcheck label,.tcheck1{display:flex;align-items:center;gap:8px;font-size:13.5px}
@media (max-width:1280px){.cgrid{grid-template-columns:260px minmax(0,1fr)}.cside{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.cside>section{flex:1;min-width:240px}}
@media (max-width:1100px){.tsplit{grid-template-columns:minmax(0,1fr)}.tpanel{position:static}}
@media (max-width:760px){.cgrid{grid-template-columns:minmax(0,1fr)}.cmeta,.csig{grid-template-columns:1fr}.cdoc{padding:16px}}

/* ---------- V5.52 : rubriques de paie ---------- */
.rub-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.rub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:18px}
.rub-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
.rub-card input{margin-top:3px}
.rub-card.off{opacity:.6}
.rub-card:has(input:checked){opacity:1;border-color:#b9cdf2;background:#fbfdff}
.rub-t{flex:1;min-width:0}.rub-t b{display:block;color:var(--navy);font-size:13.5px}.rub-t span{font-size:12px;color:var(--muted)}
.rub-n{font-size:22px;font-weight:750;color:var(--navy)}
.rub-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}

/* ---------- V5.53 : import forcé ---------- */
.actu-force{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid #f3c58a;background:#fff8ee;border-radius:10px;font-size:13.5px}
.actu-force input{margin-top:3px}
.force-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media (max-width:900px){.force-stats{grid-template-columns:1fr!important}}
.actu-modes{border:1px solid var(--line);border-radius:12px;padding:10px 14px 12px;display:flex;flex-direction:column;gap:8px}
.actu-modes legend{font-weight:650;font-size:13px;padding:0 6px}
.actu-modes label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;cursor:pointer}
.actu-modes label input{margin-top:3px}
.actu-modes label:has(input:checked){border-color:#9fbcf0;background:#f5f9ff}

.actu-add:has(input:checked){border-color:#8fd3b4!important;background:#effaf4!important}
.actu-modes .actu-force{background:#fff;border-color:var(--line);padding:10px 12px}
.actu-modes .actu-force:has(input:checked){border-color:#f3c58a;background:#fff8ee}

/* ---------- V5.56 : tableau de bord par société ---------- */
.co-deps{display:flex;flex-direction:column;gap:8px;padding:8px 0 12px 16px;margin-left:6px;border-left:2px solid var(--line2)}
.co-deps a.bar{color:inherit;text-decoration:none!important;font-size:13px}
.co-deps a.bar:hover span:first-child{color:var(--blue)}
.co-deps .bar-fill{opacity:.75}

/* V5.60 : page de connexion sobre (une carte, fond uni). */
.login-body.ls{background:#eef1f5}
.ls-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 16px}
.ls-card{width:min(380px,100%);background:#fff;border:1px solid #d9dfe7;border-top:4px solid var(--navy);border-radius:8px;padding:30px 30px 22px;display:flex;flex-direction:column;gap:12px}
.ls-logo{width:110px;height:auto;margin:0 auto 4px;display:block}
.ls-card h1{margin:0;font-size:21px;color:var(--navy);text-align:center}
.ls-org{margin:-8px 0 8px;text-align:center;font-size:13px;color:var(--muted)}
.ls-card .field{font-weight:600;font-size:13.5px}
.ls-card input{height:42px;border-radius:6px}
.ls-pw input{padding-left:12px!important}
.ls-card .btn.primary.login-btn{height:44px;border-radius:6px;background:var(--navy);border-color:var(--navy);font-size:15px;margin-top:4px}
.ls-card .btn.primary.login-btn:hover{background:#0b2447}
.ls-note{margin:6px 0 0;text-align:center;font-size:12.5px;color:var(--muted)}
.ls-foot{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.ls-foot .install{margin:0}

/* V5.61 : barre de progression (import, validation en masse). */
.prog-ov{position:fixed;inset:0;z-index:9999;background:rgba(15,30,50,.45);display:grid;place-items:center;padding:16px}
.prog-box{width:min(440px,100%);background:#fff;border-radius:10px;padding:22px 24px;box-shadow:0 20px 60px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:12px}
.prog-t{font-size:15.5px;color:var(--navy)}
.prog-bar{height:12px;border-radius:6px;background:#e6ebf2;overflow:hidden;position:relative}
.prog-bar>span{display:block;height:100%;width:0;background:var(--navy);border-radius:6px;transition:width .4s ease}
.prog-bar.ind>span{width:35%;position:absolute;animation:prog-ind 1.2s ease-in-out infinite}
@keyframes prog-ind{from{left:-35%}to{left:100%}}
.prog-n{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.prog-w{margin:0;font-size:12.5px;color:var(--muted)}

/* V5.65 : module paie */
.pay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 16px;max-width:1100px}
.pay-grid h3{margin:10px 0 0;font-size:14px;color:var(--navy)}
.pay-grid .span-all{grid-column:1/-1}
.pay-chk{display:flex;gap:8px;align-items:center;font-size:14px}
.pay-bareme{max-width:560px}.pay-bareme input{max-width:200px}
.pay-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.pay-kpis span{display:block;font-size:12px;color:var(--muted)}.pay-kpis b{font-size:16px;color:var(--navy)}
.pay-table td.num{white-space:nowrap}
.pay-al td{background:#fff7f5}
.row-sel td{background:#eef4ff}

/* V5.66 : charroi */
.veh-head{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.veh-docs input[type=date]{min-width:150px}.veh-docs input:not([type]){min-width:120px}
.veh-file{max-width:190px;font-size:12px}

/* V5.72 : mot de passe provisoire affiché une fois */
.pw-once{border-left:4px solid var(--navy);margin-bottom:14px;display:flex;flex-direction:column;gap:8px}
.pw-once-row{display:flex;gap:24px;flex-wrap:wrap;font-size:15px}.pw-once .pw-val{font-size:17px;letter-spacing:.06em}

.aide-foot{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
/* V5.81 : page Vérification */
.vf-i{font-size:16px;line-height:1}
.vf-table td{vertical-align:top}
/* V5.83 : double authentification */
.totp-qr{margin:10px 0 6px;width:220px;height:220px;background:#fff;border:1px solid var(--line,#dde3ea);border-radius:10px;padding:4px}
.totp-codes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.totp-codes span{padding:8px;text-align:center;border:1px dashed var(--line,#cfd6de);border-radius:8px;font-size:15px;letter-spacing:1px}
@media (max-width:600px){.totp-codes{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* V5.88 : fiche agent — bloc Identification */
.ident-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.ident-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.ident-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.ident-facts{grid-template-columns:1fr}}
/* V5.91 : fiche du jour — agents affectés sous le nom du site */
.site-agents{margin-top:4px;font-weight:400}
.site-agents summary{cursor:pointer;font-size:12px;color:var(--muted)}
.site-agents ol{margin:6px 0 2px;padding-left:20px;font-size:13px;line-height:1.7}
/* V5.92 : fiche du jour en cartes */
.pres-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 14px}.pres-head b{color:var(--navy);font-size:17px}
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:16px}
.pcard{background:#fff;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:12px;padding:14px}
.pcard.ok{border-left-color:#1baf7a}.pcard.warn{border-left-color:#e8a33d}.pcard.danger{border-left-color:#d92d20}
.pcard h3{margin:0;font-size:16px}.pcard h3 a{color:var(--navy)}.pcard-bank{color:var(--muted);font-size:13px;margin:2px 0 8px}
.pnums{display:flex;gap:16px;margin:4px 0 10px}.pnums div{text-align:center}.pnums span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.pnums b{font-size:22px;color:var(--navy)}.pnums b.neg,.neg{color:#d92d20}
.pcard-tags{display:flex;flex-wrap:wrap;gap:6px}.pcard-repl{margin:8px 0 0;font-size:13px;background:#fff7ea;border-radius:8px;padding:6px 8px}
/* V5.93 : fiche du site en fenêtre */
dialog .col-fn{display:none}
dialog select[data-st]{min-width:135px}
dialog select[data-repl-for]{min-width:170px}
dialog input[name^="rem["]{min-width:120px}
/* V5.102 : annotation du DIROPS sur un dossier OPJ, en rouge */
.opj-dirops-note{color:#c0392b;font-weight:600}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .opj-dirops-note{color:#ff7b72}}
:root[data-theme=dark] .opj-dirops-note{color:#ff7b72}
/* V5.108 : fiche du jour — présentation « vivante » (proposition D) */
.pd{background:var(--card,#fff);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(15,46,87,.06);margin-bottom:16px}
.pd-hero{background:linear-gradient(120deg,#0f2e57 0%,#1d4f8f 60%,#2a78d6 100%);color:#fff;padding:20px 24px;display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.pd-ring{--p:0;width:92px;height:92px;border-radius:50%;background:conic-gradient(#5fe3a1 calc(var(--p)*1%),rgba(255,255,255,.18) 0);display:grid;place-items:center;flex:none}
.pd-ring>div{width:72px;height:72px;border-radius:50%;background:#173f73;display:grid;place-items:center;text-align:center;line-height:1.05}
.pd-ring b{font-size:21px}.pd-ring span{font-size:10px;opacity:.8;text-transform:uppercase;letter-spacing:.05em}
.pd-title h2{margin:0;font-size:21px;color:#fff}.pd-title div{opacity:.85;font-size:13px;margin-top:2px}
.pd-kpis{display:flex;gap:24px;flex-wrap:wrap;margin-left:auto}.pd-kpis div{min-width:80px}.pd-kpis b{display:block;font-size:24px;color:#fff}.pd-kpis span{font-size:12px;opacity:.85}
.pd-kpis .y{color:#ffd28a}.pd-kpis .r{color:#ffb4ab}
.pd-prog{display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.pd-prog b{color:var(--navy)}.pd-prog small{color:var(--muted)}
.pd-track{flex:1;min-width:160px;height:8px;border-radius:99px;background:rgba(127,140,160,.15);overflow:hidden;display:flex}.pd-track i{display:block;height:100%}.pd-track .ok{background:#16a06a}.pd-track .neg{background:#e0483b}
.pd-tools{display:flex;gap:16px;align-items:center;padding:10px 24px;flex-wrap:wrap}
.pd-seg a{color:var(--muted);font-weight:600;padding:6px 2px;margin-right:16px;border-bottom:2px solid transparent;text-decoration:none;display:inline-block}
.pd-seg a.on{color:var(--navy);border-color:var(--navy)}.pd-seg em{font-style:normal;font-size:12px;background:rgba(127,140,160,.15);border-radius:99px;padding:1px 7px;margin-left:4px}
.pd-search{margin-left:auto;border:0;border-bottom:1px solid var(--line);background:transparent;padding:6px 4px;min-width:220px;color:inherit;border-radius:0}
.pd-bank{padding:0 24px;border-top:1px solid var(--line)}
.pd-bank>summary{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;list-style:none}.pd-bank>summary::-webkit-details-marker{display:none}
.pd-logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:12px;flex:none}
.pd-bn{display:flex;flex-direction:column}.pd-bn b{color:var(--navy);font-size:15px}.pd-bn span{color:var(--muted);font-size:12px}
.pd-mini{width:130px;height:6px;border-radius:99px;background:rgba(127,140,160,.15);overflow:hidden;margin-left:auto}.pd-mini i{display:block;height:100%;background:#16a06a}
.pd-pc{font-weight:700;color:var(--navy);min-width:48px;text-align:right}
.pd-site{display:grid;grid-template-columns:14px minmax(0,1fr) 90px 150px 110px;align-items:center;gap:12px;padding:9px 0 9px 46px;border-top:1px solid var(--line)}
.pd-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#b8c2cf}.pd-dot.ok{background:#16a06a}.pd-dot.neg{background:#e0483b}.pd-dot.todo{background:#e8a33d}
.pd-sn a{font-weight:600;color:var(--text)}.pd-sn>span{display:block;color:var(--muted);font-size:12px}.pd-sn .pd-repl{color:#9a5b00}
.pd-count{font-variant-numeric:tabular-nums;color:var(--muted)}.pd-count b{color:var(--navy);font-size:15px}
.pd-lab{font-size:12px;font-weight:700;color:var(--muted)}.pd-lab.ok{color:#16a06a}.pd-lab.neg{color:#e0483b}.pd-lab.todo{color:#b7791f}
.pd-go{justify-self:end;background:var(--navy);color:#fff;border:0;border-radius:99px;padding:6px 16px;font-weight:700;font-size:13px;cursor:pointer}
.pd-ghost{justify-self:end;background:none;border:0;color:#2a78d6;font-weight:700;font-size:13px;cursor:pointer}
.pd-empty{padding:16px 24px;color:var(--muted)}
.pd-legend{display:flex;gap:16px;flex-wrap:wrap;padding:12px 70px 16px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.pd-legend span{display:inline-flex;align-items:center;gap:6px}
@media (max-width:760px){.pd-site{grid-template-columns:14px minmax(0,1fr) auto;padding-left:8px}.pd-sn{grid-column:2;grid-row:1}.pd-dot{grid-row:1}.pd-count{grid-column:3;grid-row:1;text-align:right}.pd-lab{grid-column:2;grid-row:2}.pd-go,.pd-ghost{grid-column:3;grid-row:2}.pd-search{margin-left:0;width:100%}.pd-kpis{margin-left:0}.pd-mini{display:none}}
/* V5.120 : exemples en gris clair (ne ressemblent plus à une valeur saisie) ; filtres de l'Effectif repliables sur téléphone. */
.chip-sel input::placeholder,.eff-filters input::placeholder,.form input::placeholder{color:#a3adbd;opacity:1}
.fx-toggle,.fx-btn{display:none}
@media (max-width:640px){.eff-filters .fx-btn{display:inline-flex}.eff-filters .chip-sel{display:none}.eff-filters .fx-toggle:checked ~ .chip-sel{display:inline-flex}}
/* V5.120 : listes en cartes (doublons de noms, matricules à régulariser) */
.dup-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fff}
.dup-card .dup-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:8px}
.dup-card .dup-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dup-card .dup-col{background:var(--soft,#f6f7f9);border-radius:8px;padding:8px 10px;font-size:13px;min-width:0}
@media (max-width:640px){.dup-card .dup-cols{grid-template-columns:1fr}}
.reg-new{width:110px}
@media (max-width:640px){.reg-table thead{display:none}.reg-table,.reg-table tbody{display:block}.reg-table tr{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px 8px;padding:10px 4px;border-bottom:1px solid var(--line)}.reg-table td{display:block;border:0;padding:0;white-space:normal}.reg-table td:first-child{grid-row:span 3}}
/* V5.122.5 : boutons « Retour » (barre du haut et pages d'erreur ou d'accès refusé) */
.tb-back .ico{transform:rotate(180deg)}
.fatal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.fatal-actions .btn{flex:1 1 180px;justify-content:center;text-align:center}
