:root{--bg:#fff;--bg-panel:#f5faff;--grid-line:#dceaf7;--text:#17324a;--text-dim:#6b85a0;--accent:#2f80ed;--accent-light:color-mix(in srgb,var(--accent) 16%,var(--bg));--accent-border:color-mix(in srgb,var(--accent) 45%,var(--bg));--accent-wash:var(--bg-panel);--accent-text:var(--accent);--done:#3e8ed0;--paused:#aac3d8;--delivered:#123b5c;--pill-text:#17324a;--danger:#d64545}:root[data-theme=dark]{--bg:#0d1420;--bg-panel:#141d2c;--grid-line:#253451;--text:#e7edf9;--text-dim:#8296b8;--accent:#4da3ff;--accent-light:color-mix(in srgb,var(--accent) 18%,var(--bg));--accent-border:color-mix(in srgb,var(--accent) 45%,var(--bg));--accent-wash:var(--bg-panel);--accent-text:var(--accent);--done:#4da3ff;--paused:#4d5d78;--delivered:#8fc4ff;--pill-text:#17324a;--danger:#ff6b6b}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,sans-serif;transition:background .15s ease,color .15s ease}.display,h1,h2,h3{font-family:Space Grotesk,sans-serif;letter-spacing:-.01em;color:var(--text)}.mono{font-family:JetBrains Mono,monospace}.top-nav{display:flex;align-items:center;gap:6px;padding:14px 20px;border-bottom:1px solid var(--grid-line);background:var(--bg-panel)}.nav-tab{font-family:Space Grotesk,sans-serif;font-size:13px;padding:6px 16px;border-radius:8px;cursor:pointer;color:var(--text-dim);text-decoration:none;border:1px solid transparent}.nav-tab.active,.nav-tab:hover{background:var(--accent-light)}.nav-tab.active{color:var(--accent-text);border-color:var(--accent-border)}.theme-toggle{font-size:14px;background:var(--bg);border:1px solid var(--grid-line);border-radius:20px;width:30px;height:30px;cursor:pointer;color:var(--text);margin-right:6px}.theme-toggle:hover{border-color:var(--accent-border)}.owner-toggle{font-size:11px;color:var(--text-dim);background:var(--bg);border:1px solid var(--grid-line);border-radius:20px;padding:5px 12px;cursor:pointer}.owner-toggle:hover{border-color:var(--accent-border);color:var(--accent-text)}.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--grid-line);padding:28px 20px;background:var(--bg-panel)}.sidebar-title{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin-bottom:20px}.roster{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.roster-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.roster-item.selected,.roster-item:hover{background:var(--accent-light)}.roster-item.selected{border-color:var(--accent-border)}.drag-handle{color:var(--grid-line);font-size:11px;cursor:-webkit-grab;cursor:grab;letter-spacing:-2px;flex-shrink:0}.roster-item:hover .drag-handle{color:var(--text-dim)}.marker{flex-shrink:0;font-size:12px;line-height:1;letter-spacing:-1px;color:var(--grid-line);width:20px;text-align:center}.marker.live{color:var(--accent);animation:pulse 2s ease-in-out infinite}.marker.done{color:var(--done)}.marker.paused{color:var(--paused)}.marker.delivered{color:var(--delivered)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.roster-name{font-size:14px}.roster-status{font-size:11px;color:var(--text-dim);margin-top:2px}.main{padding:40px 48px;max-width:780px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-text);margin-bottom:8px}.project-title{font-size:32px;margin:0 0 6px}.project-notes{color:var(--text-dim);font-size:14px;margin-bottom:8px;max-width:60ch}.status-row{display:flex;flex-wrap:wrap;gap:8px}.status-pill{display:flex;align-items:center;gap:6px;font-size:13px;padding:6px 10px;border-radius:8px;border:1px solid var(--grid-line);cursor:pointer}.status-pill.active{background:var(--accent-light);border-color:var(--accent-border)}.status-pill input{accent-color:var(--accent)}.status-pill.readonly{cursor:default}.status-pill.readonly input{display:none}.timer-card{background:var(--accent-wash);border:1px solid var(--accent-border);border-radius:12px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;margin:20px 0 32px}.timer-value{font-size:40px;font-weight:500}.timer-label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.btn{font-family:Inter,sans-serif;font-size:14px;font-weight:500;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;transition:opacity .15s ease}.btn:hover{opacity:.85}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-checkin{background:var(--accent);color:var(--pill-text)}.btn-checkout{background:var(--bg);color:var(--text);border:1px solid var(--accent-border)}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin:0 0 14px}.empty-state{color:var(--text-dim);font-size:14px;padding:20px 0}.timecard{width:100%;border-collapse:collapse;font-size:14px}.timecard th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:500;padding:0 12px 10px 0}.timecard td,.timecard th{border-bottom:1px solid var(--grid-line)}.timecard td{padding:10px 12px 10px 0}.timecard tbody tr:last-child td{border-bottom:none}.timecard td.session-source{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.add-btn{margin-top:14px;width:100%;font-size:12px;padding:8px;border-radius:8px;border:1px dashed var(--accent-border);background:transparent;color:var(--text-dim);cursor:pointer}.edit-form{background:var(--bg-panel);border:1px solid var(--grid-line);border-radius:10px;padding:16px;margin-top:10px;display:flex;flex-direction:column;gap:8px}.edit-form input,.edit-form textarea{background:var(--bg);border:1px solid var(--accent-border);color:var(--text);border-radius:6px;padding:8px 10px;font-size:13px;font-family:Inter,sans-serif}.edit-form-row{display:flex;gap:8px}.field-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.danger-link{background:none;border:none;color:var(--danger);font-size:12px;cursor:pointer;padding:4px 0;align-self:flex-start}.danger-link:hover{text-decoration:underline}.swatch-row{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 4px}.swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;padding:0}.swatch.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--bg)}.swatch-none{width:22px;height:22px;border-radius:50%;cursor:pointer;border:1px dashed var(--grid-line);background:transparent;color:var(--text-dim);font-size:10px;display:flex;align-items:center;justify-content:center;padding:0}.link-btn{background:none;border:none;color:var(--accent-text);font-size:12px;cursor:pointer;padding:0 4px}.session-edit-row{display:flex;align-items:flex-end;gap:12px;padding:8px 0;flex-wrap:wrap}.session-edit-row input{background:var(--bg);border:1px solid var(--accent-border);color:var(--text);border-radius:6px;padding:6px 8px;font-size:12px}.todo-date-label{font-family:Space Grotesk,sans-serif;font-size:15px;color:var(--text);margin-bottom:14px}.add-task-block{background:var(--bg-panel);border:1px solid var(--grid-line);border-radius:10px;padding:12px;margin-bottom:6px}.add-task-block input{width:100%;background:var(--bg);border:1px solid var(--accent-border);color:var(--text);border-radius:6px;padding:7px 9px;font-size:12px}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.todo-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px}.todo-item.task-active,.todo-item:hover{background:var(--accent-light)}.todo-text{cursor:pointer;flex:1 1}.task-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;cursor:pointer;border:1px solid var(--grid-line)}.row-actions{white-space:nowrap;display:flex;gap:2px}.todo-edit-block{background:var(--bg-panel);border:1px solid var(--grid-line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px}.todo-edit-block input{background:var(--bg);border:1px solid var(--accent-border);color:var(--text);border-radius:6px;padding:6px 8px;font-size:12px}.cal-header{display:flex;align-items:center;justify-content:space-between;margin:16px 0 14px}.cal-month-label{font-family:Space Grotesk,sans-serif;font-size:16px;color:var(--text)}.cal-nav{display:flex;gap:6px;align-items:center}.cal-nav button{background:var(--accent-light);border:1px solid var(--accent-border);color:var(--accent-text);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-dow{font-size:10px;text-transform:uppercase;color:var(--text-dim);text-align:center;padding-bottom:4px}.cal-cell{min-height:96px;background:var(--bg);border:1px solid var(--grid-line);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;cursor:pointer}.cal-cell.out{opacity:.4}.cal-cell.today{border-color:var(--accent-border)}.cal-cell.selected-day{border-color:var(--text-dim);border-width:2px}.cal-daynum{font-size:11px;color:var(--text-dim);display:flex;justify-content:space-between}.cal-task-neutral{font-size:10px;padding:3px 6px;border-radius:5px;cursor:pointer}.cal-task-neutral.task-selected{outline:2px solid var(--text-dim);outline-offset:1px}