:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f0efec;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--hairline:#e1e0d9;--baseline:#c3c2b7;--ring:#0b0b0b1a;--accent:#2a78d6;--accent-ink:#fff;--accent-soft:#2a78d61f;--danger:#d03b3b;--danger-soft:#d03b3b1a;--good:#006300;--track:#f0efec;--meter:#86b6ef;--radius:10px;--radius-sm:7px;--font:system-ui, -apple-system, "Segoe UI", sans-serif;--shadow:0 1px 2px #0b0b0b0d, 0 4px 16px #0b0b0b0f;--shadow-lg:0 4px 12px #0b0b0b1a, 0 16px 48px #0b0b0b29}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#242422;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--hairline:#2c2c2a;--baseline:#383835;--ring:#ffffff1a;--accent:#3987e5;--accent-soft:#3987e533;--danger:#e66767;--danger-soft:#e6676729;--good:#0ca30c;--track:#2c2c2a;--meter:#1c5cab;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000059;--shadow-lg:0 4px 12px #0006, 0 16px 48px #00000080}}*,:before,:after{box-sizing:border-box}body{font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;line-height:1.25}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--hairline);z-index:20;align-items:center;gap:20px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.topbar .brand{color:var(--ink);align-items:center;gap:8px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.topbar nav{gap:4px;display:flex}.topbar nav a{border-radius:var(--radius-sm);color:var(--ink-2);padding:6px 12px;font-weight:500;text-decoration:none}.topbar nav a:hover{background:var(--surface-2);color:var(--ink)}.topbar nav a.active{background:var(--accent-soft);color:var(--accent)}.topbar .topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.topbar .whoami{color:var(--ink-2);font-size:13px}.page{flex-direction:column;gap:20px;width:min(1080px,100%);margin:0 auto;padding:28px 24px 64px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.page-head h1{font-size:22px}.page-head .page-head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.auth-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-screen .auth-card{flex-direction:column;gap:18px;width:min(400px,100%);display:flex}.auth-screen .auth-card .auth-brand{text-align:center;font-size:26px;font-weight:700}.auth-screen .auth-card .auth-sub{text-align:center;color:var(--ink-2)}.panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel .panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel .panel-head h2{font-size:15px;font-weight:600}.btn{font:inherit;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn.btn-ghost{color:var(--ink-2);border-color:var(--hairline);background:0 0}.btn.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.btn.btn-danger{color:var(--danger);background:0 0;border-color:#0000}.btn.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn.btn-sm{padding:4px 10px;font-size:13px}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--ink-2);font-size:13px;font-weight:600}.field .field-error{color:var(--danger);font-size:12.5px}.input,select.input,textarea.input{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--baseline);border-radius:var(--radius-sm);width:100%;padding:8px 10px}:is(.input,select.input,textarea.input):focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}:is(.input,select.input,textarea.input)::placeholder{color:var(--muted)}.form-stack{flex-direction:column;gap:14px;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.filters-row{margin-bottom:14px}.panel-subform{margin-top:16px}.th-right{text-align:right}.form-actions.form-actions-left{justify-content:flex-start}.cat-spacer{width:16px;display:inline-block}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);padding:10px 12px;font-size:13.5px}.form-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.swatch-row{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;background:var(--swatch-color);border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0}.swatch.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface)}.badge{color:var(--ink-2);background:var(--surface-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.dot{background:var(--dot-color,var(--muted));border-radius:50%;flex-shrink:0;width:8px;height:8px}.role-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:700}.role-pill.role-owner{background:var(--accent-soft);color:var(--accent)}.modal-overlay{z-index:50;background:#0b0b0b73;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;width:min(520px,100%);max-height:90vh;padding:22px;display:flex;overflow-y:auto}.modal .modal-head{justify-content:space-between;align-items:center;display:flex}.modal .modal-head h2{font-size:17px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--hairline);padding:8px 10px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--hairline);vertical-align:middle;padding:10px}.table tr:last-child td{border-bottom:none}.table .td-money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.table .td-actions{text-align:right;white-space:nowrap}.table .td-muted{color:var(--muted);white-space:nowrap}.empty-state{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;padding:36px 16px;display:flex}.empty-state .empty-icon{font-size:28px}.spinner{border:2.5px solid var(--hairline);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:24px auto;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pagination{color:var(--ink-2);justify-content:center;align-items:center;gap:12px;margin-top:14px;font-size:13.5px;display:flex}.segmented{background:var(--surface-2);border-radius:var(--radius-sm);padding:2px;display:inline-flex}.segmented button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:4px 12px;font-size:13px;font-weight:600}.segmented button.selected{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.month-picker{align-items:center;gap:6px;display:inline-flex}.month-picker .month-label{text-align:center;min-width:130px;font-weight:600}.tile-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:16px 18px;display:flex}.stat-tile .stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12.5px;font-weight:600}.stat-tile .stat-value{font-size:26px;font-weight:700;line-height:1.15}.stat-tile .stat-hint{color:var(--ink-2);font-size:13px}.cat-bars{flex-direction:column;display:flex}.cat-row{border-radius:var(--radius-sm);grid-template-columns:190px 1fr 110px;align-items:center;gap:12px;padding:7px 4px;display:grid}.cat-row:hover{background:var(--surface-2)}.cat-row:hover .cat-share{opacity:1}.cat-row .cat-name{align-items:center;gap:8px;font-weight:500;display:flex;overflow:hidden}.cat-row .cat-name button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;width:16px;padding:0}.cat-row .cat-name .cat-name-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cat-row .cat-track{background:var(--track);border-radius:4px;height:14px;overflow:hidden}.cat-row .cat-fill{height:100%;width:var(--bar-w,0%);background:var(--bar-color,var(--muted));border-radius:4px;min-width:2px;transition:width .25s}.cat-row .cat-value{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.cat-row .cat-value .cat-share{color:var(--muted);opacity:0;font-size:11.5px;font-weight:500;transition:opacity .12s;display:block}.cat-row.cat-row-sub{padding-block:4px}.cat-row.cat-row-sub .cat-name{color:var(--ink-2);padding-left:26px;font-size:13.5px;font-weight:400}.cat-row.cat-row-sub .cat-track{height:8px}.cat-row.cat-row-sub .cat-value{color:var(--ink-2);font-size:13px;font-weight:500}.top-list{flex-direction:column;display:flex}.top-row{border-radius:var(--radius-sm);grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:8px 4px;display:grid;position:relative}.top-row:hover{background:var(--surface-2)}.top-row .top-rank{color:var(--muted);text-align:center;font-size:12.5px;font-weight:700}.top-row .top-main{min-width:0}.top-row .top-main .top-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.top-row .top-main .top-meta{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.top-row .top-main .top-meter{background:var(--track);border-radius:2px;height:4px;margin-top:4px;overflow:hidden}.top-row .top-main .top-meter span{height:100%;width:var(--bar-w,0%);background:var(--meter);border-radius:2px;display:block}.top-row .top-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.cat-tree{flex-direction:column;gap:6px;display:flex}.cat-card{border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:10px 14px}.cat-card .cat-card-head{align-items:center;gap:10px;display:flex}.cat-card .cat-card-head .cat-card-name{align-items:center;gap:8px;font-weight:600;display:flex}.cat-card .cat-card-head .cat-card-actions{gap:4px;margin-left:auto;display:flex}.cat-card .cat-children{border-left:2px solid var(--hairline);flex-direction:column;gap:4px;margin-top:8px;padding-left:18px;display:flex}.cat-card .cat-child{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;display:flex}.cat-card .cat-child .cat-card-actions{gap:4px;margin-left:auto;display:flex}.member-list{flex-direction:column;display:flex}.member-list .member-row{border-bottom:1px solid var(--hairline);align-items:center;gap:12px;padding:10px 4px;display:flex}.member-list .member-row:last-child{border-bottom:none}.member-list .member-row .member-info{flex-direction:column;display:flex}.member-list .member-row .member-info .member-name{font-weight:600}.member-list .member-row .member-info .member-email{color:var(--muted);font-size:13px}.member-list .member-row .member-actions{align-items:center;gap:10px;margin-left:auto;display:flex}@media (width<=720px){.topbar{gap:10px;padding:0 12px;overflow-x:auto}.page{padding:20px 14px 48px}.cat-row,.cat-row.cat-row-sub{grid-template-columns:120px 1fr 92px}}
