:root{--aside:268px;--paper:#f6f7f6;--surface:#ffffff;--ink:#141a1d;--ink-soft:#5c666c;--line:#dfe4e3;--line-strong:#c4ccca;--held:#98a2a8;--free:#1f6f5c;--warn:#b4762a;--risk:#a63a2f;--radius:4px;--rail:216px;--bar:62px}[data-theme=dark]{--paper:#0e1214;--surface:#161c1f;--ink:#e8edec;--ink-soft:#8a959a;--line:#242d31;--line-strong:#36444a;--held:#6c777d;--free:#4fa88e;--warn:#d2984a;--risk:#d06a5c}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:Instrument Sans,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--free);outline-offset:2px}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.015em}.right{text-align:right}.soft{color:var(--ink-soft)}.ok{color:var(--free)}.warn{color:var(--warn)}.risk{color:var(--risk)}.shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr) var(--aside);min-height:100vh}main{padding:24px 32px 60px;max-width:1080px;width:100%;min-width:0}.side{border-left:1px solid var(--line);padding:24px 20px;align-self:start}.rail,.side{position:-webkit-sticky;position:sticky;top:0}.rail{border-right:1px solid var(--line);padding:22px 0;height:100vh}.brand{padding:0 20px 20px;font-weight:600;letter-spacing:-.02em}.brand span{display:block;font-weight:400;font-size:12.5px}.brand span,.nav a{color:var(--ink-soft)}.nav a{display:flex;align-items:center;gap:10px;padding:9px 20px;font-size:14.5px;border-left:2px solid transparent}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--ink);border-left-color:var(--free);font-weight:500;background:color-mix(in srgb,var(--free) 6%,transparent)}.nav hr{border:0;border-top:1px solid var(--line);margin:14px 20px}.nav .glyph{width:18px;text-align:center;opacity:.75}.tabbar{display:none}@media (max-width:1180px){.shell{grid-template-columns:var(--rail) minmax(0,1fr)}.side{grid-column:2;border-left:0;border-top:1px solid var(--line);position:static;padding:18px 32px 40px}.side .cal-head,.side .cal-legend,.side .stamp{text-align:left;justify-content:flex-start}.side .calendar{max-width:320px}}@media (max-width:860px){.shell{grid-template-columns:1fr}.rail{display:none}.side{grid-column:1;padding:16px 16px 30px}main{padding:16px 16px calc(var(--bar) + 28px + env(safe-area-inset-bottom))}.tabbar{display:grid;position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:40}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px;min-height:var(--bar);font-size:10.5px;color:var(--ink-soft)}.tabbar a[aria-current=page]{color:var(--free);font-weight:600}.tabbar .glyph{font-size:17px;line-height:1}}.topline{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.topline h1{font-size:24px;font-weight:600;letter-spacing:-.025em}.topline p{color:var(--ink-soft);font-size:14px;margin-top:2px}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}.segmented a{padding:8px 15px;font-size:14px;color:var(--ink-soft)}.segmented a+a{border-left:1px solid var(--line)}.segmented a[aria-current=page]{background:var(--ink);color:var(--paper);font-weight:500}section.block{margin-bottom:30px}.block>h2{font-size:14px;font-weight:600;padding-bottom:9px;border-bottom:1px solid var(--line-strong);display:flex;justify-content:space-between;align-items:baseline;gap:12px}.block>h2 em{font-style:normal;font-weight:400}.block>h2 em,.foot-note{font-size:13px;color:var(--ink-soft)}.foot-note{margin-top:10px}.cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:30px;gap:30px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.stats>div{background:var(--surface);padding:13px 15px 15px}.stats .k{font-size:12.5px;color:var(--ink-soft)}.stats .v{font-size:21px;font-weight:600;letter-spacing:-.02em;margin-top:4px}.stats .n{font-size:12px;color:var(--ink-soft);margin-top:2px}.bar{display:flex;height:46px;width:100%;border-radius:3px;overflow:hidden;background:var(--line)}.seg-vat{background:var(--held)}.seg-soc{background:color-mix(in srgb,var(--held) 72%,var(--ink))}.seg-eng{background:color-mix(in srgb,var(--held) 45%,var(--ink))}.seg-free{background:var(--free)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12.5px;font-weight:500;color:var(--ink-soft);padding:10px 10px 8px 0}td,th{border-bottom:1px solid var(--line)}td{padding:11px 10px 11px 0;font-size:14px;vertical-align:top}td:last-child,th:last-child{padding-right:0}td small{display:block;color:var(--ink-soft);font-size:12.5px;margin-top:2px}@media (max-width:640px){.cols{grid-template-columns:1fr;gap:22px}table.stack thead{display:none}table.stack tr{display:grid;grid-template-columns:1fr auto;grid-gap:2px 10px;gap:2px 10px;padding:11px 0;border-bottom:1px solid var(--line)}table.stack td{display:block;border:0;padding:0}table.stack td.right{text-align:right}table.stack td.full{grid-column:1/-1}}.tag{display:inline-block;font-size:11.5px;border:1px solid var(--line-strong);border-radius:3px;padding:1px 7px;color:var(--ink-soft);white-space:nowrap}.tag.ok{color:var(--free);border-color:var(--free)}.tag.warn{color:var(--warn);border-color:var(--warn)}.tag.risk{color:var(--risk);border-color:var(--risk)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:0 16px;gap:0 16px;margin-top:14px;align-items:start}.form-grid .wide{grid-column:span 2}.field{margin-bottom:15px}.field label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:5px}.field input,.field select,.field textarea{font:inherit;width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:16px;padding:10px 11px;min-height:44px}.field .hint{font-size:12.5px;color:var(--ink-soft);margin-top:4px}.checks-inline{display:flex;flex-direction:column;gap:10px;padding-top:20px}.checks-inline label{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--ink)}.checks-inline input{width:auto;min-height:0;accent-color:var(--free)}button{font:inherit;cursor:pointer;border-radius:var(--radius)}button.primary{font-size:15px;font-weight:500;padding:11px 20px;min-height:44px;border:1px solid var(--ink);background:var(--ink);color:var(--paper)}button.primary:disabled{opacity:.5;cursor:default}button.ghost{font-size:13.5px;padding:8px 12px;min-height:38px;border:1px solid var(--line-strong);background:none;color:var(--ink-soft)}button.ghost:hover{color:var(--ink)}button.link{border:0;background:none;color:var(--ink-soft);font-size:13px;padding:4px 0;text-decoration:underline}.form-grid button{margin-top:20px}.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{min-height:38px;font-size:14px;padding:7px 9px}details.panel{border:1px solid var(--line-strong);border-radius:var(--radius);margin-top:14px}details.panel>summary{padding:12px 15px;font-size:14.5px;font-weight:500;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}details.panel>summary::-webkit-details-marker{display:none}details.panel>summary:after{content:"+";color:var(--ink-soft);font-size:18px}details.panel[open]>summary:after{content:"−"}details.panel[open]>summary{border-bottom:1px solid var(--line)}details.panel .body{padding:4px 15px 15px}.message{border-left:3px solid var(--line-strong);padding:11px 14px;margin-bottom:16px;font-size:14px;border-radius:0 var(--radius) var(--radius) 0;background:var(--surface)}.message.error{border-color:var(--risk);color:var(--risk)}.message.ok{border-color:var(--free);color:var(--free)}.message.warn{border-color:var(--warn)}.message code{font-size:12.5px;opacity:.75}.message strong{display:block;margin-bottom:2px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px}.auth-card h1{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:4px}.auth-card p.lead{color:var(--ink-soft);font-size:14px;margin-bottom:24px}.auth-card button{width:100%;margin-top:6px}@media print{.rail,.segmented,.tabbar,button,details.panel{display:none!important}.shell{grid-template-columns:1fr}main{padding:0;max-width:none}body{font-size:11pt;background:#fff}section.block{page-break-inside:avoid;break-inside:avoid}}.chart{margin-top:14px}.chart svg{width:100%;height:210px;display:block}.legend-inline{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft);margin-top:8px}.legend-inline i{display:inline-block;width:16px;height:2px;vertical-align:middle;margin-right:6px}.donut{display:flex;gap:24px;align-items:center;margin-top:14px;flex-wrap:wrap}.donut svg{width:148px;height:148px;flex:none}.donut ul{list-style:none;flex:1 1;min-width:220px}.donut li{display:grid;grid-template-columns:12px 1fr auto auto;grid-gap:10px;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}.donut li:last-child{border-bottom:0}.donut li i{width:10px;height:10px;border-radius:2px}.donut .pct{color:var(--ink-soft);font-size:12.5px;width:42px;text-align:right}.ranked{margin-top:14px}.ranked .row{display:grid;grid-template-columns:minmax(120px,1.1fr) 2fr auto 46px;grid-gap:12px;gap:12px;align-items:center;padding:7px 0;font-size:13.5px}.ranked .track{background:var(--line);height:9px;border-radius:5px;overflow:hidden}.ranked .track i{display:block;height:100%;border-radius:5px}.ranked .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ranked .pct{color:var(--ink-soft);font-size:12.5px;text-align:right}@media (max-width:640px){.chart svg{height:180px}.ranked .row{grid-template-columns:1fr auto;grid-template-areas:"lbl num" "track track";gap:4px 10px}.ranked .lbl{grid-area:lbl}.ranked .num{grid-area:num}.ranked .track{grid-area:track}.ranked .pct{display:none}.donut{gap:16px}.donut svg{width:120px;height:120px;margin:0 auto}}.contact-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:12px;gap:12px;margin-top:14px}.contact-card{border:1px solid var(--line-strong);border-radius:var(--radius);padding:13px 14px}.contact-card .name{font-weight:600;font-size:15px}.contact-card .role{font-size:12.5px;color:var(--ink-soft);margin-bottom:7px}.contact-card .line{display:block;font-size:14px;color:var(--free);padding:3px 0}.contact-card .ref{font-size:12.5px;color:var(--ink-soft);margin-top:5px}.stamp{text-align:right}.stamp .d{font-size:14px;color:var(--ink);text-transform:capitalize}.stamp .t{font-size:12.5px;color:var(--ink-soft)}@media (max-width:640px){.stamp{text-align:left}}.calendar{margin-top:10px;min-width:232px}.cal-head{font-size:12.5px;color:var(--ink-soft);text-transform:capitalize;text-align:right;margin-bottom:5px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cal-dow{font-size:10px;color:var(--ink-soft);text-align:center;padding-bottom:2px}.cal-day{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:12px;border-radius:3px;color:var(--ink);border:1px solid transparent;min-height:28px}.cal-day.off{color:var(--ink-soft)}.cal-day.past{opacity:.38}.cal-day.today{border-color:var(--ink);font-weight:600}.cal-day.due{background:color-mix(in srgb,var(--risk) 13%,transparent);color:var(--risk);font-weight:600}.cal-day.in{background:color-mix(in srgb,var(--free) 15%,transparent);color:var(--free);font-weight:600}.cal-day .dot{position:absolute;bottom:3px;width:3px;height:3px;border-radius:50%}.cal-day .dot.out{background:var(--risk);transform:translateX(-3px)}.cal-day .dot.in{background:var(--free);transform:translateX(3px)}.cal-day.due .dot.out,.cal-day.in .dot.in{transform:none}.cal-day.both{background:linear-gradient(135deg,color-mix(in srgb,var(--free) 15%,transparent) 50%,color-mix(in srgb,var(--risk) 13%,transparent) 50%);font-weight:600}.cal-day:hover{border-color:var(--line-strong)}.cal-legend{display:flex;gap:14px;font-size:11.5px;color:var(--ink-soft);margin-top:7px;justify-content:flex-end}.cal-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px}.cal-legend i.due{background:color-mix(in srgb,var(--risk) 40%,transparent)}.cal-legend i.in{background:color-mix(in srgb,var(--free) 40%,transparent)}@media (max-width:640px){.calendar{width:100%}.cal-head,.cal-legend{text-align:left;justify-content:flex-start}}details.panel.charge>summary{padding:11px 15px}.charge-name{display:block;font-weight:500}.charge-name small{display:block;font-weight:400;color:var(--ink-soft);font-size:12.5px;margin-top:2px}.charge-amount{margin-left:auto;margin-right:14px;font-weight:600}details.panel.charge{margin-top:8px}button.ghost.danger{color:var(--risk);border-color:color-mix(in srgb,var(--risk) 45%,var(--line-strong))}button.ghost.danger:hover{color:var(--risk);border-color:var(--risk)}.segmented.tabs{display:flex;flex-wrap:wrap;margin-bottom:22px;max-width:100%}.segmented.tabs a{flex:1 1 auto;text-align:center;white-space:nowrap}@media (max-width:640px){.segmented.tabs{border:0;gap:6px}.segmented.tabs a{border:1px solid var(--line-strong);border-radius:var(--radius);flex:0 1 auto;font-size:13px;padding:7px 12px}.segmented.tabs a+a{border-left:1px solid var(--line-strong)}}.montants-masques .num{filter:blur(5px);transition:filter .12s}.montants-masques .num:focus-within,.montants-masques .num:hover{filter:none}