:root{--paper: #f7f7f4;--panel: #ffffff;--ink: #21231f;--muted: #70746b;--line: #e1e2da;--line-strong: #c9cbc1;--accent: #2d5b8a;--accent-ink: #ffffff;--pos: #2e7d4f;--neg: #b3372e;--sans: "Avenir Next", "Segoe UI", system-ui, sans-serif;--mono: "SF Mono", "Cascadia Mono", "JetBrains Mono", ui-monospace, Menlo, monospace}@media(prefers-color-scheme:dark){:root{--paper: #17191b;--panel: #1e2124;--ink: #e7e6e1;--muted: #9a9e95;--line: #2c2f31;--line-strong: #3c4043;--accent: #7fa8d9;--accent-ink: #14273c;--pos: #6fbf8f;--neg: #e07a6e}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,tr:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.shell{max-width:1060px;margin:0 auto;padding:0 20px 80px}.appbar{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:26px 0 14px;border-bottom:2px solid var(--ink)}.wordmark{display:flex;flex-direction:column;gap:2px}.wordmark .name{font-weight:700;letter-spacing:.22em;font-size:15px;text-transform:uppercase}.wordmark .name span{color:var(--accent)}.wordmark .role{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.appbar .exercice{font-family:var(--mono);font-size:13px;color:var(--muted);white-space:nowrap}.error-banner{margin:14px 0 0;padding:10px 14px;font-size:13.5px;border:1px solid var(--neg);color:var(--neg);background:var(--panel)}.view{margin-top:26px}.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}h1{font-size:26px;font-weight:600;margin:0;text-wrap:balance}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--pos)}.neg{color:var(--neg)}.btn{border:1px solid var(--line-strong);background:var(--panel);border-radius:3px;padding:7px 14px;font-size:13.5px;transition:border-color .12s ease,background .12s ease}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{color:var(--accent-ink);filter:brightness(1.08)}.btn-back{border:none;background:none;padding:0;font-size:13.5px;color:var(--accent)}.btn-back:hover{text-decoration:underline}.table-wrap{overflow-x:auto;margin-top:18px;border:1px solid var(--line);background:var(--panel)}table{border-collapse:collapse;width:100%;min-width:540px}th{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;color:var(--muted);text-align:right;padding:12px 16px 10px;border-bottom:1px solid var(--line-strong)}th:first-child{text-align:left}th.col-bar{width:150px}td{padding:10px 16px;border-bottom:1px solid var(--line);text-align:right;font-size:14px}td:first-child{text-align:left;font-weight:500}tbody tr.has-data{cursor:pointer}tbody tr.has-data:hover td{background:color-mix(in srgb,var(--accent) 7%,transparent)}tbody tr.future td{color:var(--muted)}tbody tr.future .num{opacity:.45}tfoot td{border-top:2px solid var(--ink);border-bottom:none;font-weight:600;padding-top:12px;padding-bottom:14px}.bar-cell{padding-right:20px}.bar{position:relative;height:8px;width:130px;margin-left:auto}.bar:before{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--line-strong)}.bar i{position:absolute;top:0;height:100%;display:block}.bar i.p{left:50%;background:var(--pos)}.bar i.n{right:50%;background:var(--neg)}@media(max-width:620px){table{min-width:340px}th:nth-child(2),td:nth-child(2),th:nth-child(3),td:nth-child(3){display:none}th,td{padding-left:10px;padding-right:10px}.bar-cell{padding-right:12px}}.sheet{border:1px solid var(--line);background:var(--panel);margin-top:18px}.cols{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr}.col{display:flex;flex-direction:column;border-right:1px solid var(--line-strong);min-width:0}.col:last-child{border-right:none}.col-head{padding:14px 14px 6px}.col-head .t{display:inline-block;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;border-bottom:2px solid currentColor;padding-bottom:3px}.col.income .col-head .t{color:var(--accent)}.subhead{display:flex;justify-content:space-between;gap:10px;padding:8px 14px 6px;border-bottom:1px solid var(--line-strong);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.rows{list-style:none;margin:0;padding:0;flex:1}.rows li{display:flex;align-items:baseline;gap:8px;padding:7px 14px;border-bottom:1px solid var(--line);font-size:13.5px}.rows li:last-child{border-bottom:none}.rows .lbl{flex:1;min-width:0;overflow-wrap:anywhere}.rows .del{border:none;background:none;color:var(--muted);padding:0 2px;font-size:15px;line-height:1;opacity:0;transition:opacity .1s ease}.rows li:hover .del,.rows .del:focus-visible{opacity:1}.rows .del:hover{color:var(--neg)}.rows .del.confirming{opacity:1;background:var(--neg);color:var(--panel);border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600;white-space:nowrap}@media(hover:none){.rows .del{opacity:1}}.empty{padding:14px 16px;color:var(--muted);font-size:13px;font-style:italic;flex:1}.col-total{margin-top:auto;border-top:1px solid var(--line-strong);padding:10px 14px;display:flex;justify-content:space-between;gap:10px;font-weight:600;font-size:13.5px}.col-total .k{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);align-self:baseline}.bilan{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}.bilan .cell{padding:13px 16px;border-right:1px solid var(--line)}.bilan .cell:last-child{border-right:none}.bilan .k{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.bilan .v{font-size:19px;margin-top:3px;font-weight:600}.addrow{display:grid;grid-template-columns:1fr 34px;gap:8px;padding:10px 12px;border-top:1px dashed var(--line-strong);transition:background .12s ease}.addrow input{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:3px;padding:6px 9px;font-size:13.5px;min-width:0}.addrow input::placeholder{color:var(--muted)}.addrow .in-label{grid-column:1 / -1}.addrow .in-amount{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.addrow button{border:1px solid var(--accent);color:var(--accent);background:none;border-radius:3px;font-size:17px;line-height:1;transition:background .12s ease,color .12s ease}.addrow button:hover{background:var(--accent);color:var(--accent-ink)}.addrow.armed{background:color-mix(in srgb,var(--accent) 7%,transparent)}.addrow.armed input{border-color:var(--accent)}.addrow.armed button{background:var(--accent);color:var(--accent-ink)}.export-btns{display:flex;gap:8px;flex-wrap:wrap}.month-nav .btn-export{width:auto;height:30px;padding:0 12px}.month-nav .btn-export:nth-of-type(3){margin-left:10px}.month-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.month-nav button{border:1px solid var(--line-strong);background:var(--panel);border-radius:3px;width:30px;height:30px;line-height:1}.month-nav button:disabled{opacity:.35;cursor:default}.month-nav button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}@media(max-width:980px){.cols{grid-template-columns:1fr 1fr}.col{border-bottom:1px solid var(--line-strong)}.col:nth-child(2n){border-right:none}}@media(max-width:620px){.cols{grid-template-columns:1fr}.col{border-right:none}.bilan{grid-template-columns:1fr}.bilan .cell{display:flex;align-items:baseline;justify-content:space-between;border-right:none;border-bottom:1px solid var(--line)}.bilan .cell:last-child{border-bottom:none}.bilan .v{margin-top:0;font-size:16px}}.mini-bilan{display:none}@media(max-width:620px){.mini-bilan{display:flex;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:10;background:var(--panel);border:1px solid var(--line);border-bottom:2px solid var(--ink);padding:8px 12px;margin-top:14px}.mini-bilan .cell{display:flex;flex-direction:column;gap:1px;min-width:0}.mini-bilan .cell:last-child{text-align:right}.mini-bilan .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.mini-bilan .num{font-size:12.5px;font-weight:600}}@media(max-width:620px){.appbar{flex-direction:column;align-items:flex-start;gap:6px;padding:18px 0 12px}.appbar .exercice{font-size:12px}}.footer{margin-top:48px;padding-top:14px;border-top:1px solid var(--line);text-align:center;font-size:12px;color:var(--muted)}.footer a{color:var(--accent);text-decoration:none}.footer a:hover{text-decoration:underline}.login-wrap .footer{border-top:none;margin-top:18px}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:20px}.login{display:flex;flex-direction:column;gap:12px;width:min(340px,100%);padding:28px;border:1px solid var(--line);background:var(--panel)}.login .wordmark{margin-bottom:10px}.login label{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.login input{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:3px;padding:9px 11px;font-size:15px}.login-error{margin:0;font-size:13px;color:var(--neg)}
