/* Approved 22.10.2026: 16px, variant A at 45%; only save and selected controls. */
:root {
    font-size:16px;
    --color-navy:#2956a7;
    --color-navy-dark:#22498f;
    --color-blue:#2956a7;
    --color-text:#20334d;
    --color-muted:#52627a;
    --color-page:color-mix(in srgb,#2956a7 5.6%,white);
    --color-border:color-mix(in srgb,#2956a7 18.75%,white);
    --color-blue-soft:color-mix(in srgb,#2956a7 17%,white);
    --comfort-heading:color-mix(in srgb,#2956a7 14%,white);
    --comfort-section:color-mix(in srgb,#2956a7 7.4%,white);
    --comfort-hover:color-mix(in srgb,#2956a7 10.3%,white);
}
body.app-shell { grid-template-columns:224px minmax(0,1fr); font-size:16px; line-height:1.45; }
body.app-shell[data-menu-collapsed=true] { grid-template-columns:0 minmax(0,1fr); }
body.app-shell--public { grid-template-columns:minmax(0,1fr); }
body.app-shell .app-header { background:var(--comfort-section); }
body.app-shell .app-main { min-width:0; }
body.app-shell h1 { font-size:28px; }
body.app-shell h2 { font-size:21px; }
body.app-shell h3 { font-size:18px; }
body.app-shell :is(.main-navigation__item,.app-subnavigation a,.primary-action,.secondary-action,.text-action,.employee-hub a,.employee-tabs a,.work-tabs a,.section-navigation__item,.form-control,.form-field label,legend,table,th,td) { font-size:16px; }
body.app-shell :is(.primary-action,.secondary-action,.text-action,.employee-hub a,.employee-tabs a,.work-tabs a,.section-navigation__item,.main-navigation__item,.app-subnavigation a) { min-height:44px; line-height:1.45; }
body.app-shell :is(.primary-action,.secondary-action,.text-action) { background:#fff; color:var(--color-text); border:1px solid var(--color-border); padding:9px 12px; font-weight:400; }
body.app-shell :is(.primary-action,.secondary-action,.text-action):hover { background:var(--comfort-hover); color:var(--color-text); }
body.app-shell .text-action--danger { color:#a82b22; }
body.app-shell .text-action--danger:hover { color:#a82b22; }
body.app-shell :is(.employee-hub a,.employee-tabs a,.work-tabs a,.section-navigation__item) { padding:8px 12px; }
body.app-shell :is(.main-navigation__item.is-active,.app-subnavigation a.is-active,.mobile-navigation__item.is-active,.employee-hub a[aria-current=page],.employee-tabs a[aria-current=page],.work-tabs a[aria-current=page],.work-tabs .is-active,.section-navigation__item.is-active,.wp-views a[aria-current=page],.wp-person[aria-pressed=true]) { background:var(--color-blue-soft); color:#22498f; border-color:var(--color-border); font-weight:500; }
body.app-shell :is(.employee-hub a,.employee-tabs a,.work-tabs a,.personnel-calendar .calendar-view-controls a)[aria-current]:not([aria-current=false]),
body.app-shell :is(button,a)[aria-selected=true],body.app-shell :is(button,a)[aria-pressed=true] { background:var(--color-blue-soft); color:#22498f; border-color:var(--color-border); }
body.app-shell a[aria-current]:not([aria-current=false]) { background:var(--color-blue-soft); color:#22498f; border-color:var(--color-border); }
body.app-shell .save-action { display:inline-flex; align-items:center; justify-content:center; background:var(--color-blue); color:#fff; border:1px solid var(--color-blue); border-radius:6px; padding:9px 12px; min-height:44px; font-size:16px; line-height:1.45; font-weight:500; }
body.app-shell .save-action:hover { background:var(--color-navy-dark); color:#fff; border-color:var(--color-navy-dark); }
body.app-shell .heading-actions .primary-action { min-height:44px; display:inline-flex; align-items:center; }
body.app-shell :is(button,.primary-action,.secondary-action,.save-action):disabled { opacity:.65; cursor:not-allowed; }
body.app-shell :is(input.form-control:not([type=checkbox]):not([type=radio]),select.form-control) { height:auto; min-height:44px; font-size:16px; padding:9px 12px; }
body.app-shell textarea.form-control { font-size:16px; min-height:96px; }
body.app-shell :is(input,select,textarea)::placeholder { color:#627087; opacity:1; }
body.app-shell :is(th,.day-board thead th) { background:var(--comfort-heading); color:var(--color-text); }
body.app-shell :is(th,td) { padding:12px 10px; }
body.app-shell :is(.responsive-table,.day-board-container) { min-width:0; max-width:100%; }
body.app-shell .day-board { min-width:36rem; }
body.app-shell .day-board:has(thead th:nth-child(8)) { min-width:89rem; }
body.app-shell .day-board th:first-child { width:12rem; }
body.app-shell .day-board :is(th,td) { overflow-wrap:normal;word-break:normal; }
body.app-shell .responsive-table { overflow-x:auto; }
body.app-shell .responsive-table tbody tr:hover { background:var(--comfort-hover); }
body.app-shell .content-panel__heading { background:var(--comfort-section); padding:14px; margin:-14px -14px 14px; border-bottom:1px solid var(--color-border); border-radius:5px 5px 0 0; }
body.app-shell .content-panel__heading h2 { margin:0; }
body.app-shell .administration-dashboard__module header { background:var(--comfort-section); }
body.app-shell .form-panel { max-width:1000px; }
body.app-shell :is(.form-control,.form-field,.page-heading,.page-heading__actions,.table-actions) { min-width:0; }
body.app-shell :is(.wp-day,.wp-card,.wp-card-main,.wp-filter-panel,.wp-toolbar,.day-workspace>*) { min-width:0; }
body.app-shell .wp-dialog { width:min(960px,calc(100% - 24px)); }
body.app-shell .wp-board { grid-template-columns:repeat(7,minmax(0,1fr)); }
body.app-shell .wp-board--tag { grid-template-columns:1fr; }
body.app-shell :is(.wp-card-main strong,.wp-person,.wp-assign,.wp-search,.wp-filters label) { font-size:16px; }
body.app-shell .wp-card-main small { font-size:14px; }
body.app-shell .wp-assign { background:#fff; color:var(--color-text); min-height:44px; }
body.app-shell :is(.wp-views a,.wp-person) { background:#fff; color:var(--color-text); }
body.app-shell :is(.wp-plus,.wp-close) { min-width:44px; min-height:44px; }
body.app-shell :focus-visible { outline:2px solid #2956a7; outline-offset:3px; }
body.app-shell ::selection { background:#c4d5f1; color:#20334d; }
@container(max-width:1200px){body.app-shell .wp-board{grid-template-columns:repeat(4,minmax(0,1fr))}body.app-shell .wp-board--tag{grid-template-columns:1fr}}
@container(max-width:800px){body.app-shell .wp-board{grid-template-columns:repeat(2,minmax(0,1fr))}body.app-shell .wp-board--tag{grid-template-columns:1fr}}
@container(max-width:450px){body.app-shell .wp-board{grid-template-columns:1fr}}
@media(max-width:900px){
    body.app-shell,body.app-shell[data-menu-collapsed=true]{grid-template-columns:minmax(0,1fr)}
    body.app-shell .mobile-navigation__item{font-size:16px;min-height:64px;white-space:normal;line-height:1.3}
    body.app-shell .app-main{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
    body.app-shell .form-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
    body.app-shell h1{font-size:26px}
    body.app-shell .content-panel__heading{margin:-12px -12px 14px;padding:12px}
    body.app-shell .responsive-table{overflow:visible}
    body.app-shell .responsive-table td{overflow-wrap:anywhere}
    body.app-shell .responsive-table td::before{font-size:14px}
    body.app-shell .wp-filters{grid-template-columns:minmax(0,1fr)}
    body.app-shell :is(.employee-hub a,.employee-tabs a,.work-tabs a){flex:1 1 max-content;max-width:100%;overflow-wrap:normal;word-break:normal}
}

/* Existing module text roles, kept in one final shared layer. */
body.app-shell .administration-dashboard__module small,
body.app-shell .administration-dashboard__status,
body.app-shell .app-bar-title,
body.app-shell .app-shell .eyebrow,
body.app-shell .app-shell .status-label,
body.app-shell .app-shell .wp-card-crew,
body.app-shell .app-shell .wp-card-main small,
body.app-shell .app-shell .wp-card-status,
body.app-shell .app-shell .wp-card-time,
body.app-shell .app-shell .wp-empty,
body.app-shell .app-shell .wp-warning,
body.app-shell .app-shell td small,
body.app-shell .app-sidebar__note,
body.app-shell .day-board caption,
body.app-shell .day-footnote,
body.app-shell .day-planning .field-help,
body.app-shell .day-search-status,
body.app-shell .environment-label,
body.app-shell .eyebrow,
body.app-shell .field-help,
body.app-shell .fleet-machine-status,
body.app-shell .fleet-material-section .supporting-text,
body.app-shell .fleet-record-summary small,
body.app-shell .fleet-repair-status,
body.app-shell .fleet-tile__note,
body.app-shell .fleet-time-choice small,
body.app-shell .fleet-time-table small,
body.app-shell .header-user,
body.app-shell .list-status-switch a,
body.app-shell .machine-plan-warning,
body.app-shell .muted-text,
body.app-shell .object-row-status,
body.app-shell .status-label,
body.app-shell .supporting-text,
body.app-shell .winter .helptext,
body.app-shell .wp-card-crew,
body.app-shell .wp-card-main small,
body.app-shell .wp-card-status,
body.app-shell .wp-card-time,
body.app-shell .wp-dialog-head .eyebrow,
body.app-shell .wp-empty,
body.app-shell .wp-staff-controls>.field-help,
body.app-shell .wp-warning { font-size: 14px; }

body.app-shell .administration-dashboard__choices label,
body.app-shell .administration-dashboard__count,
body.app-shell .app-shell .employee-hub a,
body.app-shell .app-shell .employee-tabs a,
body.app-shell .app-shell .fleet-repair-list td:nth-child(3),
body.app-shell .app-shell .fleet-time-choices > legend,
body.app-shell .app-shell .fleet-time-table td:nth-child(2),
body.app-shell .app-shell .form-control,
body.app-shell .app-shell .form-errors,
body.app-shell .app-shell .form-field label,
body.app-shell .app-shell .mobile-navigation__item,
body.app-shell .app-shell .notice,
body.app-shell .app-shell .primary-action,
body.app-shell .app-shell .rights-state,
body.app-shell .app-shell .secondary-action,
body.app-shell .app-shell .section-navigation__item,
body.app-shell .app-shell .tag,
body.app-shell .app-shell .text-action,
body.app-shell .app-shell .work-tabs a,
body.app-shell .app-shell .wp-assign,
body.app-shell .app-shell .wp-card-main strong,
body.app-shell .app-shell .wp-day>header,
body.app-shell .app-shell .wp-day>header span,
body.app-shell .app-shell .wp-day>header strong,
body.app-shell .app-shell .wp-feedback,
body.app-shell .app-shell .wp-filters label,
body.app-shell .app-shell .wp-filters label:first-of-type,
body.app-shell .app-shell .wp-period h2,
body.app-shell .app-shell .wp-search,
body.app-shell .app-shell legend,
body.app-shell .app-shell table,
body.app-shell .app-subnavigation a,
body.app-shell .assignment-row span,
body.app-shell .brand__name,
body.app-shell .calendar-birthday,
body.app-shell .calendar-day__number,
body.app-shell .calendar-entry,
body.app-shell .calendar-grid__weekday,
body.app-shell .comment-card span,
body.app-shell .contract-workspace .responsive-table td::before,
body.app-shell .customer-object-assignments,
body.app-shell .customer-object-services>li>span,
body.app-shell .daily-detail,
body.app-shell .daily-paper,
body.app-shell .daily-paper .daily-detail,
body.app-shell .daily-paper .daily-source,
body.app-shell .daily-paper th,
body.app-shell .daily-paper-object,
body.app-shell .daily-source,
body.app-shell .daily-table th,
body.app-shell .daily-teams span,
body.app-shell .day-add,
body.app-shell .day-availability,
body.app-shell .day-board,
body.app-shell .day-board thead th,
body.app-shell .day-board-container::before,
body.app-shell .day-crew-feedback,
body.app-shell .day-people label strong,
body.app-shell .day-planning h3,
body.app-shell .day-planning label,
body.app-shell .day-row-actions button,
body.app-shell .day-search-result button,
body.app-shell .day-search-result strong,
body.app-shell .day-search-result>div span,
body.app-shell .day-selected li>div span,
body.app-shell .day-work-picker>p,
body.app-shell .detail-list dt,
body.app-shell .dispatch-day__empty,
body.app-shell .dispatch-day__heading span,
body.app-shell .dispatch-day__heading strong,
body.app-shell .dispatch-entry,
body.app-shell .employee-document-list td::before,
body.app-shell .employee-kpis dt,
body.app-shell .employee-picker__result span,
body.app-shell .employee-summary dt,
body.app-shell .employee-tabs a,
body.app-shell .field-errors,
body.app-shell .fleet-block-notice,
body.app-shell .fleet-record-entry-kind,
body.app-shell .fleet-record-keyfacts dt,
body.app-shell .fleet-record-summary__label,
body.app-shell .fleet-record-summary__value,
body.app-shell .fleet-record-timeline strong,
body.app-shell .fleet-record-timeline time,
body.app-shell .fleet-repair-machine-state,
body.app-shell .fleet-service-form fieldset.form-field legend,
body.app-shell .fleet-tile__title,
body.app-shell .fleet-time-choice > .fleet-time-duration,
body.app-shell .fleet-time-choice strong,
body.app-shell .fleet-time-total,
body.app-shell .form-errors,
body.app-shell .form-field label,
body.app-shell .header-logout,
body.app-shell .history-list span,
body.app-shell .machine-plan-checks,
body.app-shell .machine-plan-state,
body.app-shell .main-navigation__item,
body.app-shell .mobile-navigation__item,
body.app-shell .module-tile > span:last-child,
body.app-shell .module-tile strong,
body.app-shell .module-tile__icon,
body.app-shell .object-actions span,
body.app-shell .object-card details,
body.app-shell .object-mobile-actions,
body.app-shell .page-heading__intro,
body.app-shell .personnel-calendar .calendar-day__number,
body.app-shell .preparation-row__form label > span,
body.app-shell .responsive-table td::before,
body.app-shell .tag,
body.app-shell .work-tabs a,
body.app-shell .wp-agenda-label,
body.app-shell .wp-assign,
body.app-shell .wp-card-machines,
body.app-shell .wp-card-main strong,
body.app-shell .wp-day>header span,
body.app-shell .wp-discard-question p,
body.app-shell .wp-help h3,
body.app-shell .wp-help label,
body.app-shell .wp-help p,
body.app-shell .wp-staff-area label,
body.app-shell .wp-staff>summary span,
body.app-shell .wp-tools>summary,
body.app-shell th { font-size: 16px; }
