:root{--bg:#f6f7f9;--card:#fff;--text:#1c2430;--muted:#6b7686;--border:#e3e7ed;--accent:#2f6fde;--neg:#c2413a;--ok:#2f8f5b;--warn:#b7791f;--s1:#2a78d6;--s2:#eda100;--s3:#1baf7a;--s4:#6250d6;--s5:#eb6834;--s6:#e87ba4;--s7:#008300;--s8:#e34948;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#12151a;--card:#1b2028;--text:#e6e9ee;--muted:#8b95a5;--border:#2a313c;--accent:#6c9cf0;--neg:#f07a72;--ok:#5cc28c;--warn:#e0a84a;--s1:#3987e5;--s2:#c98500;--s3:#199e70;--s4:#9085e9;--s5:#d95926;--s6:#d55181;--s7:#008300;--s8:#e66767}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2{margin:0}h1{font-size:1.3rem}h2{font-size:1rem}.app{grid-template-columns:minmax(0,1fr);gap:16px;max-width:760px;margin:0 auto;padding:16px;display:grid}.topbar{justify-content:space-between;align-items:center;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}.muted{color:var(--muted)}.neg,.error{color:var(--neg)}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;display:grid}.kpi{gap:6px;display:grid}.kpi strong{font-variant-numeric:tabular-nums;font-size:1.4rem}.group header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding-bottom:10px;display:flex}.group header .amount{font-weight:600}.group ul{margin:0;padding:0;list-style:none}.group li{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.group li:last-child{border-bottom:none;padding-bottom:0}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px}button:disabled{opacity:.6;cursor:default}button.ghost{color:var(--muted);border:1px solid var(--border);background:0 0;padding:6px 12px}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{gap:14px;width:100%;max-width:360px;display:grid}label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 12px}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tab{color:var(--muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 14px}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.toolbar{gap:12px;display:grid}.month{align-items:center;gap:12px;display:flex}.month strong{text-align:center;min-width:150px;font-size:1.05rem}.chips{flex-wrap:wrap;gap:6px;display:flex}.pill{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:.9rem}.pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.group h3,.form h3{margin:0;font-size:1rem}.row{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.row-main{align-items:baseline;gap:12px;display:flex}.row .date{color:var(--muted);font-variant-numeric:tabular-nums;min-width:52px;font-size:.85rem}.row .label{overflow-wrap:anywhere;flex:1;min-width:0}.row-actions,.inline-form,.actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.row-actions button,.inline-form button,.link-panel button{padding:5px 10px;font-size:.85rem}.status-rapproche .label,.status-rapproche .amount{opacity:.75}.status-rapproche .row-main:before{content:"✓";color:var(--ok);font-weight:700}.status-ignore .label,.status-ignore .amount{color:var(--muted);text-decoration:line-through}.pos{color:var(--ok)}.chip{border:1px solid var(--border);color:var(--muted);vertical-align:1px;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:.72rem;display:inline-block}.chip.warn{border-color:var(--warn);color:var(--warn)}button.danger{color:var(--neg)}button.icon{padding:2px 8px}.inline-form label{font-size:.8rem}.inline-form input{width:150px;padding:6px 8px}.link-panel{border:1px solid var(--border);border-radius:10px;gap:8px;padding:10px;display:grid}.link-head{justify-content:space-between;align-items:center;display:flex}.link-panel ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.link-panel li{align-items:baseline;gap:10px;display:flex}.link-panel .date{color:var(--muted);min-width:52px;font-size:.85rem}.link-panel .label{overflow-wrap:anywhere;flex:1;min-width:0;font-size:.9rem}.form{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.form-grid .wide{grid-column:1/-1}select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 12px}.group li.row{justify-content:stretch;gap:8px;display:grid}.row-main .amount{text-align:right;margin-left:auto}.row-actions{padding-left:64px}@media (width<=480px){.row-actions{padding-left:0}}.check{border:1.5px solid var(--warn);color:#fff;background:0 0;border-radius:6px;flex:none;align-self:center;width:22px;height:22px;padding:0;font-size:.8rem;line-height:1}.check.on{background:var(--ok);border-color:var(--ok)}.row.tx.checked .label{color:var(--text)}.row.tx.unchecked{background:color-mix(in srgb, var(--warn) 8%, transparent);border-radius:8px}.chip.as-button{cursor:pointer;font:inherit;background:0 0;padding:2px 9px;font-size:.78rem}.chip.as-button.active{background:var(--warn);color:#fff}button.linklike{color:var(--accent);border:none;padding:8px 0 0;font-size:.88rem}.inline-form.edit{padding-left:64px}.inline-form .grow input{width:100%}.inline-form .error{width:100%;margin:0}.small{font-size:.82rem}.bank{white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;display:block;overflow:hidden}@media (width<=480px){.inline-form.edit{padding-left:0}}.intro{margin:0;font-size:.9rem}.notice{cursor:pointer;background:color-mix(in srgb, var(--ok) 14%, transparent);border:1px solid color-mix(in srgb, var(--ok) 40%, transparent);border-radius:8px;margin:0;padding:10px 12px}.block{margin-top:2px;font-size:.8rem;display:block}.row.rule.stopped .label,.row.rule.stopped .amount{opacity:.55}.rule-form{padding:6px 0}.check-label{color:var(--text);flex-direction:row;align-items:center;gap:8px;display:flex}.check-label input{width:auto}.version{text-align:center;color:var(--muted);opacity:.7;padding:8px 0 16px;font-size:.75rem}.import .chips{margin:4px 0 8px}.balance-check{border-radius:8px;margin:8px 0 0;padding:8px 10px;font-size:.9rem}.balance-check.ok{background:color-mix(in srgb, var(--ok) 12%, transparent)}.balance-check.ko{background:color-mix(in srgb, var(--warn) 15%, transparent)}details summary{cursor:pointer;padding:6px 0}input[type=file]{color:var(--muted)}.tabs{scrollbar-width:none;overflow:auto hidden}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap}textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;border-radius:8px;width:100%;padding:10px 12px;font-size:.85rem}.paste summary{cursor:pointer}.kpi small{font-size:.78rem}.settle{border-color:var(--warn);gap:8px;display:grid}.settle h3{margin:0;font-size:1rem}.statement .row-main{align-items:center}ul.nested{border-left:2px solid var(--border);margin:4px 0 0;padding:0 0 0 12px;list-style:none}.split{flex-wrap:wrap;gap:4px 20px;margin:4px 0 8px;display:flex}.note{color:var(--text);opacity:.8;font-size:.82rem;font-style:italic;display:block}.note:before{content:"✎ ";opacity:.6;font-style:normal}.inline-form .full{flex-basis:100%}.app.wide{max-width:1180px}.pointage{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.pointage-main{grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;display:grid}.accounts{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.acc-toggle{width:100%;color:var(--text);background:0 0;border-radius:0;justify-content:space-between;padding:12px 14px;font-weight:600;display:none}.acc-group header{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;padding:10px 14px;font-size:.8rem;font-weight:600;display:flex}.acc{text-align:left;width:100%;color:var(--text);border-bottom:1px solid var(--border);background:0 0;border-left:3px solid #0000;border-radius:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.acc:hover{background:var(--bg)}.acc.active{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.acc.child{padding-left:30px}.acc-name{gap:2px;min-width:0;font-size:.92rem;display:grid}.acc-name small{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;display:flex}.acc-name .chip{padding:0 6px;font-size:.7rem}.acc .amount{font-size:.9rem;font-weight:600}.acc-group:last-child .acc:last-child{border-bottom:none}@media (width>=900px){.pointage{grid-template-columns:290px minmax(0,1fr)}.accounts{max-height:calc(100vh - 24px);position:sticky;top:12px;overflow-y:auto}}@media (width<=899px){.acc-toggle{display:flex}.accounts:not(.open) .acc-groups{display:none}.accounts.open .acc-toggle{border-bottom:1px solid var(--border)}}.group li>.link-row{all:unset;box-sizing:border-box;cursor:pointer;justify-content:space-between;gap:12px;width:100%;display:flex}.group li>.link-row:hover span:first-child{text-underline-offset:3px;text-decoration:underline}.group li>.link-row:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.group li.sub{padding-left:18px;font-size:.92rem}.group li.sub .amount{font-weight:400}.acc.dormant{opacity:.65}.acc-dormant{text-align:left;border:none;border-top:1px solid var(--border);width:100%;color:var(--muted);cursor:pointer;background:0 0;padding:10px 14px;font-size:.8rem;display:block}.acc-dormant:hover{color:var(--text)}.notes p{margin:4px 0}.proj-wrap{padding:0;overflow-x:auto}.proj{border-collapse:separate;border-spacing:0;min-width:100%;font-size:.85rem}.proj th,.proj td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:6px 10px}.proj tbody th,.proj thead th:first-child{text-align:left;background:var(--card);z-index:1;text-overflow:ellipsis;max-width:190px;font-weight:400;position:sticky;left:0;overflow:hidden}.proj thead th button{padding:2px 8px;font-size:.8rem}.proj thead th button.active{color:var(--text);border-color:var(--accent)}.proj tr.grp th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:12px;font-size:.72rem;font-weight:600}.proj td small{font-size:.7rem;display:block}.proj td small.chip{margin-left:4px;padding:0 5px;display:inline-block}.proj td.sel{background:color-mix(in srgb, var(--accent) 10%, transparent)}.proj tr.total th,.proj tr.total td{border-bottom:none;font-weight:600}.proj-detail h3{margin:14px 0 4px;font-size:.95rem}.proj-detail li .chip{margin-left:6px;padding:0 5px;font-size:.7rem}@media (width<=520px){.tabs{gap:0}.tab{padding:10px 6px;font-size:.85rem}}.chart header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:8px;display:flex}.legend{flex-wrap:wrap;gap:4px 18px;margin:0 0 8px;padding:0;font-size:.85rem;list-style:none;display:flex}.legend i,.bars-tip i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.bars{width:100%;position:relative}.bars svg{display:block;overflow:visible}.bars .grid{stroke:var(--border);stroke-width:1px}.bars .axis{stroke:var(--muted);stroke-width:1px}.bars .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.bars .bar.proj path,.bars .bar.proj rect:not([fill=transparent]){opacity:.55}.bars .bar.on path,.bars .bar.on rect:not([fill=transparent]){opacity:1;filter:brightness(1.12)}.bars .today line{stroke:var(--neg);stroke-width:2px;stroke-dasharray:4 3}.bars .today text{fill:var(--neg);font-size:11px}.bars-tip{pointer-events:none;z-index:2;background:var(--card);border:1px solid var(--border);white-space:nowrap;border-radius:8px;gap:3px;min-width:250px;padding:8px 10px;font-size:.8rem;display:grid;position:absolute;top:0;transform:translate(-50%);box-shadow:0 4px 16px #00000040}.bars-tip span{align-items:center;gap:0;display:flex}.bars-tip b{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:12px;font-weight:600}.bars-tip .tot{border-top:1px solid var(--border);margin-top:2px;padding-top:3px}.timechart{flex-direction:column;gap:8px;height:100%;display:flex}.timebar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.timebar .pill{padding:3px 10px;font-size:.8rem}.timebar .zooms{flex-wrap:wrap;gap:6px;display:flex}.timebar .pan{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.timebar .pan span{text-align:center;min-width:170px}.bars svg.pannable{touch-action:pan-y;-webkit-user-select:none;user-select:none}.chart-body{grid-template-columns:250px minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.chart-plot{flex-direction:column;align-self:stretch;min-width:0;display:flex}.bars.fill{flex:1}.bars.fill svg{position:absolute;top:0;left:0}.chart-accounts .acc-toggle{display:none}.chart-acc-groups h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:6px 0 4px;font-size:.72rem}.chart-acc-groups section+section h3{margin-top:12px}.chart-acc-groups ul{margin:0;padding:0;list-style:none}.pick{text-align:left;width:100%;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:4px 6px;font-size:.82rem;line-height:1.25;display:flex}.pick:hover{background:var(--bg)}.pick i{border:1px dashed var(--border);border-radius:3px;flex:none;width:12px;height:12px}.pick.on{color:var(--text)}.pick.on i{border:none}.pick-name{flex:1;min-width:0;display:grid}.pick-name small{color:var(--muted);font-size:.72rem}.pick .amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}@media (width<=760px){.chart-body{grid-template-columns:minmax(0,1fr)}.chart-accounts{border-top:1px solid var(--border);order:2;padding-top:6px}.chart-accounts .acc-toggle{width:100%;color:var(--text);background:0 0;border:none;justify-content:space-between;padding:6px 0;display:flex}.chart-body:not(.open) .chart-acc-groups{display:none}}.pick-name .nm{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.credit-progress .bar{background:var(--border);border-radius:999px;height:10px;overflow:hidden}.credit-progress .bar span{background:var(--ok);border-radius:999px;height:100%;display:block}.credit-progress p{margin:8px 0 0}.group li.credit-split{flex-wrap:wrap;justify-content:flex-start;gap:4px 18px;display:flex}.group li.credit-split b{font-variant-numeric:tabular-nums;margin-left:4px;font-weight:600}.group li.current{font-weight:600}.sched-year+.sched-year{border-top:1px solid var(--border)}.sched-head{width:100%;color:var(--text);text-align:left;background:0 0;border:none;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}.sched-wrap{overflow-x:auto}.sched{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.82rem}.sched th,.sched td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);padding:5px 8px}.sched th:first-child,.sched td:first-child{text-align:left}.sched th{color:var(--muted);font-weight:500}.sched tr.past td{color:var(--muted)}.sched tr.sel td{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text)}.toolbar.mbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.month{position:relative}.month-pick{color:var(--text);background:0 0;border:none;border-radius:8px;min-width:150px;padding:4px 6px}.month-pick:hover:not(:disabled){background:var(--card)}.month-pick strong{font-size:1.05rem}.month-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;top:100%;left:40px}.searchbox{flex:1;align-items:center;gap:4px;min-width:min(220px,100%);max-width:420px;display:flex}.searchbox input{flex:1;min-width:0}.search .filters{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin-bottom:12px;display:flex}.search .filters label{gap:3px;font-size:.78rem}.search .filters input,.search .filters select{padding:6px 8px;font-size:.85rem}.search .filters input[inputmode=decimal]{width:80px}.search .filters .check-inline{flex-direction:row;align-items:center;gap:6px;padding-bottom:6px;display:flex}.seg{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:0;max-width:200px;padding:6px 10px;font-size:.82rem;overflow:hidden}.seg button.on{background:var(--accent);color:#fff}.search-hit{border-bottom:1px solid var(--border);padding-top:6px}.search-hit ul{margin:0;padding:0;list-style:none}.search-hit .group li,.search-hit li{border-bottom:none}.hit-meta{justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;display:flex}button.link{color:var(--accent);border:none;padding:2px 6px;font-size:.78rem}.search .filters .range{color:var(--muted);gap:3px;font-size:.78rem;display:grid}.search .filters .range>div{align-items:center;gap:6px;display:flex}.search-hit{padding-top:2px}.hit-meta{margin-bottom:-6px}.val-form,.inline-form{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.inline-form .grow{flex:1;min-width:180px}.val-form input[inputmode=decimal]{width:120px}.val-right{align-items:center;gap:8px;display:flex}.group li.val-edit{display:block}.inline-form label.share input{width:80px}@media (width<=520px){.timebar .pan span{min-width:0}}
