/* 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;
  --accent-cyan: #18c8e8;
  --accent-cyan-ink: #073e4c;
  --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)}
/* HUB-084: shared list controls. Schedule tables deliberately excluded. */
table.pm-list-table{table-layout:fixed!important;min-width:100%}
table.pm-list-table th,table.pm-list-table td{width:auto!important;min-width:0;max-width:none}
table.pm-list-table [hidden]{display:none!important}
table.pm-list-table th{white-space:nowrap}
table.pm-list-table .pm-list-sort{border:0;background:transparent;box-shadow:none;padding:8px 0;color:var(--subtext);font:inherit;white-space:nowrap}
table.pm-list-table .pm-list-sort:hover,table.pm-list-table .pm-list-filter.active{color:var(--brand-dark)}
table.pm-list-table .pm-list-sort,table.pm-list-table .pm-list-sort:hover,table.pm-list-table .pm-list-sort:active,table.pm-list-table .pm-list-sort:focus{background:transparent!important;border:0!important;box-shadow:none!important;transform:none!important}
table.pm-list-table .pm-list-sort:hover{color:var(--brand-dark)!important}
table.pm-list-table .pm-list-sort:focus:not(:focus-visible){outline:none!important}
table.pm-list-table th{position:relative;padding-right:18px;white-space:normal}
table.pm-list-table th .pm-list-sort{white-space:normal;text-align:left}
table.pm-list-table td{overflow-wrap:anywhere;white-space:normal}
.pm-list-resize{position:absolute;right:0;top:0;bottom:0;width:10px;cursor:col-resize;touch-action:none;z-index:3}
.pm-list-resize::after{content:'';position:absolute;right:0;top:10px;bottom:10px;border-right:2px solid var(--edge)}
.pm-list-resize:hover::after,.pm-list-resize:focus-visible::after{border-color:var(--brand)}
.pm-list-resize:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.pm-list-move{touch-action:none;cursor:grab;flex-shrink:0}
.pm-list-choices label{display:flex;align-items:center}
@media(max-width:700px){.pm-list-resize{display:none}table.pm-list-table th,table.pm-list-table td,table.pm-list-table th:first-child,table.pm-list-table td:first-child{min-width:0!important}}
table.pm-list-table .pm-list-filter{margin-left:6px;display:inline-flex;vertical-align:middle}
.pm-list-filter svg{width:16px;height:16px}
.pm-list-menu{position:fixed;z-index:1200;width:300px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;background:var(--glass-strong);backdrop-filter:var(--ui-blur-panel);border:1px solid var(--edge);border-radius:var(--ui-radius-panel);box-shadow:var(--ui-shadow-overlay);padding:16px;color:var(--text)}
.pm-list-menu-head,.pm-list-menu-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pm-list-menu-actions{justify-content:flex-end;margin-top:14px}
.pm-list-menu [hidden]{display:none!important}
.pm-list-menu-head,.pm-list-menu-actions{position:sticky;z-index:2;background:var(--glass-strong)}
.pm-list-menu-head{top:-16px;padding:8px 0}
.pm-list-menu-actions{bottom:-16px;padding:10px 0}
.pm-list-menu [data-close]{width:44px;min-width:44px;height:44px}
.pm-list-menu .pm-choice-popup,.pm-list-menu .pm-date-picker{z-index:3}
.pm-list-scroll-hint{display:none}
.pm-list-choices{display:grid;gap:6px;margin-top:10px}
.pm-list-choices label{display:flex;align-items:center;gap:10px;padding:7px 0;color:var(--text)}
.pm-list-choices input{width:16px;height:16px;accent-color:var(--brand)}
.pm-list-condition{display:grid;gap:10px;margin:12px 0}.pm-list-condition label{display:grid;gap:6px}
.pm-list-condition input,.pm-list-condition select{width:100%;min-width:0}
.pm-list-message{white-space:normal;padding:0 12px}.staff-list:has(.pm-list-table){overflow:auto}
@media(max-width:600px){table.pm-list-table th,table.pm-list-table td{min-width:110px}table.pm-list-table th:first-child,table.pm-list-table td:first-child{min-width:180px}.pm-list-filter{min-width:44px;min-height:44px}.pm-list-menu input,.pm-list-menu select{font-size:16px}}
.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)}
.planning-main .staff-list {padding:0 0 1px;overflow:auto;flex:1;min-height:0;overscroll-behavior:contain}
.planning-main .staff-table {width:100%;min-width:720px;table-layout:fixed;border-collapse:collapse}
.planning-main .staff-table col:nth-child(1) {width:34%}
.planning-main .staff-table col:nth-child(2) {width:14%}
.planning-main .staff-table col:nth-child(3) {width:18%}
.planning-main .staff-table col:nth-child(4) {width:18%}
.planning-main .staff-table col:nth-child(5) {width:16%}
.planning-main .staff-table th,.planning-main .staff-table td {position:static;min-width:0;max-width:none;height:62px;padding:12px 18px;text-align:left;white-space:normal;background:transparent;box-shadow:none;border-right:0;border-bottom:1px solid var(--line);font-family:var(--font-ui)}
.planning-main .staff-table th {position:sticky;top:0;z-index:2;height:48px;color:var(--subtext);background:var(--glass-strong);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.planning-main .staff-table td:first-child,.planning-main .staff-table th:first-child {position:static;min-width:0;max-width:none;background:transparent;box-shadow:none}
.planning-main .staff-table th:first-child {position:sticky;background:var(--glass-strong)}
.planning-main .staff-table tbody tr {cursor:pointer}
.planning-main .staff-table tbody tr:last-child td {border-bottom:0}
.planning-main .staff-table tbody tr:focus {outline:none}
.planning-main .staff-name {display:block;overflow-wrap:anywhere;transition:color .15s ease}
.planning-main .staff-table small {display:block;margin-top:4px;color:var(--subtext);font-size:12px;overflow-wrap:anywhere}
.planning-main .staff-table tbody tr:hover .staff-name,.planning-main .staff-table tbody tr:focus-visible .staff-name {color:var(--brand-dark)}
.planning-main .staff-status {display:inline-flex;align-items:center;gap:8px;color:var(--subtext);white-space:nowrap;font-size:13px}
.planning-main .staff-status-dot {width:8px;height:8px;flex:none;border-radius:50%;background:var(--subtext)}
.planning-main .staff-status-dot.active {background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.planning-main .staff-status-dot.inactive {background:var(--subtext);opacity:.65}
.planning-main .staff-back {display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;color:var(--subtext)}
.planning-main .staff-back svg {width:20px;height:20px}
.planning-main .staff-back:hover {color:var(--brand-dark)}
.planning-main .staff-heading {margin:6px 0 24px}
.planning-main .staff-title {align-items:flex-start}
.planning-main .staff-title .staff-status {margin-top:6px}
.planning-main .staff-card {padding:0;overflow:hidden}
.planning-main .staff-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.planning-main .staff-field {min-height:82px;padding:16px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.planning-main .staff-field:nth-child(even) {border-right:0}
.planning-main .staff-field:last-child:nth-child(odd) {grid-column:1 / -1;border-right:0}
.planning-main .staff-field>span,.planning-main .staff-field>small {display:block;color:var(--subtext);font-size:12px}
.planning-main .staff-field>strong {display:block;margin-top:7px;font-size:14px;overflow-wrap:anywhere}
.planning-main .staff-field>small {margin-top:7px;color:var(--brand-dark)}
.planning-main .staff-edit-field {margin:0;align-content:start}
.planning-main .staff-edit-field>span {color:var(--subtext);font-size:12px}
.planning-main .staff-edit-field input,.planning-main .staff-edit-field select,.planning-main .staff-edit-field .pm-choice-trigger {width:100%;margin-top:7px}
.planning-main .staff-edit-subtitle {margin-top:12px}
.planning-main .staff-engineer-fields {display:contents}
.planning-main .staff-engineer-fields[hidden] {display:none}
.planning-main .staff-edit-help,.planning-main .staff-edit-error {margin:16px 22px}
.planning-main .staff-management-actions {display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}
.planning-main .staff-history {padding:0 22px}
.planning-main .staff-history summary {padding:17px 0;cursor:pointer;font-weight:650}
.planning-main .staff-history-row {display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:13px}
.planning-main .staff-history-row span,.planning-main .staff-history-row small {color:var(--subtext);overflow-wrap:anywhere}
*,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}
#settingsMenu:not([hidden]){display:grid;gap:8px}#settingsMenu #dashboardSettings,#settingsMenu .schedule-preview-entry,#settingsMenu .theme-toggle{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:42px;margin:0;padding:11px 14px;text-align:left;color:var(--text);background:var(--glass);border:1px solid var(--edge);border-radius:var(--ui-radius-control);box-shadow:var(--ui-shadow-control)}#settingsMenu .account-card{margin-top:0}
#settingsMenu #dashboardSettings[hidden],#settingsMenu .schedule-preview-entry[hidden]{display:none}
#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}
}
@media(max-width:700px){
 .planning-main .staff-list {max-height:none;overflow:auto;overscroll-behavior-y:auto}
 .planning-main .staff-table {min-width:680px;table-layout:fixed}
 .planning-main .staff-table th,.planning-main .staff-table td {height:58px;padding:10px 12px}
 .planning-main .staff-heading {align-items:flex-start}
 .planning-main .staff-heading>.actions {width:100%;justify-content:flex-start}
 .planning-main .staff-fields {grid-template-columns:1fr}
 .planning-main .staff-field:last-child:nth-child(odd) {grid-column:auto}
 .planning-main .staff-field,.planning-main .staff-edit-field {border-right:0;padding:15px}
 .planning-main .staff-history {padding:0 15px}
 .planning-main .staff-history-row {grid-template-columns:1fr;gap:4px}
 .planning-main .staff-edit-help,.planning-main .staff-edit-error {margin:15px}
 .planning-main .staff-management-actions {flex-wrap:wrap;padding:15px}
}

#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:not(.staff-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)}
.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: 46px; }
.test-environment-banner { position: fixed; inset: 0 0 auto; z-index: 9999; height: 46px; 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; }
:root[data-test-environment="true"] body { padding-top:46px; }
:root[data-test-environment="true"] .app-shell .sidebar { top:46px; height:calc(100dvh - 46px); }
@media(max-width:700px){
 :root[data-test-environment="true"] #settingsButton { top:56px; }
 :root[data-test-environment="true"] #settingsMenu { top:104px; }
}
.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; align-items:flex-start; }
.finance-title h2 { margin:0; font-size:28px; overflow-wrap:anywhere; }
.finance-title .finance-state { margin-top:8px; }
.finance-month { flex-shrink:0; gap:8px; }
.finance-month>span { min-width:150px; text-align:center; font-size:20px; }
.finance-period { display:grid; justify-items:end; gap:8px; }
.finance-state { display:inline-flex; align-items:center; min-height:28px; padding:4px 10px; border:1px solid transparent; border-radius:999px; font-size:12px; font-weight:650; }
.finance-state[data-state="open"] { color:var(--brand-dark); background:var(--brand-soft); border-color:color-mix(in srgb,var(--brand) 28%,transparent); }
.finance-state[data-state="submitted"] { color:var(--green); background:var(--green-soft); border-color:color-mix(in srgb,var(--green) 28%,transparent); }
.finance-state[data-state="returned"] { color:var(--accent-cyan-ink); background:color-mix(in srgb,var(--accent-cyan) 18%,transparent); border-color:color-mix(in srgb,var(--accent-cyan) 48%,transparent); }
.finance-state[data-state="closed"] { color:var(--subtext); background:var(--input); border-color:var(--edge); }
.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; }
.finance-table td:first-child { font-family:var(--font-ui); white-space:normal; }
: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; }

/* HUB-028: первая метрика Дашборда. */
.app-shell .dashboard-main {height:auto;min-height:100dvh;display:block;min-width:0}
.dashboard-heading,.dashboard-row,.dashboard-leader,.dashboard-tile-head{display:flex;align-items:center;gap:16px}
.dashboard-heading,.dashboard-tile-head{justify-content:space-between}
.dashboard-heading{margin:6px 0 24px;flex-wrap:wrap}
.dashboard-heading h2{margin:0;font-size:28px}
.dashboard-heading .secondary{min-width:176px}
.dashboard-heading .secondary:disabled{cursor:default;opacity:.58;box-shadow:none}
.dashboard-refresh-box{display:grid;justify-items:stretch;gap:7px;text-align:center}.dashboard-refresh-box>span{min-height:16px;color:var(--subtext);font-size:11px}
.dashboard-warning{margin:0 0 18px;padding:12px 14px;border-radius:10px;background:var(--yellow-soft);color:var(--yellow);border:1px solid color-mix(in srgb,var(--yellow) 26%,transparent)}
.dashboard-loading{color:var(--subtext)}
.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:stretch}
.dashboard-tile{height:100%;min-width:0;margin:0;padding:20px;overflow:hidden}.dashboard-tile-wide{grid-column:span 7}.dashboard-tile-narrow{grid-column:span 5}.dashboard-tile h3{margin:2px 0 0;font-size:20px}.dashboard-tile-head{align-items:flex-start;margin-bottom:14px}.dashboard-future-badge{padding:5px 9px;border-radius:999px;background:var(--input);color:var(--subtext);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.dashboard-trend,.dashboard-service{min-height:388px}.dashboard-trend-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.dashboard-trend-totals{display:flex;align-items:stretch}.dashboard-trend-totals div{display:grid;gap:5px;min-width:135px}.dashboard-trend-totals div+div{padding-left:28px;border-left:1px solid var(--line)}.dashboard-trend-totals span{font-size:14px;font-weight:600}.dashboard-trend-totals strong{font-size:32px;line-height:1}.dashboard-total-new span,.dashboard-total-new strong{color:var(--accent-cyan)}.dashboard-total-done span,.dashboard-total-done strong{color:#ff8a00}.dashboard-legend{display:flex;align-items:center;gap:18px;color:var(--subtext);font-size:12px;white-space:nowrap}.dashboard-legend span{display:flex;align-items:center;gap:7px}.dashboard-legend i{width:11px;height:11px;border-radius:50%;flex:none}.dashboard-color-new{background:var(--accent-cyan);box-shadow:0 0 8px color-mix(in srgb,var(--accent-cyan) 40%,transparent)}.dashboard-color-done{border-radius:2px!important;background:#ff8a00;box-shadow:0 0 8px #ff8a0066}.dashboard-chart{display:grid;grid-template-columns:27px minmax(0,1fr);gap:7px;height:218px;margin-top:16px}.dashboard-y-axis{display:flex;flex-direction:column;justify-content:space-between;height:184px;padding:0 0 1px;color:var(--subtext);font-size:10px;text-align:right}.dashboard-chart-area{position:relative;min-width:0;padding-bottom:20px}.dashboard-chart-grid{height:184px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border-left:1px solid var(--edge);border-bottom:1px solid var(--edge);background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 46px)}.dashboard-chart-grid i{display:block;border-right:1px dashed color-mix(in srgb,var(--subtext) 30%,transparent)}.dashboard-chart-axis{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;margin-top:7px;color:var(--subtext);font-size:8px;text-align:center}.dashboard-chart-axis span{min-width:0}
.dashboard-service-body{min-height:286px;display:grid;grid-template-columns:minmax(190px,225px) minmax(150px,1fr);align-items:center;gap:24px}.dashboard-donut-empty{width:min(215px,100%);aspect-ratio:1;border:34px solid color-mix(in srgb,var(--subtext) 24%,transparent);border-radius:50%;display:grid;place-content:center;text-align:center}.dashboard-donut-empty strong{font-size:34px}.dashboard-donut-empty span{color:var(--subtext);font-size:11px}.dashboard-service-legend{display:grid;grid-template-columns:minmax(0,1fr);color:var(--text);font-size:13px}.dashboard-service-legend span{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:34px;border-bottom:1px solid var(--line);white-space:nowrap}.dashboard-service-legend span:last-child{border-bottom:0}.dashboard-service-legend i{width:12px;height:12px;border-radius:50%}.dashboard-service-legend b{font-weight:500;overflow:hidden;text-overflow:ellipsis}.dashboard-service-legend em{color:var(--subtext);font-style:normal}.dashboard-service-do{background:#396}.dashboard-service-sz{background:#ff4e00}.dashboard-service-distribution{background:#969ba1}.dashboard-service-launch{background:#f3d400}.dashboard-service-launch-scope{background:#d1a401}.dashboard-service-correspondence{background:#9b2454}.dashboard-service-warranty{background:#073580}
.dashboard-engineers{padding:0}.dashboard-live-head{padding:18px 20px 14px;border-bottom:1px solid var(--line)}.dashboard-live-head h3{margin:0;font-size:20px}.dashboard-live-head p{margin:4px 0 0;color:var(--subtext);font-size:14px}.dashboard-empty{padding:22px 20px}.dashboard-empty h4{margin:0 0 8px;font-size:16px}
.dashboard-leader{justify-content:space-between;min-height:112px;padding:18px 20px;border-bottom:1px solid var(--line);background:transparent;transition:background .25s ease,transform .25s ease}.dashboard-leader>div{display:grid;gap:5px}.dashboard-leader span{color:var(--text);font-size:14px}.dashboard-leader strong{font-size:24px;font-weight:650;overflow-wrap:anywhere}.dashboard-leader>b{color:#ff8a00;font-size:48px;font-variant-numeric:tabular-nums;white-space:nowrap}.dashboard-leader>b small{font-size:20px;font-weight:600;color:#ff8a00}
.dashboard-bar-defs{position:absolute;width:0;height:0;overflow:hidden}.dashboard-row{display:grid;grid-template-columns:minmax(155px,210px) minmax(100px,1fr) 42px;min-height:53px;padding:9px 20px;border-bottom:1px solid var(--line)}.dashboard-row:last-child{border-bottom:0}.dashboard-row>span{min-width:0;overflow-wrap:anywhere}.dashboard-row>b{text-align:right;font-variant-numeric:tabular-nums;font-size:16px}.dashboard-bar-zone{display:block;width:100%;height:8px;overflow:visible}.dashboard-bar-fill{fill:url(#dashboardBarGradient);transition:width .3s ease}.dashboard-unmapped{grid-template-columns:minmax(155px,210px) 1fr}.dashboard-unmapped em{color:var(--red);font-style:normal;font-size:13px}
.dashboard-rating-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}.dashboard-rating-row{display:grid;grid-template-columns:minmax(80px,1fr) auto;align-items:center;gap:8px 12px;min-height:89px;padding:14px 16px;color:var(--text);border-bottom:1px solid var(--line)}.dashboard-rating-row:nth-child(odd){padding-left:0;border-right:1px solid var(--line)}.dashboard-rating-row:nth-child(even){padding-right:0}.dashboard-rating-row>b{font-size:24px;font-weight:600;line-height:1}.dashboard-stars{display:flex;gap:3px;grid-column:1/-1}.dashboard-stars svg{width:20px;height:20px;fill:none;stroke:var(--subtext);stroke-width:1.35}
.dashboard-updated{animation:dashboard-data-change .28s ease-out}@keyframes dashboard-data-change{from{opacity:.72;transform:translateY(2px)}to{opacity:1;transform:none}}
.dashboard-switch{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px}.dashboard-switch input{width:auto;box-shadow:none}
@media(prefers-reduced-motion:reduce){.dashboard-leader,.dashboard-bar-fill{transition:none}.dashboard-updated{animation:none}}
@media(max-width:1100px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-tile-wide,.dashboard-tile-narrow{grid-column:span 1}.dashboard-trend-summary{align-items:flex-start;flex-direction:column}.dashboard-service-body{grid-template-columns:1fr;justify-items:center}.dashboard-service-legend{width:100%}.dashboard-row{grid-template-columns:minmax(110px,1fr) 42px;gap:7px}.dashboard-bar-zone{grid-column:1/-1;grid-row:2}.dashboard-row>b{grid-column:2;grid-row:1}.dashboard-unmapped{grid-template-columns:1fr}.dashboard-unmapped em{grid-column:1}}
@media(max-width:900px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}.dashboard-tile-wide,.dashboard-tile-narrow{grid-column:1}.dashboard-trend-summary{align-items:flex-end;flex-direction:row}.dashboard-service-body{grid-template-columns:minmax(190px,225px) minmax(150px,1fr);justify-items:stretch}}
@media(max-width:700px){
 .app-shell .dashboard-main{padding-top:64px;padding-bottom:110px}
 .dashboard-heading{align-items:flex-start}.dashboard-refresh-box{width:100%}.dashboard-heading .secondary{width:100%;min-width:0}
 .dashboard-grid{grid-template-columns:minmax(0,1fr);gap:12px}.dashboard-tile-wide,.dashboard-tile-narrow{grid-column:1}.dashboard-tile{padding:16px}.dashboard-trend,.dashboard-service{min-height:0}.dashboard-trend-summary{align-items:flex-start;flex-direction:column}.dashboard-trend-totals{width:100%}.dashboard-trend-totals div{min-width:0;flex:1}.dashboard-legend{align-self:flex-end}.dashboard-chart{height:190px;grid-template-columns:22px 1fr}.dashboard-y-axis,.dashboard-chart-grid{height:156px}.dashboard-chart-grid{background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 39px)}.dashboard-chart-axis span{display:none}.dashboard-chart-axis span:nth-child(5n+1),.dashboard-chart-axis span:last-child{display:block}.dashboard-service-body{grid-template-columns:1fr;justify-items:center}.dashboard-service-legend{width:100%}.dashboard-donut-empty{width:180px;border-width:28px}.dashboard-engineers{padding:0}
 .dashboard-leader{min-height:0;padding:14px 16px;gap:10px}.dashboard-leader strong{font-size:18px}.dashboard-leader>b{font-size:32px}.dashboard-leader>b small{font-size:14px}.dashboard-live-head{padding:16px}
 .dashboard-row{grid-template-columns:minmax(118px,1fr) 52px;gap:8px;padding:12px 16px}.dashboard-bar-zone{grid-column:1/-1;grid-row:2}.dashboard-row>b{grid-column:2;grid-row:1}.dashboard-unmapped{grid-template-columns:1fr}.dashboard-unmapped em{grid-column:1}.dashboard-rating-list{grid-template-columns:1fr}.dashboard-rating-row:nth-child(odd){padding-left:0;border-right:0}.dashboard-rating-row:nth-child(even){padding-right:0;padding-left:0}
}
.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-return-note { display:grid; gap:6px; margin:0 0 16px; padding:14px 16px; border:1px solid color-mix(in srgb,var(--accent-cyan) 45%,transparent); border-radius:12px; background:color-mix(in srgb,var(--accent-cyan) 12%,transparent); }
.finance-return-note strong { color:var(--accent-cyan-ink); }
.finance-return-note span { overflow-wrap:anywhere; }
:root[data-theme="dark"] .finance-state[data-state="returned"],:root[data-theme="dark"] .finance-return-note strong { color:var(--accent-cyan); }
.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-period { width:100%; }
 .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; }
}

/* OFD issuance message actions share standard button styling. */
.ofd-message-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ofd-message-actions .result-copy{margin:0}.ofd-send-status{color:var(--text);font-size:14px;line-height:1.5}.ofd-send-status:empty{display:none}


/* HUB-086: shared list geometry overrides legacy section/mobile table layouts.
   Only enhanced lists participate; the schedule grid is deliberately excluded. */
table.pm-list-table.pm-list-table{display:table;border-collapse:separate;border-spacing:0;min-width:100%;margin:0}
table.pm-list-table.pm-list-table thead{display:table-header-group}
table.pm-list-table.pm-list-table tbody{display:table-row-group}
table.pm-list-table.pm-list-table tr{display:table-row;background:transparent;border:0;box-shadow:none;padding:0}
table.pm-list-table.pm-list-table th,table.pm-list-table.pm-list-table td{
 display:table-cell;box-sizing:border-box;min-width:0!important;max-width:none;left:auto!important;
 padding:10px 16px;height:52px;border:0;border-bottom:1px solid var(--line);box-shadow:none!important;
 vertical-align:middle;font-family:var(--font-ui);font-size:13px;line-height:1.4;white-space:normal;
}
table.pm-list-table.pm-list-table td{position:static!important;background:transparent!important}
table.pm-list-table.pm-list-table th{
 position:sticky!important;top:0;z-index:2;height:52px;background:var(--surface-2)!important;
 text-align:left!important;font-size:11px;font-weight:600;color:var(--subtext);text-transform:uppercase;letter-spacing:.05em;
}
table.pm-list-table .pm-list-heading{display:flex;align-items:center;justify-content:flex-start;gap:4px;min-width:0}
table.pm-list-table.pm-list-table .pm-list-sort{flex:0 1 auto;min-width:0;max-width:none;padding:0;min-height:28px;text-align:left;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;overflow-wrap:anywhere;white-space:normal}
table.pm-list-table.pm-list-table .pm-list-filter{position:static;flex:0 0 28px;width:28px;min-width:28px;height:28px;min-height:28px;padding:6px;margin:0;transform:none!important}
table.pm-list-table.pm-list-table .pm-list-filter{display:flex;align-items:center;justify-content:center;box-sizing:border-box;border:0}
table.pm-list-table.pm-list-table .pm-list-filter svg{flex:none;width:16px;height:16px}
table.pm-list-table.pm-list-table td::before{content:none!important}
table.pm-list-table.pm-list-table .vac-name{height:auto;min-height:30px}
table.pm-list-table.pm-list-table .vac-name span{white-space:normal;overflow-wrap:anywhere}
table.pm-list-table.pm-list-table tbody tr:last-child td{border-bottom:0}
.finance-panel:has(> .pm-list-table),.staff-list:has(> .pm-list-table),.vac-table-wrap:has(> .pm-list-table),.registry-panel .table-wrap:has(> .pm-list-table){overflow:auto;min-width:0;max-width:100%}
.vac-employees:has(.pm-list-table){padding:0}
@media(max-width:700px){
 table.pm-list-table.pm-list-table th,table.pm-list-table.pm-list-table td{padding:8px 12px}
 table.pm-list-table.pm-list-table .pm-list-filter{flex-basis:44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:14px}
 table.pm-list-table.pm-list-table th{border-right:1px solid var(--line)}
 table.pm-list-table.pm-list-table th:last-child{border-right:0}
}
@media(max-width:700px){
 table.pm-list-table.pm-list-table th,table.pm-list-table.pm-list-table td{padding:8px}
 table.pm-list-table .pm-list-heading{flex-direction:column;align-items:flex-start;gap:0}
 table.pm-list-table.pm-list-table .pm-list-sort{min-height:32px;overflow-wrap:normal;word-break:normal}
 table.pm-list-table.pm-list-table th{font-size:11px;letter-spacing:0;text-transform:none;user-select:none;-webkit-user-select:none}
 table.pm-list-table.pm-list-table .pm-list-filter{flex-basis:44px;margin-left:-8px}
 table.pm-list-table.pm-list-table td{overflow-wrap:anywhere}
 table.pm-list-table.pm-list-table .staff-name{white-space:normal}
 .pm-list-scroll-hint:not([hidden]){display:block;position:sticky;left:0;max-width:calc(100vw - 48px);margin:0;padding:8px;color:var(--subtext);font-size:11px;white-space:normal}
 .pm-list-menu{width:calc(100vw - 16px);overscroll-behavior:contain;user-select:none;-webkit-user-select:none}
 .pm-list-menu input{user-select:text;-webkit-user-select:text}
 .pm-list-menu input,.pm-list-menu .pm-choice-trigger{font-size:16px}
 .pm-list-menu-actions{gap:8px}
 .pm-list-menu-actions button{flex:1;min-height:44px}
 .pm-list-menu-head{user-select:none;-webkit-user-select:none}
}
/* HUB-077 fills the existing rating tile; its grid, spacing and typography stay shared. */
.dashboard-rating{container-type:inline-size}.dashboard-rating .dashboard-tile-head .help{margin:4px 0 0}.dashboard-rating-row>span:first-child{min-width:0;overflow-wrap:anywhere}.dashboard-rating-row>b{grid-column:2;grid-row:1;text-align:right}.dashboard-rating-row .dashboard-stars{grid-row:2}.dashboard-rating .dashboard-star-empty{fill:none;stroke:var(--subtext);stroke-width:1}.dashboard-rating .dashboard-star-filled{fill:var(--brand);stroke:none}
.dashboard-rating-department{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.dashboard-rating-department-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.dashboard-rating-department-head h4{font-size:18px;margin:0}.dashboard-rating-department-head .help{margin:4px 0 0}.dashboard-rating-department-head>span{font-size:13px;color:var(--subtext);margin-left:auto;white-space:nowrap}.dashboard-rating-distribution{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:16px}.dashboard-rating-distribution>div{display:flex;flex-direction:column;align-items:center;gap:8px;border-right:1px solid var(--line)}.dashboard-rating-distribution>div:last-child{border-right:0}.dashboard-rating-distribution .dashboard-stars{gap:0}.dashboard-rating-distribution .dashboard-stars svg{width:12px;height:17px}.dashboard-rating-distribution a{font-size:20px;text-underline-offset:4px;color:var(--brand-dark);border-radius:3px}.dashboard-rating-distribution a:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
@container (min-width:400px){.dashboard-rating-distribution .dashboard-stars svg{width:15px;height:20px}}
@container (min-width:650px){.dashboard-rating-distribution .dashboard-stars svg{width:20px;height:22px}}
@container (max-width:320px){.dashboard-rating-list{grid-template-columns:1fr}.dashboard-rating-row:nth-child(odd){border-right:0;padding-right:0}.dashboard-rating-row:nth-child(even){padding-left:0}.dashboard-rating-distribution .dashboard-stars svg{width:10px}}

/* Accepted HUB-077: no internal grid lines. */
.dashboard-rating .dashboard-rating-list,.dashboard-rating .dashboard-rating-row,.dashboard-rating .dashboard-rating-department,.dashboard-rating .dashboard-rating-distribution>div{border:0}

.section-help{display:flex;justify-content:flex-end;margin-bottom:12px}.section-help .link-button,.section-help .link-button:hover{box-shadow:none;text-shadow:none;background:transparent;border-color:transparent}

/* HUB-114: task types use the established Planfix palette. */
.dashboard-donut{position:relative;width:min(215px,100%);aspect-ratio:1}.dashboard-donut svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}.dashboard-donut>div{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.dashboard-donut strong{font-size:34px}.dashboard-donut span{color:var(--subtext);font-size:11px}.dashboard-service-track,.dashboard-service-segment{fill:none;stroke-width:19}.dashboard-service-track{stroke:color-mix(in srgb,var(--subtext) 24%,transparent)}.dashboard-service-segment{stroke:var(--service-color)}.dashboard-service-do{--service-color:#339966}.dashboard-service-sz{--service-color:#ff4e00}.dashboard-service-distribution{--service-color:#969ba1}.dashboard-service-launch{--service-color:#f3d400}.dashboard-service-launch-scope{--service-color:#d1a401}.dashboard-service-correspondence{--service-color:#9b2454}.dashboard-service-warranty{--service-color:#073580}

.dashboard-service-legend b{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}.dashboard-service-legend em{font-variant-numeric:tabular-nums}

/* HUB-115: daily totals use one responsive, keyboard/touch accessible chart. */
.dashboard-trend-svg{display:block;width:100%;height:auto;min-height:190px;margin-top:12px;overflow:visible;touch-action:pan-y}
.dashboard-trend-grid{stroke:var(--line);stroke-width:1}.dashboard-trend-label{fill:var(--subtext);font-size:11px}
.dashboard-trend-bar{fill:#ff8a00}.dashboard-trend-line{fill:none;stroke:var(--accent-cyan);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.dashboard-trend-hit{fill:transparent}.dashboard-trend-day{cursor:pointer;outline:none}.dashboard-trend-point{fill:var(--accent-cyan);stroke:var(--bg);stroke-width:2;opacity:0;pointer-events:none}
.dashboard-trend-day.is-selected .dashboard-trend-point{opacity:1}.dashboard-trend-day:focus-visible .dashboard-trend-point{stroke:var(--text);stroke-width:2;opacity:1}
.dashboard-trend-tip{font-size:13px;color:var(--text);text-align:center;min-height:20px;margin:0;overflow-wrap:anywhere}
[data-theme="light"] .dashboard-total-new span,[data-theme="light"] .dashboard-total-new strong{color:#087f99}
[data-theme="light"] .dashboard-total-done span,[data-theme="light"] .dashboard-total-done strong{color:#a64a00}
@media(max-width:600px){.dashboard-trend-label-minor{display:none}.dashboard-trend-svg{min-height:160px}.dashboard-trend-label{font-size:11px}}

/* Service chart scales with its tile, including height shared with the trend. */
.dashboard-service{container-type:inline-size;display:flex;flex-direction:column}
.dashboard-service-body{flex:1;width:100%;min-height:286px;grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:clamp(16px,3cqw,32px);align-content:center;justify-items:stretch}
.dashboard-donut{width:100%;max-width:420px;justify-self:center}
.dashboard-donut strong{font-size:clamp(34px,6cqw,60px)}
.dashboard-donut span{font-size:clamp(11px,1.7cqw,17px)}
.dashboard-service-legend{width:100%;font-size:clamp(13px,2.2cqw,20px)}
.dashboard-service-legend span{min-height:clamp(34px,6.7cqw,64px);gap:clamp(7px,1.2cqw,12px)}
@container(max-width:520px){
 .dashboard-service-body{grid-template-columns:minmax(0,1fr);gap:20px}
 .dashboard-donut{width:clamp(180px,58cqw,280px)}
 .dashboard-donut strong{font-size:clamp(34px,9cqw,46px)}
 .dashboard-service-legend{font-size:clamp(13px,3.4cqw,16px)}
 .dashboard-service-legend span{min-height:clamp(34px,9cqw,44px)}
}
.dashboard-department{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;font-size:13px}.dashboard-department select{width:auto;min-width:0;max-width:240px;margin:0}.dashboard-service .dashboard-tile-head,.dashboard-engineers .dashboard-live-head{flex-wrap:wrap;gap:12px}.dashboard-department span{color:var(--subtext)}
@media(max-width:520px){.dashboard-department{width:100%}.dashboard-department select{flex:1;max-width:100%}}

.dashboard-department .pm-choice{min-width:0;max-width:240px;flex:1}.dashboard-department .pm-choice-trigger{white-space:normal;overflow-wrap:anywhere}.dashboard-engineers .dashboard-department{margin-top:12px}

.pm-choice-popup[popover] {margin:0;inset:auto}

.staff-ofd-permission input[type="checkbox"]{width:20px!important;height:20px!important;min-height:20px;min-width:20px;justify-self:start;padding:0;border:0;box-shadow:none!important;background:transparent;accent-color:var(--pm-orange,#ff7900)}

.dashboard-service-report{color:var(--text);font-weight:700;text-decoration:underline;text-underline-offset:3px}.dashboard-service-report:hover{color:var(--brand-dark)}.dashboard-service-report:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:2px}
