/* AGEVIE Tech — feuille de style. Charte AGEVIE : violet #A00057, noir doux #211D1E, Calibri. */
:root{
  --violet:#A00057; --violet-dark:#7E0044; --violet-soft:#FBEAF2; --violet-line:#E9B9D2;
  --ink:#211D1E; --muted:#6B6470; --line:#E8E2EA; --bg:#F6F4F7; --card:#FFFFFF; --card2:#FAF8FB;
  --ok:#2E7D32; --ok-soft:#E5F3E6; --warn:#C77700; --warn-soft:#FFF1D6; --danger:#C62828; --danger-soft:#FBE3E3; --info:#1E6FB3; --info-soft:#E3EFFA;
  --yellow:#F5D24B; --yellow-soft:#FFF8D6; --green-soft:#DDF5E3;
  --radius:12px; --shadow:0 1px 2px rgba(33,29,30,.06),0 4px 16px rgba(33,29,30,.06);
  --font:Calibri,"Carlito","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.45;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--violet)}
h1{font-size:1.6rem;margin:0 0 .6rem;font-weight:700;letter-spacing:-.01em}
h2{font-size:1.2rem;margin:1.2rem 0 .5rem}
h3{font-size:1.02rem;margin:.8rem 0 .4rem}
small,.muted{color:var(--muted)}
.ic{width:20px;height:20px;flex:none;vertical-align:-4px}
.page{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:16px 16px 80px}
.no-nav .page{max-width:520px;padding-top:40px}
.foot{text-align:center;color:var(--muted);font-size:.8rem;padding:14px 16px 90px}

/* Barre haute */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:18px;padding:0 18px;height:60px;background:var(--card);border-bottom:3px solid var(--violet);box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand img{height:38px;width:auto}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-text strong{color:var(--violet);font-size:1.05rem}
.brand-text small{font-size:.72rem;color:var(--muted)}
.mainnav{display:flex;gap:2px;margin-left:8px;flex:1;overflow:visible}
.mainnav a{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;white-space:nowrap}
.mainnav a:hover{background:var(--violet-soft)}
.mainnav a.active{background:var(--violet);color:#fff}
.mainnav .navgroup{position:relative}
.mainnav .navgroup .grp .caret{font-style:normal;font-size:.75rem;opacity:.7;margin-left:-2px}
.mainnav .navgroup{padding:10px 0;margin:-10px 0}
.mainnav .navgroup .navmenu{display:none;position:absolute;left:0;top:100%;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;z-index:40;flex-direction:column;gap:2px}
.mainnav .navgroup .navmenu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.mainnav .navgroup:hover .navmenu,.mainnav .navgroup:focus-within .navmenu,.mainnav .navgroup.open .navmenu{display:flex}
.mainnav .navgroup .navmenu a{border-radius:8px;padding:8px 10px;font-weight:500}
.mainnav .navgroup .navmenu a.active{background:var(--violet-soft);color:var(--violet)}
.mainnav .navgroup:hover .grp:not(.active){background:var(--violet-soft)}
.userbox{display:flex;align-items:center;gap:8px;margin-left:auto}
.iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--ink);text-decoration:none}
.iconbtn:hover{background:var(--violet-soft)}
.dot{position:absolute;top:2px;right:2px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;border-radius:999px;padding:0 5px;line-height:16px}
.usermenu{position:relative}
.usermenu summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px 4px 4px;border-radius:999px}
.usermenu summary::-webkit-details-marker{display:none}
.usermenu summary:hover{background:var(--violet-soft)}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--violet);color:#fff;font-weight:700}
.uname{font-weight:600}
.usermenu .menu{position:absolute;right:0;top:46px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:230px;padding:6px;z-index:40}
.menu-head{padding:8px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.usermenu .menu a{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--ink)}
.usermenu .menu a:hover{background:var(--violet-soft)}
.bottomnav{display:none}
/* Menu en trois espaces (03/10/2026) : panneau déroulant en colonnes, pastilles « à traiter », sous-barre de l'espace de la page */
.navgroup-droite{position:relative;padding:10px 0;margin:-10px 0}
.navgroup .navmenu.navpanel{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:6px;padding:10px;min-width:0;width:max-content;max-width:min(1060px,calc(100vw - 260px))}
.navgroup-droite .navmenu.navpanel{max-width:calc(100vw - 40px)}
.navgroup-droite .navpanel{display:none;position:absolute;right:0;top:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:40}
.navgroup-droite .navpanel::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.navgroup-droite:hover .navpanel,.navgroup-droite:focus-within .navpanel,.navgroup-droite.open .navpanel{display:flex}
.navgroup-droite .grp.active,.navgroup-droite:hover .grp{background:var(--violet-soft);color:var(--violet)}
.np-col{display:flex;flex-direction:column;gap:2px;min-width:190px;max-width:250px}
.np-titre{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:4px 10px 6px}
.navpanel a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;text-decoration:none;color:var(--ink);font-weight:500;font-size:.93rem;white-space:nowrap}
.navpanel a:hover{background:var(--violet-soft)}
.navpanel a.active{background:var(--violet-soft);color:var(--violet);font-weight:600}
.navpanel a .ic{width:17px;height:17px;color:var(--violet);opacity:.85}
.navpanel a small{font-weight:400;font-size:.78rem}
.navpanel a .nav-badge{margin-left:auto}
.np-rapides{background:var(--violet-soft);border-radius:10px;padding-bottom:6px}
.np-rapides a{color:var(--violet);font-weight:600}
.np-rapides a:hover{background:var(--card)}
.nav-badge{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;padding:0 7px;line-height:18px;white-space:nowrap}
.nav-badge-danger{background:var(--danger-soft);color:var(--danger)}
.nav-badge-warn{background:var(--warn-soft);color:var(--warn)}
.nav-badge-violet{background:var(--violet-soft);color:var(--violet)}
.nav-badge-neutral{background:var(--card2);color:var(--muted);border:1px solid var(--line)}
.nav-count{display:inline-block;min-width:18px;text-align:center;background:var(--danger);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:0 5px;line-height:18px;margin-left:2px}
.mainnav a.active .nav-count{background:#fff;color:var(--violet)}
.subnav{background:var(--card);border-bottom:1px solid var(--line)}
@media (max-width:1180px){.uname{display:none}}   /* place pour les trois espaces sur un portable */
.subnav-in{max-width:1400px;margin:0 auto;padding:6px 16px;display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}
.subnav-grp{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.subnav-grp+.subnav-grp{border-left:1px solid var(--line);padding-left:14px}
.subnav-t{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-right:6px}
.subnav a{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem;white-space:nowrap}
.subnav a:hover{background:var(--violet-soft)}
.subnav a.on{background:var(--violet);color:#fff}
.subnav a.on .nav-badge{background:#fff}
@media (max-width:900px){
  .subnav-in{flex-wrap:nowrap;overflow-x:auto;padding:6px 12px;scrollbar-width:none;gap:4px 12px}
  .subnav-in::-webkit-scrollbar{display:none}
  .subnav-grp{flex-wrap:nowrap}
  .navgroup-droite{display:none}
  .bottomnav a>span:not(.nav-count){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bottomnav .nav-count{position:absolute;top:0;right:calc(50% - 24px)}
}

/* Cartes, grilles */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:16px}
.card.narrow{max-width:520px;margin-left:auto;margin-right:auto}
.card.center{text-align:center}
.card.tight{padding:12px 14px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.row.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid2>*,.grid3>*{min-width:0}
.stack>*+*{margin-top:10px}
.mt{margin-top:16px}.mb{margin-bottom:16px}.right{text-align:right}

/* Boutons, formulaires */
.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--violet);background:var(--violet);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2;transition:background .15s,transform .05s}
.btn:hover{background:var(--violet-dark)}
.btn:active{transform:translateY(1px)}
.btn.secondary{background:var(--card);color:var(--violet)}
.btn.secondary:hover{background:var(--violet-soft)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--violet)}
.btn.ghost:hover{background:var(--violet-soft)}
.btn.danger{background:var(--danger);border-color:var(--danger)}
.btn.small{padding:6px 11px;font-size:.88rem}
.btn.block{width:100%;justify-content:center}
.btn[disabled]{opacity:.5;cursor:not-allowed}
label{display:block;font-weight:600;margin:10px 0 4px}
label small{font-weight:400}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=date],input[type=time],input[type=number],input[type=datetime-local],select,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid #CFC6D3;border-radius:10px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--violet);outline-offset:1px;border-color:var(--violet)}
textarea{min-height:90px;resize:vertical}
.field-inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.field-inline>div{flex:1;min-width:140px}
.hint{font-size:.85rem;color:var(--muted);margin-top:4px}
.checks label{display:flex;gap:8px;align-items:flex-start;font-weight:400;margin:6px 0}
.checks input{width:auto;margin-top:4px}
.flash{padding:12px 16px;border-radius:10px;margin-bottom:14px;border:1px solid transparent;font-weight:600}
.flash-ok{background:var(--ok-soft);color:var(--ok);border-color:#BFE3C3}
.flash-err{background:var(--danger-soft);color:var(--danger);border-color:#F1BDBD}
.flash-info{background:var(--info-soft);color:var(--info);border-color:#BBD7F2}
.flash-warn{background:var(--warn-soft);color:var(--warn);border-color:#F5DDA8}

/* Badges */
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:700;line-height:1.5;vertical-align:middle;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.badge-ok{background:var(--ok-soft);color:var(--ok);border-color:#BFE3C3}
.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:#F5DDA8}
.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:#F1BDBD}
.badge-info{background:var(--info-soft);color:var(--info);border-color:#BBD7F2}
.badge-violet{background:var(--violet-soft);color:var(--violet);border-color:var(--violet-line)}
.badge-codir{background:var(--violet);color:#fff;border-color:var(--violet)}
.badge-yellow{background:var(--yellow-soft);color:#7A5C00;border-color:#F0D57A}

/* Tableaux */
table.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
.tbl th{text-align:left;font-weight:700;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:2px solid var(--line)}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:hover td{background:var(--card2)}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Planning : entête semaine */
.weekbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.weekbar h1{margin:0;font-size:1.35rem}
.weekbar .nav{display:flex;gap:4px}
.weekbar .nav a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.weekbar .nav a:hover{background:var(--violet-soft)}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);align-items:center}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:4px;border:1px solid rgba(0,0,0,.08)}

/* Grille semaine par maison */
.wk{display:grid;grid-template-columns:150px repeat(7,minmax(150px,1fr));gap:6px;min-width:1150px}
.wk .hd{position:static;background:var(--bg);padding:6px 4px 8px;font-weight:700;text-align:center;border-bottom:2px solid var(--line)}
.wk .hd.today{color:var(--violet)}
.wk .hd small{display:block;font-weight:400;color:var(--muted)}
.wk .unit{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;font-weight:700;display:flex;flex-direction:column;justify-content:center;gap:4px}
.wk .unit small{font-weight:400;color:var(--muted)}
.wk .cell{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 6px;display:flex;flex-direction:column;gap:4px;min-height:96px;overflow:visible}
.wk .cell.short{border-color:#F5B7B7;background:#FFF7F7}
.wk .cell.short-min{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}
.wk .cell.weekend{background:var(--card2)}
.wk .unit.astr{background:var(--violet-soft);border-color:var(--violet-line);color:var(--violet)}
.wk .cell.astr{min-height:0;justify-content:center;font-size:.85rem}
.wk .cell.astr .tel{font-size:.78rem}
.slot{display:flex;align-items:center;gap:6px;border-radius:8px;padding:4px 6px;font-size:.88rem;text-decoration:none;color:var(--ink);border:1px solid transparent;cursor:pointer;min-height:30px}
.slot:hover{border-color:var(--violet-line);background:var(--violet-soft)}
.slot .code{font-weight:700;font-size:.74rem;padding:1px 6px;border-radius:6px;color:#fff;background:var(--muted);min-width:34px;text-align:center;flex:none}
.slot .who{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot .who small{color:var(--muted)}
.slot.titulaire{background:#fff}
.slot.remplacant{background:var(--yellow-soft);border-color:#F0D57A}
.slot.renfort{background:var(--info-soft);border-color:#BBD7F2}
.slot.agence{background:#EEE9F2;border-color:#D7CBE0}
.slot.en_cours{background:var(--green-soft);border-color:#9DD9AE}
.slot.a_pourvoir{background:var(--danger-soft);border-color:#F1BDBD;color:var(--danger);font-weight:700}
.slot.absent{background:var(--danger-soft);border:1px dashed var(--danger);color:var(--danger)}
.person.absent{background:var(--danger-soft);border-left:3px solid var(--danger)}
.abs-tag{display:inline-block;background:var(--danger);color:#fff;border-radius:6px;padding:0 6px;font-size:.72rem;font-weight:700;margin-left:2px}
.slot.a_pourvoir.optional{background:#fff;border-style:dashed;border-color:#E3C9D3;color:var(--muted);font-weight:400}
.slot .dero{font-size:.72rem;color:var(--violet);white-space:nowrap}
.cell .more{font-size:.78rem;color:var(--muted);text-align:center}

/* Tour de contrôle */
.tour{display:grid;gap:4px;min-width:900px}
.tour .cellm{display:flex;align-items:center;justify-content:center;height:44px;border-radius:8px;font-weight:700;text-decoration:none;color:var(--ink);border:1px solid var(--line);background:var(--card)}
.tour .m0{background:var(--ok-soft);color:var(--ok);border-color:#BFE3C3}
.tour .m1{background:var(--warn-soft);color:var(--warn);border-color:#F5DDA8}
.tour .m2{background:var(--danger-soft);color:var(--danger);border-color:#F1BDBD}
.tour .hdr{font-size:.8rem;text-align:center;color:var(--muted);padding:4px 2px}
.tour .hdr.today{color:var(--violet);font-weight:700}
.tour .lab{font-weight:700;display:flex;align-items:center;padding:0 8px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.kpi b{display:block;font-size:1.6rem;line-height:1.1}
.kpi span{color:var(--muted);font-size:.85rem}
.kpi.bad b{color:var(--danger)}.kpi.warn b{color:var(--warn)}.kpi.good b{color:var(--ok)}

/* Vue jour */
.day-units{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.day-unit h3{margin:0 0 6px;display:flex;justify-content:space-between;align-items:center}
.timeline{position:relative;height:22px;background:var(--bg);border-radius:6px;margin:6px 0 8px;overflow:hidden}
.timeline i{position:absolute;top:3px;height:16px;border-radius:4px;background:var(--violet);opacity:.55}
.person{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);margin-bottom:5px;background:#fff}
.person.remplacant{background:var(--yellow-soft)}
.person.a_pourvoir{background:var(--danger-soft);color:var(--danger);font-weight:700}
.person a.tel{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:4px;font-size:.9rem}

/* Candidats */
.cand{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:#fff}
.cand .info{flex:1;min-width:0}
.cand .info small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cand.non_conforme{opacity:.6}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.78rem;background:var(--bg);border:1px solid var(--line)}
.verdict-conforme{color:var(--ok)}.verdict-limite{color:var(--warn)}.verdict-non_conforme{color:var(--danger)}

/* Dialogue */
dialog.modal{border:none;border-radius:16px;padding:0;max-width:640px;width:calc(100% - 24px);box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog.modal::backdrop{background:rgba(33,29,30,.45)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal-head h2{margin:0;font-size:1.1rem}
.modal-body{padding:16px 18px;max-height:70vh;overflow:auto}
.modal-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:10px;overflow-x:auto}
.tabs button{font:inherit;font-weight:600;background:none;border:none;border-bottom:3px solid transparent;padding:8px 12px;cursor:pointer;color:var(--muted);white-space:nowrap}
.tabs button.on{color:var(--violet);border-bottom-color:var(--violet)}
.tabpane{display:none}.tabpane.on{display:block}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-weight:600;z-index:60;box-shadow:var(--shadow)}
.empty{padding:30px;text-align:center;color:var(--muted)}
.frise{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.85rem}
.frise .step{padding:4px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line)}
.frise .step.done{background:var(--ok-soft);color:var(--ok);border-color:#BFE3C3}
.frise .step.now{background:var(--violet);color:#fff;border-color:var(--violet)}
.login-logo{text-align:center;margin-bottom:14px}
.login-logo img{height:64px}
.pw-meter{height:6px;border-radius:4px;background:var(--line);margin-top:6px;overflow:hidden}
.pw-meter i{display:block;height:100%;width:0;background:var(--danger);transition:width .2s}
.help-list{margin:0;padding-left:18px;color:var(--muted);font-size:.9rem}

/* ---- Espace salarié (refonte du 26/09/2026) */
.esp-hero{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(135deg,var(--violet) 0%,var(--violet-dark) 100%);color:#fff;border-radius:var(--radius);padding:20px 22px;margin-bottom:12px;box-shadow:var(--shadow)}
.esp-hero h1{color:#fff;margin:0;font-size:1.55rem}
.esp-id{display:flex;gap:14px;align-items:center;min-width:0}
.esp-avatar{width:56px;height:56px;flex:none;border-radius:50%;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.5);display:grid;place-items:center;font-weight:700;font-size:1.25rem;letter-spacing:.02em}
.esp-sub{opacity:.92;font-size:.95rem}
.esp-next{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:10px;padding:10px 14px;line-height:1.35}
.esp-next small{color:rgba(255,255,255,.85);display:block}.esp-next .esp-code{border:1px solid rgba(255,255,255,.6)}
.esp-nav{position:sticky;top:63px;z-index:20;display:flex;gap:6px;overflow-x:auto;padding:8px 0;margin:0 0 10px;background:var(--bg);scrollbar-width:none}
.esp-nav::-webkit-scrollbar{display:none}
.esp-nav a{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 13px;border-radius:999px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem}
.esp-nav a:hover{border-color:var(--violet);color:var(--violet)}
.esp-nav .ic{width:17px;height:17px}
.esp-count{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--violet);color:#fff;font-size:.78rem;text-align:center;font-weight:700}
.esp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.esp-tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:border-color .15s}
.esp-tile:hover{border-color:var(--violet)}
.esp-tile b{display:block;font-size:1.55rem;line-height:1.15;color:var(--violet)}
.esp-tile b small{font-size:1rem;color:var(--muted);font-weight:600}
.esp-tile span{color:var(--muted);font-size:.86rem}
.esp-tile.warn b{color:var(--warn)}.esp-tile.bad b{color:var(--danger)}.esp-tile.ok b{color:var(--ok)}
.card[id]{scroll-margin-top:120px}
.esp-days{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(96px,1fr);gap:8px;overflow-x:auto;padding:10px 0 6px}
.esp-day{border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:var(--card2);min-height:108px;font-size:.9rem}
.esp-day.weekend{background:#F2EEF4}
.esp-day.today{border:2px solid var(--violet);background:var(--violet-soft)}
.esp-day .d{font-size:.78rem;color:var(--muted);font-weight:600}
.esp-day .n{font-size:1.25rem;font-weight:700;margin-bottom:4px}
.esp-day .n small{font-size:.78rem;font-weight:600;color:var(--muted)}
.esp-shift{margin-bottom:4px;line-height:1.25}
.esp-code{display:inline-block;color:#fff;padding:1px 7px;border-radius:6px;font-weight:700;font-size:.8rem;vertical-align:1px}
.esp-abs{display:inline-block;background:var(--info-soft);color:var(--info);padding:1px 7px;border-radius:6px;font-weight:700;font-size:.8rem}
.esp-repos{display:inline-block;color:var(--muted);font-size:.85rem;padding-top:2px}
.esp-travail{display:inline-block;background:var(--ok-soft);color:var(--ok);padding:1px 7px;border-radius:6px;font-weight:700;font-size:.8rem}   /* jour travaillé hors planning des maisons (02/10/2026) */
.esp-gauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.esp-gauge{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card2)}
.esp-gauge-wide{grid-column:1/-1}
.esp-gauge .lbl{font-weight:600;font-size:.92rem}
.esp-gauge .big{font-size:1.5rem;font-weight:700;line-height:1.15;color:var(--violet)}
.esp-gauge .big small{font-size:.9rem;color:var(--muted);font-weight:600}
.esp-gauge .big.neg{color:var(--warn)}
.esp-gauge small{color:var(--muted)}
.esp-ring{flex:none}
.esp-pastille{width:62px;height:62px;flex:none;border-radius:50%;background:var(--violet-soft);color:var(--violet);display:grid;place-items:center;font-weight:700;border:2px solid var(--violet-line)}
.esp-pastille .ic{width:26px;height:26px}
.esp-bar{height:10px;border-radius:999px;background:var(--line);position:relative;margin:8px 0 4px}
.esp-bar i{position:absolute;top:0;bottom:0;border-radius:999px}
.esp-bar.center::after{content:'';position:absolute;left:50%;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.45}
.esp-offer{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0;background:var(--card2);flex-wrap:wrap}
.esp-call{border:2px solid var(--violet-line);border-radius:12px;padding:12px 14px;margin:0 0 12px;background:var(--violet-soft)}
.esp-call .esp-offer{background:var(--card)}
.esp-list{list-style:none;margin:0;padding:0}
.esp-list li{padding:8px 0;border-bottom:1px solid var(--line)}
.esp-list li:last-child{border-bottom:0}
.esp-docs details{border-bottom:1px solid var(--line);padding:8px 0}
.esp-docs summary{cursor:pointer}
.esp-preview{border:2px dashed var(--violet);background:var(--violet-soft);border-radius:var(--radius);padding:12px 16px;margin-bottom:14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
#preferences summary{cursor:pointer;list-style:none}
.esp-switch{display:inline-flex;border:1px solid var(--violet-line);border-radius:999px;overflow:hidden;background:var(--card)}
.esp-switch>*{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;font-weight:600;font-size:.9rem;text-decoration:none;color:var(--violet)}
.esp-switch .on{background:var(--violet);color:#fff}
.esp-switch .ic{width:16px;height:16px}
@media (max-width:700px){.esp-hero{padding:16px}.esp-hero h1{font-size:1.3rem}.esp-next{width:100%}.esp-days{grid-auto-columns:88px}.esp-tile b{font-size:1.35rem}}
@media (max-width:900px){
  .topbar{gap:10px;padding:0 12px}
  .mainnav{display:none}
  .brand-text small{display:none}
  .uname{display:none}
  .bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -2px 12px rgba(0,0,0,.06)}
  .bottomnav a{position:relative;display:flex;flex:1 1 0;flex-direction:column;align-items:center;gap:2px;font-size:.66rem;text-decoration:none;color:var(--muted);padding:4px 0;border-radius:10px;min-width:0}   /* quatre espaces au plus (03/10/2026) */
  .bottomnav a.active{color:var(--violet);background:var(--violet-soft)}
  .grid2,.grid3{grid-template-columns:1fr}
  .page{padding:12px 12px 90px}
  .card{padding:14px}
  h1{font-size:1.35rem}
}
@media print{
  .topbar,.subnav,.bottomnav,.foot,.btn,.weekbar .nav,.legend{display:none!important}
  body{background:#fff}
  .page{max-width:none;padding:0}
  .wk{min-width:0;gap:3px}
  .wk .cell{min-height:0;break-inside:avoid}
}

/* Options pour pourvoir un poste (modale de case) */
.opts{display:flex;flex-direction:column;gap:6px}
.opts+.opts{margin-top:6px}
.opt summary strong{font-size:.95rem}
.opt{border:1px solid var(--line);border-radius:12px;background:#fff}
.opt[open]{border-color:var(--violet-line);box-shadow:0 2px 10px rgba(160,0,87,.06)}
.opt summary{list-style:none;display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer}
.opt summary::-webkit-details-marker{display:none}
.opt summary:hover{background:var(--violet-soft);border-radius:12px}
.opt .num{flex:0 0 26px;height:26px;border-radius:50%;background:var(--violet);color:#fff;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center}
.opt.adv .num{background:var(--muted)}
.opt .ttl{flex:1;min-width:0;display:flex;flex-direction:column}
.opt .ttl small{color:var(--muted);font-size:.78rem}
.opt .cnt{flex:0 0 auto;min-width:28px;text-align:center;padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-weight:700;font-size:.8rem;color:var(--muted)}
.opt[open] .cnt{background:var(--violet-soft);color:var(--violet);border-color:var(--violet-line)}
.opt-body{padding:4px 12px 12px;border-top:1px solid var(--line)}
.opt-body .cand{margin-top:6px}

.wk .cell.over{outline:2px dashed var(--danger);outline-offset:-2px}
.slot.surnombre{border:1px dashed var(--danger)}
/* À part du standard (01/10/2026) : mi-temps thérapeutique… visible dans sa maison avec son code (MTT), en plus de l'équipe, sans poste */
.slot.a-part,.person.a-part{background:#F4F1F7;border:1px dashed #B9A9C6}
.apart-tag{display:inline-block;background:#EDE7F2;color:#5A4868;border-radius:6px;padding:0 6px;font-size:.72rem;margin-left:2px}
.pv-it.apart{background:#F4F1F7;font-style:italic}
.pv-legende .l-apart{background:#F4F1F7;border:1px dashed #B9A9C6}
.pv-nb .pv-it.apart{background:none}

/* Envoi des horaires (26/09/2026) : e-mail par défaut, SMS d'urgence, message et pièces relus avant l'envoi */
.env h2{font-size:1.05rem}
.env-canal{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.env-canal label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;background:#fff}
.env-canal label span{display:flex;flex-direction:column}
.env-canal label small{color:var(--muted);font-size:.8rem}
.env-canal label.on{border-color:var(--violet);background:var(--violet-soft)}
.env-canal label.urg.on{border-color:var(--warn);background:var(--warn-soft)}
.env-warn{margin:10px 0 0;padding:8px 12px;border-radius:10px;background:var(--warn-soft);border:1px solid #F5DDA8;font-size:.9rem}
.env-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.env-dest summary input[type=checkbox]{flex:0 0 auto;width:18px;height:18px}
.env-contact{margin:8px 0 4px}
.env-pj .checks,.env-cat .checks{display:flex;align-items:center;gap:6px;margin:4px 0;font-size:.9rem}
.env-pj .checks a,.env-cat .checks a{font-size:.8rem;margin-left:4px}
.env-cat{display:flex;flex-direction:column;max-height:280px;overflow:auto}
@media (max-width:640px){.env-dest summary{flex-wrap:wrap}}

/* Tableau des compteurs Octime (26/09/2026) : lignes alternées, chiffres alignés à droite, deux colonnes pour les congés */
.cpt-tools{display:flex;align-items:center;gap:12px;margin:0 0 10px;flex-wrap:wrap}
.cpt-tools input[type=search]{width:100%;max-width:340px;font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.cpt-tools input[type=search]:focus{outline:2px solid var(--violet);outline-offset:1px;border-color:var(--violet)}
.cpt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem;background:var(--card)}
.cpt-table thead th{background:var(--card2);color:var(--muted);font-weight:600;font-size:.8rem;text-align:left;padding:10px 12px;border-bottom:2px solid var(--line);white-space:nowrap;position:sticky;top:0}
.cpt-table th.n,.cpt-table td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cpt-table tbody td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.cpt-table tbody tr:nth-child(even) td{background:var(--card2)}
.cpt-table tbody tr:hover td{background:var(--violet-soft)}
.cpt-table .grp{border-left:1px solid var(--line)}
.cpt-table td.nom a{font-weight:600;color:var(--ink);text-decoration:none}
.cpt-table td.nom a:hover{color:var(--violet);text-decoration:underline}
.cpt-table .mz{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:.75rem;color:var(--muted);white-space:nowrap}
.cpt-table .neg{color:var(--danger);font-weight:700}
.cpt-table .zero{color:#B3ABB8}

/* Bilan des absences depuis le 1er janvier (26/09/2026) */
.tabs-mini{display:inline-flex;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px;margin-left:12px}
.tabs-mini a{padding:5px 12px;border-radius:999px;font-size:.85rem;color:var(--muted);text-decoration:none;white-space:nowrap}
.tabs-mini a.on{background:var(--card);color:var(--violet);font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.abs-j{position:relative;padding-bottom:5px;min-width:90px}
.abs-j i{position:absolute;right:0;bottom:0;height:3px;border-radius:2px;background:var(--violet);opacity:.55}
.abs-motif{display:inline-block;margin:2px 4px 2px 0;padding:2px 9px;border-radius:999px;background:var(--warn-soft);border:1px solid #F5DDA8;font-size:.8rem;white-space:nowrap}
.abs-motif.plan{background:var(--info-soft);border-color:#BBD7F2}
.abs-motif b{font-weight:700;margin-left:2px}
@media (max-width:640px){.tabs-mini{margin:8px 0 0}}
.ct{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}
.ct-sous{background:var(--ok-soft);color:var(--ok);border:1px solid #BFE3C3}
.ct-parti{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.ct-tpt{background:var(--violet-soft);color:var(--violet);border:1px solid var(--violet-line);margin-top:3px}
.abs-motif.tpt{background:var(--violet-soft);border-color:var(--violet-line)}
.abs-motif small{color:var(--muted);font-size:.72rem}
/* Bilan des absences mois par mois (27/09/2026) : sélecteur de mois, écart Octime / outil */
.tabs-mini.tabs-mois{display:flex;flex-wrap:wrap;width:fit-content;max-width:100%;margin:12px 0 4px;border-radius:16px}
.tabs-mois a{padding:4px 10px}
.ec{display:inline-block;min-width:34px;text-align:center;padding:1px 8px;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}
.ec-ok{background:var(--ok-soft);color:var(--ok);border:1px solid #BFE3C3}
.ec-diff{background:var(--warn-soft);color:var(--warn);border:1px solid #F5DDA8;cursor:help}
.abs-motif.hors{background:var(--card);border-style:dashed;border-color:#C9C2CE}
.abs-motif.diff{border-color:var(--warn)}
.abs-ecarts{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}

/* Équipe administrative en bas du planning (26/09/2026) : présence calculée */
.wk .unit.adm-unit{border-top:2px solid var(--violet-line);padding-top:8px}
.wk .cell.adm-cell{min-height:60px;background:var(--card2);border-style:dashed}
.adm-p{display:flex;align-items:center;gap:6px;font-size:.85rem;padding:2px 4px;border-radius:6px}
.adm-p.absent{color:var(--muted)}
.adm-p.absent .who{text-decoration:line-through}
.adm-p small{color:var(--muted);font-size:.72rem;margin-left:auto;text-decoration:none}
.adm-code{display:inline-block;min-width:22px;text-align:center;padding:1px 6px;border-radius:6px;font-size:.72rem;font-weight:700;color:#fff;background:#8E7CC3}
.adm-code.forfait{background:#6B6470}
/* Fonctions support (28/09/2026) : lingerie, horaire du roulement */
.adm-code.support{background:#5B8DB8}
.wk .unit.sup-unit{border-top:1px dashed var(--violet-line)}
.adm-p.absent .adm-code{background:var(--danger)}
.adm-day .person{flex-wrap:wrap}
.adm-day a.tel{white-space:nowrap;font-size:.85rem}

/* Messagerie par salarié (27/09/2026) : fil de conversation, e-mails et SMS */
.msg-filtres{display:flex;gap:4px;align-items:center;flex-wrap:wrap;font-size:.82rem}
.msg-filtres button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:3px 10px;cursor:pointer;font:inherit}
.msg-filtres button.on{background:var(--violet);border-color:var(--violet);color:#fff}
.msg-filtres label{display:inline-flex;align-items:center;gap:4px;margin:0 0 0 6px;font-weight:400;color:var(--muted)}
.msg-fil{max-height:520px;overflow-y:auto;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}
.msg-jour{text-align:center;margin:6px 0 2px;font-size:.75rem;color:var(--muted)}
.msg-jour span{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.msg-item{display:flex;flex-direction:column;align-items:flex-start;max-width:100%}
.msg-item.mine{align-items:flex-end}
.msg-bulle{max-width:min(560px,88%);background:var(--card);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:8px 12px;box-shadow:0 1px 2px rgba(33,29,30,.05)}
.msg-item.mine .msg-bulle{background:var(--violet-soft);border-color:var(--violet-line);border-radius:14px 14px 4px 14px}
.msg-item.nonlu .msg-bulle{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}
.msg-meta{font-size:.76rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:3px}
.msg-meta .ic{width:14px;height:14px;vertical-align:-2px}
.msg-meta strong{color:var(--ink)}
.msg-objet{font-weight:700;font-size:.9rem;margin-bottom:2px}
.msg-texte{white-space:pre-wrap;word-break:break-word;font-size:.95rem}
.msg-cite{margin-top:6px;font-size:.82rem}
.msg-cite summary{cursor:pointer;color:var(--muted)}
.msg-cite .msg-texte{color:var(--muted);border-left:3px solid var(--line);padding-left:8px;margin-top:4px;font-size:.85rem}
.msg-pj{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.msg-pj .chip{text-decoration:none;color:var(--ink)}
.msg-pj .ic{width:13px;height:13px}
.msg-auto{align-items:center!important;max-width:100%}
.msg-auto>summary{list-style:none;cursor:pointer;font-size:.75rem;color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:999px;padding:2px 10px;text-align:center}
.msg-auto>summary::-webkit-details-marker{display:none}
.msg-auto>summary .ic{width:13px;height:13px;vertical-align:-2px}
.msg-auto[open]>summary{margin-bottom:4px}
.msg-auto .msg-bulle{background:var(--card2);border-style:dashed;font-size:.88rem;border-radius:12px}
.msg-saisie{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.msg-saisie textarea{width:100%;min-height:88px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit}
.msg-saisie textarea:focus{outline:2px solid var(--violet-line);border-color:var(--violet)}
.msg-joindre{display:inline-flex;align-items:center;gap:4px;margin:0;cursor:pointer;color:var(--violet);font-weight:600;font-size:.88rem}
.msg-joindre input{display:none}
.msg-joindre .ic{width:16px;height:16px}
@media (max-width:700px){.msg-bulle{max-width:94%}.msg-fil{max-height:60vh;padding:8px}}
.msg-saisie label.checks{font-weight:400;font-size:.88rem;display:inline-flex;align-items:center;gap:5px}
.msg-saisie label.checks .ic{width:15px;height:15px}
/* Documents du coffre joints à un message (27/09/2026) */
button.msg-joindre{border:none;background:none;padding:0;font:inherit;font-weight:600;font-size:.88rem;color:var(--violet);cursor:pointer}
.msg-coffre{border:1px solid var(--violet-line);background:var(--card2);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px}
.msg-coffre-tete{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.msg-coffre-tete input[type=search]{flex:1;min-width:160px;padding:5px 10px}
.msg-coffre-tete .ic{width:16px;height:16px;vertical-align:-3px}
.msg-coffre-liste{max-height:260px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:4px 8px}
.msg-coffre-kind{font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:8px 0 2px}
.msg-coffre-doc{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:3px 4px;border-radius:8px}
.msg-coffre-doc label{margin:0;font-weight:400;display:flex;gap:6px;align-items:center;min-width:0}
.msg-coffre-doc label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-coffre-doc small{font-size:.74rem;white-space:nowrap}
.msg-coffre-doc.vu{background:var(--violet-soft)}
.msg-coffre-doc .btn .ic{width:14px;height:14px}
.msg-coffre-apercu{height:380px;background:var(--card);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}
.msg-apercu-tete{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:.85rem}
.msg-apercu-tete strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-coffre-apercu iframe{flex:1;border:0;width:100%}
.msg-apercu-img{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;background:#f0edf2}
.msg-apercu-img img{max-width:100%;height:auto}
@media (max-width:700px){.msg-coffre-doc{grid-template-columns:minmax(0,1fr) auto}.msg-coffre-doc small{grid-column:1}}

/* Page RH et communications (27/09/2026) : reçus = violet de la charte, envoyés = bleu (palette validée, daltonisme compris) */
.sens{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;color:var(--muted);white-space:nowrap}
.sens::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--info)}
.sens.in::before{background:var(--violet)}
.rh-act{padding:12px 16px}
.rh-act-tete{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.rh-act-leg{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted)}
.rh-act-leg b{color:var(--ink)}
.rh-act-leg .sw{width:10px;height:10px;border-radius:3px;display:inline-block;background:var(--info)}
.rh-act-leg .sw.in{background:var(--violet)}
.rh-act-barres{display:flex;align-items:stretch;gap:3px;height:72px;border-bottom:1px solid var(--line)}
.rh-act-col{flex:1;display:flex;flex-direction:column-reverse;align-items:center;gap:2px;position:relative;text-decoration:none;min-width:0}
.rh-act-col:hover{background:var(--violet-soft);border-radius:4px 4px 0 0}
.rh-act-col .b{display:block;width:min(24px,80%);background:var(--info)}
.rh-act-col .b.in{background:var(--violet)}
.rh-act-col .b.haut{border-radius:4px 4px 0 0}
.rh-act-col.auj::after{content:"";position:absolute;bottom:-5px;width:4px;height:4px;border-radius:50%;background:var(--ink)}
.rh-act-col[data-tip]:hover::before{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;background:var(--ink);color:#fff;font-size:.75rem;padding:4px 8px;border-radius:6px;z-index:5;pointer-events:none}
.rh-act-axe{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);margin-top:6px}
.rh-onglets{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:4px 0 14px}
.rh-onglets a{padding:8px 14px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px;display:inline-flex;gap:6px;align-items:center}
.rh-onglets a.on{color:var(--violet);border-bottom-color:var(--violet)}
.rh-onglets a:hover{color:var(--ink)}
.rh-hub{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:16px;align-items:start}
.conv-liste{padding:0;overflow:hidden;position:sticky;top:76px}
.conv-outils{padding:10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;background:var(--card2)}
.conv-outils input[type=search]{padding:7px 10px}
.conv-items{max-height:calc(100vh - 300px);min-height:300px;overflow-y:auto}
.conv{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);position:relative}
.conv:hover{background:var(--card2)}
.conv.on{background:var(--violet-soft);box-shadow:inset 3px 0 0 var(--violet)}
.conv.auto .conv-l1 strong{font-weight:600;color:var(--muted)}
.conv.nonlu .conv-l1 strong{font-weight:800}
.conv-av{flex:0 0 36px;height:36px;border-radius:50%;background:var(--violet);color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.conv-av.inconnu{background:var(--muted)}
.conv-av.grand{flex-basis:52px;height:52px;font-size:1.1rem}
.conv-corps{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.conv-l1{display:flex;gap:6px;align-items:baseline;min-width:0}
.conv-l1 strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv-quand{margin-left:auto;font-size:.74rem;color:var(--muted);white-space:nowrap}
.conv-l2{font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv-l2 .ic{width:12px;height:12px;vertical-align:-2px}
.conv-l3{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv-l4{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-top:2px}
.conv-l4 .chip{font-size:.7rem;padding:1px 6px}
.conv-l4 .chip .ic{width:11px;height:11px}
.conv-nonlu{margin-left:auto;background:var(--danger);color:#fff;border-radius:999px;font-size:.72rem;font-weight:700;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center}
.conv-detail{display:flex;flex-direction:column;gap:16px;min-width:0}
.conv-tete{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.conv-contacts{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:.88rem;margin:4px 0}
.conv-contacts .ic{width:15px;height:15px;vertical-align:-3px}
.jr-filtres label{margin:0 0 2px;font-size:.8rem}
.jr-filtres select,.jr-filtres input[type=search]{padding:6px 10px;width:auto}
.jr-filtres input[type=search]{width:100%}
.tbl.jr td{vertical-align:top}
.tbl.jr tr.nonlu td{background:var(--danger-soft)}
.tbl.jr tr.auto td{color:var(--muted)}
.tbl.jr .jr-txt{max-width:460px}
.tbl.jr .ic{width:15px;height:15px;vertical-align:-3px}
@media (max-width:980px){.rh-hub{grid-template-columns:1fr}.conv-liste{position:static}.conv-items{max-height:48vh}}
.msg-groupe .msg-liste{padding:4px 10px;max-height:260px;overflow-y:auto}
.msg-groupe .msg-liste details{border-bottom:1px dashed var(--line);padding:3px 0;font-size:.82rem}
.msg-groupe .msg-liste details:last-child{border-bottom:none}
.msg-groupe .msg-liste summary{cursor:pointer;color:var(--muted)}
.msg-groupe .msg-liste .msg-texte{font-size:.85rem;margin:4px 0 2px}
.conv-l4 .badge{font-size:.68rem}
/* Choix du profil de connexion à l'invitation (27/09/2026) */
.profil-choix{display:flex;flex-direction:column;gap:3px;margin:6px 0;flex:1;min-width:220px}
.profil-choix select{padding:5px 8px}
.profil-choix small{font-size:.76rem;line-height:1.3}

/* Profils de connexion et droits (27/09/2026) */
.pf-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.pf-carte{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:box-shadow .15s,border-color .15s}
.pf-carte:hover{border-color:var(--violet-line);box-shadow:0 2px 10px rgba(160,0,87,.12)}
.pf-n{font-size:.8rem;color:var(--muted);white-space:nowrap}.pf-n b{color:var(--violet);font-size:1rem}
.pf-jauge{height:6px;border-radius:999px;background:var(--bg);overflow:hidden}.pf-jauge i{display:block;height:100%;background:var(--violet);border-radius:999px}
.pf-matrice-box{max-height:calc(100vh - 230px);overflow:auto}
.pf-matrice{border-collapse:separate;border-spacing:0}
.pf-matrice thead th{position:sticky;top:0;background:var(--card);z-index:2;font-size:.8rem;vertical-align:bottom;text-align:center;min-width:92px;border-bottom:2px solid var(--line)}
.pf-matrice .pf-col-perm{position:sticky;left:0;background:var(--card);z-index:1;min-width:280px;max-width:380px;text-align:left}
.pf-matrice thead .pf-col-perm{z-index:3}
.pf-matrice .pf-fam td{background:var(--violet-soft);color:var(--violet);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;position:sticky;left:0}
.pf-matrice td{font-size:.84rem;vertical-align:top}
.pf-cell{text-align:center;color:var(--line);font-weight:700;font-size:1rem!important}
.pf-cell.on{color:var(--ok);background:var(--ok-soft)}
.pf-edition{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.pf-gauche{display:flex;flex-direction:column;gap:14px;min-width:0}
.pf-droite{position:sticky;top:76px}
.pf-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.pf-opt,.pf-perm{display:flex;gap:10px;align-items:flex-start;margin:0;font-weight:400;cursor:pointer}
.pf-opt{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.pf-opt span,.pf-corps{display:flex;flex-direction:column;gap:2px;min-width:0}
.pf-opt small{color:var(--muted);font-size:.8rem;line-height:1.35}
.pf-opt input,.pf-perm input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--violet)}
.pf-outils{display:flex;gap:8px;flex-wrap:wrap;align-items:center;position:sticky;top:64px;z-index:4;padding:10px 12px}
.pf-outils input[type=search]{flex:1;min-width:220px;padding:7px 10px}
.pf-perm{padding:10px 8px;border-top:1px solid var(--line);border-radius:8px}
.pf-perm:hover{background:var(--card2)}
.pf-perm.on{background:#FBF4F8}
.pf-titre{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pf-code{font-size:.7rem;color:var(--muted);background:var(--bg);border-radius:4px;padding:0 5px}
.pf-permet,.pf-bloque,.pf-lien{font-size:.84rem;line-height:1.4}
.pf-permet b{color:var(--ok)}
.pf-bloque{color:var(--muted)}.pf-bloque b{color:var(--danger)}
.pf-perm.on .pf-bloque{opacity:.7}
.pf-lien{font-size:.78rem;color:var(--info)}
.pf-apercu h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:14px 0 6px}
.pf-compte{margin:0;font-size:.9rem}.pf-compte b{font-size:1.4rem;color:var(--violet)}
.pf-menus{display:flex;flex-wrap:wrap;gap:4px}
.pf-menu-on{background:var(--ok-soft);border-color:#BFE3C8;color:var(--ok)}
.pf-menu-off{color:var(--muted);text-decoration:line-through;opacity:.7}
.pf-liste{margin:0;padding-left:18px;font-size:.84rem;display:flex;flex-direction:column;gap:3px}
.pf-rouge{color:var(--danger)}.pf-orange{color:var(--warn)}.pf-vert{color:var(--ok);list-style:none;margin-left:-18px}
.pf-bloques{margin-top:12px;font-size:.86rem}.pf-bloques summary{cursor:pointer}.pf-bloques .pf-liste{max-height:260px;overflow:auto;margin-top:6px;color:var(--muted)}
.pf-alerte{background:var(--warn-soft);border:1px solid #F0D08A;border-radius:8px;padding:6px 10px;font-size:.84rem;margin:8px 0 0}
.pf-flash{background:var(--info-soft);border:1px solid #BBD7F2;border-radius:8px;padding:6px 10px;font-size:.84rem;margin:10px 0 0}
.pf-actions{margin-top:14px}
@media (max-width:1000px){.pf-edition{grid-template-columns:1fr}.pf-droite{position:static}.pf-options{grid-template-columns:1fr}.pf-outils{top:0}}

/* Fiche salarié, vue administrateur (27/09/2026) : en-tête de synthèse, onglets, planning et roulement */
.fs-js .fs-panneau{display:none}.fs-js .fs-panneau.on{display:block}
.fs-panneau{margin-bottom:16px}
.fs-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:12px}
.fs-id{display:flex;gap:14px;align-items:flex-start;min-width:0}
.fs-av{flex:0 0 56px;height:56px;border-radius:50%;background:var(--violet);color:#fff;font-weight:700;font-size:1.2rem;display:flex;align-items:center;justify-content:center}
.fs-hero h1{margin:0 0 2px;font-size:1.45rem;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fs-sub{color:var(--muted);font-size:.92rem}
.fs-contact{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:.9rem}
.fs-contact .ic{width:15px;height:15px;vertical-align:-3px}
.fs-etat{display:grid;gap:6px;align-content:start;border-left:3px solid var(--violet-line);padding-left:14px}
.fs-etat small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}
.fs-etat strong{font-size:.95rem;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fs-rouge{color:var(--danger)}
.fs-sem{background:var(--ok-soft);color:var(--ok);border-radius:999px;padding:0 8px;font-size:.8rem}
.fs-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.fs-actions .ic{width:15px;height:15px}
.fs-tuiles{margin-bottom:6px}
.fs-onglets{position:sticky;top:60px;z-index:6;background:var(--bg);padding-top:4px}
.fs-onglets a.on{color:var(--violet);border-bottom-color:var(--violet)}
.fs-code{display:inline-block;color:#fff;font-weight:700;font-size:.78rem;border-radius:5px;padding:0 5px;line-height:1.5}
.fs-plan{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.fs-plan-g{display:flex;flex-direction:column;gap:16px;min-width:0}
.fs-plan-d{position:sticky;top:112px}
.fs-trame{border-collapse:separate;border-spacing:3px;font-size:.82rem}
.fs-trame th{font-size:.72rem;color:var(--muted);font-weight:600;text-align:center;padding:2px 4px}
.fs-trame tbody th{text-align:left;white-space:nowrap;padding-right:8px;color:var(--ink)}
.fs-trame tbody th small{display:block;color:var(--muted);font-weight:400;font-size:.68rem}
.fs-trame td{text-align:center;background:var(--card2);border-radius:6px;min-width:52px;height:34px;padding:2px}
.fs-trame td small{display:block;font-size:.62rem;color:var(--muted)}
.fs-trame tr.cur td{background:var(--ok-soft);box-shadow:inset 0 0 0 1px #BFE3C8}
.fs-trame tr.cur th{color:var(--ok)}
.fs-repos{color:var(--muted);font-size:.8rem}
.fs-histo{margin:6px 0 0;padding-left:18px;font-size:.85rem}
.fs-legende{display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:.76rem}
.fs-leg{width:12px;height:12px;border-radius:3px;display:inline-block;border:2px solid var(--line)}
.fs-leg.ok{border-color:#BFE3C8;background:var(--ok-soft)}.fs-leg.ecart{border-color:#F0D08A;background:var(--warn-soft)}.fs-leg.abs{border-color:#F2B8B8;background:var(--danger-soft)}
.fs-src{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:4px;background:var(--bg);border:1px solid var(--line);font-size:.62rem;font-weight:700;color:var(--muted)}
.fs-src.excel{background:var(--warn-soft);border-color:#F0D08A;color:var(--warn)}
.fs-selbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:10px 0;font-size:.86rem;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.fs-selbar input[type=date]{padding:3px 6px;width:auto}
.fs-calendrier{border-collapse:separate;border-spacing:4px;width:100%;table-layout:fixed;min-width:760px}
.fs-calendrier thead th{font-size:.74rem;color:var(--muted);font-weight:600}
.fs-calendrier tbody th{width:74px;text-align:left;font-size:.8rem;vertical-align:top;padding-top:6px}
.fs-calendrier tbody th small{display:block;color:var(--muted);font-weight:400;font-size:.7rem}
.fs-jour{vertical-align:top;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:4px 5px 6px;height:78px;position:relative;font-size:.8rem}
.fs-jour.ok{border-color:#BFE3C8;background:#F6FBF7}
.fs-jour.ecart{border-color:#F0D08A;background:var(--warn-soft)}
.fs-jour.abs{border-color:#F2B8B8;background:var(--danger-soft)}
.fs-jour.auj{box-shadow:0 0 0 2px var(--violet)}
.fs-jour.passe{opacity:.55}
.fs-num{position:absolute;top:3px;right:6px;font-size:.7rem;color:var(--muted);font-weight:700}
.fs-poste{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin:14px 0 2px;font-weight:600;cursor:pointer;border-radius:6px;padding:1px 2px}
.fs-poste+.fs-poste{margin-top:2px}
.fs-poste input{margin:0;width:15px;height:15px;accent-color:var(--violet)}
.fs-poste small{font-weight:400;font-size:.68rem}
.fs-poste.sel{background:var(--violet-soft);box-shadow:0 0 0 1px var(--violet-line)}
.fs-jour .fs-repos,.fs-absence{display:block;margin-top:16px}
.fs-absence{color:var(--danger);font-weight:700;font-size:.76rem}
.fs-ecart{display:block;font-size:.66rem;color:var(--warn);margin-top:2px}
.fs-ouvrir{position:absolute;bottom:3px;right:6px;text-decoration:none;font-size:.8rem;color:var(--muted)}
.fs-ouvrir:hover{color:var(--violet)}
.fs-outils .opt{border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.fs-outils .opt[open]{border-color:var(--violet-line)}
.fs-outils .opt-body{padding:0 12px 12px}
.fs-jours-liste{font-size:.82rem;margin:0;max-height:90px;overflow:auto}
.fs-apercu-t{width:100%;font-size:.8rem;border-collapse:collapse;margin-top:4px}
.fs-apercu-t th{font-size:.7rem;color:var(--muted);text-align:left}
.fs-apercu-t td{padding:2px 4px;border-top:1px solid var(--line)}
.fs-apercu-t tr.diff td{background:var(--warn-soft)}
.fs-form fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px 10px;margin:0}
.fs-form legend{font-weight:700;font-size:.82rem;color:var(--violet);padding:0 6px}
@media (max-width:1100px){.fs-plan{grid-template-columns:1fr}.fs-plan-d{position:static}.fs-hero{grid-template-columns:1fr}.fs-etat{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:8px}}
.fs-moins{color:var(--danger);font-weight:700}
/* Outils de la personne, communs à la fiche et à la case du planning (27/09/2026) */
.ot-prevu{margin:0;padding:6px 10px;border-radius:8px;background:var(--card2);font-size:.9rem}
.ot-prevu strong{color:var(--violet)}
.ot-liste{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.ot-liste .fs-code{font-size:.72rem}
input[readonly][type=time]{background:var(--card2);color:var(--muted)}
/* Personnes à créer dans Octime (27/09/2026) */
.oc-bandeau{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;text-decoration:none;color:inherit;border-left:4px solid var(--line)}
.oc-bandeau.warn{border-left-color:#E0A93A;background:var(--yellow-soft)}
.oc-bandeau.bad{border-left-color:var(--danger);background:var(--danger-soft)}
.oc-tbl td{vertical-align:top}
.oc-tbl tr.oc-doute td{background:var(--yellow-soft)}
.oc-tbl tr.oc-retard td:first-child{box-shadow:inset 3px 0 0 var(--danger)}
.oc-homo{margin:0 0 4px;line-height:1.35}
.oc-ok{color:var(--ok, #2E7D4F)}
.oc-act{white-space:nowrap}
.oc-act form,.oc-act details{margin:0 0 4px}
.oc-mini summary{cursor:pointer;color:var(--violet);font-size:.84rem}
.oc-mini select,.oc-mini input[type=text]{padding:6px 10px}
.oc-envoi{margin-top:12px;background:var(--card2)}
.oc-pre{white-space:pre-wrap;font-size:.8rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;max-height:420px;overflow:auto}

/* Module Qualité : plan d'actions (27/09/2026) */
.q-kpis a.kpi{text-decoration:none;color:var(--ink)}
.q-kpis a.kpi:hover{border-color:var(--violet)}
.q-filtres label{margin-top:4px}
.q-tbl td{font-size:.93rem}
.q-tbl .q-ref{white-space:nowrap;font-weight:700}
.q-tbl .q-ref small{font-weight:400}
.q-tbl .q-titre{min-width:280px;max-width:560px}
.q-tbl .q-titre a,.q-item-tete a{color:var(--ink);text-decoration:none;font-weight:600}
.q-tbl .q-titre a:hover,.q-item-tete a:hover{color:var(--violet);text-decoration:underline}
.q-tbl .q-ech{white-space:nowrap}
.q-tbl .q-der{min-width:200px;max-width:340px;color:var(--muted)}
.q-tbl tr.q-retard td:first-child{box-shadow:inset 3px 0 0 var(--danger)}
.q-tbl tr.q-a_valider td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.q-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.chip.q-eng{background:var(--violet-soft);border-color:var(--violet-line);color:var(--violet-dark)}
.chip.q-crit{background:var(--danger-soft);border-color:#F1BDBD;color:var(--danger);font-weight:700}
.chip.q-haute{background:var(--warn-soft);border-color:#F5DDA8;color:var(--warn)}
.chip.q-verif{background:var(--yellow-soft);border-color:#F0D57A;color:#7A5C00}
a.chip{text-decoration:none;color:var(--ink)}a.chip.q-on{background:var(--violet);border-color:var(--violet);color:#fff}
.q-gestes details,.q-item-gestes details{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0 0 8px;background:var(--card2)}
.q-gestes summary,.q-item-gestes summary{cursor:pointer;font-weight:600;color:var(--violet)}
.q-gestes details[open],.q-item-gestes details[open]{background:var(--card)}
.q-journal{list-style:none;margin:0;padding:0}
.q-journal li{padding:9px 0 9px 14px;border-left:3px solid var(--line);margin-left:4px}
.q-journal li+li{border-top:1px dashed var(--line)}
.q-journal .q-j-texte{margin:3px 0;white-space:normal}
.q-journal li.q-j-point{border-left-color:var(--info)}.q-journal li.q-j-report{border-left-color:var(--warn)}
.q-journal li.q-j-faite,.q-journal li.q-j-validation{border-left-color:var(--ok)}.q-journal li.q-j-reouverture{border-left-color:var(--danger)}
.q-journal li.q-j-import,.q-journal li.q-j-creation{border-left-color:var(--violet-line)}
.q-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 12px}
.q-eng-acts{list-style:none;margin:0 0 4px;padding:0}.q-eng-acts li{padding:3px 0}
.q-eng-tbl .q-titre{min-width:240px;max-width:420px}
.q-mes{list-style:none;margin:0;padding:0}
.q-item{padding:12px 0;border-bottom:1px solid var(--line)}.q-item:last-child{border-bottom:0}
.q-item.q-retard{box-shadow:inset 3px 0 0 var(--danger);padding-left:10px}
.q-item-der{margin:4px 0;color:var(--muted);font-size:.9rem}
.q-item-gestes{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.q-item-gestes details{margin:0;flex:0 1 auto}.q-item-gestes details[open]{flex:1 1 100%}
@media (max-width:760px){
  .q-tbl thead,.q-eng-tbl thead{display:none}
  .q-tbl,.q-tbl tbody,.q-tbl tr,.q-tbl td,.q-eng-tbl,.q-eng-tbl tbody,.q-eng-tbl tr,.q-eng-tbl td{display:block;width:100%}
  .q-tbl tr,.q-eng-tbl tr{border-bottom:1px solid var(--line);padding:8px 0}
  .q-tbl td,.q-eng-tbl td{border:0;padding:2px 4px;min-width:0!important;max-width:none!important}
  .q-tbl .q-ref,.q-eng-tbl .q-ref{display:flex;gap:8px;align-items:baseline}
  .q-tbl .q-ref br,.q-eng-tbl .q-ref br{display:none}
  .q-tbl tr.q-retard td:first-child,.q-tbl tr.q-a_valider td:first-child{box-shadow:none}
  .q-tbl tr.q-retard{box-shadow:inset 3px 0 0 var(--danger);padding-left:8px}
}
.q-eng-acts a{color:var(--ink);text-decoration:none;font-weight:600}.q-eng-acts a:hover{color:var(--violet);text-decoration:underline}
.q-preuves{list-style:none;margin:0 0 10px;padding:0}.q-preuves li{padding:7px 0;border-bottom:1px solid var(--line)}.q-preuves li:last-child{border-bottom:0}
.q-preuves a{font-weight:600;text-decoration:none}.q-preuves a:hover{text-decoration:underline}.q-preuves .ic{width:16px;height:16px;vertical-align:-3px}
.q-preuves small{display:block;margin-top:2px}.q-retrait{display:inline-block;margin-top:4px}.q-retrait summary{cursor:pointer;color:var(--danger);font-size:.85rem}
#preuves h2 .ic{width:20px;height:20px}

/* Page Hublo refondue (28/09/2026) : en-tête, tuiles, bloc « À retirer », origine des missions, tableaux lisibles sur téléphone */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hb-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 20px;flex-wrap:wrap;margin-bottom:14px}
.hb-tete h1{margin:0 0 2px}
.hb-sync{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.9rem;color:var(--muted)}
.hb-sync b{color:var(--ink)}
.hb-sync .hb-vieux,.hb-sync .hb-vieux b{color:var(--warn)}
.hb-tuiles .kpi{text-decoration:none;color:inherit;display:block;transition:border-color .15s,box-shadow .15s}
.hb-tuiles .kpi:hover,.hb-tuiles .kpi:focus-visible{border-color:var(--violet-line);box-shadow:var(--shadow)}
.hb-tuiles .kpi small{display:block;line-height:1.3;margin-top:4px}
.hb-titre{align-items:center;margin-bottom:8px}
.hb-titre h2{margin:0}
.hb-alerte{border:2px solid #F1BDBD;background:#FFFBFB}
.hb-alerte h2{color:var(--danger);margin-top:0;display:flex;gap:8px;align-items:center}
.hb-alerte h2 .ic{width:20px;height:20px;flex:0 0 20px}
.hb-regler{border-left:4px solid var(--warn)}
.hb-regler h2{margin-top:0}
.hb-intro{margin:0 0 4px;max-width:78ch}
.hb-liste{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none}
.hb-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.hb-quoi{font-weight:700;margin:0 0 2px}
.hb-meta{display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center;font-size:.85rem;color:var(--muted);margin-bottom:4px}
.hb-meta .hb-sub{display:none}
.hb-pourquoi{font-size:.92rem;margin-top:2px}
.hb-note{background:var(--warn-soft);border:1px solid #F5DDA8;border-radius:8px;padding:6px 10px;font-size:.88rem}
.hb-note-rouge{background:var(--danger-soft);border-color:#F1BDBD;color:#8E1C1C}
.hb-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.hb-actions form{display:inline}
.hb-filtres{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.hb-filtres button{font:inherit;font-size:.86rem;font-weight:600;border:0;border-right:1px solid var(--line);background:none;padding:6px 12px;cursor:pointer;color:var(--muted)}
.hb-filtres button:last-child{border-right:0}
.hb-filtres button:hover{color:var(--ink);background:var(--card2)}
.hb-filtres button[aria-pressed=true]{background:var(--violet);color:#fff}
.hb-filtres button:focus-visible,.hb-tuiles .kpi:focus-visible,.rh-onglets a:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.hb-orig{display:inline-block;font-size:.76rem;font-weight:700;border-radius:999px;padding:1px 9px;border:1px solid;white-space:nowrap;margin-top:3px}
.hb-orig.outil{background:var(--violet-soft);color:var(--violet);border-color:var(--violet-line)}
.hb-orig.hublo{background:var(--info-soft);color:var(--info);border-color:#BBD7F2}
.hb-sub{display:block;font-size:.82rem;color:var(--muted);margin-top:3px;line-height:1.35}
.hb-tbl td{vertical-align:top}
.hb-tbl td.hb-jour{white-space:nowrap}
.hb-tbl td.hb-jour div+div{margin-top:3px}
.hb-tbl td.hb-act{white-space:nowrap;text-align:right}
.hb-tbl td.hb-act .btn{margin:2px 0}
.hb-tbl tr.hb-ligne-retirer td{background:#FFF7F7}
.hb-tbl tr[hidden]{display:none}
.hb-lien{font-size:.82rem}
.hb-simple{margin:4px 0 0;padding-left:18px;font-size:.92rem}
.hb-simple li{margin:3px 0}
.hb-aide summary{cursor:pointer}
.hb-aide p{max-width:90ch}
#hbRetrait .modal-body label{margin-top:12px}
#hbRetrait .hb-quoi{margin:0 0 8px}
@media (max-width:760px){
  .hb-item{grid-template-columns:1fr}
  .hb-actions{justify-content:flex-start}
  .hb-sync{font-size:.85rem}
  table.hb-resp thead{display:none}
  table.hb-resp,table.hb-resp tbody,table.hb-resp tr,table.hb-resp td{display:block;width:100%}
  table.hb-resp tr{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;padding:6px 10px;background:#fff}
  table.hb-resp tr.hb-ligne-retirer{border-color:#F1BDBD}
  table.hb-resp td{border:0;padding:5px 0;white-space:normal!important;text-align:left!important}
  table.hb-resp td[data-l]::before{content:attr(data-l);display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}
  table.hb-resp td[data-l=Actions]::before{display:none}
  .hb-filtres{width:100%}
  .hb-filtres button{flex:1 1 auto}
}

/* Page Octime réorganisée (28/09/2026) : consigne, trois familles de tâches, onglets, désaccords regroupés, feuille de saisie */
.oc-consigne{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:10px 14px;border:2px solid var(--violet);background:var(--violet-soft);border-radius:var(--radius);color:var(--ink)}
.oc-consigne .ic{width:20px;height:20px;flex:0 0 20px;color:var(--violet);margin-top:1px}
.oc-consigne b{color:var(--violet-dark)}
.oc-voies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:10px;align-items:start}
.oc-voie{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 14px}
.oc-voie h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:8px}
.oc-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--violet);color:#fff;font-size:.78rem;letter-spacing:0}
.oc-tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px}
.oc-tuiles .kpi{text-decoration:none;color:inherit;display:block;background:var(--card2);padding:8px 10px;transition:border-color .15s,box-shadow .15s}
.oc-tuiles .kpi b{font-size:1.45rem}
.oc-tuiles .kpi:hover,.oc-tuiles .kpi:focus-visible{border-color:var(--violet-line);box-shadow:var(--shadow);outline:none}
.oc-tuiles .kpi:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.oc-tuiles .kpi small{display:block;line-height:1.3;margin-top:4px}
.oc-accord{display:flex;align-items:center;gap:10px;margin:2px 0 14px;font-size:.88rem;color:var(--muted)}
.oc-accord b{color:var(--ok)}
.oc-barre{flex:0 0 140px;height:8px;border-radius:999px;background:var(--danger-soft);overflow:hidden;display:inline-block}
.oc-barre i{display:block;height:100%;background:var(--ok);border-radius:999px}
.oc-onglets{margin-bottom:10px}
.oc-periode{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;justify-content:flex-end;margin:-4px 0 12px;font-size:.88rem}
.oc-periode label{margin:0;font-weight:600;color:var(--muted)}
.oc-periode input[type=date]{width:auto;padding:5px 9px}
.oc-section h2{margin:0}
.oc-sec-tete{margin-bottom:8px;align-items:center}
.oc-intro{max-width:95ch;margin:0 0 12px}
.oc-note{background:var(--warn-soft);border:1px solid #F5DDA8;border-radius:10px;padding:8px 12px;margin:0 0 12px;font-size:.92rem}
.oc-rien{margin:6px 0 10px;color:var(--muted)}
.oc-mz{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:.75rem;color:var(--muted);white-space:nowrap}
.oc-nowrap{white-space:nowrap}
.oc-code{font-size:1.1rem;letter-spacing:.02em}
/* désaccords regroupés */
.oc-groupes{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.oc-groupe{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:10px;padding:12px 14px;background:#fff}
.oc-groupe.t-excel{border-left-color:#B3ABB8}.oc-groupe.t-hublo{border-left-color:var(--violet)}.oc-groupe.t-surnombre{border-left-color:var(--info)}.oc-groupe.t-deux_cotes,.oc-groupe.t-absence_outil{border-left-color:var(--danger)}.oc-groupe.t-maison{border-left-color:var(--ok)}
.oc-groupe[hidden]{display:none}
.oc-g-tete{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.oc-g-nom{font-weight:700;font-size:1.05rem;color:var(--ink);text-decoration:none}
.oc-g-nom:hover{color:var(--violet);text-decoration:underline}
.oc-type{font-size:.76rem;font-weight:700;border-radius:999px;padding:1px 9px;border:1px solid var(--line);background:var(--bg);color:var(--muted)}
.oc-type.t-deux_cotes,.oc-type.t-absence_outil{background:var(--danger-soft);color:var(--danger);border-color:#F1BDBD}
.oc-type.t-surnombre{background:var(--info-soft);color:var(--info);border-color:#BBD7F2}
.oc-type.t-different{background:var(--warn-soft);color:var(--warn);border-color:#F5DDA8}
.oc-type.t-maison{background:var(--ok-soft);color:var(--ok);border-color:#BFE3C3}
.oc-type.t-hublo{background:var(--violet-soft);color:var(--violet);border-color:var(--violet-line)}
.oc-quand{margin-left:auto;font-weight:600;font-size:.9rem;white-space:nowrap}
.oc-g-expl{margin:4px 0 10px;font-size:.86rem;color:var(--muted)}
.oc-cotes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.oc-c{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--card2)}
.oc-c.recent{border-color:#BFE3C3;background:var(--ok-soft)}
.oc-c small{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}
.oc-c.recent small{color:var(--ok)}
.oc-c b{font-size:1.02rem}
.oc-c em{display:block;font-style:normal;font-size:.8rem;color:var(--muted);margin-top:3px;line-height:1.35}
.oc-mini-tbl{border-collapse:collapse;font-size:.88rem;width:100%}
.oc-mini-tbl th{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);text-align:left;padding:4px 8px;border-bottom:1px solid var(--line)}
.oc-mini-tbl td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.oc-g-pied{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin-top:10px}
.oc-conseil{margin:0;font-size:.9rem;flex:1 1 320px}
.oc-g-actions{display:flex;gap:6px;flex-wrap:wrap}
.oc-detail{margin-top:8px}
.oc-detail summary,.oc-tout summary,.oc-aide summary{cursor:pointer;color:var(--violet);font-size:.88rem;font-weight:600}
.oc-tout{margin-top:16px;padding-top:10px;border-top:1px solid var(--line)}
.oc-aide{margin-top:12px;font-size:.9rem}
.oc-aide p{max-width:95ch}
/* feuille de saisie */
.oc-feuille tr.oc-pers th{background:var(--violet-soft);text-align:left;padding:8px 10px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink);font-size:.95rem;border-top:2px solid var(--violet-line)}
.oc-feuille tr.oc-pers label{display:inline-flex;gap:8px;align-items:center;margin:0}
.oc-feuille tr.oc-pers input{width:auto}
.oc-barre-action{position:sticky;bottom:0;display:flex;gap:12px;align-items:center;justify-content:flex-end;padding:10px 0 2px;background:linear-gradient(transparent,var(--card) 30%)}
.oc-barre-action span{color:var(--muted);font-weight:600}
.oc-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.oc-noms{margin:0;padding-left:18px;columns:2;font-size:.92rem}
.oc-noms li{margin:2px 0}
/* demandes Octime, journal */
.oc-cherche{width:100%;max-width:320px;padding:7px 12px}
.oc-sous{margin:0 0 12px}
.oc-sous button[aria-selected=true]{background:var(--violet);color:#fff}
.oc-sous-p h3{margin:14px 0 6px}
.oc-sous-p h3:first-child{margin-top:0}
.oc-cherchable tr[hidden]{display:none}
.hb-filtres a.oc-filtre-lien{font-size:.86rem;font-weight:600;padding:6px 12px;color:var(--muted);text-decoration:none;border-right:1px solid var(--line)}
.hb-filtres a.oc-filtre-lien:last-child{border-right:0}
.hb-filtres a.oc-filtre-lien:hover{color:var(--ink);background:var(--card2)}
.hb-filtres a.oc-filtre-lien[aria-current=true]{background:var(--violet);color:#fff}
.oc-journal td{vertical-align:top}
@media (max-width:1000px){.oc-voies{grid-template-columns:1fr}.oc-duo{grid-template-columns:1fr}}
@media (max-width:640px){.oc-onglets{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.oc-onglets a{white-space:nowrap}.oc-cotes{grid-template-columns:1fr}.oc-quand{margin-left:0}.oc-periode{justify-content:flex-start}.oc-noms{columns:1}.oc-accord{flex-wrap:wrap}}
@media print{.topbar,.bottomnav,.foot,.hb-tete,.oc-consigne,.oc-voies,.oc-accord,.oc-onglets,.oc-periode,.oc-barre-action,#ecarts,.oc-duo,.oc-intro{display:none!important}.card{box-shadow:none;border:0}.oc-feuille input{display:none}}

/* Roulement sur mesure et mi-temps thérapeutique (28/09/2026) */
.rm-tete{margin-bottom:12px}
.rm-tete h1{margin:6px 0 2px}
.rm-tete p{margin:0}
.rm-cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.rm-bloc h2{margin:0 0 10px;display:flex;align-items:center;gap:8px;font-size:1.1rem}
.rm-titre{margin-bottom:6px}.rm-titre h2{margin:0}
.rm-natures{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.rm-nat{display:flex;gap:10px;align-items:flex-start;border:2px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;font-weight:400;cursor:pointer;background:var(--card2)}
.rm-nat:has(input:checked){border-color:var(--violet);background:var(--violet-soft)}
.rm-nat input{width:auto;margin-top:4px}
.rm-nat b{display:block}.rm-nat small{display:block;color:var(--muted);line-height:1.35}
.rm-champs{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}
.rm-champs>div{min-width:150px}
.rm-champs label{margin-top:0}
.rm-taux{display:flex;align-items:center;gap:6px}.rm-taux input{width:90px}
.rm-objectif{background:var(--violet-soft);border-radius:10px;padding:6px 12px}
.rm-objectif small{display:block;color:var(--muted);font-size:.75rem}.rm-objectif b{font-size:1.1rem;color:var(--violet-dark)}
.rm-sem-choix{display:flex;align-items:center;gap:8px}.rm-sem-choix label{margin:0}.rm-sem-choix select{width:auto;padding:6px 10px}
.rm-intro{margin:0 0 10px}
.rm-remplir{margin:0 0 12px;border:1px dashed var(--violet-line);border-radius:10px;padding:8px 12px}
.rm-remplir summary{cursor:pointer;color:var(--violet);font-weight:600;font-size:.9rem}
.rm-remplir-in{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.rm-remplir-in select,.rm-remplir-in input[type=time]{width:auto;padding:5px 8px;font-size:.88rem}
.rm-jcases{display:inline-flex;gap:2px;flex-wrap:wrap}
.rm-jcases label{display:inline-flex;align-items:center;gap:3px;margin:0;font-weight:600;font-size:.82rem;border:1px solid var(--line);border-radius:6px;padding:3px 6px;background:#fff}
.rm-jcases input{width:auto}
.rm-sem{margin-top:12px}.rm-sem[hidden]{display:none}
.rm-sem-tete{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.rm-sem-tete h3{margin:0;font-size:.95rem}
.rm-sem-h{font-weight:700;color:var(--violet-dark);background:var(--violet-soft);border-radius:999px;padding:1px 10px;font-size:.85rem}
.rm-jours{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.rm-jour{border:1px solid var(--line);border-top:4px solid var(--line);border-radius:8px;padding:6px;margin:0;min-width:0;background:#fff}
.rm-jour.we{background:var(--card2)}
.rm-jour legend{font-weight:700;font-size:.85rem;padding:0 4px}
.rm-jour select,.rm-jour input[type=time]{width:100%;padding:4px 6px;font-size:.82rem;border-radius:6px}
.rm-jour .rm-poste{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;margin-top:4px}
.rm-jour>*,.rm-poste>*{min-width:0;max-width:100%}
.rm-jour input[type=time]::-webkit-calendar-picker-indicator{display:none}
.rm-jour.t-repos .rm-poste,.rm-jour.t-tpt .rm-poste{display:none}
.rm-jour.t-repos{opacity:.75}
.rm-jour.t-tpt{background:var(--violet-soft);border-top-color:var(--violet)}
.rm-h{display:grid;grid-template-columns:minmax(0,1fr);gap:3px}
.rm-h span{display:none}
.rm-h input{font-variant-numeric:tabular-nums}
.rm-duree{font-size:.75rem;color:var(--muted);line-height:1.2}
.rm-suite{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:10px 0}
.rm-suite legend{font-weight:700;padding:0 4px}
.rm-suite label{display:flex;gap:8px;font-weight:400;margin:4px 0}.rm-suite input{width:auto}
.rm-octime{margin:10px 0 12px}
.rm-hist{margin:0;padding-left:18px}.rm-hist li{margin:3px 0}
.rm-bilan{position:sticky;top:76px}
.rm-bilan h2{margin:0 0 10px;font-size:1.05rem}
.rm-chiffres{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.rm-chiffres div{background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:6px 8px}
.rm-chiffres div[hidden]{display:none}
.rm-chiffres dt{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.rm-chiffres dd{margin:0;font-weight:700;font-size:1.05rem;white-space:nowrap}
.rm-semaines{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;font-size:.85rem;color:var(--muted)}
.rm-maisons{font-size:.88rem;margin:8px 0}
.rm-alertes{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:.86rem}
.rm-alertes li{border-radius:8px;padding:5px 9px;border:1px solid}
.rm-alertes li.ok{background:var(--ok-soft);color:var(--ok);border-color:#BFE3C3}
.rm-alertes li.warn{background:var(--warn-soft);color:#8A5300;border-color:#F5DDA8}
.rm-alertes li.bad{background:var(--danger-soft);color:var(--danger);border-color:#F1BDBD}
[data-rm-mtt][hidden],[data-rm-hab][hidden],[data-rm-une][hidden]{display:none!important}
@media (max-width:1100px){.rm-cols{grid-template-columns:1fr}.rm-bilan{position:static;order:-1}}
@media (max-width:900px){.rm-jours{grid-template-columns:repeat(2,minmax(0,1fr))}.rm-natures{grid-template-columns:1fr}}
@media (max-width:480px){.rm-jours{grid-template-columns:1fr}}
.fs-trame .fs-amen{display:block;font-size:.6rem;color:var(--violet-dark);font-weight:700}
.fs-tpt{display:inline-block;font-size:.72rem;font-weight:700;color:var(--violet);background:var(--violet-soft);border:1px solid var(--violet-line);border-radius:5px;padding:0 5px}
.ot-mesure-in{display:flex;gap:10px;align-items:center;padding:10px 12px 6px}
.rg-h{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:2px}
.rg-h input{padding:2px 4px;font-size:.72rem;color:var(--muted)}

/* Vues du planning et impression (28/09/2026) : semaine ou mois, par personne ou par poste, écran et papier */
.pv-barre{margin-bottom:12px}
.pv-titre{margin-bottom:8px}
.pv-titre h1{margin:0}
.pv-choix{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.pv-choix select{width:auto;padding:6px 10px}
.pv-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.pv-seg a{padding:6px 12px;font-weight:600;font-size:.9rem;color:var(--muted);text-decoration:none;border-right:1px solid var(--line)}
.pv-seg a:last-child{border-right:0}
.pv-seg a:hover{background:var(--card2);color:var(--ink)}
.pv-seg a.on{background:var(--violet);color:#fff}
.pv-seg a.off{opacity:.4;pointer-events:none}
.pv-seg a:focus-visible{outline:2px solid var(--violet);outline-offset:-2px}
.pv-options{padding:10px 14px;margin:0}
.pv-options summary{cursor:pointer;font-weight:700;color:var(--violet);display:flex;align-items:center;gap:6px}
.pv-options summary .ic{width:16px;height:16px}
.pv-opt-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.pv-opt-form fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0}
.pv-opt-form legend{font-weight:700;padding:0 4px}
.pv-opt-form label{display:flex;gap:8px;align-items:flex-start;font-weight:400;margin:4px 0}
.pv-opt-form input{width:auto;margin-top:4px}
.pv-opt-go{grid-column:1/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pv-entete{display:none;align-items:center;gap:12px;margin:0 0 6px;padding-bottom:6px;border-bottom:2px solid var(--violet)}
.pv-entete .pv-logo{height:30px}
.pv-entete div{display:flex;flex-direction:column}
.pv-entete b{font-size:1.1rem;color:var(--violet)}
.pv-entete span{font-size:.9rem}
.pv-entete small{margin-left:auto;text-align:right;color:var(--muted);font-size:.75rem;max-width:40%}
.pv-bloc{margin-bottom:14px}
.pv-t{border-collapse:collapse;width:100%;background:#fff;font-size:.85rem;table-layout:fixed}
.pv-t caption{text-align:left;font-weight:700;font-size:1rem;padding:6px 2px;color:var(--ink)}
.pv-t caption small{font-weight:400;color:var(--muted);font-size:.8rem}
.pv-t th,.pv-t td{border:1px solid var(--line);padding:3px 4px;vertical-align:top}
.pv-t thead th{background:var(--card2);font-size:.75rem;font-weight:700;text-align:center;color:var(--muted);line-height:1.2}
.pv-t thead th.we,.pv-t td.we{background:#F3EFF5}
.pv-t thead th.auj{color:var(--violet);box-shadow:inset 0 -3px 0 var(--violet)}
.pv-t .pv-nom{width:170px;text-align:left;font-weight:600;background:#fff;font-size:.82rem}
.pv-mois .pv-t .pv-nom{width:130px}
.pv-t .pv-nom small{display:block;font-weight:400;color:var(--muted);font-size:.7rem}
.pv-t .pv-nom a{color:var(--ink);text-decoration:none}.pv-t .pv-nom a:hover{color:var(--violet);text-decoration:underline}
.pv-t tr.pv-ext .pv-nom{font-style:italic}
.pv-c{min-width:0}
.pv-it{display:flex;flex-wrap:wrap;gap:1px 3px;align-items:center;text-decoration:none;color:var(--ink);border-radius:5px;padding:1px 2px;margin-bottom:2px;font-size:.78rem;line-height:1.25;overflow:hidden}
a.pv-it:hover{background:var(--violet-soft)}
.pv-code{display:inline-block;background:var(--c,#888);color:#fff;font-weight:700;font-size:.72rem;border-radius:4px;padding:0 4px;line-height:1.45;white-space:nowrap}
.pv-mz{font-size:.66rem;color:var(--muted);white-space:nowrap}
.pv-hr{display:block;width:100%;font-size:.64rem;color:var(--violet-dark);white-space:nowrap}
.pv-it.s-remplacant,.pv-it.s-renfort{background:var(--yellow-soft)}
.pv-it.hublo{box-shadow:inset 2px 0 0 var(--violet)}
.pv-it.s-a_pourvoir{background:var(--danger-soft);color:var(--danger);font-weight:700}
.pv-it.s-a_pourvoir.opt{background:none;color:var(--muted);font-weight:400;border:1px dashed var(--line)}
.pv-it.s-en_cours{background:var(--green-soft)}
.pv-it.s-absent{text-decoration:line-through;color:var(--danger)}
.pv-it.surn{outline:1px dashed var(--danger)}
.pv-it.hors{opacity:.55}
.pv-abs{display:inline-block;font-size:.7rem;font-weight:700;color:#6B6470;background:#E9E4EC;border-radius:4px;padding:0 4px}
.pv-abs.part{background:none;border:1px dashed #B3ABB8}
.pv-adm{font-weight:700;color:var(--ok);font-size:.78rem}.pv-fer{font-size:.66rem;color:var(--muted)}
.pv-vide{color:var(--danger)}
.pv-h{width:62px;text-align:right;font-variant-numeric:tabular-nums;font-weight:700;font-size:.78rem}
.pv-h small{display:block;font-weight:400;color:var(--muted)}
.pv-trou{text-align:center;font-weight:700;color:var(--muted)}.pv-trou.oui{color:var(--danger);background:var(--danger-soft)}
.pv-postes .pv-nom .pv-code{margin-right:4px}
.pv-mois .pv-it{font-size:.68rem;padding:0 1px}
.pv-mois .pv-code{font-size:.64rem;padding:0 2px}
.pv-mois .pv-t thead th{font-size:.66rem}
.pv-legende{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--ink);margin-top:4px}
.pv-legende i{display:inline-block;width:12px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;border:1px solid var(--line)}
.pv-legende .l-tit{background:#fff}.pv-legende .l-rem{background:var(--yellow-soft)}.pv-legende .l-hub{background:#fff;box-shadow:inset 3px 0 0 var(--violet)}.pv-legende .l-pou{background:var(--danger-soft)}.pv-legende .l-abs{background:#E9E4EC}
/* noir et blanc */
.pv-nb .pv-code{background:#fff!important;color:#000;border:1px solid #000}
.pv-nb .pv-it.s-remplacant,.pv-nb .pv-it.s-renfort{background:none;font-style:italic}
.pv-nb .pv-it.s-a_pourvoir{background:none;color:#000;border:1.5px solid #000;text-transform:uppercase}
.pv-nb .pv-it.hublo{box-shadow:none;text-decoration:underline}
.pv-nb .pv-t thead th.we,.pv-nb .pv-t td.we{background:#F2F2F2}
.pv-nb .pv-trou.oui{background:none;color:#000}
/* page d'impression */
body.impr{background:#fff}
.impr-barre{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 14px;background:var(--violet-soft);border-bottom:1px solid var(--violet-line);position:sticky;top:0;z-index:5}
.impr-page{padding:12px}
.pv-impr .pv-entete{display:flex}
.pv-impr .scroll-x{overflow:visible}
@media (max-width:900px){.pv-opt-form{grid-template-columns:1fr}.pv-t{table-layout:auto;min-width:760px}}
@media print{
  .pv-noprint,.impr-barre,.topbar,.bottomnav,.foot,.octime-banner{display:none!important}
  body,body.impr{background:#fff;font-size:9pt}
  .page,.impr-page{max-width:none;padding:0;margin:0}
  .pv-entete{display:flex}
  .pv .scroll-x{overflow:visible}
  .pv-t{min-width:0!important;font-size:8pt}
  .pv-t thead{display:table-header-group}
  .pv-t tr{break-inside:avoid}
  .pv-saut{break-before:page}
  .pv-bloc{margin-bottom:6mm}
  .pv-t .pv-nom a{color:#000}
  .pv-mois .pv-t{font-size:6.5pt}.pv-mois .pv-t .pv-nom{width:30mm}.pv-mois .pv-code{font-size:6pt}.pv-mois .pv-it{font-size:6pt}.pv-mois .pv-hr{font-size:5.5pt}
  .f-a3.pv-mois .pv-t{font-size:7.5pt}.f-a3.pv-mois .pv-it,.f-a3.pv-mois .pv-code{font-size:7pt}.f-a3.pv-mois .pv-t .pv-nom{width:38mm}
  .pv-legende{font-size:7pt}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.pv-vues{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.pv-vues .pv-seg a{cursor:pointer}
@media print{.pv-vues{display:none!important}}
.pv-opt-form label span small{display:block}
/* Heures en plus (28/09/2026) */
.hp-plus{display:inline-block;font-size:.72rem;font-weight:700;color:#1B6B32;background:var(--ok-soft);border:1px solid #BFE3C3;border-radius:5px;padding:0 4px;white-space:nowrap}
.pv-plus{font-size:.64rem;font-weight:700;color:#1B6B32;white-space:nowrap}
.hp-mois{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.hp-mois div{background:var(--ok-soft);border:1px solid #BFE3C3;border-radius:8px;padding:6px 10px;font-size:.88rem}
.hp-mois b{display:block}.hp-mois span{display:block;color:#1B6B32}
.ot-plus-modes{margin-top:6px}
.ot-plus-modes a{cursor:pointer}
form[data-ot-plus][hidden],p[data-ot-plus][hidden]{display:none}
.pv-nb .pv-plus,.pv-nb .hp-plus{color:#000;background:none;border:0}
[data-ot-plus-plage][hidden],[data-ot-plus-h][hidden]{display:none!important}

/* ---- Plan d'actions de tous les établissements (29/09/2026) ---- */
.etab-pastille{--etab:#6B6470;display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;padding:2px 9px 2px 7px;border-radius:999px;white-space:nowrap;color:var(--etab);background:color-mix(in srgb,var(--etab) 10%,#fff);border:1px solid color-mix(in srgb,var(--etab) 32%,#fff)}
.etab-pastille::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--etab);flex:none}
.q-tete{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px}
.q-tete h1{margin:0}
.q-tete .q-tete-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}
.q-tabs{display:flex;gap:2px;flex-wrap:wrap;border-bottom:2px solid var(--line);margin:8px 0 12px}
.q-tabs a{padding:8px 12px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.q-tabs a:hover{color:var(--ink)}
.q-tabs a.on{color:var(--violet);border-bottom-color:var(--violet)}
.q-perim{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.q-perim > span{color:var(--muted);font-size:.85rem;margin-right:2px}
.q-perim a{text-decoration:none;border-radius:999px;padding:5px 12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:.88rem;font-weight:600}
.q-perim a .etab-pastille{border:0;background:none;padding:0}
.q-perim a.on{border-color:var(--violet);background:var(--violet-soft);box-shadow:inset 0 0 0 1px var(--violet)}
/* Plan d'actions : choix de l'établissement et barre des familles (01/10/2026) */
.q-etab{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.q-etab label{margin:0;color:var(--muted);font-size:.85rem;font-weight:600}
.q-etab select{width:auto;min-width:240px;max-width:100%}
.q-familles{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin:0 0 14px}
.q-familles a{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);text-decoration:none;line-height:1.25;transition:border-color .15s,box-shadow .15s}
.q-familles a b{font-size:.88rem}
.q-familles a span{font-size:.78rem;color:var(--muted)}
.q-familles a .q-fam-retard{color:var(--danger);font-weight:600}
.q-familles a.vide{background:var(--card2)}
.q-familles a.vide b{color:var(--muted)}
.q-familles a:hover,.q-familles a:focus-visible{border-color:var(--violet-line);box-shadow:var(--shadow)}
.q-familles a:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.q-familles a.on{border-color:var(--violet);background:var(--violet-soft);box-shadow:inset 0 0 0 1px var(--violet)}
.q-fam-encart{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px}
.q-fam-encart > div{flex:1 1 260px}
@media (max-width:640px){.q-familles{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 6px;-webkit-overflow-scrolling:touch}.q-familles a{flex:0 0 132px;scroll-snap-align:start}.q-etab select{min-width:0;flex:1}}
@media print{.q-familles,.q-etab{display:none!important}}
.q-kpis .kpi small{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.q-barre{height:8px;background:var(--line);border-radius:4px;overflow:hidden;min-width:80px}
.q-barre i{display:block;height:100%;background:var(--ok);border-radius:4px}
.q-etabs-tbl td{white-space:nowrap}
.q-etabs-tbl th{vertical-align:bottom}
.q-etabs-tbl td:nth-child(7){min-width:120px}
.q-etabs-tbl td.num a{text-decoration:none;font-weight:700;color:var(--ink)}
.q-etabs-tbl td.num a.bad{color:var(--danger)}
.q-etabs-tbl td.num a.warn{color:var(--warn)}
.q-tb{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start}
.q-tb > div{display:flex;flex-direction:column;gap:16px;min-width:0}
.q-tb .card{margin:0}
.q-liste-courte{list-style:none;margin:0;padding:0}
.q-liste-courte li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}
.q-liste-courte li:last-child{border-bottom:0}
.q-liste-courte .q-lc-corps{flex:1;min-width:0}
.q-liste-courte .q-lc-corps a{color:var(--ink);font-weight:600;text-decoration:none}
.q-liste-courte .q-lc-corps a:hover{color:var(--violet);text-decoration:underline}
.q-liste-courte .q-lc-meta{font-size:.84rem;color:var(--muted)}
.q-motif{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:6px;white-space:nowrap}
.q-motif.m1{background:var(--warn-soft);color:#8a5300}.q-motif.m2{background:var(--danger-soft);color:var(--danger)}.q-motif.m3{background:var(--danger-soft);color:var(--danger)}.q-motif.m4{background:var(--info-soft);color:var(--info)}
.q-etapes{display:flex;margin:10px 0 14px;padding:0;counter-reset:qe}
.q-etapes li{flex:1;list-style:none;text-align:center;font-size:.78rem;color:var(--muted);position:relative;padding-top:26px;line-height:1.2}
.q-etapes li::before{counter-increment:qe;content:counter(qe);position:absolute;top:0;left:50%;transform:translateX(-50%);width:22px;height:22px;border-radius:50%;background:#D9D2DC;color:#fff;font-weight:700;line-height:22px;font-size:.75rem;z-index:1}
.q-etapes li::after{content:"";position:absolute;top:10px;left:-50%;width:100%;height:2px;background:#D9D2DC}
.q-etapes li:first-child::after{display:none}
.q-etapes li.fait{color:var(--ok)}.q-etapes li.fait::before{background:var(--ok);content:"✓"}.q-etapes li.fait::after{background:var(--ok)}
.q-etapes li.cour{color:var(--ink);font-weight:700}.q-etapes li.cour::before{background:var(--violet)}
.q-maintenant{border:2px solid var(--violet-line);background:var(--violet-soft);border-radius:var(--radius);padding:14px 16px;margin:0 0 16px}
.q-maintenant h2{margin:0 0 6px;font-size:1.05rem;color:var(--violet-dark)}
.q-maintenant p{margin:0 0 10px}
.q-boutons{display:flex;flex-wrap:wrap;gap:8px}
.q-geste{border:1px solid var(--line);border-radius:10px;background:var(--card);margin:10px 0 0;padding:12px}
.q-geste[hidden]{display:none}
.q-geste h3{margin:0 0 8px;font-size:.98rem}
.q-champ-aide{font-size:.82rem;color:var(--muted);margin:2px 0 0}
.q-bloc-titre{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px}
.q-fiche dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 14px;margin:0}
.q-fiche dt{color:var(--muted);font-size:.88rem}
.q-fiche dd{margin:0}
.q-filles{list-style:none;margin:0;padding:0}
.q-filles li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.q-filles li:last-child{border-bottom:0}
.q-cherche{margin:0 0 6px}
.q-cherche input{width:100%}
.q-filtres input[type=search],.q-cherche input[type=search]{width:100%;font:inherit;padding:10px 12px;border:1px solid #CFC6D3;border-radius:10px;background:#fff;color:var(--ink)}
.q-cherche input[type=search]{padding:7px 10px}
.q-contrib{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:var(--card)}
.q-contrib label{display:flex;gap:8px;align-items:center;padding:4px 0;font-weight:400}
.q-contrib .q-contrib-groupe{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--muted);margin:8px 0 2px}
.q-form-section{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}
.q-form-section > h2{margin:0 0 4px;font-size:1.05rem}
.q-form-section > p.hint{margin:0 0 10px}
.q-seance-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 8px;background:var(--card)}
.q-seance-item .q-si-tete{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.q-seance-item .q-si-tete a{color:var(--ink);font-weight:700;text-decoration:none}
.q-seance-item .q-si-tete a:hover{color:var(--violet);text-decoration:underline}
.q-seance-item .q-si-meta{font-size:.85rem;color:var(--muted);margin:2px 0 6px}
.q-seance-item details{display:inline-block;margin:4px 6px 0 0;vertical-align:top}
.q-seance-item details[open]{display:block}
.q-seance-item summary{cursor:pointer;font-weight:600;color:var(--violet);font-size:.9rem;list-style:none;border:1px solid var(--violet-line);border-radius:8px;padding:4px 10px;background:var(--card)}
.q-seance-item summary::-webkit-details-marker{display:none}
.q-seance-item details[open] summary{background:var(--violet-soft)}
.q-seance-item form{margin-top:8px}
.q-seance-bandeau{position:sticky;top:60px;z-index:5;background:var(--bg);padding:8px 0;margin-bottom:6px}
.q-vide{color:var(--muted);font-style:italic;margin:0}
.q-mes-carte{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 12px;background:var(--card)}
.q-mes-carte.q-retard{border-left:4px solid var(--danger)}
.q-mes-carte h3{margin:4px 0 6px;font-size:1.05rem}
.q-mes-carte h3 a{color:var(--ink);text-decoration:none}
.q-mes-attendu{background:var(--card2);border-radius:8px;padding:8px 10px;margin:8px 0;font-size:.93rem}
.q-mes-carte .q-boutons .btn{flex:1 1 auto;justify-content:center}
.q-reglage{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 12px;background:var(--card)}
.q-compte-ligne td{vertical-align:middle}
@media (max-width:1000px){.q-tb{grid-template-columns:1fr}}
@media (max-width:760px){
  .q-tbl thead{display:none}
  .q-tbl tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .q-tbl td{display:block;border:0;padding:3px 10px}
  .q-tbl td[data-label]::before{content:attr(data-label);display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
  .q-fiche dl{grid-template-columns:1fr}
  .q-fiche dt{margin-top:6px}
  .q-etapes li{font-size:.68rem}
}
@media print{.q-tabs,.q-perim,.q-tete-actions,.q-maintenant,.q-seance-item details{display:none!important}}
.q-seance-autres>summary{cursor:pointer}

/* Attribuer les actions en série (30/09/2026) */
.q-lot.actif{position:sticky;top:60px;z-index:6;box-shadow:var(--shadow);border-color:var(--violet)}
.q-lot label{margin:0 0 2px;font-size:.8rem}
.q-attr-liste{margin-top:6px}
.q-attr-ligne{display:grid;grid-template-columns:28px minmax(0,1.25fr) minmax(0,1.75fr);gap:10px 14px;padding:12px 0;border-top:1px solid var(--line)}
.q-attr-ligne:first-child{border-top:0}
.q-attr-coche{padding-top:3px}.q-attr-coche input{width:20px;height:20px}
.q-attr-ref{font-weight:700;margin-right:4px}
.q-attr-pourquoi{margin-top:4px}.q-attr-pourquoi summary{cursor:pointer;font-size:.88rem;color:var(--violet)}.q-attr-pourquoi p{margin:4px 0;font-size:.9rem}
.q-attr-champs{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.15fr) minmax(0,.8fr);gap:8px;align-items:start}
.q-attr-champs label{margin:0 0 2px;font-size:.8rem}
.q-attr-ok{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.q-attr-etat{flex-basis:100%}
.q-raccourcis{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.q-raccourcis .btn{padding:3px 9px;font-size:.78rem;min-height:30px}
.q-attr-faite{border-left:4px solid var(--ok);padding-left:8px}.q-attr-faite .q-attr-champs select,.q-attr-faite .q-attr-champs input{opacity:.75}.q-attr-faite .q-attr-msg.ok::before{content:"✓ "}
.q-attr-msg.ok{color:var(--ok)}.q-attr-msg.err{color:var(--danger);font-weight:700}
.q-suivi{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.78rem;border:1px solid var(--line);background:var(--card)}
.q-suivi-sans_compte{color:#8A3B00;background:#FFF1D6;border-color:#F0C98B}.q-suivi-invite{color:#6B5000;background:#FFF9DB;border-color:#EFDD8F}
.q-suivi-non_vue{color:#4A4550}.q-suivi-vue{color:#236B28;background:var(--ok-soft);border-color:#BFE3C3}
.chip.q-warn{background:var(--warn-soft);border-color:#F5DDA8;color:#8A5300}
button.envoi{opacity:.6;cursor:progress}
@media (max-width:760px){.q-attr-ligne{grid-template-columns:28px minmax(0,1fr)}.q-attr-champs{grid-column:1/-1;grid-template-columns:1fr}.q-lot{position:static}}

/* Évaluation HAS (30/09/2026) */
.q-has-bandeau{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:10px 18px;align-items:start}
.q-has-visite b{display:block;font-size:1.8rem;color:var(--violet);line-height:1.1}.q-has-visite span{font-size:.88rem;color:var(--muted)}
.q-has-methode{grid-column:1/-1}.q-has-methode summary{cursor:pointer;color:var(--violet);font-weight:600}.q-has-methode li{margin:4px 0}
.q-has-kpis{margin-bottom:6px}.q-has-kpis a.kpi{text-decoration:none;color:var(--ink)}
.q-has-obj{font-size:.92rem;color:var(--muted);margin:14px 0 4px;font-weight:600}
.q-has-ligne{display:grid;grid-template-columns:62px minmax(0,1fr) 190px;gap:8px 12px;padding:9px 0;border-top:1px solid var(--line);align-items:start}
.q-has-ligne.imp{background:linear-gradient(90deg,var(--danger-soft) 0,transparent 6px)}
.q-has-code a{font-weight:700;text-decoration:none;color:var(--ink)}
.q-has-titre{color:var(--ink);text-decoration:none}.q-has-titre:hover{text-decoration:underline}
.q-has-cot select{padding:6px 8px;font-size:.88rem}
.q-cot{display:inline-block;min-width:34px;text-align:center;border-radius:8px;font-weight:700;border:1px solid var(--line);padding:2px 6px;text-decoration:none;color:var(--ink);background:var(--card)}
.q-cot-1{background:#FBE3E3;border-color:#F1BDBD;color:#8E1B1B}.q-cot-2{background:#FFE9D6;border-color:#F3C9A2;color:#8A3B00}
.q-cot-3{background:#FFF7D6;border-color:#EEDB8B;color:#6B5000}.q-cot-4{background:var(--ok-soft);border-color:#BFE3C3;color:#236B28}.q-cot-NC{background:var(--bg);color:var(--muted)}
select.q-cot{text-align:left;font-weight:600}
.q-cot-etat{display:block;font-size:.78rem;margin-top:2px}.q-cot-etat.ok{color:var(--ok)}.q-cot-etat.bad{color:var(--danger)}
.chip.q-pret{background:var(--ok-soft);border-color:#BFE3C3;color:#236B28;font-weight:700}
.q-has-2col{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.q-cot-choix{border:1px solid var(--line);border-radius:10px;padding:8px 12px}.q-cot-choix legend{font-weight:700;padding:0 4px}.q-cot-choix label{margin:4px 0}
.q-questions{padding-left:20px;margin:0}.q-questions li{margin:0 0 8px}.q-questions li.ok span{color:var(--ok);font-weight:700}.q-questions li.ko span{color:var(--danger);font-weight:700}
.q-has-grille td,.q-has-grille th{white-space:nowrap}.q-has-grille td:first-child{white-space:normal;min-width:280px}
.q-bad{color:var(--danger)}.q-ok{color:var(--ok)}
@media (max-width:760px){.q-has-bandeau{grid-template-columns:1fr}.q-has-ligne{grid-template-columns:52px minmax(0,1fr)}.q-has-cot{grid-column:1/-1}.q-has-2col{grid-template-columns:1fr}}

.q-profil{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:4px 0}.q-profil legend{font-weight:700;padding:0 4px}
.q-has-kpis .kpi span,.q-has-kpis .kpi small{display:block}.q-has-kpis .kpi small{color:var(--muted);font-size:.78rem;margin-top:2px}
.q-kpis .kpi span,.q-kpis .kpi small{display:block}.q-kpis .kpi small{color:var(--muted);font-size:.78rem;margin-top:2px;line-height:1.3}

.q-lien-geste{display:inline-block;margin-top:6px;color:var(--violet);font-weight:600;font-size:.88rem}
.q-mes-quand{margin:4px 0 2px;font-size:1rem}
.q-comptes-synthese{margin:0 0 8px}
.q-lot-comptes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}
.q-lot-comptes select{width:auto}
/* Téléphone (30/09/2026) : onglets et choix de l'établissement sur une ligne qui défile, au lieu d'occuper la moitié de l'écran */
@media (max-width:640px){
  .q-tabs,.q-perim{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .q-tabs::-webkit-scrollbar,.q-perim::-webkit-scrollbar{display:none}
  .q-tabs a{padding:8px 10px}
  .q-perim a{flex:0 0 auto}
}
/* Revue du 30/09/2026 : texte vert foncé (contraste AA), tablette, ancres sous la barre du haut, page Comptes sur téléphone, tableaux larges */
@media (max-width:1010px) and (min-width:761px){.q-attr-champs{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.q-attr-champs > div:first-child{grid-column:1/-1}}
.q-has-ligne,.q-maintenant,.q-attr-ligne,.q-compte-ligne{scroll-margin-top:80px}
.q-lot-comptes select{max-width:100%}
.q-lot-comptes .q-tout{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap}
@media (max-width:760px){.q-lot-comptes{position:sticky;top:60px;z-index:5;background:var(--card);padding:8px;border:1px solid var(--line);border-radius:10px}.q-lot-comptes select{width:100%}}
.scroll-x.q-defile{position:relative}
@media (max-width:760px){.q-defile-hint{display:block;font-size:.8rem;color:var(--muted);margin:2px 0 4px}.q-etabs-tbl td:first-child,.q-etabs-tbl th:first-child{position:sticky;left:0;background:var(--card);z-index:1}}
@media (min-width:761px){.q-defile-hint{display:none}}
@media (max-width:760px){.q-etabs-tbl td:first-child .etab-pastille{display:inline-block;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}}
.q-alerte{background:var(--warn-soft,#FFF4E0);border:1px solid #F2C77B;border-radius:8px;padding:8px 10px;margin:0 0 10px}
.chip[hidden]{display:none}

/* Communication avec les familles et les salariés, réclamations (03/10/2026) */
.com-proches{margin:4px 0 0;padding-left:18px;font-size:.88rem}
.com-proches li{margin:2px 0}
.com-gestes{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.com-gestes form{flex-wrap:nowrap}
.com-ranger .field-inline>div{min-width:160px}
.com-publics{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.com-groupe{border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px 10px;margin:0;background:var(--card2)}
.com-groupe legend{font-weight:700;color:var(--violet-dark);padding:0 6px}
.com-public{display:flex;align-items:baseline;gap:8px;font-weight:400;margin:5px 0;cursor:pointer}
.com-public input{width:auto;margin:0}
.com-public span{flex:1}
.com-public b{font-variant-numeric:tabular-nums;color:var(--violet-dark);min-width:2.5em;text-align:right}
.com-public.vide{color:var(--muted)}
.com-public.vide b{color:var(--muted);font-weight:400}
.com-pieces{list-style:none;padding:0;margin:4px 0 8px}
.com-pieces li{margin:3px 0}
.com-entete h2 .badge{vertical-align:3px}
.com-meta{font-size:.88rem;color:var(--muted);margin:2px 0}
.com-meta .ic{width:15px;height:15px;vertical-align:-3px}
.com-envoi{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.com-apercu{width:100%;height:560px;border:1px solid var(--line);border-radius:10px;background:#f5f3f6}
.com-texte{white-space:pre-wrap;font-family:inherit;font-size:.88rem;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:10px;max-height:320px;overflow:auto}
.com-dest-liste{max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin:8px 0}
.com-dest-liste .tbl{margin:0}
.com-dest-liste .tbl th{position:sticky;top:0;background:var(--card);z-index:1}
.com-dest-liste input[type=checkbox]{width:auto}
.com-liste-courte{margin:6px 0 0 18px;padding:0;font-size:.9rem}
.com-liste-courte li{margin:3px 0}
.com-envoyer{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:12px;padding:12px;border:2px solid var(--violet-line);border-radius:12px;background:var(--violet-soft)}
.com-progres{margin-bottom:12px}
.com-barre{height:12px;background:var(--bg);border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:6px 0}
.com-barre i{display:block;height:100%;background:var(--violet);transition:width .4s}
.com-apercu-import{border-color:var(--violet-line)}
.com-maison{border-top:1px solid var(--line);padding:8px 0}
.com-maison summary{cursor:pointer}
.com-source{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:8px}
.com-etapes{margin:0 0 10px 20px;padding:0}
.com-etapes li{margin:4px 0;color:var(--muted)}
.com-etapes li.fait{color:var(--ok)}
.com-geste{border-top:1px solid var(--line);padding:8px 0}
.com-geste summary{cursor:pointer}
.com-geste textarea{margin:6px 0}
@media (max-width:980px){.com-envoi{grid-template-columns:1fr}.com-gestes{align-items:flex-start}.com-apercu{height:440px}}
/* Ajouter une personne au planning d'une maison (27/10/2026) : discret, visible au survol de la case */
.wk .cell .slot-ajout{font-size:.75rem;color:var(--muted);text-align:center;text-decoration:none;border:1px dashed var(--line);border-radius:8px;padding:2px 4px;opacity:.55}
.wk .cell:hover .slot-ajout,.wk .cell .slot-ajout:focus{opacity:1;color:var(--violet);border-color:var(--violet)}
@media print{.wk .cell .slot-ajout{display:none}}
