﻿/*
 * Qassim Nursing Platform — Shared UI Foundation
 * Cross-module presentation contracts that must behave consistently everywhere.
 *
 * ICON ALIGNMENT CONTRACT
 * -----------------------
 * Any Qassim Nursing icon wrapper whose class follows the qn-*-icon naming
 * convention automatically receives the KeenIcons alignment normalization below.
 * New square/rounded icon tiles should keep that naming convention rather than
 * adding page-specific icon-centering fixes.
 */

[class*="qn-"][class*="-icon"] > i.ki-filled {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-align: center;
}

/* Explicit utility for shared/new components that do not use a qn-*-icon class. */
.qn-icon-frame {
  display: inline-grid;
  place-items: center;
  line-height: 1;
  text-align: center;
}

.qn-icon-frame > i.ki-filled {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  line-height: 1;
  text-align: center;
}

/* ==========================================================================
   CENTRAL FORM VALIDATION FOUNDATION
   --------------------------------------------------------------------------
   Shared validation contract for all Add/Edit/Action forms in Qassim Nursing
   Platform. Pages should only mark the field container with
   data-qn-validation-field="FieldName" and provide rules through
   window.QNFormValidation. Presentation stays centralized here.
   ========================================================================== */
.qn-validation-field {
  position: relative;
}

.qn-validation-field .qn-required-mark {
  display: inline-block;
  margin-inline-start: .25rem;
  color: var(--color-danger, #dc2626);
  font-weight: 700;
}

.qn-validation-feedback {
  min-height: 1.05rem;
  display: flex;
  align-items: center;
  gap: .35rem;
  margin-top: .1rem;
  font-size: .72rem;
  font-weight: 500;
  line-height: 1.35;
}

.qn-validation-feedback[hidden] {
  display: none !important;
}

.qn-validation-feedback.is-invalid {
  color: var(--color-danger, #dc2626);
}

.qn-validation-feedback.is-valid {
  color: var(--color-success, #16a34a);
}

/* Valid-state icons are rendered inside the control itself. The feedback row
   below a field is reserved for actionable error messages only. */
.qn-validation-feedback.is-valid.is-icon-only {
  display: none !important;
}

.qn-validation-feedback-icon {
  flex: 0 0 auto;
  font-size: .95rem;
  line-height: 1;
}

.qn-validation-state-indicator {
  position: absolute;
  inset-inline-end: .8rem;
  z-index: 4;
  width: 1.15rem;
  height: 1.15rem;
  transform: translateY(-50%);
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  pointer-events: none;
  line-height: 1;
}

.qn-validation-state-indicator[hidden] {
  display: none !important;
}

.qn-validation-state-indicator.is-select {
  inset-inline-end: 2.4rem;
}

.qn-validation-state-indicator.is-valid {
  color: var(--color-success, #16a34a);
}

.qn-validation-state-indicator.is-invalid {
  color: var(--color-danger, #dc2626);
}

.qn-validation-state-indicator > i {
  font-size: 1rem;
  line-height: 1;
}

/* Reserve space for the inline state icon so typed text and icons never collide. */
.qn-validation-field.has-validation-state-icon > input.kt-input,
.qn-validation-field.has-validation-state-icon > textarea.kt-textarea,
.qn-validation-field.has-validation-state-icon > label.kt-input,
.qn-validation-field.has-validation-state-icon .qn-validation-control > input.kt-input,
.qn-validation-field.has-validation-state-icon .qn-validation-control > textarea.kt-textarea,
.qn-validation-field.has-validation-state-icon .qn-date-control {
  padding-inline-end: 2.35rem;
}

.qn-validation-field.has-validation-state-icon > select.kt-select,
.qn-validation-field.has-validation-state-icon .qn-validation-control > select.kt-select {
  padding-inline-end: 4rem;
}

/* KTSelect renders a visible display beside a hidden native <select>. Reserve
   room for our validation icon inside that visible Metronic control. */
.qn-validation-field.has-validation-state-icon [data-kt-select-wrapper] [data-kt-select-display] {
  padding-inline-end: 4rem !important;
}

/* Metronic input/select/textarea state ring.  The field container owns state
   so the same rule works for plain controls, KTSelect and Flatpickr wrappers. */
.qn-validation-field.is-invalid > .kt-input,
.qn-validation-field.is-invalid > .kt-select,
.qn-validation-field.is-invalid > .kt-textarea,
.qn-validation-field.is-invalid > label.kt-input,
.qn-validation-field.is-invalid .qn-validation-control > .kt-input,
.qn-validation-field.is-invalid .qn-validation-control > .kt-select,
.qn-validation-field.is-invalid .qn-validation-control > .kt-textarea,
.qn-validation-field.is-invalid .qn-date-control,
.qn-validation-field.is-invalid [data-kt-select-wrapper] [data-kt-select-display] {
  border-color: color-mix(in srgb, var(--color-danger, #dc2626) 80%, var(--color-border, #d1d5db)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger, #dc2626) 11%, transparent) !important;
}

.qn-validation-field.is-valid > .kt-input,
.qn-validation-field.is-valid > .kt-select,
.qn-validation-field.is-valid > .kt-textarea,
.qn-validation-field.is-valid > label.kt-input,
.qn-validation-field.is-valid .qn-validation-control > .kt-input,
.qn-validation-field.is-valid .qn-validation-control > .kt-select,
.qn-validation-field.is-valid .qn-validation-control > .kt-textarea,
.qn-validation-field.is-valid .qn-date-control,
.qn-validation-field.is-valid [data-kt-select-wrapper] [data-kt-select-display] {
  border-color: color-mix(in srgb, var(--color-success, #16a34a) 72%, var(--color-border, #d1d5db)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-success, #16a34a) 9%, transparent) !important;
}

/* Group/tile controls such as Leave vs Absence. */
.qn-validation-field.is-invalid .qn-leave-absence-category-tile {
  border-color: color-mix(in srgb, var(--color-danger, #dc2626) 55%, var(--color-border, #d1d5db));
}

.qn-validation-field.is-valid .qn-leave-absence-category-choice > input:checked + .qn-leave-absence-category-tile {
  border-color: color-mix(in srgb, var(--color-success, #16a34a) 64%, var(--color-border, #d1d5db));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-success, #16a34a) 8%, transparent);
}

.qn-validation-summary {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding: .8rem .9rem;
  border: 1px solid color-mix(in srgb, var(--color-danger, #dc2626) 28%, var(--color-border, #d1d5db));
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-danger, #dc2626) 6%, var(--color-background, #fff));
  color: var(--color-secondary-foreground, #4b5563);
  font-size: .78rem;
  line-height: 1.45;
}

.qn-validation-summary[hidden] {
  display: none !important;
}

.qn-validation-summary-icon {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  display: inline-grid;
  place-items: center;
  border-radius: .5rem;
  background: color-mix(in srgb, var(--color-danger, #dc2626) 11%, transparent);
  color: var(--color-danger, #dc2626);
}

.qn-validation-summary-body strong {
  display: block;
  margin-bottom: .1rem;
  color: var(--color-mono, #111827);
  font-weight: 600;
}

.dark .qn-validation-feedback.is-invalid,
.dark .qn-validation-summary-icon,
.dark .qn-required-mark {
  color: #f87171;
}

.dark .qn-validation-feedback.is-valid {
  color: #4ade80;
}

.dark .qn-validation-state-indicator.is-invalid { color: #f87171; }
.dark .qn-validation-state-indicator.is-valid { color: #4ade80; }

/* Workforce Import Center — organization-aware Metronic staging experience. */
.qn-import-stepper {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.qn-import-step {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 4.35rem;
  padding: .9rem 1rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: .8rem;
  background: var(--color-background, #fff);
  color: var(--color-secondary-foreground, #6b7280);
}

.qn-import-step strong,
.qn-import-step span {
  display: block;
}

.qn-import-step strong {
  color: var(--color-mono, #111827);
  font-size: .82rem;
  line-height: 1.2;
}

.qn-import-step > div > span {
  margin-top: .2rem;
  font-size: .7rem;
}

.qn-import-step-number {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  display: inline-grid !important;
  place-items: center;
  border-radius: 9999px;
  background: var(--color-muted, #f3f4f6);
  color: var(--color-muted-foreground, #6b7280);
  font-weight: 700;
  font-size: .75rem;
}

.qn-import-step.is-current {
  border-color: color-mix(in srgb, var(--color-primary, #2563eb) 42%, var(--color-border, #e5e7eb));
  background: color-mix(in srgb, var(--color-primary, #2563eb) 5%, var(--color-background, #fff));
}

.qn-import-step.is-current .qn-import-step-number,
.qn-import-step.is-complete .qn-import-step-number {
  background: var(--color-primary, #2563eb);
  color: #fff;
}

.qn-import-step.is-complete {
  border-color: color-mix(in srgb, var(--color-success, #16a34a) 30%, var(--color-border, #e5e7eb));
}

.qn-import-step.is-complete .qn-import-step-number {
  background: var(--color-success, #16a34a);
}

.qn-import-source-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(19rem, .65fr);
  gap: 1rem;
  align-items: stretch;
}

.qn-import-dropzone {
  position: relative;
  min-height: 8.25rem;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  padding: 1.2rem 1.35rem;
  overflow: hidden;
  border: 1.5px dashed color-mix(in srgb, var(--color-primary, #2563eb) 52%, var(--color-border, #d1d5db));
  border-radius: .9rem;
  background: color-mix(in srgb, var(--color-primary, #2563eb) 3%, var(--color-background, #fff));
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.qn-import-dropzone input[type="file"] {
  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;
  opacity: 0 !important;
  pointer-events: none !important;
}

.qn-import-dropzone:hover,
.qn-import-dropzone.is-dragging {
  border-color: var(--color-primary, #2563eb);
  background: color-mix(in srgb, var(--color-primary, #2563eb) 6%, var(--color-background, #fff));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary, #2563eb) 7%, transparent);
}

.qn-import-dropzone.is-dragging {
  transform: translateY(-1px);
}

.qn-import-dropzone.has-file {
  border-style: solid;
  border-color: color-mix(in srgb, var(--color-success, #16a34a) 48%, var(--color-border, #d1d5db));
  background: color-mix(in srgb, var(--color-success, #16a34a) 3%, var(--color-background, #fff));
}

.qn-import-dropzone-icon {
  width: 3.25rem;
  height: 3.25rem;
  flex: 0 0 3.25rem;
  display: inline-grid;
  place-items: center;
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent);
  color: var(--color-primary, #2563eb);
  font-size: 1.45rem;
}

.qn-import-dropzone-copy {
  min-width: 0;
  display: grid;
  gap: .25rem;
  text-align: start;
}

.qn-import-dropzone-copy.hidden,
.qn-import-file-selected.hidden {
  display: none !important;
}

.qn-import-dropzone-copy strong {
  color: var(--color-mono, #111827);
  font-size: .93rem;
  font-weight: 700;
  line-height: 1.25;
}

.qn-import-dropzone-copy small,
.qn-import-file-selected small {
  color: var(--color-secondary-foreground, #6b7280);
  font-size: .72rem;
  line-height: 1.35;
}

.qn-import-file-selected {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  padding: .8rem .9rem;
  border: 1px solid color-mix(in srgb, var(--color-success, #16a34a) 24%, var(--color-border, #e5e7eb));
  border-radius: .75rem;
  background: var(--color-background, #fff);
}

.qn-import-file-icon,
.qn-import-policy-icon {
  width: 2.55rem;
  height: 2.55rem;
  display: inline-grid;
  place-items: center;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-primary, #2563eb) 9%, transparent);
  color: var(--color-primary, #2563eb);
  font-size: 1.15rem;
}

.qn-import-file-selected strong,
.qn-import-file-selected small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qn-import-file-selected strong {
  color: var(--color-mono, #111827);
  font-size: .82rem;
  font-weight: 650;
}

/* Import analysis KPI cards: fixed responsive grid independent of utility CSS generation. */
.qn-import-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}

.qn-import-metric-card {
  position: relative;
  overflow: hidden;
  min-width: 0;
  padding: 1rem 1.05rem 1.05rem;
  border-top: 3px solid var(--qn-import-metric-accent, var(--color-primary, #2563eb));
}

.qn-import-metric-head {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-width: 0;
}

.qn-import-metric-icon {
  width: 2.3rem;
  height: 2.3rem;
  flex: 0 0 2.3rem;
  display: inline-grid;
  place-items: center;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--qn-import-metric-accent, var(--color-primary, #2563eb)) 10%, transparent);
  color: var(--qn-import-metric-accent, var(--color-primary, #2563eb));
  font-size: 1.05rem;
}

.qn-import-metric-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-mono, #111827);
  font-size: .79rem;
  font-weight: 700;
  letter-spacing: .005em;
}

.qn-import-metric-value {
  margin-top: .7rem;
  color: var(--color-mono, #111827);
  font-size: 1.65rem;
  line-height: 1;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.qn-import-metric-primary { --qn-import-metric-accent: var(--color-primary, #2563eb); }
.qn-import-metric-info { --qn-import-metric-accent: var(--color-info, #0ea5e9); }
.qn-import-metric-success { --qn-import-metric-accent: var(--color-success, #16a34a); }
.qn-import-metric-warning { --qn-import-metric-accent: var(--color-warning, #f59e0b); }

.qn-import-policy-panel,
.qn-import-discovery-card {
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--color-muted, #f3f4f6) 32%, var(--color-background, #fff));
  padding: 1.15rem;
}

.qn-import-policy-heading {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
}

.qn-import-policy-heading strong,
.qn-import-policy-heading span {
  display: block;
}

.qn-import-policy-heading strong {
  color: var(--color-mono, #111827);
  font-size: .88rem;
}

.qn-import-policy-heading span {
  margin-top: .25rem;
  color: var(--color-secondary-foreground, #6b7280);
  font-size: .74rem;
  line-height: 1.45;
}

.qn-import-safety-note {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: .7rem .75rem;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-warning, #f59e0b) 8%, transparent);
  color: var(--color-secondary-foreground, #6b7280);
  font-size: .73rem;
  line-height: 1.45;
}

.qn-import-safety-note i { color: var(--color-warning, #f59e0b); }

.qn-import-organization-rule {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  padding: .9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary, #2563eb) 22%, var(--color-border, #e5e7eb));
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary, #2563eb) 4%, transparent);
}

.qn-import-organization-rule > span {
  width: 2.15rem;
  height: 2.15rem;
  flex: 0 0 2.15rem;
  display: inline-grid;
  place-items: center;
  border-radius: .6rem;
  background: color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent);
  color: var(--color-primary, #2563eb);
}

.qn-import-organization-rule strong,
.qn-import-organization-rule p { display: block; }
.qn-import-organization-rule strong { color: var(--color-mono, #111827); font-size: .82rem; }
.qn-import-organization-rule p { margin: .2rem 0 0; color: var(--color-secondary-foreground, #6b7280); font-size: .74rem; line-height: 1.45; }

.qn-import-discovery-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
}

.qn-import-discovery-card-head strong,
.qn-import-discovery-card-head span { display: block; }
.qn-import-discovery-card-head strong { color: var(--color-mono, #111827); font-size: .84rem; }
.qn-import-discovery-card-head div > span { margin-top: .2rem; color: var(--color-secondary-foreground, #6b7280); font-size: .72rem; line-height: 1.4; }

.qn-import-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.qn-import-value-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  max-width: 100%;
  padding: .45rem .6rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: .6rem;
  background: var(--color-background, #fff);
}

.qn-import-value-chip strong {
  max-width: 18rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-mono, #111827);
  font-size: .72rem;
  font-weight: 550;
}

.qn-import-value-chip small {
  color: var(--color-secondary-foreground, #6b7280);
  font-size: .66rem;
  white-space: nowrap;
}

.qn-import-relation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .45rem;
  padding: .55rem .65rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: .65rem;
  background: var(--color-background, #fff);
  font-size: .7rem;
}

.qn-import-relation span,
.qn-import-relation strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.qn-import-relation i { color: var(--color-primary, #2563eb); }
.qn-import-relation small { color: var(--color-secondary-foreground, #6b7280); }

.qn-import-empty-discovery {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: 1rem;
  border: 1px dashed var(--color-border, #e5e7eb);
  border-radius: .8rem;
  color: var(--color-secondary-foreground, #6b7280);
}

.qn-import-empty-discovery > i { color: var(--color-primary, #2563eb); font-size: 1.2rem; }
.qn-import-empty-discovery strong,
.qn-import-empty-discovery span { display: block; }
.qn-import-empty-discovery strong { color: var(--color-mono, #111827); font-size: .8rem; }
.qn-import-empty-discovery span { margin-top: .2rem; font-size: .72rem; }

@media (max-width: 1199px) {
  .qn-import-source-layout { grid-template-columns: 1fr; }
  .qn-import-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .qn-import-stepper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px) {
  .qn-import-stepper { grid-template-columns: 1fr; }
  .qn-import-metrics-grid { grid-template-columns: 1fr; }
  .qn-import-dropzone { min-height: 8.5rem; padding: 1rem; }
  .qn-import-dropzone-icon { width: 2.8rem; height: 2.8rem; flex-basis: 2.8rem; }
  .qn-import-file-selected { grid-template-columns: auto minmax(0, 1fr); }
  .qn-import-file-selected .kt-btn { grid-column: 1 / -1; width: 100%; }
  .qn-import-relation { grid-template-columns: 1fr; }
  .qn-import-relation i { transform: rotate(90deg); justify-self: center; }
}

.qn-validation-field.is-invalid .qn-import-dropzone {
  border-color: var(--color-danger, #dc2626) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-danger, #dc2626) 10%, transparent) !important;
}

.qn-validation-field.is-valid .qn-import-dropzone.has-file {
  border-color: var(--color-success, #16a34a) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-success, #16a34a) 8%, transparent) !important;
}

/* Workforce Import — V2-17A3B intelligent mapping review */
.qn-import-mapping-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.875rem;
}

.qn-import-mapping-metric {
    min-height: 92px;
    padding: 1rem 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.9rem;
    border: 1px solid var(--kt-border-color, var(--tw-gray-200));
}

.qn-import-mapping-metric-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 0.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.qn-import-mapping-metric > div {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
}

.qn-import-mapping-metric strong {
    font-size: 1.55rem;
    line-height: 1.1;
    color: var(--kt-text-dark, var(--tw-gray-900));
    font-weight: 700;
}

.qn-import-mapping-metric span:last-child {
    color: var(--kt-text-muted, var(--tw-gray-600));
    font-size: 0.78rem;
    font-weight: 600;
}

.qn-import-mapping-note {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 0.8rem;
    border: 1px solid color-mix(in srgb, var(--kt-primary, #1b84ff) 28%, transparent);
    background: color-mix(in srgb, var(--kt-primary, #1b84ff) 6%, transparent);
}

.qn-import-mapping-note > i {
    color: var(--kt-primary, #1b84ff);
    font-size: 1.1rem;
    margin-top: 0.1rem;
}

.qn-import-mapping-note > div {
    display: grid;
    gap: 0.15rem;
}

.qn-import-mapping-note strong {
    color: var(--kt-text-dark, var(--tw-gray-900));
    font-size: 0.84rem;
}

.qn-import-mapping-note span {
    color: var(--kt-text-muted, var(--tw-gray-600));
    font-size: 0.76rem;
    line-height: 1.45;
}

.qn-import-mapping-table {
    min-width: 980px;
}

.qn-import-mapping-table thead th {
    white-space: nowrap;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--kt-text-muted, var(--tw-gray-600));
}

.qn-import-mapping-table tbody td {
    vertical-align: middle;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}

.qn-import-mapping-table .kt-select {
    min-width: 300px;
}

@media (max-width: 1100px) {
    .qn-import-mapping-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .qn-import-mapping-metrics {
        grid-template-columns: 1fr;
    }
}

/* Workforce Import — V2-17A4 row-level validation */
.qn-validation-workspace .kt-card-title {
    font-weight: 700;
    letter-spacing: -.01em;
}

.qn-import-validation-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

.qn-import-validation-metric {
    position: relative;
    min-height: 98px;
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.05rem;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .9rem;
    background: var(--color-background, #fff);
    overflow: hidden;
}

.qn-import-validation-metric::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 0;
    height: 3px;
    background: var(--qn-validation-accent, var(--color-primary, #2563eb));
}

.qn-import-validation-metric-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: .8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--qn-validation-accent, var(--color-primary, #2563eb));
    background: color-mix(in srgb, var(--qn-validation-accent, var(--color-primary, #2563eb)) 10%, transparent);
    font-size: 1.15rem;
}

.qn-import-validation-metric > div {
    display: grid;
    gap: .15rem;
}

.qn-import-validation-metric span:not(.qn-import-validation-metric-icon) {
    font-size: .74rem;
    color: var(--color-secondary-foreground, #6b7280);
    font-weight: 650;
}

.qn-import-validation-metric strong {
    font-size: 1.7rem;
    line-height: 1.05;
    color: var(--color-mono, #111827);
    font-weight: 750;
}

.qn-import-validation-metric-total { --qn-validation-accent: var(--color-primary, #2563eb); }
.qn-import-validation-metric-ready { --qn-validation-accent: var(--color-success, #16a34a); }
.qn-import-validation-metric-warning { --qn-validation-accent: var(--color-warning, #d97706); }
.qn-import-validation-metric-blocked { --qn-validation-accent: var(--color-danger, #dc2626); }

.qn-import-validation-panel {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .9rem;
    padding: 1rem;
    background: color-mix(in srgb, var(--color-background, #fff) 97%, var(--color-primary, #2563eb) 3%);
}

.qn-import-validation-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .9rem;
}

.qn-import-validation-panel-head strong,
.qn-import-validation-panel-head span {
    display: block;
}

.qn-import-validation-panel-head strong {
    color: var(--color-mono, #111827);
    font-size: .88rem;
    font-weight: 700;
}

.qn-import-validation-panel-head div > span {
    color: var(--color-secondary-foreground, #6b7280);
    font-size: .74rem;
    line-height: 1.45;
    margin-top: .2rem;
}

.qn-validation-finding-list {
    display: grid;
    gap: .55rem;
}

.qn-validation-finding {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    padding: .6rem .7rem;
    border-radius: .65rem;
    border: 1px solid var(--color-border, #e5e7eb);
    font-size: .74rem;
    line-height: 1.4;
}

.qn-validation-finding-count {
    min-width: 2rem;
    height: 2rem;
    border-radius: .55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 750;
    background: color-mix(in srgb, currentColor 10%, transparent);
}

.qn-validation-issue-blocked { color: var(--color-danger, #dc2626); border-color: color-mix(in srgb, var(--color-danger, #dc2626) 25%, transparent); }
.qn-validation-issue-warning { color: var(--color-warning, #d97706); border-color: color-mix(in srgb, var(--color-warning, #d97706) 25%, transparent); }
.qn-validation-issue-info { color: var(--color-primary, #2563eb); border-color: color-mix(in srgb, var(--color-primary, #2563eb) 25%, transparent); }

.qn-validation-readiness-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .65rem .75rem;
    border-radius: .65rem;
    background: var(--color-background, #fff);
    border: 1px solid var(--color-border, #e5e7eb);
    font-size: .75rem;
}

.qn-validation-readiness-row span { color: var(--color-secondary-foreground, #6b7280); }
.qn-validation-readiness-row strong { color: var(--color-mono, #111827); font-weight: 700; }

.qn-validation-gate {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .8rem .9rem;
    border-radius: .7rem;
    border: 1px solid;
}

.qn-validation-gate > i { font-size: 1.1rem; margin-top: .1rem; }
.qn-validation-gate strong,
.qn-validation-gate span { display: block; }
.qn-validation-gate strong { font-size: .78rem; font-weight: 700; }
.qn-validation-gate span { margin-top: .15rem; font-size: .72rem; line-height: 1.45; }
.qn-validation-gate-blocked { color: var(--color-danger, #dc2626); border-color: color-mix(in srgb, var(--color-danger, #dc2626) 28%, transparent); background: color-mix(in srgb, var(--color-danger, #dc2626) 5%, transparent); }
.qn-validation-gate-ready { color: var(--color-success, #16a34a); border-color: color-mix(in srgb, var(--color-success, #16a34a) 28%, transparent); background: color-mix(in srgb, var(--color-success, #16a34a) 5%, transparent); }

.qn-import-validation-filters {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(180px, 240px) auto;
    gap: .8rem;
    align-items: end;
    padding: .9rem;
    border-radius: .8rem;
    border: 1px solid var(--color-border, #e5e7eb);
    background: color-mix(in srgb, var(--color-background, #fff) 97%, var(--color-primary, #2563eb) 3%);
}

.qn-import-validation-filter-search .kt-input { width: 100%; }
.qn-import-validation-table thead th { font-size: .72rem; font-weight: 700; white-space: nowrap; color: var(--color-secondary-foreground, #6b7280); }
.qn-import-validation-table tbody td { vertical-align: top; padding-top: .75rem; padding-bottom: .75rem; }

.qn-validation-row-issues {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.qn-validation-row-issue {
    max-width: 100%;
    padding: .3rem .45rem;
    border: 1px solid;
    border-radius: .5rem;
    font-size: .68rem;
    line-height: 1.35;
    background: color-mix(in srgb, currentColor 4%, transparent);
}

.qn-validation-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    color: var(--color-secondary-foreground, #6b7280);
    font-size: .76rem;
}

.qn-import-validation-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
    background: color-mix(in srgb, var(--color-background, #fff) 98%, var(--color-primary, #2563eb) 2%);
}

@media (max-width: 1100px) {
    .qn-import-validation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .qn-import-validation-filters { grid-template-columns: 1fr 1fr; }
    .qn-import-validation-filters > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .qn-import-validation-metrics { grid-template-columns: 1fr; }
    .qn-import-validation-filters { grid-template-columns: 1fr; }
    .qn-import-validation-filters > :last-child { grid-column: auto; }
    .qn-import-validation-pagination { flex-direction: column; align-items: stretch; }
}

/* V2-17A4 Fix01 — Workforce Import action hierarchy */
.qn-import-action-btn {
    min-height: 2.45rem;
    min-width: 8.5rem;
    padding-inline: .95rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    white-space: nowrap;
    font-weight: 600;
    border-radius: .6rem;
}

.qn-import-action-btn > i {
    flex: 0 0 auto;
    font-size: .95rem;
}

.qn-import-action-btn > span {
    line-height: 1.1;
}

.qn-import-action-btn-primary,
.qn-import-action-btn-success {
    box-shadow: 0 1px 2px color-mix(in srgb, currentColor 10%, transparent);
}

.qn-import-action-btn-secondary {
    background: var(--color-background, #fff);
}

.qn-import-action-btn-disabled {
    min-width: 10.5rem;
    opacity: .58;
}

.qn-import-filter-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
}

.qn-import-filter-actions .qn-import-action-btn {
    min-width: 7.75rem;
}

.qn-import-stage-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.qn-import-stage-actions-start,
.qn-import-stage-actions-end,
.qn-import-mapping-actions {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
}

.qn-import-stage-actions-end {
    justify-content: flex-end;
}

.qn-import-mapping-actions {
    justify-content: flex-end;
    max-width: 100%;
}

.qn-import-mapping-actions .qn-import-action-btn {
    min-width: 9.5rem;
}

.qn-import-validation-pagination .kt-btn {
    width: 2.35rem;
    height: 2.35rem;
    min-width: 2.35rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .55rem;
}

.qn-import-validation-pagination .kt-badge {
    min-height: 2.35rem;
    min-width: 4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

@media (max-width: 760px) {
    .qn-import-filter-actions,
    .qn-import-stage-actions,
    .qn-import-stage-actions-start,
    .qn-import-stage-actions-end,
    .qn-import-mapping-actions {
        width: 100%;
    }

    .qn-import-stage-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .qn-import-stage-actions-start,
    .qn-import-stage-actions-end,
    .qn-import-mapping-actions,
    .qn-import-filter-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .qn-import-action-btn,
    .qn-import-filter-actions .qn-import-action-btn,
    .qn-import-mapping-actions .qn-import-action-btn,
    .qn-import-stage-actions form,
    .qn-import-stage-actions form .qn-import-action-btn {
        width: 100%;
        min-width: 0;
    }
}

/* V2-17A4 Fix02 — balanced mapping review action bar */
.qn-import-mapping-review-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.qn-import-mapping-review-copy {
    min-width: 0;
}

.qn-import-mapping-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    align-items: stretch;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.qn-import-mapping-actions .qn-import-action-btn {
    width: 100%;
    min-width: 0;
    min-height: 2.65rem;
    padding-inline: 1rem;
}

.qn-import-mapping-actions > a,
.qn-import-mapping-actions > button {
    justify-self: stretch;
}

@media (max-width: 860px) {
    .qn-import-mapping-actions {
        grid-template-columns: 1fr;
    }
}

/* V2-17A5 — master data reconciliation workspace */
.qn-reconciliation-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

.qn-reconciliation-metric {
    position: relative;
    display: flex;
    align-items: center;
    gap: .8rem;
    min-height: 5.25rem;
    padding: 1rem 1.05rem;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .8rem;
    background: var(--color-background, #fff);
    overflow: hidden;
}

.qn-reconciliation-metric::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 0;
    height: 3px;
    background: var(--qn-reconcile-accent, #3b82f6);
}

.qn-reconciliation-metric-icon {
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    color: var(--qn-reconcile-accent, #3b82f6);
    background: color-mix(in srgb, var(--qn-reconcile-accent, #3b82f6) 12%, transparent);
    font-size: 1.15rem;
}

.qn-reconciliation-metric div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.qn-reconciliation-metric span:not(.qn-reconciliation-metric-icon) {
    font-size: .76rem;
    font-weight: 700;
    color: var(--color-secondary-foreground, #6b7280);
}

.qn-reconciliation-metric strong {
    font-size: 1.55rem;
    line-height: 1;
    font-weight: 800;
    color: var(--color-foreground, #111827);
}

.qn-reconciliation-metric-job { --qn-reconcile-accent: #3b82f6; }
.qn-reconciliation-metric-org { --qn-reconcile-accent: #06b6d4; }
.qn-reconciliation-metric-review { --qn-reconcile-accent: #f59e0b; }
.qn-reconciliation-metric-warning { --qn-reconcile-accent: #8b5cf6; }

.qn-reconciliation-section {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: .85rem;
    overflow: hidden;
    background: var(--color-background, #fff);
}

.qn-reconciliation-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    background: color-mix(in srgb, var(--color-primary, #2563eb) 3%, var(--color-background, #fff));
    border-bottom: 1px solid var(--color-border, #e5e7eb);
    border-inline-start: 3px solid var(--color-primary, #2563eb);
}

.qn-reconciliation-section-eyebrow {
    color: var(--color-primary, #2563eb);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom: .2rem;
}

.qn-reconciliation-section-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-foreground, #111827);
}

.qn-reconciliation-section-head p {
    margin: .2rem 0 0;
    font-size: .76rem;
    color: var(--color-secondary-foreground, #6b7280);
}

.qn-reconciliation-list {
    display: grid;
}

.qn-reconciliation-row {
    display: grid;
    grid-template-columns: minmax(12rem, 1.05fr) minmax(18rem, 1fr) minmax(24rem, 1.45fr);
    gap: 1rem;
    align-items: start;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid var(--color-border, #e5e7eb);
}

.qn-reconciliation-row:last-child { border-bottom: 0; }

.qn-reconciliation-source { min-width: 0; }
.qn-reconciliation-source-title {
    font-weight: 800;
    color: var(--color-foreground, #111827);
    overflow-wrap: anywhere;
}

.qn-reconciliation-source-meta {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    margin-top: .4rem;
    color: var(--color-secondary-foreground, #6b7280);
    font-size: .72rem;
}

.qn-reconciliation-decision { min-width: 0; }

.qn-reconciliation-definition {
    display: none;
    min-width: 0;
    padding: .85rem;
    border: 1px dashed color-mix(in srgb, var(--color-primary, #2563eb) 35%, var(--color-border, #e5e7eb));
    border-radius: .7rem;
    background: color-mix(in srgb, var(--color-primary, #2563eb) 3%, transparent);
}

.qn-reconciliation-definition.is-visible { display: block; }

.qn-reconciliation-new-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    align-items: start;
}

.qn-reconciliation-new-grid > .qn-validation-field {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.qn-reconciliation-new-grid .kt-form-label {
    display: flex;
    align-items: center;
    min-height: 1.25rem;
    margin: 0;
    font-size: .76rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--color-foreground, #111827);
}

.qn-reconciliation-new-grid .kt-input {
    width: 100%;
    min-width: 0;
    min-height: 2.45rem;
    box-sizing: border-box;
}

.qn-reconciliation-definition > .text-xs {
    display: block;
    margin-top: .75rem !important;
    padding-top: .65rem;
    border-top: 1px solid color-mix(in srgb, var(--color-primary, #2563eb) 14%, var(--color-border, #e5e7eb));
    line-height: 1.45;
}

.qn-reconciliation-actionbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid color-mix(in srgb, var(--color-primary, #2563eb) 20%, var(--color-border, #e5e7eb));
    border-radius: .85rem;
    background: color-mix(in srgb, var(--color-primary, #2563eb) 3%, var(--color-background, #fff));
}

.qn-reconciliation-action-copy {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-width: 0;
}

.qn-reconciliation-action-copy > div {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.qn-reconciliation-action-copy strong { font-weight: 800; }
.qn-reconciliation-action-copy span { font-size: .76rem; color: var(--color-secondary-foreground, #6b7280); }

.qn-reconciliation-action-icon {
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    background: color-mix(in srgb, var(--color-primary, #2563eb) 10%, transparent);
    color: var(--color-primary, #2563eb);
}

.qn-reconciliation-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(10rem, 1fr));
    gap: .7rem;
}

.qn-import-validation-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.qn-import-validation-actions > a,
.qn-import-validation-actions > form,
.qn-import-validation-actions > form > button {
    width: 100%;
    min-width: 0;
}

@media (max-width: 1180px) {
    .qn-reconciliation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .qn-reconciliation-row { grid-template-columns: minmax(12rem, .8fr) minmax(18rem, 1fr); }
    .qn-reconciliation-definition { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
    .qn-reconciliation-metrics { grid-template-columns: 1fr; }
    .qn-reconciliation-row { grid-template-columns: 1fr; }
    .qn-reconciliation-new-grid { grid-template-columns: 1fr; }
    .qn-reconciliation-actionbar { grid-template-columns: 1fr; }
    .qn-reconciliation-actions { grid-template-columns: 1fr; }
    .qn-import-validation-actions { grid-template-columns: 1fr; }
}

/* Central RTL validation-state placement.
   Field containers are commonly LTR even when the actual Arabic input is RTL;
   the indicator therefore follows the control direction explicitly instead of
   inheriting the container direction. This prevents the check/error icon from
   covering Arabic text. */
.qn-validation-state-indicator.is-rtl {
  inset-inline-end: auto;
  right: auto;
  left: 2.65rem;
}

.qn-validation-state-indicator.is-rtl.is-select {
  inset-inline-end: auto;
  right: auto;
  left: 2.7rem;
}

.qn-validation-field.qn-validation-rtl.has-validation-state-icon label.kt-input > input[dir="rtl"],
.qn-validation-field.qn-validation-rtl.has-validation-state-icon input.kt-input[dir="rtl"],
.qn-validation-field.qn-validation-rtl.has-validation-state-icon textarea.kt-textarea[dir="rtl"] {
  padding-left: 2.25rem !important;
}

.qn-validation-field.qn-validation-rtl.has-validation-state-icon [data-kt-select-wrapper] [data-kt-select-display] {
  padding-left: 3.9rem !important;
}

/* ==========================================================================
   CENTRAL SECTION / CARD HEADER FOUNDATION
   --------------------------------------------------------------------------
   Reusable header contract for cards and major sections. New modules should
   use <qn-section-header> instead of hand-building kt-card-header markup.
   ========================================================================== */
.qn-section-header {
  position: relative;
  min-height: 4.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem .9rem 1.15rem;
  border-bottom: 1px solid var(--color-border, #e5e7eb);
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--color-primary, #2563eb) 4.5%, var(--color-background, #fff)),
    var(--color-background, #fff) 58%);
}

[dir="rtl"] .qn-section-header {
  background: linear-gradient(270deg,
    color-mix(in srgb, var(--color-primary, #2563eb) 4.5%, var(--color-background, #fff)),
    var(--color-background, #fff) 58%);
}

.qn-section-header::before {
  content: "";
  position: absolute;
  inset-block: .75rem;
  inset-inline-start: 0;
  width: 3px;
  border-radius: 999px;
  background: var(--color-primary, #2563eb);
}

.qn-section-header-main,
.qn-section-header-actions,
.qn-section-header-title-row {
  display: flex;
  align-items: center;
}

.qn-section-header-main {
  min-width: 0;
  gap: .75rem;
}

.qn-section-header-copy {
  min-width: 0;
}

.qn-section-header-title-row {
  min-width: 0;
  flex-wrap: wrap;
  gap: .55rem;
}

.qn-section-header-title {
  margin: 0;
  color: var(--color-mono, #111827);
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.25;
}

.qn-section-header-eyebrow {
  margin-bottom: .18rem;
  color: var(--color-primary, #2563eb);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.qn-section-header-subtitle {
  margin-top: .18rem;
  max-width: 58rem;
  color: var(--color-secondary-foreground, #64748b);
  font-size: .72rem;
  line-height: 1.45;
}

.qn-section-header-actions {
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .5rem;
}

.qn-section-header-badge {
  flex: 0 0 auto;
}

.qn-section-header.is-compact {
  min-height: 3.6rem;
  padding-block: .7rem;
}

.dark .qn-section-header {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--color-primary, #3b82f6) 8%, var(--color-background, #111827)),
    var(--color-background, #111827) 58%);
}

[dir="rtl"].dark .qn-section-header {
  background: linear-gradient(270deg,
    color-mix(in srgb, var(--color-primary, #3b82f6) 8%, var(--color-background, #111827)),
    var(--color-background, #111827) 58%);
}

/* Central report export actions — always live inside the filter card header. */
.qn-report-export-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
}

.qn-report-export-btn {
  min-width: 8.8rem;
  justify-content: center;
}

.qn-report-export-btn.is-loading {
  pointer-events: none;
  opacity: .78;
}

@media (max-width: 767px) {
  .qn-section-header {
    align-items: stretch;
    flex-direction: column;
  }

  .qn-section-header-actions,
  .qn-report-export-actions {
    width: 100%;
  }

  .qn-section-header-actions > .kt-btn,
  .qn-section-header-actions > form,
  .qn-report-export-btn {
    flex: 1 1 auto;
  }
}

/* V2-17A7A UI polish — compact readiness KPIs + shared central card-header treatment. */
.qn-import-readiness-metric {
  min-height: 8.35rem;
}

.qn-import-readiness-metric-subline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  margin-top: .65rem;
  color: var(--color-secondary-foreground, #6b7280);
  font-size: .7rem;
  line-height: 1.35;
}

.qn-import-readiness-metric-subline strong {
  color: var(--color-mono, #111827);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.qn-import-metric-separator {
  opacity: .55;
}

.qn-import-readiness-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.qn-import-readiness-detail-card {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--color-border, #e5e7eb);
  border-radius: .85rem;
  background: color-mix(in srgb, var(--color-muted, #f3f4f6) 22%, var(--color-background, #fff));
}

.qn-import-readiness-gap-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.qn-import-readiness-gap-item {
  min-width: 0;
  padding: .7rem .8rem;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-muted, #f3f4f6) 48%, var(--color-background, #fff));
  font-size: .75rem;
}

.qn-import-readiness-gap-item span,
.qn-import-readiness-gap-item strong {
  display: block;
}

.qn-import-readiness-gap-item span {
  color: var(--color-secondary-foreground, #6b7280);
}

.qn-import-readiness-gap-item strong {
  margin-top: .2rem;
  color: var(--color-mono, #111827);
  font-size: .95rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 991px) {
  .qn-import-readiness-detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .qn-import-readiness-gap-grid {
    grid-template-columns: 1fr;
  }
}

/* V2-17A7B Controlled workforce import */
.qn-import-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.9rem; }
.qn-import-metric { border:1px solid var(--color-border); border-top:3px solid var(--color-primary); border-radius:.85rem; padding:1rem; background:var(--color-background); min-height:88px; display:flex; flex-direction:column; justify-content:space-between; gap:.35rem; }
.qn-import-metric span { font-size:.78rem; color:var(--color-secondary-foreground); font-weight:600; }
.qn-import-metric strong { font-size:1.65rem; line-height:1; }
.qn-import-metric-green { border-top-color:var(--color-success); }
.qn-import-metric-orange { border-top-color:var(--color-warning); }
.qn-import-metric-red { border-top-color:var(--color-danger); }
.qn-import-metric-blue { border-top-color:var(--color-info); }
.qn-import-commit-success { display:flex; align-items:center; gap:.9rem; padding:1rem; border:1px solid color-mix(in srgb,var(--color-success) 35%,var(--color-border)); border-radius:.85rem; background:color-mix(in srgb,var(--color-success) 7%,transparent); }
@media (max-width: 1100px) { .qn-import-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .qn-import-metric-grid { grid-template-columns:1fr; } }

/* ==========================================================================
   CENTRAL PAGE / DASHBOARD FOUNDATION — V2-17A7H2-R14A-R1
   --------------------------------------------------------------------------
   Mandatory shared primitives for application pages. New dashboards should
   compose these classes instead of adding page-level <style> blocks.
   ========================================================================== */
.qn-page-stack { display:flex; flex-direction:column; gap:1.25rem; }
.qn-page-header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:.9rem; }
.qn-page-title { margin:0; color:var(--color-mono,#111827); font-size:1.25rem; line-height:1.35; font-weight:650; }
.qn-page-subtitle { margin-top:.2rem; color:var(--color-secondary-foreground,#6b7280); font-size:.82rem; line-height:1.45; }
.qn-page-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }

.qn-status-banner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.9rem; padding:1rem 1.1rem; }
.qn-status-banner__main { display:flex; align-items:center; gap:.8rem; min-width:0; }
.qn-status-banner__icon { width:2.5rem; height:2.5rem; flex:0 0 2.5rem; display:grid; place-items:center; border-radius:.7rem; }
.qn-status-banner__icon > i { font-size:1.25rem; line-height:1; }
.qn-status-banner__title { color:var(--color-mono,#111827); font-size:.9rem; font-weight:600; }
.qn-status-banner__text { margin-top:.1rem; color:var(--color-secondary-foreground,#6b7280); font-size:.75rem; }
.qn-status-banner--success .qn-status-banner__icon { background:color-mix(in srgb,var(--color-success,#16a34a) 10%,transparent); color:var(--color-success,#16a34a); }
.qn-status-banner--warning .qn-status-banner__icon { background:color-mix(in srgb,var(--color-warning,#f59e0b) 12%,transparent); color:var(--color-warning,#f59e0b); }

.qn-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; }
.qn-kpi-card { min-width:0; text-decoration:none; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.qn-kpi-card:hover { border-color:color-mix(in srgb,var(--color-primary,#2563eb) 35%,var(--color-border,#e5e7eb)); box-shadow:0 4px 16px rgba(15,23,42,.05); transform:translateY(-1px); }
.qn-kpi-card .kt-card-content { min-height:116px; padding:1rem 1.05rem; display:flex; flex-direction:column; justify-content:space-between; gap:.65rem; }
.qn-kpi-card__top { display:flex; align-items:flex-start; justify-content:space-between; gap:.6rem; }
.qn-kpi-card__label { color:var(--color-secondary-foreground,#6b7280); font-size:.75rem; line-height:1.35; font-weight:500; }
.qn-kpi-card__icon { width:2rem; height:2rem; flex:0 0 2rem; display:grid; place-items:center; border-radius:.55rem; background:color-mix(in srgb,var(--color-primary,#2563eb) 8%,transparent); color:var(--color-primary,#2563eb); }
.qn-kpi-card__icon > i { font-size:1.05rem; line-height:1; }
.qn-kpi-card--warning .qn-kpi-card__icon { background:color-mix(in srgb,var(--color-warning,#f59e0b) 10%,transparent); color:var(--color-warning,#f59e0b); }
.qn-kpi-card--danger .qn-kpi-card__icon { background:color-mix(in srgb,var(--color-danger,#dc2626) 9%,transparent); color:var(--color-danger,#dc2626); }
.qn-kpi-card--success .qn-kpi-card__icon { background:color-mix(in srgb,var(--color-success,#16a34a) 9%,transparent); color:var(--color-success,#16a34a); }
.qn-kpi-card__value { color:var(--color-mono,#111827); font-size:1.65rem; line-height:1; font-weight:650; font-variant-numeric:tabular-nums; }
.qn-kpi-card__meta { margin-top:.3rem; color:var(--color-secondary-foreground,#6b7280); font-size:.69rem; line-height:1.35; }

.qn-dashboard-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; align-items:start; }
.qn-section-card .kt-card-header { min-height:50px; padding-inline:1rem; }
.qn-section-card .kt-card-title { gap:.45rem; font-size:.9rem; }
.qn-section-card .kt-card-content { padding:1rem; }
.qn-check-list { display:flex; flex-direction:column; }
.qn-check-item { min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:.8rem; padding:.65rem .9rem; border-bottom:1px dashed var(--color-border,#e5e7eb); }
.qn-check-item:last-child { border-bottom:0; }
.qn-check-item__main { display:flex; align-items:center; gap:.65rem; min-width:0; }
.qn-check-item__icon { width:1.8rem; height:1.8rem; flex:0 0 1.8rem; display:grid; place-items:center; border-radius:.5rem; background:var(--color-muted,#f3f4f6); color:var(--color-secondary-foreground,#6b7280); }
.qn-check-item__label { color:var(--color-mono,#111827); font-size:.78rem; font-weight:500; }
.qn-check-item__value { min-width:2rem; justify-content:center; font-variant-numeric:tabular-nums; }
.qn-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.qn-summary-tile { min-height:74px; padding:.8rem .9rem; border:1px solid var(--color-border,#e5e7eb); border-radius:.65rem; background:var(--color-background,#fff); }
.qn-summary-tile__label { color:var(--color-secondary-foreground,#6b7280); font-size:.7rem; }
.qn-summary-tile__value { margin-top:.25rem; color:var(--color-mono,#111827); font-size:1.35rem; line-height:1; font-weight:650; font-variant-numeric:tabular-nums; }
.qn-progress-track { height:.45rem; overflow:hidden; border-radius:999px; background:var(--color-muted,#eef2f7); }
.qn-progress-fill { height:100%; border-radius:inherit; background:var(--color-primary,#2563eb); }

/* Import History: moved from page-level <style> into the shared foundation. */
.qn-import-history-table { min-width:1740px; table-layout:auto; }
.qn-import-history-table thead th { white-space:nowrap; vertical-align:middle; }
.qn-import-history-table tbody td { padding-block:.72rem; vertical-align:middle; line-height:1.3; }
.qn-import-history-table .qn-ih-date { width:138px; min-width:138px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.qn-import-history-table .qn-ih-facility { width:220px; min-width:220px; }
.qn-import-history-table .qn-ih-file { width:255px; min-width:255px; }
.qn-import-history-table .qn-ih-facility-name,.qn-import-history-table .qn-ih-file-name { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qn-import-history-table .qn-ih-facility-name { max-width:210px; }
.qn-import-history-table .qn-ih-file-name { max-width:245px; }
.qn-import-history-table .qn-ih-subline { margin-top:.18rem; white-space:nowrap; }
.qn-import-history-table .qn-ih-metric { min-width:104px; text-align:center; white-space:nowrap; font-variant-numeric:tabular-nums; }
.qn-import-history-table .qn-ih-status,.qn-import-history-table .qn-ih-actions { min-width:112px; white-space:nowrap; }
[dir="rtl"] .qn-import-history-table .qn-ih-metric { text-align:center; }

@media (max-width:1199px) { .qn-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:991px) { .qn-dashboard-grid { grid-template-columns:1fr; } }
@media (max-width:575px) { .qn-kpi-grid,.qn-summary-grid { grid-template-columns:1fr; } .qn-page-actions { width:100%; } .qn-page-actions .kt-btn { flex:1 1 auto; justify-content:center; } .qn-status-banner { align-items:flex-start; } }
@media (max-width:767px) { .qn-import-history-table { min-width:1640px; } }
.qn-progress { width:100%; height:.45rem; display:block; overflow:hidden; border:0; border-radius:999px; background:var(--color-muted,#eef2f7); appearance:none; }
.qn-progress::-webkit-progress-bar { background:var(--color-muted,#eef2f7); border-radius:999px; }
.qn-progress::-webkit-progress-value { background:var(--color-primary,#2563eb); border-radius:999px; }
.qn-progress::-moz-progress-bar { background:var(--color-primary,#2563eb); border-radius:999px; }


/* R14A-R2 — Central actionable dashboard/drill-down standard */
.qn-action-card, .qn-check-item--action, .qn-summary-tile--action {
  cursor: pointer; text-decoration: none; color: inherit;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background-color .16s ease;
}
.qn-action-card:hover, .qn-summary-tile--action:hover {
  border-color: color-mix(in srgb, var(--color-primary, #1b84ff) 38%, var(--color-border, #e5e7eb));
  box-shadow: 0 5px 18px rgba(15,23,42,.07); transform: translateY(-1px);
}
.qn-check-item--action:hover { background: color-mix(in srgb, var(--color-primary, #1b84ff) 5%, transparent); }
.qn-check-item__end { display:flex; align-items:center; gap:.55rem; flex:0 0 auto; }
.qn-check-item__arrow { color:var(--color-muted-foreground,#94a3b8); font-size:.78rem; transition:transform .16s ease,color .16s ease; }
.qn-check-item--action:hover .qn-check-item__arrow { color:var(--color-primary,#1b84ff); transform:translateX(2px); }
[dir="rtl"] .qn-check-item__arrow { transform:scaleX(-1); }
[dir="rtl"] .qn-check-item--action:hover .qn-check-item__arrow { transform:scaleX(-1) translateX(2px); }
.qn-drilldown-banner { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border:1px solid color-mix(in srgb,var(--color-primary,#1b84ff) 24%,var(--color-border,#e5e7eb)); border-radius:.75rem; background:color-mix(in srgb,var(--color-primary,#1b84ff) 5%,transparent); }
.qn-drilldown-banner__main { display:flex; align-items:center; gap:.75rem; min-width:0; }
.qn-drilldown-banner__main > div { display:flex; flex-direction:column; gap:.1rem; min-width:0; }
.qn-drilldown-banner__main span { color:var(--color-muted-foreground,#64748b); font-size:.78rem; }
.qn-drilldown-banner__icon { width:2.15rem; height:2.15rem; border-radius:.6rem; display:grid; place-items:center; color:var(--color-primary,#1b84ff); background:color-mix(in srgb,var(--color-primary,#1b84ff) 10%,transparent); flex:0 0 auto; }
@media (max-width:640px){ .qn-drilldown-banner{align-items:flex-start;flex-direction:column}.qn-drilldown-banner .kt-btn{width:100%;justify-content:center} }

/* R14A-R3 — Registry actionable metric standard */
.qn-workforce-stats .qn-action-card { color:inherit; text-decoration:none; cursor:pointer; }
.qn-action-card__arrow { margin-inline-start:auto; color:var(--color-muted-foreground,#94a3b8); opacity:.55; transition:transform .15s ease,color .15s ease,opacity .15s ease; }
.qn-action-card:hover .qn-action-card__arrow { color:var(--color-primary,#1b84ff); opacity:1; transform:translateX(2px); }
[dir="rtl"] .qn-action-card:hover .qn-action-card__arrow { transform:translateX(-2px) rotate(180deg); }
[dir="rtl"] .qn-action-card__arrow { transform:rotate(180deg); }
.qn-readiness-metric--action { position:relative; color:inherit; text-decoration:none; cursor:pointer; padding-inline-end:2rem; transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease; }
.qn-readiness-metric--action:hover { transform:translateY(-1px); box-shadow:0 4px 14px rgba(15,23,42,.07); border-color:color-mix(in srgb,var(--color-primary,#1b84ff) 32%,var(--color-border,#e5e7eb)); }
.qn-readiness-metric__arrow { position:absolute; inset-inline-end:.6rem; top:50%; transform:translateY(-50%); font-size:.72rem; opacity:.45; }
.qn-readiness-metric--action:hover .qn-readiness-metric__arrow { opacity:1; color:var(--color-primary,#1b84ff); }
[dir="rtl"] .qn-readiness-metric__arrow { transform:translateY(-50%) rotate(180deg); }

/* QN Central UI — Employee 360 command strip (R14B) */
.qn-profile-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}
.qn-profile-command-card{min-width:0;text-align:inherit;color:inherit;text-decoration:none;background:var(--color-background,#fff);border:1px solid var(--color-border,#e5e7eb);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.qn-profile-command-card:hover{border-color:color-mix(in srgb,var(--color-primary,#1b84ff) 35%,var(--color-border,#e5e7eb));box-shadow:0 4px 16px rgba(15,23,42,.05);transform:translateY(-1px)}
.qn-profile-command-card .kt-card-content{min-height:96px;padding:.9rem 1rem;display:flex;align-items:center;gap:.8rem}
.qn-profile-command-icon{width:2.35rem;height:2.35rem;flex:0 0 2.35rem;display:grid;place-items:center;border-radius:.65rem;background:color-mix(in srgb,var(--color-primary,#1b84ff) 9%,transparent);color:var(--color-primary,#1b84ff)}
.qn-profile-command-card--warning .qn-profile-command-icon{background:color-mix(in srgb,var(--color-warning,#f59e0b) 11%,transparent);color:var(--color-warning,#f59e0b)}
.qn-profile-command-card--success .qn-profile-command-icon{background:color-mix(in srgb,var(--color-success,#16a34a) 10%,transparent);color:var(--color-success,#16a34a)}
.qn-profile-command-label{font-size:.7rem;line-height:1.25;color:var(--color-secondary-foreground,#6b7280);margin-bottom:.2rem}
.qn-profile-command-value{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;line-height:1.3;color:var(--color-mono,#111827)}
.qn-profile-command-meta{margin-top:.18rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;line-height:1.3;color:var(--color-secondary-foreground,#6b7280)}
.qn-profile-tabs-shell>.qn-profile-tabs{position:sticky;top:var(--qn-sticky-offset,70px);z-index:20;background:var(--color-background,#fff);border-radius:.65rem;padding-inline:.35rem;box-shadow:0 1px 0 color-mix(in srgb,var(--color-border,#e5e7eb) 85%,transparent)}
@media(max-width:1199px){.qn-profile-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575px){.qn-profile-command-grid{grid-template-columns:1fr}.qn-profile-command-card .kt-card-content{min-height:82px}}

/* R14B2: actionable profile data-quality gaps. Behavior is shared; pages only declare target step/field. */
.qn-profile-gap--action{appearance:none;font:inherit;text-decoration:none;cursor:pointer;text-align:inherit;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}
.qn-profile-gap--action:hover{border-color:color-mix(in srgb,var(--color-warning,#f59e0b) 45%,var(--color-border,#e5e7eb));background:color-mix(in srgb,var(--color-warning,#f59e0b) 8%,transparent);transform:translateY(-1px)}
.qn-profile-gap--action:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary,#1b84ff) 55%,transparent);outline-offset:2px}
.qn-profile-gap--action .qn-profile-gap__arrow{margin-inline-start:.15rem;font-size:.72rem;opacity:.55;transition:transform .15s ease,opacity .15s ease}
.qn-profile-gap--action:hover .qn-profile-gap__arrow{opacity:1;transform:translateX(2px)}
[dir=rtl] .qn-profile-gap--action .qn-profile-gap__arrow{transform:rotate(180deg)}
[dir=rtl] .qn-profile-gap--action:hover .qn-profile-gap__arrow{transform:rotate(180deg) translateX(2px)}

/* R14B3 — employee profile governance: documents/evidence + audit summary */
.qn-profile-governance-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem}
.qn-profile-governance-card{min-width:0}
.qn-profile-governance-empty{display:flex;align-items:center;gap:.85rem;min-height:5rem;color:var(--tw-prose-body,inherit)}
.qn-profile-document-list,.qn-profile-audit-list{display:grid;gap:.15rem}
.qn-profile-document-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.7rem 0;border-bottom:1px dashed var(--kt-border-color,#e5e7eb)}
.qn-profile-document-item:last-child,.qn-profile-audit-item:last-child{border-bottom:0}
.qn-profile-document-icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.65rem;background:var(--kt-primary-light,#eef6ff);color:var(--kt-primary,#1b84ff);font-size:1rem}
.qn-profile-document-body{min-width:0}
.qn-text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qn-profile-audit-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:start;padding:.65rem 0;border-bottom:1px dashed var(--kt-border-color,#e5e7eb)}
.qn-profile-audit-dot{width:.6rem;height:.6rem;margin-top:.35rem;border-radius:999px;background:var(--kt-primary,#1b84ff);box-shadow:0 0 0 4px var(--kt-primary-light,#eef6ff)}
.qn-profile-audit-more{margin-top:.75rem;padding:.65rem .8rem;border-radius:.65rem;background:var(--kt-gray-100,#f9fafb);font-size:.75rem;color:var(--kt-gray-600,#78829d);text-align:center}
@media (max-width:991.98px){.qn-profile-governance-grid{grid-template-columns:1fr}}
@media (max-width:575.98px){.qn-profile-document-item{grid-template-columns:auto minmax(0,1fr)}.qn-profile-document-item>.kt-btn{grid-column:1/-1;width:100%}}

/* R14C1-R1 — Import Reconciliation professional workspace */
.qn-reconciliation-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--color-border,#e5e7eb);border-radius:.85rem;background:var(--color-background,#fff)}
.qn-reconciliation-hero__main{display:flex;align-items:center;gap:.85rem;min-width:0}.qn-reconciliation-hero__icon{width:2.35rem;height:2.35rem;flex:0 0 2.35rem;display:grid;place-items:center;border-radius:.65rem}.qn-reconciliation-hero__title{font-size:.9rem;font-weight:650;color:var(--color-mono,#111827)}.qn-reconciliation-hero__meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin-top:.2rem;font-size:.72rem;color:var(--color-secondary-foreground,#6b7280)}.qn-reconciliation-hero__meta strong{color:var(--color-mono,#111827);font-variant-numeric:tabular-nums}.qn-reconciliation-hero--success{border-color:color-mix(in srgb,var(--color-success,#16a34a) 25%,var(--color-border,#e5e7eb));background:color-mix(in srgb,var(--color-success,#16a34a) 3%,var(--color-background,#fff))}.qn-reconciliation-hero--success .qn-reconciliation-hero__icon{background:color-mix(in srgb,var(--color-success,#16a34a) 10%,transparent);color:var(--color-success,#16a34a)}.qn-reconciliation-hero--warning .qn-reconciliation-hero__icon{background:color-mix(in srgb,var(--color-warning,#f59e0b) 11%,transparent);color:var(--color-warning,#f59e0b)}
.qn-reconciliation-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:1rem;align-items:stretch}.qn-reconciliation-panel{min-width:0;height:100%}.qn-reconciliation-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.qn-reconciliation-metric{position:relative;min-width:0;min-height:76px;padding:.75rem .8rem;border:1px solid var(--color-border,#e5e7eb);border-radius:.65rem;background:color-mix(in srgb,var(--color-muted,#f3f4f6) 24%,var(--color-background,#fff));text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.qn-reconciliation-metric span{display:block;min-height:2em;font-size:.68rem;line-height:1.25;color:var(--color-secondary-foreground,#6b7280)}.qn-reconciliation-metric strong{display:block;margin-top:.3rem;font-size:1.35rem;line-height:1;font-weight:700;color:var(--color-mono,#111827);font-variant-numeric:tabular-nums}.qn-reconciliation-metric>i{position:absolute;inset-inline-end:.65rem;bottom:.7rem;font-size:.7rem;opacity:.45}.qn-reconciliation-metric[href]:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--color-primary,#1b84ff) 35%,var(--color-border,#e5e7eb));box-shadow:0 4px 12px rgba(15,23,42,.05)}.qn-reconciliation-metric--success{border-inline-start:3px solid var(--color-success,#16a34a)}.qn-reconciliation-metric--warning{border-inline-start:3px solid var(--color-warning,#f59e0b)}.qn-reconciliation-metric--danger{border-inline-start:3px solid var(--color-danger,#dc2626)}.qn-reconciliation-metric--info{border-inline-start:3px solid var(--color-info,#0ea5e9)}
.qn-reconciliation-state-list{border-top:1px dashed var(--color-border,#e5e7eb)}.qn-reconciliation-state-list .qn-check-item{padding-inline:.25rem}.qn-reconciliation-state-list .qn-check-item__icon{background:color-mix(in srgb,var(--color-primary,#1b84ff) 7%,transparent);color:var(--color-primary,#1b84ff)}
.qn-reconciliation-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.qn-reconciliation-summary-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;padding:.65rem .75rem;border-bottom:1px dashed var(--color-border,#e5e7eb)}.qn-reconciliation-summary-item span{font-size:.72rem;line-height:1.25;color:var(--color-secondary-foreground,#6b7280)}.qn-reconciliation-summary-item strong{font-size:1rem;font-weight:700;color:var(--color-mono,#111827);font-variant-numeric:tabular-nums}.qn-reconciliation-summary-item--warning strong{color:var(--color-warning,#f59e0b)}
.qn-reconciliation-identity .kt-card-content{padding:1rem}.qn-reconciliation-identity-grid{display:grid;grid-template-columns:1.1fr .9fr .75fr 1.6fr;gap:0}.qn-reconciliation-identity-item{min-width:0;padding:.15rem 1rem;border-inline-end:1px dashed var(--color-border,#e5e7eb)}.qn-reconciliation-identity-item:first-child{padding-inline-start:0}.qn-reconciliation-identity-item:last-child{border-inline-end:0;padding-inline-end:0}.qn-reconciliation-identity-item span{display:block;font-size:.67rem;color:var(--color-secondary-foreground,#6b7280)}.qn-reconciliation-identity-item strong{display:block;margin-top:.3rem;font-size:.78rem;line-height:1.35;font-weight:600;color:var(--color-mono,#111827);overflow-wrap:anywhere}.qn-reconciliation-identity-item--hash strong{font-size:.68rem;color:var(--color-secondary-foreground,#6b7280)}
@media(max-width:1199px){.qn-reconciliation-grid{grid-template-columns:1fr}.qn-reconciliation-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.qn-reconciliation-identity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.qn-reconciliation-identity-item{padding:0;border-inline-end:0}}
@media(max-width:767px){.qn-reconciliation-metrics,.qn-reconciliation-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-reconciliation-hero{align-items:flex-start;flex-direction:column}.qn-reconciliation-hero>.kt-btn{width:100%;justify-content:center}}
@media(max-width:575px){.qn-reconciliation-metrics,.qn-reconciliation-summary-grid,.qn-reconciliation-identity-grid{grid-template-columns:1fr}}

/* V2-17A7H2-R15E-R3 — Registry lifecycle KPI clarity. */
@media (min-width: 1280px) {
  .qn-workforce-stats.qn-workforce-stats--lifecycle { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* V2-18A — Workforce Reporting Center */
.qn-workforce-report-context-grid{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;gap:1rem;align-items:end}.qn-workforce-report-context-actions{display:flex;gap:.625rem;align-items:center;justify-content:flex-end;padding-bottom:.125rem}.qn-reporting-foundation-note{display:flex;align-items:center;gap:.85rem;padding:1rem 1.15rem;border:1px solid color-mix(in srgb,var(--color-primary,#2563eb) 22%,var(--color-border,#e5e7eb));background:color-mix(in srgb,var(--color-primary,#2563eb) 5.5%,var(--color-background,#fff));border-radius:.85rem}.qn-reporting-foundation-note>i{font-size:1.35rem;color:var(--color-primary,#2563eb)}.qn-reporting-foundation-note div{display:grid;gap:.15rem}.qn-reporting-foundation-note span{font-size:.8rem;color:var(--color-muted-foreground,#64748b)}.qn-workforce-report-section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.qn-workforce-report-section-head h2{font-size:1rem;font-weight:700}.qn-workforce-report-section-head p{font-size:.8rem;color:var(--color-muted-foreground,#64748b);margin-top:.2rem}.qn-workforce-report-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.qn-workforce-report-card{--qn-report-tone:59 130 246;border-color:rgb(var(--qn-report-tone)/.18);overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.qn-workforce-report-card:hover{transform:translateY(-1px);border-color:rgb(var(--qn-report-tone)/.36);box-shadow:0 8px 22px rgb(15 23 42/.055)}.qn-workforce-report-card>.kt-card-content{display:flex;gap:1rem;padding:1.15rem}.qn-workforce-report-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:.75rem;background:rgb(var(--qn-report-tone)/.1);color:rgb(var(--qn-report-tone));font-size:1.2rem}.qn-workforce-report-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.qn-workforce-report-card h3{font-size:.92rem;font-weight:700}.qn-workforce-report-card p{font-size:.79rem;line-height:1.55;color:var(--color-muted-foreground,#64748b);margin-top:.35rem}.qn-workforce-report-tags,.qn-workforce-report-card-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}.qn-workforce-report-tags span{font-size:.7rem;padding:.2rem .45rem;border-radius:.4rem;background:rgb(var(--qn-report-tone)/.075);color:rgb(var(--qn-report-tone));font-weight:600}.qn-workforce-report-card.is-operational{--qn-report-tone:16 185 129}.qn-workforce-report-card.is-leave{--qn-report-tone:14 165 233}.qn-workforce-report-card.is-transfer{--qn-report-tone:139 92 246}.qn-workforce-report-card.is-termination{--qn-report-tone:244 63 94}.qn-workforce-report-card.is-quality{--qn-report-tone:245 158 11}.qn-workforce-report-card.is-pack{--qn-report-tone:6 182 212}@media(max-width:1100px){.qn-workforce-report-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-workforce-report-context-actions{justify-content:flex-start}}@media(max-width:760px){.qn-workforce-report-catalog,.qn-workforce-report-context-grid{grid-template-columns:1fr}.qn-workforce-report-context-actions{flex-wrap:wrap}.qn-workforce-report-section-head{align-items:flex-start;flex-direction:column}.qn-workforce-report-card-head{flex-wrap:wrap}}

/* V2-18B — Workforce Census & Distribution */
.qn-reporting-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.qn-reporting-kpi-grid .kt-card-content{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem}.qn-reporting-kpi-grid strong{font-size:1.65rem;line-height:1;font-weight:700}.qn-reporting-kpi-grid span{font-size:.78rem;color:var(--muted-foreground)}.qn-reporting-distribution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.qn-reporting-distribution-grid .qn-data-table td,.qn-reporting-distribution-grid .qn-data-table th{padding:.65rem .8rem}.qn-reporting-distribution-grid .qn-data-card{min-width:0}@media(max-width:1199px){.qn-reporting-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-reporting-distribution-grid{grid-template-columns:1fr}}@media(max-width:767px){.qn-reporting-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V2-18B-R5 — Workforce Census professional report surface */
.qn-census-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.qn-census-kpi{--qn-census-tone:59 130 246;border-color:rgb(var(--qn-census-tone)/.18);background:linear-gradient(135deg,rgb(var(--qn-census-tone)/.075),transparent 62%)}.qn-census-kpi>.kt-card-content{display:flex;align-items:center;gap:.85rem;padding:1rem}.qn-census-kpi-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:.75rem;background:rgb(var(--qn-census-tone)/.12);color:rgb(var(--qn-census-tone));font-size:1.15rem}.qn-census-kpi strong{display:block;font-size:1.6rem;line-height:1;font-weight:750}.qn-census-kpi span:not(.qn-census-kpi-icon){display:block;margin-top:.3rem;font-size:.76rem;color:var(--color-muted-foreground,#64748b);line-height:1.25}.qn-census-kpi.is-active{--qn-census-tone:16 185 129}.qn-census-kpi.is-ended{--qn-census-tone:244 63 94}.qn-census-kpi.is-outside{--qn-census-tone:245 158 11}.qn-census-kpi.is-study{--qn-census-tone:14 165 233}.qn-census-filter-card{overflow:visible}.qn-census-filter-head,.qn-census-table-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem}.qn-census-filter-title,.qn-census-table-title{display:flex;align-items:center;gap:.75rem}.qn-census-filter-title>span,.qn-census-table-title>span,.qn-census-distribution-head>span{display:grid;place-items:center;width:36px;height:36px;border-radius:.65rem;background:rgb(59 130 246/.1);color:rgb(59 130 246);flex:0 0 36px}.qn-census-filter-title h2,.qn-census-table-title h2{font-size:.9rem;font-weight:700}.qn-census-filter-title p,.qn-census-table-title p{margin-top:.12rem;font-size:.75rem;color:var(--color-muted-foreground,#64748b)}.qn-census-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end;padding-top:.15rem}.qn-census-filter-grid>div{min-width:0}.qn-census-filter-grid .kt-form-label{display:block;margin-bottom:.35rem;font-size:.75rem;font-weight:650}.qn-census-filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.55rem;padding-top:.15rem}.qn-census-distribution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.qn-census-distribution-card{min-width:0;overflow:hidden}.qn-census-distribution-head{display:flex;align-items:center;gap:.65rem;padding:.9rem 1rem;border-bottom:1px solid var(--color-border,#e5e7eb)}.qn-census-distribution-head h3{font-size:.84rem;font-weight:700}.qn-census-distribution-list{padding:.35rem .9rem .55rem}.qn-census-distribution-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.62rem .1rem;border-bottom:1px dotted color-mix(in srgb,var(--color-border,#e5e7eb) 82%,transparent)}.qn-census-distribution-row:last-child{border-bottom:0}.qn-census-distribution-copy{min-width:0}.qn-census-distribution-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.qn-census-distribution-copy span{display:block;margin-top:.14rem;font-size:.68rem;color:var(--color-muted-foreground,#64748b)}.qn-census-distribution-value{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}.qn-census-distribution-value b{font-size:.72rem;min-width:42px;text-align:end}.qn-census-mini-progress{display:block;width:54px;height:5px;border-radius:999px;background:rgb(148 163 184/.18);overflow:hidden}.qn-census-mini-progress{appearance:none;border:0}.qn-census-mini-progress::-webkit-progress-bar{background:rgb(148 163 184/.18);border-radius:999px}.qn-census-mini-progress::-webkit-progress-value{background:rgb(59 130 246);border-radius:999px}.qn-census-mini-progress::-moz-progress-bar{background:rgb(59 130 246);border-radius:999px}.qn-census-empty{padding:1.5rem;text-align:center;color:var(--color-muted-foreground,#64748b);font-size:.76rem}.qn-census-workforce-card{overflow:hidden}.qn-census-table-head{border-bottom:1px solid var(--color-border,#e5e7eb)}.qn-census-table-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--color-muted,#f8fafc) 68%,transparent);border-bottom:1px solid var(--color-border,#e5e7eb)}.qn-census-search-form{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.qn-census-search-form .kt-input{max-width:420px;min-width:260px}.qn-census-page-size{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}.qn-census-page-size label{font-size:.72rem;color:var(--color-muted-foreground,#64748b);white-space:nowrap}.qn-census-page-size .kt-select{width:82px}.qn-census-employee-table th,.qn-census-employee-table td{padding:.68rem .8rem;vertical-align:middle}.qn-census-employee-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary,#3b82f6) 3.5%,transparent)}.qn-census-registry{font-size:.72rem;font-weight:650;color:var(--color-muted-foreground,#64748b)}.qn-census-employee-name{font-size:.76rem;font-weight:650;color:var(--color-primary,#2563eb)}.qn-census-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-top:1px solid var(--color-border,#e5e7eb);font-size:.72rem;color:var(--color-muted-foreground,#64748b)}.qn-census-pagination nav{display:flex;align-items:center;gap:.5rem}.qn-census-page-indicator{padding:0 .25rem;white-space:nowrap}@media(max-width:1199px){.qn-census-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-census-distribution-grid{grid-template-columns:1fr}.qn-census-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.qn-census-kpi-grid,.qn-census-filter-grid{grid-template-columns:1fr}.qn-census-filter-head,.qn-census-table-head,.qn-census-table-tools,.qn-census-pagination{align-items:stretch;flex-direction:column}.qn-census-filter-actions{justify-content:stretch}.qn-census-filter-actions>*{flex:1}.qn-census-search-form{flex-wrap:wrap}.qn-census-search-form .kt-input{max-width:none;min-width:100%;width:100%}.qn-census-page-size{justify-content:space-between}.qn-census-pagination nav{justify-content:space-between}}

/* V2-18C — Employment Lifecycle reporting */
.qn-lifecycle-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem}.qn-lifecycle-kpi{--qn-life-tone:59 130 246;border-color:rgb(var(--qn-life-tone)/.2);background:linear-gradient(135deg,rgb(var(--qn-life-tone)/.08),transparent 68%)}.qn-lifecycle-kpi .kt-card-content{display:flex;align-items:center;gap:.7rem;padding:.9rem}.qn-lifecycle-kpi .kt-card-content>span{display:grid;place-items:center;width:38px;height:38px;border-radius:.7rem;background:rgb(var(--qn-life-tone)/.12);color:rgb(var(--qn-life-tone));flex:0 0 38px}.qn-lifecycle-kpi strong{display:block;font-size:1.45rem;line-height:1}.qn-lifecycle-kpi small{display:block;margin-top:.25rem;font-size:.7rem;color:var(--color-muted-foreground,#64748b);line-height:1.2}.qn-lifecycle-kpi.is-practice{--qn-life-tone:16 185 129}.qn-lifecycle-kpi.is-outside{--qn-life-tone:245 158 11}.qn-lifecycle-kpi.is-study{--qn-life-tone:14 165 233}.qn-lifecycle-kpi.is-pending{--qn-life-tone:249 115 22}.qn-lifecycle-kpi.is-break{--qn-life-tone:139 92 246}.qn-lifecycle-kpi.is-ended{--qn-life-tone:244 63 94}.qn-lifecycle-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end}.qn-lifecycle-filter-grid>div{min-width:0}.qn-lifecycle-filter-grid .kt-form-label{display:block;margin-bottom:.35rem;font-size:.75rem;font-weight:650}.qn-lifecycle-filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.55rem}.qn-lifecycle-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--color-border,#e5e7eb)}.qn-lifecycle-section-head>div{display:flex;align-items:center;gap:.7rem}.qn-lifecycle-section-head>div>span{display:grid;place-items:center;width:36px;height:36px;border-radius:.65rem;background:rgb(59 130 246/.1);color:rgb(59 130 246)}.qn-lifecycle-section-head h2{font-size:.86rem;font-weight:700}.qn-lifecycle-section-head p{font-size:.72rem;color:var(--color-muted-foreground,#64748b);margin-top:.1rem}.qn-lifecycle-current-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;padding:1rem}.qn-lifecycle-current-item{padding:.8rem;border:1px solid var(--color-border,#e5e7eb);border-radius:.7rem;background:color-mix(in srgb,var(--color-muted,#f8fafc) 60%,transparent)}.qn-lifecycle-current-item strong{font-size:1.2rem}.qn-lifecycle-current-item span{display:block;margin-top:.2rem;font-size:.7rem;color:var(--color-muted-foreground,#64748b)}.qn-lifecycle-table th,.qn-lifecycle-table td{padding:.68rem .75rem;vertical-align:middle}.qn-lifecycle-state{white-space:nowrap}.qn-lifecycle-state.is-ended{border-color:rgb(244 63 94/.28);color:rgb(225 29 72);background:rgb(244 63 94/.06)}.qn-lifecycle-state.is-outside{border-color:rgb(245 158 11/.3);color:rgb(180 83 9);background:rgb(245 158 11/.06)}.qn-lifecycle-state.is-study{border-color:rgb(14 165 233/.28);color:rgb(2 132 199);background:rgb(14 165 233/.06)}@media(max-width:1199px){.qn-lifecycle-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-lifecycle-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-lifecycle-current-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.qn-lifecycle-kpi-grid,.qn-lifecycle-filter-grid,.qn-lifecycle-current-strip{grid-template-columns:1fr}.qn-lifecycle-filter-actions{justify-content:stretch}.qn-lifecycle-filter-actions>*{flex:1}}

/* V2-18C-R1 — Operational-state cards: stronger visual hierarchy and state-aware tones. */
.qn-lifecycle-current-item{--qn-current-tone:59 130 246;display:flex;align-items:center;gap:.7rem;min-height:74px;padding:.82rem .9rem;border-color:rgb(var(--qn-current-tone)/.22);background:linear-gradient(135deg,rgb(var(--qn-current-tone)/.10),rgb(var(--qn-current-tone)/.025) 72%);box-shadow:0 1px 2px rgb(15 23 42/.03)}
.qn-lifecycle-current-icon{display:grid!important;place-items:center;width:34px;height:34px;border-radius:.65rem;background:rgb(var(--qn-current-tone)/.13);color:rgb(var(--qn-current-tone));flex:0 0 34px;margin:0!important}
.qn-lifecycle-current-item>div{min-width:0}.qn-lifecycle-current-item strong{display:block;font-size:1.3rem;line-height:1;color:var(--color-foreground,#111827)}.qn-lifecycle-current-item>div>span{display:block;margin-top:.28rem;font-size:.72rem;font-weight:600;color:rgb(var(--qn-current-tone));line-height:1.25}
.qn-lifecycle-current-item.is-practice{--qn-current-tone:16 185 129}.qn-lifecycle-current-item.is-outside{--qn-current-tone:245 158 11}.qn-lifecycle-current-item.is-study{--qn-current-tone:14 165 233}.qn-lifecycle-current-item.is-pending{--qn-current-tone:249 115 22}.qn-lifecycle-current-item.is-break{--qn-current-tone:139 92 246}.qn-lifecycle-current-item.is-ended{--qn-current-tone:244 63 94}

/* V2-18D — Official Leave & Absence reporting */
.qn-leave-report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem}.qn-leave-report-kpi{--qn-leave-tone:59 130 246;border-color:rgb(var(--qn-leave-tone)/.2);background:linear-gradient(135deg,rgb(var(--qn-leave-tone)/.09),transparent 70%)}.qn-leave-report-kpi .kt-card-content{display:flex;align-items:center;gap:.7rem;padding:.9rem}.qn-leave-report-kpi .kt-card-content>span{display:grid;place-items:center;width:38px;height:38px;border-radius:.7rem;background:rgb(var(--qn-leave-tone)/.13);color:rgb(var(--qn-leave-tone));flex:0 0 38px}.qn-leave-report-kpi strong{display:block;font-size:1.4rem;line-height:1}.qn-leave-report-kpi small{display:block;margin-top:.25rem;font-size:.69rem;line-height:1.2;color:var(--color-muted-foreground,#64748b)}.qn-leave-report-kpi.is-leave{--qn-leave-tone:16 185 129}.qn-leave-report-kpi.is-absence{--qn-leave-tone:244 63 94}.qn-leave-report-kpi.is-study{--qn-leave-tone:14 165 233}.qn-leave-report-kpi.is-records{--qn-leave-tone:59 130 246}.qn-leave-report-kpi.is-days{--qn-leave-tone:20 184 166}.qn-leave-report-kpi.is-pending{--qn-leave-tone:245 158 11}.qn-leave-report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end}.qn-leave-report-filter-grid>div{min-width:0}.qn-leave-report-filter-grid .kt-form-label{display:block;margin-bottom:.35rem;font-size:.75rem;font-weight:650}.qn-leave-report-filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.55rem}.qn-leave-pending-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;padding:1rem}.qn-leave-pending-item{display:flex;align-items:center;gap:.7rem;padding:.75rem;border:1px solid rgb(245 158 11/.22);border-radius:.7rem;background:rgb(245 158 11/.055);color:inherit;text-decoration:none}.qn-leave-pending-item>span{display:grid;place-items:center;width:34px;height:34px;border-radius:.6rem;background:rgb(245 158 11/.12);color:rgb(180 83 9);flex:0 0 34px}.qn-leave-pending-item div{min-width:0}.qn-leave-pending-item strong,.qn-leave-pending-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qn-leave-pending-item strong{font-size:.75rem}.qn-leave-pending-item small{margin-top:.15rem;font-size:.66rem;color:var(--color-muted-foreground,#64748b)}.qn-leave-report-table th,.qn-leave-report-table td{padding:.66rem .72rem;vertical-align:middle}.qn-leave-report-table th{white-space:nowrap}.qn-leave-report-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary,#3b82f6) 3%,transparent)}@media(max-width:1199px){.qn-leave-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-leave-report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-leave-pending-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.qn-leave-report-kpis,.qn-leave-report-filter-grid,.qn-leave-pending-strip{grid-template-columns:1fr}.qn-leave-report-filter-actions{justify-content:stretch}.qn-leave-report-filter-actions>*{flex:1}}

/* V2-18E — Transfers & Reassignment official report */
.qn-transfer-report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem}
.qn-transfer-report-kpi{--qn-transfer-tone:59 130 246;border-color:rgb(var(--qn-transfer-tone)/.2)!important;background:linear-gradient(135deg,rgb(var(--qn-transfer-tone)/.09),transparent 70%)}
.qn-transfer-report-kpi .qn-transfer-stat-content{padding:.9rem;min-height:76px}
.qn-transfer-report-kpi:nth-child(1){--qn-transfer-tone:59 130 246}.qn-transfer-report-kpi:nth-child(2){--qn-transfer-tone:139 92 246}.qn-transfer-report-kpi:nth-child(3){--qn-transfer-tone:14 165 233}.qn-transfer-report-kpi:nth-child(4){--qn-transfer-tone:245 158 11}.qn-transfer-report-kpi:nth-child(5){--qn-transfer-tone:16 185 129}.qn-transfer-report-kpi:nth-child(6){--qn-transfer-tone:100 116 139}
.qn-transfer-report-kpi .qn-transfer-stat-icon{background:rgb(var(--qn-transfer-tone)/.13)!important;color:rgb(var(--qn-transfer-tone))!important}
.qn-transfer-report-kpi .qn-transfer-stat-copy strong{font-size:1.4rem;line-height:1}.qn-transfer-report-kpi .qn-transfer-stat-copy span{font-size:.69rem;line-height:1.2;color:var(--color-muted-foreground,#64748b)}
.qn-transfer-report-filters{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:end}.qn-transfer-report-filter{min-width:0}.qn-transfer-report-search{grid-column:span 2}.qn-transfer-report-filter .kt-form-label{display:block;margin-bottom:.35rem;font-size:.75rem;font-weight:650}.qn-transfer-report-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.55rem}
.qn-transfer-report-table th,.qn-transfer-report-table td{padding:.66rem .72rem;vertical-align:middle}.qn-transfer-report-table th{white-space:nowrap}.qn-transfer-report-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary,#3b82f6) 3%,transparent)}.qn-transfer-workflow-dates{min-width:170px}.qn-transfer-workflow-dates>div{display:flex;justify-content:space-between;gap:.6rem;font-size:.68rem}.qn-transfer-workflow-dates span{color:var(--color-muted-foreground,#64748b)}
@media(max-width:1199px){.qn-transfer-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-transfer-report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-transfer-report-search{grid-column:span 2}}@media(max-width:767px){.qn-transfer-report-kpis,.qn-transfer-report-filters{grid-template-columns:1fr}.qn-transfer-report-search{grid-column:auto}.qn-transfer-report-actions{justify-content:stretch}.qn-transfer-report-actions>*{flex:1}}

/* V2-18E-R1 — compact transfer reporting context */
.qn-transfer-report-filters--compact{display:block!important}.qn-transfer-filter-grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:.75rem .85rem;align-items:end}.qn-transfer-filter-grid .qn-transfer-report-search{grid-column:span 2}.qn-transfer-filter-grid .qn-transfer-filter-half{grid-column:span 2}.qn-transfer-filter-grid .qn-transfer-filter-pagesize{max-width:11rem}.qn-transfer-filter-grid .qn-transfer-report-actions{grid-column:span 3;display:flex;align-items:end;justify-content:flex-end;gap:.55rem;min-height:2.6rem}.qn-transfer-filter-grid .kt-input,.qn-transfer-filter-grid .kt-select{min-height:2.55rem}.qn-transfer-filter-grid .kt-form-label{margin-bottom:.3rem;font-size:.75rem;font-weight:650}.qn-transfer-report-card{margin-bottom:1rem}
@media(max-width:1199px){.qn-transfer-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-transfer-filter-grid .qn-transfer-report-search,.qn-transfer-filter-grid .qn-transfer-filter-half{grid-column:span 1}.qn-transfer-filter-grid .qn-transfer-report-actions{grid-column:span 1}}
@media(max-width:767px){.qn-transfer-filter-grid{grid-template-columns:1fr}.qn-transfer-filter-grid .qn-transfer-report-actions{grid-column:auto;justify-content:stretch}.qn-transfer-filter-grid .qn-transfer-report-actions>*{flex:1}.qn-transfer-filter-grid .qn-transfer-filter-pagesize{max-width:none}}


/* V2-18F — Contract Termination official reporting refinement */
.qn-contract-report-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.85rem}
.qn-contract-report-kpi{--qn-ctr-tone:59 130 246;border-color:rgb(var(--qn-ctr-tone)/.2)!important;background:linear-gradient(135deg,rgb(var(--qn-ctr-tone)/.09),transparent 70%)}
.qn-contract-report-kpi .kt-card-content{min-height:78px}.qn-contract-report-kpi .qn-workforce-stat-icon{background:rgb(var(--qn-ctr-tone)/.13)!important;color:rgb(var(--qn-ctr-tone))!important}
.qn-contract-report-kpi.is-scheduled{--qn-ctr-tone:245 158 11}.qn-contract-report-kpi.is-ready{--qn-ctr-tone:14 165 233}.qn-contract-report-kpi.is-executed{--qn-ctr-tone:16 185 129}.qn-contract-report-kpi.is-cancelled{--qn-ctr-tone:100 116 139}.qn-contract-report-kpi.is-missing{--qn-ctr-tone:244 63 94}
.qn-contract-report-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem .85rem;align-items:end}.qn-contract-report-filters>div{min-width:0}.qn-contract-report-filters .kt-form-label{display:block;margin-bottom:.35rem;font-size:.75rem;font-weight:650}.qn-contract-report-filters .qn-contract-filter-search{grid-column:span 2}.qn-contract-report-filters .qn-contract-filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.55rem}.qn-contract-report-filters .kt-input,.qn-contract-report-filters .kt-select{min-height:2.55rem}
.qn-contract-report-results .qn-data-table th,.qn-contract-report-results .qn-data-table td{padding:.66rem .72rem;vertical-align:middle}.qn-contract-report-results .qn-data-table th{white-space:nowrap}.qn-contract-report-results .qn-data-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary,#3b82f6) 3%,transparent)}
@media(max-width:1199px){.qn-contract-report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-contract-report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-contract-report-filters .qn-contract-filter-search{grid-column:span 2}}
@media(max-width:767px){.qn-contract-report-kpis,.qn-contract-report-filters{grid-template-columns:1fr}.qn-contract-report-filters .qn-contract-filter-search{grid-column:auto}.qn-contract-report-filters .qn-contract-filter-actions{justify-content:stretch}.qn-contract-report-filters .qn-contract-filter-actions>*{flex:1}}

/* V2-19A Executive Nursing Dashboard */
.qn-exec-dashboard{max-width:1600px;margin-inline:auto}.qn-exec-hero{overflow:hidden;background:linear-gradient(115deg,var(--tw-primary,#1b84ff) 0%,#1474d4 52%,#0f9f9a 100%);border:0}.qn-exec-hero-content{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.75rem 2rem;color:#fff}.qn-exec-hero-main{display:flex;align-items:center;gap:1.25rem}.qn-exec-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:rgba(255,255,255,.15);font-size:2rem;flex:0 0 auto}.qn-exec-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;opacity:.8}.qn-exec-hero h1{font-size:1.65rem;font-weight:700;margin:.2rem 0 .35rem}.qn-exec-hero p{margin:0;opacity:.86;max-width:720px}.qn-exec-scope{min-width:300px;padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);border-radius:14px;display:flex;flex-direction:column;gap:.25rem}.qn-exec-scope span{font-size:.75rem;opacity:.8}.qn-exec-scope span i{margin-inline-end:.35rem}.qn-exec-scope strong{font-size:.95rem}.qn-exec-scope small{font-size:.7rem;opacity:.75}.qn-exec-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.qn-exec-kpi{transition:.18s ease}.qn-exec-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.08)}.qn-exec-kpi .kt-card-content{padding:1.15rem;display:flex;gap:.85rem;align-items:center}.qn-exec-kpi-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;flex:0 0 auto}.qn-exec-kpi-icon.is-blue{background:rgba(27,132,255,.12);color:#1b84ff}.qn-exec-kpi-icon.is-amber{background:rgba(245,158,11,.13);color:#d97706}.qn-exec-kpi-icon.is-green{background:rgba(16,185,129,.12);color:#059669}.qn-exec-kpi-icon.is-purple{background:rgba(139,92,246,.12);color:#7c3aed}.qn-exec-kpi-icon.is-red{background:rgba(239,68,68,.11);color:#dc2626}.qn-exec-kpi small,.qn-exec-kpi span{display:block;color:var(--tw-gray-600,#78829d);font-size:.72rem}.qn-exec-kpi strong{display:block;font-size:1.5rem;line-height:1.15;color:var(--tw-gray-900,#071437);margin:.12rem 0}.qn-exec-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.85fr);gap:1.25rem}.qn-exec-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.qn-exec-panel-head{padding:1.2rem 1.35rem .8rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.qn-exec-panel-head span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;color:var(--tw-primary,#1b84ff)}.qn-exec-panel-head h2{font-size:1rem;font-weight:700;margin:.15rem 0 0;color:var(--tw-gray-900,#071437)}.qn-exec-panel-head>a{font-size:.75rem;color:var(--tw-primary,#1b84ff);white-space:nowrap}.qn-exec-bars{display:grid;gap:1rem}.qn-exec-bar-label{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;margin-bottom:.35rem}.qn-exec-bar-label strong{font-weight:600;color:var(--tw-gray-800,#252f4a)}.qn-exec-bar-label span{font-weight:700;color:var(--tw-gray-700,#4b5675)}.qn-exec-bar-track{height:7px;background:var(--tw-gray-200,#f1f1f4);border-radius:999px;overflow:hidden}.qn-exec-bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1b84ff,#36c5ba)}.qn-exec-completion{display:flex;align-items:center;justify-content:space-between;padding:.25rem .2rem 1rem;border-bottom:1px dashed var(--tw-gray-300,#dbdfe9)}.qn-exec-completion-value strong{display:block;font-size:1.8rem;color:var(--tw-gray-900,#071437)}.qn-exec-completion-value span{font-size:.75rem;color:var(--tw-gray-600,#78829d)}.qn-exec-ring{--value:0;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1b84ff calc(var(--value)*1%),var(--tw-gray-200,#f1f1f4) 0);position:relative}.qn-exec-ring:after{content:"";position:absolute;inset:7px;background:var(--tw-light,#fff);border-radius:50%}.qn-exec-ring span{position:relative;z-index:1;font-size:.72rem;font-weight:700}.qn-exec-quality-list{display:grid;margin-top:.45rem}.qn-exec-quality-list>div{display:flex;justify-content:space-between;align-items:center;padding:.72rem .1rem;border-bottom:1px dashed var(--tw-gray-200,#f1f1f4);font-size:.76rem}.qn-exec-quality-list>div:last-child{border-bottom:0}.qn-exec-quality-list span i{color:var(--tw-gray-500,#99a1b7);margin-inline-end:.5rem}.qn-exec-quality-list strong{font-size:.85rem}.qn-exec-unit-list{display:grid;gap:.9rem}.qn-exec-unit-list>div{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,1fr);gap:1rem;align-items:center}.qn-exec-unit-list span strong,.qn-exec-unit-list span small{display:block}.qn-exec-unit-list span strong{font-size:.78rem}.qn-exec-unit-list span small{font-size:.68rem;color:var(--tw-gray-600,#78829d)}.qn-exec-unit-list em{height:6px;border-radius:999px;background:var(--tw-gray-200,#f1f1f4);overflow:hidden}.qn-exec-unit-list em i{display:block;height:100%;background:#36c5ba;border-radius:inherit}.qn-exec-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.qn-exec-action-grid>a{border:1px solid var(--tw-gray-200,#f1f1f4);border-radius:10px;padding:.8rem;display:flex;align-items:center;gap:.7rem;transition:.15s}.qn-exec-action-grid>a:hover{border-color:rgba(27,132,255,.35);background:rgba(27,132,255,.04)}.qn-exec-action-grid>a>i{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--tw-gray-100,#f9f9f9);color:var(--tw-primary,#1b84ff)}.qn-exec-action-grid strong,.qn-exec-action-grid small{display:block}.qn-exec-action-grid strong{font-size:.75rem}.qn-exec-action-grid small{font-size:.65rem;color:var(--tw-gray-600,#78829d)}.qn-exec-empty{min-height:120px;display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--tw-gray-600,#78829d);font-size:.8rem;text-align:center}
@media(max-width:1200px){.qn-exec-kpis{grid-template-columns:repeat(3,1fr)}.qn-exec-main-grid{grid-template-columns:1fr}.qn-exec-bottom-grid{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.qn-exec-hero-content{align-items:stretch;flex-direction:column;padding:1.25rem}.qn-exec-hero-main{align-items:flex-start}.qn-exec-icon{width:50px;height:50px}.qn-exec-hero h1{font-size:1.25rem}.qn-exec-scope{min-width:0}.qn-exec-kpis{grid-template-columns:1fr 1fr}.qn-exec-bottom-grid{grid-template-columns:1fr}.qn-exec-action-grid{grid-template-columns:1fr}}
@media(max-width:480px){.qn-exec-kpis{grid-template-columns:1fr}.qn-exec-hero-main{display:block}.qn-exec-icon{margin-bottom:.8rem}.qn-exec-unit-list>div{grid-template-columns:1fr}.qn-exec-panel-head{align-items:flex-start;flex-direction:column}}

/* V2-19A1 — adaptive single-facility executive dashboard */
.qn-exec-single-facility{display:grid;gap:1.1rem}.qn-exec-single-facility-head{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 1.1rem;border:1px solid var(--tw-gray-200,#f1f1f4);border-radius:12px;background:linear-gradient(135deg,rgba(27,132,255,.055),rgba(54,197,186,.055))}.qn-exec-single-facility-head>div:first-child{min-width:0}.qn-exec-single-facility-label{display:block;margin-bottom:.2rem;color:var(--tw-gray-600,#78829d);font-size:.7rem}.qn-exec-single-facility-head>div:first-child>strong{display:block;color:var(--tw-gray-900,#071437);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qn-exec-single-facility-total{text-align:end;flex:0 0 auto}.qn-exec-single-facility-total strong{display:block;color:var(--tw-primary,#1b84ff);font-size:1.55rem;line-height:1}.qn-exec-single-facility-total span{display:block;margin-top:.25rem;color:var(--tw-gray-600,#78829d);font-size:.68rem}.qn-exec-composition-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.qn-exec-composition-grid>a{min-width:0;display:flex;align-items:center;gap:.7rem;padding:.85rem;border:1px solid var(--tw-gray-200,#f1f1f4);border-radius:11px;transition:.15s ease}.qn-exec-composition-grid>a:hover{border-color:rgba(27,132,255,.3);background:rgba(27,132,255,.025);transform:translateY(-1px)}.qn-exec-composition-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;flex:0 0 auto}.qn-exec-composition-icon.is-blue{background:rgba(27,132,255,.12);color:#1b84ff}.qn-exec-composition-icon.is-purple{background:rgba(139,92,246,.12);color:#7c3aed}.qn-exec-composition-icon.is-green{background:rgba(16,185,129,.12);color:#059669}.qn-exec-composition-icon.is-amber{background:rgba(245,158,11,.13);color:#d97706}.qn-exec-composition-grid small,.qn-exec-composition-grid strong{display:block}.qn-exec-composition-grid small{color:var(--tw-gray-600,#78829d);font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qn-exec-composition-grid strong{margin-top:.1rem;color:var(--tw-gray-900,#071437);font-size:1.05rem}.qn-exec-single-facility-note{display:flex;align-items:flex-start;gap:.55rem;padding:.75rem .9rem;border-radius:10px;background:var(--tw-gray-100,#f9f9f9);color:var(--tw-gray-600,#78829d);font-size:.7rem;line-height:1.55}.qn-exec-single-facility-note i{margin-top:.12rem;color:var(--tw-primary,#1b84ff);flex:0 0 auto}
@media(max-width:900px){.qn-exec-composition-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.qn-exec-single-facility-head{align-items:flex-start;flex-direction:column}.qn-exec-single-facility-total{text-align:start}.qn-exec-composition-grid{grid-template-columns:1fr}}


/* V2-19B — Executive Attention Center */
.qn-exec-attention { overflow: hidden; }
.qn-exec-attention-head { align-items: flex-start; }
.qn-exec-attention-head p { margin: .35rem 0 0; color: var(--kt-text-muted, #78829d); font-size: .82rem; font-weight: 500; }
.qn-exec-attention-scope { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; border: 1px solid var(--kt-gray-200, #f1f1f4); border-radius: .65rem; padding: .55rem .75rem; color: var(--kt-text-muted, #78829d); background: var(--kt-gray-100, #f9f9f9); font-size: .72rem; font-weight: 600; }
.qn-exec-attention-scope i { color: var(--kt-primary, #1b84ff); }
.qn-exec-attention-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.qn-exec-attention-item { display: grid; grid-template-columns: 2.75rem minmax(0,1fr) auto; gap: .85rem; align-items: center; min-height: 6.25rem; padding: 1rem; border: 1px solid var(--kt-gray-200, #f1f1f4); border-radius: .8rem; background: var(--kt-body-bg, #fff); color: inherit; text-decoration: none; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.qn-exec-attention-item:hover { transform: translateY(-1px); border-color: var(--kt-gray-300, #dbdfe9); box-shadow: 0 .35rem 1rem rgba(0,0,0,.04); color: inherit; }
.qn-exec-attention-icon { width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .7rem; background: var(--kt-gray-100, #f9f9f9); font-size: 1.15rem; }
.qn-exec-attention-copy { min-width: 0; display: flex; flex-direction: column; gap: .18rem; }
.qn-exec-attention-copy small { color: var(--kt-text-muted, #78829d); font-size: .66rem; font-weight: 700; letter-spacing: .035em; }
.qn-exec-attention-copy strong { color: var(--kt-text-gray-900, #071437); font-size: .91rem; line-height: 1.35; }
.qn-exec-attention-copy em { color: var(--kt-text-muted, #78829d); font-size: .72rem; line-height: 1.45; font-style: normal; }
.qn-exec-attention-item > .ki-right { color: var(--kt-text-muted, #99a1b7); font-size: .8rem; }
.qn-exec-attention-item.is-warning .qn-exec-attention-icon { background: rgba(255,168,0,.12); color: #f6a300; }
.qn-exec-attention-item.is-critical .qn-exec-attention-icon { background: rgba(241,65,108,.11); color: #f1416c; }
.qn-exec-attention-item.is-info .qn-exec-attention-icon { background: rgba(27,132,255,.10); color: #1b84ff; }
.qn-exec-attention-item.is-purple .qn-exec-attention-icon { background: rgba(114,57,234,.10); color: #7239ea; }
.qn-exec-attention-item.is-clear .qn-exec-attention-icon { background: rgba(23,198,83,.10); color: #17c653; }
.qn-exec-attention-footer { margin-top: .85rem; display: flex; align-items: flex-start; gap: .5rem; padding: .7rem .85rem; border-radius: .65rem; background: var(--kt-gray-100, #f9f9f9); color: var(--kt-text-muted, #78829d); font-size: .72rem; line-height: 1.45; }
.qn-exec-attention-footer i { color: var(--kt-primary, #1b84ff); margin-top: .08rem; }
[dir="rtl"] .qn-exec-attention-item > .ki-right { transform: rotate(180deg); }
@media (max-width: 991.98px) { .qn-exec-attention-grid { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .qn-exec-attention-head { gap: .75rem; } .qn-exec-attention-scope { width: 100%; justify-content: center; } .qn-exec-attention-item { grid-template-columns: 2.5rem minmax(0,1fr) auto; padding: .85rem; } }

/* V2-19C — Nursing Education & Professional Readiness */
.qn-exec-readiness{overflow:hidden}.qn-exec-readiness-head{align-items:flex-start}.qn-exec-readiness-head p{margin:.35rem 0 0;color:var(--kt-text-muted,#78829d);font-size:.78rem}.qn-exec-readiness-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:1rem}.qn-exec-readiness-grid>div{min-width:0;border:1px solid var(--kt-gray-200,#f1f1f4);border-radius:.8rem;padding:1rem;background:var(--kt-body-bg,#fff)}.qn-exec-readiness-rate{display:flex;align-items:center;gap:1rem}.qn-exec-ring-lg{width:86px;height:86px;flex:0 0 86px}.qn-exec-ring-lg:after{inset:8px}.qn-exec-ring-lg span{font-size:.82rem}.qn-exec-readiness-rate small,.qn-exec-readiness-rate strong,.qn-exec-readiness-rate em{display:block}.qn-exec-readiness-rate small{font-size:.64rem;font-weight:700;color:var(--kt-text-muted,#78829d);letter-spacing:.04em}.qn-exec-readiness-rate strong{margin:.18rem 0;font-size:1.35rem;color:var(--kt-text-gray-900,#071437)}.qn-exec-readiness-rate em{font-size:.68rem;font-style:normal;color:var(--kt-text-muted,#78829d)}.qn-exec-readiness-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-top:1rem}.qn-exec-readiness-stats span{padding:.65rem .35rem;border-radius:.6rem;background:rgba(27,132,255,.07);text-align:center}.qn-exec-readiness-stats span.is-warning{background:rgba(246,163,0,.09)}.qn-exec-readiness-stats span.is-danger{background:rgba(241,65,108,.08)}.qn-exec-readiness-stats span.is-purple{background:rgba(114,57,234,.08)}.qn-exec-readiness-stats b,.qn-exec-readiness-stats small{display:block}.qn-exec-readiness-stats b{font-size:1rem}.qn-exec-readiness-stats small{margin-top:.15rem;font-size:.59rem;color:var(--kt-text-muted,#78829d)}.qn-exec-readiness-subhead{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem;font-size:.65rem;font-weight:700;color:var(--kt-text-muted,#78829d);letter-spacing:.035em}.qn-exec-readiness-subhead a{color:var(--kt-primary,#1b84ff);font-size:.68rem}.qn-exec-readiness-phase{padding:.55rem 0;border-bottom:1px dashed var(--kt-gray-200,#f1f1f4)}.qn-exec-readiness-phase:last-child{border-bottom:0}.qn-exec-readiness-phase>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.qn-exec-readiness-phase strong{font-size:.7rem}.qn-exec-readiness-phase span{font-size:.64rem;color:var(--kt-text-muted,#78829d)}.qn-exec-readiness-phase progress{display:block;width:100%;height:5px;border:0;border-radius:999px;overflow:hidden;appearance:none;background:var(--kt-gray-200,#f1f1f4)}.qn-exec-readiness-phase progress::-webkit-progress-bar{background:var(--kt-gray-200,#f1f1f4)}.qn-exec-readiness-phase progress::-webkit-progress-value{background:#36c5ba;border-radius:999px}.qn-exec-readiness-phase progress::-moz-progress-bar{background:#36c5ba;border-radius:999px}.qn-exec-readiness-empty{min-height:120px;display:grid;place-items:center;text-align:center;color:var(--kt-text-muted,#78829d);font-size:.72rem}.qn-exec-compliance-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.72rem;border:1px solid var(--kt-gray-200,#f1f1f4);border-radius:.65rem;color:inherit}.qn-exec-compliance-row+ .qn-exec-compliance-meta{margin-bottom:.7rem}.qn-exec-compliance-row span{display:grid;grid-template-columns:1.7rem auto;grid-template-rows:auto auto;align-items:center;column-gap:.5rem;min-width:0}.qn-exec-compliance-row i{grid-row:1/3;width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:.45rem;background:var(--kt-gray-100,#f9f9f9);color:var(--kt-primary,#1b84ff)}.qn-exec-compliance-row b{font-size:.72rem}.qn-exec-compliance-row small{font-size:.6rem;color:var(--kt-text-muted,#78829d)}.qn-exec-compliance-row>strong{font-size:1rem}.qn-exec-compliance-row.is-danger>strong{color:#f1416c}.qn-exec-compliance-row.is-warning>strong{color:#f6a300}.qn-exec-compliance-row.is-clear>strong{color:#17c653}.qn-exec-compliance-meta{display:flex;flex-wrap:wrap;gap:.65rem;padding:.4rem .15rem 0;color:var(--kt-text-muted,#78829d);font-size:.6rem}.qn-exec-compliance-meta b{color:var(--kt-text-gray-900,#071437);margin-inline-start:.15rem}@media(max-width:1199.98px){.qn-exec-readiness-grid{grid-template-columns:1fr 1fr}.qn-exec-readiness-summary{grid-column:1/-1}}@media(max-width:767.98px){.qn-exec-readiness-grid{grid-template-columns:1fr}.qn-exec-readiness-summary{grid-column:auto}.qn-exec-readiness-stats{grid-template-columns:1fr 1fr}}@media(max-width:480px){.qn-exec-readiness-rate{align-items:flex-start;flex-direction:column}.qn-exec-readiness-stats{grid-template-columns:1fr 1fr}}

/* V2-19C — Nursing Education & Professional Readiness */
.qn-exec-readiness{overflow:hidden}.qn-exec-readiness-head{align-items:flex-start}.qn-exec-readiness-head p{margin:.35rem 0 0;color:var(--kt-text-muted,#78829d);font-size:.78rem}.qn-exec-readiness-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:1rem}.qn-exec-readiness-grid>div{min-width:0;border:1px solid var(--kt-gray-200,#f1f1f4);border-radius:.8rem;padding:1rem;background:var(--kt-body-bg,#fff)}.qn-exec-readiness-rate{display:flex;align-items:center;gap:1rem}.qn-exec-ring-lg{width:86px;height:86px;flex:0 0 86px}.qn-exec-ring-lg:after{inset:8px}.qn-exec-ring-lg span{font-size:.82rem}.qn-exec-readiness-rate small,.qn-exec-readiness-rate strong,.qn-exec-readiness-rate em{display:block}.qn-exec-readiness-rate small{font-size:.64rem;font-weight:700;color:var(--kt-text-muted,#78829d);letter-spacing:.04em}.qn-exec-readiness-rate strong{margin:.18rem 0;font-size:1.35rem;color:var(--kt-text-gray-900,#071437)}.qn-exec-readiness-rate em{font-size:.68rem;font-style:normal;color:var(--kt-text-muted,#78829d)}.qn-exec-readiness-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-top:1rem}.qn-exec-readiness-stats span{padding:.65rem .35rem;border-radius:.6rem;background:rgba(27,132,255,.07);text-align:center}.qn-exec-readiness-stats span.is-warning{background:rgba(246,163,0,.09)}.qn-exec-readiness-stats span.is-danger{background:rgba(241,65,108,.08)}.qn-exec-readiness-stats span.is-purple{background:rgba(114,57,234,.08)}.qn-exec-readiness-stats b,.qn-exec-readiness-stats small{display:block}.qn-exec-readiness-stats b{font-size:1rem}.qn-exec-readiness-stats small{margin-top:.15rem;font-size:.59rem;color:var(--kt-text-muted,#78829d)}.qn-exec-readiness-subhead{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem;font-size:.65rem;font-weight:700;color:var(--kt-text-muted,#78829d);letter-spacing:.035em}.qn-exec-readiness-subhead a{color:var(--kt-primary,#1b84ff);font-size:.68rem}.qn-exec-readiness-phase{padding:.55rem 0;border-bottom:1px dashed var(--kt-gray-200,#f1f1f4)}.qn-exec-readiness-phase:last-child{border-bottom:0}.qn-exec-readiness-phase>div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.qn-exec-readiness-phase strong{font-size:.7rem}.qn-exec-readiness-phase span{font-size:.64rem;color:var(--kt-text-muted,#78829d)}.qn-exec-readiness-phase progress{display:block;width:100%;height:5px;border:0;border-radius:999px;overflow:hidden;appearance:none;background:var(--kt-gray-200,#f1f1f4)}.qn-exec-readiness-phase progress::-webkit-progress-bar{background:var(--kt-gray-200,#f1f1f4)}.qn-exec-readiness-phase progress::-webkit-progress-value{background:#36c5ba;border-radius:999px}.qn-exec-readiness-phase progress::-moz-progress-bar{background:#36c5ba;border-radius:999px}.qn-exec-readiness-empty{min-height:120px;display:grid;place-items:center;text-align:center;color:var(--kt-text-muted,#78829d);font-size:.72rem}.qn-exec-compliance-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.72rem;border:1px solid var(--kt-gray-200,#f1f1f4);border-radius:.65rem;color:inherit}.qn-exec-compliance-row+.qn-exec-compliance-meta{margin-bottom:.7rem}.qn-exec-compliance-row span{display:grid;grid-template-columns:1.7rem auto;grid-template-rows:auto auto;align-items:center;column-gap:.5rem;min-width:0}.qn-exec-compliance-row i{grid-row:1/3;width:1.7rem;height:1.7rem;display:grid;place-items:center;border-radius:.45rem;background:var(--kt-gray-100,#f9f9f9);color:var(--kt-primary,#1b84ff)}.qn-exec-compliance-row b{font-size:.72rem}.qn-exec-compliance-row small{font-size:.6rem;color:var(--kt-text-muted,#78829d)}.qn-exec-compliance-row>strong{font-size:1rem}.qn-exec-compliance-row.is-danger>strong{color:#f1416c}.qn-exec-compliance-row.is-warning>strong{color:#f6a300}.qn-exec-compliance-row.is-clear>strong{color:#17c653}.qn-exec-compliance-meta{display:flex;flex-wrap:wrap;gap:.65rem;padding:.4rem .15rem 0;color:var(--kt-text-muted,#78829d);font-size:.6rem}.qn-exec-compliance-meta b{color:var(--kt-text-gray-900,#071437);margin-inline-start:.15rem}@media(max-width:1199.98px){.qn-exec-readiness-grid{grid-template-columns:1fr 1fr}.qn-exec-readiness-summary{grid-column:1/-1}}@media(max-width:767.98px){.qn-exec-readiness-grid{grid-template-columns:1fr}.qn-exec-readiness-summary{grid-column:auto}.qn-exec-readiness-stats{grid-template-columns:1fr 1fr}}@media(max-width:480px){.qn-exec-readiness-rate{align-items:flex-start;flex-direction:column}}

/* V2-19C1 — Education readiness: distinguish no monitoring data from poor compliance */
.qn-exec-readiness-empty-state{min-height:190px;display:flex;align-items:center;gap:1rem;padding:.35rem}.qn-exec-readiness-empty-icon{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:1rem;background:rgba(27,132,255,.08);color:var(--kt-primary,#1b84ff);font-size:1.55rem}.qn-exec-readiness-empty-copy{min-width:0}.qn-exec-readiness-empty-copy small,.qn-exec-readiness-empty-copy strong{display:block}.qn-exec-readiness-empty-copy small{font-size:.64rem;font-weight:700;color:var(--kt-text-muted,#78829d);letter-spacing:.04em}.qn-exec-readiness-empty-copy strong{margin:.3rem 0 .4rem;font-size:1.15rem;color:var(--kt-text-gray-900,#071437)}.qn-exec-readiness-empty-copy p{max-width:430px;margin:0 0 .75rem;color:var(--kt-text-muted,#78829d);font-size:.7rem;line-height:1.55}.qn-exec-readiness-empty-copy a{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;color:var(--kt-primary,#1b84ff)}@media(max-width:480px){.qn-exec-readiness-empty-state{align-items:flex-start;flex-direction:column;min-height:auto;padding:.15rem}}


/* V2-19D — Executive scope comparison foundation */
.qn-exec-benchmark-head{align-items:flex-start}.qn-exec-benchmark-head p{margin:.35rem 0 0;color:var(--kt-text-muted,#78829d);font-size:.78rem}.qn-exec-facility-compare{display:grid;gap:.15rem}.qn-exec-facility-row{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(260px,1.5fr);align-items:center;gap:1rem;padding:.75rem .2rem;border-bottom:1px dashed var(--kt-gray-200,#f1f1f4)}.qn-exec-facility-row:last-child{border-bottom:0}.qn-exec-facility-name strong,.qn-exec-facility-name small{display:block}.qn-exec-facility-name strong{font-size:.76rem;color:var(--kt-text-gray-900,#071437)}.qn-exec-facility-name small{margin-top:.15rem;font-size:.64rem;color:var(--kt-text-muted,#78829d)}.qn-exec-facility-bar{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:.7rem}.qn-exec-facility-bar>span{height:7px;overflow:hidden;border-radius:999px;background:var(--kt-gray-200,#f1f1f4)}.qn-exec-facility-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1b84ff,#36c5ba)}.qn-exec-facility-bar b{text-align:end;font-size:.7rem;color:var(--kt-text-gray-700,#4b5675)}.qn-exec-snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.qn-exec-snapshot-metric{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.9rem;border:1px solid var(--kt-gray-200,#f1f1f4);border-radius:.75rem;background:var(--kt-body-bg,#fff)}.qn-exec-snapshot-metric>span{width:2.35rem;height:2.35rem;flex:0 0 2.35rem;display:grid;place-items:center;border-radius:.65rem;background:rgba(27,132,255,.08);color:var(--kt-primary,#1b84ff)}.qn-exec-snapshot-metric>div{min-width:0}.qn-exec-snapshot-metric small,.qn-exec-snapshot-metric strong,.qn-exec-snapshot-metric em{display:block}.qn-exec-snapshot-metric small{font-size:.59rem;font-weight:700;letter-spacing:.035em;color:var(--kt-text-muted,#78829d)}.qn-exec-snapshot-metric strong{margin:.2rem 0;font-size:1.2rem;color:var(--kt-text-gray-900,#071437)}.qn-exec-snapshot-metric strong.is-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.qn-exec-snapshot-metric em{font-size:.62rem;font-style:normal;color:var(--kt-text-muted,#78829d)}@media(max-width:1199.98px){.qn-exec-snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767.98px){.qn-exec-facility-row{grid-template-columns:1fr;gap:.45rem}.qn-exec-snapshot-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.qn-exec-snapshot-grid{grid-template-columns:1fr}}
