:root {
  --ink: #171717;
  --ink-2: #2b2b2b;
  --muted: #66645f;
  --line: #dedbd4;
  --line-strong: #cbc7bf;
  --canvas: #f4f3ef;
  --surface: #ffffff;
  --surface-soft: #ebe9e3;
  --sidebar: #171717;
  --sidebar-2: #222222;
  --red: #e31d1a;
  --red-dark: #b81614;
  --blue: #18a8ff;
  --blue-dark: #087fca;
  --green: #1f8a55;
  --amber: #a86a00;
  --danger: #b42318;
  --radius-sm: 7px;
  --radius: 10px;
  --shadow-float: 0 6px 14px rgba(20, 20, 18, 0.08);
  --font: "Segoe UI Variable", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --z-sticky: 20;
  --z-modal-backdrop: 40;
  --z-modal: 50;
  --z-toast: 70;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--canvas); color: var(--ink); font-family: var(--font); }
body { min-height: 100vh; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }

.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

.shell { min-height: 100vh; display: flex; }
.sidebar { width: 236px; background: var(--sidebar); color: #f4f3ef; padding: 24px 18px 20px; display: flex; flex-direction: column; position: fixed; inset: 0 auto 0 0; z-index: var(--z-sticky); }
.brand { display: flex; align-items: center; justify-content: center; min-height: 104px; padding: 2px 2px 18px; border-bottom: 1px solid #33322f; }
.brand img { width: 184px; max-width: 100%; height: auto; max-height: 88px; object-fit: contain; border-radius: 10px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.16); }
.brand-copy { display: none; }
.brand-title { font-size: 14px; font-weight: 800; line-height: 1.15; letter-spacing: -0.015em; }
.brand-sub { font-size: 11px; color: #bcb8b0; margin-top: 4px; }
.nav { padding-top: 18px; display: grid; gap: 5px; }
.nav-btn { width: 100%; border: 0; color: #d5d2cb; background: transparent; text-align: left; padding: 10px 12px; border-radius: 7px; display: flex; gap: 10px; align-items: center; font-size: 13px; font-weight: 650; }
.nav-btn:hover { background: #242421; color: #fff; }
.nav-btn.active { background: #2b2926; color: #fff; }
.nav-dot { width: 7px; height: 7px; border-radius: 50%; background: #77736c; flex: 0 0 auto; }
.nav-btn.active .nav-dot { background: var(--blue); box-shadow: 0 0 0 4px rgba(24,168,255,.13), 0 0 12px rgba(24,168,255,.42); }
.sidebar-footer { margin-top: auto; padding-top: 18px; border-top: 1px solid #33322f; }
.sidebar-user { font-size: 12px; color: #bcb8b0; word-break: break-word; margin-bottom: 10px; }

.main { margin-left: 236px; width: calc(100% - 236px); min-height: 100vh; }
.topbar { height: 68px; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 30px; position: sticky; top: 0; z-index: var(--z-sticky); }
.topbar-title { font-weight: 800; font-size: 14px; }
.topbar-meta { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; }
.content { padding: 32px 34px 56px; max-width: 1440px; margin: 0 auto; }
.page-head { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; margin-bottom: 24px; }
.page-title { margin: 0; font-size: clamp(27px, 3vw, 42px); line-height: 1.05; letter-spacing: -0.035em; text-wrap: balance; }
.page-copy { margin: 8px 0 0; color: var(--muted); max-width: 70ch; font-size: 14px; line-height: 1.6; }

.btn { border: 1px solid transparent; border-radius: 7px; padding: 10px 15px; font-weight: 750; font-size: 13px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.btn-primary { background: var(--red); color: #fff; }
.btn-primary:hover { background: var(--red-dark); }
.btn-secondary { background: var(--surface); color: var(--ink); border-color: var(--line-strong); }
.btn-secondary:hover { background: var(--surface-soft); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-ghost { background: transparent; color: inherit; border-color: #494844; }
.btn-danger { background: #fff; color: var(--danger); border-color: #e6b4ae; }
.btn:disabled { opacity: .55; cursor: not-allowed; }

.stats-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); min-width: 150px; padding: 16px 18px; flex: 1 1 150px; }
.stat-value { font-size: 28px; font-weight: 850; letter-spacing: -0.035em; }
.stat-label { color: var(--muted); font-size: 12px; margin-top: 3px; }

.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.panel-head { padding: 17px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); }
.panel-title { margin: 0; font-size: 15px; font-weight: 800; }
.panel-body { padding: 20px; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 13px 18px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; font-size: 13px; }
th { color: var(--muted); font-weight: 700; background: #faf9f6; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #faf9f6; }
.table-link { border: 0; background: none; padding: 0; font-weight: 800; color: var(--ink); text-align: left; }
.table-link:hover { color: var(--red); }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 8px; font-size: 11px; font-weight: 750; background: #eeece6; color: #4d4b46; white-space: nowrap; }
.badge.active { background: #e7f4ec; color: #17633e; }
.badge.inactive { background: #f1efeb; color: #706d66; }
.badge.risk { background: #fff1e2; color: #8a5000; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.label { font-size: 12px; font-weight: 750; color: #403e3a; }
.input, .select, .textarea { width: 100%; border: 1px solid var(--line-strong); background: #fff; color: var(--ink); border-radius: 7px; padding: 11px 12px; outline: none; min-height: 42px; }
.textarea { min-height: 96px; resize: vertical; line-height: 1.5; }
.input:focus, .select:focus, .textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(227,29,26,.10); }
.help { color: var(--muted); font-size: 11px; line-height: 1.45; }
.form-actions { margin-top: 20px; display: flex; gap: 10px; justify-content: flex-end; }

.detail-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: 20px; align-items: start; }
.summary-list { display: grid; gap: 0; }
.summary-row { display: grid; grid-template-columns: 170px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.summary-row:last-child { border-bottom: 0; }
.summary-key { color: var(--muted); }
.summary-value { font-weight: 650; min-width: 0; overflow-wrap: anywhere; }
.empty { padding: 36px 22px; text-align: center; color: var(--muted); }
.empty strong { display: block; color: var(--ink); font-size: 15px; margin-bottom: 6px; }

.auth-page { min-height: 100vh; display: grid; grid-template-columns: minmax(480px, 1.08fr) minmax(440px, .92fr); background: #fff; }
.auth-brand { position: relative; overflow: hidden; color: #fff; padding: clamp(42px, 5vw, 76px); display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; background: linear-gradient(145deg, #07182b 0%, #0a3157 46%, #0b6293 74%, #16a6d8 100%); isolation: isolate; }
.auth-brand::before { content: ""; position: absolute; width: 620px; height: 620px; border-radius: 50%; right: -310px; top: -220px; background: radial-gradient(circle, rgba(104,226,255,.42) 0%, rgba(25,164,220,.12) 44%, rgba(7,24,43,0) 70%); z-index: -1; }
.auth-brand::after { content: ""; position: absolute; width: 520px; height: 520px; left: -300px; bottom: -300px; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); box-shadow: 0 0 0 72px rgba(255,255,255,.025), 0 0 0 144px rgba(255,255,255,.018); z-index: -1; }
.auth-watermark { position: absolute; width: min(70vw, 720px); max-width: 78%; height: auto; right: -8%; top: 50%; transform: translateY(-48%); opacity: .085; filter: grayscale(1) brightness(0) invert(1); pointer-events: none; user-select: none; z-index: 0; }
.auth-brand-content { position: relative; z-index: 1; max-width: 620px; display: flex; flex-direction: column; justify-content: center; flex: 1; }
.auth-kicker { display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; margin-top: 0; padding: 8px 11px; border-radius: 999px; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.18); color: #e9f8ff; font-size: 11px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; backdrop-filter: blur(12px); }
.auth-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #64dcff; box-shadow: 0 0 12px rgba(100,220,255,.8); }
.auth-brand h1 { margin: 24px 0 16px; max-width: 12.5ch; font-size: clamp(42px, 4.35vw, 68px); line-height: .98; letter-spacing: -0.047em; text-wrap: balance; }
.auth-brand p { max-width: 54ch; margin: 0; color: #d4edf8; line-height: 1.65; font-size: 14px; }
.auth-note { position: relative; z-index: 1; display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,.66); font-size: 11px; letter-spacing: .02em; }
.auth-note-dot { width: 7px; height: 7px; border-radius: 50%; background: #5ee29f; box-shadow: 0 0 10px rgba(94,226,159,.65); }
.auth-form-wrap { position: relative; display: grid; place-items: center; padding: clamp(34px, 5vw, 72px); background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%); }
.auth-form-wrap::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(24,168,255,.055), transparent 22%); }
.auth-form-stack { position: relative; width: min(470px, 100%); display: grid; justify-items: center; gap: 18px; }
.auth-right-logo { width: min(330px, 82%); height: auto; display: block; object-fit: contain; border-radius: 16px; box-shadow: 0 12px 34px rgba(12,42,66,.08); }
.auth-card { position: relative; width: 100%; padding: clamp(30px, 3vw, 40px); border: 1px solid #dfe6ec; border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: 0 24px 70px rgba(12,42,66,.10); }
.auth-card h2 { font-size: 30px; letter-spacing: -0.035em; margin: 0 0 9px; }
.auth-card > p { color: var(--muted); line-height: 1.65; margin: 0 0 26px; }
.auth-form { display: grid; gap: 15px; }
.auth-form .input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(24,168,255,.12); }
.auth-form .btn-primary { background: linear-gradient(135deg, #0a7ec5, #18a8ff); box-shadow: 0 10px 24px rgba(24,168,255,.20); }
.auth-form .btn-primary:hover { background: linear-gradient(135deg, #0873b4, #079be8); }
.auth-password-actions { display: flex; justify-content: flex-end; margin-top: -5px; }
.forgot-link { border: 0; background: transparent; color: #0878bc; padding: 0; font-size: 12px; font-weight: 800; cursor: pointer; }
.forgot-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.password-recovery-panel .auth-form { margin-top: 18px; }
.recovery-mark { background: #e8f6fd; color: #0878bc; }
.auth-switch { margin-top: 18px; font-size: 12px; color: var(--muted); }
.auth-switch button { border: 0; background: none; color: var(--blue-dark); padding: 0; font-weight: 800; }

.auth-full { width: 100%; }
.auth-alert { margin-bottom: 22px; border-radius: 9px; padding: 13px 14px; display: grid; gap: 4px; font-size: 12px; line-height: 1.5; }
.auth-alert strong { font-size: 13px; }
.auth-alert.error { background: #fff0ee; color: #7b211c; border: 1px solid #efc5c0; }
.auth-alert.success { background: #edf7f1; color: #145e3a; border: 1px solid #c4e3d1; }
.resend-link, .text-action { border: 0; background: transparent; color: var(--blue-dark); padding: 0; font-size: 12px; font-weight: 750; }
.resend-link { margin-top: 14px; }
.confirmation-panel h2 { font-size: 28px; letter-spacing: -0.025em; margin: 16px 0 8px; }
.confirmation-panel > p { color: var(--muted); line-height: 1.6; margin: 0 0 22px; }
.confirmation-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #e7f4ec; color: #17633e; font-size: 21px; font-weight: 850; }
.resend-form { display: grid; gap: 12px; }
.confirmation-help { color: var(--muted); font-size: 11px; line-height: 1.5; margin-top: 12px; max-width: 58ch; }
.auth-actions-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.text-action.muted { color: #56534e; }
.resend-link:hover, .text-action:hover, .auth-switch button:hover { text-decoration: underline; text-underline-offset: 3px; }

.bootstrap { min-height: 100vh; display: grid; place-items: center; padding: 32px; background: var(--canvas); }
.bootstrap-card { width: min(720px, 100%); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 34px; }
.bootstrap-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.bootstrap-brand img { width: 62px; height: 62px; object-fit: contain; }
.bootstrap-card h1 { margin: 0; font-size: 30px; letter-spacing: -0.03em; }
.bootstrap-card p { color: var(--muted); line-height: 1.6; }

.modal-backdrop { position: fixed; inset: 0; background: rgba(18,18,17,.50); display: grid; place-items: center; padding: 20px; z-index: var(--z-modal-backdrop); }
.modal { width: min(720px, 100%); max-height: min(86vh, 850px); overflow: auto; background: var(--surface); border-radius: 12px; box-shadow: var(--shadow-float); z-index: var(--z-modal); }
.modal-head { padding: 20px 22px; border-bottom: 1px solid var(--line); display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.modal-title { margin: 0; font-size: 21px; letter-spacing: -0.02em; }
.modal-body { padding: 22px; }
.icon-btn { width: 36px; height: 36px; border: 1px solid var(--line); background: #fff; border-radius: 7px; font-size: 20px; line-height: 1; }

.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: var(--z-toast); display: grid; gap: 10px; width: min(360px, calc(100vw - 40px)); }
.toast { background: #1f1f1e; color: #fff; border-radius: 9px; padding: 13px 15px; box-shadow: var(--shadow-float); font-size: 13px; line-height: 1.45; }
.toast.error { background: #7f1d1d; }
.toast.success { background: #14532d; }

.loading-screen { min-height: 100vh; display: grid; place-items: center; padding: 30px; color: var(--muted); background: radial-gradient(circle at 50% 20%, #ffffff 0%, #f4f9fc 50%, #edf4f8 100%); }
.loading-stage { width: min(560px, 92vw); display: grid; place-items: center; text-align: center; }
.splash-logo { width: min(390px, 78vw); height: auto; display: block; padding: 16px 20px; border-radius: 20px; background: #fff; box-shadow: 0 22px 70px rgba(7,55,88,.13); animation: splash-enter .55s cubic-bezier(.16,1,.3,1) both; }
.splash-progress { display: grid; place-items: center; gap: 7px; margin-top: 34px; }
.splash-status { font-size: 12px; font-weight: 750; letter-spacing: .02em; color: #64727d; }
.spinner { width: 25px; height: 25px; border: 3px solid #d5e4ed; border-top-color: var(--blue); border-radius: 50%; animation: spin .75s linear infinite; margin: 0 auto 4px; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes splash-enter { from { opacity: 0; transform: translateY(12px) scale(.975); } to { opacity: 1; transform: translateY(0) scale(1); } }

.mobile-menu { display: none; }

@media (max-width: 900px) {
  .sidebar { transform: translateX(-100%); transition: transform .22s cubic-bezier(.16,1,.3,1); }
  .sidebar.open { transform: translateX(0); }
  .main { margin-left: 0; width: 100%; }
  .mobile-menu { display: inline-flex; }
  .topbar { padding: 0 18px; }
  .content { padding: 26px 18px 48px; }
  .detail-layout { grid-template-columns: 1fr; }
  .auth-page { grid-template-columns: 1fr; }
  .auth-brand { min-height: 360px; padding: 30px 28px 34px; }
  .auth-watermark { width: 520px; max-width: 86%; right: -18%; opacity: .07; }
  .auth-brand-content { min-height: 260px; justify-content: center; }
  .auth-kicker { margin-top: 0; }
  .auth-brand h1 { font-size: 40px; max-width: 13ch; margin-top: 18px; }
  .auth-brand p { max-width: 62ch; font-size: 13px; }
  .auth-note { margin-top: 28px; }
  .auth-form-wrap { padding: 34px 20px 46px; }
  .auth-form-stack { width: min(470px, 100%); gap: 16px; }
  .auth-right-logo { width: min(300px, 82%); }
  .auth-card { padding: 28px 24px; }
}
@media (max-width: 620px) {
  .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
  .page-head { flex-direction: column; }
  .page-head .btn { width: 100%; }
  .summary-row { grid-template-columns: 1fr; gap: 4px; }
  .topbar-meta .workspace-name { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* Employer setup v1.2 */
.employer-sections { display: grid; gap: 18px; margin-top: 20px; }
.employer-section .panel-head { align-items: center; }
.section-help { margin-top: 4px; max-width: 76ch; }
.setup-checklist { display: grid; gap: 2px; }
.setup-status { display: grid; grid-template-columns: 24px 1fr auto; gap: 9px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.setup-status:last-child { border-bottom: 0; }
.setup-status strong { font-size: 11px; color: var(--muted); }
.setup-status-mark { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: #eeece6; color: #6b6861; font-weight: 850; }
.setup-status-mark.done { background: #e7f4ec; color: #17633e; }
.empty.compact { padding: 26px 20px; }
.action-cell { width: 1%; white-space: nowrap; text-align: right; }
.table-action { border: 0; background: transparent; color: var(--red); font-size: 12px; font-weight: 800; padding: 6px 4px; }
.table-action:hover { text-decoration: underline; text-underline-offset: 3px; }
.check-row { min-height: 42px; display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 700; color: #403e3a; }
.check-row input { width: 16px; height: 16px; accent-color: var(--red); }
@media (max-width: 700px) {
  .employer-section .panel-head { align-items: stretch; flex-direction: column; }
  .employer-section .panel-head .btn { width: 100%; }
}


/* Organisation & People v1.3 */
.people-toolbar { margin-bottom: 18px; padding: 16px 18px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.people-company-field { width: min(420px, 100%); }
.people-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; color: var(--muted); font-size: 12px; }
.people-summary strong { color: var(--ink); }
.people-list-head { align-items:flex-end; }
.people-list-controls { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
.people-search { width:min(320px,46vw); }
.people-sort { width:180px; }
.people-list-controls .input,.people-list-controls .select { min-height:38px; padding:9px 11px; }
#people-table tr[hidden] { display:none; }
.person-top { margin-bottom: 18px; }
.employee-sections { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.ofo-readiness { display: grid; gap: 10px; }
.ofo-readiness strong { font-size: 14px; }
.ofo-readiness p { margin: 0; color: var(--muted); line-height: 1.6; font-size: 12px; max-width: 60ch; }
.ofo-readiness .btn { justify-self: start; margin-top: 4px; }
@media (max-width: 800px) {
  .people-toolbar { align-items: stretch; flex-direction: column; }
  .employee-sections { grid-template-columns: 1fr; }
  .people-list-head { align-items:stretch; flex-direction:column; }
  .people-list-controls,.people-search,.people-sort { width:100%; }
}

/* OFO 2021 mapping */
.ofo-modal { width: min(760px, 100%); }
.ofo-search-meta { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:10px 0 14px; color:var(--muted); font-size:12px; }
.ofo-results { border-top:1px solid var(--line); max-height:460px; overflow:auto; }
.ofo-result { width:100%; display:flex; align-items:center; gap:14px; padding:13px 4px; border:0; border-bottom:1px solid var(--line); background:transparent; text-align:left; cursor:pointer; color:var(--ink); }
.ofo-result:hover { background:rgba(18,18,17,.025); }
.ofo-result:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.ofo-result:disabled { cursor:wait; opacity:.65; }
.ofo-code { width:94px; flex:0 0 94px; font:600 12px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; color:var(--accent); }
.ofo-result-main { min-width:0; display:grid; gap:3px; flex:1; }
.ofo-result-main strong { font-size:13px; }
.ofo-result-main small { color:var(--muted); font-size:11px; line-height:1.35; }
.ofo-select-label { font-size:11px; font-weight:700; color:var(--accent); }
@media (max-width:640px){.ofo-code{width:82px;flex-basis:82px}.ofo-select-label{display:none}.ofo-results{max-height:56vh}}

/* v1.5 — reporting demographics + qualifications */
.employee-record-sections { display: grid; gap: 20px; margin-top: 20px; }
.sensitive-panel .panel-head { align-items: flex-start; }
.sensitive-panel .panel-title { display: flex; align-items: center; gap: 8px; }
.sensitive-panel .panel-title::after { content: "Sensitive"; font-size: 10px; line-height: 1; font-weight: 800; color: #7b211c; background: #fff0ee; border-radius: 999px; padding: 5px 7px; }
.sensitive-form-note { display: grid; gap: 4px; padding: 13px 14px; margin-bottom: 18px; border: 1px solid #efc5c0; border-radius: 9px; background: #fff7f5; color: #66201b; font-size: 12px; line-height: 1.5; }
.sensitive-form-note strong { font-size: 13px; }
.danger-text { color: var(--danger); }
.action-cell { white-space: nowrap; }
.action-cell .table-action + .table-action { margin-left: 10px; }

@media (max-width: 760px) {
  .employee-record-sections { gap: 14px; }
  .sensitive-panel .panel-head { align-items: stretch; }
  .sensitive-panel .panel-head .btn { width: 100%; }
}


/* v1.6 Planning & TNA */
.planning-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:20px; }
.planning-company-field { width:min(420px,100%); }
.planning-actions { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; }
.planning-stats { margin-bottom:20px; }
.planning-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start; }
.planning-wide { grid-column:1 / -1; }
.plan-list { display:grid; }
.plan-row { padding:16px 18px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 18px; align-items:start; }
.plan-row:last-child { border-bottom:0; }
.plan-main strong { font-size:13px; }
.plan-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.plan-actions-list { grid-column:1 / -1; display:grid; gap:6px; padding:10px 0 0 14px; border-top:1px solid var(--line); margin-top:4px; }
.plan-actions-list > div { display:flex; justify-content:space-between; gap:14px; font-size:12px; }
@media (max-width: 900px) {
  .planning-toolbar { align-items:stretch; flex-direction:column; }
  .planning-actions { justify-content:flex-start; }
  .planning-grid { grid-template-columns:1fr; }
  .planning-wide { grid-column:auto; }
  .plan-row { grid-template-columns:1fr; }
  .plan-meta { justify-content:flex-start; }
}

/* WSP Planning v1.7 */
.wsp-toolbar { align-items: end; }
.cycle-banner { margin: 0 0 18px; padding: 15px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.cycle-banner > div:first-child { display: grid; gap: 4px; min-width: 0; }
.cycle-banner strong { font-size: 14px; }
.cycle-banner span { font-size: 12px; color: var(--muted); }
.cycle-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.cycle-meta .badge { color: #17633e; }
.wsp-note { margin-top: 16px; padding: 14px 16px; background: #ebe9e3; border-radius: var(--radius-sm); display: flex; gap: 10px; align-items: baseline; font-size: 12px; color: #4d4b46; }
.wsp-note strong { color: var(--ink); }
@media (max-width: 760px) {
  .wsp-toolbar { display: grid; grid-template-columns: 1fr; }
  .cycle-banner { align-items: flex-start; flex-direction: column; }
  .cycle-meta { justify-content: flex-start; }
  .wsp-note { display: grid; gap: 4px; }
}

/* v1.8 — Training Delivery & ATR actuals */
.training-ready { margin-bottom: 18px; }
.training-detail-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 18px; margin-top: 18px; align-items: start; }
.training-detail-grid > .panel:first-child { grid-column: 1 / -1; }
.atr-panel { margin-top: 18px; }
.training-detail-grid .panel-head { align-items: flex-start; }
.training-detail-grid .panel-body { padding-top: 14px; }
.training-detail-grid .summary-row { grid-template-columns: 150px minmax(0,1fr); }
.training-ready .btn { min-height: 34px; padding: 7px 11px; }
@media (max-width: 940px) {
  .training-detail-grid { grid-template-columns: 1fr; }
  .training-detail-grid > .panel:first-child { grid-column: auto; }
}
@media (max-width: 760px) {
  .training-detail-grid { gap: 14px; }
  .training-detail-grid .panel-head { align-items: stretch; }
  .training-detail-grid .panel-head .btn { width: 100%; }
}

/* v1.9 — ATR Reporting & WSP/ATR variance */
.atr-toolbar { align-items: end; }
.atr-stats .stat-value { font-size: 25px; }
.variance-zero { color: var(--green); }
.atr-summary-panel, .atr-comparison-panel, .atr-learners-panel { margin-top: 18px; }
.variance-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.variance-grid > div { padding: 16px 17px; display: grid; gap: 5px; border-right: 1px solid var(--line); background: #faf9f6; min-width: 0; }
.variance-grid > div:last-child { border-right: 0; }
.variance-grid span { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.variance-grid strong { font-size: 20px; letter-spacing: -0.025em; }
.variance-grid small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.variance-review-note { display: grid; gap: 4px; margin-bottom: 18px; padding: 13px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #faf9f6; color: #4d4b46; font-size: 12px; line-height: 1.5; }
.variance-review-note strong { color: var(--ink); }
@media (max-width: 980px) {
  .variance-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .variance-grid > div:nth-child(2) { border-right: 0; }
  .variance-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}
@media (max-width: 620px) {
  .atr-toolbar { display: grid; grid-template-columns: 1fr; }
  .variance-grid { grid-template-columns: 1fr; }
  .variance-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .variance-grid > div:last-child { border-bottom: 0; }
}

/* v2.0 — Compliance Readiness & Submission Simulator */
.compliance-toolbar { align-items: end; }
.readiness-hero { margin: 18px 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 24px; display: flex; align-items: center; gap: 24px; }
.readiness-hero.blocked { border-left: 5px solid var(--danger); }
.readiness-hero.warning { border-left: 5px solid var(--amber); }
.readiness-hero.ready { border-left: 5px solid var(--green); }
.readiness-score { width: 118px; height: 118px; flex: 0 0 118px; border-radius: 50%; border: 9px solid var(--surface-soft); display: grid; place-items: center; align-content: center; }
.readiness-score span { font-size: 38px; line-height: 1; font-weight: 900; letter-spacing: -0.04em; }
.readiness-score small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.readiness-copy { min-width: 0; }
.readiness-copy .eyebrow { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }
.readiness-copy h2 { margin: 4px 0 7px; font-size: 30px; letter-spacing: -0.03em; }
.readiness-copy p { margin: 0; color: var(--muted); line-height: 1.55; max-width: 74ch; font-size: 13px; }
.readiness-meta { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 14px; font-size: 12px; font-weight: 750; }
.readiness-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(300px,.7fr); gap: 18px; align-items: start; }
.readiness-side { display: grid; gap: 18px; }
.readiness-checks { display: grid; }
.readiness-check { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 12px; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.readiness-check:last-child { border-bottom: 0; }
.check-mark { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 900; background: #eeece6; color: #55524c; }
.check-mark.active { background: #e7f4ec; color: #17633e; }
.check-mark.readiness-blocked { background: #fff0ee; color: #8c2018; }
.check-mark.readiness-error { background: #fff5e8; color: #8a5000; }
.check-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.check-title strong { font-size: 12px; }
.readiness-check p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.check-details { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 11px; color: #56534e; }
.check-details span { background: #faf9f6; border: 1px solid var(--line); padding: 5px 7px; border-radius: 5px; }
.check-details b { text-transform: capitalize; margin-right: 4px; }
.badge.readiness-blocked { background: #fff0ee; color: #8c2018; }
.badge.readiness-error { background: #fff5e8; color: #8a5000; }
.rule-safety { margin-top: 16px; padding: 13px 14px; border-radius: var(--radius-sm); display: grid; gap: 4px; font-size: 11px; line-height: 1.5; }
.rule-safety.blocked { background: #fff0ee; color: #74231d; border: 1px solid #efc5c0; }
.rule-safety.safe { background: #edf7f1; color: #145e3a; border: 1px solid #c4e3d1; }
.finding-list { display: grid; }
.finding-list > div { padding: 13px 16px; border-bottom: 1px solid var(--line); }
.finding-list > div:last-child { border-bottom: 0; }
.finding-list p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
@media (max-width: 980px) { .readiness-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) {
  .compliance-toolbar { display: grid; grid-template-columns: 1fr; }
  .readiness-hero { align-items: flex-start; flex-direction: column; }
  .readiness-score { width: 96px; height: 96px; flex-basis: 96px; border-width: 7px; }
  .readiness-score span { font-size: 31px; }
  .check-title { align-items: flex-start; flex-direction: column; gap: 6px; }
}

/* v2.1 — Governance, signatories and evidence */
.head-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.filter-bar { display:flex; gap:14px; align-items:end; margin-bottom:18px; }
.filter-field { display:grid; gap:6px; min-width:min(420px,100%); font-size:11px; font-weight:750; color:var(--muted); }
.governance-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.72fr); gap:18px; align-items:start; }
.governance-main, .governance-side { display:grid; gap:18px; }
.committee-tabs { display:flex; gap:1px; overflow-x:auto; background:var(--line); border-top:0; }
.committee-tab { appearance:none; border:0; background:#faf9f6; min-width:180px; padding:13px 16px; text-align:left; display:grid; gap:4px; color:var(--ink); }
.committee-tab:hover { background:#f0eee8; }
.committee-tab.active { background:var(--surface); box-shadow:inset 0 -3px 0 var(--red); }
.committee-tab strong { font-size:12px; }
.committee-tab span { color:var(--muted); font-size:10px; text-transform:capitalize; }
.meeting-list { display:grid; }
.meeting-row { appearance:none; border:0; border-bottom:1px solid var(--line); background:var(--surface); padding:14px 18px; display:flex; justify-content:space-between; align-items:center; gap:14px; text-align:left; color:var(--ink); }
.meeting-row:last-child { border-bottom:0; }
.meeting-row:hover { background:#faf9f6; }
.meeting-row.selected { box-shadow:inset 3px 0 0 var(--red); background:#faf9f6; }
.meeting-row > span:first-child { display:grid; gap:4px; }
.meeting-row strong { font-size:12px; }
.meeting-row small { color:var(--muted); font-size:11px; }
.meeting-flags { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.toggle-btn { border:1px solid var(--line-strong); border-radius:999px; background:var(--surface); color:#57544e; min-height:30px; padding:5px 10px; font-size:11px; font-weight:750; }
.toggle-btn.on { border-color:#b8d9c5; background:#e7f4ec; color:#17633e; }
.toggle-btn:disabled { opacity:.45; cursor:not-allowed; }
.side-list { display:grid; }
.side-list-row { padding:15px 16px; border-bottom:1px solid var(--line); display:flex; gap:12px; justify-content:space-between; align-items:flex-start; }
.side-list-row:last-child { border-bottom:0; }
.side-list-row > div:first-child { display:grid; gap:3px; min-width:0; }
.side-list-row > div:last-child { display:grid; gap:7px; justify-items:end; }
.side-list-row strong { font-size:12px; }
.side-list-row span, .side-list-row small { font-size:10px; color:var(--muted); line-height:1.35; }
.side-list-row .badge { color:inherit; }
.governance-note .panel-body, .evidence-guidance .panel-body { display:grid; gap:6px; }
.governance-note p, .evidence-guidance p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.evidence-guidance { margin-top:18px; }
.fix-link { margin-top:9px; border:0; background:transparent; padding:0; color:var(--red-dark); font-size:11px; font-weight:800; }
.fix-link:hover { text-decoration:underline; }
@media (max-width: 980px) {
  .governance-layout { grid-template-columns:1fr; }
  .governance-side { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .head-actions { justify-content:flex-start; }
  .page-head { flex-direction:column; }
  .filter-bar { display:grid; }
  .filter-field { min-width:0; }
  .governance-side { grid-template-columns:1fr; }
  .meeting-row { align-items:flex-start; flex-direction:column; }
  .meeting-flags { justify-content:flex-start; }
  .committee-tab { min-width:150px; }
}

/* v2.2 Workforce Bulk Import */
.import-toolbar { margin-bottom: 20px; }
.import-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .55fr); gap: 20px; align-items: start; margin-bottom: 20px; }
.import-drop { min-height: 164px; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: #faf9f6; display: grid; place-items: center; align-content: center; gap: 6px; padding: 28px; text-align: center; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.import-drop:hover { border-color: var(--red); background: #fff; }
.import-drop-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 8px; border: 1px solid var(--line-strong); background: var(--surface); font-size: 11px; font-weight: 850; letter-spacing: .06em; }
.import-drop strong { font-size: 15px; }
.import-drop > span:last-of-type { color: var(--muted); font-size: 12px; max-width: 52ch; line-height: 1.5; }
.import-sensitive { margin-top: 16px; }
.import-parse-error { margin-top: 14px; border: 1px solid #efc5c0; background: #fff0ee; color: #7b211c; padding: 12px 14px; border-radius: 8px; font-size: 12px; line-height: 1.5; }
.import-file-meta, .import-summary-strip { display: flex; flex-wrap: wrap; gap: 0; margin-top: 16px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.import-file-meta > div, .import-summary-strip > div { flex: 1 1 130px; padding: 13px 15px; border-right: 1px solid var(--line); display: grid; gap: 2px; }
.import-file-meta > div:last-child, .import-summary-strip > div:last-child { border-right: 0; }
.import-file-meta strong, .import-summary-strip strong { font-size: 18px; letter-spacing: -.025em; }
.import-file-meta span, .import-summary-strip span { color: var(--muted); font-size: 11px; }
.import-guide .panel-body { display: grid; gap: 0; padding-top: 4px; padding-bottom: 4px; }
.import-rule { padding: 14px 0; border-bottom: 1px solid var(--line); display: grid; gap: 5px; }
.import-rule:last-child { border-bottom: 0; }
.import-rule strong { font-size: 12px; }
.import-rule span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.import-results, .import-history { margin-top: 20px; }
.import-results .import-summary-strip { margin: 16px 20px 0; }
.import-success { margin: 16px 20px 0; padding: 13px 15px; border-radius: 8px; border: 1px solid #c4e3d1; background: #edf7f1; color: #145e3a; display: grid; gap: 3px; }
.import-success strong { font-size: 13px; }
.import-success span { font-size: 11px; line-height: 1.5; }
.import-table td { vertical-align: top; }
.import-messages { display: grid; gap: 4px; margin-top: 7px; max-width: 480px; }
.import-message { display: flex; gap: 6px; align-items: baseline; font-size: 10.5px; line-height: 1.4; }
.import-message strong { text-transform: capitalize; color: #4a4843; white-space: nowrap; }
.import-message span { color: var(--muted); }
.import-message.error span { color: #8c2c24; }
.badge.danger { background: #fff0ee; color: #8c2c24; }
@media (max-width: 980px) { .import-layout { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .import-drop { transition: none; } }

/* Development build marker v2.2.1 */
.build-tag{font-size:11px;font-weight:800;color:var(--muted);padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:#fff;}

.boot-error-detail { margin: 14px 0; word-break: break-word; }


/* v2.3 Bulk Reporting Profile Capture */
.reporting-import-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr); gap:20px; align-items:start; }
.reporting-result { margin:20px 0 0; }
.sensitive-form-note { border:1px solid #e5d7b8; background:#fff9ed; color:#704b0b; border-radius:8px; padding:12px 14px; display:grid; gap:4px; font-size:11px; line-height:1.5; }
.sensitive-form-note strong { font-size:12px; }
@media (max-width:980px){ .reporting-import-grid{grid-template-columns:1fr;} }


/* v2.4 Workforce Data Quality */
.quality-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 20px; }
.quality-metric { appearance:none; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:15px 16px; text-align:left; display:grid; gap:6px; cursor:pointer; }
.quality-metric:hover { border-color:var(--line-strong); background:#faf9f6; }
.quality-metric span { color:var(--muted); font-size:11px; font-weight:750; }
.quality-metric strong { font-size:23px; letter-spacing:-.03em; }
.quality-metric small { color:var(--muted); font-size:10.5px; }
.quality-track { height:5px; border-radius:999px; background:#e9e6df; overflow:hidden; }
.quality-track i { display:block; height:100%; background:var(--green); border-radius:inherit; }
.quality-filter { min-width:220px; }
.quality-issues { display:flex; flex-wrap:wrap; gap:5px; }
.quality-issue { display:inline-flex; padding:4px 7px; border-radius:999px; font-size:10px; font-weight:750; background:#f1efeb; color:#5e5a54; }
.quality-issue.error { background:#fff0ee; color:#8c2c24; }
.quality-issue.warning { background:#fff5e8; color:#8a5000; }
@media (max-width:1000px){ .quality-summary{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:620px){ .quality-summary{grid-template-columns:1fr;} .quality-filter{min-width:0;width:100%;} }


/* v2.5 Submission Pack Preview */
.submission-safety { margin:0 0 20px; padding:14px 16px; border-radius:9px; display:grid; gap:4px; font-size:12px; line-height:1.5; }
.submission-safety strong { font-size:13px; }
.submission-safety.blocked { background:#fff0ee; color:#74231d; border:1px solid #efc5c0; }
.submission-safety.safe { background:#edf7f1; color:#145e3a; border:1px solid #c4e3d1; }
.submission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.submission-section { background:var(--surface); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.submission-section-head { padding:16px 18px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.submission-section-head h2 { margin:0; font-size:14px; }
.submission-section-head > div { color:var(--ink); font-size:12px; font-weight:750; text-align:right; line-height:1.35; }
.submission-section-head span { color:var(--muted); font-weight:500; font-size:10.5px; }
.submission-section dl { margin:0; padding:5px 18px; }
.submission-section dl > div { display:flex; justify-content:space-between; gap:18px; padding:10px 0; border-bottom:1px solid var(--line); font-size:11px; }
.submission-section dl > div:last-child { border-bottom:0; }
.submission-section dt { color:var(--muted); }
.submission-section dd { margin:0; font-weight:750; text-align:right; }
.submission-findings, .submission-evidence { margin-top:20px; }
.submission-pack-head { scroll-margin-top:88px; }
.submission-pack-head .page-copy { max-width:72ch; }
.submission-section dl > div:nth-child(even) { background:#fcfbf8; margin-inline:-18px; padding-inline:18px; }
.submission-section dd { max-width:58%; }
@media (max-width:900px){ .submission-grid{grid-template-columns:1fr;} }
@page { margin: 12mm; }
@media print {
  .sidebar,.topbar,.head-actions,.people-toolbar,.mobile-menu { display:none !important; }
  .main { margin-left:0 !important; width:100% !important; }
  .content { max-width:none !important; padding:0 !important; margin:0 !important; }
  body,html { background:#fff !important; }
  .panel,.submission-section { break-inside:avoid; box-shadow:none !important; }
  .submission-pack-head { margin-bottom:14px; }
}
.sidebar { overflow-y: auto; }

/* Users & Access v2.6 */
.access-overview { margin-bottom: 18px; }
.access-note { max-width: 900px; }
.access-note p { margin: 6px 0 0; color: var(--muted); line-height: 1.6; font-size: 12px; }
.access-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.access-chip { display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 5px 8px; background: #efede7; color: #403e3a; font-size: 11px; font-weight: 700; white-space: nowrap; }
.access-chip button { border: 0; background: transparent; color: #8b2923; font-size: 15px; line-height: 1; padding: 0; width: 16px; height: 16px; display: grid; place-items: center; }
.access-chip button:hover { color: var(--red); }
@media (max-width: 720px) { .access-chip { white-space: normal; } }

/* v2.7 — Compliance Readiness actionability */
.readiness-score small { max-width:84px; text-align:center; line-height:1.2; }
.readiness-gates { margin:-4px 0 18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface-soft); padding:16px 18px; display:flex; justify-content:space-between; gap:18px; align-items:center; }
.readiness-gates > div:first-child { min-width:0; }
.readiness-gates .eyebrow { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.readiness-gates strong { display:block; margin-top:4px; font-size:14px; }
.readiness-gates p { margin:5px 0 0; color:var(--muted); font-size:11px; line-height:1.45; max-width:76ch; }
.gate-chips { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; flex:0 0 auto; }
.check-title-main { display:grid; gap:2px; min-width:0; }
.check-title-main small { color:var(--muted); font-size:9px; letter-spacing:.04em; }
.readiness-check.external-gate { background:var(--surface-soft); }
.fix-guidance { margin-top:9px; display:grid; gap:5px; align-items:start; }
.fix-guidance > span { color:var(--muted); font-size:10px; line-height:1.45; }
.fix-guidance > strong { color:var(--ink); font-size:10px; }
@media (max-width:700px) { .readiness-gates { align-items:flex-start; flex-direction:column; } .gate-chips { justify-content:flex-start; } }

/* v2.8 evidence lifecycle */
.evidence-stats .stat{min-width:150px}

/* v3.0 WSP / ATR preparation map */
.prep-toolbar{margin-bottom:16px}.prep-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.prep-summary>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:5px}.prep-summary span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.prep-summary strong{font-size:22px}.prep-summary small{color:var(--muted)}.prep-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.prep-list{display:flex;flex-direction:column}.prep-requirement{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:15px 16px;border-top:1px solid var(--border)}.prep-requirement:first-child{border-top:0}.prep-status-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:12px;background:#eee;color:#555}.prep-status-dot.active{background:#e5f5ed;color:#168451}.prep-status-dot.risk{background:#fff2d9;color:#9d6500}.prep-status-dot.readiness-blocked{background:#ffebe6;color:#b42318}.prep-requirement-copy p{margin:5px 0 7px;color:var(--muted);font-size:13px;line-height:1.45}.prep-requirement-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.prep-handoff-grid{display:grid;grid-template-columns:1fr 1fr}.prep-handoff-grid .prep-requirement:nth-child(odd){border-right:1px solid var(--border)}.prep-safety-note{margin:14px 16px 16px;padding:14px;border-radius:10px;background:#fff2ee;border:1px solid #f0c9bf;display:flex;gap:10px;align-items:flex-start}.prep-safety-note span{color:#745147;font-size:13px;line-height:1.45}@media(max-width:1050px){.prep-summary{grid-template-columns:1fr 1fr}.prep-columns{grid-template-columns:1fr}.prep-handoff-grid{grid-template-columns:1fr}.prep-handoff-grid .prep-requirement:nth-child(odd){border-right:0}}@media(max-width:650px){.prep-summary{grid-template-columns:1fr}.prep-requirement-title{align-items:flex-start;flex-direction:column}}

/* v3.0.2 polish: ensure routed headings clear sticky topbar */
.content{padding-top:40px;}
@media(max-width:700px){.content{padding-top:30px;}}


/* v3.2 Management & SDF reports */
.reports-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) minmax(260px,1.2fr);gap:14px;align-items:end;margin-bottom:16px;padding:16px 18px}.reports-meta{min-height:42px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;color:var(--muted);font-size:11px}.report-export-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.report-export-card{appearance:none;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:15px;text-align:left;display:grid;gap:5px;cursor:pointer;color:var(--ink)}.report-export-card:hover{border-color:var(--line-strong);background:#faf9f6}.report-export-card span{font-size:11px;color:var(--muted);font-weight:800}.report-export-card strong{font-size:18px}.report-export-card small{font-size:10.5px;line-height:1.45;color:var(--muted)}.report-cover{margin-bottom:16px}.report-cover-grid{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start;padding:22px}.report-cover .eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--muted)}.report-cover h2{font-size:26px;margin:5px 0 4px}.report-cover p{margin:0;color:var(--muted)}.report-generated{display:grid;grid-template-columns:auto auto;gap:4px 12px;font-size:10.5px}.report-generated span{color:var(--muted)}.report-generated strong{text-align:right}.reports-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.report-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 18px}.report-section{margin-top:18px}.report-more-note{padding:10px 16px;color:var(--muted);font-size:10.5px;border-top:1px solid var(--line)}
@media(max-width:1200px){.report-export-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reports-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.reports-toolbar{grid-template-columns:1fr}.reports-meta{justify-content:flex-start}.report-export-grid{grid-template-columns:1fr 1fr}.report-summary-grid{grid-template-columns:1fr}.report-cover-grid{grid-template-columns:1fr}.reports-stats{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.report-export-grid,.reports-stats{grid-template-columns:1fr}}
@media print{.reports-toolbar,.report-export-grid{display:none!important}.report-page-head .page-copy{max-width:none}.report-cover,.report-section,.report-summary-grid .submission-section{break-inside:avoid}.reports-stats{grid-template-columns:repeat(3,1fr)!important}.report-summary-grid{grid-template-columns:repeat(2,1fr)!important}.report-cover-grid{grid-template-columns:1fr auto!important}}
