:root{--accent:#018287;--accent-dark:#016b6f;--accent-tint:#0182871f;--accent-faint:#0182870d;--on-accent:#fff;--danger:#d32f2f;--danger-tint:#d32f2f1f;--success:#1ea34d;--warning:#f59e0b;--info:#2d5ba8;--status-open:#2d5ba8;--status-progress:#e8b923;--status-waiting:#5a6472;--status-complete:#1ea34d;--status-requested:#5a6472;--status-sent:#2d5ba8;--status-approved:#1ea34d;--status-declined:#d32f2f;--horizon-short:#d32f2f;--horizon-medium:#e8b923;--horizon-long:#2d5ba8;--horizon-none:#5a6472;--field:#e8ebf0;--field-dark:#c8cdd6;--surface:#fff;--card:#f4f6f9;--ink:#3d4555;--ink-light:#5a6472;--ink-disabled:#8a93a3;--rule:#d1d5de;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--t-xs:12px;--t-sm:13px;--t-base:14px;--t-md:16px;--t-lg:18px;--t-xl:20px;--t-2xl:24px;--t-3xl:32px;--lh-tight:1.25;--lh-snug:1.4;--lh-normal:1.5;--w-regular:400;--w-medium:600;--w-bold:700;--radius:4px;--radius-pill:999px;--border-w:3px;--hairline:1px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:48px;--ctl:44px;--ctl-sm:36px;--ctl-lg:52px;--sidebar:220px;--bottom-nav:60px;--page-margin:24px;--page-margin-mobile:16px;--transition-fast:.15s ease;--transition-base:.2s ease;--z-sticky:4;--z-nav:5;--z-modal:10;--z-toast:20}*,:before,:after{box-sizing:border-box}html,body{background:var(--field);height:100%;color:var(--ink);font:var(--w-regular) var(--t-base) / var(--lh-normal) var(--font-ui);-webkit-text-size-adjust:100%;margin:0}#root{height:100%}.app-viewport{height:100dvh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar);background:var(--surface);border-right:var(--border-w) solid var(--rule);flex-direction:column;flex-shrink:0;height:100%;display:flex;overflow:hidden}.sidebar-head{padding:var(--s-3) var(--s-4);border-bottom:var(--border-w) solid var(--rule)}.wordmark{font-size:var(--t-md);font-weight:var(--w-bold);color:var(--ink);margin:0}.clock{margin-top:var(--s-2);padding:var(--s-2) var(--s-3);background:var(--card);border:var(--hairline) solid var(--rule);border-radius:var(--radius)}.clock-date{font-size:var(--t-xs);font-weight:var(--w-bold);margin:0}.clock-time{font-size:var(--t-md);font-weight:var(--w-bold);color:var(--accent);margin:2px 0 0}.nav{min-height:0;padding:var(--s-2) 0;flex:1;overflow-y:auto}.nav-item{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);margin:2px var(--s-2);border:var(--border-w) solid transparent;border-radius:var(--radius);color:var(--ink);font-size:var(--t-sm);font-weight:var(--w-bold);transition:background-color var(--transition-fast), border-color var(--transition-fast);text-decoration:none;display:flex}.nav-item:hover:not(.active){background:var(--accent-tint);border-color:var(--accent)}.nav-item.active{background:var(--accent);border-color:var(--accent-dark);color:var(--on-accent)}.nav-foot{padding:var(--s-2) 0;border-top:var(--border-w) solid var(--rule)}.bottom-nav,.more-scrim,.more-sheet{display:none}.main{background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.page{min-height:0;padding:var(--page-margin);flex:1;overflow-y:auto}.page-head{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.page-title{align-items:center;gap:var(--s-2);font-size:var(--t-2xl);font-weight:var(--w-bold);line-height:var(--lh-tight);margin:0;display:flex}.page-title svg{color:var(--accent)}.back-link{align-items:center;gap:var(--s-1);margin-bottom:var(--s-2);color:var(--ink-light);font-size:var(--t-sm);font-weight:var(--w-medium);text-decoration:none;display:inline-flex}.back-link:hover{color:var(--accent)}.placeholder{padding:var(--s-8) var(--s-4);text-align:center;border:var(--border-w) dashed var(--rule);border-radius:var(--radius);color:var(--ink-light)}.placeholder-title{margin:0 0 var(--s-1);font-size:var(--t-lg);font-weight:var(--w-bold);color:var(--ink)}.placeholder-note{font-size:var(--t-sm);margin:0}button{font:inherit;color:inherit;cursor:pointer}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--ctl);padding:0 var(--s-4);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-size:var(--t-base);font-weight:var(--w-bold);white-space:nowrap;transition:background-color var(--transition-fast), border-color var(--transition-fast);line-height:1;display:inline-flex}.btn:hover:not(:disabled){background:var(--card)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,.input:focus-visible{outline:var(--border-w) solid var(--accent-tint);outline-offset:0;border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent-dark);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.btn-sm{min-height:var(--ctl-sm);padding:0 var(--s-3);font-size:var(--t-sm)}.input{width:100%;min-height:var(--ctl);padding:0 var(--s-3);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit}.input::placeholder{color:var(--ink-disabled)}textarea.input{padding:var(--s-2) var(--s-3);min-height:0;line-height:var(--lh-normal);resize:vertical}.label{margin-bottom:var(--s-1);font-size:var(--t-sm);font-weight:var(--w-medium);display:block}.field+.field{margin-top:var(--s-4)}.form-error{margin:0 0 var(--s-4);padding:var(--s-3);border:var(--border-w) solid var(--danger);border-radius:var(--radius);background:var(--danger-tint);color:var(--ink);font-size:var(--t-sm)}.auth-viewport{min-height:100dvh;padding:var(--s-4);background:var(--field);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:400px;padding:var(--s-6);background:var(--surface);border:var(--border-w) solid var(--rule);border-radius:var(--radius)}.auth-title{margin:0 0 var(--s-1);font-size:var(--t-xl);font-weight:var(--w-bold)}.auth-note{margin:0 0 var(--s-5);font-size:var(--t-sm);color:var(--ink-light)}.auth-actions{margin-top:var(--s-5);gap:var(--s-2);flex-direction:column;display:flex}.auth-actions .btn{width:100%}.auth-divider{align-items:center;gap:var(--s-3);margin:var(--s-4) 0;color:var(--ink-disabled);font-size:var(--t-xs);display:flex}.auth-divider:before,.auth-divider:after{content:"";height:var(--hairline);background:var(--rule);flex:1}@media (width<=1023px){:root{--t-base:16px}.app-viewport{flex-direction:column}.sidebar{display:none}.page{padding:var(--page-margin-mobile)}.bottom-nav{height:var(--bottom-nav);background:var(--surface);border-top:var(--border-w) solid var(--rule);flex-shrink:0;display:flex}.bottom-item{min-width:0;color:var(--ink-light);font-size:var(--t-xs);font-weight:var(--w-medium);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.bottom-item.active{color:var(--accent)}button.bottom-item{cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit}.more-scrim{inset:0 0 var(--bottom-nav) 0;background:color-mix(in srgb, var(--ink) 40%, transparent);z-index:20;border:0;padding:0;display:block;position:fixed}.more-sheet{left:0;right:0;bottom:var(--bottom-nav);padding:var(--s-2) 0;background:var(--surface);border-top:var(--border-w) solid var(--rule);z-index:21;display:block;position:fixed}.more-sheet .nav-item{padding:var(--s-3)}.bottom-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}}.pill{border-radius:var(--radius);background:color-mix(in srgb, var(--pill-tone) 14%, transparent);color:var(--pill-tone);font-size:var(--t-xs);font-weight:var(--w-medium);line-height:var(--lh-tight);white-space:nowrap;flex-shrink:0;align-items:center;padding:2px 6px;display:inline-flex}.horizon{border-radius:var(--radius);background:var(--horizon-tone);width:18px;height:18px;color:var(--on-accent);font-size:var(--t-xs);font-weight:var(--w-bold);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.quick-add{gap:var(--s-2);margin-bottom:var(--s-6);display:flex}.quick-add .input{flex:1}.stat-row{gap:var(--s-3);margin-bottom:var(--s-6);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat-card{padding:var(--s-3) var(--s-4);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface);text-align:left;transition:border-color var(--transition-fast);flex-direction:column;align-items:flex-start;gap:2px;display:flex}.stat-card:hover{border-color:var(--accent)}.stat-value{font-size:var(--t-2xl);font-weight:var(--w-bold);line-height:var(--lh-tight);color:var(--accent)}.stat-label{font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--ink-light);text-transform:uppercase;letter-spacing:.03em}.block{margin-bottom:var(--s-6)}.block-head{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.block-title{font-size:var(--t-base);font-weight:var(--w-bold);margin:0}.link-btn{color:var(--accent);font-size:var(--t-sm);font-weight:var(--w-medium);background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.empty-line{padding:var(--s-2) 0;font-size:var(--t-sm);color:var(--ink-light);margin:0}.week-chart{align-items:flex-end;gap:var(--s-2);padding-top:var(--s-2);display:flex}.week-col{align-items:center;gap:var(--s-1);flex-direction:column;flex:1;min-width:0;display:flex}.week-hours{height:14px;font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--ink)}.week-track{background:var(--card);border:var(--hairline) solid var(--rule);border-radius:var(--radius);align-items:flex-end;width:100%;display:flex;overflow:hidden}.week-bar{background:var(--field-dark);width:100%}.week-bar.today{background:var(--accent)}.week-day{font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--ink-light);line-height:var(--lh-tight)}.week-day.today{color:var(--accent);font-weight:var(--w-bold)}.week-date{font-size:var(--t-xs);color:var(--ink-disabled);line-height:var(--lh-tight)}.row-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.row{justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-4);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface);text-align:left;transition:background-color var(--transition-fast);display:flex}.row:hover{background:var(--card)}.row-main{align-items:center;gap:var(--s-2);flex:1;min-width:0;display:flex}.row-text{min-width:0;font-size:var(--t-base);text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;overflow:hidden}.row-sub{font-size:var(--t-xs);font-weight:var(--w-regular);color:var(--ink-light);margin-top:2px}.row-aside{font-size:var(--t-xs);color:var(--ink-light);flex-shrink:0}.search{margin-bottom:var(--s-3)}.table{border:var(--border-w) solid var(--rule);border-radius:var(--radius);overflow:hidden}.table-head{gap:var(--s-3);padding:var(--s-2) var(--s-3);background:var(--card);border-bottom:var(--hairline) solid var(--rule);font-size:var(--t-xs);font-weight:var(--w-bold);color:var(--ink-light);text-transform:uppercase;letter-spacing:.05em;align-items:center;display:grid}.table-row{gap:var(--s-3);padding:var(--s-3);background:var(--surface);transition:background-color var(--transition-fast);align-items:center;display:grid}.table-row+.table-row{border-top:var(--hairline) solid var(--rule)}.table-row:hover{background:var(--card)}.cell{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--t-sm);color:var(--ink);overflow:hidden}.cell-strong{font-size:var(--t-base);font-weight:var(--w-medium)}.cell-empty{color:var(--ink-disabled)}.cell-link{color:var(--ink);text-decoration:none}.cell-link:hover{color:var(--accent);text-decoration:underline}.sort-header{min-width:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:2px;padding:0;display:inline-flex}.sort-header:hover .sort-label{color:var(--ink)}.sort-header.active{color:var(--accent)}.sort-header:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sort-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sort-arrow{flex:none;width:8px;font-size:8px;line-height:1;display:inline-block}.icon-btn{width:var(--ctl-sm);height:var(--ctl-sm);border:var(--hairline) solid transparent;border-radius:var(--radius);color:var(--ink-disabled);font-size:var(--t-lg);background:0 0;justify-content:center;justify-self:end;align-items:center;line-height:1;display:inline-flex}.icon-btn:hover{border-color:var(--rule);color:var(--ink)}.icon-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.empty-state{padding:var(--s-8) var(--s-4);text-align:center;color:var(--ink-light);font-size:var(--t-base);margin:0}.modal{width:min(calc(100vw - 2 * var(--s-4)), 520px);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--ink);padding:0}.modal::backdrop{background:color-mix(in srgb, var(--ink) 40%, transparent)}.modal-body{padding:var(--s-5)}.modal-title{margin:0 0 var(--s-4);font-size:var(--t-lg);font-weight:var(--w-bold)}.modal-content{max-height:min(60vh,520px);overflow-y:auto}.modal-message{font-size:var(--t-base);margin:0}.modal-foot{justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-5);padding-top:var(--s-4);border-top:var(--hairline) solid var(--rule);display:flex}.field-row{gap:var(--s-3);display:flex}.field-row .field{flex:1;min-width:0}.field-row .field+.field{margin-top:0}.head-actions{gap:var(--s-2);display:flex}.contact-lines{margin-bottom:var(--s-5);font-size:var(--t-sm);color:var(--ink-light);flex-direction:column;gap:2px;display:flex}.stat-card.static{cursor:default}.stat-card.static:hover{border-color:var(--rule)}.block-note{font-size:var(--t-xs);font-weight:var(--w-regular);color:var(--ink-light);text-transform:none}.row.static{cursor:default}.row.static:hover{background:var(--surface)}a.row{color:inherit;text-decoration:none}.row-text.done{color:var(--ink-light);text-decoration:line-through}.filter-row{gap:var(--s-2);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.filter-row .input{flex:240px}.status-filter{flex:0 170px}.select-row{gap:var(--s-2);display:flex}.select-row .input{flex:1;min-width:0}.select-row .btn{padding:0 var(--s-4);flex:none}select.input{height:var(--ctl);appearance:auto}.cell-number{font-weight:var(--w-bold)}.identity-line{align-items:center;gap:var(--s-3);margin-bottom:var(--s-1);flex-wrap:wrap;display:flex}.identity-number{font-size:var(--t-base);color:var(--ink-light)}.identity-customer{font-size:var(--t-base);font-weight:var(--w-medium);color:var(--ink);text-decoration:none}.identity-customer:hover{color:var(--accent);text-decoration:underline}.lifecycle-line{margin:0 0 var(--s-6);font-size:var(--t-sm);color:var(--ink-light)}.hours-readout{align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-2);display:flex}.hours-big{font-size:var(--t-2xl);font-weight:var(--w-bold);color:var(--accent);line-height:var(--lh-tight)}.hours-big.over{color:var(--danger)}.hours-estimate{font-size:var(--t-base);color:var(--ink-light)}.progress-track{height:8px;margin-bottom:var(--s-4);background:var(--field-dark);border-radius:var(--radius);overflow:hidden}.progress-bar{background:var(--accent);height:100%;transition:width var(--transition-base)}.progress-bar.over{background:var(--danger)}.row-aside.hours{font-weight:var(--w-medium);color:var(--ink)}.block-actions{margin-top:var(--s-2);justify-content:flex-end;display:flex}.chip-row{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.chip-row.labelled{margin-bottom:var(--s-3)}.chip-label{font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--ink-light);text-transform:uppercase;letter-spacing:.03em}.chip{height:var(--ctl-sm);padding:0 var(--s-3);border:var(--border-w) solid var(--rule);border-radius:var(--radius);color:var(--ink-light);font-size:var(--t-xs);font-weight:var(--w-medium);background:0 0}.chip:hover{border-color:var(--accent)}.chip.on{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.panel{padding:var(--s-4);margin-bottom:var(--s-3);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface)}.totals-row{gap:var(--s-7);flex-wrap:wrap;display:flex}.total{flex-direction:column;display:flex}.total-label{font-size:var(--t-xs);color:var(--ink-light);text-transform:uppercase;letter-spacing:.03em}.total-value{font-size:var(--t-2xl);font-weight:var(--w-bold);line-height:var(--lh-tight);color:var(--accent)}.total-unit{margin-left:var(--s-1);font-size:var(--t-xs);font-weight:var(--w-medium);color:var(--ink-light)}.group-toggles{align-items:center;gap:var(--s-4);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.checkbox{align-items:center;gap:var(--s-2);font-size:var(--t-sm);cursor:pointer;display:flex}.checkbox input{width:16px;height:16px;accent-color:var(--accent)}.breakdown{margin-top:var(--s-3);padding-top:var(--s-3);border-top:var(--hairline) solid var(--rule)}.breakdown-row{justify-content:space-between;gap:var(--s-3);font-size:var(--t-sm);padding:1px 0;display:flex}.breakdown-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.breakdown-hours{font-weight:var(--w-medium);flex:none}.breakdown-more{font-size:var(--t-xs);color:var(--ink-light);padding-top:2px}.timesheet{padding:0;overflow:hidden}.timesheet-head{justify-content:space-between;align-items:center;gap:var(--s-2);padding:var(--s-3);background:var(--card);border-bottom:var(--hairline) solid var(--rule);display:flex}.timesheet-range{font-size:var(--t-sm);flex-direction:column;align-items:center;display:flex}.timesheet-range span{font-size:var(--t-xs);color:var(--ink-light)}.step{width:var(--ctl-sm);height:var(--ctl-sm);color:var(--ink);font-size:var(--t-xl);background:0 0;border:none;line-height:1}.step:hover{color:var(--accent)}.link-btn.inline{margin-left:var(--s-2)}.timesheet-day{gap:var(--s-3);padding:var(--s-2) var(--s-3);background:var(--surface);display:flex}.timesheet-day+.timesheet-day{border-top:var(--hairline) solid var(--rule)}.timesheet-day.today{background:var(--accent-faint)}.timesheet-date{width:52px;font-size:var(--t-xs);flex-direction:column;flex:none;display:flex}.timesheet-date span{color:var(--ink-light)}.timesheet-entries{flex:1;min-width:0}.timesheet-none{font-size:var(--t-xs);color:var(--ink-light)}.timesheet-entry{justify-content:space-between;align-items:baseline;gap:var(--s-3);width:100%;padding:2px var(--s-2);margin:0 calc(var(--s-2) * -1);border-radius:var(--radius);text-align:left;font-size:var(--t-sm);color:var(--ink);background:0 0;border:none;display:flex}.timesheet-entry:hover{background:var(--card)}.timesheet-job{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.timesheet-details{color:var(--ink-light);font-size:var(--t-xs)}.timesheet-hours{font-weight:var(--w-medium);flex:none}.timesheet-total{text-align:right;width:52px;font-size:var(--t-sm);font-weight:var(--w-bold);flex:none}.timesheet-total.zero{color:var(--ink-disabled);font-weight:var(--w-regular)}.kind-badge{border:var(--hairline) solid var(--rule);border-radius:var(--radius);background:var(--card);color:var(--ink-light);font-size:var(--t-xs);font-weight:var(--w-bold);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding:2px 6px;display:inline-flex}.kind-badge.project{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.job-cell{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;display:flex}.job-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.job-details{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--t-xs);color:var(--ink-light);overflow:hidden}.hours-cell{text-align:right;font-weight:var(--w-medium)}.field-note{margin:var(--s-1) 0 0;font-size:var(--t-xs);color:var(--ink-light)}.label-required{font-weight:var(--w-regular);color:var(--ink-light)}.narrow{max-width:680px}.saved-note{margin-right:var(--s-3);font-size:var(--t-sm);color:var(--success);align-self:center}.invite-result{margin-top:var(--s-3);padding:var(--s-3);border:var(--border-w) solid var(--accent);border-radius:var(--radius);background:var(--accent-tint)}.invite-note{font-size:var(--t-sm);color:var(--ink);word-break:break-all;margin:0}.invite-token{margin:var(--s-2) 0;padding:var(--s-2);background:var(--surface);border:var(--hairline) solid var(--rule);border-radius:var(--radius);font-family:ui-monospace,Cascadia Mono,SF Mono,monospace;font-size:var(--t-sm);word-break:break-all;display:block}.save-status{font-size:var(--t-sm);color:var(--ink-light)}.daily-layout{gap:var(--s-5);grid-template-columns:1fr 280px;align-items:start;display:grid}@media (width<=1023px){.daily-layout{grid-template-columns:1fr}.daily-history{order:2}}.day-stepper{justify-content:space-between;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);padding:var(--s-2);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--surface);display:flex}.day-label{align-items:baseline;gap:var(--s-3);font-size:var(--t-base);display:flex}.daily-text{resize:vertical;min-height:380px;line-height:var(--lh-relaxed,1.65);font-size:var(--t-base)}.daily-history{min-width:0}.history-list{margin:var(--s-2) 0 0;flex-direction:column;gap:2px;max-height:60vh;padding:0;list-style:none;display:flex;overflow-y:auto}.history-row{width:100%;padding:var(--s-2);border:var(--hairline) solid transparent;border-radius:var(--radius);text-align:left;background:0 0;flex-direction:column;align-items:flex-start;display:flex}.history-row:hover{background:var(--card)}.history-row.on{border-color:var(--accent);background:var(--accent-tint)}.history-day{font-size:var(--t-xs);font-weight:var(--w-bold);color:var(--ink)}.history-preview{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--t-xs);color:var(--ink-light);overflow:hidden}.computed-amount{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-top:var(--s-2);padding:var(--s-3);border:var(--border-w) solid var(--rule);border-radius:var(--radius);background:var(--card);display:flex}.computed-value{font-size:var(--t-xl);font-weight:var(--w-bold);color:var(--accent)}.row-actions{justify-self:end;gap:2px;display:flex}.month-head{align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);display:flex}.month-label{text-align:center;font-size:var(--t-lg);flex:1}.calendar{border:var(--border-w) solid var(--rule);border-radius:var(--radius);margin-bottom:var(--s-5);overflow:hidden}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekdays{background:var(--field-dark)}.calendar-weekday{padding:var(--s-1) 0;text-align:center;font-size:var(--t-xs);font-weight:var(--w-bold)}.calendar-cell{min-height:84px;padding:var(--s-1);border:var(--hairline) solid var(--rule);background:var(--surface);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex;overflow:hidden}.calendar-cell.outside{background:var(--card);opacity:.55}.calendar-cell.selected{outline:var(--border-w) solid var(--accent);outline-offset:calc(var(--border-w) * -1);background:var(--accent-tint)}.calendar-date{font-size:var(--t-xs);font-weight:var(--w-medium)}.calendar-cell.today .calendar-date{padding:0 var(--s-1);border:2px solid var(--accent);border-radius:var(--radius);color:var(--accent);font-weight:var(--w-bold)}.calendar-entries{flex-direction:column;gap:1px;width:100%;min-width:0;display:flex}.calendar-entry{max-width:100%;padding:1px var(--s-1);border-radius:var(--radius);background:var(--accent-tint);font-size:var(--t-xs);line-height:var(--lh-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-more{font-size:var(--t-xs);color:var(--ink-light)}.calendar-count{display:none}@media (width<=1023px){.calendar-cell{align-items:center;min-height:46px}.calendar-entries{display:none}.calendar-count{min-width:18px;padding:0 var(--s-1);border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--t-xs);font-weight:var(--w-bold);justify-content:center;align-items:center;margin-top:auto;display:inline-flex}}.nothing-planned{padding:var(--s-4);border:var(--border-w) dashed var(--rule);border-radius:var(--radius);text-align:center;color:var(--ink-light);font-size:var(--t-sm);margin:0}.visit-row{align-items:flex-start}.visit-time{width:76px;font-size:var(--t-xs);font-weight:var(--w-bold);color:var(--accent);flex:none;padding-top:2px}.visit-time.anytime{color:var(--ink-disabled)}.visit-notes{white-space:pre-wrap}.expander{width:20px;color:var(--ink-light);font-size:var(--t-xs);background:0 0;border:none;padding:0;line-height:1}.expander:hover{color:var(--accent)}button.horizon{cursor:pointer;border:none}button.horizon:hover{outline:2px solid var(--accent);outline-offset:1px}.task-check{width:16px;height:16px;accent-color:var(--accent);justify-self:center}.cell.done,.subtask-title.done{color:var(--ink-light);text-decoration:line-through}.subtasks{padding:var(--s-2) var(--s-3) var(--s-2) var(--s-6);background:var(--card);border-top:var(--hairline) solid var(--rule)}.subtask{align-items:center;gap:var(--s-2);padding:var(--s-1) 0;display:flex}a.subtask-title{color:var(--ink);text-decoration:none}a.subtask-title:hover{color:var(--accent);text-decoration:underline}.subtask-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--t-sm);flex:1;overflow:hidden}.subtask-add{gap:var(--s-2);margin-top:var(--s-1);display:flex}.subtask-add .input{min-height:var(--ctl-sm);font-size:var(--t-sm);flex:1}
