/* Типографика и интерактивные состояния. */
html,body {height:100%}
body {margin:0;overflow:hidden;color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.45;font-synthesis:none;-webkit-font-smoothing:antialiased;background:var(--bg)}
body::before {content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,rgba(17,28,40,.8),rgba(17,28,40,.3) 60%,rgba(17,28,40,.12)),var(--brand-bg) right bottom/cover no-repeat}
body::after {content:"";position:fixed;left:280px;bottom:24px;width:250px;height:260px;z-index:-1;pointer-events:none;background:var(--brand-logo) center/contain no-repeat;opacity:.055}
button,input,select,textarea {font:inherit;text-shadow:none;filter:none}
button,.seg,.ghost,.primary {min-height:36px;max-width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 13px;color:var(--text);background:var(--control);font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.03);transition:background-color .16s,border-color .16s,box-shadow .16s}
button.ghost,.ghost,button.small.ghost {color:var(--text);background:var(--control);border-color:var(--line)}
button:hover,button.ghost:hover,.seg:hover {background:var(--control-hover);border-color:var(--line-strong)}
button.primary,.seg.active,button.active,.chip.active,.task-tabs button.active {color:#fff;background:var(--primary);border-color:transparent}
button.primary:hover,button.active:hover {background:var(--primary-hover)}
button:active {transform:translateY(1px)}
button:disabled {opacity:.5;cursor:default}
button.small,.small {min-height:28px;padding:5px 9px;border-radius:8px;font-size:12px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {outline:2px solid var(--focus);outline-offset:3px}
input,select,textarea {width:100%;min-height:38px;border:1px solid var(--line-strong);border-radius:9px;padding:8px 11px;color:var(--text);background:var(--surface-solid);outline:none;box-shadow:none;font-weight:400}
input::placeholder,textarea::placeholder {color:var(--muted)}
select option {background:var(--surface-solid);color:var(--text)}
label {display:block;margin:8px 0 5px;color:var(--text-2);font-size:13px;font-weight:600}
h2,h3,h4,p {margin-top:0}
h2 {margin:0 0 4px;color:var(--text);font-size:28px;line-height:1.2;font-weight:650;letter-spacing:-.035em}
h3 {margin:0 0 14px;color:var(--text);font-size:18px;line-height:1.25;font-weight:600;letter-spacing:-.02em}
h4 {margin:0 0 8px;font-size:16px;font-weight:600}
.login-card h1 {margin:0 0 8px;text-align:center;font-size:30px;line-height:1.1;font-weight:600;letter-spacing:-.035em;color:var(--text)}
.login-card label {margin-top:12px;color:var(--text-2)}
.login-card input,.login-card select {height:42px;background:var(--surface-solid);color:var(--text);border-color:var(--line-strong)}
.week-toolbar h3 {margin-bottom:0}
.week-toolbar input {width:144px;min-height:30px;padding:4px 8px}
.shift-row label {display:flex;align-items:center;gap:6px;margin:0;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface-2);font-size:12px}
.shift-row label:has(input:checked) {border-color:var(--line-strong)}
.shift-row input {width:auto;min-height:auto}
.floating-menu button {width:44px}
.period-tabs button {flex:0 0 auto}
.compact-check input {width:16px;min-height:16px;margin:0;flex:0 0 16px}
.modal-card h2 {margin-right:48px}
.day-print-doc .day-doc-header h1 {font-size:22px;text-transform:uppercase}
.print-shift-pick label {display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
.print-shift-pick input {width:auto;min-height:auto}
input[type="checkbox"] {appearance:none;-webkit-appearance:none;width:16px;height:16px;min-width:16px;min-height:16px;max-width:16px;max-height:16px;margin:0 4px 0 0;padding:0;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface-solid);display:inline-grid;place-content:center;vertical-align:middle;flex:0 0 16px;cursor:pointer}
input[type="checkbox"]:checked {background:var(--primary);border-color:var(--primary)}
input[type="checkbox"]:checked::after {content:"";width:8px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.login-exchange-box button {margin:0 auto;max-width:100%}
.section-head-row h3 {margin:0}
.settings-row button {flex:0 0 auto}
.data-table button {margin:2px;white-space:normal}
@keyframes loginCardIn {from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes loginCardOut {to{opacity:0;transform:translateY(-8px)}}
@keyframes logoReveal {from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes uteMapSquarePulse {0%{opacity:1;box-shadow:0 0 18px rgba(80,235,255,.72)}50%{opacity:.3}100%{opacity:0;box-shadow:none}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
