:root{--bg: #f5f5f7;--surface: #ffffff;--fill: #f0f0f2;--fill-2: #e8e8ed;--line: #e5e5ea;--ink: #1d1d1f;--ink-2: #6e6e73;--ink-3: #a1a1a6;--accent: #1d1d1f;--accent-ink: #ffffff;--live: #1f7a4d;--live-fill: #e8f3ec;--warn: #8a5a12;--warn-fill: #fbf2e2;--err: #a8302a;--err-fill: #fbeceb;--r-s: 8px;--r-m: 12px;--r-l: 18px;--r-pill: 999px;--shadow-pop: 0 10px 30px rgba(0, 0, 0, .16);--f: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--f-num: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--sidebar-w: 240px;--sa-t: env(safe-area-inset-top, 0px);--sa-r: env(safe-area-inset-right, 0px);--sa-b: env(safe-area-inset-bottom, 0px);--sa-l: env(safe-area-inset-left, 0px);--field-fs: 15px}@media(pointer:coarse){:root{--field-fs: 16px}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--f);-webkit-font-smoothing:antialiased;text-wrap:pretty;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body.scroll-locked{overflow:hidden}button{font-family:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}input,select,textarea{font-family:inherit;color:var(--ink)}a{color:var(--ink);text-decoration:none}a:hover{color:var(--ink-2)}h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em}.num{font-family:var(--f-num)}.muted{color:var(--ink-2);font-size:13px}.hint{color:var(--ink-3);font-size:12px}.shell{display:flex;min-height:100vh;min-height:100dvh;align-items:stretch}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--surface);padding:16px 12px;display:flex;flex-direction:column;gap:18px}.brand-logo{display:block;aspect-ratio:312 / 78;background-color:currentColor;-webkit-mask:url(/logo.png) no-repeat center / contain;mask:url(/logo.png) no-repeat center / contain}.sidebar-logo{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:4px 8px}.sidebar-logo .brand-logo{width:104px;color:var(--ink)}.sidebar-logo .sidebar-title{color:var(--ink-2);font-weight:500}.sidebar-title{font-size:14px;font-weight:600;letter-spacing:-.01em}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border-radius:var(--r-s);padding:9px 10px;font-size:14px;background:transparent;color:var(--ink-2);width:100%}.nav-item:hover{color:var(--ink)}.nav-item.active{background:var(--fill);color:var(--ink);font-weight:500}.dot-live{width:7px;height:7px;border-radius:var(--r-pill);background:var(--live);flex:none}.sidebar-spacer{flex:1}.sidebar-foot{display:flex;flex-direction:column;gap:8px}.user-chip{display:flex;align-items:center;gap:10px;padding:8px;background:var(--fill);border-radius:var(--r-s)}.avatar{width:30px;height:30px;border-radius:var(--r-s);background:var(--fill-2);flex:none}.avatar-lg{width:44px;height:44px;border-radius:var(--r-m);background:var(--fill-2);flex:none}.user-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--ink-3)}.link-button{background:transparent;color:var(--ink-3);font-size:12px;text-align:left;padding:0 8px}.link-button:hover{color:var(--ink)}.main{flex:1;min-width:0;padding:24px calc(28px + var(--sa-r)) calc(56px + var(--sa-b)) calc(28px + var(--sa-l))}.topbar,.nav-backdrop{display:none}.page{margin:0 auto;display:flex;flex-direction:column;gap:16px}.page-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.spacer{flex:1}.card{background:var(--surface);border-radius:var(--r-l);padding:16px}.segmented{display:flex;flex-wrap:wrap;gap:2px;padding:2px;background:var(--fill);border-radius:var(--r-s)}.segmented button{border-radius:6px;padding:8px 12px;font-size:13px;background:transparent;color:var(--ink-2)}.segmented button.active{background:var(--surface);color:var(--ink)}.range-chip{display:flex;align-items:center;gap:8px;background:var(--surface);border-radius:var(--r-s);padding:9px 12px;font-family:var(--f-num);font-size:13px;white-space:nowrap}.btn{height:40px;border-radius:var(--r-s);padding:0 16px;font-size:14px;background:var(--fill-2);color:var(--ink)}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-sm{height:auto;padding:7px 11px;font-size:13px;background:var(--fill);border-radius:var(--r-s)}.btn-danger{color:var(--err)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{background:var(--surface);border-radius:var(--r-l);padding:16px}.stat-label{font-size:12px;color:var(--ink-2)}.stat-value{font-family:var(--f-num);font-size:28px;font-weight:500;letter-spacing:-.02em;margin-top:6px}.stat-value.compact{font-size:26px}.banner{border-radius:var(--r-m);padding:12px 14px;font-size:13px;line-height:1.45}.banner-warn{background:var(--warn-fill);color:var(--warn)}.banner-action{display:flex;align-items:center;gap:12px}.banner-action span{flex:1;min-width:0}.banner-action .btn-sm{flex:none;background:#0000000f;color:inherit}.banner-action .btn-sm.btn-accent{background:var(--accent);color:var(--accent-ink)}.resume-banner{flex-wrap:wrap}.banner-err{background:var(--err-fill);color:var(--err)}.banner-live{background:var(--live-fill);color:var(--live)}.pill{display:inline-block;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;white-space:nowrap}.pill-live{background:var(--live-fill);color:var(--live)}.pill-muted{background:var(--fill-2);color:var(--ink-2)}.table-wrap{background:var(--surface);border-radius:var(--r-l);overflow-x:auto;-webkit-overflow-scrolling:touch}.table-pad{padding:8px 16px 16px}table{width:100%;border-collapse:collapse;min-width:var(--table-min, 0)}thead tr{font-size:12px;color:var(--ink-3);white-space:nowrap;text-align:left}thead th{font-weight:400;padding:12px}tbody tr{font-size:14px}tbody td{padding:11px 12px;border-top:1px solid var(--line)}.col-first{padding-left:0!important}.col-last{padding-right:0!important;text-align:right}td.td-actions>.row{gap:6px;justify-content:flex-end;flex-wrap:nowrap}.nowrap{white-space:nowrap}.row-warn{background:var(--warn-fill)}.row-selectable{cursor:pointer}.row-selected{background:var(--fill)}.row-group td{padding-top:18px!important;font-size:13px;font-weight:600;color:var(--ink-2);border-top:0}.row-group:first-child td{padding-top:6px!important}.team-filter{height:40px;background:var(--fill);border:0;border-radius:var(--r-s);padding:0 12px;font-size:14px;max-width:100%}.login-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(24px + var(--sa-t)) calc(24px + var(--sa-r)) calc(24px + var(--sa-b)) calc(24px + var(--sa-l))}.login-col{width:100%;max-width:380px}.login-brand{display:flex;flex-direction:column;gap:10px;align-items:center;margin-bottom:28px}.login-brand .brand-logo{width:156px;color:var(--ink);margin-bottom:4px}.login-title{font-size:20px;font-weight:600;letter-spacing:-.02em}.login-card{background:var(--surface);border-radius:var(--r-l);padding:20px;display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:12px;color:var(--ink-2)}.field input{height:44px;background:var(--fill);border-radius:var(--r-s);padding:0 12px;font-size:var(--field-fs);border:0;outline:none}.login-submit{height:46px;border-radius:var(--r-s);background:var(--accent);color:var(--accent-ink);font-size:15px;font-weight:500;margin-top:4px}.work-col{max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:12px;width:100%}.hud{border-radius:var(--r-l);padding:20px;background:var(--surface);color:var(--ink)}.hud.running{background:var(--accent);color:var(--accent-ink)}.hud-caption{display:flex;align-items:center;gap:8px;font-size:12px;opacity:.7}.hud-dot{width:7px;height:7px;border-radius:var(--r-pill);background:currentColor}.hud-title{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin-top:10px}.activity-list{display:flex;flex-direction:column;gap:8px}.activity{display:block;width:100%;text-align:left;border-radius:var(--r-m);padding:16px;min-height:76px;background:var(--surface);color:var(--ink)}.activity.active{background:var(--accent);color:var(--accent-ink)}.activity-row{display:flex;align-items:center;gap:12px}.activity-name{font-size:17px;font-weight:500;letter-spacing:-.01em}.activity-sub{font-size:13px;opacity:.65;margin-top:3px}.activity-badge{display:inline-block;background:#ffffff29;border-radius:var(--r-pill);padding:5px 11px;font-size:13px;flex:none}.other-row{display:flex;gap:8px;align-items:stretch}.other-input{flex:1;min-width:0;min-height:52px;border:0;border-radius:var(--r-m);background:var(--surface);padding:0 16px;font-size:16px;outline:none}.other-confirm{flex:none;width:56px;min-height:52px;border-radius:var(--r-m);background:var(--accent);color:var(--accent-ink);font-size:20px;line-height:1}.other-confirm:disabled{opacity:.5}.pause-button{width:100%;min-height:56px;border-radius:var(--r-m);font-size:16px;font-weight:500;background:var(--fill);color:var(--ink-3)}.pause-button.armed{background:var(--fill-2);color:var(--ink)}.pause-button.active{background:var(--accent);color:var(--accent-ink)}.pause-button-badge{display:inline-block;margin-left:10px;padding:4px 11px;border-radius:var(--r-pill);background:#ffffff29;font-size:13px;font-weight:400}.end-day{width:100%;min-height:48px;border-radius:var(--r-m);font-size:15px;background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}.end-day:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink-3)}.start-day{width:100%;min-height:48px;border-radius:var(--r-m);font-size:15px;font-weight:500;background:var(--accent);color:var(--accent-ink)}.start-day:disabled{opacity:.5}.app-download{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border-radius:var(--r-m);padding:14px;margin-top:4px}.app-download-title{font-size:15px;font-weight:500;margin-bottom:3px}.app-download .btn{flex:none;display:inline-flex;align-items:center}.record{background:var(--fill);border-radius:var(--r-m);padding:14px}.record-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.record-main{flex:1;min-width:140px}.record-name{font-size:15px;font-weight:500}.time-input{width:76px;height:40px;border:0;border-radius:var(--r-s);background:var(--surface);text-align:center;font-family:var(--f-num);font-size:var(--field-fs);outline:none}.day-nav{flex-wrap:nowrap}.day-nav .btn:disabled{opacity:.4}.date-input{height:40px;border:0;border-radius:var(--r-s);background:var(--surface);padding:0 10px;font-size:var(--field-fs);outline:none;min-width:0}.calendar-grid{background:var(--surface);border-radius:var(--r-l);padding:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.month-name{font-size:13px;font-weight:600;margin-bottom:8px}.month-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.day-cell{border-radius:4px;height:26px;padding:0;font-family:var(--f-num);font-size:11px;background:var(--fill);color:var(--ink)}.day-cell.empty{background:transparent;cursor:default}.day-cell.weekend{background:var(--fill-2);color:var(--ink-2)}.day-cell.holiday{background:var(--err-fill);color:var(--err)}.day-cell.moved_off{background:var(--warn-fill);color:var(--warn)}.day-cell.moved_work{background:var(--live-fill);color:var(--live)}.legend{display:flex;flex-wrap:wrap;gap:14px}.legend-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-2)}.legend-swatch{width:14px;height:14px;border-radius:4px}.bar-track{height:8px;background:var(--fill);border-radius:var(--r-s)}.bar-fill{height:8px;background:var(--accent);border-radius:var(--r-s)}.chat-list{display:flex;flex-direction:column;gap:10px}.bubble-row{display:flex}.bubble-row.me{justify-content:flex-end}.bubble{max-width:78%;border-radius:var(--r-l);padding:14px 16px;font-size:14px;line-height:1.5;white-space:pre-line;background:var(--surface);color:var(--ink)}.bubble.me{background:var(--accent);color:var(--accent-ink)}.chat-input-row{display:flex;gap:8px;position:sticky;bottom:0;padding-top:4px;padding-bottom:var(--sa-b);background:var(--bg)}.chat-input{flex:1;min-width:0;height:48px;border:0;border-radius:var(--r-m);background:var(--surface);padding:0 16px;font-size:var(--field-fs);outline:none}.chat-send{flex:none;height:48px;border-radius:var(--r-m);padding:0 20px;font-size:15px}.chip{background:var(--surface);border-radius:var(--r-pill);padding:9px 14px;font-size:13px;color:var(--ink-2)}.chip-active{background:var(--accent);color:var(--accent-ink)}.row-break td{color:var(--ink-3);font-style:italic}.record-break{background:transparent;border:1px dashed var(--line)}.record-break .record-name{color:var(--ink-3);font-weight:400;font-style:italic}.steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.5}.steps b{font-weight:500}.modal-backdrop{position:fixed;inset:0;background:#00000047;display:flex;align-items:flex-start;justify-content:center;padding:calc(24px + var(--sa-t)) calc(24px + var(--sa-r)) calc(24px + var(--sa-b)) calc(24px + var(--sa-l));overflow-y:auto;overscroll-behavior:contain;z-index:50}.modal{background:var(--surface);border-radius:var(--r-l);padding:20px;width:100%;max-width:460px;display:flex;flex-direction:column;gap:12px;margin:auto}.modal h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}.modal-head{display:flex;align-items:center;gap:12px}.modal-head h2{flex:1;min-width:0}.modal-close{flex:none;width:36px;height:36px;border-radius:var(--r-s);background:var(--fill);color:var(--ink-2);font-size:20px;line-height:1}.modal-close:hover{color:var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field select,.field input[type=date],.field input[type=number],.field input[type=text],.field input[type=password]{height:44px;background:var(--fill);border-radius:var(--r-s);padding:0 12px;font-size:var(--field-fs);border:0;outline:none;width:100%}.field-tile{background:var(--fill);border-radius:var(--r-m);padding:12px}.field-tile .label{font-size:12px;color:var(--ink-2)}.field-tile .value{font-size:15px;font-weight:500;margin-top:4px}.picker-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;background:var(--fill);border-radius:var(--r-s);padding:10px 12px;cursor:pointer;font-size:14px}.picker-row input[type=checkbox]{flex:none;width:18px;height:18px;accent-color:var(--accent)}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;align-items:start}.staff-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr);gap:16px;align-items:start}.staff-card{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto}.td-name{white-space:normal;min-width:180px}@media(max-width:1060px){.staff-layout{grid-template-columns:minmax(0,1fr)}.staff-card{position:static;max-height:none}}.stack{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.error-text{color:var(--err);font-size:13px}@media(max-width:860px){.shell{flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;min-height:56px;padding:calc(10px + var(--sa-t)) calc(14px + var(--sa-r)) 10px calc(14px + var(--sa-l));background:var(--surface);position:sticky;top:0;z-index:20}.topbar .sidebar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(300px,86vw);flex:none;z-index:40;overflow-y:auto;overscroll-behavior:contain;padding:calc(16px + var(--sa-t)) 12px calc(16px + var(--sa-b)) calc(12px + var(--sa-l));transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.open{transform:none;visibility:visible;transition:transform .2s ease}.nav-backdrop{display:block;position:fixed;inset:0;z-index:35;background:#00000047}.main{padding:16px calc(14px + var(--sa-r)) calc(48px + var(--sa-b)) calc(14px + var(--sa-l))}.burger{flex:none;background:var(--fill);border-radius:var(--r-s);padding:9px 12px;font-size:14px}}@media(max-width:860px)and (prefers-reduced-motion:reduce){.sidebar{transition:none}}@media(max-width:760px){.table-wrap{overflow-x:visible}.table-pad{padding:12px}.table-wrap table{min-width:0;display:block}.table-wrap thead{display:none}.table-wrap tbody{display:block}.table-wrap tbody tr{display:block;background:var(--fill);border-radius:var(--r-m);padding:12px}.table-wrap tbody tr+tr{margin-top:8px}.table-wrap tbody tr.row-warn{background:var(--warn-fill)}.table-wrap tbody tr.row-selected{background:var(--fill-2);box-shadow:inset 0 0 0 2px var(--accent)}.table-wrap tbody td,.table-wrap tbody td.col-first,.table-wrap tbody td.col-last{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:0;padding:3px 0!important;text-align:left;white-space:normal}.table-wrap tbody td[data-label]:before{content:attr(data-label);flex:none;font-size:12px;color:var(--ink-3)}.table-wrap tbody td.col-first{display:block;font-weight:500;padding-bottom:6px!important}.table-wrap tbody td.td-actions{padding-top:10px!important}.table-wrap tbody td.td-actions>.row{width:100%;flex-wrap:nowrap;justify-content:stretch}.table-wrap tbody td.td-actions .btn-sm{flex:1 1 auto;background:var(--surface)}.table-wrap tbody td.td-check{padding:6px 0!important}.table-wrap tbody tr.row-group{background:transparent;padding:14px 2px 2px}.table-wrap tbody tr.row-group td{font-weight:600}.table-wrap tbody tr.row-empty{background:transparent;padding:8px 0}}@media(min-width:561px)and (max-width:760px){.table-wrap tbody tr{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));column-gap:20px}.table-wrap tbody td.col-first,.table-wrap tbody td.td-actions{grid-column:1 / -1}}@media(max-width:640px){h1{font-size:20px}.page{gap:12px}.page-head>.spacer{display:none}.page-head>h1,.page-head>.page-title{flex:1 1 100%}.page-head>.btn,.page-head>select.btn,.page-head>.row{flex:1 1 140px;min-width:0}.segmented{width:100%}.segmented button{flex:1 1 auto}.range-chip{width:100%;justify-content:center}.date-input{flex:1 1 120px}.stats{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px}.stat{padding:12px}.stat-value{font-size:22px}.stat-value.compact{font-size:20px}.card{padding:14px}.two-col{gap:12px}.record-row>.row{flex:1 1 100%;justify-content:space-between}.record-row>.row>.btn{flex:1 1 auto}.modal-backdrop{padding:0}.modal{max-width:none;min-height:100%;margin:0;border-radius:0;padding:calc(16px + var(--sa-t)) calc(16px + var(--sa-r)) calc(24px + var(--sa-b)) calc(16px + var(--sa-l))}.form-grid{grid-template-columns:1fr}.calendar-grid{padding:12px;gap:16px}.legend{gap:10px}.bubble{max-width:86%}}@media(pointer:coarse){.btn,.time-input{height:44px}.chat-send{height:48px}.btn-sm,.link-button,.chip,.burger,.segmented button{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.btn-sm{height:auto;padding:0 14px}.link-button{justify-content:flex-start;padding:0 8px}.segmented button{padding:0 14px}.nav-item{min-height:48px;font-size:15px}.modal-close{width:44px;height:44px}.picker-row{min-height:48px}.picker-row input[type=checkbox],.td-check input[type=checkbox]{width:22px;height:22px}select.btn{font-size:16px}.day-cell{height:36px;font-size:12px}.legend-swatch.day-cell{height:14px}.calendar-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.activity:active,.pause-button:active,.other-confirm:active,.login-submit:active,.btn:active,.btn-sm:active,.chip:active,.nav-item:active,.day-cell:active,.toast:active{opacity:.7}.activity,.nav-item,.day-cell,.segmented button,.pause-button{-webkit-user-select:none;user-select:none}}.toaster{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;align-items:stretch;gap:8px;width:min(420px,calc(100vw - 28px - var(--sa-l) - var(--sa-r)));pointer-events:none;padding-bottom:var(--sa-b)}@media(min-width:861px){.toaster{left:auto;right:24px;transform:none}}.toast{pointer-events:auto;width:100%;text-align:left;border-radius:var(--r-m);padding:13px 16px;font-size:14px;line-height:1.4;background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-pop);animation:toast-in .16s ease-out}.toast-warn{background:var(--warn-fill);color:var(--warn)}.toast-err{background:var(--err-fill);color:var(--err)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.pip-body{padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}.pip-projects{display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:210px;-webkit-overflow-scrolling:touch}.pip-project{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:9px 12px;border-radius:var(--r-s);font-size:14px;text-align:left;background:var(--surface);color:var(--ink)}.pip-project:hover{background:var(--fill-2)}.pip-project.active,.pip-project.active:hover{background:var(--accent);color:var(--accent-ink)}.pip-project-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pip-project-mark{flex:none;font-size:13px;opacity:.8}
