.shell[data-v-043d0ced]{--current-sidebar: var(--ws-sidebar-width);display:grid;grid-template-columns:var(--current-sidebar) 1fr;min-height:100vh;transition:grid-template-columns .2s ease}.shell.collapsed[data-v-043d0ced]{--current-sidebar: var(--ws-sidebar-collapsed)}.backdrop[data-v-043d0ced]{display:none}.sidebar[data-v-043d0ced]{background:var(--ws-sidebar);color:var(--ws-sidebar-text);padding:1rem .75rem;display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0;height:100vh;overflow:hidden}.brand[data-v-043d0ced]{display:flex;gap:.75rem;align-items:center;padding:.35rem .5rem;min-height:48px}.brand-mark[data-v-043d0ced]{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--ws-brand);color:#fff;font-weight:800;flex-shrink:0}.brand-name[data-v-043d0ced]{font-weight:700;color:#fff;font-size:1rem;line-height:1.1}.brand-sub[data-v-043d0ced]{font-size:.72rem;opacity:.65}.nav[data-v-043d0ced]{display:flex;flex-direction:column;gap:.2rem;flex:1}.nav-item[data-v-043d0ced],.logout-btn[data-v-043d0ced]{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border-radius:10px;color:var(--ws-sidebar-text);border:none;background:transparent;cursor:pointer;width:100%;text-align:left;position:relative;transition:background .15s ease,color .15s ease}.nav-item[data-v-043d0ced]:hover,.logout-btn[data-v-043d0ced]:hover{background:var(--ws-sidebar-hover);color:#fff}.nav-item.router-link-active[data-v-043d0ced]{background:var(--ws-sidebar-active);color:#fff}.nav-item.router-link-active[data-v-043d0ced]:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--ws-brand)}.nav-icon[data-v-043d0ced]{display:grid;place-items:center;width:22px;flex-shrink:0}.nav-label[data-v-043d0ced]{white-space:nowrap;font-size:.9rem;font-weight:550}.shell.collapsed .nav-label[data-v-043d0ced],.shell.collapsed .brand-copy[data-v-043d0ced],.shell.collapsed .user-meta[data-v-043d0ced]{display:none}.shell.collapsed .nav-item[data-v-043d0ced],.shell.collapsed .logout-btn[data-v-043d0ced]{justify-content:center;padding-inline:.65rem}.shell.collapsed .brand[data-v-043d0ced]{justify-content:center}.sidebar-foot[data-v-043d0ced]{margin-top:auto;display:grid;gap:.65rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.08)}.user-chip[data-v-043d0ced]{display:flex;gap:.65rem;align-items:center;padding:.35rem .45rem}.user-avatar[data-v-043d0ced]{width:34px;height:34px;border-radius:9px;background:#ffffff1a;display:grid;place-items:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.user-meta[data-v-043d0ced]{display:grid;gap:.1rem;min-width:0}.user-meta strong[data-v-043d0ced]{font-size:.82rem;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta span[data-v-043d0ced]{font-size:.72rem;opacity:.65;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main[data-v-043d0ced]{min-width:0;display:flex;flex-direction:column}.topbar[data-v-043d0ced]{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.5rem;background:#fff;border-bottom:1px solid var(--ws-line);position:sticky;top:0;z-index:20}.topbar-left[data-v-043d0ced]{display:flex;align-items:center;gap:.65rem;min-width:0}.topbar-right[data-v-043d0ced]{display:flex;align-items:center;gap:.75rem}.topbar-user[data-v-043d0ced]{display:grid;text-align:right}.topbar-user-name[data-v-043d0ced]{font-size:.88rem;font-weight:650}.topbar-user-role[data-v-043d0ced]{font-size:.72rem;color:var(--ws-muted)}.icon-btn[data-v-043d0ced]{width:36px;height:36px;border-radius:8px;border:1px solid var(--ws-line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--ws-ink)}.icon-btn[data-v-043d0ced]:hover{background:#f3f4f6}.mobile-only[data-v-043d0ced]{display:none}.page-body[data-v-043d0ced]{padding:1.35rem 1.5rem 2rem}@media(max-width:960px){.shell[data-v-043d0ced]{grid-template-columns:1fr}.sidebar[data-v-043d0ced]{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);z-index:40;transform:translate(-105%);transition:transform .2s ease}.shell.mobile-open .sidebar[data-v-043d0ced]{transform:translate(0)}.shell.mobile-open .backdrop[data-v-043d0ced]{display:block;position:fixed;inset:0;background:#0f172a73;z-index:30}.shell.collapsed .nav-label[data-v-043d0ced],.shell.collapsed .brand-copy[data-v-043d0ced],.shell.collapsed .user-meta[data-v-043d0ced]{display:block}.shell.collapsed .nav-item[data-v-043d0ced],.shell.collapsed .logout-btn[data-v-043d0ced]{justify-content:flex-start;padding-inline:.8rem}.mobile-only[data-v-043d0ced]{display:grid}.desktop-only[data-v-043d0ced]{display:none}.page-body[data-v-043d0ced]{padding:1rem}}.login-page[data-v-8e011a5b]{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 10% 20%,rgba(13,148,136,.12),transparent 35%),radial-gradient(circle at 90% 10%,rgba(15,23,42,.06),transparent 30%),var(--ws-bg)}.login-shell[data-v-8e011a5b]{width:min(920px,100%);display:grid;grid-template-columns:1.05fr 1fr;background:#fff;border:1px solid var(--ws-line);border-radius:18px;overflow:hidden;box-shadow:var(--ws-shadow)}.brand-panel[data-v-8e011a5b]{background:linear-gradient(160deg,#0f172a,#134e4a);color:#fff;padding:2.5rem 2rem;display:flex;flex-direction:column;justify-content:center;gap:.85rem}.brand-mark[data-v-8e011a5b]{width:48px;height:48px;border-radius:12px;background:var(--ws-brand);display:grid;place-items:center;font-weight:800;font-size:1.2rem}.brand-panel h1[data-v-8e011a5b]{margin:0;font-family:var(--font-display);font-size:2.2rem;font-weight:700}.brand-panel p[data-v-8e011a5b]{margin:0;color:#ffffffc7;line-height:1.5;max-width:28ch}.form-panel[data-v-8e011a5b]{padding:2.25rem 2rem;display:flex;flex-direction:column;justify-content:center}.form-head h2[data-v-8e011a5b]{margin:0 0 .35rem;font-size:1.5rem;font-weight:700}.form[data-v-8e011a5b]{display:grid;gap:1rem;margin-top:1.35rem}.password-wrap[data-v-8e011a5b]{position:relative}.password-wrap .ws-input[data-v-8e011a5b]{padding-right:2.75rem}.toggle-pass[data-v-8e011a5b]{position:absolute;right:.55rem;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--ws-muted);cursor:pointer;display:grid;place-items:center;padding:.25rem}.submit[data-v-8e011a5b]{width:100%;margin-top:.35rem;padding:.8rem 1rem}@media(max-width:800px){.login-shell[data-v-8e011a5b]{grid-template-columns:1fr}.brand-panel[data-v-8e011a5b]{padding:1.75rem 1.5rem}.form-panel[data-v-8e011a5b]{padding:1.75rem 1.5rem 2rem}}.stat-card[data-v-7978be74]{display:flex;gap:.9rem;align-items:center;padding:1.1rem 1.15rem}.stat-icon[data-v-7978be74]{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.stat-label[data-v-7978be74]{color:var(--ws-muted);font-size:.8rem;font-weight:600;margin-bottom:.2rem}.stat-value[data-v-7978be74]{font-size:1.45rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}.cards[data-v-65288b2c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem;margin-bottom:1.1rem}.charts[data-v-65288b2c]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.chart-card[data-v-65288b2c]{padding:1.1rem 1.15rem 1rem}.chart-head[data-v-65288b2c]{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.85rem}.chart-head h3[data-v-65288b2c]{margin:0;font-size:.98rem;font-weight:700}.chart-head span[data-v-65288b2c]{font-size:.78rem}.chart-body[data-v-65288b2c]{height:260px}.chart-body .ws-empty[data-v-65288b2c]{padding:3rem 1rem}@media(max-width:900px){.charts[data-v-65288b2c]{grid-template-columns:1fr}}.ws-panel[data-v-da24f863]{overflow-x:auto}.actions[data-v-da24f863]{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.form[data-v-da24f863]{display:grid;gap:.85rem;margin-top:1rem}.grid-2[data-v-da24f863]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.small[data-v-da24f863]{font-size:.8rem;color:var(--ws-muted)}.pager[data-v-da24f863]{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-top:1px solid var(--ws-line)}.top-actions[data-v-073d93b1]{margin-bottom:.85rem}.hero[data-v-073d93b1]{padding:1.2rem 1.25rem;display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1rem}.hero h2[data-v-073d93b1]{margin:0 0 .35rem;font-size:1.25rem;font-weight:700}.tabs[data-v-073d93b1]{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:1rem;padding:.3rem;background:#fff;border:1px solid var(--ws-line);border-radius:10px;width:fit-content;max-width:100%}.tab[data-v-073d93b1]{border:none;background:transparent;border-radius:8px;padding:.5rem .85rem;cursor:pointer;color:var(--ws-muted);font-weight:600;font-size:.88rem}.tab[data-v-073d93b1]:hover{background:#f3f4f6;color:var(--ws-ink)}.tab.active[data-v-073d93b1]{background:var(--ws-brand-soft);color:var(--ws-brand-dark)}.panel[data-v-073d93b1]{padding:1.1rem 1.15rem;overflow-x:auto}.panel-head[data-v-073d93b1]{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:.85rem}.panel-head h3[data-v-073d93b1]{margin:0;font-size:1rem;font-weight:700}.filters[data-v-073d93b1]{display:flex;gap:.5rem;flex-wrap:wrap}.filters .ws-input[data-v-073d93b1],.filters .ws-select[data-v-073d93b1]{width:auto;min-width:140px}.actions[data-v-073d93b1]{display:flex;gap:.35rem;justify-content:flex-end}.form[data-v-073d93b1]{display:grid;gap:.8rem;margin-top:1rem}.grid-2[data-v-073d93b1]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.income-total[data-v-073d93b1]{margin-bottom:1rem;font-size:1.05rem}.ws-panel[data-v-319eb0f6]{overflow-x:auto}.actions[data-v-319eb0f6]{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.form[data-v-319eb0f6]{display:grid;gap:.8rem;margin-top:1rem}.grid-2[data-v-319eb0f6]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.perms[data-v-319eb0f6]{display:grid;gap:.45rem;padding:.75rem;background:#f9fafb;border-radius:8px;border:1px solid var(--ws-line)}.small[data-v-319eb0f6]{font-size:.8rem;color:var(--ws-muted)}.pager[data-v-319eb0f6]{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-top:1px solid var(--ws-line)}.stack[data-v-31183f20]{display:grid;gap:1rem}.panel[data-v-31183f20]{padding:1.1rem 1.15rem;overflow-x:auto}.panel-head[data-v-31183f20]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--ws-line)}.panel-head h3[data-v-31183f20]{margin:0;font-size:1rem;font-weight:700}.period[data-v-31183f20]{white-space:nowrap;font-variant-numeric:tabular-nums}.actions[data-v-31183f20]{display:flex;flex-wrap:nowrap;gap:.4rem;justify-content:flex-end;align-items:center;min-width:240px}.btn-sm[data-v-31183f20]{padding:.4rem .7rem;font-size:.8rem;white-space:nowrap}.form[data-v-31183f20]{display:grid;gap:.8rem;margin-top:1rem}.grid-2[data-v-31183f20]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.small[data-v-31183f20]{font-size:.8rem;color:var(--ws-muted)}.stack[data-v-a26761af]{display:grid;gap:1rem}.panel[data-v-a26761af]{padding:1.1rem 1.15rem;overflow-x:auto}.panel-head[data-v-a26761af]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem;padding-bottom:.75rem;border-bottom:1px solid var(--ws-line)}.panel-head h3[data-v-a26761af]{margin:0;font-size:1rem;font-weight:700}.actions[data-v-a26761af]{display:flex;gap:.35rem;justify-content:flex-end}.form[data-v-a26761af]{display:grid;gap:.8rem;margin-top:1rem}.perm-chips[data-v-a26761af]{display:flex;flex-wrap:wrap;gap:.35rem}.perm-grid[data-v-a26761af]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.45rem;max-height:280px;overflow:auto;padding:.75rem;background:#f9fafb;border:1px solid var(--ws-line);border-radius:8px}.perm-item[data-v-a26761af]{font-size:.88rem}.panel[data-v-75f0086b]{padding:1.35rem 1.4rem}.form[data-v-75f0086b]{display:grid;gap:.9rem}.grid-2[data-v-75f0086b]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.grid-3[data-v-75f0086b]{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}h3[data-v-75f0086b]{margin:.85rem 0 0;font-size:.95rem;font-weight:700;padding-top:.5rem;border-top:1px solid var(--ws-line)}h3[data-v-75f0086b]:first-child{border-top:none;padding-top:0;margin-top:0}.ok[data-v-75f0086b]{color:var(--ws-success);font-weight:600}@media(max-width:800px){.grid-2[data-v-75f0086b],.grid-3[data-v-75f0086b]{grid-template-columns:1fr}}
