:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f8f8f9;--surface:#fdfdfd;--surface-2:#efeff1;--surface-3:#e5e5e9;--ink:#0b0b0c;--ink-2:#505056;--ink-3:#67676e;--hairline:#0b0b0c1a;--hairline-strong:#0b0b0c2b;--scrim:#0b0b0c70;--accent:#5428e1;--accent-strong:#4521b9;--accent-ink:#fff;--accent-wash:#5428e11a;--critical:#d03b3b;--critical-strong:#b32f2f;--critical-ink:#fff;--warning:#e08e00;--good:#0ca30c;--ink-warning:color-mix(in srgb, var(--warning) 60%, var(--ink));--ink-critical:color-mix(in srgb, var(--critical) 75%, var(--ink));--ink-good:color-mix(in srgb, var(--good) 60%, var(--ink));--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-8:#e34948;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-full:999px;--font:system-ui, -apple-system, "Segoe UI", sans-serif;--sidebar-w:244px;--content-max:980px;--tabbar-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--ease-spring:cubic-bezier(.32, .72, 0, 1)}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0e0e10;--surface:#1a1a1d;--surface-2:#232327;--surface-3:#2c2c31;--ink:#fff;--ink-2:#c2c2c8;--ink-3:#8f8f96;--hairline:#ffffff1a;--hairline-strong:#ffffff2e;--scrim:#0009;--accent:#a18bf0;--accent-strong:#b3a1f4;--accent-ink:#17123c;--accent-wash:#a18bf029;--critical:#e66767;--critical-strong:#f08585;--critical-ink:#2a0e0e;--warning:#eda100;--good:#0ca30c;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-8:#e66767}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0e0e10;--surface:#1a1a1d;--surface-2:#232327;--surface-3:#2c2c31;--ink:#fff;--ink-2:#c2c2c8;--ink-3:#8f8f96;--hairline:#ffffff1a;--hairline-strong:#ffffff2e;--scrim:#0009;--accent:#a18bf0;--accent-strong:#b3a1f4;--accent-ink:#17123c;--accent-wash:#a18bf029;--critical:#e66767;--critical-strong:#f08585;--critical-ink:#2a0e0e;--warning:#eda100;--good:#0ca30c;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--series-5:#d55181;--series-6:#008300;--series-7:#9085e9;--series-8:#e66767}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{text-size-adjust:100%;scrollbar-gutter:stable}body{font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-size:15px;line-height:1.45}h1,h2,h3,h4,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0;padding:0}input,select,textarea{font:inherit;color:inherit}@media (any-pointer:coarse){input,select,textarea{font-size:16px}}a{color:var(--accent);text-decoration:none}svg{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-wash)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{min-height:100dvh}.skip-link{top:10px;z-index:80;border-radius:var(--r-sm);background:var(--accent);color:var(--accent-ink);padding:10px 16px;font-weight:600;position:fixed;inset-inline-start:10px;transform:translateY(-250%)}.skip-link:focus-visible{transform:none}.main:focus-visible{outline:none}.shell{grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.main{padding:calc(12px + var(--safe-t)) 16px calc(var(--tabbar-h) + var(--safe-b) + 88px);max-width:var(--content-max);width:100%;min-width:0;margin:0 auto}.view{animation:view-in .28s var(--ease-spring)}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.sidebar{display:none}@media (min-width:900px){.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr)}.sidebar{border-inline-end:1px solid var(--hairline);background:var(--surface);flex-direction:column;gap:4px;height:100dvh;padding:20px 14px;display:flex;position:sticky;top:0}.main{padding:28px 32px 64px}}.brand{letter-spacing:-.01em;align-items:center;gap:10px;padding:6px 10px 22px;font-size:17px;font-weight:700;display:flex}.nav-item{border-radius:var(--r-sm);color:var(--ink-2);align-items:center;gap:12px;padding:10px 12px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--accent-wash);color:var(--accent)}.nav-item svg{flex:none}.sidebar-spacer{flex:1}.sidebar-add{margin:0 4px 8px}.sidebar-user{border-top:1px solid var(--hairline);align-items:center;gap:10px;margin:4px 4px 0;padding:12px 6px 0;display:flex}.sidebar-user .user-avatar{width:32px;height:32px;font-size:13.5px}.sidebar-user .name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden}.tabbar{z-index:40;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--hairline);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tab-item{color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:600;transition:color .15s,transform .1s;display:flex}.tab-item:active{transform:scale(.94)}.tab-item.active{color:var(--accent)}.fab{inset-inline-end:18px;bottom:calc(var(--tabbar-h) + var(--safe-b) + 18px);z-index:41;border-radius:var(--r-full);background:var(--accent);width:56px;height:56px;color:var(--accent-ink);border:1px solid var(--accent-strong);transition:transform .15s var(--ease-spring);place-items:center;display:grid;position:fixed}.fab:active{transform:scale(.92)}@media (min-width:900px){.tabbar,.fab{display:none}}.page-head{align-items:flex-start;gap:12px;margin:6px 0 18px;display:flex}.page-head-split{flex-wrap:wrap;justify-content:space-between;align-items:center}.page-title{letter-spacing:-.02em;font-size:24px;font-weight:700}.page-sub{color:var(--ink-3);margin-top:2px;font-size:13.5px}.section-title{margin:22px 0 10px;font-size:15px;font-weight:650}.section-title.accent{color:var(--accent)}.row{align-items:center;gap:10px;display:flex}.head-actions{flex-wrap:wrap;justify-content:flex-end}.row-end{justify-content:flex-end}.grow{flex:1;min-width:0}.btn{border-radius:var(--r-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font-size:14.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-strong)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-ghost{color:var(--ink-2);border-color:var(--hairline-strong);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.btn.active-toggle{background:var(--accent-wash);color:var(--accent);border-color:#0000}.btn-danger{background:var(--critical);color:var(--critical-ink);border-color:var(--critical-strong)}.btn-danger:hover:not(:disabled){background:var(--critical-strong)}.btn-danger-ghost{color:var(--critical);border-color:#0000;margin-top:6px}.btn-danger-ghost:hover:not(:disabled){background:color-mix(in srgb, var(--critical) 10%, transparent);color:var(--critical)}.btn-block{width:100%;display:flex}.btn-tall{padding:13px 16px}.btn-slim{padding:7px 12px;font-size:13.5px;position:relative}@media (pointer:coarse){.btn-slim:after{content:"";position:absolute;inset:-6px 0}}.btn-dashed{border-style:dashed}.icon-btn{border-radius:var(--r-sm);width:36px;height:36px;color:var(--ink-2);place-items:center;transition:background .15s,color .15s;display:inline-grid;position:relative}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.icon-btn.bordered{border:1px solid var(--hairline-strong)}@media (pointer:coarse){.icon-btn:after{content:"";position:absolute;inset:-4px}}.form{flex-direction:column;gap:14px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:480px){.form-grid{grid-template-columns:1fr}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--ink-2);font-size:13px;font-weight:600}.field-hint{color:var(--ink-3);margin:0;font-size:12.5px}.field-warn{color:var(--ink-warning)}.field-error{color:var(--critical);margin:6px 0 0;font-size:13px}.input,.select{border-radius:var(--r-sm);border:1px solid var(--hairline-strong);background:var(--surface);width:100%;color:var(--ink);min-height:42px;padding:10px 12px}.input::placeholder{color:var(--ink-3)}:is(.input:focus-visible,.select:focus-visible){outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.textarea{resize:vertical;min-height:60px}.select-wrap{position:relative}.select{-webkit-appearance:none;appearance:none;padding-inline-end:34px}.select-wrap:after{content:"";inset-inline-end:13px;border-inline-end:2px solid var(--ink-3);border-block-end:2px solid var(--ink-3);pointer-events:none;width:8px;height:8px;position:absolute;top:50%;transform:translateY(-70%)rotate(45deg)}.switch-row{align-items:center;gap:12px;display:flex}.switch-label{font-size:14px;font-weight:600}.switch{flex:none;width:46px;height:28px;display:inline-block;position:relative}.switch-input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-thumb{border-radius:var(--r-full);background:var(--surface-3);border:1px solid var(--hairline-strong);pointer-events:none;transition:background .18s,border-color .18s;position:absolute;inset:0}.switch-thumb:after{content:"";border-radius:var(--r-full);background:var(--surface);border:1px solid var(--hairline);width:20px;height:20px;transition:transform .18s var(--ease-spring);position:absolute;top:3px;left:3px}.switch-input:checked+.switch-thumb{background:var(--accent);border-color:var(--accent-strong)}.switch-input:checked+.switch-thumb:after{transform:translate(18px)}.switch-input:focus-visible+.switch-thumb{outline:2px solid var(--accent);outline-offset:2px}.segmented{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--hairline);gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 13px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex;position:relative}.segmented button:hover{color:var(--ink)}.segmented button.active{background:var(--surface);color:var(--ink);border:1px solid var(--hairline);padding:6px 12px}.seg-scroll{scrollbar-width:none;flex-wrap:wrap;max-width:100%;overflow-x:auto}.seg-scroll::-webkit-scrollbar{display:none}@media (pointer:coarse){.segmented button:after{content:"";position:absolute;inset:-6px -1px}.seg-scroll{row-gap:14px;padding-block:6px}}.swatch-row{flex-wrap:wrap;gap:10px;display:flex}.swatch{border-radius:var(--r-full);border:2px solid #0000;width:30px;height:30px;transition:transform .12s}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:var(--ink);outline:2px solid var(--surface);outline-offset:-4px}.swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.color-dot{border-radius:var(--r-full);flex:none;width:10px;height:10px;display:inline-block}.chip{border-radius:var(--r-full);align-items:center;gap:7px;padding:5px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.chip-plain{background:var(--surface-2);color:var(--ink-2);margin-inline-start:8px;padding:2px 8px;font-size:11.5px}.chip-invoiced{background:var(--accent-wash);color:var(--accent)}.invoice-filter-row{margin:4px 0 12px}.chip-paid{background:color-mix(in srgb, var(--good) 14%, var(--surface));color:var(--ink-good)}.chip-overdue{background:color-mix(in srgb, var(--critical) 14%, var(--surface));color:var(--ink-critical)}.chip-partial{background:color-mix(in srgb, var(--warning) 18%, var(--surface));color:var(--ink-warning)}.sheet-section{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px;font-size:12px;font-weight:700}.chip-action{background:var(--surface);border:1px solid var(--hairline-strong);color:var(--ink-2);padding:7px 13px;font-size:13px;transition:background .15s,color .15s;position:relative}@media (pointer:coarse){.chip-action:after{content:"";position:absolute;inset:-6px 0}.chip-row{row-gap:12px}}.chip-action:hover{background:var(--surface-2);color:var(--ink)}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md)}.list-card{overflow:hidden}.list-card>*+*{border-top:1px solid var(--hairline)}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 6px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);min-width:0;padding:12px 14px}.stat-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.stat-value{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:20px;font-weight:700;overflow:hidden}.stat-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:640px){.stat-row-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.money-stack{white-space:normal;flex-direction:column;font-size:16px;line-height:1.3;display:flex}.stat-sub{color:var(--ink-3);margin-top:3px;font-size:11.5px;font-weight:600;line-height:1.35}.stat-value-sub{color:var(--ink-3);font-size:13px;font-weight:600}.target-track{border-radius:var(--r-full);background:var(--surface-2);height:4px;margin-top:8px;overflow:hidden}.target-bar{border-radius:var(--r-full);background:var(--accent);height:100%;transition:width .3s var(--ease-spring)}.target-bar.met{background:var(--good)}@media (max-width:360px){.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-row>:last-child:nth-child(odd){grid-column:1/-1}}@media (max-width:480px){.stat-row{gap:7px}.stat-tile{padding:10px 11px}.stat-label{letter-spacing:.03em;font-size:10.5px}.stat-value{font-size:16px}}.empty{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:10px;padding:36px 20px;display:flex}.empty h3{color:var(--ink);font-size:17px}.empty p{max-width:380px;font-size:14px}.empty-slim{border:1px dashed var(--hairline-strong);border-radius:var(--r-md);padding:18px}.empty-icon{border-radius:var(--r-full);background:var(--accent-wash);width:56px;height:56px;color:var(--accent);place-items:center;display:grid}.offline-banner{bottom:calc(var(--tabbar-h) + var(--safe-b) + 84px);z-index:50;border-radius:var(--r-full);background:var(--ink);max-width:calc(100vw - 32px);color:var(--page);align-items:center;gap:8px;padding:8px 14px;font-size:12.5px;font-weight:600;display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.offline-banner span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (min-width:900px){.offline-banner{bottom:74px}}.sample-banner{border-radius:var(--r-sm);background:var(--accent-wash);color:var(--accent);align-items:center;gap:9px;margin-bottom:14px;padding:9px 13px;font-size:13px;font-weight:600;display:flex}.sample-banner button{color:inherit;text-underline-offset:2px;white-space:nowrap;font-weight:700;text-decoration:underline;position:relative}.sample-banner-ic{place-items:center;display:grid}.user-avatar{border-radius:var(--r-full);background:var(--accent);width:40px;height:40px;color:var(--accent-ink);flex:none;place-items:center;font-weight:700;display:inline-grid}.user-chip{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);align-items:center;gap:12px;padding:14px;display:flex}.user-chip .title{font-weight:650}.user-chip .sub,.settings-row .sub{color:var(--ink-3);font-size:13px}.settings-group{margin:0 0 26px}.settings-group-title{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;font-size:13px;font-weight:650}.settings-group .form-grid,.settings-group .field{margin-bottom:12px}.settings-list{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);overflow:hidden}.settings-list>*+*{border-top:1px solid var(--hairline)}.settings-row{text-align:start;align-items:center;gap:13px;width:100%;padding:13px 14px;transition:background .15s;display:flex}.settings-row:hover{background:var(--surface-2)}.settings-row:focus-visible{outline-offset:-2px}.settings-row .title{font-size:14.5px;font-weight:600}.settings-row-ic{color:var(--ink-2);place-items:center;display:grid}.settings-row-chev{color:var(--ink-3)}.backup-row{align-items:center;gap:13px;padding:9px 8px 9px 14px;display:flex}.backup-row .title{font-size:14.5px;font-weight:600}.backup-row .sub{color:var(--ink-3);font-size:13px}.logo-field{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);align-items:center;gap:14px;padding:10px 12px;display:flex}.logo-preview{object-fit:contain;background:#fff;border-radius:4px;flex:none;max-width:170px;height:48px;padding:4px}.logo-empty{width:56px;height:48px;color:var(--ink-3);background:var(--surface-2);border-radius:4px;flex:none;place-items:center;display:grid}.about-text{color:var(--ink-2);max-width:520px;font-size:13.5px}.modal-root{z-index:60;place-items:end stretch;display:grid;position:fixed;inset:0}.modal-scrim{background:var(--scrim);animation:.2s fade-in;position:absolute;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:8px 18px calc(18px + var(--safe-b));max-height:min(88dvh,720px);animation:sheet-up .28s var(--ease-spring);position:relative;overflow-y:auto}.modal-panel:focus-visible{outline:none}.sheet-handle{border-radius:var(--r-full);background:var(--hairline-strong);width:40px;height:4px;margin:4px auto 6px}.modal-head{justify-content:space-between;align-items:center;gap:10px;padding:4px 0 14px;display:flex}.modal-title{letter-spacing:-.01em;font-size:18px;font-weight:700}.modal-root.closing .modal-panel{animation:.2s forwards sheet-down}.modal-root.closing .modal-scrim{animation:.2s forwards fade-out}@media (min-width:640px){.modal-root{place-items:center;padding:24px}.modal-panel{border-radius:var(--r-lg);width:min(460px,100%);animation:dialog-in .22s var(--ease-spring);padding:10px 22px 22px}.sheet-handle{display:none}.modal-root.closing .modal-panel{animation:.18s forwards dialog-out}}body.modal-open{overflow:hidden}.confirm-message{color:var(--ink-2);margin-bottom:18px;font-size:14px}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-up{0%{opacity:.5;transform:translateY(40%)}}@keyframes sheet-down{to{opacity:0;transform:translateY(30%)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.96)translateY(8px)}}@keyframes dialog-out{to{opacity:0;transform:scale(.97)}}.shortcut-row{justify-content:space-between;align-items:center;gap:14px;padding:10px 0;font-size:14px;display:flex}.shortcut-row+.shortcut-row{border-top:1px solid var(--hairline)}.shortcut-what{color:var(--ink-2)}.shortcut-keys{color:var(--ink-3);flex:none;align-items:baseline;gap:4px;font-size:12px;display:inline-flex}.kbd{border:1px solid var(--hairline-strong);background:var(--surface-2);min-width:24px;height:24px;font-family:var(--font);color:var(--ink-2);border-bottom-width:2px;border-radius:6px;place-items:center;padding:0 7px;font-size:12px;font-weight:600;display:inline-grid}.toast-root{bottom:calc(var(--tabbar-h) + var(--safe-b) + 14px);z-index:70;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (max-width:899px){.toast-root{width:auto;max-width:none;left:16px;right:86px;transform:none}}@media (min-width:900px){.toast-root{bottom:22px}}.toast{border-radius:var(--r-full);background:var(--ink);color:var(--page);animation:toast-in .25s var(--ease-spring);align-items:center;gap:9px;max-width:100%;padding:10px 15px;font-size:13.5px;font-weight:600;display:flex}.toast svg{flex:none}.toast span{overflow-wrap:anywhere;min-width:0}.toast.leaving{animation:.2s forwards toast-out}.toast-action{color:inherit;text-underline-offset:2px;flex:none;font-weight:700;text-decoration:underline;position:relative}@media (pointer:coarse){.toast-action:after,.sample-banner button:after{content:"";position:absolute;inset:-13px -8px}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}.auth-view{min-height:100dvh;padding:32px 24px calc(32px + var(--safe-b));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;max-width:440px;margin:0 auto;display:flex}.auth-title{letter-spacing:-.02em;font-size:30px;font-weight:750}.auth-sub{color:var(--ink-2);max-width:360px;font-size:15.5px}.auth-features{text-align:start;flex-direction:column;gap:12px;width:100%;margin:14px 0 6px;display:flex}.auth-feature{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);color:var(--ink-2);align-items:center;gap:13px;padding:12px 15px;font-size:14px;display:flex}.auth-feature svg{color:var(--accent);flex:none}.auth-cta{width:100%;margin-top:8px;padding:14px;font-size:15.5px}.auth-note{color:var(--ink-3);font-size:13px}.dot-sep:before{content:"·";margin:0 7px}.onboard-hero{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:10px 8px 18px;display:flex}.onboard-title{font-size:19px;font-weight:700}.onboard-sub,.onboard-p{color:var(--ink-2);max-width:360px;font-size:14px}.onboard-h{margin:6px 0 8px;font-size:18px;font-weight:700}.onboard-p{margin-bottom:16px}.timer-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:18px}.timer-card.running{border-color:var(--accent)}.timer-idle-grid{grid-template-columns:1fr 1.2fr;gap:12px;display:grid}@media (max-width:560px){.timer-idle-grid{grid-template-columns:1fr}}.timer-idle-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;display:flex}.btn-start,.btn-stop{padding:11px 26px;font-size:15px}.timer-empty{text-align:center;color:var(--ink-2);flex-direction:column;align-items:center;gap:10px;padding:12px 8px;display:flex}.timer-running-head{align-items:flex-start;gap:10px;display:flex}.timer-live-dot{border-radius:var(--r-full);background:var(--accent);width:9px;height:9px;margin-top:7px;animation:1.6s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.35}}.timer-running-title{font-size:15.5px;font-weight:650}.timer-running-sub{color:var(--ink-3);font-size:13px}.entry-task{color:var(--ink-2);font-weight:500}.timer-clock{letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-align:center;margin:10px 0 14px;font-size:clamp(44px,12vw,64px);font-weight:750}.timer-running-actions{justify-content:center;gap:10px;display:flex}.entry-row{align-items:center;display:flex}.entry-main{text-align:start;flex:1;align-items:center;gap:12px;min-width:0;padding:12px 14px;transition:background .15s;display:flex}.entry-main:hover{background:var(--surface-2)}.entry-main:focus-visible{outline-offset:-2px}.entry-main-static{cursor:default}.entry-main-static:hover{background:0 0}.entry-text{flex:1;min-width:0}.entry-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.entry-sub{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.entry-times{font-variant-numeric:tabular-nums}.entry-nums{text-align:end;flex:none}.entry-duration{font-variant-numeric:tabular-nums;font-weight:650}.entry-amount{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12.5px}.entry-resume{color:var(--accent);flex:none;margin-inline-end:8px}@media (pointer:coarse){.entry-resume:after{inset:-4px -8px -4px 0}}.page-title-range{font-variant-numeric:tabular-nums}.title-jump{font:inherit;border-radius:var(--r-sm);align-items:center;gap:6px;display:inline-flex;position:relative}.title-jump:hover .title-jump-ic{color:var(--ink)}@media (pointer:coarse){.title-jump:after{content:"";position:absolute;inset:-5px 0}}.title-jump:disabled{cursor:default}.title-jump:disabled .title-jump-ic{display:none}.title-jump-ic{color:var(--ink-3);transition:color .15s}.jump-input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute;inset:auto 0 0}.week-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (pointer:coarse){.week-nav{row-gap:12px}}.date-nav{align-items:center;gap:8px;display:flex}.grid-wrap{margin-bottom:22px}.grid-scroll{border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);overflow-x:auto}.grid-table{border-collapse:collapse;width:100%;font-size:13.5px}.grid-table th,.grid-table td{border-bottom:1px solid var(--hairline);padding:0}.grid-table tbody tr:last-child th,.grid-table tbody tr:last-child td{border-bottom:none}.grid-project-head,.grid-total-head,.grid-day-head{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);white-space:nowrap;padding:9px 10px;font-size:11px;font-weight:700}.grid-day-head{text-align:center;min-width:74px}.grid-day-head.today{color:var(--accent)}.grid-day-name{display:block}.grid-day-num{letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums;font-size:12px;font-weight:650;display:block}.grid-total-head,.grid-row-total,.grid-week-total{text-align:end}.grid-project{text-align:start;min-width:170px;max-width:240px;padding:8px 10px;font-weight:600;display:table-cell}.grid-project .color-dot{vertical-align:middle;margin-inline-end:8px}.grid-project-text{vertical-align:middle;flex-direction:column;min-width:0;display:inline-flex}.grid-project-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.grid-project-client{color:var(--ink-3);font-size:11.5px;font-weight:500}.grid-cell.today,.grid-col-total.today{background:var(--accent-wash)}.grid-input{width:100%;min-width:68px;font:inherit;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:0;padding:10px 8px}.grid-input:hover{background:var(--surface-2)}.grid-input:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--surface)}.grid-locked{text-align:center;font-variant-numeric:tabular-nums;width:100%;color:var(--ink-3);text-underline-offset:3px;padding:10px 8px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.grid-locked:hover{background:var(--surface-2);color:var(--ink)}.grid-row-total,.grid-col-total,.grid-week-total{font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap;padding:10px}.grid-table tfoot th,.grid-table tfoot td{border-top:1.5px solid var(--hairline-strong);color:var(--ink);background:var(--surface-2);border-bottom:none;font-weight:700}.grid-col-total{text-align:center}.grid-foot{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.grid-picker{flex:none;max-width:260px}.grid-hint{min-width:220px;color:var(--ink-3);flex:1;margin:0;font-size:12.5px}.icon-btn.active-toggle{background:var(--accent-wash);color:var(--accent);border-color:#0000}.search-panel{flex-direction:column;gap:10px;margin:4px 0 6px;display:flex}.search-input{max-width:520px}.search-row{gap:10px;max-width:520px;display:flex}.search-row .search-input{flex:1;min-width:0}.search-filters{grid-template-columns:1fr 1fr;gap:10px;max-width:520px;display:grid}.bulk-bar{z-index:5;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;display:flex;position:sticky;top:8px}.bulk-count{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;margin-inline-end:4px;font-size:13.5px;font-weight:650}.bulk-note{color:var(--ink-3);white-space:nowrap;font-size:12px}.bulk-actions{flex-wrap:wrap;gap:6px;margin-inline-start:auto;display:flex}@media (pointer:coarse){.bulk-actions{row-gap:12px}}.entry-check{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin-inline-start:14px}.entry-check:disabled{cursor:default;opacity:.4}.search-note{color:var(--ink-3);align-items:center;gap:12px;margin:18px 0 6px;font-size:12.5px;display:flex}.day-strip{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);grid-template-columns:repeat(7,1fr);gap:8px;margin:16px 0 4px;padding:14px 12px 10px;display:grid}.day-col{color:inherit;flex-direction:column;align-items:center;gap:5px;display:flex}.day-col-hours{color:var(--ink-3);font-variant-numeric:tabular-nums;min-height:15px;font-size:11px;font-weight:600}.day-col-bar-track{align-items:flex-end;width:100%;max-width:34px;height:56px;display:flex}.day-col-bar{background:var(--accent);width:100%;min-height:2px;transition:height .25s var(--ease-spring);border-radius:4px 4px 0 0}.day-col:not(.today) .day-col-bar{opacity:.75}.day-col-name{color:var(--ink-3);font-size:11.5px;font-weight:600}.day-col.today .day-col-name{color:var(--accent)}.month-grid{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);grid-template-columns:repeat(7,1fr);gap:5px;margin:16px 0 4px;padding:12px;display:grid}.month-grid-head{text-align:center;color:var(--ink-3);padding-bottom:2px;font-size:11px;font-weight:650}.month-cell{background:var(--surface-2);border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:44px;transition:border-color .15s;display:flex}.month-cell:hover{border-color:var(--hairline-strong)}.month-cell.blank{background:0 0}.month-cell.today{border-color:var(--accent)}.month-cell-day{color:var(--ink-2);font-size:11.5px;font-weight:600}.month-cell.today .month-cell-day{color:var(--accent)}.month-cell.has-time .month-cell-day,.month-cell.today.has-time .month-cell-day{color:var(--ink)}.month-cell-hours{color:var(--ink);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:650}@media (max-width:480px){.month-cell{min-height:40px}.month-cell-hours{font-size:9.5px}}.day-section{scroll-margin-top:12px}.day-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.day-head .section-title{margin:0}.day-head{margin:22px 0 10px}.day-head-side{align-items:center;gap:8px;display:flex}.day-total{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}.day-empty{color:var(--ink-3);padding:4px 2px 8px;font-size:13.5px}.report-controls{flex-direction:column;gap:12px;margin-bottom:4px;display:flex}.report-controls>.segmented{align-self:flex-start}.group-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.group-pair{align-items:center;gap:12px;min-width:0;display:flex}.group-label{color:var(--ink-3);font-size:13px;font-weight:600}.custom-range{align-items:center;gap:10px;max-width:420px;display:flex}@media (max-width:480px){.custom-range{flex-wrap:wrap}.custom-range .input{flex:auto;width:auto}}.range-sep{color:var(--ink-3);font-size:13px}.report-list{padding:6px 0}.report-row{padding:10px 16px}.report-row-top{align-items:center;gap:10px;display:flex}.report-row-text{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.report-row-label{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.report-row-sub{color:var(--ink-3);white-space:nowrap;font-size:12.5px}.report-row-nums{flex:none;align-items:baseline;gap:10px;display:flex}.report-row-hours{font-variant-numeric:tabular-nums;font-weight:650}.report-row-amount{color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:end;min-width:64px;font-size:13px}.report-bar-track{border-radius:var(--r-full);background:var(--surface-2);height:6px;margin:7px 0 2px 20px;overflow:hidden}.report-bar{border-radius:var(--r-full);height:100%;transition:width .3s var(--ease-spring)}.report-mode{margin-bottom:14px}.insight-chart{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);grid-template-columns:repeat(12,1fr);gap:6px;padding:16px 12px 10px;display:grid}.insight-col{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.insight-col-track{width:100%;max-width:30px;height:96px;position:relative}.insight-bar{border-radius:4px 4px 0 0;position:absolute;bottom:0;left:0;right:0}.insight-bar.tracked{background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.insight-bar.billable{background:var(--accent)}.insight-col-name{color:var(--ink-3);white-space:nowrap;font-size:10.5px;font-weight:600}.insight-legend{color:var(--ink-2);gap:16px;margin:10px 4px 0;font-size:12.5px;font-weight:600;display:flex}.insight-legend-item{align-items:center;gap:6px;display:inline-flex}.legend-dot{border-radius:3px;width:10px;height:10px}.legend-dot.tracked{background:color-mix(in srgb, var(--accent) 22%, var(--surface));border:1px solid var(--hairline-strong)}.legend-dot.billable{background:var(--accent)}@media (max-width:520px){.insight-chart{gap:3px;padding:12px 8px 8px}.insight-col-name{font-size:9px}.insight-col-track{height:72px}}.locked-note{border-radius:var(--r-sm);background:var(--accent-wash);gap:11px;margin-bottom:14px;padding:12px 14px;display:flex}.locked-note-ic{color:var(--accent);place-items:start;padding-top:2px;display:grid}.locked-note-title{font-size:14px;font-weight:650}.locked-note-sub{color:var(--ink-2);font-size:12.5px}.entry-summary{border:1px solid var(--hairline);border-radius:var(--r-md);margin-bottom:14px;padding:4px 14px}.summary-row{justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;font-size:14px;display:flex}.summary-row+.summary-row{border-top:1px solid var(--hairline)}.summary-label{color:var(--ink-3);flex:none}.summary-value{text-align:end;overflow-wrap:anywhere;min-width:0;font-weight:600}.report-mark{color:var(--accent);flex:none}.client-card{margin-bottom:14px;padding:14px 16px}.client-head{align-items:center;gap:12px;display:flex}.client-name{font-size:16px;font-weight:650}.client-sub{color:var(--ink-3);font-size:13px}.client-unbilled{text-align:end;margin-inline-end:2px}@media (max-width:480px){.client-head{flex-wrap:wrap}.client-unbilled{flex-basis:100%;order:1;margin-inline-end:0}}.client-unbilled-amt{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.client-unbilled-age.stale{color:var(--ink-warning);font-weight:650}.client-unbilled-label{color:var(--ink-3);font-size:11px;font-weight:600}.project-list{border-top:1px solid var(--hairline);margin-top:10px}.project-row{align-items:center;gap:8px;padding:10px 2px;display:flex}.project-row+.project-row{border-top:1px solid var(--hairline)}.project-name{font-size:14.5px;font-weight:600}.project-sub{color:var(--ink-3);font-size:12.5px}.add-project{margin-top:10px}.budget-line{max-width:420px;margin-top:7px}.budget-track{border-radius:var(--r-full);background:var(--surface-2);height:5px;overflow:hidden}.budget-bar{border-radius:var(--r-full);background:var(--accent);height:100%;transition:width .3s var(--ease-spring)}.budget-bar.warn{background:var(--warning)}.budget-bar.over{background:var(--critical)}.budget-text{color:var(--ink-3);font-variant-numeric:tabular-nums;align-items:center;gap:5px;margin-top:4px;font-size:12px;display:flex}.budget-flag.warn{color:var(--warning)}.budget-flag.over{color:var(--critical)}.archive-toggle{margin:6px 0 14px}.import-map{flex-direction:column;gap:12px;margin:4px 0 14px;display:flex}.import-invalid{border:1px solid var(--hairline);border-radius:var(--r-sm);margin-bottom:14px;padding:11px 13px}.import-invalid-title{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;font-weight:650;display:flex}.import-invalid-title>span{color:var(--warning);place-items:center;display:grid}.import-invalid-list{color:var(--ink-2);margin:6px 0 0;padding-inline-start:18px;font-size:12.5px}.small-note{color:var(--ink-3);margin-bottom:14px;font-size:12.5px}.invoice-view{z-index:55;background:var(--scrim);padding:16px;position:fixed;inset:0;overflow-y:auto}.invoice-view:focus-visible{outline:none}body.invoice-open{overflow:hidden}.invoice-toolbar{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:8px;max-width:780px;margin:0 auto 12px;padding:8px 10px;display:flex}@media (pointer:coarse){.invoice-toolbar{row-gap:12px}}.invoice-sheet{color:#17171a;background:#fff;border-radius:6px;max-width:780px;margin:0 auto 24px;padding:44px 48px;box-shadow:0 12px 40px #00000040}.invoice-head{align-items:flex-start;gap:24px;display:flex}.invoice-logo{object-fit:contain;width:auto;max-width:240px;max-height:56px;margin-bottom:10px;display:block}.invoice-business-name{letter-spacing:-.01em;font-size:20px;font-weight:750}.invoice-title-block{text-align:end;flex:none}.invoice-doc-title{letter-spacing:.14em;color:#67676e;font-size:13px;font-weight:700}.invoice-number{font-variant-numeric:tabular-nums;font-size:22px;font-weight:750}.invoice-stamp{letter-spacing:.12em;border:2px solid;border-radius:4px;margin-top:8px;padding:3px 9px;font-size:12px;font-weight:800;display:inline-block}.invoice-stamp.paid{color:#0a7a33}.invoice-stamp.overdue{color:#b3261e}.invoice-address{white-space:pre-line;color:#45454b;margin-top:4px;font-size:13px}.invoice-meta-line{color:#67676e;margin-top:3px;font-size:12.5px}.invoice-label{letter-spacing:.08em;text-transform:uppercase;color:#67676e;margin-bottom:4px;font-size:11px;font-weight:700}.invoice-billto{margin-top:30px}.invoice-billto-name{font-size:15px;font-weight:650}.invoice-table-wrap{overflow-x:auto}.invoice-table{border-collapse:collapse;width:100%;margin-top:28px;font-size:13.5px}.invoice-table th{text-align:start;letter-spacing:.08em;text-transform:uppercase;color:#67676e;border-bottom:1.5px solid #d5d5d8;padding:0 10px 8px;font-size:11px;font-weight:700}.invoice-table td{vertical-align:top;border-bottom:1px solid #ececef;padding:9px 10px}.invoice-table .desc{padding-inline-start:0}.invoice-table th.num,.invoice-table td.num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}.timesheet-table .ts-day td{border-bottom:1px solid #d5d5d8;padding-top:14px;font-weight:700}.timesheet-table .ts-entry td{border-bottom:1px solid #f2f2f4}.timesheet-table .ts-entry .desc{padding-inline-start:16px}.timesheet-table .ts-time{color:#45454b;font-variant-numeric:tabular-nums}.timesheet-table .ts-note{color:#67676e;margin-top:2px;font-size:12px;display:block}.timesheet-table .ts-flag{color:#67676e}.timesheet-table tfoot .ts-total td{border-top:1.5px solid #17171a;border-bottom:none;padding-top:10px;font-weight:750}.invoice-note{color:#67676e;margin-top:8px;font-size:11.5px}.invoice-totals{margin-top:14px;max-width:300px;margin-inline-start:auto;font-size:13.5px}.invoice-total-row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:20px;padding:5px 10px 5px 0;display:flex}.invoice-total-row.sum{border-top:1px solid #d5d5d8;margin-top:4px;padding-top:8px;font-weight:650}.invoice-total-row.total{border-top:1.5px solid #17171a;margin-top:4px;padding-top:9px;font-size:15px;font-weight:750}.invoice-pay-text{white-space:pre-line;color:#17171a}.invoice-foot{color:#45454b;border-top:1px solid #ececef;flex-direction:column;gap:6px;margin-top:36px;padding-top:14px;font-size:12.5px;display:flex}@media (max-width:560px){.invoice-sheet{padding:22px 16px}.invoice-head{flex-direction:column}.invoice-title-block{text-align:start}.invoice-table{font-size:12.5px}.invoice-table th,.invoice-table td{padding-inline:5px}.invoice-table .desc{padding-inline-start:0}.invoice-table td.desc{overflow-wrap:anywhere}}@media print{:root,:root[data-theme=dark],:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fff;--surface:#fff;--surface-2:#f2f2f4;--surface-3:#e5e5e9;--ink:#0b0b0c;--ink-2:#45454b;--ink-3:#67676e;--hairline:#0b0b0c1a;--hairline-strong:#0b0b0c2b;--accent:#5428e1;--accent-strong:#4521b9;--accent-ink:#fff;--accent-wash:#5428e11a;--critical:#d03b3b;--critical-strong:#b32f2f;--critical-ink:#fff;--warning:#e08e00;--good:#0ca30c;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-8:#e34948}.sidebar,.tabbar,.fab,.skip-link,.sample-banner,.offline-banner,.report-controls,.report-mode,.report-mark,.invoice-filter-row,.page-head .row,.toast-root,body.invoice-open .shell,body.invoice-open .modal-root,.invoice-view.covered,.invoice-toolbar{display:none!important}.invoice-view{background:#fff;padding:0;position:static;overflow:visible}.invoice-sheet{box-shadow:none;border-radius:0;max-width:none;padding:0}.invoice-table-wrap{overflow-x:visible}body{background:#fff}.shell{display:block}.main{max-width:none;padding:0}.view{animation:none}.card,.stat-tile{break-inside:avoid;border-color:#d5d5d8}.report-bar-track{display:none}}
