:root{--bg: #f3f5f4;--surface: #ffffff;--surface-2: #eaefed;--ink: #17252a;--muted: #5d6b6f;--line: #d5dddb;--accent: #0f5c66;--accent-ink: #ffffff;--accent-soft: #dcecee;--saisie: #fff7d1;--saisie-line: #e5d48a;--ok: #1f7a4d;--ok-soft: #dff1e6;--warn: #9a6200;--warn-soft: #fbecc8;--bad: #b3261e;--bad-soft: #f8dedb;--info-soft: #e7e9f5;--info: #3a4795;--shadow: 0 1px 2px rgba(23, 37, 42, .06), 0 4px 16px rgba(23, 37, 42, .05);--f-display: "Familjen Grotesk", "Segoe UI", system-ui, sans-serif;--f-body: "Public Sans", "Segoe UI", system-ui, sans-serif;--f-num: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--r: 8px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #101a1d;--surface: #172327;--surface-2: #1e2d31;--ink: #e5eeec;--muted: #9aaaad;--line: #2c3d41;--accent: #5fb7c1;--accent-ink: #0b1c1f;--accent-soft: #19393e;--saisie: #3a3418;--saisie-line: #6b5d24;--ok: #6fd19c;--ok-soft: #173326;--warn: #f0b955;--warn-soft: #3b2f15;--bad: #ff8a80;--bad-soft: #3e1f1d;--info-soft: #252b48;--info: #aab4f0;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #101a1d;--surface: #172327;--surface-2: #1e2d31;--ink: #e5eeec;--muted: #9aaaad;--line: #2c3d41;--accent: #5fb7c1;--accent-ink: #0b1c1f;--accent-soft: #19393e;--saisie: #3a3418;--saisie-line: #6b5d24;--ok: #6fd19c;--ok-soft: #173326;--warn: #f0b955;--warn-soft: #3b2f15;--bad: #ff8a80;--bad-soft: #3e1f1d;--info-soft: #252b48;--info: #aab4f0;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--f-body)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.2}h1{font-size:1.6rem;font-weight:700;letter-spacing:-.01em}h2{font-size:1.12rem;font-weight:700}h3{font-size:.95rem;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-family:var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.muted{color:var(--muted)}.small{font-size:.82rem}.eyebrow{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}.rail{background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.brand{display:flex;gap:10px;align-items:center;padding:0 6px 6px}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:700 15px var(--f-display)}.brand b{font-family:var(--f-display);display:block;font-size:1rem}.brand span{font-size:.75rem;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none;font-weight:500}.nav a:hover{background:var(--surface-2)}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:700}.nav .grp{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 10px 4px;font-weight:600}.nav svg{width:17px;height:17px;flex:none}.rail-foot{margin-top:auto;font-size:.75rem;color:var(--muted);padding:0 6px;display:flex;flex-direction:column;gap:6px}.main{min-width:0;padding-block:22px 60px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:18px}.page-head{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end;justify-content:space-between}.page-head p{margin:4px 0 0;color:var(--muted);max-width:70ch}@media(max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.rail{position:sticky;top:env(safe-area-inset-top,0px);height:auto;z-index:5;flex-direction:row;align-items:center;padding:8px max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px));border-right:0;border-bottom:1px solid var(--line);overflow-x:auto;overflow-y:hidden;gap:8px}.brand{padding:0}.brand div{display:none}.nav{flex-direction:row}.nav .grp,.rail-foot{display:none}.nav a{white-space:nowrap;padding:7px 10px}.main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-top:16px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}.card-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:14px 16px 10px}.card-body{padding:0 16px 16px}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}.kpi .v{font:600 1.25rem var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:-.03em;overflow-wrap:anywhere}.kpi .u{font-size:.75rem;color:var(--muted)}.kpi.hero{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.kpi.hero .eyebrow,.kpi.hero .u{color:inherit;opacity:.85}.kpi.bad .v{color:var(--bad)}.kpi.ok .v{color:var(--ok)}.kpi.warn .v{color:var(--warn)}.rows{display:flex;flex-direction:column}.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line);align-items:baseline}.row:last-child{border-bottom:0}.row .v{font-family:var(--f-num);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.row.total{border-top:2px solid var(--ink);border-bottom:0;font-weight:700;padding-top:8px;margin-top:2px}.row.sub{padding-left:14px;color:var(--muted);font-size:.9rem}.row.strong .v{font-weight:700}.tbl-wrap{overflow-x:auto;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:.87rem}th,td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}th{position:sticky;top:0;background:var(--surface-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;z-index:1;white-space:nowrap}td.n,th.n{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums;white-space:nowrap}tr.tot td{font-weight:700;border-top:2px solid var(--ink);background:var(--surface-2)}tbody tr:hover td{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}td.sticky,th.sticky{position:sticky;left:0;background:var(--surface);z-index:2}th.sticky{z-index:3;background:var(--surface-2)}.tbl-tall{max-height:70vh;overflow:auto}.in{background:var(--saisie);border:1px solid var(--saisie-line);border-radius:5px;padding:5px 7px;width:100%;min-width:0}.in:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);background:var(--surface)}.in.n{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums}.in.xs{width:52px}.in.sm{width:92px}.in.md{width:132px}.in.inherit{background:transparent;border-style:dashed;color:var(--muted)}.in:disabled{background:transparent;border-color:transparent;color:var(--ink)}select.in{padding-right:4px}label.f{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--muted);font-weight:600;min-width:0}label.f>.in{font-weight:400;color:var(--ink);font-size:.9rem}.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.check{display:inline-flex;gap:8px;align-items:center;font-size:.88rem}.btn{border:1px solid var(--line);background:var(--surface);padding:7px 12px;border-radius:7px;cursor:pointer;font-weight:600;display:inline-flex;gap:6px;align-items:center;white-space:nowrap}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08);color:var(--accent-ink)}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}.btn.ghost{border-color:transparent;background:transparent}.btn.sm{padding:4px 8px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.74rem;font-weight:700;white-space:nowrap}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.idle{background:var(--surface-2);color:var(--muted)}.chip.info{background:var(--info-soft);color:var(--info)}.months{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px}.months button{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:6px 10px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:64px}.months button b{font-size:.88rem}.months button span{font-size:.66rem;color:var(--muted);display:flex;gap:4px;align-items:center}.months button span i{width:6px;height:6px;border-radius:50%;background:var(--line);display:inline-block}.months button span i.on{background:var(--ok)}.months button span i.due{background:var(--warn)}.months button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.months button[aria-pressed=true] span{color:inherit;opacity:.85}.yeargrid td.cell{padding:3px}.cellbtn{width:100%;min-width:74px;border:1px solid transparent;border-radius:6px;padding:4px 6px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:0;background:var(--surface-2);line-height:1.25}.cellbtn small{font-size:.68rem;opacity:.85}.cellbtn .num{font-size:.78rem}.cellbtn.PAY\c9 {background:var(--ok-soft);color:var(--ok)}.cellbtn.PARTIEL{background:var(--warn-soft);color:var(--warn)}.cellbtn.IMPAY\c9 {background:var(--bad-soft);color:var(--bad)}.cellbtn.\c0 {background:var(--surface-2);color:var(--muted)}.cellbtn.Pas,.cellbtn.Exon\e9r\e9 {background:transparent;color:var(--muted);border:1px dashed var(--line)}.cellbtn:hover{border-color:var(--accent)}.note{background:var(--info-soft);color:var(--info);border-radius:7px;padding:9px 12px;font-size:.85rem}.alert{border-radius:7px;padding:9px 12px;font-weight:600;font-size:.9rem;display:flex;gap:8px;align-items:center}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert.bad{background:var(--bad-soft);color:var(--bad)}.empty{padding:36px 20px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:10px;align-items:center}.toast{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px));right:max(18px,env(safe-area-inset-right,0px));background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:8px;font-weight:600;z-index:50;box-shadow:var(--shadow)}.toast.err{background:var(--bad);color:#fff}.save-dot{display:inline-flex;gap:6px;align-items:center}.save-dot i{width:8px;height:8px;border-radius:50%;background:var(--ok)}.save-dot i.busy{background:var(--warn)}.overlay{position:fixed;inset:0;background:#0a141673;z-index:40;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.dialog{background:var(--surface);border-radius:12px;width:min(560px,100%);max-height:100%;overflow:auto;box-shadow:0 20px 60px #00000040}.dialog-head{padding:16px 18px 6px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.dialog-body{padding:8px 18px 18px;display:flex;flex-direction:column;gap:14px}.dialog-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.bars{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:8px}.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;height:100%;justify-content:flex-end}.bars .b i{display:block;width:100%;max-width:34px;background:var(--accent);border-radius:4px 4px 0 0;min-height:1px}.bars .b i.off{background:var(--line)}.bars .b small{font-size:.66rem;color:var(--muted)}.meter{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}.meter i{display:block;height:100%;background:var(--ok);border-radius:99px}.meter i.warn{background:var(--warn)}.meter i.bad{background:var(--bad)}.login{min-height:100%;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-left,0px))}.login .card{width:min(380px,100%);padding:22px;display:flex;flex-direction:column;gap:14px}@media(prefers-reduced-motion:no-preference){.toast{animation:rise .18s ease-out}@keyframes rise{0%{transform:translateY(8px);opacity:0}}}@media print{.rail,.toolbar,.btn{display:none!important}.shell{display:block}}.chat{display:flex;flex-direction:column;gap:12px;max-height:62vh;min-height:280px;overflow-y:auto;padding:4px 2px 8px}.bulle{max-width:min(760px,92%);padding:10px 13px;border-radius:12px;display:flex;flex-direction:column;gap:8px;min-width:0;overflow-wrap:anywhere}.bulle.user{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}.bulle.user p{margin:0;white-space:pre-wrap}.bulle.assistant{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:4px}.bulle.err{background:var(--bad-soft);color:var(--bad)}.md p{margin:0 0 6px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:0 0 6px;padding-left:20px}.md li{margin:2px 0}.md .md-h{font-family:var(--f-display);font-weight:700}.md code{font-family:var(--f-num);font-size:.85em;background:var(--surface);padding:0 4px;border-radius:4px}.outils{display:flex;flex-wrap:wrap;gap:4px}.action{background:var(--surface);border:1px solid var(--saisie-line);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.action.fait{border-color:var(--ok)}.action.annule{opacity:.65}.action dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:3px 12px;margin:0;font-size:.88rem}.action dt{color:var(--muted)}.action dd{margin:0;font-weight:600}.chat-input{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--line);padding-top:12px}.chat-input textarea{flex:1;resize:vertical;min-height:44px;font-size:.95rem}.sugg{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:720px}.sugg .btn{white-space:normal;text-align:left;font-weight:500}.constats{display:flex;flex-direction:column;gap:8px}.constat{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 10px;border-radius:8px;background:var(--surface-2)}.constat .chip{justify-content:center;text-transform:capitalize}.constat.critique{background:var(--bad-soft)}.constat.attention{background:var(--warn-soft)}@media(max-width:560px){.constat{grid-template-columns:minmax(0,1fr)}}.prev{display:flex;flex-direction:column;gap:6px}.prev-row{display:grid;grid-template-columns:70px minmax(0,1fr) 120px 70px;gap:10px;align-items:center;font-size:.88rem}.prev-bar{position:relative;height:14px;background:var(--surface-2);border-radius:4px}.prev-bar:after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--muted)}.prev-bar i{position:absolute;top:0;bottom:0;background:var(--ok);border-radius:3px}.prev-bar i.neg{background:var(--bad)}.prev-row .num{text-align:right}@media(max-width:560px){.prev-row{grid-template-columns:52px minmax(0,1fr) 96px}.prev-row>:last-child{display:none}}.brand .brand-mark{color:var(--accent-ink);font-size:15px}.months button{flex:none}.choix{display:flex;flex-wrap:wrap;gap:6px}.choix button{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--saisie-line);background:var(--saisie);color:var(--ink);border-radius:7px;font:500 13.5px var(--f-body);cursor:pointer}.choix button .box{width:15px;height:15px;border:1.5px solid var(--muted);border-radius:3px;display:grid;place-items:center;font-size:11px;line-height:1}.choix button[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.choix button[aria-checked=true] .box{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.choix button:disabled{opacity:.6;cursor:default}.rap td.n,.rap th.n{white-space:nowrap}.rap tr.p td{border-top:1.5px solid var(--line)}.rap .lib{color:var(--muted);font-size:12.5px}.portail{min-height:100vh;background:var(--bg)}.portail-head{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.portail .card{margin-bottom:14px}
