:root{--accent:#c8fa3c;--accent-dim:#a9d92f;--accent-soft:rgba(200,250,60,.16);--accent-line:rgba(200,250,60,.35);--on-accent:#11140a;--lime:var(--accent);--lime-dim:var(--accent-dim);--lime-soft:var(--accent-soft);--on-lime:var(--on-accent);--bg:#0b0d0e;--surface-1:#121517;--surface-2:#16191b;--surface-3:#1c2123;--surface-4:#232a2d;--border:#262d30;--border-soft:#1d2325;--border-strong:#3a4448;--text:#eef1f1;--text-2:#aab3b6;--text-3:#8c979c;--cash:var(--accent);--cash-bg:rgba(200,250,60,.13);--cash-line:rgba(200,250,60,.35);--credit:#f4b740;--credit-bg:rgba(244,183,64,.14);--credit-line:rgba(244,183,64,.35);--mixed:var(--text-2);--mixed-bg:var(--surface-3);--ok:var(--cash);--ok-bg:var(--cash-bg);--warn:var(--credit);--warn-bg:var(--credit-bg);--warn-line:var(--credit-line);--danger:#ff5a6a;--danger-bg:rgba(255,90,106,.13);--danger-line:rgba(255,90,106,.35);--on-danger:#11140a;--info:#5b9dff;--info-bg:rgba(91,157,255,.13);--info-line:rgba(91,157,255,.35);--on-info:#11140a;--accent-ink:var(--accent);--focus-ring:var(--accent);--focus-ring-w:2px;--overlay:rgba(0,0,0,.66);--overlay-soft:rgba(0,0,0,.5);--shadow-1:0 6px 24px rgba(0,0,0,.45);--shadow-2:0 8px 30px rgba(0,0,0,.35);--shadow-3:0 18px 50px rgba(0,0,0,.55);--chart-1:var(--accent);--chart-2:#5b9dff;--chart-3:#f4b740;--chart-4:#ff5a6a;--chart-5:#2dd4bf;--chart-6:#a78bfa;--chart-7:#f472b6;--chart-8:#94a3b8;--chart-9:#7cc522;--chart-10:#64748b;--ageing-60:#fb8c00;--ageing-90:#ff7a59;--primary:var(--lime);--green:var(--cash);--red:var(--danger);--amber:var(--credit);--surface:var(--surface-2);--text-muted:var(--text-3);--hdr-h:56px}:root[data-theme=light]{--bg:#eef1ee;--surface-1:#ffffff;--surface-2:#ffffff;--surface-3:#f3f5f2;--surface-4:#e6eae4;--border:#e0e4dd;--border-soft:#edf0ea;--border-strong:#c9cfc6;--text:#161a17;--text-2:#4b5751;--text-3:#5f6963;--accent-ink:#387410;--cash:#387410;--cash-bg:rgba(120,190,40,.16);--cash-line:rgba(56,116,16,.35);--credit:#8a5c00;--credit-bg:rgba(217,150,30,.16);--credit-line:rgba(138,92,0,.35);--danger:#b42a3c;--danger-bg:rgba(216,58,78,.12);--danger-line:rgba(180,42,60,.35);--on-danger:#ffffff;--info:#1f56cc;--info-bg:rgba(37,99,235,.11);--info-line:rgba(31,86,204,.35);--on-info:#ffffff;--focus-ring:#387410;--overlay:rgba(20,24,20,.5);--overlay-soft:rgba(20,24,20,.35);--shadow-1:0 6px 20px rgba(20,30,20,.14);--shadow-2:0 12px 40px rgba(20,30,20,.16);--shadow-3:0 24px 70px rgba(20,30,20,.2);--chart-1:#387410;--chart-2:#1f56cc;--chart-3:#8a5c00;--chart-4:#b42a3c;--chart-5:#0f766e;--chart-6:#6d28d9;--chart-7:#be185d;--chart-8:#64748b;--chart-9:#4d7c0f;--chart-10:#334155;--ageing-60:#c2410c;--ageing-90:#9f1239}*{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark}:root[data-theme=light]{color-scheme:light}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-text-size-adjust:100%}::selection{background:var(--lime);color:var(--on-lime)}:focus-visible,button:focus-visible,a:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-ring-w) solid var(--focus-ring)!important;outline-offset:2px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline-offset:0}.skip-link{position:absolute;left:8px;top:-60px;z-index:5000;background:var(--lime);color:var(--on-lime);padding:8px 14px;border-radius:8px;font-weight:700;text-decoration:none;transition:top .1s}.skip-link:focus{top:8px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner,.skeleton{animation:none!important}}.chip .chip-ic{font-size:13px;margin-right:3px;line-height:1}.skeleton{display:block;background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-4) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;border-radius:6px}@keyframes shimmer{to{background-position:-200% 0}}.skel-rows{display:flex;flex-direction:column;gap:10px;padding:4px 0}.skel-rows .skeleton{height:18px}.skel-rows .skeleton:nth-child(2n){width:80%}.skel-rows .skeleton:nth-child(3n){width:60%}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 12px;color:var(--text-2)}.empty-state .material-icons{font-size:36px;color:var(--text-3)}.empty-state .es-title{font-weight:600;color:var(--text);font-size:15px}.empty-state .es-hint{font-size:13px;color:var(--text-3)}.empty-state .es-action{margin-top:8px}.error-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.error-box .alert-msg{flex:1}.mob-hdr{position:fixed;top:0;left:0;right:0;height:var(--hdr-h);background:var(--surface-1);color:var(--text);display:flex;align-items:center;padding:0 14px;z-index:200;border-bottom:1px solid var(--border);gap:10px}.mob-hdr h1{font-size:17px;font-weight:700;flex:1}.mob-hdr .hdr-btn{background:none;border:none;color:var(--text-2);cursor:pointer;padding:6px;line-height:1;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;-webkit-tap-highlight-color:transparent}.mob-hdr .hdr-btn:active{background:var(--surface-3)}.entity-link{color:inherit;cursor:pointer;text-decoration:underline dotted transparent;text-underline-offset:3px;border-radius:4px;transition:color .12s,background .12s;-webkit-tap-highlight-color:transparent}.entity-link:hover,.entity-link:focus-visible{color:var(--info);text-decoration-color:currentColor;outline:none}.entity-link:active{color:var(--info);background:var(--surface-3)}.stat-tile.entity-link:active,.stat-tile.entity-link:hover,.entity-link.block:active{background:var(--surface-3);color:inherit}.stat-tile.entity-link,.entity-link.block{cursor:pointer;text-decoration:none;display:block}.row-hit{outline:2px solid var(--info);outline-offset:-2px;border-radius:12px}.mob-main{padding-top:calc(var(--hdr-h) + 10px);padding-bottom:20px;min-height:100vh}.mob-page{padding:0 12px}.side-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-soft);z-index:300;opacity:0;pointer-events:none;transition:opacity .2s}.side-overlay.show{opacity:1;pointer-events:auto}.side-nav{position:fixed;top:0;bottom:0;left:0;width:260px;max-width:82vw;background:var(--surface-1);border-right:1px solid var(--border);z-index:301;display:flex;flex-direction:column;transform:translate(-100%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s;box-shadow:var(--shadow-2)}.side-nav.open{transform:translate(0);visibility:visible;transition-delay:0s}.side-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;border-bottom:1px solid var(--border)}.side-brand-name{font-size:14px;font-weight:700;color:var(--text)}.side-brand-sub{font-size:11px;color:var(--text-3);margin-top:1px}.side-user{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.side-user-avatar{width:38px;height:38px;border-radius:50%;background:var(--lime-soft);color:var(--lime);display:flex;align-items:center;justify-content:center;flex-shrink:0}.side-user-avatar .material-icons{font-size:20px}.side-user-info{min-width:0}.side-user-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user-role{font-size:11px;color:var(--text-3);text-transform:capitalize;margin-top:1px}.side-items{flex:1;overflow-y:auto;padding:8px 0}.side-group+.side-group{margin-top:6px}.side-group-label{padding:10px 18px 4px;font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px}.side-nav-item{width:100%;display:flex;align-items:center;gap:14px;padding:13px 18px;cursor:pointer;border:none;background:none;color:var(--text-2);font-size:14px;font-weight:500;text-align:left;-webkit-tap-highlight-color:transparent;transition:color .15s,background .15s;border-left:3px solid transparent}.side-nav-item:active{background:var(--surface-3)}.side-nav-item.active{color:var(--lime);background:var(--surface-2);border-left-color:var(--lime)}.side-nav-item .material-icons{font-size:20px}.side-logout{display:flex;align-items:center;gap:14px;padding:15px 18px;cursor:pointer;border:none;background:none;border-top:1px solid var(--border);color:var(--danger);font-size:14px;font-weight:600;text-align:left;-webkit-tap-highlight-color:transparent}.side-logout:active{background:var(--danger-bg)}.side-logout .material-icons{font-size:20px}.side-version{text-align:center;font-size:11px;color:var(--text-3);padding:4px 0 8px}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px}.card-title{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.card-title-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:none;border:none;cursor:pointer;font-family:inherit;color:var(--text-3);-webkit-tap-highlight-color:transparent}.card-title-toggle .coll-chevron{color:var(--text-3);font-size:20px;flex-shrink:0}.card-title-toggle>span:first-child{flex-shrink:0}.coll-summary{flex:1;text-align:right;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;color:var(--text-2);text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coll-body{padding-top:2px}.coll-row{border-bottom:1px solid var(--border-soft)}.coll-row:last-child{border-bottom:none}.coll-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;padding:10px 0;color:inherit;-webkit-tap-highlight-color:transparent}.coll-row-head .coll-chevron{color:var(--text-3);font-size:20px;flex-shrink:0;margin-top:1px}.coll-row-body{padding:0 0 12px}.field{margin-bottom:13px}.field label{display:block;font-size:11px;color:var(--text-3);font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{border:1px solid var(--border);border-radius:10px;padding:11px 12px;font-size:16px;color:var(--text);background:var(--surface-3);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238c979c' stroke-width='1.6' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}input::placeholder,textarea::placeholder{color:var(--text-3)}input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--lime);box-shadow:0 0 0 3px var(--lime-soft)}.field input,.field select,.field textarea{width:100%}.field .err{color:var(--danger);font-size:11px;margin-top:3px}.field.invalid>label{color:var(--danger)}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:10px;border:1px solid transparent;font-size:15px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .15s,background .15s;font-family:inherit}.btn:active{opacity:.85}.btn:disabled{opacity:.45;cursor:default}.btn-primary,.btn-green{background:var(--lime);color:var(--on-lime)}.btn-outline{background:var(--surface-3);border-color:var(--border);color:var(--text)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.btn-sm{padding:7px 14px;font-size:13px;border-radius:8px}.btn-full{width:100%}.btn-fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:150;border-radius:999px;padding:13px 20px;box-shadow:var(--shadow-1)}.row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.icon-action{width:44px;height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;transition:background .15s}.icon-action:active{background:var(--surface-4)}.icon-action .material-icons{font-size:20px}.icon-action-danger{color:var(--danger);border-color:var(--danger-line)}.icon-action-danger:active{background:var(--danger-bg)}.rfilt-bar{display:flex;align-items:flex-start;gap:8px;margin:-4px 0 10px}.rfilt-sum{flex:1;min-width:0;padding-top:6px;font-size:12.5px;line-height:1.35;color:var(--text-2);font-weight:600}.rfilt-sum-open{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px}.rfilt-toggle.on{border-color:var(--lime);color:var(--lime)}.rfilt-panel{padding-top:2px}.rfilt-none{font-size:12.5px;color:var(--text-3);padding:2px 0 8px}.ca-actions .row-actions{flex-wrap:wrap;row-gap:8px}.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-soft)}.pager-info{font-size:12px;color:var(--text-3)}.pager-btns{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pager-btn{min-width:32px;height:32px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--text-2);border-radius:8px;font-size:13px;-webkit-tap-highlight-color:transparent}.pager-btn.active{background:var(--lime);color:var(--on-lime);border-color:var(--lime);font-weight:600}.pager-btn:disabled{opacity:.35}.pager-btn.pager-nav{min-width:40px;height:40px}.pager-btn i{font-size:18px}.pager-gap{color:var(--text-3);padding:0 2px}.range-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.range-presets{display:flex;gap:4px;flex-wrap:wrap}.range-preset{background:var(--surface-3);border:1px solid var(--border);color:var(--text-2);border-radius:8px;padding:7px 11px;font-size:12px;white-space:nowrap;-webkit-tap-highlight-color:transparent}.range-preset.active{background:var(--lime);color:var(--on-lime);border-color:var(--lime);font-weight:600}.range-month{min-width:170px}.range-dates{display:flex;align-items:center;gap:6px;flex:1 1 260px;min-width:0}.range-dates input[type=date]{flex:1 1 0;min-width:0;width:auto}.page-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.btn-add{display:inline-flex;align-items:center;gap:6px}.confirm-msg{font-size:14px;color:var(--text);line-height:1.5}.confirm-actions{display:flex;gap:10px}.confirm-actions .btn{flex:1}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:9px 0;border-bottom:1px solid var(--border-soft)}.detail-row:last-child{border-bottom:none}.detail-label{font-size:12px;color:var(--text-3);flex-shrink:0}.detail-value{font-size:13.5px;color:var(--text);text-align:right;font-variant-numeric:tabular-nums;word-break:break-word}.detail-cash{color:var(--cash)}.detail-credit{color:var(--credit)}.detail-muted{color:var(--text-3)}.eod-col{min-width:88px;text-align:right}.exp-item.tappable{cursor:pointer;-webkit-tap-highlight-color:transparent}.exp-item.tappable:active .exp-info{opacity:.75}.toggle-group{display:flex;gap:6px}.toggle-btn{flex:1;padding:10px 4px;border-radius:9px;border:1px solid var(--border);background:var(--surface-3);font-size:13px;font-weight:600;cursor:pointer;color:var(--text-2);text-align:center;transition:all .15s;-webkit-tap-highlight-color:transparent;font-family:inherit}.toggle-btn.active-absent{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}.toggle-btn.active-half{background:var(--credit-bg);border-color:var(--credit-line);color:var(--credit)}.toggle-btn.active-full{background:var(--cash-bg);border-color:var(--cash-line);color:var(--cash)}.pay-toggle{display:flex;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.pay-btn{flex:1;padding:10px;border:none;background:var(--surface-3);font-size:14px;font-weight:600;cursor:pointer;color:var(--text-2);font-family:inherit;-webkit-tap-highlight-color:transparent}.pay-btn.cash.on{background:var(--cash-bg);color:var(--cash)}.pay-btn.credit.on{background:var(--credit-bg);color:var(--credit)}.chip{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}.chip-green{background:var(--cash-bg);color:var(--cash)}.chip-amber{background:var(--credit-bg);color:var(--credit)}.chip-blue{background:var(--info-bg);color:var(--info)}.chip-grey{background:var(--surface-3);color:var(--text-3)}.chip-red{background:var(--danger-bg);color:var(--danger)}.deleted-mark{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px}.deleted-meta{font-size:11px;color:var(--text-3)}.exp-item.row-deleted .exp-title,.exp-item.row-deleted .exp-sub,.exp-item.row-deleted .exp-amount,.coll-row.row-deleted .coll-row-head .exp-title,.coll-row.row-deleted .coll-row-head .exp-sub{color:var(--text-3)}.show-toggles{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.show-toggle{display:inline-flex;align-items:center;gap:5px;background:var(--surface-3);border:1px solid var(--border);padding:7px 11px;border-radius:8px;font-size:13px;color:var(--text-2);-webkit-user-select:none;user-select:none;min-height:36px;-webkit-tap-highlight-color:transparent}.show-toggle input{width:16px;height:16px;margin:0}.show-toggle i{font-size:16px;color:var(--text-3)}.show-toggle.on{background:var(--credit-bg);border-color:var(--credit-line);color:var(--text)}.show-toggle.on i{color:var(--credit)}.show-toggle:focus-within{outline:2px solid var(--accent);outline-offset:2px}.restore-btn{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.restore-btn:disabled{opacity:.55;cursor:not-allowed}.err-link{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font-weight:600;font-family:inherit;font-size:inherit;cursor:pointer}.emp-card{background:var(--surface-2);border-radius:10px;padding:12px;margin-bottom:8px;border:1px solid var(--border);border-left-width:3px;transition:border-color .15s}.emp-card.present{border-left-color:var(--cash)}.emp-name{font-weight:600;font-size:14px;color:var(--text)}.emp-meta{font-size:11px;color:var(--text-3);margin-top:2px}.exp-item{display:flex;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border-soft);gap:10px}.exp-item:last-child{border-bottom:none}.exp-info{flex:1}.exp-title{font-weight:600;text-transform:capitalize;color:var(--text)}.exp-sub{font-size:12px;color:var(--text-3);margin-top:2px}.exp-chips{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.exp-amount{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;white-space:nowrap;color:var(--text)}.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}.stat-tile{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px}.stat-label{font-size:11px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}.stat-value{font-size:17px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.loading{display:flex;justify-content:center;align-items:center;padding:40px}.spinner{width:28px;height:28px;border:3px solid var(--surface-4);border-top-color:var(--lime);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.error-box{background:var(--danger-bg);border:1px solid var(--danger-line);border-radius:10px;padding:12px;color:var(--danger);font-size:13px;margin-bottom:12px}.toast-wrap{position:fixed;top:calc(var(--hdr-h) + 8px);left:12px;right:12px;z-index:999;display:flex;flex-direction:column;gap:6px;pointer-events:none}.toast{padding:12px 16px;border-radius:10px;font-size:13px;font-weight:500;background:var(--surface-4);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--lime);box-shadow:var(--shadow-1);animation:slideIn .2s ease}.toast-success{border-left-color:var(--lime)}.toast-error{border-left-color:var(--danger)}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.login-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--bg)}.login-card{background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:28px 20px;width:100%;max-width:400px;box-shadow:var(--shadow-3)}.login-logo{text-align:center;margin-bottom:24px}.login-logo h2{color:var(--text);font-size:20px;font-weight:700;margin-top:10px}.login-logo p{color:var(--text-3);font-size:12px;margin-top:3px}.petty-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--credit-bg);border:1px solid var(--credit-line);border-radius:10px;padding:12px 14px;margin-bottom:12px}.petty-title{font-weight:700;font-size:13px;color:var(--credit)}.petty-sub{font-size:11px;color:var(--credit);opacity:.85;margin-top:2px}.petty-total{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700;color:var(--credit);white-space:nowrap}.conflict-warn{background:var(--danger-bg);border:1px solid var(--danger-line);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--danger);margin-bottom:12px}.sl-item{padding:10px 0;border-bottom:1px solid var(--border-soft)}.sl-item:last-child{border-bottom:none}.sl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.sl-info{flex:1;min-width:0}.sl-title{font-weight:600;font-size:14px;color:var(--text)}.sl-sub{font-size:12px;color:var(--text-3);margin-top:2px;display:flex;align-items:center;flex-wrap:wrap}.sl-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.sl-del{background:none;border:none;cursor:pointer;color:var(--danger);padding:4px;display:inline-flex;align-items:center}.ses-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200;display:flex;align-items:flex-end;justify-content:center}.ses-modal-card{background:var(--surface-2);border:1px solid var(--border);border-radius:16px 16px 0 0;width:100%;max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shadow-3)}.ses-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.ses-modal-head h3{margin:0;font-size:15px;font-weight:700;color:var(--text)}.ses-modal-x{background:none;border:none;color:var(--text-3);cursor:pointer;padding:4px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;-webkit-tap-highlight-color:transparent}.ses-modal-x .material-icons{font-size:22px}.ses-modal-body{padding:14px 16px;overflow-y:auto;flex:1}.ses-modal-foot{padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0}.ms-btn{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 10px 11px 12px;font-size:15px;color:var(--text);background:var(--surface-3);font-family:inherit;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.ms-btn .material-icons{color:var(--text-3);font-size:22px}.ms-modal{display:flex;flex-direction:column}.ms-search{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 12px;font-size:15px;margin-bottom:8px;background:var(--surface-3);color:var(--text);font-family:inherit}.ms-search:focus{border-color:var(--lime);box-shadow:0 0 0 3px var(--lime-soft)}.ms-rows{overflow-y:auto}.ms-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:12px 6px;border-radius:8px;cursor:pointer;font-size:14.5px;color:var(--text);font-family:inherit;-webkit-tap-highlight-color:transparent}.ms-row:active{background:var(--surface-3)}.ms-row .material-icons{color:var(--text-3);font-size:22px;flex-shrink:0}.ms-row.on .material-icons{color:var(--lime)}.ms-row>span{flex:1}.ms-row.ms-all{font-weight:700;border-bottom:1px solid var(--border);border-radius:0;margin-bottom:4px}.ms-row .ms-count{flex:0 0 auto;font-size:12px;color:var(--text-3);font-weight:400}.ms-empty{padding:14px 6px;color:var(--text-3);font-size:13px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.flex-between{display:flex;justify-content:space-between;align-items:center}.text-muted{color:var(--text-3);font-size:12px}.text-bold{font-weight:600}.text-right{text-align:right}.text-center{text-align:center}.net-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;border-radius:10px;font-size:12.5px;line-height:1.35;border:1px solid var(--border);background:var(--surface-3);color:var(--text-2)}.net-bar .material-icons{font-size:18px;flex-shrink:0}.net-bar span{flex:1}.net-bar b{color:var(--text)}.net-off{background:var(--credit-bg);border-color:var(--credit-line);color:var(--credit)}.net-off b{color:var(--credit)}.net-wait{background:var(--info-bg);border-color:var(--info-line);color:var(--info)}.net-wait b{color:var(--info)}.net-attn{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger)}.net-attn b{color:var(--danger)}.net-link{background:none;border:1px solid currentColor;color:inherit;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.update-toast{position:fixed;left:12px;right:12px;bottom:14px;z-index:998;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;font-size:13px;background:var(--surface-4);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--lime);box-shadow:var(--shadow-1);animation:slideIn .2s ease}.update-toast .material-icons{color:var(--lime);flex-shrink:0}.update-toast span{flex:1}.offline-notice{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:10px;background:var(--surface-3);border:1px dashed var(--border);color:var(--text-3);font-size:12.5px;line-height:1.4}.offline-notice .material-icons{font-size:18px;margin-top:1px;flex-shrink:0}.side-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--info);color:var(--on-info)}.side-badge.attn{background:var(--danger)}.sync-item{padding:10px 0;border-bottom:1px solid var(--border-soft)}.sync-item:last-child{border-bottom:none}.sync-item.attn{border-left:3px solid var(--danger);padding-left:8px}.sync-head{display:flex;align-items:center;gap:10px}.sync-head .material-icons{color:var(--text-3);font-size:20px}.sync-info{flex:1;min-width:0}.sync-title{font-size:14px;font-weight:600;color:var(--text)}.sync-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}.sync-err{margin:8px 0 0 30px;font-size:12px;color:var(--danger);line-height:1.4}.sync-field{color:var(--text-2)}.sync-field code{color:var(--credit);font-size:11px}.sync-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.exp-item.queued{opacity:.85}.infotip-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;margin:-10px 0;border:none;background:none;color:var(--text-3);cursor:pointer;border-radius:50%;vertical-align:middle;flex:none}.infotip-btn:active{color:var(--lime);background:var(--surface-3)}.infotip-btn .material-icons{font-size:20px}.infotip-body{font-size:14px;line-height:1.6;color:var(--text-2)}.infotip-body p{margin:0 0 10px}.infotip-body p:last-child{margin-bottom:0}.row-open{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0}.row-open:focus{clip:auto;width:auto;height:auto;top:6px;right:6px;z-index:2;padding:6px 12px;border-radius:8px;background:var(--lime);color:var(--on-lime);font-weight:600;font-size:13px}.exp-item{position:relative}.coll-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:-6px -6px -6px 0;background:none;border:0;border-radius:8px;color:inherit;cursor:pointer;padding:0}.mob-hdr h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hdr-right{display:flex;align-items:center;gap:4px;margin-right:-6px;flex-shrink:0}.mob-hdr .ntf-bell{position:relative}.ntf-badge{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:var(--on-danger);font-size:10.5px;font-weight:700;line-height:18px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--surface-1);pointer-events:none}.ntf-offline{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:12.5px;color:var(--text-3)}.ntf-offline .material-icons{font-size:16px}.ntf-tabs{display:flex;gap:4px;padding:3px;margin-bottom:10px;background:var(--surface-3);border:1px solid var(--border);border-radius:10px}.ntf-tab{flex:1;min-height:40px;padding:6px 4px;border:0;border-radius:8px;background:none;color:var(--text-2);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap}.ntf-tab.on{background:var(--surface-1);color:var(--text);box-shadow:0 1px 2px #00000040}.ntf-list{list-style:none;margin:0;padding:0}.ntf-list>li{border-bottom:1px solid var(--border-soft)}.ntf-list>li:last-child{border-bottom:none}.ntf-row{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:44px;padding:11px 2px;background:none;border:0;color:var(--text);font-family:inherit;font-size:14px;text-align:left;cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent}.ntf-row:active{background:var(--surface-3)}.ntf-chip{flex-shrink:0;margin-top:1px}.ntf-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ntf-title{font-weight:600;color:var(--text)}.ntf-detail{font-size:12.5px;color:var(--text-2)}.ntf-meta{font-size:12px;color:var(--text-3)}.ntf-go{color:var(--text-3);font-size:20px;flex-shrink:0;align-self:center}.ntf-act{display:flex;flex-direction:column;gap:2px;padding:10px 2px}.ntf-foot{display:flex;justify-content:center;padding-top:12px}:root{--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--dur-1: .16s;--dur-2: .28s;--dur-3: .42s;--stagger: 40ms}@keyframes m-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes m-rise-sm{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-fade-out{0%{opacity:1}to{opacity:0}}@keyframes m-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes m-pop-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}@keyframes m-sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes m-sheet-out{0%{transform:none}to{transform:translateY(100%)}}@keyframes m-slide-right{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}@keyframes m-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes m-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes m-shrink-x{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes m-ripple{0%{opacity:.3;transform:translate(-50%,-50%) scale(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@keyframes m-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes m-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}@keyframes m-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-5px)}70%{transform:translateY(1px)}}@keyframes m-spin-in{0%{opacity:0;transform:rotate(-90deg) scale(.5)}to{opacity:1;transform:none}}@keyframes m-drift{0%{background-position:0% 0%,100% 100%}50%{background-position:30% 20%,70% 80%}to{background-position:0% 0%,100% 100%}}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip){--i: 0}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(2){--i: 1}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(3){--i: 2}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(4){--i: 3}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(5){--i: 4}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(6){--i: 5}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(7){--i: 6}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(8){--i: 7}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(9){--i: 8}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(10){--i: 9}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(11){--i: 10}:where(.card,.stat-tile,.exp-item,.sl-item,.sync-item,.emp-card,.coll-row,.detail-row,.side-nav-item,.toggle-btn,.range-preset,.chip):nth-child(n+12){--i: 11}.mob-page{animation:m-fade var(--dur-2) var(--ease-out) backwards}.mob-page .card,.mob-page .empty-state,.mob-page .error-box,.mob-page .petty-banner,.mob-page .offline-notice{animation:m-rise var(--dur-3) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * var(--stagger))}.mob-page .kpi-grid .stat-tile{animation:m-pop-in var(--dur-3) var(--ease-spring) backwards;animation-delay:calc(var(--i, 0) * var(--stagger))}.exp-item,.sl-item,.sync-item,.emp-card,.coll-row{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.detail-row{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 25ms)}.mob-hdr h1{animation:m-slide-down var(--dur-2) var(--ease-out) backwards}.card,.stat-tile,.exp-item,.emp-card{transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),background-color var(--dur-1)}a.stat-tile:active,.stat-tile.entity-link:active,.exp-item.tappable:active,.emp-card:active{transform:scale(.985);transition-duration:.08s}.btn,.toggle-btn,.pay-btn,.range-preset,.show-toggle,.pager-btn,.side-nav-item,.ms-row,.exp-item.tappable,.coll-row-head,.card-title-toggle{position:relative;overflow:hidden}.btn,.toggle-btn,.pay-btn,.range-preset,.show-toggle,.pager-btn,.icon-action,.hdr-btn,.ses-modal-x,.infotip-btn,.rfilt-toggle{transition:transform var(--dur-1) var(--ease-out),background-color var(--dur-1),color var(--dur-1),border-color var(--dur-1),box-shadow var(--dur-2) var(--ease-out)}.btn:active:not(:disabled),.toggle-btn:active,.pay-btn:active,.range-preset:active,.show-toggle:active,.pager-btn:active:not(:disabled),.icon-action:active,.hdr-btn:active,.ses-modal-x:active,.infotip-btn:active{transform:scale(.94);transition-duration:.06s}.btn-primary:active:not(:disabled){box-shadow:0 6px 16px var(--accent-line)}.hdr-btn .material-icons,.ses-modal-x .material-icons,.rfilt-toggle .material-icons{transition:transform var(--dur-2) var(--ease-spring)}.rfilt-toggle.on .material-icons{transform:rotate(90deg)}.m-ripple{position:absolute;border-radius:50%;pointer-events:none;background:currentColor;opacity:0;width:var(--r, 200px);height:var(--r, 200px);left:var(--x, 50%);top:var(--y, 50%);animation:m-ripple .55s var(--ease-out)}.toggle-btn.active-full,.toggle-btn.active-half,.toggle-btn.active-absent,.pay-btn.on,.range-preset.active,.show-toggle.on{animation:m-pop .32s var(--ease-spring)}.toggle-btn.active-full .material-icons,.pay-btn.on .material-icons{animation:m-bounce .5s var(--ease-out)}.range-presets .range-preset{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.range-presets .range-preset.active{animation:m-pop .32s var(--ease-spring) backwards}.chip{animation:m-pop .3s var(--ease-spring) backwards;animation-delay:calc(var(--i, 0) * 30ms)}.btn .spinner{animation:spin .7s linear infinite,m-fade var(--dur-1) ease}.field input,.field select,.field textarea{transition:border-color var(--dur-1),box-shadow var(--dur-2) var(--ease-out)}.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 4px var(--accent-soft)}.field .err{animation:m-shake .4s ease,m-fade var(--dur-1) ease}.coll-chevron{transition:transform var(--dur-2) var(--ease-spring)}.coll-toggle[aria-expanded=true] .coll-chevron,.card-title-toggle[aria-expanded=true] .coll-chevron{transform:rotate(180deg)}.coll-row-body,.coll-body,.rfilt-panel{animation:m-slide-down var(--dur-2) var(--ease-out)}.ses-modal-backdrop{animation:m-fade var(--dur-2) var(--ease-out)}.ses-modal-card{animation:m-sheet-in .34s var(--ease-out) backwards}.ses-modal-card:before{content:"";display:block;width:38px;height:4px;border-radius:2px;background:var(--border-strong);margin:8px auto -4px;animation:m-grow-x .4s var(--ease-out) .15s backwards}.ses-modal-body>*,.ses-modal-body form>*{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards;animation-delay:90ms}.ses-modal-foot{animation:m-fade var(--dur-2) var(--ease-out) backwards;animation-delay:.13s}.ses-modal-backdrop.closing{animation:m-fade-out .2s var(--ease-in) forwards;pointer-events:none}.ses-modal-backdrop.closing .ses-modal-card{animation:m-sheet-out .2s var(--ease-in) forwards}.ses-modal-x:active .material-icons{transform:rotate(90deg)}.toast{animation:m-slide-down .32s var(--ease-spring) backwards;position:relative;overflow:hidden}.toast-error{animation:m-slide-down .32s var(--ease-spring) backwards,m-shake .45s ease .32s}.toast:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime);opacity:.5;transform-origin:left;animation:m-shrink-x var(--toast-ms, 3.5s) linear forwards}.toast-error:after{background:var(--danger)}.update-toast{animation:m-slide-down .32s var(--ease-spring) backwards}.error-box{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards,m-shake .4s ease var(--dur-2)}.empty-state>.material-icons{animation:m-float 3.2s ease-in-out infinite}.net-bar,.net-attn{animation:m-slide-down var(--dur-2) var(--ease-out) backwards}.side-badge{animation:m-pop .35s var(--ease-spring) backwards}.skel-rows .skeleton{animation:shimmer 1.2s ease-in-out infinite,m-fade var(--dur-2) var(--ease-out) backwards}.infotip-body{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards}.m-count{font-variant-numeric:tabular-nums}@keyframes m-wiggle{0%,to{transform:rotate(0)}15%{transform:rotate(16deg)}30%{transform:rotate(-14deg)}45%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}}.ntf-badge.ntf-pop{animation:m-pop .4s var(--ease-spring)}.ntf-wiggle{animation:m-wiggle .7s var(--ease-out);transform-origin:50% 8%}.ntf-list>li{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards}.ntf-tabpanel>*{animation:m-fade var(--dur-2) var(--ease-out) backwards}.side-nav.open .side-nav-item{animation:m-slide-right var(--dur-2) var(--ease-out) backwards;animation-delay:calc(60ms + var(--i, 0) * 22ms)}.side-nav.open .side-user,.side-nav.open .side-brand{animation:m-fade var(--dur-3) var(--ease-out) backwards}.side-nav-item .material-icons{transition:transform var(--dur-2) var(--ease-spring),color var(--dur-1)}.side-nav-item.active .material-icons{animation:m-pop .35s var(--ease-spring)}.side-overlay{transition:opacity var(--dur-2) var(--ease-out)}.login-wrap{background-image:radial-gradient(40vmax 40vmax at 0% 0%,var(--accent-soft),transparent 70%),radial-gradient(35vmax 35vmax at 100% 100%,var(--info-bg),transparent 70%);background-repeat:no-repeat;background-size:140% 140%,140% 140%;animation:m-drift 18s ease-in-out infinite}.login-card{animation:m-pop-in .5s var(--ease-spring) backwards}.login-logo{animation:m-spin-in .6s var(--ease-spring) .15s backwards}.login-card form>*{animation:m-rise-sm var(--dur-2) var(--ease-out) backwards}.login-card form>:nth-child(1){animation-delay:.3s}.login-card form>:nth-child(2){animation-delay:.36s}.login-card form>:nth-child(3){animation-delay:.42s}.login-card form>:nth-child(n+4){animation-delay:.48s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-delay:0s!important;transition-delay:0s!important}.login-wrap,.empty-state>.material-icons{animation:none!important}.ntf-badge.ntf-pop,.ntf-wiggle{animation:none!important}.m-ripple{display:none}}@media print{*,*:before,*:after{animation:none!important;transition:none!important}}
