@font-face{font-family:Onest;src:url(/commun/fonts/onest.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:"Martian Mono";src:url(/commun/fonts/martian.woff2) format('woff2');font-weight:100 800;font-display:swap}
@font-face{font-family:Archivo;src:url(/commun/fonts/archivo.woff2) format('woff2');font-weight:100 900;font-display:swap}

:root{
  --navy:#0B2540;--navy2:#13365A;--brand:#0168A7;--brand-d:#014B78;--brand-t:#E6F1F8;
  --bg:#F4F6F9;--surf:#fff;--line:#DFE5ED;--line2:#EDF0F5;--ink:#14202E;--mut:#566577;
  --ok:#1F8A5B;--ok-t:#DCF2E6;--ok-i:#0F5E3B;
  --wa:#C98300;--wa-t:#FCEBC2;--wa-i:#6F4700;
  --un:#C93636;--un-t:#F8D6D6;--un-i:#9B1C1C;
  --ui:Onest,system-ui,sans-serif;--mono:"Martian Mono",ui-monospace,monospace;
  --lw:150px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.45 var(--ui);min-height:100vh}
h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--brand)}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--mono);font-feature-settings:"zero" 0}
em{font-style:normal;font-size:11px;font-weight:500;color:var(--mut);background:var(--line2);border-radius:4px;padding:1px 6px;margin-left:4px;vertical-align:2px;letter-spacing:.02em}
kbd{font:500 11px var(--mono);border:1px solid currentColor;border-radius:4px;padding:0 5px;opacity:.75;margin-left:6px}
.bd{color:var(--mut);font-size:13.5px}
.mt{margin-top:10px}.c{text-align:center}
.strip{background:#E8EDF3;color:#44556A;font-size:12px;padding:3px 16px;border-bottom:1px solid var(--line)}
.foot{font-size:12px;color:var(--mut);padding:18px 28px 24px}

/* ---- logo ---- */
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.tile{width:42px;height:42px;background:#fff;border-radius:10px;display:grid;place-items:center;flex:none}
.bt{display:flex;flex-direction:column;gap:2px}
.wm{font:500 12px/1 Archivo,var(--ui);letter-spacing:.4em;text-transform:uppercase;white-space:nowrap}
.pn{font-weight:600;font-size:15px;line-height:1.1;white-space:nowrap}.pn i{font-style:normal;opacity:.6;margin:0 3px}

/* ---- shell ---- */
.app{display:grid;grid-template-columns:236px 1fr;min-height:calc(100vh - 25px)}
.side{background:var(--navy);color:#C7D5E5;display:flex;flex-direction:column;padding:20px 14px 16px;position:sticky;top:0;height:calc(100vh - 25px);align-self:start}
.side .brand{padding:0 6px 22px}
.sn{display:flex;flex-direction:column;gap:2px}
.nl{display:flex;justify-content:space-between;align-items:center;color:#C7D5E5;text-decoration:none;padding:9px 12px;border-radius:8px;font-weight:450}
.nl:hover{background:var(--navy2);color:#fff}
.nl.on{background:#fff;color:var(--navy);font-weight:600}
.cnt{font:600 11px var(--mono);background:var(--brand);color:#fff;border-radius:10px;padding:1px 7px}
.nl.on .cnt{background:var(--brand)}
.sf{margin-top:auto;border-top:1px solid #234563;padding-top:14px}
.who{display:flex;gap:10px;align-items:center}
.who b{display:block;font-weight:600;color:#fff;font-size:14px}.who span{font-size:12.5px;color:#9DB3CB}
.av{width:34px;height:34px;border-radius:50%;background:var(--brand-t);color:var(--brand-d);font:600 12px var(--ui);display:grid;place-items:center;flex:none;letter-spacing:.02em}
.side .av{background:#1D4468;color:#fff}
.acts{display:flex;flex-direction:column;margin-top:10px;gap:0}
.lk{background:none;border:0;color:#B7C8DB;text-align:left;padding:7px 4px;font-size:13px;border-radius:6px}
.lk:hover{color:#fff;text-decoration:underline}
.side :focus-visible{outline-color:#fff}
.main{min-width:0;display:flex;flex-direction:column}
.top,.tabs,.umenu{display:none}
.page{padding:26px 32px 8px;flex:1;max-width:1240px;width:100%}
.ph{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}
h1{font-size:25px;font-weight:650;letter-spacing:-.015em;line-height:1.15}
.sub{color:var(--mut);margin-top:3px}
.pha{display:flex;gap:8px;align-items:center}
h2{font-size:15px;font-weight:620}
h3{font-size:12px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.card{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.cardh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.cardh a{font-size:13px}

/* ---- boutons / champs ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:42px;padding:0 18px;border-radius:9px;border:1px solid transparent;font-weight:600;text-decoration:none;white-space:nowrap}
.btn.pri{background:var(--brand);color:#fff}.btn.pri:hover{background:var(--brand-d)}
.btn.sec{background:#fff;border-color:#B9C5D3;color:var(--ink)}.btn.sec:hover{border-color:var(--brand);color:var(--brand-d)}
.btn.sm{min-height:34px;padding:0 12px;font-size:13px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.pri kbd{color:#fff}
label{display:flex;flex-direction:column;gap:5px;font-size:13.5px;font-weight:550;color:#2A394B}
.opt{font-weight:400;color:var(--mut)}
input,select,textarea{border:1px solid #B9C5D3;background:#fff;border-radius:8px;padding:9px 11px;min-height:42px;font-weight:400;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}
textarea{resize:vertical}
.err{color:var(--un-i);background:var(--un-t);border-radius:8px;padding:8px 12px;font-size:14px}
.hint{color:var(--mut);margin-bottom:14px}
.seg2{display:inline-flex;background:#E8EDF3;border-radius:9px;padding:3px}
.seg2 button{border:0;background:none;min-height:34px;padding:0 13px;border-radius:7px;font-size:13.5px;font-weight:550;color:#33445A}
.seg2 button[aria-pressed=true]{background:#fff;box-shadow:0 1px 2px #0b254033;color:var(--navy)}
.ib2{width:36px;height:36px;min-height:36px;border-radius:8px;border:1px solid #B9C5D3;background:#fff;font-size:18px;line-height:1;display:grid;place-items:center;font-weight:500}
.ib2:hover{border-color:var(--brand);color:var(--brand)}

/* ---- badges ---- */
.rb{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:20px;padding:3px 10px 3px 8px;white-space:nowrap}
.rb i,.qd{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.rb.lv-ok{background:var(--ok-t);color:var(--ok-i)}.rb.lv-ok i,.qd.lv-ok{background:var(--ok)}
.rb.lv-watch{background:var(--wa-t);color:var(--wa-i)}.rb.lv-watch i,.qd.lv-watch{background:var(--wa)}
.rb.lv-under{background:var(--un-t);color:var(--un-i)}.rb.lv-under i,.qd.lv-under{background:var(--un)}
.tchip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:550}
.tchip i{width:10px;height:10px;border-radius:3px}
.st{font-size:12px;font-weight:600;border-radius:6px;padding:3px 9px;white-space:nowrap;border:1px solid transparent}
.st-attente{background:#fff;border:1px dashed #5B7A97;color:#33506B}
.st-validee{background:var(--navy);color:#fff}
.st-refusee{background:#fff;border-color:#B9C5D3;color:var(--ink);text-decoration:line-through;text-decoration-thickness:1px}
.st-annulee{background:var(--line2);color:var(--mut)}

/* ---- signal / bandes de 14 jours ---- */
.s14{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:3px}
.s14s{grid-template-columns:repeat(auto-fit,minmax(30px,1fr));max-width:560px}
.s14c{display:flex;flex-direction:column;align-items:stretch;gap:3px;text-align:center;border-radius:6px;padding:2px 0}
.s14c.is-today .s14d{color:var(--brand-d);font-weight:700}
.s14c.in-req{outline:2px solid var(--navy);outline-offset:1px}
.s14d{font:500 12px var(--mono);color:var(--mut);display:flex;flex-direction:column;line-height:1.15}
.s14d small{font:400 10px var(--ui);color:#7A8899}
.sg{display:flex;align-items:center;justify-content:center;height:24px;border-radius:4px;font:600 11.5px var(--mono);position:relative;border-bottom:3px solid transparent}
.sg.lv-ok{background:var(--ok-t);color:var(--ok-i);border-color:var(--ok)}
.sg.lv-watch{background:var(--wa-t);color:var(--wa-i);border-color:var(--wa)}
.sg.lv-under{background:var(--un-t);color:var(--un-i);border-color:var(--un)}
.sg.off{background:transparent;border-color:transparent}
.sg.has-sens::before{content:"";position:absolute;left:0;right:0;top:-5px;height:3px;background:var(--navy);border-radius:2px}
.s14d + .sg{margin-top:0}

/* ---- accueil salarié ---- */
.g-home{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.bals{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.bal h2,.nxt h2{margin-bottom:10px}
.bn{font:600 38px/1 var(--mono);letter-spacing:-.04em}
.bn span{font:400 13px var(--ui);color:var(--mut);letter-spacing:0;margin-left:6px}
.bar{height:6px;border-radius:3px;background:var(--line2);margin:14px 0 9px;overflow:hidden;display:flex}
.b-p{background:var(--navy)}.b-a{background:repeating-linear-gradient(135deg,#5B7A97 0 3px,#C9D5E1 3px 6px)}
.nx{font:600 26px var(--mono);letter-spacing:-.03em;margin-bottom:10px}
.cv-h{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.lst li{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 0;border-top:1px solid var(--line2)}
.lst li:first-child{border-top:0}
.lst li div{display:flex;flex-direction:column;min-width:0}
.lst li div span{font-size:13px;color:var(--mut)}

/* ---- jauge (clin d'œil à l'anneau du logo) ---- */
.gauge{flex:none}
.gauge .g-bg{fill:none;stroke:#E3E9F0;stroke-width:6;stroke-linecap:round}
.gauge .g-val{fill:none;stroke-width:6;stroke-linecap:round}
.gauge .g-n{fill:#fff;stroke-width:2.4}
.gauge.lv-ok .g-val,.gauge.lv-ok .g-n{stroke:var(--ok)}
.gauge.lv-watch .g-val,.gauge.lv-watch .g-n{stroke:var(--wa)}
.gauge.lv-under .g-val,.gauge.lv-under .g-n{stroke:var(--un)}
.g-t{font:600 15px var(--mono);fill:var(--ink)}.g-s{font:400 10px var(--mono);fill:var(--mut)}

/* ---- demande ---- */
.g-req{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}
.fq{display:flex;flex-direction:column;gap:16px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
fieldset{border:0;padding:0;margin:0}legend{font-size:13.5px;font-weight:550;color:#2A394B;margin-bottom:7px;padding:0}
.segs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.seg{position:relative;flex-direction:row}
.seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;min-height:0;margin:0;cursor:pointer}
.seg span{display:flex;align-items:center;gap:9px;border:1px solid #B9C5D3;border-radius:9px;padding:0 14px;min-height:44px;width:100%;font-weight:550;background:#fff}
.seg span i{width:10px;height:10px;border-radius:3px}
.seg input:checked + span{border-color:var(--brand);background:var(--brand-t);box-shadow:inset 0 0 0 1px var(--brand);color:var(--brand-d)}
.seg input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.imp{position:sticky;top:16px;display:flex;flex-direction:column;gap:16px}
.ib h3{margin-bottom:6px}
.big{font:600 34px/1 var(--mono);letter-spacing:-.04em}
.big span{font:400 14px var(--ui);color:var(--mut);letter-spacing:0}
.bal2{display:flex;align-items:baseline;gap:10px;font-size:22px;font-weight:600}
.bal2 i{font-style:normal;color:var(--mut);font-weight:400}.bal2 small{font:400 13px var(--ui);color:var(--mut)}
.bal2 .neg{color:var(--un-i)}
.note{font-size:13px;color:var(--un-i);margin-top:6px}
.iline{border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:7px;align-items:flex-start;font-size:14px;line-height:1.45}
.iline.lv-ok{background:var(--ok-t);color:#0F3D28}.iline.lv-watch{background:var(--wa-t);color:#4A3000}.iline.lv-under{background:var(--un-t);color:#6A1111}
.iline .rb{background:#fff}

/* ---- historique ---- */
.hist{padding:4px 20px}
.hr{display:grid;grid-template-columns:minmax(220px,1.3fr) 90px 110px minmax(0,2fr) 160px;gap:6px 18px;align-items:center;padding:14px 0;border-top:1px solid var(--line2)}
.hr:first-child{border-top:0}
.h1{display:flex;flex-direction:column;gap:3px}.h2{font-size:13.5px}
.h4 p{font-size:13.5px;color:#33445A}.h4 .dc{color:var(--mut);margin-top:3px}
.h5{text-align:right}

/* ---- file de validation ---- */
.tdy{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:24px;align-items:center;margin-bottom:16px;padding:14px 20px}
.tdy-g{display:flex;gap:14px;align-items:center}
.console{display:grid;grid-template-columns:minmax(330px,420px) minmax(0,1fr);gap:16px;align-items:start}
.qlist{display:flex;flex-direction:column;gap:6px}
.qi{background:#fff;border:1px solid var(--line);border-radius:10px}
.qi.on{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.qb{width:100%;background:none;border:0;text-align:left;display:flex;gap:11px;align-items:center;padding:11px 14px;min-height:56px;border-radius:10px}
.qb:hover{background:#F6F8FB}
.qm{display:flex;flex-direction:column;min-width:0;flex:1}.qm b{font-weight:600}.qm span{font-size:12.5px;color:var(--mut);font-family:var(--mono)}
.qpane{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;position:sticky;top:16px}
.inl{display:none}
.empty{padding:28px;text-align:center;color:var(--mut);background:#fff;border:1px dashed #B9C5D3;border-radius:10px}
.dh1{display:flex;gap:12px;align-items:center;margin-bottom:14px}.dh1 > div{flex:1;min-width:0}.dh1 .av{width:40px;height:40px;font-size:14px}
.dsum{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}
.dsum > div{display:flex;gap:12px;align-items:center}
.cm{color:#33445A;font-style:italic}
.h3s{margin:16px 0 6px}
.oth li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line2);font-size:14px}.oth li:first-child{border-top:0}
.dcl{margin-top:16px}
.dact{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.kb{margin:12px 2px 18px;font-size:12.5px;color:var(--mut)}.kb kbd{margin:0 3px}
.rec{margin-top:16px}.rec h2{margin-bottom:6px}

/* ---- calendrier ---- */
.ctool{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px;justify-content:space-between}
.cnav{display:flex;align-items:center;gap:8px}
.ctitle{font-size:18px;text-transform:capitalize;min-width:150px;text-align:center;font-weight:650}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{border:1px solid #B9C5D3;background:#fff;border-radius:20px;min-height:34px;padding:0 14px;font-size:13.5px;font-weight:550}
.chips button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.calc{padding:0;overflow:hidden}
.tl-wrap{overflow-x:auto}
.tl{display:grid;grid-template-columns:var(--lw) minmax(0,1fr);min-width:calc(var(--lw) + var(--n) * 24px);position:relative}
.tl-bg{position:absolute;left:var(--lw);right:0;top:0;bottom:0;display:flex;pointer-events:none}
.dhc,.tl-strip .sg{flex:1 1 0;min-width:0}
.lp .s14c.is-today .s14d{color:#fff}
.tl-bg i{flex:1 1 0;min-width:0;border-left:1px solid var(--line2)}
.tl-bg i.we{background:#EEF1F5}.tl-bg i.hol{background:repeating-linear-gradient(135deg,#EEF1F5 0 4px,#E2E8EF 4px 8px)}
.tl-bg i.is-today{background:rgba(1,104,167,.07);box-shadow:inset 2px 0 0 var(--brand)}
.hv{position:absolute;top:0;bottom:0;background:rgba(11,37,64,.06);border-left:1px solid #0B254055;border-right:1px solid #0B254055;z-index:1}
.pn2{position:absolute;top:0;bottom:0;border:1.5px solid var(--navy);z-index:1;border-radius:2px}
.tl-l,.tl-t{border-bottom:1px solid var(--line2);position:relative;z-index:2}
.tl-l{position:sticky;left:0;background:var(--surf);z-index:3;padding:0 10px 0 16px;display:flex;align-items:center;font-size:13px;min-height:30px}
.tl-t{min-height:30px}
.tl-h{display:flex;min-height:46px}
.dhc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-family:var(--mono)}
.dhc small{font:400 10px var(--ui);color:var(--mut)}.dhc b{font:500 12px var(--mono)}
.dhc.off b{color:#7A8899}
.dhc.is-today b{background:var(--brand);color:#fff;border-radius:10px;padding:0 6px}
.tl-sl{font-size:12px}.tl-sl b{font-weight:600;color:var(--navy)}
.band{position:absolute;height:20px;background:#D5E0EC;border:1px solid var(--navy);border-radius:4px;overflow:hidden;display:flex;align-items:center;padding:0 6px;font-size:11.5px;font-weight:550;color:var(--navy);white-space:nowrap}
.band span{overflow:hidden;text-overflow:ellipsis}
.tl-team{flex-direction:column;align-items:flex-start;justify-content:center;padding-top:8px;padding-bottom:6px;gap:0;background:var(--surf)}
.tl-team b{font-size:13.5px;font-weight:650}.tl-team span{font:400 11px var(--mono);color:var(--mut)}
.tl-strip{display:flex;align-items:center;padding:8px 0 6px}
.tl-strip .sg{flex:1;margin:0 1px;height:22px;min-width:0}
.tl-strip .sg.has-sens::before{top:-6px}
.tl-p .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#33445A}
.tl-pr{height:28px}
.bar-validee,.bar-attente{position:absolute;top:4px;bottom:4px;border-radius:5px;display:flex;align-items:center;padding:0 6px;overflow:hidden;font:600 10px var(--mono);letter-spacing:.02em}
.bar-validee{background:var(--c);color:#fff}
.bar-attente{background:repeating-linear-gradient(135deg,#fff 0 3px,color-mix(in srgb,var(--c) 22%,#fff) 3px 6px);border:1.5px solid var(--c);color:var(--d)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;padding:12px 16px;font-size:12.5px;color:#33445A;border-top:1px solid var(--line)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.lg{width:12px;height:12px;border-radius:3px;display:inline-block}
.lg.lv-ok{background:var(--ok-t);border-bottom:3px solid var(--ok)}.lg.lv-watch{background:var(--wa-t);border-bottom:3px solid var(--wa)}.lg.lv-under{background:var(--un-t);border-bottom:3px solid var(--un)}
.lg-pend{background:repeating-linear-gradient(135deg,#fff 0 2px,#C9D5E1 2px 4px);border:1.5px solid #5B7A97}
.lg-sens{background:#D5E0EC;border:1px solid var(--navy)}.lg-off{background:#E2E8EF}
.lgs{width:1px;height:14px;background:var(--line)}
.dpn{margin-top:16px}
.dpn-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:10px}
.dpn-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 24px}
.dpn-b .ti-h{grid-column:1/-1;margin-bottom:6px}
.tip{position:fixed;z-index:50;background:var(--navy);color:#EAF1F8;border-radius:10px;padding:12px 14px;width:290px;font-size:13px;pointer-events:none;box-shadow:0 8px 24px #0b254055}
.tip .bd{color:#A9BDD2}.tip b{color:#fff}
.ti{margin-top:9px}.ti-t{display:flex;gap:8px;align-items:center}.ti-t .mono{margin-left:auto}
.ti-l{margin:4px 0 0 16px;font-size:13px;list-style:disc}.ti-l .pd{opacity:.8;font-style:italic}
.ti-n{margin-left:16px;font-size:12.5px}
.ti-s{margin:4px 0 0 16px;font-size:12px;font-weight:600;color:#BFD6EE}
.dpn .ti-s{color:var(--navy)}.dpn .tip-x{}
.ti-t .qd{margin-top:0}

/* ---- admin ---- */
.acl{padding:4px 20px}
.ar{display:grid;grid-template-columns:minmax(200px,1.6fr) .9fr .9fr minmax(200px,1.5fr) 90px 90px 110px;gap:8px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--line2);font-size:14px}
.ar:first-child{border-top:0}.ar.off{opacity:.6}
.a1{display:flex;gap:10px;align-items:center;min-width:0}.a1 b{display:block}.a1 span{font-size:12.5px;color:var(--mut);overflow-wrap:anywhere}
.k{display:none}
.nf{margin-bottom:16px}.nf h2{margin-bottom:12px}
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.tcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:16px}
.tc{display:flex;justify-content:space-between;align-items:center;gap:12px}
.stp{display:flex;align-items:center;gap:12px}.stp > div{text-align:center;display:flex;flex-direction:column}
.stp b{font:600 28px/1 var(--mono)}.stp span{font-size:11.5px;color:var(--mut);margin-top:3px}
.stp .ib2{width:44px;height:44px;min-height:44px}
.ps h2{margin-bottom:2px}.ps .lst{margin:10px 0}
.pf{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr auto;gap:12px;align-items:end;margin-top:8px;padding-top:14px;border-top:1px solid var(--line2)}
.sim{background:var(--brand-t);color:#0B3D5C;border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:14px}
.pnl{padding:0}
.pnl-h{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap}
.psum{display:flex;gap:10px;align-items:center}
.pr{display:grid;grid-template-columns:20px minmax(200px,1.2fr) minmax(220px,1.4fr) 80px minmax(180px,1fr);gap:6px 16px;align-items:center;padding:14px 20px;border-top:1px solid var(--line2);font-size:14px}
.pr:first-child{border-top:0}
.pn1{display:flex;flex-direction:column}.pn1 span{font-size:12.5px;color:var(--mut)}
.pt{font:400 12.5px var(--mono);color:#33445A;overflow-wrap:anywhere}
.pl{text-align:right;font-size:13px}
.ps2{font-size:13px;color:var(--mut)}
.led{width:12px;height:12px;border-radius:50%;background:#C3CDD9;display:block}
.pr.run .led{background:var(--brand);animation:pulse .7s infinite alternate}
.pr.ok .led{background:var(--ok);box-shadow:0 0 0 4px var(--ok-t)}
.pr.ok .ps2{color:var(--ok-i);font-weight:550}
.pr.wait .pl,.pr.wait .pt,.pr.wait .pn1 b{color:#7A8899}
@keyframes pulse{from{opacity:.35}to{opacity:1}}

/* ---- connexion ---- */
.login{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:calc(100vh - 25px - 60px)}
.lp{background:var(--navy);color:#fff;padding:32px 48px;display:flex;flex-direction:column}
.lp-body{margin:auto 0;max-width:620px;padding:40px 0}
.lp h2{font-size:32px;line-height:1.15;letter-spacing:-.02em;font-weight:620;margin-bottom:12px}
.lp p{color:#B7C8DB}
.lp-strips{display:flex;flex-direction:column;gap:18px;margin-top:30px}
.lp-h{display:flex;justify-content:space-between;margin-bottom:6px;font-size:13.5px}.lp-h span{color:#9DB3CB;font:400 12px var(--mono)}
.lp .s14d{color:#9DB3CB}.lp .s14d small{color:#7E96B0}
.lp .sg.has-sens::before{background:#fff}
.lp-n{margin-top:16px;font-size:12.5px}
.lf{display:flex;align-items:center;justify-content:center;padding:32px}
.lf-in{width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px}
.lf h1{margin-bottom:2px}
.form{display:flex;flex-direction:column;gap:14px}
.or{display:flex;align-items:center;gap:12px;color:var(--mut);font-size:13px}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.accs{display:flex;flex-direction:column;gap:8px}
.acc{display:flex;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid #B9C5D3;border-radius:10px;padding:10px 14px;min-height:62px}
.acc:hover{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.acc .at{display:flex;flex-direction:column;flex:1;min-width:0}.acc .at b{font-weight:600}.acc .at span{font-size:12.5px;color:var(--mut)}
.acc .go{font-size:13px;font-weight:600;color:var(--brand)}
.lf-foot{text-align:center;background:var(--bg)}
.lp .brand .tile{background:#fff}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:11px 18px;border-radius:10px;font-size:14px;z-index:60;box-shadow:0 8px 24px #0b254055;max-width:calc(100vw - 32px)}
[hidden]{display:none!important}


.back,.back2{color:#B7C8DB;text-decoration:none}.back:hover{color:#fff;text-decoration:underline}
.back2{color:var(--brand);font-size:13.5px;display:inline-block;min-height:24px}
.bal .btn{white-space:normal;text-align:center;line-height:1.2;padding:8px 12px;height:auto;margin-top:8px}
.sm2{margin-top:6px;font-size:12.5px}.sm2 b{color:var(--ink)}
.g-hs{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start;margin-bottom:22px}
.hsd{margin:14px 0 0;display:flex;flex-direction:column}.hsd div{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line2);font-size:14px}.hsd dt{color:var(--mut)}.hsd dd{margin:0;font-weight:600}
.h2s{margin:0 0 10px}
.sel1{min-width:230px}.sr{position:absolute;left:-9999px}
.tcv{font-size:22px;font-weight:600}
.tc > div:first-child{max-width:520px}
.modsel{min-height:36px;padding:4px 8px;font-size:13px;margin-top:4px}
.a4 b{display:block;font-weight:600}
.sw{flex-direction:row;align-items:center;gap:10px;position:relative;min-height:44px}
.sw input{position:absolute;opacity:0;width:48px;height:28px;min-height:0;margin:0;cursor:pointer}
.swt{width:48px;height:28px;border-radius:14px;background:#B9C5D3;position:relative;flex:none}
.swt::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .15s}
.sw input:checked + .swt{background:var(--brand)}.sw input:checked + .swt::after{left:23px}
.sw input:focus-visible + .swt{outline:2px solid var(--brand);outline-offset:2px}
/* ---- tablette / petit écran ---- */
@media (max-width:1100px){
  .g-req,.g-hs{grid-template-columns:1fr}.imp{position:static}
  .console{grid-template-columns:1fr}
  .qpane{display:none}.inl{display:block;padding:4px 14px 16px;border-top:1px solid var(--line2)}
  .bals{grid-template-columns:repeat(2,1fr)}.nxt{grid-column:1/-1}
  .tdy{grid-template-columns:1fr}
  .pr{grid-template-columns:20px 1fr 80px;}.pr .pt{grid-column:2/4;order:3}.pr .ps2{grid-column:2/4;order:4}
  .pf{grid-template-columns:1fr 1fr}
  .hr{grid-template-columns:1fr auto;}.h2{grid-column:2;grid-row:1;text-align:right}.h3{grid-column:1}.h4,.h5{grid-column:1/-1}.h5{text-align:left}.h5:empty{display:none}.h4:empty{display:none}
  .ar{grid-template-columns:1fr 1fr;}.a1{grid-column:1/-1}.k{display:block;font-size:11.5px;color:var(--mut)}
  .g-home{grid-template-columns:1fr}
}
@media (max-width:760px){
  body{font-size:15px}
  .app{display:block;min-height:0}
  .side{display:none}
  .top{display:flex;justify-content:space-between;align-items:center;background:var(--navy);padding:8px 14px;position:sticky;top:0;z-index:20}
  .top .tile{width:36px;height:36px}.top .wm{font-size:11px}.top .pn{font-size:15px}
  .avb{width:44px;height:44px;border-radius:50%;border:0;background:#1D4468;color:#fff;font-weight:600}
  .umenu{display:block;background:var(--navy);color:#fff;padding:6px 14px 14px;position:sticky;top:52px;z-index:19}
  .umenu .who b{color:#fff}.umenu .acts{flex-direction:row;flex-wrap:wrap;gap:4px 14px}.umenu .lk{padding:12px 0;min-height:44px;color:#D4E0EC}
  .page{padding:18px 14px 10px}
  h1{font-size:22px}
  .ph{margin-bottom:14px}
  .tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:30;padding-bottom:env(safe-area-inset-bottom)}
  .tab{display:flex;align-items:center;justify-content:center;gap:5px;min-height:56px;text-decoration:none;color:#44556A;font-size:12.5px;font-weight:550;text-align:center;padding:0 2px}
  .tab.on{color:var(--brand-d);font-weight:700;box-shadow:inset 0 3px 0 var(--brand)}
  .foot{padding:10px 14px 80px}
  .card{padding:16px}
  .bals{grid-template-columns:1fr 1fr;gap:10px}.bn span{display:block;margin:6px 0 0}
  .bals .bal:nth-child(3):last-of-type,.nxt{grid-column:1/-1}
  .s14{gap:2px}.s14d{font-size:11px}.sg{font-size:10.5px}
  .row2{grid-template-columns:1fr 1fr;gap:10px}
  .segs{grid-template-columns:1fr 1fr}
  .btn{min-height:46px}
  .pha{width:100%}.pha .btn{flex:1}.pha .btn.sec{display:none}
  .ph:has(.pha) h1{margin-bottom:0}
  .tdy{padding:14px}
  .ctool{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.cnav{justify-content:space-between;gap:6px}.ctitle{min-width:0;flex:1;font-size:16px}.cnav .btn{padding:0 10px}.chips{min-width:0}.chips{overflow-x:auto;flex-wrap:nowrap}.chips button{flex:none;min-height:44px}.seg2{display:flex}.seg2 button{flex:1;min-height:44px}
  .ib2{width:44px;height:44px;min-height:44px}
  :root{--lw:84px}
  .tl{min-width:0}
  .tl[style*="--n:31"],.tl[style*="--n:30"],.tl[style*="--n:28"],.tl[style*="--n:29"]{min-width:calc(var(--lw) + var(--n) * 22px)}
  .tl-l{padding:0 4px 0 10px;font-size:12px}
  .tl-team b{font-size:12.5px}.tl-team span{display:none}
  .tl-team{padding-top:12px}
  .band{font-size:10px;padding:0 3px}
  .dhc small{font-size:9px}.dhc b{font-size:10px}.dhc.is-today b{padding:0 3px}
  .tl-strip .sg{margin:0;font-size:10px}
  .legend{gap:6px 12px}
  .lgs{display:none}
  .login{display:block;min-height:0}
  .lp{padding:20px 18px 22px}.lp-body{padding:20px 0 0}.lp h2{font-size:22px}.lp-strips,.lp-n,.lp p{display:none}
  .lf{padding:22px 16px 10px}
  .hr{padding:14px 0}
  .stp{width:100%;justify-content:space-between}.tc{flex-direction:column;align-items:stretch}.sel1{min-width:0}
  .bn{font-size:28px}
  .pf{grid-template-columns:1fr}
  .qb{min-height:64px}
  .kb{display:none}
  .dact .btn{flex:1}
  .acc{min-height:64px}
  .lk{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.pr.run .led{animation:none}}

.tcs.one{grid-template-columns:1fr;max-width:860px}.tcs.one .tc{padding:20px 22px}.tcs.one .tc > div:first-child{max-width:560px}
