:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fff;--color-bg-elevated:#f4f5f7;--color-text:#1a1a1a;--color-text-muted:#5b616e;--color-border:#d7dae0;--color-accent:#2563eb;--color-accent-contrast:#fff;--color-success-bg:#ecfdf3;--color-success-text:#067647;--color-error-bg:#fef3f2;--color-error-text:#b42318;--color-warning-bg:#fffaeb;--color-warning-text:#b54708;--color-info-bg:#eff8ff;--color-info-text:#175cd3;--spacing-1:4px;--spacing-2:8px;--spacing-3:16px;--spacing-4:24px;--spacing-5:32px;--radius-sm:4px;--radius-md:8px;--radius-full:999px;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--control-height:2.25rem;--control-radius:var(--radius-sm);--sidebar-width:220px;--timer-bar-height:72px;--mobile-nav-height:56px;--timesheet-row-height:40px;--timesheet-day-width:5rem}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:var(--font-size-base);margin:0;line-height:1.5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.skip-link{background:var(--color-accent);color:var(--color-accent-contrast);padding:var(--spacing-2) var(--spacing-3);z-index:100;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--spacing-2);top:var(--spacing-2)}.app-shell{min-height:100vh;display:flex}.app-nav{width:var(--sidebar-width);background:var(--color-bg-elevated);border-right:1px solid var(--color-border);padding:var(--spacing-3);gap:var(--spacing-4);flex-direction:column;flex-shrink:0;display:flex}.app-nav__header{border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-3)}.app-nav__brand{font-weight:700;font-size:var(--font-size-lg);margin:0}.app-nav__burger{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--color-bg-elevated);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:0;display:none}.app-nav__sections{gap:var(--spacing-1);flex-direction:column;flex:1;display:flex}.app-nav__section{margin:var(--spacing-3) 0 var(--spacing-1) var(--spacing-3);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);font-size:.6875rem;font-weight:600}.app-nav__sections>.app-nav__section:first-child{margin-top:0}.app-nav__list{gap:var(--spacing-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.app-nav__list a{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-full);color:var(--color-text-muted);font-weight:500;text-decoration:none;display:flex}.app-nav__icon{flex-shrink:0;width:16px;height:16px;display:inline-flex}.app-nav__icon svg{width:100%;height:100%}.app-nav__list a:hover{background:var(--color-bg);color:var(--color-text)}.app-nav__list a.is-active{background:color-mix(in srgb, var(--color-accent) 14%, transparent);color:var(--color-accent);font-weight:600}.app-nav__user{gap:var(--spacing-2);border-top:1px solid var(--color-border);padding-top:var(--spacing-3);font-size:var(--font-size-sm);flex-direction:column;margin-top:auto;display:flex}.app-nav__user-row{justify-content:space-between;align-items:center;gap:var(--spacing-2);display:flex}.app-nav__logout{height:var(--control-height);padding:0 var(--spacing-2);border-radius:var(--control-radius);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #0000;font-family:inherit;font-weight:600}.app-nav__logout:hover{background:var(--color-bg);color:var(--color-text)}.app-main-column{flex-direction:column;flex:1;min-width:0;display:flex}.app-timer-bar{min-height:var(--timer-bar-height);border-bottom:1px solid var(--color-border);padding:var(--spacing-2) var(--spacing-3);z-index:10;background:var(--color-bg);align-items:center;display:flex;position:sticky;top:0}.timer-bar{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;width:100%;display:flex}.timer-bar .timer-bar__description-slot{flex:auto;min-width:0}.timer-bar .timer-bar__description{width:100%;height:var(--control-height);padding:0 var(--spacing-2);border-radius:var(--control-radius);color:var(--color-text);font-size:var(--font-size-base);background:0 0;border:1px solid #0000}.timer-bar .timer-bar__description:hover{background:var(--color-bg-elevated)}.timer-bar .timer-bar__description:focus-visible{background:var(--color-bg);border-color:var(--color-border)}.timer-bar .timer-bar__project,.timer-bar .timer-bar__task,.timer-bar__tags-trigger{height:var(--control-height);max-width:11rem;padding:0 var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-elevated);color:var(--color-text);font-size:var(--font-size-sm);flex:none;font-family:inherit}.timer-bar .timer-bar__task{width:8rem}.timer-bar__task-wrapper,.timer-bar__tags-wrapper{position:relative}.timer-bar__task-list{z-index:20;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:12rem;max-height:12rem;margin:0;padding:0;list-style:none;position:absolute;top:100%;left:0;overflow-y:auto}.timer-bar__task-list button{text-align:left;width:100%;padding:var(--spacing-1) var(--spacing-2);color:var(--color-text);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);background:0 0;border:none;display:block}.timer-bar__task-list button:hover{background:var(--color-bg-elevated)}.timer-bar__tags-trigger{align-items:center;gap:var(--spacing-1);cursor:pointer;color:var(--color-text-muted);display:inline-flex}.tag-chip{padding:0 var(--spacing-1);border-radius:var(--radius-sm);background:var(--color-border);color:var(--color-text);white-space:nowrap;align-items:center;font-size:.75rem;display:inline-flex}.timer-bar__tags-panel.timer-bar__tags-panel[hidden]{display:none}.timer-bar__tags-panel{z-index:20;margin-top:var(--spacing-1);padding:var(--spacing-2);gap:var(--spacing-1);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-width:11rem;max-height:12rem;display:flex;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 10px 30px #00000026}.timer-bar__tag-option{align-items:center;gap:var(--spacing-1);padding:var(--spacing-1);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;display:flex}.timer-bar__tag-option:hover{background:var(--color-bg-elevated)}.timer-bar__billable-label{width:var(--control-height);height:var(--control-height);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative}.timer-bar__billable-label:has(input:checked){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.timer-bar__billable-label:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}.timer-bar__billable-label input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.timer-bar__billable-label input:focus-visible{outline:none}.timer-bar__end{align-items:center;gap:var(--spacing-3);flex:none;margin-left:auto;display:flex}.timer-bar__elapsed{text-align:right;font-variant-numeric:tabular-nums;min-width:4.5rem;font-size:var(--font-size-xl);font-weight:700}.timer-bar__error{color:var(--color-error-text);font-size:var(--font-size-sm)}.timer-bar__start-stop.timer-bar__start-stop{padding:0 var(--spacing-4)}.timer-bar__start-stop.timer-bar__start-stop--round{border-radius:var(--radius-full);width:3rem;height:3rem;padding:0}.timer-bar__start-stop.timer-bar__start-stop--running{background:var(--color-error-text);border-color:var(--color-error-text);color:var(--color-accent-contrast)}.timer-bar__start-stop.timer-bar__start-stop--running:hover{background:color-mix(in srgb, var(--color-error-text) 85%, black);border-color:color-mix(in srgb, var(--color-error-text) 85%, black)}.app-main{padding:var(--spacing-4);flex:1}.app-main:has(>.calendar){padding-bottom:0}.app-public{min-height:100vh;padding:var(--spacing-4);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:360px;padding:var(--spacing-4)}@media (width>=769px){.app-nav__menu{gap:var(--spacing-4);color:inherit;background:0 0;border:none;flex-direction:column;flex:1;width:auto;height:auto;max-height:none;margin:0;padding:0;display:flex;position:static;inset:auto;overflow:visible}}@media (width<=768px){.app-shell{flex-direction:column}.app-nav{width:100%;height:var(--mobile-nav-height);padding:0 var(--spacing-3);justify-content:space-between;align-items:center;gap:var(--spacing-2);border-right:none;border-bottom:1px solid var(--color-border);flex-direction:row}.app-nav__header{border-bottom:none;padding-bottom:0}.app-nav__burger{display:inline-flex}.app-nav__menu{inset:var(--mobile-nav-height) 0 auto 0;width:100%;max-height:calc(100vh - var(--mobile-nav-height));padding:var(--spacing-3);border:none;border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text);gap:var(--spacing-3);flex-direction:column;margin:0;display:none;position:fixed;overflow-y:auto}.app-nav__menu:popover-open{display:flex}.app-nav__sections,.app-nav__list{flex-direction:column}.app-nav__user{border-top:1px solid var(--color-border);padding-top:var(--spacing-3);margin-top:0}.app-timer-bar{display:none}.app-main{padding:var(--spacing-3)}}.form{gap:var(--spacing-3);flex-direction:column;display:flex}.form-row{gap:var(--spacing-1);flex-direction:column;display:flex}.form-row label{font-size:var(--font-size-sm);color:var(--color-text-muted)}input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea{height:var(--control-height);padding:0 var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);font-family:inherit}textarea{height:auto;min-height:calc(var(--control-height) * 2);padding:var(--spacing-2)}input::placeholder,textarea::placeholder{color:var(--color-text-muted);opacity:1}input:not([type=checkbox]):not([type=radio]):hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--color-text-muted)}input:not([type=checkbox]):not([type=radio]):disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}.button{justify-content:center;align-items:center;gap:var(--spacing-1);height:var(--control-height);padding:0 var(--spacing-3);border-radius:var(--control-radius);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text);font-size:var(--font-size-sm);white-space:nowrap;cursor:pointer;font-family:inherit;font-weight:600;line-height:1;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.button:hover{background:var(--color-border)}.button--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.button--primary:hover{background:color-mix(in srgb, var(--color-accent) 85%, black);border-color:color-mix(in srgb, var(--color-accent) 85%, black)}.button--link{height:auto;color:var(--color-accent);background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.button--link:hover{color:color-mix(in srgb, var(--color-accent) 80%, black);background:0 0}.button--danger{background:var(--color-error-bg);border-color:var(--color-error-text);color:var(--color-error-text)}.button--danger:hover{background:color-mix(in srgb, var(--color-error-bg) 70%, var(--color-error-text) 15%)}.button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-border)}.badge{padding:2px var(--spacing-2);border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-muted);font-size:var(--font-size-sm);border:1px solid var(--color-border);display:inline-block}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-text)}.filter-tabs{margin-bottom:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.filter-tabs a{padding:var(--spacing-1) var(--spacing-3);color:var(--color-text-muted);border-right:1px solid var(--color-border);text-decoration:none}.filter-tabs a:last-child{border-right:none}.filter-tabs a.is-active{background:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.inline-form{display:inline-flex}.row-actions{align-items:center;gap:var(--spacing-2);flex-wrap:nowrap;display:flex}.color-dot{vertical-align:middle;border-radius:50%;width:12px;height:12px;display:inline-block}.text-muted{color:var(--color-text-muted)}.project-search{flex-direction:row;align-items:center;max-width:24rem}.flash{padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);margin-bottom:var(--spacing-3)}.flash--success{background:var(--color-success-bg);color:var(--color-success-text)}.flash--error{background:var(--color-error-bg);color:var(--color-error-text)}.flash--warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.flash--info{background:var(--color-info-bg);color:var(--color-info-text)}.calendar{flex-direction:column;display:flex}.calendar__nav{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-wrap:wrap;flex:none;display:flex}@media (width<=768px){.view-switcher{flex-wrap:nowrap;width:100%;margin-left:0}.view-switcher__view span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.view-switcher__view{padding:0 var(--spacing-2)}}.calendar__period-heading{margin:0 0 var(--spacing-3);text-align:center;flex:none;font-weight:600}.calendar__grid{background:var(--color-border);border:1px solid var(--color-border);flex:auto;grid-template-columns:48px repeat(7,minmax(0,1fr));column-gap:1px;min-height:0;display:grid;overflow:auto}.calendar--day .calendar__grid{grid-template-columns:48px 1fr}.calendar--day .calendar__column{min-width:0}.calendar__header-row{display:contents}.calendar__hours-header,.calendar__day-header{background:var(--color-bg);z-index:2;position:sticky;top:0}.calendar__hours-header{border-bottom:1px solid var(--color-border)}.calendar__hours{background:var(--color-bg);height:1440px;position:relative}.calendar__hour-label{right:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-text-muted);position:absolute;transform:translateY(-.6em)}.calendar__hour-label:first-child{transform:none}.calendar__day-header{border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);flex-direction:column;display:flex}.calendar__day-header-date{align-items:baseline;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);display:flex}.calendar__day-header-number{width:1.5em;height:1.5em;font-size:var(--font-size-lg);justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;display:inline-flex}.calendar__day-header-number--today{border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-accent-contrast)}.calendar__day-header-weekday{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;font-weight:500}.calendar__day-header-lanes{border-top:1px solid var(--color-border);display:flex}.calendar__lane-header{padding:1px var(--spacing-2);color:var(--color-text-muted);flex-wrap:wrap;flex:50%;justify-content:space-between;align-items:baseline;font-size:.75rem;line-height:1.3;display:flex}.calendar__lane-header-time,.calendar__lane-header-money{white-space:nowrap;font-weight:600}.calendar__lane-header-money{margin-left:auto}.calendar__lane-header-money--earned{color:var(--color-text)}.calendar__lane-header-money--spent{color:var(--color-error-text)}.calendar__column{background:var(--color-bg);background-image:linear-gradient(to bottom, var(--color-bg) 0, var(--color-bg) 1px, transparent 1px), repeating-linear-gradient(to bottom, var(--color-border) 0, var(--color-border) 1px, transparent 1px, transparent 60px);cursor:crosshair;min-width:120px;height:1440px;position:relative}.calendar__entry{box-sizing:border-box;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--entry-color,var(--color-accent)) 25%, var(--color-bg));border-left:4px solid var(--entry-color,var(--color-accent));width:100%;padding:2px var(--spacing-1);cursor:grab;font-size:var(--font-size-sm);position:absolute;left:0;overflow:hidden}.calendar__entry:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.calendar__entry--draft{background:color-mix(in srgb, var(--color-accent) 20%, transparent);border:1px dashed var(--color-accent);pointer-events:none}.calendar__entry--agent{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--entry-color,var(--color-accent)) 18%, var(--color-bg)), color-mix(in srgb, var(--entry-color,var(--color-accent)) 18%, var(--color-bg)) 6px, transparent 6px, transparent 12px);border:2px dashed var(--entry-color,var(--color-accent));border-left-width:2px}.calendar__entry--agent-block{cursor:pointer}.calendar__entry-handle{cursor:ns-resize;height:8px;position:absolute;left:0;right:0}.calendar__entry-handle--top{top:0}.calendar__entry-handle--bottom{bottom:0}.calendar__entry-body{pointer-events:none;flex-direction:column;gap:1px;display:flex}.calendar__entry-line{align-items:baseline;gap:var(--spacing-1);min-width:0;display:flex}.calendar__entry-description{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.calendar__entry--lane-manual .calendar__entry-description{color:var(--color-text-muted);font-weight:400}.calendar__entry-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.calendar__entry-title .badge--warning{padding:0 4px;font-size:.6875rem}.calendar__entry-duration{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar__entry-cost{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:.6875rem;font-weight:400}.calendar__entry--agent-block.calendar__entry--compact .calendar__entry-body{flex-direction:row;align-items:center;gap:2px;font-size:.6875rem;line-height:1.1}.calendar__entry--agent-block.calendar__entry--compact .calendar__entry-description{font-weight:500}.calendar__entry--compact .calendar__entry-duration,.calendar__entry--lane-manual.calendar__entry--compact .calendar__entry-description{display:none}.calendar__hover-indicator{border-top:1px dashed var(--color-accent);pointer-events:none;z-index:3;height:0;position:absolute;left:0}.calendar__lane-separator{background:var(--color-border);pointer-events:none;z-index:1;width:1px;position:absolute;top:0;bottom:0}.calendar__hover-indicator-label{top:-1.1em;right:var(--spacing-1);background:var(--color-bg);color:var(--color-accent);border-radius:var(--radius-sm);white-space:nowrap;padding:0 3px;font-size:.7rem;line-height:1.4;position:absolute}.calendar__drag-readout{pointer-events:none;z-index:4;position:absolute;left:0;right:0}.calendar__drag-readout-start,.calendar__drag-readout-stop,.calendar__drag-readout-duration{background:var(--color-accent);color:var(--color-accent-contrast);border-radius:var(--radius-sm);white-space:nowrap;padding:1px 4px;font-size:.7rem;position:absolute}.calendar__drag-readout-start{top:0;left:var(--spacing-1);transform:translateY(-100%)}.calendar__drag-readout-stop{bottom:0;left:var(--spacing-1);transform:translateY(100%)}.calendar__drag-readout-duration{top:50%;left:50%;transform:translate(-50%,-50%)}.calendar__now-line{background:var(--color-error-text);pointer-events:none;z-index:1;height:2px;position:absolute;left:0;right:0}.popover-overlay{z-index:10;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.popover{background:var(--color-bg);border-radius:var(--radius-md);padding:var(--spacing-3);gap:var(--spacing-2);min-width:22rem;max-width:calc(100vw - var(--spacing-4));max-height:calc(100vh - var(--spacing-4));flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.popover__heading{font-size:var(--font-size-lg);margin:0}.popover__header{justify-content:flex-end;display:flex}.popover__icon-button{border-radius:var(--radius-sm);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;list-style:none;display:inline-flex}.popover__icon-button::-webkit-details-marker{display:none}.popover__icon-button:hover{background:var(--color-bg-elevated);color:var(--color-text)}.popover__menu{position:relative}.popover__menu-list{z-index:20;top:calc(100% + var(--spacing-1));min-width:12rem;padding:var(--spacing-1);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--color-bg);flex-direction:column;display:flex;position:absolute;right:0;box-shadow:0 10px 30px #00000026}.popover__menu-item{padding:var(--spacing-2);border-radius:var(--radius-sm);color:var(--color-text);text-align:left;font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none}.popover__menu-item:hover{background:var(--color-bg-elevated)}.popover__menu-item--danger{color:var(--color-error-text)}.popover__menu-item--danger:hover{background:var(--color-error-bg)}.popover__description-row{gap:var(--spacing-1);flex-direction:column;display:flex}.popover__description{height:auto;padding:var(--spacing-1) 0;font-size:var(--font-size-lg);background:0 0;border:1px solid #0000;font-weight:600}.popover__description:hover,.popover__description:focus-visible{border-color:#0000}.description-suggest{position:relative}.description-suggest__list{top:calc(100% + var(--spacing-1));z-index:20;padding:var(--spacing-1);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--control-radius);column-gap:var(--spacing-2);grid-template-columns:max-content minmax(0,1fr) max-content;max-height:16rem;margin:0;list-style:none;display:grid;position:absolute;left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #00000026}.description-suggest__list[hidden]{display:none}.description-suggest__group-label{padding:var(--spacing-1) var(--spacing-2);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;grid-column:1/-1;font-size:.75rem}.description-suggest__option{grid-column:1/-1;grid-template-columns:subgrid;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;align-items:center;display:grid}.description-suggest__option:hover,.description-suggest__option--active{background:var(--color-bg-elevated)}.description-suggest__key,.description-suggest__main,.description-suggest__detail{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.description-suggest__detail{color:var(--color-text-muted)}.popover__row{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.popover__row .popover__field{flex:8rem;min-width:8rem}.popover__time-range{align-items:center;gap:var(--spacing-2);flex:2 16rem;display:flex}.popover__time-range .popover__field{flex:8rem;min-width:8rem}.popover__time-arrow{padding-top:var(--spacing-3);color:var(--color-text-muted)}.popover__field{gap:var(--spacing-1);flex-direction:column;display:flex}.popover__field--inline{align-items:center;gap:var(--spacing-2);flex-direction:row}.popover__label{gap:var(--spacing-1);font-size:var(--font-size-sm);flex-direction:column;display:flex}.popover__chip-field{gap:var(--spacing-1);flex-direction:column;display:flex}.popover__chip-group{position:relative}.popover__chip{align-items:center;gap:var(--spacing-1);height:var(--control-height);max-width:11rem;padding:0 var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-elevated);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-family:inherit;list-style:none;display:inline-flex;overflow:hidden}.popover__chip::-webkit-details-marker{display:none}.popover__chip::marker{content:""}.popover__chip:hover{background:var(--color-bg)}.popover__chip--billable{width:var(--control-height);border-radius:var(--radius-full);max-width:none;color:var(--color-text-muted);justify-content:center;padding:0;font-weight:700;position:relative}.popover__chip--billable:has(input:checked){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.popover__chip--billable:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}.popover__chip--billable input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.popover__chip--billable input:focus-visible{outline:none}.popover__chip-panel{top:calc(100% + var(--spacing-1));z-index:20;gap:var(--spacing-1);min-width:14rem;max-width:20rem;padding:var(--spacing-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--control-radius);flex-direction:column;display:flex;position:absolute;left:0;box-shadow:0 10px 30px #00000026}.popover__chip-search{width:100%}.popover__chip-list{flex-direction:column;gap:1px;max-height:12rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.popover__chip-list[hidden],.popover__field[hidden]{display:none}.popover__chip-option{align-items:center;gap:var(--spacing-1);width:100%;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);color:var(--color-text);text-align:left;font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;display:flex}.popover__chip-option:hover,.popover__chip-option--active{background:var(--color-bg-elevated)}.popover__chip-option-key{font-weight:600}.popover__chip-option-detail{color:var(--color-text-muted)}.popover__tag-actions{justify-content:space-between;align-items:center;gap:var(--spacing-2);padding-top:var(--spacing-1);border-top:1px solid var(--color-border);display:flex}.popover__tag-actions button{color:var(--color-accent);padding:var(--spacing-1);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;font-family:inherit}.popover__tag-actions button:hover{text-decoration:underline}.popover__field-error{color:var(--color-error-text);font-size:var(--font-size-sm)}.popover__form-error{color:var(--color-error-text);margin:0}.popover__actions{justify-content:flex-end;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.popover__activity-list-summary{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.popover__activity-list{gap:var(--spacing-1);flex-direction:column;max-height:16rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.popover__activity-list-row{gap:var(--spacing-2);text-align:left;width:100%;padding:var(--spacing-1) var(--spacing-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);grid-template-columns:auto 1fr auto;align-items:baseline;display:grid}.popover__activity-list-main{flex-direction:column;min-width:0;display:flex}.popover__activity-list-description{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.popover__activity-list-meta{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:var(--font-size-sm);overflow:hidden}.popover__activity-list-time,.popover__activity-list-duration{color:var(--color-text-muted);white-space:nowrap}.popover__activity-list-cost{color:var(--color-text-muted);font-size:var(--font-size-sm);flex-direction:column;grid-column:1/-1;gap:1px;display:flex}.popover__activity-list-cost-total{font-weight:600}.calendar__error{bottom:var(--spacing-3);right:var(--spacing-3);background:var(--color-error-bg);color:var(--color-error-text);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);z-index:20;position:fixed}.view-switcher{align-items:center;gap:var(--spacing-2);margin-left:auto;display:inline-flex}.view-switcher__views{height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--control-radius);display:inline-flex;overflow:hidden}.view-switcher__view{align-items:center;gap:var(--spacing-1);padding:0 var(--spacing-3);border-right:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;display:inline-flex}.view-switcher__view:last-child{border-right:none}.view-switcher__view.is-active{background:var(--color-bg-elevated);color:var(--color-text)}.view-switcher__icon{flex-shrink:0;width:14px;height:14px}.view-switcher__agents{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-elevated);color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.view-switcher__agents:hover{background:var(--color-border)}.view-switcher__agents.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.report-switcher{margin-bottom:var(--spacing-3);display:inline-block;position:relative}.report-switcher__button{align-items:center;gap:var(--spacing-1);height:var(--control-height);padding:0 var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--color-bg-elevated);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;font-weight:600;list-style:none;display:inline-flex}.report-switcher__button::-webkit-details-marker{display:none}.report-switcher__button:hover{background:var(--color-border)}.report-switcher__chevron{flex-shrink:0;width:12px;height:12px;transition:transform .12s}.report-switcher[open] .report-switcher__chevron{transform:rotate(180deg)}.report-switcher__menu{z-index:10;top:calc(100% + var(--spacing-1));min-width:12rem;padding:var(--spacing-1);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--color-bg);flex-direction:column;display:flex;position:absolute;left:0;box-shadow:0 10px 30px #00000026}.report-switcher__menu a{padding:var(--spacing-2) var(--spacing-2);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);text-decoration:none}.report-switcher__menu a:hover{background:var(--color-bg-elevated)}.report-switcher__menu a.is-active{color:var(--color-accent);font-weight:600}.list-view__nav{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.list-view__week-label{margin-left:var(--spacing-2);color:var(--color-text-muted)}.list-view__empty{color:var(--color-text-muted)}.list-view__day{margin-bottom:var(--spacing-4)}.list-view__day-header{padding-bottom:var(--spacing-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-1);justify-content:space-between;align-items:baseline;display:flex}.list-view__day-header h2{margin:0;font-size:1rem}.list-view__day-total{color:var(--color-text-muted)}.list-view__rows{margin:0;padding:0;list-style:none}.list-view__row{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-1);border-bottom:1px solid var(--color-border);cursor:pointer;display:flex}.list-view__row:hover,.list-view__row:focus-visible{background:var(--color-bg-elevated)}.list-view__cell--description{flex:2 12rem}.list-view__cell--project,.list-view__cell--task,.list-view__cell--tags{color:var(--color-text-muted);flex:8rem}.list-view__cell--billable,.list-view__cell--start,.list-view__cell--stop,.list-view__cell--duration{text-align:right;flex:0 0 4rem}.list-view__cell--actions{flex:none}.list-view__load-more{text-align:center}.timesheet__nav{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.timesheet__week-label{margin-left:var(--spacing-2);color:var(--color-text-muted)}.timesheet__grid{border:1px solid var(--color-border);margin-bottom:var(--spacing-3);flex-direction:column;display:flex;overflow-x:auto}.timesheet__row{min-height:var(--timesheet-row-height);border-bottom:1px solid var(--color-border);display:flex}.timesheet__row:last-child{border-bottom:none}.timesheet__row--header,.timesheet__row--totals{background:var(--color-bg-elevated);font-weight:600}.timesheet__row-header{align-items:center;gap:var(--spacing-1);padding:0 var(--spacing-2);border-right:1px solid var(--color-border);flex:0 0 14rem;display:flex}.timesheet__row-task{color:var(--color-text-muted);font-size:var(--font-size-sm)}.timesheet__cell{flex:0 0 var(--timesheet-day-width);border-right:1px solid var(--color-border);padding:var(--spacing-1);justify-content:center;align-items:center;display:flex}.timesheet__cell:last-child{border-right:none}.timesheet__cell--total{font-weight:600}.timesheet__cell-button,.timesheet__cell-input{text-align:center;width:100%;height:100%;font:inherit;color:inherit;padding:var(--spacing-1);border-radius:var(--radius-sm);background:0 0;border:none}.timesheet__cell-button{cursor:pointer}.timesheet__cell-button:hover,.timesheet__cell-button:focus-visible{background:var(--color-bg-elevated)}.timesheet__cell-input{border:1px solid var(--color-accent)}.timesheet__empty{color:var(--color-text-muted)}.timesheet__add-row{align-items:flex-end;gap:var(--spacing-2);max-width:32rem;display:flex}.timesheet__add-row .form-row{flex:1}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.report-period{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);display:flex}.report-period>.report-switcher{margin-bottom:0}.report-period__step{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--control-radius);background:var(--color-bg-elevated);color:var(--color-text);font-size:var(--font-size-lg);justify-content:center;align-items:center;padding:0;line-height:1;text-decoration:none;display:inline-flex}.report-period__step:hover{background:var(--color-border)}.report-period__label{font-variant-numeric:tabular-nums}.report-period__menu{gap:var(--spacing-3);min-width:16rem;padding:var(--spacing-2);flex-direction:column;display:flex}.report-period__presets{gap:var(--spacing-2);display:flex}.report-period__presets a.is-active.button,.report-customer__actions .is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.report-period__custom{align-items:flex-end;gap:var(--spacing-2);padding-top:var(--spacing-2);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.report-period__custom label{gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;display:flex}.report-period__custom label.report-period__field{align-items:center;gap:var(--spacing-1);flex-direction:row}.report-period__field-icon{color:var(--color-text-muted);flex-shrink:0}.report-filters{margin-bottom:var(--spacing-4);padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated)}.report-filters__row{gap:var(--spacing-3);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.report-filters__row label{gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;display:flex}.report-filters__field{display:flex;position:relative}.report-filters__field select{padding-right:calc(var(--spacing-2) + 20px)}.report-filters__clear[hidden]{display:none}.report-filters__clear{width:24px;height:24px;color:var(--color-text-muted);font-size:var(--font-size-base);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.report-filters__clear:hover{background:var(--color-border);color:var(--color-text)}.kpi-tiles{gap:var(--spacing-3);margin-bottom:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.kpi-tile{padding:var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated)}.kpi-tile__label{color:var(--color-text-muted);font-size:var(--font-size-sm);display:block}.kpi-tile__value{font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;font-weight:600;display:block}.kpi-tile__sub{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:400}.report-chart{margin-bottom:var(--spacing-4)}.report-chart canvas{max-width:100%}.report-breakdown__header{justify-content:space-between;align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.report-breakdown__groupby a{margin-left:var(--spacing-2);color:var(--color-text-muted);text-decoration:none}.report-breakdown__groupby a.is-active{color:var(--color-accent);font-weight:600;text-decoration:underline}.report-breakdown{--report-cols:minmax(0, 1fr) 12rem 6rem 7rem}.report-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3)}.report-row__summary,.report-row__child>summary,.report-row__entries li{grid-template-columns:var(--report-cols);column-gap:var(--spacing-3);cursor:pointer;align-items:center;display:grid}.report-row__summary,.report-row__child>summary{list-style:none}.report-row__summary::-webkit-details-marker{display:none}.report-row__child>summary::-webkit-details-marker{display:none}.report-row__summary>*,.report-row__child>summary>*,.report-row__entries li>*{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.report-row__project{grid-column:1;padding-left:1.25rem;position:relative}.report-row__project:before{content:"▸";color:var(--color-text-muted);transition:transform .12s;position:absolute;left:0}.report-row[open]>.report-row__summary>.report-row__project:before{transform:rotate(90deg)}.report-row__client{grid-column:2}.report-row__logged,.report-row__child-logged,.report-row__entry-duration{text-align:right;grid-column:3}.report-row__amount,.report-row__child-amount,.report-row__entry-billable{text-align:right;grid-column:4}.report-row__child{margin:var(--spacing-2) 0;border-left:2px solid var(--color-border)}.report-row__child-label{grid-column:1;padding-left:2.75rem;position:relative}.report-row__child-label:before{content:"▸";color:var(--color-text-muted);transition:transform .12s;position:absolute;left:1.5rem}.report-row__child[open]>summary>.report-row__child-label:before{transform:rotate(90deg)}.report-row__entries{margin:var(--spacing-2) 0 0;padding:0;list-style:none}.report-row__entries li{padding:var(--spacing-1) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.report-row__entry-main{gap:var(--spacing-2);grid-column:1;min-width:0;padding-left:4.25rem;display:flex}.report-row__entry-time{color:var(--color-text-muted);flex:none}.report-row__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}@media (width<=40rem){.report-breakdown{--report-cols:minmax(0, 1fr) 3.5rem 4rem}.report-row__client{display:none}.report-row__logged,.report-row__child-logged,.report-row__entry-duration{grid-column:2}.report-row__amount,.report-row__child-amount,.report-row__entry-billable{grid-column:3}.report-row__project{padding-left:.75rem}.report-row__child-label{padding-left:1.5rem}.report-row__child-label:before{left:.75rem}.report-row__entry-main{padding-left:2.25rem}.report-row__entry-time{display:none}}.report-entries__total{color:var(--color-text-muted)}.report-entries__load-more{margin-top:var(--spacing-3)}.report-entries__row{cursor:pointer}.report-entries__row:hover,.report-entries__row:focus-visible,.report-row__entries li:hover,.report-row__entries li:focus-visible{background:var(--color-bg-elevated)}.report-customer__actions{align-items:center;gap:var(--spacing-3);display:flex}.report-customer__header{margin-bottom:var(--spacing-4)}.report-customer__header h2{font-size:var(--font-size-xl);margin:0}.report-customer__header p{margin:var(--spacing-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.report-customer__project{margin-top:var(--spacing-5);margin-bottom:var(--spacing-4);break-inside:avoid}.report-customer__project:first-of-type{margin-top:0}.report-customer__project h3{margin:0 0 var(--spacing-2);font-size:var(--font-size-lg);color:var(--color-accent)}.report-customer__table{border-collapse:collapse;table-layout:fixed;width:100%}.report-customer__table th,.report-customer__table td{padding:var(--spacing-2);border-bottom:1px solid var(--color-border);text-align:left;font-weight:400}.report-customer__table th:not(:first-child),.report-customer__table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;width:8rem}.report-customer__table thead th{padding-bottom:var(--spacing-1);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);font-size:.6875rem;font-weight:600}.report-customer__table tfoot th,.report-customer__table tfoot td{border-top:1px solid var(--color-border);font-weight:600}.report-customer--detailed .report-customer__task th,.report-customer--detailed .report-customer__task td{font-weight:600}.report-customer__entry td{color:var(--color-text-muted);font-size:var(--font-size-sm);border-bottom:none}.report-customer__entry td:first-child{padding-left:var(--spacing-4)}.report-customer__entry-time{font-variant-numeric:tabular-nums}.report-customer__grand-total{margin-top:var(--spacing-4)}.report-customer__grand-total tfoot th,.report-customer__grand-total tfoot td{border-top:2px solid var(--color-border);font-size:var(--font-size-lg);color:var(--color-accent)}.calendar__entry-duration,.calendar__hover-indicator-label,.calendar__drag-readout-start,.calendar__drag-readout-stop,.calendar__drag-readout-duration,.list-view__cell--billable,.list-view__cell--start,.list-view__cell--stop,.list-view__cell--duration,.list-view__day-total,.timesheet__cell,.timesheet__cell-button,.timesheet__cell-input,.report-row__logged,.report-row__amount,.report-row__child-logged,.report-row__child-amount,.report-row__entry-time,.report-row__entry-duration,.report-entries__total{font-variant-numeric:tabular-nums}@media print{.app-nav,.app-timer-bar,.skip-link,.flash,.report-customer__controls{display:none}.app-shell,.app-main-column{display:block}.app-main{padding:0}body{color:#000;background:#fff}}
