:root{--bg:#f3f5f4;--surface:#fff;--sunk:#e8ecea;--line:#d5dcd9;--ink:#16201d;--muted:#5b6863;--accent:#24439a;--accent-soft:#e3e8f6;--in:#1d7a4e;--in-soft:#e1f1e8;--out:#b23a2e;--out-soft:#f7e4e1;--warn:#a86a00;--warn-soft:#fbefd6;--f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-num:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--r:10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1513;--surface:#161e1b;--sunk:#1d2723;--line:#2a3631;--ink:#e6ece9;--muted:#93a19b;--accent:#8ea6f0;--accent-soft:#1f2843;--in:#5cc48f;--in-soft:#15302a;--out:#f08a7e;--out-soft:#3a1f1c;--warn:#e8b34e;--warn-soft:#352a12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1513;--surface:#161e1b;--sunk:#1d2723;--line:#2a3631;--ink:#e6ece9;--muted:#93a19b;--accent:#8ea6f0;--accent-soft:#1f2843;--in:#5cc48f;--in-soft:#15302a;--out:#f08a7e;--out-soft:#3a1f1c;--warn:#e8b34e;--warn-soft:#352a12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0}:root{padding-top:env(safe-area-inset-top,0px)}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}.num{font-family:var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.app{grid-template-columns:220px 1fr;min-height:100%;display:grid}nav.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;padding:4px 10px 18px;font-size:17px;font-weight:700;display:flex}.brand i{background:var(--accent);border-radius:6px;width:22px;height:22px;display:inline-block;position:relative}.brand i:after{content:"";border-top:2px solid var(--surface);border-bottom:2px solid var(--surface);position:absolute;inset:6px 5px}.navbtn{text-align:left;cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-weight:500;display:flex}.navbtn:hover{background:var(--sunk);color:var(--ink)}.navbtn[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.navbtn svg{flex:none;width:18px;height:18px}.navbtn .badge{margin-left:auto}.badge{background:var(--out);color:#fff;text-align:center;border-radius:99px;min-width:20px;padding:1px 7px;font-size:11px;font-weight:700}main{padding-block:24px 96px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));min-width:0}.wrap{flex-direction:column;gap:20px;max-width:1080px;margin:0 auto;display:flex}header.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}header.top h1{text-wrap:balance;margin:0;font-size:22px}header.top .sub{color:var(--muted);font-size:13px}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.btn.small{padding:4px 10px;font-size:13px}.btn:focus-visible,.navbtn:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tiles{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.tile .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:600}.tile .val{overflow-wrap:anywhere;font-size:22px;font-weight:600}.tile .hint{color:var(--muted);font-size:12px}.pos{color:var(--in)}.neg{color:var(--out)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}.panel>h2{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin:0;padding:14px 16px;font-size:15px;display:flex}.panel>h2 small{color:var(--muted);font-size:12px;font-weight:400}.grid2{grid-template-columns:1.4fr 1fr;gap:20px;display:grid}.chart{padding:12px 8px 8px}.chart svg{width:100%;height:auto;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;padding:0 16px 12px;font-size:12px;display:flex}.legend span:before{content:"";vertical-align:-1px;background:var(--c);border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.list{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 16px;display:grid}.list .row:first-child{border-top:0}.row .main{min-width:0}.row .t{overflow-wrap:anywhere;font-weight:500}.row .m{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.row .amt{text-align:right;white-space:nowrap;font-weight:600}.row .acts{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.date{text-align:center;background:var(--sunk);border-radius:8px;width:46px;padding:4px 0;line-height:1.1}.date b{font-size:17px;font-family:var(--f-num);display:block}.date span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px}.pill{background:var(--sunk);color:var(--muted);white-space:nowrap;border-radius:99px;padding:1px 8px;font-size:11px;font-weight:600}.pill.late{background:var(--out-soft);color:var(--out)}.pill.soon{background:var(--warn-soft);color:var(--warn)}.pill.paid{background:var(--in-soft);color:var(--in)}.pill.bell{background:var(--accent-soft);color:var(--accent)}.empty{text-align:center;color:var(--muted);padding:28px 16px}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seg{border:1px solid var(--line);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:6px 12px;font-size:13px;font-weight:500}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;width:100%;padding:8px 10px}.filters input,.filters select{width:auto}.notice{background:var(--accent-soft);color:var(--ink);border-radius:var(--r);align-items:flex-start;gap:10px;padding:12px 16px;font-size:13px;display:flex}.scrim{z-index:50;padding:env(safe-area-inset-top,0px) 0 0;background:#0a100e73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:92vh;padding:20px max(16px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));border-radius:14px 14px 0 0;overflow:auto}@media (width>=720px){.scrim{align-items:center}.sheet{border-radius:14px}}.sheet h3{margin:0 0 14px;font-size:18px}.form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form label{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;font-weight:600;display:flex}.form .full{grid-column:1/-1}.form .help{font-size:12px;font-weight:400}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:99px;padding:5px 12px;font-size:13px}.chips button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--surface)}.formacts{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px;display:flex}.toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:60;border-radius:8px;max-width:calc(100% - 32px);padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}nav.bottom{display:none}@media (width<=860px){.app{grid-template-columns:1fr}nav.side{display:none}nav.bottom{background:var(--surface);border-top:1px solid var(--line);z-index:40;padding:6px max(4px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}nav.bottom .navbtn{flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:11px;position:relative}nav.bottom .badge{min-width:16px;padding:0 5px;font-size:10px;position:absolute;top:0;right:calc(50% - 22px)}.tiles{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}}@media (width<=520px){.row{grid-template-columns:auto 1fr}.row>div:last-child{grid-column:2;justify-content:space-between;align-items:center;gap:8px;display:flex}.row .acts{margin-top:0}}@media (width<=420px){.form{grid-template-columns:1fr}.tile .val{font-size:19px}}@media (prefers-reduced-motion:no-preference){.sheet{animation:.18s ease-out up}@keyframes up{0%{opacity:.6;transform:translateY(16px)}}}.auth{min-height:100%;padding-block:32px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));place-items:center;display:grid}.authcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:16px;width:100%;max-width:400px;padding:28px 24px;display:flex}.authcard .brand{padding:0;font-size:20px}.authcard p{color:var(--muted);margin:0;font-size:14px}.authcard form{flex-direction:column;gap:12px;display:flex}.authcard label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.err{background:var(--out-soft);color:var(--out);border-radius:8px;padding:8px 12px;font-size:13px}.linkbtn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.mobilebar{display:none}.center{min-height:60vh;color:var(--muted);place-items:center;display:grid}.emptybig{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.emptybig h2{margin:0;font-size:18px}.emptybig p{color:var(--muted);max-width:44ch;margin:0}.setrow{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.setrow:first-of-type{border-top:0}.setrow .grow{flex:1;min-width:200px}.setrow .grow b{font-weight:600;display:block}.setrow .grow span{color:var(--muted);font-size:13px}.note{color:var(--muted);font-size:12px}button[disabled]{opacity:.6;cursor:default}@media (width<=860px){.mobilebar{justify-content:space-between;align-items:center;gap:8px;display:flex}.mobilebar .brand{padding:0}.iconbtn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:38px;height:38px;color:var(--muted);border-radius:8px;place-items:center;display:grid}.iconbtn svg{width:20px;height:20px}}a.navbtn,a.btn,a.iconbtn{text-decoration:none}a.btn{color:var(--ink)}
