@font-face{font-family:"Schibsted Grotesk";src:url(/commun/fonts/schibsted-grotesk.woff2) format("woff2");font-weight:400 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{
  --brand:#0168A7;--brand-d:#01578C;--brand-t:#E8F2F9;--brand-t2:#D3E7F4;
  --ink:#14202B;--mut:#56626F;--line:#E2E6EB;--line2:#EEF1F4;--bg:#F5F6F8;--surf:#fff;--we:#F2F4F6;--fer:#E4E8ED;
  --ok:#0F6B4F;--okb:#E3F4EC;--warn:#8A5200;--warnb:#FFF3DC;--bad:#A3201A;--badb:#FDEBEA;
  --cp:#137A5F;--rtt:#A8600A;--rec:#B5456B;--ss:#5E6A78;
  --namew:196px;--colw:24px;--rh:36px;
  --ui:"Schibsted Grotesk",system-ui,sans-serif;--mono:"Martian Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 14px/1.45 var(--ui);color:var(--ink);background:var(--bg);min-height:100vh;display:flex;flex-direction:column}
#app{flex:1;display:flex;flex-direction:column;min-width:0}
h1,h2,h3,p,dl,dd,ol,ul{margin:0}
ol,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}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:100}
.skip:focus{left:8px;top:8px}
.amt{font-variant-numeric:tabular-nums;font-weight:600}
.mono{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}
.mut{color:var(--mut)}
.small{font-size:12.5px}
.r{text-align:right;justify-content:flex-end}
.ex{font-style:normal;font-size:10.5px;font-weight:600;color:var(--mut);background:var(--we);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-left:4px;vertical-align:1px}

.demo-banner{background:#EAF0F5;color:#3F4D5A;font-size:11.5px;text-align:center;padding:3px 12px;letter-spacing:.01em;border-bottom:1px solid var(--line)}

/* ── En-tête ── */
.top{background:var(--surf);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 24px;height:56px;position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:none}
.brand img{display:block}
.word{font:500 12px/1 "Archivo",sans-serif;letter-spacing:.42em;margin-right:-.42em;color:var(--ink)}
.prod{display:flex;align-items:baseline;gap:8px;padding-left:14px;margin-left:2px;border-left:1px solid var(--line);line-height:22px;white-space:nowrap}
.prod .esp{font-size:13px;color:var(--mut);font-weight:550}
.prod b{font-weight:650;font-size:15px}
.back{font-size:12.5px;color:var(--mut);text-decoration:none;white-space:nowrap;margin-left:auto;padding:0 4px}
.back:hover{color:var(--ink);text-decoration:underline}
.back-m{display:none!important}
.who{margin-left:0}
.fl{display:flex;gap:16px;align-items:center}
.foot a.lnk{color:var(--mut)}
.nav{display:flex;gap:2px;flex:1;min-width:0}
.nav a{display:inline-flex;align-items:center;gap:6px;height:56px;padding:0 12px;color:var(--mut);text-decoration:none;font-weight:550;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.nav a:hover{color:var(--ink)}
.nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--brand)}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--brand);color:#fff;font:600 11px/1 var(--mono)}
.who{position:relative;margin-left:auto}
.chip-u{display:flex;align-items:center;gap:10px;background:none;border:1px solid transparent;border-radius:10px;padding:5px 8px 5px 6px;min-height:44px;text-align:left}
.chip-u:hover{background:var(--bg);border-color:var(--line)}
.wt{display:flex;flex-direction:column;line-height:1.2}
.wt b{font-weight:600;font-size:13.5px}
.wt span{font-size:12px;color:var(--mut)}
.menu{position:absolute;right:0;top:calc(100% + 6px);width:270px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(20,32,43,.14);padding:6px;display:flex;flex-direction:column;z-index:60}
.menu .mh{display:flex;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid var(--line2);margin-bottom:4px;font-size:12.5px;color:var(--mut)}
.menu .mh b{color:var(--ink);font-size:14px}
.menu a,.menu button{display:flex;align-items:center;min-height:40px;padding:0 10px;border:0;background:none;text-align:left;text-decoration:none;color:var(--ink);border-radius:8px;font-size:14px}
.menu a:hover,.menu button:hover{background:var(--bg)}
.av{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#E5EBF1;color:#33414F;font-size:10.5px;font-weight:650;flex:none;letter-spacing:.02em}
.av.lg{width:40px;min-width:40px;height:40px;font-size:13px}

/* ── Boutons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:13.5px;text-decoration:none;color:var(--ink);white-space:nowrap}
.btn:hover{background:var(--bg)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-d)}
.btn.primary:disabled{background:#9DBFD6;border-color:#9DBFD6;cursor:not-allowed}
.btn.ghost{background:transparent}
.btn.sm{min-height:30px;padding:0 10px;font-size:12.5px}
.btn.danger{color:var(--bad)}
.btn.danger:hover{background:var(--badb)}
.btn.wide{width:100%;min-height:44px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.ib{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.ib:hover{background:var(--bg)}
.lnk{background:none;border:0;color:var(--mut);text-decoration:underline;padding:0;font-size:12px}

/* ── Pages ── */
.page{width:100%;max-width:1520px;margin:0 auto;padding:18px 24px 28px;flex:1}
.pg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:14px;flex-wrap:wrap}
.pg-head.row-h{align-items:center}
.pg-head h1{font-size:22px;font-weight:650;letter-spacing:-.01em;line-height:1.2}
.pg-head p{color:var(--mut);margin-top:2px}
.pg-head.slim{margin-bottom:8px}
.pg-head.slim p{margin:0}
.foot{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:12px 24px;font-size:12px;color:var(--mut);border-top:1px solid var(--line);background:var(--surf)}

/* soldes */
.bal-strip{display:flex;gap:0;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.bs{display:flex;flex-direction:column;padding:8px 18px;min-width:170px;border-left:1px solid var(--line)}
.bs:first-child{border-left:0}
.bs .k{font-size:12px;color:var(--mut);font-weight:550}
.bs .v{font:650 22px/1.25 var(--ui);letter-spacing:-.005em}
.bs .v small{font:500 12px var(--ui);color:var(--mut);letter-spacing:0}
.bs .s{font-size:12px;color:var(--mut)}

/* ── Barre d'outils ── */
.toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.tb-month{display:flex;align-items:center;gap:8px}
.mname{font-size:18px;font-weight:650;letter-spacing:-.01em;min-width:150px;text-align:center;text-transform:capitalize}
.mname .my{color:var(--mut);font-weight:500}
.tb-new{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.sw.hr{background:#3E6E8E;width:9px;height:9px;border-radius:2px;margin-right:6px}
.qs-h{font-size:12px;font-weight:650;color:var(--mut);padding:8px 4px 2px;display:flex;gap:6px;align-items:center}
.qs-h .n{font:500 11px var(--mono);background:#E9EDF1;border-radius:9px;padding:0 6px}
.seg3.four{grid-template-columns:repeat(4,1fr)}
.fld.hrs{margin-top:8px}
.hrs-card{margin-top:16px}
.cadre-note{margin-top:14px;font-size:13.5px}
.c-eq{display:flex;flex-direction:column;line-height:1.3}.c-eq .sub{font-size:12px}
.st-sel{min-height:36px;padding:4px 8px;font-size:13px}
.setts .set{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;border-top:1px solid var(--line2)}
.set>label,.set>div:first-child{display:flex;flex-direction:column;gap:2px;font-size:13.5px;min-width:0}
.set .mut{font-size:12.5px;font-weight:400}
.set .st-sel{width:200px;flex:none}
.switch{position:relative;display:inline-flex;align-items:center;gap:8px;flex:none;min-height:44px}
.switch input{position:absolute;opacity:0;width:44px;height:26px;margin:0;cursor:pointer}
.switch .sl{width:44px;height:26px;border-radius:13px;background:#B9C2CC;position:relative;transition:.15s;flex:none}
.switch .sl::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.switch input:checked+.sl{background:var(--brand)}
.switch input:checked+.sl::after{left:21px}
.switch input:focus-visible+.sl{outline:2px solid var(--brand);outline-offset:2px}
.switch .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.seg{display:inline-flex;background:#E9EDF1;border-radius:9px;padding:2px;gap:2px}
.seg button{border:0;background:none;border-radius:7px;padding:0 12px;min-height:32px;font-weight:550;font-size:13px;color:var(--mut)}
.seg button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(20,32,43,.12)}
.seg .n{font:500 11px var(--mono);color:var(--mut);margin-left:3px}

/* ── Découpe grille / panneau ── */
.split>*{min-width:0}
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.split.has-side{grid-template-columns:minmax(0,1fr) 360px}
.gridcard{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}
.gscroll{overflow-x:auto;user-select:none;-webkit-user-select:none}
.gscroll.can .row.mine .d{cursor:crosshair}

/* ── Grille ── */
.gridwrap{position:relative;min-width:calc(var(--namew) + var(--n) * var(--colw));font-size:12.5px}
.row{display:grid;grid-template-columns:var(--namew) repeat(var(--n),minmax(0,1fr));position:relative;min-height:var(--rh);border-bottom:1px solid var(--line2)}
.row>.nm{position:sticky;left:0;z-index:4;background:#fff;display:flex;align-items:center;gap:8px;padding:0 10px 0 12px;min-width:0;border-right:1px solid var(--line)}
.row .d{border-left:1px solid var(--line2);min-width:0}
.row .d.we{background:var(--we)}
.row .d.hol{background:var(--fer)}
.row .fill{grid-column:2 / -1}
.row.head{min-height:46px;border-bottom:1px solid var(--line)}
.row.head .nm{font-weight:600}
.hl{font-size:11.5px;color:var(--mut);font-weight:550}
.d.h{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-family:var(--mono);color:var(--mut)}
.d.h .wd{font-size:9px;font-weight:500}
.d.h .nb{font-size:11px;font-weight:600;color:var(--ink);width:22px;height:20px;display:grid;place-items:center;border-radius:10px}
.d.h.we .nb,.d.h.hol .nb{color:var(--mut);font-weight:500}
.d.h.hol::after{content:"";width:4px;height:4px;border-radius:50%;background:#7A8794;margin-top:-1px;position:absolute;bottom:3px}
.d.h{position:relative}
.d.h.td .nb{background:var(--brand);color:#fff}
.todaycol{position:absolute;top:0;bottom:0;z-index:1;pointer-events:none;left:calc(var(--namew) + (100% - var(--namew)) * var(--ti) / var(--n));width:calc((100% - var(--namew)) / var(--n));background:rgba(1,104,167,.07);box-shadow:inset 1.5px 0 0 var(--brand),inset -1.5px 0 0 var(--brand)}
.row.cap{min-height:24px;background:#FAFBFC}
.row.cap .nm,.row.grp .nm{background:#FAFBFC}
.row.pres{min-height:26px;background:#FAFBFC}
.row.pres .nm{justify-content:space-between;font-size:12px;padding-right:12px;background:#FAFBFC}
.row.pres .nm .pn{font-weight:550}
.row.pres .nm em{font-style:normal;color:var(--mut);font-size:11px}
.d.p{display:grid;place-items:center;font:500 10.5px var(--mono);color:#3C4955}
.d.p.we,.d.p.hol{background:var(--we)}
.d.p.thin{background:var(--badb);color:var(--bad);font-weight:700}
.row.grp{min-height:30px;background:#FAFBFC;border-top:1px solid var(--line)}
.row.grp .fill{background:#FAFBFC}
.gh{display:flex;align-items:center;gap:6px;border:0;background:none;padding:0;min-height:30px;width:100%;text-align:left;font-size:12.5px}
.gh b{font-weight:650}
.gh .cnt{font:500 10.5px var(--mono);color:var(--mut);background:#E9EDF1;border-radius:9px;padding:1px 7px}
.gh.static{cursor:default}
.chv{display:grid;place-items:center;color:var(--mut);transition:transform .15s}
.chv.shut{transform:rotate(-90deg)}
.row.person{min-height:var(--rh)}
.row.person .nm{font-size:13px}
.row.mine .nm{background:var(--brand-t)}
.row.mine .d:not(.we):not(.hol){background:#F6FAFD}
.who-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.who-n .short{display:none}
.you{font-style:normal;font-size:10.5px;font-weight:600;color:var(--brand);margin-left:auto}
.lane{position:absolute;left:var(--namew);right:0;top:0;bottom:0;pointer-events:none;z-index:2}
.bar{position:absolute;top:7px;bottom:7px;border-radius:5px;display:flex;align-items:center;padding:0 6px;color:#fff;font-size:10.5px;font-weight:650;overflow:hidden;white-space:nowrap;pointer-events:auto;letter-spacing:.01em}
.bar span{overflow:hidden;text-overflow:clip}
.bar.cl{border-top-left-radius:0;border-bottom-left-radius:0}
.bar.cr{border-top-right-radius:0;border-bottom-right-radius:0}
.t-cp{--c:var(--cp)}.t-rtt{--c:var(--rtt)}.t-rec{--c:var(--rec)}.t-ss{--c:var(--ss)}
.bar.s-validee{background:var(--c)}
.bar.s-attente{color:var(--c);background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,#fff) 0 4px,#fff 4px 8px);box-shadow:inset 0 0 0 1.5px var(--c)}
.bar.dim{opacity:.5}
.bar.sel{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink);z-index:5;opacity:1}
.selr{position:absolute;top:3px;bottom:3px;border-radius:6px;background:rgba(1,104,167,.16);border:1.5px solid var(--brand);z-index:3}

/* légende */
.legend{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 22px;padding:10px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--mut);background:#FAFBFC}
.lg-types,.lg-states{display:flex;flex-wrap:wrap;gap:6px 16px}
.lg{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--c);flex:none}
.sw.sm{width:9px;height:9px;border-radius:2px;margin-right:6px}
.sw.st.s-attente{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,#fff) 0 3px,#fff 3px 6px);box-shadow:inset 0 0 0 1.5px var(--c)}
.sw.wk{background:var(--we);box-shadow:inset 0 0 0 1px #CFD5DC}
.sw.fe{background:var(--fer);box-shadow:inset 0 0 0 1px #BCC4CD}
.sw.tdy{background:rgba(1,104,167,.12);box-shadow:inset 0 0 0 1.5px var(--brand)}
#tip{position:fixed;z-index:200;background:var(--ink);color:#fff;font-size:12px;padding:5px 9px;border-radius:6px;pointer-events:none;max-width:320px;line-height:1.35}
#tip[hidden]{display:none}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:13.5px;opacity:0;pointer-events:none;transition:.2s;z-index:300;max-width:calc(100vw - 32px)}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* ── Panneau latéral ── */
.side{min-width:0}
.side:not(.open){display:none}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;animation:slide .2s ease-out}
@keyframes slide{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.p-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 12px 16px;border-bottom:1px solid var(--line)}
.p-head h2{font-size:15.5px;font-weight:650;display:flex;align-items:center;gap:8px}
.p-body{padding:14px 16px;display:flex;flex-direction:column;gap:14px}
.p-foot{padding:12px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;background:#FAFBFC;border-radius:0 0 12px 12px}
.actions{display:flex;gap:8px;justify-content:flex-end}
.actions.two .btn{flex:1}
.fld{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:6px}
.fld legend,.fld .lbl{font-size:12.5px;font-weight:600;color:#33414F;padding:0}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{width:100%;min-height:40px;border:1px solid #CBD2DA;border-radius:8px;padding:8px 10px;background:#fff}
textarea{resize:vertical;min-height:60px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.types{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.opt{position:relative;display:flex;align-items:center;gap:8px;border:1px solid #CBD2DA;border-radius:8px;padding:0 10px;min-height:40px;font-size:13px;font-weight:550;cursor:pointer}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opt:has(input:checked){border-color:var(--brand);background:var(--brand-t);box-shadow:inset 0 0 0 1px var(--brand)}
.opt:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.seg3{display:grid;grid-template-columns:repeat(3,1fr);background:#E9EDF1;border-radius:9px;padding:2px;gap:2px}
.seg3.two{grid-template-columns:1fr 1fr}
.seg3 label{position:relative;display:grid;place-items:center;min-height:36px;border-radius:7px;font-size:12.5px;font-weight:550;color:var(--mut);text-align:center;padding:0 4px;cursor:pointer}
.seg3 input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg3 label:has(input:checked){background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(20,32,43,.12)}
.seg3 label:has(input:focus-visible){outline:2px solid var(--brand)}
.count{background:var(--bg);border-radius:10px;padding:12px 14px}
.count .big{font-size:15px;font-weight:600}
.count .nb{font:650 28px var(--ui);letter-spacing:-.01em;margin-right:2px}
.count .rng{color:var(--mut);margin-top:2px}
.count .note{margin-top:4px;font-size:13px;font-weight:550;color:var(--ink)}
.count .note.mut{font-weight:400;color:var(--mut);font-size:12.5px}
.count.bad .nb{color:var(--bad)}
.bal{display:flex;flex-direction:column}
.bal div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line2);font-size:13px}
.bal dt{color:var(--mut)}
.bal dd{font:600 13.5px var(--ui);font-variant-numeric:tabular-nums}
.bal .after{border-bottom:0;padding-top:9px}
.bal .after dt{color:var(--ink);font-weight:650}
.bal .after dd{font-weight:700;font-size:15px;color:var(--ok)}
.bal .after.neg dd{color:var(--bad)}
.warn{background:var(--warnb);color:var(--warn);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:500}
.nosolde{padding:2px 2px}

/* file à valider */
.badge{font-size:11px}
.qlist{padding:8px;gap:6px}
.qi{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.qi.open{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.qh{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:10px;text-align:left;min-height:56px}
.qh:hover{background:var(--bg)}
.qt{display:flex;flex-direction:column;min-width:0;flex:1}
.qt b{font-weight:600;font-size:13.5px}
.qm{display:flex;align-items:center;font-size:12px;color:var(--mut)}
.qd{font:500 11.5px var(--mono);color:var(--ink);white-space:nowrap}
.qdet{padding:2px 12px 12px;display:flex;flex-direction:column;gap:10px}
.qc{color:var(--mut);font-size:13px;font-style:italic}
.ctx{background:var(--bg);border-radius:8px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:5px}
.ctx h3{font-size:12px;font-weight:650;color:var(--mut)}
.ctx.alert{background:var(--warnb);color:#5C3800}
.ctx.alert h3,.ctx.alert .mut{color:var(--warn)}
.ctx .rest.low{font-weight:700;color:var(--bad)}
.qs{font-size:13px}
.empty{padding:28px 16px;text-align:center}

/* ── Listes (historique, comptes) ── */
.card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.card+.card{margin-top:16px}
.card-h{padding:14px 18px 10px}
.card-h.row-h{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}
.card-h h2{font-size:15px;font-weight:650}
.card-h p{font-size:13px;margin-top:1px}
.list .lh,.list .li{display:grid;align-items:center;gap:12px;padding:0 18px}
.list .lh{min-height:36px;font-size:12px;font-weight:600;color:var(--mut);background:#FAFBFC;border-bottom:1px solid var(--line)}
.list .li{min-height:54px;border-bottom:1px solid var(--line2);font-size:13.5px}
.list .li:last-child{border-bottom:0}
.list .li>*,.list .lh>*{min-width:0}
.hist .list .lh,.hist .list .li{grid-template-columns:minmax(210px,1.3fr) 150px 60px 100px minmax(0,2fr) 90px;padding:0 18px}
.hist .li{padding-top:8px;padding-bottom:8px}
.c-typ{display:flex;align-items:center}
.rep{display:block}
.chip{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:11px;font-size:12px;font-weight:600;white-space:nowrap}
.st-attente{background:var(--warnb);color:var(--warn)}
.st-validee{background:var(--okb);color:var(--ok)}
.st-refusee{background:var(--badb);color:var(--bad)}
.st-annulee{background:#EDEFF2;color:#505B67}
.acc .lh,.acc .li{grid-template-columns:minmax(200px,1.5fr) 120px minmax(110px,1fr) 210px 70px 64px 84px 96px}
.c-nom{display:flex;align-items:center;gap:10px}
.nn{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.nn .mut{font-size:12px;overflow:hidden;text-overflow:ellipsis}
.li.off{opacity:.62}
.teams .lh,.teams .li{grid-template-columns:130px 1fr 70px 130px}
input.mini-in{width:76px;min-height:34px;text-align:right}
.cols2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
.rules div{display:flex;justify-content:space-between;gap:16px;padding:9px 18px;border-top:1px solid var(--line2);font-size:13.5px}
.rules dt{color:var(--mut)}
.fer{columns:2;column-gap:20px;padding:6px 18px 14px}
.fer li{display:flex;gap:12px;padding:4px 0;font-size:13px;break-inside:avoid}
.fer .amt{font-variant-numeric:tabular-nums;font-weight:600}
.mono{color:var(--mut);width:84px}

/* ── Installation ── */
.sim{margin-top:6px;display:inline-block;background:var(--warnb);color:#5C3800;border-radius:8px;padding:6px 12px;font-size:13.5px}
.sim b{font-weight:700}
.cols2.inst{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.steps{display:flex;flex-direction:column}
.step{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 18px;border-top:1px solid var(--line2);min-height:64px}
.step:first-child{border-top:0}
.st-t{display:flex;flex-direction:column;min-width:0}
.st-t b{font-weight:600}
.st-t .mut{font-size:12.5px}
.st-r{font-size:12.5px;text-align:right;white-space:nowrap}
.ico{width:28px;height:28px;border-radius:50%;border:1.5px solid #CBD2DA;display:grid;place-items:center;position:relative}
.ico .spin,.ico .ok{position:absolute;opacity:0}
.step.run .ico{border-color:var(--brand)}
.step.run .spin{opacity:1;width:14px;height:14px;border-radius:50%;border:2px solid var(--brand-t2);border-top-color:var(--brand);animation:rot .7s linear infinite}
.step.good .ico{background:var(--ok);border-color:var(--ok);color:#fff}
.step.good .ok{opacity:1;display:grid;place-items:center}
.step.good .st-r{color:var(--ok);font-weight:600}
.step.run .st-r{color:var(--brand)}
@keyframes rot{to{transform:rotate(360deg)}}
.card.done #inst-title,.done h2{color:var(--ok)}
.flow{padding:4px 18px 20px;display:flex;flex-direction:column;align-items:stretch;gap:0}
.bx{border:1.5px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;background:#fff;transition:.25s}
.bx b{font-weight:600;font-size:13.5px}
.bx span{font-size:12.5px;color:var(--mut)}
.bx.good{border-color:var(--ok);background:var(--okb)}
.ln{width:2px;height:16px;background:var(--line);margin:0 auto}
.side-bx{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.bx.s{padding:8px 10px}

/* ── Connexion ── */
.login{flex:1;display:grid;grid-template-columns:minmax(380px,520px) minmax(0,1fr);min-height:0}
.lg-main{background:#fff;border-right:1px solid var(--line);padding:40px 48px;display:flex;align-items:center}
.lg-box{width:100%;max-width:420px;margin:0 auto}
.lg-box h1{font-size:26px;font-weight:650;letter-spacing:-.015em}
.lead{color:var(--mut);margin:4px 0 18px;font-size:15px}
.demo-list{display:flex;flex-direction:column;gap:8px}
.demo{display:flex;align-items:center;gap:14px;text-align:left;width:100%;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:72px}
.demo:hover{border-color:var(--brand);background:var(--brand-t)}
.demo .dt{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.35}
.demo b{font-size:15px;font-weight:600}
.demo .dd{font-size:12.5px;color:var(--mut)}
.demo .go{color:var(--brand)}
.or{display:flex;align-items:center;gap:12px;color:var(--mut);font-size:12.5px;margin:20px 0 14px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.lg-form{display:flex;flex-direction:column;gap:12px}
.lg-side{padding:48px;display:flex;flex-direction:column;justify-content:center;gap:12px;min-width:0;overflow:hidden}
.lg-side .cap{font-size:13px;color:var(--mut);font-weight:550}
.prev{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px rgba(20,32,43,.06)}
.prev .gridwrap{--namew:172px;--rh:34px;pointer-events:none}
.login-brand{display:none}
body[data-page=connexion] .login::before{content:none}
.lg-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}

/* ── Téléphone ── */
.backdrop{display:none}
@media (max-width:1180px){
  .split.has-side{grid-template-columns:minmax(0,1fr) 330px}
  .acc .lh,.acc .li{grid-template-columns:minmax(180px,1.4fr) 100px minmax(90px,1fr) 190px 64px 56px 80px 92px}
  .hist .list .lh,.hist .list .li{grid-template-columns:minmax(190px,1.3fr) 140px 50px 96px minmax(0,1.6fr) 90px}
}
@media (max-width:900px){
  .cols2,.cols2.inst{grid-template-columns:1fr}
}
@media (max-width:760px){
  :root{--namew:104px;--colw:40px;--rh:44px}
  body{padding-bottom:64px}
  .top{padding:0 12px;gap:8px;height:52px}
  .brand{gap:8px}
  .brand img{width:24px;height:24px}
  .word{font-size:10px;letter-spacing:.34em;margin-right:-.34em}
  .prod{font-size:14px;padding-left:10px}
  .wt{display:none}
  .back{display:none}
  .back-m{display:flex!important}
  .prod .esp{font-size:11.5px}
  .prod{gap:6px;padding-left:8px}
  .prod b{font-size:13px}
  .bal-strip{display:grid;grid-template-columns:1fr 1fr}
  .bs{border-left:0;border-top:1px solid var(--line)}
  .bs:nth-child(-n+2){border-top:0}
  .bs:nth-child(even){border-left:1px solid var(--line)}
  .tb-new{width:100%;margin-left:0;order:-1}
  .tb-new .btn{flex:1}
  .setts .set{flex-direction:column;align-items:flex-start}
  .set .st-sel{width:100%}
  .seg3.four label{font-size:11.5px}
  .chip-u{padding:2px;gap:2px;min-width:44px;justify-content:center}
  .chip-u .av{width:32px;height:32px}
  .menu{position:fixed;right:12px;top:100px}
  .nav{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);height:60px;justify-content:space-around;gap:0;padding:0 4px;box-shadow:0 -4px 16px rgba(20,32,43,.06)}
  .nav a{flex:1;justify-content:center;height:60px;padding:0 2px;font-size:12.5px;border-bottom:0;border-top:2px solid transparent;margin:0;text-align:center}
  .nav a[aria-current=page]{border-top-color:var(--brand);color:var(--brand)}
  .page{padding:12px 12px 20px}
  .pg-head{gap:10px}
  .pg-head h1{font-size:19px}
  .bal-strip{width:100%}
  .bs{min-width:0;padding:8px 10px}
  .bs .v{font-size:17px}
  .bs .s{font-size:11px}
  .toolbar{gap:8px}
  .tb-month{width:100%;justify-content:space-between}
  .mname{font-size:17px;min-width:0;flex:1}
  .ib{width:44px;height:44px}
  .btn{min-height:44px}
  .btn.sm{min-height:44px;padding:0 12px}
  .tb-team{width:100%;display:flex}
  .tb-team button{flex:1;padding:0 4px;min-height:44px;font-size:12.5px}
  .seg button{min-height:44px}
  .who-n .full{display:none}
  .who-n .short{display:inline}
  .row>.nm .av{display:none}
  .row>.nm{padding:0 6px 0 8px;gap:4px}
  .row.pres .nm em{display:none}
  .row.pres .nm{padding-right:4px}
  .row.pres .nm .pn{font-size:11.5px}
  .gh .cnt{display:none}
  .you{display:none}
  .row.mine .who-n{font-weight:650}
  .bar{top:9px;bottom:9px;font-size:11px}
  .d.h .nb{font-size:11.5px}
  .split.has-side{grid-template-columns:minmax(0,1fr)}
  .split{display:flex;flex-direction:column;gap:12px;align-items:stretch}
  .side.queue{order:-1}
  .side.sheet.open{position:fixed;left:0;right:0;bottom:0;z-index:70;max-height:90vh;overflow-y:auto;border-radius:16px 16px 0 0;background:#fff;box-shadow:0 -12px 40px rgba(20,32,43,.25)}
  .side.sheet .panel{border:0;border-radius:16px 16px 0 0;animation:up .22s ease-out}
  @keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
  .side.sheet .p-head{position:sticky;top:0;background:#fff;z-index:2}
  .side.sheet .p-foot{position:sticky;bottom:0;border-radius:0}
  .backdrop{display:block;position:fixed;inset:0;background:rgba(20,32,43,.4);z-index:65}
  .legend{font-size:11.5px}
  .foot{padding:10px 12px;flex-wrap:wrap}
  #toast{bottom:76px}
  /* listes en cartes */
  .list .lh{display:none}
  .hist .list .li{grid-template-columns:1fr auto;grid-template-areas:"per st" "typ j" "det det" "act act";padding:12px;gap:4px 10px}
  .hist .c-per{grid-area:per}.hist .c-st{grid-area:st;justify-self:end}.hist .c-typ{grid-area:typ}.hist .c-j{grid-area:j}.hist .c-d{grid-area:det}.hist .c-a{grid-area:act}
  .hist .c-j::after{content:" j";color:var(--mut)}
  .hist .c-a:empty{display:none}
  .acc .li{grid-template-columns:1fr 1fr;padding:12px;gap:6px 10px}
  .acc .c-nom{grid-column:1 / -1}
  .acc [data-l]::before{content:attr(data-l) " : ";color:var(--mut);font-size:12px}
  .acc .r{text-align:left;justify-content:flex-start}
  .acc .c-e,.acc .c-a{grid-column:auto}
  .teams .li{grid-template-columns:1fr 1fr;padding:12px;gap:6px 10px}
  .teams [data-l]::before{content:attr(data-l) " : ";color:var(--mut);font-size:12px}
  .teams .r{text-align:left}
  .fer{columns:1}
  .step{padding:12px;grid-template-columns:32px minmax(0,1fr)}
  .step .st-r{grid-column:2;text-align:left}
  .card-h.row-h{flex-wrap:wrap}
  .login{display:block}
  .lg-main{padding:24px 16px;border:0;min-height:calc(100vh - 80px)}
  .lg-side{display:none}
  .lg-box h1{font-size:23px}
  .side-bx{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
