/* WorkForce CI — interface (mobile d’abord) */
:root{--bg:#f5f4f0;--surface:#fff;--ink:#15181d;--ink-2:#353b45;--muted:#5d6471;--line:#e4e2db;--line-2:#d6d3ca;--r:12px;--r-sm:8px;
--green:#0d6e47;--green-bg:#e4f3eb;--amber:#8a5208;--amber-bg:#fcefd6;--red:#b42318;--red-bg:#fde7e4;--blue:#1b5aa0;--blue-bg:#e4eefa;--grey:#4b5563;--grey-bg:#eef0f2;--slate:#2f3d52;--slate-bg:#e6ebf2;
--shadow:0 1px 2px rgba(20,24,29,.05),0 4px 16px rgba(20,24,29,.05);--font:Manrope,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body.wfc{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--brand-text)}a:hover{text-decoration-thickness:2px}
h1,h2,h3{line-height:1.25;margin:0 0 .5rem;letter-spacing:-.01em}h2{font-size:1.08rem;font-weight:700}h3{font-size:1rem}
p{margin:0 0 .75rem}
img{max-width:100%}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;border-radius:6px;z-index:100}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.ico{width:18px;height:18px;flex:none;vertical-align:-3px}
.muted{color:var(--muted)}.small{font-size:.86rem}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}
.mono{font-family:var(--mono);font-size:.9em}.num{text-align:right;font-variant-numeric:tabular-nums}
.warn-t{color:var(--amber)}.err-t,.danger-t{color:var(--red)}.pre{white-space:pre-wrap}
.hint{display:block;color:var(--muted);font-size:.84rem;margin-top:.35rem}
.hp{position:absolute;left:-5000px}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:42px;padding:.55rem 1rem;border-radius:10px;border:1px solid transparent;font:600 .93rem/1.2 var(--font);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s}
.btn.primary{background:var(--brand);color:var(--brand-ink)}.btn.primary:hover{box-shadow:inset 0 0 0 99px rgba(0,0,0,.08)}
.btn.ghost{background:var(--surface);border-color:var(--line-2);color:var(--ink)}.btn.ghost:hover{border-color:var(--ink-2)}
.btn.danger{background:var(--red);color:#fff}
.btn.sm{min-height:34px;padding:.35rem .7rem;font-size:.86rem}.btn.lg{min-height:50px;padding:.75rem 1.4rem;font-size:1rem}
.btn.block{width:100%}.btn[disabled]{opacity:.55;cursor:not-allowed}
.linkbtn{background:none;border:0;padding:0;color:var(--brand-text);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;font-size:1.3rem}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.actions.center{justify-content:center}
.actions.sticky{position:sticky;bottom:0;background:linear-gradient(transparent,var(--surface) 30%);padding:1rem 0 .25rem;justify-content:flex-end}
form.inline{display:inline}

/* formulaires */
.form{display:grid;gap:1rem}.form.compact{gap:.7rem;margin-top:.75rem}
fieldset{border:0;padding:0;margin:0 0 .5rem;min-width:0}legend{font-weight:700;font-size:1rem;margin-bottom:.75rem;padding:0}
.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.field.grow{flex:1}
label{font-weight:600;font-size:.88rem;color:var(--ink-2)}
input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:.6rem .7rem;min-height:42px;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:3px solid color-mix(in srgb,var(--brand) 25%,transparent);outline-offset:0}
input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--brand)}
input[type=color]{padding:2px;width:52px;flex:none}
input[type=file]{padding:.45rem;background:var(--bg)}
.check{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.92rem;color:var(--ink)}
.req{color:var(--red)}
.grid2,.grid3{display:grid;gap:1rem;grid-template-columns:1fr}
.gap{gap:1rem}
.color-in,.photo-in{display:flex;gap:.6rem;align-items:center}
.logo-prev{height:48px;max-width:120px;object-fit:contain;background:var(--bg);border-radius:6px;padding:4px}
.days{display:flex;flex-wrap:wrap;gap:.4rem 1rem}.days legend{width:100%;font-size:.88rem;margin-bottom:.3rem}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.copy{margin-top:.4rem}

/* cartes */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem;box-shadow:var(--shadow);margin-bottom:1rem;min-width:0}
.card.flush{padding:0;overflow:hidden}.card.pad,.pad{padding:1rem}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.8rem;flex-wrap:wrap}.card-h h2{margin:0}
.card.flush>.card-h{padding:1rem 1rem 0}
.section-h{display:flex;justify-content:space-between;align-items:center;margin:1.2rem 0 .7rem}
.stack>.card:last-child{margin-bottom:0}
.note{display:flex;gap:.65rem;align-items:flex-start;padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem;border:1px solid}
.note .ico{margin-top:2px}.note.ok{background:var(--green-bg);color:var(--green);border-color:#bfe3cf}.note.err{background:var(--red-bg);color:var(--red);border-color:#f6c6bf}
.note.warn{background:var(--amber-bg);color:var(--amber);border-color:#f2d7a4}.note.info{background:var(--blue-bg);color:var(--blue);border-color:#c5d9f1}
.note.slim{padding:.55rem .8rem;font-size:.9rem}.note.big{font-size:1rem}.note div{min-width:0}
.pill{display:inline-flex;align-items:center;padding:.12rem .55rem;border-radius:99px;font-size:.78rem;font-weight:700;white-space:nowrap}
.pill.green{background:var(--green-bg);color:var(--green)}.pill.amber{background:var(--amber-bg);color:var(--amber)}.pill.red{background:var(--red-bg);color:var(--red)}
.pill.blue{background:var(--blue-bg);color:var(--blue)}.pill.grey{background:var(--grey-bg);color:var(--grey)}.pill.slate{background:var(--slate-bg);color:var(--slate)}
.chip{display:inline-block;padding:.1rem .5rem;border-radius:6px;background:var(--grey-bg)}
.empty{text-align:center;padding:2.5rem 1rem;background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r);margin-bottom:1rem}
.empty-ico{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--brand-soft);color:var(--brand-text);margin-bottom:.6rem}
.empty p{color:var(--muted);max-width:44ch;margin:0 auto 1rem}
.state-card{max-width:520px;margin:2rem auto;text-align:center;padding:2rem}
.state-ico{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;margin-bottom:.8rem}.state-ico .ico{width:26px;height:26px}
.state-ico.amber{background:var(--amber-bg);color:var(--amber)}.state-ico.red{background:var(--red-bg);color:var(--red)}

/* tableaux */
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;padding:.65rem .8rem;border-bottom:1px solid var(--line);background:#fbfaf7}
.table td{padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fcfbf8}
.table .w1{width:1%}.row-bad{background:var(--red-bg)!important}.row-warn{background:#fffaf0}.row-off td{color:var(--muted);text-decoration:line-through}.row-off td:last-child{text-decoration:none}
.row-sub td{background:#fafaf7;padding-top:0}
.who{display:flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none}.who strong{display:block}.who small{color:var(--muted);display:block}
.av{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none;background:var(--brand-soft)}
.av-i{display:inline-grid;place-items:center;font-weight:800;font-size:.8rem;color:var(--brand-text)}
.av.lg{width:64px;height:64px;font-size:1.2rem}.av.xl{width:84px;height:84px;font-size:1.6rem;border-radius:20px}
.pager{display:flex;justify-content:center;align-items:center;gap:1rem;margin:1rem 0;color:var(--muted);font-size:.9rem}
.audit-mini{margin:0;padding-left:1.1rem;font-size:.85rem;color:var(--ink-2)}
.details{max-width:38ch;overflow:hidden;text-overflow:ellipsis}

/* listes */
.feed{list-style:none;margin:0;padding:0}.feed li{display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line)}.feed li:last-child{border-bottom:0}
.feed a{font-weight:600;text-decoration:none;color:var(--ink)}
.dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;margin:0 0 1rem}.dl dt{color:var(--muted);font-size:.88rem}.dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.edit-list{list-style:none;margin:0 0 .8rem;padding:0}.edit-list li{border-bottom:1px solid var(--line);padding:.5rem 0}
.edit-list summary{display:flex;gap:.5rem;align-items:baseline;cursor:pointer;list-style:none}.edit-list summary span{margin-left:auto}
.add-row{display:flex;gap:.5rem;align-items:flex-end}
details>summary{cursor:pointer;font-weight:600}details>summary::-webkit-details-marker{display:none}
.row-menu{display:inline-block;position:relative;text-align:left}.row-menu>summary{list-style:none}
.row-menu .pop{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:290px;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 12px 32px rgba(0,0,0,.14);padding:.9rem}
.row-menu .pop.wide{width:min(560px,86vw)}
.danger-zone{margin-top:1rem;border-top:1px solid var(--line);padding-top:.8rem}
.inline-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;border-top:1px solid var(--line);padding-top:.8rem}.inline-form select{width:auto}
.plan-row{display:grid;grid-template-columns:1fr;gap:.5rem;border-bottom:1px solid var(--line);padding-bottom:.8rem}

/* barre d’outils, filtres */
.toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end}
.filters .field{min-width:140px;flex:1 1 140px}.filters .field.grow{flex:3 1 220px}
.chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.3rem;margin-bottom:1rem}
.chip-f{flex:none;padding:.4rem .75rem;border-radius:99px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);text-decoration:none;font-size:.88rem}
.chip-f b{margin-left:.2rem}.chip-f.on{background:var(--ink);border-color:var(--ink);color:#fff}
.daynav{display:flex;gap:.4rem;align-items:center}.daynav input{width:auto}
.tabs{display:flex;gap:.25rem;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:1rem}
.tabs a{flex:none;padding:.65rem .9rem;color:var(--muted);text-decoration:none;font-weight:600;border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--ink);border-color:var(--brand)}
.report-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:center;font-size:.88rem;color:var(--ink-2);margin-bottom:1rem}

/* indicateurs */
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-bottom:1rem}
.kpi{display:flex;flex-direction:column;gap:.15rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.85rem 1rem;text-decoration:none;color:var(--ink);border-left:4px solid var(--line-2)}
.kpi span{font-size:.82rem;color:var(--muted);font-weight:600}.kpi strong{font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.kpi.good{border-left-color:var(--green)}.kpi.warn{border-left-color:#d68a14}.kpi.bad{border-left-color:var(--red)}
a.kpi:hover{border-color:var(--line-2)}
.progress{height:8px;background:var(--grey-bg);border-radius:99px;overflow:hidden;margin:.4rem 0 1rem}.progress span{display:block;height:100%;background:var(--brand)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.steps li{display:flex;gap:.75rem;align-items:flex-start}.steps small{display:block;color:var(--muted)}
.steps a{font-weight:700;color:var(--ink)}.steps li.done a{color:var(--muted);text-decoration:line-through}
.step-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--line-2);font-weight:800;font-size:.85rem;flex:none}
.steps li.done .step-n{background:var(--green);border-color:var(--green);color:#fff}

/* profil, badge */
.prof-head{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1.2rem}.prof-head h2{font-size:1.35rem;margin:0}.prof-head p{margin:.15rem 0}.prof-head>.btn{margin-left:auto}
.grid-side{display:grid;gap:1rem;grid-template-columns:1fr}
.badge-panel .idcard{margin:0 auto 1rem}
.btn-grid{display:grid;gap:.5rem;grid-template-columns:1fr}
.idcard{width:216px;aspect-ratio:54/85.6;background:#fff;border:1px solid #d5d8de;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;align-items:center;box-shadow:0 10px 30px rgba(20,24,29,.12);font-family:var(--font);position:relative}
.idcard-band{width:100%;height:88px;background:var(--brand);color:var(--brand-ink);display:flex;align-items:flex-start;gap:8px;padding:12px 14px;font-size:.78rem;line-height:1.25}
.idcard-logo{background:#fff;border-radius:7px;width:46px;height:46px;display:grid;place-items:center;flex:none;padding:4px}.idcard-logo img{max-width:100%;max-height:100%;object-fit:contain}
.idcard-photo{margin-top:-32px;padding:4px;background:#fff;border-radius:16px}.idcard-photo .av{width:92px;height:92px;border-radius:13px;font-size:1.8rem}
.idcard-name{font-weight:800;font-size:.88rem;margin-top:6px;text-align:center;padding:0 10px;line-height:1.2}
.idcard-job{font-size:.72rem;color:#4b5563;text-align:center;padding:0 10px}
.idcard-mat{font-size:.68rem;font-weight:700;background:#f3f4f6;border-radius:99px;padding:2px 10px;margin-top:4px}
.idcard-qr{margin-top:6px}.idcard-qr svg{width:84px;height:84px;display:block}.idcard-noqr{display:block;font-size:.72rem;color:var(--red);padding:30px 8px;text-align:center}
.idcard-site{font-size:.62rem;color:#6b7280;margin-top:2px}
.pdf-frame{width:100%;height:70vh;border:1px solid var(--line);border-radius:var(--r-sm);background:#525659}
.prose h2{margin-top:1.2rem}.prose p{color:var(--ink-2)}

/* coque applicative */
.shell{min-height:100vh}
.side{position:fixed;inset:0 auto 0 0;width:min(84vw,280px);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:50;transform:translateX(-102%);transition:transform .2s ease;padding-bottom:env(safe-area-inset-bottom)}
body.nav-open .side{transform:none}
.scrim{position:fixed;inset:0;background:rgba(15,18,22,.4);z-index:40;opacity:0;pointer-events:none;transition:opacity .2s}body.nav-open .scrim{opacity:1;pointer-events:auto}
.side-head{display:flex;gap:.7rem;align-items:center;padding:1rem;border-bottom:1px solid var(--line)}
.side-logo{width:40px;height:40px;object-fit:contain;border-radius:8px;background:var(--bg);padding:3px}
.side-mono{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--brand);color:var(--brand-ink);font-weight:800}
.side-co{min-width:0;flex:1}.side-co strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-co span{font-size:.8rem;color:var(--muted)}
.side-close{width:34px;height:34px}
.side-nav{flex:1;overflow-y:auto;padding:.7rem .6rem;display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;gap:.7rem;align-items:center;padding:.6rem .7rem;border-radius:9px;color:var(--ink-2);text-decoration:none;font-weight:600;font-size:.93rem}
.side-nav a:hover{background:var(--bg)}.side-nav a.on{background:var(--brand-soft);color:var(--brand-text)}
.side-foot{border-top:1px solid var(--line);padding:.8rem;display:grid;gap:.6rem}
.me{display:flex;gap:.6rem;align-items:center;min-width:0}.me-av{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--grey-bg);font-weight:800;flex:none}
.me-n{min-width:0;font-weight:600;font-size:.9rem}.me-n small{display:block;color:var(--muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.switch select{min-height:36px;padding:.3rem .5rem;font-size:.88rem}
.main{min-width:0;padding-bottom:calc(72px + env(safe-area-inset-bottom))}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem;background:rgba(245,244,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);flex-wrap:wrap}
.top-title{font-size:1.1rem;margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-search{display:flex;align-items:center;gap:.4rem;background:var(--surface);border:1px solid var(--line-2);border-radius:10px;padding:0 .6rem;order:3;width:100%}
.top-search input{border:0;min-height:40px;padding:.4rem 0;background:transparent}.top-search input:focus{outline:0}.top-search:focus-within{outline:3px solid color-mix(in srgb,var(--brand) 30%,transparent)}
.content{padding:1rem;max-width:1240px;margin:0 auto}
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:35;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom))}
.bnav a,.bnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font:600 .7rem var(--font);color:var(--muted);text-decoration:none;background:none;border:0;padding:.3rem 0;cursor:pointer}
.bnav a.on{color:var(--brand-text)}.bnav .ico{width:22px;height:22px}
.show-sm{display:block}

/* pages nues : authentification, accueil */
.bare-main{min-height:100vh}
.auth-wrap{max-width:480px;margin:0 auto;padding:2rem 1rem 3rem}
.auth-card{padding:1.6rem}.auth-card h1{font-size:1.4rem}
.auth-legal{text-align:center;color:var(--muted);font-size:.84rem;margin-top:1rem}
.brandmark{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.1rem;color:var(--ink);text-decoration:none;margin-bottom:1.2rem}
.bm-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--brand);color:var(--brand-ink)}
.wrap-wide{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}
.land{max-width:1120px;margin:0 auto;padding:1rem}
.land-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.5rem 0 1rem}.land-top .brandmark{margin:0}.land-top nav{display:flex;gap:.5rem}
.land-hero{display:grid;gap:2rem;align-items:center;padding:1.5rem 0 2.5rem}
.kicker{color:var(--brand-text);font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}
.land-hero h1{font-size:clamp(2rem,6vw,3.3rem);letter-spacing:-.03em;line-height:1.05;margin-bottom:1rem;max-width:16ch}
.lead{font-size:1.1rem;color:var(--ink-2);max-width:52ch}
.land-cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.land-visual{display:flex;flex-direction:column;align-items:center;gap:.5rem}.land-visual .idcard{transform:rotate(-3deg)}
.demo-note{font-size:.78rem;color:var(--muted)}
.land-feats{display:grid;gap:1rem;padding-bottom:2rem}
.land-feats article{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem}
.land-feats .ico{width:26px;height:26px;color:var(--brand-text);margin-bottom:.4rem}.land-feats p{color:var(--ink-2);margin:0}
.land-foot{border-top:1px solid var(--line);padding:1rem 0;font-size:.88rem}

/* borne */
body.kiosk-page{background:#0f1216;color:#f3f4f6}
.kiosk{min-height:100vh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.k-top{display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid #222831;flex-wrap:wrap}
.k-brand{display:flex;gap:.7rem;align-items:center;flex:1;min-width:0}.k-brand img{height:42px;max-width:90px;object-fit:contain;background:#fff;border-radius:8px;padding:3px}
.k-brand strong{display:block;font-size:1.05rem}.k-brand span{font-size:.82rem;color:#9aa3af}
.k-clock{font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.k-net{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:#c5cbd3;background:#1a1f26;border-radius:99px;padding:.3rem .7rem}
.k-net .dot{width:9px;height:9px;border-radius:50%;background:#6b7280}.k-net.ok .dot{background:#22c55e}.k-net.bad .dot{background:#ef4444}.k-net.bad{color:#fecaca}
.k-body{flex:1;display:grid;gap:1rem;padding:1rem;grid-template-columns:1fr}
.k-cam{position:relative;background:#000;border-radius:18px;overflow:hidden;min-height:300px;display:flex;align-items:center;justify-content:center}
.k-reader{width:100%}.k-reader video{width:100%!important;height:auto!important;display:block;object-fit:cover}
.k-cam-off{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;padding:1.5rem;background:#11151a}
.k-cam-off[hidden]{display:none}.k-cam-off .muted{color:#9aa3af}
.k-cam-tools{position:absolute;right:10px;bottom:10px}
.k-big{width:64px;height:64px;color:#9aa3af;stroke-width:1.4}
.k-result{display:flex}
.k-card{flex:1;border-radius:18px;padding:1.6rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.4rem;background:#1a1f26;min-height:260px;transition:background .2s}
.k-card h2{font-size:clamp(1.4rem,4vw,2.1rem);margin:0}.k-card p{margin:0;font-size:1.05rem;color:inherit;opacity:.9}
.k-card.ok-in{background:#0f5132;color:#ecfdf5}.k-card.ok-out{background:#1e3a8a;color:#eff6ff}
.k-card.err{background:#7f1d1d;color:#fef2f2}.k-card.warn{background:#78350f;color:#fffbeb}.k-card.checking{background:#262c35}
.k-glyph{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:rgba(255,255,255,.14);font-size:2.6rem;font-weight:800;margin-bottom:.4rem}
.k-photo{width:120px;height:120px;border-radius:24px;object-fit:cover;border:4px solid rgba(255,255,255,.85);margin-bottom:.5rem;background:#fff}
.k-ini{display:grid;place-items:center;width:120px;height:120px;border-radius:24px;background:rgba(255,255,255,.18);font-size:2.4rem;font-weight:800;margin-bottom:.5rem}
.k-emp{font-size:1.25rem;font-weight:800}.k-sub{font-size:.95rem;opacity:.85}
.k-spin{width:56px;height:56px;border-radius:50%;border:5px solid rgba(255,255,255,.2);border-top-color:#fff;animation:kspin .8s linear infinite;margin-bottom:.6rem}
@keyframes kspin{to{transform:rotate(360deg)}}
.k-wedge{display:flex;gap:.5rem;align-items:center;padding:0 1rem 1rem;flex-wrap:wrap}.k-wedge label{width:100%;color:#9aa3af;font-weight:500;font-size:.8rem}
.k-wedge input{flex:1;background:#1a1f26;border-color:#2b323c;color:#f3f4f6}
.k-wedge .btn.ghost,.k-foot .btn.ghost{background:#1a1f26;border-color:#2b323c;color:#f3f4f6}
.k-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem 1rem;flex-wrap:wrap;color:#9aa3af}.k-foot summary{font-size:.85rem;color:#9aa3af}.k-foot .muted{color:#9aa3af}
#reader__dashboard_section_csr button,#reader__dashboard button{font:inherit}
#reader img[alt='Info icon'],#reader__header_message{display:none!important}

@media (min-width:640px){
  .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .btn-grid{grid-template-columns:1fr 1fr}.btn-grid .btn:first-child{grid-column:1/-1}
  .toolbar{flex-direction:row;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}
  .land-feats{grid-template-columns:repeat(3,1fr)}
  .plan-row{grid-template-columns:2fr 1fr 1fr auto auto;align-items:end}
  .show-sm,.who small.show-sm{display:none}
}
@media (max-width:639px){.hide-sm{display:none}}
@media (max-width:899px){.hide-md{display:none}}
@media (min-width:900px){
  .land-hero{grid-template-columns:1.3fr 1fr}
  .grid-side{grid-template-columns:300px 1fr;align-items:start}
  .kpis{grid-template-columns:repeat(6,1fr)}
  .k-body{grid-template-columns:1.1fr 1fr}
}
@media (min-width:1024px){
  .side{transform:none;width:252px}.side-close,.burger,.scrim{display:none}
  .main{margin-left:252px;padding-bottom:2rem}.bnav{display:none}
  .top{padding:.8rem 1.6rem;flex-wrap:nowrap}.top-search{order:0;width:340px}
  .content{padding:1.4rem 1.6rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.side,.top,.bnav,.actions,.scrim{display:none!important}.main{margin:0}.card{box-shadow:none}}
/* v2 : congés, calendrier, documents */
.tabs .count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--red);color:#fff;font-size:.72rem;margin-left:.25rem}
.section-t{font-size:1.05rem;margin:1.2rem 0 .7rem}
.kpis.k3{grid-template-columns:1fr}.kpi small{font-size:.78rem;font-weight:500}
.num-in{width:90px;min-height:36px;padding:.3rem .5rem;text-align:right}
.month{min-width:150px;text-align:center;font-size:1.05rem}
.legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;margin-bottom:.6rem;color:var(--muted)}
.lg{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:-.6rem}
.lg.ok,.cal td.ok{background:var(--brand)}.lg.pend,.cal td.pend{background:repeating-linear-gradient(45deg,#f2b84b 0 4px,#fbe3b3 4px 8px)}
.lg.hol,.cal .hol{background:var(--blue-bg)}.lg.we,.cal .we{background:#f0eee8}
.cal{border-collapse:collapse;font-size:.78rem;width:100%}
.cal th,.cal td{border:1px solid var(--line);text-align:center;padding:0;min-width:24px;height:30px}
.cal thead th{font-weight:700;color:var(--ink-2);padding:2px 0;background:#fbfaf7}.cal thead th span{display:block;font-weight:500;color:var(--muted);font-size:.68rem}
.cal .cal-name{text-align:left;padding:0 .6rem;white-space:nowrap;position:sticky;left:0;background:var(--surface);z-index:1;min-width:130px}
.cal .cal-name a{color:var(--ink);text-decoration:none;font-weight:600}
.docs{list-style:none;margin:0 0 .6rem;padding:0}
.docs li{display:flex;gap:.7rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line)}.docs li:last-child{border-bottom:0}
.doc-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--brand-soft);color:var(--brand-text);flex:none}
.doc-main{flex:1;min-width:0}.doc-main a{color:var(--ink);text-decoration:none}.doc-main small{display:block;overflow-wrap:anywhere}
.doc-side{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.doc-side form{display:inline}
@media (min-width:640px){.kpis.k3{grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.grid-side.wide-left{grid-template-columns:380px 1fr}}