:root{--page:#f3f6fb;--surface:#fff;--surface-soft:#f8fafc;--surface-raised:#fff;--text:#172033;--muted:#64748b;--border:#dfe6ef;--border-soft:#edf0f5;--input:#fff;--primary:#2457d6;--primary-hover:#1d49b8;--primary-soft:#e8eefc;--primary-text:#173f9e;--success-bg:#e6f7ed;--success-text:#17643a;--warning-bg:#fff2ce;--warning-text:#7b5700;--danger-soft:#fef2f2;--danger-border:#fecaca;--danger-text:#b42318;--shadow:#2030500a;--shift-mix:white;color-scheme:light}
:root[data-theme=dark]{--page:#0d111a;--surface:#151b27;--surface-soft:#111722;--surface-raised:#1a2230;--text:#e8edf5;--muted:#9ba8ba;--border:#303b4c;--border-soft:#252f3e;--input:#101620;--primary:#6f9cff;--primary-hover:#8bb0ff;--primary-soft:#202f4f;--primary-text:#b8ceff;--success-bg:#123326;--success-text:#8be0b1;--warning-bg:#3a2d12;--warning-text:#f0ca73;--danger-soft:#391b20;--danger-border:#6d3038;--danger-text:#ff9ca7;--shadow:#00000040;--shift-mix:#151b27;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--page:#0d111a;--surface:#151b27;--surface-soft:#111722;--surface-raised:#1a2230;--text:#e8edf5;--muted:#9ba8ba;--border:#303b4c;--border-soft:#252f3e;--input:#101620;--primary:#6f9cff;--primary-hover:#8bb0ff;--primary-soft:#202f4f;--primary-text:#b8ceff;--success-bg:#123326;--success-text:#8be0b1;--warning-bg:#3a2d12;--warning-text:#f0ca73;--danger-soft:#391b20;--danger-border:#6d3038;--danger-text:#ff9ca7;--shadow:#00000040;--shift-mix:#151b27;color-scheme:dark}}
html,body{background:var(--page);color:var(--text)}body,header,.card,input,select,textarea,button,.button,.schedule-block,.employee-filter,.employee-list ul{transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}header{background:var(--surface);border-color:var(--border)}.brand{color:var(--text)}.card{background:var(--surface);border-color:var(--border);box-shadow:0 3px 14px var(--shadow)}a,.link{color:var(--primary)}button,.button,select,input,textarea{background:var(--input);border-color:var(--border);color:var(--text)}button:hover,.button:hover{border-color:var(--primary)}.primary{background:var(--primary);border-color:var(--primary);color:#fff}.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.button.active,.view-switch .active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.muted,.stat span,.stat small,.shift-row small,.month-title span,.day-number i,.files-heading p,.tile-date,.tile-body dt,.upload-card small,.attachment-row p,.breadcrumbs,.folder-tile small,.empty,.login-heading p{color:var(--muted)!important}.day,.single-calendar .day,.year-grid .day,.shift-row{border-color:var(--border-soft)}.shift-bar{background:color-mix(in srgb,var(--event-color) 24%,var(--shift-mix));color:var(--text)}.schedule-block{background:var(--surface-soft);border-color:var(--border)}.mini-day{color:var(--text)}.employee-filter{background:var(--surface-soft);border-color:var(--border)}.employee-list ul{background:var(--surface);border-color:var(--border)}.folder-tile{color:var(--text)}.message{background:var(--success-bg);color:var(--success-text)}.warning{background:var(--warning-bg);color:var(--warning-text)}.login-error{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger-text)}.errorlist,.error{color:var(--danger-text)}
.brand-zone{display:flex;align-items:center;gap:12px;min-width:max-content}.theme-toggle{position:relative;width:66px;height:32px;min-height:32px;padding:0;border:1px solid var(--border);border-radius:999px;background:linear-gradient(135deg,#dcecff,#fff3bf);box-shadow:inset 0 1px 3px #0001;overflow:hidden}.theme-toggle:hover{border-color:var(--primary)}.theme-sun,.theme-moon{position:absolute;top:50%;z-index:1;transform:translateY(-50%);font-size:17px;line-height:1}.theme-sun{left:8px;color:#c47a00}.theme-moon{right:8px;color:#6e6d94}.theme-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #16203340;transition:transform .25s cubic-bezier(.2,.8,.2,1),background .2s}.theme-toggle[aria-checked=true]{background:linear-gradient(135deg,#17233d,#303458)}.theme-toggle[aria-checked=true] .theme-knob{transform:translateX(34px);background:#e8edff}.theme-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:2px}
@media(max-width:700px){.brand-zone{gap:8px}.theme-toggle{width:58px;height:30px;min-height:30px}.theme-knob{width:22px;height:22px}.theme-toggle[aria-checked=true] .theme-knob{transform:translateX(28px)}.theme-sun{left:6px}.theme-moon{right:6px}}
:root,html,body{background-color:var(--page)!important}html{min-height:100%}body{min-height:100vh}main{min-height:calc(100vh - 64px)}option{background:var(--input);color:var(--text)}
.profile-section,#export-form{color:var(--text)}#export-form .employee-filter{background:var(--surface-soft)!important;border-color:var(--border)!important;color:var(--text)}#export-form .employee-list ul{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text)}#export-form .employee-list li,#export-form .checkbox-field li,#export-form .checkbox-field label{color:var(--text)}#export-form input[type=checkbox]{appearance:none;width:18px;height:18px;min-width:18px;margin:0;border:1px solid var(--border);border-radius:4px;background:var(--input);display:inline-grid;place-content:center;vertical-align:middle;cursor:pointer}#export-form input[type=checkbox]::before{content:"";width:9px;height:5px;border:solid #fff;border-width:0 0 2px 2px;transform:rotate(-45deg) scale(0);transition:transform .12s ease}#export-form input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}#export-form input[type=checkbox]:checked::before{transform:rotate(-45deg) scale(1)}#export-form input[type=checkbox]:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 40%,transparent);outline-offset:2px}#export-form input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}#export-form input:not([type=checkbox]),#export-form select{background:var(--input)!important;border-color:var(--border)!important;color:var(--text)!important}
@media(max-width:700px){main{min-height:calc(100vh - 58px)}}
@media(prefers-reduced-motion:reduce){body,header,.card,input,select,textarea,button,.button,.schedule-block,.employee-filter,.employee-list ul,.theme-knob{transition:none!important}}
