:root{--color-bg:#0a0a0a;--color-surface:#111;--color-raised:#181818;--color-border:#262626;--color-text:#fff;--color-text-muted:#a3a3a3;--color-primary:#00ffb8;--color-primary-contrast:#0a0a0a;--color-accent:#00ffb8;--color-accent-contrast:#0a0a0a;--color-danger:#ff5c5c;--color-success:#00ffb8;--color-warning:#ffb84d;--color-status-paid:#00ffb8;--color-status-partial:#4da3ff;--color-status-due:#ffb84d;--color-status-overdue:#ff5c5c;--glow-mint:#00ffb8;--glow-teal:#2dd4bf;--glow-mint-opacity:16%;--glow-teal-opacity:10%;--glass-bg:#ffffff0d;--glass-bg-strong:#ffffff14;--glass-bg-data:#101010b8;--glass-border:#ffffff1f;--glass-border-strong:#ffffff29;--glass-highlight:#ffffff14;--glass-blur:20px;--glass-blur-sm:10px;--glass-shadow:0 8px 32px #00000073;--glass-shadow-elevated:0 24px 64px #0000008c;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-base:16px;--line-height-base:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--shadow-card:0 1px 3px #00000080, 0 1px 2px #0006;--shadow-elevated:0 12px 32px #00000080;--transition-fast:.12s ease;--transition-base:.2s ease}@media (width<=899px){:root{--glass-blur:10px;--glass-blur-sm:6px}}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0s;--transition-base:0s}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;position:relative}body:before{content:"";z-index:-1;background:radial-gradient(640px circle at 12% 8%, color-mix(in srgb, var(--glow-mint) var(--glow-mint-opacity), transparent), transparent 65%), radial-gradient(560px circle at 90% 18%, color-mix(in srgb, var(--glow-teal) var(--glow-teal-opacity), transparent), transparent 65%), radial-gradient(720px circle at 40% 105%, color-mix(in srgb, var(--glow-mint) var(--glow-mint-opacity), transparent), transparent 65%), var(--color-bg);position:fixed;inset:0}input[type=date],input[type=month]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight)}.glass-strong{background:var(--glass-bg-strong);border:1px solid var(--glass-border-strong);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight)}.glass-data{background:var(--glass-bg-data);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur-sm));box-shadow:var(--glass-shadow)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass,.glass-strong,.glass-data{background:var(--color-surface)}}h1{letter-spacing:-.01em;margin:0 0 var(--space-2);font-size:1.5rem;font-weight:700}h2{letter-spacing:-.005em}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button{font-family:var(--font-sans);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);padding:var(--space-3) var(--space-4);cursor:pointer;border:none;min-height:44px;font-size:1rem;font-weight:600;transition:opacity .15s,transform 50ms,background-color .15s}button:hover:not(:disabled){opacity:.88}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}.page-loading{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.login-page{min-height:100vh;padding:var(--space-4);background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--color-accent) 6%, var(--color-bg)) 0%, var(--color-bg) 60%);justify-content:center;align-items:center;display:flex}.login-card{background:var(--glass-bg-strong);border:1px solid var(--glass-border-strong);width:100%;max-width:360px;-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-elevated), inset 0 1px 0 var(--glass-highlight);padding:var(--space-6);gap:var(--space-2);flex-direction:column;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.login-card{background:var(--color-surface)}}.login-logo{width:auto;height:32px;margin:0 0 var(--space-4)}.login-subtitle{color:var(--color-text-muted);margin:0 0 var(--space-4)}.login-card label{color:var(--color-text-muted);margin-top:var(--space-2);font-size:.875rem}.login-card input{font-family:var(--font-sans);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-raised);color:var(--color-text);min-height:44px;font-size:1rem}.login-card input:focus-visible{border-color:var(--color-accent)}.login-card button{margin-top:var(--space-4)}.login-error{color:var(--color-danger);margin:var(--space-2) 0 0;font-size:.875rem}.app-shell{min-height:100vh;display:flex}.app-sidebar{display:none}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--glass-bg-strong);border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));z-index:10;display:flex;position:sticky;top:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.app-topbar{background:var(--color-surface)}}.app-topbar-mark{width:auto;height:24px}.app-title{color:var(--color-text);flex:1;font-weight:700}.app-topbar-right{align-items:center;gap:var(--space-3);display:flex}.app-user{color:var(--color-text-muted);font-size:.875rem;display:none}@media (width>=640px){.app-user{display:inline}}.app-content{padding-bottom:calc(var(--space-7) + 56px);flex:1}.app-bottom-nav{background:var(--glass-bg-strong);border-top:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur-sm));padding-bottom:env(safe-area-inset-bottom);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.app-bottom-nav{background:var(--color-surface)}}.app-nav-link{text-align:center;padding:var(--space-3) var(--space-2);min-height:48px;color:var(--color-text-muted);transition:color var(--transition-fast);flex:1;justify-content:center;align-items:center;font-size:.8rem;font-weight:500;text-decoration:none;display:flex}.app-nav-link.active{color:var(--color-accent);font-weight:700}@media (width>=900px){.app-sidebar{background:var(--glass-bg-strong);border-right:1px solid var(--glass-border);width:232px;-webkit-backdrop-filter:blur(var(--glass-blur));padding:var(--space-5) var(--space-4);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.app-sidebar{background:var(--color-surface)}}.app-sidebar-logo{width:auto;height:26px;margin-bottom:var(--space-6)}.app-sidebar-nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.app-sidebar-link{padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);transition:background var(--transition-fast), color var(--transition-fast);font-size:.9rem;font-weight:500;text-decoration:none}.app-sidebar-link:hover{background:var(--glass-highlight);color:var(--color-text)}.app-sidebar-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-sidebar-link.active{background:color-mix(in srgb, var(--color-accent) 14%, transparent);color:var(--color-accent);font-weight:700}.app-sidebar-footer{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.app-sidebar-footer .app-user{word-break:break-all;font-size:.8rem;display:block}.app-topbar,.app-bottom-nav{display:none}.app-content{padding-bottom:var(--space-7)}}.btn-secondary{background:var(--color-raised);color:var(--color-text);border:1px solid var(--color-border);font-weight:500}.btn-secondary:hover:not(:disabled){background:var(--color-border);opacity:1}.btn-danger{background:var(--color-danger);color:#fff}.status-cell{align-items:center;gap:var(--space-2);display:flex}.btn-icon-danger{border-radius:var(--radius-md);width:28px;height:28px;color:var(--color-text-muted);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:.9rem;line-height:1;display:inline-flex}.btn-icon-danger:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 14%, transparent);border-color:color-mix(in srgb, var(--color-danger) 35%, transparent);color:var(--color-danger)}.btn-icon-danger:disabled{opacity:.5;cursor:not-allowed}.settings-page{max-width:720px;padding:var(--space-5) var(--space-4);margin:0 auto}.settings-panel{background:var(--glass-bg-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.settings-panel{background:var(--color-surface)}}.settings-hint{color:var(--color-text-muted);font-size:.875rem}.form-error{color:var(--color-danger);font-size:.875rem}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid #0000;margin:0;font-size:.875rem;line-height:1.5}.alert-error{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent);border-color:color-mix(in srgb, var(--color-danger) 35%, transparent)}.alert-warning{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent);border-color:color-mix(in srgb, var(--color-warning) 35%, transparent)}.alert-warning a{color:var(--color-warning);text-decoration:underline}.settings-add-row{gap:var(--space-2);margin:var(--space-3) 0 var(--space-4);flex-wrap:wrap;display:flex}.settings-add-row input,.settings-add-row select,.settings-edit-row input,.settings-edit-row select{font-family:var(--font-sans);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-raised);color:var(--color-text);font-size:1rem}.settings-add-row input[type=text]{flex:1;min-width:160px}.settings-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.settings-list li{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.settings-item-archived{opacity:.6}.settings-item-name{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.settings-item-meta{color:var(--color-text-muted);font-size:.8rem}.settings-badge{color:var(--color-warning);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:2px 6px;font-size:.75rem}.settings-item-actions{gap:var(--space-2);display:flex}.settings-edit-row{gap:var(--space-2);flex-wrap:wrap;flex:1;display:flex}.customers-page{max-width:1100px;padding:var(--space-5) var(--space-4);margin:0 auto}.customers-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.customers-filters{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.customers-filters input[type=text],.customers-filters input[type=month],.customers-filters select{font-family:var(--font-sans);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:.9rem}.customers-checkbox{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:.875rem;display:flex}.table-scroll{background:var(--glass-bg-data);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(var(--glass-blur-sm));overflow-x:auto}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.table-scroll{background:var(--color-surface)}}.customers-table{border-collapse:collapse;background:0 0;width:100%}.customers-table th,.customers-table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--glass-border);white-space:nowrap;font-size:.9rem}.customers-table th{cursor:pointer;color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.customers-table tbody tr{transition:background var(--transition-fast)}.customers-table tbody tr:hover{background:var(--glass-highlight)}.customers-status-badge{margin-left:var(--space-2);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 6px;font-size:.7rem}.customer-form-page{max-width:480px;padding:var(--space-5) var(--space-4);margin:0 auto}.customer-form{gap:var(--space-2);flex-direction:column;display:flex}.customer-form label{color:var(--color-text-muted);margin-top:var(--space-2);font-size:.875rem}.customer-form input,.customer-form select,.customer-form textarea{font-family:var(--font-sans);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:1rem}.customer-form-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.missing-badge{color:var(--color-warning);border:1px solid var(--color-warning);border-radius:var(--radius-sm);margin:0 0 var(--space-2);padding:1px 6px;font-size:.75rem;display:inline-block}.customer-detail-page{max-width:720px;padding:var(--space-5) var(--space-4);margin:0 auto}.customer-detail-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.customer-detail-meta{color:var(--color-text-muted);margin:var(--space-1) 0 0;font-size:.875rem}.customer-tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);display:flex}.customer-tabs button{color:var(--color-text-muted);padding:var(--space-2) var(--space-3);background:0 0;border-bottom:2px solid #0000;border-radius:0}.customer-tabs button.active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.tab-panel{gap:var(--space-3);flex-direction:column;display:flex}.task-add{gap:var(--space-2);flex-direction:column;display:flex}.task-add textarea{font-family:var(--font-sans);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);resize:vertical;font-size:1rem}.task-add-row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.task-add-date{color:var(--color-text-muted);gap:var(--space-1);flex-direction:column;font-size:.8rem;display:flex}.task-add-date input{font-family:var(--font-sans);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-raised);color:var(--color-text)}.task-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.task-list li{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.task-list-done span{color:var(--color-text-muted);text-decoration:line-through}.task-list-done .task-due{text-decoration:none}.task-checkbox-label{align-items:center;gap:var(--space-2);flex:1;display:flex}.task-due{color:var(--color-text-muted);font-size:.8rem}.btn-sm{padding:var(--space-1) var(--space-2);min-height:32px;font-size:.8rem}.btn-link{color:var(--color-accent);padding:var(--space-1) 0;background:0 0;align-self:flex-start}.notes-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notes-list li{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md)}.notes-list-header{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.notes-body{white-space:pre-wrap;margin:0}.service-add-form{gap:var(--space-2);padding:var(--space-3);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.service-add-form label{color:var(--color-text-muted);gap:var(--space-1);flex-direction:column;font-size:.875rem;display:flex}.service-add-form input,.service-add-form select{font-family:var(--font-sans);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-raised);color:var(--color-text);font-size:1rem}.charge-list{gap:var(--space-3)}.service-pay-form{flex:1 0 100%}.charge-item{flex-direction:column;align-items:stretch}.charge-item-main{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;width:100%;display:flex}.charge-status-badge{border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;font-size:.75rem;font-weight:600}.charge-status-paid{color:var(--color-status-paid);border:1px solid var(--color-status-paid);background:color-mix(in srgb, var(--color-status-paid) 16%, transparent)}.charge-status-partial{color:var(--color-status-partial);border:1px solid var(--color-status-partial);background:color-mix(in srgb, var(--color-status-partial) 16%, transparent)}.charge-status-due{color:var(--color-status-due);border:1px solid var(--color-status-due);background:color-mix(in srgb, var(--color-status-due) 16%, transparent)}.charge-status-overdue{color:var(--color-status-overdue);border:1px solid var(--color-status-overdue);background:color-mix(in srgb, var(--color-status-overdue) 16%, transparent)}.dashboard-page{max-width:1100px;padding:var(--space-5) var(--space-4) var(--space-7);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.dashboard-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.dashboard-header h1{margin:0}.view-toggle{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(var(--glass-blur-sm));display:flex;overflow:hidden}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.view-toggle{background:var(--color-surface)}}.view-toggle button{color:var(--color-text-muted);padding:var(--space-2) var(--space-4);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border-radius:0}.view-toggle button:hover:not(.active){background:var(--glass-highlight);color:var(--color-text)}.view-toggle button.active{background:var(--color-primary);color:var(--color-primary-contrast);font-weight:600}.dashboard-period-picker input[type=month]{font-family:var(--font-sans);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:1rem}.dashboard-section{gap:var(--space-3);flex-direction:column;display:flex}.dashboard-section h2{margin:0;font-size:1.1rem}.kpi-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.kpi-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-1);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight);transition:border-color var(--transition-fast), transform var(--transition-fast);flex-direction:column;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.kpi-card{background:var(--color-surface)}}.kpi-card:hover{border-color:color-mix(in srgb, var(--color-accent) 40%, var(--glass-border));transform:translateY(-1px)}.kpi-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.kpi-value{color:var(--color-text);font-size:1.6rem;font-weight:700}.kpi-delta{color:var(--color-text-muted);font-size:.8rem}.kpi-delta-up:before{content:"▲ "}.kpi-delta-down:before{content:"▼ "}.kpi-card-body{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.kpi-card-main{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.kpi-sparkline{flex-shrink:0;width:72px;height:32px}.kpi-gauge{flex-shrink:0;position:relative}.kpi-gauge-label{color:var(--color-text);justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex;position:absolute;inset:0}.attention-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.attention-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-2);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);flex-direction:column;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.attention-card{background:var(--color-surface)}}.attention-card h3{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0;font-size:.9rem;display:flex}.attention-count{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);padding:1px 8px;font-size:.75rem}.attention-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.attention-list li a{color:var(--color-text);transition:color var(--transition-fast);text-decoration:none}.attention-list li a:hover{color:var(--color-accent)}.attention-more{color:var(--color-text-muted);font-size:.8rem}.filter-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{background:var(--glass-bg);color:var(--color-text-muted);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);cursor:pointer;min-height:36px;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);font-size:.8rem;font-weight:500}.chip:hover:not(.active){background:var(--glass-highlight);color:var(--color-text)}.chip.active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary);font-weight:600}.days-late{color:var(--color-status-overdue);font-size:.8rem;font-weight:600}.quick-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.inline-pay-row td{background:var(--color-bg);padding:var(--space-3)}.recent-payments-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recent-payments-list li{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--glass-bg-data);border:1px solid var(--glass-border);border-radius:var(--radius-md);flex-wrap:wrap;font-size:.875rem;display:flex}.dashboard-year-placeholder{background:var(--glass-bg);border:1px dashed var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-4);text-align:center;color:var(--color-text-muted);-webkit-backdrop-filter:blur(var(--glass-blur-sm))}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.dashboard-year-placeholder{background:var(--color-surface)}}.payment-list{margin:var(--space-2) 0 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.payment-list li{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;display:flex}.year-picker{align-items:center;gap:var(--space-3);display:flex}.year-picker-value{text-align:center;min-width:48px;font-size:1.1rem;font-weight:700}.year-grid-wrap{gap:var(--space-3);flex-direction:column;display:flex}.year-grid-table{border-collapse:collapse;background:0 0;width:100%}.year-grid-table th,.year-grid-table td{text-align:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--glass-border);white-space:nowrap;font-size:.85rem}.year-grid-table th{color:var(--color-text-muted)}.year-grid-table th:first-child,.year-grid-table td:first-child{text-align:left}.year-grid-sticky{background:var(--glass-bg-data);z-index:1;position:sticky;left:0}.year-grid-sticky a{color:var(--color-text);text-decoration:none}.year-grid-sticky a:hover{color:var(--color-accent)}.year-grid-cell{cursor:pointer;transition:outline-color var(--transition-fast), filter var(--transition-fast)}.year-grid-cell:hover{outline:1px solid var(--color-accent);filter:brightness(1.15)}.year-grid-cell-empty{cursor:default;color:var(--color-text-muted)}.year-grid-cell-paid{color:var(--color-status-paid);background:color-mix(in srgb, var(--color-status-paid) 12%, transparent)}.year-grid-cell-partial{color:var(--color-status-partial);background:color-mix(in srgb, var(--color-status-partial) 12%, transparent)}.year-grid-cell-due{color:var(--color-status-due);background:color-mix(in srgb, var(--color-status-due) 12%, transparent)}.year-grid-cell-overdue{color:var(--color-status-overdue);background:color-mix(in srgb, var(--color-status-overdue) 12%, transparent)}.year-grid-total{font-weight:600}.year-grid-totals-row td{background:var(--color-bg);font-weight:700}.year-grid-detail{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);flex-direction:column;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.year-grid-detail{background:var(--color-surface)}}.year-grid-detail h3{margin:0;font-size:1rem}.chart-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);flex-direction:column;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.chart-card{background:var(--color-surface)}}.chart-card-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chart-card-header h3{margin:0;font-size:1rem}.chart-legend{gap:var(--space-4);color:var(--color-text-muted);flex-wrap:wrap;font-size:.8rem;display:flex}.chart-legend span{align-items:center;gap:var(--space-1);display:inline-flex}.chart-legend-swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.chart-tooltip{background:var(--glass-bg-data);border:1px solid var(--glass-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow);font-size:.8rem}.chart-tooltip-label{color:var(--color-text-muted);margin-bottom:var(--space-1);font-weight:600}.chart-tooltip-row{align-items:center;gap:var(--space-1);color:var(--color-text);display:flex}.chart-tooltip-swatch{border-radius:2px;width:8px;height:8px;display:inline-block}.revenue-years-heading{margin:var(--space-2) 0 0;font-size:1rem}.aging-bar{border-radius:var(--radius-sm);background:var(--glass-bg);height:16px;margin-bottom:var(--space-2);display:flex;overflow:hidden}.aging-bar-segment{height:100%;transition:filter var(--transition-fast)}.aging-bar-segment:hover{filter:brightness(1.15)}.aging-bar-legend{gap:var(--space-3);color:var(--color-text-muted);margin-bottom:var(--space-3);flex-wrap:wrap;font-size:.8rem;display:flex}.aging-bar-legend span{align-items:center;gap:var(--space-1);display:inline-flex}.aging-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.breakdown-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.breakdown-heading{margin:0 0 var(--space-2);font-size:1rem}.revenue-donut-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.chart-donut-legend{gap:var(--space-2);flex-direction:column;flex:1;min-width:160px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.chart-donut-legend li{align-items:center;gap:var(--space-2);font-size:.85rem;display:flex}.chart-donut-legend-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chart-donut-legend-value{color:var(--color-text-muted);white-space:nowrap}.skeleton{background:linear-gradient(90deg, var(--glass-bg) 25%, var(--glass-highlight) 50%, var(--glass-bg) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.dashboard-skeleton{gap:var(--space-5);flex-direction:column;display:flex}.skeleton-kpi-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.skeleton-kpi-card{height:96px}.skeleton-chart-card{height:280px}.empty-state{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);flex-direction:column;font-size:.875rem;display:flex}
