:root,[data-theme=light]{--teal:#2ed3b7;--violet:#9d6bea;--pink:#ff5fa2;--sun:#ffb24d;--bg:#fbf6ee;--surface:#fff;--surface-2:#f1eadf;--ink:#1c1528;--ink-soft:#4a4058;--ink-faint:#6b6078;--accent:#0b6e5e;--accent-ink:#fff;--accent-tint:color-mix(in srgb, var(--teal) 18%, var(--surface));--good:#1d6b4f;--warn:#8a5300;--bad:#b3261e;--focus:#0b6e5e;--line:color-mix(in srgb, var(--ink) 10%, transparent);--edge:color-mix(in srgb, var(--ink) 50%, transparent);--tint:color-mix(in srgb, var(--ink) 6%, transparent);--tint-strong:color-mix(in srgb, var(--ink) 11%, transparent);--shadow:0 1px 2px #3c1e5a0f, 0 8px 24px -12px #3c1e5a2e;--tag-bg:var(--tint);--field-opacity:.35;--font-display:"Comfortaa", ui-rounded, "Segoe UI", system-ui, sans-serif;--font-body:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--glass:var(--surface);--glass-hover:var(--surface-2);--glass-edge:transparent;--glass-shadow:var(--shadow);--blur:0px;--radius:6px;--color-bg:var(--bg);--color-bg-elevated:var(--surface);--color-bg-sunken:var(--surface-2);--color-text:var(--ink);--color-text-muted:var(--ink-soft);--color-border:var(--line);--color-border-strong:var(--edge);--color-primary:var(--accent);--color-primary-strong:color-mix(in srgb, var(--accent) 86%, var(--ink));--color-primary-contrast:var(--accent-ink);--color-accent:var(--accent);--color-danger:var(--bad);--color-danger-bg:color-mix(in srgb, var(--bad) 9%, var(--surface));--color-success-bg:color-mix(in srgb, var(--teal) 18%, var(--surface));--color-focus:var(--focus);--color-link:var(--accent);--color-overlay:#1c152873;--space-0:2px;--space-1:4px;--space-1h:6px;--space-2:8px;--space-2h:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:28px;--space-7:32px;--space-8:44px;--radius-sm:4px;--radius-md:6px;--radius-lg:6px;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:20px;--font-size-2xl:26px;--control-h:38px;--icon-btn:36px;--icon-btn-sm:30px;--topbar-h:52px;--shadow-card:var(--shadow);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#0e0a17;--surface:#171222;--surface-2:#211a2e;--ink:#f4f0fa;--ink-soft:#c3b8d6;--ink-faint:#9d92ad;--accent:#2ed3b7;--accent-ink:#0e0a17;--accent-tint:color-mix(in srgb, var(--teal) 16%, var(--surface));--good:#7ee0a8;--warn:#ffb24d;--bad:#f3a6a6;--focus:#7df2de;--shadow:none;--field-opacity:.25;--color-danger-bg:color-mix(in srgb, var(--bad) 13%, var(--surface));--color-success-bg:color-mix(in srgb, var(--teal) 16%, var(--surface));--color-overlay:#0009;--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.45 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{content:"";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%);position:absolute;inset:0}body:has(.app-shell) .pp-field{display:none}img{max-width:100%;display:block}h1,h2,h3,h4,legend{font-family:var(--font-body);letter-spacing:0;font-weight:500;line-height:1.3}h1,h2,h3,h4{margin:0 0 var(--space-2)}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3,h4{font-size:var(--font-size-base);font-weight:600}p{margin:0 0 var(--space-2)}a{color:var(--color-link);text-underline-offset:2px}p>a:only-child{align-items:center;min-height:32px;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:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}fieldset,legend,h2,[id]{scroll-margin-top:calc(var(--topbar-h) + var(--space-3))}#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-3);border-radius:var(--radius-sm);z-index:100;position:absolute;top:-3rem}.skip-link:focus-visible{top:var(--space-2)}.app-shell{grid-template:"top""main"1fr"foot"/minmax(0,1fr);min-height:100vh;display:grid}.main-content{padding:var(--space-3) var(--space-3) var(--space-5);grid-area:main;width:100%;max-width:1080px;margin:0 auto}.app-topbar{z-index:50;align-items:center;gap:var(--space-1);height:var(--topbar-h);padding:0 var(--space-2);background:var(--surface);box-shadow:0 1px 0 var(--line);flex-wrap:nowrap;grid-area:top;display:flex;position:sticky;top:0}.app-topbar .header-actions{align-items:center;gap:var(--space-1);flex-wrap:nowrap;min-width:0;margin-left:auto;display:flex}.site-footer{padding:var(--space-2) var(--space-4);color:var(--ink-faint);font-size:var(--font-size-xs);text-align:center;grid-area:foot}.brand{align-items:center;gap:var(--space-2);min-width:0;min-height:var(--icon-btn);font:700 var(--font-size-lg) var(--font-display);white-space:nowrap;color:var(--color-text);text-decoration:none;display:flex}.brand img{width:26px;height:26px;image-rendering:pixelated;flex:none}.topbar-brand{padding:0 var(--space-1);overflow:hidden}.nav-toggle-bars{background:currentColor;border-radius:1px;width:16px;height:2px;box-shadow:0 -5px,0 5px}.sidebar-brand{display:none}.app-sidebar{z-index:120;gap:var(--space-2);width:min(16rem,84vw);padding:var(--space-2);background:var(--surface);box-shadow:var(--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:0 var(--space-2);min-height:40px;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:1px;display:flex}.nav-more{padding-top:var(--space-2);border-top:1px solid var(--line)}.primary-nav a{min-height:36px;padding:var(--space-1h) var(--space-2h);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(--tint)}.primary-nav a[aria-current=page]{background:var(--accent-tint);color:var(--color-text);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.sidebar-foot{gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line);flex-direction:column;margin-top:auto;display:flex}.sidebar-foot .theme-switch{align-self:flex-start}@media (width>=600px){.main-content{padding:var(--space-4) var(--space-4) var(--space-6)}.app-topbar{padding:0 var(--space-3);gap:var(--space-2)}}@media (width>=960px){.app-shell{background:linear-gradient(to right, var(--surface) 13rem, var(--line) 13rem, var(--line) calc(13rem + 1px), transparent calc(13rem + 1px));grid-template-columns:13rem 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;width:auto;height:100vh;box-shadow:1px 0 0 var(--line);grid-area:side;display:flex;position:sticky;top:0}.sidebar-brand,.app-sidebar.nav-open .sidebar-brand{padding:0 var(--space-2);min-height:calc(var(--topbar-h) - var(--space-2) * 2);display:flex}.main-content{padding:var(--space-4) var(--space-5) var(--space-6)}.app-shell.help-shell{background:0 0;grid-template-columns:minmax(0,1fr);grid-template-areas:"top""main""foot"}}.help-shell .app-topbar .brand{padding:0 var(--space-2)}.public-shell{min-height:100vh;padding:var(--space-5) var(--space-3);flex-direction:column;justify-content:center;align-items:center;display:flex}.public-card{background:var(--surface);border-radius:var(--radius-md);width:100%;max-width:26rem;padding:var(--space-5);box-shadow:var(--shadow)}.public-brand{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font:700 var(--font-size-lg) var(--font-display);display:flex}.public-brand img{width:28px;height:28px;image-rendering:pixelated}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{min-width:0;max-width:100%}input::-webkit-date-and-time-value{text-align:left;min-width:0}.btn{justify-content:center;align-items:center;gap:var(--space-1h);min-height:var(--icon-btn);min-width:var(--icon-btn);padding:var(--space-1h) var(--space-3);border-radius:var(--radius-md);background:var(--tint);color:var(--color-text);white-space:nowrap;cursor:pointer;border:none;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{background:var(--tint-strong)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--color-primary-strong)}.btn-danger{background:var(--color-danger-bg);color:var(--color-danger)}.btn-danger:hover{background:color-mix(in srgb, var(--bad) 16%, var(--surface))}.btn-link{color:var(--color-link);padding:var(--space-1);background:0 0;min-width:auto;min-height:28px;text-decoration:underline}.btn-link:hover{color:var(--color-text);background:0 0}.btn-icon{width:var(--icon-btn);padding:0}.btn-sm{min-height:var(--icon-btn-sm);min-width:var(--icon-btn-sm);padding:var(--space-1) var(--space-2h);font-size:var(--font-size-sm)}.icon-plus,.icon-help,.icon-user{flex:none;width:16px;height:16px;display:inline-block;position:relative}.icon-plus:before,.icon-plus:after{content:"";background:currentColor;border-radius:1px;position:absolute}.icon-plus:before{width:2px;height:14px;top:1px;left:7px}.icon-plus:after{width:14px;height:2px;top:7px;left:1px}.icon-help{font:700 10px/12px var(--font-body);text-align:center;border:2px solid;border-radius:50%}.icon-help:before{content:"?"}.icon-user:before,.icon-user:after{content:"";border:2px solid;position:absolute}.icon-user:before{border-radius:50%;width:8px;height:8px;top:0;left:4px}.icon-user:after{border-bottom:none;border-radius:7px 7px 0 0;width:14px;height:7px;bottom:0;left:1px}.btn-row{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.field{margin-bottom:var(--space-3);gap:var(--space-1);flex-direction:column;min-width:0;max-width:32rem;display:flex}.field label{font-weight:500;font-size:var(--font-size-sm)}.field input,.field select,.field textarea{padding:var(--space-2) var(--space-2h);border:1px solid var(--edge);border-radius:var(--radius-md);background:var(--surface);color:var(--color-text);min-height:var(--control-h);width:100%}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);outline:none}.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}.field input[type=file]{min-width:0;max-width:100%}.field input[type=checkbox]{width:18px;height:18px;min-height:auto;accent-color:var(--accent)}.field-checkbox{align-items:center;gap:var(--space-2);flex-direction:row}.field-checkbox label{font-weight:400;font-size:var(--font-size-base)}.field-hint{color:var(--color-text-muted);font-size:var(--font-size-xs)}.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{min-width:0;margin:0 0 var(--space-4);border:none;padding:0}legend{font-weight:600;font-size:var(--font-size-base);margin-bottom:var(--space-2);padding:0}.status-message{padding:var(--space-1h) var(--space-2h);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(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:var(--space-3);margin-bottom:var(--space-3);border:none}.card .card{background:var(--surface-2);box-shadow:none}@media (width>=600px){.card{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-1h) var(--space-2h);border-bottom:1px solid var(--line);vertical-align:top}.data-table th{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:500}@media (width<=640px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tfoot,.data-table tr,.data-table td{width:100%;display:block}.data-table tr{padding:var(--space-2) 0;border-bottom:1px solid var(--line)}.data-table td{padding:var(--space-0) var(--space-1);overflow-wrap:anywhere;border-bottom:none;position:relative}.data-table td[data-label]{padding-left:calc(36% + var(--space-2));min-height:24px}.data-table td[data-label]:before{content:attr(data-label);left:var(--space-1);top:var(--space-0);text-overflow:ellipsis;white-space:nowrap;width:36%;font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:500;line-height:20px;position:absolute;overflow:hidden}.data-table td.num{text-align:left}}.theme-switch{border-radius:var(--radius-md);background:var(--tint);gap:2px;padding:2px;display:inline-flex}.theme-switch button{border-radius:var(--radius-sm);color:var(--color-text);padding:var(--space-1) var(--space-2);min-height:28px;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none}.theme-switch button[aria-pressed=true]{background:var(--surface);box-shadow:inset 0 0 0 1px var(--edge);font-weight:600}.dialog-overlay{background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--space-3);z-index:200;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius-md);padding:var(--space-4);width:100%;max-width:28rem;box-shadow:0 16px 48px -12px #00000059}.dialog h2{margin-bottom:var(--space-2)}.dialog-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.recovery-codes{margin:var(--space-3) 0;gap:var(--space-1h);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(--surface-2);padding:var(--space-1h) var(--space-2h);border-radius:var(--radius-sm);text-align:center}.help-content{max-width:46rem}.help-content h2{margin-top:var(--space-5)}.help-content h3{margin-top:var(--space-4)}.help-content code{background:var(--surface-2);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:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.page-header-title{flex:12rem;min-width:0}.page-header-line{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.page-header h1{overflow-wrap:anywhere;margin:0}.page-back{min-height:24px;font-size:var(--font-size-sm);color:var(--color-text-muted);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.page-back:hover{color:var(--color-text)}.page-back:before{content:"‹";margin-right:var(--space-1);font-size:1.2em}.page-subtitle{margin:var(--space-0) 0 0;font-size:var(--font-size-sm)}.page-actions,.page-header .btn-row{align-items:center;gap:var(--space-1h);flex-wrap:wrap;margin:0;display:flex}.summary-strip{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));display:grid}.summary-item{min-width:0;padding:var(--space-2) var(--space-3);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow), inset 3px 0 0 var(--edge);color:var(--color-text);flex-direction:column;gap:0;text-decoration:none;display:flex}a.summary-item:hover{background:var(--surface-2)}.summary-overdue{box-shadow:var(--shadow), inset 3px 0 0 var(--pink)}.summary-draft{box-shadow:var(--shadow), inset 3px 0 0 var(--sun)}.summary-paid{box-shadow:var(--shadow), inset 3px 0 0 var(--teal)}.summary-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:500}.summary-value{font:700 var(--font-size-xl) / 1.25 var(--font-body);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.summary-overdue .summary-value{color:var(--color-danger)}.summary-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.tabs{gap:0 var(--space-1);margin-bottom:var(--space-3);box-shadow:inset 0 -1px 0 var(--line);flex-wrap:wrap;display:flex}@media (width<=640px){.tabs{gap:0}.tabs .tab{padding:var(--space-1h) var(--space-2)}}.tab{align-items:center;gap:var(--space-1h);min-height:36px;padding:var(--space-1h) var(--space-2h);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;font-weight:500;display:inline-flex}.tab:hover{color:var(--color-text)}.tab[aria-selected=true]{color:var(--color-text);border-bottom-color:var(--accent);font-weight:600}.tab-count{padding:0 var(--space-1h);border-radius:var(--radius-sm);background:var(--tint);font-size:var(--font-size-xs)}.menu{display:inline-block;position:relative}.menu-caret{border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;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:12rem;max-width:calc(100vw - 1rem);padding:var(--space-1);background:var(--surface);border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--line), 0 12px 32px -10px #00000047;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:calc(100% + var(--space-1));left:var(--space-2);right:var(--space-2);min-width:0;max-width:none}}.menu-item{width:100%;min-height:36px;padding:var(--space-1h) var(--space-2h);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(--tint)}.menu-item:disabled{opacity:.55;cursor:not-allowed}.menu-danger{color:var(--color-danger)}.topbar-btn .menu-caret{display:none}@media (width<=599px){.app-topbar .topbar-btn{width:var(--icon-btn);background:0 0;padding:0}.app-topbar .topbar-btn:hover{background:var(--tint)}.app-topbar .topbar-btn.btn-primary{background:var(--accent)}.app-topbar .topbar-btn .btn-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width>=600px){.topbar-btn .icon-plus,.topbar-btn .icon-help,.topbar-btn .icon-user{display:none}.topbar-btn .menu-caret{display:inline-block}}.empty-state{padding:var(--space-5) var(--space-4);text-align:center;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow)}.empty-state .btn-row{justify-content:center}.empty-state p{color:var(--color-text-muted)}.empty-title{font:600 var(--font-size-lg) var(--font-body);margin-bottom:var(--space-1)}.list-card{padding:0;overflow:hidden}.list-card .data-table th{background:var(--surface-2)}.list-card .data-table tbody tr:hover{background:var(--tint)}.list-card .data-table tbody tr:last-child td{border-bottom:none}@media (width<=640px){.list-card{padding:0 var(--space-3)}.list-card .data-table tbody tr:last-child{border-bottom:none}}.detail-columns{gap:var(--space-3);display:grid}@media (width>=900px){.detail-columns{gap:var(--space-4);grid-template-columns:minmax(0,2fr) minmax(15rem,1fr);align-items:start}}.toolbar{align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.toolbar .field{flex:11rem;min-width:9rem;margin:0}.badge{padding:1px var(--space-1h);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;background:var(--tint);color:var(--color-text);font-weight:600;line-height:1.5;display:inline-block}.badge-paid{background:color-mix(in srgb, var(--teal) 24%, transparent)}.badge-overdue,.badge-void{background:var(--color-danger-bg);color:var(--color-danger);box-shadow:inset 0 0 0 1px var(--color-danger)}.badge-draft{box-shadow:inset 0 0 0 1px var(--edge);background:0 0}.stat-grid{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));display:grid}.stat{background:var(--surface);box-shadow:var(--shadow);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.card .stat{background:var(--surface-2);box-shadow:none}.stat-label{font-size:var(--font-size-xs);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}}.row-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.muted{color:var(--color-text-muted)}.grid-2{gap:0 var(--space-3);display:grid}@media (width>=640px){.grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.progress{width:100%;height:8px;accent-color:var(--accent)}.data-table tfoot td,.data-table tfoot th{border-top:1px solid var(--edge);border-bottom:none;font-weight:700}.clients-add-form{gap:0 var(--space-4);display:grid}@media (width>=640px){.clients-add-form{grid-template-columns:minmax(0,1fr) minmax(0,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}.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) var(--space-3) var(--space-1);background:var(--surface-2);border-radius:var(--radius-md);margin-bottom:var(--space-2);display:grid}.invoice-line-row .field{margin-bottom:var(--space-2)}.invoice-line-row .field input,.invoice-line-row .field select,.invoice-line-row .field textarea{background:var(--surface)}@media (width>=640px){.invoice-line-row{grid-template-columns:minmax(0,1fr) minmax(0,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)}.badge-accepted{background:color-mix(in srgb, var(--teal) 24%, transparent)}.badge-declined{background:var(--color-danger-bg);color:var(--color-danger);box-shadow:inset 0 0 0 1px var(--color-danger)}@media (width>=720px){.expense-form{gap:0 var(--space-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.expense-form>*{grid-column:1/-1}.expense-form>.field:not(.field-checkbox){grid-column:auto;max-width:none}}.expense-categories{margin-bottom:var(--space-5)}.expense-tax-fields{margin-bottom:var(--space-4)}.expense-tax-fields .field{max-width:none}@media (width>=640px){.expense-tax-fields{gap:0 var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.expense-tax-fields legend{grid-column:1/-1}}.expense-locked-note{background:var(--color-bg-sunken);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4)}.expense-receipt{margin-bottom:var(--space-4)}.expense-receipt-current{margin-bottom:var(--space-3)}.expense-receipt-thumb{background:var(--surface-2);border-radius:var(--radius-md);width:12rem;max-width:100%;height:auto;margin-bottom:var(--space-2);display:block}.toolbar .field:has(#exp-search){flex:2 17rem}.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(--surface);box-shadow:var(--shadow);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.import-columns-unplaced{color:var(--color-danger)}.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{box-shadow:inset 0 0 0 1px var(--edge);color:var(--color-text-muted);background:0 0}.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{color:inherit;text-decoration:none;display:block}.report-card:hover{background:var(--surface-2)}.report-card h3{margin:0 0 var(--space-1)}.report-card p{margin:0}.data-table td .badge{vertical-align:middle}.timer-card{gap:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}.timer-card .field{max-width:none;margin:0}.timer-card .btn-row{margin-top:0}@media (width>=720px){.timer-card:has(#timer-project){grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) auto;align-items:end}.timer-card:has(#timer-project) .status-message{grid-column:1/-1}}.timer-elapsed{font-size:var(--font-size-2xl);font-variant-numeric:tabular-nums;margin:0;font-weight:700;line-height:1.15}.timer-what{color:var(--color-text-muted);word-break:break-word;margin:0}.timer-btn,.timer-btn-secondary{min-height:var(--control-h);width:100%;font-weight:600}.timer-btn-secondary{font-weight:500}@media (width>=480px){.timer-actions{flex-wrap:nowrap}.timer-btn,.timer-btn-secondary{width:auto;padding-inline:var(--space-5)}}.time-mode-switch{border-radius:var(--radius-md);background:var(--tint);flex-wrap:nowrap;gap:2px;width:auto;max-width:100%;padding:2px;display:inline-flex}.time-mode-switch button{border-radius:var(--radius-sm);background:0 0;flex:auto}.time-mode-switch button[aria-pressed=true]{background:var(--surface);box-shadow:inset 0 0 0 1px var(--edge);font-weight:600}.time-nav{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.time-nav-controls{align-items:center;gap:var(--space-1);flex-wrap:nowrap;flex:0 auto;margin:0}.time-nav-controls .field{flex:0 10rem;min-width:8rem}.time-nav-controls .btn-icon{font-size:var(--font-size-lg)}.time-nav-total{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;margin:0}.time-nav-total strong{font-size:var(--font-size-lg);color:var(--color-text);font-variant-numeric:tabular-nums}.time-entry-list{margin:0 0 var(--space-3);padding:0 var(--space-3);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow);list-style:none}.time-entry-list:empty{display:none}.time-entry-card.card{gap:var(--space-0) var(--space-2);padding:var(--space-2) 0;box-shadow:none;border-bottom:1px solid var(--line);background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin:0;display:grid}.time-entry-card.card:last-child{border-bottom:none}.time-entry-card>*{grid-column:1;margin:0}.time-entry-card>.btn-row{gap:var(--space-1);grid-area:1/2/span 3;justify-content:flex-end;margin:0}.time-entry-main{font-weight:500}.time-entry-main .num{text-align:left;min-width:3.5rem;font-weight:700;display:inline-block}.time-entry-card .muted{font-size:var(--font-size-sm)}.time-entry-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.time-entry-form,.time-entry-form legend{scroll-margin-top:calc(var(--topbar-h) + 120px)}@media (width>=720px){.time-entry-form{gap:0 var(--space-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.time-entry-form>*{grid-column:1/-1}.time-entry-form>.field:not(.field-checkbox){grid-column:auto;max-width:none}}.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:minmax(0,1fr);display:grid}@media (width>=640px){.home-grid{grid-template-columns:repeat(2,minmax(0,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<=899px){.settings-nav{flex-direction:column;display:flex}.settings-nav .tabs{margin-bottom:var(--space-1)}.settings-nav-link{min-height:30px;padding:var(--space-1) var(--space-2);color:var(--accent);align-self:flex-end;font-weight:500}}@media (width>=900px){.settings-layout{grid-template-columns:14rem minmax(0,1fr);align-items:start}.settings-nav .tabs{box-shadow:none;margin-bottom:var(--space-2);border-bottom:none;flex-direction:column;align-items:stretch;overflow:visible}.settings-nav .tab{border-radius:var(--radius-sm);border-bottom:none;justify-content:flex-start}.settings-nav .tab[aria-selected=true]{background:var(--accent-tint);box-shadow:inset 3px 0 0 var(--accent)}}.settings-nav-link{min-height:36px;padding:var(--space-1h) var(--space-2h);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(--tint)}
