/* Assessment-owned additions. Lobby/results geometry stays with the 80 in 8 shared assets. */
.iv-app [hidden] { display:none !important; }
.iv-app[data-phase="test"]::before,.iv-app[data-phase="test"]::after { opacity:.12; }
.iv-app .iv-workspace { flex:1; padding:18px 0; gap:0; width:min(100%,820px); margin:auto; justify-content:center; }
.iv-notice { min-height:20px; margin:0 0 12px; font-size:12px; line-height:1.55; color:#66748e; text-align:center; }
.iv-prompt { font-size:clamp(17px,1.65vw,22px); line-height:1.65; font-weight:500; letter-spacing:-.015em; text-align:center; width:100%; margin:0 auto 22px; overflow-wrap:anywhere; }
.iv-prompt:focus { outline:none; }
.iv-graphic { width:min(100%,360px); margin:0 auto 16px; line-height:0; border:1px solid #edf0f6; border-radius:12px; overflow:hidden; }
.iv-graphic svg { display:block; width:100%; height:auto; }
.iv-answer-form { width:min(100%,570px); text-align:center; }
.iv-unit { margin:0 0 12px; color:#405579; font-size:12px; font-weight:500; }
.iv-bound-pair { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr); align-items:center; gap:14px; }
.iv-bound-card { display:flex; flex-direction:column; min-width:0; border:1px solid #c9d4ed; border-radius:14px; background:#fff; padding:16px 16px 12px; box-shadow:0 3px 10px #24376704; transition:border-color 120ms,box-shadow 120ms; }
.iv-bound-card:focus-within { border-color:#4263ff; box-shadow:0 0 0 3px #4263ff12; }
.iv-bound-card>span:first-child { font-size:10px; letter-spacing:1.1px; color:#657189; }
.iv-bound-card input { width:100%; min-width:0; font-size:28px; font-weight:500; text-align:center; background:transparent; color:#263450; border:0; border-radius:6px; padding:12px 2px 8px; outline:none; font-variant-numeric:tabular-nums; }
.iv-bound-card input:focus-visible { outline:none; }
.iv-bound-card:has(input[aria-invalid="true"]) { border-color:#bc4052; }
.iv-bound-unit { font-size:11px; color:#66748e; min-height:16px; }
.iv-bound-separator { color:#8290a5; font-size:12px; }
.iv-rules { margin:12px 0 0; color:#66748e; font-size:11px; line-height:1.65; }
.iv-validation { min-height:20px; color:#ac2c40; font-size:12px; line-height:1.6; margin:8px 0; }
.iv-answer-actions { display:flex; align-items:center; justify-content:center; gap:18px; }
.iv-submit { min-width:185px; }
.iv-skip { min-height:44px; padding:8px 4px; border:0; border-radius:5px; background:transparent; color:#657189; cursor:pointer; font-size:12px !important; }
.iv-skip:hover { color:var(--oa-accent); text-decoration:underline; text-underline-offset:3px; }
.iv-keyboard { margin:12px 0 0; color:#7d8799; font-size:10px; line-height:1.6; }
.iv-summary { color:#61708a; line-height:1.7; font-size:13px; }
.iv-review-item { border:1px solid #dce3f2; border-radius:12px; padding:22px; margin-bottom:16px; background:#fff; }
.iv-review-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:13px; }
.iv-status { color:#60708b; border:1px solid #dce3f2; padding:4px 9px; border-radius:20px; font-size:11px; }
.iv-status-correct { color:#008458; background:#effbf5; border-color:#b8e8d0; }.iv-status-incorrect { color:#bc2947; background:#fff6f7; border-color:#f1c2ce; }
.iv-review-prompt { font-size:15px; line-height:1.8; overflow-wrap:anywhere; }
.iv-review-graphic { max-width:360px; margin:16px auto; }.iv-review-graphic svg { width:100%; height:auto; display:block; }
.iv-review-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:18px 0; }
.iv-review-values dt { font-size:11px; color:#66748e; margin-bottom:4px; }.iv-review-values dd { font-size:14px; font-weight:500; margin:0; overflow-wrap:anywhere; }
.iv-approx { color:#66748e; font-weight:400; font-size:12px; }
.iv-solution { border-top:1px solid #e5eaf3; padding-top:13px; font-size:13px; line-height:1.8; }.iv-solution summary { font-weight:500; color:var(--oa-accent); min-height:30px; }
.iv-noscript { padding:20px; text-align:center; }
.iv-app .oa-score-tooltip { max-height:min(400px,65dvh); overflow:auto; }
@media(max-width:620px) {
 .iv-app .iv-workspace { padding:12px 0; }.iv-prompt { font-size:16px; line-height:1.65; margin-bottom:16px; }
 .iv-bound-pair { gap:8px; grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr); }.iv-bound-card { padding:14px 10px 10px; }.iv-bound-card input { font-size:24px; }
 .iv-answer-actions { gap:12px; }.iv-submit { min-width:160px; }.iv-review-item { padding:16px; }.iv-review-values { grid-template-columns:1fr; }
 .iv-graphic { max-width:300px; }.iv-notice { margin-bottom:8px; }
}
@media(max-height:740px) and (min-width:621px) {
 .iv-app .iv-workspace { padding:10px 0; }.iv-prompt { font-size:17px; line-height:1.5; margin-bottom:14px; }
 .iv-notice { margin-bottom:4px; }.iv-graphic { max-width:285px; margin-bottom:10px; }.iv-bound-card { padding:12px 14px 9px; }.iv-bound-card input { padding:8px 2px; font-size:25px; }
}
@media(prefers-reduced-motion:reduce) { .iv-app * { scroll-behavior:auto !important; transition:none !important; } }

.iv-app .oa-scoring .iv-purple { color:#8b35d1; }
.iv-app .oa-scoring .iv-amber { color:#b96800; }
.iv-app .oa-scoring .iv-green { color:#078958; }
.iv-app .iv-exam { background:transparent; }
.iv-app .iv-workspace { flex:1; width:min(100%,820px); margin:0 auto; padding:10px 16px 26px; box-sizing:border-box; }
.iv-app .iv-prompt { font-size:clamp(20px,1.9vw,26px); line-height:1.5; margin-bottom:18px; }
.iv-app .iv-answer-form { width:min(100%,570px); margin:0 auto; }
.iv-app .iv-bound-card { position:static; width:auto; height:auto; margin:0; transform:none; text-align:center; cursor:text; }
.iv-app .iv-bound-card > span:first-child { font-family:inherit; font-weight:500; font-size:12px; line-height:1.4; letter-spacing:.06em; }
.iv-app .iv-bound-card input { display:block; position:static; width:100%; min-width:0; max-width:100%; height:60px; min-height:0; margin:0; padding:8px 2px; box-sizing:border-box; border:0; border-radius:6px; background:transparent; box-shadow:none; transform:none; font-family:inherit; font-size:30px; font-weight:500; line-height:1.3; text-align:center; color:#263450; appearance:none; }
.iv-app .iv-bound-unit,.iv-app .iv-unit,.iv-app .iv-rules { font-size:13px; }
.iv-app .iv-notice:empty { min-height:0; margin:0; }
.iv-app .iv-validation { margin:4px 0; }
.iv-app .oa-score-info { display:inline-flex; justify-content:center; align-items:center; width:20px; height:20px; min-width:20px; min-height:20px; padding:0; font:500 0/1 Arial,sans-serif; text-transform:none; letter-spacing:0; }
@media(max-width:620px) { .iv-app .iv-prompt { font-size:20px; } .iv-app .iv-bound-card input { font-size:26px; height:52px; } }

/* History and breakdown pages do not mount the timed-test visual controller. */
.oa-app.iv-app { min-height: calc(100vh - var(--oa-header-height, 78px)); min-height: calc(100dvh - var(--oa-header-height, 78px)); }
.iv-app .oa-previous-metrics > span { white-space: nowrap; }

/* A single focus treatment belongs to the whole bound field. The global
   .oa-app.oa-standard focus rule otherwise draws a second ring on the input. */
.oa-app.oa-standard.iv-app .iv-bound-card { gap: 8px; padding: 14px 16px; }
.oa-app.oa-standard.iv-app .iv-bound-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; }
.oa-app.oa-standard.iv-app .iv-bound-card input { height: 48px; padding: 4px 0; text-align: right; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.oa-app.oa-standard.iv-app .iv-bound-card input:focus,
.oa-app.oa-standard.iv-app .iv-bound-card input:focus-visible { outline: none !important; outline-offset: 0 !important; border: 0 !important; box-shadow: none !important; }
.oa-app.oa-standard.iv-app .iv-bound-unit { min-height: 0; font-size: 20px; line-height: 1.3; text-align: left; }
.oa-app.oa-standard.iv-app .iv-bound-unit:empty { display: none; }
.oa-app.oa-standard.iv-app .iv-bound-entry:has(.iv-bound-unit:empty) { grid-template-columns: minmax(0, 1fr); }
.oa-app.oa-standard.iv-app .iv-bound-entry:has(.iv-bound-unit:empty) input { text-align: center; }
@media (max-width: 620px) {
 .oa-app.oa-standard.iv-app .iv-bound-card { padding: 12px 10px; }
 .oa-app.oa-standard.iv-app .iv-bound-entry { gap: 4px; }
 .oa-app.oa-standard.iv-app .iv-bound-card input { height: 44px; font-size: 24px; }
 .oa-app.oa-standard.iv-app .iv-bound-unit { font-size: 17px; }
}
