/* ProfitM UI resources v1. Load after layout and section CSS. See docs/DESIGN.md. */
:root {
  --font-ui: "Segoe UI", Arial, sans-serif;
  --font-code: Consolas, monospace;
  --icon-ink: #000;
  --brand: #fe6a00;
  --brand-dark: #a64300;
  --brand-soft: #fff0e7;
  --text: #26313d;
  --subtext: #526173;
  --ink: var(--text);
  --muted: var(--subtext);
  --green: #08704f;
  --green-soft: #e7f6f0;
  --red: #aa2936;
  --red-soft: #fdecee;
  --yellow: #775300;
  --yellow-soft: #fff4d6;
  --line: #d3d9e1;
  --edge: #c7cfd9;
  --surface: #f1f3f6;
  --surface-2: #fff;
  --input: #f4f6f9;
  --glass: rgba(255,255,255,.66);
  --glass-strong: rgba(255,255,255,.94);
  --shadow-dark: rgba(169,177,188,.42);
  --shadow-light: rgba(255,255,255,.95);
  --ui-radius-control: 9px;
  --ui-radius-panel: 12px;
  --ui-radius-dialog: 15px;
  --ui-panel-edge: rgba(255,255,255,.84);
  --ui-shadow-panel: 9px 9px 22px var(--shadow-dark),-9px -9px 22px var(--shadow-light),inset 1px 1px rgba(255,255,255,.3);
  --ui-shadow-control: 4px 4px 10px var(--shadow-dark),-4px -4px 10px var(--shadow-light);
  --ui-shadow-input: inset 3px 3px 8px var(--shadow-dark),inset -3px -3px 8px var(--shadow-light);
  --ui-shadow-overlay: 0 16px 40px #0003;
  --ui-blur-panel: blur(22px) saturate(118%);
  --ui-scroll: #a9b1bc;
  --ui-on-brand: #271300;
  --ui-notice-success: #08704f;
  --ui-notice-error: #aa2936;
  --day-bg:rgba(255,255,255,.72);--day-ink:#25313e;
  --off-bg:#ffe083;--off-ink:#503600;
  --leave-bg:#f4abb7;--leave-ink:#581522;
  --extra-bg:#75d9ed;--extra-ink:#073e4c;
  --weekend-bg:#a3dcb1;--weekend-ink:#173f24;
  --absence-bg:#a6aebb;--absence-ink:#202b39;
  color-scheme: light;
}
:root[data-theme=dark] {
  --icon-ink: #fff;
  --brand-dark: #ff9b64;
  --brand-soft: #39271d;
  --text: #edf1f5;
  --subtext: #aeb8c4;
  --green: #65d8ac;
  --green-soft: #163c30;
  --red: #ff9da7;
  --red-soft: #47262e;
  --yellow: #ffd43b;
  --yellow-soft: #40351b;
  --line: #ffffff1a;
  --edge: #46515e;
  --surface: #15191e;
  --surface-2: #181d23;
  --input: #171c22;
  --glass: rgba(31,35,40,.78);
  --glass-strong: rgba(28,33,40,.96);
  --shadow-dark: rgba(0,0,0,.58);
  --shadow-light: rgba(63,72,83,.17);
  --ui-panel-edge: rgba(255,255,255,.1);
  --ui-shadow-panel: 0 24px 42px rgba(0,0,0,.46),0 6px 14px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.16);
  --ui-scroll: #746053;
  --day-bg:rgba(48,55,64,.72);--day-ink:#f0f3f7;
  --off-bg:#66501a;--off-ink:#fff2b8;
  --leave-bg:#71303e;--leave-ink:#ffe2e7;
  --extra-bg:#07596c;--extra-ink:#c9faff;
  --weekend-bg:#295936;--weekend-ink:#d9ffe3;
  --absence-bg:#646875;--absence-ink:#fff;
  color-scheme: dark;
}
body {font-family:var(--font-ui);color:var(--text)}
.theme-icon {display:inline-flex;align-items:center;justify-content:center}
.theme-icon svg {width:18px;height:18px;flex:none}
button,input,textarea,select {font-family:var(--font-ui)}
button.pm-button-busy {position:relative}
button.pm-button-busy::before {content:"";position:absolute;left:12px;top:50%;width:12px;height:12px;margin-top:-7px;border:2px solid color-mix(in srgb,currentColor 28%,transparent);border-top-color:currentColor;border-radius:50%;animation:pm-button-spin .8s linear infinite}
@keyframes pm-button-spin {to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){button.pm-button-busy::before{animation:none}}
label {color:var(--subtext)}
a,.link-button,.row-action,.account-logout,.eyebrow {color:var(--brand-dark)}
td code,.result code,.dialog-message code,.stats .accent-card strong {font-family:var(--font-code)}
.planning-main td:first-child {font-family:var(--font-ui)}
.panel,.stats article,:root[data-theme=dark] .panel,:root[data-theme=dark] .stats article {
  background:var(--glass);border:1px solid var(--ui-panel-edge);border-radius:var(--ui-radius-panel);
  box-shadow:var(--ui-shadow-panel);backdrop-filter:var(--ui-blur-panel);-webkit-backdrop-filter:var(--ui-blur-panel);
}
.primary {color:var(--ui-on-brand);background:var(--brand)}
.primary:hover {background:var(--brand);color:var(--ui-on-brand)}
.account-avatar {color:var(--ui-on-brand)}
.secondary,.theme-toggle {border-radius:var(--ui-radius-control);box-shadow:var(--ui-shadow-control)}
input,textarea,.planning-fields select {
  color:var(--text);background:var(--input);border:1px solid var(--edge);
  border-radius:var(--ui-radius-control);box-shadow:var(--ui-shadow-input);padding:11px 12px;
}
input:focus,textarea:focus,select:focus-visible {outline:2px solid var(--brand);outline-offset:2px}
.source-option.active,.edit-source.active {color:var(--brand-dark)}
.badge.defective,:root[data-theme=dark] .badge.defective {color:var(--yellow)}
.result {color:var(--brand-dark)}
.result code {color:var(--text)}
.notice {background:var(--ui-notice-success);color:#fff}
.notice.error {background:var(--ui-notice-error)}
dialog,.action-menu,:root[data-theme=dark] .action-menu,.ui-tooltip {
  background:var(--glass-strong);color:var(--text);box-shadow:var(--ui-shadow-overlay);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
}
dialog {border-radius:var(--ui-radius-dialog);max-height:calc(100dvh - 32px);overflow:auto}
dialog::backdrop {background:#10232799}
dialog .close {color:var(--subtext)}
.action-menu,.ui-tooltip {border-radius:var(--ui-radius-panel);border:1px solid var(--edge)}
.action-menu {max-height:calc(100dvh - 24px);overflow:auto}
.planning-fields select:disabled,input:disabled,textarea:disabled {opacity:.6;cursor:not-allowed}
@supports(appearance:base-select){
  .planning-fields select::picker(select){
    background:var(--glass-strong);color:var(--text);border:1px solid var(--edge);
    border-radius:var(--ui-radius-panel);box-shadow:var(--ui-shadow-overlay);
    backdrop-filter:blur(24px);max-height:min(360px,60dvh);overflow:auto;
  }
  .planning-fields option:hover,.planning-fields option:checked {background:var(--brand-soft);color:var(--brand-dark)}
}
.planning-main button[data-cell] {border-radius:0;box-shadow:none}
.planning-main button[data-cell]:hover {box-shadow:inset 0 0 0 1px var(--brand),inset 0 0 18px #fe6a0030}
.planning-main .dow,.planning-main .row small {color:var(--subtext)}
*,html,:root[data-theme=dark],:root[data-theme=dark] .table-wrap,.table-wrap {
  scrollbar-width:thin;scrollbar-color:var(--ui-scroll) transparent;
}
*::-webkit-scrollbar {width:10px;height:10px}
*::-webkit-scrollbar-thumb,html::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb,
:root[data-theme=dark]::-webkit-scrollbar-thumb,:root[data-theme=dark] .table-wrap::-webkit-scrollbar-thumb {
  background:var(--ui-scroll);border:2px solid transparent;background-clip:padding-box;border-radius:999px;
}
@media(max-width:600px){input,textarea,.planning-fields select{font-size:16px}}
/* Shared time picker: browser-independent selection colours. */
.pm-time {position:relative}
.pm-time input {padding-right:44px;width:100%}
.pm-time-toggle {position:absolute;right:5px;top:4px;width:36px;height:36px;display:grid;place-items:center;background:transparent;color:var(--subtext);border:0;border-radius:var(--ui-radius-control)}
.pm-time-toggle svg {width:19px;height:19px}
.pm-time-toggle:hover {color:var(--brand-dark);background:var(--brand-soft)}
.pm-time-picker {margin-top:8px;padding:12px;background:var(--glass-strong);border:1px solid var(--edge);border-radius:var(--ui-radius-panel);box-shadow:var(--ui-shadow-overlay)}
.pm-time-picker[hidden] {display:none}
.pm-time-columns {display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pm-time-heading {color:var(--subtext);margin-bottom:8px;font-size:12px}
.pm-time-options {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-height:180px;overflow:auto;padding:2px}
.pm-time-options button {min-height:36px;padding:6px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--ui-radius-control);box-shadow:none}
.pm-time-options button:hover {background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark)}
.pm-time-options button[aria-pressed=true] {background:var(--brand);color:var(--ui-on-brand);border-color:var(--brand);box-shadow:0 0 10px #fe6a0030}
.pm-time-options button:focus-visible {outline:2px solid var(--brand);outline-offset:-2px}
.pm-time-done {margin-top:10px;width:100%}
/* Compact overlays do not resize the form. */
.pm-time-picker,.pm-date-picker {position:fixed;z-index:50;width:218px;max-width:calc(100vw - 32px);margin:0;padding:10px;background:var(--glass-strong);color:var(--text);border:1px solid var(--edge);border-radius:var(--ui-radius-control);box-shadow:var(--ui-shadow-overlay);font-size:12px;backdrop-filter:blur(24px)}
.pm-time-columns {display:block}
.pm-time-row {display:grid;grid-template-columns:1fr 28px 40px 28px;align-items:center;gap:5px;margin-bottom:6px}
.pm-time-heading {margin:0}
.pm-time-row button,.pm-date-picker button {background:transparent;color:var(--text);border:0;box-shadow:none;border-radius:6px;padding:4px;min-height:28px;font-size:12px}
.pm-time-row [role=spinbutton] {text-align:center;padding:6px;background:var(--brand);color:var(--ui-on-brand);border-radius:6px;touch-action:none}
.pm-time-row button:hover,.pm-date-picker button:hover {background:var(--brand-soft);color:var(--brand-dark)}
.pm-time-row [role=spinbutton]:focus-visible {outline:2px solid var(--brand);outline-offset:2px}
.pm-time-done {padding:5px;font-size:12px;margin-top:3px}
.pm-date-picker[hidden] {display:none}
.pm-date-head {display:grid;grid-template-columns:24px 1fr 24px;align-items:center;margin-bottom:6px;text-align:center}
.pm-date-head strong {font-size:12px}
.pm-date-grid {display:grid;grid-template-columns:repeat(7,1fr);gap:1px;text-align:center}
.pm-date-grid span {color:var(--subtext);padding:5px 0}
.pm-date-grid button.adjacent {color:var(--subtext)}
.pm-date-grid button[aria-pressed=true] {background:var(--brand);color:var(--ui-on-brand)}
.pm-date-picker .pm-date-today {color:var(--brand-dark);width:100%;margin-top:5px}
.pm-native-choice {display:none!important}
.pm-choice {position:relative;min-width:0}
.pm-choice-icon {flex:0 0 auto}
.pm-choice-trigger {width:100%;text-align:left;color:var(--text);background:var(--input);border:1px solid var(--edge);border-radius:var(--ui-radius-control);box-shadow:var(--ui-shadow-input);padding:11px 12px;font:inherit}
.pm-choice-popup {position:fixed;z-index:60;width:218px;max-width:calc(100vw - 32px);max-height:280px;overflow:auto;padding:8px;background:var(--glass-strong);color:var(--text);border:1px solid var(--edge);border-radius:var(--ui-radius-control);box-shadow:var(--ui-shadow-overlay);backdrop-filter:blur(24px)}
.pm-choice-popup[hidden] {display:none}
.pm-choice-popup button {color:var(--text);background:transparent;border:0;box-shadow:none;border-radius:6px;font-size:12px;padding:8px}
.pm-choice-options {display:grid;gap:3px}
.pm-choice-options button {text-align:left}
.pm-month-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.pm-choice-popup button:hover {color:var(--brand-dark);background:var(--brand-soft)}
.pm-choice-popup button[aria-pressed=true] {background:var(--brand);color:var(--ui-on-brand)}
.pm-choice-popup button:focus-visible {outline:2px solid var(--brand);outline-offset:-2px}

.planning-main .pane.scroll {cursor:grab;user-select:none}
.planning-main .pane.scroll.dragging,.planning-main .pane.scroll.dragging * {cursor:grabbing!important}

.role-hidden {display:none!important}
#settingsButton {position:fixed;right:22px;top:18px;z-index:70;color:var(--brand);padding:8px;width:40px;height:40px}
#settingsButton svg {width:22px;height:22px}
.hub-menu {position:fixed;z-index:80;right:22px;top:64px;width:250px;padding:12px;max-height:calc(100dvh - 90px);overflow:auto;background:var(--glass-strong);border:1px solid var(--edge);border-radius:var(--ui-radius-panel);box-shadow:var(--ui-shadow-overlay)}
.hub-menu[hidden] {display:none}
.hub-menu .account-card {margin-top:10px}.hub-menu .theme-toggle {margin-bottom:8px}
#appView .topbar {padding-right:62px}
#mobileNav {display:none}
@media(max-width:700px){
 #appView .sidebar {display:none!important}#appView {display:block}#appView main {margin-left:0!important;padding-bottom:95px!important}
 #mobileNav {display:flex;position:fixed;bottom:0;left:0;right:0;z-index:65;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--glass-strong);border-top:1px solid var(--edge);backdrop-filter:blur(24px)}
 #mobileNav button {flex:1;display:grid;justify-items:center;gap:4px;background:transparent;color:var(--text);border:0;box-shadow:none;font-size:11px;padding:6px}
 #mobileNav button svg {width:21px;height:21px}#mobileNav button:disabled {opacity:.4}
 #mobileMore {top:auto;bottom:85px}#settingsButton {right:12px;top:10px}
}

#ofdMain>header,.planning-heading {padding-right:56px}
#mobileMore button {display:block;width:100%;padding:10px;background:transparent;color:var(--text);border:0}
@media(max-width:700px){#sidebarReveal{display:none!important}}


@media(max-width:700px){#appView main{width:100%!important}}
/* Desktop settings stay at the foot of the sidebar; mobile keeps the top gear. */
@media(min-width:701px){
 #settingsButton {top:auto;right:auto;bottom:20px;left:16px}
 #settingsMenu {top:auto;right:auto;bottom:70px;left:16px}
 #ofdMain>header,.planning-heading {padding-right:0}
}
.sidebar .nav-item.muted,.sidebar .nav-item.muted:disabled {opacity:.45!important;color:var(--subtext)!important;background:transparent!important;box-shadow:none!important;border-color:transparent!important}
/* Settings popup never inherits compact rail typography. */
.sidebar-collapsed #settingsMenu .theme-text,.sidebar-collapsed #settingsMenu .account-info,.sidebar-collapsed #settingsMenu .account-logout {display:block}
.sidebar-collapsed #settingsMenu .sidebar-theme {justify-content:flex-start;padding:11px 14px;width:100%}
.sidebar-collapsed #settingsMenu .account-card {justify-content:flex-start;padding:12px;border:1px solid var(--line)}
.sidebar-collapsed #settingsMenu .account-avatar {width:36px;height:36px;flex:none}
#appView .sidebar-collapse,#appView .sidebar-collapse:hover,#appView .sidebar-collapse:active {background:transparent;border:0;box-shadow:none;border-radius:0;color:var(--subtext)}
#appView .sidebar-collapse:hover {color:var(--brand-dark)}
@media(max-width:700px){
 .planning-main .pane table {table-layout:auto}
 .planning-main .pane th:not(:first-child),.planning-main .pane td:not(:first-child) {min-width:68px;width:68px}
 .planning-main .pane th:first-child,.planning-main .pane td:first-child {white-space:nowrap;min-width:140px;max-width:220px;overflow:hidden;text-overflow:ellipsis}
 .planning-main .pane tbody tr,.planning-main .pane tbody td {height:52px}
}
/* Shared mobile shell and selected-day schedule, approved HUB-022. */
#settingsButton {display:grid;place-items:center;line-height:1;padding:0}
#settingsButton svg {display:block;flex:none}
.mobile-day-view {display:none}
@media(max-width:700px){
 #appView main {padding-top:64px!important;padding-bottom:112px!important}
 #ofdMain>header,.planning-heading {padding-right:0}
 #mobileNav {left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));border:1px solid var(--edge);border-radius:999px;padding:8px 10px;background:var(--glass-strong);box-shadow:var(--ui-shadow-overlay);overflow:hidden}
 #mobileNav button {border-radius:999px;min-height:48px}
 #mobileNav button[aria-current=page] {color:var(--brand-dark);background:var(--brand-soft)}
 #mobileMore {bottom:calc(94px + env(safe-area-inset-bottom))}
 .planning-main .pane.scroll {display:none}
 .mobile-day-view {display:block;margin-top:18px}
 .mobile-date-strip {display:flex;gap:6px;overflow-x:auto;padding:3px 1px 9px;scrollbar-width:thin}
 .planning-main .mobile-date-strip button {flex:0 0 44px;min-height:54px;padding:7px 3px;box-shadow:none}
 .mobile-date-strip small {display:block;margin-top:4px}
 .planning-main .mobile-date-strip button[aria-pressed=true] {background:var(--brand);color:var(--ui-on-brand);border-color:var(--brand)}
 .mobile-day-view h3 {font-size:18px;text-transform:capitalize;margin:14px 0}
 .mobile-day-list {display:grid;gap:8px}
 .mobile-shift {border:1px solid var(--edge);border-radius:var(--ui-radius-control);overflow:hidden}
 .planning-main .mobile-shift>div,.planning-main .mobile-shift>button {display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:64px;padding:12px;background:transparent;color:inherit;text-align:left;border:0;box-shadow:none;font:inherit}
 .mobile-shift>div>span,.mobile-shift>button>span {min-width:0;overflow-wrap:anywhere;font-size:14px}
 .mobile-shift strong {flex:0 0 auto;max-width:44%;font-size:14px;text-align:right}
 .planning-main .mobile-shift .selected-cell {box-shadow:inset 0 0 0 2px var(--brand)}
}
@media(max-width:700px){
 .planning-main .mobile-shift>button,.planning-main .mobile-shift>div {white-space:normal}
 .mobile-shift>div>span,.mobile-shift>button>span {flex:1 1 0;white-space:normal}
 .mobile-shift strong {white-space:normal}
}
/* Calendar days off use the same palette as the full schedule header. */
.planning-main .mobile-date-strip button.calendar-off {
 background:var(--weekend-bg);color:var(--weekend-ink);
}
.planning-main .mobile-date-strip button.calendar-off[aria-pressed=true] {
 background:var(--weekend-bg);color:var(--weekend-ink);border-color:var(--brand);
 box-shadow:inset 0 0 0 1px var(--brand);
}
/* Full schedule names always reserve two lines, including names without patronymic. */
.planning-main .grid-person .grid-name-line {display:block;white-space:nowrap;line-height:20px;min-height:20px;overflow:hidden;text-overflow:ellipsis}
.planning-main .pane.scroll tbody tr {height:60px}
.planning-main .pane.scroll td.grid-person {min-width:190px;width:190px;max-width:240px;padding:9px 8px;vertical-align:middle}
/* Role-aware OFD layout: a hidden issue form must not leave the registry in its column. */
/* Icon controls have no surface, including in collapsed navigation. Full buttons retain their styling. */
:root .pm-icon-button,
:root .sidebar-collapsed .sidebar .nav-item {
 background:transparent!important;border-color:transparent!important;box-shadow:none!important;
 border-radius:0!important;color:var(--icon-ink)!important;text-shadow:none!important;filter:none!important;
}
:root .pm-icon-button:not(:focus-visible) {outline:none!important}
:root .pm-icon-button:not(:disabled):not([aria-disabled=true]):hover,
:root .sidebar-collapsed .sidebar .nav-item:not(:disabled):not([aria-disabled=true]):not(.muted):hover,
:root .sidebar-collapsed .sidebar .nav-item.active {color:var(--brand)!important}
:root .pm-icon-button:disabled,:root .pm-icon-button[aria-disabled=true] {opacity:.3;cursor:default}
:root .pm-icon-button:focus-visible {outline:2px solid var(--brand);outline-offset:2px}
:root .account-logout.pm-icon-button {display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;min-width:40px;min-height:40px;padding:0}
:root .account-logout.pm-icon-button svg {width:21px;height:21px}
.planning-heading[hidden] {display:none}
.planning-heading {justify-content:flex-end;min-height:40px;margin-bottom:8px}
.planning-heading input {width:auto}
.schedule-month-nav {display:flex;align-items:center;gap:6px;max-width:100%;min-width:0}
.schedule-month-nav h2 {white-space:nowrap;min-width:0}
.planning-main .schedule-month-arrow {display:grid;place-items:center;flex:0 0 36px;width:36px;height:44px;min-width:36px;padding:0;border:0;font-size:30px;font-weight:400;line-height:1;cursor:pointer}
.planning-main .schedule-month-picker {display:grid;place-items:center;flex:0 0 36px;width:36px;height:44px;min-width:36px;padding:0}
.planning-main .schedule-month-picker svg {width:20px;height:20px}
.schedule-extra-hours {display:block;margin-top:2px}
.schedule-footer {display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap;color:var(--subtext);font-size:12px;line-height:1.35}
.schedule-status {white-space:nowrap}
.schedule-legend {display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.schedule-legend>span {display:inline-flex;align-items:center;gap:6px}
.schedule-legend i {display:block;flex:0 0 12px;width:12px;height:12px;border-radius:3px;border:1px solid color-mix(in srgb,var(--edge) 66%,transparent)}
.schedule-preview-entry {display:block;width:100%;margin-bottom:8px;text-align:left}
.schedule-preview-entry[hidden] {display:none}
.schedule-person {display:flex;align-items:center;gap:4px;min-width:0}
.schedule-person-name {display:block;min-width:0;flex:1}
.planning-main .schedule-row-handle {display:grid;place-items:center;flex:0 0 24px;min-width:24px;width:24px;height:38px;min-height:38px;padding:0;border:0;cursor:grab;touch-action:none}
.schedule-row-handle svg {height:22px;width:16px;pointer-events:none}
.schedule-row-handle:active {cursor:grabbing}
.schedule-dragging {opacity:.6}
.schedule-drop-before {box-shadow:0 -2px var(--brand)}
.schedule-drop-after {box-shadow:0 2px var(--brand)}
.planning-main .mobile-shift {position:relative}
.planning-main .mobile-shift:has(.schedule-row-handle)>button[data-cell] {padding-left:42px}
.planning-main .mobile-shift>.schedule-row-handle {position:absolute;left:4px;top:0;bottom:0;height:100%;width:32px;min-width:32px;padding:0}
@media(max-width:700px){
 .planning-main .heading {justify-content:center}
 .schedule-month-nav {justify-content:center;gap:2px}
 .planning-main .schedule-month-arrow {width:40px;min-width:40px;flex-basis:40px;height:44px}
 .planning-main .schedule-month-picker {width:40px;min-width:40px;flex-basis:40px;height:44px}
 .planning-main .schedule-month-nav h2 {font-size:clamp(21px,6.4vw,26px)}
 .planning-heading {margin-bottom:14px}
 .schedule-footer {display:block;font-size:12px}
 .schedule-status {display:block;margin-bottom:12px}
 .schedule-legend {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
 .schedule-legend>span {min-width:0}
}
.app-shell .workspace.registry-only {grid-template-columns:minmax(0,1fr)}
/* Vacations share the portal surfaces, fields and controls. */
.app-shell .vacations-main {height:auto;min-height:100dvh;min-width:0;padding-top:24px;container-type:inline-size;color:var(--text)}
.vac-heading,.vac-title,.vac-actions,.vac-year {display:flex;align-items:center;gap:12px}
.vac-heading {justify-content:space-between;margin:0 0 24px;flex-wrap:wrap}
.vac-heading h2 {margin:0;font-size:30px;letter-spacing:-.5px}
.vac-year {gap:4px;font-variant-numeric:tabular-nums}
.vac-year strong {min-width:44px;text-align:center}
.vac-icon {width:40px;height:44px;flex-shrink:0}
.vac-icon svg {width:20px;height:20px}
.vac-total {border:1px solid var(--ui-panel-edge);border-radius:var(--ui-radius-panel);background:var(--glass);box-shadow:var(--ui-shadow-panel)}
.vac-panel {overflow:hidden;margin-top:18px}
.vac-table-wrap {overflow:auto}
.vac-table {width:100%;table-layout:fixed;font-family:var(--font-ui);font-size:13px}
.vac-table col:nth-child(1) {width:49%}
.vac-table col:nth-child(2) {width:18%}
.vac-table col:nth-child(3) {width:33%}
.vac-table th {height:40px;padding:0 10px;background:var(--surface-2);white-space:normal;line-height:1.4}
.vac-table td {height:52px;padding:0 10px;vertical-align:middle;line-height:1.45}
.vac-table .vac-person {font-family:var(--font-ui);min-width:0;white-space:normal}
.vac-table .vac-number {font-size:13px;font-variant-numeric:tabular-nums;text-align:center;color:var(--text)}
.vac-table th:nth-child(2) {text-align:center}
.vac-table .vac-period {font-size:13px;color:var(--text);white-space:normal}
.vac-table tbody tr:last-child td {border-bottom:0}
.vac-list-row+.vac-list-row {border-top:1px solid var(--line)}
.vac-name {appearance:none;display:flex;align-items:center;width:100%;height:44px;border:0;background:none!important;box-shadow:none!important;color:var(--text);font:inherit;text-align:left;padding:0;cursor:pointer;min-width:0}
.vac-name span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vac-name:hover {color:var(--brand)}
.vac-status {display:block;margin-top:4px;color:var(--subtext);font-size:12px;line-height:1.4}
.vac-status-warning {color:var(--brand-dark)}
.vac-totals {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.vac-total {padding:20px;display:grid;gap:12px}
.vac-total strong {font-size:30px;overflow-wrap:anywhere}
.vac-total:last-child strong {color:var(--brand-dark)}
.vac-next {display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0;padding:20px;border-radius:14px;background:var(--brand-soft)}
.vac-next h3 {margin:8px 0 0}
.vac-list-row {padding:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.vac-list-title {display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:8px}
.vac-empty {padding:20px;color:var(--subtext)}
.vac-dialog {width:min(620px,calc(100vw - 24px))}
.vac-dialog .vac-fields {padding:0 22px}
.vac-fields label {display:grid;gap:8px;margin:16px 0;min-width:0}
.vac-fields input,.vac-fields select {width:100%;min-width:0}
.vac-form-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.vac-notice {padding:12px;border-radius:10px;background:var(--brand-soft);color:var(--text)}
.vac-dialog .form-error:empty {display:none}
.vac-dialog .form-error:not(:empty) {margin:16px 22px}
.vac-change-list {max-height:180px;overflow:auto;font-size:13px;line-height:1.9}
@container(max-width:600px){
 .vac-employees {padding:8px 10px}
 .vac-table col:nth-child(1) {width:43%}
 .vac-table col:nth-child(2) {width:23%}
 .vac-table col:nth-child(3) {width:34%}
 .vac-table th {height:54px;padding:0 5px;font-size:11px;text-transform:none;letter-spacing:0;font-weight:600}
 .vac-table td {height:88px;padding:0 5px}
 .vac-name {height:76px}
 .vac-name span {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
}
@media(max-width:700px){
 .app-shell .vacations-main {padding-top:64px;padding-bottom:110px}
 .vac-heading {gap:16px;margin-bottom:18px}
 .vac-heading h2 {font-size:26px}
 .vac-heading>.vac-actions {flex-wrap:wrap}
 .vacations-main[data-view=management] .vac-heading>.vac-actions {width:100%;justify-content:space-between}
 .vac-totals {gap:8px;margin:18px 0}
 .vac-total {padding:14px 10px;border-radius:12px}
 .vac-total .help {font-size:11px}
 .vac-total strong {font-size:24px}
 .vac-next,.vac-list-row {padding:16px}
 .vac-list-title {display:grid;gap:6px}
 .vac-next>span {font-size:13px;white-space:nowrap}
 .vac-form-grid {grid-template-columns:1fr;gap:0}
}
#ofdMain>header,#ofdMain>.stats {flex-shrink:0}
#ofdMain .registry-panel {min-width:0}
@media(min-width:701px) and (max-height:740px){
 .app-shell #ofdMain {height:auto;min-height:100dvh}
 #ofdMain .workspace {flex:none}
 #ofdMain .registry-panel {height:auto;min-height:340px}
 #ofdMain .registry-panel .table-wrap {flex:none;max-height:55dvh;min-height:220px}
}
:root[data-test-environment="true"] { --test-banner-height: 36px; }
.test-environment-banner { position: sticky; top: 0; z-index: 9999; min-height: 36px; display: flex; align-items: center; justify-content: center; padding: 5px 12px; font-size: 13px; color: var(--text); background: var(--glass-strong); border-bottom: 2px solid var(--brand); text-align: center; }
.app-shell .finance-main { height:auto; min-height:100dvh; display:block; min-width:0; }
#finance-absence { border:0; padding:0; margin:20px 0 0; min-width:0; }
#finance-absence legend { padding:0; color:var(--subtext); font-size:13px; }
.finance-heading,.finance-title,.finance-month,.finance-panel-head,.finance-toolbar,.finance-footer,.finance-detail-total { display:flex; align-items:center; gap:16px; }
.finance-heading,.finance-footer,.finance-detail-total { justify-content:space-between; }
.finance-heading { margin: 6px 0 24px; flex-wrap:wrap; }
.finance-title { min-width:0; }
.finance-title h2 { margin:0; font-size:28px; overflow-wrap:anywhere; }
.finance-month { flex-shrink:0; gap:8px; }
.finance-month>span { min-width:150px; text-align:center; font-size:20px; }
.finance-toolbar { flex-wrap:wrap; margin-bottom:24px; }
.finance-toolbar span,.finance-total,.finance-detail-total strong { color:var(--brand-dark); }
.finance-panel { padding:0; overflow:hidden; margin:20px 0; }
.finance-table { width:100%; table-layout:fixed; border-collapse:collapse; }
.finance-table col:first-child { width:60%; }
.finance-table col:nth-child(2) { width:18%; }
.finance-table col:last-child { width:22%; }
.finance-table th,.finance-table td { padding:10px 20px; height:52px; font-size:13px; border-bottom:1px solid var(--edge); }
.finance-table th { color:var(--subtext); font-weight:400; }
.finance-table td:not(:first-child),.finance-table th:not(:first-child) { text-align:right; }
.finance-table tr:last-child td { border-bottom:0; }
:root .finance-name,:root .finance-text-action { background:transparent; border:0; box-shadow:none; padding:0; color:var(--text); font:inherit; text-decoration:none; cursor:pointer; }
:root .finance-name { display:block; text-align:left; width:100%; line-height:1.5; }
:root .finance-text-action { display:inline-flex; align-items:center; min-height:44px; font-size:13px; white-space:nowrap; }
:root .finance-name:not(:disabled):hover,:root .finance-text-action:not(:disabled):hover { background:transparent; box-shadow:none; color:var(--brand-dark); border:0; }
.finance-panel-head { padding:18px 20px; border-bottom:1px solid var(--edge); }
.finance-panel-head:last-child { border-bottom:0; }
.finance-panel-head h3 { margin:0 auto 0 0; font-size:18px; }
.finance-entry { display:grid; grid-template-columns:minmax(0,1fr) auto 112px; align-items:center; gap:16px; padding:16px 20px; border-bottom:1px solid var(--edge); }
.finance-entry:last-child { border-bottom:0; }
.finance-description { min-width:0; overflow-wrap:anywhere; }
.finance-description small { display:block; margin-top:6px; color:var(--subtext); font-size:13px; }
.finance-actions { display:flex; align-items:center; gap:14px; }
.finance-main .pm-icon-button,.finance-dialog .pm-icon-button { display:grid; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; }
.finance-main .pm-icon-button svg,.finance-dialog .pm-icon-button svg { width:20px; height:20px; }
.finance-amount { text-align:right; font-variant-numeric:tabular-nums; font-size:14px; font-weight:400; white-space:nowrap; }
.finance-negative { color:var(--red); }
.finance-excluded { text-decoration:line-through; opacity:.65; }
.finance-empty { margin:0; padding:22px 20px; color:var(--subtext); }
.finance-detail-total { margin:25px 0; }
.finance-detail-total strong { font-size:24px; white-space:nowrap; }
.finance-footer { flex-wrap:wrap; margin-top:22px; font-size:13px; color:var(--subtext); }
.finance-footer>span:first-child { color:var(--brand-dark); }
.finance-days-mobile { display:none; }
.finance-returns { margin:16px 0; }
.finance-form-fields { display:grid; gap:14px; }
.finance-dialog { max-width:min(560px,calc(100vw - 24px)); }
.finance-dialog textarea { min-height:90px; }
.finance-review-source { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:10px 0; border-bottom:1px solid var(--edge); }
.finance-review-source span { color:var(--subtext); }
.finance-review-source strong { white-space:nowrap; font-variant-numeric:tabular-nums; }
.finance-main[aria-busy="true"] { cursor:progress; }
@media(max-width:600px){
 .finance-main { padding:20px 14px 100px; }
 .finance-heading { gap:12px; }
 .finance-title h2 { font-size:23px; }
 .finance-month { margin-left:auto; }
 .finance-month>span { font-size:17px; min-width:135px; }
 .finance-toolbar { gap:10px; }
 .finance-table col:first-child { width:48%; }
 .finance-table col:nth-child(2) { width:20%; }
 .finance-table col:last-child { width:32%; }
 .finance-table th,.finance-table td { padding:10px; }
 .finance-table td { height:88px; }
 .finance-table th { height:52px; }
 .finance-days-desktop { display:none; }
 .finance-days-mobile { display:inline; }
 .finance-entry { grid-template-columns:minmax(0,1fr) 104px; gap:8px; padding:16px 12px; }
 .finance-entry .finance-description { grid-column:1; grid-row:1; }
 .finance-entry .finance-amount { grid-column:2; grid-row:1; }
 .finance-entry .finance-actions { grid-column:1/-1; grid-row:2; flex-wrap:wrap; }
 .finance-panel-head { padding:16px 12px; gap:10px; flex-wrap:wrap; }
 .finance-panel-head h3 { font-size:16px; }
 .finance-panel-head .finance-amount { margin-left:auto; }
 .finance-detail-total { gap:10px; }
 .finance-detail-total strong { font-size:21px; }
}
