:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #1c2730;
  background: #f3f6f8;
  font-synthesis: none;
  --navy: #15253D;
  --navy-2: #31445C;
  --red: #D4A84B;
  --red-dark: #B4872F;
  --ink: #243241;
  --muted: #66748A;
  --line: #d9e1e7;
  --surface: #fff;
  --soft: #f2f5f7;
  --soft-blue: #eef3f6;
  --green: #2f7d4a;
  --green-soft: #eaf7ef;
  --amber: #925e00;
  --amber-soft: #fff5df;
  --danger-soft: #fff0f1;
  --shadow: 0 16px 42px rgba(21, 37, 61, .12);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--soft); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
input, select, textarea { width: 100%; padding: 10px 12px; border: 1px solid #b9c6d0; border-radius: 10px; color: var(--ink); background: #fff; }
textarea { min-height: 92px; resize: vertical; }
label { display: grid; gap: 6px; font-size: .88rem; font-weight: 650; color: var(--navy); }
fieldset { border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; }
legend { padding: 0 7px; color: var(--navy); font-weight: 750; }
h1,h2,h3,p { margin-top: 0; }
h1 { font-size: 1.6rem; margin-bottom: 0; color: var(--navy); }
h2 { color: var(--navy); margin-bottom: 8px; }
h3 { color: var(--navy); margin-bottom: 8px; }
small, .muted { color: var(--muted); }
.stack { display: grid; gap: 16px; }
.gap-lg { gap: 22px; }
.eyebrow { margin: 0 0 4px; color: var(--red); text-transform: uppercase; font-size: .72rem; letter-spacing: .12em; font-weight: 800; }
.primary,.secondary,.ghost,.danger { border-radius: 10px; padding: 10px 14px; border: 1px solid transparent; font-weight: 750; }
.primary { color: #fff; background: var(--red); }
.primary:hover { background: var(--red-dark); }
.secondary { color: var(--navy); background: #fff; border-color: #aebcc8; }
.ghost { color: var(--navy); background: var(--soft-blue); }
.danger { color: var(--red-dark); background: var(--danger-soft); border-color: #efc6c9; }
button:disabled { opacity: .55; cursor: not-allowed; }
.small-button { padding: 6px 9px; font-size: .78rem; }
.link-button { border: 0; padding: 0; color: #fff; text-decoration: underline; background: none; width: fit-content; }
.app-shell { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: 245px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; display: flex; flex-direction: column; padding: 22px 16px; color: #fff; background: var(--navy); border-right: 4px solid var(--red); }
.brand { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 11px; background: var(--red); color: #fff; font-weight: 850; }
.brand strong,.brand span { display: block; }
.brand span { margin-top: 2px; color: #c9dae6; font-size: .8rem; }
.sidebar nav { flex: 1 1 auto; min-height: 0; display: grid; align-content: start; gap: 6px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding-right: 4px; }
.sidebar nav button { min-height: 44px; display: flex; align-items: center; justify-content: space-between; border: 0; border-radius: 10px; padding: 11px 12px; text-align: left; color: #cfdee8; background: transparent; font-weight: 650; }
.sidebar nav button.active,.sidebar nav button:hover { color: #fff; background: rgba(255,255,255,.1); }
.sidebar nav b { min-width: 24px; padding: 2px 7px; text-align: center; color: #fff; background: var(--red); border-radius: 999px; font-size: .76rem; }
.sidebar-footer { flex: 0 0 auto; margin-top: 12px; display: grid; gap: 5px; padding: 14px 10px 0; border-top: 1px solid rgba(255,255,255,.15); overflow-wrap: anywhere; }
.sidebar-footer small { color: #bfd2df; }
.content { min-width: 0; padding: 0 28px 50px; }
.topbar { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.topbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.topbar-signout { white-space: nowrap; }
.environment { padding: 7px 10px; border: 1px solid #c7d6e0; border-radius: 999px; color: var(--navy); background: var(--soft-blue); font-size: .78rem; font-weight: 700; }
.panel { padding: 22px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); box-shadow: 0 5px 18px rgba(23,50,77,.04); }
.panel.compact { padding: 18px 22px; }
.hero { display: grid; grid-template-columns: 1fr 220px; align-items: center; gap: 25px; padding: 28px; color: #fff; background: linear-gradient(120deg, var(--navy), var(--navy-2)); border-radius: 21px; box-shadow: var(--shadow); }
.hero h2 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.3rem); }
.hero p:not(.eyebrow) { margin: 0; color: #dce8f0; }
.hero-stat { padding: 18px; text-align: center; border: 1px solid rgba(255,255,255,.2); border-radius: 16px; background: rgba(255,255,255,.08); }
.hero-stat strong,.hero-stat span { display: block; }
.hero-stat strong { font-size: 2.4rem; }
.hero-stat span { color: #dbe8ef; font-size: .84rem; }
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.metric { padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.metric span,.metric strong { display: block; }
.metric span { color: var(--muted); font-size: .82rem; }
.metric strong { margin-top: 3px; color: var(--navy); font-size: 1.8rem; }
.section-heading { display: flex; justify-content: space-between; gap: 15px; align-items: flex-start; margin-bottom: 18px; }
.section-heading p { margin: 2px 0 0; color: var(--muted); }
.flow-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; }
.flow-list li { display: flex; gap: 10px; padding: 13px; border-radius: 12px; background: var(--soft); }
.flow-list li>span { flex: 0 0 29px; width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--navy); font-weight: 800; }
.flow-list p { margin: 3px 0 0; color: var(--muted); font-size: .83rem; }
.drop-zone { padding: 38px 25px; border: 2px dashed #aec0cc; border-radius: 16px; text-align: center; background: #f9fbfc; }
.drop-zone p { color: var(--muted); }
.upload-icon { width: 48px; height: 48px; margin: 0 auto 10px; display: grid; place-items: center; border-radius: 14px; color: var(--navy); background: var(--soft-blue); font-size: 1.7rem; }
.selected-files { margin-top: 18px; }
.file-row { display: flex; justify-content: space-between; gap: 15px; padding: 10px 2px; border-bottom: 1px solid var(--line); }
.button-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.alert { display: grid; gap: 4px; padding: 12px 14px; border-radius: 11px; font-size: .88rem; }
.alert-success { color: var(--green); background: var(--green-soft); border: 1px solid #b7dec4; }
.alert-warning { color: var(--amber); background: var(--amber-soft); border: 1px solid #edd399; }
.alert-error { color: var(--red-dark); background: var(--danger-soft); border: 1px solid #efc6c9; }
.issue-list { display: grid; gap: 9px; }
.review-layout { display: grid; grid-template-columns: 330px minmax(0,1fr); gap: 18px; align-items: start; }
.queue-list { position: sticky; top: 15px; max-height: calc(100vh - 120px); overflow: auto; padding: 14px; }
.queue-item { width: 100%; display: flex; justify-content: space-between; gap: 10px; padding: 12px; border: 1px solid transparent; border-radius: 11px; text-align: left; background: transparent; }
.queue-item:hover,.queue-item.active { border-color: #c5d4df; background: var(--soft-blue); }
.queue-item div { min-width: 0; }
.queue-item strong,.queue-item small { display: block; }
.queue-item strong { color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.queue-item small { margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-panel { min-width: 0; }
.review-header { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.form-grid { display: grid; gap: 14px; }
.form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-grid .wide { grid-column: 1 / -1; }
.check-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.check { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: 8px; color: var(--ink); font-weight: 500; }
.check input { width: auto; }
details { border: 1px solid var(--line); border-radius: 12px; }
summary { padding: 12px 14px; cursor: pointer; color: var(--navy); font-weight: 700; }
.text-preview { max-height: 340px; margin: 0; padding: 14px; overflow: auto; white-space: pre-wrap; color: #35434e; background: #f7f9fa; border-top: 1px solid var(--line); font-size: .8rem; }
.status { display: inline-flex; align-items: center; width: fit-content; padding: 4px 8px; border-radius: 999px; font-size: .72rem; font-weight: 750; text-transform: capitalize; white-space: nowrap; color: var(--navy); background: var(--soft-blue); }
.status-published,.status-approved { color: var(--green); background: var(--green-soft); }
.status-duplicate,.status-needs_review { color: var(--amber); background: var(--amber-soft); }
.status-failed,.status-rejected { color: var(--red-dark); background: var(--danger-soft); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th,td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: .76rem; text-transform: uppercase; letter-spacing: .05em; }
td strong,td small,td span { display: block; }
td small { margin-top: 3px; }
.timeline { display: grid; gap: 0; }
.timeline article { position: relative; display: grid; grid-template-columns: 20px 1fr; gap: 10px; padding: 0 0 20px; }
.timeline article::before { content: ''; position: absolute; left: 7px; top: 14px; bottom: 0; width: 2px; background: var(--line); }
.timeline article:last-child::before { display: none; }
.timeline-dot { width: 16px; height: 16px; margin-top: 2px; border: 4px solid var(--soft-blue); border-radius: 50%; background: var(--navy); z-index: 1; }
.timeline p { margin: 2px 0; color: var(--muted); }
.empty { padding: 40px 20px; text-align: center; color: var(--muted); }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(145deg, #e9f0f5, #f7f9fa); }
.login-card { width: min(430px,100%); padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.login-card .brand-mark { margin-bottom: 16px; }
.login-card .micro { margin: 16px 0 0; color: var(--muted); font-size: .76rem; }
@media (max-width: 1050px) {
  .metric-grid,.flow-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-layout { grid-template-columns: 280px minmax(0,1fr); }
  .check-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; min-height: 0; overflow: visible; padding: 14px 16px; border-right: 0; border-bottom: 4px solid var(--red); }
  .brand { margin-bottom: 12px; }
  .sidebar nav { display: flex; overflow-x: auto; overflow-y: hidden; gap: 8px; padding: 0 0 6px; scrollbar-gutter: auto; }
  .sidebar nav button { flex: 0 0 auto; min-width: 145px; }
  .sidebar-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; margin-top: 8px; padding: 11px 4px 0; }
  .sidebar-footer span,.sidebar-footer small { max-width: 72vw; }
  .content { padding: 0 16px 35px; }
  .hero { grid-template-columns: 1fr; }
  .review-layout { grid-template-columns: 1fr; }
  .queue-list { position: static; max-height: 330px; }
}
@media (max-width: 560px) {
  .metric-grid,.flow-list,.form-grid.two,.check-grid { grid-template-columns: 1fr; }
  .topbar { align-items: flex-start; flex-direction: column; justify-content: center; padding: 15px 0; }
  .topbar-actions { width: 100%; justify-content: space-between; }
  .review-header { flex-direction: column; }
  .sidebar nav { grid-template-columns: 1fr; }
}
.metric-grid-six { grid-template-columns: repeat(6,minmax(0,1fr)); }
.manage-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(330px,.65fr); gap: 18px; align-items: start; }
.manage-layout.wide-left { grid-template-columns: minmax(0,1.5fr) minmax(360px,.65fr); }
.talk-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.talk-card { display: flex; flex-direction: column; gap: 10px; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.talk-card h3 { margin: 5px 0 2px; }
.talk-card p { margin: 0; }
.talk-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.audience-chip { display: inline-flex; padding: 3px 8px; border-radius: 999px; color: var(--navy); background: var(--soft-blue); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.compact-select { width: auto; min-width: 145px; padding: 8px 9px; font-size: .82rem; }
.key-point-editor { display: grid; gap: 7px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.source-list { padding: 0 14px 12px; }
.source-list p { padding-top: 10px; border-top: 1px solid var(--line); }
.status-active { color: var(--green); background: var(--green-soft); }
.status-inactive,.status-archived { color: var(--muted); background: #edf0f2; }
.status-leave,.status-draft { color: var(--amber); background: var(--amber-soft); }
.status-needs_review { color: var(--amber); background: var(--amber-soft); }
.status-generation_failed { color: var(--red-dark); background: var(--danger-soft); }
@media (max-width: 1250px) {
  .metric-grid-six { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .talk-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 980px) {
  .manage-layout,.manage-layout.wide-left { grid-template-columns: 1fr; }
  .talk-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .metric-grid-six { grid-template-columns: 1fr; }
  .talk-card-head { flex-direction: column; }
  .compact-select { width: 100%; }
}
.credential-hint { display: grid; gap: 4px; margin-top: 16px; padding: 12px; border-radius: 11px; color: var(--muted); background: var(--soft); font-size: .78rem; }
.credential-hint strong { color: var(--navy); }
.permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.permission { display: grid; gap: 8px; padding: 16px; border: 1px solid var(--line); border-radius: 13px; }
.permission strong { color: var(--navy); font-size: 1.05rem; }
.permission span { position: relative; padding-left: 20px; color: var(--muted); }
.permission span::before { position: absolute; left: 0; font-weight: 800; }
.permission.yes span::before { content: '✓'; color: var(--green); }
.permission.no span::before { content: '–'; color: var(--red); }
.employee-checks .check { align-items: flex-start; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.employee-checks .check span,.employee-checks .check strong,.employee-checks .check small { display: block; }
.employee-checks .check small { margin-top: 2px; color: var(--muted); font-weight: 400; }
.key-point-list { display: grid; gap: 10px; }
.key-point-list article { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--soft); }
.key-point-list article p { margin: 5px 0; }
.status-assigned,.status-planned,.status-in_progress,.status-overdue { color: var(--amber); background: var(--amber-soft); }
.status-completed,.status-delivered { color: var(--green); background: var(--green-soft); }
.status-cancelled,.status-exempt { color: var(--muted); background: #edf0f2; }
@media (max-width: 700px) { .permission-grid { grid-template-columns: 1fr; } }
/* Employee Learning Core */
.employee-hero .button-row { margin-top: 20px; }
.employee-hero .secondary { color: #fff; border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.08); }
.assignment-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.assignment-card { display: grid; gap: 10px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.assignment-card h3,.assignment-card p { margin: 0; }
.assignment-card p { color: var(--muted); }
.assignment-top,.assignment-meta { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.assignment-type { color: var(--muted); font-size: .76rem; text-transform: capitalize; }
.assignment-meta { padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.overdue-card { border-color: #e7b6ba; background: #fffafb; }
.policy-assistant-promo { display: flex; justify-content: space-between; align-items: center; gap: 25px; background: var(--soft-blue); }
.back-link { color: var(--navy); }
.training-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding: 24px; border-radius: 18px; color: #fff; background: var(--navy); }
.training-header h2 { color: #fff; margin-bottom: 6px; }
.training-header p { margin: 0; color: #d4e2ec; }
.style-picker { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.style-option { display: grid; grid-template-columns: auto 1fr; grid-template-areas: 'radio title' 'radio detail'; align-items: start; gap: 2px 9px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.style-option.selected { border-color: var(--navy); background: var(--soft-blue); }
.style-option input { grid-area: radio; width: auto; margin-top: 4px; }
.style-option strong { grid-area: title; color: var(--navy); text-transform: capitalize; }
.style-option span { grid-area: detail; color: var(--muted); font-size: .78rem; font-weight: 400; }
.lesson-sections { display: grid; gap: 14px; }
.lesson-section { display: grid; grid-template-columns: 42px 1fr; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.lesson-index { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: var(--navy); font-weight: 800; }
.lesson-section p { line-height: 1.65; }
.source-chip { display: inline-flex; margin-top: 8px; padding: 4px 8px; border-radius: 999px; color: var(--navy); background: var(--soft-blue); }
.guided-list { display: grid; gap: 8px; margin: 0; padding-left: 22px; }
.visual-flow { display: grid; gap: 9px; }
.visual-flow>div { display: grid; grid-template-columns: 28px 1fr; gap: 9px; align-items: center; }
.visual-flow span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--red); font-weight: 800; }
.visual-flow p { margin: 0; padding: 9px 11px; border-radius: 10px; background: var(--soft); }
.lesson-action { margin-top: 20px; text-align: center; }
.large-button { padding: 13px 22px; }
.assessment-panel { border-top: 5px solid var(--navy); }
.success-panel { border-top-color: var(--green); }
.progress-pill { display: inline-flex; padding: 7px 10px; border-radius: 999px; background: var(--soft-blue); color: var(--navy); font-size: .8rem; font-weight: 800; }
.question-stack { display: grid; gap: 14px; }
.question-card { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; }
.question-card h3 { margin: 0; line-height: 1.45; }
.question-correct { border-color: #acd5b9; background: #fbfffc; }
.question-review { border-color: #e8cf91; background: #fffdf8; }
.answer-options { display: grid; gap: 8px; }
.answer-options label { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); font-weight: 500; }
.answer-options input { width: auto; }
.answer-feedback { padding: 12px; border-radius: 11px; }
.correct-feedback { color: var(--green); background: var(--green-soft); }
.review-feedback { color: var(--amber); background: var(--amber-soft); }
.answer-feedback p { margin: 5px 0; }
.acknowledgement-box { display: grid; gap: 14px; margin-top: 16px; padding: 18px; border: 1px solid #b7dec4; border-radius: 13px; background: var(--green-soft); }
.assistant-layout { display: grid; grid-template-columns: minmax(250px,.45fr) minmax(0,1fr); gap: 18px; align-items: start; }
.assistant-intro { position: sticky; top: 15px; }
.assistant-examples { display: grid; gap: 8px; margin-top: 18px; }
.assistant-examples button { padding: 10px; border: 1px solid var(--line); border-radius: 10px; text-align: left; color: var(--navy); background: var(--soft); }
.assistant-chat { display: grid; gap: 16px; }
.assistant-messages { min-height: 280px; display: grid; gap: 12px; align-content: start; }
.assistant-messages article { max-width: 88%; padding: 14px; border-radius: 14px; }
.assistant-messages article.user { margin-left: auto; color: #fff; background: var(--navy); }
.assistant-messages article.assistant { background: var(--soft-blue); }
.assistant-messages article p { margin: 5px 0 0; white-space: pre-wrap; line-height: 1.55; }
.assistant-form { display: grid; grid-template-columns: 1fr 190px auto; gap: 10px; align-items: end; padding-top: 16px; border-top: 1px solid var(--line); }
.assistant-form textarea { min-height: 70px; }
.approval-steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; }
.approval-steps>div { padding: 9px; border-radius: 9px; text-align: center; color: var(--muted); background: var(--soft); font-size: .75rem; font-weight: 700; }
.approval-steps .done { color: var(--green); background: var(--green-soft); }
.approval-steps .active { color: var(--amber); background: var(--amber-soft); }
.preview-tabs { display: flex; gap: 7px; flex-wrap: wrap; }
.module-preview { display: grid; gap: 10px; margin-top: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.module-preview article { padding: 12px; border-radius: 10px; background: #fff; }
.question-review-list { display: grid; gap: 10px; }
.question-review summary { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; }
.question-review form { padding: 0 14px 14px; }
.choice-editor { display: grid; gap: 8px; }
.choice-editor label { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; }
.choice-editor label>input:first-child { width: auto; }
.quality-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.quality-grid>div { display: grid; gap: 3px; padding: 10px; border-radius: 10px; background: var(--soft); }
.quality-grid .pass { color: var(--green); background: var(--green-soft); }
.quality-grid .fail { color: var(--red-dark); background: var(--danger-soft); }
.module-settings { padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--soft); }
.program-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.program-card { display: grid; gap: 10px; padding: 17px; border: 1px solid var(--line); border-radius: 14px; }
.program-card ol { margin: 0; padding-left: 20px; }
.alert-info { color: var(--navy); background: var(--soft-blue); border: 1px solid #c5d8e6; }
.status-passed_review { color: var(--amber); background: var(--amber-soft); }
.status-passed,.status-acknowledged { color: var(--green); background: var(--green-soft); }
.status-failed { color: var(--red-dark); background: var(--danger-soft); }
@media (max-width: 1100px) {
  .assignment-cards,.program-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .assistant-layout { grid-template-columns: 1fr; }
  .assistant-intro { position: static; }
  .approval-steps { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .assignment-cards,.program-grid,.style-picker,.quality-grid { grid-template-columns: 1fr; }
  .policy-assistant-promo,.training-header { align-items: flex-start; flex-direction: column; }
  .assistant-form { grid-template-columns: 1fr; }
  .assistant-messages article { max-width: 100%; }
  .approval-steps { grid-template-columns: 1fr; }
}

/* Employee learning review controls */
.lesson-editor-list{display:grid;gap:12px}.lesson-editor{border:1px solid var(--line);border-radius:16px;background:var(--surface)}.lesson-editor summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer}.lesson-editor summary span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.lesson-editor>div{padding:0 16px 16px}.lesson-editor textarea{min-height:92px}.program-rules{display:grid;gap:3px;margin:8px 0}.program-enrol{border-top:1px solid var(--line);padding-top:10px}.program-enrol summary{cursor:pointer;font-weight:600}.employee-enrol-list{display:grid;gap:7px;max-height:260px;overflow:auto;margin:12px 0;padding-right:4px}.employee-enrol-list .check{align-items:flex-start}.employee-enrol-list small{display:block;color:var(--muted)}
.targeted-review{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.targeted-review>article{padding:10px 0;border-top:1px solid var(--line)}.targeted-review>article:first-of-type{border-top:0}.targeted-review p{margin:5px 0}.targeted-review small{color:var(--muted)}


/* Tablet and touch hardening */
.nav-scroll-hint { display: none; }
@media (max-width: 820px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { min-width: 0; }
  button, input, select, textarea, summary, .style-option, .answer-options label, .check { touch-action: manipulation; }
  input, select, textarea { min-height: 44px; font-size: 16px; }
  .primary, .secondary, .ghost, .danger, .small-button, .link-button {
    min-height: 44px;
    padding: 10px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .link-button { padding: 8px 4px; }
  .sidebar { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  .sidebar nav {
    scroll-snap-type: x proximity;
    scroll-padding-inline: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .sidebar nav button { min-height: 48px; scroll-snap-align: start; }
  .nav-scroll-hint { display: block; margin: -2px 0 6px; color: #bfd2df; font-size: .72rem; }
  .sidebar-footer .link-button { color: #fff; }
  .content {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
  .topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(243, 246, 248, .96);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  .style-option, .answer-options label, .check { min-height: 44px; }
  .table-wrap, .queue-list, .employee-enrol-list, .text-preview { -webkit-overflow-scrolling: touch; }
}
@media (max-width: 560px) {
  .topbar {
    min-height: 64px;
    padding: 8px 0;
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
    gap: 10px;
  }
  .topbar .eyebrow, .topbar .environment { display: none; }
  .topbar h1 { font-size: 1.25rem; }
  .topbar-actions { width: auto; margin-left: auto; justify-content: flex-end; }
  .topbar-signout { flex: 0 0 auto; }
  .section-heading { flex-wrap: wrap; }
  .panel { padding: 18px; }
  .question-card { padding: 15px; }
}


/* Touch target rules also apply to wide tablets in landscape. */
@media (hover: none) and (pointer: coarse) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  button, input, select, textarea, summary, .style-option, .answer-options label, .check { touch-action: manipulation; }
  input, select, textarea { min-height: 44px; font-size: 16px; }
  .primary, .secondary, .ghost, .danger, .small-button, .link-button {
    min-height: 44px;
    padding: 10px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .link-button { padding: 8px 4px; }
  .style-option, .answer-options label, .check { min-height: 44px; }
  .table-wrap, .queue-list, .employee-enrol-list, .text-preview { -webkit-overflow-scrolling: touch; }
}


/* Common tablet viewport range, including iPad Pro landscape. */
@media (max-width: 1366px) {
  input, select, textarea { min-height: 44px; font-size: 16px; }
  .primary, .secondary, .ghost, .danger, .small-button, .link-button {
    min-height: 44px;
    padding: 10px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .link-button { padding: 8px 4px; }
  .style-option, .answer-options label, .check { min-height: 44px; }
}

/* v5 commercial tenant branding */
.brand-logo { width: 44px; height: 44px; object-fit: contain; border-radius: 10px; padding: 3px; background: #fff; }
.logo-preview { display: flex; align-items: center; min-height: 96px; margin-bottom: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.logo-preview img { max-width: 260px; max-height: 80px; object-fit: contain; }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 820px) { .form-grid.three { grid-template-columns: 1fr; } }

/* v5.2 narrated lesson and assessment learning */
.audio-studio { display: grid; gap: 16px; padding: 18px; border: 1px solid #c5d8e6; border-radius: 16px; background: var(--soft-blue); }
.audio-status-line { display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; background: #fff; border: 1px solid var(--line); }
.audio-status-line span { color: var(--muted); font-size: .88rem; }
.audio-settings textarea { min-height: 88px; }
.audio-review-list { display: grid; gap: 12px; }
.audio-review-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.audio-review-card > div:first-child { display: flex; gap: 10px; align-items: center; }
.audio-review-card > div:first-child > div { display: grid; gap: 3px; }
.audio-review-card small { color: var(--muted); }
.audio-review-card audio, .audio-preview audio, .audio-lesson audio { width: 100%; min-height: 44px; }
.audio-review-card details, .audio-preview details, .audio-transcript { border-top: 1px solid var(--line); padding-top: 10px; }
.audio-review-card summary, .audio-preview summary, .audio-transcript summary { cursor: pointer; font-weight: 650; }
.audio-review-card details p, .audio-preview details p, .audio-transcript p { line-height: 1.65; white-space: pre-wrap; }
.audio-lesson { display: grid; gap: 12px; }
.audio-disclosure { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; padding: 10px 12px; border-radius: 10px; background: var(--soft-blue); }
.audio-disclosure span { color: var(--muted); font-size: .88rem; }
.audio-ready-note { margin-top: 8px; color: var(--green); font-weight: 650; font-size: .88rem; }
.audio-preview { display: grid; gap: 10px; }
@media (max-width: 760px) {
  .audio-studio { padding: 14px; }
  .audio-review-card { padding: 12px; }
}

/* v5.2 fully narrated assessments */
.assessment-audio-list{display:grid;gap:1rem;margin-top:1rem}.assessment-audio-card{border:1px solid var(--line);border-radius:16px;padding:1rem;background:var(--panel)}.assessment-audio-title{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.9rem}.assessment-audio-title>div{display:grid;gap:.2rem}.assessment-track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.assessment-track{border:1px solid var(--line);border-radius:12px;padding:.75rem;display:grid;gap:.55rem;background:var(--soft)}.assessment-track audio,.quiz-audio-control audio{width:100%;min-height:44px}.assessment-track details,.quiz-audio-control details,.narration-script-editor{border-top:1px solid var(--line);padding-top:.45rem}.narration-script-editor{display:grid;gap:.65rem}.narration-script-editor[open]{padding:.8rem;border:1px solid var(--line);border-radius:12px}.quiz-audio-control{margin:.65rem 0 .85rem;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--soft);display:grid;gap:.45rem}.feedback-audio{margin-top:.75rem;background:var(--panel)}
@media(max-width:900px){.assessment-track-grid{grid-template-columns:1fr}.assessment-audio-card{padding:.85rem}}

/* v5.3 management Policy Intelligence */
.policy-intelligence-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:18px;align-items:start}.policy-intelligence-result{display:grid;gap:14px}.policy-answer{white-space:pre-wrap;line-height:1.65;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--soft-blue)}.policy-answer.compact{padding:12px;background:var(--soft)}.scope-chip{display:inline-flex;width:max-content;max-width:100%;padding:6px 10px;border-radius:999px;background:var(--soft);color:var(--navy);font-size:.88rem;font-weight:650}.policy-boundaries{display:grid;gap:8px;margin-top:20px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft-blue)}.policy-boundaries span:before{content:'✓';margin-right:8px;color:var(--green);font-weight:800}.intelligence-history{display:grid;gap:14px}.intelligence-history>article{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.intelligence-history h3{margin:.35rem 0}.policy-intelligence-result .source-list details,.intelligence-history .source-list details{background:#fff}
@media(max-width:920px){.policy-intelligence-layout{grid-template-columns:1fr}}
/* Policy Builder and Policy Repository */
a.primary,a.secondary,a.ghost,a.danger { display: inline-flex; align-items: center; justify-content: center; gap: 7px; text-decoration: none; border-radius: 10px; padding: 10px 14px; border: 1px solid transparent; font-weight: 750; }
a.primary { color:#fff; background:var(--red); }
a.secondary { color:var(--navy); background:#fff; border-color:#aebcc8; }
a.ghost { color:var(--navy); background:var(--soft-blue); }
a.small-button { padding:6px 9px; font-size:.78rem; }
.policy-builder-layout,.repository-layout { display:grid; grid-template-columns:320px minmax(0,1fr); gap:18px; align-items:start; }
.draft-list,.repository-list { position:sticky; top:15px; max-height:calc(100vh - 120px); overflow:auto; padding:14px; }
.draft-card,.repository-card { width:100%; display:grid; gap:5px; margin-bottom:8px; padding:13px; text-align:left; border:1px solid transparent; border-radius:12px; background:#fff; }
.draft-card:hover,.draft-card.active,.repository-card:hover,.repository-card.active { border-color:#b9cbd7; background:var(--soft-blue); }
.draft-card strong,.draft-card small,.repository-card strong,.repository-card small { display:block; }
.draft-card .status { margin-top:3px; }
.issue-count { width:fit-content; padding:3px 7px; border-radius:999px; color:var(--amber); background:var(--amber-soft); font-size:.7rem; font-weight:750; }
.template-list { display:grid; gap:10px; }
.template-card { display:grid; gap:7px; padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--soft); }
.template-card p { margin:0; color:var(--muted); }
.analysis-grid { display:grid; gap:10px; margin-top:12px; }
.analysis-block { padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:var(--soft); }
.analysis-block strong { color:var(--navy); }
.analysis-block ul { margin:8px 0 0; padding-left:20px; }
.warning-block { border-color:#e8cf91; background:var(--amber-soft); }
.section-editors { display:grid; gap:12px; }
.section-editor { display:grid; gap:10px; padding:13px; border:1px solid var(--line); border-radius:12px; background:#f9fbfc; }
.section-editor textarea { min-height:150px; }
.nested-panel { padding:18px; border:1px solid var(--line); border-radius:15px; background:#fbfcfd; }
.document-sections { display:grid; gap:14px; }
.document-sections article { padding:16px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.document-sections p { line-height:1.6; }
.policy-meta-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.policy-meta-grid>div { padding:12px; border:1px solid var(--line); border-radius:11px; background:var(--soft); }
.policy-meta-grid small,.policy-meta-grid strong { display:block; }
.policy-meta-grid strong { margin-top:3px; color:var(--navy); }
.full-policy-view { border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.full-policy-view .section-heading { padding:16px 16px 0; }
.full-policy-view pre { max-height:620px; margin:0; padding:18px; overflow:auto; white-space:pre-wrap; font-family:inherit; line-height:1.6; background:#f8fafb; border-top:1px solid var(--line); }
.version-list { display:grid; gap:8px; margin-bottom:14px; }
.version-card { display:grid; gap:3px; width:100%; padding:12px; text-align:left; border:1px solid var(--line); border-radius:11px; background:#fff; }
.version-card.active,.version-card:hover { border-color:var(--navy); background:var(--soft-blue); }
.version-card span { color:var(--muted); font-size:.8rem; }
.diff-summary { display:flex; gap:12px; align-items:center; margin-top:14px; padding:10px 12px; border-radius:10px; background:var(--soft-blue); }
.diff-view { max-height:440px; overflow:auto; padding:13px; background:#17222b; color:#d9e5ec; border-radius:11px; white-space:pre-wrap; }
.diff-view span { display:block; }
.diff-add { color:#b7f5c8; background:rgba(47,125,74,.18); }
.diff-remove { color:#ffc4c8; background:rgba(198,39,47,.18); }
.record-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); }
.record-row strong,.record-row small { display:block; }
@media (max-width:980px){.policy-builder-layout,.repository-layout{grid-template-columns:1fr}.draft-list,.repository-list{position:static;max-height:340px}.policy-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.policy-meta-grid{grid-template-columns:1fr}}
.repository-layout > *, .policy-builder-layout > * { min-width: 0; }
.full-policy-view pre, .diff-view { overflow-wrap: anywhere; word-break: break-word; }

/* v5.5 scoped navigation, filters and reporting */
.context-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) minmax(150px,220px) auto;gap:12px;align-items:end;background:linear-gradient(135deg,rgba(23,50,77,.07),rgba(198,39,47,.04));border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:18px;position:sticky;top:0;z-index:12;backdrop-filter:blur(12px)}
.context-bar>div{align-self:center}.context-bar>div strong,.context-bar>div span{display:block}.context-bar>div span{font-size:.82rem;color:var(--muted);margin-top:3px}.context-bar label{font-size:.76rem;color:var(--muted);font-weight:700}.context-bar select{margin-top:5px;background:var(--surface)}
.filter-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end;padding:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;margin:12px 0}.filter-panel label{font-size:.76rem;font-weight:700;color:var(--muted)}.filter-panel input,.filter-panel select{margin-top:5px}.filter-panel .check{align-self:center;margin-top:18px}.filter-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-actions button{min-height:42px}
.saved-view-controls{display:flex;gap:10px;align-items:end;justify-content:flex-end;flex-wrap:wrap;margin:10px 0}.saved-view-controls label{min-width:230px;font-size:.76rem;font-weight:700;color:var(--muted)}.saved-view-controls select{margin-top:4px}.active-filter-summary{font-size:.78rem;color:var(--muted);padding:8px 2px 12px;text-transform:none}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0 2px;border-top:1px solid var(--line);margin-top:12px}.pagination span,.result-count{font-size:.82rem;color:var(--muted)}.result-count{padding:12px 0 0;text-align:right}
.panel.compact{padding:16px}.panel.compact .filter-panel{margin:0}.table-wrap table thead th{position:sticky;top:0;background:var(--surface);z-index:2}.table-wrap{max-height:70vh;overflow:auto}.program-grid,.talk-grid{align-items:start}
@media(max-width:980px){.context-bar{grid-template-columns:1fr 1fr;position:static}.context-bar>div{grid-column:1/-1}.filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.context-bar,.filter-panel{grid-template-columns:1fr}.context-bar button,.filter-actions,.saved-view-controls{width:100%}.filter-actions button,.saved-view-controls button,.saved-view-controls label{width:100%}.pagination{flex-wrap:wrap;justify-content:center}.pagination span{order:-1;width:100%;text-align:center}}
@media (max-width: 820px) {
  .sidebar { max-width: 100vw; overflow: hidden; }
  .sidebar nav { width: 100%; max-width: 100%; contain: inline-size; }
}
html, body { max-width: 100%; overflow-x: clip; }

/* v5.6 live analytics dashboards */
.analytics-hero{grid-template-columns:minmax(0,1fr) auto}.hero-donuts{display:flex;gap:14px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.donut-card{display:grid;justify-items:center;gap:6px}.donut-card>small{color:#d9e7ef;font-size:.72rem}.donut{--value:0;width:134px;height:134px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--red) calc(var(--value)*1%),rgba(255,255,255,.16) 0);position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}.donut:before{content:"";position:absolute;inset:13px;border-radius:50%;background:linear-gradient(145deg,var(--navy),var(--navy-2));border:1px solid rgba(255,255,255,.18)}.donut>div{position:relative;z-index:1;text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:1.65rem;color:#fff}.donut span{max-width:90px;color:#d8e6ee;font-size:.72rem;line-height:1.2}.analytics-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.analytics-metric{min-width:0;padding:17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(180deg,#fff,#f8fbfd);box-shadow:0 5px 18px rgba(23,50,77,.04)}.analytics-metric span,.analytics-metric strong,.analytics-metric small{display:block}.analytics-metric span{color:var(--muted);font-size:.76rem;font-weight:700}.analytics-metric strong{margin-top:4px;color:var(--navy);font-size:1.65rem}.analytics-metric small{margin-top:4px;font-size:.7rem}.analytics-metric.danger{background:var(--danger-soft);border-color:#efc6c9}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.chart-card{min-width:0}.chart-card>h3{margin-bottom:14px}.line-chart{width:100%;min-height:220px;overflow:hidden}.line-chart svg{display:block;width:100%;height:auto;min-height:210px}.chart-axis{stroke:#cbd6de;stroke-width:1}.chart-area{fill:rgba(36,71,101,.08)}.chart-line{fill:none;stroke:var(--red);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:#fff;stroke:var(--red);stroke-width:3}.line-chart text{fill:var(--muted);font-size:11px}.analytics-bars{display:grid;gap:14px}.analytics-bar-row{display:grid;gap:6px}.analytics-bar-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:.82rem}.analytics-bar-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--navy)}.analytics-bar-row span{color:var(--muted);font-weight:700}.analytics-bar-track{height:11px;border-radius:999px;background:#e8eef2;overflow:hidden}.analytics-bar-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--navy-2),var(--red))}.exception-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 18px}.analytics-panel{display:grid;gap:18px}.renewal-list{display:grid;gap:0}.renewal-list>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.renewal-list strong,.renewal-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.renewal-list span{color:var(--muted);font-size:.8rem}.renewal-list b{color:var(--red);font-size:.8rem}.security-analytics{display:grid;gap:18px;background:linear-gradient(135deg,#0f2c48,#173f63);color:#fff;border:0}.security-analytics h2{color:#fff}.security-analytics p:not(.eyebrow){color:#d8e6ef}.security-control-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.security-control-grid article{display:grid;gap:4px;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(255,255,255,.06)}.security-control-grid strong{font-size:.84rem}.security-control-grid small{color:#c9dae6}.security-check{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-weight:900}.security-check.ok{background:#dff5e7;color:var(--green)}.security-check.warn{background:var(--amber-soft);color:var(--amber)}.security-foot{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;padding-top:14px;border-top:1px solid rgba(255,255,255,.16);font-size:.8rem;color:#d8e6ef}.security-foot strong{color:#fff}.table-progress{display:grid;grid-template-columns:minmax(80px,1fr) auto;align-items:center;gap:8px}.table-progress:before{content:"";grid-column:1;grid-row:1;height:8px;border-radius:999px;background:#e8eef2}.table-progress i{grid-column:1;grid-row:1;display:block;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--navy-2),var(--red));z-index:1}.table-progress span{grid-column:2;grid-row:1;font-size:.78rem;font-weight:750}.compact-empty{padding:24px 12px}
@media(max-width:1180px){.analytics-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.security-control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.analytics-hero{grid-template-columns:1fr}.hero-donuts{justify-content:flex-start}.analytics-grid{grid-template-columns:1fr}.security-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-donuts{width:100%;justify-content:center}.donut{width:118px;height:118px}.exception-summary{grid-template-columns:1fr}.security-control-grid{grid-template-columns:1fr}.renewal-list>div{grid-template-columns:1fr auto}.renewal-list span{grid-column:1/-1}.analytics-metric strong{font-size:1.4rem}}


/* v5.7 Exordium Learning brand + white-label sign-in */
.platform-brand-mark { width: 44px; height: 44px; object-fit: contain; border-radius: 11px; box-shadow: 0 3px 10px rgba(0,0,0,.14); }
.powered-by-shell { margin-top: 7px; color: #aebfcd; font-size: .68rem; letter-spacing: .01em; }
.powered-by-shell strong { color: #fff; font-size: inherit; }
.login-shell { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: clamp(18px,4vw,48px); background: radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--red) 14%, transparent), transparent 34%), linear-gradient(145deg, #e9eef2, #f8f7f3); }
.login-frame { width: min(1040px,100%); min-height: 620px; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(360px,.72fr); overflow: hidden; border: 1px solid rgba(21,37,61,.12); border-radius: 28px; background: #fff; box-shadow: 0 24px 70px rgba(21,37,61,.16); }
.login-brand-panel { position: relative; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 36px; padding: clamp(34px,6vw,64px); color: #fff; background: linear-gradient(145deg, var(--navy), var(--navy-2)); }
.login-brand-panel::after { content:""; position:absolute; width:290px; height:290px; right:-130px; bottom:-120px; border:1px solid rgba(255,255,255,.1); border-radius:50%; box-shadow:0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.02); pointer-events:none; }
.login-brand-panel h1 { max-width: 620px; margin: 0 0 12px; color:#fff; font-size: clamp(2rem,4.5vw,3.5rem); line-height:1.04; letter-spacing:-.035em; }
.login-brand-panel p:not(.eyebrow) { max-width: 600px; margin:0; color:rgba(255,255,255,.78); font-size:1.05rem; line-height:1.65; }
.login-brand-panel .eyebrow { color: color-mix(in srgb, var(--red) 84%, white); }
.login-brand-visual { min-height: 92px; display:flex; align-items:center; }
.exordium-wordmark { width:min(420px,92%); height:auto; filter: brightness(0) invert(1); }
.login-customer-logo { max-width:min(360px,90%); max-height:110px; object-fit:contain; padding:12px 16px; border-radius:16px; background:rgba(255,255,255,.96); box-shadow:0 12px 28px rgba(0,0,0,.13); }
.login-customer-initials { width:84px; height:84px; display:grid; place-items:center; border-radius:22px; color:var(--navy); background:#fff; font-size:1.8rem; font-weight:850; box-shadow:0 12px 28px rgba(0,0,0,.13); }
.login-frame > .login-card { width:auto; min-width:0; display:flex; flex-direction:column; justify-content:center; padding:clamp(32px,5vw,56px); border:0; border-radius:0; box-shadow:none; }
.login-frame > .login-card h2 { margin:0 0 7px; font-size:2rem; letter-spacing:-.02em; }
.login-frame > .login-card form { margin-top:22px; }
.login-frame > .login-card .primary { min-height:48px; margin-top:4px; }
.login-frame > .login-card .credential-hint { margin-top:18px; }
.login-frame > .login-card .micro { margin-top:22px; line-height:1.5; }
.powered-by-login { position:relative; z-index:1; display:flex; align-items:flex-end; gap:10px; width:max-content; max-width:100%; padding:12px 14px; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(255,255,255,.08); }
.powered-by-login > span { display:none; }
.powered-by-login img { width:215px; max-width:100%; height:auto; filter: brightness(0) invert(1); opacity:.88; }
.exordium-login-note { position:relative; z-index:1; width:max-content; max-width:100%; padding:9px 12px; border-left:3px solid var(--red); color:rgba(255,255,255,.84); font-weight:650; }
.login-url-preview { display:grid; gap:4px; margin-top:14px; padding:13px 15px; border:1px solid #cad5de; border-radius:12px; background:var(--soft-blue); }
.login-url-preview span { color:var(--navy); font-weight:720; overflow-wrap:anywhere; }
.login-url-preview small { line-height:1.45; }
@media (max-width: 820px) {
  .login-frame { min-height:0; grid-template-columns:1fr; }
  .login-brand-panel { gap:24px; padding:30px; }
  .login-brand-panel h1 { font-size:clamp(1.8rem,8vw,2.6rem); }
  .login-frame > .login-card { padding:30px; }
  .login-brand-panel::after { width:220px; height:220px; }
}
@media (max-width: 520px) {
  .login-shell { padding:12px; align-items:start; }
  .login-frame { border-radius:20px; }
  .login-brand-panel { padding:24px 22px; }
  .login-brand-visual { min-height:64px; }
  .login-customer-logo { max-height:82px; }
  .exordium-wordmark { width:290px; }
  .powered-by-login img { width:185px; }
  .login-frame > .login-card { padding:26px 22px; }
}


/* v5.8 pilot readiness, customer onboarding and local-access polish */
.exordium-login-lockup{display:flex;align-items:center;gap:16px;max-width:100%}
.exordium-login-lockup img{width:74px;height:74px;flex:0 0 74px;object-fit:contain;border-radius:17px;box-shadow:0 10px 24px rgba(0,0,0,.14)}
.exordium-login-lockup div{display:grid;gap:2px;min-width:0}
.exordium-login-lockup strong{color:#fff;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.025em;line-height:1.05}
.exordium-login-lockup span{color:rgba(255,255,255,.68);font-size:.66rem;font-weight:750;letter-spacing:.28em;text-transform:uppercase}
.powered-by-login{flex-direction:column;align-items:flex-start;gap:6px}
.powered-by-login>span{display:block;color:rgba(255,255,255,.62);font-size:.68rem;font-weight:700;letter-spacing:.02em}
.powered-by-login .powered-by-lockup{display:flex;align-items:center;gap:9px}
.powered-by-login .powered-by-lockup img{width:28px;height:28px;max-width:none;object-fit:contain;filter:none;opacity:1;border-radius:7px}
.powered-by-login .powered-by-lockup strong{color:#fff;font-size:.9rem;line-height:1}
.signed-in-email{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.78rem}
.login-help-link{justify-self:flex-start;width:auto;padding:0;margin-top:-3px;color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.password-change-card{width:min(460px,100%)}
.local-access-panel{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.local-access-panel small{display:block;margin-top:3px;line-height:1.45}
.one-time-password{display:grid;gap:7px}
.one-time-password code{display:block;padding:12px;border-radius:10px;background:#fff;border:1px solid #c6d4dd;color:var(--navy);font-size:1rem;font-weight:800;user-select:all;overflow-wrap:anywhere}
.tenant-login-link{display:inline-block;margin-top:4px;color:var(--navy);font-weight:720;text-decoration:none;overflow-wrap:anywhere}
.tenant-login-link:hover{text-decoration:underline}
.provision-success{display:grid;gap:5px}
.provision-success .button-row{margin-top:8px}
.login-url-preview.wide{grid-column:1/-1;margin-top:0}
@media(max-width:520px){
  .exordium-login-lockup img{width:58px;height:58px;flex-basis:58px;border-radius:14px}
  .exordium-login-lockup strong{font-size:1.4rem}
  .exordium-login-lockup span{font-size:.58rem;letter-spacing:.2em}
}

.onboarding-checklist{display:grid;gap:16px;border-color:#d8c07f;background:linear-gradient(180deg,#fffdf8,#fff)}
.setup-progress{display:grid;justify-items:end;align-content:start;min-width:90px}
.setup-progress strong{color:var(--navy);font-size:1.55rem;line-height:1}
.setup-progress span{margin-top:4px;color:var(--muted);font-size:.7rem}
.setup-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.setup-step{display:flex;align-items:center;gap:10px;min-height:52px;padding:12px 14px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-weight:720;cursor:pointer}
.setup-step:hover{border-color:#b8c7d2;background:var(--surface-2)}
.setup-step.done{border-color:#b8dec6;background:#f2fbf5}
.setup-check{width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;border-radius:50%;background:#e9eef2;color:var(--navy);font-weight:900}
.setup-step.done .setup-check{background:#dff5e7;color:var(--green)}
@media(max-width:620px){.setup-step-grid{grid-template-columns:1fr}.setup-progress{justify-items:start}}
