:root,html[data-theme=dark]{color-scheme:dark;--bg:#1b1c24;--panel:#282a36;--panel-raised:#303241;--line:#44475a;--line-soft:#373a4a;--text:#f8f8f2;--muted:#aeb6d8;--green:#244b3c;--green-text:#b7f6c5;--caution:#4a3723;--caution-text:#ffd28a;--red:#4b2a36;--red-text:#ffb3bd;--red-action:#7f3b4a;--red-action-hover:#924555;--purple:#bd93f9;--purple-action:#6d56a8;--purple-action-hover:#7c63bd;--purple-ink:#f7f1ff;--accent:#bd93f9;--accent-soft:#332f47;--active-surface:#282a36;--active-ink:#f8f8f2;--focus:rgba(189,147,249,0.36);--primary-border:#856ac8;--primary-border-hover:#9272d4;--danger-border:#9b4d5c;--danger-border-hover:#aa5866;--danger-ink:#fff1f4;--current-day:#6272a4;--error-border:#7d3d4d;--subtle-head:#242632;--pill-ink:#d8c8ff;--create-soft:rgba(80,250,123,0.07);--patch-soft:rgba(189,147,249,0.08);--warn-soft:rgba(189,147,249,0.12);--overlay:rgba(27,28,36,0.72);--shadow:rgba(0,0,0,0.34)}html[data-theme=light]{color-scheme:light;--bg:#eef1fa;--panel:#ffffff;--panel-raised:#f4f2ff;--line:#c8c0ea;--line-soft:#dcd8f2;--text:#0d0826;--muted:#4e4674;--green:#d0f9e6;--green-text:#0a6e3e;--caution:#fff7e0;--caution-text:#8a5800;--red:#ffe0e0;--red-text:#b02030;--red-action:#d93636;--red-action-hover:#bf2a2a;--purple:#4a3bb5;--purple-action:#14054d;--purple-action-hover:#291d53;--purple-ink:#ffffff;--accent:#03ff81;--accent-soft:#e0f9ee;--active-surface:#14054d;--active-ink:#03ff81;--focus:rgba(3,255,129,0.30);--primary-border:#4a3bb5;--primary-border-hover:#291d53;--danger-border:#d93636;--danger-border-hover:#bf2a2a;--danger-ink:#ffffff;--current-day:#291d53;--error-border:#f5aaaa;--subtle-head:#f0edff;--pill-ink:#291d53;--create-soft:rgba(3,255,129,0.16);--patch-soft:rgba(74,59,181,0.07);--warn-soft:rgba(245,158,11,0.07);--overlay:rgba(13,8,38,0.28);--shadow:rgba(20,5,77,0.12)}@media (prefers-color-scheme:light){:root{color-scheme:light;--bg:#eef1fa;--panel:#ffffff;--panel-raised:#f4f2ff;--line:#c8c0ea;--line-soft:#dcd8f2;--text:#0d0826;--muted:#4e4674;--green:#d0f9e6;--green-text:#0a6e3e;--caution:#fff7e0;--caution-text:#8a5800;--red:#ffe0e0;--red-text:#b02030;--red-action:#d93636;--red-action-hover:#bf2a2a;--purple:#4a3bb5;--purple-action:#14054d;--purple-action-hover:#291d53;--purple-ink:#ffffff;--accent:#03ff81;--accent-soft:#e0f9ee;--active-surface:#14054d;--active-ink:#03ff81;--focus:rgba(3,255,129,0.30);--primary-border:#4a3bb5;--primary-border-hover:#291d53;--danger-border:#d93636;--danger-border-hover:#bf2a2a;--danger-ink:#ffffff;--current-day:#291d53;--error-border:#f5aaaa;--subtle-head:#f0edff;--pill-ink:#291d53;--create-soft:rgba(3,255,129,0.16);--patch-soft:rgba(74,59,181,0.07);--warn-soft:rgba(245,158,11,0.07);--overlay:rgba(13,8,38,0.28);--shadow:rgba(20,5,77,0.12)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}textarea{min-height:58px;resize:vertical;padding:7px 8px;font:inherit}button,textarea{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}button{height:34px;padding:0 10px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);background:var(--panel-raised)}button.primary:hover:not(:disabled){background:var(--purple-action-hover);border-color:var(--primary-border-hover);color:var(--purple-ink)}button.positive:hover:not(:disabled){background:#00cc66;border-color:#00cc66;color:#0f0a2e}button.danger:hover:not(:disabled){background:var(--red-action-hover);border-color:var(--danger-border-hover);color:var(--danger-ink)}button.primary{background:var(--purple-action);color:var(--purple-ink);border-color:var(--primary-border);font-weight:700}button.positive{background:#03ff80;color:#0f0a2e;border-color:#03ff80;font-weight:800}button.danger{background:var(--red-action);color:var(--danger-ink);border-color:var(--danger-border);font-weight:700}button.icon-button{width:24px;height:24px;padding:0;display:inline-grid;place-items:center;line-height:1}button:disabled{opacity:.55;cursor:not-allowed}input,select{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 8px;min-width:0;background:var(--panel);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);border-color:var(--accent)}.shell{max-width:1500px;margin:0 auto;padding:16px}.pending-shell{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end}.auth-shell{min-height:100vh;display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:20px}.app-footer{margin-top:22px;color:var(--muted);font-size:12px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;line-height:1.45}.app-footer a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}.footer-contact{font-size:11px}.auth-panel{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:0 18px 60px var(--shadow);display:grid;grid-gap:14px;gap:14px}.auth-panel h1{margin:0;font-size:24px;text-align:center}.auth-panel p{color:var(--muted);margin:0;text-align:center}.auth-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.device-login{display:grid;justify-items:center;grid-gap:10px;gap:10px}.device-login code{padding:10px 16px;border:1px solid var(--line);border-radius:6px;background:var(--panel-raised);color:var(--text);font-size:22px;font-weight:800;letter-spacing:.12em;-webkit-user-select:all;-moz-user-select:all;user-select:all}.device-login small{color:var(--green-text)}.toolbar{display:grid;grid-template-columns:minmax(260px,auto) minmax(140px,1fr) repeat(8,auto);grid-column-gap:10px;column-gap:10px;grid-row-gap:8px;row-gap:8px;align-items:end;margin:-16px -16px 16px;padding:14px 16px;background:#14054d;border-bottom:1px solid #3636a6;box-shadow:0 12px 28px rgba(20,5,77,.16)}.brand-title{gap:10px;min-height:34px}.brand-title,.toolbar-logo{display:flex;align-items:center}.toolbar-logo{align-self:center;justify-self:start;width:150px;height:36px}.toolbar-logo img{display:block;max-width:100%;max-height:100%}.brand h1{margin:0;font-size:22px;color:#ffffff}.toolbar .brand>span,.toolbar .field-label,.toolbar label{color:rgba(255,255,255,.68);font-size:12px}.pane-head span{color:var(--muted);font-size:12px}.toolbar button:not(.primary):not(.danger),.toolbar input,.toolbar select{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#ffffff}.toolbar input::placeholder{color:rgba(255,255,255,.45)}.toolbar select option{color:#0f0a2e}.toolbar button:hover:not(:disabled):not(.primary):not(.danger){background:rgba(255,255,255,.14);border-color:var(--accent)}html[data-theme=dark] .toolbar{margin:0 0 14px;padding:0 0 12px;background:transparent;border-bottom:1px solid var(--line);box-shadow:none}html[data-theme=dark] .brand h1{color:var(--text)}html[data-theme=dark] .toolbar .brand>span,html[data-theme=dark] .toolbar .field-label,html[data-theme=dark] .toolbar label{color:var(--muted)}html[data-theme=dark] .toolbar button:not(.primary):not(.danger),html[data-theme=dark] .toolbar input,html[data-theme=dark] .toolbar select{background:var(--panel);border-color:var(--line);color:var(--text)}html[data-theme=dark] .toolbar input::placeholder{color:var(--muted)}html[data-theme=dark] .toolbar select option{background:var(--panel);color:var(--text)}html[data-theme=dark] .toolbar button:hover:not(:disabled):not(.primary):not(.danger){background:var(--panel-raised);border-color:var(--accent)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button{background:var(--panel);border-color:var(--line);color:var(--text)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.muted-day{color:var(--muted)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.calendar-status-complete{background:var(--green);color:var(--green-text);border-color:var(--green)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.calendar-status-draft-complete{background:var(--current-day);color:#ffffff;border-color:var(--current-day)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.calendar-status-under{background:var(--caution);color:var(--caution-text);border-color:var(--caution)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.calendar-status-over{background:var(--red);color:var(--red-text);border-color:var(--red)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.current-day{border-color:var(--current-day);box-shadow:inset 0 0 0 1px var(--current-day)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.selected-day{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}html[data-theme=dark] .toolbar .calendar-popover .calendar-grid button.selected-day:not(.calendar-status-complete):not(.calendar-status-draft-complete):not(.calendar-status-under):not(.calendar-status-over){background:var(--accent-soft);color:var(--text)}.field,label{display:grid;grid-gap:3px;gap:3px}.week-picker{display:flex;align-items:center;gap:6px}.week-picker button{width:38px;flex:0 0 38px;padding:0 8px;font-size:12px;line-height:1}.week-picker .calendar-toggle{width:30px;flex:0 0 30px}.week-calendar{display:grid;grid-template-columns:104px 30px;position:relative;flex:0 0 134px}.week-date-input{width:100%;border-top-right-radius:0;border-bottom-right-radius:0;font-size:13px}.calendar-toggle{width:30px;min-width:0;padding:0;border-top-left-radius:0;border-bottom-left-radius:0}.calendar-popover{position:absolute;z-index:30;top:calc(100% + 6px);left:50%;width:252px;transform:translateX(-50%);padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 60px var(--shadow)}.calendar-head{display:grid;grid-template-columns:32px 1fr 32px;grid-gap:6px;gap:6px;align-items:center;margin-bottom:8px}.calendar-head button{width:32px;height:28px;padding:0}.calendar-head strong{text-align:center;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.calendar-loading{width:11px;height:11px;display:inline-block;border:2px solid var(--line);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.calendar-weekdays{margin-bottom:4px;color:var(--muted);font-size:11px;text-align:center}.calendar-grid button{width:100%;height:28px;padding:0;font-size:12px}.calendar-grid button.muted-day{color:var(--muted)}.calendar-grid button.calendar-status-complete{background:var(--green);color:var(--green-text);border-color:var(--green)}.calendar-grid button.calendar-status-draft-complete{background:var(--current-day);color:#ffffff;border-color:var(--current-day)}.calendar-grid button.calendar-status-under{background:var(--caution);color:var(--caution-text);border-color:var(--caution)}.calendar-grid button.calendar-status-over{background:var(--red);color:var(--red-text);border-color:var(--red)}.calendar-grid button.current-day{border-color:var(--current-day);box-shadow:inset 0 0 0 1px var(--current-day)}.calendar-grid button.selected-day{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.calendar-grid button.selected-day:not(.calendar-status-complete):not(.calendar-status-draft-complete):not(.calendar-status-under):not(.calendar-status-over){background:var(--accent-soft);color:var(--text)}.toolbar .calendar-popover .calendar-grid button{background:var(--panel);border-color:var(--line);color:var(--text)}.toolbar .calendar-grid button.muted-day{color:var(--muted)}.toolbar .calendar-grid button.calendar-status-complete{background:var(--green);color:var(--green-text);border-color:var(--green)}.toolbar .calendar-grid button.calendar-status-draft-complete{background:var(--current-day);color:#ffffff;border-color:var(--current-day)}.toolbar .calendar-grid button.calendar-status-under{background:var(--caution);color:var(--caution-text);border-color:var(--caution)}.toolbar .calendar-grid button.calendar-status-over{background:var(--red);color:var(--red-text);border-color:var(--red)}.toolbar .calendar-grid button.current-day{border-color:var(--current-day);box-shadow:inset 0 0 0 1px var(--current-day)}.toolbar .calendar-grid button.selected-day{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.toolbar .calendar-grid button.selected-day:not(.calendar-status-complete):not(.calendar-status-draft-complete):not(.calendar-status-under):not(.calendar-status-over){background:var(--accent-soft);color:var(--text)}.nav-spinner{width:14px;height:14px;display:inline-block;border:2px solid var(--line);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}.hours-setting input{width:82px}.work-week-control{display:flex;align-items:center;gap:4px;position:relative}.work-week-control>select{min-width:98px}.custom-week-popover{position:relative;display:inline-flex}.overtime-popover{position:relative}.overtime-summary{height:34px;min-width:62px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;color:var(--text);cursor:pointer}.overtime-settings,.overtime-summary{border:1px solid var(--line);border-radius:6px;background:var(--panel)}.overtime-settings{position:absolute;z-index:40;top:calc(100% + 6px);right:0;width:248px;display:grid;grid-gap:10px;gap:10px;padding:10px;box-shadow:0 12px 30px var(--shadow)}.overtime-settings header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;color:var(--text)}.overtime-range{display:grid;grid-gap:1px;gap:1px;min-width:92px;text-align:right;color:var(--muted);font-size:11px;line-height:1.2}.overtime-days{display:grid;grid-gap:6px;gap:6px}.overtime-day-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 28px;grid-gap:6px;gap:6px;align-items:center}.overtime-day-row label{color:var(--muted)}.overtime-days input{width:64px}.overtime-clear{width:28px;height:28px;min-width:28px}.custom-week-settings{position:absolute;z-index:40;top:calc(100% + 6px);right:0;width:260px;display:grid;grid-gap:8px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 12px 30px var(--shadow)}.custom-week-settings header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text)}.custom-week-settings>label{min-width:0}.custom-day-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px}.custom-day-modes label{min-width:0}.custom-day-modes select{width:100%}.profile-popover{position:relative}.profile-toggle{min-height:38px;min-width:38px;max-width:240px;padding:4px 8px;justify-content:flex-start;gap:8px}.profile-avatar,.profile-toggle{display:inline-flex;align-items:center}.profile-avatar{width:26px;height:26px;flex:0 0 26px;justify-content:center;border-radius:50%;background:var(--accent);color:#ffffff;font-size:10px;font-weight:700;letter-spacing:.03em}.profile-identity{min-width:0;display:grid;text-align:left;line-height:1.15}.profile-identity small,.profile-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-identity strong{color:#ffffff;font-size:11px;font-weight:600}.profile-chevron,.profile-identity small{color:rgba(255,255,255,.68);font-size:10px}.profile-chevron{flex:0 0 auto}.profile-menu{position:absolute;z-index:40;top:calc(100% + 6px);right:0;min-width:320px;display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 12px 30px var(--shadow)}.profile-account{display:grid;grid-gap:2px;gap:2px;padding:4px 4px 8px;overflow-wrap:anywhere}.profile-account small,.profile-account span{color:var(--muted);font-size:11px}.profile-account strong{color:var(--text);font-size:13px}.profile-menu button,.profile-menu-link{width:100%;text-align:left;justify-content:flex-start}.profile-menu-link{min-height:34px;display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:var(--panel);color:var(--text);font-size:13px;text-decoration:none}.profile-menu-link:hover{border-color:var(--accent);background:var(--panel-raised)}.profile-menu-section{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:4px 2px 2px;display:block}.profile-menu-section:first-child{padding-top:0}.profile-menu-divider{border:none;border-top:1px solid var(--line);margin:4px 0}.external-token-panel{display:grid;grid-gap:8px;gap:8px;padding:0 2px 4px}.external-token-panel dl{display:grid;grid-gap:4px;gap:4px;margin:0}.external-token-panel dl div{display:grid;grid-template-columns:70px minmax(0,1fr);grid-gap:8px;gap:8px;font-size:11px}.external-token-panel dt{color:var(--muted)}.external-token-panel dd{min-width:0;margin:0;overflow-wrap:anywhere}.external-token-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.external-token-key{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:6px;gap:6px;align-items:center}.external-token-key code{width:100%;min-width:0;display:block;overflow:hidden;border:1px solid var(--line);border-radius:6px;padding:8px 9px;background:var(--panel-raised);color:var(--text);font:12px/1 SFMono-Regular,Consolas,Liberation Mono,monospace;text-overflow:ellipsis;white-space:nowrap}.external-token-key button{width:auto}.external-token-error{color:var(--red-text)}.api-doc-page{min-height:100vh;background:radial-gradient(circle at top right,var(--accent-soft),transparent 34rem),var(--bg);color:var(--text)}.api-doc-header{position:-webkit-sticky;position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 max(24px,calc((100vw - 1280px) / 2));border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.api-doc-back{color:var(--purple);font-size:13px;font-weight:700;text-decoration:none}.api-doc-back:hover{text-decoration:underline}.api-doc-formats{display:flex;align-items:center;gap:8px}.api-doc-formats a{border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:var(--panel);color:var(--text);font-size:11px;font-weight:700;text-decoration:none}.api-doc-formats a:hover{border-color:var(--accent);background:var(--panel-raised)}.api-doc-layout{width:min(1280px,calc(100% - 48px));display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:48px;gap:48px;margin:0 auto;padding:40px 0 80px}.api-doc-navigation{position:-webkit-sticky;position:sticky;top:88px;align-self:start;max-height:calc(100vh - 112px);overflow:auto;padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:color-mix(in srgb,var(--panel) 88%,transparent)}.api-doc-navigation>strong{display:block;margin-bottom:10px;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.api-doc-navigation nav{display:grid;grid-gap:2px;gap:2px}.api-doc-navigation a{border-left:2px solid transparent;padding:6px 8px;color:var(--muted);font-size:12px;line-height:1.35;text-decoration:none}.api-doc-navigation a.nested{padding-left:20px;font-size:11px}.api-doc-navigation a:hover{border-left-color:var(--accent);background:var(--panel-raised);color:var(--text)}.api-doc-content{min-width:0;padding:clamp(24px,5vw,56px);border:1px solid var(--line-soft);border-radius:14px;background:var(--panel);box-shadow:0 16px 50px var(--shadow)}.api-doc-content h1,.api-doc-content h2,.api-doc-content h3,.api-doc-content h4{scroll-margin-top:82px;line-height:1.2}.api-doc-content h1{margin:0 0 18px;color:var(--purple);font-size:clamp(30px,5vw,46px);letter-spacing:-.035em}.api-doc-content h2{margin:52px 0 16px;padding-top:8px;border-top:1px solid var(--line-soft);font-size:24px}.api-doc-content h3{margin:34px 0 12px;font-size:19px}.api-doc-content h4,.api-doc-content h5,.api-doc-content h6{margin:26px 0 10px;font-size:15px}.api-doc-content li,.api-doc-content p{font-size:14px;line-height:1.75}.api-doc-content p{margin:0 0 16px}.api-doc-content ol,.api-doc-content ul{display:grid;grid-gap:6px;gap:6px;margin:0 0 20px;padding-left:24px}.api-doc-content a{color:var(--purple);text-underline-offset:3px}.api-doc-content code{border:1px solid var(--line-soft);border-radius:4px;padding:1px 5px;background:var(--panel-raised);color:var(--text);font:.9em/1.5 SFMono-Regular,Consolas,Liberation Mono,monospace}.api-doc-content pre{position:relative;max-width:100%;overflow:auto;margin:18px 0 24px;border:1px solid var(--line);border-radius:8px;padding:18px;background:#0d0826;color:#f4f2ff;box-shadow:inset 3px 0 0 var(--accent)}.api-doc-content pre[data-language]:before{content:attr(data-language);position:absolute;top:6px;right:10px;color:rgba(255,255,255,.5);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.api-doc-content pre code{border:0;padding:0;background:transparent;color:inherit;font-size:12px;white-space:pre}.api-doc-table-wrap{max-width:100%;overflow-x:auto;margin:18px 0 28px;border:1px solid var(--line);border-radius:8px}.api-doc-content table{width:100%;border-collapse:collapse;font-size:13px}.api-doc-content td,.api-doc-content th{padding:11px 13px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.api-doc-content th{background:var(--subtle-head);color:var(--text);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.api-doc-content tbody tr:last-child td{border-bottom:0}@media (max-width:840px){.api-doc-layout{width:min(100% - 24px,760px);display:block;padding-top:20px}.api-doc-navigation{position:static;max-height:none;margin-bottom:16px}.api-doc-navigation nav{grid-template-columns:repeat(2,minmax(0,1fr))}.api-doc-content{padding:24px 18px}}@media (max-width:520px){.api-doc-header{padding:0 12px}.api-doc-formats a{padding:6px 7px;font-size:10px}.api-doc-navigation nav{grid-template-columns:1fr}}html[data-theme=light] .toolbar .calendar-popover,html[data-theme=light] .toolbar .custom-week-settings,html[data-theme=light] .toolbar .overtime-settings,html[data-theme=light] .toolbar .profile-menu{background:var(--panel);border-color:var(--line);color:var(--text)}html[data-theme=light] .toolbar .calendar-popover .calendar-weekdays,html[data-theme=light] .toolbar .calendar-popover .field-label,html[data-theme=light] .toolbar .calendar-popover label,html[data-theme=light] .toolbar .custom-week-settings label,html[data-theme=light] .toolbar .overtime-settings .overtime-range,html[data-theme=light] .toolbar .overtime-settings label{color:var(--muted)}html[data-theme=light] .toolbar .calendar-popover strong,html[data-theme=light] .toolbar .custom-week-settings header,html[data-theme=light] .toolbar .overtime-settings header{color:var(--text)}html[data-theme=light] .toolbar .calendar-popover .calendar-head button,html[data-theme=light] .toolbar .calendar-popover input,html[data-theme=light] .toolbar .calendar-popover select,html[data-theme=light] .toolbar .custom-week-settings button,html[data-theme=light] .toolbar .custom-week-settings input,html[data-theme=light] .toolbar .custom-week-settings select,html[data-theme=light] .toolbar .overtime-settings button,html[data-theme=light] .toolbar .overtime-settings input,html[data-theme=light] .toolbar .overtime-settings select,html[data-theme=light] .toolbar .profile-menu button{background:var(--panel);border-color:var(--line);color:var(--text)}html[data-theme=light] .toolbar .calendar-popover .calendar-head button:hover:not(:disabled),html[data-theme=light] .toolbar .custom-week-settings button:hover:not(:disabled),html[data-theme=light] .toolbar .overtime-settings button:hover:not(:disabled),html[data-theme=light] .toolbar .profile-menu button:hover:not(:disabled){background:var(--panel-raised);border-color:var(--accent)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .toolbar .calendar-popover,:root:not([data-theme=dark]) .toolbar .custom-week-settings,:root:not([data-theme=dark]) .toolbar .overtime-settings,:root:not([data-theme=dark]) .toolbar .profile-menu{background:var(--panel);border-color:var(--line);color:var(--text)}:root:not([data-theme=dark]) .toolbar .calendar-popover .calendar-weekdays,:root:not([data-theme=dark]) .toolbar .calendar-popover .field-label,:root:not([data-theme=dark]) .toolbar .calendar-popover label,:root:not([data-theme=dark]) .toolbar .custom-week-settings label,:root:not([data-theme=dark]) .toolbar .overtime-settings .overtime-range,:root:not([data-theme=dark]) .toolbar .overtime-settings label{color:var(--muted)}:root:not([data-theme=dark]) .toolbar .calendar-popover strong,:root:not([data-theme=dark]) .toolbar .custom-week-settings header,:root:not([data-theme=dark]) .toolbar .overtime-settings header{color:var(--text)}:root:not([data-theme=dark]) .toolbar .calendar-popover .calendar-head button,:root:not([data-theme=dark]) .toolbar .calendar-popover input,:root:not([data-theme=dark]) .toolbar .calendar-popover select,:root:not([data-theme=dark]) .toolbar .custom-week-settings button,:root:not([data-theme=dark]) .toolbar .custom-week-settings input,:root:not([data-theme=dark]) .toolbar .custom-week-settings select,:root:not([data-theme=dark]) .toolbar .overtime-settings button,:root:not([data-theme=dark]) .toolbar .overtime-settings input,:root:not([data-theme=dark]) .toolbar .overtime-settings select,:root:not([data-theme=dark]) .toolbar .profile-menu button{background:var(--panel);border-color:var(--line);color:var(--text)}:root:not([data-theme=dark]) .toolbar .calendar-popover .calendar-head button:hover:not(:disabled),:root:not([data-theme=dark]) .toolbar .custom-week-settings button:hover:not(:disabled),:root:not([data-theme=dark]) .toolbar .overtime-settings button:hover:not(:disabled),:root:not([data-theme=dark]) .toolbar .profile-menu button:hover:not(:disabled){background:var(--panel-raised);border-color:var(--accent)}}.error,.notice{margin-top:12px;padding:10px 12px;border:1px solid var(--line);background:var(--panel-raised);border-radius:6px}.error{background:var(--red);border-color:var(--error-border);color:var(--red-text)}.app-dialog-overlay{position:fixed;inset:0;z-index:110;display:grid;place-items:center;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-dialog{min-width:min(380px,calc(100vw - 32px));max-width:min(520px,calc(100vw - 32px));display:grid;grid-gap:16px;gap:16px;padding:20px 22px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 24px 60px var(--shadow);animation:dialog-in .12s ease-out}@keyframes dialog-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}.app-dialog-message{margin:0;color:var(--text);line-height:1.5;white-space:pre-wrap}.app-dialog-input{width:100%}.app-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.busy-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.busy-panel{min-width:min(320px,calc(100vw - 32px));display:grid;justify-items:center;grid-gap:12px;gap:12px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 60px var(--shadow)}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));grid-gap:10px;gap:10px;margin-top:14px}.top-tabs+.week-grid{margin-top:0}.day,.panes article{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0}.day header,.pane-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-bottom:1px solid var(--line);background:var(--panel-raised)}.day header{border-radius:7px 7px 0 0}.day.under header{background:var(--caution);color:var(--caution-text)}.day.complete header{background:var(--green);color:var(--green-text)}.day.draft-complete header{background:var(--current-day);color:#ffffff}.day.over header{background:var(--red);color:var(--red-text)}.day-header-actions,.manual-day-actions{display:inline-flex;align-items:center;gap:5px;min-width:0}.day-header-actions button,.manual-day-actions button{display:inline-grid;place-items:center;height:24px;width:26px;min-width:0;padding:3px;font-size:11px;line-height:1}.day-header-actions>span{white-space:nowrap}.day-header-actions svg,.manual-day-actions svg{width:14px;height:14px;fill:currentColor}table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}td{position:relative;border-bottom:1px solid var(--line-soft);vertical-align:top;overflow-wrap:break-word}.day-task-tooltip,td{padding:7px 8px;font-size:12px}.day-task-tooltip{position:absolute;z-index:25;left:8px;bottom:calc(100% - 2px);display:grid;grid-gap:3px;gap:3px;min-width:min(260px,70vw);max-width:320px;border:1px solid var(--line);border-radius:6px;background:var(--panel-raised);color:var(--text);box-shadow:0 12px 28px var(--shadow);white-space:normal;pointer-events:none}.day-task-tooltip span{color:var(--muted)}td:nth-child(2){width:64px;white-space:nowrap}td:nth-child(3){width:64px}.row-actions{padding:4px 6px;text-align:right;white-space:nowrap}.row-actions-inner{flex-direction:column;gap:2px;min-width:0}.row-action-buttons,.row-actions-inner{display:flex;align-items:center;justify-content:center}.row-action-buttons{gap:3px;min-height:22px}.row-action-buttons .icon-button{flex:0 0 auto;width:22px;height:22px;font-size:11px}.duration-cell{white-space:nowrap}.duration-input{width:28px;height:24px;padding:2px 4px;border:1px solid var(--line);border-radius:5px;background:var(--panel-raised);color:var(--text);font:inherit;font-size:12px;text-align:right}.duration-input:focus{outline:2px solid var(--accent);outline-offset:1px}.duration-edit-label{display:inline-flex;align-items:center;justify-content:flex-end;min-width:28px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:12px;text-align:right;cursor:text}.duration-edit-label:focus-visible,.duration-edit-label:hover{background:var(--panel-raised);box-shadow:inset 0 0 0 1px var(--line);outline:none}.magic-fit-button{width:22px;height:22px;min-height:22px;padding:0;margin-left:3px;border-radius:5px;font-size:12px;line-height:1;vertical-align:middle}.magic-fit-button:disabled{opacity:.38;cursor:not-allowed}.status-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:18px;height:18px;min-height:18px;padding:0;border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:700;line-height:1;white-space:nowrap}.status-draft{color:var(--text);background:var(--panel-raised);border-color:var(--line)}.status-submitted{color:var(--pill-ink);background:var(--accent-soft);border-color:var(--purple)}.status-approved{color:var(--green-text);background:var(--green);border-color:var(--green-text)}.status-recall,.status-returned{color:var(--caution-text);background:var(--caution);border-color:var(--caution-text)}.status-cancelled{color:var(--muted);background:var(--panel);border-color:var(--line)}.tab-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:3px;padding:0 5px;border-radius:999px;background:var(--accent-soft);color:var(--pill-ink);font-size:11px;font-weight:700}tr.locked td{color:var(--caution-text)}tr.hidden-entry td{color:var(--muted);opacity:.72}.hidden-toggle-row td{padding:5px 8px;text-align:center}.hidden-toggle-row button{border:0;background:transparent;color:var(--muted);font-size:11px;text-decoration:underline;text-underline-offset:3px}.hidden-toggle-row button:hover{color:var(--text)}.day p{margin:8px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.panes{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));grid-gap:12px;gap:12px}.panes,.tabs{margin-top:14px}.tabs{display:flex;gap:6px;margin-bottom:-1px;border-bottom:1px solid var(--line);padding-left:6px}.tabs button{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:var(--line);color:var(--muted);background:var(--panel-raised);min-width:86px}.tabs button.active{background:var(--panel);border-color:var(--line);border-bottom-color:var(--panel);color:var(--text);font-weight:700;position:relative;z-index:1;box-shadow:inset 0 3px 0 var(--accent)}.tabs button:not(.active):hover{color:var(--text);border-color:var(--line);background:var(--panel)}.approval-panel,.manual-panel,.submit-panel{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px;margin-top:0}.manual-panel+.week-grid,.week-grid+.panes,.week-grid+.submit-panel{margin-top:14px}.approval-panel article,.manual-panel article,.submit-panel article{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0}.approval-panel>article:first-child,.manual-panel>article:first-child,.submit-panel>article:first-child{border-top-left-radius:0}.actions{display:flex;align-items:center;gap:6px;min-width:0}.button-tooltip{display:inline-flex}.button-tooltip>button:disabled{pointer-events:none}.actions input{width:min(260px,40vw)}.manual-tools{display:grid;grid-template-columns:minmax(320px,1fr);grid-gap:8px;gap:8px;padding:8px;border-bottom:1px solid var(--line-soft)}.manual-tools section{min-width:0;border:1px solid var(--line-soft);border-radius:8px;overflow:visible}.manual-tools header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;background:var(--subtle-head);border-bottom:1px solid var(--line-soft);font-size:12px}.invalid-favorite-option,.recurring-item em,.recurring-item.invalid{color:var(--red-text)}.recurring-item em{font-style:normal;font-size:11px}.recurring-editor{grid-column:span 1}.recurring-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(120px,.45fr) 64px 96px minmax(160px,.8fr) auto;grid-gap:7px;gap:7px;align-items:start;padding:8px}.recurring-grid>input,.recurring-grid>select{width:100%}.recurring-days{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}.recurring-grid>.primary{grid-column:6;grid-row:1}.recurring-days label{display:flex;align-items:center;gap:4px}.recurring-days input{width:14px;height:14px}.recurring-list{grid-column:1/-1}.recurring-list header{padding:0}.recurring-collapse-button{width:100%;min-height:34px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:8px;gap:8px;align-items:center;justify-items:start;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;padding:7px 8px}.recurring-collapse-button span{color:var(--muted)}.recurring-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(100px,.35fr) auto auto;grid-gap:8px;gap:8px;align-items:center;padding:7px 8px;border-top:1px solid var(--line-soft);font-size:12px}.recurring-label{display:flex;min-width:0;flex-direction:column;gap:2px;overflow:hidden}.recurring-label>small,.recurring-label>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurring-label>small{color:var(--muted);font-size:11px}.recurring-comment{grid-column:4;min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurring-item>em{grid-column:5}.recurring-invalid-row{grid-column:5;display:flex;align-items:center;gap:6px}.recurring-invalid-row em{font-style:normal;font-size:11px;color:var(--red-text)}.recurring-repair-button{padding:2px 6px;min-height:20px;font-size:11px;color:var(--accent);border-color:var(--accent)}.recurring-repair-button:hover:not(:disabled){background:var(--accent);color:var(--panel)}.recurring-invalid-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;margin-left:5px;border-radius:8px;background:var(--danger-border);color:var(--danger-ink);font-size:10px;font-weight:700;vertical-align:middle}.recurring-order-actions{display:flex;align-items:center;gap:3px}.recurring-actions{grid-column:6;display:flex;align-items:center;justify-content:flex-end;gap:4px}.recurring-actions button:not(.icon-button){padding:3px 7px;min-height:24px;font-size:11px}.manual-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px;padding:8px}.manual-day{min-width:0;border:1px solid var(--line-soft);border-radius:8px;overflow:visible}.manual-day header{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;background:var(--subtle-head);font-size:12px}.manual-day header,.manual-row{gap:8px;border-bottom:1px solid var(--line-soft)}.manual-row{display:grid;grid-template-columns:1fr;grid-gap:8px;padding:8px 10px}.task-picker{display:grid;grid-template-columns:1fr;grid-gap:6px;gap:6px;min-width:0;position:relative}.task-picker input{width:100%}.task-menu{position:fixed;z-index:20;max-height:280px;overflow:auto;background:var(--panel-raised);border:1px solid var(--line);border-radius:6px;box-shadow:0 16px 34px var(--shadow);padding:6px}.task-menu-group+.task-menu-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--line-soft)}.task-option{width:100%;min-height:34px;align-items:start;display:grid;grid-template-columns:24px 220px minmax(0,1fr) 58px 52px;grid-gap:10px;gap:10px;text-align:left;border-color:transparent;padding:5px}.task-option small,.task-option span{min-width:0}.task-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-menu .favorite-toggle{color:var(--purple);text-align:center;font-size:14px;line-height:1.3}.task-option small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.task-total{text-align:right;white-space:nowrap;color:var(--muted)}.task-menu .task-visibility-toggle{color:var(--muted);cursor:pointer;font-size:11px;text-align:right}.task-menu .task-visibility-toggle:focus-visible,.task-menu .task-visibility-toggle:hover{color:var(--text);text-decoration:underline}.task-menu-group-header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:6px;gap:6px;align-items:center;padding:3px 0 5px}.task-menu-group-header button{min-width:0;min-height:28px;padding:4px 7px;font-size:11px}.task-menu-group-header button:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:7px;gap:7px;align-items:center;text-align:left;background:var(--subtle-head)}.task-menu-group-header button:first-child,.task-menu-group-header button:last-child{border-color:var(--line-soft);color:var(--muted)}.task-menu-group-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-menu-group-header em,.task-menu-group-header small{font-style:normal;color:var(--muted);font-size:11px}.hidden-task-group{opacity:.78}.task-menu-empty{padding:8px}.manual-head,.task-menu-empty{color:var(--muted);font-size:12px}.manual-head{background:var(--subtle-head)}.manual-row-bottom{display:grid;grid-template-columns:58px 26px minmax(0,1fr) 34px;grid-gap:6px;gap:6px}.manual-row-bottom input{width:100%}.manual-confirm{padding:10px}.approval-tools{display:grid;grid-template-columns:minmax(280px,1fr) auto;grid-gap:10px;gap:10px;align-items:end;padding:10px;border-bottom:1px solid var(--line-soft)}.approval-tools label{display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:12px}.approval-tools div{min-width:190px;color:var(--muted);font-size:12px}.approval-tools p{margin:5px 0 0;color:var(--muted)}.approval-pager{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-soft);color:var(--muted);font-size:12px}.approval-filter-group{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.approval-pager label{display:inline-flex;align-items:center;gap:6px}.approval-pager select{height:28px;min-width:72px;max-width:min(260px,34vw)}.approval-pager .approval-week-filter{display:inline-flex;align-items:center;gap:6px}.approval-failed-filter{white-space:nowrap}.approval-week-filter>span:first-child{color:var(--muted)}.approval-week-total{color:var(--text);font-size:12px;white-space:nowrap}.approval-pager button{width:30px;height:28px;padding:0}.approval-week-filter .week-picker button{width:32px;flex:0 0 32px}.approval-week-filter .week-picker .calendar-toggle{width:30px;flex:0 0 30px}.approval-week-filter .week-picker .approval-week-clear{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:auto;min-width:86px;flex:0 0 auto;white-space:nowrap}.approval-week-clear .tab-count{margin-left:0}.approval-pager>span{margin-left:auto}.approval-pager>.approval-filter-group{margin-left:0}.approval-list{max-height:520px;overflow:auto}.approval-employee-totals{display:flex;flex-wrap:wrap;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-soft);background:var(--panel-raised)}.approval-employee-totals button{display:inline-flex;align-items:center;gap:8px;max-width:360px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);text-align:left;cursor:pointer}.approval-employee-totals button:hover{border-color:var(--accent);background:var(--panel-raised)}.approval-employee-totals button.selected{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.approval-employee-totals small,.approval-employee-totals strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-employee-totals small,.approval-job{color:var(--muted)}.approval-job{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-soft);font-size:12px}.approval-job strong{color:var(--text)}.approval-job.succeeded strong{color:var(--green-text)}.approval-job.failed strong{color:var(--red-text)}.approval-job.cancelled strong,.approval-job.cancelling strong{color:var(--caution-text)}.approval-job small{flex-basis:100%}.approval-job time{margin-left:auto;color:var(--muted);font-size:11px}.approval-job time+.icon-button{margin-left:0}.approval-row{display:grid;grid-template-columns:18px 92px minmax(120px,170px) 92px minmax(190px,1fr) 64px minmax(150px,.55fr) minmax(180px,.75fr);grid-gap:8px;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line-soft);font-size:12px}.approval-row:hover{background:var(--panel-raised)}.approval-row.fake-approval{opacity:.72}.approval-row.failed-approval{color:var(--red-text)}.approval-row.failed-approval small,.approval-row.failed-approval strong{color:inherit}.approval-row-error{color:var(--red-text)}.approval-header{position:-webkit-sticky;position:sticky;top:0;z-index:1;color:var(--muted);font-size:11px;font-weight:700}.approval-header,.approval-header:hover{background:var(--subtle-head)}.approval-header button{height:auto;justify-content:flex-start;border:0;padding:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left}.approval-header button:hover{color:var(--text);background:transparent}.approval-row input{width:16px;height:16px}.approval-row button,.approval-row small,.approval-row span,.approval-row strong{min-width:0;overflow-wrap:anywhere}.approval-row small{color:var(--muted)}.pane-head h2{margin:0;font-size:16px}.pane-head input{width:min(220px,50%)}.list{max-height:360px;overflow:auto}.blocker,.editor,.empty,.row,.warn{display:grid;grid-template-columns:minmax(72px,auto) minmax(60px,auto) minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line-soft);font-size:12px}.editor{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.editor label{color:var(--muted)}.confirm{display:flex;align-items:center;gap:6px;white-space:nowrap}.confirm input{width:16px;height:16px}.row span,.row strong{overflow-wrap:anywhere}.row-dismiss{justify-self:end}.pill{border:1px solid var(--line);border-radius:999px;padding:2px 7px;background:var(--accent-soft);color:var(--pill-ink)}.create{background:var(--create-soft)}.patch{background:var(--patch-soft)}.warn{display:block;background:var(--warn-soft);color:var(--text);border-left:3px solid #f59e0b}.submit-panel .warn{background:var(--panel-raised);color:var(--caution-text);border-left-color:#f59e0b;border-bottom-color:var(--line-soft)}.blocker{display:block;background:var(--red);color:var(--red-text);border-bottom-color:color-mix(in srgb,var(--red-text) 35%,transparent)}.empty{display:block;color:var(--muted)}@media (max-width:1100px){.approval-panel,.approval-row,.approval-tools,.editor,.manual-days,.manual-panel,.manual-row,.panes,.recurring-grid,.submit-panel,.task-picker,.toolbar,.week-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar-logo{width:130px;height:32px}.actions{flex-wrap:wrap}.actions input{width:100%}.recurring-days,.recurring-grid>.primary{grid-column:auto;grid-row:auto}}