/*
 * Application styles
 *
 * Navigation (search for these stable section labels):
 * - SHARED COMPONENTS: document chrome, forms, tables, dialogs and navigation
 * - FEATURE: page- or workflow-specific layouts
 * - RESPONSIVE: adaptations kept beside the component they modify
 *
 * Shared component contracts are documented in docs/CODEBASE.md. During the
 * incremental migration, legacy feature selectors remain beside canonical
 * component classes so specialized responsive behavior stays explicit.
 */

:root {
  color-scheme: light;
  --ink: #172033;
  --muted: #667085;
  --line: #dfe5ec;
  --line-strong: #c8d1dc;
  --paper: #ffffff;
  --bg: #f3f6fa;
  --bg-soft: #f8fafc;
  --brand: #194b75;
  --brand-dark: #123a5c;
  --brand-soft: #e9f2f9;
  --accent: #0d6b63;
  --danger: #b42318;
  --danger-soft: #fee4e2;
  --warn: #b54708;
  --warn-soft: #fef0c7;
  --ok: #067647;
  --ok-soft: #d1fadf;
  --surface: var(--paper);
  --surface-soft: var(--bg-soft);
  --surface-muted: var(--bg-soft);
  --border: var(--line);
  --primary: var(--brand);
  --primary-soft: var(--brand-soft);
  --text: var(--ink);
  --success: var(--ok);
  --table-row-separator: #9aaabc;
  --planning-row-separator: #71859a;
  --planning-column-separator: #bac6d2;
  --shadow-sm: 0 1px 2px rgba(16, 42, 67, .06);
  --shadow-md: 0 8px 24px rgba(16, 42, 67, .08);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --page-max-width: 1440px;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e6edf5;
  --muted: #a9b7c8;
  --line: #34475b;
  --line-strong: #486078;
  --paper: #172536;
  --bg: #0e1824;
  --bg-soft: #1c2b3d;
  --brand: #79b8e8;
  --brand-dark: #a7d4f5;
  --brand-soft: #203d55;
  --accent: #65c8bd;
  --danger: #ff8b83;
  --danger-soft: #4b2528;
  --warn: #f3b76d;
  --warn-soft: #493821;
  --ok: #65d49b;
  --ok-soft: #1d4433;
  --surface: var(--paper);
  --surface-soft: var(--bg-soft);
  --surface-muted: var(--bg-soft);
  --border: var(--line);
  --primary: var(--brand);
  --primary-soft: var(--brand-soft);
  --text: var(--ink);
  --success: var(--ok);
  --table-row-separator: #60768d;
  --planning-row-separator: #8299b0;
  --planning-column-separator: #4d647b;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);
  --shadow-md: 0 8px 24px rgba(0, 0, 0, .3)
}

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
}

@media (min-width: 1200px) {
  body.display-density-90 {
    zoom: 90%;
  }

  body.display-density-85 {
    zoom: 85%;
  }

  body.display-density-80 {
    zoom: 80%;
  }
}

body {
  min-height: 100%;
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 15px/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button,
input,
select,
textarea {
  font: inherit;
}

a {
  color: var(--brand);
}

a:hover {
  color: var(--brand-dark);
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 56px;
  padding: 9px clamp(16px, 2.5vw, 30px);
  background: #102a43;
  color: #fff;
  box-shadow: 0 2px 12px rgba(15, 38, 59, .18);
}

.brand {
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -.01em;
  white-space: nowrap;
}

.topbar nav {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.topbar-navigation {
  display: contents;
}

.mobile-nav-toggle {
  display: none;
}

.topbar-centre-nav {
  justify-content: center;
}

.topbar-centre-nav .topbar-section-start {
  margin-left: 22px;
}

.topbar-main-nav {
  justify-content: flex-end;
}

.topbar > .theme-toggle:last-child {
  grid-column: 3;
  justify-self: end;
}

.topbar nav a,
.topbar nav .link-button,
.topbar nav .nav-menu > summary {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 9px;
  border-radius: 7px;
  color: #d9e6f2;
  text-decoration: none;
  font-weight: 650;
  font-size: 14px;
}

.topbar nav .nav-menu {
  position: relative;
}

.topbar nav .nav-menu > summary {
  gap: 6px;
  cursor: pointer;
  list-style: none;
}

.topbar nav .nav-menu > summary::-webkit-details-marker {
  display: none;
}

.topbar nav .nav-menu > summary::after {
  content: '▾';
  font-size: 11px;
}

.topbar nav .nav-menu[open] > summary,
.topbar nav .nav-menu > summary:hover,
.topbar nav .nav-menu > summary:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, .1);
  outline: none;
}

.topbar nav .nav-menu-items {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 60;
  display: grid;
  min-width: 230px;
  max-width: calc(100vw - 24px);
  padding: 6px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 9px;
  background: #102a43;
  box-shadow: 0 8px 24px rgba(15, 38, 59, .28);
}

.topbar nav .nav-menu-items a {
  white-space: nowrap;
}

.topbar nav .nav-submenu {
  border-top: 1px solid rgba(255, 255, 255, .12);
  margin-top: 4px;
  padding-top: 4px;
}

.topbar nav .nav-submenu > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 6px 9px;
  border-radius: 7px;
  color: #d9e6f2;
  cursor: pointer;
  list-style: none;
  font-size: 14px;
  font-weight: 650;
}

.topbar nav .nav-submenu > summary::-webkit-details-marker {
  display: none;
}

.topbar nav .nav-submenu > summary::after {
  content: '▾';
  margin-left: 14px;
  font-size: 11px;
}

.topbar nav .nav-submenu[open] > summary,
.topbar nav .nav-submenu > summary:hover,
.topbar nav .nav-submenu > summary:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, .1);
  outline: none;
}

.topbar nav .nav-submenu-items {
  display: grid;
  padding-left: 10px;
}

.topbar nav .nav-user-menu .nav-menu-items {
  right: 0;
  left: auto;
  min-width: 150px;
}

.topbar nav .nav-user-menu .nav-menu-items form {
  margin: 0;
}

.topbar nav .nav-user-menu .nav-menu-items .link-button {
  justify-content: flex-start;
  width: 100%;
  white-space: nowrap;
  text-decoration: none;
}

.topbar nav a:hover,
.topbar nav a:focus-visible,
.topbar nav .link-button:hover,
.topbar nav .link-button:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, .1);
  outline: none;
}

.theme-toggle {
  display: inline-grid;
  width: 34px;
  min-width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 7px;
  background: transparent;
  color: #d9e6f2;
  cursor: pointer
}

.theme-toggle:hover,
.theme-toggle:focus-visible {
  border-color: rgba(255, 255, 255, .45);
  background: rgba(255, 255, 255, .1);
  color: #fff;
  outline: none
}

[data-theme="light"] .theme-toggle [data-theme-light],
[data-theme="dark"] .theme-toggle [data-theme-dark] {
  display: none
}

.container {
  width: min(100% - 32px, var(--page-max-width));
  margin: 24px auto 40px;
}

.page-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 18px;
}

.page-heading h1 {
  margin: 3px 0 4px;
}

.eyebrow {
  margin: 0 0 4px;
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.page-description {
  max-width: 720px;
  margin: 5px 0 0;
  color: var(--muted);
}

.grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}

.card {
  min-width: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(17px, 2vw, 23px);
  box-shadow: var(--shadow-sm);
}

.card:hover {
  border-color: #d4dde7;
}

.span-3 {
  grid-column: span 3;
}

.span-4 {
  grid-column: span 4;
}

.span-5 {
  grid-column: span 5;
}

.span-6 {
  grid-column: span 6;
}

.span-7 {
  grid-column: span 7;
}

.span-8 {
  grid-column: span 8;
}

.span-12 {
  grid-column: span 12;
}

h1,
h2,
h3 {
  color: var(--ink);
}

h1 {
  margin: 0 0 14px;
  font-size: clamp(27px, 3vw, 34px);
  line-height: 1.18;
  letter-spacing: -.025em;
}

h2 {
  margin: 0 0 11px;
  font-size: 20px;
  line-height: 1.3;
}

h3 {
  margin: 0 0 10px;
}

p {
  margin-top: 0;
}

.muted {
  color: var(--muted);
}

.kpi {
  font-size: clamp(30px, 4vw, 40px);
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -.03em;
}

.kpi-label {
  margin-top: 6px;
  color: var(--muted);
  font-weight: 600;
}

label {
  display: block;
  margin: 0 0 7px;
  color: var(--ink);
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  background: var(--paper);
  color: var(--ink);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

textarea {
  min-height: 96px;
  resize: vertical;
}

input:hover,
select:hover,
textarea:hover {
  border-color: #aebac8;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #3778aa;
  box-shadow: 0 0 0 3px rgba(25, 75, 117, .13);
  outline: none;
}

input:disabled,
select:disabled,
textarea:disabled {
  background: var(--bg-soft);
  cursor: not-allowed;
}

.form-field {
  margin-bottom: 15px;
}

.form-field__help {
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
}

.form-field__optional {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 600;
}

.form-layout {
  display: grid;
  gap: 16px;
  margin-bottom: 18px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: var(--brand);
  color: #fff;
  text-decoration: none;
  padding: 7px 13px;
  font-weight: 750;
  cursor: pointer;
  transition: transform .12s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.btn:hover {
  background: var(--brand-dark);
  color: #fff;
}

.btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(25, 75, 117, .22);
}

.btn:active {
  transform: translateY(1px);
}

.btn.secondary {
  background: var(--paper);
  border-color: var(--line-strong);
  color: var(--ink);
}

.btn.secondary:hover {
  background: var(--bg-soft);
  color: var(--ink);
}

.btn.ok {
  background: var(--ok);
}

.btn.danger {
  background: var(--danger);
}

.btn.small {
  min-height: 34px;
  padding: 6px 10px;
  font-size: 13px;
}

.btn:disabled {
  cursor: not-allowed;
  opacity: .58;
  transform: none;
}

.action-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.action-group--form {
  justify-content: flex-end;
  margin-top: 21px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.action-group--nowrap {
  flex-wrap: nowrap;
  white-space: nowrap;
}

.inline-form {
  display: inline;
}

.alert {
  position: relative;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 13px 15px;
  margin-bottom: 18px;
  font-weight: 600;
}

.alert--error {
  background: var(--danger-soft);
  border-color: var(--danger);
  color: var(--danger);
}

.alert--success {
  background: var(--ok-soft);
  border-color: var(--ok);
  color: var(--ok);
}

.alert--warning {
  background: var(--warn-soft);
  border-color: var(--warn);
  color: var(--warn);
}

.alert--info {
  background: var(--brand-soft);
  border-color: var(--brand);
  color: var(--brand-dark);
}

.data-table-shell {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
}

.data-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--paper);
}

.data-table th,
.data-table td {
  padding: 9px 11px;
  border-bottom: 1px solid var(--table-row-separator);
  background-clip: padding-box;
  vertical-align: top;
  text-align: left;
}

.data-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bg-soft);
  white-space: nowrap;
  color: var(--ink);
  font-size: 12px;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.sort-arrows {
  display: inline-flex;
  gap: 3px;
  margin-left: 4px;
}

.sort-arrows a {
  color: var(--muted);
  text-decoration: none;
}

.sort-arrows a:hover,
.sort-arrows a:focus-visible,
.sort-arrows a.active {
  color: var(--brand);
}

.data-table tbody tr:hover {
  background: var(--bg-soft);
}

.data-table tr:last-child td {
  border-bottom: 0;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
}

.status-badge--success {
  background: var(--ok-soft);
  color: var(--ok);
}

.status-badge--danger {
  background: var(--danger-soft);
  color: var(--danger);
}

.status-badge--warning {
  background: var(--warn-soft);
  color: var(--warn);
}

.status-badge--info {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.manual {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.role-badge {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.content-toolbar {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.filters {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.filters input,
.filters select {
  min-width: 190px;
}

.login {
  max-width: 460px;
  margin: 70px auto;
  box-shadow: var(--shadow-md);
}

.form-card {
  max-width: 760px;
}

.form-card.wide {
  max-width: 1040px;
}

.workorder-edit-section {
  min-width: 0;
  margin: 0;
  padding: 13px 15px 15px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--bg-soft);
}

.workorder-edit-section legend {
  padding: 0 6px;
  font-size: 14px;
  font-weight: 850;
}

.workorder-edit-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

.workorder-edit-fields label {
  min-width: 0;
  margin: 0;
}

.workorder-edit-fields :is(input, select) {
  margin-top: 7px;
}

@media (max-width: 700px) {
  .workorder-edit-fields {
    grid-template-columns: 1fr;
  }
}

.employee-report-import-form {
  padding-top: 16px;
}

.employee-report-import-controls {
  display: flex;
  align-items: flex-end;
  gap: 14px;
}

.employee-report-import-controls .form-field {
  flex: 1;
  margin-bottom: 0;
}

.employee-report-import-controls .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.employee-report-import-form > .form-field__help {
  margin-top: 7px;
}

.supervisor-allocation-settings {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

body.supervisor-allocation-page>main.container>details.card,
body.supervisor-allocation-page>main.container>section.card,
body.inventory-module-page>main.container>details.card,
body.inventory-module-page>main.container>section.card {
  margin-bottom: 16px;
}

body.supervisor-allocation-page>main.container>:is(details.card, section.card):last-child,
body.inventory-module-page>main.container>:is(details.card, section.card):last-child {
  margin-bottom: 0;
}

.supervisor-allocation-settings h2 {
  margin-bottom: 4px;
}

.supervisor-allocation-settings-fields {
  display: grid;
  grid-template-columns: minmax(210px, 1fr);
  gap: 14px;
  width: min(100%, 320px);
}

.supervisor-allocation-settings-fields .form-field {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .employee-report-import-controls,
  .supervisor-allocation-settings {
    align-items: stretch;
    flex-direction: column;
  }

  .supervisor-allocation-settings-fields {
    grid-template-columns: 1fr;
    width: 100%;
  }
}

/* FEATURE: User directory */
.users-directory-panel { overflow: hidden; }
.users-directory-heading { align-items: flex-start; padding: 0; }
.users-directory-heading h2 { margin: 0 0 3px; }
.users-directory-heading .muted { margin: 0; }
.filter-bar.users-filters { grid-template-columns: minmax(280px,2fr) repeat(3,minmax(145px,1fr)) max-content; gap: 10px; align-items: end; margin: 18px 0 16px; }
.users-filters > * { min-width: 0; margin: 0; }
.users-search-filter { margin-right: 12px; padding-right: 12px; }
.users-filters label { margin-bottom: 5px; font-size: .76rem; }
.users-filters :is(input,select,.btn,.search-control__clear) { min-height: 40px; }
.users-filters .filter-actions { flex-wrap: nowrap; }
.users-filters .filter-actions .btn { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
.users-table-wrap { border: 1px solid var(--line); border-radius: 10px; }
.users-table { min-width: 1040px; }
.users-table :is(th,td) { vertical-align: middle; }
.users-table td:nth-child(3) { max-width: 260px; overflow-wrap: anywhere; }
.users-table th:last-child,.users-table td:last-child { text-align: right; }
.users-pagination { margin: 0; }
.user-create-dialog { width: min(860px,calc(100vw - 28px)); max-height: calc(100vh - 28px); overflow: hidden; }
.user-create-dialog > form { grid-template-rows: auto minmax(0,1fr) auto; gap: 0; max-height: calc(100vh - 28px); padding: 0; }
.user-dialog-header { padding: 20px 22px 18px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg,var(--paper),var(--bg-soft)); }
.user-dialog-header > div { min-width: 0; }
.user-dialog-header h3 { margin: 2px 0 4px; font-size: 1.35rem; }
.user-dialog-body { display: grid; gap: 14px; min-height: 0; padding: 20px 22px; overflow: auto; }
.user-dialog-body .alert { margin: 0; }
.user-dialog-section { padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.user-dialog-section-heading { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 15px; }
.user-dialog-section-heading > span { display: grid; flex: 0 0 28px; height: 28px; place-items: center; border-radius: 50%; background: var(--brand-soft); color: var(--brand-dark); font-size: .78rem; font-weight: 800; }
.user-dialog-section-heading h4 { margin: 0 0 2px; font-size: 1rem; }
.user-dialog-section-heading p { margin: 0; color: var(--muted); font-size: .82rem; }
.user-dialog-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 20px; align-items: start; }
.user-dialog-grid .form-field { margin: 0; }
.user-dialog-wide { grid-column: 1 / -1; }
.user-active-option { margin: 16px 0 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); }
.user-active-option span { display: grid; gap: 2px; }
.user-active-option small { color: var(--muted); font-weight: 500; }
.user-dialog-footer { padding: 15px 22px; background: var(--bg-soft); }
.user-dialog-footer .action-group { margin-left: auto; align-items: center; }

@media (max-width: 1200px) {
  .filter-bar.users-filters { grid-template-columns: repeat(3,minmax(160px,1fr)); }
  .users-search-filter { grid-column: span 2; margin-right: 0; padding-right: 0; }
}

@media (max-width: 700px) {
  .filter-bar.users-filters { grid-template-columns: 1fr; }
  .users-search-filter { grid-column: auto; }
  .users-filters .filter-actions,.users-filters .filter-actions .btn { width: 100%; }
  .users-pagination { justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; }
  .users-pagination .pagination-page-size { flex-basis: 100%; }
  .user-create-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .user-create-dialog > form { max-height: calc(100vh - 16px); }
  .user-dialog-grid { grid-template-columns: 1fr; }
  .user-dialog-wide { grid-column: auto; }
  .user-dialog-footer { justify-content: flex-end; }
  .user-dialog-footer .action-group { width: auto; }
  .user-dialog-footer .btn { width: auto; }
}

.temporary-crew-section { margin-top: 18px; }
.temporary-crew-section .content-toolbar { align-items: flex-start; }
.temporary-crew-history { margin-top: 14px; border-top: 1px solid var(--line); }
.temporary-crew-history > summary { display: flex; justify-content: space-between; gap: 12px; padding: 15px 2px 4px; cursor: pointer; }
.crew-schedule-dialog > form,
.crew-editor-dialog > form {
  max-height: min(90vh,820px);
  overflow: hidden;
}
.crew-schedule-dialog header,
.crew-editor-dialog header { background: linear-gradient(135deg,var(--paper),var(--bg-soft)); }
.crew-schedule-dialog header > div,
.crew-editor-dialog header > div { min-width: 0; }
.crew-schedule-dialog header h3,
.crew-editor-dialog header h3 { margin: 2px 0 4px; font-size: 1.3rem; }
.crew-schedule-dialog footer,
.crew-editor-dialog footer { background: var(--bg-soft); }
.crew-dialog-body { display: grid; gap: 16px; }
.crew-dialog-body .form-field { margin: 0; }
.crew-dialog-body .alert { margin: 0; }
.crew-dialog-grid,
.crew-technician-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.crew-technician-fields { padding: 20px 22px; }
.crew-home-assignment-field { grid-column: 1 / -1; }
.crew-home-assignment-summary { margin: 0; min-height: 42px; display: flex; align-items: center; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-soft); color: var(--ink); }
.crew-home-assignment-field > [hidden] { display: none; }
.crew-hours-field { width: min(100%,200px); }
.crew-department-picker { min-width: 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); }
.crew-department-picker legend { padding: 0 6px; font-weight: 700; }
.crew-department-picker .checkbox-grid { margin: 2px 0 10px; }
.crew-department-picker .checkbox-label { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.crew-department-picker .checkbox-label span { display: grid; gap: 1px; }
.crew-department-picker .checkbox-label small { color: var(--muted); font-weight: 500; }
.crew-dialog-note { margin: 0; padding: 11px 13px; border-left: 3px solid var(--brand); border-radius: 6px; background: var(--bg-soft); color: var(--muted); font-size: .9rem; }
.crew-dialog-body textarea { resize: vertical; }

@media(max-width:600px) {
  .crew-dialog-grid,
  .crew-technician-fields { grid-template-columns: 1fr; }
  .crew-dialog-grid > :empty { display: none; }
  .crew-technician-fields { padding-left: 16px; padding-right: 16px; }
}

.user-form-card {
  width: 100%;
  max-width: 920px;
}

.settings-groups {
  display: grid;
  gap: 20px;
  margin-bottom: 20px;
}

.settings-group {
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}

.settings-group legend {
  padding: 0 8px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
}

.settings-group .form-field,
.settings-group .checkbox-row {
  margin-bottom: 0;
}

.settings-page-heading {
  margin-bottom: 22px;
}

.settings-page-heading :is(h1, p) {
  margin-bottom: 0;
}

.settings-layout {
  display: grid;
  grid-template-columns: 245px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.settings-layout-personal {
  grid-template-columns: minmax(0, 900px);
}

.settings-sidebar {
  position: sticky;
  top: 76px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--paper);
  box-shadow: var(--shadow-sm);
}

.settings-sidebar-title {
  display: grid;
  padding: 16px 17px 13px;
  border-bottom: 1px solid var(--line);
  background: var(--bg-soft);
}

.settings-sidebar-title strong {
  font-size: 15px;
}

.settings-sidebar-title span {
  color: var(--muted);
  font-size: 12px;
}

.side-nav {
  display: grid;
  gap: 3px;
  padding: 7px;
}

.side-nav__item {
  display: grid;
  gap: 1px;
  padding: 10px 11px;
  border-radius: 8px;
  color: var(--ink);
  text-decoration: none;
}

.side-nav__item span {
  font-size: 13px;
  font-weight: 750;
}

.side-nav__item small {
  color: var(--muted);
  font-size: 11px;
}

.side-nav__item:hover,
.side-nav__item:focus-visible {
  background: var(--bg-soft);
  outline: none;
}

.side-nav__item.is-active {
  background: var(--brand-soft);
  color: var(--brand-dark);
  box-shadow: inset 3px 0 0 var(--brand);
}

.settings-content {
  min-width: 0;
}

.settings-main-form {
  display: contents;
}

.settings-panel {
  display: grid;
  gap: 20px;
  width: 100%;
  max-width: none;
  margin: 0;
}

.settings-page.settings-enhanced [data-settings-panel]:not(.is-active) {
  display: none;
}

.settings-fields .form-field {
  margin-bottom: 0;
}

.settings-panel-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.settings-specialty-editor {
  display: grid;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.settings-subsection-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.settings-subsection-heading :is(h3, p) {
  margin-bottom: 0;
}

.settings-specialty-table {
  min-width: 680px;
  table-layout: fixed;
}

.settings-specialty-table th:nth-child(1) { width: 36%; }
.settings-specialty-table th:nth-child(2) { width: 34%; }
.settings-specialty-table th:nth-child(3) { width: 15%; }
.settings-specialty-table th:nth-child(4) { width: 15%; }

.settings-specialty-table :is(input, select) {
  width: 100%;
  margin: 0;
}

.settings-specialty-table .checkbox-row {
  margin: 0;
  white-space: nowrap;
}

.settings-danger-zone {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--warn) 35%, var(--line));
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--warn-soft) 45%, var(--paper));
}

.settings-danger-zone p,
.settings-danger-zone .checkbox-row {
  margin: 2px 0 0;
}

.settings-danger-zone p {
  color: var(--muted);
  font-size: 12px;
}

.settings-feedback {
  margin-bottom: 16px;
}

.settings-mobile-picker {
  display: none;
}

.settings-page .form-card.wide,
.settings-family-card {
  width: 100%;
  max-width: none;
}

.settings-family-card {
  display: grid;
  gap: 18px;
  margin-bottom: 20px;
}

.settings-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.settings-section-heading h2,
.settings-section-heading p {
  margin-bottom: 0;
}

.settings-family-table-wrap table {
  table-layout: fixed;
}

.settings-family-table-wrap th:nth-child(1) { width: 45%; }
.settings-family-table-wrap th:nth-child(2) { width: 18%; }
.settings-family-table-wrap th:nth-child(3) { width: 15%; }
.settings-family-table-wrap th:nth-child(4) { width: 22%; }

.settings-family-add-form {
  display: grid;
  grid-template-columns: minmax(160px, .8fr) minmax(260px, 1.7fr) minmax(190px, .8fr) auto;
  align-items: start;
  gap: 16px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.settings-family-add-form .form-field {
  margin-bottom: 0;
}

.settings-family-add-form>.btn {
  min-height: 44px;
  margin-top: 25px;
  white-space: nowrap;
}

.settings-family-add-form-simple {
  grid-template-columns: minmax(280px, 1.5fr) minmax(190px, .7fr) auto;
}

.settings-location-add-form {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.5fr) auto;
  align-items: start;
  gap: 16px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.settings-location-add-form .form-field { margin-bottom: 0; }
.settings-location-add-form>.btn { min-height: 44px; margin-top: 25px; white-space: nowrap; }

.settings-row-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}

.settings-edit-dialog header :is(h3, p),
.settings-edit-dialog .form-field {
  margin-bottom: 0;
}

.workorder-edit-dialog {
  width: min(calc(100% - 28px), 820px);
}

.workorder-edit-dialog > form {
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0;
  max-height: min(92vh, 820px);
  padding: 0;
  overflow: hidden;
}

.workorder-edit-dialog header,
.workorder-edit-dialog footer {
  padding: 18px 20px;
}

.workorder-edit-dialog header {
  border-bottom: 1px solid var(--line);
}

.workorder-edit-dialog-body {
  display: grid;
  gap: 14px;
  padding: 20px;
  overflow: auto;
}

.workorder-edit-dialog-body .alert {
  margin: 0;
}

@media (max-width: 900px) {
  .settings-layout {
    display: block;
  }

  .settings-sidebar {
    display: none;
  }

  .settings-mobile-picker {
    display: block;
    margin-bottom: 16px;
  }

  .settings-family-add-form {
    grid-template-columns: 1fr 1fr;
  }

  .settings-location-add-form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .settings-section-heading {
    flex-direction: column;
  }

  .settings-family-add-form {
    grid-template-columns: 1fr;
  }

  .settings-location-add-form { grid-template-columns: 1fr; }

  .settings-family-add-form>.btn {
    margin-top: 0;
  }

  .settings-location-add-form>.btn { margin-top: 0; }

  .settings-family-table-wrap table {
    min-width: 720px;
  }

  .settings-danger-zone {
    align-items: flex-start;
    flex-direction: column;
  }

  .settings-panel-actions .btn {
    width: 100%;
  }
}

.inline-workorder-create {
  margin: 0;
}

.inline-workorder-create-action {
  display: flex;
  align-items: flex-end;
  padding-bottom: 7px;
}

.inline-workorder-create-action .btn {
  width: auto;
  min-height: 38px;
  white-space: nowrap;
}

.inline-workorder-create-grid {
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) max-content;
}

.inline-workorder-create-grid > * {
  grid-column: auto;
}

.inline-workorder-create-grid + .table-wrap {
  margin-top: 16px;
}

@media (max-width: 760px) {
  .inline-workorder-create-grid {
    grid-template-columns: 1fr;
  }

  .inline-workorder-create-action {
    justify-content: flex-start;
    padding-bottom: 0;
  }
}

.induction-form-card .form-layout {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.induction-form-section {
  min-width: 0;
  margin: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--bg-soft);
}

.induction-form-section legend {
  padding: 0 8px;
  color: var(--ink);
  font-size: 16px;
  font-weight: 800;
}

.induction-section-description {
  margin: 0 0 14px;
}

.assigned-workorders-section .section-title-row {
  margin-bottom: 12px;
}

.workorder-toggle-card {
  margin-bottom: 16px;
}

.workorder-toggle-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.workorder-toggle-heading p {
  margin-bottom: 0;
}

.workorder-toggle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

.workorder-toggle-button {
  display: flex;
  min-height: 76px;
  margin: 0;
  padding: 14px 16px;
  border: 2px solid var(--line-strong);
  border-radius: var(--radius-md);
  background: var(--paper);
  color: var(--muted);
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.workorder-toggle-button:hover {
  border-color: var(--brand);
}

.workorder-toggle-button:has(input:focus-visible) {
  outline: 3px solid color-mix(in srgb, var(--brand) 28%, transparent);
  outline-offset: 2px;
}

.workorder-toggle-button.is-active {
  border-color: var(--brand);
  background: var(--brand-soft);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--brand);
}

.workorder-toggle-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 1px;
  opacity: 0;
}

.workorder-toggle-button span {
  display: grid;
  align-content: center;
  gap: 3px;
}

.workorder-toggle-button strong {
  font-size: 17px;
}

.workorder-toggle-button small {
  font-weight: 600;
}

@media (min-width: 761px) and (max-width: 1100px) {
  .workorder-toggle-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.induction-planning-table th,
.induction-planning-table td {
  width: auto !important;
}

.induction-planning-table td[data-column="work_order"] {
  min-width: 145px;
}

.induction-planning-table td[data-column="work_order"] small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
}

.induction-planning-filters {
  grid-template-columns: repeat(6, minmax(135px, 1fr));
}

#induction-task-filter-form {
  grid-template-columns: minmax(260px, 2.2fr) repeat(7, minmax(0, 1fr)) max-content;
  gap: 10px;
}

#induction-nr-filter-form {
  grid-template-columns: minmax(260px, 2.2fr) repeat(4, minmax(0, 1fr)) max-content;
  gap: 10px;
}

:is(#induction-task-filter-form, #induction-nr-filter-form)>.planning-search-filter {
  margin-right: 12px;
  padding-right: 20px;
}

/* Match Task Card filter order to the corresponding table columns. */
#induction-task-filter-form > div:nth-of-type(8) { order: 7; }
#induction-task-filter-form > div:nth-of-type(7) { order: 8; }
#induction-task-filter-form > div:nth-of-type(9) { order: 9; }

@media (min-width: 901px) and (max-width: 1280px) {
  #induction-task-filter-form {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
  }

  #induction-nr-filter-form {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
  }

  :is(#induction-task-filter-form, #induction-nr-filter-form) > .planning-search-filter {
    grid-column: span 2;
    margin-right: 0;
    padding-right: 0;
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  #induction-task-filter-form,
  #induction-nr-filter-form {
    grid-template-columns: repeat(4, minmax(140px, 1fr));
  }

  :is(#induction-task-filter-form, #induction-nr-filter-form) > .planning-search-filter {
    grid-column: 1 / -1;
    margin-right: 0;
    padding-right: 0;
  }
}

@media (max-width: 760px) {
  #induction-task-filter-form,
  #induction-nr-filter-form {
    grid-template-columns: 1fr;
  }

  :is(#induction-task-filter-form, #induction-nr-filter-form)>.planning-search-filter {
    margin-right: 0;
    padding-right: 0;
  }
}

.workspace-stat-separator {
  margin: 0 9px;
  color: var(--line-strong);
}

@media (max-width: 760px) {
  .workorder-toggle-heading {
    flex-direction: column;
  }

  .workorder-toggle-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .workorder-toggle-button {
    min-height: 68px;
    padding: 10px 12px;
  }

}

@media (max-width: 360px) {
  .workorder-toggle-grid {
    grid-template-columns: 1fr;
  }
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 18px;
}

.checkbox-row input {
  width: auto;
  min-height: auto;
}

code {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
}

/* FEATURE: Profile and password */
.profile-layout {
  display: grid;
  grid-template-columns: minmax(250px, 330px) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.account-summary {
  display: grid;
  gap: 18px;
  position: sticky;
  top: 90px;
}

.avatar {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: linear-gradient(145deg, #194b75, #0d6b63);
  color: #fff;
  font-size: 24px;
  font-weight: 850;
  box-shadow: 0 7px 18px rgba(25, 75, 117, .2);
}

.account-summary h2 {
  margin-bottom: 3px;
}

.account-email {
  margin: 0 0 10px;
  color: var(--muted);
  word-break: break-word;
}

.account-note {
  margin-top: 4px;
  padding: 15px;
  border-radius: 10px;
  background: var(--bg-soft);
  border: 1px solid var(--line);
}

.account-note strong {
  display: block;
  margin-bottom: 4px;
}

.account-note p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.password-panel {
  width: 100%;
  max-width: 880px;
}

.section-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 18px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.section-heading h2 {
  margin-bottom: 4px;
}

.section-heading p {
  margin: 0;
}

.password-form {
  max-width: 720px;
}

.password-input-wrap {
  position: relative;
}

.password-input-wrap input {
  padding-right: 72px;
}

.password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  min-height: 32px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--brand);
  padding: 5px 8px;
  font-weight: 750;
  cursor: pointer;
}

.password-toggle:hover {
  background: var(--brand-soft);
}

.password-strength {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 9px;
  color: var(--muted);
  font-size: 13px;
}

.strength-track {
  flex: 1;
  max-width: 240px;
  height: 7px;
  overflow: hidden;
  border-radius: 99px;
  background: var(--line);
}

.strength-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--muted);
  transition: width .2s ease, background .2s ease;
}

.strength-track span[data-score="1"] {
  background: #d92d20;
}

.strength-track span[data-score="2"] {
  background: #f79009;
}

.strength-track span[data-score="3"] {
  background: #eaaa08;
}

.strength-track span[data-score="4"] {
  background: #12b76a;
}

.strength-track span[data-score="5"] {
  background: #067647;
}

.password-requirements {
  margin-top: 8px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-soft);
}

.requirements-title {
  margin: 0 0 10px;
  font-weight: 750;
}

.requirements-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px 16px;
}

.requirements-grid span {
  position: relative;
  padding-left: 21px;
  color: var(--muted);
  font-size: 13px;
}

.requirements-grid span::before {
  content: "○";
  position: absolute;
  left: 0;
  color: var(--muted);
}

.requirements-grid span.is-met {
  color: var(--ok);
}

.requirements-grid span.is-met::before {
  content: "✓";
  color: var(--ok);
  font-weight: 900;
}

.field-feedback {
  min-height: 20px;
  margin: 6px 0 0;
  font-size: 13px;
  font-weight: 650;
}

.success-text {
  color: var(--ok);
}

.error-text {
  color: var(--danger);
}

/* SHARED COMPONENTS: Import loading state */
.import-submit-button {
  min-width: 230px;
  position: relative;
}

.import-submit-button:disabled,
.import-submit-button[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: .72;
}

.button-spinner {
  display: none;
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: import-spinner-rotation .7s linear infinite;
}

.import-submit-button.is-loading .button-spinner {
  display: inline-block;
}

.import-status {
  margin-top: 1rem;
  padding: .9rem 1rem;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: var(--brand-soft);
  color: var(--brand-dark);
  font-size: .95rem;
}

.import-status[hidden] {
  display: none;
}

@keyframes import-spinner-rotation {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 980px) {

  .span-3,
  .span-4 {
    grid-column: span 6;
  }

  .profile-layout {
    grid-template-columns: 1fr;
  }

  .account-summary {
    position: static;
    grid-template-columns: auto 1fr;
    align-items: center;
  }

  .account-note {
    grid-column: 1 / -1;
  }

  .password-panel {
    max-width: none;
  }

}

@media (max-width: 1280px) {
  .topbar {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
  }

  .brand-lockup {
    min-width: 0;
  }

  .brand {
    white-space: normal;
  }

  .js .mobile-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 7px;
    background: transparent;
    color: #fff;
    font: inherit;
    font-weight: 750;
    cursor: pointer;
  }

  .mobile-nav-toggle:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .35);
    outline-offset: 2px;
  }

  .js .topbar-navigation {
    display: none;
    grid-column: 1 / -1;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, .14);
  }

  .js .topbar-navigation.is-open {
    display: grid;
    gap: 6px;
  }

  .topbar nav {
    width: 100%;
    justify-content: flex-start;
  }

  .topbar-centre-nav {
    justify-content: center;
  }

}

@media (max-width: 760px) {
  body {
    font-size: 15px;
  }

  .container {
    width: min(100% - 22px, var(--page-max-width));
    margin-top: 20px;
  }

  .span-3,
  .span-4,
  .span-5,
  .span-6,
  .span-7,
  .span-8 {
    grid-column: span 12;
  }

  .card {
    padding: 19px;
    border-radius: 13px;
  }

  input,
  select,
  textarea {
    min-height: 44px;
  }

  .btn {
    min-height: 42px;
  }

  .page-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .requirements-grid {
    grid-template-columns: 1fr;
  }

  .action-group--form {
    justify-content: stretch;
  }

  .action-group--form .btn {
    flex: 1;
  }

  .filters {
    width: 100%;
  }

  .filters input,
  .filters select {
    min-width: 100%;
  }

  .login {
    margin: 30px auto;
  }
}

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }

  .button-spinner {
    animation: none !important;
  }
}

/* FEATURE: Master Data manager */
.master-kpis {
  margin-bottom: 20px;
}

.master-manager-card {
  padding: 0;
  overflow: hidden;
}

.master-filter-grid {
  display: grid;
  grid-template-columns: minmax(240px, 2fr) repeat(4, minmax(130px, 1fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 22px;
  border-bottom: 1px solid var(--line);
  background: var(--bg-soft);
}

.master-filter-grid label {
  font-size: 13px;
}

.filter-actions {
  display: flex;
  gap: 8px;
  padding-bottom: 1px;
}

.master-table-wrap {
  border: 0;
  border-radius: 0;
}

.master-table {
  min-width: 1160px;
}

.master-table .select-col {
  width: 46px;
}

.master-table input[type=checkbox] {
  width: 18px;
  min-height: 18px;
  accent-color: var(--brand);
}

.master-table .sticky-cell {
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--paper);
  box-shadow: 1px 0 0 var(--line);
  min-width: 180px;
}

.master-table tbody tr:hover .sticky-cell {
  background: var(--bg-soft);
}

.master-table thead th:nth-child(2) {
  position: sticky;
  left: 46px;
  z-index: 4;
}

.description-cell {
  min-width: 330px;
  max-width: 500px;
}

.table-subtext {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.is-archived td {
  opacity: .68;
  background: var(--bg-soft);
}

.is-archived .sticky-cell {
  background: var(--bg-soft);
}

.empty-state {
  padding: 32px;
  text-align: center;
  color: var(--muted);
}

.empty-state--compact {
  padding: 16px;
}

.data-table__empty {
  padding: 28px 16px;
  color: var(--muted);
  text-align: center;
  white-space: normal;
}

.data-table__empty > .empty-state {
  padding: 0;
}

.pagination {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  padding: 16px 22px;
  border-top: 1px solid var(--line);
  margin-top: 18px;
}

.page-indicator {
  min-width: 100px;
  text-align: center;
  font-weight: 700;
}

.master-edit-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.master-edit-card {
  padding: 14px;
}

.master-edit-card form {
  display: grid;
  gap: 12px;
}

.master-edit-section {
  min-width: 0;
  margin: 0;
  padding: 12px 14px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--bg-soft);
}

.master-edit-section legend {
  padding: 0 6px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 850;
}

.master-edit-section-description {
  margin: -2px 0 10px;
  color: var(--muted);
  font-size: 12px;
}

.master-edit-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  align-items: start;
}

.master-edit-fields > div {
  min-width: 0;
}

.master-edit-fields > div > label:first-child {
  min-height: 18px;
}

.master-edit-fields.identity-fields {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.master-edit-fields.parts-fields {
  grid-template-columns: minmax(0, 3fr) minmax(110px, 1fr);
}

.master-edit-fields.tooling-fields {
  grid-template-columns: 1fr;
}

.master-edit-fields .field-span-full {
  grid-column: 1 / -1;
}

.master-primary-section { padding-top: 10px; }

.master-edit-secondary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(240px, .8fr) minmax(240px, 1fr);
  gap: 12px;
  align-items: start;
}

.master-support-section { height: 100%; background: var(--paper); }
.master-support-section .master-edit-fields { gap: 8px 10px; }
.master-support-section.notes-section textarea {
  width: 100%;
  min-height: 132px;
  max-height: 264px;
}

.master-edit-section :is(input, select, textarea, .multi-select > summary, .boolean-field) {
  min-height: 38px;
}

.master-edit-section textarea {
  resize: vertical;
  max-height: 132px;
  overflow-y: auto;
}

.master-edit-section .boolean-field {
  padding-block: 6px;
}

.master-edit-section .ndt-field .boolean-field {
  justify-content: center;
  width: 100%;
}

.master-edit-section textarea[rows="1"] {
  height: 38px;
  min-height: 38px;
}

.notes-section textarea {
  width: 100%;
}

.master-edit-actions {
  position: sticky;
  bottom: 0;
  z-index: 4;
  justify-content: flex-start;
  margin: 0 -14px -14px;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  background: color-mix(in srgb, var(--paper) 94%, transparent);
  backdrop-filter: blur(8px);
}

.master-save-status { margin-right: auto; color: var(--muted); font-size: 12px; font-weight: 700; }
.master-save-status.is-dirty { color: var(--warning, #9a6700); }

.history-panel {
  position: sticky;
  top: 90px;
  max-height: calc(100vh - 120px);
  overflow: auto;
}

.master-history-panel { padding: 14px; }
.master-history-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.master-history-panel > header h2,
.master-history-panel > header p { margin: 0; }
.master-history-panel > header p,
.master-history-panel > header > span { color: var(--muted); font-size: 12px; }
.master-history-panel .history-list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 1fr); grid-template-rows: 1fr; gap: 10px; overflow-x: auto; padding-bottom: 3px; }
.master-history-panel .history-item { max-height: 190px; overflow: auto; }
.master-danger-zone { padding: 13px 16px; background: color-mix(in srgb, var(--danger) 3%, var(--paper)); }

.history-list {
  display: grid;
  gap: 12px;
}

.history-item {
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-soft);
}

.history-title {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.history-title time {
  color: var(--muted);
  font-size: 12px;
}

.history-change {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 13px;
}

.history-change del {
  color: var(--danger);
}

.history-change ins {
  color: var(--ok);
  text-decoration: none;
  font-weight: 700;
}

@media (max-width: 1120px) {
  .master-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .filter-actions {
    align-self: end;
  }

  .master-edit-layout {
    grid-template-columns: 1fr;
  }

  .history-panel {
    position: static;
    max-height: none;
  }
}

@media (max-width: 1400px) {
  .master-edit-fields.identity-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

}

@media (max-width: 760px) {
  .master-filter-grid {
    grid-template-columns: 1fr;
  }

  .pagination {
    align-items: stretch;
    flex-direction: column;
  }

  .master-edit-fields,
  .master-edit-fields.identity-fields,
  .master-edit-fields.parts-fields,
  .master-edit-fields.tooling-fields {
    grid-template-columns: 1fr;
  }

  .master-edit-fields .field-span-full {
    grid-column: auto;
  }

  .master-edit-secondary-grid { grid-template-columns: 1fr; }
  .master-edit-actions { align-items: stretch; flex-wrap: wrap; }
  .master-edit-actions .master-save-status { order: -1; flex-basis: 100%; margin-right: 0; }
  .master-edit-actions .btn { flex: 1; }
  .master-history-panel > header { align-items: flex-start; flex-direction: column; }

  .master-kpis .span-3 {
    grid-column: span 6;
  }
}

@media (max-width: 500px) {
  .master-kpis .span-3 {
    grid-column: span 12;
  }
}

/* FEATURE: Work Order manager */
.filter-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 14px;
  align-items: end;
}

.filter-bar--compact {
  grid-template-columns: repeat(6, minmax(135px, 1fr));
  margin-bottom: 18px;
}

.filter-bar--contained {
  margin: .85rem 0 1rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-soft);
}

.filter-bar--spacious {
  gap: 18px;
  align-items: start;
  margin-top: 14px;
}

.filter-bar__actions {
  display: flex;
  gap: 8px;
  align-items: end;
}

.small-text {
  font-size: 12px;
}

.row-archived {
  opacity: .62;
  background: var(--bg-soft);
}

.pagination a {
  min-width: 36px;
  min-height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  text-decoration: none;
  font-weight: 700;
}

.pagination a.active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}

.status-draft {
  background: var(--bg-soft);
  color: var(--muted);
}

.status-active {
  background: var(--ok-soft);
  color: var(--ok);
}

.status-on_hold {
  background: var(--warn-soft);
  color: var(--warn);
}

.status-completed {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.task-not_started {
  background: var(--bg-soft);
  color: var(--muted);
}

.task-ready {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.task-in_progress {
  background: var(--warn-soft);
  color: var(--warn);
}

.task-blocked {
  background: var(--danger-soft);
  color: var(--danger);
}

.task-completed {
  background: var(--ok-soft);
  color: var(--ok);
}

.workorder-overview {
  margin: 20px 0;
}

.trade-summary {
  display: grid;
  gap: 2px;
}

.trade-summary>div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.trade-summary>div:last-child {
  border-bottom: 0;
}

.archive-order-form {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.planning-table {
  min-width: 1450px;
}

.planning-table th:first-child,
.planning-table td:first-child {
  width: 46px;
  text-align: center;
}

.planning-table input[type=checkbox] {
  width: 17px;
  min-height: 17px;
}

.description-cell {
  min-width: 320px;
  max-width: 520px;
}

.planner-note-preview {
  margin-top: 7px;
  padding: 7px 9px;
  border-left: 3px solid var(--brand);
  background: var(--brand-soft);
  color: var(--brand-dark);
  font-size: 12px;
}

.critical-flag {
  display: inline-flex;
  margin: 5px 0 0;
  padding: 2px 7px;
  border-radius: 99px;
  background: var(--danger-soft);
  color: var(--danger);
  font-size: 11px;
  font-weight: 800;
}

.reviewed-mark {
  color: var(--ok);
  font-weight: 800;
  white-space: nowrap;
}

.detail-list {
  display: grid;
  grid-template-columns: minmax(100px, .8fr) minmax(0, 1.2fr);
  gap: 0;
  margin: 0;
}

.detail-list dt,
.detail-list dd {
  margin: 0;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}

.detail-list dt {
  color: var(--muted);
  font-weight: 700;
}

.detail-list dd {
  word-break: break-word;
}

@media(max-width:1100px) {

  .filter-bar,
  .filter-bar--compact {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media(max-width:760px) {

  .filter-bar,
  .filter-bar--compact {
    grid-template-columns: 1fr;
  }

  .filter-bar__actions {
    align-items: stretch;
  }

  .filter-bar__actions .btn {
    flex: 1;
  }

}


.summary-strip {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--bg-soft);
  border: 1px solid var(--line)
}

.summary-strip span {
  color: var(--muted)
}

.summary-strip strong {
  color: var(--ink);
  margin-right: 4px
}

.detail-list {
  display: grid;
  grid-template-columns: minmax(110px, .8fr) 1.4fr;
  gap: 10px 14px;
  margin: 0
}

.detail-list dt {
  font-weight: 700;
  color: var(--muted)
}

.detail-list dd {
  margin: 0;
  overflow-wrap: anywhere
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 9px
}

.checkbox-label input {
  width: auto
}

@media(max-width:760px) {
  .detail-list {
    grid-template-columns: 1fr
  }

  .detail-list dd {
    margin-bottom: 8px
  }
}

/* FEATURE: Work-order organization */
.workorder-tabs {
  display: flex;
  gap: 8px;
  margin: 0 0 20px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
  width: max-content;
  max-width: 100%;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.workorder-tabs a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 150px;
  justify-content: center;
  padding: 11px 18px;
  border-radius: 10px;
  color: inherit;
  text-decoration: none;
  font-weight: 700;
  transition: background-color .2s ease, color .2s ease;
}

.workorder-tabs a:hover {
  background: var(--bg-soft);
}

.workorder-tabs a.active {
  background: #172033;
  color: #fff;
}

.workorder-tabs strong {
  min-width: 28px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(127, 127, 127, .18);
  text-align: center;
  font-size: .82rem;
  transition: background-color .2s ease, color .2s ease;
}

[data-theme="dark"] .workorder-tabs a.active {
  background: #28445f;
  color: #fff;
}

[data-theme="dark"] .workorder-tabs a:not(.active) {
  color: var(--muted);
}

.workorder-summary-bar {
  margin-bottom: 20px;
}

.inline-form {
  display: inline-flex;
  margin: 0;
}

@media (max-width:700px) {
  .workorder-tabs {
    width: 100%;
  }

  .workorder-tabs a {
    flex: 1;
    min-width: 0;
  }
}

.selection-summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  margin-bottom: 18px;
  border: 1px solid var(--border, #dfe4ea);
  border-radius: 10px;
  background: var(--bg-soft);
}

.selection-summary span {
  color: var(--muted, #667085);
}

/* FEATURE: Non-Routine overview */
.nr-stats {
  display: grid;
  grid-template-columns: repeat(6, minmax(125px, 1fr));
  gap: 14px;
  margin: 0 0 20px;
}

.nr-stat-card {
  display: flex;
  min-height: 112px;
  padding: 18px 16px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  overflow: hidden;
}

.nr-stat-card .kpi {
  max-width: 100%;
  font-size: clamp(25px, 2.6vw, 34px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nr-stat-card .kpi-label {
  line-height: 1.25;
  overflow-wrap: anywhere;
}

@media (max-width: 1100px) {
  .nr-stats {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media (max-width: 650px) {
  .nr-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nr-stat-card {
    min-height: 100px;
  }
}

/* FEATURE: Database-managed roles and permissions */
.role-edit-dialog { width: min(1080px, calc(100vw - 28px)); height: min(92vh, 960px); max-height: min(92vh, 960px); overflow: hidden; }
.role-edit-dialog > form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 0; height: 100%; max-height: none; padding: 0; }
.role-dialog-header { padding: 20px 24px 17px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, var(--paper), var(--bg-soft)); }
.role-dialog-header h3 { font-size: 1.35rem; }
.role-dialog-header .muted { margin-top: 4px; }
.role-dialog-body { min-height: 0; overflow-y: auto; padding: 22px 24px 26px; }
.role-details-card { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--bg-soft); }
.role-details-card h4,.role-permissions-heading h4 { margin: 0; }
.role-details-grid { display: grid; grid-template-columns: minmax(220px,.8fr) minmax(320px,1.4fr); gap: 16px; margin-top: 14px; }
.role-details-grid .form-field { margin: 0; }
.role-details-card textarea { min-height: 68px; }
.role-option-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.role-option-card { flex: 1 1 280px; align-items: flex-start; gap: 10px; margin: 0; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); }
.role-option-card span { display: grid; gap: 2px; }
.role-option-card small { color: var(--muted); font-weight: 500; }
.role-permissions-editor { margin-top: 22px; }
.role-permissions-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.role-permissions-heading p { margin: 3px 0 0; }
.role-permission-actions,.role-group-actions { display: flex; align-items: center; gap: 6px; }
.role-permission-search { display: block; margin: 13px 0 15px; }
.role-permission-search input { width: 100%; min-height: 42px; padding-left: 38px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23647789' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.2-3.2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: 12px center; }
.role-permission-grid { display: grid; grid-template-columns: 230px minmax(0,1fr); min-height: 330px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); }
.role-module-nav { display: grid; align-content: start; gap: 3px; padding: 10px; border-right: 1px solid var(--line); background: var(--bg-soft); }
.role-module-nav button { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 10px 11px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; font-size: .83rem; font-weight: 700; text-align: left; cursor: pointer; }
.role-module-nav button:hover { background: var(--paper); }
.role-module-nav button.active { background: var(--paper); color: var(--accent); box-shadow: 0 1px 4px rgba(15,38,59,.1); }
.role-module-nav small { flex: none; color: var(--muted); font-size: .7rem; }
.role-permission-group { min-width: 0; margin: 0; padding: 18px 20px; border: 0; background: var(--paper); }
.role-permission-group legend { display: flex; align-items: center; justify-content: space-between; width: calc(100% + 8px); margin-left: -4px; padding: 0 5px; font-weight: 800; }
.role-permission-group legend > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.role-permission-group legend small { color: var(--muted); font-size: .72rem; font-weight: 700; }
.role-group-actions button { padding: 3px 5px; border: 0; background: transparent; color: var(--accent); font: inherit; font-size: .72rem; font-weight: 750; cursor: pointer; }
.role-group-actions button:hover { text-decoration: underline; }
.role-permission-item { align-items: flex-start; gap: 9px; margin: 6px 0; padding: 10px; border: 1px solid transparent; border-radius: 8px; }
.role-permission-item:hover { background: var(--bg-soft); }
.role-permission-item span { display: grid; min-width: 0; gap: 2px; }
.role-permission-item small { overflow: hidden; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .71rem; text-overflow: ellipsis; }
.role-permission-item:has(input:disabled) { opacity: .55; }
.role-permission-empty { margin: 16px 0 0; text-align: center; }
.role-dialog-footer { min-height: 64px; padding: 14px 24px; border-top: 1px solid var(--line); background: var(--bg-soft); }
.role-dialog-footer .action-group { margin: 0; }
@media (max-width: 760px) {
  .role-edit-dialog { width: calc(100vw - 16px); height: calc(100vh - 16px); max-height: calc(100vh - 16px); }
  .role-dialog-header,.role-dialog-body,.role-dialog-footer { padding-inline: 16px; }
  .role-details-grid { grid-template-columns: 1fr; }
  .role-permission-grid { grid-template-columns: 1fr; }
  .role-module-nav { display: flex; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .role-module-nav button { flex: 0 0 auto; width: auto; white-space: nowrap; }
  .role-permissions-heading,.role-dialog-footer { align-items: flex-start; }
  .role-dialog-footer { flex-direction: column; }
  .role-dialog-footer .action-group { align-self: stretch; justify-content: flex-end; }
}

/* FEATURE: Audit log workspace */
.audit-page-heading { margin-bottom: 12px; }
.audit-kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 10px; }
.audit-kpis .card { display: grid; align-content: center; gap: 3px; min-height: 78px; padding: 12px 16px; }
.audit-kpis span,.audit-kpis small { color: var(--muted); }
.audit-kpis span { font-size: .76rem; font-weight: 750; text-transform: uppercase; letter-spacing: .035em; }
.audit-kpis strong { font-size: 1.4rem; line-height: 1.15; }
.audit-workspace { gap: 0; }
.audit-workspace-panel { overflow: hidden; }
.audit-workspace-toolbar { padding: 0; }
.audit-workspace-toolbar h2 { margin-bottom: 2px; }
.filter-bar.audit-filters { grid-template-columns: minmax(260px,2fr) repeat(3,minmax(140px,1fr)) repeat(2,150px) max-content; gap: 10px; align-items: end; margin: 0 0 16px; padding: 0; }
.audit-filters > * { min-width: 0; margin: 0; }
.audit-filters > .planning-search-filter { margin-right: 8px; padding-right: 14px; }
.audit-filters label { margin-bottom: 5px; font-size: .76rem; }
.audit-filters :is(input,select,.btn,.search-control__clear) { min-height: 40px; }
.audit-filters .filter-bar__actions { flex-wrap: nowrap; align-self: end; }
.audit-filters .filter-bar__actions .btn { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
.audit-table-wrap { min-height: 380px; max-height: calc(100vh - 270px); overflow: auto; border: 1px solid var(--line); border-radius: 10px; }
.audit-table { width: 100%; min-width: 1180px; table-layout: fixed; }
.audit-table thead th { position: sticky; top: 0; z-index: 3; }
.audit-table :is(th,td) { min-width: 0; padding: 10px 12px; overflow: hidden; vertical-align: middle; }
.audit-table :is(th,td):not(:first-child) { border-left: 1px solid var(--planning-column-separator); }
.audit-table tbody tr:not(:last-child) > td { border-bottom: 2px solid var(--planning-row-separator); }
.audit-table :is(th,td):nth-child(1) { width: 150px; }
.audit-table :is(th,td):nth-child(2) { width: 150px; }
.audit-table :is(th,td):nth-child(3) { width: 240px; }
.audit-table :is(th,td):nth-child(4) { width: 160px; }
.audit-table :is(th,td):nth-child(5) { width: 140px; }
.audit-table :is(th,td):nth-child(6) { width: 340px; }
.audit-table td:not(:last-child) { white-space: nowrap; overflow-wrap: normal; }
.audit-table td small { display: block; margin-top: 2px; color: var(--muted); }
.audit-action-badge { display: inline-flex; max-width: 100%; padding: 3px 8px; overflow: hidden; border: 1px solid color-mix(in srgb,var(--brand) 25%,var(--line)); border-radius: 999px; background: var(--brand-soft); color: var(--brand-dark); font-size: .75rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.audit-details { max-width: 100%; }
.audit-details summary { width: max-content; color: var(--brand); font-size: .78rem; font-weight: 750; cursor: pointer; }
.audit-details pre { max-width: 100%; max-height: 240px; margin: 8px 0 0; padding: 10px; overflow: auto; border: 1px solid var(--line); border-radius: 7px; background: var(--bg-soft); white-space: pre-wrap; overflow-wrap: anywhere; }
.audit-details code { font-size: .72rem; line-height: 1.45; }
.audit-pagination { margin: 0; padding: 14px 0 0; border-top: 0; }

@media (max-width: 1350px) {
  .filter-bar.audit-filters { grid-template-columns: repeat(4,minmax(150px,1fr)); }
  .audit-filters > .planning-search-filter { grid-column: span 2; margin-right: 0; padding-right: 0; }
}

@media (max-width: 760px) {
  .audit-kpis { grid-template-columns: 1fr; }
  .filter-bar.audit-filters { grid-template-columns: 1fr; }
  .audit-filters > .planning-search-filter { grid-column: auto; }
  .audit-filters .filter-bar__actions,.audit-filters .filter-bar__actions .btn { width: 100%; }
  .audit-table-wrap { min-height: 0; max-height: none; }
}

/* FEATURE: Registered time-clock terminals */
.kiosk-page {
  min-height: 100vh;
  background: linear-gradient(145deg, var(--brand-soft), var(--bg));
}

.kiosk-shell {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: 24px;
}

.kiosk-card {
  width: min(100%, 560px);
  padding: clamp(24px, 5vw, 48px);
  text-align: center;
}

.kiosk-card form,
.kiosk-card .form-field {
  text-align: left;
}

.kiosk-card input {
  min-height: 64px;
  padding: 14px 18px;
  font-size: 24px;
}

.kiosk-brand {
  margin-bottom: 8px;
  color: var(--brand);
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.kiosk-location {
  margin: 0 0 28px;
  color: var(--muted);
}

.kiosk-primary {
  display: inline-flex;
  justify-content: center;
  width: 100%;
  min-height: 64px;
  margin-top: 12px;
  font-size: 20px;
}

.kiosk-activation-code {
  margin: 28px 0;
  color: var(--brand-dark);
  font-size: clamp(42px, 10vw, 70px);
  font-weight: 900;
  letter-spacing: .14em;
}

.kiosk-success > span {
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: var(--ok-soft);
  color: var(--success);
  font-size: 50px;
}

.kiosk-success strong { font-size: 24px; }
.kiosk-success p { font-size: 28px; }
.time-clock-admin-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.time-clock-filter-grid { grid-template-columns: minmax(150px,.7fr) minmax(150px,.7fr) minmax(260px,1.6fr) auto; }
.time-clock-shifts-page .time-clock-shift-filter-card { padding: 14px 18px; }
.time-clock-shifts-page .time-clock-filter-grid { gap: 12px; }
.time-clock-shifts-page .time-clock-filter-grid .form-field { margin-bottom: 0; }
.time-clock-shifts-page .time-clock-filter-actions { flex-wrap: nowrap; }
.time-clock-shifts-page .time-clock-shift-results { margin-top: 16px; }
.time-clock-shift-results-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.time-clock-shift-results-header h2 { margin-bottom: 3px; }
.time-clock-shift-results-header p { margin-bottom: 0; }
.time-clock-shift-stats { display: grid; grid-template-columns: repeat(3,minmax(130px,1fr)); gap: 10px; margin-bottom: 14px; }
.time-clock-shift-stats > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--bg-soft); }
.time-clock-shift-stats span { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .025em; }
.time-clock-shift-stats strong { color: var(--ink); font-size: 18px; }
.time-clock-shift-table-wrap { max-height: calc(100vh - 390px); min-height: 260px; }
.time-clock-shift-table-wrap th { position: sticky; top: 0; z-index: 2; }
.time-clock-shift-pagination { padding-top: 16px; }
.time-clock-shift-pagination-links { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.employees-page .passcode-form .form-field__help { margin-bottom: 12px; }
.employees-page .employee-roster-card { margin-top: 16px; }
.employees-page .employee-roster-card > .content-toolbar { margin-bottom: 14px; }
.employees-page .employee-roster-card > .table-wrap { margin-bottom: 0; }
.employees-page .employee-roster-search { width: min(100%, 440px); margin: 0; }
.employees-page .employee-roster-search .search-control { width: 100%; }
.employees-page .employee-roster-pagination { padding-top: 16px; }
.employees-page .employee-pagination-links { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }

@media (max-width: 900px) {
  .time-clock-shifts-page .time-clock-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .time-clock-shifts-page .time-clock-filter-actions { justify-content: flex-end; }
}

@media (max-width: 760px) {
  .time-clock-admin-grid,.time-clock-filter-grid { grid-template-columns: 1fr; }
  .time-clock-shifts-page .time-clock-filter-actions { flex-wrap: wrap; }
  .time-clock-shift-stats { grid-template-columns: 1fr; }
  .time-clock-shift-results-header { align-items: stretch; flex-direction: column; }
  .time-clock-shift-results-header .btn { width: 100%; }
  .time-clock-shift-table-wrap { max-height: none; }
  .time-clock-shift-pagination { align-items: stretch; flex-direction: column; }
  .time-clock-shift-pagination-links { justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; }
  .employees-page .employee-roster-card > .content-toolbar { align-items: stretch; }
  .employees-page .employee-roster-search { width: 100%; }
  .employees-page .employee-roster-search input { min-width: 0; flex: 1; }
  .employees-page .employee-roster-pagination { align-items: stretch; flex-direction: column; }
  .employees-page .employee-pagination-links { justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; }
}

@media (max-width: 420px) {
  .nr-stats {
    grid-template-columns: 1fr;
  }
}


/* SHARED COMPONENTS: Work-order page rhythm */
.container>.page-heading,
.container>.workorder-tabs,
.container>.kpi-grid,
.container>.nr-stats,
.container>.workorder-summary-bar,
.container>section.card,
.container>.alert {
  margin-bottom: 16px;
}

.container> :last-child {
  margin-bottom: 0;
}

.kpi-grid,
.nr-stats {
  gap: 16px;
}

.nr-stat-card {
  padding: clamp(17px, 2vw, 23px);
}

.workorder-name {
  margin: -10px 0 6px;
  color: var(--brand-dark);
  font-size: 1.05rem;
  font-weight: 700;
}

.workorder-heading-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
}

.workorder-heading-actions .action-group {
  justify-content: flex-end;
}

.workorder-last-import {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

.workorder-last-import strong {
  color: var(--ink);
  font-weight: 750;
}

@media (max-width: 760px) {
  .workorder-heading-actions {
    width: 100%;
    align-items: stretch;
  }

  .workorder-heading-actions .action-group {
    justify-content: flex-start;
  }

  .workorder-last-import {
    text-align: left;
  }
}


/* FEATURE: Task Card manager */
.taskcard-manager-layout {
  display: grid;
  grid-template-columns: 224px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.taskcard-manager-main {
  min-width: 0;
  display: grid;
  gap: 16px;
}

.taskcard-stats-sidebar {
  position: sticky;
  top: 82px;
  min-width: 0;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: width .18s ease;
}

.stats-collapse-button {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  padding: 8px 12px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: var(--bg-soft);
  color: var(--ink);
  font-weight: 800;
}

.stats-collapse-button:hover {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.stats-toggle-icon {
  font-size: 24px;
  line-height: 1;
}

.taskcard-stats-content {
  padding: 12px;
}

.stats-sidebar-heading {
  padding: 2px 2px 9px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.trade-hours-heading {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.sidebar-stat {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 2px;
  border-bottom: 1px solid var(--line);
}

.sidebar-stat strong {
  font-size: 22px;
  line-height: 1;
}

.sidebar-stat span {
  color: var(--muted);
  font-size: 13px;
  text-align: right;
}

.sidebar-trade-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 2px;
  font-size: 13px;
}

.sidebar-trade-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.taskcard-manager-layout.stats-collapsed {
  grid-template-columns: 48px minmax(0, 1fr);
}

.stats-collapsed .taskcard-stats-content,
.stats-collapsed .stats-toggle-label {
  display: none;
}

.stats-collapsed .stats-collapse-button {
  justify-content: center;
  padding-inline: 0;
  border-bottom: 0;
}

.stats-collapsed .stats-toggle-icon {
  transform: rotate(180deg);
}

.taskcard-manager-main>.card {
  margin: 0;
}

@media (max-width: 900px) {

  .taskcard-manager-layout,
  .taskcard-manager-layout.stats-collapsed {
    grid-template-columns: 1fr;
  }

  .taskcard-stats-sidebar {
    position: static;
    width: auto;
  }

  .stats-collapsed .taskcard-stats-content {
    display: none;
  }
}


/* SHARED COMPONENTS: Manager sidebars */
.manager-sidebar-layout {
  margin-bottom: 0;
}

.manager-sidebar-layout .taskcard-manager-main>section.card:last-child {
  margin-bottom: 0;
}

.manager-sidebar-layout .master-manager-card {
  min-width: 0;
}

.manager-sidebar-layout .sidebar-stat span {
  max-width: 120px;
}

@media (min-width: 901px) {
  .manager-sidebar-layout {
    grid-template-columns: 224px minmax(0, 1fr);
  }

  .manager-sidebar-layout.stats-collapsed {
    grid-template-columns: 48px minmax(0, 1fr);
  }
}

/* FEATURE: Application versioning and diagnostics */
.brand-lockup {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.app-version {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, .25);
  background: rgba(255, 255, 255, .08);
  color: #dce8f2;
  border-radius: 999px;
  padding: 4px 9px;
  font: inherit;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}

.app-version:hover,
.app-version:focus-visible {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

.app-footer {
  width: 100%;
  margin: 22px auto 0;
  padding: 16px 24px 24px;
  display: flex;
  justify-content: center;
  gap: 16px;
  text-align: center;
  color: var(--muted);
  font-size: .82rem;
}

/* SHARED COMPONENTS: Form-only page layout */
body:has(main.container > .form-card):not(:has(main.container > section.card:not(.form-card))) .app-footer {
  max-width: 760px;
  margin-right: auto;
  margin-left: 0;
}

body:has(main.container > .form-card.wide):not(:has(main.container > section.card:not(.form-card))) .app-footer {
  max-width: 1040px;
}

body:has(main.container > .user-form-card):not(:has(main.container > section.card:not(.form-card))) .app-footer {
  max-width: 920px;
}

/* SHARED COMPONENTS: Page footer alignment */
@media (min-width: 901px) {
  body:has(.taskcard-manager-layout) .app-footer {
    display: grid;
    grid-template-columns: 224px minmax(0, 1fr);
    column-gap: 16px;
    padding-right: 0;
    padding-left: 0;
  }

  body.workorder-module-page:has(.taskcard-manager-layout) .app-footer {
    grid-template-columns: 210px minmax(0, 1fr);
  }

  body:has(.taskcard-manager-layout.stats-collapsed) .app-footer {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  body:has(.taskcard-manager-layout) .app-footer span {
    grid-column: 2;
  }
}

.about-dialog {
  border: 0;
  border-radius: 16px;
  padding: 0;
  box-shadow: 0 24px 70px rgba(15, 35, 55, .35);
  color: var(--text);
}

.about-dialog::backdrop {
  background: rgba(8, 22, 35, .62);
  backdrop-filter: blur(2px);
}

.about-dialog-header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  padding: 24px 26px 18px;
  border-bottom: 1px solid var(--border);
}

.about-dialog-header h2 {
  margin: 2px 0 0;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 800;
}

.dialog-close {
  border: 0;
  background: transparent;
  font-size: 1.9rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
}

.about-meta-grid {
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.about-meta-grid div {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  background: var(--surface-soft, #f7fafc);
}

.about-meta-grid span {
  display: block;
  color: var(--muted);
  font-size: .76rem;
  margin-bottom: 4px;
}

.about-meta-grid strong {
  font-size: 1rem;
}

.about-changes {
  padding: 0 26px 22px;
}

.about-changes h3 {
  margin: 0 0 9px;
}

.about-changes ul {
  margin: 0;
  padding-left: 20px;
}

.about-dialog>.btn {
  margin: 0 26px 26px;
}

.system-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.system-check-list {
  display: grid;
  gap: 9px;
}

.system-check {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(0, 1.5fr) auto;
  gap: 14px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}

.system-check:last-child {
  border-bottom: 0;
}

.system-value {
  overflow-wrap: anywhere;
}

@media (max-width:900px) {
  .brand-lockup {
    flex-wrap: wrap;
  }

  .system-grid {
    grid-template-columns: 1fr;
  }

}

@media (max-width:600px) {
  .app-footer {
    align-items: center;
  }

  .about-meta-grid {
    grid-template-columns: 1fr;
  }

  .system-check {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* SHARED COMPONENTS: Tab navigation */
.tab-list {
  display: flex;
  gap: 4px;
}

.tab-list__item {
  color: var(--muted);
  font: inherit;
  font-weight: 750;
  text-decoration: none;
}

.tab-list__item:hover,
.tab-list__item:focus-visible {
  color: var(--ink);
}

.tab-list__item:focus-visible,
.side-nav__item:focus-visible,
.multi-select > summary:focus-visible,
.search-control__clear:focus-visible,
.search-control__submit:focus-visible {
  outline: 3px solid rgba(25, 75, 117, .22);
  outline-offset: 2px;
}

.tab-list__item.is-active {
  color: var(--brand-dark);
}

.tab-list--underline {
  border-bottom: 1px solid var(--line);
}

.tab-list--underline .tab-list__item {
  appearance: none;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  padding: 13px 15px 11px;
  cursor: pointer;
}

.tab-list--underline .tab-list__item.is-active {
  border-bottom-color: var(--brand);
}

.tab-list--cards {
  display: grid;
  gap: .65rem;
}

.tab-list--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tab-list--cards .tab-list__item {
  display: grid;
  gap: .15rem;
  min-width: 0;
  padding: .75rem 1rem;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--paper);
  color: var(--ink);
}

.tab-list--cards .tab-list__item:hover,
.tab-list--cards .tab-list__item:focus-visible {
  border-color: var(--line-strong);
  background: var(--bg-soft);
}

.tab-list--cards .tab-list__item.is-active {
  border-color: var(--brand);
  background: var(--brand-soft);
  color: var(--brand-dark);
  box-shadow: inset 0 -3px 0 var(--brand);
}

.tab-panel {
  display: none;
}

.tab-panel.is-active {
  display: block;
}

/* FEATURE: Application information dialog */
.about-tabs {
  padding: 0 26px;
  background: var(--surface-soft, #f7fafc);
}

.about-dialog-body {
  padding: 22px 26px 26px;
  max-height: calc(88vh - 150px);
  overflow: auto;
}


.modal-system-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.modal-system-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  background: var(--surface, #fff);
  min-width: 0;
}

.modal-system-card h3 {
  margin: 0 0 10px;
}

.modal-system-card .system-check {
  grid-template-columns: minmax(120px, .75fr) minmax(0, 1.25fr) auto;
  font-size: .85rem;
  gap: 10px;
}

.extension-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.extension-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 9px 10px;
}

.release-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 14px;
  margin-bottom: 14px;
}

.release-heading h3 {
  margin: 3px 0 0;
}

.release-notes-list {
  margin: 0;
  padding-left: 22px;
  display: grid;
  gap: 9px;
}

@media (max-width:760px) {
  .about-tabs {
    overflow-x: auto;
    padding: 0 14px;
  }

  .tab-list--underline .tab-list__item {
    white-space: nowrap;
  }

  .about-dialog-body {
    padding: 18px 16px 20px;
  }

  .modal-system-grid {
    grid-template-columns: 1fr;
  }

  .modal-system-card .system-check {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .extension-status-grid {
    grid-template-columns: 1fr;
  }
}

/* FEATURE: Aircraft induction dashboard */
.project-dashboard-heading,
.section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px
}

.project-dashboard-heading h1 {
  margin: 3px 0 4px
}

.project-dashboard-heading p {
  margin: 0
}

.empty-project-state {
  text-align: center;
  padding: 54px 24px
}

.empty-project-state p {
  max-width: 620px;
  margin: 8px auto 20px
}

.project-summary-card {
  margin-bottom: 20px
}

.project-summary-table th,
.project-summary-table td {
  text-align: center;
  white-space: nowrap
}

.project-summary-table td strong {
  font-size: 1.1rem
}

.completion-cell {
  min-width: 150px
}

.progress-track {
  height: 8px;
  background: var(--line);
  border-radius: 99px;
  overflow: hidden;
  margin-top: 7px
}

.progress-track span {
  display: block;
  height: 100%;
  background: var(--brand);
  border-radius: inherit
}

.dashboard-page .progress-track {
  height: 8px;
  background: color-mix(in srgb, var(--line) 86%, var(--paper));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line-strong) 45%, transparent)
}

.dashboard-page .progress-track.large {
  height: 11px
}

.days-left {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--ok-soft);
  color: var(--ok);
  font-weight: 800
}

.days-left.warning {
  background: var(--warn-soft);
  color: var(--warn)
}

.days-left.overdue {
  background: var(--danger-soft);
  color: var(--danger)
}

.dashboard-status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 20px
}

.dashboard-status-grid .card {
  min-width: 0
}

.dashboard-status-grid h2,
.zone-progress-card h2 {
  margin: 2px 0 0
}

.dashboard-total-badge {
  border: 1px solid var(--line);
  background: var(--brand-soft);
  color: var(--brand-dark);
  border-radius: 999px;
  padding: 6px 11px;
  font-size: .8rem;
  font-weight: 800
}

.table-subtitle {
  display: block;
  color: var(--muted);
  margin-top: 2px
}

.dashboard-status-grid tfoot th {
  background: var(--surface-soft, #f7fafc)
}

.zone-progress-table th:not(:first-child),
.zone-progress-table td:not(:first-child) {
  text-align: center
}

.zone-completion {
  min-width: 150px
}

.project-workorder-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-height: 420px;
  overflow: auto;
  padding: 2px
}

.project-workorder-option {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 11px;
  background: var(--surface, #fff);
  cursor: pointer
}

.project-workorder-option input {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 3px 0 0;
  padding: 0;
  accent-color: var(--brand)
}

.project-workorder-option span {
  display: grid;
  gap: 2px
}

.project-workorder-option small,
.project-list-item small {
  color: var(--muted)
}

.project-list {
  display: grid;
  gap: 10px
}

.project-list-item {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
  display: grid;
  gap: 10px
}

.project-list-item>div:first-child {
  display: grid;
  gap: 2px
}

.project-list-item .action-group {
  justify-content: flex-start
}

.btn.small {
  padding: 6px 9px;
  font-size: .78rem
}

@media(max-width:1050px) {
  .dashboard-status-grid {
    grid-template-columns: 1fr
  }
}

@media(max-width:760px) {

  .project-dashboard-heading,
  .page-heading,
  .section-heading {
    flex-direction: column
  }

  .project-workorder-picker {
    grid-template-columns: 1fr
  }

  .project-summary-table {
    min-width: 900px
  }

  .zone-progress-table {
    min-width: 760px
  }
}

/* FEATURE: Master import duplicate review */
.master-import-review {
  display: grid;
  gap: 1.25rem;
}

.review-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.review-summary {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
}

.review-summary span {
  background: var(--surface-muted, #f4f6f8);
  border: 1px solid var(--border, #d9dee5);
  border-radius: .5rem;
  padding: .55rem .75rem;
  white-space: nowrap;
}

.duplicate-global-action {
  display: flex;
  align-items: end;
  gap: .75rem;
  flex-wrap: wrap;
  padding: 1rem;
  margin-bottom: 1rem;
  background: var(--surface-muted, #f4f6f8);
  border: 1px solid var(--border, #d9dee5);
  border-radius: .65rem;
}

.duplicate-global-action label {
  width: 100%;
}

.duplicate-global-action select {
  min-width: 280px;
}

.duplicate-review-table-wrap {
  max-height: 58vh;
  overflow: auto;
}

.duplicate-review-table td {
  vertical-align: top;
  min-width: 180px;
}

.duplicate-review-table td:nth-child(2),
.duplicate-review-table td:nth-child(3) {
  min-width: 320px;
}

.duplicate-review-table select {
  min-width: 175px;
}

.import-review-actions {
  margin-top: 1rem;
  justify-content: flex-end;
}

@media (max-width: 800px) {

  .duplicate-global-action select,
  .duplicate-global-action .btn {
    width: 100%;
  }

  .duplicate-review-table-wrap {
    max-height: none;
  }
}

.snag-edit-heading { align-items: center; }
.snag-edit-heading h1 { margin-bottom: 4px; }
.snag-form { padding: 0; overflow: clip; }
.snag-context-strip { display: grid; grid-template-columns: 1.25fr 1fr .75fr; background: linear-gradient(135deg,var(--brand-dark),var(--brand)); color: #fff; }
.snag-context-strip > div { display: grid; gap: 3px; min-width: 0; padding: 16px 22px; border-right: 1px solid rgba(255,255,255,.18); }
.snag-context-strip > div:last-child { border-right: 0; }
.snag-context-strip span { color: rgba(255,255,255,.72); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.snag-context-strip strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.snag-form-section { padding: 22px 24px; border-bottom: 1px solid var(--line); }
.snag-section-heading { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 17px; }
.snag-section-heading h2,.snag-parts-toolbar h3 { margin: 0; }
.snag-section-heading p,.snag-option-heading p,.snag-parts-toolbar p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.snag-section-number { display: grid; place-items: center; flex: 0 0 27px; height: 27px; border-radius: 50%; background: color-mix(in srgb,var(--brand) 12%,var(--paper)); color: var(--brand); font-size: 13px; font-weight: 900; }
.snag-routing-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px 16px; }
.snag-routing-grid .form-field,.snag-narrative-grid .form-field { margin-bottom: 0; }
.snag-field-wide { grid-column: span 2; }
.snag-routing-grid label,.snag-narrative-grid label { font-size: 13px; }
.snag-routing-grid .form-field__help { display: block; min-height: 20px; margin: 5px 0 0; font-weight: 500; }
.snag-routing-grid label span,.snag-narrative-grid label span { color: var(--danger); }
.snag-task-card-combobox { position: relative; }
.snag-task-card-combobox > input { padding-right: 42px; }
.snag-task-card-toggle { position: absolute; top: 1px; right: 1px; bottom: 1px; width: 38px; border: 0; border-left: 1px solid var(--line); border-radius: 0 8px 8px 0; background: var(--bg-soft); color: var(--ink); cursor: pointer; font-size: 15px; }
.snag-task-card-toggle:hover,.snag-task-card-toggle:focus-visible { background: var(--brand-soft); color: var(--brand-dark); outline: 2px solid var(--brand); outline-offset: -2px; }
.snag-task-card-options { position: absolute; top: calc(100% + 5px); right: 0; left: 0; z-index: 20; max-height: 320px; overflow-y: auto; padding: 5px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-md); }
.snag-task-card-option { display: grid; width: 100%; gap: 3px; padding: 9px 11px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.snag-task-card-option strong { font-size: 13px; }
.snag-task-card-option span { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.snag-task-card-option:hover,.snag-task-card-option:focus-visible,.snag-task-card-option.is-active { background: var(--brand-soft); color: var(--brand-dark); outline: none; }
.snag-narrative-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.snag-narrative-grid textarea { min-height: 132px; line-height: 1.5; }
.snag-hours-input { position: relative; }
.snag-hours-input input { padding-right: 55px; }
.snag-hours-input span { position: absolute; top: 50%; right: 10px; translate: 0 -50%; color: var(--muted); font-size: 12px; pointer-events: none; }
.snag-parts-section { background: color-mix(in srgb,var(--bg-soft) 55%,var(--paper)); }
.snag-option-heading { display: flex; align-items: center; gap: 14px; }
.snag-option-heading p { margin: 0; }
.snag-switch { position: relative; display: inline-flex; align-items: center; gap: 9px; margin: 0; cursor: pointer; white-space: nowrap; }
.snag-switch input { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; opacity: 0; pointer-events: none; }
.snag-switch > span { position: relative; width: 38px; height: 22px; border-radius: 999px; background: var(--line-strong); transition: background .18s ease; }
.snag-switch > span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: translate .18s ease; }
.snag-switch input:checked + span { background: var(--brand); }
.snag-switch input:checked + span::after { translate: 16px 0; }
.snag-switch input:focus-visible + span { box-shadow: 0 0 0 3px rgba(25,75,117,.2); }
.snag-parts-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 18px 0 10px; padding-top: 17px; border-top: 1px solid var(--line); }
.snag-part-row { display: grid; grid-template-columns: 1fr 2fr 110px 1.2fr auto; gap: 10px; margin-bottom: 10px; align-items: center; }
.snag-part-lookup { position: relative; min-width: 0; }
.snag-part-options { position: absolute; top: calc(100% + 5px); left: 0; z-index: 22; width: min(660px,80vw); max-height: 330px; overflow-y: auto; padding: 5px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-md); }
.snag-part-option { display: grid; width: 100%; gap: 4px; padding: 9px 11px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.snag-part-option > span { display: flex; gap: 9px; min-width: 0; align-items: baseline; }
.snag-part-option strong { flex: 0 0 auto; font-size: 13px; }
.snag-part-option span span { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.snag-part-option small { overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.snag-part-option:hover,.snag-part-option:focus-visible,.snag-part-option.is-active { background: var(--brand-soft); color: var(--brand-dark); outline: none; }
.snag-file-drop { display: grid; grid-template-columns: auto 1fr; column-gap: 13px; align-items: center; margin: 0; padding: 17px 20px; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); background: var(--bg-soft); cursor: pointer; transition: border-color .15s ease,background .15s ease; }
.snag-attachment-actions { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(280px,1fr); gap: 12px; }
.snag-camera-control { border-style: solid; border-color: color-mix(in srgb,var(--brand) 35%,var(--line)); background: color-mix(in srgb,var(--brand) 5%,var(--paper)); }
.snag-file-drop:hover { border-color: var(--brand); background: color-mix(in srgb,var(--brand) 5%,var(--paper)); }
.snag-file-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.snag-file-drop strong,.snag-file-drop small { grid-column: 2; }
.snag-file-drop small { margin-top: 2px; color: var(--muted); font-weight: 500; }
.snag-file-icon { display: grid; grid-row: 1 / span 2; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--paper); color: var(--brand); font-size: 22px; box-shadow: var(--shadow-sm); }
.snag-file-selection { margin-top: 8px; color: var(--brand); font-size: 13px; font-weight: 700; }
.snag-duplicate-warning { display: grid; grid-template-columns: minmax(210px,.7fr) minmax(0,1.3fr); gap: 16px; margin-top: 18px; padding: 14px 16px; border: 1px solid color-mix(in srgb,var(--warn) 45%,var(--line)); border-radius: var(--radius-sm); background: var(--warn-soft); color: #69410a; }
.snag-duplicate-warning[hidden] { display: none; }
.snag-duplicate-warning p { margin: 3px 0 0; font-size: 13px; }
.snag-duplicate-warning ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.snag-duplicate-warning li { display: grid; padding-left: 11px; border-left: 3px solid var(--warn); }
.snag-duplicate-warning li a { font-weight: 850; }
.snag-duplicate-warning li span { font-size: 12px; }
.snag-edit-actions { justify-content: space-between; margin: 0; padding: 16px 24px; border: 0; border-top: 1px solid var(--line); background: var(--bg-soft); }
.snag-edit-actions p { margin: 0; color: var(--muted); font-size: 13px; }
.snag-edit-actions p strong { color: var(--ink); }
.snag-detail-heading { align-items: center; }
.snag-detail-heading h1 { margin: 0; }
.snag-title-row { display: flex; align-items: center; gap: 12px; margin-bottom: 5px; }
.snag-title-row .badge { padding: 5px 9px; font-size: 12px; }
.snag-workflow-card { padding-block: 17px; }
.snag-workflow-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.snag-workflow-heading h2 { margin: 0; }
.snag-workflow-heading > p { max-width: 520px; margin: 0; color: var(--muted); text-align: right; }
.snag-workflow-steps { display: grid; grid-template-columns: repeat(4,minmax(125px,1fr)); min-width: 560px; margin: 0; padding: 0; overflow: hidden; list-style: none; }
.snag-workflow-steps li { position: relative; display: grid; grid-template-columns: 30px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: 9px; min-width: 0; color: var(--muted); }
.snag-workflow-steps li:not(:last-child)::after { content: ''; position: absolute; top: 14px; right: 8px; left: 40px; height: 2px; background: var(--line-strong); }
.snag-workflow-steps li > span { position: relative; z-index: 1; display: grid; grid-row: 1 / span 2; place-items: center; width: 30px; height: 30px; border: 2px solid var(--line-strong); border-radius: 50%; background: var(--paper); font-size: 12px; font-weight: 900; }
.snag-workflow-steps li strong { position: relative; z-index: 1; width: max-content; max-width: calc(100% - 12px); padding-right: 5px; overflow: hidden; background: var(--paper); color: inherit; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.snag-workflow-steps li small { color: var(--brand); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.snag-workflow-steps li.complete,.snag-workflow-steps li.current { color: var(--brand-dark); }
.snag-workflow-steps li.complete > span { border-color: var(--ok); background: var(--ok); color: #fff; }
.snag-workflow-steps li.complete::after { background: var(--ok); }
.snag-workflow-steps li.current > span { border-color: var(--brand); background: var(--brand-soft); color: var(--brand-dark); }
.snag-workflow-steps.is-cancelled li { opacity: .48; }
.snag-workflow-steps.is-cancelled li:first-child { opacity: 1; color: var(--danger); }
.snag-workflow-steps.is-cancelled li:first-child > span { border-color: var(--danger); background: var(--danger-soft); }
.snag-detail-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(290px, .78fr); gap: 18px; align-items: start; }
.snag-detail-grid > div { display: grid; gap: 16px; }
.snag-card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 17px; }
.snag-card-heading .eyebrow { margin-bottom: 2px; }
.snag-card-heading h2 { margin: 0; }
.snag-fact-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin: 0 0 20px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--line); }
.snag-fact-grid > div { min-width: 0; padding: 13px 14px; background: var(--paper); }
.snag-fact-grid dt { margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.snag-fact-grid dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-weight: 700; }
.snag-trade-chip { display: inline-flex; padding: 3px 8px; border-radius: 999px; background: color-mix(in srgb,var(--brand) 10%,var(--paper)); color: var(--brand); font-size: 12px; }
.snag-narrative-display-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.snag-copy-panel { min-height: 128px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--bg-soft); }
.snag-copy-panel > span,.snag-admin-summary span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.snag-copy-panel p { margin: 0; line-height: 1.55; }
.snag-empty-state { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); background: var(--bg-soft); }
.snag-empty-state > span { display: grid; place-items: center; flex: 0 0 34px; height: 34px; border-radius: 50%; background: var(--paper); color: var(--brand); font-size: 18px; font-weight: 900; box-shadow: var(--shadow-sm); }
.snag-empty-state strong { display: block; }
.snag-empty-state p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.snag-admin-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.snag-admin-summary > div { padding: 13px 14px; border-radius: var(--radius-sm); background: var(--bg-soft); }
.snag-admin-summary strong { overflow-wrap: anywhere; }
.snag-attachment-list { display: grid; gap: 8px; padding: 0; list-style: none; }
.snag-attachment-list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.snag-attachment-list li > div { display: grid; gap: 2px; min-width: 0; }
.snag-attachment-list li span { color: var(--muted); font-size: 12px; }
.snag-danger-zone { display: flex; justify-content: space-between; align-items: center; gap: 18px; border-color: color-mix(in srgb,var(--danger) 30%,var(--line)); }
.snag-danger-zone p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.snag-history-panel { padding: 20px; }
.snag-history-list { gap: 0; }
.snag-history-item { position: relative; display: grid; grid-template-columns: 18px 1fr; gap: 9px; padding: 0 0 20px; border: 0; background: transparent; }
.snag-history-item:last-child { padding-bottom: 0; }
.snag-history-item::before { content: ''; position: absolute; top: 14px; bottom: -1px; left: 6px; width: 2px; background: var(--line); }
.snag-history-item:last-child::before { display: none; }
.snag-history-marker { position: relative; z-index: 1; width: 14px; height: 14px; margin-top: 2px; border: 3px solid color-mix(in srgb,var(--brand) 30%,var(--paper)); border-radius: 50%; background: var(--brand); }
.snag-history-item > div { display: grid; gap: 3px; min-width: 0; }
.snag-history-person { color: var(--ink); font-size: 13px; }
.snag-history-item time { color: var(--muted); font-size: 12px; }
.snag-history-item p { margin: 5px 0 0; padding: 8px 9px; border-radius: 7px; background: var(--bg-soft); font-size: 13px; }
.attachment-list { margin: 0; padding-left: 20px; }
.preserve-lines { white-space: pre-wrap; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.snag-scopes { display: flex; gap: 4px; margin-bottom: 16px; padding: 4px; overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; background: var(--bg-soft); scrollbar-width: thin; }
.snag-scope { flex: 0 0 auto; padding: 8px 13px; border-radius: 8px; color: var(--muted); font-size: 13px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.snag-scope > span { display: inline-grid; min-width: 22px; min-height: 22px; margin-left: 5px; padding: 2px 6px; place-items: center; border-radius: 999px; background: var(--line); color: var(--ink); font-size: 11px; line-height: 1; }
.snag-scope:hover,.snag-scope:focus-visible { color: var(--brand); background: color-mix(in srgb,var(--brand) 7%,var(--paper)); }
.snag-scope.active { color: var(--brand-dark); background: var(--paper); box-shadow: var(--shadow-sm); }
.snag-scope.active > span { background: var(--brand); color: #fff; }
.snag-scope-attention { color: var(--danger); }
.snag-scope-attention > span { background: var(--danger-soft); color: var(--danger); }
.snag-register-toolbar { align-items: flex-end; }
.filter-bar.snag-register-filters { grid-template-columns: minmax(340px,2fr) minmax(220px,1.15fr) minmax(150px,.8fr) minmax(150px,.8fr) !important; align-items: end; }
.snag-register-filters .form-field { margin-bottom: 0; }
.snag-search-filter { margin-right: 8px; }
.snag-register-card { padding-bottom: 17px; }
.snag-register-summary { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 15px; }
.snag-register-summary > div { display: grid; gap: 3px; }
.snag-register-summary h2 { margin: 0; }
.snag-clear-filters { font-size: 13px; font-weight: 800; }
.snag-register-table-wrap { min-height: 66px; overflow-x: auto; }
.snag-register-table-wrap table { min-width: 1180px; table-layout: fixed; }
.snag-register-table-wrap :is(th,td) { padding: 11px 12px; vertical-align: middle; white-space: normal; overflow-wrap: anywhere; word-break: normal; }
.snag-register-table-wrap :is(th,td):not(:first-child) { border-left: 1px solid var(--planning-column-separator); }
.snag-register-table-wrap tbody tr:not(:last-child) > td { border-bottom: 2px solid var(--planning-row-separator); }
.snag-register-table-wrap :is(th,td):nth-child(1) { width: 10%; }
.snag-register-table-wrap :is(th,td):nth-child(2) { width: 9%; }
.snag-register-table-wrap :is(th,td):nth-child(3) { width: 10%; }
.snag-register-table-wrap :is(th,td):nth-child(4) { width: 14%; }
.snag-register-table-wrap :is(th,td):nth-child(5) { width: 10%; }
.snag-register-table-wrap :is(th,td):nth-child(6) { width: 9%; }
.snag-register-table-wrap :is(th,td):nth-child(7) { width: 12%; }
.snag-register-table-wrap :is(th,td):nth-child(8) { width: 17%; }
.snag-register-table-wrap :is(th,td):nth-child(9) { width: 9%; }
.snag-register-table-wrap td:nth-child(1),.snag-register-table-wrap td:nth-child(2),.snag-register-table-wrap td:nth-child(3),.snag-register-table-wrap td:nth-child(8),.snag-register-table-wrap td:nth-child(9) { white-space: nowrap; }
.snag-register-table-wrap tr.snag-age-warning td { background: color-mix(in srgb,var(--warn-soft) 45%,var(--paper)); }
.snag-register-table-wrap tr.snag-age-critical td { background: color-mix(in srgb,var(--danger-soft) 42%,var(--paper)); }
.snag-register-table-wrap tr.snag-age-warning td:first-child { box-shadow: inset 4px 0 0 var(--warn); }
.snag-register-table-wrap tr.snag-age-critical td:first-child { box-shadow: inset 4px 0 0 var(--danger); }
.snag-queue-age { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 750; white-space: normal; }
.snag-number-link { display: inline-grid; gap: 2px; font-weight: 900; text-decoration: none; }
.snag-number-link span { color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.snag-number-link:hover span { color: var(--brand); }
.snag-location { display: grid; gap: 2px; }
.snag-location span { color: var(--muted); font-size: 12px; }
.snag-register-status { max-width: 100%; justify-content: center; line-height: 1.2; text-align: center; white-space: normal; }
.snag-register-empty { display: grid; justify-items: center; gap: 4px; padding: 30px 16px; text-align: center; }
.snag-register-empty span { color: var(--muted); font-size: 13px; }
.snag-register-card > .workorder-pagination { border-top: 1px solid var(--line); margin-top: 14px; }
.snag-reset-panel { border-color: color-mix(in srgb,var(--danger) 28%,var(--line)); }
.snag-reset-panel > summary { color: var(--danger); font-weight: 800; cursor: pointer; }
.snag-reset-panel[open] > summary { margin-bottom: 18px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.snag-reset-content { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(260px,.8fr); gap: 24px; align-items: end; }
.snag-reset-content h2 { margin: 0 0 5px; }
.snag-reset-content p:last-child { margin-bottom: 0; color: var(--muted); }
.snag-reset-form { display: grid; gap: 10px; }
.snag-reset-form .form-field { margin: 0; }
.snag-reset-form .btn { justify-self: end; }
.training-induction-banner { display: flex; align-items: center; gap: 11px; margin-bottom: 16px; padding: 11px 14px; border: 1px solid #d6a425; border-radius: 10px; background: #fff4c2; color: #67470b; }
.training-induction-banner strong { flex: 0 0 auto; text-transform: uppercase; letter-spacing: .045em; }
.training-induction-banner span { font-size: 13px; }
.training-badge { margin-left: 7px; background: #fff0b0; color: #67470b; }
.training-induction-option { display: flex; align-items: flex-start; gap: 10px; margin-top: 4px; padding: 13px 14px; border: 1px solid #d6a425; border-radius: 9px; background: #fff9df; }
.training-induction-option input { flex: 0 0 auto; width: 20px; min-height: 20px; margin-top: 2px; }
.training-induction-option span { display: grid; gap: 2px; }
.training-induction-option small { color: var(--muted); font-weight: 500; }
[data-theme="dark"] .training-induction-banner { border-color: #96711b; background: #493b19; color: #f4d77a; }
[data-theme="dark"] .training-induction-option { border-color: #96711b; background: #3b321c; }
[data-theme="dark"] .training-badge { background: #493b19; color: #f4d77a; }
[data-theme="dark"] .snag-duplicate-warning { color: #f4d77a; }
.checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); gap: 8px; }
.snag-status-complete { background: #dcfce7; color: #166534; }
.snag-status-draft { background: #e0e7ff; color: #3730a3; }
.snag-status-cancelled { background: #e5e7eb; color: #374151; }
.snag-status-returned_originator,.snag-status-returned_supervisor { background: #fee2e2; color: #991b1b; }
.snag-status-awaiting_supervisor,.snag-status-awaiting_admin { background: #fef3c7; color: #92400e; }
@media (max-width: 1000px) { .snag-fact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 850px) { .snag-detail-grid,.snag-narrative-grid,.snag-narrative-display-grid { grid-template-columns: 1fr; } .snag-routing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .snag-field-wide { grid-column: span 2; } .snag-part-row { grid-template-columns: 1fr; } .snag-attachment-actions { grid-template-columns: 1fr; } .snag-history-panel { position: static; max-height: none; } }
@media (max-width: 900px) { .filter-bar.snag-register-filters { grid-template-columns: repeat(2,minmax(0,1fr)) !important; } }
@media (max-width: 600px) { .snag-context-strip,.snag-fact-grid,.snag-admin-summary { grid-template-columns: 1fr; } .snag-context-strip > div { padding: 12px 17px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); } .snag-routing-grid { grid-template-columns: 1fr; } .snag-field-wide { grid-column: auto; } .snag-form-section { padding: 18px 16px; } .snag-option-heading,.snag-parts-toolbar,.snag-edit-actions,.snag-danger-zone { align-items: stretch; flex-direction: column; } .snag-edit-actions .action-group,.snag-edit-actions .btn { width: 100%; } }
@media (max-width: 700px) { .snag-workflow-card { overflow-x: auto; } .snag-workflow-heading { align-items: flex-start; flex-direction: column; } .snag-workflow-heading > p { text-align: left; } }
@media (max-width: 600px) { .filter-bar.snag-register-filters { grid-template-columns: 1fr !important; } .snag-filter-actions,.snag-filter-actions .btn { width: 100%; } .snag-register-summary { align-items: flex-start; flex-direction: column; gap: 4px; } }

/* RESPONSIVE: Touch-first Snag register */
@media (max-width: 1100px) {
  .snag-register-table-wrap { overflow: visible; border: 0; background: transparent; }
  .snag-register-table-wrap table,.snag-register-table-wrap tbody { display: block; min-width: 0; background: transparent; }
  .snag-register-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .snag-register-table-wrap tbody { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .snag-register-table-wrap tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); box-shadow: var(--shadow-sm); }
  .snag-register-table-wrap tbody td { display: grid; align-content: start; gap: 5px; width: auto !important; min-width: 0; padding: 11px 13px; border: 0 !important; border-bottom: 1px solid var(--line) !important; white-space: normal !important; }
  .snag-register-table-wrap tbody td::before { content: attr(data-label); color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
  .snag-register-table-wrap tbody td:first-child { grid-column: 1 / -1; padding-block: 13px; background: var(--bg-soft); }
  .snag-register-table-wrap tbody td:nth-last-child(-n+2) { border-bottom: 0 !important; }
  .snag-register-table-wrap .snag-empty-row { display: block; grid-column: 1 / -1; }
  .snag-register-table-wrap .snag-empty-row td { display: block; }
  .snag-register-table-wrap .snag-empty-row td::before { content: none; }
  .snag-register-status { justify-self: start; }
  .snag-register-card { background: color-mix(in srgb,var(--bg-soft) 55%,var(--paper)); }
  .snag-page :is(.btn,input,select,textarea,.search-control__clear,.snag-scope) { min-height: 44px; }
  .snag-page .snag-switch > span { width: 44px; height: 26px; }
  .snag-page .snag-switch > span::after { width: 20px; height: 20px; }
  .snag-page .snag-switch input:checked + span::after { translate: 18px 0; }
  .snag-file-drop { min-height: 72px; }
  .snag-edit-actions { padding-bottom: max(14px,env(safe-area-inset-bottom)); }
}
@media (max-width: 850px) {
  .snag-register-table-wrap tbody { grid-template-columns: 1fr; }
  .snag-reset-content { grid-template-columns: 1fr; }
  .snag-reset-form .btn { justify-self: stretch; width: 100%; }
  .snag-duplicate-warning { grid-template-columns: 1fr; }
}


/* FEATURE: Master Data wide-screen workspace */
.master-module-page .container {
  width: calc(100% - 24px);
  max-width: none;
  margin-left: 12px;
  margin-right: 12px;
}

body.master-task-edit-page > main.container {
  width: min(calc(100% - 32px), var(--page-max-width));
  max-width: var(--page-max-width);
  margin-left: auto;
  margin-right: auto;
}

.master-module-page .master-table {
  min-width: 0;
  width: 100%;
  table-layout: auto;
}

.master-module-page .master-table .description-cell {
  min-width: 280px;
  max-width: none;
}

.boolean-field {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg-soft);
  font-weight: 700;
}

.boolean-field input[type=checkbox] {
  width: 20px;
  min-height: 20px;
  margin: 0;
  accent-color: var(--brand);
}

@media (max-width: 1200px) {
  .master-module-page .master-table {
    min-width: 1160px;
  }
}

@media (max-width: 1100px) {
  .master-module-page .container {
    width: min(100% - 22px, var(--page-max-width));
    margin-left: auto;
    margin-right: auto;
  }
}


.master-table-tools {
  display: flex;
  justify-content: flex-end;
  padding: 10px 16px;
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.column-chooser {
  position: relative;
}

.column-chooser summary {
  list-style: none;
  cursor: pointer;
}

.column-chooser summary::-webkit-details-marker {
  display: none;
}

.column-chooser-panel {
  position: absolute;
  right: 0;
  z-index: 20;
  min-width: 220px;
  margin-top: 6px;
  padding: 12px;
  display: grid;
  gap: 8px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .15);
}

.column-chooser-panel label {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.master-table .frozen-col {
  position: sticky;
  background: var(--paper);
  z-index: 3;
}

.master-table .frozen-select {
  left: 0;
  width: 46px;
  min-width: 46px;
}

.master-table .frozen-task {
  left: 46px;
  width: 190px;
  min-width: 190px;
  box-shadow: 1px 0 0 var(--line);
}

.master-table thead .frozen-col {
  z-index: 8;
  background: var(--bg-soft);
}

.master-table tbody tr:hover .frozen-col {
  background: var(--bg-soft);
}

.table-action-stack {
  display: grid;
  gap: 4px;
  justify-items: start;
}

.text-link {
  font-size: 12px;
  font-weight: 700;
  color: var(--brand);
}

.field-changed label:first-child {
  color: var(--warn);
}

.field-changed input,
.field-changed select,
.field-changed textarea,
.field-changed .boolean-field {
  background: var(--warn-soft);
  border-color: var(--warn);
}

.duplicate-warning {
  margin-top: 6px;
  font-weight: 700;
}

.history-panel:target {
  outline: 3px solid rgba(31, 111, 235, .25);
  outline-offset: 3px;
}

/* FEATURE: Compact Master Data filters */
.master-filter-compact {
  border-bottom: 1px solid var(--line);
  background: var(--bg-soft);
}

.master-filter-primary {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(180px, 260px) max-content;
  gap: 10px;
  align-items: end;
  padding: 10px 14px;
}

.master-filter-primary label {
  margin-bottom: 4px;
  font-size: 12px;
}

.master-filter-primary input,
.master-filter-primary select {
  width: 100%;
  min-height: 36px;
  padding-top: 7px;
  padding-bottom: 7px;
}

.master-filter-primary .filter-actions {
  white-space: nowrap;
}

.master-filter-primary .btn {
  min-height: 36px;
  padding: 8px 13px;
}

@media (max-width:900px) {
  .master-filter-primary {
    grid-template-columns: minmax(240px, 1fr) minmax(180px, 1fr);
  }

  .master-filter-primary .filter-actions {
    grid-column: 2;
    justify-content: flex-end;
  }
}

@media (max-width:760px) {
  .master-filter-primary {
    grid-template-columns: 1fr;
  }

  .master-filter-primary .filter-actions {
    grid-column: auto;
  }

}

.workorder-pagination.master-pagination {
  justify-content: space-between;
  gap: 18px;
  padding: 16px 22px 18px;
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
}

.master-pagination-summary {
  white-space: nowrap;
}

.master-pagination-settings,
.master-pagination-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.master-pagination-settings {
  gap: 18px;
}

.master-pagination .pagination-page-size {
  margin-right: 0;
}

@media (max-width: 760px) {
  .master-pagination,
  .master-pagination-settings {
    align-items: stretch;
    flex-direction: column;
  }

  .master-pagination-links {
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 2px;
  }
}

/* FEATURE: Multi-aircraft dashboard selector */
.dashboard-project-actions {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end
}

.dashboard-project-selector {
  display: grid;
  align-items: center;
  gap: 5px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper)
}

.dashboard-project-selector label {
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  white-space: nowrap
}

.dashboard-project-selector select {
  margin: 0;
  min-width: 360px;
  max-width: 520px;
  height: 38px
}

@media(max-width:760px) {
  .dashboard-project-actions {
    width: 100%;
    align-items: stretch;
    justify-content: stretch
  }

  .dashboard-project-selector {
    width: 100%;
    flex-direction: column;
    align-items: stretch
  }

  .dashboard-project-selector select {
    min-width: 0;
    max-width: none;
    width: 100%
  }
}


/* FEATURE: Aircraft-specific dashboard */
.dashboard-redesign-heading {
  margin-bottom: 14px
}

.aircraft-overview-card {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 0;
  background: linear-gradient(115deg, #164a6b, #1f5f8b);
  color: #fff;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(15, 55, 80, .14);
  margin-bottom: 16px;
  overflow: hidden
}

.aircraft-identity,
.aircraft-dates {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center
}

.aircraft-identity {
  padding: 20px 22px
}

.aircraft-dates {
  padding: 20px 22px;
  background: rgba(255, 255, 255, .09)
}

.aircraft-tail {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .025em
}

.aircraft-primary { display: grid; gap: 8px }

.aircraft-overview-card span {
  display: block;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .065em;
  opacity: .72;
  margin-bottom: 4px
}

.aircraft-overview-card strong {
  font-size: .96rem
}

.timeline-status.warning strong {
  color: #ffe19a
}

.timeline-status.overdue strong {
  color: #ffb5b5
}

.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: 1.25fr repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px
}

.dashboard-kpi {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 15px 16px;
  min-width: 0
}

.dashboard-kpi.primary {
  border-top: 3px solid var(--brand)
}

.kpi-heading,
.kpi-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.kpi-heading span {
  font-weight: 750
}

.kpi-heading strong {
  font-size: 1.3rem
}

.kpi-meta {
  font-size: .77rem;
  color: var(--muted);
  margin-top: 8px
}

.progress-track.large {
  height: 11px;
  margin-top: 12px
}

.alert-count {
  color: var(--danger);
  font-weight: 800
}

.dashboard-alert-strip {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-soft);
  margin-bottom: 16px
}

.dashboard-alert-strip>div {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap
}

.dashboard-alert-strip strong {
  font-size: 1.05rem
}

.dashboard-alert-strip p {
  margin: 0 0 0 auto;
  color: var(--muted);
  font-size: .78rem
}

.dashboard-exception-summary a {
  font-size: .76rem;
  font-weight: 750;
  white-space: nowrap
}

/* FEATURE: Planning Exception Centre */
.planning-exceptions-page > main.container {
  display: grid;
  gap: 10px;
  width: calc(100% - 24px);
  max-width: none;
  margin: 24px 12px 40px
}

.planning-exceptions-page > main.container > :not(dialog) {
  width: 100%;
  max-width: none;
  margin: 0
}

.exception-page-heading {
  align-items: end;
  margin-bottom: 10px
}

.exception-page-heading h1 { margin-bottom: 1px }
.exception-page-heading p { margin: 0 }

.exception-heading-actions {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 10px
}

.exception-context-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 14px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 10px;
  background: var(--paper)
}

.exception-context-card span:not(.exception-live-label)::before {
  content: "·";
  margin-right: 10px;
  color: var(--line-strong)
}

.exception-live-label {
  margin-left: auto;
  color: var(--ok);
  font-size: .76rem;
  font-weight: 750
}

.exception-summary-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
  margin-bottom: 10px
}

.exception-summary-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1px 10px;
  padding: 10px 13px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--brand);
  border-radius: 11px;
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
  box-shadow: var(--shadow-sm)
}

.exception-summary-card:hover { color: var(--ink); border-color: var(--line-strong); box-shadow: var(--shadow-md) }
.exception-summary-card.critical { border-top-color: var(--danger) }
.exception-summary-card.warning { border-top-color: var(--warn) }
.exception-summary-card.assignment { border-top-color: var(--brand) }
.exception-summary-card.total { border-top-color: var(--accent) }
.exception-summary-card span { font-weight: 750 }
.exception-summary-card strong { grid-row: span 2; font-size: 1.65rem; line-height: 1.2 }
.exception-summary-card.critical strong { color: var(--danger) }
.exception-summary-card.warning strong { color: var(--warn) }
.exception-summary-card small { color: var(--muted) }

.filter-bar.exception-filters {
  grid-template-columns: minmax(210px,1.8fr) minmax(105px,.7fr) minmax(120px,.8fr) minmax(145px,1.1fr) max-content;
  gap: 10px;
  align-items: end;
  margin: 0 0 16px;
  padding: 0
}

.exception-filters > * { min-width: 0; margin: 0 }
.exception-filters > .planning-search-filter { align-self: end; margin-right: 0; padding-right: 12px }
.exception-filters label { margin-bottom: 5px; font-size: .76rem }
.exception-filters :is(input,select,.search-control__clear,.btn) { min-height: 40px }
.exception-filters .filter-actions { align-self: end }
.exception-filters .filter-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding-inline: 14px; white-space: nowrap }
.exception-row-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap }
.exception-row-actions form { margin: 0 }
.exception-filters .search-control__clear { min-width: 58px; white-space: nowrap }

.exception-rules-dialog > form {
  max-height: min(86vh,720px)
}

.exception-rules-dialog header,
.exception-rules-dialog footer { background: var(--bg-soft) }
.exception-rules-dialog header :is(h2,p) { margin: 0 }
.exception-rules-dialog-body > .form-field__help { margin: 0 0 12px }
.exception-rules-dialog .exception-settings-list { grid-template-columns: 1fr; gap: 7px; margin: 0 0 12px }
.exception-rules-dialog .exception-settings-list .checkbox-row {
  margin: 0;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg-soft)
}
.exception-rules-dialog .exception-settings-list .checkbox-row:hover { border-color: var(--line-strong) }
.exception-rules-dialog .exception-hours-setting { grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 11px }
.exception-rules-dialog .exception-hours-setting > .checkbox-row { grid-column: 1/-1; margin: 0 }
.exception-rules-dialog .exception-hours-setting > .form-field { margin: 0 }

.exception-workspace-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(290px,320px);
  gap: 14px;
  align-items: start;
  width: 100%
}

.exception-list-card { overflow: hidden }
.exception-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px }
.exception-list-heading h2 { margin: 0; font-size: 1.05rem }
.exception-table-wrap {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  min-height: 360px;
  max-height: min(680px,calc(100vh - 400px));
  overflow: auto
}
.exception-table-wrap table { width: 100%; min-width: 1180px; table-layout: fixed }
.exception-table-wrap th { top: 0 }
.exception-table-wrap :is(th,td) { min-width: 0; padding: 10px 12px; overflow: hidden }
.exception-table-wrap td { vertical-align: middle }
.exception-table-wrap :is(th,td):nth-child(1) { width: 110px }
.exception-table-wrap :is(th,td):nth-child(2) { width: 330px; white-space: normal; overflow-wrap: anywhere }
.exception-table-wrap :is(th,td):nth-child(3) { width: 210px }
.exception-table-wrap :is(th,td):nth-child(4) { width: 120px }
.exception-table-wrap :is(th,td):nth-child(5) { width: 130px }
.exception-table-wrap :is(th,td):nth-child(6) { width: 120px }
.exception-table-wrap :is(th,td):nth-child(7) { width: 160px }
.exception-table-wrap td:not(:nth-child(2)) { white-space: nowrap; overflow-wrap: normal }
.exception-table-wrap td:nth-child(2) small { display: block; margin-top: 2px; color: var(--muted) }

.exception-list-card > .workorder-pagination {
  min-height: 62px;
  gap: 8px;
  margin: 0;
  padding: 11px 16px;
  border-top: 1px solid var(--line);
  background: var(--bg-soft)
}

.exception-list-card > .workorder-pagination .pagination-page-size { margin-bottom: 0 }
.exception-list-card > .workorder-pagination :is(a,.disabled) { min-height: 40px; padding-inline: 13px }
.exception-pagination-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px }
.exception-page-count { display: inline-flex; align-items: center; min-height: 40px; padding: 0 8px; color: var(--muted); font-size: .8rem; font-weight: 700; white-space: nowrap }

.exception-severity {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800
}
.exception-severity.critical { color: var(--danger); background: var(--danger-soft); border-color: color-mix(in srgb,var(--danger) 35%,var(--line)) }
.exception-severity.warning { color: var(--warn); background: var(--warn-soft); border-color: color-mix(in srgb,var(--warn) 35%,var(--line)) }
.exception-severity.info { color: var(--brand); background: var(--brand-soft); border-color: color-mix(in srgb,var(--brand) 25%,var(--line)) }

.exception-empty-state { height: 180px; text-align: center; vertical-align: middle !important }
.exception-empty-state strong,.exception-empty-state span { display: block }
.exception-empty-state span { margin-top: 4px; color: var(--muted) }

.exception-breakdown {
  padding: 16px
}
.exception-sidebar { display: grid; gap: 14px; position: sticky; top: 70px; align-self: start; max-height: calc(100vh - 90px); overflow: auto }
.exception-sidebar-toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 36px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--brand); font: inherit; font-size: .78rem; font-weight: 750; cursor: pointer }
.exception-sidebar-toggle:hover { border-color: var(--brand); background: var(--brand-soft) }
.exception-sidebar-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px }
.exception-sidebar-heading h2 { margin: 0; font-size: 1rem }
.exception-sidebar-heading > strong { color: var(--brand); font-size: 1.75rem; line-height: 1 }
.exception-breakdown-items { display: grid; gap: 14px }
.exception-breakdown a { display: block; padding: 2px 0; color: var(--ink); text-decoration: none }
.exception-breakdown a:hover strong { color: var(--brand) }
.exception-breakdown a span { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 6px; font-size: .8rem }
.exception-breakdown a b { color: var(--muted) }
.exception-breakdown i { display: block; height: 8px; overflow: hidden; border-radius: 99px; background: var(--bg) }
.exception-breakdown em { display: block; height: 100%; border-radius: inherit; background: var(--brand) }

.exception-rule-note { padding: 16px }
.exception-rule-note h2 { margin-bottom: 8px; font-size: 1rem }
.exception-rule-note p { margin-bottom: 10px; font-size: .78rem }
.exception-rule-note .btn { margin-top: 2px }

.exception-workspace-layout.is-sidebar-collapsed { grid-template-columns: minmax(0,1fr) 42px }
.exception-workspace-layout.is-sidebar-collapsed .exception-sidebar-panel { display: none }
.exception-workspace-layout.is-sidebar-collapsed .exception-sidebar { overflow: visible }
.exception-workspace-layout.is-sidebar-collapsed .exception-sidebar-toggle { writing-mode: vertical-rl; min-height: 132px; padding: 10px 7px }

.exception-review-dialog > form { max-height: min(88vh,760px) }
.exception-review-dialog :is(header,footer) { background: var(--bg-soft) }
.exception-review-dialog header :is(h2,p) { margin: 0 }
.exception-review-description { margin: 0 0 15px; font-size: .9rem; line-height: 1.55 }
.exception-review-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 0 0 15px }
.exception-review-facts > div { min-width: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--bg-soft) }
.exception-review-facts > .wide { grid-column: 1/-1 }
.exception-review-facts :is(dt,dd) { margin: 0 }
.exception-review-facts dt { margin-bottom: 3px; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase }
.exception-review-facts dd { overflow-wrap: anywhere; font-size: .83rem; font-weight: 750 }
.exception-review-facts dd small { display: block; margin-top: 2px; color: var(--muted); font-weight: 500 }
.exception-review-edit,.exception-review-notice { padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft) }
.exception-review-edit > label { display: block; margin-bottom: 6px; font-weight: 800 }
.exception-review-edit .form-field__help { margin-bottom: 0 }
.exception-review-notice { border-color: var(--warn); background: var(--warn-soft) }
.exception-review-notice.neutral { border-color: var(--line); background: var(--bg-soft) }
.exception-review-notice strong { display: block; margin-bottom: 4px }
.exception-review-notice p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.5 }

.exception-settings-list {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px 18px;
  margin: 15px 0
}

.exception-hours-setting {
  display: grid;
  grid-template-columns: minmax(220px,1fr) minmax(190px,.65fr) minmax(170px,.55fr);
  gap: 12px;
  align-items: end;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--bg-soft)
}

.exception-hours-setting > .checkbox-row { align-self: center }
.exception-hours-setting > .form-field__help { grid-column: 1/-1; margin: 0 }
.input-suffix { display: flex; align-items: stretch }
.input-suffix input { min-width: 0; border-radius: 7px 0 0 7px }
.input-suffix span { display: grid; place-items: center; min-width: 38px; border: 1px solid var(--line-strong); border-left: 0; border-radius: 0 7px 7px 0; background: var(--surface-muted); color: var(--muted); font-weight: 750 }

@media (max-width: 1100px) {
  .exception-workspace-layout { grid-template-columns: 1fr }
  .exception-sidebar { grid-template-columns: repeat(2,minmax(0,1fr)); position: static; max-height: none; overflow: visible }
  .exception-breakdown-items { grid-template-columns: repeat(3,minmax(100px,1fr)) }
  .exception-hours-setting { grid-template-columns: 1fr 1fr }
  .exception-hours-setting > .checkbox-row { grid-column: 1/-1 }
}

@media (max-width: 700px) {
  .exception-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)) }
  .filter-bar.exception-filters { grid-template-columns: 1fr }
  .exception-filters .planning-search-filter { grid-column: auto }
  .exception-filters > .planning-search-filter { margin-right: 0; padding-right: 0 }
  .exception-context-card { align-items: flex-start; flex-wrap: wrap }
  .exception-live-label { width: 100%; margin-left: 0 }
  .exception-heading-actions { align-items: stretch; flex-direction: column }
  .exception-sidebar,.exception-breakdown-items,.exception-settings-list,.exception-hours-setting { grid-template-columns: 1fr }
  .exception-rules-dialog .exception-hours-setting { grid-template-columns: 1fr }
  .exception-hours-setting > .checkbox-row { grid-column: auto }
  .exception-rules-dialog .exception-hours-setting > .checkbox-row { grid-column: auto }
  .exception-table-wrap { min-height: 300px; max-height: none }
  .exception-list-heading { align-items: flex-start; flex-direction: column }
  .exception-review-facts { grid-template-columns: 1fr }
  .exception-review-facts > .wide { grid-column: auto }
}

.alert-label {
  font-size: .74rem;
  color: var(--muted)
}

.workorder-progress-card {
  margin-bottom: 16px
}

.phase-progress-card {
  margin-bottom: 16px
}

.phase-progress-heading {
  margin-bottom: 14px
}

.phase-progress-heading h2 {
  margin: 2px 0 3px
}

.phase-progress-heading p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45
}

.phase-progress-summary {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  margin-bottom: 14px
}

.phase-progress-summary-item {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg-soft)
}

.phase-progress-empty {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .77rem
}

.phase-progress-table {
  min-width: 720px
}

.phase-progress-table th:not(:first-child),
.phase-progress-table td:not(:first-child) {
  width: 42%;
  text-align: center
}

.phase-zone-progress {
  min-width: 230px
}

.phase-zone-progress > div:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px
}

.phase-zone-progress > div:first-child span {
  color: var(--muted);
  font-size: .75rem
}

@media(max-width:700px) {
  .phase-progress-summary {
    grid-template-columns: 1fr
  }
}

.workorder-progress-table th:not(:first-child),
.workorder-progress-table td:not(:first-child) {
  text-align: center
}

.open-item-pill,
.complete-item-pill {
  display: inline-flex;
  min-width: 32px;
  justify-content: center;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: .75rem;
  font-weight: 850
}

.open-item-pill {
  background: var(--warn-soft);
  color: var(--warn)
}

.complete-item-pill {
  background: var(--ok-soft);
  color: var(--ok)
}

.zone-progress-card {
  margin-bottom: 20px
}

.zone-progress-table {
  min-width: 720px
}

.trade-progress-note {
  max-width: 760px;
  margin: 7px 0 0;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45
}

.trade-progress-table .mech-overall-row td {
  border-bottom-color: var(--line)
}

.trade-progress-table .trade-summary-row:not(:first-child) td {
  border-top: 10px solid var(--bg)
}

.trade-progress-table .mech-zone-row td {
  background: var(--surface-soft, #f7fafc)
}

.mech-zone-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-left: 36px;
  color: var(--muted);
  font-weight: 750
}

.mech-zone-label::before {
  content: "↳";
  color: var(--brand)
}

@media(max-width:700px) {
  .mech-zone-label {
    padding-left: 24px
  }
}

@media(max-width:1250px) {
  .dashboard-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .aircraft-overview-card {
    grid-template-columns: 1fr
  }

  .aircraft-dates {
    border-top: 1px solid rgba(255, 255, 255, .14)
  }
}

@media(max-width:850px) {
  .dashboard-project-selector select {
    min-width: 0;
    width: 100%
  }

  .dashboard-project-actions {
    width: 100%
  }

  .dashboard-project-selector {
    width: 100%
  }

  .aircraft-identity,
  .aircraft-dates {
    grid-template-columns: 1fr;
    gap: 14px
  }

  .dashboard-kpi-grid {
    grid-template-columns: 1fr
  }

  .dashboard-alert-strip {
    align-items: flex-start;
    flex-wrap: wrap
  }

  .dashboard-alert-strip p {
    margin-left: 0;
    width: 100%
  }
}

/* FEATURE: Aircraft induction management */
.induction-heading {
  align-items: flex-end;
}

.induction-form-card {
  margin-bottom: 1rem;
}

.induction-toolbar {
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}

.toolbar-form {
  display: flex;
  gap: .8rem;
  align-items: end;
  flex-wrap: wrap;
}

.toolbar-form label {
  min-width: 180px;
  flex: 1;
}

.toolbar-form .check-label {
  min-width: auto;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: .45rem;
  padding-bottom: .65rem;
}

.toolbar-form .check-label input {
  width: auto;
}

.induction-table-card {
  padding: 0;
  overflow: hidden;
}

.induction-table {
  margin: 0;
}

.induction-table td {
  vertical-align: middle;
}

.induction-table td>strong,
.induction-table td>span,
.induction-table td>small {
  display: block;
}

.induction-table td small {
  color: var(--muted);
  margin-top: .22rem;
}

.induction-table tr.is-selected-project {
  background: rgba(37, 99, 235, .06);
  box-shadow: inset 4px 0 0 #2563eb;
}

.compact-actions {
  gap: .35rem;
  flex-wrap: wrap;
}

.compact-actions form {
  margin: 0;
}

.status-planned {
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.status-complete {
  background: var(--bg-soft);
  color: var(--muted);
}

.section-title-row {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}

.btn.danger {
  background: var(--paper);
  border-color: var(--danger);
  color: var(--danger);
}

.btn.danger:hover {
  background: var(--danger-soft);
}

@media (max-width:900px) {
  .induction-heading {
    align-items: flex-start;
  }

  .induction-table {
    min-width: 1050px;
  }

  .toolbar-form label {
    min-width: 100%;
  }
}

/* FEATURE: Supervisor allocation */
.allocation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem
}

.allocation-grid .card {
  margin: 0
}

/* FEATURE: Crew management workspaces */
.crew-workspace-tabs {
  margin-bottom: 1rem;
}
.tab-list--cards .tab-list__item span { font-weight: 800 }
.tab-list--cards .tab-list__item small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap }

.crew-departments { margin-bottom: 1rem }
.crew-section-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: .8rem }
.crew-section-heading :is(h2,p) { margin: 0 }

.crew-department-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
  gap: .6rem;
}

.crew-department-item {
  display: grid;
  align-content: start;
  gap: .3rem;
  min-width: 0;
  padding: .7rem .85rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg-soft);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  color: var(--ink);
  text-decoration: none;
}
.crew-department-item:hover { border-color: var(--line-strong); color: var(--ink); box-shadow: var(--shadow-md) }
.crew-department-item.is-active { border-color: var(--brand); background: var(--brand-soft); box-shadow: inset 0 0 0 1px var(--brand) }

.crew-department-item :is(strong) {
  white-space: nowrap;
  overflow-wrap: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  min-width: 0;
}

.crew-department-item span,
.crew-department-item small {
  color: var(--muted);
  overflow-wrap: anywhere;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.crew-editor-dialog { width: min(720px,calc(100vw - 28px)); padding: 0 }

.crew-copy-dialog { width: min(680px,calc(100vw - 28px)); }
.crew-copy-dialog .crew-dialog-body { gap: 14px; }
.crew-copy-source-help { max-width: 72ch; line-height: 1.45; }
.crew-copy-preview { min-height: 62px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg-soft); }
.crew-copy-preview > p { margin: 0; color: var(--muted); }
.crew-copy-preview-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.crew-copy-preview-grid > div { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.crew-copy-preview-grid span,
.crew-copy-preview-grid strong { display: block; }
.crew-copy-preview-grid span { color: var(--muted); font-size: 11px; }
.crew-copy-preview-grid strong { margin-top: 2px; font-size: 14px; }
.crew-copy-unmapped { margin: 10px 0 0; color: var(--warn); font-size: 12px; }
.crew-copy-mode { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; min-width: 0; margin: 0; padding: 0; border: 0; }
.crew-copy-mode legend { grid-column: 1/-1; margin-bottom: 1px; padding: 0; font-weight: 800; }
.crew-copy-option { display: flex; align-items: flex-start; gap: 10px; min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); cursor: pointer; }
.crew-copy-option:hover { border-color: var(--line-strong); background: var(--bg-soft); }
.crew-copy-option input { flex: 0 0 auto; width: auto; margin: 3px 0 0; accent-color: var(--brand); }
.crew-copy-option span,
.crew-copy-option strong,
.crew-copy-option small { display: block; min-width: 0; }
.crew-copy-option strong { line-height: 1.35; }
.crew-copy-option small { margin-top: 3px; color: var(--muted); font-weight: 500; line-height: 1.4; }
.crew-copy-note { margin: 0; padding: 10px 12px; border-left: 3px solid var(--brand); border-radius: 7px; background: var(--bg-soft); color: var(--muted); font-size: 12px; line-height: 1.45; }
.crew-copy-note strong { color: var(--ink); }

.crew-filter-bar {
  grid-template-columns: minmax(200px, 1.5fr) minmax(180px, 1fr) auto auto;
  gap: .65rem;
}

.crew-assignment-filter {
  grid-template-columns: minmax(280px, 480px) auto;
  justify-content: start;
}
.crew-filter-bar :is(input,select,.btn) { min-height: 42px; margin: 0 }
.crew-list-heading { margin-bottom: 0 }

.crew-management-list-wrap,
.crew-assignments-wrap {
  max-height: min(52vh, 520px);
  overflow-y: auto;
}

.crew-management-list-wrap thead th,
.crew-assignments-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

:is(#supervisors, #technicians, #crew-assignments) > .workorder-pagination > form:first-child {
  margin-right: auto;
}

:is(#supervisors, #technicians, #crew-assignments) .pagination-page-size {
  margin-right: 0;
}

.allocation-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0
}

.allocation-summary>div {
  border: 1px solid var(--border, #d7dde5);
  border-radius: 8px;
  padding: .85rem;
  background: var(--bg-soft)
}

.allocation-summary span {
  display: block;
  color: var(--muted);
  font-size: .82rem
}

.allocation-summary strong {
  display: block;
  font-size: 1.4rem;
  margin-top: .2rem
}

.daily-hours-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem
}

.uploaded-report-check>summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none
}

.uploaded-report-check {
  margin-bottom: 1rem
}

.uploaded-report-check>summary::-webkit-details-marker {
  display: none
}

.uploaded-report-check>summary>span:first-child {
  display: grid;
  gap: .2rem
}

.uploaded-report-check>summary strong {
  font-size: 1.15rem
}

.uploaded-report-check>summary small {
  color: var(--muted)
}

.uploaded-report-check[open]>summary {
  margin-bottom: 1rem
}

.uploaded-report-check[open] .uploaded-report-check-action {
  font-size: 0
}

.uploaded-report-check[open] .uploaded-report-check-action::after {
  content: 'Hide details';
  font-size: .9rem
}

.daily-hours-toolbar h2,
.daily-hours-toolbar p {
  margin-bottom: .25rem
}

.daily-hours-navigation {
  display: flex;
  flex: 0 0 auto;
  gap: .4rem
}

.daily-hours-navigation .btn {
  min-width: 2.75rem
}

.daily-hours-table {
  min-width: 760px;
  table-layout: fixed
}

.daily-hours-table .daily-hours-technician {
  position: sticky;
  left: 0;
  z-index: 2;
  width: 230px;
  background: var(--paper);
  box-shadow: 1px 0 0 var(--border, #d7dde5);
  text-align: left
}

.daily-hours-table thead .daily-hours-technician {
  z-index: 4;
  background: var(--bg-soft)
}

.daily-hours-technician strong,
.daily-hours-technician small {
  display: block
}

.daily-hours-technician small {
  margin-top: .15rem;
  color: var(--muted);
  font-weight: 400
}

.daily-hours-table .daily-hours-day {
  width: calc((100% - 230px) / 5);
  text-align: center
}

.daily-hours-table thead .daily-hours-day {
  padding: 0
}

.daily-hours-day button {
  display: grid;
  width: 100%;
  min-height: 76px;
  place-content: center;
  gap: .1rem;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer
}

.daily-hours-day button:hover {
  background: var(--primary-soft, #eef4ff)
}

.daily-hours-day button span,
.daily-hours-day button small {
  color: var(--muted);
  font-size: .72rem;
  text-transform: uppercase
}

.daily-hours-day.is-selected {
  background: var(--primary-soft, #eef4ff)
}

.daily-hours-table thead .daily-hours-day.is-selected {
  box-shadow: inset 0 3px 0 var(--primary, #3157a4)
}

.daily-hours-table thead .daily-hours-day.is-today strong {
  color: var(--primary, #3157a4)
}

.employee-labour-table-wrap {
  max-height: 520px;
  overflow: auto;
  overscroll-behavior: contain
}

.employee-labour-table-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--bg-soft)
}

.time-card-panel .time-card-results {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line)
}

.time-card-panel .time-card-results>.alert {
  margin-bottom: 1rem
}

.employee-labour-employee-options {
  max-height: min(360px, 55vh);
  overflow-y: auto;
}

.workorder-pagination.allocation-results-pagination {
  justify-content: space-between;
  gap: 18px;
  padding: 16px 22px 18px;
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
}

.allocation-pagination-settings,
.allocation-pagination-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.allocation-pagination-settings {
  gap: 18px;
}

.allocation-results-pagination .pagination-page-size {
  margin-right: 0;
}

@media (max-width: 760px) {
  .allocation-results-pagination,
  .allocation-pagination-settings {
    align-items: stretch;
    flex-direction: column;
  }

  .allocation-pagination-links {
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 2px;
  }
}

/* SHARED COMPONENTS: Dark theme overrides */
[data-theme="dark"] .card:hover {
  border-color: var(--line-strong)
}

[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea,
[data-theme="dark"] .btn.secondary,
[data-theme="dark"] .table-wrap,
[data-theme="dark"] table,
[data-theme="dark"] .pagination a,
[data-theme="dark"] dialog,
[data-theme="dark"] .modal-system-card {
  border-color: var(--line);
  background: var(--paper);
  color: var(--ink)
}

[data-theme="dark"] .pagination a.active {
  border-color: var(--brand);
  background: var(--brand);
  color: var(--bg);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand) 35%, transparent)
}

[data-theme="dark"] input:disabled,
[data-theme="dark"] select:disabled,
[data-theme="dark"] textarea:disabled,
[data-theme="dark"] th,
[data-theme="dark"] .daily-hours-table thead .daily-hours-technician,
[data-theme="dark"] .daily-hours-table thead .daily-hours-day {
  background: var(--bg-soft);
  color: var(--ink)
}

[data-theme="dark"] td,
[data-theme="dark"] th {
  border-color: var(--table-row-separator)
}

[data-theme="dark"] tbody tr:hover td,
[data-theme="dark"] tbody tr:hover th {
  background: #22364a
}

[data-theme="dark"] .daily-hours-table .daily-hours-technician {
  background: var(--paper);
  box-shadow: 1px 0 0 var(--line)
}

[data-theme="dark"] .daily-hours-day.is-selected,
[data-theme="dark"] .daily-hours-day button:hover {
  background: var(--brand-soft)
}

[data-theme="dark"] .daily-hours-table thead .daily-hours-day.is-today strong {
  color: var(--brand)
}

[data-theme="dark"] .allocation-summary>div,
[data-theme="dark"] .dashboard-kpi,
[data-theme="dark"] .system-check,
[data-theme="dark"] .about-meta-grid>div {
  border-color: var(--line);
  background: var(--bg-soft)
}

[data-theme="dark"] .alert--success {
  border-color: #327659;
  background: var(--ok-soft);
  color: #a9ebc8
}

[data-theme="dark"] .alert--error {
  border-color: #8f4b4b;
  background: var(--danger-soft);
  color: #ffb8b2
}

[data-theme="dark"] .alert--warning {
  border-color: #806137;
  background: var(--warn-soft);
  color: #f4ce9c
}

[data-theme="dark"] .btn.secondary:hover {
  background: var(--bg-soft)
}

[data-theme="dark"] .btn:not(.secondary):not(.danger):not(.destructive) {
  border-color: #4f83ad;
  background: #315f82;
  color: #fff
}

[data-theme="dark"] .btn:not(.secondary):not(.danger):not(.destructive):hover {
  background: #284f6d;
  color: #fff
}

[data-theme="dark"] .btn.ok {
  border-color: #398564;
  background: #246b4a
}

@media(max-width:1000px) {
  .allocation-grid {
    grid-template-columns: 1fr
  }

  .allocation-summary {
    grid-template-columns: repeat(2, 1fr)
  }

  .crew-filter-bar,
  .crew-assignment-filter { grid-template-columns: 1fr 1fr }
}

@media(max-width:600px) {
  .tab-list--three { grid-template-columns: 1fr }
  .tab-list--cards .tab-list__item { padding: .65rem .8rem }
  .crew-department-grid { grid-template-columns: repeat(2,minmax(0,1fr)) }
  .crew-filter-bar,
  .crew-assignment-filter { grid-template-columns: 1fr }
  .crew-copy-preview-grid,
  .crew-copy-mode { grid-template-columns: 1fr; }
  .allocation-summary {
    grid-template-columns: 1fr
  }

  .daily-hours-toolbar {
    align-items: stretch;
    flex-direction: column
  }

  .daily-hours-navigation {
    justify-content: flex-end
  }

  .daily-hours-table .daily-hours-technician {
    width: 170px
  }

  .daily-hours-table .daily-hours-day {
    width: 118px
  }

  .employee-labour-table-wrap {
    max-height: 420px
  }
}

/* FEATURE: Task Card rollback controls and layout reset */
.taskcard-danger-zone {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-color: var(--danger);
}

.taskcard-danger-zone h2 {
  margin: 0 0 .35rem;
}

.taskcard-danger-zone p {
  margin: 0;
  max-width: 78ch;
}

@media (max-width:760px) {
  .taskcard-danger-zone {
    align-items: stretch;
    flex-direction: column
  }

  .taskcard-danger-zone .inline-form,
  .taskcard-danger-zone .btn {
    width: 100%;
  }
}


.workorder-module-page .taskcard-manager-layout {
  grid-template-columns: 210px minmax(0, 1fr);
}

.workorder-module-page .taskcard-manager-layout.stats-collapsed {
  grid-template-columns: 48px minmax(0, 1fr);
}

.pagination span.disabled {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg-soft);
  color: var(--muted);
  font-weight: 700;
  opacity: .65;
}

.workorder-pagination a {
  padding: 0 11px;
  white-space: nowrap;
}

.workorder-pagination {
  margin-top: 0;
  padding: 14px 0 0;
  border-top: 0;
}

.workorder-pagination .pagination-edge {
  min-width: 68px;
}

.pagination-page-size {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: auto;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.pagination-page-size select {
  min-width: 72px;
  min-height: 36px;
  padding: 5px 28px 5px 10px;
}

/* FEATURE: Full-width Work Order detail layout */
body.workorder-module-page>main.container {
  width: calc(100% - 24px) !important;
  max-width: none !important;
  margin-left: 12px !important;
  margin-right: 12px !important;
}

body.workorder-module-page .taskcard-manager-layout,
body.workorder-module-page .taskcard-manager-main,
body.workorder-module-page .taskcard-manager-main>section.card {
  width: 100%;
  max-width: none;
}

body.workorder-module-page .workorder-task-table-wrap {
  width: 100%;
  max-width: none;
}

@media (max-width: 1100px) {
  body.workorder-module-page>main.container {
    width: min(100% - 22px, var(--page-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* FEATURE: Full-width Non-Routine layout */
body.nonroutine-module-page>main.container {
  width: calc(100% - 24px) !important;
  max-width: none !important;
  margin-left: 12px !important;
  margin-right: 12px !important;
}

body.nonroutine-module-page .taskcard-manager-layout,
body.nonroutine-module-page .taskcard-manager-main,
body.nonroutine-module-page .taskcard-manager-main>section.card,
body.nonroutine-module-page .table-wrap {
  width: 100%;
  max-width: none;
}

@media (max-width: 1100px) {

  body.nonroutine-module-page>main.container {
    width: min(100% - 22px, var(--page-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* FEATURE: Work Order administration */
.workorder-danger-zone {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  border-color: var(--danger);
}

.workorder-danger-zone h2 {
  margin: .1rem 0 .35rem;
}

.workorder-danger-zone p {
  margin: 0;
  max-width: 76ch;
}

.workorder-danger-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .65rem;
}

.workorder-danger-actions .btn.destructive {
  background: var(--danger);
  color: #fff;
  border-color: var(--danger);
}

@media(max-width:900px) {
  .workorder-danger-zone {
    align-items: stretch;
    flex-direction: column
  }

  .workorder-danger-actions,
  .workorder-danger-actions form,
  .workorder-danger-actions .btn {
    width: 100%;
  }
}

/* FEATURE: Compact Work Order row actions */
.workorder-row-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .3rem
}

/* FEATURE: Task Card PDF range viewer */
.pdf-range-toolbar {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 12px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--paper);
  box-shadow: var(--shadow-sm);
}

.pdf-range-toolbar h1 {
  margin-bottom: .2rem;
}

.pdf-zoom-label {
  min-width: 3.5rem;
  text-align: center;
}

.pdf-viewer-actions {
  flex-wrap: nowrap;
}

.pdf-zoom-controls {
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--paper);
}

.pdf-zoom-controls .btn {
  min-width: 38px;
  border: 0;
  border-radius: 0;
}

.pdf-zoom-controls .pdf-zoom-label {
  align-self: stretch;
  display: inline-grid;
  place-items: center;
  padding: 0 10px;
  border-inline: 1px solid var(--line);
  background: var(--bg-soft);
  font-weight: 750;
}

.pdf-range-status {
  background: var(--surface, #fff);
  border: 1px solid var(--border, #d8dee8);
  border-radius: .5rem;
  margin-bottom: 1rem;
  padding: .8rem 1rem;
}

.pdf-range-status.error {
  color: var(--danger, #a61b1b);
}

.pdf-index-progress {
  display: grid;
  gap: .75rem;
}

.pdf-index-progress progress {
  height: 1rem;
  width: 100%;
}

.pdf-range-viewer {
  align-items: center;
  background: #dfe4ea;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-height: 0;
  overflow-x: auto;
  overflow-y: visible;
  padding: 24px;
  box-shadow: inset 0 1px 3px rgb(15 23 42 / 10%);
}

.pdf-rendered-page {
  background: #fff;
  overflow: hidden;
  border: 1px solid #c7ced8;
  border-radius: 4px;
  box-shadow: 0 8px 24px rgb(15 23 42 / 18%);
  flex: 0 0 auto;
}

.pdf-rendered-page canvas {
  display: block;
  height: auto;
  max-width: none;
}

.pdf-rendered-page-label {
  background: #f7f9fb;
  border-bottom: 1px solid #d7dbe1;
  color: #454b55;
  font-size: .78rem;
  padding: 7px 10px;
  font-weight: 700;
}

[data-theme="dark"] .pdf-range-viewer {
  background: #101923;
  border-color: #314256;
  box-shadow: inset 0 1px 4px rgb(0 0 0 / 45%);
}

[data-theme="dark"] .pdf-rendered-page {
  border-color: #3b4a5c;
  box-shadow: 0 10px 28px rgb(0 0 0 / 48%);
}

[data-theme="dark"] .pdf-rendered-page-label {
  background: #1b2735;
  border-bottom-color: #3b4a5c;
  color: #dce7f2;
}

@media (max-width: 720px) {
  .pdf-range-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .pdf-range-viewer {
    align-items: flex-start;
    padding: .75rem;
  }

  .pdf-viewer-actions {
    width: 100%;
    justify-content: space-between;
  }
}

.workorder-row-actions .inline-form {
  display: inline-flex;
  margin: 0
}

.task-instance-meta {
  color: var(--muted, #667085);
  display: flex;
  flex-wrap: wrap;
  font-size: .76rem;
  gap: .15rem .65rem;
  line-height: 1.35;
  margin-top: .2rem;
}

.task-instance-meta b {
  color: inherit;
}

.multi-checkbox-field {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.multi-checkbox-field legend {
  font-weight: 600;
  margin-bottom: .45rem;
}

.multi-checkbox-options {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  min-height: 2.5rem;
}

.multi-checkbox-options label {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  gap: .4rem;
  margin: 0;
}

.multi-checkbox-options input {
  height: 1rem;
  margin: 0;
  width: 1rem;
}

.multi-select {
  position: relative;
  width: 100%;
}

.multi-select summary {
  align-items: center;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 7px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
  min-height: 40px;
  padding: 8px 34px 8px 10px;
  position: relative;
}

.multi-select summary::after {
  content: "▾";
  position: absolute;
  right: 11px;
}

.multi-select[open] summary::after {
  transform: rotate(180deg);
}

.multi-select summary::-webkit-details-marker {
  display: none;
}

.multi-select__menu {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .18);
  left: 0;
  min-width: 100%;
  padding: 7px;
  position: absolute;
  top: calc(100% + 4px);
  z-index: 40;
}

.multi-select__menu label {
  align-items: center;
  border-radius: 5px;
  cursor: pointer;
  display: flex;
  gap: .5rem;
  margin: 0;
  padding: 7px;
}

.multi-select__menu label:hover {
  background: var(--bg-soft);
}

.multi-select__menu input {
  height: 1rem;
  margin: 0;
  min-height: auto;
  width: 1rem;
}

.link-button {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  color: inherit;
  font: inherit;
  font-size: inherit;
  cursor: pointer;
  text-decoration: underline
}

.link-button:hover {
  opacity: .78
}

/* FEATURE: Induction planning tables */
.workorder-module-page .workorder-task-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
}

.workorder-module-page .workorder-task-table {
  min-width: 2020px;
  table-layout: fixed;
}

.workorder-module-page .workorder-task-table tbody td {
  vertical-align: middle;
}

.task-planning-savebar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 10px 14px;
}

.planning-table-scroll-hint {
  display: none;
  color: var(--muted);
  font-size: .78rem;
}

.nr-trade-edit-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--line));
  border-radius: 10px;
  background: var(--brand-soft)
}

.nr-trade-edit-bar strong,
.nr-trade-edit-bar span { display: block }

.nr-trade-edit-bar span {
  margin-top: 3px;
  color: var(--muted);
  font-size: .78rem
}

.nr-details-trigger {
  appearance: none;
  padding: 0;
  border: 0;
  border-radius: 3px;
  outline: none;
  background: transparent;
  color: var(--brand-dark);
  font: inherit;
  text-align: left;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--brand) 35%, transparent);
  text-underline-offset: 3px;
  cursor: pointer
}

.nr-details-trigger:hover,
.nr-details-trigger:focus-visible {
  color: var(--brand);
}

.nr-details-trigger:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--brand) 65%, transparent);
  outline-offset: 3px;
}

.nr-return-anchor {
  display: block;
  height: 0;
  scroll-margin-top: 6rem;
}

.nr-requisition-summary {
  display: block;
  max-width: 100%;
  margin-top: 4px;
  overflow: hidden;
  color: var(--brand);
  font-size: .72rem;
  font-weight: 750;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.material-summary-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 5px;
}

.material-summary-pill-wrap {
  display: inline-flex;
  position: relative;
  max-width: 100%;
  border-radius: 999px;
  outline: none;
}

.material-summary-pill {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  max-width: 100%;
  padding: 2px 7px;
  border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--line));
  border-radius: 999px;
  background: var(--brand-soft);
  color: var(--brand-dark);
  font-size: .68rem;
  font-weight: 750;
  line-height: 1.2;
  white-space: nowrap;
}

.material-summary-pill-wrap:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--brand) 65%, transparent);
  outline-offset: 2px;
}

.material-summary-popover {
  position: fixed;
  z-index: 1000;
  display: grid;
  gap: 6px;
  width: max-content;
  min-width: 180px;
  max-width: min(380px, calc(100vw - 24px));
  max-height: min(320px, calc(100vh - 24px));
  padding: 9px 11px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--paper);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .22);
  color: var(--ink);
  font-size: .78rem;
  line-height: 1.35;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-2px);
  transition: opacity .12s ease, transform .12s ease, visibility .12s;
}

.material-summary-pill-wrap:is(:hover,:focus-within) .material-summary-popover {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.material-summary-list { display: grid; gap: 3px; }
.material-summary-list > span:not(:first-child) { padding-top: 3px; border-top: 1px solid var(--line); }

/* SHARED COMPONENTS: Dialogs */
.app-dialog {
  width: min(720px, calc(100% - 28px));
  max-height: min(860px, calc(100vh - 28px));
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(15, 23, 42, .28)
}

.app-dialog--small { width: min(430px, calc(100% - 28px)); }
.app-dialog--medium { width: min(640px, calc(100% - 28px)); }
.app-dialog--large { width: min(920px, calc(100% - 28px)); }
.app-dialog--wide { width: min(1080px, calc(100% - 28px)); }

.app-dialog::backdrop {
  background: rgba(15, 23, 42, .58);
  backdrop-filter: blur(2px)
}

.app-dialog__surface {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: min(860px, calc(100vh - 28px))
}

.app-dialog__header,
.app-dialog__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line)
}

.app-dialog__header :is(h2,h3,p) {
  margin-bottom: 0
}

.modal-close {
  display: inline-grid;
  width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--muted);
  font-size: 1.45rem;
  line-height: 1;
  cursor: pointer
}

.modal-close:hover,
.modal-close:focus-visible {
  border-color: var(--brand);
  color: var(--brand)
}

.app-dialog__footer {
  justify-content: flex-end;
  border-top: 1px solid var(--line);
  border-bottom: 0
}

.app-dialog__body {
  display: grid;
  gap: 16px;
  padding: 20px 22px;
  overflow: auto
}

.nr-details-section {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft, #f7fafc)
}

.nr-details-section h3 {
  margin: 0 0 12px;
  color: var(--brand-dark);
  font-size: .95rem
}

.nr-details-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 20px;
  margin: 0
}

.nr-details-list>div {
  min-width: 0
}

.nr-details-list dt {
  margin-bottom: 3px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase
}

.nr-details-list dd {
  margin: 0;
  overflow-wrap: anywhere;
  white-space: pre-wrap
}

.nr-details-long-field {
  grid-column: 1 / -1
}

@media(max-width:650px) {
  .app-dialog__header,
  .app-dialog__footer,
  .app-dialog__body {
    padding-left: 15px;
    padding-right: 15px
  }

  .nr-details-list {
    grid-template-columns: 1fr
  }

  .nr-details-long-field {
    grid-column: auto
  }
}

.zone-override-label {
  display: block;
  margin-top: 4px;
  color: var(--brand-dark);
  font-size: .7rem;
  font-weight: 750
}

[data-autosave-status].autosave-success {
  color: var(--success, #18794e);
}

.is-closeout-enabled { cursor: pointer; }
.is-closeout-enabled:hover td { background-color: color-mix(in srgb, var(--brand-soft) 42%, transparent); }
.closeout-comment-display[readonly] { cursor: default; opacity: 1; font-weight: 750; }
.closeout-status-out_for_signature .closeout-comment-display { border-color: #d6a600; background: #fff1a8; color: #654b00; }
.closeout-status-returned .closeout-comment-display { border-color: #5b9bd5; background: #d9ecff; color: #164f7a; }
.closeout-status-filed .closeout-comment-display { border-color: #5da970; background: #dff4e5; color: #176b35; }

[data-theme="dark"] .closeout-status-out_for_signature .closeout-comment-display { border-color: #b78b16; background: #55430f; color: #ffe69a; }
[data-theme="dark"] .closeout-status-returned .closeout-comment-display { border-color: #497da8; background: #173c5a; color: #c9e7ff; }
[data-theme="dark"] .closeout-status-filed .closeout-comment-display { border-color: #40845b; background: #173f2a; color: #c4f1d2; }

.closeout-status-dialog .app-dialog__body { display: grid; gap: 12px; }
.closeout-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.closeout-dialog-heading h2 { margin: 0; }
.closeout-status-dialog label { margin: 0; font-weight: 750; }
.closeout-status-dialog .form-field__help { margin: -4px 0 0; }
.closeout-status-dialog .action-group { justify-content: flex-end; }
.closeout-dialog-error { margin: 0; color: var(--danger); font-size: .82rem; font-weight: 700; }

@media(max-width:700px) {
  .nr-trade-edit-bar {
    align-items: stretch;
    flex-direction: column
  }
}

[data-autosave-status].autosave-error {
  color: var(--danger, #b42318);
}

[data-planning-row].is-autosaving {
  opacity: .72;
}

[data-planning-row].autosave-failed {
  box-shadow: inset 3px 0 var(--danger, #b42318);
}

.compact-text-cell {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.task-notes-cell {
  overflow: hidden;
}

.task-notes-preview {
  display: -webkit-box;
  line-height: 1.35;
  max-height: 4.05em;
  overflow: hidden;
  overflow-wrap: anywhere;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.technician-picker {
  position: relative;
  min-width: 84px;
}

.technician-picker summary {
  min-height: 32px;
  padding: 6px 8px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
  cursor: pointer;
  list-style: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.technician-picker summary::-webkit-details-marker {
  display: none;
}

.technician-picker-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  min-width: 240px;
  max-height: 220px;
  padding: 7px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .18);
}

.technician-picker-menu label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px;
  border-radius: 5px;
  cursor: pointer;
  font-weight: 750;
}

.technician-picker-menu label:hover {
  background: var(--bg-soft);
}

.technician-picker-menu input {
  min-height: auto;
  margin: 0;
}

.task-inline-comments {
  min-height: 52px;
  resize: vertical;
  font-size: 14px;
}

.column-filter-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.column-filter-menu {
  position: relative;
}

.column-filter-menu>summary {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--muted);
  cursor: pointer;
  list-style: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.column-filter-menu>summary::-webkit-details-marker {
  display: none;
}

.column-filter-menu>summary.active,
.column-filter-menu[open]>summary {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}

.column-filter-popover {
  display: flex;
  flex-direction: column;
  max-height: min(340px, calc(100vh - 32px));
  position: fixed;
  z-index: 1000;
  width: 250px;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--paper);
  box-shadow: var(--shadow-md);
  color: var(--ink);
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.sort-only-popover {
  width: max-content;
  min-width: 170px;
}

.sort-only-popover .column-filter-actions {
  padding-top: 0;
  border-top: 0;
}

.column-filter-options {
  min-height: 0;
  max-height: 230px;
  overflow-y: auto;
}

.column-filter-options label {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  padding: 5px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 650;
  color: var(--ink);
  cursor: pointer;
  transition: background-color .15s ease, color .2s ease;
}

.column-filter-options label:hover {
  background: var(--bg-soft);
}

.column-filter-options input {
  min-height: auto;
  margin: 2px 0 0;
}

.column-filter-actions {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.column-filter-actions .btn[aria-pressed="true"] {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}

[data-theme="dark"] .column-filter-menu>summary.active,
[data-theme="dark"] .column-filter-menu[open]>summary,
[data-theme="dark"] .column-filter-actions .btn[aria-pressed="true"] {
  border-color: #4f83ad;
  background: #315f82;
  color: #fff;
}

.nonroutine-module-page .nonroutine-planning-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
}

.nonroutine-module-page .nonroutine-planning-table {
  min-width: 1350px;
  table-layout: fixed;
}

.nr-inline-zone,
.nr-inline-trade {
  width: 100%;
  min-width: 0;
}

/* FEATURE: Open Card Report */
.open-card-report-page .page-heading { width: min(100%,1120px); margin: 0 auto 14px; }
.open-card-report-page .report-options-card { max-width: 1120px; margin-inline: auto; display: grid; gap: 16px; padding: clamp(18px,2.2vw,26px); }
.open-card-report-page .report-options-card form { display: grid; gap: 16px; }
.open-card-report-page .selection-summary { align-items: center; margin: 0; padding: 15px 17px; border-color: var(--line); background: linear-gradient(135deg,var(--bg-soft),var(--paper)); }
.open-card-report-page .selection-summary strong { font-size: 1.05rem; }
.open-card-report-page .selection-summary small { display: block; margin-bottom: 2px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.open-card-report-page .selection-summary span { font-size: .86rem; }

.report-scope-fieldset,
.report-workorder-fieldset {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
}

.report-scope-fieldset { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.report-scope-fieldset legend { grid-column: 1 / -1; }
.report-scope-option { min-height: 50px; border: 1px solid transparent; padding-block: 7px; }
.report-workorder-fieldset { padding: 14px; }
.report-fieldset-help { display: none; margin: -2px 10px 8px; color: var(--muted); font-size: .8rem; }
.report-workorder-fieldset:disabled .report-fieldset-help { display: block; }

/* FEATURE: Inventory availability */
body.inventory-module-page > main.container {
  margin-top: 24px;
}

body.inventory-module-page .page-heading {
  margin-bottom: 14px;
}

body.inventory-module-page .page-heading .page-description {
  max-width: 900px;
}

.inventory-import-card summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
}

.inventory-import-card[open] {
  padding: 16px 18px;
}

.inventory-import-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, 1fr)) max-content;
  align-items: start;
  gap: 18px;
  margin-top: 14px;
}

.inventory-import-step label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.inventory-import-step label span {
  display: inline-grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-size: 12px;
}

.inventory-import-step input[type="file"] {
  padding: 5px;
  background: var(--paper);
}

.inventory-import-step input[type="file"]::file-selector-button {
  margin-right: 10px;
  padding: 7px 11px;
  border: 0;
  border-radius: 7px;
  background: var(--bg-soft);
  color: var(--ink);
  font-weight: 700;
  cursor: pointer;
}

.inventory-import-action {
  display: grid;
  gap: 7px;
  max-width: 210px;
  padding-top: 28px;
}

.inventory-import-action .btn {
  width: 100%;
  min-height: 38px;
  white-space: nowrap;
}

.inventory-import-action small {
  color: var(--muted);
  line-height: 1.3;
}

.inventory-import-form .form-field,
.inventory-search-form .form-field {
  flex: 1 1 360px;
  margin: 0;
}

.parts-report-file-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(220px, 1fr));
  gap: 12px;
  flex: 1 1 720px;
}

.parts-report-file-grid-single {
  grid-template-columns: minmax(320px, 760px);
  flex: 0 1 760px;
}

.parts-report-import-form {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 14px;
}

.parts-report-import-form .import-submit-button {
  flex: 0 0 auto;
  white-space: nowrap;
}

.parts-report-import-form .import-status {
  flex: 1 0 100%;
}

.parts-report-selection {
  margin-top: 4px;
  color: var(--muted);
  font-size: .8rem;
}

.parts-report-selection.is-valid { color: var(--success); }
.parts-report-selection.is-invalid { color: var(--danger); }

.parts-import-summary {
  display: grid;
  grid-template-columns: max-content max-content minmax(0, 1fr);
  align-items: center;
  gap: 10px 28px;
  margin: 1rem 0;
}

.parts-import-summary div {
  display: flex;
  align-items: baseline;
  gap: .45rem;
  min-width: 0;
}
.parts-import-summary span,
.parts-import-summary small { color: var(--muted); }
.parts-import-summary span { white-space: nowrap; }
.parts-import-summary strong,
.parts-import-summary small { overflow-wrap: anywhere; }
.parts-import-summary .parts-import-sources { align-items: flex-start; }
.parts-source-files {
  display: flex;
  flex-wrap: nowrap;
  gap: .3rem .4rem;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 2px;
  white-space: normal !important;
}
.parts-source-files small {
  flex: 0 0 auto;
  padding: .18rem .45rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface-muted);
  font-size: .78rem;
  font-weight: 400;
  line-height: 1.25;
}

.parts-report-detail-table { min-width: 1100px; }
.parts-dashboard-table td small { display: block; color: var(--muted); margin-top: .2rem; }

@media (max-width: 760px) {
  .parts-report-file-grid,
  .parts-import-summary { grid-template-columns: 1fr; }
  .parts-import-summary div { flex-wrap: wrap; }
}

.inventory-location-filter {
  min-width: 0;
}

.inventory-location-filter>label {
  display: block;
  margin-bottom: 6px;
}

.inventory-location-filter .multi-select__menu {
  max-height: 280px;
  overflow-y: auto;
}

.inventory-search-form {
  grid-template-columns: minmax(360px, 1.7fr) minmax(220px, .7fr) max-content;
}

.inventory-search-form .form-field,
.inventory-search-form .inventory-location-filter {
  min-width: 0;
}

.inventory-search-form #inventory-query,
.inventory-search-form .multi-select > summary {
  min-height: 38px;
}
.inventory-query-combobox { position: relative; }
.inventory-query-options { position: absolute; top: calc(100% + 5px); right: 0; left: 0; z-index: 24; max-height: 360px; overflow-y: auto; padding: 5px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--paper); box-shadow: var(--shadow-md); }
.inventory-query-option { display: grid; width: 100%; gap: 4px; padding: 10px 11px; border: 0; border-radius: 7px; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.inventory-query-option > span { display: flex; gap: 9px; min-width: 0; align-items: baseline; }
.inventory-query-option strong { flex: 0 0 auto; font-size: 13px; }
.inventory-query-option mark { border-radius: 2px; background: color-mix(in srgb,var(--warn) 35%,transparent); color: inherit; font-weight: 900; }
.inventory-query-option span span,.inventory-query-option small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.inventory-query-option small { font-size: 11px; }
.inventory-query-option:hover,.inventory-query-option:focus-visible,.inventory-query-option.is-active { background: var(--brand-soft); color: var(--brand-dark); outline: none; }
.inventory-query-status { padding: 11px; color: var(--muted); font-size: 12px; }

.inventory-search-form .form-field__help {
  min-height: 16px;
  margin-top: 5px;
}

.inventory-search-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 24px;
}

.inventory-search-actions .checkbox-row {
  min-height: 38px;
  margin: 0;
  white-space: nowrap;
}

.inventory-search-actions > div {
  display: flex;
  gap: 8px;
}

.inventory-search-actions .btn {
  min-height: 38px;
  white-space: nowrap;
}

.inventory-snapshot-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.inventory-snapshot-summary>div {
  min-height: 68px;
  padding: 10px 13px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg-soft);
}

.inventory-snapshot-summary span,
.inventory-snapshot-summary strong,
.inventory-snapshot-summary small {
  display: block;
}

.inventory-snapshot-summary small {
  margin-top: 3px;
  color: var(--muted);
}

.inventory-snapshot-summary span {
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 12px;
}

.inventory-results-heading {
  margin: 18px 0 10px;
}

.inventory-source-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: -2px 0 12px;
  color: var(--muted);
  font-size: 12px;
}

.inventory-source-list strong {
  padding: 3px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg-soft);
  color: var(--ink);
  font-size: 12px;
}

.inventory-part-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.inventory-part-summary>div {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
}

.inventory-part-summary span,
.inventory-part-summary strong {
  display: block;
}

.inventory-part-summary span {
  color: var(--muted);
  font-size: 12px;
}

.inventory-part-summary strong {
  margin-top: 5px;
  font-size: 1.35rem;
}

.inventory-table {
  min-width: 1180px;
}

.inventory-summary-table {
  min-width: 980px;
}

.inventory-table-wrap {
  max-height: 65vh;
  overflow: auto;
  scrollbar-gutter: stable;
}

.inventory-results-table-wrap {
  max-height: 520px;
  overscroll-behavior: contain;
}

.inventory-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  box-shadow: 0 1px 0 var(--line);
}

.inventory-table th:last-child,
.inventory-table td:last-child {
  text-align: right;
}

@media (max-width: 760px) {
  .inventory-snapshot-summary,
  .inventory-part-summary {
    grid-template-columns: 1fr;
  }

  .inventory-results-table-wrap {
    max-height: 420px;
  }
}

@media (max-width: 1100px) {
  .inventory-import-form {
    grid-template-columns: 1fr 1fr;
  }

  .inventory-import-action {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    max-width: none;
    padding-top: 0;
  }

  .inventory-search-form {
    grid-template-columns: minmax(320px, 1fr) minmax(220px, 300px);
  }

  .inventory-search-actions {
    grid-column: 1 / -1;
    justify-content: space-between;
    padding-top: 0;
  }
}

@media (max-width: 760px) {
  body.inventory-module-page > main.container {
    width: calc(100% - 16px);
  }

  .inventory-import-form {
    grid-template-columns: 1fr;
  }

  .parts-report-import-form {
    align-items: stretch;
    flex-direction: column;
  }

  .parts-report-file-grid-single {
    flex: 0 1 auto;
    width: 100%;
  }

  .parts-report-import-form .import-submit-button {
    width: 100%;
  }

  .inventory-search-form {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .inventory-search-actions {
    grid-column: auto;
    align-items: stretch;
    flex-direction: column;
  }

  .inventory-search-actions > div {
    justify-content: stretch;
  }

  .inventory-search-actions .btn {
    flex: 1;
  }

  .inventory-import-action {
    grid-column: auto;
    align-items: flex-start;
    flex-direction: column;
    padding-top: 0;
  }
}

.report-scope-fieldset legend,
.report-workorder-fieldset legend {
  padding: 0 6px;
  color: var(--ink);
  font-weight: 800;
}

.report-scope-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 10px;
  border-radius: 8px;
  cursor: pointer;
}

.report-scope-option:hover {
  background: var(--bg-soft);
}

.report-scope-option input,
.report-workorder-grid input {
  width: 18px;
  min-height: 18px;
  margin: 2px 0 0;
  accent-color: var(--brand);
}

.report-scope-option span,
.report-workorder-grid label span {
  display: grid;
  gap: 2px;
}

.report-scope-option small,
.report-workorder-grid small {
  color: var(--muted);
  font-weight: 500;
}

.report-workorder-fieldset:disabled {
  opacity: .55;
}

.report-workorder-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.report-workorder-grid label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  cursor: pointer;
}

.report-definition {
  display: grid;
  gap: 4px;
  border-left: 4px solid var(--brand);
  padding: 11px 14px;
  background: var(--brand-soft);
  color: var(--brand-dark);
}

.open-card-report-page .action-group--form { justify-content: flex-end; margin: 0; padding-top: 12px; border-top: 1px solid var(--line); }
.open-card-report-page .action-group--form .btn { min-width: 170px; box-shadow: var(--shadow-sm); }

[data-theme="dark"] .open-card-report-page .report-definition { background: color-mix(in srgb,var(--brand) 18%,var(--paper)); color: var(--ink); }
[data-theme="dark"] .open-card-report-page .selection-summary { background: linear-gradient(135deg,var(--bg-soft),var(--paper)); }

@media (max-width: 700px) {
  .report-scope-fieldset { grid-template-columns: 1fr; }
  .report-scope-fieldset legend { grid-column: auto; }
  .report-workorder-grid {
    grid-template-columns: 1fr;
  }
}

/* FEATURE: Induction-wide planning workspace */
.induction-planning-table {
  width: 100%;
  table-layout: fixed;
}

.workorder-task-table.induction-planning-table :is(th,td)[data-column="work_order"] { width: 6% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="sequence"] { width: 3% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="task_card"] { width: 10% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="description"] { width: 23% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="zone"] { width: 5% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="trade"] { width: 6% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="status"] { width: 6% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="phase"] { width: 5% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="inspection"] { width: 6% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="ndt"] { width: 3% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="notes"] { width: 8% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="assigned"] { width: 7% !important; }
.workorder-task-table.induction-planning-table :is(th,td)[data-column="comments"] { width: 12% !important; }

.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="work_order"] { width: 7% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="task_card"] { width: 13% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="description"] { width: 28% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="zone"] { width: 8% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="trade"] { width: 9% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="status"] { width: 8% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="assigned"] { width: 8% !important; }
.nonroutine-planning-table.induction-planning-table :is(th,td)[data-column="comments"] { width: 19% !important; }

/* FEATURE: Master Data planning workspace */
.filter-bar.master-planning-filters {
  grid-template-columns: minmax(240px, 2.2fr) repeat(6, minmax(0, 1fr)) max-content;
  gap: 10px;
}

.master-planning-filters > .planning-search-filter {
  margin-right: 12px;
  padding-right: 20px;
}

.master-module-page .master-table {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}

.master-module-page .master-table .select-col { width: 42px !important; }
.master-module-page .master-table :is(th,td)[data-column="task_card"] { width: auto !important; min-width: 200px; }
.master-module-page .master-table :is(th,td)[data-column="family"] { width: auto !important; }
.master-module-page .master-table :is(th,td)[data-column="description"] { width: 280px !important; min-width: 280px; }
.master-module-page .master-table :is(th,td)[data-column="trade"] { width: auto !important; }
.master-module-page .master-table :is(th,td)[data-column="zone"] { width: 140px !important; }
.master-module-page .master-table :is(th,td)[data-column="phase"] { width: auto !important; }
.master-module-page .master-table :is(th,td)[data-column="inspection"] { width: auto !important; }
.master-module-page .master-table :is(th,td)[data-column="ndt"] { width: auto !important; }
.master-module-page .master-table :is(th,td)[data-column="notes"] { width: 180px !important; min-width: 180px; }

.master-module-page .master-table :is(th,td) { min-width: 0; overflow: hidden; }
.master-module-page .master-table :is(th,td)[data-column="task_card"] { width: 200px; min-width: 200px; text-align: left; }
.master-module-page .master-table thead th[data-column="task_card"] { left: auto; white-space: nowrap !important; }
.master-module-page .master-table td:not([data-column="description"]):not([data-column="notes"]):not([data-column="zone"]) { white-space: nowrap !important; overflow-wrap: normal; }
.master-zone-number,.master-zone-name { display: block; }
.master-zone-number { white-space: nowrap; }

.master-module-page .master-table .description-cell {
  min-width: 280px;
}

.master-module-page .master-table .master-notes-cell {
  color: var(--muted);
}

@media (max-width: 1100px) {
  .filter-bar.master-planning-filters {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media (max-width: 760px) {
  .filter-bar.master-planning-filters {
    grid-template-columns: 1fr;
  }

  .master-planning-filters > .planning-search-filter {
    margin-right: 0;
    padding-right: 0;
  }
}

.induction-planning-page :is(.workorder-task-table-wrap,.nonroutine-planning-table-wrap),
.master-module-page .master-table-wrap {
  max-height: calc(100vh - 170px);
  overflow: auto;
}

.induction-planning-page :is(.workorder-task-table-wrap,.nonroutine-planning-table-wrap) {
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}

.induction-planning-page :is(.workorder-task-table-wrap,.nonroutine-planning-table-wrap):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--brand) 32%, transparent);
  outline-offset: 2px;
}

@media (max-width: 1280px) {
  .task-planning-savebar {
    flex-wrap: wrap;
  }

  .planning-table-scroll-hint {
    display: inline;
    margin-right: auto;
  }
}

.induction-planning-table thead th,
.master-module-page .master-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
}

.induction-planning-table :is(th,td) {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Keep primary Task Card and NR identifiers intact; surrounding metadata may wrap. */
.induction-planning-table td[data-column="task_card"] .nr-details-trigger,
.induction-planning-table td[data-column="task_card"] .nr-details-trigger strong {
  white-space: nowrap;
  overflow-wrap: normal;
}

/* Real cell borders stay uniform and contained across every tinted row cell. */
.induction-planning-table tbody tr:not(:last-child) > td {
  border-bottom: 2px solid var(--planning-row-separator);
}

/* Keep wide planning rows easy to track without changing table geometry. */
.induction-planning-table tbody tr[data-planning-row]:is(:hover, :focus-within) {
  position: relative;
  z-index: 2;
  outline: 3px solid var(--brand);
  outline-offset: -1.5px;
}

.induction-planning-table :is(th,td):not(:first-child) {
  border-left: 1px solid var(--planning-column-separator);
}

.induction-planning-table :is(th,td)[data-column="work_order"] {
  min-width: 0 !important;
}

.induction-planning-table :is(input,select,textarea) {
  max-width: 100%;
}

.induction-planning-table tr.status-closed,
.induction-planning-table tr.status-closed > td {
  background: #f5c2c7;
}

.induction-planning-table tr.status-closed:hover,
.induction-planning-table tr.status-closed:hover > td {
  background: #ef9da5;
}

.induction-planning-table tr.status-closed :is(input,select,textarea) {
  background: #fff4f5;
  border-color: #d7868e;
}

[data-theme="dark"] .induction-planning-table tr.status-closed,
[data-theme="dark"] .induction-planning-table tr.status-closed > td {
  background: #5a2429;
}

[data-theme="dark"] .induction-planning-table tr.status-closed:hover,
[data-theme="dark"] .induction-planning-table tr.status-closed:hover > td {
  background: #713038;
}

[data-theme="dark"] .induction-planning-table tr.status-closed :is(input,select,textarea) {
  background: #3f1d21;
  border-color: #9f525b;
}

body.highlight-technician-assignments .induction-planning-table tr > td.assigned-has-technician,
body.highlight-technician-assignments .induction-planning-table tr:hover > td.assigned-has-technician {
  background: #bfe7c9;
  color: #173d22;
}

[data-theme="dark"] body.highlight-technician-assignments .induction-planning-table tr > td.assigned-has-technician,
[data-theme="dark"] body.highlight-technician-assignments .induction-planning-table tr:hover > td.assigned-has-technician {
  background: #245438;
  color: #edfff2;
}

.induction-planning-filters .multi-select__menu {
  max-height: 280px;
  overflow-y: auto;
}

/* Optional per-user work-order grouping. Status/error styles remain dominant. */
body.work-order-color-coding tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed) > td:not(.assigned-has-technician) {
  background-color: hsl(var(--work-order-hue) 72% 48% / var(--work-order-alpha));
}

body.work-order-color-coding tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed):hover > td:not(.assigned-has-technician) {
  background-color: hsl(var(--work-order-hue) 72% 48% / var(--work-order-hover-alpha));
}

body.work-order-color-coding:not(.highlight-technician-assignments) tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed) > td.assigned-has-technician {
  background-color: hsl(var(--work-order-hue) 72% 48% / var(--work-order-alpha));
}

body.work-order-color-coding:not(.highlight-technician-assignments) tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed):hover > td.assigned-has-technician {
  background-color: hsl(var(--work-order-hue) 72% 48% / var(--work-order-hover-alpha));
}

body.work-order-color-coding tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed) > td:first-child {
  border-left: 4px solid hsl(var(--work-order-hue) 58% 42%);
}

[data-theme="dark"] body.work-order-color-coding tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed) > td:not(.assigned-has-technician) {
  background-color: hsl(var(--work-order-hue) 62% 60% / var(--work-order-dark-alpha));
}

[data-theme="dark"] body.work-order-color-coding tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed):hover > td:not(.assigned-has-technician) {
  background-color: hsl(var(--work-order-hue) 64% 62% / var(--work-order-dark-hover-alpha));
}

[data-theme="dark"] body.work-order-color-coding:not(.highlight-technician-assignments) tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed) > td.assigned-has-technician {
  background-color: hsl(var(--work-order-hue) 62% 60% / var(--work-order-dark-alpha));
}

[data-theme="dark"] body.work-order-color-coding:not(.highlight-technician-assignments) tr[data-work-order-color]:not(.status-closed):not(.is-archived):not(.row-archived):not(.autosave-failed):hover > td.assigned-has-technician {
  background-color: hsl(var(--work-order-hue) 64% 62% / var(--work-order-dark-hover-alpha));
}

@media print, (forced-colors: active) {
  body.work-order-color-coding tr[data-work-order-color] > td {
    background: transparent !important;
    border-left-color: currentColor !important;
  }
}

.search-control {
  display: flex;
  align-items: stretch;
  gap: 7px;
}

.search-control input {
  min-width: 0;
  flex: 1;
}

.search-control__clear,
.search-control__submit {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--brand-dark);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.search-control__submit {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}

.search-control__clear:disabled {
  opacity: .45;
  cursor: default;
}

.import-cards-card {
  max-width: 1320px;
}

.import-cards-grid {
  display: grid;
  grid-template-columns: minmax(180px, .75fr) repeat(2, minmax(280px, 1fr));
  gap: 18px;
  align-items: center;
}

.import-cards-grid-header {
  padding: 0 14px 10px;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.import-cards-row {
  padding: 16px 14px;
  border-top: 1px solid var(--line);
}

.import-cards-row label {
  margin: 0;
}

.import-cards-order {
  display: grid;
  gap: 2px;
}

.import-cards-order strong {
  font-size: 17px;
}

.import-cards-order span,
.import-cards-order small {
  color: var(--muted);
}

.import-cards-actions {
  margin-top: 20px;
}

@media (max-width: 800px) {
  .import-cards-grid {
    grid-template-columns: 1fr;
  }

  .import-cards-grid-header {
    display: none;
  }
}
/* FEATURE: Non-Routine material planning */
.parts-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.parts-kpis .card{display:grid;gap:.35rem}.parts-kpis strong{font-size:1.8rem}.nr-material-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.nr-material-overview div{display:grid;gap:.3rem}.nr-material-overview span{color:var(--muted);font-size:.82rem}.nr-material-overview .wide{grid-column:1/-1}.parts-section-heading,.parts-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.parts-requisition-list{display:grid;gap:1rem;margin:1rem 0}.parts-requisition-card{display:grid;gap:1.25rem}.parts-form-layout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end}.parts-form-layout label{display:grid;gap:.35rem}.parts-form-layout .wide{grid-column:span 2}.parts-item{border-top:1px solid var(--border);padding-top:1rem;display:grid;gap:.85rem}.parts-item-heading h3{margin:0}.parts-status{display:block;width:max-content;margin-top:.25rem;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;background:var(--surface-muted);color:var(--muted)}.parts-status-ordered,.parts-status-partial,.parts-status-received{background:#fff3cd;color:#765600}.parts-status-overdue{background:#fde2e2;color:#9a2424}.parts-status-available,.parts-status-picklisted{background:#dff4e5;color:#176b35}.parts-shipment-form{display:grid;grid-template-columns:repeat(8,minmax(100px,1fr));gap:.5rem;align-items:center}.parts-shipment-form span{display:grid;gap:.3rem}.parts-add-panel{margin-top:.75rem}.parts-add-panel>summary{width:max-content;list-style:none}.parts-add-panel[open]>summary{margin-bottom:1rem}.parts-new-requisition{margin-top:1rem}.parts-new-requisition>summary{cursor:pointer}.parts-page tr:target,.nonroutine-module-page tr:target{scroll-margin-top:6rem}
@media(max-width:900px){.parts-kpis,.nr-material-overview,.parts-form-layout{grid-template-columns:1fr 1fr}.parts-shipment-form{grid-template-columns:1fr 1fr}.parts-kpis{grid-template-columns:1fr 1fr}}@media(max-width:600px){.parts-kpis,.nr-material-overview,.parts-form-layout{grid-template-columns:1fr}.parts-form-layout .wide{grid-column:auto}}

.parts-status-requisitioned {
  border: 1px solid #efb4b4;
  background: #fde2e2;
  color: #9a2424;
}

.parts-status-ordered {
  border: 1px solid #e8ca71;
  background: #fff3cd;
  color: #765600;
}

.parts-status-available,
.parts-status-received {
  border: 1px solid #9bd4aa;
  background: #dff4e5;
  color: #176b35;
}

[data-theme="dark"] .parts-status-requisitioned,
[data-theme="dark"] .parts-status-overdue {
  border-color: #9f4b52;
  background: rgba(127, 29, 29, .46);
  color: #fecaca;
}

[data-theme="dark"] .parts-status-ordered,
[data-theme="dark"] .parts-status-partial {
  border-color: #8f702f;
  background: rgba(120, 79, 13, .42);
  color: #fde7a3;
}

[data-theme="dark"] .parts-status-available,
[data-theme="dark"] .parts-status-picklisted,
[data-theme="dark"] .parts-status-received {
  border-color: #347a56;
  background: rgba(20, 83, 45, .48);
  color: #bbf7d0;
}

[data-theme="dark"] .parts-status-cancelled {
  border: 1px solid #53657a;
  background: rgba(30, 41, 59, .72);
  color: #cbd5e1;
}

.parts-page > main.container {
  display: grid;
  gap: 10px;
  width: calc(100% - 24px);
  max-width: none;
  margin: 24px 12px 24px;
}

.parts-page > main.container > * { width: 100%; max-width: none; }
.parts-page > main.container > :is(.page-heading,.alert,.card,.parts-kpis,form,section) { margin: 0; }
.parts-page-heading { margin-bottom: 0; }
.parts-page .inventory-import-card { padding: 8px 14px; }
.parts-page .inventory-import-card[open] { padding: 14px; }
.parts-page .inventory-import-card summary { min-height: 30px; padding: 0; align-items: center; }
.parts-page .parts-import-summary { margin: 0; padding: 8px 14px; }
.parts-page .parts-kpis { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; margin: 0; }
.parts-page .parts-kpis .card { min-height: 76px; padding: 12px 16px; align-content: center; }
.parts-page .parts-kpis strong { font-size: 1.45rem; }
.parts-workspace { gap: 0; }
.parts-workspace-panel { overflow: hidden; }
.parts-workspace-toolbar { padding: 0; }
.parts-workspace-toolbar h2 { margin: 0 0 2px; }
.parts-search-form { display: grid; grid-template-columns: minmax(320px,640px) auto auto; justify-content: start; gap: 10px; align-items: center; margin: 0 0 16px; padding: 0; }
.parts-search-form label { margin: 0; white-space: nowrap; }
.parts-search-form :is(input,.btn) { min-height: 38px; }
.parts-search-form .btn { min-width: 82px; }
.parts-dashboard-table-wrap { width: 100%; min-height: 420px; max-height: calc(100vh - 170px); overflow-y: auto; overflow-x: hidden; border: 1px solid var(--line); border-radius: 10px; }
.parts-dashboard-table { width: 100%; min-width: 0; table-layout: fixed; }
.parts-dashboard-table :is(th,td) { min-width: 0; padding: 9px 7px; vertical-align: middle; overflow: hidden; overflow-wrap: anywhere; }
.parts-dashboard-table th { top: 0; padding-block: 12px; white-space: nowrap; }
.parts-dashboard-table :is(th,td):not(:first-child) { border-left: 1px solid var(--planning-column-separator); }
.parts-dashboard-table :is(th,td):nth-child(1) { width: 6%; }
.parts-dashboard-table :is(th,td):nth-child(2) { width: 10%; }
.parts-dashboard-table :is(th,td):nth-child(3) { width: 7%; }
.parts-dashboard-table :is(th,td):nth-child(4) { width: 8%; }
.parts-dashboard-table :is(th,td):nth-child(5) { width: 7%; }
.parts-dashboard-table :is(th,td):nth-child(6) { width: 5%; }
.parts-dashboard-table :is(th,td):nth-child(7) { width: 5%; }
.parts-dashboard-table :is(th,td):nth-child(8) { width: 7%; }
.parts-dashboard-table :is(th,td):nth-child(9) { width: 7%; }
.parts-dashboard-table :is(th,td):nth-child(10) { width: 7%; }
.parts-dashboard-table :is(th,td):nth-child(11) { width: 8%; }
.parts-dashboard-table :is(th,td):nth-child(12) { width: 9%; }
.parts-dashboard-table :is(th,td):nth-child(13) { width: 7%; }
.parts-dashboard-table :is(th,td):nth-child(14) { width: 7%; }
.parts-reference-core { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.parts-warning-icon { color: var(--warn); }
.parts-task-reference small,
.parts-unmatched-reference small { display: block; margin-top: 3px; color: var(--muted); line-height: 1.35; overflow-wrap: anywhere; }
.parts-task-reference { display: block; }
.parts-tracking-link { white-space: nowrap; }
.parts-task-details { display: flex !important; flex-wrap: wrap; gap: 2px 5px; }
.parts-task-details > span { white-space: nowrap; }
.parts-picklist-list { display: flex; flex-wrap: wrap; gap: 4px; }
.parts-picklist-badge { display: inline-flex; padding: 2px 6px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-muted); font-size: .72rem; font-weight: 750; line-height: 1.25; white-space: nowrap; }
.parts-picklist-open { border-color: #86c99a; background: #dff4e5; color: #176b35; }
.parts-picklist-closed { border-color: #efb4b4; background: #fde2e2; color: #9a2424; }
.parts-picklist-cancel { border-color: #aab6c5; background: #edf1f5; color: #526273; }
[data-theme="dark"] .parts-picklist-open { border-color: #347a56; background: rgba(20,83,45,.48); color: #bbf7d0; }
[data-theme="dark"] .parts-picklist-closed { border-color: #9f4b52; background: rgba(127,29,29,.46); color: #fecaca; }
[data-theme="dark"] .parts-picklist-cancel { border-color: #53657a; background: rgba(30,41,59,.72); color: #cbd5e1; }
.parts-notes-cell { line-height: 1.35; overflow-wrap: anywhere; }
.parts-dashboard-table .parts-status { max-width: 100%; margin: 0; white-space: nowrap; }
.parts-pagination { margin: 0; padding: 14px 0 0; border-top: 0; }

@media (max-width: 1400px) {
  .parts-dashboard-table-wrap { overflow-x: auto; }
  .parts-dashboard-table { width: max-content; min-width: 100%; table-layout: auto; }
  .parts-dashboard-table :is(th,td) { width: auto; white-space: nowrap; }
  .parts-dashboard-table :is(th,td):nth-child(2) { width: 200px; min-width: 200px; max-width: 200px; }
  .parts-dashboard-table td:nth-child(2) small { white-space: normal; overflow-wrap: normal; }
  .parts-dashboard-table :is(th,td):nth-child(5) { width: 200px; min-width: 200px; white-space: normal; }
  .parts-dashboard-table :is(th,td):nth-child(13) { width: 180px; min-width: 180px; white-space: normal; }
}

@media (max-width: 1200px) {
  .parts-page .parts-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .parts-page > main.container { width: calc(100% - 20px); margin-left: 10px; margin-right: 10px; }
  .parts-page .parts-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .parts-search-form { grid-template-columns: 1fr 1fr; }
  .parts-search-form label,
  .parts-search-form input { grid-column: 1/-1; }
  .parts-search-form .btn { width: 100%; }
  .parts-dashboard-table-wrap { min-height: 0; max-height: none; }
}

.nr-detail-heading { align-items: flex-end; margin-bottom: 14px; }
.nr-detail-heading h1 { margin-bottom: 2px; }
.nr-detail-heading p { margin: 0; }
.nr-detail-context,.nr-detail-summary { margin-bottom: 14px; }
.nr-detail-summary .exception-summary-card { cursor: default; }
.nr-detail-summary .exception-summary-card strong { max-width: 220px; overflow: hidden; font-size: 1.3rem; text-overflow: ellipsis; white-space: nowrap; }

.nr-detail-workspace {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(360px,.75fr);
  gap: 14px;
  margin-bottom: 18px;
}

.nr-detail-panel { min-width: 0; padding: 0; overflow: hidden; }
.nr-detail-panel > header { padding: 15px 18px 13px; border-bottom: 1px solid var(--line); background: var(--bg-soft); }
.nr-detail-panel > header h2,.nr-detail-panel > header p { margin: 0; }
.nr-detail-panel > header h2 { font-size: 1.05rem; }
.nr-detail-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
.nr-detail-facts > div { min-width: 0; padding: 13px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.nr-detail-facts > div:nth-child(2n) { border-right: 0; }
.nr-detail-facts dt,.nr-detail-copy-grid article > span { display: block; margin-bottom: 4px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.nr-detail-facts dd { margin: 0; overflow-wrap: anywhere; font-weight: 700; }

.nr-classification-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 14px 18px 18px; }
.nr-classification-grid span { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--bg-soft); }
.nr-classification-grid span.is-active { color: var(--brand); border-color: color-mix(in srgb,var(--brand) 32%,var(--line)); background: var(--brand-soft); }
.nr-classification-grid small { color: var(--muted); font-weight: 700; }
.nr-detail-narrative { grid-column: 1/-1; }
.nr-detail-copy-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); }
.nr-detail-copy-grid article { min-height: 120px; padding: 17px 18px; border-right: 1px solid var(--line); }
.nr-detail-copy-grid article:last-child { border-right: 0; }
.nr-detail-copy-grid p { margin: 0; line-height: 1.55; }

.nr-material-overview {
  padding: 0;
  overflow: hidden;
}

.nr-material-overview > div {
  padding: 18px 22px;
  border-right: 1px solid var(--line);
}

.nr-material-overview > div:nth-child(3) {
  border-right: 0;
}

.nr-material-overview > .wide {
  padding-top: 16px;
  border-top: 1px solid var(--line);
  border-right: 0;
  background: var(--bg-soft);
}

.nr-source-details {
  margin-top: 14px;
}

.nr-source-details > summary {
  cursor: pointer;
  color: var(--brand);
}

.nr-source-details[open] > summary {
  margin-bottom: 20px;
}

.parts-new-requisition {
  margin: 18px 0;
  padding: 0;
  border: 1px dashed var(--brand);
  background: var(--brand-soft);
  overflow: hidden;
}

.parts-new-requisition > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 22px;
  list-style: none;
  cursor: pointer;
  color: var(--brand-dark);
}

.parts-new-requisition > summary::-webkit-details-marker {
  display: none;
}

.parts-new-requisition > summary span:first-child {
  display: grid;
  gap: 3px;
}

.parts-new-requisition > summary small {
  color: var(--muted);
  font-weight: 500;
}

.parts-new-requisition > summary > span:last-child {
  font-size: 24px;
  transition: transform .18s ease;
}

.parts-new-requisition[open] > summary > span:last-child {
  transform: rotate(45deg);
}

.requisition-compact-form {
  display: grid;
  grid-template-columns: minmax(200px,.75fr) minmax(155px,.5fr) minmax(150px,auto) minmax(260px,1.3fr) auto;
  gap: 14px;
  align-items: end;
  padding: 18px 22px;
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.requisition-compact-form > label:not(.parts-aog-toggle) {
  display: grid;
  gap: 6px;
  margin: 0;
}

.parts-aog-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin: 0;
  padding: 8px 13px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--bg-soft);
  cursor: pointer;
}

.parts-aog-toggle:has(input:checked) {
  border-color: var(--danger);
  background: var(--danger-soft);
  color: var(--danger);
}

.parts-aog-toggle input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--danger);
}

.parts-aog-toggle span {
  display: grid;
  line-height: 1.1;
}

.parts-aog-toggle small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
}

.parts-requisition-card {
  padding: 0;
  border-top: 4px solid var(--brand);
  overflow: hidden;
}

.parts-requisition-card.is-aog {
  border-top-color: var(--danger);
}

.parts-requisition-card > .parts-section-heading {
  padding: 20px 22px 4px;
}

.parts-requisition-card > .requisition-edit-form {
  margin: 0 22px 6px;
  padding: 14px 0;
  border-top: 0;
  border-bottom: 1px solid var(--line);
}

.requisition-title-line {
  display: flex;
  align-items: center;
  gap: 9px;
}

.requisition-title-line .eyebrow {
  margin: 0;
}

.parts-aog-badge {
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--danger-soft);
  color: var(--danger);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .05em;
}

.parts-requisition-card > .parts-item,
.parts-requisition-card > .parts-add-panel {
  margin-right: 22px;
  margin-left: 22px;
}

.parts-item {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--bg-soft);
}

.parts-item + .parts-item {
  margin-top: 4px;
}

.parts-item > .parts-form-layout {
  padding: 14px;
  border-radius: var(--radius-sm);
  background: var(--paper);
}

.parts-shipments-table {
  min-width: 1120px;
}

.parts-shipments-table th {
  white-space: nowrap;
  font-size: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.parts-shipment-form input {
  min-width: 0;
}

.parts-requisition-card > .parts-add-panel:last-child {
  margin-bottom: 22px;
}

@media (max-width: 1050px) {
  .nr-detail-workspace { grid-template-columns: 1fr; }
  .nr-detail-narrative { grid-column: auto; }
  .nr-detail-copy-grid { grid-template-columns: 1fr; }
  .nr-detail-copy-grid article { border-right: 0; border-bottom: 1px solid var(--line); }
  .nr-detail-copy-grid article:last-child { border-bottom: 0; }

  .requisition-compact-form {
    grid-template-columns: 1fr 180px;
  }

  .requisition-notes {
    grid-column: 1 / -1;
  }
}

@media (max-width: 650px) {
  .nr-detail-heading { align-items: stretch; }
  .nr-detail-heading .action-group,.nr-detail-heading .btn { width: 100%; }
  .nr-detail-facts,.nr-classification-grid { grid-template-columns: 1fr; }
  .nr-detail-facts > div { border-right: 0; }

  .nr-material-overview > div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .requisition-compact-form {
    grid-template-columns: 1fr;
  }

  .requisition-notes {
    grid-column: auto;
  }

  .parts-requisition-card > .parts-section-heading,
  .parts-requisition-card > .requisition-edit-form,
  .parts-requisition-card > .parts-item,
  .parts-requisition-card > .parts-add-panel {
    margin-right: 14px;
    margin-left: 14px;
  }
}
.kpi-risk-page main { max-width: 1440px; }
.kpi-risk-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.kpi-risk-summary-card { display:flex; flex-direction:column; gap:.25rem; min-width:0; padding:1rem 1.1rem; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-left:5px solid var(--line-strong); border-radius:12px; text-decoration:none; box-shadow:var(--shadow-sm); }
.kpi-risk-summary-card:hover { border-color:var(--brand); transform:translateY(-1px); }
.kpi-risk-summary-card strong { font-size:1.8rem; line-height:1; }
.kpi-risk-summary-card small { color:var(--muted); }
.kpi-risk-summary-card.priority-high { border-left-color:#b42318; }
.kpi-risk-summary-card.priority-medium { border-left-color:#eab308; }
.kpi-risk-summary-card.priority-low { border-left-color:#2563eb; }
.kpi-risk-summary-card.priority-other { border-left-color:#667085; }
.kpi-concentration-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; align-items:stretch; margin-bottom:1rem; }
.kpi-concentration-grid > .card { height:100%; padding:1rem 1.1rem; }
.kpi-section-heading h2 { margin:.15rem 0 .8rem; }
.kpi-concentration-list { display:grid; gap:.45rem; }
.kpi-concentration-list div { display:flex; justify-content:space-between; gap:1rem; padding:.45rem .6rem; background:var(--surface-soft); border-radius:8px; }
.kpi-review-progress-list a { display:flex; justify-content:space-between; gap:1rem; padding:.45rem .6rem; color:var(--ink); background:var(--surface-soft); border-radius:8px; text-decoration:none; }
.kpi-review-progress-list a:hover { color:var(--brand); background:var(--brand-soft); }
.filter-bar.kpi-risk-filters { display:grid; grid-template-columns:minmax(240px,2fr) repeat(5,minmax(0,1fr)) max-content; gap:10px; align-items:end; }
.filter-bar.kpi-risk-filters > .planning-search-filter { min-width:0; margin-right:12px; padding-right:20px; }
.kpi-risk-filters .search-control { width:100%; }
.kpi-risk-list { display:grid; gap:.45rem; margin-top:1rem; max-height:calc(100vh - 170px); overflow:auto; overscroll-behavior:contain; }
.kpi-risk-list-header { position:sticky; top:0; z-index:4; display:grid; grid-template-columns:5.8rem minmax(260px,1fr) 140px 230px 150px; gap:0; padding:.25rem 1rem; color:var(--muted); background:var(--surface); font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.kpi-risk-list-header span { padding:0 .8rem .1rem; }
.kpi-risk-item { --risk-color:#667085; border:1px solid var(--line); border-left:5px solid var(--risk-color); border-radius:10px; background:var(--surface); overflow:hidden; }
.kpi-risk-item.priority-high { --risk-color:#b42318; }
.kpi-risk-item.priority-medium { --risk-color:#ca8a04; }
.kpi-risk-item.priority-low { --risk-color:#2563eb; }
.kpi-risk-item > summary { display:grid; grid-template-columns:5.8rem minmax(260px,1fr) 140px 230px 150px; align-items:center; gap:0; padding:.65rem 1rem; cursor:pointer; list-style:none; }
.kpi-risk-item > summary::-webkit-details-marker { display:none; }
.kpi-risk-item > summary:hover { background:var(--surface-soft); }
.kpi-priority-mark { display:grid; place-items:center; width:1.7rem; height:1.7rem; border:2px solid var(--risk-color); color:var(--risk-color); border-radius:50%; font-weight:800; font-size:.78rem; }
.kpi-risk-indicators { display:flex; align-items:center; gap:.35rem; }
.kpi-requirement-mark { display:grid; place-items:center; width:1.45rem; height:1.45rem; border-radius:5px; color:var(--brand); background:var(--brand-soft); font-size:.7rem; font-weight:850; }
.kpi-requirement-mark.tooling { color:#7c3aed; background:#f3e8ff; }
.kpi-risk-identity { display:flex; flex-direction:column; min-width:0; padding:0 .8rem; }
.kpi-risk-identity > span { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kpi-risk-table-cell { align-self:stretch; display:flex; align-items:center; min-width:0; padding:0 .8rem; border-left:1px solid var(--line); color:var(--muted); font-size:.86rem; }
.kpi-risk-table-cell > small { display:none; }
.kpi-risk-table-cell > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kpi-review-state { color:var(--ink); font-weight:700; }
.status-ready .kpi-review-state { color:var(--ok); }
.status-concern .kpi-review-state,.status-action_required .kpi-review-state { color:var(--danger); }
.kpi-risk-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.42fr); gap:.65rem; padding:.7rem; border-top:1px solid var(--line); background:var(--surface-soft); }
.kpi-detail-section { padding:.7rem; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.kpi-detail-heading { margin-bottom:.5rem; }
.kpi-detail-heading h3 { margin:.15rem 0 0; font-size:1.02rem; }
.kpi-risk-facts { display:grid; grid-template-columns:repeat(4,minmax(105px,1fr)); gap:.4rem; margin:0; }
.kpi-risk-facts div { min-width:0; }
.kpi-risk-facts div { padding:.4rem .55rem; border-radius:8px; background:var(--surface-soft); }
.kpi-risk-facts div.is-alert { background:var(--danger-soft); }
.kpi-risk-facts dt { color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.kpi-risk-facts dd { margin:.25rem 0 0; font-weight:650; overflow-wrap:anywhere; }
.kpi-risk-resources { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.kpi-risk-resources article { padding:.55rem; border:1px solid var(--line); border-radius:8px; background:var(--surface-soft); }
.kpi-risk-resources article.has-content { border-color:color-mix(in srgb,var(--brand) 35%,var(--line)); background:var(--brand-soft); }
.kpi-risk-resources article.is-empty { color:var(--muted); }
.kpi-resource-title { display:flex; align-items:center; gap:.5rem; margin-bottom:.45rem; }
.kpi-resource-title span { display:grid; place-items:center; width:1.55rem; height:1.55rem; border-radius:6px; color:var(--brand); background:var(--brand-soft); font-size:.72rem; font-weight:800; }
.kpi-resource-title h4,.kpi-risk-resources p { margin:0; }
.kpi-risk-resources small { color:var(--muted); }
.kpi-review-section { border-left:4px solid var(--brand); }
.kpi-review-section { grid-column:2; grid-row:1 / span 2; }
.kpi-review-form { display:grid; grid-template-columns:1fr; gap:.65rem; align-items:start; }
.kpi-review-form label { display:block; margin-bottom:.3rem; font-weight:700; }
.kpi-review-form select,.kpi-review-form textarea { width:100%; }
.kpi-row-save-status { grid-column:1/-1; min-height:1.1rem; }
@media (max-width:1100px) {
  .kpi-risk-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kpi-concentration-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filter-bar.kpi-risk-filters { grid-template-columns:repeat(3,minmax(150px,1fr)); }
  .filter-bar.kpi-risk-filters > .planning-search-filter { margin-right:0; padding-right:0; }
  .kpi-risk-list-header { display:none; }
  .kpi-risk-item > summary { grid-template-columns:5.8rem minmax(0,1fr) minmax(110px,.35fr) minmax(150px,.55fr); }
  .kpi-risk-zone { display:none; }
  .kpi-risk-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .kpi-risk-detail { grid-template-columns:1fr; }
  .kpi-review-section { grid-column:auto; grid-row:auto; }
  .kpi-review-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kpi-planning-note { grid-column:1/-1; }
}
@media (max-width:760px) {
  .kpi-risk-summary,.kpi-concentration-grid,.filter-bar.kpi-risk-filters,.kpi-risk-resources,.kpi-review-form { grid-template-columns:1fr; }
  .kpi-risk-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kpi-risk-item > summary { grid-template-columns:5.8rem minmax(0,1fr); }
  .kpi-risk-list { max-height:none; overflow:visible; }
  .kpi-risk-table-cell { grid-column:2; align-self:auto; padding:.35rem .8rem 0; border-left:0; }
  .kpi-risk-table-cell > small { display:inline; flex:0 0 6rem; color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
  .kpi-risk-zone { display:flex; }
  .kpi-planning-note { grid-column:auto; }
}

/* FEATURE: Embedded Task Card PDF viewer */
body.task-pdf-modal-open { overflow: hidden; }
.task-pdf-dialog {
  width: min(1280px, calc(100vw - 24px));
  height: calc(100vh - 8px);
  height: calc(100dvh - 8px);
  max-width: none;
  max-height: none;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--paper);
  color: var(--ink);
}
.task-pdf-dialog[open] { display: flex; flex-direction: column; }
.task-pdf-dialog::backdrop { background: rgb(0 0 0 / .55); }
.task-pdf-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--line);
}
.task-pdf-dialog iframe { display: block; flex: 1; min-height: 0; width: 100%; border: 0; }
.task-card-pdf-embedded { margin: 0; }
.task-card-pdf-embedded main { width: 100%; max-width: none; margin: 0; padding: 12px; }

.task-card-pdf-embedded .pdf-range-viewer { padding: 12px; }

.task-pdf-dialog-header h2 { margin: 0; font-size: 18px; }
