/* Archivio V4.2: tema approvato, condiviso da pagine e finestre.
  Solo presentazione a schermo; layout operativo e stampa restano nei fogli originali. */
@media screen {
  :root {
    --v4-canvas:#f2f6f8;
    --v4-panel-head:#f5f8fa;
    --v4-line:#d2dfe5;
    --v4-line-strong:#b9ccd5;
    --v4-ink:#20323d;
    --v4-muted:#607681;
    --v4-radius:8px;
    --v4-shadow:0 1px 3px rgba(24,62,75,.055);
    --ui-font-heading:Bahnschrift,"Segoe UI",sans-serif;
    --ui-font-text:"Segoe UI",Arial,sans-serif;
  }
  body { font-family:var(--ui-font-text); }
  .app-header { border-radius:0; }
  .app-header .brand strong { font-size:14px; font-weight:650; line-height:1.25; }
  .app-header .brand small { margin-top:4px; font-size:10px; }
  .app-header .nav-section-label { font-size:9px; font-weight:600; letter-spacing:.11em; }
  .app-header .tabs .tab { font-family:var(--ui-font-text); font-size:12px; font-weight:600; letter-spacing:0; }
  .app-header .tab.is-active { background:rgba(255,255,255,.14); box-shadow:inset 3px 0 #92d9f7; }
  .app-header .session-user { font-size:11px; font-weight:500; }
  .app-header .tab .count { font-weight:600; }

  .view > :is(.alerts-heading,.page-heading,.fleet-heading,.fleet-availability-heading,.personnel-heading,.material-heading) h1 {
    font-family:var(--ui-font-heading);
    font-size:22px;
    font-weight:600;
    letter-spacing:0;
  }
  #alerts-view .alerts-heading h1,
  #fleet-availability-view .fleet-availability-heading h1,
  #personnel-management-view > .personnel-heading h1 { font-size:22px; font-weight:600; }

  #alerts-view .alerts-dashboard-heading p,
  #alerts-view .alerts-calendar-panel > .alerts-dashboard-heading > p,
  #fleet-availability-view :is(.fleet-availability-fleet,.fleet-availability-work,.fleet-availability-actions > section) > h2,
  #personnel-management-view :is(.email-card-heading,.scheduled-plan-form-heading,.scheduled-plan-list-heading,.scheduled-plan-files-heading) :is(h2,h3),
  #material-management-view :is(.material-section-heading,.material-panel) h2 {
    color:var(--v4-ink);
    font-family:var(--ui-font-heading);
    font-size:14px;
    font-weight:600;
    line-height:1.2;
    letter-spacing:0;
  }
  #alerts-view .alerts-dashboard-heading p::before { background:#77bfd5; height:14px; width:3px; }
  #alerts-view .alerts-operational-summary small { font-family:var(--ui-font-text); font-size:11px; font-weight:600; }
  #alerts-view .alerts-operational-summary strong { font-family:var(--ui-font-heading); font-size:28px; font-weight:600; line-height:1.1; }
  #alerts-view .alerts-operational-summary span { font-size:10px; font-weight:400; }
  #alerts-view .alerts-operational-summary article { min-height:88px; border-left-width:3px; gap:3px; }
  #alerts-view .alerts-operational-summary article::after { border:0; border-radius:7px; opacity:1; }
  #alerts-view .alerts-operational-summary .is-attention::after { background:#fff4e1; }
  #alerts-view .alerts-operational-summary :is(.is-corrective,.is-out-service)::after { background:#fff0f2; }
  #alerts-view .alerts-operational-summary .is-scheduled::after { background:#eaf5fa; }

  #alerts-view .fleet-alert-table thead th {
    color:#415866;
    background:#f1f5f7;
    font-family:var(--ui-font-text);
    font-size:10px;
    font-weight:600;
    line-height:1.2;
    letter-spacing:0;
  }
  #alerts-view .fleet-alert-table tbody td {
    color:var(--v4-ink);
    font-family:var(--ui-font-text);
    font-size:12px;
    font-weight:500;
    border-bottom-color:#e3ebef;
  }
  #alerts-view .alerts-forecast-panel .fleet-alert-table :is(th,td) { padding-left:5px; padding-right:5px; }
  #alerts-view .alerts-forecast-panel .fleet-alert-table th { height:38px; }
  #alerts-view .alerts-forecast-panel .fleet-alert-table td { height:31px; }
  #alerts-view .fleet-alert-table tbody tr:nth-child(even) { background:#fafcfd; }
  #alerts-view .fleet-alert-table tbody tr:hover { background:#eaf5f9; }
  #alerts-view .dashboard-notice-row { padding:9px 10px; font-size:12px; }
  #alerts-view .dashboard-notice-row strong { font-family:var(--ui-font-text); font-size:12px; font-weight:600; }
  #alerts-view .dashboard-notice-row small { color:var(--v4-muted); font-size:11px; font-weight:400; }
  #alerts-view .dashboard-notice-status { font-family:var(--ui-font-text); font-size:10px; font-weight:600; border-radius:4px; }
  #alerts-view .alerts-calendar-panel .calendar-header-navigation strong,
  #alerts-view .alerts-calendar-panel #open-forecast-calendar-dialog span { font-family:var(--ui-font-text); font-size:10px; font-weight:500; letter-spacing:0; }
  #alerts-view .alerts-calendar-panel #open-forecast-calendar-dialog { border-radius:5px; }
  #alerts-view .forecast-calendar-day { color:var(--v4-ink); font-family:var(--ui-font-text); font-weight:500; }
  #alerts-view .forecast-calendar-weekdays { background:#f1f5f7; }
  #alerts-view .dashboard-depot-row { grid-template-columns:36px minmax(0,1fr) auto; gap:10px; padding:8px 10px; border-radius:6px; box-shadow:none; }
  #alerts-view button.dashboard-depot-row { cursor:pointer; }
  #alerts-view button.dashboard-depot-row:hover { border-color:var(--v4-primary); background:var(--v4-hover); }
  #alerts-view button.dashboard-depot-row:focus-visible { outline:2px solid var(--v4-primary); outline-offset:1px; }
  #alerts-view .dashboard-depot-train-icon { width:36px; height:36px; }
  #alerts-view .dashboard-depot-train-icon img { width:24px; height:24px; }
  #alerts-view .dashboard-depot-copy strong { font-family:var(--ui-font-text); font-size:13px; font-weight:600; }
  #alerts-view .dashboard-depot-copy :is(small,em) { font-size:11px; font-weight:400; }
  #alerts-view .dashboard-depot-status { display:grid; justify-items:end; gap:3px; }
  #alerts-view .dashboard-depot-status em { color:#74868d; font:400 11px var(--ui-font-text); white-space:nowrap; }

  #fleet-availability-view .fleet-availability-fleet > h2,
  #fleet-availability-view .fleet-availability-actions > section > h2 {
    background:var(--v4-panel-head);
    min-height:40px;
    box-sizing:border-box;
    padding-top:11px;
    padding-bottom:11px;
  }
  #fleet-availability-view .fleet-availability-train { border-color:var(--v4-line); border-radius:6px; }
  #fleet-availability-view .fleet-availability-train.is-selected { border-color:var(--v4-primary); }
  #fleet-availability-view .fleet-availability-train-data strong { font-family:var(--ui-font-text); font-size:13px; font-weight:600; }
  #fleet-availability-view :is(.fleet-availability-info,.fleet-availability-deadline) strong { font-family:var(--ui-font-text); font-size:14px; font-weight:600; }
  #fleet-availability-view :is(.fleet-availability-info,.fleet-availability-deadline) small { font-size:10px; font-weight:400; }
  #fleet-availability-view .fleet-work-orders-heading h2 { font-family:var(--ui-font-heading); font-size:14px; font-weight:600; }
  #fleet-availability-view .fleet-inline-reasons button,
  #fleet-availability-view .fleet-inline-other-reasons summary { font-size:12px; font-weight:600; box-shadow:none; border-radius:5px; }

  /* Gestione Servizi: spazio stabile per tre file di schede da 82px. */
  #fleet-availability-view .fleet-availability-fleet { padding:12px; }
  #fleet-availability-view .fleet-availability-toolbar { margin-bottom:10px; }
  #fleet-availability-view .fleet-availability-toolbar h2 {
    font-family:var(--ui-font-heading); font-size:14px; font-weight:600; line-height:1.2;
  }
  #fleet-availability-view .fleet-availability-trains {
    height:266px; min-height:266px; max-height:266px; row-gap:10px; overflow-y:auto;
  }
  #fleet-availability-view .fleet-availability-train-data :is(small,em),
  #fleet-availability-view .fleet-availability-deadline > em {
    font-size:10px; line-height:1.25;
  }
  #fleet-availability-view .fleet-availability-actions > section:first-child { padding:12px; }
  #fleet-availability-view .fleet-availability-actions > section:first-child {
    background:linear-gradient(to bottom,
      var(--v4-panel-head) 0 43px,
      var(--v4-line) 43px 44px,
      var(--v4-panel) 44px 100%);
  }
  #fleet-availability-view .fleet-availability-actions > section:first-child > h2 {
    display:flex; align-items:center; margin:-12px -12px 0; padding:10px 12px;
    height:44px; min-height:44px; border-bottom:1px solid var(--v4-line);
  }
  #fleet-availability-view .fleet-work-orders-heading {
    box-sizing:border-box; min-height:44px; padding:6px 12px;
  }
  #fleet-availability-view .fleet-availability-actions > .fleet-availability-work {
    padding:0; container:service-orders / inline-size;
  }
  @container service-orders (max-width:640px) {
    #fleet-availability-view .fleet-work-order-row {
      grid-template-columns:43px minmax(100px,1fr) minmax(114px,1fr) 48px;
      grid-template-areas:"label code status open" "label date progress open";
      gap:8px 6px; padding:10px 8px;
    }
    #fleet-availability-view .fleet-work-order-label { grid-area:label; margin:0; }
    #fleet-availability-view .fleet-work-order-code { grid-area:code; }
    #fleet-availability-view .fleet-work-order-date { grid-area:date; }
    #fleet-availability-view .fleet-work-order-status { grid-area:status; margin:0; }
    #fleet-availability-view .fleet-work-order-progress { grid-area:progress; }
    #fleet-availability-view :is(.fleet-work-order-code,.fleet-work-order-date,.fleet-work-order-progress) {
      min-height:28px; padding:0; border:0;
    }
    #fleet-availability-view .fleet-work-order-open { grid-area:open; margin:0; }
  }
  #fleet-availability-view .fleet-availability-state { margin:12px 0; }
  #fleet-availability-view .fleet-availability-actions { --fleet-service-row-height:60px; }
  #fleet-availability-view .fleet-work-order-row { min-height:var(--fleet-service-row-height); }
  #fleet-availability-view .fleet-work-orders-empty {
    display:grid; box-sizing:border-box; min-height:var(--fleet-service-row-height);
    place-items:center; padding:8px 16px;
  }
  #fleet-availability-view .fleet-availability-actions > section:first-child .fleet-availability-state button {
    min-height:var(--fleet-service-row-height); padding:10px; border-radius:5px;
  }
  #fleet-availability-view .fleet-availability-actions > section:first-child .fleet-availability-state img {
    width:34px; height:34px;
  }
  #fleet-availability-view .fleet-inline-stop { gap:10px; }
  #fleet-availability-view .fleet-inline-stop textarea { min-height:80px; }
  #fleet-availability-view .fleet-inline-stop footer { margin-top:12px; padding-top:10px; flex-wrap:wrap; }
  #fleet-availability-view .fleet-inline-stop footer > div { margin-left:auto; }
  @media (min-width:901px) {
    #fleet-availability-view.is-active #fleet-availability-content {
      grid-template-rows:auto minmax(0,1fr);
    }
    #fleet-availability-view.is-active #fleet-availability-content:has(.fleet-inline-stop) {
      grid-template-rows:minmax(140px,1fr) minmax(0,max-content);
    }
    #fleet-availability-view .fleet-availability-fleet.is-inline-stop {
      display:flex; flex-direction:column; min-height:0;
    }
    #fleet-availability-view .fleet-availability-toolbar { flex:0 0 auto; }
    #fleet-availability-view .fleet-availability-fleet.is-inline-stop .fleet-availability-trains {
      flex:1; height:auto; min-height:0; max-height:none;
    }
    #fleet-availability-view .fleet-availability-actions > section:first-child:not(:has(.fleet-inline-stop)) {
      align-self:start;
    }
    #fleet-availability-view .fleet-inline-stop footer {
      position:sticky; bottom:0; z-index:2; background:var(--v4-panel);
    }
    #fleet-availability-view .fleet-inline-stop footer .button {
      height:var(--v4-control-height); min-height:var(--v4-control-height);
    }
  }
  @media (min-width:1601px) {
    #fleet-availability-view .fleet-availability-actions > section:first-child {
      padding-bottom:var(--v4-space-4);
    }
  }
  @media (min-width:2200px) {
    #fleet-availability-view .fleet-availability-actions > section:first-child {
      padding-bottom:calc(var(--v4-space-4) + 2px);
    }
  }
  @container workspace (max-width:900px) {
    #fleet-availability-view .fleet-availability-actions {
      display:flex; flex-direction:column; overflow-y:auto;
    }
    #fleet-availability-view .fleet-availability-actions > section {
      flex:0 0 auto; max-height:none; overflow:visible;
    }
    @media (min-width:901px) {
      #fleet-availability-view .fleet-availability-actions > section:first-child:has(.fleet-inline-stop) {
        display:flex; flex-direction:column; min-height:100%; box-sizing:border-box;
      }
      #fleet-availability-view .fleet-inline-stop {
        display:flex; flex-direction:column; flex:1;
      }
      #fleet-availability-view .fleet-inline-stop footer {
        bottom:calc(var(--v4-space-3) + 1px); margin-top:auto;
      }
    }
  }

  #fleet-availability-view :is(input,textarea),
  #personnel-management-view .scheduled-plan-grid :is(input,select),
  #material-management-view :is(input,select) {
    font-family:var(--ui-font-text);
    font-size:12px;
    font-weight:400;
    border-radius:5px;
  }
  #fleet-availability-view :is(input,textarea)::placeholder { font-weight:400; }
  #fleet-availability-view label,
  #personnel-management-view :is(.scheduled-plan-grid > label,.scheduled-plan-type legend,.scheduled-plan-mode > label),
  #material-management-view label { font-size:12px; font-weight:600; letter-spacing:0; }
  .view button.button,
  #personnel-management-view .scheduled-plan-upload.button { gap:8px; font-family:var(--ui-font-text); font-size:12px; font-weight:600; border-radius:5px; box-shadow:none; }
  #personnel-management-view .scheduled-plan-upload svg { width:20px; height:20px; flex:0 0 20px; stroke-width:1.6; }
  #personnel-management-view .scheduled-plan-create { margin-top:28px; }
  #personnel-management-view #create-scheduled-plan { width:100%; }
  #personnel-management-view .scheduled-plan-card-file b.is-pending { color:var(--v4-muted); background:var(--v4-panel-head); }
  #scheduled-plan-form #scheduled-catalog-feedback { font-family:var(--ui-font-text); font-size:12px; font-weight:400; line-height:1.4; border-radius:5px; }
  #scheduled-plan-form #scheduled-catalog-feedback[data-state="success"] { color:#216844; }
  #scheduled-plan-form #scheduled-catalog-feedback[data-state="error"] { color:var(--v4-danger); background:#fff1f2; border-left-color:var(--v4-danger); }
  @media (min-width:561px) {
    #personnel-management-view .scheduled-plan-create { margin-top:auto; }
  }

  #personnel-management-view > .settings-tabs .settings-tab { font-family:var(--ui-font-text); font-size:11px; font-weight:600; }
  #personnel-management-view [data-settings-panel="scheduled-catalog"] {
    --plan-data-font:12px;
    --plan-detail-font:11px;
    --plan-row-height:34px;
  }
  #personnel-management-view .scheduled-plan-card-summary strong { color:var(--v4-ink); font-weight:600; }
  #personnel-management-view .scheduled-plan-card-file b,
  #personnel-management-view .scheduled-plan-type-options span { font-weight:600; }
  #personnel-management-view .email-card-heading h3 { font-family:var(--ui-font-heading); font-size:14px; font-weight:600; }
  #personnel-management-view .email-card-heading p { font-family:var(--ui-font-text); font-size:11px; font-weight:400; }
  #personnel-management-view .email-recipient-add { background:var(--v4-panel-head); }
  #personnel-management-view .email-recipient-add > span:last-child { font-family:var(--ui-font-heading); font-size:14px; font-weight:600; }
  #personnel-management-view :is(.email-recipient-add-icon,.email-card-heading-icon) { width:28px; height:28px; border-radius:6px; }
  #personnel-management-view .email-recipient-list { padding:8px; }
  #personnel-management-view .email-recipient-row { padding:10px; border-radius:6px; }
  #personnel-management-view .email-recipient-copy strong { font-family:var(--ui-font-text); font-size:13px; font-weight:600; }
  #personnel-management-view .email-recipient-copy small { font-size:11px; font-weight:400; }
  #personnel-management-view .email-recipients-footer button { font-family:var(--ui-font-text); font-size:12px; font-weight:600; }
  #personnel-management-view .email-recipient-empty { font-size:12px; }
  #material-management-view :is(.material-index,.material-serial) { font-family:var(--ui-font-text); font-weight:600; }
  dialog:not(.login-dialog) .dialog-header h2 { font-family:var(--ui-font-heading); font-size:16px; font-weight:600; letter-spacing:0; }

  @media (max-width:1600px) {
    .app-header .tabs .tab { font-size:10.5px; }
    #alerts-view .fleet-alert-table thead th { font-size:9px; overflow-wrap:normal; }
    #alerts-view .fleet-alert-table tbody td { font-size:10.5px; }
    #alerts-view .alerts-forecast-panel .fleet-alert-table :is(th,td) { padding-left:3px; padding-right:3px; }
  }
}

/* Tipografia per ruolo. Le sole priorità esplicite riguardano i font:
   sostituiscono le vecchie eccezioni locali senza alterare visibilità o stato. */
@media screen {
  :root {
    --ui-title-size:22px;
    --ui-panel-size:14px;
    --ui-dialog-size:16px;
    --ui-text-size:12px;
    --ui-detail-size:11px;
    --ui-caption-size:10px;
    --ui-control-radius:5px;
    --v4-font-xs:var(--ui-caption-size);
    --v4-font-sm:var(--ui-detail-size);
    --v4-font-md:var(--ui-text-size);
    --v4-font-lg:var(--ui-panel-size);
  }
  body .view,body dialog {
    font-family:var(--ui-font-text);
    font-size:var(--ui-text-size);
    line-height:1.4;
  }
  :where(.view,dialog,#maintenance-navigation) :is(h1,h2,h3,h4) {
    font-family:var(--ui-font-heading) !important;
    font-weight:600 !important;
    letter-spacing:0 !important;
  }
  :where(.view,#maintenance-navigation) h1 { font-size:var(--ui-title-size) !important; }
  .view :is(h2,h3),.view .analytics-heading h2 {
    font-size:var(--ui-panel-size) !important;
    line-height:1.25;
  }
  :where(.view,dialog) :is(input,select,textarea) {
    font-family:var(--ui-font-text) !important;
    font-size:var(--ui-text-size) !important;
    font-weight:400 !important;
    letter-spacing:0;
    border-radius:var(--ui-control-radius);
  }
  :where(.view,dialog) :is(input,textarea)::placeholder { font-weight:400; }
  :where(.view,dialog) :is(label,legend) {
    font-family:var(--ui-font-text) !important;
    font-size:var(--ui-text-size) !important;
    font-weight:600 !important;
    letter-spacing:0;
  }
  :where(.view,dialog,#maintenance-navigation) :is(.button,button.button) {
    font-family:var(--ui-font-text) !important;
    font-size:var(--ui-text-size) !important;
    font-weight:600 !important;
    letter-spacing:0;
    border-radius:var(--ui-control-radius);
    box-shadow:none;
  }
  .view :is(.help-text,.muted),dialog :is(.help-text,.muted),
  .view label > small,dialog label > small {
    font-family:var(--ui-font-text);
    font-size:var(--ui-detail-size) !important;
    font-weight:400;
    line-height:1.4;
  }
  :where(.view:not(#alerts-view),dialog) :is(strong,b) { font-weight:600; }
  .view .icon-button,dialog .icon-button { border-radius:var(--ui-control-radius); box-shadow:none; }

  /* Intestazioni e superfici dei moduli, senza modificare le griglie. */
  .view :is(.form-band,.material-panel,.fleet-register,.analytics-card,.record-card,
    .work-open-card,.closed-corrective-card,.office-report-card,.scheduled-execution-card,
    .maintenance-task-detail,.corrective-sheet,.detail-section),
  dialog :is(.detail-section,.fleet-out-of-service-summary,.communication-history-item) {
    border-color:var(--v4-line);
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
  }
  .view :is(.form-band h2,.analytics-heading,.material-section-heading,
    .scheduled-actions-title,.scheduled-execution-card-header,.scheduled-operator-activity-list > h2,
    .scheduled-operator-side > section > p,.detail-section > h3) {
    color:var(--v4-ink);
    background:var(--v4-panel-head);
    border-bottom-color:var(--v4-line);
  }
  .view :is(.scheduled-actions-title,.scheduled-operator-side > section > p) {
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
    letter-spacing:0;
  }

  /* Storico: barra filtri con gli stessi controlli e colori del tema comune. */
  #archive-view > .filters {
    padding:12px; gap:10px; border:1px solid var(--v4-line);
    border-radius:var(--v4-radius); background:var(--v4-panel); box-shadow:var(--v4-shadow);
  }
  #archive-view .filters > label { display:grid; gap:6px; margin:0; color:var(--v4-ink); }
  #archive-view .search-field-label { margin:0; color:inherit; font:inherit; }
  #archive-view .filters :is(input,select) {
    box-sizing:border-box; height:var(--v4-control-height); min-height:var(--v4-control-height);
    margin:0; padding:6px 10px; border:1px solid var(--v4-line-strong);
    border-radius:var(--ui-control-radius); background:var(--v4-panel); color:var(--v4-ink);
  }
  #archive-view .filters :is(input,select):focus {
    border-color:var(--v4-primary); outline:none; box-shadow:var(--v4-focus);
  }
  #archive-view .filters .search-field input { padding-left:34px; padding-right:34px; }
  #archive-view .search-field-icon {
    bottom:calc((var(--v4-control-height) - 17px) / 2); left:10px; width:17px; height:17px;
    fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
    pointer-events:none;
  }
  #archive-view .search-field #clear-search {
    bottom:calc((var(--v4-control-height) - 24px) / 2); right:5px;
    width:24px; height:24px; border-radius:var(--ui-control-radius); font-size:18px;
  }
  #archive-view .search-field #clear-search:hover { color:var(--v4-primary); background:var(--v4-hover); }
  #archive-view .filters > .button {
    box-sizing:border-box; height:var(--v4-control-height); min-height:var(--v4-control-height);
    padding:6px 12px; gap:8px; border-radius:var(--ui-control-radius); box-shadow:none;
  }
  #archive-view .filters .archive-clear-button {
    color:var(--v4-primary); background:var(--v4-panel); border-color:var(--v4-line-strong);
  }
  #archive-view .filters .archive-clear-button:hover {
    color:var(--v4-primary); background:var(--v4-hover); border-color:var(--v4-primary);
  }
  #archive-view .filters .archive-export-button {
    color:#fff; background:var(--v4-primary); border-color:var(--v4-primary);
  }
  #archive-view .filters .archive-export-button:hover { background:#005974; border-color:#005974; }
  #archive-view .filters .archive-export-button svg { width:18px; height:18px; flex:0 0 18px; stroke-width:1.7; }
  @container workspace (max-width:1199px) {
    #archive-view .filters .search-field { grid-column:auto; }
  }

  /* Tabelle operative. Gli indicatori di stato mantengono i colori propri. */
  .view:not(#alerts-view) table,dialog table {
    font-family:var(--ui-font-text) !important;
    font-variant-numeric:tabular-nums;
  }
  .view:not(#alerts-view) table th,dialog table th {
    font-family:var(--ui-font-text) !important;
    font-size:var(--ui-detail-size) !important;
    font-weight:600 !important;
    line-height:1.25;
    letter-spacing:0;
    text-transform:none;
  }
  .view:not(#alerts-view) table td,dialog table td {
    font-family:var(--ui-font-text) !important;
    font-size:var(--ui-text-size) !important;
    font-weight:400 !important;
    line-height:1.35;
    border-bottom-color:#e3ebef;
  }
  #fleet-form-view .fleet-register-table thead,
  #fleet-form-view .fleet-register-table thead th,
  #competency-monitoring-view .competency-monitoring-table thead th,
  #personnel-management-view .personnel-table thead th {
    color:#415866;
    background:#f1f5f7;
  }
  .view :is(.maintenance-table,.scheduled-execution-table,.archive-table) thead th,
  #material-management-view .material-table th,
  #fleet-form-view .fleet-summary-table th,
  dialog :is(.scheduled-checklist-table,.fleet-statistics-table) thead th {
    color:#415866;
    background:#f1f5f7;
  }
  #fleet-form-view .fleet-register-table tbody tr:nth-child(even),
  .view :is(.maintenance-table,.scheduled-execution-table) tbody tr:nth-child(even) { background:#fafcfd; }
  #fleet-form-view .fleet-register-table tbody tr:hover,
  .view :is(.maintenance-table,.scheduled-execution-table) tbody tr:hover { background:var(--v4-hover); }

  /* Task a schermo: colonne brevi compatte e spazio per data e chiusura.
     Il documento di stampa mantiene il proprio layout indipendente. */
  #scheduled-maintenance-view .scheduled-execution-table { min-width:0; table-layout:fixed; }
  #scheduled-maintenance-view .scheduled-execution-table th:nth-child(1) { width:64px; }
  #scheduled-maintenance-view .scheduled-execution-table th:nth-child(5) { width:52px; }
  #scheduled-maintenance-view .scheduled-execution-table th:nth-child(6) { width:250px; }
  .view :is(.scheduled-remaining,.material-index,.material-serial),
  #fleet-form-view .fleet-register-table td strong {
    font-family:var(--ui-font-text);
    font-weight:600;
  }

  /* Manutenzione: schede riepilogative, assegnazione, esecuzione e correttiva. */
  #maintenance-navigation .maintenance-navigation-links button {
    font-family:var(--ui-font-text);
    font-size:var(--ui-detail-size);
    font-weight:600;
    letter-spacing:0;
    border-radius:var(--ui-control-radius);
  }
  .maintenance-classification-card {
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
  }
  .maintenance-classification-card small { color:var(--v4-ink); font-size:var(--ui-detail-size); font-weight:600; }
  .maintenance-classification-card strong { font-family:var(--ui-font-heading); font-size:28px; font-weight:600; }
  #work-center-view :is(.work-center-card,.work-center-status),
  #scheduled-maintenance-view :is(.scheduled-operator-card,.scheduled-execution-progress) {
    font-family:var(--ui-font-text);
    font-size:var(--ui-text-size);
  }
  #work-center-view :is(.work-center-card strong,.scheduled-reading-summary strong),
  #scheduled-maintenance-view :is(.scheduled-operator-card strong,.scheduled-execution-progress strong) {
    font-family:var(--ui-font-text);
    font-weight:600;
  }
  #work-center-view :is(.work-center-card small,.scheduled-reading-summary small),
  #scheduled-maintenance-view :is(.scheduled-operator-card small,.scheduled-execution-card-header p) {
    font-size:var(--ui-detail-size);
    font-weight:400;
  }
  #work-center-view .scheduled-inline-table-wrap .scheduled-checklist-table :is(th,td),
  #scheduled-catalog-preview-dialog .scheduled-checklist-table :is(th,td) {
    font-size:var(--ui-detail-size) !important;
  }
  #work-center-view .scheduled-inline-table-wrap .scheduled-checklist-table th {
    padding:5px 3px;
    color:#415866;
    background:#f1f5f7;
    font-size:var(--ui-caption-size) !important;
    line-height:1.2;
    overflow-wrap:normal;
  }
  #work-center-view .scheduled-actions-title {
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
    text-transform:none;
  }
  #scheduled-maintenance-view :is(.scheduled-operator-activity-list,.scheduled-operator-actions,
    .scheduled-operator-documents,.scheduled-execution-content) {
    border-color:var(--v4-line);
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
  }
  #scheduled-maintenance-view .scheduled-operator-side > section > p {
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
    text-transform:none;
    letter-spacing:0;
  }
  #maintenance-classifications > button {
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
    font-family:var(--ui-font-text);
    font-size:var(--ui-detail-size);
    font-weight:600;
  }
  #maintenance-classifications > button strong {
    font-family:var(--ui-font-heading);
    font-size:28px;
    font-weight:600;
    line-height:1.1;
  }
  #competency-monitoring-view :is(.competency-monitoring-matrix,.competency-monitoring-table-wrap) {
    border-color:var(--v4-line);
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
  }
  #competency-monitoring-view .competency-monitoring-table-wrap { box-shadow:none; }
  #competency-monitoring-view .competency-monitoring-renewal {
    font-family:var(--ui-font-text);
    font-size:var(--ui-text-size);
    font-weight:600;
  }
  #competency-monitoring-view .competency-monitoring-days {
    font-family:var(--ui-font-text);
    font-size:var(--ui-detail-size);
    font-weight:400;
  }
  #work-archive-view :is(.work-open-card,.closed-corrective-card,.corrective-sheet) :is(p,small),
  #archive-view .record-card :is(p,small) { font-size:var(--ui-detail-size); line-height:1.4; }
  #work-archive-view :is(.work-open-card,.closed-corrective-card) strong,
  #archive-view .record-card strong { font-family:var(--ui-font-text); font-size:var(--ui-text-size); font-weight:600; }
  .view :is(.work-center-status,.maintenance-status,.record-type-badge,.record-link-badge,
    .scheduled-state-tag,.status-badge,.state-badge,.maintenance-badge),
  dialog :is(.scheduled-state-tag,.status-badge,.state-badge) {
    border-radius:4px;
    font-family:var(--ui-font-text);
    font-size:var(--ui-caption-size);
    font-weight:600;
    letter-spacing:0;
  }

  /* Agenda, flotta e materiale. */
  #maintenance-agenda-view .agenda-detail-heading,
  #maintenance-agenda-view .agenda-month strong {
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
  }
  #maintenance-agenda-view :is(.agenda-back-link,.agenda-toolbar button,.agenda-day-event) {
    font-family:var(--ui-font-text);
    font-weight:600;
  }
  #maintenance-agenda-view .agenda-day-event { font-size:var(--ui-caption-size); }
  #maintenance-agenda-view :is(.agenda-detail-empty,.agenda-bottom-legend) { font-size:var(--ui-detail-size); }
  /* Colori condivisi da legenda, eventi, contatori e dettagli temporali. */
  :is(#maintenance-agenda-view,#alerts-view,#forecast-calendar-dialog) .is-temporal-warning {
    --calendar-temporal-dot:#229bb5;
    --calendar-temporal-ink:#146278;
    --calendar-temporal-surface:#e1f3f8;
    --calendar-temporal-border:#8dccdb;
  }
  :is(#maintenance-agenda-view,#alerts-view,#forecast-calendar-dialog) .is-temporal-due {
    --calendar-temporal-dot:#7656b8;
    --calendar-temporal-ink:#583a91;
    --calendar-temporal-surface:#e9dff8;
    --calendar-temporal-border:#aa8ece;
  }
  :is(#maintenance-agenda-view,#alerts-view,#forecast-calendar-dialog)
    :is(.forecast-calendar-event,.forecast-calendar-count):is(.is-temporal-warning,.is-temporal-due) {
    color:var(--calendar-temporal-ink);
    background:var(--calendar-temporal-surface);
    border-color:var(--calendar-temporal-border);
  }
  :is(#maintenance-agenda-view,#alerts-view)
    :is(.agenda-event-card,.dashboard-calendar-popover-event):is(.is-temporal-warning,.is-temporal-due) i {
    background:var(--calendar-temporal-dot);
  }
  :is(#maintenance-agenda-view,#alerts-view)
    :is(.agenda-event-card,.dashboard-calendar-popover-event):is(.is-temporal-warning,.is-temporal-due) em {
    color:var(--calendar-temporal-ink);
    background:var(--calendar-temporal-surface);
  }
  #maintenance-agenda-view .agenda-bottom-legend {
    flex-wrap:wrap;
    gap:8px 14px;
    padding:10px 16px;
  }
  #maintenance-agenda-view .agenda-bottom-legend > span { display:inline-flex; align-items:center; white-space:nowrap; }
  #maintenance-agenda-view .agenda-bottom-legend :is(.is-temporal-warning,.is-temporal-due)::before {
    background:var(--calendar-temporal-dot);
  }
  #fleet-form-view :is(.fleet-entry-band h2,.fleet-register h2),
  #material-management-view .material-section-heading h2 { color:var(--v4-ink); }
  #fleet-form-view .fleet-entry-band { background:#fff; }
  #fleet-form-view .fleet-summary-table :is(strong,b),
  #material-management-view :is(.material-card strong,.material-card b) { font-family:var(--ui-font-text); font-weight:600; }

  /* Tutti i pannelli amministrativi condividono intestazioni e controlli. */
  #personnel-management-view :is(.access-hero,.maintainer-detail-summary,.fleet-registry-summary,
    .access-user-card,.access-permissions-card,.maintainer-competency-card,.maintainer-matrix,
    .backup-panel,.backup-panel-shell,.fleet-registry-empty,.access-editor-empty) {
    border-color:var(--v4-line);
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
  }
  #personnel-management-view :is(.access-hero,.maintainer-detail-summary,.fleet-registry-summary,
    .fleet-registry-detail-heading,.access-users-sidebar > header,.maintainer-sidebar-heading,
    .fleet-registry-sidebar > header,.backup-panel-header,.email-card-heading) {
    color:var(--v4-ink);
    background:var(--v4-panel-head);
  }
  #personnel-management-view :is(.access-hero,.maintainer-detail-summary,.fleet-registry-summary,
    .access-users-sidebar > header,.maintainer-sidebar-heading,.backup-panel-header) :is(h2,h3,strong) {
    color:var(--v4-ink);
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
  }
  #personnel-management-view :is(.access-new-user-sidebar,.workspace-new-maintainer,.fleet-registry-new) > span:last-child {
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
  }
  #personnel-management-view :is(.access-user-list-item,.maintainer-list-item,.fleet-registry-list-item) strong {
    font-family:var(--ui-font-text);
    font-size:13px;
    font-weight:600;
    line-height:1.15;
  }
  #personnel-management-view :is(.access-user-list-item,.maintainer-list-item,.fleet-registry-list-item) :is(small,p),
  #personnel-management-view :is(.access-hero,.maintainer-detail-summary,.fleet-registry-summary) p {
    font-family:var(--ui-font-text);
    font-size:var(--ui-detail-size);
    font-weight:400;
  }
  #personnel-management-view :is(.access-delete-user,.workspace-delete-maintainer,.fleet-registry-delete-sidebar),
  #personnel-management-view :is(.access-switch,.personnel-competencies-toggle,.competency-expiry-choice-toggle) {
    font-family:var(--ui-font-text);
    font-size:var(--ui-text-size);
    font-weight:600;
    border-radius:var(--ui-control-radius);
  }
  #personnel-management-view .backup-state-pill { font-size:var(--ui-caption-size); font-weight:600; border-radius:4px; }
  #personnel-management-view .access-user-card > label { text-transform:none; letter-spacing:0; }
  #personnel-management-view .backup-panel :is(p,small),
  #personnel-management-view .backup-summary :is(p,small) { font-size:var(--ui-detail-size); }

  /* Amministrazione: gli stati disabilitati e i controlli personalizzati
     devono usare il tema anche quando prevalgono le vecchie regole specifiche. */
  #personnel-management-view :is(.access-delete-user,.workspace-delete-maintainer,
    .fleet-registry-delete-sidebar,.email-recipient-delete-sidebar) {
    min-height:32px;
    padding:0;
    gap:8px;
    background:transparent !important;
    box-shadow:none !important;
    font-family:var(--ui-font-text);
    font-size:var(--ui-text-size);
    font-weight:600;
  }
  #personnel-management-view :is(.access-delete-user,.workspace-delete-maintainer,
    .fleet-registry-delete-sidebar,.email-recipient-delete-sidebar):disabled > span { opacity:.45; }
  #personnel-management-view :is(.access-delete-user-icon,.workspace-delete-icon,
    .fleet-registry-delete-sidebar > span,.email-recipient-delete-sidebar > span) {
    width:26px;
    height:26px;
    min-height:26px;
    flex:0 0 26px;
    box-sizing:border-box;
    margin:0;
    border-radius:4px;
    box-shadow:none;
  }
  #personnel-management-view :is(.access-delete-user-icon,.workspace-delete-icon,
    .fleet-registry-delete-sidebar > span,.email-recipient-delete-sidebar > span) svg { width:15px; height:15px; }

  #personnel-management-view .access-users-sidebar > header {
    height:43px;
    min-height:43px;
    padding:var(--v4-panel-header-pad);
  }
  #personnel-management-view .fleet-registry-sidebar > header {
    display:flex;
    height:44px;
    min-height:44px;
    align-items:center;
    padding:var(--v4-panel-header-pad);
  }
  #personnel-management-view .fleet-registry-summary {
    height:44px;
    min-height:44px;
    flex:0 0 44px;
  }
  #personnel-management-view .access-users-sidebar .access-new-user-sidebar {
    width:100%;
    height:28px;
    min-height:28px;
    box-sizing:border-box;
    gap:8px;
    padding:0;
    border-radius:var(--ui-control-radius);
  }
  #personnel-management-view .fleet-registry-sidebar .fleet-registry-new {
    height:28px;
    min-height:28px;
  }
  #personnel-management-view .fleet-registry-sidebar .fleet-registry-new-icon {
    transform:translateY(.5px);
  }
  #personnel-management-view .access-users-side-list .access-user-list-item {
    width:100%;
    height:42px;
    min-height:42px;
    box-sizing:border-box;
    gap:10px;
    padding:6px 8px;
    border-radius:var(--ui-control-radius);
  }
  #personnel-management-view :is(.maintainer-list-item,.fleet-registry-list-item) {
    width:100%;
    height:42px;
    min-height:42px;
    box-sizing:border-box;
    padding:6px 8px;
    border-radius:var(--ui-control-radius);
  }
  #personnel-management-view :is(
    .access-users-side-list .access-user-list-item,
    .maintainer-list-item,
    .fleet-registry-list-item
  ) small {
    display:none;
  }
  #personnel-management-view .access-users-sidebar .access-new-user-sidebar { border:1px solid transparent; }
  #personnel-management-view .access-users-sidebar .access-new-user-sidebar { margin-left:6px; }
  #personnel-management-view .access-users-sidebar .access-new-user-sidebar > span:last-child,
  #personnel-management-view .maintainer-sidebar .workspace-new-maintainer > span:last-child,
  #personnel-management-view .fleet-registry-sidebar .fleet-registry-new > span:last-child {
    font-family:var(--ui-font-heading);
    font-size:var(--ui-panel-size);
    font-weight:600;
  }
  #personnel-management-view .access-user-list-avatar,
  #personnel-management-view .maintainer-list-item > .maintainer-list-avatar,
  #personnel-management-view .fleet-registry-list-item > .fleet-registry-list-icon {
    width:26px;
    height:26px;
    flex:0 0 26px;
    border-radius:4px;
    font-family:var(--ui-font-text);
    font-size:10px;
    font-weight:600;
  }
  #personnel-management-view .fleet-registry-list-item > .fleet-registry-list-icon img { width:15px; height:15px; }
  #personnel-management-view .maintainer-list-item { grid-template-columns:26px minmax(0,1fr); }
  #personnel-management-view .maintainer-sidebar-heading .workspace-new-maintainer,
  #personnel-management-view .fleet-registry-sidebar .fleet-registry-new { margin-left:6px; }
  #personnel-management-view .maintainer-list-item {
    grid-template-columns:24px minmax(0,1fr);
    align-items:center;
  }
  #personnel-management-view .maintainer-list-item > .maintainer-list-avatar {
    width:24px;
    height:24px;
    flex-basis:24px;
    grid-row:auto;
    align-self:center;
    transform:none;
  }
  #personnel-management-view .maintainer-list-item > strong {
    grid-row:auto;
    align-self:center;
  }
  #personnel-management-view .fleet-registry-list-item {
    grid-template-columns:24px minmax(0,1fr);
  }
  #personnel-management-view .fleet-registry-list-item > .fleet-registry-list-icon {
    width:24px;
    height:24px;
    flex-basis:24px;
  }
  #personnel-management-view .fleet-registry-list-item > .fleet-registry-list-icon img {
    width:14px;
    height:14px;
  }
  #personnel-management-view .maintainer-workspace-empty { border-radius:var(--v4-radius); box-shadow:var(--v4-shadow); }
  #personnel-management-view .maintainer-workspace-list > .maintainer-workspace-empty {
    display:block;
    height:auto;
    min-height:0;
    margin:8px;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
    font-size:var(--ui-text-size);
  }
  #personnel-management-view .access-users-side-list .access-user-list-copy small { margin-top:2px; font-size:10px; line-height:1.15; letter-spacing:0; }
  #personnel-management-view .access-user-identity strong { font-family:var(--ui-font-heading); font-size:var(--ui-dialog-size); font-weight:600; }

  #personnel-management-view #maintainer-detail > .maintainer-editor-card #user-access-form {
    border-color:var(--v4-line);
    border-radius:var(--v4-radius);
    box-shadow:var(--v4-shadow);
  }
  #personnel-management-view .maintainer-matrix thead th { color:#415866; background:#f1f5f7; }
  #maintainer-detail .maintainer-editor-panel-heading {
    display:flex; align-items:center; flex:0 0 var(--v4-panel-header-height); box-sizing:border-box;
    min-height:var(--v4-panel-header-height); margin:0; padding:var(--v4-panel-header-pad);
    color:var(--v4-ink); background:var(--v4-panel-head); border-bottom:1px solid var(--v4-line);
    font-family:var(--ui-font-heading); font-size:var(--ui-panel-size); font-weight:600;
  }
  #fleet-availability-view .fleet-availability-actions > section:first-child:not(:has(.fleet-inline-stop)) {
    padding-bottom:12px;
  }
  #fleet-availability-view .fleet-availability-actions > section:first-child:not(:has(.fleet-inline-stop)) .fleet-availability-state {
    margin-bottom:0;
  }
  #personnel-management-view #maintainer-detail .maintainer-editor-card > .personnel-inline-actions {
    flex-shrink:0; grid-column:1 / -1; margin:0; padding:8px 12px;
    border:1px solid var(--v4-line); border-radius:var(--v4-radius); background:var(--v4-panel-head);
  }
  #personnel-management-view #maintainer-detail .maintainer-editor-card > .personnel-inline-actions .button {
    min-width:112px; min-height:39px; padding:9px 18px;
  }
  @media (min-width:1101px) {
    #personnel-management-view #maintainer-detail > .maintainer-editor-card {
      display:grid; grid-template-columns:clamp(240px,25%,340px) minmax(0,1fr);
      grid-template-rows:minmax(0,1fr) auto; gap:var(--v4-gap); min-height:0;
    }
    #personnel-management-view #maintainer-editor-form-slot {
      display:flex; flex-direction:column; min-height:0; min-width:0; overflow:hidden;
      border:1px solid var(--v4-line); border-radius:var(--v4-radius); background:#fff; box-shadow:var(--v4-shadow);
    }
    #personnel-management-view #maintainer-detail > .maintainer-editor-card #user-access-form {
      flex:1; min-height:0; padding:0; overflow-y:auto; border:0; border-radius:0; box-shadow:none;
    }
    #personnel-management-view #maintainer-detail #user-access-form .maintainer-profile-card > .personnel-data-grid {
      grid-template-columns:minmax(0,1fr); gap:12px; padding:12px;
    }
    #personnel-management-view #maintainer-detail #user-access-form .personnel-data-grid > label { min-width:0; }
    #personnel-management-view #maintainer-detail #user-access-form .personnel-data-grid .access-enabled-field {
      align-self:stretch; padding:0; line-height:1.35;
    }
    #personnel-management-view #maintainer-detail .maintainer-competency-card { min-width:0; padding:0; overflow:hidden; }
    #personnel-management-view #maintainer-detail .maintainer-competency-card > .maintainer-matrix {
      min-height:0; margin:10px; overflow:auto;
    }
  }
  #personnel-management-view :is(.workspace-check span,.competency-train-check) { border-width:1px; border-radius:4px; box-shadow:none; }
  #personnel-management-view :is(.workspace-check,.competency-train-check):has(input:focus-visible) { outline:2px solid var(--v4-primary); outline-offset:2px; }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch,.workspace-check,.competency-train-check), #forecast-chronology-widgets .forecast-chronology-toggle) { position:relative; }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch,.workspace-check,.competency-train-check), #forecast-chronology-widgets .forecast-chronology-toggle) > input[type="checkbox"] {
    position:absolute;
    width:1px;
    height:1px;
    min-width:0;
    min-height:0;
    margin:0;
    padding:0;
    border:0;
    opacity:0;
    clip-path:inset(50%);
  }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch), #equipment-form .equipment-requirement-toggle, #forecast-chronology-widgets .forecast-chronology-toggle) > :is(.access-toggle-track,.access-switch-track) {
    position:relative;
    display:block;
    flex:0 0 32px;
    width:32px;
    height:18px;
    min-height:18px;
    box-sizing:border-box;
    border:1px solid var(--v4-line-strong);
    border-radius:4px;
    background:#e9f0f3;
    box-shadow:none;
    transition:background-color .15s ease,border-color .15s ease;
  }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch), #equipment-form .equipment-requirement-toggle, #forecast-chronology-widgets .forecast-chronology-toggle) > :is(.access-toggle-track,.access-switch-track)::after {
    position:absolute;
    display:block;
    top:2px;
    left:2px;
    width:12px;
    height:12px;
    margin:0;
    border-radius:2px;
    background:#607681;
    box-shadow:none;
    transform:translateX(0);
    transition:transform .15s ease,background-color .15s ease;
  }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch), #equipment-form .equipment-requirement-toggle, #forecast-chronology-widgets .forecast-chronology-toggle) > input:checked + :is(.access-toggle-track,.access-switch-track) {
    border-color:var(--v4-primary);
    background:var(--v4-primary);
  }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch), #equipment-form .equipment-requirement-toggle, #forecast-chronology-widgets .forecast-chronology-toggle) > input:checked + :is(.access-toggle-track,.access-switch-track)::after { background:#fff; transform:translateX(14px); }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch), #equipment-form .equipment-requirement-toggle, #forecast-chronology-widgets .forecast-chronology-toggle) > input:disabled + :is(.access-toggle-track,.access-switch-track) { opacity:.45; }
  :is(#personnel-management-view :is(.access-enabled-field,.access-switch), #equipment-form .equipment-requirement-toggle, #forecast-chronology-widgets .forecast-chronology-toggle) > input:focus-visible + :is(.access-toggle-track,.access-switch-track) { outline:2px solid var(--v4-primary); outline-offset:2px; }
  #equipment-form .equipment-requirement-toggle > input:indeterminate + .access-toggle-track::after { transform:translateX(7px); }
  #equipment-form .equipment-out-of-service-toggle > input:checked + .access-toggle-track { background:var(--v4-danger); }
  #personnel-management-view .access-active-field b { font-size:var(--ui-text-size); font-weight:600; }
  #personnel-management-view .access-active-field small { font-weight:400; }
  #personnel-management-view .access-user-card > .access-maintainer-field { grid-column:1 / -1; }
  #personnel-management-view .access-user-card.is-password-reset > .access-maintainer-field { display:none; }
  #personnel-management-view .access-user-card-heading {
    display:flex; grid-column:1 / -1; align-items:center; gap:8px; margin:0;
    color:var(--v4-ink); font-family:var(--ui-font-heading); font-size:var(--ui-panel-size); font-weight:600;
  }
  #personnel-management-view .access-user-card-heading > span {
    display:grid; place-items:center; width:26px; height:26px; flex:0 0 26px;
    color:var(--v4-primary); background:#e7f6f8; border-radius:4px;
  }
  #personnel-management-view .access-user-card-heading svg {
    width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round;
  }
  /* Accessi: dati e permessi affiancati, con un solo modulo e azioni comuni. */
  @media (min-width:1101px) {
    #personnel-management-view > [data-settings-panel="personnel"] { overflow-x:auto; }
    #personnel-management-view #personnel-admin-panel {
      grid-template-columns:var(--v4-admin-sidebar) minmax(900px,1fr);
    }
    #personnel-management-view #personnel-admin-panel > .account-access-form {
      grid-template-columns:minmax(220px,.9fr) repeat(3,minmax(0,1fr));
      grid-template-rows:minmax(0,1fr) auto; gap:var(--v4-gap); padding:0;
    }
    #personnel-management-view #personnel-admin-panel > .account-access-form:has(#account-access-feedback:not([hidden])) {
      grid-template-rows:minmax(0,1fr) auto auto;
    }
    #account-access-form .access-permissions-card { display:contents; }
    #personnel-management-view #account-access-form .access-user-card {
      grid-column:1; grid-row:1; grid-template-columns:44px minmax(0,1fr);
      align-content:start; align-items:center; min-height:0; padding:0 12px 12px;
      gap:10px; overflow-y:auto;
    }
    #personnel-management-view #account-access-form .access-user-card > :is(label,.access-account-toggles,.access-recovery-info) {
      grid-column:1 / -1; min-width:0;
    }
    #personnel-management-view #account-access-form .access-user-card-heading {
      position:sticky; top:0; z-index:1; min-height:var(--v4-panel-header-height);
      margin:0 -12px; padding:6px 12px; box-sizing:border-box;
      border-bottom:1px solid var(--v4-line); background:var(--v4-panel-head);
    }
    #personnel-management-view #account-access-form .access-user-avatar { width:44px; height:44px; }
    #personnel-management-view #account-access-form .access-user-identity { min-width:0; overflow-wrap:anywhere; }
    #personnel-management-view #account-access-form .access-account-toggles {
      flex-direction:column; align-items:stretch; gap:8px;
    }
    #personnel-management-view #account-access-form .access-account-toggles .access-active-field {
      flex:0 0 auto; align-self:stretch; padding:0; min-width:0;
    }
    #personnel-management-view #account-access-form .access-recovery-info { grid-template-columns:minmax(0,1fr); }
    #personnel-management-view #account-access-form .access-recovery-info .button { white-space:normal; height:auto; }
    #personnel-management-view #account-access-form .access-permission-column {
      grid-row:1; padding:0 12px 12px; overflow-y:auto;
      border:1px solid var(--v4-line); border-radius:var(--v4-radius);
      background:#fff; box-shadow:var(--v4-shadow);
    }
    #personnel-management-view #account-access-form .access-permission-column h3 {
      position:sticky; top:0; z-index:1; box-sizing:border-box;
      min-height:var(--v4-panel-header-height); margin:0 -12px 8px; padding:6px 12px;
      border-bottom:1px solid var(--v4-line); background:var(--v4-panel-head);
      font-family:var(--ui-font-heading); font-size:var(--ui-panel-size); font-weight:600;
    }
    #personnel-management-view #account-access-form .access-permission-column h3 span { width:26px; height:26px; flex:0 0 26px; }
    #personnel-management-view #account-access-form .access-permissions-card footer {
      grid-column:1 / -1; grid-row:2; padding:8px 12px;
      border:1px solid var(--v4-line); border-radius:var(--v4-radius); background:var(--v4-panel-head);
    }
    #personnel-management-view #account-access-feedback { grid-column:1 / -1; grid-row:3; margin:0; max-height:80px; overflow-y:auto; }
  }
  @media (min-width:1101px) and (max-width:1600px) {
    #personnel-management-view .access-account-toggles { flex-wrap:wrap; gap:6px 12px; }
    #personnel-management-view .access-account-toggles .access-active-field { flex:1 1 200px; min-height:32px; padding-top:0; }
  }
  @media (prefers-reduced-motion:reduce) {
    :is(#personnel-management-view, #forecast-chronology-widgets) :is(.access-toggle-track,.access-switch-track),
    :is(#personnel-management-view, #forecast-chronology-widgets) :is(.access-toggle-track,.access-switch-track)::after { transition:none !important; }
  }

  /* Finestre statiche e create dinamicamente: profilo, ODL, comunicazioni, recupero. */
  body dialog { color:var(--v4-ink); border-color:var(--v4-line-strong); border-radius:var(--v4-radius); }
  body dialog h2,.view dialog h2 { font-size:var(--ui-dialog-size) !important; line-height:1.25; }
  body dialog :is(h3,h4) { font-size:var(--ui-panel-size) !important; line-height:1.25; }
  #profile-dialog > .dialog-header {
    box-sizing:border-box;
    height:44px;
    min-height:44px;
    flex:0 0 44px;
    padding:6px 24px;
    gap:12px;
  }
  #profile-dialog > .dialog-header h2 { font-size:var(--ui-panel-size) !important; }
  #close-profile-dialog {
    width:28px;
    min-width:28px;
    height:28px;
    min-height:28px;
    padding:0;
    font-size:18px;
    line-height:1;
  }
  #fleet-statistics-dialog {
    max-height:calc(100dvh - 24px); border:1px solid var(--v4-line-strong);
    border-radius:var(--v4-radius); background:var(--v4-panel);
  }
  #fleet-statistics-dialog[open] { display:flex; flex-direction:column; }
  #fleet-statistics-dialog > .fleet-statistics-dialog-header {
    box-sizing:border-box; height:44px; min-height:44px; flex:0 0 44px; padding:6px 14px; gap:12px;
    border-bottom:1px solid var(--v4-line);
  }
  #fleet-statistics-dialog .fleet-statistics-dialog-header h2 { font-size:var(--ui-panel-size) !important; }
  #fleet-statistics-close {
    display:grid; place-items:center; flex:0 0 28px; width:28px; min-width:28px;
    height:28px; min-height:28px; padding:0; border:1px solid var(--v4-line-strong);
    border-radius:var(--ui-control-radius); color:var(--v4-primary); background:var(--v4-panel);
    font-size:18px; line-height:1; box-shadow:none;
  }
  #fleet-statistics-close:hover { border-color:var(--v4-primary); background:var(--v4-hover); }
  #fleet-statistics-close:focus-visible { outline:2px solid var(--v4-primary); outline-offset:2px; }
  #fleet-statistics-dialog .fleet-statistics-dialog-content {
    min-height:0; padding:14px; overflow:auto; background:var(--v4-panel);
  }
  #fleet-statistics-dialog .fleet-statistics-cycle {
    margin:0 0 12px; color:var(--v4-muted); font-size:var(--ui-text-size); font-weight:400; line-height:1.4;
  }
  #fleet-statistics-dialog .fleet-statistics-table-wrap { border-color:var(--v4-line); border-radius:var(--ui-control-radius); }
  #fleet-statistics-dialog .fleet-statistics-table :is(th,td) { padding:9px 12px; border-color:var(--v4-line); }
  #fleet-statistics-dialog .fleet-statistics-table tbody tr:nth-child(even) { background:#fafcfd; }
  #fleet-statistics-dialog .fleet-statistics-table tbody tr:hover { background:var(--v4-hover); }
  #fleet-statistics-dialog .fleet-statistics-status {
    min-width:106px; min-height:24px; padding:3px 8px; border-radius:var(--ui-control-radius);
    font-family:var(--ui-font-text); font-size:var(--ui-detail-size); font-weight:600; line-height:1.4;
  }
  dialog :is(.dialog-header,.fleet-statistics-dialog-header,.fleet-out-of-service-heading,
    .fleet-corrective-confirm-heading,.email-notification-history-heading),
  dialog.access-users-dialog > header {
    background:var(--v4-panel-head);
    color:var(--v4-ink);
    border-bottom-color:var(--v4-line);
  }
  dialog :is(.dialog-header,.fleet-statistics-dialog-header,.fleet-out-of-service-heading,
    .fleet-corrective-confirm-heading) h2,dialog.access-users-dialog > header h2 { color:var(--v4-ink); }
  dialog :is(.dialog-actions,.fleet-out-of-service-footer,.fleet-corrective-confirm-footer) {
    border-top-color:var(--v4-line);
    background:#f7fafb;
  }
  dialog :is(.work-save-content,.detail-dialog-content,.scheduled-dialog-content,
    .fleet-out-of-service-content,.fleet-corrective-confirm-content,.communication-composer,
    .profile-content,.external-backup-form) { font-family:var(--ui-font-text); font-size:var(--ui-text-size); }
  dialog :is(.work-save-content,.fleet-corrective-confirm-content,.communication-composer) > p {
    font-size:var(--ui-text-size);
    line-height:1.45;
  }
  dialog :is(.detail-item dt,.backup-info-grid small,.fleet-out-of-service-summary small) {
    font-size:var(--ui-detail-size);
    font-weight:600;
    letter-spacing:0;
  }
  dialog :is(.detail-item dd,.backup-info-grid strong,.fleet-out-of-service-summary strong) {
    font-family:var(--ui-font-text);
    font-size:var(--ui-text-size);
    font-weight:600;
  }
  dialog .communication-composer :is(label,p,summary),
  .view .communication-composer :is(label,p,summary) { font-size:var(--ui-text-size); }
  dialog .communication-contacts small { font-size:var(--ui-detail-size); font-weight:400; }
  dialog .communication-selected { border-radius:var(--ui-control-radius); border-color:var(--v4-line); }
  body .login-dialog[open] { border-radius:var(--v4-radius); }
  .login-dialog .login-heading strong { font-family:var(--ui-font-heading); font-size:var(--ui-title-size); font-weight:600; }
  .login-dialog :is(p,small) { font-size:var(--ui-text-size); line-height:1.45; }
  .login-dialog #setup-recovery-code { font-family:Consolas,monospace; font-variant-numeric:tabular-nums; }
  .toast { font-family:var(--ui-font-text); font-size:var(--ui-text-size); font-weight:500; border-radius:var(--v4-radius); }

  @media (max-width:1600px) {
    .view:not(#alerts-view) table :is(th,td),dialog table :is(th,td) { font-size:var(--ui-detail-size) !important; }
    #maintenance-navigation .maintenance-navigation-links button { font-size:var(--ui-caption-size); }
  }
}
