:root{--bg: #f7f5f2;--surface: #fffefc;--surface-sunken: #fbf9f6;--surface-header: #faf8f5;--ink: #191714;--ink-2: #54504a;--muted: #8d877e;--muted-2: #a09890;--faint: #b3aca2;--line: #e6e1d9;--line-2: #efeae2;--line-2b: #f0ece5;--line-3: #f4f0ea;--accent: #b8502f;--accent-hover: #a34526;--accent-ink: #8f3c22;--accent-tint: #fdf3ef;--accent-tint-2: #fdf9f6;--accent-line: #eccfc2;--focus-bg: #191714;--focus-track: #2a2724;--focus-line: #35322e;--focus-muted: #6f6a63;--nav-active: #f2ede6;--toast-bad: #8f2f1c;--shadow-timer: 0 12px 30px rgba(25, 23, 20, .13);--shadow-toast: 0 10px 26px rgba(25, 23, 20, .18);--font: "Helvetica Neue", Helvetica, Arial, sans-serif;font-family:var(--font);color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg)}body{min-height:100vh;font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}input,select,textarea,button{font-family:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-ink)}::selection{background:#f0dcd2}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tnum{font-variant-numeric:tabular-nums}.app-shell{min-height:100vh;display:flex;background:var(--bg)}.sidebar{width:248px;flex:0 0 248px;border-right:1px solid var(--line);background:var(--surface);padding:34px 22px 26px;display:flex;flex-direction:column;gap:34px;position:sticky;top:0;height:100vh}.brand{display:flex;flex-direction:column;gap:6px}.wordmark{display:inline-flex;align-items:baseline;font-size:20px;font-weight:600;letter-spacing:-.045em;line-height:1}.wordmark--lg{font-size:26px}.wordmark--on-dark{color:#fff}.wordmark-dot{width:.36em;height:.36em;margin-left:.04em;background:var(--accent);border-radius:50%;flex:0 0 auto;transform-origin:center}.wordmark-dot.is-running{animation:wordmark-pulse 1.6s ease-in-out infinite}@keyframes wordmark-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.22);opacity:.45}}@media (prefers-reduced-motion: reduce){.wordmark-dot.is-running{animation:none}}.brand-sub{font-size:12px;color:var(--muted);letter-spacing:.01em}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:none;border:none;border-radius:8px;padding:10px 12px;font-size:14px;cursor:pointer;text-align:left;color:var(--ink-2);font-weight:400;transition:background-color .12s ease-out,color .12s ease-out}.nav-item:hover{background:var(--bg)}.nav-item.is-active{background:var(--nav-active);color:var(--ink);font-weight:600}.nav-badge{font-size:11px;color:var(--accent);background:var(--accent-tint);border-radius:20px;padding:1px 7px;font-variant-numeric:tabular-nums}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:14px}.running-card{text-align:left;background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:10px;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:3px}.running-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.running-card-time{font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.user-block{border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.user-link{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:none;border:none;padding:0;text-align:left;cursor:pointer;min-width:0}.user-link:hover .user-name,.user-link:hover .user-role{color:var(--ink)}.user-name{font-size:13px}.user-role{font-size:11px;color:var(--muted)}.app-main{flex:1;min-width:0}.page{padding:56px 56px 80px;display:flex;flex-direction:column;gap:30px}.page--timer{max-width:1080px;gap:52px}.page--wide{max-width:1100px}.page--week{max-width:none}.page--invoices{max-width:1040px;gap:34px}.page--profile{max-width:520px}.page--gap-34{gap:34px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-head--stack{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.head-titles{display:flex;flex-direction:column;gap:8px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.page-title{margin:0;font-size:30px;letter-spacing:-.03em;font-weight:500}.page-title--timer{font-size:34px}.label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px}.field-hint{margin:0;font-size:11.5px;color:var(--muted)}.error-text{font-size:12px;color:var(--accent)}.block-title{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}.card-title{font-size:14px;font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:16px}.split-layout{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:start}.profile-rows{display:flex;flex-direction:column;gap:12px}.profile-row{display:flex;flex-direction:column;gap:3px}.card--danger{border-color:var(--accent-line)}.more-links{display:none}.input,.select{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:11px 13px;font-size:14px;color:var(--ink);width:100%;transition:border-color .12s ease-out}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;text-align:left;font-family:inherit;font-weight:400;line-height:normal;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% + 1px),calc(100% - 11px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}.select-wrap{position:relative}.select-wrap .select{display:block}.select-wrap.is-open .select{border-color:var(--ink)}.select:disabled{cursor:not-allowed;color:var(--muted-2);background-color:var(--surface-sunken)}.select-value,.select-option{display:flex;align-items:center;gap:9px;min-width:0}.select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-hint{margin-left:auto;padding-left:10px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.select-dot{width:9px;height:9px;border-radius:3px;flex:0 0 auto}.select-list{position:absolute;z-index:45;top:calc(100% + 6px);left:0;right:0;margin:0;padding:5px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-toast);max-height:268px;overflow-y:auto}.select-option{position:relative;padding:9px 30px 9px 11px;border-radius:7px;font-size:14px;color:var(--ink-2);cursor:pointer}.select-option.is-active{background:var(--nav-active);color:var(--ink)}.select-option.is-selected{color:var(--ink);font-weight:500}.select-option.is-selected:after{content:"✓";position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--accent)}.date-wrap{position:relative}.date-trigger{display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left;font-family:inherit;font-weight:400;line-height:normal;min-width:148px}.date-trigger.is-empty .date-text{color:var(--muted-2)}.date-trigger .date-icon{margin-left:auto;flex:0 0 auto;color:var(--muted)}.date-wrap.is-open .date-trigger{border-color:var(--ink)}.date-pop{position:absolute;z-index:45;top:calc(100% + 6px);left:0;width:304px;max-width:calc(100vw - 24px);padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-toast)}.date-pop.is-right{left:auto;right:0}.date-pop.is-up{top:auto;bottom:calc(100% + 6px)}.calendar-head{position:relative;z-index:2;display:flex;align-items:center;gap:6px;margin-bottom:12px}.calendar-month-select{flex:1;min-width:0}.calendar-year-select{flex:0 0 92px;width:92px}.calendar-nav{flex:0 0 auto;width:28px;padding:3px 0;line-height:1.4;text-align:center;font-size:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-weekday{padding-bottom:6px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center}.calendar-day{height:32px;padding:0;background:none;border:1px solid transparent;border-radius:7px;font-family:inherit;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .12s ease-out,color .12s ease-out,border-color .12s ease-out}.calendar-day:hover:not(.is-selected){background:var(--nav-active);color:var(--ink)}.calendar-day.is-outside{color:var(--faint)}.calendar-day:focus-visible{outline:2px solid var(--ink);outline-offset:0}.calendar-day.is-today{border-color:var(--accent);color:var(--ink);font-weight:600}.calendar-day.is-selected{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.calendar-day.is-selected.is-today{border-color:var(--accent)}.date-time-row,.date-pop-foot{display:flex;align-items:center;gap:7px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}.date-time-row{position:relative;z-index:2}.date-time-row .label{margin-right:auto}.date-pop-foot{justify-content:space-between}.time-select{width:72px;flex:0 0 72px}.time-select .select,.calendar-head .select{min-width:0;width:100%;padding:7px 28px 7px 10px}.time-select .select{text-align:center;font-variant-numeric:tabular-nums}.time-select .select-value{justify-content:center}.time-select .select-list,.calendar-head .select-list{max-height:196px}.calendar-month-select .select-list{min-width:148px}.select-wrap.is-drop-up .select-list{top:auto;bottom:calc(100% + 6px)}.time-sep{color:var(--muted);font-variant-numeric:tabular-nums}.input--sunken,.select--sunken{background-color:var(--surface-sunken)}.input--sm,.select--sm{padding:9px 12px;font-size:13px;border-radius:9px}.select--sm{min-width:170px}.input--xs{padding:8px 10px;font-size:12px;border-radius:8px;width:auto}.input:hover,.select:hover{border-color:#d8d2c9}.btn{border:1px solid transparent;border-radius:9px;padding:11px 20px;font-size:14px;cursor:pointer;transition:background-color .12s ease-out,border-color .12s ease-out,color .12s ease-out}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--dark{background:var(--ink);color:var(--bg)}.btn--dark:hover:not(:disabled){background:var(--focus-line)}.btn--danger-solid{background:var(--accent-ink);color:#fff}.btn--danger-solid:hover:not(:disabled){background:#7c3319}.btn--ghost{background:none;border-color:var(--line);color:var(--ink-2)}.btn--ghost:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.btn--sm{padding:10px 16px;font-size:13px}.btn--xs{padding:5px 10px;font-size:12px;border-radius:7px;background:none;border:1px solid var(--line);color:var(--ink-2);cursor:pointer;transition:border-color .12s ease-out,color .12s ease-out}.btn--xs:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.btn--xs.btn--danger{color:var(--muted)}.btn--xs.btn--danger:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{background:#eae5dd;color:var(--muted-2);border-color:transparent;cursor:not-allowed}.btn--link{align-self:flex-start;background:none;border:none;padding:0;font-size:13px;color:var(--accent);cursor:pointer}.btn--link:hover{color:var(--accent-ink)}.btn--underline{align-self:flex-start;background:none;border:none;padding:0;font-size:12.5px;color:var(--muted);cursor:pointer;text-decoration:underline}.btn--underline:hover{color:var(--ink)}.btn--square{background:var(--surface);border:1px solid var(--line);border-radius:8px;width:36px;height:36px;font-size:14px;cursor:pointer;color:var(--ink-2);padding:0}.btn--square:hover{border-color:var(--ink);color:var(--ink)}.btn-row{display:flex;align-items:center;gap:10px}.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.metric-row{display:flex;gap:40px}.metric{display:flex;flex-direction:column;gap:4px}.metric--right{text-align:right;gap:3px}.metric-value{font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.metric-value--22{font-size:22px}.metric-value--19{font-size:19px}.metric-value--15{font-size:15px}.metric-value--30{font-size:30px;letter-spacing:-.03em}.is-accent{color:var(--accent)}.totals-bar{display:flex;gap:40px;padding:18px 22px;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}.stat-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:10px}.table{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.table-head,.table-row{display:grid;gap:16px;align-items:center}.table-head{padding:13px 22px;border-bottom:1px solid var(--line);background:var(--surface-header);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);white-space:nowrap}.table-row{padding:15px 22px;border-bottom:1px solid var(--line-3);font-size:13.5px}.table-row:last-child{border-bottom:none}.table--plain{display:flex;flex-direction:column}.table--plain .table-head{padding:0 4px 11px;background:none;border-bottom:1px solid var(--line)}.table--plain .table-row{padding:16px 4px;border-bottom:1px solid var(--line-2b);font-size:14px}.cell-stack{display:flex;flex-direction:column;gap:2px;min-width:0}.cell-sub{font-size:11.5px;color:var(--muted)}.cell-muted{color:var(--ink-2)}.cell-notes{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-actions{display:flex;gap:6px;justify-content:flex-end}.chip{display:inline-block;font-size:11.5px;padding:3px 9px;border-radius:20px;border:1px solid var(--accent-line);background:var(--accent-tint);color:var(--accent);white-space:nowrap}.chip--invoiced{border-color:#e0dbd3;background:#f5f2ed;color:#78736c}.empty-state{padding:54px 22px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.empty-state-title{font-size:15px}.empty-state-text{font-size:13px;color:var(--muted);max-width:320px}.timer-hero{display:flex;align-items:center;gap:64px;padding:8px 0 4px;flex-wrap:wrap}.dial{position:relative;width:320px;height:320px;flex:0 0 320px;display:grid;place-items:center}.dial-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(var(--project-color, var(--accent)) var(--dial-deg, 0deg),var(--line-2b) 0deg)}.dial-face{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border-radius:50%;background:var(--surface);border:1px solid var(--line-2)}.dial-button{position:relative;width:164px;height:164px;border-radius:50%;border:none;cursor:pointer;background:var(--project-color, var(--accent));color:#fff;display:grid;place-items:center;font-size:30px;padding-left:6px;box-shadow:var(--shadow-timer);transition:background-color .12s ease-out,filter .12s ease-out}.dial-button:hover:not(:disabled){background:color-mix(in srgb,var(--project-color, var(--accent)) 86%,#000)}.dial-button.is-running{font-size:26px;padding-left:0}.dial-button.is-running:hover:not(:disabled){background:color-mix(in srgb,var(--project-color, var(--accent)) 78%,#000)}.dial-button:disabled{background:var(--line);color:var(--muted-2);cursor:not-allowed;box-shadow:none}.timer-side{display:flex;flex-direction:column;gap:22px;min-width:0;flex:1}.timer-readout{font-size:64px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.045em;font-weight:400}.timer-project{display:flex;flex-direction:column;gap:7px;max-width:380px}.timer-project .select{padding:12px 34px 12px 14px;font-size:15px}.timer-meta{font-size:12px;color:var(--muted)}.timer-lower{border-top:1px solid var(--line);padding-top:34px;display:grid;grid-template-columns:1.1fr 1fr;gap:56px}.stack-18{display:flex;flex-direction:column;gap:18px}.stack-16{display:flex;flex-direction:column;gap:16px}.stack-14{display:flex;flex-direction:column;gap:14px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.span-2{grid-column:1 / -1}.recent-list{display:flex;flex-direction:column}.recent-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line-2)}.recent-main{display:flex;flex-direction:column;gap:3px;min-width:0}.recent-project{font-size:14px}.recent-meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-values{display:flex;align-items:baseline;gap:16px;flex:0 0 auto}.recent-dur{font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.recent-earn{font-size:14px;font-variant-numeric:tabular-nums}.focus{min-height:100vh;background:var(--focus-bg);color:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;padding:60px;animation:focus-in .18s ease-out}@keyframes focus-in{0%{opacity:0}to{opacity:1}}.focus-head{display:flex;flex-direction:column;align-items:center;gap:28px}.focus-titles{display:flex;flex-direction:column;align-items:center;gap:6px}.focus-project{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted-2)}.focus-client{font-size:13px;color:var(--focus-muted)}.focus-dial{position:relative;width:420px;height:420px;display:grid;place-items:center}.focus-dial .dial-track{background:conic-gradient(var(--project-color, var(--accent)) var(--dial-deg, 0deg),var(--focus-track) 0deg)}.focus-dial-face{position:absolute;top:26px;right:26px;bottom:26px;left:26px;border-radius:50%;background:var(--focus-bg)}.focus-center{position:relative;text-align:center}.focus-time{font-size:92px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-weight:400}.focus-sub{font-size:14px;color:var(--muted-2);margin-top:12px;font-variant-numeric:tabular-nums}.focus-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.btn--pill{background:var(--project-color, var(--accent));color:#fff;border:none;border-radius:999px;padding:15px 34px;font-size:15px;cursor:pointer;letter-spacing:.01em;transition:background-color .12s ease-out}.btn--pill:hover{background:color-mix(in srgb,var(--project-color, var(--accent)) 86%,#000)}.btn--pill-ghost{background:none;color:var(--muted-2);border:1px solid var(--focus-line);border-radius:999px;padding:15px 24px;font-size:15px;cursor:pointer;transition:color .12s ease-out,border-color .12s ease-out}.btn--pill-ghost:hover{color:var(--bg);border-color:var(--focus-muted)}.week-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.week-nav{display:flex;align-items:center;gap:6px}.week-nav .btn{padding:8px 14px;font-size:13px}.week-stage{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:start}.week-grid{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;min-width:0}.week-head,.week-body{display:grid;grid-template-columns:62px repeat(7,1fr)}.week-head{border-bottom:1px solid var(--line)}.week-day-head{padding:14px 12px;border-left:1px solid var(--line-2);display:flex;flex-direction:column;gap:2px}.week-day-name{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.week-day-num{font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.week-day-total{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.week-day-head.is-today .week-day-name,.week-day-head.is-today .week-day-num{color:var(--accent)}.week-hours{display:flex;flex-direction:column}.week-hour{height:46px;padding-right:10px;text-align:right;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;transform:translateY(-6px)}.week-col{position:relative;border-left:1px solid var(--line-2)}.week-col.is-today{background:#fdfbf8}.week-slot{height:46px;border-bottom:1px solid var(--line-3)}.week-block{position:absolute;left:5px;right:5px;background:var(--block-color, var(--accent));color:#fff;border:none;border-radius:7px;padding:6px 8px;display:flex;flex-direction:column;gap:2px;overflow:hidden;text-align:left;cursor:pointer;font:inherit;box-shadow:none;transition:box-shadow .12s ease-out,outline-color .12s ease-out}.week-block.is-invoiced{background:#fff;color:var(--muted);border:1px solid var(--block-color, var(--accent));box-shadow:none}.week-block.is-invoiced .week-block-project{font-weight:500;color:var(--muted)}.week-block.is-invoiced .week-block-time{opacity:1;color:var(--faint)}.week-block-tag{display:inline-block;align-self:flex-start;margin-top:2px;font-size:9px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;line-height:1.3;white-space:nowrap}.week-block.is-invoiced .week-block-tag{border-color:color-mix(in srgb,var(--block-color, var(--accent)) 35%,var(--line));color:var(--muted)}.week-block.is-selected{outline:2px solid var(--ink);outline-offset:1px;z-index:2}.week-block-project{font-size:11px;font-weight:600;line-height:1.25;overflow:hidden}.week-block-time{font-size:10px;opacity:.75;font-variant-numeric:tabular-nums}.week-detail{display:flex;flex-direction:column;gap:16px;padding:18px 18px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;position:sticky;top:24px;min-height:180px}.week-detail.is-open{border-color:var(--line)}.week-detail-main{display:flex;align-items:flex-start;gap:12px;min-width:0}.week-detail-swatch{width:12px;height:12px;border-radius:3px;margin-top:4px;flex:0 0 auto}.week-detail-text{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:13px;color:var(--ink-2);line-height:1.35}.week-detail-text strong{color:var(--ink);font-size:15px;font-weight:600}.week-detail-notes{color:var(--muted);font-size:12.5px}.week-detail-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto}.week-detail-actions .btn{width:100%;justify-content:center}.week-detail-empty{display:flex;flex-direction:column;gap:10px}.week-detail-empty p{margin:0;font-size:13px;color:var(--muted);line-height:1.45}.week-legend{display:flex;gap:22px;font-size:12px;color:var(--muted);align-items:center;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:7px}.legend-swatch{width:10px;height:10px;border-radius:3px;background:var(--accent)}.legend-swatch--invoiced{background:#fff;border:1px solid var(--muted-2);box-shadow:none}.color-picker{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{width:28px;height:28px;border-radius:8px;border:1px solid transparent;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px #19171414}.color-swatch.is-selected{outline:2px solid var(--ink);outline-offset:2px}.project-name-cell{display:flex;align-items:center;gap:10px;min-width:0}.project-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.bars{display:flex;flex-direction:column;gap:20px}.bar-item{display:flex;flex-direction:column;gap:8px}.bar-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:13.5px}.bar-values{display:flex;gap:20px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.bar-earn{color:var(--ink)}.bar-track{height:8px;background:var(--line-2b);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:var(--accent);border-radius:4px}.edit-panel{background:var(--accent-tint-2);border:1px solid var(--accent-line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:16px}.client-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.client-main{display:flex;flex-direction:column;gap:5px;min-width:0}.client-name{font-size:16px;letter-spacing:-.01em}.client-meta{font-size:12.5px;color:var(--muted)}.client-side{display:flex;align-items:center;gap:26px;flex:0 0 auto}.wizard{background:var(--surface);border:1px solid var(--line);border-radius:14px}.wizard-step:first-child{border-top-left-radius:13px}.wizard-step:last-child{border-top-right-radius:13px}.wizard-foot{border-bottom-left-radius:13px;border-bottom-right-radius:13px}.wizard-steps{display:flex;border-bottom:1px solid var(--line)}.wizard-step{flex:1;display:flex;align-items:center;gap:9px;padding:15px 20px;background:var(--surface-header);color:var(--muted-2)}.wizard-step:not(:last-child){border-right:1px solid var(--line)}.wizard-step.is-active{background:var(--surface);color:var(--ink)}.wizard-step.is-past{background:var(--surface-header);color:var(--ink-2)}.wizard-step-num{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:#eae5dd;color:var(--muted);flex:0 0 21px}.wizard-step.is-active .wizard-step-num{background:var(--accent);color:#fff}.wizard-step.is-past .wizard-step-num{background:var(--ink);color:#fff}.wizard-step-label{font-size:13px}.wizard-body{padding:30px 26px}.wizard-question{font-size:15px}.wizard-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 26px;border-top:1px solid var(--line);background:var(--surface-header)}.wizard-foot-right{display:flex;align-items:center;gap:16px}.wizard-hint{font-size:12.5px;color:var(--muted)}.is-hidden{visibility:hidden}.pick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pick-card{display:flex;flex-direction:column;gap:6px;align-items:flex-start;background:var(--surface-sunken);border:1px solid var(--line);border-radius:11px;padding:17px;cursor:pointer;text-align:left;transition:background-color .12s ease-out,border-color .12s ease-out}.pick-card:hover{background:var(--accent-tint-2)}.pick-card.is-selected{background:var(--accent-tint);border-color:var(--accent)}.pick-card-name{font-size:15px}.pick-card-meta{font-size:12px;color:var(--muted)}.pick-card-pending{font-size:13px;color:var(--accent);font-variant-numeric:tabular-nums}.check-row{display:flex;align-items:center;gap:12px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:10px;padding:13px 15px;cursor:pointer;width:100%;transition:background-color .12s ease-out,border-color .12s ease-out}.check-row.is-on{background:var(--accent-tint-2);border-color:var(--accent-line)}.check-box{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;font-size:11px;color:#fff;background:#fff;border:1px solid #d8d2c9;flex:0 0 18px}.check-row.is-on .check-box{background:var(--accent);border-color:var(--accent)}.check-name{font-size:14px;flex:1;text-align:left;display:flex;flex-direction:column;gap:2px;min-width:0}.check-name .cell-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-hours{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.check-total{font-size:13px;font-variant-numeric:tabular-nums}.session-picker{display:flex;flex-direction:column;gap:0}.disclosure{display:flex;align-items:center;gap:12px;width:100%;background:var(--surface-sunken);border:1px solid var(--line);border-radius:10px;padding:13px 15px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);transition:border-color .12s ease-out}.disclosure.is-open{border-color:var(--ink);border-radius:10px 10px 0 0}.disclosure-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.disclosure-title{font-size:14px;font-weight:600}.disclosure-meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.disclosure-chevron{color:var(--muted);font-size:12px;flex:0 0 auto}.disclosure-panel{border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;padding:12px 12px 14px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}.disclosure-toolbar{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.session-check-list{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}.check-row--session{align-items:flex-start}.check-row--session .check-box{margin-top:1px}.check-row--session .check-hours,.check-row--session .check-total{align-self:center}.lines-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}.lines-head,.lines-row{display:grid;grid-template-columns:1.6fr .7fr .7fr .8fr;gap:14px;align-items:center}.lines-head{padding:12px 18px;background:var(--surface-header);border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.lines-row{padding:14px 18px;border-bottom:1px solid var(--line-3);font-size:13.5px}.align-right{text-align:right}.lines-total{display:flex;justify-content:space-between;padding:16px 18px;font-size:15px}.done-head{display:flex;align-items:center;gap:10px}.done-check{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;flex:0 0 22px}.done-title{font-size:16px}.done-card{background:var(--surface-sunken);border:1px solid var(--line);border-radius:11px;padding:24px;display:flex;flex-direction:column;gap:8px;min-width:340px}.done-meta{font-size:13px;color:var(--muted)}.done-total{font-size:28px;font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin-top:6px}.wizard-done{display:flex;flex-direction:column;gap:22px;align-items:flex-start}.auth{min-height:100vh;display:grid;place-items:center;padding:60px}.auth-panel{width:420px;max-width:100%;display:flex;flex-direction:column;gap:26px}.auth-brand{display:flex;flex-direction:column;gap:10px}.auth-sub{font-size:14px;color:var(--muted)}.google-button{min-height:44px;display:flex;justify-content:center}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:10px;padding:4px}.auth-tab{background:none;border:none;border-radius:8px;padding:9px 12px;font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer}.auth-tab.is-active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #1917140f}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form .btn{margin-top:4px}.auth-note{font-size:12px;color:var(--muted)}.toast{position:fixed;top:26px;right:26px;z-index:50;background:var(--ink);color:#fff;padding:13px 18px;border-radius:10px;font-size:13.5px;box-shadow:var(--shadow-toast);max-width:min(90vw,360px);animation:toast-in .16s ease-out}.toast--bad{background:var(--toast-bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.page-note{padding:56px;font-size:13px;color:var(--muted)}.banner-error{background:var(--accent-tint);border:1px solid var(--accent-line);color:var(--accent-ink);border-radius:10px;padding:12px 16px;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#1917146b;display:grid;place-items:center;padding:24px}.modal{width:min(480px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px 26px 22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-toast);animation:modal-in .14s ease-out}.modal--confirm{width:min(400px,100%)}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.modal-title{margin:0;font-size:22px;letter-spacing:-.02em;line-height:1.2}.modal-copy{margin:0;font-size:14px;color:var(--ink-2);line-height:1.45}.overlap-list{list-style:none;margin:4px 0 8px;padding:0;display:flex;flex-direction:column;gap:10px}.overlap-list li{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--surface-sunken);border:1px solid var(--line-2);border-radius:10px;font-size:13px;color:var(--ink-2)}.overlap-list strong{color:var(--ink);font-weight:600}.modal-actions{justify-content:flex-end;margin-top:6px}.bottom-nav{display:none}@media (max-width: 1199px){.page{padding:40px 32px 72px}.page-head{flex-direction:column;align-items:flex-start;gap:20px}.page-head .filters,.page-head .metric-row{width:100%}.sidebar{width:200px;flex:0 0 200px;padding:28px 16px 22px}.split-layout{grid-template-columns:1fr;gap:30px}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.timer-lower{grid-template-columns:1fr;gap:40px}.timer-hero{gap:40px}.pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-stage{grid-template-columns:1fr}.week-detail{position:static;min-height:0}.week-detail-actions{flex-direction:row}.week-detail-actions .btn{width:auto}}@media (max-width: 900px){.table,.table--plain{background:none;border:none;border-radius:0;overflow:visible;display:flex;flex-direction:column;gap:10px}.table-head,.table--plain .table-head{display:none}.table-row,.table--plain .table-row{grid-template-columns:1fr auto!important;row-gap:6px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.table-row .cell-actions{grid-column:1 / -1;justify-content:flex-start;margin-top:4px}.cell-notes{white-space:normal}.week-head,.week-body{grid-template-columns:48px repeat(7,minmax(96px,1fr));min-width:720px}.week-grid{overflow-x:auto}}@media (max-width: 767px){.sidebar{display:none}.page{padding:28px 18px 96px}.page-head{flex-direction:column;align-items:flex-start;gap:18px}.metric-row{gap:24px;flex-wrap:wrap}.page--timer .page-head,.page--timer .head-titles,.page--timer .metric{align-items:center;text-align:center}.page--timer .metric-row{justify-content:center}.timer-hero{flex-direction:column;align-items:center;text-align:center}.dial{width:260px;height:260px;flex:0 0 260px}.dial-button{width:132px;height:132px}.timer-side{align-items:center}.timer-project{width:100%}.focus-dial{width:300px;height:300px}.focus-time{font-size:60px}.stat-cards,.pick-grid,.form-grid-2,.form-grid-3{grid-template-columns:1fr}.lines-head{display:none}.lines-row{grid-template-columns:1fr auto;row-gap:4px}.done-card{min-width:0;width:100%}.client-card{flex-wrap:wrap}.client-side{width:100%;justify-content:space-between;gap:14px}.check-row--session{flex-wrap:wrap}.check-row--session .check-hours,.check-row--session .check-total{margin-left:30px}.more-links{display:flex;gap:4px;padding:16px 18px 0;overflow-x:auto}.more-link{background:none;border:none;border-radius:8px;padding:8px 10px;font-size:13px;color:var(--ink-2);cursor:pointer;white-space:nowrap}.more-link.is-active{color:var(--accent);font-weight:600}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.bottom-nav-item{flex:1;min-height:44px;background:none;border:none;border-radius:8px;font-size:11px;color:var(--ink-2);cursor:pointer;padding:6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottom-nav-item.is-active{color:var(--accent);font-weight:600}.bottom-nav-badge{font-size:10px;color:var(--accent);background:var(--accent-tint);border-radius:20px;padding:0 5px;font-variant-numeric:tabular-nums}.toast{top:14px;right:14px;left:14px;max-width:none}}
