:root {
  --qn-bg: var(--color-background);
  --qn-surface: var(--color-background);
  --qn-surface-soft: var(--color-accent);
  --qn-sidebar: var(--color-background);
  --qn-sidebar-soft: var(--color-accent);
  --qn-border: var(--color-border);
  --qn-text: var(--foreground);
  --qn-muted: var(--color-muted-foreground);
  --qn-primary: var(--color-primary);
  --qn-primary-soft: color-mix(in srgb, var(--color-primary) 10%, transparent);
  --qn-success: #16a34a;
  --qn-success-soft: color-mix(in srgb, #22c55e 12%, transparent);
  --qn-radius: 16px;
  --qn-shadow: 0 8px 28px rgba(15, 23, 42, .06);
  --qn-sidebar-width: 278px;
  --qn-sidebar-collapsed-width: 82px;
  --qn-topbar-height: 76px;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--qn-bg); }
body.qn-body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--qn-bg);
  color: var(--qn-text);
  font-family: "Inter", "Segoe UI", Tahoma, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
html[dir="rtl"] body.qn-body {
  font-family: "Cairo", Tahoma, "Segoe UI", Arial, sans-serif;
  font-weight: 400;
}
button, input, select, textarea { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(59, 130, 246, .28); outline-offset: 2px; }

.qn-shell { min-height: 100vh; }

/* Mobile sidebar drawer: use physical left/right positioning so RTL is deterministic. */
.qn-sidebar {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  width: min(var(--qn-sidebar-width), calc(100vw - 48px));
  z-index: 1060;
  display: flex;
  flex-direction: column;
  overflow: visible;
  background: linear-gradient(180deg, #101827 0%, #111827 100%);
  color: #fff;
  transform: translateX(calc(-100% - 20px));
  transition: width .22s ease, transform .25s ease;
  box-shadow: 20px 0 50px rgba(15, 23, 42, .16);
}
html[dir="rtl"] .qn-sidebar {
  left: auto;
  right: 0;
  transform: translateX(calc(100% + 20px));
  box-shadow: -20px 0 50px rgba(15, 23, 42, .16);
}
.qn-shell.qn-sidebar-open .qn-sidebar { transform: translateX(0); }

.qn-mobile-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1050;
  background: rgba(15, 23, 42, .48);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s ease, visibility .2s ease;
}
.qn-sidebar-open .qn-mobile-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }
.qn-no-scroll { overflow: hidden; }

.qn-sidebar-head {
  min-height: var(--qn-topbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.qn-brand { min-width: 0; display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.qn-brand:hover { color: #fff; }
.qn-brand-mark {
  width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center;
  border-radius: 12px; background: linear-gradient(135deg,#3b82f6,#1d4ed8);
  font-weight: 800; font-size: 15px; box-shadow: 0 8px 20px rgba(37,99,235,.34);
}
.qn-brand-text { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.qn-brand-text strong { font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qn-brand-text small { margin-top: 4px; color: #94a3b8; font-size: 11.5px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.qn-icon-btn {
  appearance: none; border: 1px solid var(--qn-border); background: var(--qn-surface); color: var(--qn-text);
  width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 11px;
  cursor: pointer; transition: .18s ease;
}
.qn-icon-btn:hover { border-color: #bfdbfe; color: var(--qn-primary); background: var(--qn-primary-soft); }
.qn-sidebar-close { border-color: rgba(255,255,255,.10); background: rgba(255,255,255,.06); color: #cbd5e1; font-size: 22px; }

.qn-sidebar-context {
  margin: 16px 14px 6px; padding: 14px; border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px; background: rgba(255,255,255,.04); display: flex; flex-direction: column;
}
.qn-context-label { color: #60a5fa; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }
html[dir="rtl"] .qn-context-label { letter-spacing: 0; }
.qn-sidebar-context strong { margin-top: 7px; font-size: 12.5px; font-weight: 700; }
.qn-sidebar-context small { margin-top: 4px; color: #94a3b8; font-size: 11.5px; }

.qn-nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 12px; }
.qn-nav-section { padding: 9px 10px 7px; color: #64748b; font-size: 10px; text-transform: uppercase; letter-spacing: .09em; font-weight: 800; }
html[dir="rtl"] .qn-nav-section { letter-spacing: 0; }
.qn-nav-section-spaced { margin-top: 14px; }
.qn-nav-item {
  min-height: 44px; display: flex; align-items: center; gap: 11px; margin: 3px 0; padding: 8px 10px;
  border-radius: 11px; color: #cbd5e1; text-decoration: none; font-size: 13.5px; font-weight: 600;
  white-space: nowrap;
}
.qn-nav-item.active { color: #fff; background: linear-gradient(90deg, rgba(37,99,235,.9), rgba(37,99,235,.72)); box-shadow: 0 8px 20px rgba(37,99,235,.14); }
html[dir="rtl"] .qn-nav-item.active { background: linear-gradient(270deg, rgba(37,99,235,.9), rgba(37,99,235,.72)); }
.qn-nav-icon { width: 24px; height: 24px; flex: 0 0 24px; display: grid; place-items: center; border-radius: 7px; background: rgba(255,255,255,.07); font-size: 14px; }
.qn-nav-item.active .qn-nav-icon { background: rgba(255,255,255,.16); }
.qn-nav-item-disabled { color: #94a3b8; cursor: default; }
.qn-coming-soon { margin-inline-start: auto; padding: 3px 6px; border-radius: 6px; background: rgba(255,255,255,.06); color: #64748b; font-size: 9px; text-transform: uppercase; }
html[dir="rtl"] .qn-coming-soon { text-transform: none; }

.qn-sidebar-foot { margin: 12px; padding: 12px; display: flex; align-items: center; gap: 10px; border-top: 1px solid rgba(255,255,255,.08); color: #cbd5e1; }
.qn-sidebar-foot div { display: flex; flex-direction: column; }
.qn-sidebar-foot strong { font-size: 11.5px; font-weight: 700; }
.qn-sidebar-foot small { margin-top: 2px; color: #64748b; font-size: 10.5px; }
.qn-status-dot { width: 8px; height: 8px; display: inline-block; flex: 0 0 8px; border-radius: 999px; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.12); }

.qn-sidebar-collapse { display: none; }
.qn-collapse-glyph { display: block; font-family: Arial, sans-serif; font-size: 25px; line-height: 1; transition: transform .2s ease; }

.qn-workspace { min-width: 0; min-height: 100vh; display: flex; flex-direction: column; transition: margin .22s ease; }
.qn-topbar {
  position: sticky; inset-block-start: 0; z-index: 1020; height: var(--qn-topbar-height);
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 16px;
  border-bottom: 1px solid var(--qn-border); background: rgba(255,255,255,.94); backdrop-filter: blur(14px);
}
.qn-topbar-start, .qn-topbar-actions { min-width: 0; display: flex; align-items: center; gap: 10px; }
.qn-mobile-menu { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; }
.qn-mobile-menu span { width: 17px; height: 2px; border-radius: 10px; background: currentColor; }
.qn-page-context { min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.qn-page-context span { color: var(--qn-muted); font-size: 10.5px; font-weight: 500; }
.qn-page-context strong { margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 15.5px; font-weight: 700; }
.qn-language-form { margin: 0; }
.qn-language-button { height: 40px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--qn-border); border-radius: 11px; background: var(--qn-surface); color: var(--qn-text); cursor: pointer; }
.qn-language-button span { color: var(--qn-primary); font-size: 10.5px; font-weight: 800; }
.qn-language-button strong { display: none; font-size: 11.5px; font-weight: 700; }
.qn-notification-btn span { color: #f59e0b; font-size: 9px; }
.qn-user-chip { display: none; align-items: center; gap: 9px; padding-inline-start: 2px; }
.qn-user-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: #1d4ed8; background: #dbeafe; font-size: 11px; font-weight: 800; }
.qn-user-copy { display: flex; flex-direction: column; line-height: 1.25; }
.qn-user-copy strong { font-size: 11.5px; font-weight: 700; }
.qn-user-copy small { margin-top: 3px; color: var(--qn-muted); font-size: 10.5px; }

.qn-main { flex: 1 0 auto; }
.qn-content { width: min(100%, 1500px); margin-inline: auto; padding: 18px 14px 28px; }
.qn-welcome-card { display: flex; flex-direction: column; gap: 18px; padding: 22px; border: 1px solid var(--qn-border); border-radius: 18px; background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--color-primary) 9%, transparent), transparent 36%), var(--qn-surface); box-shadow: var(--qn-shadow); }
html[dir="rtl"] .qn-welcome-card { background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--color-primary) 9%, transparent), transparent 36%), var(--qn-surface); }
.qn-eyebrow { display: block; color: var(--qn-primary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .07em; font-weight: 800; }
html[dir="rtl"] .qn-eyebrow { letter-spacing: 0; text-transform: none; }
.qn-welcome-card h1 { margin: 8px 0 8px; font-size: clamp(25px,6vw,38px); line-height: 1.12; letter-spacing: -.035em; font-weight: 600; }
html[dir="rtl"] .qn-welcome-card h1 { letter-spacing: 0; line-height: 1.4; font-weight: 600; }
.qn-welcome-card p { max-width: 780px; margin: 0; color: var(--qn-muted); font-size: 13.5px; line-height: 1.8; }
html[dir="rtl"] .qn-welcome-card p { line-height: 1.95; }
.qn-welcome-status { width: max-content; display: inline-flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #bbf7d0; border-radius: 999px; background: var(--qn-success-soft); color: #15803d; font-size: 10.5px; font-weight: 800; }

.qn-stat-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 14px; }
.qn-stat-card, .qn-panel, .qn-next-step { border: 1px solid var(--qn-border); border-radius: var(--qn-radius); background: var(--qn-surface); box-shadow: 0 3px 14px rgba(15,23,42,.025); }
.qn-stat-card { min-width: 0; padding: 17px; }
.qn-stat-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.qn-stat-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: var(--qn-primary-soft); color: var(--qn-primary); font-size: 10px; font-weight: 800; }
.qn-stat-state { color: var(--qn-success); font-size: 9.5px; font-weight: 800; text-transform: uppercase; }
html[dir="rtl"] .qn-stat-state { text-transform: none; }
.qn-stat-card h2 { margin: 13px 0 6px; font-size: 14.5px; font-weight: 700; }
.qn-stat-card p { margin: 0; color: var(--qn-muted); font-size: 12px; line-height: 1.75; }
html[dir="rtl"] .qn-stat-card p { line-height: 1.9; }

.qn-dashboard-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
.qn-panel { min-width: 0; padding: 18px; }
.qn-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.qn-panel-head h2 { margin: 6px 0 0; font-size: 15.5px; font-weight: 700; }
.qn-badge { padding: 5px 8px; border-radius: 8px; background: var(--qn-primary-soft); color: var(--qn-primary); font-size: 9.5px; font-weight: 800; }
.qn-hierarchy { display: flex; flex-direction: column; align-items: stretch; }
.qn-hierarchy-node { display: flex; align-items: center; gap: 11px; padding: 12px; border: 1px solid var(--qn-border); border-radius: 12px; background: var(--qn-surface-soft); }
.qn-hierarchy-node.is-primary { border-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border)); background: var(--qn-primary-soft); }
.qn-hierarchy-node > span { width: 30px; height: 30px; flex: 0 0 30px; display: grid; place-items: center; border-radius: 9px; background: var(--qn-surface); color: var(--qn-primary); font-size: 9.5px; font-weight: 800; }
.qn-hierarchy-node div { min-width: 0; display: flex; flex-direction: column; }
.qn-hierarchy-node strong { font-size: 11.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qn-hierarchy-node small { margin-top: 3px; color: var(--qn-muted); font-size: 10px; }
.qn-hierarchy-line { width: 1px; height: 12px; margin-inline-start: 27px; background: #cbd5e1; }
.qn-readiness-list { display: flex; flex-direction: column; }
.qn-readiness-list > div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px dashed var(--qn-border); font-size: 11.5px; }
.qn-readiness-list > div:last-child { border-bottom: 0; }
.qn-readiness-list span { color: var(--qn-muted); }
.qn-readiness-list strong { font-size: 10.5px; font-weight: 700; }
.is-ok { color: var(--qn-success); }
.qn-next-step { margin-top: 14px; padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.qn-next-step h2 { margin: 6px 0 5px; font-size: 14.5px; font-weight: 700; }
.qn-next-step p { margin: 0; color: var(--qn-muted); font-size: 12px; line-height: 1.7; }
.qn-next-arrow { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 11px; background: var(--qn-primary-soft); color: var(--qn-primary); font-size: 19px; }
html[dir="rtl"] .qn-next-arrow { transform: scaleX(-1); }
.qn-footer { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-top: 1px solid var(--qn-border); color: var(--qn-muted); background: #fff; font-size: 10px; }

@media (min-width: 576px) {
  .qn-language-button strong { display: inline; }
  .qn-user-chip { display: flex; }
  .qn-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .qn-footer { flex-direction: row; justify-content: space-between; align-items: center; }
  .qn-content { padding: 22px 20px 32px; }
}

@media (min-width: 768px) {
  .qn-welcome-card { flex-direction: row; align-items: center; justify-content: space-between; padding: 28px; }
  .qn-stat-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .qn-dashboard-grid { grid-template-columns: minmax(0,1.65fr) minmax(280px,.75fr); }
  .qn-panel { padding: 21px; }
  .qn-content { padding: 26px 24px 36px; }
  .qn-topbar { padding-inline: 24px; }
  .qn-footer { padding-inline: 24px; }
}

@media (min-width: 1024px) {
  .qn-sidebar {
    width: var(--qn-sidebar-width);
    left: 0;
    right: auto;
    transform: none !important;
    box-shadow: 12px 0 36px rgba(15,23,42,.06);
  }
  html[dir="rtl"] .qn-sidebar {
    left: auto;
    right: 0;
    transform: none !important;
    box-shadow: -12px 0 36px rgba(15,23,42,.06);
  }
  .qn-sidebar-close, .qn-mobile-menu, .qn-mobile-backdrop { display: none !important; }
  .qn-workspace { margin-left: var(--qn-sidebar-width); margin-right: 0; }
  html[dir="rtl"] .qn-workspace { margin-left: 0; margin-right: var(--qn-sidebar-width); }

  .qn-sidebar-collapse {
    position: absolute;
    top: 94px;
    right: -17px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
    background: #fff;
    color: #475569;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(15,23,42,.14);
    z-index: 2;
    transition: color .18s ease, background .18s ease, border-color .18s ease;
  }
  .qn-sidebar-collapse:hover { color: var(--qn-primary); background: var(--qn-primary-soft); border-color: #bfdbfe; }
  html[dir="rtl"] .qn-sidebar-collapse { right: auto; left: -17px; }
  html[dir="rtl"] .qn-collapse-glyph { transform: rotate(180deg); }

  body.qn-sidebar-collapsed .qn-sidebar { width: var(--qn-sidebar-collapsed-width); }
  body.qn-sidebar-collapsed .qn-workspace { margin-left: var(--qn-sidebar-collapsed-width); }
  html[dir="rtl"] body.qn-sidebar-collapsed .qn-workspace { margin-left: 0; margin-right: var(--qn-sidebar-collapsed-width); }
  body.qn-sidebar-collapsed .qn-collapse-glyph { transform: rotate(180deg); }
  html[dir="rtl"] body.qn-sidebar-collapsed .qn-collapse-glyph { transform: none; }

  body.qn-sidebar-collapsed .qn-sidebar-head { justify-content: center; padding-inline: 10px; }
  body.qn-sidebar-collapsed .qn-brand { justify-content: center; gap: 0; }
  body.qn-sidebar-collapsed .qn-brand-text,
  body.qn-sidebar-collapsed .qn-sidebar-context,
  body.qn-sidebar-collapsed .qn-nav-section,
  body.qn-sidebar-collapsed .qn-nav-item > span:not(.qn-nav-icon),
  body.qn-sidebar-collapsed .qn-sidebar-foot > div { display: none; }
  body.qn-sidebar-collapsed .qn-nav { padding-inline: 10px; }
  body.qn-sidebar-collapsed .qn-nav-item { justify-content: center; gap: 0; padding-inline: 8px; }
  body.qn-sidebar-collapsed .qn-nav-icon { width: 38px; height: 38px; flex-basis: 38px; font-size: 16px; }
  body.qn-sidebar-collapsed .qn-nav-section-spaced { margin-top: 8px; }
  body.qn-sidebar-collapsed .qn-sidebar-foot { justify-content: center; margin-inline: 10px; padding-inline: 8px; }

  .qn-topbar { padding-inline: 30px; }
  .qn-content { padding: 30px 30px 42px; }
  .qn-footer { padding-inline: 30px; }
  .qn-stat-card { padding: 19px; }
}

@media (min-width: 1440px) {
  :root { --qn-sidebar-width: 292px; }
  .qn-content { padding-inline: 36px; }
}

@media (max-width: 420px) {
  :root { --qn-topbar-height: 70px; }
  .qn-topbar { padding-inline: 12px; }
  .qn-page-context span { display: none; }
  .qn-page-context strong { font-size: 14px; }
  .qn-notification-btn { display: none; }
  .qn-content { padding-inline: 12px; }
  .qn-sidebar { width: min(310px, calc(100vw - 34px)); }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* V2-09A — Organization Explorer */
.qn-page-hero {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 22px;
  border: 1px solid var(--qn-border);
  border-radius: 18px;
  background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--color-primary) 9%, transparent), transparent 34%), var(--qn-surface);
  box-shadow: var(--qn-shadow);
}
html[dir="rtl"] .qn-page-hero {
  background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--color-primary) 9%, transparent), transparent 34%), var(--qn-surface);
}
.qn-page-hero-copy { min-width: 0; }
.qn-page-hero h1 {
  margin: 8px 0 8px;
  font-size: clamp(24px, 5.5vw, 36px);
  line-height: 1.18;
  letter-spacing: -.025em;
  font-weight: 650;
}
html[dir="rtl"] .qn-page-hero h1 { letter-spacing: 0; line-height: 1.45; font-weight: 700; }
.qn-page-hero p {
  max-width: 820px;
  margin: 0;
  color: var(--qn-muted);
  font-size: 13.5px;
  line-height: 1.8;
}
html[dir="rtl"] .qn-page-hero p { line-height: 1.95; }
.qn-page-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.qn-live-badge,
.qn-readonly-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 800;
}
.qn-live-badge { border: 1px solid #bbf7d0; color: #15803d; background: var(--qn-success-soft); }
.qn-readonly-badge { border: 1px solid #dbeafe; color: #1d4ed8; background: var(--qn-primary-soft); }

.qn-org-metrics {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 14px;
}
.qn-org-metric-card {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--qn-border);
  border-radius: 14px;
  background: var(--qn-surface);
  box-shadow: 0 3px 14px rgba(15,23,42,.025);
}
.qn-org-metric-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--qn-primary-soft);
  color: var(--qn-primary);
  font-size: 10px;
  font-weight: 800;
}
.qn-org-metric-card div { min-width: 0; display: flex; flex-direction: column; }
.qn-org-metric-card strong { font-size: 20px; line-height: 1.1; font-weight: 750; }
.qn-org-metric-card span:last-child { margin-top: 4px; color: var(--qn-muted); font-size: 11.5px; font-weight: 600; }

.qn-org-explorer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 14px;
}
.qn-org-summary-panel { align-self: start; }
.qn-org-summary-list { display: flex; flex-direction: column; gap: 10px; }
.qn-org-summary-list > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--qn-border);
}
.qn-org-summary-list > div:first-child { padding-top: 0; }
.qn-org-summary-list > div:last-child { padding-bottom: 0; border-bottom: 0; }
.qn-org-summary-list span { color: var(--qn-muted); font-size: 10.5px; font-weight: 600; }
.qn-org-summary-list strong { min-width: 0; text-align: end; font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.qn-org-summary-list small { grid-column: 1 / -1; color: var(--qn-muted); font-size: 10px; }

.qn-org-tree-panel { overflow: hidden; }
.qn-org-tree { min-width: 0; }
.qn-org-level-node,
.qn-org-unit-card,
.qn-org-facility > summary {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 11px;
  border: 1px solid var(--qn-border);
  border-radius: 13px;
  background: var(--qn-surface-soft);
}
.qn-org-level-node { padding: 13px; }
.qn-org-level-node.is-cluster { border-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border)); background: var(--qn-primary-soft); }
.qn-org-level-node.is-headquarters { border-color: color-mix(in srgb, var(--color-primary) 18%, var(--color-border)); background: var(--qn-surface-soft); }
.qn-org-node-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--qn-surface);
  color: var(--qn-primary);
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.08);
  font-size: 9px;
  font-weight: 800;
}
.qn-org-node-copy { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; }
.qn-org-node-title-row { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.qn-org-node-title-row strong { min-width: 0; font-size: 12.5px; font-weight: 750; overflow-wrap: anywhere; }
.qn-org-secondary-name { margin-top: 3px; color: var(--qn-muted); font-size: 10.5px; line-height: 1.55; }
.qn-org-node-meta { margin-top: 5px; color: var(--qn-muted); font-size: 9.5px; line-height: 1.5; }
.qn-status-badge {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 8.5px;
  font-weight: 800;
  white-space: nowrap;
}
.qn-status-badge.is-active { color: #15803d; background: #dcfce7; }
.qn-status-badge.is-inactive { color: #b45309; background: #fef3c7; }

.qn-org-level-branch {
  margin-top: 10px;
  margin-inline-start: 16px;
  padding-inline-start: 16px;
  border-inline-start: 1px solid var(--qn-border);
}
.qn-org-facility-list { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.qn-org-facility {
  min-width: 0;
  border: 1px solid var(--qn-border);
  border-radius: 14px;
  background: var(--qn-surface);
  overflow: hidden;
}
.qn-org-facility > summary {
  padding: 13px;
  border: 0;
  border-radius: 0;
  background: var(--qn-surface);
  cursor: pointer;
  list-style: none;
}
.qn-org-facility > summary::-webkit-details-marker { display: none; }
.qn-org-facility[open] > summary { border-bottom: 1px solid var(--qn-border); background: var(--qn-surface-soft); }
.qn-org-disclosure {
  align-self: center;
  flex: 0 0 auto;
  color: #64748b;
  font-size: 17px;
  transition: transform .18s ease;
}
.qn-org-facility[open] .qn-org-disclosure { transform: rotate(180deg); }
.qn-org-facility-body { padding: 13px; }
.qn-org-facility-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-bottom: 12px;
}
.qn-org-facility-meta span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  background: var(--qn-surface-soft);
  color: var(--qn-muted);
  font-size: 10.5px;
}
.qn-org-facility-meta strong { color: var(--qn-text); font-weight: 700; }
.qn-org-unit-tree { display: flex; flex-direction: column; gap: 8px; }
.qn-org-unit-node { min-width: 0; }
.qn-org-unit-card { padding: 11px; background: var(--qn-surface); }
.qn-org-unit-children {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  margin-inline-start: 14px;
  padding-inline-start: 14px;
  border-inline-start: 1px dashed var(--qn-border);
}

.qn-org-facility-group {
  border-color: color-mix(in srgb, var(--color-primary) 22%, var(--qn-border));
  background: color-mix(in srgb, var(--qn-primary-soft) 30%, var(--qn-surface));
}
.qn-org-facility-group > summary {
  background: color-mix(in srgb, var(--qn-primary-soft) 48%, var(--qn-surface));
}
.qn-org-nested-facilities {
  margin-top: 0;
  margin-inline-start: 14px;
  padding-inline-start: 14px;
  border-inline-start: 1px dashed var(--qn-border);
}
.qn-org-direct-facilities-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
  padding: 9px 11px;
  border: 1px dashed var(--qn-border);
  border-radius: 11px;
  background: var(--qn-surface-soft);
  color: var(--qn-muted);
  font-size: 10.5px;
  font-weight: 700;
}

.qn-org-inline-empty {
  margin-top: 10px;
  padding: 12px;
  border: 1px dashed var(--qn-border);
  border-radius: 11px;
  background: var(--qn-surface-soft);
  color: var(--qn-muted);
  font-size: 11px;
  line-height: 1.7;
}

.qn-empty-state {
  margin-top: 14px;
  padding: 34px 20px;
  text-align: center;
  border: 1px dashed var(--qn-border);
  border-radius: 16px;
  background: #fff;
}
.qn-empty-state-icon {
  width: 46px;
  height: 46px;
  margin: 0 auto 12px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--qn-primary-soft);
  color: var(--qn-primary);
  font-size: 20px;
}
.qn-empty-state h2 { margin: 0; font-size: 15px; font-weight: 750; }
.qn-empty-state p { max-width: 520px; margin: 7px auto 0; color: var(--qn-muted); font-size: 12px; line-height: 1.75; }

@media (min-width: 576px) {
  .qn-org-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-org-facility-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
  .qn-org-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .qn-page-hero { flex-direction: row; align-items: center; justify-content: space-between; padding: 28px; }
  .qn-page-hero-actions { justify-content: flex-end; }
}

@media (min-width: 1100px) {
  .qn-org-explorer-grid { grid-template-columns: minmax(240px, .38fr) minmax(0, 1.62fr); }
  .qn-org-summary-panel { position: sticky; top: calc(var(--qn-topbar-height) + 20px); }
  .qn-org-level-branch { margin-inline-start: 23px; padding-inline-start: 23px; }
}

@media (max-width: 420px) {
  .qn-page-hero { padding: 18px; }
  .qn-org-metric-card { padding: 13px; }
  .qn-org-level-branch { margin-inline-start: 8px; padding-inline-start: 10px; }
  .qn-org-node-title-row { align-items: flex-start; }
  .qn-org-node-title-row strong { font-size: 12px; }
  .qn-status-badge { font-size: 8px; }
  .qn-org-facility-body { padding: 10px; }
  .qn-org-unit-children { margin-inline-start: 8px; padding-inline-start: 10px; }
}


/* V2-09B — Metronic Demo 1 fidelity pass */
html[lang="ar"] body { font-family: "Cairo", sans-serif; }
html[lang="en"] body { font-family: "Inter", sans-serif; }
.qn-metronic-logo { width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#2563eb;color:#fff;font-weight:700;font-size:12px;box-shadow:0 4px 12px rgba(37,99,235,.18);flex:0 0 32px; }
.qn-metronic-brand { min-width:0;display:flex;flex-direction:column;line-height:1.15; }
.qn-metronic-brand strong { font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.qn-metronic-brand small { margin-top:3px;color:var(--color-muted-foreground);font-size:10px;white-space:nowrap; }
.qn-brand-home { display:block; min-width:0; color:inherit; text-decoration:none; }
.qn-brand-full { align-items:center; gap:.625rem; min-width:0; }
.qn-brand-mini { align-items:center; justify-content:center; }
/* Keep the brand switch identical to Metronic Demo 1: full lockup while expanded/hovered, mini mark only while collapsed. */
.demo1.kt-sidebar-collapse .kt-sidebar:not(:hover) .qn-brand-full { display:none; }
.demo1.kt-sidebar-collapse .kt-sidebar:not(:hover) .qn-brand-mini { display:flex; }
.demo1.kt-sidebar-collapse .kt-sidebar:hover .qn-brand-full { display:flex; }
.demo1.kt-sidebar-collapse .kt-sidebar:hover .qn-brand-mini { display:none; }
.qn-user-avatar-metronic { width:36px;height:36px;border-radius:999px;display:grid;place-items:center;background:#eef4ff;color:#2563eb;border:2px solid #22c55e;font-size:11px;font-weight:700; }
.kt-menu-item.active > .kt-menu-link { background:color-mix(in srgb,var(--color-primary) 9%,transparent);border-radius:.5rem;color:var(--color-primary); }
.kt-menu-item.active > .kt-menu-link .kt-menu-title,.kt-menu-item.active > .kt-menu-link .kt-menu-icon { color:var(--color-primary);font-weight:600; }
.kt-table th { white-space:nowrap; }
@media (max-width:64rem){ .kt-sidebar .kt-sidebar-header{display:flex;height:60px;padding-inline:1rem;border-bottom:1px solid var(--color-border);} .kt-sidebar .small-logo{display:none;} }

/* V2-09B Fix02 — Qassim Nursing Platform brand identity + scalable organization tree */
.qn-product-mark {
  width: 50px;
  height: 38px;
  display: block;
  object-fit: contain;
  flex: 0 0 auto;
}
.qn-product-mark-mini { width: 36px; height: 30px; }
.qn-product-mark-mobile { width: 40px; height: 32px; }
.qn-brand-full .qn-product-mark { filter: drop-shadow(0 4px 10px rgba(2,132,199,.12)); }
.qn-metronic-brand strong { letter-spacing: -.015em; font-size: 13.5px; }
html[lang="ar"] .qn-metronic-brand strong { letter-spacing: 0; }

.qn-org-tree-head { align-items: center; gap: 1rem; }
.qn-org-tree-actions { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; flex-wrap: wrap; }
.qn-org-tree-actions .kt-btn { min-height: 32px; }
.qn-org-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 20px;
  padding-inline: 6px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-primary) 9%, transparent);
  color: var(--color-primary);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}
.qn-org-disclosure {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-background);
  color: var(--color-primary);
  font-size: 12px;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.qn-org-disclosure:hover { background: var(--color-accent); border-color: color-mix(in srgb, var(--color-primary) 20%, var(--color-border)); }
.qn-org-disclosure-minus { display: none; }
.qn-org-facility[open] > summary .qn-org-disclosure-plus,
.qn-org-unit-branch[open] > summary .qn-org-disclosure-plus { display: none; }
.qn-org-facility[open] > summary .qn-org-disclosure-minus,
.qn-org-unit-branch[open] > summary .qn-org-disclosure-minus { display: inline-block; }
.qn-org-facility[open] .qn-org-disclosure { transform: none; }

.qn-org-unit-branch { min-width: 0; }
.qn-org-unit-branch > summary { list-style: none; cursor: pointer; }
.qn-org-unit-branch > summary::-webkit-details-marker { display: none; }
.qn-org-unit-branch > .qn-org-unit-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.qn-org-unit-disclosure { flex: 0 0 28px; margin-top: 1px; }
.qn-org-unit-branch[open] > .qn-org-unit-card { background: var(--qn-surface-soft); }

@media (max-width: 767px) {
  .qn-org-tree-head { align-items: flex-start; }
  .qn-org-tree-actions { width: 100%; justify-content: flex-start; }
  .qn-org-tree-actions .kt-btn span { display: none; }
  .qn-org-tree-actions .kt-btn { width: 32px; padding-inline: 0; justify-content: center; }
}


/* V2-09B Fix03 — Metronic dark-mode fidelity + larger product mark */
.dark body.qn-body,
.dark .qn-workspace,
.dark .qn-main {
  background: var(--color-background);
  color: var(--foreground);
}

.dark .qn-page-hero,
.dark .qn-welcome-card,
.dark .qn-stat-card,
.dark .qn-panel,
.dark .qn-next-step,
.dark .qn-org-metric-card,
.dark .qn-org-facility,
.dark .qn-org-facility > summary,
.dark .qn-org-unit-card,
.dark .qn-empty-state,
.dark .qn-footer {
  background-color: var(--color-background);
  border-color: var(--color-border);
  color: var(--foreground);
  box-shadow: none;
}

.dark .qn-page-hero {
  background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--color-primary) 12%, transparent), transparent 34%), var(--color-background);
}
html[dir="rtl"].dark .qn-page-hero {
  background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--color-primary) 12%, transparent), transparent 34%), var(--color-background);
}

.dark .qn-welcome-card {
  background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--color-primary) 12%, transparent), transparent 36%), var(--color-background);
}
html[dir="rtl"].dark .qn-welcome-card {
  background: radial-gradient(circle at 0 0, color-mix(in srgb, var(--color-primary) 12%, transparent), transparent 36%), var(--color-background);
}

.dark .qn-org-level-node,
.dark .qn-hierarchy-node,
.dark .qn-org-facility-meta span,
.dark .qn-org-inline-empty,
.dark .qn-org-unit-branch[open] > .qn-org-unit-card,
.dark .qn-org-facility[open] > summary {
  background: var(--color-accent);
  border-color: var(--color-border);
  color: var(--foreground);
}

.dark .qn-org-level-node.is-cluster,
.dark .qn-hierarchy-node.is-primary {
  background: color-mix(in srgb, var(--color-primary) 13%, var(--color-background));
  border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
}

.dark .qn-org-level-node.is-headquarters {
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-background));
  border-color: color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
}

.dark .qn-org-node-icon,
.dark .qn-hierarchy-node > span,
.dark .qn-org-disclosure {
  background: var(--color-background);
  border-color: var(--color-border);
  color: var(--color-primary);
  box-shadow: none;
}

.dark .qn-org-secondary-name,
.dark .qn-org-node-meta,
.dark .qn-org-summary-list span,
.dark .qn-org-summary-list small,
.dark .qn-org-metric-card span:last-child,
.dark .qn-page-hero p,
.dark .qn-welcome-card p {
  color: var(--color-muted-foreground);
}

.dark .qn-org-summary-list > div,
.dark .qn-readiness-list > div {
  border-color: var(--color-border);
}

.dark .qn-org-level-branch,
.dark .qn-org-unit-children {
  border-color: var(--color-border);
}

.dark .qn-org-facility[open] > summary {
  border-bottom-color: var(--color-border);
}

.dark .qn-readonly-badge,
.dark .qn-badge,
.dark .qn-org-metric-icon,
.dark .qn-stat-icon,
.dark .qn-next-arrow {
  background: color-mix(in srgb, var(--color-primary) 13%, transparent);
  border-color: color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  color: color-mix(in srgb, var(--color-primary) 72%, white);
}

.dark .qn-live-badge,
.dark .qn-welcome-status {
  background: color-mix(in srgb, #22c55e 12%, transparent);
  border-color: color-mix(in srgb, #22c55e 28%, var(--color-border));
  color: #4ade80;
}


/* V2-09C Fix01: sizing only; visual treatment remains native Metronic KTToast. */
.qn-feedback-toast {
  width: min(420px, calc(100vw - 30px));
}

/* V2-09C Fix02 — protected Metronic actions */
.qn-button-spinner {
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 0.95rem;
  display: inline-block;
  border: 2px solid currentColor;
  border-inline-end-color: transparent;
  border-radius: 999px;
  animation: qn-button-spin .65s linear infinite;
}
@keyframes qn-button-spin { to { transform: rotate(360deg); } }


/* V2-09C Fix04 — organization select scale + hierarchy rail alignment */
.qn-facility-switch-field {
  width: clamp(340px, 38vw, 460px);
  max-width: 100%;
}
.qn-facility-switch-field .kt-select-wrapper,
.qn-facility-switch-field .kt-select-display {
  width: 100%;
}
.qn-facility-switch-field .kt-select-dropdown {
  max-width: calc(100vw - 2rem);
}

/* Keep 01 / 02 / 03 level markers on one vertical rail while the content carries hierarchy depth. */
.qn-org-level-branch {
  position: relative;
  margin-inline-start: 0;
  padding-inline-start: 0;
  border-inline-start: 0;
}
.qn-org-level-branch::before {
  content: "";
  position: absolute;
  inset-block: 0 12px;
  inset-inline-start: 16.5px;
  width: 1px;
  background: var(--qn-border);
  pointer-events: none;
}
.qn-org-level-branch > *,
.qn-org-facility-list,
.qn-org-facility {
  position: relative;
  z-index: 1;
}
.qn-org-level-node.is-headquarters .qn-org-node-copy {
  padding-inline-start: 18px;
}
.qn-org-facility > summary .qn-org-node-copy {
  padding-inline-start: 36px;
}
.qn-org-level-node.is-headquarters .qn-org-node-icon,
.qn-org-facility > summary > .qn-org-node-icon {
  position: relative;
  z-index: 2;
}

@media (max-width: 767px) {
  .qn-facility-switch-field { width: 100%; }
  .qn-org-level-node.is-headquarters .qn-org-node-copy { padding-inline-start: 10px; }
  .qn-org-facility > summary .qn-org-node-copy { padding-inline-start: 18px; }
}


/* V2-09C Fix05 — stable organization-unit count rail in Organization Explorer */
.qn-org-facility > summary {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 44px max-content 28px;
  align-items: center;
  column-gap: 11px;
}
.qn-org-facility > summary > .qn-org-node-icon {
  grid-column: 1;
}
.qn-org-facility > summary > .qn-org-node-copy {
  grid-column: 2;
  padding-inline-start: 36px;
}
.qn-org-count-rail {
  grid-column: 3;
  width: 44px;
  min-width: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
}
.qn-org-count-rail .qn-org-count-badge {
  min-width: 24px;
  font-variant-numeric: tabular-nums;
}
.qn-org-status-rail {
  grid-column: 4;
  justify-self: end;
}
.qn-org-facility > summary > .qn-org-disclosure {
  grid-column: 5;
}

@media (max-width: 767px) {
  .qn-org-facility > summary {
    grid-template-columns: 34px minmax(0, 1fr) 36px 28px;
    column-gap: 8px;
  }
  .qn-org-facility > summary > .qn-org-node-copy {
    grid-column: 2;
    padding-inline-start: 18px;
  }
  .qn-org-count-rail {
    grid-column: 3;
    width: 36px;
    min-width: 36px;
  }
  .qn-org-status-rail {
    grid-column: 2 / 4;
    grid-row: 2;
    justify-self: start;
    margin-inline-start: 18px;
    margin-top: 6px;
  }
  .qn-org-facility > summary > .qn-org-disclosure {
    grid-column: 4;
    grid-row: 1 / 3;
  }
}

/* V2-10A — Workforce Registry responsive structure built around native Metronic components. */
.qn-workforce-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.qn-workforce-stat-icon {
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
}
.qn-workforce-stat-icon.is-success {
  background: color-mix(in srgb, #22c55e 10%, transparent);
  color: #16a34a;
}
.qn-workforce-stat-icon.is-danger {
  background: color-mix(in srgb, #ef4444 10%, transparent);
  color: #dc2626;
}
.dark .qn-workforce-stat-icon.is-success { color: #4ade80; }
.dark .qn-workforce-stat-icon.is-danger { color: #f87171; }

.qn-workforce-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
.qn-filter-search { grid-column: span 4; }
.qn-filter-status { grid-column: span 2; }
.qn-filter-facility { grid-column: span 3; }
.qn-filter-unit { grid-column: span 3; }
.qn-filter-job { grid-column: span 4; }
.qn-filter-page-size { grid-column: span 2; }
.qn-filter-actions {
  grid-column: span 6;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
}
/* qn-workforce-table sizing is defined in the V2-11A fixes below. */

@media (max-width: 1199px) {
  .qn-workforce-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-workforce-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-filter-search,
  .qn-filter-status,
  .qn-filter-facility,
  .qn-filter-unit,
  .qn-filter-job,
  .qn-filter-page-size { grid-column: span 1; }
  .qn-filter-actions { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  .qn-workforce-stats,
  .qn-workforce-filters { grid-template-columns: minmax(0, 1fr); }
  .qn-filter-search,
  .qn-filter-status,
  .qn-filter-facility,
  .qn-filter-unit,
  .qn-filter-job,
  .qn-filter-page-size,
  .qn-filter-actions { grid-column: 1; }
  .qn-filter-actions { justify-content: stretch; }
  .qn-filter-actions .kt-btn { flex: 1 1 auto; justify-content: center; }
}

/* V2-10B — Employee organization assignment management */
.qn-assignment-employee-picker {
  display: flex;
  align-items: end;
  gap: 1rem;
}
.qn-assignment-employee-picker > .grow { max-width: 640px; }
.qn-assignment-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.qn-assignment-history-table { min-width: 860px; }

@media (max-width: 1023px) {
  .qn-assignment-summary-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .qn-assignment-employee-picker { align-items: stretch; flex-direction: column; }
  .qn-assignment-employee-picker > .grow { max-width: none; }
}

/* V2-10C Fix01 — consistent three-card workforce summary layout. */
.qn-workforce-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.qn-workforce-summary-grid > .kt-card {
  min-width: 0;
  height: 100%;
}
@media (max-width: 991px) {
  .qn-workforce-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-workforce-summary-grid { grid-template-columns: minmax(0, 1fr); }
}


/* V2-11A Fix02 — one centered Layout-owned Metronic modal system for every CRUD screen. */
.qn-global-modal {
  padding: 1rem;
}

.qn-global-modal .kt-modal-content {
  top: 50% !important;
  translate: 0 -50% !important;
  margin-inline: auto;
}

#qn_form_modal .qn-global-form-modal {
  width: calc(100vw - 2rem);
  max-width: 640px;
  max-height: calc(100dvh - 2rem);
  margin-inline: auto;
  overflow: hidden;
}
#qn_form_modal .qn-global-form-modal[data-qn-modal-size="sm"] { max-width: 520px; }
#qn_form_modal .qn-global-form-modal[data-qn-modal-size="md"] { max-width: 640px; }
#qn_form_modal .qn-global-form-modal[data-qn-modal-size="lg"] { max-width: 760px; }
#qn_form_modal .qn-global-form-modal[data-qn-modal-size="xl"] { max-width: 900px; }
#qn_form_modal .kt-modal-body {
  max-height: calc(100dvh - 12rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}

#qn_confirm_modal .qn-global-confirm-modal {
  width: calc(100vw - 2rem);
  max-width: 500px;
  max-height: calc(100dvh - 2rem);
  margin-inline: auto;
  overflow: hidden;
}

@media (max-width: 767px) {
  .qn-global-modal {
    padding: .5rem;
  }

  #qn_form_modal .qn-global-form-modal {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 1rem);
  }

  #qn_confirm_modal .qn-global-confirm-modal {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem);
  }
}

/* Employee Registry: keep the directory inside its card on desktop instead of forcing a 1320px rail. */
.qn-workforce-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.qn-workforce-table th,
.qn-workforce-table td {
  min-width: 0;
  vertical-align: middle;
}
.qn-workforce-table th:nth-child(1), .qn-workforce-table td:nth-child(1) { width: 8%; }
.qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 16%; }
.qn-workforce-table th:nth-child(3), .qn-workforce-table td:nth-child(3) { width: 14%; }
.qn-workforce-table th:nth-child(4), .qn-workforce-table td:nth-child(4) { width: 11%; }
.qn-workforce-table th:nth-child(5), .qn-workforce-table td:nth-child(5) { width: 15%; overflow-wrap: anywhere; }
.qn-workforce-table th:nth-child(6), .qn-workforce-table td:nth-child(6) { width: 10%; }
.qn-workforce-table th:nth-child(7), .qn-workforce-table td:nth-child(7) { width: 8%; }
.qn-workforce-table th:nth-child(8), .qn-workforce-table td:nth-child(8) { width: 18%; }
.qn-workforce-table td:nth-child(8) > div {
  flex-wrap: nowrap;
  white-space: nowrap;
}
@media (max-width: 1199px) {
  .qn-workforce-table {
    min-width: 1050px;
    table-layout: auto;
  }
}

/* V2-11C — scoped user-role assignment history */
.qn-role-assignment-table {
  min-width: 1040px;
}

.qn-role-assignment-table th:last-child,
.qn-role-assignment-table td:last-child {
  width: 150px;
  white-space: nowrap;
}

/* V2-11D — shared Metronic empty-state + table pagination foundation */
.qn-table-empty-state {
    box-shadow: none;
    align-items: center;
}

.qn-table-pagination {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem 1rem;
    min-height: 3.6rem;
    padding: .75rem 1rem;
}

.qn-pagination-summary {
    min-width: 0;
    color: var(--color-secondary-foreground);
    font-size: .75rem;
    line-height: 1.25rem;
    white-space: nowrap;
}

.qn-pagination-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    min-width: 0;
}

.qn-page-size-control {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    flex: 0 0 auto;
    min-width: max-content;
    color: var(--color-secondary-foreground);
    font-size: .75rem;
    line-height: 1.25rem;
    white-space: nowrap;
}

.qn-page-size-label {
    display: inline-block;
    width: auto;
    min-width: max-content;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
}

.qn-table-pagination .qn-page-size-select {
    width: 5.25rem;
    min-width: 5.25rem;
    min-height: 2rem;
    flex: 0 0 5.25rem;
    padding-block: .25rem;
}

.qn-table-pagination .kt-pagination {
    flex: 0 0 auto;
}

@media (max-width: 767.98px) {
    .qn-table-pagination {
        grid-template-columns: 1fr;
        justify-items: stretch;
    }

    .qn-pagination-summary {
        white-space: normal;
        text-align: center;
    }

    .qn-pagination-controls {
        justify-content: center;
        flex-wrap: wrap;
    }

    .qn-page-size-control {
        white-space: nowrap;
    }
}

.dark .qn-table-empty-state {
    background-color: color-mix(in srgb, var(--primary) 8%, transparent);
    border-color: color-mix(in srgb, var(--primary) 35%, transparent);
}


/* V2-11D Fix02 — unified filter + data-card visual language across management screens. */
.qn-filter-card,
.qn-context-card,
.qn-data-card {
  overflow: hidden;
}

.qn-filter-card > .kt-card-header,
.qn-context-card > .kt-card-header,
.qn-data-card > .kt-card-header {
  position: relative;
  min-height: 4rem;
  padding-block: .9rem;
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 7%, transparent), transparent 72%);
  border-bottom-color: color-mix(in srgb, var(--color-primary) 14%, var(--border));
}

[dir="rtl"] .qn-filter-card > .kt-card-header,
[dir="rtl"] .qn-context-card > .kt-card-header,
[dir="rtl"] .qn-data-card > .kt-card-header {
  background: linear-gradient(270deg, color-mix(in srgb, var(--color-primary) 7%, transparent), transparent 72%);
}

.qn-filter-card > .kt-card-header::before,
.qn-context-card > .kt-card-header::before,
.qn-data-card > .kt-card-header::before {
  content: "";
  position: absolute;
  inset-block: .85rem;
  inset-inline-start: 0;
  width: 3px;
  border-radius: 999px;
  background: var(--color-primary);
}

.qn-filter-card .kt-card-title,
.qn-context-card .kt-card-title,
.qn-data-card .kt-card-title {
  font-weight: 600;
  color: var(--color-mono);
}

.qn-card-header-icon {
  display: inline-flex;
  width: 2.25rem;
  height: 2.25rem;
  flex: 0 0 2.25rem;
  align-items: center;
  justify-content: center;
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
}

.qn-data-card .qn-data-table thead {
  background: color-mix(in srgb, var(--color-primary) 3.5%, var(--background));
}

.qn-data-card .qn-data-table thead th {
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .01em;
}

.qn-data-card .qn-data-table tbody tr {
  transition: background-color .16s ease;
}

.qn-data-card .qn-data-table tbody tr:hover {
  background: color-mix(in srgb, var(--color-primary) 3%, transparent);
}

.qn-data-card > .kt-card-footer,
.qn-data-card .qn-table-pagination {
  background: color-mix(in srgb, var(--color-primary) 2.5%, var(--background));
  border-top-color: color-mix(in srgb, var(--color-primary) 10%, var(--border));
}

.qn-context-card {
  border-color: color-mix(in srgb, var(--color-primary) 14%, var(--border));
}

.qn-context-card .qn-assignment-employee-picker {
  padding-block: .15rem;
}

.dark .qn-filter-card > .kt-card-header,
.dark .qn-context-card > .kt-card-header,
.dark .qn-data-card > .kt-card-header {
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 11%, transparent), transparent 72%);
}

[dir="rtl"].dark .qn-filter-card > .kt-card-header,
[dir="rtl"].dark .qn-context-card > .kt-card-header,
[dir="rtl"].dark .qn-data-card > .kt-card-header {
  background: linear-gradient(270deg, color-mix(in srgb, var(--color-primary) 11%, transparent), transparent 72%);
}

/* Access-control filter cards follow the same balanced two-row grid as Employee Registry. */
.qn-filter-card .qn-workforce-filters .qn-filter-search { grid-column: span 8; }
.qn-filter-card .qn-workforce-filters .qn-filter-status { grid-column: span 4; }
.qn-filter-card .qn-workforce-filters .qn-filter-page-size { grid-column: span 3; }
.qn-filter-card .qn-workforce-filters .qn-filter-actions { grid-column: span 9; }

@media (max-width: 1199px) {
  .qn-filter-card .qn-workforce-filters .qn-filter-search,
  .qn-filter-card .qn-workforce-filters .qn-filter-status,
  .qn-filter-card .qn-workforce-filters .qn-filter-page-size {
    grid-column: span 1;
  }
}

@media (max-width: 767px) {
  .qn-filter-card .qn-workforce-filters .qn-filter-search,
  .qn-filter-card .qn-workforce-filters .qn-filter-status,
  .qn-filter-card .qn-workforce-filters .qn-filter-page-size,
  .qn-filter-card .qn-workforce-filters .qn-filter-actions {
    grid-column: 1;
  }
}

/* V2-11D Fix03 — shared page toolbar/header card for all management screens. */
.qn-page-toolbar-card {
  position: relative;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--color-primary) 14%, var(--border));
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--color-primary) 8%, transparent), transparent 34%),
    var(--background);
}

[dir="rtl"] .qn-page-toolbar-card {
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--color-primary) 8%, transparent), transparent 34%),
    var(--background);
}

.qn-page-toolbar-card::before {
  content: "";
  position: absolute;
  inset-block: 1rem;
  inset-inline-start: 0;
  width: 3px;
  border-radius: 999px;
  background: var(--color-primary);
  z-index: 1;
}

.qn-page-toolbar-content {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  min-height: 7rem;
  padding: 1.25rem 1.35rem !important;
}

.qn-page-toolbar-main {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}

.qn-page-toolbar-icon {
  display: inline-flex;
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  align-items: center;
  justify-content: center;
  border-radius: .85rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 14%, transparent);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: 1.25rem;
}

.qn-page-toolbar-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.qn-page-toolbar-eyebrow {
  color: var(--color-primary);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .075em;
  text-transform: uppercase;
}

[dir="rtl"] .qn-page-toolbar-eyebrow {
  letter-spacing: 0;
}

.qn-page-toolbar-title {
  margin: 0;
  color: var(--color-mono);
  font-size: clamp(1.25rem, 1.55vw, 1.6rem);
  font-weight: 650;
  line-height: 1.2;
}

[dir="rtl"] .qn-page-toolbar-title {
  line-height: 1.55;
  font-weight: 700;
}

.qn-page-toolbar-description {
  max-width: 56rem;
  color: var(--color-secondary-foreground);
  font-size: .875rem;
  line-height: 1.55;
}

[dir="rtl"] .qn-page-toolbar-description {
  line-height: 1.85;
}

.qn-page-toolbar-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  margin-inline-start: auto;
}

.qn-page-toolbar-actions .kt-btn {
  min-height: 2.5rem;
  white-space: nowrap;
}

.dark .qn-page-toolbar-card {
  border-color: color-mix(in srgb, var(--color-primary) 22%, var(--border));
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--color-primary) 13%, transparent), transparent 38%),
    var(--background);
}

[dir="rtl"].dark .qn-page-toolbar-card {
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--color-primary) 13%, transparent), transparent 38%),
    var(--background);
}

@media (max-width: 767px) {
  .qn-page-toolbar-content {
    align-items: stretch;
    flex-direction: column;
    min-height: 0;
    padding: 1rem !important;
  }

  .qn-page-toolbar-main {
    align-items: flex-start;
  }

  .qn-page-toolbar-icon {
    width: 2.65rem;
    height: 2.65rem;
    flex-basis: 2.65rem;
    border-radius: .75rem;
  }

  .qn-page-toolbar-actions {
    width: 100%;
    margin-inline-start: 0;
    justify-content: stretch;
    flex-direction: column;
  }

  .qn-page-toolbar-actions .kt-btn {
    width: 100%;
    justify-content: center;
  }
}

/* V2-12A Permission Catalog: keep filter proportions aligned with the global workforce pattern. */
.qn-filter-card .qn-permission-filters .qn-filter-search { grid-column: span 6; }
.qn-filter-card .qn-permission-filters .qn-filter-module { grid-column: span 3; }
.qn-filter-card .qn-permission-filters .qn-filter-status { grid-column: span 3; }
.qn-filter-card .qn-permission-filters .qn-filter-page-size { grid-column: span 3; }
.qn-filter-card .qn-permission-filters .qn-filter-actions { grid-column: span 9; }

@media (max-width: 1024px) {
  .qn-filter-card .qn-permission-filters .qn-filter-search,
  .qn-filter-card .qn-permission-filters .qn-filter-module,
  .qn-filter-card .qn-permission-filters .qn-filter-status,
  .qn-filter-card .qn-permission-filters .qn-filter-page-size {
    grid-column: span 6;
  }
  .qn-filter-card .qn-permission-filters .qn-filter-actions { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .qn-filter-card .qn-permission-filters .qn-filter-search,
  .qn-filter-card .qn-permission-filters .qn-filter-module,
  .qn-filter-card .qn-permission-filters .qn-filter-status,
  .qn-filter-card .qn-permission-filters .qn-filter-page-size,
  .qn-filter-card .qn-permission-filters .qn-filter-actions {
    grid-column: 1 / -1;
  }
}

/* V2-12B — Role Permission Matrix */
.qn-role-permission-picker {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: .75rem;
}

.qn-role-summary-card {
  border-color: color-mix(in srgb, var(--color-primary) 14%, var(--border));
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 4%, transparent), transparent 72%);
}

[dir="rtl"] .qn-role-summary-card {
  background: linear-gradient(270deg, color-mix(in srgb, var(--color-primary) 4%, transparent), transparent 72%);
}

.qn-role-permission-card {
  overflow: hidden;
}

.qn-role-permission-header {
  min-height: 4.25rem;
}

.qn-role-permission-modules {
  display: grid;
  gap: 1rem;
}

.qn-permission-module {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-primary) 12%, var(--border));
  border-radius: .9rem;
  background: var(--background);
}

.qn-permission-module-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 4rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 10%, var(--border));
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 7%, transparent), transparent 78%);
}

[dir="rtl"] .qn-permission-module-header {
  background: linear-gradient(270deg, color-mix(in srgb, var(--color-primary) 7%, transparent), transparent 78%);
}

.qn-permission-module-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  padding: .9rem;
}

.qn-permission-option {
  position: relative;
  display: block;
  min-width: 0;
  padding: .9rem;
  border: 1px solid var(--border);
  border-radius: .8rem;
  background: color-mix(in srgb, var(--background) 96%, var(--color-primary) 4%);
  cursor: pointer;
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.qn-permission-option:hover {
  border-color: color-mix(in srgb, var(--color-primary) 28%, var(--border));
  background: color-mix(in srgb, var(--color-primary) 3.5%, var(--background));
}

.qn-permission-option.is-selected {
  border-color: color-mix(in srgb, var(--color-primary) 42%, var(--border));
  background: color-mix(in srgb, var(--color-primary) 6%, var(--background));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-primary) 7%, transparent);
}

.qn-permission-option.is-inactive {
  cursor: default;
  opacity: .72;
  background: color-mix(in srgb, var(--color-destructive) 2.5%, var(--background));
}

.qn-permission-option.is-inactive:hover {
  border-color: var(--border);
  transform: none;
}

.qn-role-permission-footer {
  min-height: 4.5rem;
  background: color-mix(in srgb, var(--color-primary) 2.5%, var(--background));
}

.dark .qn-role-summary-card,
.dark .qn-permission-module-header {
  background-color: transparent;
}

.dark .qn-permission-module {
  border-color: color-mix(in srgb, var(--color-primary) 18%, var(--border));
}

.dark .qn-permission-option {
  background: color-mix(in srgb, var(--background) 96%, var(--color-primary) 4%);
}

.dark .qn-permission-option.is-selected {
  background: color-mix(in srgb, var(--color-primary) 10%, var(--background));
  border-color: color-mix(in srgb, var(--color-primary) 46%, var(--border));
}

@media (min-width: 1440px) {
  .qn-permission-module-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .qn-role-permission-picker {
    grid-template-columns: 1fr;
  }

  .qn-role-permission-picker .kt-btn {
    width: 100%;
    justify-content: center;
  }

  .qn-permission-module-header,
  .qn-role-permission-header,
  .qn-role-permission-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .qn-permission-module-grid {
    grid-template-columns: 1fr;
  }
}

.qn-section-header-icon {
  display: inline-flex;
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 2.35rem;
  align-items: center;
  justify-content: center;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-primary) 9%, transparent);
  color: var(--color-primary);
}

/* V2-13A — Role Permission Matrix advanced UI */
.qn-role-permission-tools {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(200px, 240px) auto auto;
  align-items: center;
  gap: .75rem;
  padding: .9rem 1.25rem;
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--color-primary) 2.2%, var(--background));
}

.qn-role-permission-search {
  position: relative;
  min-width: 0;
}

.qn-role-permission-search > i {
  position: absolute;
  inset-inline-start: .8rem;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  color: var(--muted-foreground);
  pointer-events: none;
}

.qn-role-permission-search .kt-input {
  width: 100%;
  padding-inline-start: 2.35rem;
}

.qn-role-permission-filter-wrap {
  display: flex;
  align-items: center;
  min-width: 0;
}

.qn-role-permission-filter-wrap .kt-select {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.qn-role-permission-view-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  white-space: nowrap;
}

.qn-role-permission-view-actions .kt-btn {
  min-height: 32px;
}

.qn-role-permission-result-badge {
  display: flex;
  justify-content: flex-end;
  white-space: nowrap;
}

.qn-permission-module-collapse {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--border));
  border-radius: .55rem;
  color: var(--muted-foreground);
  background: var(--background);
  transition: color .16s ease, border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.qn-permission-module-collapse:hover {
  color: var(--color-primary);
  border-color: color-mix(in srgb, var(--color-primary) 34%, var(--border));
  background: color-mix(in srgb, var(--color-primary) 5%, var(--background));
}

.qn-permission-module-collapse i {
  transition: transform .18s ease;
}

.qn-permission-module.is-collapsed .qn-permission-module-collapse i {
  transform: rotate(-90deg);
}

[dir="rtl"] .qn-permission-module.is-collapsed .qn-permission-module-collapse i {
  transform: rotate(90deg);
}

.qn-permission-module.is-collapsed [data-role-permission-module-body] {
  display: none;
}

.qn-role-permission-empty {
  min-height: 240px;
  padding: 2.5rem 1rem;
  text-align: center;
  align-content: center;
}

.qn-role-permission-empty-icon {
  display: inline-flex;
  width: 3.25rem;
  height: 3.25rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  color: var(--color-primary);
  font-size: 1.3rem;
}

.qn-role-permission-dirty-status {
  display: inline-flex;
  min-height: 2.3rem;
  align-items: center;
  gap: .45rem;
  padding: .45rem .7rem;
  border: 1px solid color-mix(in srgb, var(--color-success) 25%, var(--border));
  border-radius: .65rem;
  color: var(--color-success);
  background: color-mix(in srgb, var(--color-success) 5%, var(--background));
  font-size: .75rem;
  font-weight: 600;
}

.qn-role-permission-dirty-status.is-dirty {
  border-color: color-mix(in srgb, var(--color-yellow-400) 34%, var(--border));
  color: var(--color-yellow-400);
  background: color-mix(in srgb, var(--color-yellow-400) 6%, var(--background));
}

.qn-role-permission-footer {
  position: sticky;
  bottom: 0;
  z-index: 8;
  border-top: 1px solid var(--border);
  box-shadow: 0 -10px 22px color-mix(in srgb, var(--foreground) 4%, transparent);
}

.dark .qn-role-permission-tools,
.dark .qn-role-permission-footer {
  background: color-mix(in srgb, var(--background) 97%, var(--color-primary) 3%);
}

@media (max-width: 1180px) {
  .qn-role-permission-tools {
    grid-template-columns: minmax(240px, 1fr) minmax(180px, .65fr);
  }

  .qn-role-permission-view-actions,
  .qn-role-permission-result-badge {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .qn-role-permission-tools {
    grid-template-columns: 1fr;
    padding: .85rem;
  }

  .qn-role-permission-view-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .qn-role-permission-view-actions .kt-btn {
    width: 100%;
    justify-content: center;
  }

  .qn-role-permission-result-badge {
    justify-content: flex-start;
  }

  .qn-role-permission-footer {
    position: static;
    box-shadow: none;
  }

  .qn-role-permission-footer > div:last-child {
    width: 100%;
  }

  .qn-role-permission-footer [data-role-permission-dirty-status] {
    width: 100%;
    justify-content: center;
  }

  .qn-role-permission-footer .kt-btn {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* V2-13B — User Role Assignments operational access UI */
.qn-role-user-picker > .grow {
  max-width: 760px;
}

.qn-role-access-summary {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, .7fr));
  gap: 1rem;
}

.qn-role-access-summary > .kt-card {
  min-width: 0;
  height: 100%;
}

.qn-current-access-card .qn-table-empty-state {
  min-height: 180px;
}

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

.qn-current-access-item {
  min-width: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-primary) 13%, var(--border));
  border-radius: .85rem;
  background: color-mix(in srgb, var(--color-primary) 2.5%, var(--background));
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.qn-current-access-item:hover {
  border-color: color-mix(in srgb, var(--color-primary) 30%, var(--border));
  box-shadow: 0 7px 20px color-mix(in srgb, var(--foreground) 5%, transparent);
}

.qn-current-access-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1rem .85rem;
  border-bottom: 1px solid var(--border);
}

.qn-current-access-role-icon,
.qn-current-access-meta-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 9%, transparent);
}

.qn-current-access-role-icon {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: .7rem;
}

.qn-current-access-meta-icon {
  width: 2rem;
  height: 2rem;
  border-radius: .6rem;
}

.qn-current-access-scope {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .9rem 1rem;
}

.qn-current-access-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .75rem 1rem;
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 42%, transparent);
}

.qn-role-assignment-current-row {
  background: color-mix(in srgb, var(--color-success) 3.5%, transparent);
}

.qn-role-scope-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1rem;
  flex-wrap: wrap;
  padding: .8rem .9rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 13%, var(--border));
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-primary) 3%, var(--background));
}

.dark .qn-current-access-item,
.dark .qn-role-scope-preview {
  background: color-mix(in srgb, var(--background) 97%, var(--color-primary) 3%);
}

@media (max-width: 1023px) {
  .qn-role-access-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .qn-role-access-user-card {
    grid-column: 1 / -1;
  }

  .qn-current-access-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  .qn-role-access-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .qn-role-access-user-card {
    grid-column: auto;
  }

  .qn-current-access-card .qn-data-card-header {
    align-items: flex-start;
  }

  .qn-current-access-card .qn-data-card-header > .flex:last-child {
    width: 100%;
    justify-content: space-between;
  }

  .qn-current-access-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .qn-current-access-footer .kt-btn {
    width: 100%;
    justify-content: center;
  }

  .qn-role-scope-preview {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* V2-13C — Effective Access Review */
.qn-role-access-summary {
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, .55fr));
}

.qn-effective-access-modules {
  display: grid;
  gap: 1rem;
}

.qn-effective-access-module {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: .85rem;
  background: var(--background);
}

.qn-effective-access-module-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--color-primary) 3.5%, var(--background));
}

.qn-effective-access-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding: 1rem;
}

.qn-effective-permission-item {
  min-width: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-primary) 12%, var(--border));
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary) 2%, var(--background));
}

.qn-effective-permission-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  padding: .9rem 1rem;
}

.qn-effective-permission-head .kt-badge {
  flex: 0 0 auto;
  max-width: 48%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.qn-effective-permission-description {
  padding: 0 1rem .9rem;
  color: var(--secondary-foreground);
  font-size: .75rem;
  line-height: 1.55;
}

.qn-effective-permission-sources {
  padding: .8rem 1rem;
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--muted) 38%, transparent);
}

.qn-effective-source-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  max-width: 100%;
  padding: .35rem .55rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 15%, var(--border));
  border-radius: .55rem;
  color: var(--foreground);
  background: color-mix(in srgb, var(--color-primary) 4%, var(--background));
  font-size: .7rem;
  line-height: 1.25;
}

.qn-effective-source-chip i {
  flex: 0 0 auto;
  color: var(--color-primary);
}

.qn-effective-source-separator {
  color: var(--muted-foreground);
}

.qn-effective-access-empty {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 130px;
  padding: 1.25rem;
  border: 1px dashed var(--border);
  border-radius: .8rem;
  background: color-mix(in srgb, var(--muted) 25%, transparent);
}

.qn-effective-access-empty-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 auto;
  border-radius: .75rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 9%, transparent);
}

.dark .qn-effective-access-module,
.dark .qn-effective-permission-item,
.dark .qn-effective-source-chip {
  background: color-mix(in srgb, var(--background) 97%, var(--color-primary) 3%);
}

@media (max-width: 1199px) {
  .qn-role-access-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .qn-role-access-user-card {
    grid-column: 1 / -1;
  }
}

@media (max-width: 899px) {
  .qn-effective-access-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  .qn-role-access-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .qn-role-access-user-card {
    grid-column: auto;
  }

  .qn-effective-access-card .qn-data-card-header {
    align-items: flex-start;
  }

  .qn-effective-access-card .qn-data-card-header > .flex:last-child {
    width: 100%;
  }

  .qn-effective-permission-head {
    flex-direction: column;
  }

  .qn-effective-permission-head .kt-badge {
    max-width: 100%;
  }
}

/* V2-14A — Workforce Employee Registry operational readiness and employee profile. */
.qn-workforce-stat-icon.is-warning {
  background: color-mix(in srgb, #f59e0b 12%, transparent);
  color: #d97706;
}
.dark .qn-workforce-stat-icon.is-warning { color: #fbbf24; }

.qn-workforce-readiness-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
}
.qn-workforce-readiness-copy {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
}
.qn-workforce-readiness-items {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .5rem;
}
.qn-readiness-chip {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .65rem;
  border: 1px solid var(--color-border);
  border-radius: .6rem;
  background: color-mix(in srgb, var(--color-muted) 55%, transparent);
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  white-space: nowrap;
}
.qn-readiness-chip strong {
  color: var(--color-mono);
  font-size: .875rem;
}

.qn-employee-profile {
  display: grid;
  gap: 1rem;
}
.qn-employee-profile-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
}
.qn-employee-profile-avatar {
  width: 3.5rem;
  height: 3.5rem;
  flex: 0 0 3.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
  font-size: 1.15rem;
  font-weight: 700;
}
.qn-employee-profile-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.qn-employee-profile-panel {
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  overflow: hidden;
  background: var(--color-background);
}
.qn-employee-profile-panel-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 2.9rem;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-muted) 50%, transparent);
  color: var(--color-mono);
  font-weight: 600;
}
.qn-employee-profile-panel-title i { color: var(--color-primary); }
.qn-employee-profile-list {
  display: grid;
  margin: 0;
  padding: .35rem 1rem;
}
.qn-employee-profile-list > div {
  display: grid;
  grid-template-columns: minmax(105px, .8fr) minmax(0, 1.2fr);
  gap: .75rem;
  padding: .72rem 0;
  border-bottom: 1px dashed var(--color-border);
}
.qn-employee-profile-list > div:last-child { border-bottom: 0; }
.qn-employee-profile-list dt {
  color: var(--color-secondary-foreground);
  font-size: .75rem;
}
.qn-employee-profile-list dd {
  min-width: 0;
  margin: 0;
  color: var(--color-mono);
  font-size: .8rem;
  font-weight: 500;
  overflow-wrap: anywhere;
}
.qn-employee-profile-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-muted) 35%, transparent);
}

@media (max-width: 991px) {
  .qn-employee-profile-grid { grid-template-columns: minmax(0, 1fr); }
  .qn-workforce-readiness-content { align-items: flex-start; flex-direction: column; }
  .qn-workforce-readiness-items { justify-content: flex-start; }
}
@media (max-width: 575px) {
  .qn-employee-profile-list > div { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .qn-employee-profile-actions > div:last-child { width: 100%; }
  .qn-employee-profile-actions .kt-btn { flex: 1 1 100%; justify-content: center; }
  .qn-readiness-chip { flex: 1 1 100%; justify-content: space-between; }
}

/* V2-14A table balance: room for Profile + Edit + lifecycle action without wrapping. */
.qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 15%; }
.qn-workforce-table th:nth-child(3), .qn-workforce-table td:nth-child(3) { width: 13%; }
.qn-workforce-table th:nth-child(5), .qn-workforce-table td:nth-child(5) { width: 12%; }
.qn-workforce-table th:nth-child(8), .qn-workforce-table td:nth-child(8) { width: 23%; }

/* V2-14A-R1 — progressive workforce profile completion and data-quality controls. */
.qn-workforce-readiness-overview {
  display: grid;
  gap: .85rem;
  min-width: min(100%, 430px);
}
.qn-completion-summary {
  min-width: 260px;
}
.qn-profile-progress {
  position: relative;
  width: 100%;
  height: .48rem;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-muted) 70%, transparent);
}
.qn-profile-progress > span {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
  background: var(--color-primary);
  transition: width .2s ease;
}
.qn-table-completion {
  display: grid;
  gap: .45rem;
  min-width: 100px;
}
.qn-profile-completion-card {
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 3%, transparent);
}
.qn-profile-gap-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.qn-profile-gap {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .38rem .55rem;
  border: 1px solid color-mix(in srgb, #f59e0b 28%, var(--color-border));
  border-radius: .5rem;
  background: color-mix(in srgb, #f59e0b 8%, transparent);
  color: var(--color-secondary-foreground);
  font-size: .72rem;
}
.qn-profile-gap i { color: #d97706; }
.dark .qn-profile-gap i { color: #fbbf24; }
.qn-progressive-entry-note {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-primary) 5%, transparent);
  color: var(--color-secondary-foreground);
  font-size: .78rem;
  line-height: 1.45;
}
.qn-progressive-entry-note > i {
  margin-top: .1rem;
  color: var(--color-primary);
  font-size: 1rem;
}
.qn-progressive-entry-note strong {
  display: block;
  margin-bottom: .15rem;
  color: var(--color-mono);
}
.qn-optional-label {
  margin-inline-start: .35rem;
  color: var(--color-secondary-foreground);
  font-size: .7rem;
  font-weight: 400;
}
.qn-field-error {
  min-height: .9rem;
  color: #dc2626;
  font-size: .7rem;
  line-height: 1.25;
}
.dark .qn-field-error { color: #f87171; }

/* Employee Registry now has a dedicated completion column. */
.qn-workforce-table th:nth-child(1), .qn-workforce-table td:nth-child(1) { width: 10%; }
.qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 13%; }
.qn-workforce-table th:nth-child(3), .qn-workforce-table td:nth-child(3) { width: 10%; }
.qn-workforce-table th:nth-child(4), .qn-workforce-table td:nth-child(4) { width: 12%; }
.qn-workforce-table th:nth-child(5), .qn-workforce-table td:nth-child(5) { width: 9%; }
.qn-workforce-table th:nth-child(6), .qn-workforce-table td:nth-child(6) { width: 11%; overflow-wrap: anywhere; }
.qn-workforce-table th:nth-child(7), .qn-workforce-table td:nth-child(7) { width: 9%; }
.qn-workforce-table th:nth-child(8), .qn-workforce-table td:nth-child(8) { width: 7%; }
.qn-workforce-table th:nth-child(9), .qn-workforce-table td:nth-child(9) { width: 19%; }
.qn-workforce-table td:nth-child(9) > div { flex-wrap: nowrap; white-space: nowrap; }

@media (max-width: 991px) {
  .qn-completion-summary { width: 100%; min-width: 0; }
}

/* V2-14B — core nursing profile form sections. */
.qn-employee-edit-form {
  display: grid;
  gap: 1rem;
}
.qn-employee-form-section {
  display: grid;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-muted) 35%, transparent);
}
.qn-employee-form-section[hidden],
.qn-employee-form-section.hidden {
  display: none !important;
}
.qn-employee-form-section-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-mono);
  font-size: .82rem;
  font-weight: 700;
}
.qn-employee-form-section-title i {
  color: var(--color-primary);
  font-size: 1rem;
}
@media (max-width: 575px) {
  .qn-employee-form-section { padding: .85rem; }
}

/* V2-14B UX polish — completion health, workforce readiness metrics and full employee workspace. */
.qn-profile-progress.is-danger > span { background: #ef4444; }
.qn-profile-progress.is-warning > span { background: #f59e0b; }
.qn-profile-progress.is-primary > span { background: var(--color-primary); }
.qn-profile-progress.is-success > span { background: #22c55e; }

.qn-completion-summary {
  display: grid;
  gap: .7rem;
  padding: .85rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: var(--color-background);
  box-shadow: 0 1px 2px rgb(15 23 42 / .03);
}
.qn-completion-summary.is-danger {
  border-color: color-mix(in srgb, #ef4444 28%, var(--color-border));
  background: color-mix(in srgb, #ef4444 5%, var(--color-background));
}
.qn-completion-summary.is-warning {
  border-color: color-mix(in srgb, #f59e0b 30%, var(--color-border));
  background: color-mix(in srgb, #f59e0b 6%, var(--color-background));
}
.qn-completion-summary.is-primary {
  border-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-background));
}
.qn-completion-summary.is-success {
  border-color: color-mix(in srgb, #22c55e 30%, var(--color-border));
  background: color-mix(in srgb, #22c55e 6%, var(--color-background));
}
.qn-completion-summary.is-danger strong { color: #dc2626; }
.qn-completion-summary.is-warning strong { color: #d97706; }
.qn-completion-summary.is-primary strong { color: var(--color-primary); }
.qn-completion-summary.is-success strong { color: #16a34a; }
.dark .qn-completion-summary.is-danger strong { color: #f87171; }
.dark .qn-completion-summary.is-warning strong { color: #fbbf24; }
.dark .qn-completion-summary.is-success strong { color: #4ade80; }

.qn-workforce-readiness-items {
  display: grid;
  grid-template-columns: repeat(5, minmax(132px, 1fr));
  gap: .65rem;
  flex: 1 1 560px;
}
.qn-readiness-metric {
  --qn-metric-rgb: 59 130 246;
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
  gap: .65rem;
  min-height: 4.25rem;
  padding: .7rem .75rem;
  border: 1px solid rgb(var(--qn-metric-rgb) / .18);
  border-radius: .75rem;
  background: linear-gradient(145deg, rgb(var(--qn-metric-rgb) / .08), rgb(var(--qn-metric-rgb) / .025));
  overflow: hidden;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.qn-readiness-metric::after {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: 3px;
  background: rgb(var(--qn-metric-rgb));
  opacity: .82;
}
.qn-readiness-metric:hover {
  transform: translateY(-1px);
  border-color: rgb(var(--qn-metric-rgb) / .34);
  box-shadow: 0 8px 20px rgb(var(--qn-metric-rgb) / .08);
}
.qn-readiness-metric > i {
  display: inline-flex;
  width: 2.15rem;
  height: 2.15rem;
  flex: 0 0 2.15rem;
  align-items: center;
  justify-content: center;
  border-radius: .65rem;
  background: rgb(var(--qn-metric-rgb) / .12);
  color: rgb(var(--qn-metric-rgb));
  font-size: 1rem;
}
.qn-readiness-metric > span {
  min-width: 0;
  display: grid;
  gap: .08rem;
}
.qn-readiness-metric strong {
  color: var(--color-mono);
  font-size: 1rem;
  line-height: 1.15;
}
.qn-readiness-metric small {
  min-width: 0;
  color: var(--color-secondary-foreground);
  font-size: .67rem;
  line-height: 1.25;
  white-space: normal;
}
.qn-readiness-metric.is-indigo { --qn-metric-rgb: 79 70 229; }
.qn-readiness-metric.is-blue { --qn-metric-rgb: 37 99 235; }
.qn-readiness-metric.is-violet { --qn-metric-rgb: 124 58 237; }
.qn-readiness-metric.is-cyan { --qn-metric-rgb: 8 145 178; }
.qn-readiness-metric.is-amber { --qn-metric-rgb: 217 119 6; }
.qn-readiness-metric.is-emerald { --qn-metric-rgb: 5 150 105; }
.qn-readiness-metric.is-complete {
  --qn-metric-rgb: 22 163 74;
  border-color: rgb(var(--qn-metric-rgb) / .18);
  background: color-mix(in srgb, #22c55e 5%, var(--color-background));
}
.qn-readiness-metric.is-complete strong { color: #15803d; }
.dark .qn-readiness-metric.is-complete strong { color: #4ade80; }

/* Dedicated employee workspace. The profile is now a page, not a summary modal. */
.qn-employee-profile-page { padding-bottom: .5rem; }
.qn-profile-hero-card {
  overflow: hidden;
  border-color: color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  background:
    radial-gradient(circle at 92% 20%, color-mix(in srgb, var(--color-primary) 10%, transparent) 0, transparent 35%),
    var(--color-background);
}
.qn-profile-hero-card--employment-ended {
  border-color: color-mix(in srgb, var(--color-danger, #dc2626) 28%, var(--color-border));
  background:
    radial-gradient(circle at 92% 20%, color-mix(in srgb, var(--color-danger, #dc2626) 12%, transparent) 0, transparent 38%),
    color-mix(in srgb, var(--color-danger, #dc2626) 4%, var(--color-background));
}
.qn-profile-hero-card--employment-ended .qn-profile-avatar-lg {
  border-color: color-mix(in srgb, var(--color-danger, #dc2626) 26%, var(--color-border));
  background: color-mix(in srgb, var(--color-danger, #dc2626) 9%, var(--color-background));
  color: var(--color-danger, #dc2626);
}
.qn-profile-ended-banner {
  display: inline-flex; align-items: center; gap: .35rem; margin: .25rem 0 .2rem; padding: .3rem .55rem;
  border: 1px solid color-mix(in srgb, var(--color-danger, #dc2626) 25%, var(--color-border)); border-radius: .5rem;
  background: color-mix(in srgb, var(--color-danger, #dc2626) 9%, transparent); color: var(--color-danger, #dc2626);
  font-size: .75rem; font-weight: 650;
}
.qn-profile-hero-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 1.35rem;
}
.qn-profile-identity-block {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  flex: 1 1 auto;
}
.qn-profile-avatar-lg {
  display: inline-flex;
  width: 4.5rem;
  height: 4.5rem;
  flex: 0 0 4.5rem;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  border-radius: 1rem;
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-background));
  color: var(--color-primary);
  font-size: 1.45rem;
  font-weight: 700;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 40%, transparent);
}
.qn-profile-hero-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .85rem;
  flex-wrap: wrap;
}
.qn-profile-completion-orb {
  --qn-completion-rgb: 59 130 246;
  display: grid;
  min-width: 8.25rem;
  gap: .05rem;
  padding: .65rem .85rem;
  border: 1px solid rgb(var(--qn-completion-rgb) / .24);
  border-radius: .8rem;
  background: rgb(var(--qn-completion-rgb) / .07);
  text-align: center;
}
.qn-profile-completion-orb strong {
  color: rgb(var(--qn-completion-rgb));
  font-size: 1.45rem;
  line-height: 1.2;
}
.qn-profile-completion-orb span {
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-profile-completion-orb.is-danger { --qn-completion-rgb: 239 68 68; }
.qn-profile-completion-orb.is-warning { --qn-completion-rgb: 245 158 11; }
.qn-profile-completion-orb.is-primary { --qn-completion-rgb: 59 130 246; }
.qn-profile-completion-orb.is-success { --qn-completion-rgb: 34 197 94; }

.qn-profile-tabs-shell { min-width: 0; }
.qn-profile-tabs {
  gap: .35rem;
  padding: .25rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-muted) 42%, transparent);
  scrollbar-width: thin;
}
.qn-profile-tabs .kt-tab-toggle {
  flex: 0 0 auto;
  gap: .45rem;
  border-radius: .55rem;
  padding-inline: .85rem;
}
.qn-profile-tabs .kt-tab-toggle.active {
  background: var(--color-background);
  box-shadow: 0 1px 3px rgb(15 23 42 / .08);
}
.qn-profile-quality-card {
  --qn-quality-rgb: 59 130 246;
  overflow: hidden;
  border-color: rgb(var(--qn-quality-rgb) / .2);
  background: linear-gradient(140deg, rgb(var(--qn-quality-rgb) / .06), transparent 55%), var(--color-background);
}
.qn-profile-quality-card.is-danger { --qn-quality-rgb: 239 68 68; }
.qn-profile-quality-card.is-warning { --qn-quality-rgb: 245 158 11; }
.qn-profile-quality-card.is-primary { --qn-quality-rgb: 59 130 246; }
.qn-profile-quality-card.is-success { --qn-quality-rgb: 34 197 94; }
.qn-profile-section-icon {
  --qn-quality-rgb: 59 130 246;
  display: inline-flex;
  width: 2.4rem;
  height: 2.4rem;
  flex: 0 0 2.4rem;
  align-items: center;
  justify-content: center;
  border-radius: .7rem;
  background: rgb(var(--qn-quality-rgb) / .11);
  color: rgb(var(--qn-quality-rgb));
  font-size: 1.05rem;
}
.qn-profile-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.qn-profile-detail-card {
  min-width: 0;
  overflow: hidden;
}
.qn-profile-detail-card .kt-card-header {
  min-height: 3.3rem;
  padding-inline: 1rem;
}
.qn-profile-detail-list {
  display: grid;
  margin: 0;
  padding: .25rem 1rem .65rem;
}
.qn-profile-detail-list > div {
  display: grid;
  grid-template-columns: minmax(125px, .8fr) minmax(0, 1.2fr);
  gap: .75rem;
  padding: .72rem 0;
  border-bottom: 1px dashed var(--color-border);
}
.qn-profile-detail-list > div:last-child { border-bottom: 0; }
.qn-profile-detail-list dt {
  color: var(--color-secondary-foreground);
  font-size: .74rem;
}
.qn-profile-detail-list dd {
  min-width: 0;
  margin: 0;
  color: var(--color-mono);
  font-size: .78rem;
  font-weight: 500;
  overflow-wrap: anywhere;
}
.qn-current-workforce-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.qn-current-workforce-card {
  display: grid;
  gap: .8rem;
  min-height: 9.25rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-muted) 28%, transparent);
}
.qn-current-workforce-card .qn-current-workforce-icon {
  display: inline-flex;
  width: 2.35rem;
  height: 2.35rem;
  align-items: center;
  justify-content: center;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
}
.qn-profile-history-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.qn-profile-history-card { min-width: 0; overflow: hidden; }
.qn-profile-history-list { display: grid; }
.qn-profile-history-item {
  display: grid;
  gap: .4rem;
  padding: .9rem 1rem;
  border-bottom: 1px solid var(--color-border);
}
.qn-profile-history-item:last-child { border-bottom: 0; }
.qn-profile-history-meta {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-profile-future-module {
  display: grid;
  place-items: center;
  gap: .8rem;
  min-height: 16rem;
  padding: 2rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 25%, var(--color-border));
  border-radius: .9rem;
  background: color-mix(in srgb, var(--color-primary) 3%, transparent);
  text-align: center;
}
.qn-profile-future-module-icon {
  display: inline-flex;
  width: 3.5rem;
  height: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: 1.5rem;
}
.qn-access-overview-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.qn-access-overview-card > .grow { flex: 1 1 220px; }

/* Metronic Flatpickr alignment. English display is forced from JS and native mobile pickers are disabled. */
.qn-date-control { cursor: pointer; }
.qn-date-control input,
.qn-date-control .qn-date-display {
  direction: ltr;
  text-align: start;
  font-variant-numeric: tabular-nums;
}
.flatpickr-calendar {
  z-index: 11000 !important;
  border: 1px solid var(--color-border) !important;
  border-radius: .8rem !important;
  background: var(--color-background) !important;
  box-shadow: 0 18px 45px rgb(15 23 42 / .16) !important;
  color: var(--color-foreground) !important;
  font-family: Inter, Cairo, sans-serif !important;
  overflow: hidden;
}
.flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before,
.flatpickr-calendar.arrowBottom::after { display: none !important; }
.flatpickr-months {
  padding: .45rem .45rem .1rem;
  background: color-mix(in srgb, var(--color-muted) 45%, transparent);
}
.flatpickr-months .flatpickr-month,
.flatpickr-current-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
  color: var(--color-mono) !important;
  background: transparent !important;
  fill: var(--color-mono) !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums;
}
.flatpickr-prev-month,
.flatpickr-next-month {
  top: .45rem !important;
  color: var(--color-secondary-foreground) !important;
  fill: currentColor !important;
}
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover { color: var(--color-primary) !important; }
.flatpickr-weekdays { background: transparent !important; }
span.flatpickr-weekday {
  color: var(--color-secondary-foreground) !important;
  font-size: .7rem !important;
  font-weight: 600 !important;
}
.flatpickr-days { border-color: var(--color-border) !important; }
.flatpickr-day {
  border-radius: .55rem !important;
  color: var(--color-foreground) !important;
  font-variant-numeric: tabular-nums;
}
.flatpickr-day:hover,
.flatpickr-day:focus {
  border-color: color-mix(in srgb, var(--color-primary) 20%, transparent) !important;
  background: color-mix(in srgb, var(--color-primary) 8%, transparent) !important;
}
.flatpickr-day.today {
  border-color: color-mix(in srgb, var(--color-primary) 55%, transparent) !important;
  color: var(--color-primary) !important;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
  border-color: var(--color-primary) !important;
  background: var(--color-primary) !important;
  color: #fff !important;
}
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay { color: color-mix(in srgb, var(--color-secondary-foreground) 55%, transparent) !important; }
.dark .flatpickr-calendar { box-shadow: 0 20px 52px rgb(0 0 0 / .38) !important; }

@media (max-width: 1199px) {
  .qn-workforce-readiness-items { grid-template-columns: repeat(3, minmax(135px, 1fr)); }
}
@media (max-width: 991px) {
  .qn-profile-hero-content { align-items: flex-start; flex-direction: column; }
  .qn-profile-hero-actions { width: 100%; justify-content: space-between; }
  .qn-profile-overview-grid,
  .qn-current-workforce-grid,
  .qn-profile-history-grid { grid-template-columns: minmax(0, 1fr); }
  .qn-workforce-readiness-items { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-access-overview-card { align-items: flex-start; }
}
@media (max-width: 575px) {
  .qn-profile-hero-content { padding: 1rem; }
  .qn-profile-identity-block { align-items: flex-start; }
  .qn-profile-avatar-lg { width: 3.65rem; height: 3.65rem; flex-basis: 3.65rem; border-radius: .85rem; }
  .qn-profile-hero-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .qn-profile-completion-orb { width: 100%; }
  .qn-profile-hero-actions .kt-btn { width: 100%; justify-content: center; }
  .qn-profile-detail-list > div { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .qn-workforce-readiness-items { grid-template-columns: minmax(0, 1fr); }
  .qn-readiness-metric { min-height: 3.8rem; }
}
.qn-profile-hero-actions form { display: inline-flex; }
@media (max-width: 575px) {
  .qn-profile-hero-actions form { width: 100%; }
  .qn-profile-hero-actions form .kt-btn { width: 100%; justify-content: center; }
}


/* V2-14B-R2 — Employee Registry & Profile visual refinement */
.qn-workforce-status-col {
  width: 8.5%;
  min-width: 7.5rem;
  text-align: center;
}
.qn-workforce-actions-col {
  min-width: 17.5rem;
}
.qn-status-cell {
  display: flex;
  justify-content: center;
}
.qn-status-pill {
  min-width: 5.75rem;
  justify-content: center;
  font-weight: 600;
}
.qn-table-action-group {
  display: inline-flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .5rem;
  width: 100%;
}
.qn-table-action-group .kt-btn {
  white-space: nowrap;
}
.qn-back-nav-btn {
  gap: .45rem;
  padding-inline: .9rem;
  border-radius: 999px;
  border-color: color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-background));
  color: var(--color-primary);
  box-shadow: 0 8px 22px rgb(15 23 42 / .05);
}
.qn-back-nav-btn:hover {
  border-color: color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-background));
}
.qn-profile-detail-card {
  position: relative;
  border-color: color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 4%, var(--color-background)), var(--color-background) 3.6rem),
    var(--color-background);
  box-shadow: 0 14px 34px rgb(15 23 42 / .06);
}
.qn-profile-detail-card::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: .24rem;
  background: linear-gradient(90deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 40%, transparent));
}
.qn-profile-detail-card .kt-card-header {
  min-height: 3.75rem;
  padding-inline: 1.1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 10%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 3.5%, var(--color-background));
}
.qn-profile-detail-card .kt-card-title {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-size: .95rem;
  letter-spacing: -.01em;
}
.qn-profile-detail-card .kt-card-title i {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  align-items: center;
  justify-content: center;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-primary) 11%, transparent);
  color: var(--color-primary);
  font-size: .95rem;
}
.qn-profile-detail-card .kt-card-content {
  padding: 1rem 1.1rem 1.1rem !important;
}
.qn-profile-detail-list {
  gap: .1rem;
  padding: 0;
}
.qn-profile-detail-list > div {
  grid-template-columns: minmax(132px, .82fr) minmax(0, 1.18fr);
  align-items: center;
  padding: .8rem 0;
  border-bottom: 1px dashed color-mix(in srgb, var(--color-primary) 10%, var(--color-border));
}
.qn-profile-detail-list dt {
  color: var(--color-secondary-foreground);
  font-size: .73rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.qn-profile-detail-list dd {
  font-size: .82rem;
  line-height: 1.45;
}
@media (max-width: 991px) {
  .qn-workforce-actions-col { min-width: 14rem; }
  .qn-status-pill { min-width: 5.2rem; }
}


/* V2-14B-R2 Fix01 — protect Employee Registry Status from action-column overlap */
.qn-workforce-table {
  min-width: 1220px;
  table-layout: auto;
}
.qn-workforce-table th:nth-child(7),
.qn-workforce-table td:nth-child(7) {
  width: 10%;
  min-width: 8.75rem;
  white-space: nowrap;
}
.qn-workforce-table th:nth-child(8),
.qn-workforce-table td:nth-child(8) {
  width: 8%;
  min-width: 7.25rem;
  white-space: nowrap;
  text-align: center;
}
.qn-workforce-table th:nth-child(9),
.qn-workforce-table td:nth-child(9) {
  width: 20%;
  min-width: 18.25rem;
  white-space: nowrap;
}
.qn-workforce-table td:nth-child(7) .kt-badge,
.qn-workforce-table td:nth-child(8) .kt-badge {
  display: inline-flex;
  flex: 0 0 auto;
  max-width: none;
  white-space: nowrap;
}
.qn-workforce-table .qn-workforce-status-col {
  min-width: 7.25rem !important;
  text-align: center;
}
.qn-workforce-table .qn-workforce-actions-col {
  min-width: 18.25rem !important;
}
.qn-table-action-group {
  flex-wrap: nowrap;
  min-width: max-content;
}


/* V2-14B-R2 Fix02 — balanced Employee Registry columns without horizontal overflow */
.qn-workforce-table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}
.qn-workforce-table th,
.qn-workforce-table td {
  min-width: 0 !important;
  overflow-wrap: normal;
  word-break: normal;
}
.qn-workforce-table th:nth-child(1), .qn-workforce-table td:nth-child(1) { width: 10%; }
.qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 14%; }
.qn-workforce-table th:nth-child(3), .qn-workforce-table td:nth-child(3) { width: 11%; }
.qn-workforce-table th:nth-child(4), .qn-workforce-table td:nth-child(4) { width: 13%; }
.qn-workforce-table th:nth-child(5), .qn-workforce-table td:nth-child(5) { width: 10%; overflow-wrap: normal; }
.qn-workforce-table th:nth-child(6), .qn-workforce-table td:nth-child(6) { width: 11%; overflow-wrap: anywhere; }
.qn-workforce-table th:nth-child(7), .qn-workforce-table td:nth-child(7) { width: 10%; }
.qn-workforce-table th:nth-child(8), .qn-workforce-table td:nth-child(8) { width: 8%; }
.qn-workforce-table th:nth-child(9), .qn-workforce-table td:nth-child(9) { width: 13%; }
.qn-workforce-table .qn-workforce-status-col,
.qn-workforce-table .qn-workforce-actions-col {
  min-width: 0 !important;
}
.qn-workforce-table td:nth-child(7) .kt-badge,
.qn-workforce-table td:nth-child(8) .kt-badge {
  max-width: 100%;
  white-space: nowrap;
}
.qn-workforce-table td:nth-child(7) .kt-badge {
  font-size: .68rem;
  padding-inline: .5rem;
}
.qn-status-pill {
  min-width: 4.8rem;
  max-width: 100%;
  justify-content: center;
  white-space: nowrap;
}
.qn-table-action-group {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: nowrap;
  gap: .35rem;
  width: 100%;
  min-width: 0;
  white-space: nowrap;
}
.qn-table-action-group .kt-btn {
  flex: 0 0 auto;
}
.qn-icon-action {
  width: 2.05rem;
  min-width: 2.05rem;
  height: 2.05rem;
  padding: 0 !important;
  justify-content: center;
}
.qn-icon-action .qn-action-text-secondary {
  display: none;
}
.qn-workforce-table td:nth-child(4),
.qn-workforce-table td:nth-child(5) {
  line-height: 1.35;
}
@media (max-width: 1199px) {
  .qn-workforce-table {
    min-width: 0 !important;
    table-layout: fixed !important;
  }
}


/* V2-14B-R2 Fix03 — compact Metronic Actions dropdown for Employee Registry */
.qn-workforce-table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}
.qn-workforce-table th:nth-child(1), .qn-workforce-table td:nth-child(1) { width: 10%; }
.qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 15%; }
.qn-workforce-table th:nth-child(3), .qn-workforce-table td:nth-child(3) { width: 11%; }
.qn-workforce-table th:nth-child(4), .qn-workforce-table td:nth-child(4) { width: 15%; }
.qn-workforce-table th:nth-child(5), .qn-workforce-table td:nth-child(5) { width: 10%; }
.qn-workforce-table th:nth-child(6), .qn-workforce-table td:nth-child(6) { width: 12%; }
.qn-workforce-table th:nth-child(7), .qn-workforce-table td:nth-child(7) { width: 10%; }
.qn-workforce-table th:nth-child(8), .qn-workforce-table td:nth-child(8) { width: 8%; }
.qn-workforce-table th:nth-child(9), .qn-workforce-table td:nth-child(9) { width: 9%; }
.qn-table-action-group {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem;
  width: 100%;
  min-width: 0;
}
.qn-table-action-group > * { flex: 0 0 auto; }
.qn-actions-dropdown-toggle {
  gap: .35rem;
  white-space: nowrap;
}
.qn-employee-actions-menu .kt-dropdown-menu-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-height: 2.45rem;
  text-align: start;
}
.qn-employee-actions-menu .kt-dropdown-menu-link.text-danger { color: var(--color-destructive); }
.qn-employee-actions-menu .kt-dropdown-menu-link.text-success { color: #16a34a; }
.qn-workforce-table td:nth-child(4),
.qn-workforce-table td:nth-child(5) {
  overflow-wrap: normal;
  word-break: normal;
  line-height: 1.35;
}
.qn-workforce-table td:nth-child(6) { overflow-wrap: anywhere; }
@media (max-width: 1199px) {
  .qn-actions-dropdown-toggle span { display: none; }
  .qn-actions-dropdown-toggle .ki-down { display: none; }
  .qn-workforce-table th:nth-child(9), .qn-workforce-table td:nth-child(9) { width: 8%; }
  .qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 16%; }
}

/* V2-14B-R2 Fix04 — reserve real space for Status and compact Actions without overlay */
.qn-workforce-table {
  width: 100% !important;
  table-layout: fixed !important;
}
.qn-workforce-table th:nth-child(1), .qn-workforce-table td:nth-child(1) { width: 10% !important; }
.qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 13% !important; }
.qn-workforce-table th:nth-child(3), .qn-workforce-table td:nth-child(3) { width: 10% !important; }
.qn-workforce-table th:nth-child(4), .qn-workforce-table td:nth-child(4) { width: 14% !important; }
.qn-workforce-table th:nth-child(5), .qn-workforce-table td:nth-child(5) { width: 9% !important; }
.qn-workforce-table th:nth-child(6), .qn-workforce-table td:nth-child(6) { width: 10% !important; }
.qn-workforce-table th:nth-child(7), .qn-workforce-table td:nth-child(7) { width: 10% !important; }
.qn-workforce-table th:nth-child(8), .qn-workforce-table td:nth-child(8) { width: 8% !important; }
.qn-workforce-table th:nth-child(9), .qn-workforce-table td:nth-child(9) { width: 16% !important; }

.qn-workforce-table .qn-workforce-status-col {
  padding-inline: .25rem !important;
  text-align: center !important;
  overflow: visible !important;
}
.qn-workforce-table .qn-workforce-actions-col {
  padding-inline: .45rem !important;
  overflow: visible !important;
}
.qn-status-cell {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.qn-status-pill {
  min-width: 4.35rem !important;
  max-width: none !important;
  padding-inline: .42rem !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}
.qn-table-action-group {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .35rem !important;
  overflow: visible !important;
}
.qn-table-action-group > * {
  flex: 0 0 auto !important;
}
.qn-table-action-group > a.kt-btn,
.qn-actions-dropdown-toggle {
  padding-inline: .55rem !important;
}
@media (max-width: 1199px) {
  .qn-workforce-table th:nth-child(9), .qn-workforce-table td:nth-child(9) { width: 16% !important; }
  .qn-workforce-table th:nth-child(2), .qn-workforce-table td:nth-child(2) { width: 13% !important; }
  .qn-actions-dropdown-toggle span { display: inline !important; }
  .qn-actions-dropdown-toggle .ki-down { display: inline-flex !important; }
}


/* V2-14B-R2 Fix05 — Arabic / RTL polish for Workforce Registry */
html[dir="rtl"] .qn-workforce-filters .kt-form-label,
html[dir="rtl"] .qn-workforce-table th,
html[dir="rtl"] .qn-workforce-table td {
  text-align: right;
}
html[dir="rtl"] .qn-workforce-table .qn-workforce-status-col {
  text-align: center !important;
}
html[dir="rtl"] .qn-workforce-table .qn-workforce-actions-col {
  text-align: left !important;
}
html[dir="rtl"] .qn-table-action-group {
  justify-content: flex-start !important;
}
html[dir="rtl"] .qn-employee-actions-menu,
html[dir="rtl"] .qn-employee-actions-menu .kt-dropdown-menu-link {
  direction: rtl;
  text-align: right;
}
html[dir="rtl"] .qn-employee-actions-menu .kt-dropdown-menu-link {
  justify-content: flex-start;
}
html[dir="rtl"] .qn-actions-dropdown-toggle,
html[dir="rtl"] .qn-table-action-group > a.kt-btn {
  direction: rtl;
}
html[dir="rtl"] .qn-workforce-table td:nth-child(1),
html[dir="rtl"] .qn-workforce-table td:nth-child(3),
html[dir="rtl"] .qn-workforce-table td:nth-child(7),
html[dir="rtl"] .qn-workforce-table td:nth-child(8),
html[dir="rtl"] .qn-workforce-table td:nth-child(9) {
  unicode-bidi: plaintext;
}
html[dir="rtl"] .kt-select-wrapper,
html[dir="rtl"] [data-kt-select-wrapper] {
  direction: rtl;
  text-align: right;
}
html[dir="rtl"] .qn-employee-profile-page .qn-back-nav-btn {
  direction: rtl;
}

/* V2-14C — Training Calendar & Professional Record */
.qn-training-calendar-card { overflow: visible; }
.qn-training-calendar-card .fc {
  --fc-border-color: var(--color-border);
  --fc-page-bg-color: var(--color-background);
  --fc-neutral-bg-color: color-mix(in srgb, var(--color-muted) 55%, transparent);
  --fc-list-event-hover-bg-color: color-mix(in srgb, var(--color-primary) 5%, transparent);
  --fc-today-bg-color: color-mix(in srgb, var(--color-warning) 9%, transparent);
  --fc-button-bg-color: var(--color-primary);
  --fc-button-border-color: var(--color-primary);
  --fc-button-hover-bg-color: color-mix(in srgb, var(--color-primary) 88%, #000);
  --fc-button-hover-border-color: color-mix(in srgb, var(--color-primary) 88%, #000);
  --fc-button-active-bg-color: color-mix(in srgb, var(--color-primary) 78%, #000);
  --fc-button-active-border-color: color-mix(in srgb, var(--color-primary) 78%, #000);
  color: var(--color-foreground);
  font-family: Inter, Cairo, sans-serif;
}
.qn-training-calendar-card .fc .fc-toolbar { gap: 1rem; flex-wrap: wrap; margin-bottom: 1.15rem; }
.qn-training-calendar-card .fc .fc-toolbar-title { color: var(--color-mono); font-size: 1.22rem; font-weight: 700; }
.qn-training-calendar-card .fc .fc-button {
  border-radius: .55rem;
  box-shadow: none !important;
  font-size: .78rem;
  font-weight: 600;
  text-transform: none;
}
.qn-training-calendar-card .fc-theme-standard td,
.qn-training-calendar-card .fc-theme-standard th { border-color: var(--color-border); }
.qn-training-calendar-card .fc .fc-col-header-cell-cushion {
  padding: .7rem .35rem;
  color: var(--color-secondary-foreground);
  font-size: .74rem;
  font-weight: 700;
}
.qn-training-calendar-card .fc .fc-daygrid-day-number {
  padding: .45rem .5rem;
  color: var(--color-secondary-foreground);
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
}
.qn-training-calendar-card .fc .fc-daygrid-event {
  margin: .13rem .25rem;
  padding: .24rem .38rem;
  border: 0;
  border-radius: .45rem;
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-background));
  color: var(--color-primary);
  font-size: .7rem;
  font-weight: 600;
  cursor: pointer;
}
.qn-training-calendar-card .fc .qn-training-event-completed {
  background: color-mix(in srgb, var(--color-success) 11%, var(--color-background));
  color: var(--color-success);
}
.qn-training-calendar-card .fc .qn-training-event-cancelled {
  opacity: .62;
  background: color-mix(in srgb, var(--color-danger) 10%, var(--color-background));
  color: var(--color-danger);
  text-decoration: line-through;
}
.qn-training-calendar-card .fc .fc-event-time { font-variant-numeric: tabular-nums; }
.qn-training-calendar-fallback { display: grid; }
.qn-training-fallback-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: .75rem .9rem;
  border: 1px solid var(--color-border);
  border-radius: .65rem;
  background: var(--color-background);
  text-align: start;
}
.qn-training-fallback-item:hover { border-color: color-mix(in srgb, var(--color-primary) 35%, var(--color-border)); background: color-mix(in srgb, var(--color-primary) 3%, var(--color-background)); }
.qn-training-calendar-unavailable {
  padding: 1.25rem;
  border: 1px dashed var(--color-border);
  border-radius: .75rem;
  color: var(--color-secondary-foreground);
  font-size: .8rem;
}
.qn-training-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}
.qn-training-detail-grid > div {
  display: grid;
  gap: .25rem;
  padding: .85rem;
  border: 1px solid var(--color-border);
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-muted) 28%, transparent);
}
.qn-training-detail-grid span { color: var(--color-secondary-foreground); font-size: .7rem; }
.qn-training-detail-grid strong { color: var(--color-mono); font-size: .8rem; overflow-wrap: anywhere; }
.qn-training-attendee-list { display: flex; flex-wrap: wrap; gap: .45rem; }
.qn-training-attendee-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .42rem .6rem;
  border: 1px solid color-mix(in srgb, var(--color-success) 24%, var(--color-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-success) 7%, transparent);
  color: var(--color-success);
  font-size: .72rem;
  font-weight: 600;
}
.qn-training-attendee-empty { color: var(--color-secondary-foreground); font-size: .8rem; }
.qn-professional-training-card { overflow: hidden; }
.qn-professional-empty {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 8rem;
  padding: 1.25rem;
}
.qn-professional-foundation-card {
  border-style: dashed;
  background: color-mix(in srgb, var(--color-primary) 2%, var(--color-background));
}
@media (max-width: 767px) {
  .qn-training-detail-grid { grid-template-columns: 1fr; }
  .qn-training-calendar-card .fc .fc-toolbar { align-items: stretch; }
  .qn-training-calendar-card .fc .fc-toolbar-chunk { display: flex; justify-content: center; }
}

/* V2-14C-R1 — Central training catalog + attendance picker */
.qn-central-training-catalog-note {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: 1rem 1.1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: .85rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 6%, var(--color-background)), var(--color-background));
}
.qn-training-attendance-toolbar {
  display: grid;
  grid-template-columns: minmax(280px, 1.45fr) minmax(210px, .9fr) minmax(210px, .9fr);
  gap: 1rem;
}
.qn-training-employee-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  max-height: 25rem;
  overflow-y: auto;
  padding: .25rem;
  scrollbar-width: thin;
}
.qn-training-employee-option {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: .75rem;
  min-width: 0;
  padding: .85rem;
  border: 1px solid var(--color-border);
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-muted) 24%, var(--color-background));
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.qn-training-employee-option:hover {
  border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 3%, var(--color-background));
  box-shadow: 0 8px 22px rgb(15 23 42 / .04);
}
.qn-training-employee-option:has(input:checked) {
  border-color: color-mix(in srgb, var(--color-primary) 48%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 6%, var(--color-background));
}
.qn-training-employee-avatar {
  display: inline-flex;
  width: 2.3rem;
  height: 2.3rem;
  align-items: center;
  justify-content: center;
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-weight: 700;
}
.qn-training-employee-copy {
  display: grid;
  gap: .15rem;
  min-width: 0;
}
.qn-training-employee-copy strong,
.qn-training-employee-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qn-training-employee-copy strong { color: var(--color-mono); font-size: .82rem; }
.qn-training-employee-copy small { font-size: .7rem; }
.qn-training-no-employees {
  grid-column: 1 / -1;
  padding: 2rem 1rem;
  border: 1px dashed var(--color-border);
  border-radius: .8rem;
  color: var(--color-secondary-foreground);
  text-align: center;
  font-size: .8rem;
}
@media (max-width: 991px) {
  .qn-training-attendance-toolbar { grid-template-columns: 1fr 1fr; }
  .qn-training-attendance-search { grid-column: 1 / -1; }
  .qn-training-employee-picker { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  .qn-training-attendance-toolbar { grid-template-columns: 1fr; }
  .qn-training-attendance-search { grid-column: auto; }
}

/* V2-14C-R2 — standardized training modals + session maintenance */
.qn-global-modal .qn-global-form-modal[data-qn-modal-size="sm"] { width: min(520px, calc(100vw - 2rem)); max-width: 520px; }
.qn-global-modal .qn-global-form-modal[data-qn-modal-size="md"] { width: min(640px, calc(100vw - 2rem)); max-width: 640px; }
.qn-global-modal .qn-global-form-modal[data-qn-modal-size="lg"] { width: min(760px, calc(100vw - 2rem)); max-width: 760px; }
.qn-global-modal .qn-global-form-modal[data-qn-modal-size="xl"] { width: min(900px, calc(100vw - 2rem)); max-width: 900px; }
.qn-training-edit-lock-note {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  padding: .7rem .8rem;
  border: 1px solid color-mix(in srgb, var(--color-warning) 28%, var(--color-border));
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-warning) 7%, var(--color-background));
  color: var(--color-warning);
  font-size: .74rem;
}
.qn-training-attendance-toolbar {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.qn-training-attendance-search { grid-column: 1 / -1; }
.qn-training-employee-picker { max-height: 20rem; }
@media (max-width: 639px) {
  .qn-global-modal .qn-global-form-modal[data-qn-modal-size="sm"],
  .qn-global-modal .qn-global-form-modal[data-qn-modal-size="md"],
  .qn-global-modal .qn-global-form-modal[data-qn-modal-size="lg"],
  .qn-global-modal .qn-global-form-modal[data-qn-modal-size="xl"] {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
  }
}

/* V2-14D — Professional record: Qualifications + SCFHS */
.qn-professional-record-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
.qn-professional-record-card {
  min-width: 0;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--color-primary) 12%, var(--color-border));
  box-shadow: 0 12px 30px rgb(15 23 42 / .045);
}
.qn-professional-record-card .kt-card-header {
  background: color-mix(in srgb, var(--color-primary) 2.8%, var(--color-background));
}
.qn-scfhs-current-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: .8rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 5%, var(--color-background)), var(--color-background));
}
.qn-scfhs-current-main,
.qn-scfhs-current-meta {
  display: flex;
  align-items: center;
  gap: .8rem;
}
.qn-scfhs-current-meta {
  justify-content: flex-end;
  flex-wrap: wrap;
}
.qn-scfhs-history {
  border-top: 1px solid var(--color-border);
  padding-top: 1rem;
}
@media (max-width: 1199px) {
  .qn-professional-record-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .qn-scfhs-current-card,
  .qn-scfhs-current-main,
  .qn-scfhs-current-meta {
    align-items: flex-start;
  }
  .qn-scfhs-current-card { flex-direction: column; }
  .qn-scfhs-current-meta { justify-content: flex-start; }
}
.qn-professional-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1399px) { .qn-professional-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .qn-professional-stats { grid-template-columns: 1fr; } }

/* V2-14D-R1 — Professional record alignment + immutable SCFHS identity */
.qn-professional-record-grid {
  align-items: stretch;
}
.qn-professional-record-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  border-radius: .9rem;
  background: var(--color-background);
  box-shadow: 0 14px 34px rgb(15 23 42 / .055);
}
.qn-professional-record-card .qn-professional-card-header {
  min-height: 7.15rem;
  align-items: flex-start;
  gap: .85rem;
  padding-block: 1rem;
  padding-inline: 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 11%, var(--color-border));
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 4%, var(--color-background)), var(--color-background));
}
.qn-professional-card-heading {
  flex: 1 1 auto;
  min-width: 0;
}
.qn-professional-card-heading .kt-card-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 1.7rem;
  line-height: 1.25;
}
.qn-professional-card-heading .text-xs {
  max-width: 34rem;
  line-height: 1.45;
}
.qn-professional-record-card > .kt-card-content {
  flex: 1 1 auto;
}
.qn-professional-record-card .qn-professional-empty {
  min-height: 9rem;
}
.qn-professional-stats .kt-card,
.qn-professional-stats .kt-card-content {
  height: 100%;
}
.qn-professional-stats .kt-card-content {
  min-height: 5rem;
}
.qn-readonly-field {
  cursor: default;
  background: color-mix(in srgb, var(--color-muted) 62%, var(--color-background)) !important;
  color: var(--color-mono);
  font-weight: 600;
}
.qn-scfhs-fixed-number-note {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  color: var(--color-secondary-foreground);
}
.qn-scfhs-fixed-number-note i {
  margin-top: .08rem;
  color: var(--color-primary);
}
@media (max-width: 767px) {
  .qn-professional-record-card .qn-professional-card-header {
    min-height: 0;
  }
}

/* V2-14D-R2 — Professional record visual polish */
.qn-professional-section-header {
  min-height: 4.6rem;
  padding: .85rem 1rem;
  gap: 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 12%, var(--color-border));
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-primary) 4%, var(--color-background)), var(--color-background));
}
.qn-professional-section-heading {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-width: 0;
  flex: 1 1 auto;
}
.qn-professional-section-heading .kt-card-title {
  min-height: 0;
  margin: 0;
  line-height: 1.3;
}
.qn-professional-section-heading .text-xs {
  max-width: 46rem;
  line-height: 1.45;
}
.qn-professional-section-icon {
  display: inline-flex;
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  align-items: center;
  justify-content: center;
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: 1.05rem;
}
.qn-professional-training-card {
  border-color: color-mix(in srgb, var(--color-primary) 12%, var(--color-border));
  box-shadow: 0 12px 30px rgb(15 23 42 / .045);
}

.qn-scfhs-current-card {
  display: grid;
  gap: 1rem;
  padding: 1rem;
  overflow: hidden;
}
.qn-scfhs-current-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-width: 0;
}
.qn-scfhs-current-main {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-width: 0;
}
.qn-scfhs-current-eyebrow {
  color: var(--color-secondary-foreground);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .02em;
}
.qn-scfhs-status-badge {
  flex: 0 0 auto;
  white-space: nowrap;
}
.qn-scfhs-current-details {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) minmax(0, .9fr) auto;
  align-items: stretch;
  gap: .65rem;
  padding-top: .9rem;
  border-top: 1px dashed color-mix(in srgb, var(--color-primary) 12%, var(--color-border));
}
.qn-scfhs-detail-item {
  display: grid;
  align-content: center;
  gap: .2rem;
  min-width: 0;
  padding: .65rem .75rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 9%, var(--color-border));
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-muted) 22%, var(--color-background));
}
.qn-scfhs-detail-item span {
  color: var(--color-secondary-foreground);
  font-size: .66rem;
  line-height: 1.25;
}
.qn-scfhs-detail-item strong {
  min-width: 0;
  color: var(--color-mono);
  font-size: .76rem;
  font-weight: 600;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.qn-scfhs-edit-btn {
  align-self: stretch;
  min-width: 4.8rem;
  justify-content: center;
  white-space: nowrap;
}
.qn-scfhs-history {
  padding-top: .25rem;
  border-top: 0;
}
.qn-scfhs-history > .text-sm {
  padding: .7rem .1rem .55rem;
}
@media (max-width: 991px) {
  .qn-scfhs-current-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .qn-scfhs-edit-btn { min-height: 3.2rem; }
}
@media (max-width: 639px) {
  .qn-professional-section-header,
  .qn-scfhs-current-top {
    align-items: flex-start;
  }
  .qn-professional-section-header,
  .qn-scfhs-current-top {
    flex-direction: column;
  }
  .qn-professional-section-header > .kt-btn { width: 100%; justify-content: center; }
  .qn-scfhs-current-details { grid-template-columns: 1fr; }
}


/* V2-14D-R2 Fix01 — keep current SCFHS credential fully inside its parent card */
.qn-professional-record-card,
.qn-professional-record-card > .kt-card-content,
.qn-scfhs-current-card {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.qn-professional-record-card > .kt-card-content {
  width: 100%;
  overflow: hidden;
}
.qn-scfhs-current-card {
  width: 100%;
  margin: 0;
}
.qn-scfhs-current-top {
  width: 100%;
  min-width: 0;
}
.qn-scfhs-current-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  min-width: 0;
}
.qn-scfhs-current-details {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
}
.qn-scfhs-edit-btn {
  align-self: auto;
  min-height: 0;
  min-width: auto;
}
@media (max-width: 767px) {
  .qn-scfhs-current-actions {
    width: 100%;
    justify-content: space-between;
  }
  .qn-scfhs-current-details {
    grid-template-columns: 1fr;
  }
}

/* V2-14D-R2 Fix02 — preserve equal inset around the current SCFHS card */
.qn-professional-record-card > .kt-card-content {
  box-sizing: border-box;
  min-width: 0;
}
.qn-professional-record-card .qn-scfhs-current-card {
  width: auto;
  max-width: none;
  min-width: 0;
  justify-self: stretch;
  margin-inline: 0;
  box-sizing: border-box;
}


/* V2-14D-R2 Fix03 — explicit SCFHS inner gutter; prevents inner border touching parent edge */
.qn-scfhs-record-card > .kt-card-content {
  padding-inline: 0 !important;
  box-sizing: border-box;
}
.qn-scfhs-record-card .qn-scfhs-current-card {
  width: calc(100% - 2rem) !important;
  max-width: calc(100% - 2rem) !important;
  margin-inline: 1rem !important;
  box-sizing: border-box !important;
}
.qn-scfhs-record-card .qn-scfhs-history {
  margin-inline: 1rem;
}
@media (max-width: 639px) {
  .qn-scfhs-record-card .qn-scfhs-current-card {
    width: calc(100% - 1.25rem) !important;
    max-width: calc(100% - 1.25rem) !important;
    margin-inline: .625rem !important;
  }
  .qn-scfhs-record-card .qn-scfhs-history {
    margin-inline: .625rem;
  }
}


/* V2-14D-R2 Fix04 — SCFHS content owns the gutter (deterministic containment) */
.qn-scfhs-record-card > .qn-scfhs-content {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding: 1rem !important;
  overflow: hidden !important;
}
.qn-scfhs-record-card > .qn-scfhs-content > .qn-scfhs-current-card {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  justify-self: stretch !important;
  box-sizing: border-box !important;
}
.qn-scfhs-record-card > .qn-scfhs-content > .qn-scfhs-history {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
@media (max-width: 639px) {
  .qn-scfhs-record-card > .qn-scfhs-content {
    padding: .75rem !important;
  }
}

/* V2-14E — Professional Compliance & Expiry Monitoring */
.qn-compliance-page { min-width: 0; }
.qn-compliance-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.qn-compliance-summary-card {
  --qn-compliance-rgb: 59 130 246;
  overflow: hidden;
  border-color: rgb(var(--qn-compliance-rgb) / .17);
  background: linear-gradient(135deg, rgb(var(--qn-compliance-rgb) / .055), transparent 68%), var(--color-background);
}
.qn-compliance-summary-card.is-monitored { --qn-compliance-rgb: 59 130 246; }
.qn-compliance-summary-card.is-clear { --qn-compliance-rgb: 34 197 94; }
.qn-compliance-summary-card.is-attention { --qn-compliance-rgb: 245 158 11; }
.qn-compliance-summary-card.is-critical { --qn-compliance-rgb: 239 68 68; }
.qn-compliance-summary-card .kt-card-content {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 5.3rem;
  padding: 1rem;
}
.qn-compliance-summary-icon {
  display: inline-flex;
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  align-items: center;
  justify-content: center;
  border-radius: .8rem;
  color: rgb(var(--qn-compliance-rgb));
  background: rgb(var(--qn-compliance-rgb) / .11);
  font-size: 1.05rem;
}
.qn-compliance-summary-card strong {
  display: block;
  color: var(--color-mono);
  font-size: 1.35rem;
  line-height: 1.05;
}
.qn-compliance-summary-card span:not(.qn-compliance-summary-icon) {
  display: block;
  margin-top: .25rem;
  color: var(--color-secondary-foreground);
  font-size: .74rem;
}
.qn-compliance-alert-card {
  border-color: color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 3%, var(--color-background)), var(--color-background));
}
.qn-compliance-alert-head {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}
.qn-compliance-alert-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
}
.qn-compliance-alert-tile {
  --qn-alert-rgb: 100 116 139;
  display: grid;
  align-content: center;
  gap: .2rem;
  min-height: 4.6rem;
  padding: .75rem .85rem;
  border: 1px solid rgb(var(--qn-alert-rgb) / .19);
  border-inline-start: 3px solid rgb(var(--qn-alert-rgb));
  border-radius: .75rem;
  background: rgb(var(--qn-alert-rgb) / .055);
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-compliance-alert-tile.is-missing { --qn-alert-rgb: 100 116 139; }
.qn-compliance-alert-tile.is-attention { --qn-alert-rgb: 245 158 11; }
.qn-compliance-alert-tile.is-critical { --qn-alert-rgb: 239 68 68; }
.qn-compliance-alert-number {
  color: rgb(var(--qn-alert-rgb));
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
}
.qn-compliance-filter-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.55fr) repeat(3, minmax(160px, .75fr));
  gap: 1rem;
  align-items: end;
}
.qn-compliance-filter-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
}
.qn-compliance-results-card { overflow: hidden; }
.qn-compliance-table {
  width: 100%;
  min-width: 1120px;
  table-layout: fixed;
}
.qn-compliance-table th:nth-child(1), .qn-compliance-table td:nth-child(1) { width: 20%; }
.qn-compliance-table th:nth-child(2), .qn-compliance-table td:nth-child(2) { width: 14%; }
.qn-compliance-table th:nth-child(3), .qn-compliance-table td:nth-child(3) { width: 19%; }
.qn-compliance-table th:nth-child(4), .qn-compliance-table td:nth-child(4) { width: 24%; }
.qn-compliance-table th:nth-child(5), .qn-compliance-table td:nth-child(5) { width: 10%; }
.qn-compliance-table th:nth-child(6), .qn-compliance-table td:nth-child(6) { width: 13%; }
.qn-compliance-row { --qn-row-rgb: 100 116 139; }
.qn-compliance-row.is-clear { --qn-row-rgb: 34 197 94; }
.qn-compliance-row.is-attention { --qn-row-rgb: 245 158 11; }
.qn-compliance-row.is-critical { --qn-row-rgb: 239 68 68; }
.qn-compliance-row > td:first-child {
  box-shadow: inset 3px 0 0 rgb(var(--qn-row-rgb));
}
[dir="rtl"] .qn-compliance-row > td:first-child {
  box-shadow: inset -3px 0 0 rgb(var(--qn-row-rgb));
}
.qn-compliance-scfhs-cell,
.qn-training-certificate-cell {
  display: grid;
  gap: .32rem;
  min-width: 0;
}
.qn-compliance-state,
.qn-overall-compliance,
.qn-cert-chip {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  border: 1px solid transparent;
  border-radius: .45rem;
  white-space: nowrap;
  font-size: .68rem;
  font-weight: 600;
}
.qn-compliance-state { padding: .22rem .5rem; }
.qn-compliance-state.is-valid,
.qn-overall-compliance.is-clear,
.qn-cert-chip.is-valid {
  border-color: rgb(34 197 94 / .22);
  background: rgb(34 197 94 / .08);
  color: rgb(22 163 74);
}
.qn-compliance-state.is-expiring,
.qn-overall-compliance.is-attention,
.qn-cert-chip.is-expiring {
  border-color: rgb(245 158 11 / .28);
  background: rgb(245 158 11 / .09);
  color: rgb(217 119 6);
}
.qn-compliance-state.is-expired,
.qn-overall-compliance.is-critical,
.qn-cert-chip.is-expired {
  border-color: rgb(239 68 68 / .25);
  background: rgb(239 68 68 / .08);
  color: rgb(220 38 38);
}
.qn-compliance-state.is-missing {
  border-color: rgb(100 116 139 / .25);
  background: rgb(100 116 139 / .08);
  color: var(--color-secondary-foreground);
}
.qn-overall-compliance { padding: .3rem .58rem; }
.qn-cert-chip { padding: .18rem .42rem; }
@media (max-width: 1199px) {
  .qn-compliance-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-compliance-alert-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-compliance-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-compliance-search-field { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .qn-compliance-summary-grid,
  .qn-compliance-alert-grid,
  .qn-compliance-filter-grid { grid-template-columns: 1fr; }
  .qn-compliance-filter-actions { justify-content: stretch; }
  .qn-compliance-filter-actions .kt-btn { flex: 1 1 0; }
}

/* V2-15A — Nursing Education / Orientation */
.qn-orientation-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.qn-orientation-summary-card .kt-card-content {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 6.3rem;
  padding: 1rem 1.1rem;
}
.qn-orientation-summary-card strong {
  display: block;
  color: var(--color-mono);
  font-size: 1.55rem;
  line-height: 1.1;
}
.qn-orientation-summary-card span:not(.qn-orientation-summary-icon) {
  display: block;
  margin-top: .25rem;
  color: var(--color-secondary-foreground);
  font-size: .75rem;
}
.qn-orientation-summary-icon {
  display: inline-flex;
  width: 2.8rem;
  height: 2.8rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: 1.25rem;
}
.qn-orientation-summary-icon.is-large { width: 3.25rem; height: 3.25rem; font-size: 1.45rem; }
.qn-orientation-summary-card.is-complete .qn-orientation-summary-icon { background: rgb(34 197 94 / .10); color: rgb(22 163 74); }
.qn-orientation-summary-card.is-progress .qn-orientation-summary-icon { background: rgb(245 158 11 / .10); color: rgb(217 119 6); }
.qn-orientation-summary-card.is-specialty .qn-orientation-summary-icon { background: rgb(14 165 233 / .10); color: rgb(2 132 199); }
.qn-orientation-policy-note,
.qn-orientation-specialty-note,
.qn-orientation-cancelled-note {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  padding: .9rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
}
.qn-orientation-policy-note > i,
.qn-orientation-specialty-note > i,
.qn-orientation-cancelled-note > i { margin-top: .08rem; color: var(--color-primary); font-size: 1.15rem; }
.qn-orientation-policy-note strong,
.qn-orientation-policy-note span,
.qn-orientation-cancelled-note strong,
.qn-orientation-cancelled-note span { display: block; }
.qn-orientation-policy-note span,
.qn-orientation-specialty-note span,
.qn-orientation-cancelled-note span { color: var(--color-secondary-foreground); font-size: .75rem; line-height: 1.55; }
.qn-orientation-cancelled-note { border-color: rgb(239 68 68 / .25); background: rgb(239 68 68 / .06); }
.qn-orientation-cancelled-note > i { color: rgb(220 38 38); }
.qn-orientation-filter-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) repeat(4, minmax(150px, .75fr));
  gap: 1rem;
  align-items: end;
}
.qn-orientation-filter-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
}
.qn-orientation-table { width: 100%; min-width: 1180px; table-layout: fixed; }
.qn-orientation-table th:nth-child(1), .qn-orientation-table td:nth-child(1) { width: 20%; }
.qn-orientation-table th:nth-child(2), .qn-orientation-table td:nth-child(2) { width: 16%; }
.qn-orientation-table th:nth-child(3), .qn-orientation-table td:nth-child(3) { width: 14%; }
.qn-orientation-table th:nth-child(4), .qn-orientation-table td:nth-child(4) { width: 10%; }
.qn-orientation-table th:nth-child(5), .qn-orientation-table td:nth-child(5) { width: 20%; }
.qn-orientation-table th:nth-child(6), .qn-orientation-table td:nth-child(6) { width: 9%; }
.qn-orientation-table th:nth-child(7), .qn-orientation-table td:nth-child(7) { width: 11%; }
.qn-orientation-progress-cell { display: grid; gap: .38rem; min-width: 160px; }
.qn-orientation-progress-track {
  width: 100%;
  height: .4rem;
  overflow: hidden;
  border-radius: 999px;
  background: var(--color-muted);
}
.qn-orientation-progress-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--color-primary);
  transition: width .25s ease;
}
.qn-orientation-progress-track.is-large { height: .55rem; }
.qn-orientation-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr); gap: 1rem; }
.qn-orientation-employee-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; }
.qn-orientation-employee-card > div { display: grid; gap: .25rem; }
.qn-orientation-employee-card span { color: var(--color-secondary-foreground); font-size: .72rem; }
.qn-orientation-employee-card strong { color: var(--color-mono); font-size: .86rem; }
.qn-orientation-phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.qn-orientation-phase {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 4.4rem;
  padding: .7rem .8rem;
  border: 1px solid var(--color-border);
  border-radius: .8rem;
  background: var(--color-background);
}
.qn-orientation-phase > span {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--color-muted);
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  font-weight: 700;
}
.qn-orientation-phase strong,
.qn-orientation-phase small { display: block; }
.qn-orientation-phase strong { color: var(--color-mono); font-size: .78rem; }
.qn-orientation-phase small { margin-top: .15rem; color: var(--color-secondary-foreground); font-size: .66rem; }
.qn-orientation-phase.is-active { border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-border)); background: color-mix(in srgb, var(--color-primary) 5%, transparent); }
.qn-orientation-phase.is-active > span { background: var(--color-primary); color: var(--color-primary-foreground); }
.qn-orientation-phase.is-complete { border-color: rgb(34 197 94 / .28); background: rgb(34 197 94 / .055); }
.qn-orientation-phase.is-complete > span { background: rgb(34 197 94); color: white; }
.qn-orientation-phase.is-skipped { opacity: .72; }
.qn-orientation-checklist-table { width: 100%; min-width: 980px; }
.qn-orientation-checklist-table tr.is-completed td { background: rgb(34 197 94 / .025); }
.qn-orientation-topic-number {
  display: inline-flex;
  width: 1.8rem;
  height: 1.8rem;
  align-items: center;
  justify-content: center;
  border-radius: .55rem;
  background: var(--color-muted);
  color: var(--color-mono);
  font-size: .72rem;
  font-weight: 700;
}

/* V2-15B — Core Clinical Orientation & Competency */
.qn-orientation-progress-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 1.1rem;
  align-items: center;
}
.qn-orientation-progress-summary > div { min-width: 0; }
.qn-orientation-phase.is-attention {
  border-color: rgb(245 158 11 / .35);
  background: rgb(245 158 11 / .07);
}
.qn-orientation-phase.is-attention > span { background: rgb(245 158 11); color: white; }
.qn-core-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}
.qn-core-summary-grid > div {
  display: grid;
  gap: .25rem;
  padding: .85rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 2.5%, transparent);
}
.qn-core-summary-grid span { color: var(--color-secondary-foreground); font-size: .7rem; }
.qn-core-summary-grid strong { color: var(--color-mono); font-size: 1rem; }
.qn-core-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .9rem;
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-core-legend strong { color: var(--color-mono); }
.qn-core-legend span {
  padding: .24rem .48rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-background);
}
.qn-core-competency-table { width: 100%; min-width: 1260px; }
.qn-core-guidance {
  max-width: 560px;
  margin-top: .35rem;
  color: var(--color-secondary-foreground);
  font-size: .68rem;
  line-height: 1.5;
}
.qn-core-competency-table tr.is-assessed td { background: color-mix(in srgb, rgb(34 197 94) 2.5%, transparent); }
.qn-core-section-row td {
  padding-top: .72rem !important;
  padding-bottom: .72rem !important;
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-background)) !important;
  border-top: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
}
.qn-core-section-row td > span {
  display: inline-flex;
  min-width: 1.6rem;
  height: 1.6rem;
  align-items: center;
  justify-content: center;
  margin-inline-end: .55rem;
  border-radius: .45rem;
  background: var(--color-primary);
  color: var(--color-primary-foreground);
  font-size: .7rem;
  font-weight: 700;
}
.qn-core-section-row strong { color: var(--color-mono); font-size: .78rem; }
.qn-core-validation-card {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .85rem;
}
.qn-core-validation-card.is-success { border-color: rgb(34 197 94 / .28); background: rgb(34 197 94 / .055); }
.qn-core-validation-card.is-warning { border-color: rgb(245 158 11 / .32); background: rgb(245 158 11 / .065); }
.qn-core-validation-icon {
  display: inline-flex;
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: .75rem;
  background: var(--color-background);
  color: var(--color-primary);
  font-size: 1.25rem;
}
.qn-core-validation-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem 1.2rem;
  margin-top: .55rem;
  color: var(--color-secondary-foreground);
  font-size: .72rem;
}
.qn-core-validation-meta b { color: var(--color-mono); font-weight: 600; }
.qn-core-finalize-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.qn-core-finalize-footer > div { display: grid; gap: .2rem; }
.qn-core-finalize-footer strong { color: var(--color-mono); font-size: .8rem; }
.qn-core-finalize-footer span { color: var(--color-secondary-foreground); font-size: .7rem; line-height: 1.45; }

@media (max-width: 1199px) {
  .qn-core-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-orientation-progress-summary { grid-template-columns: 1fr; }
  .qn-orientation-progress-summary .qn-orientation-summary-icon { display: none; }
  .qn-core-summary-grid { grid-template-columns: 1fr; }
  .qn-core-finalize-footer,
  .qn-core-validation-card { align-items: stretch; flex-direction: column; }
  .qn-core-finalize-footer .kt-btn { width: 100%; }
}

@media (max-width: 1199px) {
  .qn-orientation-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-orientation-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-orientation-search-field { grid-column: 1 / -1; }
  .qn-orientation-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-orientation-summary-grid,
  .qn-orientation-filter-grid,
  .qn-orientation-detail-grid,
  .qn-orientation-employee-card,
  .qn-orientation-phases { grid-template-columns: 1fr; }
  .qn-orientation-filter-actions { justify-content: stretch; }
  .qn-orientation-filter-actions .kt-btn { flex: 1 1 0; }
}

/* V2-15B Hotfix02 — orientation card headers + action-column visibility */
.qn-orientation-workflow-card,
.qn-general-orientation-card,
.qn-core-clinical-card {
  overflow: hidden;
}

.qn-data-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.qn-data-card-header > div:first-child {
  min-width: 0;
}

.qn-actions-cell {
  min-width: 12.5rem;
  white-space: nowrap;
}

.qn-table-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
}

.qn-table-actions .kt-btn,
.qn-table-actions form {
  flex: 0 0 auto;
}

.qn-orientation-checklist-table th:last-child,
.qn-orientation-checklist-table td:last-child,
.qn-core-competency-table th:last-child,
.qn-core-competency-table td:last-child {
  min-width: 12.5rem;
  white-space: nowrap;
}

@media (max-width: 767px) {
  .qn-data-card-header {
    align-items: stretch;
  }

  .qn-data-card-header .kt-badge,
  .qn-data-card-header .kt-btn {
    width: 100%;
    justify-content: center;
  }
}

/* V2-15C — Unit / Specialty Competency Package */
.qn-unit-specialty-card { overflow: hidden; }
.qn-unit-package-banner {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: .85rem;
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 6%, transparent), transparent 75%);
}
[dir="rtl"] .qn-unit-package-banner {
  background: linear-gradient(270deg, color-mix(in srgb, var(--color-primary) 6%, transparent), transparent 75%);
}
.qn-unit-package-icon {
  display: inline-flex;
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 2.7rem;
  align-items: center;
  justify-content: center;
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 11%, transparent);
  color: var(--color-primary);
  font-size: 1.2rem;
}
.qn-subsection-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-background));
}
.qn-subsection-heading.is-specialty {
  margin-top: .75rem;
  background: color-mix(in srgb, rgb(124 58 237) 4%, var(--color-background));
}
.qn-subsection-heading > div { display: grid; gap: .15rem; min-width: 0; }
.qn-subsection-heading strong { color: var(--color-mono); font-size: .82rem; }
.qn-subsection-heading span:not(.kt-badge) { color: var(--color-secondary-foreground); font-size: .7rem; line-height: 1.45; }
.qn-unit-package-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: color-mix(in srgb, var(--color-primary) 2.5%, transparent);
}
.qn-unit-package-footer > div { display: grid; gap: .2rem; }
.qn-unit-package-footer strong { color: var(--color-mono); font-size: .8rem; }
.qn-unit-package-footer span:not(.kt-badge) { color: var(--color-secondary-foreground); font-size: .7rem; line-height: 1.45; }

@media (max-width: 767px) {
  .qn-unit-package-banner,
  .qn-subsection-heading,
  .qn-unit-package-footer {
    align-items: stretch;
    flex-direction: column;
  }
}

/* V2-15C UX refinement — completed-phase accordions, aligned progress metrics, sticky workflow position */
.qn-progress-metric {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
}

.qn-progress-label {
  display: flex;
  min-height: 2.1rem;
  align-items: flex-end;
  line-height: 1.35;
}

.qn-progress-value {
  min-height: 2rem;
  display: flex;
  align-items: center;
}

.qn-orientation-accordion {
  width: 100%;
}

.qn-accordion-card-header {
  cursor: pointer;
  user-select: none;
  transition: background-color .18s ease;
}

.qn-accordion-card-header:hover {
  background-color: color-mix(in srgb, var(--color-primary) 4%, transparent);
}

.qn-accordion-header-end {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: .7rem;
}

.qn-accordion-toggle-icon {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: .55rem;
  background: var(--color-background);
  color: var(--color-secondary-foreground);
  transition: transform .2s ease, color .2s ease, border-color .2s ease;
}

[data-kt-accordion-item].active > .qn-accordion-card-header .qn-accordion-toggle-icon {
  transform: rotate(180deg);
  color: var(--color-primary);
  border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
}

.qn-orientation-accordion .kt-accordion-content {
  overflow: hidden;
}

.qn-unit-score-summary small {
  margin-top: .1rem;
  color: var(--color-secondary-foreground);
  font-size: .66rem;
  line-height: 1.35;
}

@media (max-width: 767px) {
  .qn-progress-label {
    min-height: 0;
  }

  .qn-accordion-header-end {
    width: 100%;
    justify-content: space-between;
  }
}

/* V2-15C2 — Specialty Competency Package Catalog & Unit Mapping */
.qn-competency-package-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.qn-competency-package-summary .kt-card-content {
  display: grid;
  gap: .25rem;
}
.qn-competency-package-summary span {
  color: var(--color-secondary-foreground);
  font-size: .72rem;
}
.qn-competency-package-summary strong {
  color: var(--color-mono);
  font-size: 1.65rem;
  line-height: 1.1;
}
.qn-competency-package-summary small {
  color: var(--color-secondary-foreground);
  font-size: .67rem;
}
.qn-package-mapping-table { min-width: 1020px; }
.qn-package-catalog-grid {
  display: grid;
  gap: 1rem;
}
.qn-package-group {
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: .85rem;
  background: var(--color-background);
}
.qn-package-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-bottom: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
}
.qn-package-group-title > div {
  display: grid;
  gap: .15rem;
}
.qn-package-group-title strong {
  color: var(--color-mono);
  font-size: .82rem;
}
.qn-package-group-title span:not(.kt-badge) {
  color: var(--color-secondary-foreground);
  font-size: .68rem;
}
.qn-specialty-package-context {
  display: flex;
  align-items: center;
  gap: .8rem;
}
.qn-specialty-package-context > div {
  display: grid;
  gap: .15rem;
}
.qn-specialty-package-context strong {
  color: var(--color-mono);
  font-size: .82rem;
}
.qn-specialty-package-context small {
  color: var(--color-secondary-foreground);
  font-size: .68rem;
}

@media (max-width: 1199px) {
  .qn-competency-package-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-competency-package-summary { grid-template-columns: 1fr; }
  .qn-package-group-title { align-items: flex-start; flex-direction: column; }
}

/* V2-15C3 — Specialty package details & content */
.qn-package-detail-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.qn-package-detail-summary .kt-card-content {
  display: grid;
  gap: .25rem;
}
.qn-package-detail-summary span,
.qn-package-profile-grid span {
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-package-detail-summary strong {
  color: var(--color-mono);
  font-size: 1.2rem;
  line-height: 1.2;
}
.qn-package-detail-summary small {
  color: var(--color-secondary-foreground);
  font-size: .68rem;
}
.qn-package-profile-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}
.qn-package-profile-grid > div {
  display: grid;
  gap: .25rem;
  padding: .85rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 2.5%, transparent);
}
.qn-package-profile-grid strong {
  color: var(--color-mono);
  font-size: .8rem;
  overflow-wrap: anywhere;
}
.qn-package-description {
  padding: .9rem 1rem;
  border-inline-start: 3px solid var(--color-primary);
  border-radius: .35rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  line-height: 1.55;
}
.qn-package-content-table {
  min-width: 1040px;
}
.qn-code-legend-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
}
.qn-code-legend-grid > div {
  display: grid;
  gap: .45rem;
  padding: .9rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: var(--color-background);
}
.qn-code-legend-grid code {
  width: max-content;
  max-width: 100%;
  padding: .22rem .48rem;
  border-radius: .45rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: .72rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.qn-code-legend-grid span {
  color: var(--color-secondary-foreground);
  font-size: .7rem;
  line-height: 1.45;
}

@media (max-width: 1199px) {
  .qn-package-detail-summary,
  .qn-package-profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-code-legend-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-package-detail-summary,
  .qn-package-profile-grid,
  .qn-code-legend-grid { grid-template-columns: 1fr; }
}

/* V2-15D — Newly Hired Nurses 3-Month Assessment & Evaluation */
.qn-evaluation-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .85rem;
}
.qn-evaluation-summary-card .kt-card-content {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: 1rem;
}
.qn-evaluation-summary-card strong,
.qn-evaluation-summary-card span { display: block; }
.qn-evaluation-summary-card strong { color: var(--color-mono); font-size: 1.45rem; line-height: 1; }
.qn-evaluation-summary-card .kt-card-content > div > span { margin-top: .35rem; color: var(--color-secondary-foreground); font-size: .68rem; }
.qn-evaluation-summary-icon {
  display: inline-flex;
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 2.7rem;
  align-items: center;
  justify-content: center;
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 9%, transparent);
  color: var(--color-primary);
  font-size: 1.15rem;
}
.qn-evaluation-summary-card.is-complete .qn-evaluation-summary-icon { background: rgb(34 197 94 / .09); color: rgb(22 163 74); }
.qn-evaluation-summary-card.is-warning .qn-evaluation-summary-icon { background: rgb(245 158 11 / .1); color: rgb(217 119 6); }
.qn-evaluation-summary-card.is-danger .qn-evaluation-summary-icon { background: rgb(239 68 68 / .09); color: rgb(220 38 38); }
.qn-evaluation-summary-card.is-progress .qn-evaluation-summary-icon { background: rgb(59 130 246 / .09); color: rgb(37 99 235); }
.qn-evaluation-filter-grid {
  display: grid;
  grid-template-columns: minmax(240px, 1.45fr) repeat(3, minmax(150px, .8fr)) auto;
  gap: 1rem;
  align-items: end;
}
.qn-evaluation-filter-actions { display: flex; justify-content: flex-end; gap: .5rem; }
.qn-evaluation-table { width: 100%; min-width: 1180px; }
.qn-evaluation-detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 1rem; }
.qn-evaluation-employee-card { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 1.5rem; }
.qn-evaluation-employee-card > div,
.qn-evaluation-score-panel > div,
.qn-evaluation-evidence-grid > div,
.qn-evaluation-final-grid > div { display: grid; gap: .2rem; }
.qn-evaluation-employee-card span,
.qn-evaluation-score-panel span,
.qn-evaluation-evidence-grid span,
.qn-evaluation-final-grid span { color: var(--color-secondary-foreground); font-size: .7rem; }
.qn-evaluation-employee-card strong,
.qn-evaluation-score-panel strong,
.qn-evaluation-evidence-grid strong,
.qn-evaluation-final-grid strong { color: var(--color-mono); font-size: .86rem; }
.qn-evaluation-score-panel { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: .8rem; align-items: start; }
.qn-evaluation-score-panel > div { padding: .85rem; border: 1px solid var(--color-border); border-radius: .75rem; background: color-mix(in srgb, var(--color-primary) 2.5%, transparent); }
.qn-evaluation-evidence-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.qn-evaluation-evidence-grid > div { padding: .85rem 1rem; border: 1px solid var(--color-border); border-radius: .75rem; background: var(--color-background); }
.qn-evaluation-final-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.qn-evaluation-final-grid > div { padding: .8rem 1rem; border: 1px solid var(--color-border); border-radius: .75rem; }
.qn-evaluation-narrative-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.qn-evaluation-narrative-grid > div { padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: .75rem; background: color-mix(in srgb, var(--color-primary) 2%, transparent); }
.qn-evaluation-narrative-grid span { display: block; margin-bottom: .35rem; color: var(--color-secondary-foreground); font-size: .7rem; font-weight: 600; }
.qn-evaluation-narrative-grid p { color: var(--color-mono); font-size: .78rem; line-height: 1.55; white-space: pre-wrap; }
.qn-evaluation-signoff-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.qn-evaluation-signoff-grid > div { display: grid; gap: .2rem; padding: .8rem; border: 1px solid rgb(34 197 94 / .22); border-radius: .75rem; background: rgb(34 197 94 / .04); }
.qn-evaluation-signoff-grid span,
.qn-evaluation-signoff-grid small { color: var(--color-secondary-foreground); font-size: .66rem; }
.qn-evaluation-signoff-grid strong { color: var(--color-mono); font-size: .78rem; }
.qn-evaluation-rating-legend { display: flex; flex-wrap: wrap; gap: .5rem; }
.qn-evaluation-rating-legend span { padding: .3rem .55rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-background); color: var(--color-secondary-foreground); font-size: .68rem; }
.qn-evaluation-criteria-table { width: 100%; min-width: 1120px; }
.qn-evaluation-criteria-table tr.is-assessed td { background: rgb(34 197 94 / .025); }
.qn-evaluation-comment-cell { max-width: 280px; white-space: normal; color: var(--color-secondary-foreground); font-size: .72rem; line-height: 1.45; }

@media (max-width: 1399px) {
  .qn-evaluation-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-evaluation-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-evaluation-search-field { grid-column: 1 / -1; }
  .qn-evaluation-filter-actions { grid-column: 1 / -1; }
}
@media (max-width: 991px) {
  .qn-evaluation-detail-grid { grid-template-columns: 1fr; }
  .qn-evaluation-employee-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-evaluation-evidence-grid,
  .qn-evaluation-final-grid,
  .qn-evaluation-signoff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-evaluation-summary-grid,
  .qn-evaluation-filter-grid,
  .qn-evaluation-employee-card,
  .qn-evaluation-score-panel,
  .qn-evaluation-evidence-grid,
  .qn-evaluation-final-grid,
  .qn-evaluation-narrative-grid,
  .qn-evaluation-signoff-grid { grid-template-columns: 1fr; }
  .qn-evaluation-filter-actions { justify-content: stretch; }
  .qn-evaluation-filter-actions .kt-btn { flex: 1 1 0; }
}

/* V2-15E — Remediation, reassessment & final competency validation */
.qn-remediation-summary-grid,
.qn-final-validation-grid,
.qn-final-current {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}
.qn-remediation-summary-grid > div,
.qn-final-validation-grid > div,
.qn-final-current > div {
  display: grid;
  gap: .25rem;
  padding: .85rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 2.5%, transparent);
}
.qn-remediation-summary-grid span,
.qn-final-validation-grid span,
.qn-final-current span {
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-remediation-summary-grid strong,
.qn-final-validation-grid strong,
.qn-final-current strong {
  color: var(--color-mono);
  font-size: .92rem;
}
.qn-remediation-empty-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
  border-radius: .85rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
}
.qn-remediation-empty-state > div { display: grid; gap: .3rem; }
.qn-remediation-empty-state strong { color: var(--color-mono); font-size: .82rem; }
.qn-remediation-empty-state span { color: var(--color-secondary-foreground); font-size: .72rem; line-height: 1.5; }
.qn-remediation-plan {
  display: grid;
  gap: .25rem;
  padding: .9rem 1rem;
  border-inline-start: 3px solid var(--color-primary);
  border-radius: .5rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
}
.qn-remediation-plan > span { color: var(--color-secondary-foreground); font-size: .7rem; }
.qn-remediation-plan > strong { color: var(--color-mono); font-size: .8rem; }
.qn-remediation-plan > p { margin: .25rem 0 0; color: var(--color-secondary-foreground); font-size: .74rem; line-height: 1.55; white-space: pre-line; }
.qn-remediation-table { width: 100%; min-width: 1040px; }
.qn-remediation-table tr.is-resolved td { background: color-mix(in srgb, rgb(34 197 94) 3.5%, transparent); }
.qn-remediation-attempt-row td { padding-top: .4rem !important; padding-bottom: .6rem !important; background: var(--color-muted) !important; }
.qn-remediation-attempt-list { display: flex; flex-wrap: wrap; gap: .35rem .9rem; color: var(--color-secondary-foreground); font-size: .68rem; }
.qn-remediation-attempt-list span { padding: .2rem .45rem; border: 1px solid var(--color-border); border-radius: .45rem; background: var(--color-background); }
.qn-remediation-complete-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--color-secondary-foreground); font-size: .72rem; }
.qn-final-ready,
.qn-final-blockers {
  padding: 1rem;
  border-radius: .85rem;
}
.qn-final-ready {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  border: 1px solid rgb(34 197 94 / .3);
  background: rgb(34 197 94 / .06);
}
.qn-final-ready > i { color: rgb(34 197 94); font-size: 1.25rem; }
.qn-final-ready > div { display: grid; gap: .2rem; }
.qn-final-ready strong { color: var(--color-mono); font-size: .82rem; }
.qn-final-ready span { color: var(--color-secondary-foreground); font-size: .72rem; line-height: 1.5; }
.qn-final-blockers {
  border: 1px solid rgb(245 158 11 / .34);
  background: rgb(245 158 11 / .07);
  color: var(--color-secondary-foreground);
  font-size: .72rem;
}
.qn-final-blockers > div { color: var(--color-mono); }
.qn-final-blockers ul { margin: .55rem 0 0; padding-inline-start: 1.2rem; display: grid; gap: .25rem; list-style: disc; }
.qn-final-history-table { width: 100%; min-width: 900px; }

@media (max-width: 1199px) {
  .qn-remediation-summary-grid,
  .qn-final-validation-grid,
  .qn-final-current { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .qn-remediation-summary-grid,
  .qn-final-validation-grid,
  .qn-final-current { grid-template-columns: 1fr; }
  .qn-remediation-empty-state,
  .qn-remediation-complete-footer { align-items: stretch; flex-direction: column; }
  .qn-remediation-empty-state .kt-btn { width: 100%; justify-content: center; }
}

/* V2-15F — Nursing Education Reports & Compliance Dashboard */
.qn-education-reports-page { min-width: 0; }
.qn-education-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
}
.qn-education-kpi-card {
  --qn-edu-rgb: 59 130 246;
  border-color: rgb(var(--qn-edu-rgb) / .16);
  background: linear-gradient(135deg, rgb(var(--qn-edu-rgb) / .055), transparent 72%), var(--color-background);
}
.qn-education-kpi-card.is-monitored { --qn-edu-rgb: 59 130 246; }
.qn-education-kpi-card.is-ready { --qn-edu-rgb: 34 197 94; }
.qn-education-kpi-card.is-progress { --qn-edu-rgb: 14 165 233; }
.qn-education-kpi-card.is-due { --qn-edu-rgb: 245 158 11; }
.qn-education-kpi-card.is-overdue { --qn-edu-rgb: 239 68 68; }
.qn-education-kpi-card.is-remediation { --qn-edu-rgb: 168 85 247; }
.qn-education-kpi-card .kt-card-content {
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 88px;
}
.qn-education-kpi-icon {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: .8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: rgb(var(--qn-edu-rgb));
  background: rgb(var(--qn-edu-rgb) / .11);
  font-size: 1.15rem;
}
.qn-education-kpi-card strong {
  display: block;
  color: var(--color-mono);
  font-size: 1.4rem;
  line-height: 1.05;
}
.qn-education-kpi-card .kt-card-content > div > span {
  display: block;
  margin-top: .35rem;
  color: var(--color-secondary-foreground);
  font-size: .72rem;
  line-height: 1.25;
}
.qn-education-compliance-hero {
  overflow: hidden;
  border-color: rgb(34 197 94 / .18);
  background: linear-gradient(115deg, rgb(34 197 94 / .07), rgb(14 165 233 / .045) 55%, transparent), var(--color-background);
}
.qn-education-compliance-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.qn-education-compliance-value {
  margin: .25rem 0;
  color: var(--color-mono);
  font-size: 2.25rem;
  line-height: 1;
  font-weight: 750;
}
.qn-education-compliance-ring {
  --qn-rate: 0;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  background: conic-gradient(rgb(34 197 94) calc(var(--qn-rate) * 1%), rgb(148 163 184 / .2) 0);
  position: relative;
}
.qn-education-compliance-ring::after {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background: var(--color-background);
}
.qn-education-compliance-ring span {
  position: relative;
  z-index: 1;
  color: var(--color-mono);
  font-weight: 700;
  font-size: 1rem;
}
.qn-education-phase-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.qn-education-phase-card {
  border: 1px solid var(--color-border);
  border-radius: .9rem;
  padding: 1rem;
  background: var(--color-background);
}
.qn-education-phase-card-head {
  display: flex;
  align-items: center;
  gap: .7rem;
}
.qn-education-phase-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: .7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  flex: 0 0 auto;
}
.qn-education-phase-card-head strong,
.qn-education-phase-card-head span { display: block; }
.qn-education-phase-card-head strong { color: var(--color-mono); font-size: .86rem; }
.qn-education-phase-card-head div > span { margin-top: .15rem; color: var(--color-secondary-foreground); font-size: .69rem; }
.qn-education-phase-rate {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .9rem;
}
.qn-education-phase-rate > span { color: var(--color-mono); font-weight: 700; font-size: 1.05rem; }
.qn-education-phase-rate small { color: var(--color-secondary-foreground); }
.qn-education-progress {
  height: 6px;
  border-radius: 999px;
  overflow: hidden;
  margin-top: .5rem;
  background: rgb(148 163 184 / .18);
}
.qn-education-progress > span {
  display: block;
  height: 100%;
  min-width: 0;
  max-width: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--color-primary), rgb(34 197 94));
}
.qn-education-report-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
.qn-education-report-search { grid-column: span 2; }
.qn-education-report-filter-actions {
  display: flex;
  grid-column: span 2;
  justify-content: flex-end;
  gap: .65rem;
  align-items: center;
  flex-wrap: wrap;
}
.qn-education-facility-table th,
.qn-education-facility-table td { vertical-align: middle; white-space: nowrap; }
.qn-facility-rate-cell { min-width: 130px; }
.qn-facility-rate-cell .qn-education-progress { margin-top: .35rem; }
.qn-education-employee-table { min-width: 1250px; }

.qn-education-employee-report { scroll-margin-top: 6rem; }
.qn-education-employee-table th,
.qn-education-employee-table td { vertical-align: middle; }
.qn-education-report-row { --qn-row-rgb: 100 116 139; }
.qn-education-report-row.is-ready { --qn-row-rgb: 34 197 94; }
.qn-education-report-row.is-progress { --qn-row-rgb: 59 130 246; }
.qn-education-report-row.is-due { --qn-row-rgb: 245 158 11; }
.qn-education-report-row.is-overdue { --qn-row-rgb: 239 68 68; }
.qn-education-report-row.is-remediation { --qn-row-rgb: 168 85 247; }
.qn-education-report-row > td:first-child { box-shadow: inset 3px 0 0 rgb(var(--qn-row-rgb) / .7); }
[dir="rtl"] .qn-education-report-row > td:first-child { box-shadow: inset -3px 0 0 rgb(var(--qn-row-rgb) / .7); }
.qn-phase-chip-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem;
}
.qn-phase-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 25px;
  border-radius: .45rem;
  padding: .2rem .42rem;
  font-size: .67rem;
  font-weight: 650;
  white-space: nowrap;
  border: 1px solid var(--color-border);
  color: var(--color-secondary-foreground);
  background: rgb(148 163 184 / .06);
}
.qn-phase-chip.is-pass { color: rgb(22 163 74); border-color: rgb(34 197 94 / .22); background: rgb(34 197 94 / .07); }
.qn-phase-chip.is-pending { color: rgb(217 119 6); border-color: rgb(245 158 11 / .22); background: rgb(245 158 11 / .07); }
.qn-phase-chip.is-na { color: var(--color-secondary-foreground); }
.qn-education-status {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  border-radius: 999px;
  padding: .35rem .65rem;
  font-size: .72rem;
  font-weight: 650;
  white-space: nowrap;
  border: 1px solid var(--color-border);
}
.qn-education-status.is-ready { color: rgb(22 163 74); border-color: rgb(34 197 94 / .24); background: rgb(34 197 94 / .08); }
.qn-education-status.is-progress { color: rgb(37 99 235); border-color: rgb(59 130 246 / .22); background: rgb(59 130 246 / .07); }
.qn-education-status.is-due { color: rgb(217 119 6); border-color: rgb(245 158 11 / .24); background: rgb(245 158 11 / .08); }
.qn-education-status.is-overdue { color: rgb(220 38 38); border-color: rgb(239 68 68 / .24); background: rgb(239 68 68 / .08); }
.qn-education-status.is-remediation { color: rgb(147 51 234); border-color: rgb(168 85 247 / .24); background: rgb(168 85 247 / .08); }

@media (max-width: 1399px) {
  .qn-education-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-education-report-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  .qn-education-phase-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-education-report-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-education-report-search { grid-column: 1 / -1; }
}
@media (max-width: 639px) {
  .qn-education-kpi-grid,
  .qn-education-phase-grid,
  .qn-education-report-filter-grid { grid-template-columns: 1fr; }
  .qn-education-report-search { grid-column: auto; }
  .qn-education-report-filter-actions { grid-column: auto; justify-content: stretch; }
  .qn-education-report-filter-actions .kt-btn { flex: 1 1 0; }
  .qn-education-compliance-head { align-items: flex-start; }
  .qn-education-compliance-value { font-size: 1.85rem; }
  .qn-report-actions { width: 100%; }
  .qn-report-actions .kt-btn { flex: 1 1 auto; }
}

@media print {
  body:has(.qn-education-reports-page) #sidebar,
  body:has(.qn-education-reports-page) #header,
  body:has(.qn-education-reports-page) .qn-report-actions,
  body:has(.qn-education-reports-page) .qn-report-filter-card,
  body:has(.qn-education-reports-page) .kt-pagination,
  body:has(.qn-education-reports-page) .qn-education-employee-report .text-end { display: none !important; }
  body:has(.qn-education-reports-page) .kt-wrapper { margin: 0 !important; padding: 0 !important; }
  body:has(.qn-education-reports-page) main { padding: 0 !important; }
  .qn-education-reports-page { font-size: 10px; }
  .qn-education-reports-page .kt-card { break-inside: avoid; box-shadow: none !important; }
  .qn-education-kpi-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .35rem; }
  .qn-education-phase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
  .qn-education-employee-table { min-width: 0; font-size: 8px; }
}

/* V2-16A Fix01 — Leave & Absence uses the shared filter-card visual language with a compact, centralized responsive grid. */
.qn-leave-absence-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}

.qn-la-filter-search { grid-column: span 4; }
.qn-la-filter-facility { grid-column: span 4; }
.qn-la-filter-unit { grid-column: span 4; }
.qn-la-filter-category { grid-column: span 2; }
.qn-la-filter-type { grid-column: span 4; }
.qn-la-filter-status { grid-column: span 2; }
.qn-la-filter-from { grid-column: span 2; }
.qn-la-filter-to { grid-column: span 2; }
.qn-la-filter-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .5rem;
  padding-top: .1rem;
}

.qn-leave-absence-category-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.qn-leave-absence-category-choice {
  position: relative;
  display: block;
  cursor: pointer;
}

.qn-leave-absence-category-choice > input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.qn-leave-absence-category-tile {
  min-height: 4.25rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .8rem .9rem;
  border: 1px solid var(--border);
  border-radius: .75rem;
  background: color-mix(in srgb, var(--muted) 38%, var(--background));
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.qn-leave-absence-category-tile strong,
.qn-leave-absence-category-tile small {
  display: block;
}

.qn-leave-absence-category-tile strong {
  color: var(--color-mono);
  font-size: .875rem;
  font-weight: 600;
}

.qn-leave-absence-category-tile small {
  margin-top: .15rem;
  color: var(--color-secondary-foreground);
  font-size: .72rem;
}

.qn-leave-absence-category-icon {
  width: 2.4rem;
  height: 2.4rem;
  flex: 0 0 2.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .65rem;
}

.qn-leave-absence-category-icon.is-leave {
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.qn-leave-absence-category-icon.is-absence {
  color: #dc2626;
  background: color-mix(in srgb, #ef4444 10%, transparent);
}

.qn-leave-absence-category-choice > input:checked + .qn-leave-absence-category-tile {
  border-color: color-mix(in srgb, var(--color-primary) 70%, var(--border));
  background: color-mix(in srgb, var(--color-primary) 6%, var(--background));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.qn-leave-absence-category-choice > input:focus-visible + .qn-leave-absence-category-tile {
  outline: 2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);
  outline-offset: 2px;
}

.dark .qn-leave-absence-category-icon.is-absence { color: #f87171; }

@media (max-width: 1199px) {
  .qn-leave-absence-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-la-filter-search,
  .qn-la-filter-facility,
  .qn-la-filter-unit,
  .qn-la-filter-category,
  .qn-la-filter-type,
  .qn-la-filter-status,
  .qn-la-filter-from,
  .qn-la-filter-to { grid-column: span 1; }
  .qn-la-filter-actions { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  .qn-leave-absence-filters,
  .qn-leave-absence-category-picker { grid-template-columns: minmax(0, 1fr); }
  .qn-la-filter-search,
  .qn-la-filter-facility,
  .qn-la-filter-unit,
  .qn-la-filter-category,
  .qn-la-filter-type,
  .qn-la-filter-status,
  .qn-la-filter-from,
  .qn-la-filter-to,
  .qn-la-filter-actions { grid-column: 1; }
  .qn-la-filter-actions { justify-content: stretch; }
  .qn-la-filter-actions .kt-btn { flex: 1 1 auto; justify-content: center; }
}

/* V2-16B — Leave & Absence study-leave KPI uses the shared workforce card system without changing other modules. */
@media (min-width: 1200px) {
  .qn-leave-absence-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* V2-17A5C — Employee Add/Edit Metronic wizard + central identity duplicate review. */
.qn-employee-wizard-nav {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: .45rem;
  padding: .8rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: .8rem;
  background: var(--color-background);
}
.qn-employee-wizard-step {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .35rem;
  border: 0;
  border-radius: .6rem;
  background: transparent;
  color: var(--color-secondary-foreground);
  text-align: start;
  transition: background-color .15s ease, color .15s ease;
}
.qn-employee-wizard-step:not(:disabled) { cursor: pointer; }
.qn-employee-wizard-step:not(:disabled):hover { background: color-mix(in srgb, var(--color-primary) 6%, transparent); }
.qn-employee-wizard-step-number {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-muted);
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  font-weight: 700;
}
.qn-employee-wizard-step-copy {
  min-width: 0;
  display: grid;
  gap: .08rem;
}
.qn-employee-wizard-step-copy strong {
  color: var(--color-mono);
  font-size: .74rem;
  line-height: 1.2;
  white-space: nowrap;
}
.qn-employee-wizard-step-copy small {
  max-width: 10rem;
  overflow: hidden;
  color: var(--color-secondary-foreground);
  font-size: .65rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.qn-employee-wizard-step-check {
  display: none;
  margin-inline-start: auto;
  color: #16a34a;
  font-size: 1rem;
}
.qn-employee-wizard-step.active .qn-employee-wizard-step-number {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 10%, transparent);
}
.qn-employee-wizard-step.active .qn-employee-wizard-step-copy strong { color: var(--color-primary); }
.qn-employee-wizard-step.completed .qn-employee-wizard-step-number { display: none; }
.qn-employee-wizard-step.completed .qn-employee-wizard-step-check { display: inline-flex; }
.qn-employee-wizard-step.completed .qn-employee-wizard-step-copy strong { color: #15803d; }
.dark .qn-employee-wizard-step.completed .qn-employee-wizard-step-copy strong { color: #4ade80; }
.qn-employee-wizard-connector {
  width: 1.8rem;
  height: 1px;
  background: var(--color-border);
}
.qn-employee-wizard.first [data-qn-stepper-back],
.qn-employee-wizard:not(.last) [data-qn-stepper-submit],
.qn-employee-wizard.last [data-qn-stepper-next] { display: none; }
.qn-employee-wizard-footer {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.qn-employee-wizard-position {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6rem;
  padding: .35rem .5rem;
  border-radius: 999px;
  background: var(--color-muted);
  font-variant-numeric: tabular-nums;
}
.qn-identity-guard-note {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .75rem .85rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
}
.qn-identity-guard-note > i {
  margin-top: .05rem;
  color: var(--color-primary);
  font-size: 1.15rem;
}
.qn-identity-guard-note > div { display: grid; gap: .1rem; }
.qn-identity-guard-note strong { color: var(--color-mono); font-size: .76rem; }
.qn-identity-guard-note span { color: var(--color-secondary-foreground); font-size: .7rem; line-height: 1.45; }
.qn-employee-review-card {
  display: grid;
  gap: .75rem;
  padding: .9rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: var(--color-background);
}
.qn-employee-review-heading {
  display: flex;
  align-items: center;
  gap: .45rem;
}
.qn-employee-review-heading > i { color: var(--color-primary); }
.qn-employee-review-heading strong { color: var(--color-mono); font-size: .78rem; }
.qn-employee-review-heading span { margin-inline-start: .2rem; color: var(--color-secondary-foreground); font-size: .7rem; }
.qn-employee-review-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
}
.qn-employee-review-grid > div {
  min-width: 0;
  display: grid;
  gap: .18rem;
  padding: .65rem;
  border-radius: .6rem;
  background: color-mix(in srgb, var(--color-muted) 65%, transparent);
}
.qn-employee-review-grid span { color: var(--color-secondary-foreground); font-size: .65rem; }
.qn-employee-review-grid strong { overflow-wrap: anywhere; color: var(--color-mono); font-size: .74rem; }
.qn-duplicate-review {
  display: grid;
  gap: .85rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, #f59e0b 42%, var(--color-border));
  border-radius: .8rem;
  background: color-mix(in srgb, #f59e0b 7%, var(--color-background));
}
.qn-duplicate-review[hidden] { display: none; }
.qn-duplicate-review.is-exact,
.qn-duplicate-review.is-error {
  border-color: color-mix(in srgb, #ef4444 45%, var(--color-border));
  background: color-mix(in srgb, #ef4444 6%, var(--color-background));
}
.qn-duplicate-review-head {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
}
.qn-duplicate-review-icon {
  width: 2.2rem;
  height: 2.2rem;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .65rem;
  background: color-mix(in srgb, #f59e0b 14%, transparent);
  color: #d97706;
  font-size: 1.15rem;
}
.qn-duplicate-review.is-exact .qn-duplicate-review-icon,
.qn-duplicate-review.is-error .qn-duplicate-review-icon {
  background: color-mix(in srgb, #ef4444 13%, transparent);
  color: #dc2626;
}
.qn-duplicate-review-head > div { display: grid; gap: .14rem; }
.qn-duplicate-review-head strong { color: var(--color-mono); font-size: .82rem; }
.qn-duplicate-review-head span { color: var(--color-secondary-foreground); font-size: .72rem; line-height: 1.5; }
.qn-duplicate-match-list { display: grid; gap: .6rem; }
.qn-duplicate-match-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .75rem .8rem;
  border: 1px solid var(--color-border);
  border-radius: .65rem;
  background: var(--color-background);
}
.qn-duplicate-match-body { min-width: 0; display: grid; gap: .12rem; }
.qn-duplicate-match-body > strong { overflow-wrap: anywhere; color: var(--color-mono); font-size: .76rem; }
.qn-duplicate-match-body > span { color: var(--color-secondary-foreground); font-size: .68rem; }
.qn-duplicate-match-facility { margin-top: .08rem; }
.qn-duplicate-signal-list { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; }
.qn-duplicate-signal-list > span {
  padding: .18rem .4rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-muted));
  color: var(--color-primary);
  font-size: .62rem;
  font-weight: 600;
}
.qn-duplicate-match-actions { flex: 0 0 auto; display: flex; align-items: center; gap: .5rem; }
.qn-duplicate-score {
  padding: .25rem .45rem;
  border-radius: .45rem;
  background: var(--color-muted);
  color: var(--color-secondary-foreground);
  font-size: .64rem;
  font-weight: 600;
  white-space: nowrap;
}
.qn-duplicate-override {
  padding-top: .75rem;
  border-top: 1px solid color-mix(in srgb, #f59e0b 28%, var(--color-border));
}
.qn-duplicate-no-override {
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  padding: .65rem .75rem;
  border-radius: .6rem;
  background: color-mix(in srgb, #ef4444 7%, transparent);
  color: #b91c1c;
  font-size: .7rem;
  line-height: 1.45;
}
.qn-duplicate-no-override[hidden],
.qn-duplicate-override[hidden] { display: none; }
.dark .qn-duplicate-no-override { color: #fca5a5; }

@media (max-width: 767px) {
  .qn-employee-wizard-nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .25rem;
    padding: .65rem;
  }
  .qn-employee-wizard-connector { display: none; }
  .qn-employee-wizard-step { justify-content: center; padding: .35rem .2rem; }
  .qn-employee-wizard-step-copy small { display: none; }
  .qn-employee-wizard-step-copy strong { white-space: normal; text-align: center; font-size: .66rem; }
  .qn-employee-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-duplicate-match-card { align-items: flex-start; flex-direction: column; }
  .qn-duplicate-match-actions { width: 100%; justify-content: space-between; }
}

@media (max-width: 575px) {
  .qn-employee-wizard-step-copy { display: none; }
  .qn-employee-wizard-nav { grid-template-columns: repeat(4, 1fr); }
  .qn-employee-wizard-step-number { width: 1.85rem; height: 1.85rem; }
  .qn-employee-review-grid { grid-template-columns: 1fr; }
  .qn-employee-review-heading { align-items: flex-start; flex-wrap: wrap; }
  .qn-employee-wizard-position { display: none; }
  .qn-employee-wizard-footer > .flex { width: 100%; flex-wrap: wrap; justify-content: flex-end; }
}

/* V2-17A5D4 — server-authoritative workforce scope context */
.qn-workforce-scope-banner {
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1rem 1.15rem;
  border:1px solid color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  border-radius:.9rem;
  background:color-mix(in srgb, var(--color-primary) 5%, var(--color-background));
}
.qn-workforce-scope-banner.is-cluster {
  border-color:color-mix(in srgb, var(--color-success) 24%, var(--color-border));
  background:color-mix(in srgb, var(--color-success) 5%, var(--color-background));
}
.qn-workforce-scope-icon {
  width:2.6rem;
  height:2.6rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:.75rem;
  background:color-mix(in srgb, var(--color-primary) 12%, var(--color-background));
  color:var(--color-primary);
  font-size:1.15rem;
}
.qn-workforce-scope-copy {display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}
.qn-workforce-scope-copy strong {font-size:.875rem;color:var(--color-foreground)}
.qn-workforce-scope-copy span {font-size:.75rem;color:var(--color-secondary-foreground)}
.qn-filter-scope-lock,
.qn-scope-locked-field {
  min-height:2.5rem;
  display:flex;
  align-items:center;
  gap:.65rem;
  border:1px solid var(--color-border);
  border-radius:.55rem;
  background:var(--color-muted);
  padding:.55rem .75rem;
  color:var(--color-foreground);
}
.qn-filter-scope-lock i {color:var(--color-primary)}
.qn-scope-locked-field {padding:.75rem .85rem}
.qn-scope-locked-icon {
  width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;
  border-radius:.55rem;background:color-mix(in srgb,var(--color-primary) 11%,var(--color-background));color:var(--color-primary);flex:0 0 auto;
}
.qn-scope-locked-field > div {display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}
.qn-scope-locked-field strong {font-size:.85rem}
.qn-scope-locked-field small {font-size:.7rem;color:var(--color-secondary-foreground)}
.qn-employee-initial-placement {display:grid;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--color-border)}
.qn-employee-placement-title {margin-bottom:0}
@media (max-width: 767px) {
  .qn-workforce-scope-banner {align-items:flex-start;flex-wrap:wrap}
  .qn-workforce-scope-banner .kt-badge {margin-inline-start:3.55rem}
}

/* V2-17A5E2 — Employee transfer workflow */
.qn-transfer-scope-alert {
  margin-bottom: 1.25rem;
}
.qn-transfer-scope-alert .kt-alert-content {
  min-width: 0;
  flex: 1 1 auto;
}
.qn-transfer-scope-alert .kt-alert-title {
  font-weight: 650;
}
.qn-transfer-scope-alert .kt-alert-description {
  line-height: 1.55;
}
.qn-transfer-scope-alert .kt-badge {
  flex: 0 0 auto;
  margin-inline-start: auto;
}

.qn-transfer-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.qn-transfer-stat-card {
  min-width: 0;
  overflow: hidden;
}
.qn-transfer-stat-content {
  display: flex;
  align-items: center;
  gap: .9rem;
  min-height: 5.5rem;
  padding: 1rem !important;
}
.qn-transfer-stat-icon {
  width: 2.6rem;
  height: 2.6rem;
  flex: 0 0 2.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: .72rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: 1.05rem;
}
.qn-transfer-stat-icon.is-warning {
  background: color-mix(in srgb, #f59e0b 12%, transparent);
  color: #d97706;
}
.qn-transfer-stat-icon.is-primary {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
}
.qn-transfer-stat-icon.is-success {
  background: color-mix(in srgb, #22c55e 12%, transparent);
  color: #16a34a;
}
.qn-transfer-stat-icon.is-muted {
  background: color-mix(in srgb, var(--color-secondary-foreground) 10%, transparent);
  color: var(--color-secondary-foreground);
}
.qn-transfer-stat-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .28rem;
}
.qn-transfer-stat-copy strong {
  color: var(--color-mono);
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 700;
}
.qn-transfer-stat-copy span {
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  line-height: 1.35;
}

.qn-transfer-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
.qn-transfer-filter-search { grid-column: span 6; }
.qn-transfer-filter-type { grid-column: span 3; }
.qn-transfer-filter-status { grid-column: span 3; }
.qn-transfer-filter-from { grid-column: span 4; }
.qn-transfer-filter-to { grid-column: span 4; }
.qn-transfer-filter-page-size { grid-column: span 2; }
.qn-transfer-filter-actions {
  grid-column: span 2;
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
}
.qn-transfer-filter-field {
  min-width: 0;
  display: grid;
  gap: .375rem;
}
.qn-transfer-filter-actions .kt-btn {
  min-height: 2.5rem;
}

.qn-transfer-table {
  min-width: 1180px;
}
.qn-transfer-table td {
  vertical-align: middle;
}
.qn-transfer-route-inline {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-width: 16rem;
}
.qn-transfer-route-inline i {
  color: var(--color-primary);
  font-size: .9rem;
}
.qn-transfer-empty-state {
  display: flex;
  min-height: 12rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .65rem;
  color: var(--color-secondary-foreground);
  text-align: center;
}
.qn-transfer-empty-state i {
  font-size: 2rem;
  color: color-mix(in srgb, var(--color-primary) 70%, var(--color-secondary-foreground));
}

.qn-transfer-type-picker {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.qn-transfer-type-choice { display: block; cursor: pointer; }
.qn-transfer-type-choice > input { position: absolute; opacity: 0; pointer-events: none; }
.qn-transfer-type-tile {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: var(--color-background);
  transition: .18s ease;
}
.qn-transfer-type-tile > i {
  display: grid;
  place-items: center;
  flex: 0 0 2.5rem;
  height: 2.5rem;
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  font-size: 1.15rem;
}
.qn-transfer-type-tile span { display: grid; gap: .2rem; }
.qn-transfer-type-tile strong { font-size: .9rem; color: var(--color-mono); }
.qn-transfer-type-tile small { font-size: .75rem; line-height: 1.4; color: var(--color-secondary-foreground); }
.qn-transfer-type-choice > input:checked + .qn-transfer-type-tile {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 12%, transparent);
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-background));
}
.qn-transfer-type-choice > input:focus-visible + .qn-transfer-type-tile {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.qn-transfer-current-card {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 25%, var(--color-border));
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-background));
}
.qn-transfer-current-icon {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: .65rem;
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
}
.qn-transfer-current-card > div { display: grid; gap: .12rem; }
.qn-transfer-current-card small { color: var(--color-secondary-foreground); font-size: .72rem; }
.qn-transfer-current-card strong { font-size: .9rem; color: var(--color-mono); }
.qn-transfer-current-card span:not(.qn-transfer-current-icon) { font-size: .78rem; color: var(--color-secondary-foreground); }

.qn-transfer-decision-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .6rem;
  flex-wrap: nowrap;
  margin-inline-start: auto;
  flex: 0 0 auto;
}
.qn-transfer-decision-btn {
  min-width: 8.5rem;
  min-height: 2.55rem;
  justify-content: center;
  white-space: nowrap;
}

/* Shared high-risk / workflow confirmation surface. Keep this consistent across
   approve, reject, execute, cancel and document-delete modals. */
.qn-confirmation-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: 1rem;
  width: 100%;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-background));
}
.qn-confirmation-panel-icon {
  display: inline-grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 2.75rem;
  border-radius: .72rem;
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
  font-size: 1.15rem;
}
.qn-confirmation-panel-copy {
  min-width: 0;
  display: grid;
  gap: .35rem;
}
.qn-confirmation-panel-copy > strong,
.qn-confirmation-panel > div > strong {
  color: var(--color-mono);
  font-size: .92rem;
  line-height: 1.35;
}
.qn-confirmation-panel-copy > p,
.qn-confirmation-panel > div > p {
  margin: 0;
  color: var(--color-secondary-foreground);
  font-size: .79rem;
  line-height: 1.55;
}
.qn-confirmation-target {
  margin-top: .35rem;
  padding: .65rem .75rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
  border-radius: .55rem;
  background: color-mix(in srgb, var(--color-background) 84%, transparent);
  color: var(--color-mono);
  font-size: .8rem;
  font-weight: 600;
  line-height: 1.45;
}
.qn-confirmation-panel-success {
  border-color: color-mix(in srgb, #22c55e 30%, var(--color-border));
  background: color-mix(in srgb, #22c55e 6%, var(--color-background));
}
.qn-confirmation-panel-success .qn-confirmation-panel-icon {
  background: color-mix(in srgb, #22c55e 13%, transparent);
  color: #16a34a;
}
.qn-confirmation-panel-danger {
  border-color: color-mix(in srgb, #ef4444 28%, var(--color-border));
  background: color-mix(in srgb, #ef4444 5%, var(--color-background));
}
.qn-confirmation-panel-danger .qn-confirmation-panel-icon {
  background: color-mix(in srgb, #ef4444 12%, transparent);
  color: #dc2626;
}
.qn-confirmation-panel-danger .qn-confirmation-target {
  border-color: color-mix(in srgb, #ef4444 28%, var(--color-border));
}
.dark .qn-confirmation-panel-success .qn-confirmation-panel-icon { color: #4ade80; }
.dark .qn-confirmation-panel-danger .qn-confirmation-panel-icon { color: #f87171; }
.qn-transfer-document-list {
  display: grid;
  gap: .75rem;
}
.qn-transfer-details-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(19rem, .62fr);
  gap: 1rem;
  align-items: start;
}
.qn-transfer-details-main,
.qn-transfer-details-sidebar {
  min-width: 0;
  display: grid;
  gap: 1rem;
}
.qn-transfer-detail-card {
  overflow: hidden;
}
.qn-transfer-detail-card > .kt-card-header {
  min-height: 3.75rem;
}
.qn-transfer-detail-card > .kt-card-header > div {
  min-width: 0;
}
.qn-transfer-route-board {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1.25rem;
}
.qn-transfer-route-stop {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto auto;
  column-gap: .85rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .8rem;
  background: var(--color-background);
}
.qn-transfer-route-stop-icon {
  grid-row: 1 / 4;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  align-self: center;
}
.qn-transfer-route-stop small { font-size: .72rem; color: var(--color-secondary-foreground); }
.qn-transfer-route-stop strong { font-size: .95rem; color: var(--color-mono); }
.qn-transfer-route-stop > span:last-child { font-size: .78rem; color: var(--color-secondary-foreground); }
.qn-transfer-route-stop.is-destination {
  border-color: color-mix(in srgb, var(--color-primary) 28%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 3%, var(--color-background));
}
.qn-transfer-route-arrow {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
}
.qn-transfer-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
}
.qn-detail-field {
  min-width: 0;
  display: grid;
  gap: .3rem;
  padding: .85rem .9rem;
  border: 1px solid color-mix(in srgb, var(--color-border) 82%, transparent);
  border-radius: .7rem;
  background: color-mix(in srgb, var(--color-muted) 45%, var(--color-background));
}
.qn-detail-field.is-wide { grid-column: 1 / -1; }
.qn-detail-field > small {
  font-size: .7rem;
  color: var(--color-secondary-foreground);
  text-transform: uppercase;
  letter-spacing: .04em;
}
[dir="rtl"] .qn-detail-field > small { letter-spacing: 0; }
.qn-detail-field > strong { font-size: .9rem; color: var(--color-mono); }
.qn-detail-field > span { font-size: .76rem; color: var(--color-secondary-foreground); }
.qn-detail-note {
  padding: .75rem .8rem;
  border-radius: .6rem;
  background: var(--color-muted);
  font-size: .82rem;
  line-height: 1.6;
  white-space: pre-wrap;
}
.qn-transfer-timeline { display: grid; }
.qn-transfer-timeline-item {
  position: relative;
  display: flex;
  gap: 1rem;
  padding: 0 0 1.35rem 1.25rem;
}
.qn-transfer-timeline-item:not(:last-child)::before {
  content: "";
  position: absolute;
  left: .3rem;
  top: .65rem;
  bottom: -.1rem;
  border-left: 1px solid var(--color-border);
}
[dir="rtl"] .qn-transfer-timeline-item { padding-left: 0; padding-right: 1.25rem; }
[dir="rtl"] .qn-transfer-timeline-item:not(:last-child)::before {
  left: auto;
  right: .3rem;
  border-left: 0;
  border-right: 1px solid var(--color-border);
}
.qn-transfer-timeline-dot {
  position: absolute;
  left: 0;
  top: .28rem;
  width: .65rem;
  height: .65rem;
  border-radius: 999px;
  background: var(--color-primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 12%, transparent);
}
[dir="rtl"] .qn-transfer-timeline-dot { left: auto; right: 0; }
.qn-transfer-timeline-copy { min-width: 0; flex: 1 1 auto; }
.qn-transfer-timeline-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
}
.qn-transfer-timeline-meta {
  margin-top: .25rem;
  color: var(--color-secondary-foreground);
  font-size: .78rem;
}
.qn-transfer-timeline-date {
  color: var(--color-secondary-foreground);
  font-size: .72rem;
}
.qn-transfer-status-list {
  display: grid;
  gap: .85rem;
}
.qn-transfer-status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: .85rem;
  border-bottom: 1px dashed var(--color-border);
}
.qn-transfer-status-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.qn-transfer-status-row > span:first-child {
  color: var(--color-secondary-foreground);
  font-size: .8rem;
}
.qn-transfer-status-row > strong {
  max-width: 62%;
  text-align: end;
  color: var(--color-mono);
  font-size: .82rem;
}
.qn-transfer-document-empty {
  display: flex;
  min-height: 7.5rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .55rem;
  color: var(--color-secondary-foreground);
  font-size: .8rem;
  text-align: center;
}
.qn-transfer-document-empty i { font-size: 1.6rem; color: var(--color-primary); }
.qn-document-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .7rem;
  border: 1px solid var(--color-border);
  border-radius: .65rem;
}
.qn-document-row > i { color: var(--color-primary); font-size: 1.15rem; }
.qn-document-row > div { display: grid; gap: .15rem; }
.qn-document-row strong { font-size: .8rem; color: var(--color-mono); }
.qn-document-row small { font-size: .7rem; color: var(--color-secondary-foreground); }
.qn-transfer-action-card {
  border-color: color-mix(in srgb, #ef4444 22%, var(--color-border));
}
.qn-transfer-action-card .kt-card-content {
  padding: 1rem !important;
}
.qn-transfer-action-card .kt-btn { width: 100%; }

.dark .qn-transfer-stat-icon.is-warning { color: #fbbf24; }
.dark .qn-transfer-stat-icon.is-success { color: #4ade80; }

@media (max-width: 1399px) {
  .qn-transfer-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-transfer-filter-search { grid-column: span 12; }
  .qn-transfer-filter-type,
  .qn-transfer-filter-status,
  .qn-transfer-filter-from,
  .qn-transfer-filter-to { grid-column: span 6; }
  .qn-transfer-filter-page-size { grid-column: span 3; }
  .qn-transfer-filter-actions { grid-column: span 9; }
}
@media (max-width: 1199px) {
  .qn-transfer-details-layout { grid-template-columns: minmax(0, 1fr); }
  .qn-transfer-details-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-transfer-details-sidebar .qn-transfer-action-card { grid-column: 1 / -1; }
}
@media (max-width: 991px) {
  .qn-transfer-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-transfer-filter-type,
  .qn-transfer-filter-status,
  .qn-transfer-filter-from,
  .qn-transfer-filter-to,
  .qn-transfer-filter-page-size { grid-column: span 6; }
  .qn-transfer-filter-actions { grid-column: span 12; justify-content: flex-end; }
}
@media (max-width: 767px) {
  .qn-transfer-scope-alert { align-items: flex-start; flex-wrap: wrap; }
  .qn-transfer-scope-alert .kt-badge { margin-inline-start: 0; }
  .qn-transfer-decision-actions { width: 100%; margin-inline-start: 0; }
  .qn-transfer-decision-btn { flex: 1 1 0; min-width: 0; }
  .qn-confirmation-panel { grid-template-columns: 1fr; }
  .qn-confirmation-panel-icon { width: 2.5rem; height: 2.5rem; }
  .qn-transfer-stats { grid-template-columns: minmax(0, 1fr); }
  .qn-transfer-filter-search,
  .qn-transfer-filter-type,
  .qn-transfer-filter-status,
  .qn-transfer-filter-from,
  .qn-transfer-filter-to,
  .qn-transfer-filter-page-size,
  .qn-transfer-filter-actions { grid-column: 1 / -1; }
  .qn-transfer-filter-actions { justify-content: stretch; }
  .qn-transfer-filter-actions .kt-btn { flex: 1 1 0; justify-content: center; }
  .qn-transfer-type-picker { grid-template-columns: 1fr; }
  .qn-transfer-route-board { grid-template-columns: 1fr; }
  .qn-transfer-route-arrow { margin: auto; transform: rotate(90deg); }
  [dir="rtl"] .qn-transfer-route-arrow { transform: rotate(90deg); }
  .qn-transfer-info-grid { grid-template-columns: 1fr; }
  .qn-detail-field.is-wide { grid-column: 1; }
  .qn-transfer-details-sidebar { grid-template-columns: 1fr; }
  .qn-transfer-status-row { align-items: flex-start; }
  .qn-transfer-status-row > strong { max-width: 60%; }
}

/* V2-17A5E2-Fix03 — Transfer document center */
.qn-transfer-documents-header {
  align-items: center;
  gap: 1rem;
}
.qn-transfer-documents-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .55rem;
  margin-inline-start: auto;
  flex-wrap: wrap;
}
.qn-transfer-document-empty-polished {
  min-height: 11rem;
  padding: 1.1rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 32%, var(--color-border));
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-primary) 3%, var(--color-background));
}
.qn-transfer-document-empty-polished > strong {
  color: var(--color-mono);
  font-size: .9rem;
}
.qn-transfer-document-empty-icon {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: .85rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 11%, transparent);
}
.qn-transfer-document-empty-icon i { font-size: 1.45rem; }
.qn-transfer-document-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .8rem;
  align-items: start;
  padding: .85rem;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  background: var(--color-background);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.qn-transfer-document-item:hover {
  border-color: color-mix(in srgb, var(--color-primary) 25%, var(--color-border));
  box-shadow: 0 8px 24px color-mix(in srgb, var(--color-primary) 7%, transparent);
}
.qn-transfer-document-file-icon {
  display: grid;
  place-items: center;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: .7rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}
.qn-transfer-document-file-icon i { font-size: 1.3rem; }
.qn-transfer-document-copy {
  min-width: 0;
  display: grid;
  gap: .45rem;
}
.qn-transfer-document-title-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.qn-transfer-document-title-row > strong {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--color-mono);
  font-size: .84rem;
}
.qn-transfer-document-meta {
  display: flex;
  align-items: center;
  gap: .55rem .8rem;
  flex-wrap: wrap;
  color: var(--color-secondary-foreground);
  font-size: .7rem;
}
.qn-transfer-document-meta > span {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
}
.qn-transfer-document-meta i { font-size: .76rem; }
.qn-transfer-document-notes {
  color: var(--color-secondary-foreground);
  font-size: .75rem;
  line-height: 1.5;
}
.qn-transfer-document-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .35rem;
  flex-wrap: wrap;
}
.qn-transfer-documents-locked-note {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-top: .85rem;
  padding: .65rem .75rem;
  border-radius: .6rem;
  background: var(--color-muted);
  color: var(--color-secondary-foreground);
  font-size: .73rem;
}
.qn-document-upload-intro {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .85rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: .75rem;
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-background));
}
.qn-document-upload-intro-icon {
  display: grid;
  place-items: center;
  flex: 0 0 2.75rem;
  height: 2.75rem;
  border-radius: .75rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 11%, transparent);
}
.qn-document-upload-intro > div { display: grid; gap: .16rem; }
.qn-document-upload-intro strong { color: var(--color-mono); font-size: .88rem; }
.qn-document-upload-intro span { color: var(--color-secondary-foreground); font-size: .74rem; line-height: 1.45; }
.qn-document-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: .65rem;
}
.qn-document-type-choice {
  display: block;
  height: 100%;
  cursor: pointer;
  min-width: 0;
}
.qn-document-type-choice > input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.qn-document-type-tile {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  align-items: start;
  align-content: start;
  gap: .65rem;
  width: 100%;
  height: 100%;
  min-height: 6rem;
  box-sizing: border-box;
  padding: .75rem;
  border: 1px solid var(--color-border);
  border-radius: .7rem;
  background: var(--color-background);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.qn-document-type-tile > i {
  flex: 0 0 2rem;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: .55rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}
.qn-document-type-tile > span {
  display: grid;
  grid-template-rows: auto 1fr;
  align-content: start;
  gap: .18rem;
  min-width: 0;
  height: 100%;
}
.qn-document-type-tile strong { color: var(--color-mono); font-size: .78rem; }
.qn-document-type-tile small { color: var(--color-secondary-foreground); font-size: .67rem; line-height: 1.35; }
.qn-document-type-choice > input:checked + .qn-document-type-tile {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-background));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 11%, transparent);
}
.qn-document-type-choice > input:focus-visible + .qn-document-type-tile {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.qn-document-dropzone {
  position: relative;
  display: grid;
  min-height: 11.5rem;
  place-items: center;
  padding: 1rem;
  border: 1.5px dashed color-mix(in srgb, var(--color-primary) 36%, var(--color-border));
  border-radius: .85rem;
  background:
    radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--color-primary) 8%, transparent), transparent 48%),
    color-mix(in srgb, var(--color-muted) 42%, var(--color-background));
  cursor: pointer;
  outline: none;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.qn-document-dropzone:hover,
.qn-document-dropzone:focus-visible,
.qn-document-dropzone.is-dragging {
  border-color: var(--color-primary);
  background-color: color-mix(in srgb, var(--color-primary) 5%, var(--color-background));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 9%, transparent);
}
.qn-document-dropzone.is-dragging { transform: translateY(-1px); }
.qn-document-dropzone-idle {
  display: grid;
  justify-items: center;
  gap: .38rem;
  max-width: 24rem;
  text-align: center;
}
.qn-document-dropzone-idle > strong { color: var(--color-mono); font-size: .9rem; }
.qn-document-dropzone-idle > span:not(.kt-btn) { color: var(--color-secondary-foreground); font-size: .75rem; }
.qn-document-dropzone-idle > small { margin-top: .15rem; color: var(--color-secondary-foreground); font-size: .68rem; }
.qn-document-dropzone-icon {
  display: grid;
  place-items: center;
  width: 3.3rem;
  height: 3.3rem;
  margin-bottom: .2rem;
  border-radius: 1rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
}
.qn-document-dropzone-icon i { font-size: 1.55rem; }
.qn-document-file-selected {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: center;
  padding: .9rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 25%, var(--color-border));
  border-radius: .75rem;
  background: var(--color-background);
}
.qn-document-file-selected[hidden] { display: none !important; }
.qn-document-file-selected-icon {
  display: grid;
  place-items: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: .7rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}
.qn-document-file-selected > div { display: grid; gap: .15rem; min-width: 0; }
.qn-document-file-selected strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--color-mono); font-size: .82rem; }
.qn-document-file-selected span { color: var(--color-secondary-foreground); font-size: .72rem; }
.qn-validation-field.is-invalid .qn-document-dropzone { border-color: var(--color-destructive); }
.qn-validation-message {
  min-height: 1rem;
  margin-top: .3rem;
  color: var(--color-destructive);
  font-size: .7rem;
}
.qn-confirmation-target {
  margin-top: .55rem;
  padding: .55rem .65rem;
  border-radius: .55rem;
  background: var(--color-muted);
  color: var(--color-mono);
  font-size: .76rem;
  overflow-wrap: anywhere;
}
.dark .qn-transfer-document-item,
.dark .qn-document-type-tile,
.dark .qn-document-file-selected { background: color-mix(in srgb, var(--color-background) 96%, white 4%); }

@media (max-width: 991px) {
  .qn-document-type-grid { grid-template-columns: 1fr; }
  .qn-transfer-document-item { grid-template-columns: auto minmax(0, 1fr); }
  .qn-transfer-document-actions { grid-column: 1 / -1; justify-content: flex-start; padding-inline-start: 3.45rem; }
}
@media (max-width: 575px) {
  .qn-transfer-documents-header { align-items: flex-start; }
  .qn-transfer-documents-header-actions { width: 100%; justify-content: space-between; margin-inline-start: 0; }
  .qn-transfer-document-item { grid-template-columns: minmax(0, 1fr); }
  .qn-transfer-document-file-icon { display: none; }
  .qn-transfer-document-actions { grid-column: auto; padding-inline-start: 0; }
  .qn-transfer-document-actions .kt-btn { flex: 1 1 auto; }
  .qn-document-dropzone { min-height: 10.5rem; }
}

/* ========================================================================== */
/* V2-17A5E3N — Metronic notification center                                 */
/* ========================================================================== */
.qn-notification-trigger {
    position: relative;
}


.qn-notification-badge {
    position: absolute;
    inset-block-start: -0.3rem;
    inset-inline-end: -0.3rem;
    min-width: 1.15rem;
    height: 1.15rem;
    padding-inline: 0.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--destructive);
    color: var(--destructive-foreground);
    border: 2px solid var(--background);
    font-size: 0.625rem;
    line-height: 1;
    font-weight: 700;
}

.qn-notification-drawer {
    width: min(430px, 100vw);
    border-inline-start: 1px solid var(--border);
}

.qn-notification-drawer-header {
    padding: 1rem 1.25rem;
}

.qn-notification-drawer-icon,
.qn-notification-item-icon,
.qn-notification-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 0.75rem;
    color: var(--primary);
    background: color-mix(in srgb, var(--primary) 10%, transparent);
}

.qn-notification-drawer-icon {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1.15rem;
}

.qn-notification-subtitle {
    margin-top: 0.15rem;
    color: var(--muted-foreground);
    font-size: 0.75rem;
    line-height: 1.4;
}

.qn-notification-tabs {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    min-height: 3.1rem;
    padding-inline: 1.25rem;
    border-bottom: 1px solid var(--border);
    background: var(--popover);
}

.qn-notification-tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 3.1rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--secondary-foreground);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

.qn-notification-tab::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-end: -1px;
    height: 2px;
    background: transparent;
}

.qn-notification-tab:hover,
.qn-notification-tab.active {
    color: var(--primary);
}

.qn-notification-tab.active::after {
    background: var(--primary);
}

.qn-notification-tab-count {
    min-width: 1.25rem;
    height: 1.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-inline: 0.25rem;
    color: var(--primary);
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    font-size: 0.65rem;
    font-weight: 700;
}

.qn-notification-content.kt-drawer-content {
    padding: 0;
    background: var(--popover);
}

.qn-notification-list {
    display: flex;
    flex-direction: column;
}

.qn-notification-item {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.25rem;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    color: inherit;
    text-align: start;
    cursor: default;
    transition: background-color 160ms ease, border-color 160ms ease;
}

button.qn-notification-item {
    cursor: pointer;
}

.qn-notification-item:hover {
    background: color-mix(in srgb, var(--accent) 65%, transparent);
}

.qn-notification-item.unread {
    background: color-mix(in srgb, var(--primary) 4%, var(--popover));
}

.qn-notification-item-icon {
    width: 2.35rem;
    height: 2.35rem;
    margin-top: 0.1rem;
    font-size: 1rem;
}

.qn-notification-item.severity-success .qn-notification-item-icon {
    color: var(--qn-success);
    background: color-mix(in srgb, #22c55e 12%, transparent);
}

.qn-notification-item.severity-warning .qn-notification-item-icon {
    color: #b45309;
    background: color-mix(in srgb, #f59e0b 14%, transparent);
}

.qn-notification-item.severity-danger .qn-notification-item-icon {
    color: var(--destructive);
    background: color-mix(in srgb, var(--destructive) 10%, transparent);
}

.qn-notification-item-content {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.qn-notification-item-title-row {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.qn-notification-item-title {
    min-width: 0;
    flex: 1 1 auto;
    color: var(--foreground);
    font-size: 0.8125rem;
    line-height: 1.45;
    font-weight: 650;
}

.qn-notification-unread-dot {
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.4rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent);
}

.qn-notification-item-message {
    color: var(--secondary-foreground);
    font-size: 0.75rem;
    line-height: 1.55;
}

.qn-notification-item-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.15rem;
    color: var(--muted-foreground);
    font-size: 0.6875rem;
}

.qn-notification-category-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.3rem;
    padding-inline: 0.45rem;
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--primary) 9%, transparent);
    color: var(--primary);
    font-weight: 600;
    text-transform: capitalize;
}


/* Notification center visibility must win over component display declarations. */
.qn-notification-badge.hidden,
.qn-notification-tab-count.hidden,
.qn-notification-loading.hidden,
.qn-notification-empty.hidden {
    display: none !important;
}

.qn-notification-loading,
.qn-notification-empty {
    min-height: 15rem;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    text-align: center;
    color: var(--muted-foreground);
    font-size: 0.8125rem;
}

.qn-notification-empty strong {
    color: var(--foreground);
    font-size: 0.875rem;
}

.qn-notification-empty-icon {
    width: 3rem;
    height: 3rem;
    margin-bottom: 0.25rem;
    font-size: 1.25rem;
}

.qn-notification-footer {
    gap: 0.75rem;
    padding: 0.9rem 1.25rem;
}

/* RTL drawer positioning: Metronic's logical end positioning keeps a physical
   positive translate, which can leave an RTL drawer shifted into the page.
   Pin it to the viewport edge and reverse the closed translation for RTL. */
html[dir="ltr"] .qn-notification-drawer {
    left: auto !important;
    right: 0 !important;
}
html[dir="rtl"] .qn-notification-drawer {
    left: 0 !important;
    right: auto !important;
    border-inline-start: 0;
    border-inline-end: 1px solid var(--border);
    --tw-translate-x: -100%;
    translate: -100% 0;
}
html[dir="rtl"] .qn-notification-drawer.open,
html[dir="rtl"] .qn-notification-drawer.open[data-kt-drawer-initialized],
html[dir="rtl"] .open[data-kt-drawer-initialized] .qn-notification-drawer {
    --tw-translate-x: 0 !important;
    translate: 0 0 !important;
}

@media (max-width: 575.98px) {
    .qn-notification-drawer {
        width: 100vw;
        max-width: 100vw;
    }

    .qn-notification-tabs {
        gap: 1rem;
    }

    .qn-notification-footer {
        flex-direction: column-reverse;
    }

    .qn-notification-footer .kt-btn {
        width: 100%;
    }
}

/* V2-17A5E4 — transfer reporting and employee movement timeline */
.qn-transfer-report-stats {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1rem;
}
.qn-transfer-report-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
.qn-transfer-report-filter { grid-column: span 3; min-width: 0; display: grid; gap: .4rem; }
.qn-transfer-report-search { grid-column: span 6; }
.qn-transfer-report-actions {
  grid-column: span 6;
  display: flex;
  justify-content: flex-end;
  gap: .65rem;
  align-items: end;
}
.qn-transfer-report-table { min-width: 1180px; }
.qn-transfer-workflow-dates { min-width: 180px; }
.qn-transfer-workflow-dates > div { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: .45rem; align-items: baseline; margin-bottom: .25rem; }
.qn-transfer-workflow-dates > div:last-child { margin-bottom: 0; }
.qn-transfer-workflow-dates span { font-size: .68rem; color: var(--color-secondary-foreground); }
.qn-transfer-workflow-dates strong { font-size: .72rem; font-weight: 500; color: var(--color-mono); }

.qn-profile-transfer-timeline-card .kt-card-header { gap: 1rem; }
.qn-profile-transfer-empty { display: flex; align-items: center; gap: .8rem; min-height: 86px; }
.qn-profile-transfer-timeline { display: grid; gap: 0; }
.qn-profile-transfer-event {
  position: relative;
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  gap: .8rem;
  padding: 0 0 1.1rem;
}
.qn-profile-transfer-event:not(:last-child)::before {
  content: "";
  position: absolute;
  top: .8rem;
  bottom: 0;
  left: .32rem;
  width: 1px;
  background: var(--color-border);
}
[dir="rtl"] .qn-profile-transfer-event:not(:last-child)::before { left: auto; right: .32rem; }
.qn-profile-transfer-dot {
  position: relative;
  z-index: 1;
  width: .7rem;
  height: .7rem;
  margin-top: .25rem;
  border-radius: 999px;
  background: var(--color-primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 12%, transparent);
}
.qn-profile-transfer-event.is-executed .qn-profile-transfer-dot { background: var(--color-success); box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-success) 12%, transparent); }
.qn-profile-transfer-event.is-rejected .qn-profile-transfer-dot,
.qn-profile-transfer-event.is-cancelled .qn-profile-transfer-dot { background: var(--color-destructive); box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-destructive) 10%, transparent); }
.qn-profile-transfer-event-main {
  min-width: 0;
  border: 1px solid var(--color-border);
  border-radius: .75rem;
  padding: .9rem 1rem;
  background: var(--color-background);
}
.qn-profile-transfer-event-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.qn-profile-transfer-route {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: .8rem;
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px dashed var(--color-border);
}
.qn-profile-transfer-route > div { display: grid; gap: .14rem; min-width: 0; }
.qn-profile-transfer-route > div > span { font-size: .68rem; color: var(--color-secondary-foreground); }
.qn-profile-transfer-route > div > strong { font-size: .82rem; color: var(--color-mono); overflow-wrap: anywhere; }
.qn-profile-transfer-route > div > small { font-size: .72rem; color: var(--color-secondary-foreground); }
.qn-profile-transfer-arrow { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 999px; background: var(--color-primary-light); color: var(--color-primary); }
.qn-profile-transfer-effective { display: flex; align-items: center; gap: .4rem; margin-top: .7rem; font-size: .72rem; color: var(--color-secondary-foreground); }
.qn-profile-transfer-effective strong { color: var(--color-mono); font-weight: 600; }

@media (max-width: 1199px) {
  .qn-transfer-report-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-transfer-report-filter { grid-column: span 6; }
  .qn-transfer-report-search { grid-column: span 12; }
  .qn-transfer-report-actions { grid-column: span 12; }
}
@media (max-width: 767px) {
  .qn-transfer-report-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-transfer-report-filter,
  .qn-transfer-report-search,
  .qn-transfer-report-actions { grid-column: 1 / -1; }
  .qn-transfer-report-actions { justify-content: stretch; }
  .qn-transfer-report-actions .kt-btn { flex: 1 1 0; justify-content: center; }
  .qn-profile-transfer-event-head { flex-direction: column; }
  .qn-profile-transfer-route { grid-template-columns: 1fr; }
  .qn-profile-transfer-arrow { margin: auto; transform: rotate(90deg); }
  [dir="rtl"] .qn-profile-transfer-arrow { transform: rotate(90deg); }
}
@media (max-width: 479px) {
  .qn-transfer-report-stats { grid-template-columns: 1fr; }
}

@media print {
  .qn-print-hide,
  .app-sidebar,
  .app-header,
  [data-kt-drawer="true"] { display: none !important; }
  .app-wrapper,
  .app-main,
  .app-content { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; }
  .qn-transfer-report-toolbar,
  .qn-transfer-report-card,
  .qn-transfer-stat-card { box-shadow: none !important; break-inside: avoid; }
  .qn-transfer-report-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .35rem; }
  .qn-transfer-report-table { min-width: 0; font-size: 9px; }
  .qn-transfer-report-table th,
  .qn-transfer-report-table td { padding: 5px !important; }
  .qn-print-link { color: inherit !important; text-decoration: none !important; }
}

/* V2-17A6A - Outside Nursing Profession */
.qn-onp-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.qn-onp-row-action {
  min-height: 2.25rem;
  justify-content: center;
}
.qn-onp-row-action-icon {
  width: 2.25rem;
  min-width: 2.25rem;
  padding-inline: 0;
}
.qn-onp-row-action-icon > i {
  margin: 0;
}
.qn-onp-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.qn-onp-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
.qn-onp-filter-search { grid-column: span 6; }
.qn-onp-filter-status { grid-column: span 3; }
.qn-onp-filter-facility { grid-column: span 3; }
.qn-onp-filter-unit { grid-column: span 3; }
.qn-onp-filter-from,
.qn-onp-filter-to,
.qn-onp-filter-page-size { grid-column: span 2; min-width: 0; }
.qn-onp-filter-actions { display: flex; justify-content: flex-end; gap: .5rem; align-items: end; grid-column: span 3; }
.qn-lifecycle-timeline { display: grid; gap: .75rem; }
.qn-lifecycle-period {
  display: flex;
  gap: .85rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: .85rem;
  background: var(--color-background);
}
.qn-lifecycle-period.is-open { border-inline-start: 3px solid var(--color-warning); }
.qn-lifecycle-period.is-closed { border-inline-start: 3px solid var(--color-success); }
.qn-lifecycle-period-icon {
  display: grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  flex: 0 0 2.6rem;
  border-radius: .8rem;
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, transparent);
}
.qn-lifecycle-period.is-open .qn-lifecycle-period-icon { color: var(--color-warning); background: color-mix(in srgb, var(--color-warning) 12%, transparent); }
.qn-lifecycle-period.is-closed .qn-lifecycle-period-icon { color: var(--color-success); background: color-mix(in srgb, var(--color-success) 12%, transparent); }
@media (max-width: 1199px) {
  .qn-onp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-onp-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-onp-filter-search, .qn-onp-filter-unit, .qn-onp-filter-actions { grid-column: span 2; }
  .qn-onp-filter-status, .qn-onp-filter-facility, .qn-onp-filter-from, .qn-onp-filter-to, .qn-onp-filter-page-size { grid-column: span 1; }
}
@media (max-width: 639px) {
  .qn-onp-stats, .qn-onp-filters { grid-template-columns: minmax(0, 1fr); }
  .qn-onp-filter-search, .qn-onp-filter-status, .qn-onp-filter-facility, .qn-onp-filter-unit, .qn-onp-filter-from, .qn-onp-filter-to, .qn-onp-filter-page-size, .qn-onp-filter-actions { grid-column: span 1; }
  .qn-onp-filter-actions { justify-content: stretch; }
  .qn-onp-filter-actions .kt-btn { flex: 1; }
  .qn-lifecycle-period { align-items: flex-start; }
}

/* V2-17A6B Contract Termination lifecycle */
.qn-contract-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem;
}
.qn-contract-filters {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1rem;
  align-items: end;
}
.qn-contract-filter-search { grid-column: span 5; }
.qn-contract-filter-status { grid-column: span 3; }
.qn-contract-filter-type { grid-column: span 4; }
.qn-contract-filter-facility { grid-column: span 3; }
.qn-contract-filter-unit { grid-column: span 3; }
.qn-contract-filter-from,
.qn-contract-filter-to,
.qn-contract-filter-page-size { grid-column: span 2; min-width: 0; }
.qn-contract-filter-actions { display: flex; justify-content: flex-end; gap: .5rem; align-items: end; grid-column: span 3; }
.qn-contract-row-actions { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; align-items: center; }
.qn-contract-row-action { min-height: 34px; white-space: nowrap; }
@media (max-width: 1199px) {
  .qn-contract-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-contract-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-contract-filter-search, .qn-contract-filter-type, .qn-contract-filter-unit, .qn-contract-filter-actions { grid-column: span 2; }
  .qn-contract-filter-status, .qn-contract-filter-facility, .qn-contract-filter-from, .qn-contract-filter-to, .qn-contract-filter-page-size { grid-column: span 1; }
}
@media (max-width: 767px) {
  .qn-contract-stats, .qn-contract-filters { grid-template-columns: minmax(0, 1fr); }
  .qn-contract-filter-search, .qn-contract-filter-status, .qn-contract-filter-type, .qn-contract-filter-facility, .qn-contract-filter-unit, .qn-contract-filter-from, .qn-contract-filter-to, .qn-contract-filter-page-size, .qn-contract-filter-actions { grid-column: span 1; }
  .qn-contract-filter-actions { justify-content: stretch; }
  .qn-contract-filter-actions .kt-btn { flex: 1; }
}

/* V2-17A6C — Employment lifecycle timeline */
.qn-employment-lifecycle-card .kt-card-content{overflow:hidden}
.qn-employment-lifecycle-timeline{display:grid;gap:0}
.qn-employment-lifecycle-event{display:grid;grid-template-columns:42px minmax(0,1fr);position:relative}
.qn-employment-lifecycle-rail{position:relative;display:flex;justify-content:center}
.qn-employment-lifecycle-rail:after{content:"";position:absolute;top:40px;bottom:-8px;width:2px;background:var(--tw-gray-200,#e5e7eb)}
.qn-employment-lifecycle-event:last-child .qn-employment-lifecycle-rail:after{display:none}
.qn-employment-lifecycle-icon{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--tw-gray-100,#f3f4f6);color:var(--tw-gray-600,#4b5563);border:1px solid var(--tw-gray-200,#e5e7eb);z-index:1}
.qn-employment-lifecycle-event.is-primary .qn-employment-lifecycle-icon{background:rgba(30,136,229,.10);color:#1976d2;border-color:rgba(30,136,229,.24)}
.qn-employment-lifecycle-event.is-success .qn-employment-lifecycle-icon{background:rgba(22,163,74,.10);color:#15803d;border-color:rgba(22,163,74,.22)}
.qn-employment-lifecycle-event.is-warning .qn-employment-lifecycle-icon{background:rgba(217,119,6,.10);color:#b45309;border-color:rgba(217,119,6,.22)}
.qn-employment-lifecycle-event.is-danger .qn-employment-lifecycle-icon{background:rgba(220,38,38,.10);color:#b91c1c;border-color:rgba(220,38,38,.22)}
.qn-employment-lifecycle-body{margin:0 0 18px 8px;padding:14px 16px;border:1px solid var(--tw-gray-200,#e5e7eb);border-radius:12px;background:var(--tw-light,#fff);min-width:0}
[dir="rtl"] .qn-employment-lifecycle-body{margin:0 8px 18px 0}
.qn-employment-lifecycle-event.is-future .qn-employment-lifecycle-body{border-style:dashed}
.qn-employment-lifecycle-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.qn-employment-lifecycle-date{font-size:.75rem;color:var(--tw-gray-500,#6b7280);white-space:nowrap;font-weight:600}
.qn-employment-lifecycle-route{margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:10px;padding:12px;border-radius:10px;background:var(--tw-gray-50,#f9fafb)}
.qn-employment-lifecycle-route>div{display:grid;gap:2px}.qn-employment-lifecycle-route span,.qn-employment-lifecycle-note>span,.qn-employment-lifecycle-highlight>span{font-size:.7rem;color:var(--tw-gray-500,#6b7280)}
.qn-employment-lifecycle-route small,.qn-employment-lifecycle-highlight small{font-size:.72rem;color:var(--tw-gray-500,#6b7280)}
.qn-employment-lifecycle-route>i{text-align:center;color:var(--tw-gray-400,#9ca3af)}
.qn-employment-lifecycle-highlight{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--tw-gray-50,#f9fafb)}
.qn-employment-lifecycle-note{margin-top:10px;padding-top:10px;border-top:1px dashed var(--tw-gray-200,#e5e7eb);display:grid;gap:3px;font-size:.82rem}
.qn-employment-lifecycle-meta{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.72rem;color:var(--tw-gray-500,#6b7280)}
.qn-employment-lifecycle-meta>span{display:inline-flex;align-items:center;gap:5px}.qn-employment-lifecycle-meta strong{color:var(--tw-gray-700,#374151)}
.dark .qn-employment-lifecycle-body{background:var(--tw-coal-500,#1f212a);border-color:var(--tw-coal-300,#363843)}
.dark .qn-employment-lifecycle-route,.dark .qn-employment-lifecycle-highlight{background:rgba(255,255,255,.035)}
.dark .qn-employment-lifecycle-rail:after{background:var(--tw-coal-300,#363843)}
@media (max-width:640px){.qn-employment-lifecycle-event{grid-template-columns:34px minmax(0,1fr)}.qn-employment-lifecycle-icon{width:28px;height:28px}.qn-employment-lifecycle-head{display:grid}.qn-employment-lifecycle-date{order:-1}.qn-employment-lifecycle-route{grid-template-columns:1fr}.qn-employment-lifecycle-route>i{transform:rotate(90deg)}[dir="rtl"] .qn-employment-lifecycle-route>i{transform:rotate(90deg)}}

/* V2-17A7C UI Fix — durable Metronic-aligned KPI grids for import history/reconciliation/normalization. */
.qn-a7c-kpi-grid {
  display: grid;
  gap: 1rem;
  align-items: stretch;
}

.qn-a7c-kpi-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.qn-a7c-kpi-grid-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.qn-a7c-kpi-card {
  position: relative;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--color-primary) 11%, var(--border));
  background: var(--background);
}

.qn-a7c-kpi-card::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-start: 0;
  height: 3px;
  background: var(--color-primary);
}

.qn-a7c-kpi-content {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 6.25rem;
  padding: 1rem !important;
}

.qn-a7c-kpi-icon {
  display: inline-flex;
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  align-items: center;
  justify-content: center;
  border-radius: .72rem;
  background: color-mix(in srgb, var(--color-primary) 9%, transparent);
  color: var(--color-primary);
  font-size: 1.05rem;
}

.qn-a7c-kpi-label {
  color: var(--color-secondary-foreground);
  font-size: .76rem;
  font-weight: 600;
  line-height: 1.3;
}

.qn-a7c-kpi-value {
  margin-top: .2rem;
  color: var(--color-mono);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}

.qn-a7c-kpi-card.is-success::before { background: #22c55e; }
.qn-a7c-kpi-card.is-success .qn-a7c-kpi-icon { background: color-mix(in srgb, #22c55e 10%, transparent); color: #16a34a; }
.qn-a7c-kpi-card.is-danger::before { background: #ef4444; }
.qn-a7c-kpi-card.is-danger .qn-a7c-kpi-icon { background: color-mix(in srgb, #ef4444 10%, transparent); color: #dc2626; }
.qn-a7c-kpi-card.is-warning::before { background: #f59e0b; }
.qn-a7c-kpi-card.is-warning .qn-a7c-kpi-icon { background: color-mix(in srgb, #f59e0b 11%, transparent); color: #d97706; }
.qn-a7c-kpi-card.is-info::before { background: #06b6d4; }
.qn-a7c-kpi-card.is-info .qn-a7c-kpi-icon { background: color-mix(in srgb, #06b6d4 10%, transparent); color: #0891b2; }
.qn-a7c-kpi-card.is-violet::before { background: #8b5cf6; }
.qn-a7c-kpi-card.is-violet .qn-a7c-kpi-icon { background: color-mix(in srgb, #8b5cf6 10%, transparent); color: #7c3aed; }

.qn-a7c-meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}

.qn-a7c-meta-grid > div {
  min-width: 0;
}

.dark .qn-a7c-kpi-card {
  border-color: color-mix(in srgb, var(--color-primary) 18%, var(--border));
}
.dark .qn-a7c-kpi-card.is-success .qn-a7c-kpi-icon { color: #4ade80; }
.dark .qn-a7c-kpi-card.is-danger .qn-a7c-kpi-icon { color: #f87171; }
.dark .qn-a7c-kpi-card.is-warning .qn-a7c-kpi-icon { color: #fbbf24; }
.dark .qn-a7c-kpi-card.is-info .qn-a7c-kpi-icon { color: #22d3ee; }
.dark .qn-a7c-kpi-card.is-violet .qn-a7c-kpi-icon { color: #a78bfa; }

@media (max-width: 1279px) {
  .qn-a7c-kpi-grid-five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qn-a7c-kpi-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .qn-a7c-meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .qn-a7c-kpi-grid-five,
  .qn-a7c-kpi-grid-four,
  .qn-a7c-meta-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .qn-a7c-kpi-content { min-height: 5.25rem; padding: .85rem !important; }
}

/* V2-17B1 — SCFHS import. Regression lock: KPI cards stay horizontal on desktop. */
.qn-scfhs-kpi-grid-six {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.qn-scfhs-import-table th,
.qn-scfhs-import-table td {
  vertical-align: top;
}

.qn-scfhs-import-table tbody tr:hover {
  background: color-mix(in srgb, var(--color-primary, #3b82f6) 3%, transparent);
}

@media (min-width: 768px) {
  .qn-scfhs-kpi-grid-six {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .qn-scfhs-kpi-grid-six {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}


/* V2-17A7H2-R13B - Compact Metronic records table */
.qn-onp-records-table { min-width:1120px; table-layout:fixed; }
.qn-onp-records-table thead th { padding:.72rem .8rem !important; font-size:.72rem; font-weight:600; color:var(--color-muted-foreground); background:color-mix(in srgb,var(--color-muted) 45%,transparent); border-bottom:1px solid var(--color-border); white-space:nowrap; }
.qn-onp-records-table tbody tr { border-bottom:1px dashed var(--color-border); transition:background-color .15s ease; }
.qn-onp-records-table tbody tr:last-child { border-bottom:0; }
.qn-onp-records-table tbody tr:hover { background:color-mix(in srgb,var(--color-primary) 3%,transparent); }
.qn-onp-records-table .qn-onp-cell { padding:.7rem .8rem !important; line-height:1.35; vertical-align:middle; }
.qn-onp-records-table th:nth-child(1){width:15%}.qn-onp-records-table th:nth-child(2){width:15%}.qn-onp-records-table th:nth-child(3){width:10%}.qn-onp-records-table th:nth-child(4){width:18%}.qn-onp-records-table th:nth-child(5){width:15%}.qn-onp-records-table th:nth-child(6){width:9%}.qn-onp-records-table th:nth-child(7){width:10%}.qn-onp-records-table th:nth-child(8){width:8%}
.qn-onp-clamp { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; max-width:240px; }
.qn-onp-evidence-cell .kt-btn,.qn-onp-actions-cell .kt-btn { min-height:2rem; }
.qn-onp-actions-cell .qn-onp-row-actions { gap:.35rem; }
.qn-onp-actions-cell .qn-onp-row-action { min-height:2rem; padding-inline:.65rem; }

/* V2-17A7H2-R13B - Metronic-style system status pages */
.qn-system-page { min-height:calc(100vh - 190px); display:grid; place-items:center; padding:2rem 1rem 4rem; }
.qn-system-page-card { width:min(760px,100%); text-align:center; }
.qn-system-code { font-size:clamp(5rem,14vw,9rem); line-height:.85; font-weight:800; letter-spacing:-.06em; color:color-mix(in srgb,var(--color-primary) 88%,white); }
.qn-system-icon { width:4.5rem;height:4.5rem;margin:-.25rem auto 1rem;display:grid;place-items:center;border-radius:1.25rem;background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);font-size:2rem; }
.qn-system-title { font-size:1.55rem;font-weight:700;color:var(--color-foreground);margin-top:.5rem; }
.qn-system-description { max-width:560px;margin:.65rem auto 0;color:var(--color-muted-foreground);font-size:.95rem;line-height:1.8; }
.qn-system-actions { margin-top:1.5rem;display:flex;justify-content:center;gap:.65rem;flex-wrap:wrap; }
.qn-system-request { margin-top:1.35rem;font-size:.72rem;color:var(--color-muted-foreground); }
@media (max-width:639px){.qn-system-page{min-height:calc(100vh - 150px);padding-top:1rem}.qn-system-actions .kt-btn{flex:1;min-width:140px}}


/* V2-17A7H2-R13C - Central Metronic table standard
   One visual contract for operational tables across the platform. */
.kt-table {
  --qn-table-row-pad-y: .68rem;
  --qn-table-row-pad-x: .72rem;
}
.kt-table > thead > tr > th {
  padding: .72rem var(--qn-table-row-pad-x) !important;
  font-size: .72rem;
  font-weight: 650;
  line-height: 1.25;
  vertical-align: middle;
  white-space: nowrap;
  background: color-mix(in srgb, var(--color-muted) 48%, transparent);
  border-bottom: 1px solid var(--color-border) !important;
}
.kt-table > tbody > tr {
  border-bottom: 1px dashed color-mix(in srgb, var(--color-border) 88%, transparent) !important;
  transition: background-color .14s ease;
}
.kt-table > tbody > tr:last-child { border-bottom: 0 !important; }
.kt-table > tbody > tr:hover { background: color-mix(in srgb, var(--color-primary) 2.8%, transparent); }
.kt-table > tbody > tr > td {
  padding: var(--qn-table-row-pad-y) var(--qn-table-row-pad-x) !important;
  line-height: 1.32;
  vertical-align: middle !important;
}
.kt-table .kt-badge { white-space: nowrap; }
.kt-table .kt-btn { white-space: nowrap; }
.qn-table-action-group { flex-wrap: nowrap !important; white-space: nowrap; }

/* Compact long-text affordance: keep rows clean; open full content on demand. */
.qn-cell-note { display:inline-flex; align-items:center; gap:.4rem; min-width:0; max-width:100%; }
.qn-cell-note-preview { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:9.5rem; color:var(--color-secondary-foreground); }
.qn-cell-note-button { width:1.85rem; height:1.85rem; min-width:1.85rem; padding:0 !important; border-radius:.45rem; color:var(--color-primary); }
.qn-cell-note-button:hover { background:color-mix(in srgb,var(--color-primary) 9%,transparent); }
.qn-cell-note-dialog-copy { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.75; color:var(--color-foreground); }

/* Workforce registry follows the same central density instead of oversized rows. */
.qn-workforce-table { min-width: 1180px !important; table-layout:fixed !important; }
.qn-workforce-table > tbody > tr > td { padding-top:.62rem !important; padding-bottom:.62rem !important; }
.qn-workforce-table th:nth-child(1),.qn-workforce-table td:nth-child(1){width:10% !important}
.qn-workforce-table th:nth-child(2),.qn-workforce-table td:nth-child(2){width:15% !important}
.qn-workforce-table th:nth-child(3),.qn-workforce-table td:nth-child(3){width:10% !important}
.qn-workforce-table th:nth-child(4),.qn-workforce-table td:nth-child(4){width:14% !important}
.qn-workforce-table th:nth-child(5),.qn-workforce-table td:nth-child(5){width:10% !important}
.qn-workforce-table th:nth-child(6),.qn-workforce-table td:nth-child(6){width:12% !important}
.qn-workforce-table th:nth-child(7),.qn-workforce-table td:nth-child(7){width:9% !important}
.qn-workforce-table th:nth-child(8),.qn-workforce-table td:nth-child(8){width:8% !important}
.qn-workforce-table th:nth-child(9),.qn-workforce-table td:nth-child(9){width:12% !important}
.qn-workforce-table td:nth-child(2) .flex.flex-col { min-width:0; }
.qn-workforce-table td:nth-child(2) a,.qn-workforce-table td:nth-child(2) span { overflow-wrap:anywhere; }
.qn-workforce-table td:nth-child(4),.qn-workforce-table td:nth-child(5),.qn-workforce-table td:nth-child(6) { overflow-wrap:anywhere; }

/* Outside Nursing Profession: protect status/actions and make narrative columns compact. */
.qn-onp-records-table { min-width:1160px !important; table-layout:fixed !important; }
.qn-onp-records-table th:nth-child(1){width:15% !important}.qn-onp-records-table th:nth-child(2){width:15% !important}.qn-onp-records-table th:nth-child(3){width:10% !important}.qn-onp-records-table th:nth-child(4){width:13% !important}.qn-onp-records-table th:nth-child(5){width:14% !important}.qn-onp-records-table th:nth-child(6){width:10% !important}.qn-onp-records-table th:nth-child(7){width:11% !important}.qn-onp-records-table th:nth-child(8){width:12% !important}
.qn-onp-records-table .qn-onp-status-cell,.qn-onp-records-table .qn-onp-actions-cell,.qn-onp-records-table .qn-onp-evidence-cell { white-space:nowrap; }
.qn-onp-records-table .qn-onp-row-actions { justify-content:flex-end; flex-wrap:nowrap; }
@media (max-width: 1023px) { .kt-table { --qn-table-row-pad-x:.62rem; --qn-table-row-pad-y:.62rem; } }

/* V2-20A3 — Central KPI primitive: semantic tone is visible on the whole card. */
.qn-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.qn-metric-card {
  --qn-metric-rgb: 37 99 235; position:relative; min-width:0; height:100%; overflow:hidden;
  border:1px solid rgb(var(--qn-metric-rgb) / .18);
  background:linear-gradient(135deg, rgb(var(--qn-metric-rgb) / .085) 0%, rgb(var(--qn-metric-rgb) / .025) 48%, var(--card) 100%);
  box-shadow:0 8px 24px rgb(var(--qn-metric-rgb) / .07); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.qn-metric-card:hover { transform:translateY(-2px); border-color:rgb(var(--qn-metric-rgb) / .32); box-shadow:0 12px 30px rgb(var(--qn-metric-rgb) / .12); }
.qn-metric-card.is-success { --qn-metric-rgb:22 163 74; }
.qn-metric-card.is-warning { --qn-metric-rgb:217 119 6; }
.qn-metric-card.is-info { --qn-metric-rgb:8 145 178; }
.qn-metric-card.is-danger { --qn-metric-rgb:220 38 38; }
.qn-metric-card.is-muted { --qn-metric-rgb:100 116 139; }
.qn-metric-card-accent { position:absolute; inset-block:0; inset-inline-start:0; width:4px; background:rgb(var(--qn-metric-rgb)); }
.qn-metric-card-content { position:relative; display:flex; align-items:center; gap:1rem; min-height:108px; padding:1.2rem 1.25rem; }
.qn-metric-card-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:50px; height:50px; border-radius:15px; background:rgb(var(--qn-metric-rgb) / .13); color:rgb(var(--qn-metric-rgb)); font-size:1.35rem; box-shadow:inset 0 0 0 1px rgb(var(--qn-metric-rgb) / .08); }
.qn-metric-card-copy { position:relative; z-index:1; display:grid; gap:.2rem; min-width:0; }
.qn-metric-card-label { color:var(--secondary-foreground); font-size:.78rem; font-weight:650; line-height:1.25; }
.qn-metric-card-value { color:var(--foreground); font-size:1.72rem; font-weight:750; line-height:1.1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qn-metric-card-hint { color:var(--muted-foreground); font-size:.72rem; line-height:1.25; }
.qn-metric-card-watermark { position:absolute; inset-inline-end:-8px; inset-block-end:-14px; color:rgb(var(--qn-metric-rgb) / .055); font-size:4.7rem; transform:rotate(-8deg); pointer-events:none; }
.dark .qn-metric-card { background:linear-gradient(135deg,rgb(var(--qn-metric-rgb) / .15) 0%,rgb(var(--qn-metric-rgb) / .04) 52%,var(--card) 100%); }
@media (max-width:1199px){.qn-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:639px){.qn-metric-grid{grid-template-columns:minmax(0,1fr)}.qn-metric-card-content{min-height:94px}.qn-metric-card-watermark{font-size:4rem}}

/* V2-20A1 — Staffing Standards consumes only central page/card/modal primitives. */
.qn-staffing-layout { display: grid; grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.qn-staffing-version-list { display: grid; gap: .65rem; padding: .85rem; }
.qn-staffing-version-item { display: block; border: 1px solid var(--border); border-radius: .85rem; padding: 1rem; transition: background-color .15s ease, border-color .15s ease; }
.qn-staffing-version-item:hover { background: var(--accent); }
.qn-staffing-version-item.is-selected { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 6%, transparent); }
.qn-staffing-selected-card .kt-card-content { padding: 1.25rem; }
.qn-staffing-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.qn-staffing-form-grid .is-full { grid-column: 1 / -1; }
.qn-staffing-shift-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 1199px) { .qn-staffing-layout { grid-template-columns: 1fr; } }
@media (max-width: 639px) { .qn-staffing-form-grid, .qn-staffing-shift-grid { grid-template-columns: 1fr; } .qn-staffing-form-grid .is-full { grid-column: auto; } }

/* V2-20A3 — Staffing Standards empty state: one CTA lives in the page toolbar only. */
.qn-staffing-empty { min-height:230px; display:flex; align-items:center; justify-content:center; padding:2.25rem 1.5rem; text-align:center; border:1px dashed color-mix(in srgb,var(--primary) 24%,var(--border)); background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 4%,transparent),transparent); }
.qn-staffing-empty-icon { width:64px; height:64px; margin:0 auto 1rem; display:flex; align-items:center; justify-content:center; border-radius:20px; background:color-mix(in srgb,var(--primary) 10%,transparent); color:var(--primary); font-size:1.65rem; }
.qn-staffing-empty-title { font-size:1.08rem; font-weight:700; color:var(--foreground); }
.qn-staffing-empty-copy { max-width:620px; margin:.45rem auto 0; color:var(--secondary-foreground); font-size:.86rem; line-height:1.55; }

/* V2-20A4 Central Staffing Standards - Rule Builder */
.qn-staffing-rule-guide{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);border-radius:.8rem;background:color-mix(in srgb,var(--color-primary) 5%,var(--color-background));}
.qn-staffing-rule-guide-icon{display:flex;align-items:center;justify-content:center;flex:0 0 2.25rem;width:2.25rem;height:2.25rem;border-radius:.65rem;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);font-size:1.1rem;}
.qn-field-muted{opacity:.52;transition:opacity .18s ease;}
.qn-field-muted:focus-within{opacity:1;}


/* V2-20A6 — cumulative Standard Versions layout fix; preserves A3 KPI + A4 Rule Builder. */
.qn-staffing-layout { grid-template-columns: minmax(330px, 380px) minmax(0, 1fr); }
.qn-staffing-version-list { min-width: 0; overflow: hidden; }
.qn-staffing-version-item { width: 100%; min-width: 0; box-sizing: border-box; overflow: hidden; padding: .95rem 1rem; }
.qn-staffing-version-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .75rem; min-width: 0; }
.qn-staffing-version-copy { min-width: 0; }
.qn-staffing-version-name { min-width: 0; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.qn-staffing-version-code { margin-top: .3rem; color: var(--muted-foreground); font-size: .75rem; line-height: 1.35; overflow-wrap: anywhere; }
.qn-staffing-version-status { flex: 0 0 auto; white-space: nowrap; margin-top: .05rem; }
.qn-staffing-version-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .9rem; margin-top: .8rem; padding-top: .7rem; border-top: 1px dashed var(--border); color: var(--muted-foreground); font-size: .75rem; line-height: 1.4; }
.qn-staffing-version-meta > span { display: inline-flex; align-items: center; gap: .35rem; min-width: 0; }
.qn-staffing-version-meta i { color: var(--primary); font-size: .85rem; }
html[dir="rtl"] .qn-staffing-version-head, html[dir="rtl"] .qn-staffing-version-meta { direction: rtl; }
@media (max-width: 1199px) { .qn-staffing-layout { grid-template-columns: 1fr; } }
@media (max-width: 479px) { .qn-staffing-version-head { grid-template-columns: 1fr; } .qn-staffing-version-status { justify-self: start; } }

/* V2-20A7 Staffing Rule Taxonomy + responsive operational cards */
.qn-staffing-rules-grid{display:grid;gap:1rem;padding:1rem}.qn-staffing-rules-empty{min-height:8rem;display:flex;align-items:center;justify-content:center;gap:.65rem;color:var(--tw-gray-500);font-size:.9rem}.qn-staffing-rule-card{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(420px,2fr) auto;gap:1rem;align-items:center;border:1px solid var(--tw-gray-200);border-inline-start:3px solid var(--tw-primary);border-radius:.8rem;padding:1rem;background:var(--tw-light);box-shadow:0 2px 10px rgba(15,23,42,.035)}.qn-staffing-rule-card.is-inactive{opacity:.78;border-inline-start-color:var(--tw-danger)}.qn-staffing-rule-main{display:flex;gap:.75rem;align-items:flex-start;min-width:0}.qn-staffing-rule-icon{width:2.5rem;height:2.5rem;border-radius:.7rem;display:flex;align-items:center;justify-content:center;background:var(--tw-primary-light);color:var(--tw-primary);flex:0 0 auto}.qn-staffing-rule-title{font-weight:650;line-height:1.25}.qn-staffing-rule-scope{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;border-radius:.45rem;background:var(--tw-gray-100);font-size:.75rem;color:var(--tw-gray-600)}.qn-staffing-rule-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.qn-staffing-rule-facts>div{min-width:0;padding:.55rem .65rem;border-radius:.55rem;background:var(--tw-gray-50)}.qn-staffing-rule-facts span{display:block;font-size:.68rem;color:var(--tw-gray-500);margin-bottom:.18rem}.qn-staffing-rule-facts strong{display:block;font-size:.78rem;font-weight:600;overflow-wrap:anywhere}.qn-staffing-rule-actions{display:flex;gap:.4rem;justify-content:flex-end;flex-wrap:wrap}.dark .qn-staffing-rule-card{background:var(--tw-coal-500);border-color:var(--tw-coal-300)}.dark .qn-staffing-rule-facts>div,.dark .qn-staffing-rule-scope{background:var(--tw-coal-400)}@media(max-width:1200px){.qn-staffing-rule-card{grid-template-columns:1fr}.qn-staffing-rule-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.qn-staffing-rule-actions{justify-content:flex-start}}@media(max-width:700px){.qn-staffing-rules-grid{padding:.75rem}.qn-staffing-rule-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.qn-staffing-rule-facts>div:last-child{grid-column:1/-1}.qn-staffing-rule-actions .kt-btn{flex:1;justify-content:center}}

/* V2-20A7.1 — Staffing rule action alignment polish */
.qn-staffing-rule-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.5rem;
  flex-wrap:nowrap;
  align-self:center;
  white-space:nowrap;
}
.qn-staffing-rule-actions>form{
  display:flex;
  align-items:center;
  margin:0;
  padding:0;
}
.qn-staffing-rule-actions .kt-btn{
  min-height:2.25rem;
  height:2.25rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  line-height:1;
  margin:0;
  white-space:nowrap;
}
.qn-staffing-rule-actions .kt-btn i{
  line-height:1;
  flex:0 0 auto;
}
.qn-staffing-rule-facts strong{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
@media (min-width:1201px){
  .qn-staffing-rule-card{
    grid-template-columns:minmax(235px,1.2fr) minmax(500px,2.45fr) max-content;
  }
  .qn-staffing-rule-actions{
    min-width:max-content;
  }
}
@media (max-width:1200px){
  .qn-staffing-rule-actions{
    justify-content:flex-start;
  }
}
@media (max-width:700px){
  .qn-staffing-rule-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .qn-staffing-rule-actions>form{
    width:100%;
  }
  .qn-staffing-rule-actions .kt-btn,
  .qn-staffing-rule-actions>form .kt-btn{
    width:100%;
  }
}

/* V2-20A7.2 — compact Metronic Actions dropdown for staffing rules */
.qn-staffing-rule-actions{min-width:auto!important;overflow:visible;position:relative;z-index:3}
.qn-staffing-rule-actions .kt-menu{display:flex;justify-content:flex-end}
.qn-rule-actions-trigger{min-width:7rem;justify-content:center}
.qn-rule-actions-menu{z-index:110;min-width:12rem}
.qn-rule-actions-menu .kt-menu-link{border:0;background:transparent;text-align:start;font:inherit;color:inherit}
.qn-rule-actions-menu .qn-rule-toggle-form{display:block;margin:0;padding:0}
.qn-rule-actions-menu .qn-rule-action-danger{color:var(--tw-danger)}
.qn-rule-actions-menu .qn-rule-action-success{color:var(--tw-success)}
.qn-rule-actions-menu .qn-rule-action-danger .kt-menu-icon,.qn-rule-actions-menu .qn-rule-action-success .kt-menu-icon{color:inherit}
@media (min-width:1201px){.qn-staffing-rule-card{grid-template-columns:minmax(230px,1.2fr) minmax(0,2.45fr) auto}.qn-staffing-rule-facts{grid-template-columns:repeat(5,minmax(90px,1fr))}}
@media (max-width:700px){.qn-staffing-rule-actions{display:flex;width:auto}.qn-staffing-rule-actions .kt-menu,.qn-rule-actions-trigger{width:100%}.qn-rule-actions-trigger{justify-content:center}}

/* V2-20A7.3 — stable rule card grid + native Metronic KTDropdown */
.qn-staffing-rule-card{
  grid-template-columns:minmax(0,1fr) max-content !important;
  grid-template-areas:
    "identity actions"
    "facts facts";
  gap:.85rem 1rem !important;
  align-items:start !important;
}
.qn-staffing-rule-main{grid-area:identity;align-self:center}
.qn-staffing-rule-facts{
  grid-area:facts;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:.55rem !important;
  width:100%;
}
.qn-staffing-rule-facts>div{min-width:0}
.qn-staffing-rule-facts strong{
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
.qn-staffing-rule-actions{
  grid-area:actions;
  align-self:center !important;
  justify-self:end;
  display:flex !important;
  align-items:center;
  width:auto !important;
  min-width:0 !important;
  overflow:visible !important;
  z-index:8;
}
.qn-rule-actions-dropdown{position:relative;display:inline-flex;overflow:visible}
.qn-rule-actions-trigger{min-width:7rem;justify-content:center;white-space:nowrap}
.qn-rule-actions-menu{z-index:1200}
.qn-rule-actions-menu .kt-dropdown-menu-link{display:flex;align-items:center;gap:.6rem;text-align:start}
.qn-rule-actions-menu .qn-rule-toggle-form{display:block!important;width:100%;margin:0;padding:0}
.qn-rule-actions-menu .text-destructive{color:var(--color-destructive)}
.qn-rule-actions-menu .text-success{color:#16a34a}
html[dir="rtl"] .qn-staffing-rule-actions{justify-self:start}
@media (max-width:900px){
  .qn-staffing-rule-facts{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
  .qn-staffing-rule-facts>div:last-child{grid-column:auto !important}
}
@media (max-width:600px){
  .qn-staffing-rule-card{grid-template-columns:1fr !important;grid-template-areas:"identity" "facts" "actions"}
  .qn-staffing-rule-facts{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .qn-staffing-rule-actions,html[dir="rtl"] .qn-staffing-rule-actions{justify-self:stretch;width:100% !important}
  .qn-rule-actions-dropdown,.qn-rule-actions-trigger{width:100%}
}

/* V2-20B-R3-R2 — Staffing reconciliation mapping review polish. */
#reconciliation_modal .qn-global-form-modal {
  width: calc(100vw - 2rem);
  max-width: 760px;
  max-height: calc(100dvh - 2rem);
  margin-inline: auto;
  overflow: hidden;
}
#reconciliation_modal .qn-staffing-map-header { padding: 1.15rem 1.35rem; align-items: flex-start; }
.qn-staffing-map-heading { display:flex; align-items:flex-start; gap:.85rem; min-width:0; }
.qn-staffing-map-heading-icon { width:2.6rem; height:2.6rem; border-radius:.8rem; display:grid; place-items:center; flex:0 0 auto; background:color-mix(in srgb, var(--primary) 10%, transparent); color:var(--primary); font-size:1.15rem; }
.qn-staffing-map-eyebrow,.qn-staffing-map-section-kicker { color:var(--primary); font-size:.68rem; line-height:1; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.qn-staffing-map-subtitle { margin-top:.3rem; color:var(--muted-foreground); font-size:.78rem; }
.qn-staffing-map-body { max-height:calc(100dvh - 12rem); overflow-y:auto; overscroll-behavior:contain; padding:1rem 1.25rem 1.25rem; background:color-mix(in srgb, var(--muted) 30%, transparent); display:grid; gap:1rem; }
.qn-staffing-map-unit-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.8rem; align-items:center; padding:.9rem 1rem; border:1px solid var(--border); border-radius:.8rem; background:var(--background); box-shadow:0 1px 2px rgb(0 0 0 / .03); }
.qn-staffing-map-unit-icon,.qn-staffing-map-section-icon { width:2.25rem; height:2.25rem; border-radius:.65rem; display:grid; place-items:center; background:color-mix(in srgb, var(--primary) 9%, transparent); color:var(--primary); flex:0 0 auto; }
.qn-staffing-map-unit-copy { min-width:0; display:grid; gap:.12rem; }
.qn-staffing-map-unit-copy span,.qn-staffing-map-actual span { color:var(--muted-foreground); font-size:.67rem; font-weight:650; text-transform:uppercase; letter-spacing:.045em; }
.qn-staffing-map-unit-copy strong { font-size:.92rem; overflow-wrap:anywhere; }
.qn-staffing-map-actual { min-width:135px; padding-inline-start:1rem; border-inline-start:1px solid var(--border); display:grid; gap:.12rem; }
.qn-staffing-map-actual strong { color:var(--primary); font-size:1.35rem; line-height:1.1; }
.qn-staffing-map-section { border:1px solid var(--border); border-radius:.85rem; background:var(--background); padding:1rem; box-shadow:0 1px 2px rgb(0 0 0 / .025); }
.qn-staffing-map-section-head { display:flex; align-items:flex-start; gap:.75rem; padding-bottom:.85rem; margin-bottom:.85rem; border-bottom:1px solid var(--border); }
.qn-staffing-map-section-head.compact { margin-bottom:.75rem; }
.qn-staffing-map-section-head h4 { margin:.2rem 0 0; font-size:.9rem; font-weight:700; color:var(--foreground); }
.qn-staffing-map-section-head p { margin:.2rem 0 0; color:var(--muted-foreground); font-size:.75rem; }
.qn-staffing-map-section-icon.is-suggestion { background:color-mix(in srgb, var(--info) 10%, transparent); color:var(--info); }
.qn-staffing-map-suggestion-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.1rem .1rem 0; }
.qn-staffing-map-suggestion-row strong { display:block; font-size:.88rem; }
.qn-staffing-map-suggestion-row p { margin:.2rem 0 0; color:var(--muted-foreground); font-size:.72rem; }
.qn-staffing-map-field { display:grid; gap:.4rem; }
.qn-staffing-map-field .kt-form-label { margin:0; font-size:.76rem; font-weight:650; }
.qn-staffing-map-search { width:100%; min-height:2.6rem; background:color-mix(in srgb, var(--muted) 35%, transparent); }
.qn-staffing-map-search > i { color:var(--muted-foreground); }
.qn-staffing-map-search input { min-width:0; }
.qn-staffing-map-search-count { flex:0 0 auto; padding-inline-start:.7rem; border-inline-start:1px solid var(--border); color:var(--muted-foreground); font-size:.7rem; white-space:nowrap; }
.qn-staffing-map-rule-preview { margin-top:.85rem; border:1px solid color-mix(in srgb, var(--primary) 22%, var(--border)); border-radius:.7rem; background:color-mix(in srgb, var(--primary) 3%, var(--background)); overflow:hidden; }
.qn-staffing-map-rule-title { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; padding:.75rem .85rem; border-bottom:1px solid var(--border); }
.qn-staffing-map-rule-title > div { display:grid; gap:.1rem; min-width:0; }
.qn-staffing-map-rule-title > div > span { color:var(--primary); font-size:.62rem; font-weight:700; letter-spacing:.07em; }
.qn-staffing-map-rule-title strong { font-size:.84rem; }
.qn-staffing-map-rule-title small { color:var(--muted-foreground); font-size:.68rem; }
.qn-staffing-map-rule-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.qn-staffing-map-rule-metrics > div { padding:.65rem .8rem; display:grid; gap:.15rem; }
.qn-staffing-map-rule-metrics > div + div { border-inline-start:1px solid var(--border); }
.qn-staffing-map-rule-metrics span { color:var(--muted-foreground); font-size:.66rem; }
.qn-staffing-map-rule-metrics strong { font-size:.84rem; }
.qn-staffing-map-empty-state,.qn-staffing-map-fixed-note { display:flex; align-items:flex-start; gap:.65rem; padding:.8rem .9rem; border:1px dashed var(--border); border-radius:.7rem; background:color-mix(in srgb, var(--muted) 30%, transparent); color:var(--muted-foreground); font-size:.75rem; }
.qn-staffing-map-fixed-note { border-style:solid; border-color:color-mix(in srgb, var(--success) 25%, var(--border)); background:color-mix(in srgb, var(--success) 5%, var(--background)); }
.qn-staffing-map-fixed-note i { color:var(--success); font-size:1rem; }
.qn-staffing-map-fixed-note div { display:grid; gap:.15rem; }
.qn-staffing-map-fixed-note strong { color:var(--foreground); }
.qn-staffing-map-help { color:var(--muted-foreground); font-size:.7rem; }
.qn-staffing-map-record-grid { display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:.8rem; }
.qn-staffing-map-footer { justify-content:space-between; gap:1rem; padding:.85rem 1.25rem; }
.qn-staffing-map-footer-note { display:flex; align-items:center; gap:.45rem; color:var(--muted-foreground); font-size:.68rem; max-width:310px; }
.qn-staffing-map-footer-note i { color:var(--success); }
@media (max-width:767px){
  #reconciliation_modal .qn-global-form-modal { width:calc(100vw - 1rem); max-width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); }
  .qn-staffing-map-body { padding:.75rem; }
  .qn-staffing-map-unit-card { grid-template-columns:auto minmax(0,1fr); }
  .qn-staffing-map-actual { grid-column:1 / -1; border-inline-start:0; border-top:1px solid var(--border); padding:.65rem 0 0; }
  .qn-staffing-map-suggestion-row,.qn-staffing-map-footer { align-items:stretch; flex-direction:column; }
  .qn-staffing-map-rule-metrics,.qn-staffing-map-record-grid { grid-template-columns:1fr; }
  .qn-staffing-map-rule-metrics > div + div { border-inline-start:0; border-top:1px solid var(--border); }
  .qn-staffing-map-footer-note { max-width:none; }
  .qn-staffing-map-footer > .flex { width:100%; }
  .qn-staffing-map-footer > .flex .kt-btn { flex:1; }
}
/* V2-20B-R4: keep system suggestion aligned with the platform primary icon language. */
.qn-staffing-map-section-icon.is-suggestion { background:color-mix(in srgb, var(--primary) 9%, transparent); color:var(--primary); }
.qn-staffing-map-section-icon.is-suggestion i { color:var(--primary) !important; }

/* V2-20C1 Hospital Monthly Operational Inputs */
.qn-monthly-shell{display:grid;gap:1.25rem}.qn-monthly-filters{padding:1.25rem}.qn-monthly-kpis{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:1rem}.qn-monthly-kpi{border:1px solid var(--border);border-radius:.85rem;background:var(--card);padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;box-shadow:0 1px 2px rgb(0 0 0/.03)}.qn-monthly-kpi>span{font-size:.78rem;color:var(--muted-foreground);font-weight:600}.qn-monthly-kpi>strong{font-size:1.65rem;line-height:1.1}.qn-monthly-kpi>small{color:var(--muted-foreground)}.qn-monthly-progress{width:100%;height:7px;border:0;border-radius:99px;overflow:hidden;margin:.15rem 0;background:var(--muted)}.qn-monthly-progress::-webkit-progress-bar{background:var(--muted)}.qn-monthly-progress::-webkit-progress-value{background:var(--primary);border-radius:99px}.qn-monthly-progress::-moz-progress-bar{background:var(--primary);border-radius:99px}.qn-monthly-table td{vertical-align:middle}.qn-monthly-table td:first-child strong,.qn-monthly-table td:first-child small,.qn-monthly-table td:nth-child(4) small{display:block}.qn-monthly-table td:first-child small,.qn-monthly-table td:nth-child(4) small{color:var(--muted-foreground);margin-top:.2rem}.qn-monthly-modal{width:min(720px,calc(100vw - 2rem))}.qn-monthly-period{display:flex;align-items:center;gap:.8rem;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));background:color-mix(in srgb,var(--primary) 5%,var(--card));padding:.9rem 1rem;border-radius:.75rem}.qn-monthly-period>i{font-size:1.35rem;color:var(--primary)}.qn-monthly-period span,.qn-monthly-period strong{display:block}.qn-monthly-period span{font-size:.68rem;letter-spacing:.08em;color:var(--muted-foreground);font-weight:700}.qn-monthly-calc{margin-top:1rem;border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--border));border-radius:.75rem;padding:.9rem 1rem;display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem}.qn-monthly-calc span{font-weight:600}.qn-monthly-calc strong{grid-row:1/3;grid-column:2;font-size:1.5rem;color:var(--primary);align-self:center}.qn-monthly-calc small{color:var(--muted-foreground)}@media(max-width:900px){.qn-monthly-kpis{grid-template-columns:1fr 1fr}}@media(max-width:600px){.qn-monthly-kpis{grid-template-columns:1fr}.qn-monthly-table{min-width:850px}}

/* V2-20C1-R1 — Monthly Operational Inputs / Metronic professional polish */
.qn-monthly-page{display:grid;gap:1.25rem}.qn-monthly-hero .qn-page-toolbar-content{align-items:center}.qn-monthly-hero-side{margin-inline-start:auto;display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.qn-monthly-scope-badge,.qn-monthly-period-badge{display:inline-flex;align-items:center;gap:.45rem;border-radius:.6rem;padding:.55rem .75rem;font-size:.72rem;font-weight:700;letter-spacing:.035em;white-space:nowrap}.qn-monthly-scope-badge{color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--card));border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border))}.qn-monthly-period-badge{color:var(--foreground);background:var(--card);border:1px solid var(--border);box-shadow:0 1px 2px rgb(0 0 0/.03)}.qn-monthly-scope-badge i,.qn-monthly-period-badge i{font-size:1rem}.qn-monthly-scope-card,.qn-monthly-data-card{overflow:hidden}.qn-monthly-section-head,.qn-monthly-data-head{display:flex;align-items:center;gap:.9rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--border);background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 3%,var(--card)),var(--card) 42%)}.qn-monthly-section-icon{width:2.65rem;height:2.65rem;flex:0 0 2.65rem;border-radius:.72rem;display:grid;place-items:center;color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--card));border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border))}.qn-monthly-section-icon i{font-size:1.25rem}.qn-monthly-section-kicker{font-size:.67rem;line-height:1;text-transform:uppercase;letter-spacing:.09em;color:var(--primary);font-weight:800;margin-bottom:.32rem}.qn-monthly-section-head h2,.qn-monthly-data-head h2{font-size:1rem;font-weight:700;color:var(--foreground);line-height:1.3}.qn-monthly-section-head p,.qn-monthly-data-head p{font-size:.77rem;color:var(--muted-foreground);margin-top:.18rem}.qn-monthly-filter-body{padding:1.15rem 1.25rem 1.25rem}.qn-monthly-filter-grid{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(230px,.9fr) auto;gap:1rem;align-items:end}.qn-monthly-field{display:grid;gap:.45rem}.qn-monthly-field .kt-form-label{display:flex;align-items:center;gap:.4rem;font-weight:650}.qn-monthly-field .kt-form-label i{color:var(--primary)}.qn-monthly-field-hint{font-size:.7rem;color:var(--muted-foreground)}.qn-monthly-filter-action{padding-bottom:1.35rem}.qn-monthly-filter-action .kt-btn{min-width:135px;justify-content:center}.qn-monthly-kpi-grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:1rem}.qn-monthly-summary-card{position:relative;min-height:142px;border:1px solid var(--border);border-radius:.85rem;background:var(--card);padding:1.05rem 1.1rem;box-shadow:0 2px 8px rgb(0 0 0/.035);overflow:hidden}.qn-monthly-summary-card::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:var(--muted-foreground);opacity:.55}.qn-monthly-summary-card.is-primary::before{background:var(--primary);opacity:1}.qn-monthly-summary-card.is-success::before{background:var(--success);opacity:1}.qn-monthly-summary-card.is-warning::before{background:var(--warning);opacity:1}.qn-monthly-summary-card.is-danger::before{background:var(--destructive);opacity:1}.qn-monthly-kpi-top{display:flex;align-items:center;gap:.6rem}.qn-monthly-kpi-icon{width:2rem;height:2rem;border-radius:.55rem;display:grid;place-items:center;background:var(--muted);color:var(--muted-foreground)}.is-primary .qn-monthly-kpi-icon{color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--card))}.is-success .qn-monthly-kpi-icon{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--card))}.is-warning .qn-monthly-kpi-icon{color:var(--warning);background:color-mix(in srgb,var(--warning) 11%,var(--card))}.is-danger .qn-monthly-kpi-icon{color:var(--destructive);background:color-mix(in srgb,var(--destructive) 9%,var(--card))}.qn-monthly-kpi-label{font-size:.68rem;letter-spacing:.055em;font-weight:750;color:var(--muted-foreground)}.qn-monthly-kpi-value{font-size:1.85rem;line-height:1;font-weight:750;margin-top:.9rem;color:var(--foreground)}.qn-monthly-kpi-value span{font-size:1rem;margin-inline-start:.12rem;color:var(--muted-foreground)}.qn-monthly-progress-track{height:6px;border-radius:999px;background:var(--muted);margin-top:.8rem;overflow:hidden}.qn-monthly-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.qn-monthly-kpi-foot{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:.75rem;font-size:.7rem;color:var(--muted-foreground)}.qn-monthly-kpi-foot strong{color:var(--foreground)}.qn-monthly-data-head{justify-content:space-between}.qn-monthly-data-title-wrap{display:flex;align-items:center;gap:.9rem}.qn-monthly-legend{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.qn-monthly-legend span{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;color:var(--muted-foreground);font-weight:600}.qn-monthly-legend i{width:.48rem;height:.48rem;border-radius:999px;background:var(--muted-foreground)}.qn-monthly-legend i.is-completed{background:var(--success)}.qn-monthly-legend i.is-pending{background:var(--warning)}.qn-monthly-legend i.is-issue{background:var(--destructive)}.qn-monthly-table-wrap{overflow:auto}.qn-monthly-table-pro{min-width:1050px}.qn-monthly-table-pro thead th{font-size:.67rem;text-transform:uppercase;letter-spacing:.035em;color:var(--muted-foreground);font-weight:750;background:color-mix(in srgb,var(--muted) 45%,var(--card));padding:.8rem 1rem;border-bottom:1px solid var(--border)}.qn-monthly-table-pro tbody td{padding:.82rem 1rem;vertical-align:middle;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.qn-monthly-table-pro tbody tr:last-child td{border-bottom:0}.qn-monthly-table-pro tbody tr{transition:background .16s ease}.qn-monthly-table-pro tbody tr:hover{background:color-mix(in srgb,var(--primary) 2.5%,var(--card))}.qn-monthly-table-pro tbody tr.has-data-issue{background:color-mix(in srgb,var(--destructive) 1.5%,var(--card))}.qn-monthly-unit-cell{display:flex;align-items:center;gap:.7rem;min-width:180px}.qn-monthly-unit-icon{width:2rem;height:2rem;flex:0 0 2rem;border-radius:.55rem;display:grid;place-items:center;background:var(--muted);color:var(--muted-foreground)}.qn-monthly-unit-cell strong,.qn-monthly-rule-cell strong,.qn-monthly-input-value strong{display:block;font-size:.78rem;font-weight:700;color:var(--foreground)}.qn-monthly-unit-cell small,.qn-monthly-rule-cell small,.qn-monthly-input-value small{display:block;font-size:.66rem;color:var(--muted-foreground);margin-top:.15rem}.qn-monthly-unmapped{display:inline-flex;align-items:center;gap:.35rem;color:var(--destructive);font-size:.72rem;font-weight:650}.qn-monthly-basis{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);border-radius:.5rem;background:var(--muted);padding:.35rem .5rem;font-size:.68rem;font-weight:650;color:var(--foreground)}.qn-monthly-basis i{color:var(--primary)}.qn-monthly-dash{color:var(--muted-foreground)}.qn-monthly-status{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.35rem .55rem;font-size:.67rem;font-weight:700;border:1px solid}.qn-monthly-status.is-completed{color:var(--success);border-color:color-mix(in srgb,var(--success) 28%,var(--border));background:color-mix(in srgb,var(--success) 8%,var(--card))}.qn-monthly-status.is-pending{color:color-mix(in srgb,var(--warning) 85%,black);border-color:color-mix(in srgb,var(--warning) 32%,var(--border));background:color-mix(in srgb,var(--warning) 9%,var(--card))}.dark .qn-monthly-status.is-pending{color:var(--warning)}.qn-monthly-status.is-issue{color:var(--destructive);border-color:color-mix(in srgb,var(--destructive) 25%,var(--border));background:color-mix(in srgb,var(--destructive) 7%,var(--card))}.qn-monthly-status.is-neutral{color:var(--muted-foreground);border-color:var(--border);background:var(--muted)}.qn-monthly-edit-btn{white-space:nowrap}.qn-monthly-action-hint{font-size:.67rem;color:var(--muted-foreground);font-style:italic}.qn-monthly-table-footer{display:flex;align-items:flex-start;gap:.5rem;padding:.8rem 1rem;border-top:1px solid var(--border);background:color-mix(in srgb,var(--muted) 35%,var(--card));font-size:.7rem;color:var(--muted-foreground)}.qn-monthly-table-footer i{color:var(--primary);font-size:.9rem;margin-top:.05rem}.qn-monthly-modal{width:min(720px,calc(100vw - 2rem))}.qn-monthly-period{display:flex;align-items:center;gap:.8rem;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));background:color-mix(in srgb,var(--primary) 5%,var(--card));padding:.9rem 1rem;border-radius:.75rem}.qn-monthly-period>i{font-size:1.35rem;color:var(--primary)}.qn-monthly-period span,.qn-monthly-period strong{display:block}.qn-monthly-period span{font-size:.68rem;letter-spacing:.08em;color:var(--muted-foreground);font-weight:700}.qn-monthly-calc{margin-top:1rem;border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--border));border-radius:.75rem;padding:.9rem 1rem;display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem}.qn-monthly-calc span{font-weight:600}.qn-monthly-calc strong{grid-row:1/3;grid-column:2;font-size:1.5rem;color:var(--primary);align-self:center}.qn-monthly-calc small{color:var(--muted-foreground)}
@media(max-width:1100px){.qn-monthly-kpi-grid{grid-template-columns:1fr 1fr}.qn-monthly-filter-grid{grid-template-columns:1fr 1fr}.qn-monthly-filter-action{grid-column:1/-1;padding-bottom:0}.qn-monthly-filter-action .kt-btn{width:100%}.qn-monthly-data-head{align-items:flex-start;gap:1rem;flex-direction:column}}
@media(max-width:700px){.qn-monthly-hero .qn-page-toolbar-content{align-items:flex-start;flex-direction:column}.qn-monthly-hero-side{margin-inline-start:0;justify-content:flex-start}.qn-monthly-filter-grid,.qn-monthly-kpi-grid{grid-template-columns:1fr}.qn-monthly-section-head,.qn-monthly-data-head{padding:1rem}.qn-monthly-filter-body{padding:1rem}.qn-monthly-legend{display:none}}

/* V2-20C2 — Monthly Operational Inputs workflow polish */
.qn-monthly-month-state{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .68rem;border-radius:.6rem;font-size:.68rem;font-weight:800;letter-spacing:.055em;border:1px solid}.qn-monthly-month-state.is-open{color:var(--success);background:color-mix(in srgb,var(--success) 9%,var(--card));border-color:color-mix(in srgb,var(--success) 24%,var(--border))}
.qn-monthly-summary-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;background:linear-gradient(135deg,color-mix(in srgb,var(--qn-kpi-color,var(--primary)) 7%,var(--card)),var(--card) 62%)}.qn-monthly-summary-card.is-primary{--qn-kpi-color:var(--primary)}.qn-monthly-summary-card.is-success{--qn-kpi-color:var(--success)}.qn-monthly-summary-card.is-warning{--qn-kpi-color:var(--warning)}.qn-monthly-summary-card.is-danger{--qn-kpi-color:var(--destructive)}.qn-monthly-summary-card.is-filter-card{cursor:pointer}.qn-monthly-summary-card.is-filter-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgb(0 0 0/.07);border-color:color-mix(in srgb,var(--qn-kpi-color) 30%,var(--border))}.qn-monthly-summary-card.is-selected{box-shadow:0 0 0 2px color-mix(in srgb,var(--qn-kpi-color) 18%,transparent),0 8px 22px rgb(0 0 0/.06);border-color:color-mix(in srgb,var(--qn-kpi-color) 42%,var(--border))}.qn-monthly-summary-card.is-success .qn-monthly-kpi-value{color:var(--success)}.qn-monthly-summary-card.is-warning .qn-monthly-kpi-value{color:color-mix(in srgb,var(--warning) 88%,#5b4300)}.dark .qn-monthly-summary-card.is-warning .qn-monthly-kpi-value{color:var(--warning)}.qn-monthly-summary-card.is-danger .qn-monthly-kpi-value{color:var(--destructive)}
.qn-monthly-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--muted) 18%,var(--card))}.qn-monthly-search{position:relative;min-width:280px;max-width:390px;flex:1}.qn-monthly-search i{position:absolute;inset-inline-start:.75rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground);z-index:1}.qn-monthly-search .kt-input{padding-inline-start:2.25rem;background:var(--card)}.qn-monthly-status-filter{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.qn-monthly-status-filter .kt-btn{border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);gap:.35rem}.qn-monthly-status-filter .kt-btn span{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:var(--muted);font-size:.62rem}.qn-monthly-status-filter .kt-btn.is-active{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 32%,var(--border));background:color-mix(in srgb,var(--primary) 7%,var(--card));box-shadow:0 1px 3px rgb(0 0 0/.04)}.qn-monthly-review-btn{white-space:nowrap;color:var(--destructive);border-color:color-mix(in srgb,var(--destructive) 25%,var(--border));background:color-mix(in srgb,var(--destructive) 3%,var(--card))}.qn-monthly-review-btn:hover{background:color-mix(in srgb,var(--destructive) 8%,var(--card));border-color:color-mix(in srgb,var(--destructive) 38%,var(--border))}.qn-monthly-no-results{padding:3rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.35rem;color:var(--muted-foreground)}.qn-monthly-no-results[hidden]{display:none}.qn-monthly-no-results i{font-size:2rem;color:var(--primary);margin-bottom:.25rem}.qn-monthly-no-results strong{color:var(--foreground)}.qn-monthly-no-results span{font-size:.75rem}
@media(max-width:1100px){.qn-monthly-table-toolbar{align-items:stretch;flex-direction:column}.qn-monthly-search{max-width:none;width:100%}.qn-monthly-status-filter{justify-content:flex-start}}
@media(max-width:640px){.qn-monthly-status-filter{display:grid;grid-template-columns:1fr 1fr}.qn-monthly-status-filter .kt-btn{justify-content:center}.qn-monthly-hero-side{justify-content:flex-start;margin-inline-start:0}}
/* V2-20C3 — Staffing applicability & monthly submission control */
.qn-monthly-workflow-card{display:grid;grid-template-columns:minmax(300px,1.2fr) minmax(360px,1.5fr) auto;align-items:center;gap:1rem;padding:1rem 1.1rem;border-color:color-mix(in srgb,var(--primary) 14%,var(--border))}.qn-monthly-workflow-copy{display:flex;align-items:center;gap:.8rem}.qn-monthly-workflow-copy h2{font-size:.95rem;font-weight:700}.qn-monthly-workflow-copy p{font-size:.7rem;color:var(--muted-foreground);margin-top:.18rem}.qn-monthly-workflow-steps{display:flex;align-items:center;gap:.35rem;justify-content:center;flex-wrap:wrap}.qn-monthly-workflow-steps span{display:inline-flex;align-items:center;gap:.3rem;padding:.38rem .55rem;border-radius:999px;border:1px solid var(--border);font-size:.66rem;font-weight:700;color:var(--muted-foreground);background:var(--muted)}.qn-monthly-workflow-steps span.is-done{color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--card));border-color:color-mix(in srgb,var(--success) 25%,var(--border))}.qn-monthly-workflow-steps span.is-current{color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--card));border-color:color-mix(in srgb,var(--primary) 30%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 7%,transparent)}.qn-monthly-workflow-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.qn-monthly-month-state{display:inline-flex;align-items:center;gap:.4rem;border-radius:.6rem;padding:.55rem .7rem;font-size:.7rem;font-weight:800;border:1px solid var(--border)}.qn-monthly-month-state.is-open{color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--card))}.qn-monthly-month-state.is-submitted{color:var(--warning);background:color-mix(in srgb,var(--warning) 9%,var(--card))}.qn-monthly-month-state.is-approved{color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--card))}.qn-monthly-month-state.is-locked{color:var(--muted-foreground);background:var(--muted)}.qn-monthly-row-actions{display:flex;justify-content:flex-end;gap:.35rem;align-items:center}.qn-monthly-action-hint{display:inline-flex;align-items:center;gap:.3rem}.qn-global-confirm-modal{width:min(520px,calc(100vw - 2rem))}@media(max-width:1100px){.qn-monthly-workflow-card{grid-template-columns:1fr}.qn-monthly-workflow-steps{justify-content:flex-start}.qn-monthly-workflow-actions{justify-content:flex-start}}
/* V2-20D Staffing Need & Gap */
.qn-gap-page{display:grid;gap:1.25rem;padding-bottom:2rem}.qn-gap-hero{display:flex;align-items:center;gap:1rem;padding:1.4rem 1.5rem;border:1px solid var(--border);border-inline-start:4px solid var(--primary);border-radius:.8rem;background:linear-gradient(110deg,var(--card) 55%,color-mix(in srgb,var(--primary) 7%,var(--card)))}.qn-gap-hero-icon{width:46px;height:46px;border-radius:.75rem;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary);font-size:1.35rem}.qn-gap-hero h1{font-size:1.55rem;font-weight:700;margin:.15rem 0}.qn-gap-hero p,.qn-gap-table-card .kt-card-header p{color:var(--muted-foreground);font-size:.82rem}.qn-gap-eyebrow{display:block;color:var(--primary);font-size:.68rem;font-weight:700;letter-spacing:.08em}.qn-gap-hero-badges{margin-inline-start:auto;display:flex;gap:.6rem;align-items:center}.qn-gap-scope .kt-card-header{padding-block:1rem}.qn-gap-scope h3,.qn-gap-table-card h3{font-weight:700}.qn-gap-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.qn-gap-kpi{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:.8rem;padding:1.15rem 1.1rem;background:var(--card)}.qn-gap-kpi:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:currentColor}.qn-gap-kpi span{display:block;font-size:.67rem;font-weight:700;letter-spacing:.06em;color:var(--muted-foreground)}.qn-gap-kpi strong{display:block;font-size:1.7rem;line-height:1.2;margin:.35rem 0;color:var(--foreground)}.qn-gap-kpi small{color:var(--muted-foreground)}.qn-gap-kpi.is-blue{color:#3478f6;background:color-mix(in srgb,#3478f6 4%,var(--card))}.qn-gap-kpi.is-violet{color:#7950f2;background:color-mix(in srgb,#7950f2 4%,var(--card))}.qn-gap-kpi.is-cyan{color:#0ca6b8;background:color-mix(in srgb,#0ca6b8 4%,var(--card))}.qn-gap-kpi.is-red{color:#e03131;background:color-mix(in srgb,#e03131 5%,var(--card))}.qn-gap-kpi.is-green{color:#2b8a3e;background:color-mix(in srgb,#2b8a3e 5%,var(--card))}.qn-gap-table-card .kt-card-header{align-items:center}.qn-gap-summary{display:flex;gap:.5rem;flex-wrap:wrap}.qn-gap-summary span{padding:.3rem .55rem;border:1px solid var(--border);border-radius:999px;font-size:.72rem}.qn-gap-summary .is-short{color:#e03131}.qn-gap-summary .is-ok{color:#2b8a3e}.qn-gap-summary .is-surplus{color:#1971c2}.qn-gap-toolbar{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.qn-gap-toolbar>.kt-input{max-width:340px;flex:1}.qn-gap-filter{display:flex;gap:.35rem;flex-wrap:wrap}.qn-gap-filter button{border:1px solid var(--border);border-radius:.45rem;padding:.35rem .6rem;font-size:.75rem}.qn-gap-filter button.active{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--primary)}.qn-gap-filter b{font-weight:600;color:var(--muted-foreground);margin-inline-start:.25rem}.qn-gap-table td{vertical-align:middle}.qn-gap-table td:first-child strong,.qn-gap-table td:nth-child(2) strong{display:block}.qn-gap-table td small{display:block;color:var(--muted-foreground);margin-top:.15rem}.qn-gap-var{font-weight:700}.qn-gap-var.neg{color:#e03131}.qn-gap-var.pos{color:#1971c2}.qn-gap-var.zero{color:#2b8a3e}.qn-gap-status{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.3rem .55rem;font-size:.72rem;font-weight:600}.qn-gap-status.shortage{color:#c92a2a;background:color-mix(in srgb,#e03131 9%,transparent);border:1px solid color-mix(in srgb,#e03131 30%,transparent)}.qn-gap-status.surplus{color:#1864ab;background:color-mix(in srgb,#1971c2 9%,transparent);border:1px solid color-mix(in srgb,#1971c2 30%,transparent)}.qn-gap-status.compliant{color:#2b8a3e;background:color-mix(in srgb,#2b8a3e 9%,transparent);border:1px solid color-mix(in srgb,#2b8a3e 30%,transparent)}.qn-gap-status.issue{color:#c92a2a;background:color-mix(in srgb,#e03131 7%,transparent);border:1px solid color-mix(in srgb,#e03131 25%,transparent)}@media(max-width:1024px){.qn-gap-kpis{grid-template-columns:repeat(2,1fr)}.qn-gap-toolbar{flex-direction:column}.qn-gap-hero{align-items:flex-start}.qn-gap-hero-badges{margin-inline-start:0}}@media(max-width:640px){.qn-gap-kpis{grid-template-columns:1fr}.qn-gap-hero{flex-wrap:wrap}.qn-gap-hero-badges{width:100%}}
.qn-monthly-na-btn{border-color:color-mix(in srgb,var(--muted-foreground) 35%,var(--border));color:var(--foreground);background:var(--card)}.qn-monthly-na-btn:hover{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,var(--card))}

/* V2-20D-R1 — Staffing regression lock: stronger rule cards + professional search/filter shell */
.qn-staffing-rules-grid{background:linear-gradient(180deg,var(--tw-gray-50),transparent 180px);padding:1.15rem!important}
.qn-staffing-rule-card{background:var(--tw-light)!important;border:1px solid var(--tw-gray-300)!important;border-inline-start:4px solid var(--tw-primary)!important;border-radius:.95rem!important;padding:1.05rem 1.1rem!important;box-shadow:0 4px 16px rgba(15,23,42,.055)!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.qn-staffing-rule-card:hover{border-color:color-mix(in srgb,var(--tw-primary) 34%,var(--tw-gray-300))!important;box-shadow:0 8px 24px rgba(15,23,42,.085)!important;transform:translateY(-1px)}
.qn-staffing-rule-card+.qn-staffing-rule-card{margin-top:.1rem}
.qn-staffing-rule-facts>div{border:1px solid var(--tw-gray-200);background:var(--tw-gray-50)!important;min-height:3.7rem;display:flex;flex-direction:column;justify-content:center}
.qn-staffing-rule-title{font-size:.95rem;font-weight:700}.qn-staffing-rule-icon{border:1px solid color-mix(in srgb,var(--tw-primary) 22%,transparent)}
.dark .qn-staffing-rules-grid{background:linear-gradient(180deg,var(--tw-coal-600),transparent 180px)}
.dark .qn-staffing-rule-card{background:var(--tw-coal-500)!important;border-color:var(--tw-coal-300)!important}.dark .qn-staffing-rule-facts>div{background:var(--tw-coal-400)!important;border-color:var(--tw-coal-300)}

.qn-gap-toolbar{display:grid!important;grid-template-columns:minmax(280px,.9fr) minmax(0,1.8fr);gap:1rem!important;align-items:center;padding:1rem 1.1rem!important;background:var(--tw-gray-50);border-bottom:1px solid var(--tw-gray-200)}
.qn-gap-toolbar>.kt-input{height:42px;background:var(--tw-light);border-color:var(--tw-gray-300);box-shadow:0 1px 2px rgba(15,23,42,.03)}
.qn-gap-toolbar>.kt-input:focus-within{border-color:var(--tw-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--tw-primary) 12%,transparent)}
.qn-gap-filter{display:flex!important;justify-content:flex-end;gap:.45rem!important;flex-wrap:wrap}.qn-gap-filter button{min-height:38px;padding:.45rem .72rem!important;border:1px solid var(--tw-gray-300)!important;border-radius:.65rem!important;background:var(--tw-light)!important;font-weight:500;transition:.15s ease}.qn-gap-filter button:hover{border-color:var(--tw-primary)!important;color:var(--tw-primary)}.qn-gap-filter button.active{background:var(--tw-primary-light)!important;border-color:color-mix(in srgb,var(--tw-primary) 42%,transparent)!important;color:var(--tw-primary)!important;box-shadow:0 2px 8px color-mix(in srgb,var(--tw-primary) 10%,transparent)}.qn-gap-filter button b{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;height:1.35rem;margin-inline-start:.25rem;border-radius:999px;background:var(--tw-gray-100);font-size:.68rem}.qn-gap-filter button.active b{background:var(--tw-light)}
.dark .qn-gap-toolbar{background:var(--tw-coal-600);border-color:var(--tw-coal-300)}.dark .qn-gap-toolbar>.kt-input,.dark .qn-gap-filter button{background:var(--tw-coal-500)!important;border-color:var(--tw-coal-300)!important}
@media(max-width:1050px){.qn-gap-toolbar{grid-template-columns:1fr}.qn-gap-filter{justify-content:flex-start}}
/* V2-20B-R1 — Central Staffing Standards / professional stacked rule cards */
.qn-data-card:has(.qn-staffing-rules-grid){
  border:1px solid color-mix(in srgb,var(--border) 88%,var(--primary) 12%);
  background:color-mix(in srgb,var(--background) 97%,var(--primary) 3%);
  box-shadow:0 8px 28px rgba(15,23,42,.045);
  overflow:visible;
}
.qn-data-card:has(.qn-staffing-rules-grid) > .qn-section-header{
  border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--background) 96%,var(--primary) 4%);
}
.qn-staffing-rules-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
  padding:1.15rem;
  background:color-mix(in srgb,var(--muted) 28%,transparent);
}
.qn-staffing-rule-card{
  position:relative;
  border:1px solid color-mix(in srgb,var(--border) 84%,var(--foreground) 16%) !important;
  border-inline-start:4px solid var(--primary) !important;
  border-radius:1rem !important;
  padding:1.05rem 1.15rem !important;
  background:var(--background) !important;
  box-shadow:0 4px 14px rgba(15,23,42,.055) !important;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.qn-staffing-rule-card:hover{
  border-color:color-mix(in srgb,var(--primary) 38%,var(--border)) !important;
  box-shadow:0 9px 24px rgba(15,23,42,.085) !important;
  transform:translateY(-1px);
}
.qn-staffing-rule-card.is-inactive{
  opacity:.82;
  border-inline-start-color:var(--destructive) !important;
}
.qn-staffing-rule-main{
  padding-bottom:.9rem;
  border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent);
}
.qn-staffing-rule-icon{
  width:2.65rem;
  height:2.65rem;
  border:1px solid color-mix(in srgb,var(--primary) 18%,transparent);
  border-radius:.8rem;
  background:color-mix(in srgb,var(--primary) 9%,var(--background));
}
.qn-staffing-rule-title{
  font-size:.96rem;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--foreground);
}
.qn-staffing-rule-scope{
  border:1px solid color-mix(in srgb,var(--border) 85%,transparent);
  background:color-mix(in srgb,var(--muted) 55%,transparent);
}
.qn-staffing-rule-facts{
  padding-top:.05rem;
  gap:.7rem !important;
}
.qn-staffing-rule-facts>div{
  min-height:3.7rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:.65rem .75rem !important;
  border:1px solid color-mix(in srgb,var(--border) 76%,transparent);
  border-radius:.7rem !important;
  background:color-mix(in srgb,var(--muted) 42%,var(--background)) !important;
}
.qn-staffing-rule-facts span{
  margin-bottom:.24rem;
  font-size:.69rem;
  font-weight:500;
  color:var(--muted-foreground);
}
.qn-staffing-rule-facts strong{
  font-size:.8rem;
  font-weight:650;
  color:var(--foreground);
}
.qn-rule-actions-trigger{
  min-width:7.25rem;
  border-color:color-mix(in srgb,var(--border) 82%,var(--foreground) 18%);
  background:var(--background);
  box-shadow:0 1px 2px rgba(15,23,42,.035);
}
.dark .qn-data-card:has(.qn-staffing-rules-grid){background:var(--tw-coal-500)}
.dark .qn-staffing-rules-grid{background:color-mix(in srgb,var(--tw-coal-600) 68%,transparent)}
.dark .qn-staffing-rule-card{background:var(--tw-coal-500) !important;border-color:var(--tw-coal-300) !important;box-shadow:0 5px 18px rgba(0,0,0,.18) !important}
.dark .qn-staffing-rule-main{border-bottom-color:var(--tw-coal-300)}
.dark .qn-staffing-rule-facts>div{background:var(--tw-coal-400) !important;border-color:var(--tw-coal-300)}
@media(max-width:900px){.qn-staffing-rules-grid{padding:.9rem}.qn-staffing-rule-card{padding:.95rem !important}}
@media(max-width:600px){.qn-staffing-rules-grid{padding:.7rem;gap:.8rem}.qn-staffing-rule-main{padding-bottom:.75rem}.qn-staffing-rule-facts>div{min-height:3.35rem}}

/* V2-20D-R2 — Monthly Operational Inputs table regression restore.
   Regression lock: keep professional spacing; never wrap status/action labels;
   use the approved Central Table dashed row separators. */
.qn-monthly-table-wrap{
  overflow-x:auto;
  overflow-y:visible;
}
.qn-monthly-table-pro{
  width:100%;
  min-width:1220px;
  table-layout:auto;
  border-collapse:separate;
  border-spacing:0;
}
.qn-monthly-table-pro thead th{
  white-space:nowrap;
  border-bottom:1px solid var(--border);
}
.qn-monthly-table-pro tbody td{
  border-bottom:1px dashed color-mix(in srgb,var(--border) 88%,transparent) !important;
  white-space:normal;
}
.qn-monthly-table-pro tbody tr:last-child td{
  border-bottom:0 !important;
}
.qn-monthly-table-pro th:nth-child(1),
.qn-monthly-table-pro td:nth-child(1){min-width:215px;}
.qn-monthly-table-pro th:nth-child(2),
.qn-monthly-table-pro td:nth-child(2){min-width:205px;}
.qn-monthly-table-pro th:nth-child(3),
.qn-monthly-table-pro td:nth-child(3){min-width:150px;}
.qn-monthly-table-pro th:nth-child(4),
.qn-monthly-table-pro td:nth-child(4){min-width:195px;}
.qn-monthly-table-pro th:nth-child(5),
.qn-monthly-table-pro td:nth-child(5){min-width:125px;}
.qn-monthly-table-pro th:nth-child(6),
.qn-monthly-table-pro td:nth-child(6){min-width:275px;}
.qn-monthly-status,
.qn-monthly-basis,
.qn-monthly-unmapped,
.qn-monthly-action-hint{
  white-space:nowrap !important;
  flex-wrap:nowrap !important;
  line-height:1.15;
}
.qn-monthly-row-actions{
  display:flex;
  flex-wrap:nowrap !important;
  align-items:center;
  justify-content:flex-end;
  gap:.45rem;
  white-space:nowrap;
}
.qn-monthly-row-actions .kt-btn,
.qn-monthly-table-pro td:last-child > .kt-btn{
  white-space:nowrap !important;
  flex:0 0 auto;
}
.qn-monthly-table-pro tbody tr:hover{
  background:color-mix(in srgb,var(--primary) 3%,var(--card));
}
.qn-monthly-table-pro tbody tr.has-data-issue:hover{
  background:color-mix(in srgb,var(--destructive) 3.5%,var(--card));
}
.dark .qn-monthly-table-pro tbody td{
  border-bottom-color:color-mix(in srgb,var(--tw-coal-300) 88%,transparent) !important;
}
@media(max-width:1400px){
  .qn-monthly-table-pro{min-width:1180px;}
}

/* V2-21G-R2 — Composite Monthly Input Professional Workspace */
.qn-monthly-components-modal{width:min(1080px,calc(100vw - 2rem));max-height:min(820px,calc(100vh - 2rem));display:flex;flex-direction:column}.qn-monthly-components-modal>.kt-modal-header,.qn-monthly-components-modal>.kt-modal-footer{flex:0 0 auto}.qn-monthly-components-modal>.kt-modal-body{min-height:0;overflow:auto}.qn-components-body{display:grid;gap:1rem}.qn-components-summary{display:grid;grid-template-columns:minmax(280px,1fr) 220px;gap:1rem;align-items:stretch}.qn-components-progress{border:1px solid var(--border);border-radius:.75rem;padding:.8rem 1rem;background:color-mix(in srgb,var(--muted) 35%,var(--card));display:flex;flex-direction:column;justify-content:center}.qn-components-progress>span{font-size:.66rem;letter-spacing:.07em;font-weight:750;color:var(--muted-foreground)}.qn-components-progress>strong{font-size:1.15rem;margin-top:.15rem}.qn-components-progress-track{height:5px;background:var(--muted);border-radius:999px;overflow:hidden;margin-top:.55rem}.qn-components-progress-track i{display:block;height:100%;width:0;background:var(--success);border-radius:inherit;transition:width .2s ease}.qn-components-table-wrap{border:1px solid var(--border);border-radius:.8rem;overflow:auto}.qn-components-table{min-width:900px;margin:0}.qn-components-table thead th{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--muted) 48%,var(--card));font-size:.67rem;text-transform:uppercase;letter-spacing:.035em;color:var(--muted-foreground);padding:.7rem .8rem;border-bottom:1px solid var(--border)}.qn-components-table tbody td{padding:.7rem .8rem;vertical-align:middle;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.qn-components-table tbody tr:last-child td{border-bottom:0}.qn-component-name{min-width:170px}.qn-component-name strong{display:block;font-size:.78rem}.qn-component-name small{display:block;font-size:.65rem;color:var(--muted-foreground);margin-top:.15rem}.qn-component-inputs{display:grid;grid-template-columns:130px 145px;gap:.5rem;min-width:285px}.qn-component-inputs.is-single{grid-template-columns:180px;min-width:180px}.qn-component-inputs label span{display:block;font-size:.62rem;color:var(--muted-foreground);margin-bottom:.25rem;font-weight:650}.qn-component-inputs .kt-input{height:34px;padding:.4rem .55rem}.qn-component-status{display:inline-flex;align-items:center;border:1px solid;border-radius:999px;padding:.32rem .52rem;font-size:.66rem;font-weight:700;white-space:nowrap}.qn-component-status.is-completed{color:var(--success);border-color:color-mix(in srgb,var(--success) 28%,var(--border));background:color-mix(in srgb,var(--success) 8%,var(--card))}.qn-component-status.is-pending{color:color-mix(in srgb,var(--warning) 85%,black);border-color:color-mix(in srgb,var(--warning) 32%,var(--border));background:color-mix(in srgb,var(--warning) 9%,var(--card))}.qn-component-status.is-error{color:var(--destructive);border-color:color-mix(in srgb,var(--destructive) 28%,var(--border));background:color-mix(in srgb,var(--destructive) 7%,var(--card))}.qn-components-help{display:flex;gap:.55rem;align-items:flex-start;padding:.7rem .8rem;border-radius:.65rem;background:color-mix(in srgb,var(--primary) 4%,var(--card));color:var(--muted-foreground);font-size:.69rem}.qn-components-help i{color:var(--primary);font-size:.95rem}.qn-components-footer{justify-content:space-between}.qn-components-footer-status{display:flex;align-items:center;gap:.4rem;font-size:.7rem;color:var(--muted-foreground)}.qn-components-footer-status i{color:var(--success)}@media(max-width:760px){.qn-monthly-components-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.qn-components-summary{grid-template-columns:1fr}.qn-components-progress{min-height:78px}.qn-components-footer-status{display:none}}

/* V2-20E — Staffing & Capacity Dashboard / Executive Summary */
.qn-staffing-exec-page{display:grid;gap:1.15rem;padding-bottom:2rem}.qn-staffing-exec-eyebrow{display:block;color:var(--primary);font-size:.67rem;font-weight:800;letter-spacing:.085em}.qn-staffing-exec-hero{display:flex;align-items:center;gap:1rem;padding:1.35rem 1.45rem;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--border));border-inline-start:4px solid var(--primary);border-radius:.9rem;background:linear-gradient(112deg,var(--card) 48%,color-mix(in srgb,var(--primary) 7%,var(--card)));box-shadow:0 8px 24px rgb(15 23 42/.035)}.qn-staffing-exec-hero-icon{width:50px;height:50px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-size:1.45rem}.qn-staffing-exec-hero h1{margin:.18rem 0;font-size:1.55rem;font-weight:750}.qn-staffing-exec-hero p,.qn-staffing-exec-facilities .kt-card-header p{max-width:880px;color:var(--muted-foreground);font-size:.8rem;line-height:1.55}.qn-staffing-exec-hero-badges{margin-inline-start:auto;display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.qn-staffing-exec-scope .kt-card-header{padding-block:.95rem}.qn-staffing-exec-scope h2,.qn-staffing-exec-facilities h2,.qn-staffing-exec-insight-card h2,.qn-staffing-exec-readiness h2{font-size:.98rem;font-weight:700;margin-top:.14rem}.qn-staffing-exec-filter-grid{display:grid;grid-template-columns:minmax(300px,1.35fr) minmax(220px,.8fr) auto;gap:1rem;align-items:end}.qn-staffing-exec-apply{min-width:120px}.qn-staffing-exec-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.qn-staffing-exec-kpi{--qn-exec-rgb:37 99 235;min-width:0;display:flex;align-items:center;gap:.9rem;padding:1rem 1.05rem;border:1px solid rgb(var(--qn-exec-rgb)/.18);border-radius:.85rem;background:linear-gradient(135deg,rgb(var(--qn-exec-rgb)/.075),var(--card) 68%);box-shadow:0 6px 18px rgb(var(--qn-exec-rgb)/.055)}.qn-staffing-exec-kpi.is-violet{--qn-exec-rgb:124 58 237}.qn-staffing-exec-kpi.is-danger{--qn-exec-rgb:220 38 38}.qn-staffing-exec-kpi.is-info{--qn-exec-rgb:8 145 178}.qn-staffing-exec-kpi-icon{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:rgb(var(--qn-exec-rgb)/.12);color:rgb(var(--qn-exec-rgb));font-size:1.25rem}.qn-staffing-exec-kpi span,.qn-staffing-exec-balance span{display:block;color:var(--muted-foreground);font-size:.66rem;font-weight:800;letter-spacing:.055em}.qn-staffing-exec-kpi strong{display:block;margin:.16rem 0;font-size:1.55rem;line-height:1.1;color:var(--foreground)}.qn-staffing-exec-kpi small,.qn-staffing-exec-balance small{display:block;color:var(--muted-foreground);font-size:.68rem;line-height:1.35}.qn-staffing-exec-balance{display:grid;grid-template-columns:minmax(240px,1.15fr) repeat(3,minmax(190px,1fr));overflow:hidden}.qn-staffing-exec-balance>div{padding:1.05rem 1.15rem;border-inline-end:1px solid var(--border)}.qn-staffing-exec-balance>div:last-child{border-inline-end:0}.qn-staffing-exec-balance-main{--qn-balance:var(--primary);background:linear-gradient(135deg,color-mix(in srgb,var(--qn-balance) 10%,var(--card)),var(--card))}.qn-staffing-exec-balance-main.is-danger{--qn-balance:var(--destructive)}.qn-staffing-exec-balance-main.is-success{--qn-balance:var(--success)}.qn-staffing-exec-balance-main strong{display:block;margin:.2rem 0;font-size:2rem;color:var(--qn-balance);line-height:1}.qn-staffing-exec-balance-metric strong{display:block;margin:.17rem 0 .35rem;font-size:1.3rem}.qn-staffing-exec-progress{height:6px;overflow:hidden;border-radius:999px;background:var(--muted);margin:.35rem 0}.qn-staffing-exec-progress i,.qn-staffing-exec-coverage span i{display:block;height:100%;width:min(var(--qn-progress),100%);border-radius:inherit;background:var(--primary)}.qn-staffing-exec-facility-counts{display:flex;gap:.4rem;margin:.25rem 0}.qn-staffing-exec-facility-counts b{display:grid;place-items:center;min-width:34px;height:30px;border-radius:.5rem;background:var(--muted);font-size:.85rem}.qn-staffing-exec-facility-counts .is-danger{color:var(--destructive);background:color-mix(in srgb,var(--destructive) 9%,var(--card))}.qn-staffing-exec-facility-counts .is-success{color:var(--success);background:color-mix(in srgb,var(--success) 9%,var(--card))}.qn-staffing-exec-facility-counts .is-info{color:#0891b2;background:color-mix(in srgb,#0891b2 9%,var(--card))}.qn-staffing-exec-facility-counts .is-warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--card))}.qn-staffing-exec-warning{display:flex;align-items:flex-start;gap:.8rem}.qn-staffing-exec-warning>i{font-size:1.2rem;margin-top:.05rem}.qn-staffing-exec-warning p{font-size:.75rem;line-height:1.5;margin-top:.18rem}.qn-staffing-exec-facilities .kt-card-header{align-items:flex-start}.qn-staffing-exec-table{min-width:1180px}.qn-staffing-exec-table td{vertical-align:middle}.qn-staffing-exec-table td:first-child strong,.qn-staffing-exec-table td:first-child small{display:block}.qn-staffing-exec-table td:first-child small,.qn-staffing-exec-table td:nth-child(2) small{margin-top:.12rem;color:var(--muted-foreground);font-size:.68rem}.qn-staffing-exec-number{font-weight:750}.qn-staffing-exec-number.is-danger,.qn-staffing-exec-total.is-danger,.qn-staffing-exec-unit-metrics .is-danger{color:var(--destructive)}.qn-staffing-exec-number.is-success{color:var(--success)}.qn-staffing-exec-number.is-info,.qn-staffing-exec-total.is-info,.qn-staffing-exec-unit-metrics .is-info{color:#0891b2}.qn-staffing-exec-coverage{min-width:105px}.qn-staffing-exec-coverage strong{font-size:.74rem}.qn-staffing-exec-coverage span{display:block;height:5px;margin-top:.28rem;overflow:hidden;border-radius:999px;background:var(--muted)}.qn-staffing-exec-status{display:inline-flex;align-items:center;gap:.32rem;padding:.32rem .52rem;border-radius:999px;border:1px solid var(--border);font-size:.68rem;font-weight:700;white-space:nowrap}.qn-staffing-exec-status.is-danger{color:var(--destructive);background:color-mix(in srgb,var(--destructive) 7%,var(--card));border-color:color-mix(in srgb,var(--destructive) 24%,var(--border))}.qn-staffing-exec-status.is-info{color:#0891b2;background:color-mix(in srgb,#0891b2 7%,var(--card));border-color:color-mix(in srgb,#0891b2 24%,var(--border))}.qn-staffing-exec-status.is-success{color:var(--success);background:color-mix(in srgb,var(--success) 7%,var(--card));border-color:color-mix(in srgb,var(--success) 24%,var(--border))}.qn-staffing-exec-status.is-warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 8%,var(--card));border-color:color-mix(in srgb,var(--warning) 26%,var(--border))}.qn-staffing-exec-insights{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.qn-staffing-exec-insight-card .kt-card-header{align-items:center}.qn-staffing-exec-total{font-size:1.35rem;font-weight:800}.qn-staffing-exec-unit-list{padding:0!important}.qn-staffing-exec-unit-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.78rem 1rem;border-bottom:1px solid var(--border);transition:background-color .15s ease}.qn-staffing-exec-unit-row:last-of-type{border-bottom:0}.qn-staffing-exec-unit-row:hover{background:color-mix(in srgb,var(--primary) 4%,var(--card))}.qn-staffing-exec-unit-row>div:first-child{min-width:0}.qn-staffing-exec-unit-row strong,.qn-staffing-exec-unit-row small{display:block}.qn-staffing-exec-unit-row strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qn-staffing-exec-unit-row small{margin-top:.12rem;color:var(--muted-foreground);font-size:.65rem}.qn-staffing-exec-unit-metrics{display:grid;grid-template-columns:auto 44px 42px;gap:.55rem;align-items:center;text-align:end;white-space:nowrap}.qn-staffing-exec-unit-metrics span,.qn-staffing-exec-unit-metrics em{font-size:.68rem;color:var(--muted-foreground);font-style:normal}.qn-staffing-exec-unit-metrics b{font-size:.75rem}.qn-staffing-exec-support-note{display:flex;align-items:flex-start;gap:.5rem;margin:.8rem 1rem 1rem;padding:.75rem .8rem;border:1px dashed color-mix(in srgb,#0891b2 30%,var(--border));border-radius:.7rem;background:color-mix(in srgb,#0891b2 5%,var(--card));font-size:.68rem;line-height:1.5;color:var(--muted-foreground)}.qn-staffing-exec-support-note i{color:#0891b2;font-size:1rem}.qn-staffing-exec-empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:1.5rem;text-align:center;color:var(--muted-foreground)}.qn-staffing-exec-empty i{font-size:2rem;color:var(--success)}.qn-staffing-exec-empty strong{color:var(--foreground)}.qn-staffing-exec-empty span{max-width:420px;font-size:.72rem;line-height:1.5}.qn-staffing-exec-readiness-grid{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:.8rem}.qn-staffing-exec-readiness-score,.qn-staffing-exec-readiness-item{min-height:92px;border:1px solid var(--border);border-radius:.75rem;background:color-mix(in srgb,var(--muted) 28%,var(--card));padding:.9rem 1rem}.qn-staffing-exec-readiness-score strong{display:block;color:var(--primary);font-size:1.7rem}.qn-staffing-exec-readiness-score span,.qn-staffing-exec-readiness-score small{display:block}.qn-staffing-exec-readiness-score span{font-weight:700;font-size:.75rem}.qn-staffing-exec-readiness-score small{margin-top:.12rem;color:var(--muted-foreground);font-size:.68rem}.qn-staffing-exec-readiness-item{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:.7rem}.qn-staffing-exec-readiness-item>i{width:34px;height:34px;display:grid;place-items:center;border-radius:.55rem;background:color-mix(in srgb,var(--primary) 9%,var(--card));color:var(--primary);font-size:1rem}.qn-staffing-exec-readiness-item strong,.qn-staffing-exec-readiness-item span{display:block}.qn-staffing-exec-readiness-item strong{font-size:1.05rem}.qn-staffing-exec-readiness-item span{font-size:.66rem;color:var(--muted-foreground)}.qn-staffing-exec-readiness-item a{font-size:.68rem;font-weight:700;color:var(--primary)}.qn-staffing-exec-readiness-denom{font-size:.76rem!important;font-weight:700;color:var(--foreground)!important}
@media(max-width:1250px){.qn-staffing-exec-kpis{grid-template-columns:repeat(2,1fr)}.qn-staffing-exec-balance{grid-template-columns:repeat(2,1fr)}.qn-staffing-exec-balance>div:nth-child(2){border-inline-end:0}.qn-staffing-exec-balance>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.qn-staffing-exec-readiness-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.qn-staffing-exec-hero{align-items:flex-start;flex-wrap:wrap}.qn-staffing-exec-hero-badges{width:100%;margin-inline-start:0;justify-content:flex-start}.qn-staffing-exec-filter-grid{grid-template-columns:1fr 1fr}.qn-staffing-exec-apply{grid-column:1/-1}.qn-staffing-exec-insights{grid-template-columns:1fr}}
@media(max-width:640px){.qn-staffing-exec-kpis,.qn-staffing-exec-balance,.qn-staffing-exec-readiness-grid,.qn-staffing-exec-filter-grid{grid-template-columns:1fr}.qn-staffing-exec-balance>div{border-inline-end:0;border-bottom:1px solid var(--border)}.qn-staffing-exec-balance>div:last-child{border-bottom:0}.qn-staffing-exec-unit-row{align-items:flex-start;flex-direction:column}.qn-staffing-exec-unit-metrics{width:100%;grid-template-columns:1fr auto auto;text-align:start}.qn-staffing-exec-kpi{align-items:flex-start}.qn-staffing-exec-scope .kt-card-header{align-items:flex-start;gap:.7rem;flex-direction:column}}

/* V2-20E-R2 — Staffing & Capacity visual executive comparison */
.qn-staffing-exec-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}
.qn-staffing-exec-visuals .kt-card-header{align-items:flex-start;gap:1rem}.qn-staffing-exec-visuals .kt-card-header p{max-width:860px;margin-top:.2rem;color:var(--muted-foreground);font-size:.76rem;line-height:1.5}.qn-staffing-exec-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.qn-staffing-exec-chart-card{min-width:0;border:1px solid var(--border);border-radius:.8rem;background:color-mix(in srgb,var(--muted) 20%,var(--card));overflow:hidden}.qn-staffing-exec-chart-card.is-demand{grid-column:1/-1}.qn-staffing-exec-chart-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.82rem .9rem;border-bottom:1px solid var(--border);background:var(--card)}.qn-staffing-exec-chart-title>div:first-child>span{display:block;color:var(--muted-foreground);font-size:.61rem;font-weight:800;letter-spacing:.07em}.qn-staffing-exec-chart-title>div:first-child>strong{display:block;margin-top:.1rem;font-size:.8rem}.qn-staffing-exec-chart-legend{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.qn-staffing-exec-chart-legend span{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted-foreground);font-size:.63rem;font-weight:700;white-space:nowrap}.qn-staffing-exec-chart-legend span:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--primary)}.qn-staffing-exec-chart-legend .is-actual:before{background:var(--primary)}.qn-staffing-exec-chart-legend .is-required:before{background:#7c3aed}.qn-staffing-exec-chart-legend .is-shortage:before{background:var(--destructive)}.qn-staffing-exec-chart-legend .is-surplus:before{background:#0891b2}.qn-staffing-exec-chart-legend .is-coverage:before{background:var(--primary)}.qn-staffing-exec-chart-legend .is-readiness:before{background:var(--success)}.qn-staffing-exec-chart-rows{max-height:310px;overflow:auto}.qn-staffing-exec-demand-row,.qn-staffing-exec-gap-row,.qn-staffing-exec-health-row{display:grid;grid-template-columns:minmax(135px,190px) minmax(170px,1fr) 66px;gap:.75rem;align-items:center;padding:.7rem .85rem;border-bottom:1px solid var(--border)}.qn-staffing-exec-chart-rows>div:last-child{border-bottom:0}.qn-staffing-exec-chart-label{min-width:0}.qn-staffing-exec-chart-label strong,.qn-staffing-exec-chart-label small{display:block}.qn-staffing-exec-chart-label strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.qn-staffing-exec-chart-label small{margin-top:.12rem;color:var(--muted-foreground);font-size:.61rem}.qn-staffing-exec-chart-label small.is-warning{color:var(--warning);font-weight:700}.qn-staffing-exec-dual-bars,.qn-staffing-exec-health-bars{display:grid;gap:.28rem}.qn-staffing-exec-dual-bars>div,.qn-staffing-exec-health-bars>div{height:7px;border-radius:999px;background:var(--muted);overflow:hidden}.qn-staffing-exec-dual-bars i,.qn-staffing-exec-health-bars i{display:block;width:var(--qn-chart-value);height:100%;border-radius:999px}.qn-staffing-exec-dual-bars i.is-actual{background:var(--primary)}.qn-staffing-exec-dual-bars i.is-required{background:#7c3aed}.qn-staffing-exec-health-bars i.is-coverage{background:var(--primary)}.qn-staffing-exec-health-bars i.is-readiness{background:var(--success)}.qn-staffing-exec-chart-values,.qn-staffing-exec-gap-values,.qn-staffing-exec-health-values{display:flex;align-items:center;justify-content:flex-end;gap:.28rem;white-space:nowrap;font-size:.67rem}.qn-staffing-exec-chart-values span{color:var(--muted-foreground)}.qn-staffing-exec-health-values{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;text-align:end}.qn-staffing-exec-diverging{direction:ltr;display:grid;grid-template-columns:1fr 1fr;gap:2px;position:relative}.qn-staffing-exec-diverging:after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:color-mix(in srgb,var(--foreground) 18%,var(--border))}.qn-staffing-exec-diverging>div{height:9px;background:var(--muted);overflow:hidden}.qn-staffing-exec-diverging .is-left{display:flex;justify-content:flex-end;border-radius:999px 0 0 999px}.qn-staffing-exec-diverging .is-right{border-radius:0 999px 999px 0}.qn-staffing-exec-diverging i{display:block;height:100%;width:var(--qn-chart-value)}.qn-staffing-exec-diverging i.is-shortage{background:var(--destructive);border-radius:999px 0 0 999px}.qn-staffing-exec-diverging i.is-surplus{background:#0891b2;border-radius:0 999px 999px 0}.qn-staffing-exec-gap-values{direction:ltr;justify-content:space-between}.qn-staffing-exec-gap-values .is-danger{color:var(--destructive)}.qn-staffing-exec-gap-values .is-info{color:#0891b2}

.qn-executive-charts-page{display:grid;gap:1rem;padding-bottom:2rem}.qn-executive-charts-hero{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 1.4rem;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));border-radius:.95rem;background:linear-gradient(120deg,color-mix(in srgb,var(--primary) 9%,var(--card)),var(--card) 64%);box-shadow:0 10px 28px rgb(15 23 42/.05)}.qn-executive-charts-hero-copy{min-width:0}.qn-executive-charts-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.45rem;color:var(--muted-foreground);font-size:.68rem;font-weight:700}.qn-executive-charts-back:hover{color:var(--primary)}.qn-executive-charts-hero h1{margin:.18rem 0;font-size:1.5rem;font-weight:780}.qn-executive-charts-hero p{max-width:900px;color:var(--muted-foreground);font-size:.78rem;line-height:1.55}.qn-executive-charts-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.65rem;flex:0 0 auto}.qn-executive-charts-badges{display:flex;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.qn-executive-charts-filter .kt-card-content{padding-block:.9rem}.qn-executive-charts-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.qn-executive-charts-kpis article{--qn-kpi-color:var(--primary);padding:.82rem .9rem;border:1px solid color-mix(in srgb,var(--qn-kpi-color) 18%,var(--border));border-radius:.78rem;background:linear-gradient(135deg,color-mix(in srgb,var(--qn-kpi-color) 7%,var(--card)),var(--card))}.qn-executive-charts-kpis article.is-danger{--qn-kpi-color:var(--destructive)}.qn-executive-charts-kpis article.is-info{--qn-kpi-color:#0891b2}.qn-executive-charts-kpis article.is-success{--qn-kpi-color:var(--success)}.qn-executive-charts-kpis span,.qn-executive-charts-kpis small{display:block;color:var(--muted-foreground)}.qn-executive-charts-kpis span{font-size:.61rem;font-weight:800;letter-spacing:.06em}.qn-executive-charts-kpis strong{display:block;margin:.13rem 0;font-size:1.45rem;line-height:1.08;color:var(--qn-kpi-color)}.qn-executive-charts-kpis small{font-size:.62rem}.qn-executive-charts-warning{display:flex;align-items:flex-start;gap:.75rem}.qn-executive-charts-warning>i{font-size:1.15rem;margin-top:.05rem}.qn-executive-charts-warning p{margin-top:.14rem;font-size:.7rem;line-height:1.5}.qn-executive-charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.qn-executive-chart-panel{min-width:0}.qn-executive-chart-panel.is-wide{grid-column:1/-1}.qn-executive-chart-panel .kt-card-header{align-items:flex-start;gap:1rem}.qn-executive-chart-panel .kt-card-header h2,.qn-executive-matrix .kt-card-header h2{margin-top:.12rem;font-size:.94rem;font-weight:720}.qn-executive-chart-panel .kt-card-header p,.qn-executive-matrix .kt-card-header p{margin-top:.15rem;color:var(--muted-foreground);font-size:.69rem;line-height:1.45}.qn-executive-chart-body{padding:0!important;max-height:460px;overflow:auto}.qn-executive-demand-row,.qn-executive-gap-row{display:grid;grid-template-columns:minmax(170px,230px) minmax(280px,1fr) 82px;gap:1rem;align-items:center;padding:.78rem 1rem;border-bottom:1px solid var(--border);transition:background-color .15s ease}.qn-executive-demand-row:last-child,.qn-executive-gap-row:last-child{border-bottom:0}.qn-executive-demand-row:hover,.qn-executive-gap-row:hover,.qn-executive-meter-row:hover{background:color-mix(in srgb,var(--primary) 4%,var(--card))}.qn-executive-chart-label{min-width:0}.qn-executive-chart-label strong,.qn-executive-chart-label small{display:block}.qn-executive-chart-label strong{font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qn-executive-chart-label small{margin-top:.12rem;color:var(--muted-foreground);font-size:.62rem}.qn-executive-chart-label small.is-warning{color:var(--warning);font-weight:700}.qn-executive-dual-bar{display:grid;gap:.28rem}.qn-executive-dual-bar>div{display:grid;grid-template-columns:48px 1fr;gap:.45rem;align-items:center}.qn-executive-dual-bar span{color:var(--muted-foreground);font-size:.57rem}.qn-executive-dual-bar>div:after{content:"";grid-column:2;grid-row:1;height:8px;border-radius:999px;background:var(--muted);z-index:0}.qn-executive-dual-bar i{grid-column:2;grid-row:1;display:block;width:var(--qn-chart-value);height:8px;border-radius:999px;z-index:1}.qn-executive-dual-bar i.is-actual{background:var(--primary)}.qn-executive-dual-bar i.is-required{background:#7c3aed}.qn-executive-chart-value{display:flex;align-items:center;justify-content:flex-end;gap:.3rem;font-size:.72rem;white-space:nowrap}.qn-executive-chart-value span{color:var(--muted-foreground)}.qn-executive-diverging-bar{direction:ltr;display:grid;grid-template-columns:1fr 2px 1fr;align-items:center}.qn-executive-diverging-bar>div{height:12px;background:var(--muted);overflow:hidden}.qn-executive-diverging-bar .is-left{display:flex;justify-content:flex-end;border-radius:999px 0 0 999px}.qn-executive-diverging-bar .is-right{border-radius:0 999px 999px 0}.qn-executive-diverging-bar i{display:block;height:100%;width:var(--qn-chart-value)}.qn-executive-diverging-bar .is-left i{background:var(--destructive);border-radius:999px 0 0 999px}.qn-executive-diverging-bar .is-right i{background:#0891b2;border-radius:0 999px 999px 0}.qn-executive-zero{height:20px;background:color-mix(in srgb,var(--foreground) 25%,var(--border));z-index:2}.qn-executive-gap-numbers{direction:ltr;display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.72rem}.qn-executive-gap-numbers .is-danger,.qn-executive-facility-metrics .is-danger{color:var(--destructive)}.qn-executive-gap-numbers .is-info,.qn-executive-facility-metrics .is-info{color:#0891b2}.qn-executive-meter-list{padding:0!important;max-height:410px;overflow:auto}.qn-executive-meter-row{display:block;padding:.75rem .9rem;border-bottom:1px solid var(--border);transition:background-color .15s ease}.qn-executive-meter-row:last-child{border-bottom:0}.qn-executive-meter-row>div{display:flex;align-items:center;justify-content:space-between;gap:1rem}.qn-executive-meter-row strong{font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qn-executive-meter-row b{font-size:.72rem;white-space:nowrap}.qn-executive-meter-row>span{display:block;height:8px;margin-top:.35rem;border-radius:999px;background:var(--muted);overflow:hidden}.qn-executive-meter-row>span i{display:block;width:var(--qn-chart-value);height:100%;border-radius:999px;background:var(--primary)}.qn-executive-meter-row>span i.is-danger{background:var(--destructive)}.qn-executive-meter-row>span i.is-warning{background:var(--warning)}.qn-executive-meter-row>span i.is-readiness{background:var(--success)}.qn-executive-meter-row small{display:block;margin-top:.25rem;color:var(--muted-foreground);font-size:.6rem}.qn-executive-matrix .kt-card-header{align-items:flex-start}.qn-executive-matrix-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.qn-executive-facility-card{--qn-facility-color:var(--success);display:flex;flex-direction:column;gap:.72rem;padding:.9rem;border:1px solid color-mix(in srgb,var(--qn-facility-color) 23%,var(--border));border-top:3px solid var(--qn-facility-color);border-radius:.78rem;background:linear-gradient(145deg,color-mix(in srgb,var(--qn-facility-color) 5%,var(--card)),var(--card) 46%)}.qn-executive-facility-card.is-danger{--qn-facility-color:var(--destructive)}.qn-executive-facility-card.is-info{--qn-facility-color:#0891b2}.qn-executive-facility-card.is-warning{--qn-facility-color:var(--warning)}.qn-executive-facility-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.qn-executive-facility-head strong,.qn-executive-facility-head small{display:block}.qn-executive-facility-head strong{font-size:.78rem}.qn-executive-facility-head small{margin-top:.1rem;color:var(--muted-foreground);font-size:.59rem}.qn-executive-facility-head>span{flex:0 0 auto;padding:.22rem .42rem;border-radius:999px;background:color-mix(in srgb,var(--qn-facility-color) 10%,var(--card));color:var(--qn-facility-color);font-size:.58rem;font-weight:800}.qn-executive-facility-position{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:.58rem}.qn-executive-facility-position span{color:var(--muted-foreground);font-size:.62rem}.qn-executive-facility-position strong{color:var(--qn-facility-color);font-size:1.35rem}.qn-executive-facility-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.qn-executive-facility-metrics>div{padding:.45rem;border-radius:.5rem;background:color-mix(in srgb,var(--muted) 35%,var(--card))}.qn-executive-facility-metrics span,.qn-executive-facility-metrics b{display:block}.qn-executive-facility-metrics span{color:var(--muted-foreground);font-size:.56rem}.qn-executive-facility-metrics b{margin-top:.05rem;font-size:.78rem}.qn-executive-decision-note{display:flex;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;border:1px dashed color-mix(in srgb,#0891b2 32%,var(--border));border-radius:.78rem;background:color-mix(in srgb,#0891b2 5%,var(--card))}.qn-executive-decision-note>i{color:#0891b2;font-size:1.15rem}.qn-executive-decision-note strong{font-size:.74rem}.qn-executive-decision-note p{margin-top:.16rem;color:var(--muted-foreground);font-size:.68rem;line-height:1.55}

body.qn-executive-presentation #sidebar,body.qn-executive-presentation #header,body.qn-executive-presentation footer{display:none!important}body.qn-executive-presentation.demo1.kt-sidebar-fixed .kt-wrapper{padding-inline-start:0!important}body.qn-executive-presentation.demo1.kt-header-fixed .kt-wrapper{padding-top:0!important}body.qn-executive-presentation #content{padding-top:0!important}body.qn-executive-presentation #content>.kt-container-fixed{max-width:none!important;width:100%!important;padding:1rem 1.15rem!important}body.qn-executive-presentation .qn-executive-charts-page{max-width:none!important;width:100%!important}body.qn-executive-presentation .qn-executive-charts-hero{position:sticky;top:0;z-index:20;box-shadow:0 8px 24px rgb(15 23 42/.1)}

@media(max-width:1250px){.qn-staffing-exec-chart-grid{grid-template-columns:1fr}.qn-staffing-exec-chart-card.is-demand{grid-column:auto}.qn-executive-charts-kpis{grid-template-columns:repeat(3,1fr)}.qn-executive-matrix-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.qn-staffing-exec-header-actions{width:100%;justify-content:flex-start}.qn-staffing-exec-demand-row,.qn-staffing-exec-gap-row,.qn-staffing-exec-health-row{grid-template-columns:minmax(120px,160px) 1fr 62px}.qn-executive-charts-hero{align-items:flex-start;flex-direction:column}.qn-executive-charts-hero-actions{width:100%;align-items:flex-start}.qn-executive-charts-badges{justify-content:flex-start}.qn-executive-charts-grid{grid-template-columns:1fr}.qn-executive-chart-panel.is-wide{grid-column:auto}.qn-executive-demand-row,.qn-executive-gap-row{grid-template-columns:minmax(130px,180px) 1fr 72px}.qn-executive-matrix-grid{grid-template-columns:1fr}}
@media(max-width:640px){.qn-staffing-exec-visuals .kt-card-header{flex-direction:column}.qn-staffing-exec-demand-row,.qn-staffing-exec-gap-row,.qn-staffing-exec-health-row{grid-template-columns:1fr;gap:.45rem}.qn-staffing-exec-chart-values,.qn-staffing-exec-gap-values,.qn-staffing-exec-health-values{justify-content:flex-start;text-align:start}.qn-staffing-exec-health-values{display:flex}.qn-staffing-exec-chart-title{flex-direction:column}.qn-staffing-exec-chart-legend{justify-content:flex-start}.qn-executive-charts-kpis{grid-template-columns:repeat(2,1fr)}.qn-executive-demand-row,.qn-executive-gap-row{grid-template-columns:1fr;gap:.55rem}.qn-executive-chart-value,.qn-executive-gap-numbers{justify-content:flex-start}.qn-executive-facility-metrics{grid-template-columns:repeat(2,1fr)}.qn-executive-charts-hero h1{font-size:1.2rem}}

/* V2-20E-R3 — Executive Visualization & Priority Intelligence */
.qn-executive-priority-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.qn-executive-priority-card{--qn-priority-color:var(--primary);display:flex;align-items:flex-start;gap:.72rem;min-width:0;padding:.82rem .88rem;border:1px solid color-mix(in srgb,var(--qn-priority-color) 23%,var(--border));border-top:3px solid var(--qn-priority-color);border-radius:.78rem;background:linear-gradient(145deg,color-mix(in srgb,var(--qn-priority-color) 5%,var(--card)),var(--card) 48%);box-shadow:0 1px 2px rgb(15 23 42/.03)}.qn-executive-priority-card.is-danger{--qn-priority-color:var(--destructive)}.qn-executive-priority-card.is-warning{--qn-priority-color:var(--warning)}.qn-executive-priority-card.is-info{--qn-priority-color:#0891b2}.qn-executive-priority-card.is-readiness{--qn-priority-color:var(--success)}.qn-executive-priority-icon{display:grid;place-items:center;flex:0 0 2rem;width:2rem;height:2rem;border-radius:.6rem;background:color-mix(in srgb,var(--qn-priority-color) 11%,var(--card));color:var(--qn-priority-color);font-size:1rem}.qn-executive-priority-copy{min-width:0}.qn-executive-priority-copy>span,.qn-executive-priority-copy>strong,.qn-executive-priority-copy>small{display:block}.qn-executive-priority-copy>span{color:var(--muted-foreground);font-size:.56rem;font-weight:800;letter-spacing:.055em}.qn-executive-priority-copy>strong{margin-top:.14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.qn-executive-priority-copy>small{margin-top:.18rem;color:var(--muted-foreground);font-size:.61rem;line-height:1.42}.qn-executive-priority-copy>small b{color:var(--qn-priority-color);font-size:.69rem}.qn-executive-meter-value{display:flex!important;align-items:center;justify-content:flex-end;gap:.38rem;min-width:0}.qn-executive-meter-value em,.qn-executive-inline-state{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:.12rem .34rem;border-radius:999px;font-size:.52rem!important;font-style:normal;font-weight:800;line-height:1.35;white-space:nowrap}.qn-executive-meter-value em.is-above,.qn-executive-inline-state.is-above{background:color-mix(in srgb,var(--success) 12%,var(--card));color:var(--success)}.qn-executive-meter-value em.is-pending,.qn-executive-inline-state.is-pending{background:color-mix(in srgb,var(--warning) 12%,var(--card));color:var(--warning)}.qn-executive-meter-row>span i.is-pending{background:var(--muted-foreground);opacity:.35}.qn-staffing-exec-balance-metric>.qn-executive-inline-state{margin-top:.28rem}.qn-staffing-exec-coverage>.qn-executive-inline-state{margin-top:.22rem}.qn-executive-facility-metrics .qn-executive-inline-state{margin-top:.18rem;font-size:.48rem!important}.qn-executive-facility-metrics>div{min-width:0}.qn-executive-facility-metrics>div>em{overflow:hidden;text-overflow:ellipsis}.qn-executive-charts-hero-actions .kt-btn.is-active{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}
body.qn-executive-presentation .qn-executive-charts-filter{display:none!important}body.qn-executive-presentation .qn-executive-charts-hero{padding:.72rem .9rem!important;background:color-mix(in srgb,var(--card) 96%,transparent);backdrop-filter:blur(10px)}body.qn-executive-presentation .qn-executive-charts-hero-copy p,body.qn-executive-presentation .qn-executive-charts-back{display:none!important}body.qn-executive-presentation .qn-executive-charts-hero h1{margin-top:.05rem;font-size:1.05rem}body.qn-executive-presentation .qn-executive-priority-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}body.qn-executive-presentation .qn-executive-priority-card{padding:.62rem .68rem}body.qn-executive-presentation .qn-executive-charts-page{gap:.72rem!important;padding-bottom:1rem}body.qn-executive-presentation .qn-executive-charts-kpis{gap:.6rem}body.qn-executive-presentation .qn-executive-charts-grid{gap:.7rem}
@media(max-width:1250px){.qn-executive-priority-strip{grid-template-columns:repeat(2,minmax(0,1fr))}body.qn-executive-presentation .qn-executive-priority-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.qn-executive-priority-strip,body.qn-executive-presentation .qn-executive-priority-strip{grid-template-columns:1fr}.qn-executive-meter-value{flex-wrap:wrap;justify-content:flex-start}.qn-executive-priority-copy>strong{white-space:normal}}

/* V2-20E-R3A — Executive card border consistency + true full-viewport presentation */
.qn-executive-priority-card{
  border-color:color-mix(in srgb,var(--qn-priority-color) 42%,var(--border)) !important;
  box-shadow:0 3px 12px rgb(15 23 42/.055) !important;
}
.qn-executive-charts-kpis article{
  border-color:color-mix(in srgb,var(--qn-kpi-color) 34%,var(--border)) !important;
  box-shadow:0 3px 12px rgb(15 23 42/.045);
}
.qn-executive-facility-card{
  border-color:color-mix(in srgb,var(--qn-facility-color) 38%,var(--border)) !important;
  box-shadow:0 3px 12px rgb(15 23 42/.045);
}
.dark .qn-executive-priority-card,
.dark .qn-executive-charts-kpis article,
.dark .qn-executive-facility-card{
  box-shadow:0 3px 14px rgb(0 0 0/.18);
}

body.qn-executive-presentation{
  overflow:hidden !important;
  --sidebar-width:0px !important;
}
body.qn-executive-presentation .kt-wrapper{
  padding:0 !important;
  margin:0 !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
}
body.qn-executive-presentation #content,
body.qn-executive-presentation #content>.kt-container-fixed{
  padding:0 !important;
  margin:0 !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
}
body.qn-executive-presentation .qn-executive-charts-page{
  position:fixed !important;
  inset:0 !important;
  z-index:10000 !important;
  box-sizing:border-box !important;
  width:auto !important;
  max-width:none !important;
  height:100vh !important;
  height:100dvh !important;
  margin:0 !important;
  padding:1rem !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  background:var(--background) !important;
  overscroll-behavior:contain;
}
body.qn-executive-presentation .qn-executive-charts-hero{
  top:0 !important;
  width:100% !important;
  box-sizing:border-box !important;
}
@media(max-width:640px){
  body.qn-executive-presentation .qn-executive-charts-page{padding:.65rem !important;}
}

/* V2-20F — Executive staffing official report actions */
.qn-executive-charts-hero-actions .qn-report-export-actions{
  justify-content:flex-end;
}
body.qn-executive-presentation .qn-executive-charts-hero-actions .qn-report-export-actions{
  display:none!important;
}
@media(max-width:900px){
  .qn-executive-charts-hero-actions .qn-report-export-actions{justify-content:flex-start;}
}

/* V2-21A-R2 — Training attendance filter visibility + scrollable KTSelect */
.qn-training-employee-option.hidden {
  display: none !important;
}
.qn-training-attendance-select-dropdown .qn-training-attendance-select-options,
.qn-training-attendance-select-options {
  max-height: min(17rem, calc(100vh - 15rem));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}


/* V2-21A-R3 — Training attendance active facility filter, reliable unit scrolling,
   and stronger current-day emphasis in the annual training calendar. */
.qn-training-attendance-select-dropdown [data-kt-select-options],
[data-training-employee-facility] + [data-kt-select-wrapper] [data-kt-select-options],
[data-training-employee-unit] + [data-kt-select-wrapper] [data-kt-select-options] {
  max-height: min(18rem, calc(100vh - 14rem)) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scrollbar-width: thin;
}
[data-training-employee-facility] + [data-kt-select-wrapper]:not(.disabled) [data-kt-select-display] {
  cursor: pointer;
}

.qn-training-calendar-card .fc .fc-day-today {
  background: color-mix(in srgb, var(--color-primary) 9%, var(--color-background)) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 32%, var(--color-border));
}
.qn-training-calendar-card .fc .fc-day-today .fc-daygrid-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.7rem;
  height: 1.7rem;
  margin: .22rem;
  padding: 0;
  border-radius: 999px;
  background: var(--color-primary);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 13%, transparent);
}
.qn-training-calendar-card .fc .fc-timegrid-col.fc-day-today,
.qn-training-calendar-card .fc .fc-timegrid-col.fc-day-today .fc-timegrid-col-frame {
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-background)) !important;
}


/* V2-21A-R4 — attendance correction workflow + professional lock state */
.qn-training-attendance-status-card {
  display: grid;
  gap: .7rem;
  padding: .85rem .9rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: .8rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-success) 6%, var(--color-background)), color-mix(in srgb, var(--color-primary) 5%, var(--color-background)));
}
.qn-training-attendance-status-badges { display: flex; flex-wrap: wrap; gap: .45rem; }
.qn-training-attendance-status-badges .kt-badge { gap: .3rem; }
.qn-training-attendance-status-copy { display: grid; gap: .25rem; }
.qn-training-attendance-status-copy strong { color: var(--color-mono); font-size: .78rem; }
.qn-training-attendance-status-copy span { color: var(--color-secondary-foreground); font-size: .72rem; line-height: 1.55; }
.qn-training-attendee-chip { padding-inline-end: .28rem; }
.qn-training-attendee-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  margin-inline-start: .15rem;
  border-radius: 999px;
  color: var(--color-destructive);
  background: color-mix(in srgb, var(--color-destructive) 9%, transparent);
  transition: background-color .15s ease, transform .15s ease;
}
.qn-training-attendee-remove:hover { background: color-mix(in srgb, var(--color-destructive) 16%, transparent); transform: scale(1.04); }
.qn-training-attendance-correction-panel {
  padding: .9rem;
  border: 1px solid color-mix(in srgb, var(--color-destructive) 22%, var(--color-border));
  border-radius: .8rem;
  background: color-mix(in srgb, var(--color-destructive) 4%, var(--color-background));
}
.qn-training-attendance-correction-head { display: flex; align-items: flex-start; gap: .7rem; }
.qn-training-attendance-correction-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.25rem; height: 2.25rem; flex: 0 0 2.25rem; border-radius: 999px;
  color: var(--color-destructive); background: color-mix(in srgb, var(--color-destructive) 10%, transparent);
}
.qn-training-attendance-correction-head > div { display: grid; gap: .2rem; }
.qn-training-attendance-correction-head strong { color: var(--color-mono); font-size: .78rem; }
.qn-training-attendance-correction-head span { color: var(--color-secondary-foreground); font-size: .7rem; line-height: 1.5; }
.qn-training-attendance-correction-person {
  margin-top: .65rem; padding: .55rem .65rem; border-radius: .6rem;
  background: color-mix(in srgb, var(--color-muted) 45%, transparent); color: var(--color-mono); font-size: .74rem; font-weight: 600;
}
.qn-training-correction-list { display: grid; gap: .45rem; }
.qn-training-correction-row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .6rem; align-items: center;
  padding: .6rem .7rem; border: 1px dashed color-mix(in srgb, var(--color-destructive) 24%, var(--color-border));
  border-radius: .65rem; background: color-mix(in srgb, var(--color-destructive) 3%, var(--color-background));
}
.qn-training-correction-identity { min-width: 0; color: var(--color-mono); font-size: .73rem; font-weight: 600; overflow-wrap: anywhere; }
.qn-training-correction-row small { grid-column: 1 / -1; color: var(--color-secondary-foreground); font-size: .68rem; line-height: 1.45; overflow-wrap: anywhere; }
@media (max-width: 639px) {
  .qn-training-correction-row { grid-template-columns: 1fr; }
  .qn-training-correction-row small { grid-column: auto; }
}
