:root{--bg:#f6f7f9;--panel:#fff;--ink:#111827;--ink-2:#374151;--muted:#6b7280;--faint:#9ca3af;--line:#e5e7eb;--line-2:#f0f1f4;--primary:#5b5bf0;--primary-ink:#4338ca;--primary-soft:#eef0ff;--accent:#f59e0b;--dr:#c2410c;--cr:#15803d;--danger:#dc2626;--ok:#15803d;--warn:#b45309;--radius:10px;--shadow:0 1px 2px #1018280d;--shadow-pop:0 12px 32px #10182824, 0 2px 6px #1018280f;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:14px/1.45 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}#app{height:100%}a{color:var(--primary-ink)}code{font-family:var(--mono);background:var(--line-2);border-radius:4px;padding:1px 4px;font-size:.92em}input,select,textarea{font:inherit;color:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;min-width:0;padding:7px 10px;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5b5bf026}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex:none;margin:0;padding:0}input[type=color].color{cursor:pointer;width:28px;height:28px;padding:2px}button{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:var(--mono);font-size:12.5px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.pad{padding:16px}.stack{flex-direction:column;gap:14px;display:flex}.dr{color:var(--dr)}.cr{color:var(--cr)}.ok{color:var(--ok)}.warn{color:var(--warn)}mark{color:inherit;background:#fff3c4;border-radius:3px;padding:0 1px}.boot{height:100%;color:var(--muted);place-items:center;display:grid}.icon{flex:none}.shell{border-top:3px solid var(--accent);grid-template-columns:220px 1fr;height:100%;display:grid}.side{border-right:1px solid var(--line);background:#fff;flex-direction:column;gap:4px;min-height:0;padding:14px 10px;display:flex;overflow:auto}.brand{letter-spacing:-.01em;align-items:center;gap:8px;padding:4px 8px 14px;font-size:17px;font-weight:700;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary), #8b5cf6);border-radius:7px;width:22px;height:22px;box-shadow:inset 0 -6px #0000001f}.brand-sub{color:var(--muted);font-size:13px;font-weight:500}.brand-lg{padding:0 0 8px;font-size:22px}nav{flex-direction:column;gap:2px;display:flex}.nav-link{color:var(--ink-2);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--line-2)}.nav-link.active{background:var(--primary-soft);color:var(--primary-ink)}.badge{background:var(--primary);color:#fff;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:600}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);padding:16px 10px 6px;font-size:11px;font-weight:600}.side-foot{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;margin-top:auto;padding:10px 6px 0;font-size:13px;display:flex}.who{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;display:flex;overflow:hidden}.main{min-width:0;min-height:0;overflow:auto}.page{flex-direction:column;gap:12px;min-height:100%;padding:18px 24px 24px;display:flex}.page-tx,.page-alloc{height:100%;min-height:0}.viewing{align-items:center;gap:10px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:11px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.title-block{flex-direction:column;margin-right:8px;display:flex}.title-block h1{letter-spacing:-.02em;margin:0;font-size:24px;line-height:1.15}.toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.intro{color:var(--muted);max-width:820px;margin:0}.btn{border:1px solid var(--line);height:36px;color:var(--ink-2);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover:not(:disabled){background:#f9fafb;border-color:#d1d5db}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-icon{width:36px;padding:0}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-sm.btn-icon{width:30px}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-ink);border-color:var(--primary-ink)}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#fecaca}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--line-2);border-color:#0000}.btn-block{width:100%}.spin .icon{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.link{color:var(--primary-ink);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;align-self:flex-start;padding:0;text-decoration:underline}.period{align-items:center;gap:6px;display:flex}.period-label{border:1px solid var(--line);cursor:pointer;min-width:170px;height:36px;box-shadow:var(--shadow);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-weight:600;display:inline-flex}.range-inputs{grid-template-columns:1fr 1fr;gap:6px;display:grid}.filterbar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:8px;display:flex}.search{border:1px solid var(--line);max-width:460px;color:var(--muted);background:#fff;border-radius:8px;flex:320px;align-items:center;gap:8px;padding:0 4px 0 10px;display:flex}.search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #5b5bf026}.search input{color:var(--ink);border:0;padding:7px 0;box-shadow:none!important}.search-sm{flex:0 240px}.search-lg input{padding:9px 0;font-size:16px;font-weight:500}.search-lg{max-width:none}.field .search{flex:none;max-width:none}.tabs{background:var(--line-2);border-radius:9px;gap:2px;margin-left:auto;padding:3px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;padding:5px 10px;font-weight:500;display:flex}.tab.active{color:var(--ink);box-shadow:var(--shadow);background:#fff}.tab-n{background:#0000000f;border-radius:999px;padding:0 6px;font-size:11px}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{background:var(--primary-soft);color:var(--primary-ink);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.chip button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:18px;height:18px;display:grid}.chip button:hover{background:#4338ca1f}.bulkbar{color:#fff;border-radius:var(--radius);background:#1f2937;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.bulkbar .muted{color:#cbd5e1}.bulkbar .btn{box-shadow:none}.bulkbar .acct-btn{color:var(--ink);background:#fff;min-width:200px}.bulk-sep{background:#ffffff40;width:1px;height:20px}.grid-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;min-height:0;display:flex;overflow:hidden}.page-tx .grid-card{flex:auto}.grid-scroll{flex:auto;min-height:200px;position:relative;overflow:auto}.grid-head,.grid-row{align-items:center;min-width:1080px;display:grid}.grid-head{z-index:2;border-bottom:1px solid var(--line);background:#fafafb;height:40px;position:sticky;top:0}.gh{align-items:center;gap:2px;min-width:0;height:100%;padding:0 10px;display:flex}.gh-right{justify-content:flex-end}.gh-center{justify-content:center}.gh-label{color:var(--muted);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:4px;padding:4px 2px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.gh-label:disabled{cursor:default}.gh-label:hover:not(:disabled){color:var(--ink)}.gh-filter{color:var(--faint);cursor:pointer;opacity:.6;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;width:22px;height:22px;display:grid}.gh:hover .gh-filter,.gh-filter.on{opacity:1}.gh-filter:hover{background:var(--line-2);color:var(--ink)}.gh-filter.on{background:var(--primary-soft);color:var(--primary-ink)}.grid-row{border-bottom:1px solid var(--line-2);background:#fff;height:44px;position:absolute;left:0;right:0}.grid-row:hover{background:#fafaff}.grid-row.selected{background:#f1f2ff}.grid-row.ignored .gc{opacity:.55}.gc{align-items:center;min-width:0;height:100%;padding:0 10px;display:flex}.gc-center{justify-content:center}.gc-num{justify-content:flex-end;font-size:13px;font-weight:600}.gc-desc{cursor:pointer;gap:6px}.gc-desc .desc{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.gc-desc:hover .desc{color:var(--primary-ink);text-underline-offset:2px;text-decoration:underline}.pill{text-transform:uppercase;letter-spacing:.04em;background:var(--primary-soft);color:var(--primary-ink);border-radius:5px;flex:none;padding:1px 6px;font-size:10.5px;font-weight:600}.pill-muted{background:var(--line-2);color:var(--muted)}.card-tag{min-width:0;color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:inline-flex}.dot{border-radius:999px;flex:none;width:8px;height:8px}.grid-foot{border-top:1px solid var(--line);color:var(--muted);background:#fafafb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.foot-totals{gap:18px;display:flex}.foot-totals strong{color:var(--ink)}.foot-totals strong.dr{color:var(--dr)}.foot-totals strong.cr{color:var(--cr)}.acct-btn{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:8px;align-items:center;gap:8px;width:100%;min-width:0;height:36px;padding:0 8px 0 10px;display:flex}.acct-btn:hover{border-color:#c7cbd3}.acct-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.acct-compact{background:0 0;border-color:#0000;height:30px;padding:0 6px}.grid-row:hover .acct-compact,.acct-compact:focus-visible{border-color:var(--line);background:#fff}.viewing .acct-compact,.bulkbar .acct-compact{border-color:var(--line);background:#fff;width:auto;min-width:190px}.acct-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.acct-ph{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.acct-chev{color:var(--faint);flex:none}.acct-rule .code:after{content:"⚡";margin-left:3px;font-size:10px}.acct-lg{height:44px;font-size:15px}.code{font-family:var(--mono);color:var(--primary-ink);background:var(--primary-soft);border-radius:5px;flex:none;padding:1px 5px;font-size:12px}.inline-text{text-align:left;cursor:text;white-space:nowrap;text-overflow:ellipsis;width:100%;color:var(--ink-2);background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 6px;font-size:13px;overflow:hidden}.grid-row:hover .inline-text{border-color:var(--line)}.inline-input{padding:4px 6px;font-size:13px}.pop{z-index:50;border:1px solid var(--line);box-shadow:var(--shadow-pop);background:#fff;border-radius:10px;flex-direction:column;display:flex;position:fixed;overflow:auto}.picker{flex-direction:column;min-height:0;display:flex}.picker-search{border-bottom:1px solid var(--line);color:var(--muted);background:#fff;align-items:center;gap:6px;padding:0 10px;display:flex;position:sticky;top:0}.picker-search input{border:0;padding:10px 0;box-shadow:none!important}.picker-list{max-height:340px;padding:4px;overflow:auto}.pick-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13.5px;display:flex}.pick-item.muted{color:var(--faint)}.pick-hi{background:var(--primary-soft)}.pick-sel{font-weight:600}.pick-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pick-check{color:var(--primary)}.pick-header{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 8px 4px;font-size:11px;font-weight:700}.pick-header .code{text-transform:none;color:var(--faint);background:0 0;padding:0;font-weight:500}.pick-clear{color:var(--muted);font-style:italic}.pick-empty{color:var(--muted);text-align:center;padding:14px}.multi-chosen{padding:4px 4px 0}.menu{flex-direction:column;padding:4px;display:flex}.menu-item{text-align:left;cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:13.5px;text-decoration:none;display:flex}.menu-item:hover{background:var(--line-2)}.menu-item.on{background:var(--primary-soft);color:var(--primary-ink);font-weight:600}.menu-check{cursor:pointer}.menu-sep{background:var(--line);height:1px;margin:4px 0}.menu-pad{flex-direction:column;gap:8px;padding:10px;display:flex}.menu-note{color:var(--muted);padding:6px 10px 4px;font-size:12px}.overlay{z-index:40;background:#11182766;justify-content:center;align-items:flex-start;padding:6vh 16px;animation:.12s ease-out fade;display:flex;position:fixed;inset:0;overflow:auto}@keyframes fade{0%{opacity:0}}.modal{box-shadow:var(--shadow-pop);background:#fff;border-radius:14px;flex-direction:column;max-height:88vh;animation:.16s cubic-bezier(.2,.8,.2,1) rise;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.modal-head{justify-content:space-between;align-items:center;padding:14px 16px 10px 20px;display:flex}.modal-head h3{margin:0;font-size:17px}.modal-body{padding:4px 20px 16px;overflow:auto}.modal-foot{border-top:1px solid var(--line);background:#fafafb;border-radius:0 0 14px 14px;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.confirm-msg{color:var(--ink-2)}.grid2{grid-template-columns:1fr 1fr;gap:12px 14px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field-label{color:var(--ink-2);font-size:12.5px;font-weight:600}.field-hint{color:var(--muted);font-size:12px}.check-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.form-err{color:var(--danger);background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;padding:8px 10px;font-size:13px}.toasts{z-index:60;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow-pop);background:#111827;border-radius:10px;align-items:center;gap:14px;max-width:min(640px,100vw - 32px);padding:10px 14px;animation:.16s ease-out rise;display:flex}.toast-err{background:#991b1b}.toast-act{color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:6px;padding:3px 10px;font-weight:600}.login-wrap{border-top:3px solid var(--accent);place-items:center;min-height:100%;padding:24px 16px;display:grid}.login{border:1px solid var(--line);width:min(380px,100%);box-shadow:var(--shadow-pop);background:#fff;border-radius:16px;flex-direction:column;gap:14px;padding:28px;display:flex}.login h2{margin:0;font-size:18px}.login p{margin:0}.alloc{flex:1;grid-template-columns:290px 1fr;gap:14px;min-height:0;display:grid}.alloc-groups{border:1px solid var(--line);border-radius:var(--radius);min-height:0;box-shadow:var(--shadow);background:#fff;flex-direction:column;display:flex}.alloc-groups-head{color:var(--muted);padding:12px 14px 8px}.alloc-groups-head strong{color:var(--ink);font-size:18px}.alloc-groups .search{flex:none;max-width:none;margin:0 10px 8px}.alloc-group-list{flex:1;min-height:0;padding:0 6px 8px;overflow:auto}.alloc-group{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:7px 8px;font-size:13px;font-weight:500;display:flex}.alloc-group:hover{background:var(--line-2)}.alloc-group.active{background:var(--primary-soft);color:var(--primary-ink)}.alloc-group-meta{flex:none;align-items:center;gap:8px;display:flex}.alloc-group .count{background:var(--line-2);border-radius:999px;padding:0 7px;font-size:12px;font-weight:600}.alloc-group.active .count{background:#fff}.alloc-main{flex-direction:column;gap:12px;min-width:0;min-height:0;display:flex}.alloc-form{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;grid-template-columns:1fr 1fr;gap:12px 16px;padding:16px;display:grid}.suggest,.alloc-actions{grid-column:1/-1}.suggest{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.suggest-chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 4px;font-size:13px;display:inline-flex}.suggest-chip:hover{border-color:var(--primary)}.suggest-chip.on{border-color:var(--primary);background:var(--primary-soft)}.alloc-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:4px;display:flex}.alloc-buttons{gap:8px;display:flex}.alloc-buttons .btn-primary{height:40px;padding:0 18px;font-size:15px}.alloc-list{flex:1}.alloc-rows{flex:1;min-height:120px;overflow:auto}.alloc-row{border-bottom:1px solid var(--line-2);cursor:pointer;grid-template-columns:28px 96px minmax(200px,1fr) 150px 140px 110px;align-items:center;gap:10px;height:40px;padding:0 14px;font-size:13.5px;display:grid}.alloc-row:hover{background:#fafaff}.alloc-row.unpicked{color:var(--faint)}.alloc-row-head{color:var(--muted);cursor:default;border-bottom:1px solid var(--line);background:#fafafb;font-size:12px;font-weight:600}.num{text-align:right;font-weight:600}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#fafafb;padding:10px 12px;font-size:12px;font-weight:600;position:sticky;top:0}.tbl td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:7px 12px}.tbl tr:hover td{background:#fafaff}.tbl .num{text-align:right}.tbl .actions{text-align:right;white-space:nowrap}.tbl .actions .btn{margin-left:4px}.tr-header td{background:#fbfbfd;font-weight:700}.tr-muted td{color:var(--faint)}.rename{background:0 0;border-color:#0000;padding:5px 8px}.rename:hover{border-color:var(--line)}.add-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.add-row input{max-width:320px}.add-row .acct-btn{max-width:360px}.empty{color:var(--faint);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:48px 16px;display:flex}.empty-title{color:var(--ink-2);font-size:15px;font-weight:600}.empty-body{color:var(--muted);max-width:420px}.drop{border:2px dashed var(--line);color:var(--muted);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:26px;transition:border-color .12s,background .12s;display:flex}.drop:hover,.drop.drag{border-color:var(--primary);background:var(--primary-soft)}.drop.has-file{color:var(--ink-2);border-style:solid;border-color:#c7d2fe}.wiz2{flex-direction:column;gap:12px;display:flex}.map-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 12px;display:grid}.opts{flex-wrap:wrap;gap:18px;display:flex}.import-stats{border:1px solid var(--line);background:#f9fafb;border-radius:8px;flex-wrap:wrap;gap:16px;padding:8px 12px;display:flex}.preview{border:1px solid var(--line);border-radius:8px;max-height:320px;overflow:auto}.preview table{border-collapse:collapse;width:100%;font-size:13px}.preview th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:#fafafb;padding:7px 10px;font-size:12px;position:sticky;top:0}.preview td{border-bottom:1px solid var(--line-2);white-space:nowrap;padding:5px 10px}.ellipsis-cell{text-overflow:ellipsis;max-width:360px;overflow:hidden}.row-err td{background:#fff7ed}.done{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:10px 0;display:flex}.done-icon{color:#fff;background:var(--ok);border-radius:999px;width:48px;height:48px;padding:8px}.done-stats{flex-direction:column;gap:4px;font-size:15px;display:flex}@media (max-width:900px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;padding:8px}.side nav{flex-flow:wrap}.nav-section,.brand-sub{display:none}.side-foot{border:0;margin:0 0 0 auto;padding:0}.brand{padding:4px 8px}.page{padding:14px 16px}.alloc,.alloc-form,.grid2{grid-template-columns:1fr}.alloc-groups{max-height:240px}.tabs{margin-left:0}}.pick-group{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;max-width:45%;font-size:11px;overflow:hidden}@media (max-width:900px){.tabs{max-width:100%;overflow-x:auto}.tab{white-space:nowrap}.search{max-width:none}.page-tx{height:auto}.page-tx .grid-card{min-height:60vh}}:root{--attn:#b45309;--attn-soft:#fef3c7}.faint{color:var(--faint)}.strong{font-weight:500}.page{gap:10px}.page-narrow{max-width:1040px}.page-title{letter-spacing:-.015em;white-space:nowrap;margin:0 8px 0 0;font-size:20px;font-weight:650}.toolbar{min-height:40px}.toolbar .acct-compact{border-color:var(--line);width:auto;min-width:170px;height:36px;box-shadow:var(--shadow);background:#fff}.btn-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.empty{padding:56px 16px}kbd{font:500 11px/1 var(--font);border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#fff;border-bottom-width:2px;border-radius:4px;padding:2px 5px}.kbd-on-primary{color:#fff;background:#ffffff2e;border-color:#ffffff59}.btn kbd{margin-left:2px}.keys{gap:6px;font-size:13px}.keys kbd{text-align:center;min-width:70px;margin-right:6px;display:inline-block}.kbd-hint{margin-left:auto}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-remove:hover:not(:disabled){color:var(--danger);background:#fef2f2}.badge-attn{background:var(--attn-soft);color:var(--attn)}.nav-link.active .badge-attn{background:var(--attn);color:#fff}.tabs{margin-left:auto}.tab.active{font-weight:600}.tab-n.attn{background:var(--attn-soft);color:var(--attn);font-weight:600}.attn-chip{background:var(--attn-soft);color:var(--attn);cursor:pointer;white-space:nowrap;border:1px solid #fcd34d;border-radius:999px;padding:4px 10px;font-size:12.5px}.attn-chip.on{background:var(--attn);color:#fff;border-color:var(--attn)}.seg{background:var(--line-2);border-radius:8px;padding:2px;display:inline-flex}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:3px 10px;font-size:12.5px}.seg button.on{color:var(--ink);box-shadow:var(--shadow);background:#fff;font-weight:600}.month-status{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;overflow:hidden}.ms-bar{background:var(--line-2);height:4px}.ms-bar span,.progress span{background:var(--ok);height:100%;transition:width .3s;display:block}.ms-segs{flex-wrap:wrap;display:flex}.ms-seg{min-width:160px;color:var(--ink-2);border:0;border-right:1px solid var(--line-2);text-align:left;white-space:nowrap;background:0 0;flex:1 1 0;padding:8px 14px;font-size:13px}.ms-seg:last-child{border-right:0}button.ms-seg{cursor:pointer}button.ms-seg:hover{background:#fafaff}.ms-seg.ok{color:var(--ok)}.ms-left{color:var(--attn);font-weight:600}.mdot{border-radius:999px;flex:none;width:8px;height:8px}.mdot.amber{background:#f59e0b}.mdot.green{background:var(--ok)}.mdot.grey{background:#d1d5db}.month-list{max-height:260px;overflow:auto}.menu-primary{color:var(--primary-ink);font-weight:600}.menu-item:disabled{opacity:.45;cursor:not-allowed}.grid-head,.grid-row{min-width:860px}.gh,.gc{padding:0 8px}.gc{font-size:13px}.gc-date{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:12.5px}.gc-num{color:var(--ink);font-weight:500}.gc-num.cr,.num.cr{color:var(--cr)}.num{font-weight:500}.grid-row.unalloc{box-shadow:inset 3px 0 0 var(--accent)}.grid-row.focused{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.grid-row.ignored{background:#fafafa}.grid-row.ignored .gc{opacity:1;color:var(--faint)}.grid-row.ignored .desc{font-weight:400;-webkit-text-decoration:line-through #d1d5db;text-decoration:line-through #d1d5db}.personal{color:var(--faint);padding-left:6px;font-size:12.5px;font-style:italic}.grid-row .acct-chev{opacity:0}.grid-row:hover .acct-chev,.grid-row.focused .acct-chev,.acct-compact:focus-visible .acct-chev{opacity:1}.acct-compact.acct-empty .acct-ph{color:var(--faint);font-weight:400}.grid-row:hover .acct-compact.acct-empty .acct-ph,.grid-row.focused .acct-compact.acct-empty .acct-ph{color:var(--primary-ink);font-weight:500}.grid-row:not(:hover):not(.focused) .acct-compact.acct-empty .acct-ph{font-size:0}.grid-row:not(:hover):not(.focused) .acct-compact.acct-empty .acct-ph:before{content:"—";font-size:13px}.code{font-family:var(--font);color:var(--muted);font-variant-numeric:tabular-nums;background:0 0;min-width:46px;padding:0;font-size:12px;font-weight:500}.pick-header .code{min-width:0}.acct-rule .code:after{content:"⚡";color:var(--accent)}.pill{text-transform:none;letter-spacing:0;border:1px solid var(--line);color:var(--muted);background:0 0;font-size:10px;font-weight:500}.flag{background:var(--attn-soft);color:var(--attn);cursor:pointer;border:0;border-radius:5px;flex:none;padding:1px 5px;font-size:11px}.rev-check{accent-color:var(--ok)}.foot-left{align-items:center;gap:6px;display:inline-flex}.foot-totals strong{font-weight:650}.foot-totals .num{color:var(--ink)}.checklist{flex-direction:column;gap:8px;display:flex}.checklist p{margin:0}.ck{background:#f9fafb;border-radius:8px;padding:8px 10px;font-size:13.5px}.ck.ok{color:var(--ok);background:#f0fdf4}.ck.warn{color:var(--attn);background:var(--attn-soft)}.ck.total{background:var(--primary-soft);color:var(--ink)}.alloc-groups-head{flex-direction:column;gap:4px;display:flex}.progress{background:var(--line-2);border-radius:999px;height:4px;margin-top:4px;overflow:hidden}.rule-box{flex-direction:column;gap:3px;max-width:560px;display:flex}.rule-note{color:var(--muted);min-height:16px;padding-left:24px;font-size:12px}.rule-note.warn{color:var(--attn)}.suggest-chip kbd{padding:1px 4px;font-size:10px}.field-label kbd{margin-left:4px;font-size:10px}.tbl-rules td{padding-top:4px;padding-bottom:4px}.rule-acct .inline-text{align-items:center;gap:8px;display:flex}.row-actions .btn{opacity:0}tr:hover .row-actions .btn,.row-actions .btn:focus-visible{opacity:1}.add-row .search{flex:0 240px}.toast-x{color:#ffffffb3;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:2px;display:grid}.toast-x:hover{color:#fff;background:#ffffff1f}.toolbar .acct-compact{min-width:140px}.page-tx .toolbar,.page-alloc .toolbar,.page-tx .toolbar-right,.page-alloc .toolbar-right{flex-wrap:nowrap}.period-label{min-width:150px}@media (max-width:1250px){.page-tx .toolbar,.page-alloc .toolbar,.page-tx .toolbar-right,.page-alloc .toolbar-right{flex-wrap:wrap}}.page-tx>:not(.grid-card),.page-alloc>.toolbar{flex:none}a.brand{color:var(--ink);border-radius:8px;text-decoration:none}a.brand:hover{background:var(--line-2)}.page-dash{gap:14px;max-width:1280px}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.dash-title{letter-spacing:-.02em;margin:2px 0 0;font-size:26px;font-weight:650}.dash-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-controls .acct-compact{border-color:var(--line);width:auto;min-width:150px;height:36px;box-shadow:var(--shadow);background:#fff}.month-pick{cursor:pointer;position:relative}.month-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.card-box{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px}.hero{padding:18px 20px 14px}.hero-top{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.hero-label,.kpi-label{color:var(--muted);font-size:12.5px;font-weight:500}.hero-num{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:2px 0 6px;font-size:34px;font-weight:700;line-height:1.15}.hero-sub{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:4px;display:flex}.ink{color:var(--ink)}.hero-cards{flex-wrap:wrap;place-content:flex-start flex-end;gap:6px;max-width:520px;display:flex}.card-chip{border:1px solid var(--line);background:#fafafb;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;display:inline-flex}.card-chip strong{font-weight:600}.delta{background:var(--line-2);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:600}.delta-up{background:var(--attn-soft);color:var(--attn)}.delta-down{color:var(--ok);background:#ecfdf5}.kpis{border-top:1px solid var(--line-2);grid-template-columns:repeat(4,1fr);margin-top:14px;padding-top:12px;display:grid}.kpi{text-align:left;font:inherit;color:inherit;background:0 0;border:0;flex-direction:column;gap:3px;padding:2px 16px 2px 0;display:flex}.kpi+.kpi{border-left:1px solid var(--line-2);padding-left:16px}.kpi-link{cursor:pointer;border-radius:8px}.kpi-link:hover .kpi-value{color:var(--primary-ink)}.kpi-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:650}.kpi-value.ok{color:var(--ok)}.kpi-bar{max-width:180px}.banner{border-radius:10px;flex-wrap:wrap;align-items:center;gap:18px;padding:10px 14px;font-size:13.5px;display:flex}.banner-ok{color:var(--ok);background:#f0fdf4;border:1px solid #bbf7d0}.banner-warn{background:var(--attn-soft);border:1px solid #fde68a}.banner-warn a{color:var(--attn);font-weight:600;text-decoration:none}.banner-warn a:hover{text-decoration:underline}.dash-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.dash-grid-3{grid-template-columns:repeat(3,1fr)}.panel{min-width:0;padding:14px 16px 12px}.panel-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.panel-head h2{margin:0;font-size:14.5px;font-weight:650}.panel-action a{color:var(--primary-ink);text-decoration:none}.panel-action a:hover{text-decoration:underline}.bar-track{background:var(--line-2);border-radius:999px;height:6px;overflow:hidden}.bar-fill{background:var(--primary);border-radius:999px;height:100%;display:block}.acct-bars,.bar-list{flex-direction:column;gap:10px;display:flex}.acct-bar{color:inherit;border-radius:8px;flex-direction:column;gap:5px;margin:0 -4px;padding:2px 4px;text-decoration:none;display:flex}.acct-bar:hover{background:#fafaff}.acct-bar.unalloc .bar-fill{background:var(--accent)}.acct-bar-top,.bl-top{justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;display:flex}.acct-bar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.acct-bar-val,.bl-val{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-weight:600;display:inline-flex}.bl-label{align-items:center;gap:6px;display:inline-flex}.trend{position:relative}.trend svg{width:100%;height:auto;display:block}.grid-line{stroke:var(--line-2);stroke-width:1px}.axis-text{fill:var(--faint);font-size:10.5px;font-family:var(--font)}.axis-on{fill:var(--ink);font-weight:600}.col{fill:#c7c9fb;transition:fill .12s}.col-on{fill:var(--primary)}.col-hover{fill:#8f90f5}.col-on.col-hover{fill:var(--primary-ink)}.bar-g{cursor:pointer}.avg-line{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:4 4}.tip{color:#fff;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-pop);background:#111827;border-radius:8px;flex-direction:column;gap:1px;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:0;transform:translate(-50%,-6px)}.tip .muted{color:#cbd5e1}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tx-list{flex-direction:column;display:flex}.tx-item{border-bottom:1px solid var(--line-2);grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:8px 0;display:grid}.tx-item:last-child{border-bottom:0}.tx-item.ignored .tx-desc{color:var(--faint);text-decoration:line-through}.tx-date{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.tx-desc{font-size:13px;font-weight:500}.tx-meta{align-items:center;gap:4px;display:flex}.tx-amt{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.tx-amt.cr{color:var(--cr)}@media (max-width:1100px){.dash-grid-3{grid-template-columns:1fr 1fr}}@media (max-width:900px){.dash-grid,.dash-grid-3{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr;row-gap:12px}.kpi:nth-child(3){border-left:0;padding-left:0}.hero-cards{justify-content:flex-start}}.pop{color:var(--ink);text-align:left;font-size:14px;font-weight:400}.rev-toggle{color:#0000;cursor:pointer;background:#fff;border:1.5px solid #d1d5db;border-radius:999px;place-items:center;width:22px;height:22px;padding:0;transition:background .12s,border-color .12s,color .12s;display:grid}.grid-row:hover .rev-toggle:not(.on),.grid-row.focused .rev-toggle:not(.on){border-color:var(--ok);color:#86efac}.rev-toggle:hover:not(.on){color:var(--ok)!important}.rev-toggle.on{background:var(--ok);border-color:var(--ok);color:#fff}.rev-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.page-tx{position:relative}.selbar{z-index:30;border:1px solid var(--line);background:#fff;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px;max-width:calc(100% - 48px);padding:8px 8px 8px 12px;animation:.16s ease-out rise;display:flex;position:absolute;bottom:62px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #1018282e,0 2px 6px #10182814}.selbar .acct-compact{border:1px solid var(--line);background:#fff;width:auto;min-width:150px;height:30px}.selbar-count{align-items:center;gap:8px;padding-right:4px;display:flex}.selbar-n{background:var(--primary);color:#fff;border-radius:999px;place-items:center;min-width:26px;height:26px;padding:0 7px;font-size:13px;font-weight:700;display:grid}.selbar-meta{color:var(--muted);flex-direction:column;font-size:11.5px;line-height:1.15;display:flex}.selbar-meta strong{color:var(--ink);font-size:13px}.selbar-sep{background:var(--line);width:1px;height:22px;margin:0 2px}.selbar-x{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.selbar-x:hover{background:var(--line-2);color:var(--ink)}.btn-danger-solid.btn-sm{height:30px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;overflow:hidden;position:absolute!important}.field.has-error input,.field.has-error .acct-btn,.amount-input.invalid{border-color:var(--danger)}.field-err{color:var(--danger);font-size:12px}.amount-row{align-items:stretch;gap:8px;display:flex}.amount-input{border:1px solid var(--line);background:#fff;border-radius:8px;flex:1;align-items:center;padding-left:10px;display:flex}.amount-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #5b5bf026}.amount-input span{color:var(--muted)}.amount-input input{border:0;padding-left:4px;box-shadow:none!important}.seg-lg{padding:3px}.seg-lg button{padding:5px 12px;font-size:13px}.tx-form{flex-direction:column;gap:14px;display:flex}.tx-switches{border-top:1px solid var(--line-2);flex-direction:column;gap:8px;padding-top:12px;display:flex}.switch-row{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.switch-row input{margin-top:2px}.switch-row>span{flex-direction:column;display:flex}.switch-row.disabled{opacity:.6;cursor:not-allowed}.tx-summary{margin:0}.pw-row{gap:6px;display:flex}.form-err{margin-bottom:4px}.btn-row-left{flex-wrap:wrap;gap:6px;display:flex}.btn-blocked{opacity:.4;cursor:not-allowed}.grid-row{cursor:default}.grid-row .gc-desc,.grid-row .gc-date,.grid-row .gc-num{cursor:pointer}.gh-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grid-row.ignored .gc,.grid-row.ignored .desc{color:var(--muted)}.personal{align-items:center;gap:8px;display:inline-flex}.restore-link{color:var(--primary-ink);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:4px;padding:2px 4px;font-size:12px;font-style:normal}.grid-row:hover .restore-link,.grid-row.focused .restore-link,.restore-link:focus-visible{opacity:1}.restore-link:hover{background:var(--primary-soft)}.inline-input-wide{z-index:5;min-width:260px;box-shadow:var(--shadow-pop);position:relative}.menu-note.legend{align-items:center;gap:5px;display:flex}.menu-check.locked{opacity:.6}.dash-sub{margin-top:2px}.month-pick:focus-within{outline:2px solid var(--primary);outline-offset:2px}.panel{flex-direction:column;display:flex}.trend{flex-direction:column;flex:1;display:flex}.trend-summary{border-top:1px solid var(--line-2);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;padding-top:10px;display:grid}.trend-summary>div{flex-direction:column;gap:1px;display:flex}.trend-summary strong{font-variant-numeric:tabular-nums;font-size:15px}.avg-text{fill:var(--muted)}.bar-g:focus{outline:none}.bar-g:focus-visible .col{stroke:var(--primary-ink);stroke-width:2px}a.bl-row{color:inherit;border-radius:8px;flex-direction:column;gap:5px;margin:0 -4px;padding:2px 4px;text-decoration:none;display:flex}a.bl-row:hover{background:#fafaff}a.tx-item{color:inherit;border-radius:6px;text-decoration:none}a.tx-item:hover{background:#fafaff}.tx-item{grid-template-columns:44px minmax(0,1fr) auto}.tx-main{min-width:0}.tx-amt{white-space:nowrap;flex-shrink:0}.banner-info{background:var(--primary-soft);color:var(--primary-ink);border:1px solid #c7d2fe}.alloc-row{grid-template-columns:28px 92px minmax(200px,1fr) minmax(110px,auto) minmax(80px,auto) 104px}.alloc-match{border-bottom:1px solid var(--line-2);padding:8px 14px;font-size:13px}.alloc-form,.alloc-form>*,.alloc-main{min-width:0}.keys>div{grid-template-columns:104px 1fr;align-items:start;gap:8px;display:grid}.keys kbd{justify-self:start;min-width:0}.wiz-card{flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;display:flex}.drop:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-row .search{flex:0 280px}.add-box{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:6px;padding:12px;display:flex}.add-hint{min-height:16px}.rename{border:1px dashed #0000}tr:hover .rename{border-color:var(--line)}.rename:focus{border-style:solid}.rename::placeholder{color:var(--faint);font-style:italic}.menu-btn{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:none}@media (max-width:900px){.side{z-index:35;flex-flow:wrap;align-items:center;gap:4px;padding:6px 10px;position:sticky;top:0}.menu-btn{display:grid}.side nav,.side .nav-section,.side .side-foot{display:none}.side.open nav,.side.open .side-foot{flex-direction:column;width:100%;display:flex}.side.open .nav-section{width:100%;display:block}.side.open .side-foot{border-top:1px solid var(--line);flex-direction:row;margin:4px 0 0;padding-top:8px}.grid-card{overflow-x:auto}.tbl{min-width:560px}.toolbar-right{flex-wrap:wrap}.selbar{max-width:none;position:fixed;bottom:8px;left:8px;right:8px;transform:none}.alloc-actions{flex-direction:column;align-items:stretch}.alloc-buttons{flex-wrap:wrap}.alloc-buttons .btn{flex:auto}.alloc-row{grid-template-columns:24px 70px minmax(120px,1fr) 84px}.alloc-row>:nth-child(4),.alloc-row>:nth-child(5){display:none}.trend-summary{grid-template-columns:1fr 1fr}.hero-num{font-size:28px}}@media (hover:none){.restore-link,.grid-row .acct-chev{opacity:1}}.selbar{flex-wrap:nowrap;width:max-content;margin-inline:auto;left:0;right:0;transform:none}.personal{white-space:nowrap}@media (max-width:900px){.selbar{flex-wrap:wrap;width:auto}}.grid-scroll.has-sel{padding-bottom:76px}.nav-scrim{display:none}@media (max-width:900px){.nav-scrim{z-index:34;background:#0f172a59;display:block;position:fixed;inset:0}.toasts{left:8px;right:8px}.toast{max-width:none}}
