/* Pass 11: certification coverage, practice exams and performance-based item types. */
.cert-disclaimer, .practice-label { border-left: 4px solid var(--accent); background: var(--surface-2); padding: .6rem .8rem; border-radius: var(--radius-sm, 6px); color: var(--ink); }
.cert-sources { padding-left: 1.1rem; }
.cert-was { color: var(--ink-muted); font-size: .85em; white-space: nowrap; }
.cert-filters { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; margin-bottom: .5rem; }
.cert-filters .btn { min-height: 44px; }
.cert-filters .form-select { min-height: 44px; min-width: 10rem; }
.cert-domain { margin: 1.25rem 0 .5rem; padding-bottom: .25rem; border-bottom: 1px solid var(--surface-4); }
.cert-obj { border: 1px solid var(--surface-4); border-radius: var(--radius-sm, 6px); margin-bottom: .5rem; background: var(--surface); }
.cert-obj > summary { display: grid; grid-template-columns: auto 1fr auto; gap: .5rem .75rem; align-items: center; padding: .65rem .8rem; cursor: pointer; min-height: 44px; list-style: none; }
.cert-obj > summary::-webkit-details-marker { display: none; }
.cert-obj > summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.cert-obj[open] > summary { border-bottom: 1px solid var(--surface-4); }
.cert-id { font-family: var(--mono); font-weight: 700; white-space: nowrap; font-size: .85rem; }
.cert-title { font-size: .95rem; }
.cert-body { padding: .75rem .8rem; overflow-wrap: anywhere; }
.cert-badge { font-size: .78rem; font-weight: 700; padding: .2rem .55rem; border-radius: 999px; white-space: nowrap; border: 1px solid transparent; }
.st-covered { background: #d7f5e6; color: #0a5236; border-color: #0a5236; }
.st-partial { background: #fff1c9; color: #6b4a00; border-color: #6b4a00; }
.st-gap { background: #fde0dc; color: #8a1c10; border-color: #8a1c10; }
[data-theme="dark"] .st-covered { background: #0d3b29; color: #9cf0c9; border-color: #9cf0c9; }
[data-theme="dark"] .st-partial { background: #3d2e05; color: #ffd978; border-color: #ffd978; }
[data-theme="dark"] .st-gap { background: #46140e; color: #ffb4a8; border-color: #ffb4a8; }
@media (max-width: 575.98px) {
  .cert-obj > summary { grid-template-columns: 1fr auto; }
  .cert-title { grid-column: 1 / -1; grid-row: 2; }
  .cert-sum td, .cert-sum th { white-space: nowrap; }
}

/* practice index / result */
.practice-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.practice-card .btn { min-height: 44px; }
.practice-card .drill-list { display: grid; gap: .5rem; }
.practice-card .drill-list .btn { width: 100%; text-align: left; white-space: normal; }
.score-big { font-size: 2.25rem; font-weight: 800; line-height: 1; }
.domain-bar { height: .6rem; background: var(--surface-3); border-radius: 999px; overflow: hidden; }
.domain-bar > span { display: block; height: 100%; background: var(--accent); }
.review-item { border-left: 4px solid var(--surface-4); padding: .5rem .75rem; margin-bottom: .75rem; background: var(--surface); }
.review-item.ok { border-left-color: #0a7350; }
.review-item.miss { border-left-color: #b3261e; }
[data-theme="dark"] .review-item.ok { border-left-color: #5fe0a8; }
[data-theme="dark"] .review-item.miss { border-left-color: #ffb4a8; }
.review-item dl { display: grid; grid-template-columns: max-content 1fr; gap: .15rem .75rem; margin: .25rem 0 0; }
.review-item dt { font-weight: 600; }
.review-item dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 575.98px) { .review-item dl { grid-template-columns: 1fr; } .review-item dd { margin-bottom: .35rem; } }

/* performance-based item types (static/js/assessment.js) */
.pbq-hint { font-size: .9rem; color: var(--ink-secondary); margin: 0 0 .6rem; }
.q-key-sq { border-radius: 6px; }
.pbq-order { list-style: none; padding: 0; margin: 0 0 .75rem; display: grid; gap: .5rem; }
.pbq-step { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: center; padding: .5rem .6rem; border: 1px solid var(--surface-4); border-radius: var(--radius-sm, 6px); background: var(--surface-2); }
.pbq-tools { display: flex; gap: .35rem; }
.pbq-move { min-width: 44px; min-height: 44px; }
.pbq-confirm { min-height: 44px; }
.pbq-match { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .5rem .75rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid var(--surface-4); }
.pbq-prompt { font-weight: 500; overflow-wrap: anywhere; margin: 0; }
.pbq-select { min-height: 44px; }
@media (max-width: 575.98px) { .pbq-match { grid-template-columns: 1fr; } }

/* pass 11: targets >= 44px; domain bar widths without inline styles */
.cert-exam-link { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.cert-method > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; }
.domain-bar > span.db-0 { width: 0%; }
.domain-bar > span.db-5 { width: 5%; }
.domain-bar > span.db-10 { width: 10%; }
.domain-bar > span.db-15 { width: 15%; }
.domain-bar > span.db-20 { width: 20%; }
.domain-bar > span.db-25 { width: 25%; }
.domain-bar > span.db-30 { width: 30%; }
.domain-bar > span.db-35 { width: 35%; }
.domain-bar > span.db-40 { width: 40%; }
.domain-bar > span.db-45 { width: 45%; }
.domain-bar > span.db-50 { width: 50%; }
.domain-bar > span.db-55 { width: 55%; }
.domain-bar > span.db-60 { width: 60%; }
.domain-bar > span.db-65 { width: 65%; }
.domain-bar > span.db-70 { width: 70%; }
.domain-bar > span.db-75 { width: 75%; }
.domain-bar > span.db-80 { width: 80%; }
.domain-bar > span.db-85 { width: 85%; }
.domain-bar > span.db-90 { width: 90%; }
.domain-bar > span.db-95 { width: 95%; }
.domain-bar > span.db-100 { width: 100%; }
.pbq-step > .q-key { width: 2rem; height: 2rem; min-width: 2rem; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }

/* Exam-Day Readiness Simulator (Option B pass 1) */
.es-bar { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center;
  justify-content: space-between; background: #fff; border-bottom: 2px solid #c9a227; padding: .5rem 0; margin-bottom: 1rem; }
.es-timer { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 1.15rem; }
.es-bar.es-low .es-timer { color: #b42318; }
.es-hidden { visibility: hidden; }
.es-paused { padding: .5rem .75rem; background: #fff8e1; border: 1px solid #c9a227; border-radius: .25rem; margin-bottom: 1rem; }
.es-flag { font-size: .875rem; white-space: nowrap; cursor: pointer; }
.es-q.es-is-flagged { border-left: 4px solid #0b7285; }
.es-row { display: grid; grid-template-columns: minmax(8rem, 1fr) 2fr; gap: .5rem; align-items: center; margin-bottom: .35rem; }
.es-grid { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.es-cell, .es-key { display: inline-block; min-width: 2.25rem; text-align: center; padding: .25rem; border-radius: .25rem;
  border: 2px solid transparent; text-decoration: none; }
.es-key { min-width: 1rem; height: 1rem; padding: 0; vertical-align: middle; }
.es-answered { background: #d3f9d8; color: #1b4332; }
.es-unanswered { background: #f1f3f5; color: #343a40; border-color: #adb5bd; }
.es-flagged { border-color: #0b7285; box-shadow: inset 0 0 0 2px #0b7285; }
.es-badge { display: inline-block; padding: .35rem .75rem; border-radius: 1rem; font-weight: 700; }
.es-badge-ready { background: #d3f9d8; color: #1b4332; }
.es-badge-borderline { background: #fff3bf; color: #5c3c00; }
.es-badge-remediate { background: #ffe3e3; color: #7d1a1a; }
.es-review li { margin-bottom: .6rem; }
.es-review .es-bad { border-left: 3px solid #b42318; padding-left: .5rem; }
.es-review .es-ok { border-left: 3px solid #2b8a3e; padding-left: .5rem; }
.es-miss { margin-bottom: .35rem; }

/* Option B pass 4: testing-centre view, simulation PBQs, whiteboard, eliminator, score report, speed drill */
.es-off { display: none !important; }
.es-nav { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .75rem; }
.es-nav.es-dim #esPrev, .es-nav.es-dim #esNext, .es-nav.es-dim #esPos { display: none; }
.es-opt { display: flex; align-items: flex-start; gap: .35rem; }
.es-opt .form-check-label { flex: 1; }
.es-strike { border: 0; background: none; color: #6c757d; padding: 0 .25rem; line-height: 1; }
.es-strike:hover, .es-strike:focus { color: #b42318; }
.es-struck .form-check-label { text-decoration: line-through; opacity: .45; }
.es-wb-text { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .85rem; }
.es-tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 1px solid #ced4da; margin-bottom: .5rem; }
.es-tab { border: 1px solid #ced4da; border-bottom: 0; background: #f1f3f5; padding: .3rem .7rem; border-radius: .3rem .3rem 0 0; font-size: .85rem; }
.es-tab.active { background: #0b2545; color: #fff; }
.es-panel { margin-bottom: .75rem; }
.es-out { background: #0b1320; color: #d7f5dd; padding: .6rem .75rem; border-radius: .3rem; font-size: .8rem; white-space: pre-wrap; min-height: 4rem; }
.es-cmds { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .35rem; }
.es-cmd-in { font-family: ui-monospace, Menlo, monospace; margin-bottom: .35rem; }
.es-topo { display: flex; flex-wrap: wrap; gap: .5rem; }
.es-node { border: 2px solid #0b2545; border-radius: .5rem; background: #fff; padding: .35rem .8rem; font-weight: 600; }
.es-node.active { background: #c9a227; }
.es-parts { border-top: 1px dashed #ced4da; padding-top: .5rem; }
.es-report { border: 2px solid #0b2545; }
.es-report dl { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; margin-bottom: .5rem; }
.es-report dt { font-weight: 600; }
.es-report dd { margin: 0; }
.es-status { font-weight: 800; letter-spacing: .04em; }
.es-dombar { display: grid; grid-template-columns: minmax(8rem, 16rem) 1fr 3.5rem; gap: .5rem; align-items: center; }
.es-dombar meter { width: 100%; height: 1rem; }
.sd-card { min-height: 9rem; display: flex; flex-direction: column; justify-content: center; text-align: center; font-size: 1.25rem; }
.sd-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .5rem; }
.sd-choice.sd-right { background: #d3f9d8; border-color: #2b8a3e; }
.sd-choice.sd-wrong { background: #ffe3e3; border-color: #b42318; }
.sd-stats { display: flex; flex-wrap: wrap; gap: 1rem; font-variant-numeric: tabular-nums; }
@media print {
  .no-print, nav, header, footer, .sidebar, #sidebar, .btn, .es-review, .tutor-fab { display: none !important; }
  .es-report { border: 1px solid #000; }
  body { background: #fff; }
}
@media (min-width: 992px) {
  #esForm.es-wb-open { display: grid; grid-template-columns: minmax(0, 1fr) 23rem; gap: 0 1rem; align-items: start; }
  #esForm.es-wb-open > :not(.es-wb) { grid-column: 1; }
  #esForm.es-wb-open > .es-wb { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: 7rem; }
  #esForm.es-wb-open .es-wb-text { font-size: .74rem; }
}
/* pass 5: candidate agreement (clock not running yet) and accommodation badge */
#esForm.es-pre { display: none !important; }
.es-agreement { border: 2px solid #0b2545; }
.es-agree-facts { display: grid; grid-template-columns: max-content 1fr; gap: .2rem 1rem; }
.es-agree-facts dt { font-weight: 600; }
.es-agree-facts dd { margin: 0; }
