.clients-add-form{gap:0 var(--space-4);display:grid}@media (width>=640px){.clients-add-form{grid-template-columns:1fr 1fr}.clients-add-form>.btn-row,.clients-add-form>.status-message{grid-column:1/-1}}.client-contact{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin:0;display:grid}.client-contact dt{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.client-contact dd{margin:0}.import-steps{margin:0 0 var(--space-4);padding-left:var(--space-5)}.import-steps li{margin-bottom:var(--space-2)}.import-report{margin-top:var(--space-4)}.import-report h3{margin-top:var(--space-5)}.import-flag-list{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));margin:0;padding:0;list-style:none;display:grid}.import-flag-list li{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.import-columns-unplaced{color:var(--color-danger)}.invoice-doc-head{justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.invoice-doc-business{flex:16rem}.invoice-doc-business-name{margin:0 0 var(--space-1);font-weight:600}.invoice-doc-meta{flex:20rem;max-width:28rem}.invoice-doc{margin-bottom:var(--space-4)}.invoice-line-row{gap:0 var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);display:grid}@media (width>=640px){.invoice-line-row{grid-template-columns:1fr 1fr}.invoice-line-row>.btn-row,.invoice-line-row>.field-hint{grid-column:1/-1}}.invoice-bill-time{background:var(--color-bg-sunken);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4)}.invoice-totals-block{background:var(--color-bg-sunken);border-radius:var(--radius-md);padding:var(--space-3);max-width:24rem;margin-inline-start:auto;margin-bottom:var(--space-4)}.invoice-totals-preview{margin-top:var(--space-3)}.invoice-totals-preview th{font-weight:500}.invoice-notice{background:var(--color-bg-sunken);border-left:3px solid var(--color-border-strong);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4)}.data-table td[data-label=Reference]{overflow-wrap:anywhere}.page-header h1 .badge{margin-left:var(--space-2);vertical-align:middle}.badge-complete{background:var(--color-success-bg)}.badge-archived{color:var(--color-text-muted);border-style:dashed}.project-service-row .btn-row{margin-top:var(--space-1);align-items:center}.project-service-row input{max-width:10rem}.report-group{margin-bottom:var(--space-5)}.report-group-heading{margin-bottom:var(--space-3)}.report-cards{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.report-card{min-height:44px;color:inherit;text-decoration:none;display:block}.report-card:hover{background:var(--glass-hover)}.report-card h3{margin:0 0 var(--space-1)}.report-card p{margin:0}.data-table td .badge{vertical-align:middle}.timer-card{text-align:center}.timer-elapsed{margin:0 0 var(--space-2);font-variant-numeric:tabular-nums;font-size:clamp(2.5rem,12vw,3.5rem);font-weight:700;line-height:1.1}.timer-what{margin:0 0 var(--space-4);color:var(--color-text-muted);word-break:break-word}.timer-card .field{max-width:none;margin-bottom:var(--space-3);text-align:left}.timer-actions{justify-content:center}.timer-btn,.timer-btn-secondary{width:100%;min-height:64px;font-size:var(--font-size-lg);font-weight:700}.timer-btn-secondary{font-weight:500}@media (width>=480px){.timer-actions{flex-wrap:nowrap}.timer-btn,.timer-btn-secondary{flex:auto;width:auto}}.time-mode-switch{gap:0}.time-mode-switch button{border-radius:0;flex:auto}.time-mode-switch button:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md)}.time-mode-switch button:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:none}.time-mode-switch button[aria-pressed=true]{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.time-nav{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.time-nav-controls{flex:auto}.time-nav-total{white-space:nowrap;margin:0;font-weight:600}.time-entry-list{margin:0 0 var(--space-4);gap:var(--space-3);padding:0;list-style:none;display:grid}.time-entry-card{margin-bottom:0}.time-entry-main{margin:0;font-weight:600}.time-entry-main .num{min-width:4.5rem;display:inline-block}.time-entry-tags{margin:var(--space-2) 0;gap:var(--space-2);flex-wrap:wrap;display:flex}.week-table th.num,.week-table td.num{white-space:nowrap}.home-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=640px){.home-grid{grid-template-columns:repeat(2,1fr)}}.home-panel{margin-bottom:0}.home-panel h2{margin-top:0}.home-panel .summary-strip{margin-bottom:var(--space-3)}.home-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.timer-elapsed{font-size:var(--font-size-xl);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.settings-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=900px){.settings-layout{grid-template-columns:14rem minmax(0,1fr);align-items:start}.settings-nav .tabs{border-bottom:none;border-right:1px solid var(--color-border);margin-bottom:var(--space-2);flex-direction:column;align-items:stretch;overflow:visible}.settings-nav .tab{border-bottom:none;border-right:3px solid #0000;justify-content:flex-start}.settings-nav .tab[aria-selected=true]{border-right-color:var(--violet)}}.settings-nav-link{min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);align-items:center;font-weight:600;text-decoration:none;display:flex}.settings-nav-link:hover{color:var(--color-text);background:var(--tag-bg)}:root,[data-theme=light]{--teal:#2ed3b7;--violet:#9d6bea;--pink:#ff5fa2;--sun:#ffb24d;--bg:#fbf6ee;--ink:#1c1528;--ink-soft:#4a4058;--glass:#ffffff85;--glass-hover:#ffffffb8;--glass-edge:#ffffffd9;--glass-shadow:0 1px 0 #ffffffe6 inset, 0 18px 40px -22px #3c1e5a59;--field-opacity:.55;--tag-bg:#1c152812;--focus:#6a2bd9;--radius:22px;--blur:18px;--font-display:"Comfortaa", ui-rounded, "Segoe UI", system-ui, sans-serif;--font-body:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--color-bg:var(--bg);--color-bg-elevated:color-mix(in srgb, var(--bg) 88%, transparent);--color-bg-sunken:var(--tag-bg);--color-text:var(--ink);--color-text-muted:var(--ink-soft);--color-border:color-mix(in srgb, var(--ink) 16%, transparent);--color-border-strong:color-mix(in srgb, var(--ink) 50%, transparent);--color-primary:var(--ink);--color-primary-strong:color-mix(in srgb, var(--ink) 88%, var(--violet));--color-primary-contrast:var(--bg);--color-accent:var(--violet);--color-danger:#b3261e;--color-danger-bg:color-mix(in srgb, #b3261e 10%, var(--bg));--color-success-bg:color-mix(in srgb, var(--teal) 26%, var(--bg));--color-focus:var(--focus);--color-link:var(--ink);--color-overlay:#1c152880;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.75rem;--space-8:2.75rem;--radius-sm:8px;--radius-md:12px;--radius-lg:var(--radius);--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--shadow-card:var(--glass-shadow);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#0e0a17;--ink:#f4f0fa;--ink-soft:#c3b8d6;--glass:#ffffff0f;--glass-hover:#ffffff1c;--glass-edge:#ffffff24;--glass-shadow:0 1px 0 #ffffff14 inset, 0 24px 48px -24px #000000b3;--field-opacity:.42;--tag-bg:#ffffff17;--focus:#7df2de;--color-danger:#f3a6a6;--color-danger-bg:color-mix(in srgb, #f3a6a6 14%, var(--bg));--color-success-bg:color-mix(in srgb, var(--teal) 22%, var(--bg));--color-overlay:#000000a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@font-face{font-family:Comfortaa;src:url(/fonts/comfortaa-latin.woff2)format("woff2");font-weight:300 700;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin.woff2)format("woff2");font-weight:300 700;font-display:swap}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--color-bg);-webkit-text-size-adjust:100%}body{color:var(--color-text);font:400 var(--font-size-base) / 1.5 var(--font-body);background:0 0;min-height:100vh;overflow-x:hidden}.pp-field{z-index:-1;opacity:var(--field-opacity);pointer-events:none;position:fixed;inset:-20vmax}.pp-field:before,.pp-field:after{content:"";filter:blur(60px);position:absolute;inset:0}.pp-field:before{background:radial-gradient(38vmax 30vmax at 22% 30%, var(--pink), transparent 62%), radial-gradient(34vmax 34vmax at 78% 24%, var(--teal), transparent 60%), radial-gradient(40vmax 30vmax at 62% 78%, var(--violet), transparent 62%), radial-gradient(26vmax 22vmax at 26% 80%, var(--sun), transparent 60%);animation:60s linear infinite swirl}.pp-field:after{background:conic-gradient(from 0deg at 50% 50%, transparent 0 8%, color-mix(in srgb, var(--pink) 55%, transparent) 14%, transparent 22%, transparent 36%, color-mix(in srgb, var(--teal) 55%, transparent) 44%, transparent 52%, transparent 66%, color-mix(in srgb, var(--violet) 55%, transparent) 74%, transparent 82%);mix-blend-mode:soft-light;animation:90s linear infinite reverse swirl}@keyframes swirl{to{transform:rotate(360deg)}}body:has(.app-shell){--field-opacity:.28}[data-theme=dark] body:has(.app-shell){--field-opacity:.22}body:has(.app-shell) .pp-field:before{animation:none}body:has(.app-shell) .pp-field:after{animation:none}@media (prefers-reduced-motion:reduce){.pp-field:before,.pp-field:after{animation:none}}img{max-width:100%;display:block}h1,h2,h3,h4,legend{font-family:var(--font-display);letter-spacing:-.01em}h1,h2,h3,h4{margin:0 0 var(--space-3);line-height:1.25}h1{letter-spacing:-.02em;font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-link)}p>a:only-child{align-items:center;min-height:44px;display:inline-flex}ul,ol{padding-left:var(--space-5)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}fieldset,legend,h2,[id]{scroll-margin-top:5rem}#main-heading:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{left:var(--space-3);background:var(--color-primary);color:var(--color-primary-contrast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);z-index:100;transition:top .15s ease-in-out;position:absolute;top:-3rem}.skip-link:focus-visible{top:var(--space-3)}.app-shell{grid-template:"top""main"1fr"foot"/minmax(0,1fr);min-height:100vh;display:grid}.app-topbar{z-index:50;grid-area:top;position:sticky;top:0}.site-header.app-topbar{background:var(--color-bg-elevated)}.main-content{grid-area:main}.site-footer{grid-area:foot}.site-header{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--glass-edge);background:var(--glass);min-height:3.75rem;-webkit-backdrop-filter:blur(var(--blur)) saturate(140%);backdrop-filter:blur(var(--blur)) saturate(140%);flex-wrap:wrap;display:flex}.app-topbar .header-actions{margin-left:auto}.brand{align-items:center;gap:var(--space-2);font:700 1.15rem var(--font-display);letter-spacing:-.01em;white-space:nowrap;color:var(--color-text);flex:none;text-decoration:none;display:flex}.brand img{width:36px;height:36px;image-rendering:pixelated}.header-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.nav-toggle{display:inline-flex}.nav-toggle-bars{background:currentColor;border-radius:1px;width:1rem;height:2px;box-shadow:0 -5px,0 5px}.sidebar-brand{display:none}.app-sidebar{z-index:120;gap:var(--space-3);width:min(18rem,86vw);padding:var(--space-3);background:var(--color-bg);border-right:1px solid var(--glass-edge);box-shadow:var(--glass-shadow);flex-direction:column;display:none;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.app-sidebar.nav-open{display:flex}.app-sidebar.nav-open .sidebar-brand{padding:var(--space-1) var(--space-2);display:flex}.nav-backdrop{z-index:110;background:var(--color-overlay);border:none;padding:0;position:fixed;inset:0}.primary-nav{flex-direction:column;gap:2px;display:flex}.nav-more{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.primary-nav a{min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);align-items:center;font-weight:500;text-decoration:none;display:flex}.primary-nav a.nav-secondary{color:var(--color-text-muted)}.primary-nav a:hover{background:var(--tag-bg)}.primary-nav a[aria-current=page]{background:var(--color-primary);color:var(--color-primary-contrast);font-weight:600}.sidebar-foot{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;margin-top:auto;display:flex}.sidebar-foot .theme-switch{align-self:flex-start}.main-content{padding:var(--space-4);width:100%;max-width:76rem;margin:0 auto}.site-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--glass-edge);background:var(--glass);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}@media (width<=479px){.app-topbar .header-actions{gap:var(--space-1)}}@media (width>=960px){.app-shell{grid-template-columns:15.5rem minmax(0,1fr);grid-template-areas:"side top""side main""side foot"}.btn.nav-toggle,.topbar-brand,.nav-backdrop{display:none}.app-sidebar,.app-sidebar.nav-open{z-index:auto;background:var(--glass);width:auto;height:100vh;box-shadow:none;-webkit-backdrop-filter:blur(var(--blur)) saturate(140%);backdrop-filter:blur(var(--blur)) saturate(140%);grid-area:side;display:flex;position:sticky;top:0}.sidebar-brand,.app-sidebar.nav-open .sidebar-brand{padding:var(--space-2) var(--space-3);min-height:3rem;display:flex}.main-content{padding:var(--space-5) var(--space-6)}}.public-shell{min-height:100vh;padding:var(--space-5) var(--space-4);flex-direction:column;justify-content:center;align-items:center;display:flex}.public-card{background:var(--glass);border:1px solid var(--glass-edge);border-radius:var(--radius);width:100%;max-width:28rem;padding:var(--space-5);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--blur)) saturate(140%);backdrop-filter:blur(var(--blur)) saturate(140%)}.public-brand{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font:700 1.15rem var(--font-display);letter-spacing:-.01em;display:flex}.public-brand img{width:36px;height:36px;image-rendering:pixelated}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.public-card,.site-header,.site-footer,.app-sidebar{background:color-mix(in srgb, var(--bg) 88%, var(--ink) 4%)}}button,input,select,textarea{font:inherit;color:inherit}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-width:44px;min-height:44px;padding:var(--space-2) 1.125rem;border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--glass);color:var(--color-text);cursor:pointer;font-weight:600;text-decoration:none;transition:background-color .2s;display:inline-flex}.btn:hover{background:var(--glass-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);border-color:#0000}.btn-primary:hover{background:var(--color-primary-strong)}.btn-danger{background:var(--color-bg);color:var(--color-danger);border-color:var(--color-danger)}.btn-link{color:var(--color-link);padding:var(--space-1);background:0 0;border:none;min-width:auto;text-decoration:underline}.btn-row{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.field{margin-bottom:var(--space-4);gap:var(--space-1);flex-direction:column;max-width:32rem;display:flex}.field label{font-weight:600}.field input,.field select,.field textarea{padding:.625rem var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:color-mix(in srgb, var(--bg) 70%, transparent);color:var(--color-text);min-height:44px}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-muted)}.field input[type=file]{min-width:0;max-width:100%}.field input[type=checkbox]{width:1.25rem;height:1.25rem;min-height:auto}.field-checkbox{align-items:center;gap:var(--space-2);flex-direction:row}.field-checkbox label{font-weight:400}.field-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.field-error{color:var(--color-danger);font-size:var(--font-size-sm);margin:0}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--color-danger)}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;padding:var(--space-4);margin:0 0 var(--space-5)}legend{padding:0 var(--space-2);font-weight:700}.status-message{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-success-bg);display:inline-block}.status-message.is-error{background:var(--color-danger-bg);color:var(--color-danger)}.card{background:var(--color-bg-elevated);border:1px solid var(--glass-edge);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));padding:var(--space-4);margin-bottom:var(--space-4)}.data-table{border-collapse:collapse;width:100%}.data-table caption{text-align:left;margin-bottom:var(--space-2);font-weight:600}.data-table th,.data-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:top}@media (width<=640px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{width:100%;display:block}.data-table tr{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-2)}.data-table td{padding:var(--space-1) var(--space-2);border-bottom:none}.data-table td[data-label]:before{content:attr(data-label);font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600;display:block}}.theme-switch{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.theme-switch button{background:var(--glass);color:var(--color-text);padding:var(--space-1) var(--space-2);cursor:pointer;border:none;min-height:44px}.theme-switch button[aria-pressed=true]{background:var(--color-primary);color:var(--color-primary-contrast)}.dialog-overlay{background:var(--color-overlay);padding:var(--space-4);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--color-bg);border:1px solid var(--glass-edge);border-radius:var(--radius-lg);padding:var(--space-5);width:100%;max-width:28rem;box-shadow:var(--shadow-card)}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}.recovery-codes{margin:var(--space-3) 0;gap:var(--space-2);font-family:ui-monospace,Consolas,monospace;font-size:var(--font-size-lg);grid-template-columns:repeat(2,1fr);padding:0;list-style:none;display:grid}.recovery-codes li{background:var(--color-bg-sunken);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:center}.help-content h2{margin-top:var(--space-5)}.help-content code{background:var(--color-bg-sunken);padding:0 var(--space-1);border-radius:var(--radius-sm)}.not-found,.error-boundary{text-align:center;padding:var(--space-8) var(--space-4)}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-header-title{flex:16rem;min-width:0}.page-header-line{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.page-header h1{overflow-wrap:anywhere;margin:0}.page-back{min-height:44px;font-size:var(--font-size-sm);color:var(--color-text-muted);align-items:center;font-weight:600;display:inline-flex}.page-back:before{content:"‹";margin-right:var(--space-1);font-size:1.2em}.page-subtitle{margin:var(--space-1) 0 0}.page-actions,.page-header .btn-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.summary-strip{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));display:grid}.summary-item{min-width:0;padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--glass-edge);border-top:4px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-card);color:var(--color-text);flex-direction:column;gap:2px;text-decoration:none;display:flex}a.summary-item:hover{background:var(--glass-hover)}.summary-overdue{border-top-color:var(--pink)}.summary-draft{border-top-color:var(--sun)}.summary-paid{border-top-color:var(--teal)}.summary-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:600}.summary-value{font:700 1.6rem/1.2 var(--font-display);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.summary-overdue .summary-value{color:var(--color-danger)}.summary-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.tabs{gap:0 var(--space-1);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.tab{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:none;font-weight:600;display:inline-flex}.tab:hover{color:var(--color-text)}.tab[aria-selected=true]{color:var(--color-text);border-bottom-color:var(--violet)}.tab-count{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--tag-bg);font-size:.8rem}.menu{display:inline-block;position:relative}.menu-caret{border-bottom:2px solid;border-right:2px solid;width:.45rem;height:.45rem;transform:translateY(-2px)rotate(45deg)}.menu-button[aria-expanded=true] .menu-caret{transform:translateY(2px)rotate(225deg)}.menu-list{z-index:150;top:calc(100% + var(--space-1));min-width:13rem;max-width:calc(100vw - 2rem);padding:var(--space-1);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--glass-shadow);margin:0;list-style:none;position:absolute}.menu-list[hidden]{display:none}.menu-end{right:0}.menu-start{left:0}@media (width<=599px){.app-topbar .menu{position:static}.app-topbar .menu-list{top:100%;left:var(--space-2);right:var(--space-2);min-width:0;max-width:none}}.menu-item{width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;text-decoration:none;display:flex}.menu-item:hover{background:var(--tag-bg)}.menu-item:disabled{opacity:.6;cursor:not-allowed}.menu-danger{color:var(--color-danger)}.empty-state{padding:var(--space-6) var(--space-4);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-elevated)}.empty-state .btn-row{justify-content:center}.empty-title{font:700 var(--font-size-lg) var(--font-display);margin-bottom:var(--space-2)}.list-card{padding:0;overflow:hidden}.list-card .data-table th{background:var(--tag-bg);font-size:var(--font-size-sm);color:var(--color-text-muted)}.list-card .data-table tbody tr:hover{background:var(--tag-bg)}@media (width<=640px){.list-card{padding:var(--space-2)}}.detail-columns{gap:var(--space-4);display:grid}@media (width>=900px){.detail-columns{grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);align-items:start}}.toolbar{align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.toolbar .field{flex:12rem;min-width:10rem;margin:0}.badge{padding:.125rem var(--space-2);border-radius:var(--radius-sm);letter-spacing:.02em;white-space:nowrap;background:var(--tag-bg);color:var(--color-text);border:1px solid #0000;font-size:.8rem;font-weight:600;display:inline-block}.badge-paid{background:color-mix(in srgb, var(--teal) 26%, transparent)}.badge-overdue,.badge-void{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger)}.badge-draft{border:1px dashed var(--color-border-strong)}.stat-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));display:grid}.stat{background:var(--color-bg-elevated);border:1px solid var(--glass-edge);box-shadow:var(--shadow-card);border-radius:var(--radius-md);padding:var(--space-3)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted);display:block}.stat-value{font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;font-weight:700;display:block}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table th.num,.data-table td.num{text-align:right}@media (width<=640px){.data-table td.num{text-align:left}}.muted{color:var(--color-text-muted)}.grid-2{gap:var(--space-3);display:grid}@media (width>=640px){.grid-2{grid-template-columns:1fr 1fr}}.progress{width:100%;height:.75rem;accent-color:var(--color-primary)}.data-table tfoot td,.data-table tfoot th{border-top:2px solid var(--color-border-strong);font-weight:700}
