:root{--bg:#f2f3ee;--surface:#fff;--surface-2:#f7f8f3;--ink:#1f2320;--muted:#5f6460;--line:#e0e3d8;--accent:#5a6a43;--accent-ink:#fff;--accent-soft:#e9eedf;--brass:#a9812f;--sage:#a5b08c;--stone:#808285;--bad:#c0352b;--bad-soft:#fde8e6;--warn:#a96400;--warn-soft:#fff1d9;--good:#1f7a4a;--good-soft:#e1f4e9;--font-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body:"Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;--r:14px;--shadow:0 1px 2px #141c2b0f, 0 4px 14px #141c2b0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121411;--surface:#1b1e19;--surface-2:#222620;--ink:#eceee8;--muted:#a3a89e;--line:#30352c;--accent:#b9c79d;--accent-ink:#151a10;--accent-soft:#2b3323;--brass:#d9b061;--bad:#ff7a6e;--bad-soft:#3a1d1d;--warn:#f1b14d;--warn-soft:#3a2a12;--good:#5fd394;--good-soft:#15301f;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121411;--surface:#1b1e19;--surface-2:#222620;--ink:#eceee8;--muted:#a3a89e;--line:#30352c;--accent:#b9c79d;--accent-ink:#151a10;--accent-soft:#2b3323;--brass:#d9b061;--bad:#ff7a6e;--bad-soft:#3a1d1d;--warn:#f1b14d;--warn-soft:#3a2a12;--good:#5fd394;--good-soft:#15301f;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:radial-gradient(900px 420px at 85% -120px, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%), radial-gradient(700px 360px at -10% 0, color-mix(in srgb, var(--brass) 12%, transparent), transparent 70%), var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;background-attachment:fixed;font-size:15px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;letter-spacing:-.01em;margin:0}.app{max-width:1320px;min-height:100%;padding:calc(env(safe-area-inset-top) + 0px) 16px calc(92px + env(safe-area-inset-bottom));margin:0 auto}header.top{z-index:18;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:12px;padding:14px 0 12px;display:flex;position:sticky;top:0}header.top h1{font-size:21px;line-height:1.15}header.top .sub{color:var(--muted);font-size:12.5px}.brand{align-items:center;gap:12px;min-width:0;display:flex}.logo{background:var(--surface);width:46px;height:46px;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:3px;display:flex;overflow:hidden}.logo img{object-fit:contain;width:100%;height:100%}.logo b{font-family:var(--font-display);color:#fff;font-size:22px}.logo:not(:has(img)){background:linear-gradient(135deg,#5a6a43,#a5b08c);border:0}.sec-h h2{align-items:center;gap:8px;display:flex}.sec-h h2:before{content:"";background:linear-gradient(180deg, var(--accent), var(--brass));border-radius:3px;width:4px;height:16px}nav.tabs button[aria-current=page]:before{content:"";background:var(--accent-soft);z-index:-1;border-radius:12px;width:44px;height:30px;position:absolute;top:4px;left:50%;transform:translate(-50%)}nav.tabs button{z-index:0}.tiles>.tile:nth-child(4n+1) .ic{color:#c0352b;background:#ffe7e3}.tiles>.tile:nth-child(4n+2) .ic{background:var(--accent-soft);color:var(--accent)}.tiles>.tile:nth-child(4n+3) .ic{color:#1f7a4a;background:#dff5e8}.tiles>.tile:nth-child(4n+4) .ic{color:#a96400;background:#fff1d6}.tile .v{letter-spacing:-.01em}.btn.pri{background:linear-gradient(135deg,#4d5c38,#6f8152);border:0;box-shadow:0 4px 12px #4d5c3840}:root[data-theme=dark] .btn.pri{background:var(--accent)}.gtab td{padding:3px 4px}.gtab tbody tr:nth-child(2n){background:color-mix(in srgb, var(--accent) 3%, transparent)}.gtab tbody tr:hover{background:color-mix(in srgb, var(--accent) 7%, transparent)}.hero{border-radius:calc(var(--r) + 6px);color:#fff;background:radial-gradient(120% 140% at 100% 0%, var(--hero-glow,#8d9a6f) 0%, transparent 55%), linear-gradient(135deg, var(--hero1,#343d27), var(--hero2,#4d5c38) 60%, var(--hero3,#5f7046));box-shadow:0 10px 30px color-mix(in srgb, var(--hero1,#343d27) 35%, transparent);padding:18px;position:relative;overflow:hidden}.hero:after{content:"";border:9px solid #ffffff14;border-radius:50%;width:210px;height:210px;position:absolute;bottom:-70px;right:-50px;box-shadow:inset 0 0 0 16px #0000,inset 0 0 0 25px #ffffff14}.hero .k{opacity:.8;letter-spacing:.02em;font-size:12.5px;font-weight:600}.hero .big{color:#fff;margin:2px 0 4px;font-size:32px;line-height:1.1}.hero .bar{background:#ffffff2e;border:0;height:10px}.hero .bar i{background:linear-gradient(90deg,#7ee2a8,#4fd18b)}.hero .mini{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.hero .mini div{background:#ffffff1a;border-radius:12px;padding:8px 10px}.hero .mini span{opacity:.8;font-size:11.5px;display:block}.hero .mini strong{font-family:var(--font-display);font-size:16px}.tile{border:1px solid #0000;transition:transform .12s,box-shadow .12s}.tile:hover{transform:translateY(-1px);box-shadow:0 2px 4px #141c2b0f,0 10px 24px #141c2b14}.tile .ic{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:9px;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.tile .ic svg{width:17px;height:17px}.tile.bad .ic{background:var(--bad-soft);color:var(--bad)}.tile.good .ic{background:var(--good-soft);color:var(--good)}.card,.list,.tile{border-radius:16px}.stack{border-radius:7px;height:12px;margin:8px 0;display:flex;overflow:hidden}.stack i{height:100%;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:12.5px;display:flex}.legend b{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.sync{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.sync i{background:var(--muted);border-radius:50%;width:8px;height:8px;display:inline-block}.sync.ok i{background:var(--good)}.sync.err i{background:var(--bad)}nav.tabs{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:20;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav.tabs .in{grid-template-columns:repeat(7,1fr);width:100%;max-width:1000px;display:grid}nav.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:9px 0 10px;font-size:11.5px;font-weight:600;display:flex;position:relative}nav.tabs button svg{width:22px;height:22px}nav.tabs button[aria-current=page]{color:var(--accent)}nav.tabs .dot{background:var(--bad);color:#fff;border-radius:9px;padding:0 5px;font-size:10px;line-height:16px;position:absolute;top:5px;left:calc(50% + 8px)}.grid{gap:10px;display:grid}.tiles{grid-template-columns:repeat(2,1fr)}@media (width>=620px){.tiles{grid-template-columns:repeat(4,1fr)}}.tile{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);text-align:left;cursor:pointer;border:0;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.tile .l{color:var(--muted);font-size:12.5px;font-weight:600}.tile .v{font-family:var(--font-display);font-size:22px;font-weight:700}.tile .s{color:var(--muted);font-size:12px}.tile.bad .v{color:var(--bad)}.tile.good .v{color:var(--good)}.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:14px}.sec{margin-top:18px}.sec-h{justify-content:space-between;align-items:baseline;margin:0 2px 8px;display:flex}.sec-h h2{font-size:17px}.sec-h .more{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px;font-size:13px;font-weight:600}.list{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.row{border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:10px;width:100%;padding:11px 14px;display:flex}.row:last-child{border-bottom:0}.row:hover{background:var(--surface-2)}.row .m{flex:1;min-width:0}.row .t{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.row .d{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.row .r{text-align:right;flex-shrink:0}.amt{font-weight:700}.amt.bad{color:var(--bad)}.amt.good{color:var(--good)}.pill{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-block}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.good{background:var(--good-soft);color:var(--good)}.pill.mut{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.pill.acc{background:var(--accent-soft);color:var(--accent)}.stripe{background:var(--line);border-radius:3px;flex-shrink:0;align-self:stretch;width:4px}.stripe.bad{background:var(--bad)}.stripe.warn{background:var(--warn)}.stripe.good{background:var(--good)}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:9px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.pri:hover{filter:brightness(1.08)}.btn.wa{color:#fff;background:#1f9d55;border-color:#1f9d55}.btn.danger{color:var(--bad);border-color:var(--bad)}.btn.sm{min-height:32px;padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.btns{flex-wrap:wrap;gap:8px;display:flex}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;margin-bottom:10px;padding:0 12px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:11px 0}.chips{scrollbar-width:none;gap:6px;margin-bottom:10px;padding-bottom:4px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;cursor:pointer;color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.fab{right:max(16px,50% - 644px);bottom:calc(76px + env(safe-area-inset-bottom));z-index:15;border-radius:999px;padding:12px 18px;position:fixed;box-shadow:0 6px 20px #141c2b40}.bar{background:var(--surface-2);border:1px solid var(--line);border-radius:5px;height:8px;overflow:hidden}.bar i{background:var(--good);height:100%;display:block}.empty{text-align:center;color:var(--muted);padding:22px 14px;font-size:14px}.note{background:var(--warn-soft);color:var(--warn);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;font-size:13.5px;font-weight:500;display:flex}.note.info{background:var(--accent-soft);color:var(--accent)}.kv{grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:600}.ov{z-index:40;background:#0a0e1673;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:960px;max-height:92%;padding:0 16px calc(20px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;border-radius:18px 18px 0 0;overflow:auto}.sheet .sh{background:var(--bg);z-index:2;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:14px 0 10px;display:flex;position:sticky;top:0}.sheet .sh h2{font-size:19px}.x{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:50%;flex-shrink:0;width:36px;height:36px;font-size:18px;line-height:1}@media (width>=780px){.ov{align-items:center}.sheet{border-radius:18px;max-height:88%}}form.f{gap:12px;display:grid}.fld{flex-direction:column;gap:4px;display:flex}.fld label{color:var(--muted);font-size:13px;font-weight:600}.fld input,.fld select,.fld textarea{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;padding:10px 12px;font-size:16px}.fld textarea{resize:vertical;min-height:70px}.fld .h{color:var(--muted);font-size:12px}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.chk{align-items:center;gap:8px;font-size:14px;display:flex}.big{font-family:var(--font-display);font-size:28px;font-weight:700}.ledger .row{cursor:default}.toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);z-index:60;border-radius:10px;max-width:90%;padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}.mnav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.mnav strong{font-family:var(--font-display);font-size:18px}.hbar{align-items:center;gap:8px;padding:6px 0;font-size:13.5px;display:flex}.hbar .n{width:110px;color:var(--muted);flex-shrink:0}.hbar .b{background:var(--surface-2);border-radius:5px;flex:1;height:10px;overflow:hidden}.hbar .b i{background:var(--brass);height:100%;display:block}.hbar .a{text-align:right;width:96px;font-weight:600}table.t{border-collapse:collapse;width:100%;font-size:14px}table.t td,table.t th{border-bottom:1px solid var(--line);text-align:left;padding:8px 6px}table.t th{color:var(--muted);font-size:12.5px}.loading{text-align:center;color:var(--muted);padding:40px 0}@media (prefers-reduced-motion:no-preference){.sheet{animation:.18s ease-out up}@keyframes up{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}}.ptiles{grid-template-columns:repeat(2,1fr);gap:10px}@media (width>=900px){.ptiles{grid-template-columns:repeat(3,1fr)}}.ptile{text-align:left;justify-content:space-between;gap:6px;min-height:132px}.ptile .v{font-size:27px;font-weight:800;line-height:1.1;font-family:var(--font-display)}.ptile .pb{background:var(--line);border-radius:7px;height:7px;display:block;overflow:hidden}.ptile .pb i{border-radius:7px;height:100%;display:block}.ptile .pq{opacity:.85;font-size:11px}
