/* ======================================================================
    Exam Engine — Runner UI (Becker-like)
   All rules are scoped to .cpaee-runner to avoid theme bleed.
   ====================================================================== */
.cpaee-runner, .cpaee-runner * { box-sizing: border-box; }
.cpaee-runner { --ink:#0f172a; --bg:#0b3e4f; --bg-2:#08313e; --line:#e6e9ee;
  --pill:#ffffff; --accent:#e45d1b; --accent-2:#d94f0b; --muted:#64748b; }

/* Layout shell */
.cpaee-runner .runner-wrap{ max-width:none; margin:0; padding:0; }
.cpaee-runner .loading{ padding:30px; text-align:center; color:var(--ink); }

/* ------------------ Top bar (Becker-like) ------------------ */
.cpaee-runner .runner-topbar{
  position: sticky; top:0; z-index:50;
  background:var(--bg); color:#fff;
  display:grid; grid-template-columns: 280px 1fr auto; gap:14px; align-items:center;
  padding:12px 18px; border-bottom:4px solid var(--accent);
}
.cpaee-runner .runner-topbar .timer{ display:flex; align-items:center; gap:12px; }
.cpaee-runner .runner-topbar .timer .clock{
  font-weight:900; font-size:48px; line-height:1; letter-spacing:.5px;
}
.cpaee-runner .runner-topbar .timer .label{
  font-size:12px; line-height:1.1; text-transform:uppercase; letter-spacing:.08em; opacity:.95;
}

/* testlet tabs */
.cpaee-runner .runner-topbar .testlet-tabs{ display:flex; gap:8px; flex-wrap:wrap; }
.cpaee-runner .runner-topbar .testlet-tabs .tab{
  appearance:none; border:1px solid rgba(255,255,255,.65);
  color:#fff; background:transparent; cursor:pointer;
  border-radius:9999px; padding:8px 14px; font-weight:700; font-size:13px;
}
.cpaee-runner .runner-topbar .testlet-tabs .tab.active{
  background:#fff; color:var(--bg); border-color:#fff;
}
.cpaee-runner .runner-topbar .testlet-tabs .tab.locked{ opacity:.55; cursor:not-allowed; }

/* actions (tools + submit) */
.cpaee-runner .runner-topbar .actions{ display:flex; gap:8px; align-items:center; }
.cpaee-runner .btn{ appearance:none; border:1px solid var(--line); background:#fff; color:var(--ink);
  border-radius:10px; padding:10px 14px; cursor:pointer; font-weight:800; font-size:14px; line-height:1; }
.cpaee-runner .btn.ghost{ background:transparent; color:#fff; border-color:rgba(255, 255, 255, 0.6); }
.cpaee-runner .btn.primary{ background:var(--accent); color:#fff; border-color:var(--accent-2); }
.cpaee-runner .btn.icon{ display:inline-flex; align-items:center; gap:8px; }
/* ✅ Make Cancel + Discard black in the session gate modals */
.cpaee-runner .session-actions .btn.ghost,
.cpaee-study-runner .session-actions .btn.ghost{
  background: #000;
  border-color: #000;
  color: #fff;
}

.cpaee-runner .session-actions .btn.ghost:hover,
.cpaee-study-runner .session-actions .btn.ghost:hover{
  opacity: 0.9;
}

/* Optional bottom submit bar (kept but subtle) */
.cpaee-runner .submit-bar{ display:flex; justify-content:flex-end; margin:12px 18px 0; }
.cpaee-runner .submit-bar .btn.primary{ box-shadow:0 3px 10px rgba(228,93,27,.3); }

/* ------------------ Paper area ------------------ */
.cpaee-runner .paper{
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:16px; margin:14px 18px; box-shadow:0 8px 20px rgba(0,0,0,.06);
}
.cpaee-runner .page-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.cpaee-runner .qnums{ display:flex; gap:6px; flex-wrap:wrap; }
.cpaee-runner .qnum{ width:28px; height:28px; border:1px solid var(--line); border-radius:6px;
  display:flex; align-items:center; justify-content:center; background:#f8fafc; font-weight:700; }
.cpaee-runner .qnum.answered{ background:#bbf7d0; border-color:#86efac; }
.cpaee-runner .qnum.active{ background:#eef2ff; border-color:#c7d2fe; }
.cpaee-runner .paper .title{ font-weight:800; margin-left:auto; }
/* Per-question status colors (after Submit / Show answer) */
.cpaee-runner .qnum.unanswered {
  background: #ffffff;
  border-color: var(--line);
}

.cpaee-runner .qnum.correct {
  background: #86efac;   /* a bit greener */
  border-color: #16a34a; /* green */
}

.cpaee-runner .qnum.incorrect {
  background: #fee2e2;   /* light red */
  border-color: #dc2626; /* red */
}

/* MCQ */
.cpaee-runner .mcq-stem{
  margin:12px 0 8px;
  font-weight:700;
  white-space: pre-wrap; /* preserve line breaks/spaces so text tables look right */
}
/* =========================
   Becker-style EXHIBITS UI
   ========================= */

.cpaee-runner .cpaee-exhibits-panel{
  background:#fff;
  border:1px solid #d6d6d6;
  border-radius:0;
  margin:10px 0 14px;
  box-shadow:none;
}

/* header row */
.cpaee-runner .cpaee-exhibits-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  border-bottom:1px solid #e4e4e4;
}

.cpaee-runner .cpaee-exhibits-title{
  font-weight:800;
  font-size:14px;
  letter-spacing:.02em;
  color:#111;
}

/* "close all exhibits" on right */
.cpaee-runner .cpaee-exhibits-closeall{
  background:transparent;
  border:0;
  color:#9a9a9a;
  font-size:12px;
  cursor:pointer;
  padding:4px 6px;
}
.cpaee-runner .cpaee-exhibits-closeall:hover{
  color:#555;
  text-decoration:underline;
}

/* scrollable body like Becker */
.cpaee-runner .cpaee-exhibits-body{
  padding:10px 12px;
  max-height:78px;          /* forces inner scrollbar like screenshot */
  overflow-y:auto;
}

/* 3-column link layout */
.cpaee-runner .cpaee-exhibits-body{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px 18px;
}

/* exhibit link row */
.cpaee-runner .cpaee-exhibit-link{
  display:flex;
  align-items:center;
  gap:8px;
  color:#0b57d0;
  text-decoration:underline;
  font-size:13px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.cpaee-runner .cpaee-exhibit-link:hover{
  color:#0846a8;
}

/* small document icon */
.cpaee-runner .cpaee-exhibit-ico{
  width:14px;
  height:14px;
  flex:0 0 14px;
  border:1px solid #bfcfe8;
  background:#eef4ff;
  position:relative;
  border-radius:2px;
}
.cpaee-runner .cpaee-exhibit-ico:before{
  content:'';
  position:absolute;
  left:3px; top:3px;
  width:8px; height:1px;
  background:#2a63c9;
  box-shadow:0 3px 0 #2a63c9, 0 6px 0 #2a63c9;
}
.cpaee-runner .mcq-choices{ display:grid; gap:8px; margin:10px 0; }
.cpaee-runner .mcq-choice{ display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:center;
  border:1px solid var(--line); border-radius:10px; padding:10px; background:#fff; }
.cpaee-runner .mcq-choice .text.correct{ color:#0a7b34; font-weight:800; }
.cpaee-runner .mcq-choices.is-truefalse{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.cpaee-runner .mcq-choice.is-truefalse{ min-height:56px; }
.cpaee-runner .mcq-choice.is-truefalse .text{ font-size:16px; font-weight:700; }
.cpaee-runner .paper-actions{ display:flex; gap:10px; justify-content:space-between; margin-top:12px; }
/* Explanation blocks */
.cpaee-runner .mcq-explanation-wrap{
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
  overflow: hidden;
}

.cpaee-runner .mcq-explanation-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 10px 7px 12px;
  background: #e8edf4;
  border-bottom: 1px solid #d1d9e4;
}

.cpaee-runner .mcq-explanation-label{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: .7;
}

.cpaee-runner .mcq-explanation-close{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 6px;
  background: #fff;
  color: #374151;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: 1;
  flex-shrink: 0;
  transition: background .15s, border-color .15s, color .15s;
}

.cpaee-runner .mcq-explanation-close:hover{
  background: #fee2e2;
  border-color: #fca5a5;
  color: #b91c1c;
}

.cpaee-runner .mcq-explanation{
  margin-top: 12px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
}

.cpaee-runner .choice-explanation{
  margin-top: 6px;
  font-weight: 500;
  color: var(--ink);
  opacity: .9;
}

/* Kill any global blur/lock when exhibit opens */
body.cpaee-modal-open,
body.modal-open{
  overflow: auto !important;
}

body.cpaee-modal-open #wpwrap,
body.cpaee-modal-open .cpaee-runner,
body.modal-open #wpwrap,
body.modal-open .cpaee-runner{
  filter: none !important;
  pointer-events: auto !important;
}

/* If an overlay exists, disable it (or remove in JS) */
.cpaee-exhibit-overlay,
.cpaee-modal-backdrop,
.cpaee-overlay,
.cpaee-backdrop{
  display: none !important;
}


/* Modal shell */
.cpaee-runner .ex-modal{ position:fixed; inset:0; background:rgba(0,0,0,.35);
  display:flex; align-items:center; justify-content:center; z-index:9999; }
.cpaee-runner .ex-dialog{ width:min(980px,95vw); background:#fff; border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.35); overflow:hidden; }
.cpaee-runner .ex-dialog-head{ display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px; background:var(--bg); color:#fff; font-weight:900; }
.cpaee-runner .ex-dialog-body{ padding:12px; max-height:72vh; overflow:auto; }

/* Calculator */
.cpaee-runner .calc{ display:grid; gap:10px; }
.cpaee-runner .calc-display{ width:100%; border:1px solid var(--line); border-radius:8px; padding:10px; font-size:20px; }
.cpaee-runner .calc-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }

/* Spreadsheet */
.cpaee-runner .sheet-toolbar{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.cpaee-runner .sheet-grid{ overflow:auto; }
.cpaee-runner .sheet-table{ border-collapse:collapse; width:100%; background:#fff; border:1px solid var(--line); }
.cpaee-runner .sheet-table th,.cpaee-runner .sheet-table td{ border:1px solid var(--line); padding:0; position:relative; }
.cpaee-runner .sheet-table th{ background:#f3f6fb; padding:6px; text-align:center; font-weight:800; }
.cpaee-runner .sheet-cell{ width:100%; border:0; padding:8px 6px; background:#fff; color:var(--ink); }
.cpaee-runner .sheet-cell-render{ position:absolute; right:6px; bottom:2px; font-size:11px; color:var(--muted); }

/* Overview */
.cpaee-runner .overview{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; }
.cpaee-runner .ov-item{ display:flex; align-items:center; justify-content:space-between;
  border:1px solid var(--line); border-radius:10px; background:#fff; padding:8px; cursor:pointer; }
.cpaee-runner .ov-item.ok{ background:#bbf7d0; border-color:#86efac; }
.cpaee-runner .ov-item.blank{ background:#fff7ed; border-color:#fed7aa; }
.cpaee-runner .ov-item.mark{ outline:2px dashed #2563eb; }
.cpaee-runner .ov-item .num{ font-weight:900; }
.cpaee-runner .ov-item .state{ font-size:12px; color:#334155; }
/* Correct / incorrect / unanswered in Overview */
.cpaee-runner .ov-item.correct {
  background: #86efac;
  border-color: #16a34a;
}

.cpaee-runner .ov-item.incorrect {
  background: #fee2e2;
  border-color: #dc2626;
}

.cpaee-runner .ov-item.unanswered {
  background: #ffffff;
  border-color: var(--line);
}


/* TBS */
.cpaee-runner .tbs-table-wrap{
  overflow:auto;
  max-width:100%;
  border:1px solid #b8b8b8;
  border-radius:0;
  background:#fff;
}

.cpaee-runner .tbs-task{ margin:12px 0; }
.cpaee-runner .tbs-task.paragraph{ white-space:pre-wrap; line-height:1.45; }
.cpaee-runner .tbs-table{
  width:100%;
  border-collapse:collapse;
  border:0;
  background:#fff;
  border-radius:0;
  overflow:visible;
  color:#111;
  font-size:14px;
}
.cpaee-runner .tbs-table th,
.cpaee-runner .tbs-table td{
  border:1px solid #b8b8b8;
  padding:6px 8px;
  text-align:left;
  vertical-align:middle;
}
.cpaee-runner .tbs-table th{ background:#f0f0f0; font-weight:700; }
.cpaee-runner .tbs-table .cell{ width:100%; }

/* Becker-like clean input cells */
.cpaee-runner .tbs-table td.cpaee-has-input{ cursor:pointer; }
.cpaee-runner .tbs-table td.cpaee-has-input:focus-within{ background:#eef7ff; }

.cpaee-runner .tbs-table td.cpaee-has-input input.cell,
.cpaee-runner .tbs-table td.cpaee-has-input select.cell{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  height:auto !important;
  min-height:0 !important;
  box-shadow:none !important;
  font:inherit;
  color:inherit;
}

.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"] input.cell,
.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="auto_calc"] input.cell{
  text-align:right;
}

.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"]{
  position:relative;
  padding:10px 54px 10px 12px;
}

.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"] input.cell{
  padding-right:0 !important;
  box-sizing:border-box !important;
  font-size:14px !important;
  font-weight:700 !important;
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  color:#0f172a !important;
}

.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"][data-empty="1"] input.cell{
  color:#94a3b8 !important;
}

.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"] .cpaee-input-badge{
  top:auto;
  bottom:8px;
  right:8px;
  transform:none;
  background:#475569;
}

.cpaee-runner .tbs-table td.cpaee-auto-calc-cell{
  background:#fff;
}

.cpaee-runner .tbs-table td.cpaee-auto-calc-cell input.cell{
  text-align:right;
  padding-right:0 !important;
  box-sizing:border-box !important;
}

/* Spreadsheet-style headers (optional) */
.cpaee-runner .tbs-table.tbs-sheet th.sheet-corner,
.cpaee-runner .tbs-table.tbs-sheet th.sheet-head,
.cpaee-runner .tbs-table.tbs-sheet th.sheet-rowhead{
  background:#f0f0f0;
  color:#111;
  font-weight:700;
  text-align:center;
}
.cpaee-runner .tbs-table.tbs-sheet th.sheet-rowhead{ width:44px; }

/* NEW: lock prefilled text cells (read-only) */
.cpaee-runner .tbs-table .cell.readonly[readonly]{
  background:transparent;
  color:#111;
  border:0;
}
.cpaee-runner .tbs-table td .cell.readonly{
  width:100%;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
}
.cpaee-runner .tbs-table td{
  vertical-align: top;
}

/* Break overlay */
.cpaee-runner .break-ct{ font-size:28px; font-weight:900; text-align:center; margin:10px 0; }
.cpaee-runner .exam-optional-break-dialog{
  max-width: 548px;
  border-radius: 0;
  border-left: 3px solid #df5a1c;
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
}
.cpaee-runner .exam-optional-break-dialog .ex-dialog-body{
  padding: 14px 0 0;
  max-height: none;
  overflow: visible;
}
.cpaee-runner .exam-optional-break{ color:#111; }
.cpaee-runner .exam-optional-break-head{
  display:flex; align-items:center; gap:12px;
  padding: 0 18px 12px;
  border-bottom:1px solid #7e9aaa;
}
.cpaee-runner .exam-optional-break-icon{
  width:28px; height:28px;
  display:inline-flex; align-items:center; justify-content:center;
  color:#3c4043; font-size:28px; line-height:1;
}
.cpaee-runner .exam-optional-break-title{
  color:#0b4f71;
  font-size:20px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:.2px;
}
.cpaee-runner .exam-optional-break-copy{
  padding: 12px 18px 14px;
  font-size:13px;
  line-height:1.55;
  color:#111;
}
.cpaee-runner .exam-optional-break-copy p{
  margin: 0 0 8px;
  font-weight:700;
}
.cpaee-runner .exam-optional-break-copy p:last-child{ margin-bottom:0; }
.cpaee-runner .exam-optional-break-copy .exam-optional-break-or{
  font-weight:700;
  margin: 10px 0 8px;
}
.cpaee-runner .exam-optional-break-actions{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 18px;
  background:#d9e1e5;
  border-top:1px solid #c7d0d5;
}
.cpaee-runner .exam-optional-break-break,
.cpaee-runner .exam-optional-break-continue{
  appearance:none;
  border:1px solid #b84710;
  background:#e45d1b;
  color:#fff;
  font-weight:800;
  font-size:14px;
  line-height:1;
  padding:11px 16px;
  cursor:pointer;
  text-transform:uppercase;
}

/* Report */
.cpaee-runner table.report{ border-collapse:collapse; width:100%; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:visible; }
.cpaee-runner table.report th, .cpaee-runner table.report td{ border:1px solid var(--line); padding:8px; }
.cpaee-runner table.report th{ background:#f8fafc; font-weight:800; }

/* Runner rich HTML content (exhibits, stems, explanations, inline-choice explanations).
   Keep these defaults aligned with the builder preview. Do not force !important: 
   inline HTML styles that pass the sanitizer must render the same in builder and runner. */
.cpaee-runner .exhibit-html{
  /* HTML content must use normal whitespace so tables, divs, and block
     elements lay out correctly. pre-wrap caused newlines between tags to
     render as visible text nodes, breaking table structure visually.
     Plain-text paragraphs set white-space on the element itself via JS. */
  white-space: normal;
  tab-size: 4;
}
.cpaee-runner .exhibit-html table{
  width:100%;
  border-collapse:collapse;
  margin:6px 0;
  border:1px solid #cbd5e1;
}
.cpaee-runner .exhibit-html th,
.cpaee-runner .exhibit-html td{
  border:1px solid #cbd5e1;
  padding:6px;
  text-align:left;
  vertical-align:top;
}
.cpaee-runner .exhibit-html thead th{
  font-weight:800;
}
.cpaee-runner .exhibit-html img{
  max-width:100%;
  height:auto;
  display:block;
  margin:10px auto;
}

/* v2.1.13: Rich HTML explanations must render tables the same in the builder and runner.
   Scope this to rich explanation/exhibit content only; do not affect active TBS answer tables.
   No background defaults — bgcolor="" attributes on tr/td/th must not be overridden. */
.cpaee-runner .exhibit-html table,
.cpaee-runner .tbs-explain-body table,
.cpaee-study-runner .exhibit-html table,
.cpaee-study-runner .tbs-explain-body table{
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
  margin: 6px 0;
  border: 1px solid #cbd5e1;
}
.cpaee-runner .exhibit-html table th,
.cpaee-runner .exhibit-html table td,
.cpaee-runner .tbs-explain-body table th,
.cpaee-runner .tbs-explain-body table td,
.cpaee-study-runner .exhibit-html table th,
.cpaee-study-runner .exhibit-html table td,
.cpaee-study-runner .tbs-explain-body table th,
.cpaee-study-runner .tbs-explain-body table td{
  border: 1px solid #cbd5e1;
  padding: 6px 8px;
  text-align: left;
  vertical-align: top;
}
.cpaee-runner .exhibit-html table th,
.cpaee-runner .tbs-explain-body table th,
.cpaee-study-runner .exhibit-html table th,
.cpaee-study-runner .tbs-explain-body table th{
  font-weight: 800;
}
.cpaee-runner .exhibit-html table p,
.cpaee-runner .tbs-explain-body table p,
.cpaee-study-runner .exhibit-html table p,
.cpaee-study-runner .tbs-explain-body table p{
  margin: 0;
}

/* ===============================
   MCQ incorrect chosen answer
   =============================== */

.cpaee-runner .mcq-choice .text.incorrect {
  color: #7f1d1d;               /* dark red text */
  font-weight: 800;
}

.cpaee-runner .mcq-choice:has(.text.incorrect) {
  background: #fee2e2;          /* light red */
  border-color: #dc2626;        /* red border */
}

/* Optional: small corner notch for marked items (study mode) */
.cpaee-runner .qnum.marked {
  position: relative;
}
.cpaee-runner .qnum.marked::after {
  content: '';
  position: absolute;
  right: -2px; top: -2px;
  width: 0; height: 0;
  border-left: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-top: 10px solid var(--accent);
}
/* ---------- Exam runner polish ---------- */
.cpaee-runner .runner-topbar{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  background:#0f172a;             /* slate-900 */
  color:#fff;
  border-radius:10px;
  position:sticky;
  top:0;
  z-index:1000;
}
.cpaee-runner .runner-topbar .timer{
  display:flex; flex-direction:column; min-width:120px; line-height:1.1;
}
.cpaee-runner .runner-topbar .clock{ font-weight:700; font-size:18px; }
.cpaee-runner .runner-topbar .label{ opacity:.9; font-size:11px; letter-spacing:.02em; }

.cpaee-runner .runner-topbar .testlet-tabs{
  display:flex; gap:6px; flex:1; justify-content:center; flex-wrap:wrap;
}
.cpaee-runner .runner-topbar .tab{
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);
  color:#fff; padding:6px 10px; border-radius:8px; font-weight:600;
}
.cpaee-runner .runner-topbar .tab.active{ background:#2563eb; border-color:#2563eb; }
.cpaee-runner .runner-topbar .tab.locked{ opacity:.5; cursor:not-allowed; pointer-events:none; }

.cpaee-runner .runner-topbar .actions{ display:flex; gap:6px; align-items:center; }
.cpaee-runner .btn{ 
  border:1px solid #e5e7eb; background:#fff; color:#111827; 
  padding:8px 12px; border-radius:8px; font-weight:600; line-height:1;
}
.cpaee-runner .btn.icon{ display:inline-flex; gap:6px; align-items:center; }
.cpaee-runner .btn.ghost{
  background:transparent; color:#fff; border-color:rgba(128, 127, 127, 0.486);
}
.cpaee-runner .btn.primary{ background:#2563eb; border-color:#2563eb; color:#fff; }
.cpaee-runner .btn:disabled{ opacity:.5; cursor:not-allowed; }

/* Sticky submit bar so the main submit button is always visible */
.cpaee-runner .submit-bar{
  position:sticky; bottom:0; background:#fff; 
  border-top:1px solid #e5e7eb; padding:12px; text-align:right; z-index:500;
}

/* Modal overlay always on top of everything */
.cpaee-runner .ex-modal{
  position:fixed; inset:0; background:rgba(0,0,0,.5);
  display:flex; align-items:center; justify-content:center; z-index:10000;
}
.cpaee-runner .ex-dialog{
  background:#fff; border-radius:12px; width:min(92vw, 840px);
  max-height:90vh; overflow:auto; box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.cpaee-runner .ex-dialog-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px; border-bottom:1px solid #e5e7eb; font-weight:700;
}
.cpaee-runner .ex-dialog-body{ padding:12px; }

/* Calculator / Spreadsheet inputs */
.cpaee-runner .calc .calc-display{
  width:100%; border:1px solid #e5e7eb; border-radius:8px; padding:10px; margin-bottom:8px;
  font-size:16px;
}
.cpaee-runner .calc .calc-grid{
  display:grid; grid-template-columns: repeat(5, minmax(48px, 1fr)); gap:6px;
}
.cpaee-runner .sheet-toolbar{
  display:flex; align-items:center; gap:8px; border:1px solid #e5e7eb; border-radius:8px; padding:8px;
  background:#f9fafb; margin-bottom:8px;
}
.cpaee-runner .sheet-table{
  width:100%; border-collapse:separate; border-spacing:0;
}
.cpaee-runner .sheet-table th,
.cpaee-runner .sheet-table td{
  border:1px solid #e5e7eb; padding:0; position:relative;
}
.cpaee-runner .sheet-cell{
  width:100%; border:0; padding:8px; outline:none; font:inherit; background:#fff;
}
.cpaee-runner .sheet-cell-render{
  position:absolute; right:8px; top:50%; transform:translateY(-50%); 
  font-size:12px; opacity:.6; pointer-events:none;
}
.cpaee-runner .runner-topbar .brand { font-weight:900; font-size:14px; }
.cpaee-runner .runner-topbar .actions .btn { min-height:34px; }
/* ===== Fullscreen launcher overlay ===== */

.cpaee-launcher-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.5rem;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 1rem;
  background: #0f172a;
  color: #fff;
}

.cpaee-launcher-overlay[hidden] {
  display: none !important;
}

.cpaee-launcher-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 23, 42, 0.98); /* dark overlay */
  display: flex;
  align-items: stretch;
  justify-content: center;
}

/* Make the runner fill the screen */
.cpaee-launcher-overlay .cpaee-runner {
  width: 100%;
  height: 100%;
}

/* Close button (top-right) */
.cpaee-launcher-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: #0f172a;
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 8px 12px;
  cursor: pointer;
  font-size: 20px;
}

/* Prevent background scroll while overlay is open */
body.cpaee-fullscreen-open {
  overflow: hidden;
}

/* ===== MCQ Session Options (Study mode) ===== */
.cpaee-runner .session-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cpaee-runner .session-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  cursor: pointer;
}

.cpaee-runner .session-option input[type="radio"] {
  margin-top: 3px;
}

.cpaee-runner .session-option-title {
  font-weight: 600;
  font-size: 14px;
}

.cpaee-runner .session-option-desc {
  font-size: 12px;
  color: #6b7280;
}

.cpaee-runner .session-actions {
  margin-top: 16px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

/* ===== MCQ Feedback Banner ===== */

.cpaee-runner .mcq-feedback {
  margin: 18px auto 10px auto;
  padding: 14px 20px;
  max-width: 720px;
  border-radius: 12px;
  text-align: center;
  font-weight: 700;
  font-size: 16px;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}

.cpaee-runner .mcq-feedback.correct {
  background: #bbf7d0;          /* light green */
  border: 2px solid #16a34a;    /* green */
  color: #166534;               /* dark green text */
}

.cpaee-runner .mcq-feedback.incorrect {
  background: #fff1f2;          /* light red */
  border: 2px solid #ef4444;    /* red */
  color: #7f1d1d;               /* dark red text */
}

.cpaee-runner .mcq-feedback-title {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 6px;
}

.cpaee-runner .mcq-feedback-sub {
  font-size: 14px;
  font-weight: 600;
}
/* ===============================
   FIX: Overview number visibility
   =============================== */

/* Default number color */
.cpaee-runner .ov-item .num {
  color: #0f172a; /* dark slate */
}

/* Correct (green) */
.cpaee-runner .ov-item.correct .num {
  color: #14532d; /* dark green */
}

/* Incorrect (red) */
.cpaee-runner .ov-item.incorrect .num {
  color: #7f1d1d; /* dark red */
}

/* Unanswered */
.cpaee-runner .ov-item.unanswered .num {
  color: #0f172a;
}

/* Marked (outline only, keep readable) */
.cpaee-runner .ov-item.mark .num {
  color: #1e3a8a; /* blue-ish for emphasis */
}
.cpaee-runner .ov-item .num {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.05);
}
/* =========================================================
   CPAEE Mobile Responsive Pack
   Paste at the END of runner.css
   ========================================================= */

/* Helper: prevent weird horizontal scroll on small screens */
.cpaee-runner{
  max-width: 100%;
  overflow-x: hidden;
}

/* Make the main paper comfortable on narrow screens */
@media (max-width: 768px){

  /* Runner paper area */
  .cpaee-runner .paper{
    margin: 10px 10px;
    padding: 12px;
    border-radius: 12px;
  }

  /* MCQ stem readability */
  .cpaee-runner .mcq-stem{
    font-size: 15px;
    line-height: 1.35;
    word-break: break-word;
  }

  /* Choices become tighter */
  .cpaee-runner .mcq-choice{
    grid-template-columns: auto 1fr;
    padding: 10px;
    gap: 10px;
  }
  .cpaee-runner .mcq-choice input[type="radio"]{
    transform: scale(1.1);
  }

  /* Make page head wrap nicely */
  .cpaee-runner .page-head{
    flex-wrap: wrap;
    gap: 8px;
  }

  /* Question numbers: single-row scroll (instead of wrapping to multiple rows) */
  .cpaee-runner .qnums{
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 6px;
    padding-bottom: 6px;
    max-width: 100%;
  }
  .cpaee-runner .qnum{
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
  }

  /* Paper actions: stack if needed */
  .cpaee-runner .paper-actions{
    flex-wrap: wrap;
    gap: 8px;
  }
  .cpaee-runner .paper-actions .btn{
    flex: 1 1 auto;
    min-width: 120px;
  }

  /* Submit bar: full width button on mobile */
  .cpaee-runner .submit-bar{
    padding: 10px;
  }
  .cpaee-runner .submit-bar .btn{
    width: 100%;
    justify-content: center;
  }

  /* Feedback banner: full width */
  .cpaee-runner .mcq-feedback{
    max-width: 100%;
    margin: 12px 0;
    padding: 12px;
    font-size: 15px;
  }

  /* Overview grid: 2 columns on mobile */
  .cpaee-runner .overview{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* Tables in exhibits / stems: allow horizontal scroll */
  .cpaee-runner .mcq-stem.exhibit-html,
  .cpaee-runner .ex-dialog-body{
    overflow-x: auto;
  }
  .cpaee-runner .mcq-stem.exhibit-html table,
  .cpaee-runner .ex-dialog-body .exhibit-html table{
    min-width: 520px; /* forces scroll instead of squishing */
  }
}

/* =========================================================
   Topbar mobile layout (most important fix)
   ========================================================= */
@media (max-width: 768px){

  /* Make topbar wrap and avoid overflow */
  .cpaee-runner .runner-topbar{
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
  }

  /* Brand takes full row */
  .cpaee-runner .runner-topbar .brand{
    width: 100%;
    font-size: 14px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Timer becomes compact */
  .cpaee-runner .runner-topbar .timer{
    flex: 1 1 auto;
    min-width: 120px;
  }
  .cpaee-runner .runner-topbar .clock{
    font-size: 16px;
  }

  /* Tabs wrap */
  .cpaee-runner .runner-topbar .testlet-tabs{
    width: 100%;
    justify-content: flex-start;
  }

  /* Actions become a grid (2 rows) */
  .cpaee-runner .runner-topbar .actions{
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .cpaee-runner .runner-topbar .actions .btn{
    width: 100%;
    padding: 10px 8px;
    font-size: 13px;
    justify-content: center;
  }

  /* Make primary stand out but still fit */
  .cpaee-runner .runner-topbar .actions .btn.primary{
    grid-column: 1 / -1; /* full width row */
  }
}

/* Extra-small phones */
@media (max-width: 420px){
  .cpaee-runner .runner-topbar .actions{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cpaee-runner .runner-topbar .actions .btn{
    font-size: 12px;
    padding: 10px 6px;
  }
}

/* =========================================================
   Modal mobile fit
   ========================================================= */
@media (max-width: 768px){
  .cpaee-runner .ex-dialog{
    width: 94vw !important;
    max-height: 88vh;
  }
  .cpaee-runner .ex-dialog-body{
    max-height: 70vh;
  }
}
/* Mobile Tools behavior: show only one Tools button */
@media (max-width: 768px){
  .cpaee-runner .cpaee-tools-row{ display:none !important; }
  .cpaee-runner .cpaee-tools-toggle{ display:inline-flex !important; }
}

/* Desktop: hide Tools toggle, show individual tool buttons */
@media (min-width: 769px){
  .cpaee-runner .cpaee-tools-toggle{ display:none !important; }
  .cpaee-runner .cpaee-tools-row{
    display:flex;
    gap:6px;
    align-items:center;
  }
}

/* Tools menu vertical buttons */
.cpaee-runner .cpaee-tools-menu{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.cpaee-runner .cpaee-tools-menu .btn{
  width:100%;
  justify-content:center;
}
/* ================================
   MOBILE: HIDE ALL TOOL BUTTONS
   ================================ */
@media (max-width: 768px) {

  /* Hide individual tool buttons completely */
  .cpaee-runner .actions .btn.ghost:not(.cpaee-tools-toggle) {
    display: none !important;
  }

  /* Show ONLY the Tools button */
  .cpaee-runner .cpaee-tools-toggle {
    display: inline-flex !important;
  }
}

/* ================================
   DESKTOP: NORMAL TOOL VISIBILITY
   ================================ */
@media (min-width: 769px) {

  /* Hide Tools button on desktop */
  .cpaee-runner .cpaee-tools-toggle {
    display: none !important;
  }

}

/* ================================
   MOBILE: HIDE TOP END-SESSION
   ================================ */
@media (max-width: 768px) {

  /* Hide the top End Session button only */
  .cpaee-runner .runner-topbar .btn.primary {
    display: none !important;
  }

}


/* ------------------ TBS split + explanation (Study/Quiz runner) ------------------ */
.cpaee-runner .tbs-split{ display:flex; gap:0; min-height: calc(100vh - 64px); background:#f6f7f9; }
.cpaee-runner .tbs-left{ flex: 0 0 52%; max-width: 52%; border-right:1px solid var(--line); background:#fff; }
.cpaee-runner .tbs-right{ flex: 1 1 auto; min-width:0; overflow:hidden; position: relative; background:#f1f3f5; }

@media (max-width: 980px){
  .cpaee-runner .tbs-split{ display:block; }
  .cpaee-runner .tbs-left{ max-width:none; border-right:none; }
  .cpaee-runner .tbs-right{ display:none; }
}

/* Explanation side panel (right) */
.cpaee-runner .tbs-explain{
  position: sticky;
  top: 64px; /* below topbar */
  height: calc(100vh - 64px);
  width: 100%;
  min-width:0;
  overflow:hidden;
  background: #ffffff;
  border-left: 1px solid var(--line);
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  transform: translateX(100%);
  transition: transform .18s ease;
  display:flex;
  flex-direction:column;
}
.cpaee-runner .tbs-explain.is-open{ transform: translateX(0); }

.cpaee-runner .tbs-explain-head{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 14px;
  border-bottom:1px solid var(--line);
}
.cpaee-runner .tbs-explain-title{ font-weight:700; }

/* The explanation panel is white — override .btn.ghost so the Close
   button is visible. Ghost is designed for dark topbar backgrounds;
   here we need a dark-on-white style instead. */
.cpaee-runner .tbs-explain-actions .btn.ghost{
  background: #fff;
  color: #374151;
  border-color: rgba(0,0,0,.2);
  font-size: 12px;
  font-weight: 600;
}
.cpaee-runner .tbs-explain-actions .btn.ghost:hover{
  background: #fee2e2;
  color: #b91c1c;
  border-color: #fca5a5;
}
.cpaee-runner .tbs-explain-legend{
  display:flex; gap:10px;
  padding: 10px 14px;
  border-bottom:1px solid var(--line);
  font-size:12px;
}
.cpaee-runner .tbs-explain-legend .lg{ display:inline-flex; align-items:center; gap:6px; }
.cpaee-runner .tbs-explain-legend .lg:before{
  content:''; width:12px; height:12px; border-radius:3px; display:inline-block;
  border:1px solid rgba(0,0,0,.15);
}
.cpaee-runner .tbs-explain-legend .correct:before{ background:#bbf7d0; }
.cpaee-runner .tbs-explain-legend .incorrect:before{ background:#fee2e2; }
.cpaee-runner .tbs-explain-legend .unanswered:before{ background:#dbeafe; }

/* Keep wide explanation content inside the right pane.
   Large explanation tables should create a horizontal scrollbar instead of
   forcing the panel wider than the viewport. */
.cpaee-runner .tbs-explain-body{
  flex:1 1 auto;
  min-width:0;
  overflow-x:auto;
  overflow-y:auto;
  padding:14px;
}
.cpaee-runner .tbs-explain-block,
.cpaee-runner .tbs-explain-item,
.cpaee-runner .tbs-explain-item .content{
  min-width:0;
}
.cpaee-runner .tbs-explain-block{ padding: 10px 12px; border:1px solid var(--line); border-radius:10px; margin-bottom:10px; background:#fff; }
.cpaee-runner .tbs-explain-item{ border:1px solid var(--line); border-radius:10px; margin:10px 0; overflow:hidden; background:#fff; }
.cpaee-runner .tbs-explain-item .badge{ font-size:11px; font-weight:700; padding:8px 10px; border-bottom:1px solid var(--line); }
.cpaee-runner .tbs-explain-item .content{ padding:10px 12px; }
.cpaee-runner .tbs-explain-item.correct .badge{ background:#bbf7d0; }
.cpaee-runner .tbs-explain-item.incorrect .badge{ background:#fee2e2; }
.cpaee-runner .tbs-explain-item.unanswered .badge{ background:#dbeafe; }
.cpaee-runner .tbs-explain-empty{ color: var(--muted); }

/* TBS answer cell status colors */
.cpaee-runner .tbs-table .cell.correct{ background:#bbf7d0; border-color:#16a34a; }
.cpaee-runner .tbs-table .cell.incorrect{ background:#fee2e2; border-color:#ef4444; }
.cpaee-runner .tbs-table .cell.unanswered{ background:#dbeafe; border-color:#3b82f6; }

/* input coloring (if you prefer input-based) */
.tbs-table .cell.correct { outline: 2px solid #1ea85a; }
.tbs-table .cell.incorrect { outline: 2px solid #e04545; }
.tbs-table .cell.unanswered { outline: 2px solid #2a6fe0; }

/* td coloring (added by our JS) */
.tbs-table td.correct { background: rgba(30,168,90,.12); }
.tbs-table td.incorrect { background: rgba(224,69,69,.12); }
.tbs-table td.unanswered { background: rgba(42,111,224,.12); }


.cpaee-format-popup{color:#111;}
.cpaee-format-popup button{color:#111;}
.cpaee-format-popup{color:#111;}
.cpaee-format-popup button{color:#111;}
.cpaee-format-popup input{color:#111;}
.cpaee-format-popup input:focus{outline:none;border-color:#2563eb !important;box-shadow:0 0 0 3px rgba(37,99,235,.12);}


/* Becker-style: No Entry Required disables the table */
.tbs-table.is-disabled{opacity:0.65;}
.tbs-table.is-disabled td,.tbs-table.is-disabled th{background:#f3f5f7 !important;}
.tbs-table.is-disabled input,.tbs-table.is-disabled select{pointer-events:none;}
.tbs-table.is-disabled input,.tbs-table.is-disabled select{background:#eef1f4 !important;}

.cpaee-exhibit-window {
  min-width: 320px;
  min-height: 220px;
}

/* ---------- Launcher readiness gate ---------- */
.cpaee-launcher-btn.is-loading {
  opacity: 0.85;
  cursor: not-allowed;
}

.cpaee-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  display: inline-block;
  vertical-align: -3px;
  margin-right: 8px;
  animation: cpaee-spin 0.9s linear infinite;
}

@keyframes cpaee-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}


/* Ensure student inputs stay inside cells */
.cpaee-runner .tbs-table .cell{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  min-width:0;
}
.cpaee-runner .tbs-table td .cell{ white-space:nowrap; }
.cpaee-runner .tbs-table td .cell[contenteditable]{ white-space:normal; word-break:break-word; }
.cpaee-runner .tbs-table td .cell.readonly{ background:#f7f7f7; }
.cpaee-runner .tbs-table td .cell:not(.readonly){ background:#fff; }
.cpaee-runner .tbs-table td > div{ max-width:100%; overflow:hidden; }
.cpaee-runner .tbs-table td > div *{ max-width:100%; }
.cpaee-runner .tbs-table td{ vertical-align:top; }


/* --- TBS cells: prevent overlap & allow wrapping --- */
.tbs-table td { overflow: hidden; }
.tbs-table td > div { overflow-wrap: anywhere; word-break: break-word; }
.tbs-table input.cell, .tbs-table select.cell, .tbs-table textarea.cell {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: block;
}
/* =========================
   Becker-like TBS table UI
   ========================= */

.tbs-table-wrap{
  overflow:auto;
  padding: 10px 12px;
  border: 1px solid #e7e9ee;
  border-radius: 12px;
  background: #fff;
}

/* Table frame */
.tbs-table{
  border-collapse: separate;
  border-spacing: 0;
  width: max-content;
  min-width: 100%;
  background: #fff;
  font-size: 13px;
  color: #111827;
}

/* Cell baseline */
.tbs-table td,
.tbs-table th{
  border-right: 1px solid #e6e8ee;
  border-bottom: 1px solid #e6e8ee;
  padding: 8px 10px;
  vertical-align: middle;
  background: #fff;
}

/* Outer border */
.tbs-table tr:first-child th,
.tbs-table tr:first-child td{
  border-top: 1px solid #e6e8ee;
}
.tbs-table td:first-child,
.tbs-table th:first-child{
  border-left: 1px solid #e6e8ee;
}

/* Spreadsheet headers */
.tbs-table.tbs-sheet thead th.sheet-head{
  background: #f6f7fb;
  font-weight: 700;
  text-align: center;
  color: #111827;
}
.tbs-table.tbs-sheet th.sheet-rowhead,
.tbs-table.tbs-sheet th.sheet-corner{
  background: #f6f7fb;
  font-weight: 700;
  text-align: center;
  color: #111827;
  width: 44px;
  min-width: 44px;
}

/* TBS cells: keep positioning for badges/popups; no hover guidance text. */
.tbs-table td{
  position: relative;
}

/* Make input cells look like Becker (no border boxes) */
.tbs-table td .cell{
  border: none !important;
  outline: none !important;
  background: transparent !important;
  box-shadow: none !important;

  font: inherit;
  color: inherit;
  padding: 0 !important;
  margin: 0 !important;

  height: 18px;
  line-height: 18px;

  width: 100%;
  min-width: 0;
}

/* dropdown: remove ugly native look as much as possible */
.tbs-table td select.cell{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding-right: 18px !important;
  cursor: pointer;
}

/* Dropdown cells: make the native select fill the whole table cell so clicking any vertical area opens it. */
.tbs-table td.cpaee-has-input[data-kind="input_select"] select.cell{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  box-sizing: border-box !important;
  padding: 0 28px 0 8px !important;
  cursor: pointer !important;
  z-index: 1;
}
.tbs-table td.cpaee-has-input[data-kind="input_select"] .cpaee-input-badge{
  z-index: 2;
}

/* make readonly calc cells feel like Becker */
.tbs-table td .cell.readonly{
  color: #111827;
  opacity: 0.95;
  cursor: default;
}

/* badge (123) alignment and look */
.cpaee-input-badge{
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  line-height: 14px;
  padding: 0 4px;
  border-radius: 3px;
  background: #334155;
  color: #fff;
  opacity: 0.9;
  pointer-events: none;
}

/* Hidden legacy input hint. Kept for backward compatibility but never shown on hover. */
.cpaee-input-hint{
  position: absolute;
  right: 28px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 11px;
  color: #2563eb;
  opacity: 0;
  transition: opacity 120ms ease;
  pointer-events: none;
  white-space: nowrap;
}

/* Ensure long static text wraps nicely (never overlap) */
.tbs-table td{
  overflow: hidden;           /* prevents bleeding */
}
.tbs-table td:not(:has(.cell)){
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Make rows breathe a bit like Becker */
.tbs-table tr{
  height: 32px;
}

/* ---- CPAEE: prevent overlap + allow Becker-like expanding inputs ---- */

.cpaee-sheet-table td, .cpaee-sheet-table th{
  overflow:hidden; /* never paint into neighbors */
}
.cpaee-sheet-table input.cell{
  width:auto;
  min-width:100%;
  max-width:none;
  box-sizing:border-box;
}
.cpaee-sheet-table td div{
  overflow-wrap:anywhere;
  word-break:break-word;
}


/* table can grow wider than container; container scrolls */
.cpaee-sheet-wrap { overflow-x: auto; }

/* avoid fixed layout fighting dynamic col resizing */
.cpaee-sheet-table { table-layout: fixed; }

/* never overlap into other cells */
.cpaee-sheet-table td, .cpaee-sheet-table th { overflow: hidden; }

/* Becker-like: input is content-sized, not full width */
.cpaee-sheet-table input.cpaee-cell-input {
  display: inline-block;
  width: 2ch;           /* will be overridden dynamically */
  max-width: 100%;
  box-sizing: border-box;
  min-width: 2ch;
  text-align: right;    /* Becker-ish for numbers */
}


/* ---------- Inline Choice Paragraph (runner) ---------- */
.cpaee-runner .cpaee-inline-choice-paragraph,
.cpaee-runner .cpaee-paragraph{
  display:block;
  margin:0 0 16px;
  color:#000;
}
.cpaee-runner .cpaee-inline-choice-paragraph ul,
.cpaee-runner .cpaee-inline-choice-paragraph ol,
.cpaee-runner .cpaee-paragraph ul,
.cpaee-runner .cpaee-paragraph ol{
  margin:8px 0 8px 1.5em;
  padding-left:1.25em;
}
.cpaee-runner .cpaee-inline-choice-paragraph ul,
.cpaee-runner .cpaee-paragraph ul{ list-style:disc; }
.cpaee-runner .cpaee-inline-choice-paragraph ol,
.cpaee-runner .cpaee-paragraph ol{ list-style:decimal; }
.cpaee-runner .cpaee-inline-choice-paragraph li,
.cpaee-runner .cpaee-paragraph li{ margin:4px 0; }
.cpaee-runner .cpaee-inline-choice-segment{
  display:inline !important;
  vertical-align:baseline !important;
  margin:0 !important;
  padding:1px 0 1px 0 !important;
  border:0 !important;
  background:transparent !important;
  color:#2e77a5 !important;
  font:inherit !important;
  line-height:inherit !important;
  cursor:pointer !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-decoration:underline !important;
  text-decoration-thickness:1px !important;
  text-underline-offset:2px !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.cpaee-runner .cpaee-inline-choice-segment:hover,
.cpaee-runner .cpaee-inline-choice-segment.is-open{
  background:#dceaf3 !important;
}
.cpaee-runner .cpaee-inline-choice-segment.is-answered{
  font-weight:400 !important;
}
.cpaee-runner .cpaee-inline-choice-segment.is-empty{
  display:inline-flex !important;
  align-items:flex-end !important;
  min-width:84px !important;
  text-decoration:none !important;
  border-bottom:1px solid #2e77a5 !important;
  transform:translateY(-1px);
}
.cpaee-runner .cpaee-inline-choice-label{
  color:inherit !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.cpaee-runner .cpaee-inline-choice-empty{
  display:inline-block !important;
  min-width:76px !important;
  min-height:1em !important;
}
.cpaee-runner .cpaee-inline-choice-trigger-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:13px !important;
  height:13px !important;
  margin-left:4px !important;
  vertical-align:baseline !important;
  background:#0f4a61 !important;
  color:#fff !important;
  font-size:8px !important;
  font-weight:700 !important;
  line-height:1 !important;
  border-radius:0 !important;
  transform:translateY(-1px);
}

.cpaee-runner .cpaee-inline-choice-trigger-icon.is-answered-review-mark{
  font-size:11px !important;
  font-weight:800 !important;
}
.cpaee-runner .cpaee-inline-choice-segment.correct{
  background:#bbf7d0 !important;
}
.cpaee-runner .cpaee-inline-choice-segment.incorrect{
  background:#fee2e2 !important;
}
.cpaee-runner .cpaee-inline-choice-segment.unanswered{
  background:#dceaf3 !important;
}
.cpaee-inline-choice-menu{
  position:fixed !important;
  z-index:100001 !important;
  width:min(540px, calc(100vw - 16px)) !important;
  background:#fff !important;
  border:1px solid #0f4a61 !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
}
.cpaee-inline-choice-menu-title{
  padding:8px 10px 7px !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  font-style:italic !important;
  color:#fff !important;
  background:#0f4a61 !important;
}
.cpaee-inline-choice-menu-list{
  border-top:0 !important;
  border-bottom:1px solid #0f4a61 !important;
  background:#fff !important;
}
.cpaee-inline-choice-choice{
  width:100% !important;
  display:flex !important;
  align-items:flex-start !important;
  gap:8px !important;
  text-align:left !important;
  border:0 !important;
  border-bottom:1px solid #d7d7d7 !important;
  background:#fff !important;
  padding:6px 10px 6px 9px !important;
  cursor:pointer !important;
  color:#111 !important;
  font:inherit !important;
  border-radius:0 !important;
  box-shadow:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.cpaee-inline-choice-choice:last-child{
  border-bottom:0 !important;
}
.cpaee-inline-choice-choice:hover,
.cpaee-inline-choice-choice.is-selected{
  background:#fff !important;
}
.cpaee-inline-choice-choice-radio{
  width:12px !important;
  height:12px !important;
  flex:0 0 12px !important;
  margin-top:4px !important;
  border:1px solid #7b7b7b !important;
  border-radius:50% !important;
  background:#fff !important;
  position:relative !important;
  box-sizing:border-box !important;
}
.cpaee-inline-choice-choice-radio.is-selected::after{
  content:'';
  position:absolute;
  inset:2px;
  border-radius:50%;
  background:#1d67ce;
}
.cpaee-inline-choice-choice-copy{
  display:block !important;
  font-size:13px !important;
  line-height:1.35 !important;
  color:#111 !important;
}
.cpaee-inline-choice-bracket{
  font-style:italic !important;
}
.cpaee-inline-choice-menu-footer{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  padding:5px 6px !important;
  background:#cfd4d7 !important;
}
.cpaee-inline-choice-menu-footer::before{
  content:none !important;
}
.cpaee-inline-choice-action{
  border:1px solid transparent !important;
  background:transparent !important;
  color:#0f4a61 !important;
  font-family:inherit !important;
  font-size:11px !important;
  line-height:1 !important;
  letter-spacing:.01em !important;
  text-transform:uppercase !important;
  cursor:pointer !important;
  padding:6px 9px !important;
  border-radius:0 !important;
  box-shadow:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
.cpaee-inline-choice-action.is-reset{
  margin-right:auto !important;
  background:#0f4a61 !important;
  border-color:#0f4a61 !important;
  color:#fff !important;
  font-weight:700 !important;
}
.cpaee-inline-choice-action.is-cancel{
  color:#0f4a61 !important;
  font-weight:700 !important;
  text-decoration:underline !important;
  border-color:transparent !important;
}
.cpaee-inline-choice-action.is-accept{
  background:#ee6f2c !important;
  border-color:#ee6f2c !important;
  color:#fff !important;
  font-weight:700 !important;
}



/* Standard unordered-list bullet marker */
.cpaee-runner .cpaee-inline-choice-paragraph ul,
.cpaee-runner .cpaee-paragraph ul{
  list-style:disc;
  margin:8px 0 8px 1.5em;
  padding-left:1.25em;
}
.cpaee-runner .cpaee-inline-choice-paragraph ul li,
.cpaee-runner .cpaee-paragraph ul li{
  position:static;
  padding-left:0;
  margin:6px 0;
}
.cpaee-runner .cpaee-inline-choice-paragraph ul li::before,
.cpaee-runner .cpaee-paragraph ul li::before{
  content:none;
}


/* ------------------ Exam submit skipped-questions modal ------------------ */
.cpaee-runner .exam-submit-check-dialog{ max-width: 640px; border-radius: 0; }
.cpaee-runner .exam-submit-check{ color:#111; }
.cpaee-runner .exam-submit-check-alert{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px 12px;
  border-bottom:1px solid #9eb6c2;
}
.cpaee-runner .exam-submit-check-icon{
  width:22px; height:22px; border-radius:2px;
  background:#f7c948; color:#222; font-weight:900; font-size:16px;
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 22px;
}
.cpaee-runner .exam-submit-check-title{
  font-size:19px; line-height:1.25; font-weight:800;
}
.cpaee-runner .exam-submit-check-nav{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 16px 10px;
  border-bottom:1px solid #e2e8f0;
}
.cpaee-runner .exam-submit-check-nav-label{
  color:#111; font-size:13px; font-weight:700; white-space:nowrap; padding-top:2px;
}
.cpaee-runner .exam-submit-check-nav-items{
  display:flex; flex-wrap:wrap; gap:0;
}
.cpaee-runner .exam-submit-check-link{
  appearance:none; background:transparent; border:0; padding:0 8px; margin:0;
  color:#0b4f71; text-decoration:underline; cursor:pointer; font-size:14px; line-height:1.5;
  position:relative;
}
.cpaee-runner .exam-submit-check-link + .exam-submit-check-link::before{
  content:'|'; position:absolute; left:-1px; top:0; color:#94a3b8; text-decoration:none;
}
.cpaee-runner .exam-submit-check-link.blank{ font-weight:800; }
.cpaee-runner .exam-submit-check-copy{
  margin:0; padding:12px 16px 14px; color:#222; font-size:13px; line-height:1.45;
}
.cpaee-runner .exam-submit-check-actions{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 16px; background:#d9e1e5; border-top:1px solid #c7d0d5;
}
.cpaee-runner .exam-submit-check-return{
  appearance:none; border:0; background:transparent; padding:0; margin:0;
  color:#0b4f71; text-decoration:underline; font-weight:400; font-size:14px; cursor:pointer;
}
.cpaee-runner .exam-submit-check-submit{
  appearance:none; border:1px solid #b84710; background:#e45d1b; color:#fff;
  font-weight:800; font-size:14px; line-height:1; padding:11px 16px; cursor:pointer;
}


/* Exam on-break overlay */
.cpaee-runner .exam-on-break-dialog{
  max-width: 548px;
  border-radius: 0;
  border-left: 3px solid #df5a1c;
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
}
.cpaee-runner .exam-on-break-dialog .ex-dialog-body{
  padding: 14px 0 0;
  max-height: none;
  overflow: visible;
}
.cpaee-runner .exam-on-break{ color:#111; }
.cpaee-runner .exam-on-break-head{
  padding: 0 18px 12px;
  border-bottom:1px solid #7e9aaa;
}
.cpaee-runner .exam-on-break-title{
  color:#0b4f71;
  font-size:22px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:.2px;
}
.cpaee-runner .exam-on-break-copy{
  padding: 12px 18px 14px;
  font-size:13px;
  line-height:1.35;
  color:#111;
}
.cpaee-runner .exam-on-break-copy .exam-on-break-lead{
  margin: 0 0 12px;
  font-weight:700;
}
.cpaee-runner .exam-on-break-copy ul{
  margin:0;
  padding-left:18px;
}
.cpaee-runner .exam-on-break-copy li{
  margin: 0 0 8px;
}
.cpaee-runner .exam-on-break-actions{
  display:flex;
  justify-content:flex-end;
  padding:12px 18px;
  background:#d9e1e5;
  border-top:1px solid #c7d0d5;
}
.cpaee-runner .exam-on-break-continue{
  appearance:none;
  border:1px solid #b84710;
  background:#e45d1b;
  color:#fff;
  font-weight:800;
  font-size:14px;
  line-height:1;
  padding:11px 16px;
  cursor:pointer;
  text-transform:uppercase;
}


/* ==== Exam Review ==== */
.cpaee-runner .exam-review-shell{
  position:fixed;
  inset:0;
  z-index:10040;
  background:#f3f5f9;
  display:flex;
  flex-direction:column;
}
.cpaee-runner .exam-review-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 24px;
  background:#fff;
  border-bottom:1px solid #d9e0ea;
}
.cpaee-runner .exam-review-title{
  font-size:24px;
  font-weight:800;
  color:#13254d;
}
.cpaee-runner .exam-review-leave{
  border:0;
  border-radius:8px;
  background:#142b63;
  color:#fff;
  font-weight:700;
  padding:10px 16px;
  cursor:pointer;
}
.cpaee-runner .exam-review-body{
  flex:1;
  min-height:0;
  display:grid;
  grid-template-columns:340px minmax(0,1fr);
}
.cpaee-runner .exam-review-sidebar{
  background:#fff;
  border-right:1px solid #d9e0ea;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.cpaee-runner .exam-review-filters{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:16px;
  border-bottom:1px solid #ecf0f5;
}
.cpaee-runner .exam-review-filter{
  border:1px solid #cfd7e3;
  background:#fff;
  color:#16305f;
  border-radius:999px;
  padding:8px 10px;
  font-weight:700;
  cursor:pointer;
}
.cpaee-runner .exam-review-filter.is-active{
  background:#16305f;
  border-color:#16305f;
  color:#fff;
}
.cpaee-runner .exam-review-nav{
  flex:1;
  min-height:0;
  overflow:auto;
  padding:10px 12px 18px;
}
.cpaee-runner .exam-review-group + .exam-review-group{ margin-top:14px; }
.cpaee-runner .exam-review-group-head{
  font-size:13px;
  font-weight:800;
  color:#5c6d86;
  text-transform:uppercase;
  margin:0 0 8px;
}
.cpaee-runner .exam-review-nav-item{
  width:100%;
  text-align:left;
  border:1px solid #dbe2ec;
  background:#fff;
  border-radius:12px;
  padding:10px 12px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
}
.cpaee-runner .exam-review-nav-item + .exam-review-nav-item{ margin-top:8px; }
.cpaee-runner .exam-review-nav-item.is-active{
  border-color:#153e75;
  box-shadow:0 0 0 2px rgba(21,62,117,.08);
  background:#f7fbff;
}
.cpaee-runner .exam-review-nav-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.cpaee-runner .exam-review-nav-q{ font-weight:800; color:#13254d; }
.cpaee-runner .exam-review-nav-title{
  font-size:13px;
  color:#32435f;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.cpaee-runner .exam-review-nav-side{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  flex:0 0 auto;
}
.cpaee-runner .exam-review-nav-score{
  font-size:12px;
  font-weight:800;
  color:#48607f;
}
.cpaee-runner .exam-review-main{
  min-height:0;
  overflow:auto;
  padding:24px;
}
.cpaee-runner .exam-review-question-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:18px;
}
.cpaee-runner .exam-review-question-kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#6d7c93;
  margin-bottom:6px;
  font-weight:800;
}
.cpaee-runner .exam-review-question-title{
  font-size:22px;
  font-weight:800;
  color:#13254d;
  line-height:1.25;
}
.cpaee-runner .exam-review-question-meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.cpaee-runner .exam-review-status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
}
.cpaee-runner .exam-review-status-badge.is-compact{ padding:4px 8px; font-size:11px; }
.cpaee-runner .exam-review-status-badge.is-correct{ background:#bbf7d0; color:#14532d; }
.cpaee-runner .exam-review-status-badge.is-incorrect{ background:#ffe6e3; color:#9d2b2b; }
.cpaee-runner .exam-review-status-badge.is-unanswered{ background:#eef2f7; color:#51657f; }
.cpaee-runner .exam-review-score-pill{
  background:#eef4ff;
  color:#173d74;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:800;
}
.cpaee-runner .exam-review-card-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);
  gap:18px;
}
.cpaee-runner .exam-review-card-grid.is-tbs{ grid-template-columns:minmax(0,1fr); }
.cpaee-runner .exam-review-card{
  background:#fff;
  border:1px solid #d9e0ea;
  border-radius:16px;
  padding:18px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
}
.cpaee-runner .exam-review-card-title{
  font-size:15px;
  font-weight:800;
  color:#13254d;
  margin-bottom:14px;
}
.cpaee-runner .exam-review-card-title.small{ margin-bottom:10px; }
.cpaee-runner .exam-review-stem{ margin-bottom:16px; }
.cpaee-runner .exam-review-choice-list{ display:flex; flex-direction:column; gap:10px; }
.cpaee-runner .exam-review-choice{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:12px;
  align-items:flex-start;
  border:1px solid #d8e0ea;
  border-radius:12px;
  padding:12px 14px;
  background:#fff;
}
.cpaee-runner .exam-review-choice-letter{ font-weight:800; color:#13254d; }
.cpaee-runner .exam-review-choice.is-correct{ background:#bbf7d0; border-color:#4ade80; }
.cpaee-runner .exam-review-choice.is-selected.is-incorrect{ background:#ffe6e3; border-color:#efb8b2; }
.cpaee-runner .exam-review-choice.is-selected:not(.is-incorrect){ box-shadow:0 0 0 2px rgba(19,37,77,.08) inset; }
.cpaee-runner .exam-review-answer-summary{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:1px solid #e8edf4;
}
.cpaee-runner .exam-review-explanation-block + .exam-review-explanation-block{ margin-top:14px; }
.cpaee-runner .exam-review-explanation-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:800;
  color:#6d7c93;
  margin-bottom:6px;
}
.cpaee-runner .exam-review-tbs-parts{ display:flex; flex-direction:column; gap:18px; }
.cpaee-runner .exam-review-table-part-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:14px;
}
.cpaee-runner .exam-review-subcard{
  background:#fff;
  border:1px solid #d9e0ea;
  border-radius:14px;
  padding:14px;
}
.cpaee-runner .exam-review-subcard-intro{
  margin:-2px 0 12px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:800;
  color:#6d7c93;
}
.cpaee-runner .exam-review-paragraph,
.cpaee-runner .exam-review-inline-html{ line-height:1.6; }
.cpaee-runner .exam-review-inline-answer{
  display:inline-block;
  min-width:20px;
  padding:1px 4px;
  border-bottom:2px solid #153e75;
  background:#eef6ff;
}
.cpaee-runner .exam-review-inline-answer.is-correct{ background:#bbf7d0; border-color:#15803d; }
.cpaee-runner .exam-review-inline-answer.is-incorrect{ background:#ffe6e3; border-color:#b8433d; }
.cpaee-runner .exam-review-inline-answer.is-unanswered{ background:#eef2f7; border-color:#7f8ea4; }
.cpaee-runner .exam-review-detail-table-wrap{ overflow:auto; }
.cpaee-runner .exam-review-detail-table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border:1px solid #d9e0ea;
}
.cpaee-runner .exam-review-detail-table th,
.cpaee-runner .exam-review-detail-table td{
  border:1px solid #d9e0ea;
  padding:10px 12px;
  vertical-align:top;
}
.cpaee-runner .exam-review-detail-table th{
  background:#f7f9fc;
  font-weight:800;
  color:#17304f;
}
.cpaee-runner .exam-review-graded-table td.correct{ background:rgba(22,163,74,.18); }
.cpaee-runner .exam-review-graded-table td.incorrect{ background:rgba(224,69,69,.12); }
.cpaee-runner .exam-review-graded-table td.unanswered{ background:rgba(42,111,224,.12); }
.cpaee-runner .exam-review-graded-table td{
  overflow:visible !important;
  vertical-align:top;
}
.cpaee-runner .exam-review-graded-table td > div{
  overflow:visible !important;
  max-width:100%;
}
.cpaee-runner .exam-review-graded-table tr{ height:auto !important; }
.cpaee-runner .exam-review-graded-table .exam-review-table-answer{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  height:auto !important;
  min-height:44px;
  padding:2px 0;
  line-height:1.45 !important;
  white-space:normal !important;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.cpaee-runner .exam-review-graded-table .exam-review-table-answer.correct{ background:#bbf7d0; border-color:#4ade80; }
.cpaee-runner .exam-review-graded-table .exam-review-table-answer.incorrect{ background:#ffe6e3; border-color:#efb8b2; }
.cpaee-runner .exam-review-graded-table .exam-review-table-answer.unanswered{ background:#eef2f7; border-color:#c8d3e3; }
.cpaee-runner .exam-review-table-answer-main.is-empty{ color:#7b8ba3; }
.cpaee-runner .exam-review-table-correct-note{
  display:block;
  margin-top:0;
  padding-top:8px;
  border-top:1px solid rgba(19,37,77,.10);
  font-size:12px;
  line-height:1.45;
  color:#4b5d79;
  overflow:visible !important;
  white-space:normal !important;
}
.cpaee-runner .exam-review-noentry-note{
  margin-bottom:10px;
  padding:10px 12px;
  border:1px solid #d9e0ea;
  border-radius:12px;
  background:#f7f9fc;
  color:#17304f;
  font-weight:700;
}
.cpaee-runner .exam-review-explanation-list{ display:flex; flex-direction:column; gap:12px; margin-top:12px; }
.cpaee-runner .exam-review-explanation-row{
  border:1px solid #d9e0ea;
  border-radius:12px;
  background:#fff;
  padding:12px 14px;
}
.cpaee-runner .exam-review-explanation-row-head{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:800;
  color:#6d7c93;
  margin-bottom:8px;
}
.cpaee-runner .exam-review-empty,
.cpaee-runner .exam-review-empty-state{
  border:1px dashed #cfd7e3;
  background:#fff;
  border-radius:14px;
  padding:18px;
  color:#51657f;
}
@media (max-width: 980px){
  .cpaee-runner .exam-review-body{ grid-template-columns:1fr; }
  .cpaee-runner .exam-review-sidebar{ max-height:42vh; }
  .cpaee-runner .exam-review-card-grid{ grid-template-columns:1fr; }
}


/* ===== Exam pre-launch flow ===== */
.cpaee-runner .exam-gate-shell{
  min-height:calc(100vh - 40px);
  background:#ececec;
  padding:32px 24px;
  box-sizing:border-box;
}
.cpaee-runner .exam-gate-card{
  max-width:1200px;
  margin:0 auto;
  background:#fff;
  border-left:3px solid #e35d1b;
  box-shadow:0 4px 18px rgba(0,0,0,.14);
}
.cpaee-runner .exam-gate-inner{ padding:22px 20px 18px; }
.cpaee-runner .exam-gate-title{
  margin:0;
  font-size:24px;
  line-height:1.2;
  color:#0b3f60;
  font-weight:500;
}
.cpaee-runner .exam-gate-divider{
  height:1px;
  background:#7ba0b4;
  margin:10px 0 16px;
}
.cpaee-runner .exam-gate-intro p,
.cpaee-runner .exam-gate-intro li,
.cpaee-runner .exam-gate-footnote p,
.cpaee-runner .exam-policy-scroll p,
.cpaee-runner .exam-policy-scroll li{
  font-size:14px;
  line-height:1.45;
  color:#111;
}
.cpaee-runner .exam-launch-code-panel{
  background:#e7e7e7;
  padding:18px 18px 20px;
  margin:18px 0 16px;
}
.cpaee-runner .exam-launch-code-panel-title{
  font-size:18px;
  color:#0b3f60;
  margin-bottom:10px;
}
.cpaee-runner .exam-launch-code-box-wrap{
  display:flex;
  gap:14px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:12px;
}
.cpaee-runner .exam-launch-code-box{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#2f3337;
  color:#fff;
  padding:10px 16px;
  font-size:18px;
  font-weight:500;
}
.cpaee-runner .exam-launch-copy-btn{
  border:1px solid #0b3f60;
  background:#fff;
  color:#0b3f60;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
}
.cpaee-runner .exam-gate-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 18px;
  background:#d8dfe3;
}
.cpaee-runner .exam-gate-btn{
  border:none;
  cursor:pointer;
  min-width:128px;
  min-height:38px;
  padding:0 18px;
  font-weight:700;
  font-size:14px;
  letter-spacing:.02em;
}
.cpaee-runner .exam-gate-btn-primary{
  background:#e35d1b;
  color:#fff;
}
.cpaee-runner .exam-gate-btn-secondary{
  background:transparent;
  color:#0b3f60;
  text-decoration:underline;
  min-width:auto;
  padding:0;
}
.cpaee-runner .exam-gate-error{
  color:#991b1b;
  font-size:13px;
  margin-top:8px;
}
.cpaee-runner .exam-pretimer-wrap{
  display:flex;
  justify-content:center;
  margin-bottom:16px;
}
.cpaee-runner .exam-pretimer{
  display:flex;
  align-items:center;
  gap:8px;
  background:#033f57;
  color:#fff;
  border-radius:4px;
  box-shadow:0 3px 12px rgba(0,0,0,.18);
  padding:10px 16px;
}
.cpaee-runner .exam-pretimer-icon{ font-size:22px; line-height:1; opacity:.9; }
.cpaee-runner .exam-pretimer-clock{ font-size:28px; line-height:1; font-weight:300; }
.cpaee-runner .exam-pretimer-label{ font-size:14px; letter-spacing:.04em; }
.cpaee-runner .exam-code-entry-card{ padding:18px 18px 10px; }
.cpaee-runner .exam-code-entry-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:28px;
  align-items:start;
}
.cpaee-runner .exam-code-entry-left{
  padding-right:24px;
  border-right:1px solid #8ea6b6;
}
.cpaee-runner .exam-code-entry-title{
  margin:0 0 12px;
  font-size:26px;
  line-height:1.2;
  color:#0b3f60;
  font-weight:500;
}
.cpaee-runner .exam-code-entry-steps{
  margin:14px 0 18px 18px;
  padding:0;
}
.cpaee-runner .exam-code-entry-steps li{
  margin:0 0 12px;
  line-height:1.4;
}
.cpaee-runner .exam-code-entry-form{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.cpaee-runner .exam-code-entry-input{
  width:260px;
  max-width:100%;
  min-height:36px;
  padding:0 12px;
  border:1px solid #5e5e5e;
  font-size:15px;
}
.cpaee-runner .exam-code-entry-input.is-error{ border-color:#991b1b; }
.cpaee-runner .exam-code-entry-info-title{
  font-size:18px;
  color:#0b3f60;
  margin-bottom:12px;
  font-weight:700;
}
.cpaee-runner .exam-code-entry-info-row{
  font-size:13px;
  margin-bottom:10px;
  line-height:1.4;
}
.cpaee-runner .exam-code-entry-info-row span{
  display:block;
  color:#0b3f60;
  font-weight:700;
  margin-bottom:2px;
}
.cpaee-runner .exam-code-entry-avatar{
  margin-top:12px;
  width:170px;
  height:170px;
  border:1px solid #bfc7ce;
  background:#d9dddf;
  position:relative;
  overflow:hidden;
}
.cpaee-runner .exam-code-entry-avatar-head{
  position:absolute;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#a4a4a4;
  left:50%;
  top:26px;
  transform:translateX(-50%);
}
.cpaee-runner .exam-code-entry-avatar-body{
  position:absolute;
  width:110px;
  height:110px;
  border-radius:55px 55px 8px 8px;
  background:#a4a4a4;
  left:50%;
  bottom:-8px;
  transform:translateX(-50%);
}
.cpaee-runner .exam-code-entry-legal{
  margin-top:18px;
  background:#d8dfe3;
  padding:18px 14px 20px;
  text-align:center;
}
.cpaee-runner .exam-code-entry-legal p{
  margin:0 0 8px;
  font-size:11px;
  line-height:1.4;
  color:#111;
}
.cpaee-runner .exam-code-entry-brand{
  margin-top:12px;
  font-size:34px;
  color:#5b1e6d;
  font-weight:700;
  letter-spacing:.02em;
}
.cpaee-runner .exam-policy-card{ padding:18px 18px 0; }
.cpaee-runner .exam-policy-headline{
  font-size:24px;
  line-height:1.2;
  color:#111;
  margin-bottom:12px;
}
.cpaee-runner .exam-policy-warning{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:14px;
  line-height:1.4;
}
.cpaee-runner .exam-policy-warning-icon{
  width:22px;
  height:22px;
  border-radius:2px;
  background:#f1bf42;
  color:#111;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.cpaee-runner .exam-policy-warning-strong{ font-weight:700; }
.cpaee-runner .exam-policy-columns{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:22px;
  align-items:start;
  padding-bottom:18px;
}
.cpaee-runner .exam-policy-col-title{
  font-size:18px;
  color:#0b3f60;
  font-weight:700;
  margin-bottom:10px;
}
.cpaee-runner .exam-policy-scroll{
  max-height:420px;
  overflow:auto;
  padding-right:8px;
}
.cpaee-runner .exam-policy-total-time{
  text-align:center;
  font-size:24px;
  color:#111;
  margin:18px 0 16px;
}
.cpaee-runner .exam-policy-testlet-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:12px;
  margin-bottom:18px;
}
.cpaee-runner .exam-policy-testlet-card{
  text-align:center;
  position:relative;
}
.cpaee-runner .exam-policy-testlet-label{
  display:inline-block;
  min-width:68px;
  padding:4px 10px;
  background:#043f57;
  color:#fff;
  font-weight:700;
  font-size:14px;
}
.cpaee-runner .exam-policy-testlet-count{
  font-size:38px;
  line-height:1;
  color:#111;
  margin:6px 0 2px;
}
.cpaee-runner .exam-policy-testlet-kind{
  white-space:pre-line;
  font-size:12px;
  line-height:1.1;
  color:#111;
  min-height:40px;
}
.cpaee-runner .exam-policy-break-note{
  white-space:pre-line;
  margin-top:8px;
  font-size:12px;
  line-height:1.15;
  color:#111;
}
@media (max-width: 900px){
  .cpaee-runner .exam-gate-shell{ padding:18px 12px; }
  .cpaee-runner .exam-code-entry-main,
  .cpaee-runner .exam-policy-columns{ grid-template-columns:1fr; }
  .cpaee-runner .exam-code-entry-left{ border-right:none; padding-right:0; }
  .cpaee-runner .exam-gate-footer{ flex-wrap:wrap; justify-content:flex-end; }
}


.cpaee-runner .mcq-choices.is-matrix{
  gap:0;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.cpaee-runner .mcq-matrix-head,
.cpaee-runner .mcq-choice.is-matrix{
  display:grid;
  align-items:stretch;
}
.cpaee-runner .mcq-matrix-head{
  background:#f8fafc;
  border-bottom:1px solid var(--line);
}
.cpaee-runner .mcq-matrix-head-cell,
.cpaee-runner .mcq-matrix-cell{
  padding:12px 10px;
  border-left:1px solid var(--line);
  text-align:center;
}
.cpaee-runner .mcq-matrix-head-cell{
  font-weight:700;
}
.cpaee-runner .mcq-choice.is-matrix{
  grid-template-columns:34px 46px 1fr;
  gap:0;
  padding:0;
  border:none;
  border-bottom:1px solid var(--line);
  border-radius:0;
}
.cpaee-runner .mcq-choice.is-matrix:last-child{ border-bottom:none; }
.cpaee-runner .mcq-choice.is-matrix input[type="radio"]{
  margin:0;
  justify-self:center;
  align-self:center;
}
.cpaee-runner .mcq-matrix-letter{
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  border-left:1px solid var(--line);
}
.cpaee-runner .mcq-matrix-grid{
  display:grid;
}
.cpaee-runner .mcq-matrix-cell{
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.cpaee-runner .mcq-choice.is-matrix.is-selected,
.cpaee-runner .mcq-choice.is-matrix:hover{
  background:#f8fbff;
}
.cpaee-runner .mcq-choice.is-matrix.is-correct{ background:#bbf7d0; }
.cpaee-runner .mcq-choice.is-matrix.is-incorrect{ background:#fff1f2; }

.cpaee-runner .exam-review-mcq-matrix{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}
.cpaee-runner .exam-review-mcq-matrix-head,
.cpaee-runner .exam-review-mcq-matrix-grid{
  display:grid;
}
.cpaee-runner .exam-review-mcq-matrix-head{
  background:#f8fafc;
  border-bottom:1px solid var(--line);
}
.cpaee-runner .exam-review-mcq-matrix-head-cell,
.cpaee-runner .exam-review-mcq-matrix-cell{
  padding:12px 10px;
  border-left:1px solid var(--line);
  text-align:center;
}
.cpaee-runner .exam-review-choice.is-matrix{
  display:grid;
  grid-template-columns:46px 1fr;
  align-items:stretch;
  gap:0;
}
.cpaee-runner .exam-review-choice.is-matrix .exam-review-choice-letter{
  border-right:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
}


/* Builder-faithful static cell text in runner/review */
.cpaee-runner .tbs-table td .cell.readonly,
.cpaee-runner .exam-review-graded-table td .cell.readonly{
  height: auto !important;
  min-height: 18px;
  line-height: 1.45 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.cpaee-runner .tbs-table td .cell.readonly *,
.cpaee-runner .exam-review-graded-table td .cell.readonly *{
  max-width: 100%;
}
.cpaee-runner .tbs-table td .cell.readonly p,
.cpaee-runner .exam-review-graded-table td .cell.readonly p,
.cpaee-runner .tbs-table td .cell.readonly div,
.cpaee-runner .exam-review-graded-table td .cell.readonly div{
  margin-top: 0;
}
.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"]{
  cursor: pointer;
}
.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"] input.cell{
  cursor: pointer;
}

/* Study runner: clickable numeric proxy inputs should not inherit disabled/readOnly gray styling */
.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"] input.cell[readonly]:not(.readonly){
  background: transparent !important;
  color: #111 !important;
  -webkit-text-fill-color: #111;
  opacity: 1 !important;
  cursor: pointer;
}
.cpaee-runner .tbs-table td.cpaee-has-input[data-kind="input_number"]:focus-within{
  background:#f3f4f6;
}

/* v25 draggable calculator/spreadsheet dialogs */
.cpaee-runner .ex-dialog-head.is-draggable{
  cursor:move;
  user-select:none;
}
.cpaee-runner .ex-dialog-head.is-draggable .btn,
.cpaee-runner .ex-dialog-head.is-draggable button{
  cursor:pointer;
}


/* Resizable dialog handles */
.cpaee-runner .ex-dialog.is-resizable{
  position:relative;
  overflow:hidden;
  min-width:320px;
  min-height:220px;
  display:flex;
  flex-direction:column;
}
.cpaee-runner .ex-dialog.is-resizable .ex-dialog-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
.cpaee-runner .sheet-wrap{
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.cpaee-runner .sheet-wrap .sheet-grid{
  flex:1 1 auto;
  min-height:0;
}
.cpaee-runner .ex-resize-handle{
  position:absolute;
  z-index:3;
  background:transparent;
}
.cpaee-runner .ex-resize-n,
.cpaee-runner .ex-resize-s{
  left:10px;
  right:10px;
  height:10px;
}
.cpaee-runner .ex-resize-n{ top:-1px; cursor:n-resize; }
.cpaee-runner .ex-resize-s{ bottom:-1px; cursor:s-resize; }
.cpaee-runner .ex-resize-e,
.cpaee-runner .ex-resize-w{
  top:10px;
  bottom:10px;
  width:10px;
}
.cpaee-runner .ex-resize-e{ right:-1px; cursor:e-resize; }
.cpaee-runner .ex-resize-w{ left:-1px; cursor:w-resize; }
.cpaee-runner .ex-resize-ne,
.cpaee-runner .ex-resize-nw,
.cpaee-runner .ex-resize-se,
.cpaee-runner .ex-resize-sw{
  width:14px;
  height:14px;
}
.cpaee-runner .ex-resize-ne{ top:-1px; right:-1px; cursor:ne-resize; }
.cpaee-runner .ex-resize-nw{ top:-1px; left:-1px; cursor:nw-resize; }
.cpaee-runner .ex-resize-se{ bottom:-1px; right:-1px; cursor:se-resize; }
.cpaee-runner .ex-resize-sw{ bottom:-1px; left:-1px; cursor:sw-resize; }

/* LearnDash/BuddyBoss completion indicator for CPAEE activities */
.cpaee-ld-completion {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 13px 15px;
  border: 1px solid #d6e0ee;
  border-radius: 14px;
  background: #f8fbff;
  color: #09204a;
  box-shadow: 0 8px 20px rgba(15, 35, 75, 0.06);
  max-width: 760px;
}
.cpaee-ld-completion-icon {
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-weight: 900;
  border: 2px solid #b9c7dc;
  color: #69809e;
  background: #fff;
}
.cpaee-ld-completion-title {
  font-weight: 900;
  font-size: 15px;
  line-height: 1.2;
}
.cpaee-ld-completion-meta {
  margin-top: 3px;
  font-size: 12px;
  font-weight: 700;
  color: #657891;
}
.cpaee-ld-completion-note {
  margin-top: 7px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}
.cpaee-ld-completion-performance {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 9px;
}
.cpaee-ld-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  border: 1px solid transparent;
}
.cpaee-ld-pill-correct {
  background: #ecfff4;
  border-color: #83d6a6;
  color: #096b31;
}
.cpaee-ld-pill-incorrect {
  background: #fff6e8;
  border-color: #f8c98a;
  color: #a25800;
}
.cpaee-ld-completion.is-completed {
  border-color: #83d6a6;
  background: #ecfff4;
}
.cpaee-ld-completion.is-completed .cpaee-ld-completion-icon {
  border-color: #16a34a;
  background: #16a34a;
  color: #fff;
}
.cpaee-ld-completion.is-completed .cpaee-ld-completion-title {
  color: #096b31;
}

.cpaee-ld-completion-note {
  margin-top: 7px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}
.cpaee-ld-completion.is-perfect {
  border-color: #65d39a;
  background: linear-gradient(135deg, #effff5 0%, #e7fff1 55%, #f3fff8 100%);
  box-shadow: 0 10px 24px rgba(34, 197, 94, 0.12);
}
.cpaee-ld-completion.is-perfect .cpaee-ld-completion-icon {
  border-color: #16a34a;
  background: linear-gradient(135deg, #16a34a 0%, #16a34a 100%);
  color: #fff;
}
.cpaee-ld-completion.is-perfect .cpaee-ld-completion-title {
  color: #0b7a34;
}
.cpaee-ld-completion.is-perfect .cpaee-ld-completion-meta,
.cpaee-ld-completion.is-perfect .cpaee-ld-completion-note {
  color: #146534;
}
.cpaee-ld-completion.is-perfect .cpaee-ld-pill-correct {
  background: #dffbea;
  border-color: #69d493;
  color: #0a6a30;
}
.cpaee-ld-completion.is-perfect .cpaee-ld-pill-incorrect {
  background: #f3fff8;
  border-color: #bfeccc;
  color: #1f7a45;
}
.cpaee-ld-completion.is-needs-review {
  border-color: #f5c275;
  background: linear-gradient(135deg, #fff8ec 0%, #fff4e0 55%, #fffaf1 100%);
  box-shadow: 0 10px 24px rgba(245, 158, 11, 0.12);
}
.cpaee-ld-completion.is-needs-review .cpaee-ld-completion-icon {
  border-color: #ea8c00;
  background: linear-gradient(135deg, #f59e0b 0%, #ea7b00 100%);
  color: #fff;
}
.cpaee-ld-completion.is-needs-review .cpaee-ld-completion-title {
  color: #9a5200;
}
.cpaee-ld-completion.is-needs-review .cpaee-ld-completion-meta,
.cpaee-ld-completion.is-needs-review .cpaee-ld-completion-note {
  color: #8a550c;
}
.cpaee-ld-completion.is-needs-review .cpaee-ld-pill-correct {
  background: #fff3d7;
  border-color: #f2c26e;
  color: #8f5a0d;
}
.cpaee-ld-completion.is-needs-review .cpaee-ld-pill-incorrect {
  background: #ffe9c4;
  border-color: #f0b553;
  color: #a25800;
}

.cpaee-ld-sidebar-title-completed {
  text-decoration: line-through !important;
  text-decoration-thickness: 2px !important;
  text-decoration-color: #16a34a !important;
  color: #5f6f84 !important;
}
.lms-topic-sidebar-wrapper .cpaee-ld-sidebar-completed-row > a,
.lms-topic-sidebar-wrapper a.cpaee-ld-sidebar-completed {
  background: rgba(34, 197, 94, 0.08) !important;
}
.lms-topic-sidebar-wrapper .cpaee-ld-sidebar-status-completed .i-progress.i-progress-completed {
  color: #fff !important;
  background: #16a34a !important;
  border-radius: 999px;
}


/* v2.1.2: Remove TBS table hover guidance labels/tooltips from both runners.
   Keep click/focus behavior intact; remove only hover affordances/messages. */
.cpaee-runner .tbs-table td.cpaee-has-input:hover,
.cpaee-study-runner .tbs-table td.cpaee-has-input:hover,
.cpaee-runner .tbs-table td:hover,
.cpaee-study-runner .tbs-table td:hover{
  background: inherit;
}
.cpaee-runner .tbs-table td.cpaee-has-input[data-empty="1"]:hover:before,
.cpaee-study-runner .tbs-table td.cpaee-has-input[data-empty="1"]:hover:before{
  content: none !important;
  display: none !important;
}
.cpaee-runner .tbs-table td:hover .cpaee-input-hint,
.cpaee-study-runner .tbs-table td:hover .cpaee-input-hint{
  opacity: 0 !important;
  display: none !important;
}
.cpaee-runner .tbs-table td.cpaee-has-input:hover .cpaee-input-badge,
.cpaee-study-runner .tbs-table td.cpaee-has-input:hover .cpaee-input-badge{
  opacity: .85;
}


/* v2.1.4: Correct-answer green made slightly darker/more distinct from unanswered across study and exam runners. */
.cpaee-runner .qnum.correct,
.cpaee-runner .ov-item.correct,
.cpaee-runner .tbs-explain-item.correct .badge,
.cpaee-runner .tbs-explain-legend .correct:before,
.cpaee-runner .tbs-table .cell.correct,
.cpaee-runner .cpaee-inline-choice-segment.correct,
.cpaee-runner .exam-review-status-badge.is-correct,
.cpaee-runner .exam-review-choice.is-correct,
.cpaee-runner .exam-review-inline-answer.is-correct,
.cpaee-runner .exam-review-graded-table .exam-review-table-answer.correct,
.cpaee-runner .mcq-choice.is-matrix.is-correct {
  background-color: #bbf7d0 !important;
}
.cpaee-runner .qnum.correct,
.cpaee-runner .ov-item.correct,
.cpaee-runner .tbs-table .cell.correct,
.cpaee-runner .exam-review-choice.is-correct,
.cpaee-runner .exam-review-inline-answer.is-correct,
.cpaee-runner .exam-review-graded-table .exam-review-table-answer.correct {
  border-color: #16a34a !important;
}
.cpaee-runner .exam-review-status-badge.is-correct,
.cpaee-runner .mcq-feedback.correct,
.cpaee-runner .ov-item.correct .num {
  color: #14532d !important;
}
.cpaee-runner .mcq-feedback.correct {
  background-color: #dcfce7 !important;
  border-color: #16a34a !important;
}

/* v2.1.6: Correct table answers use a stronger green fill, not only a green border. */
.cpaee-runner .tbs-table td.correct,
.cpaee-study-runner .tbs-table td.correct,
.cpaee-runner .exam-review-graded-table td.correct,
.cpaee-study-runner .exam-review-graded-table td.correct {
  background-color: rgba(34, 197, 94, .20) !important;
  box-shadow: none !important;
}

.cpaee-runner .tbs-table .cell.correct,
.cpaee-study-runner .tbs-table .cell.correct,
.cpaee-runner .exam-review-graded-table .exam-review-table-answer.correct,
.cpaee-study-runner .exam-review-graded-table .exam-review-table-answer.correct {
  background-color: #86efac !important;
  border-color: #22c55e !important;
  outline-color: #22c55e !important;
  color: #14532d !important;
  box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .30) !important;
}

.cpaee-runner .tbs-explain-legend .correct:before,
.cpaee-study-runner .tbs-explain-legend .correct:before,
.cpaee-runner .tbs-explain-item.correct .badge,
.cpaee-study-runner .tbs-explain-item.correct .badge {
  background-color: #86efac !important;
  border-color: #22c55e !important;
  color: #14532d !important;
}

/* v2.1.7: Correct the scope of the green adjustment.
   Explanation panels/legends return to the softer previous green.
   Actual TBS table answer cells get the stronger green fill. */
.cpaee-runner .tbs-explain-legend .correct:before,
.cpaee-study-runner .tbs-explain-legend .correct:before {
  background-color: #bbf7d0 !important;
  border-color: rgba(0,0,0,.15) !important;
  color: inherit !important;
}
.cpaee-runner .tbs-explain-item.correct .badge,
.cpaee-study-runner .tbs-explain-item.correct .badge {
  background-color: #bbf7d0 !important;
  border-color: var(--line) !important;
  color: inherit !important;
}

.cpaee-runner .tbs-table td.correct,
.cpaee-study-runner .tbs-table td.correct,
.cpaee-runner .exam-review-graded-table td.correct,
.cpaee-study-runner .exam-review-graded-table td.correct {
  background-color: #bbf7d0 !important;
  box-shadow: inset 0 0 0 1px rgba(22, 163, 74, .30) !important;
}

.cpaee-runner .tbs-table td.correct .cell,
.cpaee-study-runner .tbs-table td.correct .cell,
.cpaee-runner .tbs-table td.correct .cell.correct,
.cpaee-study-runner .tbs-table td.correct .cell.correct,
.cpaee-runner .exam-review-graded-table td.correct .exam-review-table-answer.correct,
.cpaee-study-runner .exam-review-graded-table td.correct .exam-review-table-answer.correct {
  background-color: #bbf7d0 !important;
  color: #14532d !important;
}


/* v2.1.16: Unified rich-output descendants for builder/runner parity.
   Low-risk: applies only inside explicit rich HTML output containers and does not
   change grading tables, answer state logic, or explanation wrappers. */
.cpaee-runner .cpaee-rich-output table,
#cpaee-builder-app .cpaee-rich-output table{
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
  margin: 6px 0;
  border: 1px solid #cbd5e1;
}
.cpaee-runner .cpaee-rich-output table th,
.cpaee-runner .cpaee-rich-output table td,
#cpaee-builder-app .cpaee-rich-output table th,
#cpaee-builder-app .cpaee-rich-output table td{
  border: 1px solid #cbd5e1;
  padding: 6px 8px;
  text-align: left;
  vertical-align: top;
}
.cpaee-runner .cpaee-rich-output table th,
#cpaee-builder-app .cpaee-rich-output table th{
  font-weight: 800;
}
.cpaee-runner .cpaee-rich-output table p,
#cpaee-builder-app .cpaee-rich-output table p{
  margin: 0;
}
.cpaee-runner .cpaee-rich-output img,
#cpaee-builder-app .cpaee-rich-output img{
  max-width: 100%;
  height: auto;
}


/* v2.1.22: Rich HTML parity layer.
   Builder visual previews and runner output use the same spacing/border helper
   behavior. The rules are scoped to rich HTML containers only and avoid using
   !important so safe inline HTML styles remain authoritative. */
#cpaee-builder-app .cpaee-rich-output,
.cpaee-runner .cpaee-rich-output,
.cpaee-study-runner .cpaee-rich-output{
  white-space: normal;
}
#cpaee-builder-app .cpaee-rich-output table,
.cpaee-runner .cpaee-rich-output table,
.cpaee-study-runner .cpaee-rich-output table{
  margin-top: 0;
  margin-bottom: 0;
}
#cpaee-builder-app .cpaee-rich-output table + table,
.cpaee-runner .cpaee-rich-output table + table,
.cpaee-study-runner .cpaee-rich-output table + table{
  margin-top: 0;
}
#cpaee-builder-app .cpaee-rich-output .repo_border_top,
.cpaee-runner .cpaee-rich-output .repo_border_top,
.cpaee-study-runner .cpaee-rich-output .repo_border_top{ border-top: 1px solid #d1d5db; }
#cpaee-builder-app .cpaee-rich-output .repo_border_right,
.cpaee-runner .cpaee-rich-output .repo_border_right,
.cpaee-study-runner .cpaee-rich-output .repo_border_right{ border-right: 1px solid #d1d5db; }
#cpaee-builder-app .cpaee-rich-output .repo_border_bottom,
.cpaee-runner .cpaee-rich-output .repo_border_bottom,
.cpaee-study-runner .cpaee-rich-output .repo_border_bottom{ border-bottom: 1px solid #d1d5db; }
#cpaee-builder-app .cpaee-rich-output .repo_border_left,
.cpaee-runner .cpaee-rich-output .repo_border_left,
.cpaee-study-runner .cpaee-rich-output .repo_border_left{ border-left: 1px solid #d1d5db; }
#cpaee-builder-app .cpaee-rich-output img,
.cpaee-runner .cpaee-rich-output img,
.cpaee-study-runner .cpaee-rich-output img{
  max-width: 100%;
  height: auto;
}

/* v2.1.23: Native rich HTML render surface.
   Keep runner rich HTML output aligned with the builder visual preview by
   removing plugin-added table defaults inside cpaee-rich-output only. */
.cpaee-runner .cpaee-rich-output,
.cpaee-runner .cpaee-rich-output *,
.cpaee-study-runner .cpaee-rich-output,
.cpaee-study-runner .cpaee-rich-output *{
  box-sizing: border-box;
}
.cpaee-runner .cpaee-rich-output,
.cpaee-study-runner .cpaee-rich-output{
  white-space: normal;
  /* Do NOT set color, font-family, or font-size here.
     Those are inherited properties and would override the HTML's own
     presentational attributes (<font color="">, <font face="">, bgcolor="")
     which browsers treat as very low specificity. Any CSS class rule wins
     over them, causing builder preview and runner output to diverge.
     Let the HTML's own inline styles and presentational attributes control
     colour and typography inside rich content. */
}

/* Table defaults — match the builder preview exactly.
   Tables without inline style= attributes render with visible borders and padding.
   Tables WITH inline style= or bgcolor= attributes override these rules since
   inline styles and presentational attributes are authoritative for the content. */
.cpaee-runner .exhibit-html.cpaee-rich-output table,
.cpaee-runner .cpaee-rich-output table,
.cpaee-study-runner .exhibit-html.cpaee-rich-output table,
.cpaee-study-runner .cpaee-rich-output table{
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
  margin: 6px 0;
  border: 1px solid #cbd5e1;
  table-layout: auto;
}
.cpaee-runner .exhibit-html.cpaee-rich-output th,
.cpaee-runner .exhibit-html.cpaee-rich-output td,
.cpaee-runner .cpaee-rich-output th,
.cpaee-runner .cpaee-rich-output td,
.cpaee-study-runner .exhibit-html.cpaee-rich-output th,
.cpaee-study-runner .exhibit-html.cpaee-rich-output td,
.cpaee-study-runner .cpaee-rich-output th,
.cpaee-study-runner .cpaee-rich-output td{
  border: 1px solid #cbd5e1;
  padding: 6px 8px;
  text-align: left;
  vertical-align: middle;
  font-weight: normal;
  /* No background here — bgcolor="" on td/th must not be overridden */
}
.cpaee-runner .cpaee-rich-output th,
.cpaee-study-runner .cpaee-rich-output th{ font-weight: 700; }
.cpaee-runner .cpaee-rich-output h1,
.cpaee-runner .cpaee-rich-output h2,
.cpaee-runner .cpaee-rich-output h3,
.cpaee-runner .cpaee-rich-output h4,
.cpaee-runner .cpaee-rich-output h5,
.cpaee-runner .cpaee-rich-output h6,
.cpaee-study-runner .cpaee-rich-output h1,
.cpaee-study-runner .cpaee-rich-output h2,
.cpaee-study-runner .cpaee-rich-output h3,
.cpaee-study-runner .cpaee-rich-output h4,
.cpaee-study-runner .cpaee-rich-output h5,
.cpaee-study-runner .cpaee-rich-output h6{
  display: block;
  margin: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  text-transform: none;
}
.cpaee-runner .cpaee-rich-output p,
.cpaee-study-runner .cpaee-rich-output p{ margin: 0 0 1em; }
.cpaee-runner .cpaee-rich-output p:last-child,
.cpaee-study-runner .cpaee-rich-output p:last-child{ margin-bottom: 0; }
.cpaee-runner .cpaee-rich-output hr,
.cpaee-study-runner .cpaee-rich-output hr{ margin: 0.5em 0; border: 0; border-top: 1px solid #d1d5db; }
.cpaee-runner .cpaee-rich-output img,
.cpaee-study-runner .cpaee-rich-output img{ max-width: 100%; height: auto; }
.cpaee-runner .cpaee-rich-output .repo_border_top,
.cpaee-study-runner .cpaee-rich-output .repo_border_top{ border-top-width: 1px; border-top-style: solid; border-top-color: #d1d5db; }
.cpaee-runner .cpaee-rich-output .repo_border_right,
.cpaee-study-runner .cpaee-rich-output .repo_border_right{ border-right-width: 1px; border-right-style: solid; border-right-color: #d1d5db; }
.cpaee-runner .cpaee-rich-output .repo_border_bottom,
.cpaee-study-runner .cpaee-rich-output .repo_border_bottom{ border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #d1d5db; }
.cpaee-runner .cpaee-rich-output .repo_border_left,
.cpaee-study-runner .cpaee-rich-output .repo_border_left{ border-left-width: 1px; border-left-style: solid; border-left-color: #d1d5db; }
