/* Area: tests */

/* ---------- staff: hub, batch tab */
.xtst-tabs { margin-bottom: 14px; }
.xtst-tabs .nav-count { margin-left: 6px; }
.xtst-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.xtst-change { padding: 10px 0; border-bottom: 1px solid var(--line); }
.xtst-change:last-child { border-bottom: 0; }
.xtst-change p { margin: 4px 0; }
.xtst-diff { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 6px 0; }
.xtst-diff span { display: inline-flex; align-items: baseline; gap: 6px; background: var(--chip); border-radius: 8px; padding: 4px 8px; }
.xtst-diff small { color: var(--mute); }
.xtst-diff s { color: var(--mute); }
.xtst-weak { margin: 6px 0 0; padding-left: 22px; }
.xtst-weak li { margin: 0 0 10px; }
.xtst-weak small { display: block; color: var(--mute); }
.xtst-batch h3 { display: flex; align-items: center; gap: 6px; }
.xtst-batch h3 svg { color: var(--gold); }
.xtst-prac-link { text-decoration: none; color: inherit; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; }
.xtst-prac-link .bar { width: 90px; flex: none; }
.xtst-retired { opacity: .6; }
.xtst-tests summary { cursor: pointer; font-weight: 600; margin-top: 6px; }
.xtst-links .line-row { align-items: center; }
.xtst-optedit label { gap: 8px; margin: 4px 0; flex-wrap: nowrap; }
.xtst-optedit input[type="text"], .xtst-optedit input:not([type]) { flex: 1; min-width: 0; }
.xtst-q .crs-q-no { flex: none; }
.xtst-q p { margin: 0; font-weight: 600; }
.xtst-opts { margin: 6px 0 0; padding-left: 4px; list-style: none; }
.xtst-opts li { padding: 3px 0; }
.xtst-opts li.ok { color: var(--leaf, #1d7a45); font-weight: 600; }
.xtst-qpic { display: block; max-width: 240px; max-height: 180px; border-radius: 10px; border: 1px solid var(--line); object-fit: contain; background: var(--chip); }

/* ---------- practical scoring */
.xtst-pcard { padding: 0; overflow: hidden; }
.xtst-pcard > * + * { margin-top: 0; }
.xtst-trow { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 10px 14px; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.xtst-trow.on { background: var(--navy-soft); }
.xtst-trow span { display: inline-flex; gap: 6px; align-items: center; }
.xtst-form { padding: 14px; border-top: 1px solid var(--line); }
.xtst-steps { display: flex; flex-direction: column; gap: 6px; }
.xtst-step { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; min-height: 48px; border: 1px solid var(--line-strong); border-radius: 12px; cursor: pointer; }
.xtst-step input { width: 22px; height: 22px; flex: none; margin: 1px 0 0; }
.xtst-step:has(input:checked) { border-color: var(--navy); background: var(--navy-soft); }
.xtst-photo img { display: block; max-width: 100%; max-height: 220px; border-radius: 12px; border: 1px solid var(--line); }

/* ---------- assessor */
.xtst-arows { display: flex; flex-direction: column; }
.xtst-arow { display: grid; grid-template-columns: minmax(140px, 1fr) 96px 96px minmax(90px, auto) auto; gap: 10px; align-items: end; padding: 10px 0; border-bottom: 1px solid var(--line); }
.xtst-arow label { display: flex; flex-direction: column; gap: 2px; }
.xtst-arow label small { color: var(--mute); font-size: 12px; }
.xtst-arow input { width: 100%; box-sizing: border-box; }
.xtst-aname strong { display: block; }
body.xtst-assessor .nav-item:not([href^="#/xtst"]):not([href="#/me"]) { display: none; }
body.xtst-assessor .nav-group:not(:has(.nav-item[href^="#/xtst"])):not(:has(.nav-item[href="#/me"])) { display: none; }
body.xtst-assessor .tabbar .tab:not(button), body.xtst-assessor .top-search { display: none; }
@media (max-width: 640px) {
  .xtst-arow { grid-template-columns: 1fr 1fr; }
  .xtst-aname { grid-column: 1 / -1; }
  .xtst-prac-link .bar { width: 60px; }
}

/* ---------- trainee app */
.xtst-spk { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin-left: auto; border-radius: 50%;
  border: 1px solid var(--line-strong); background: var(--paper); color: var(--navy); cursor: pointer; position: relative; z-index: 1; }
.xtst-spk.on { background: var(--navy); color: #fff; }
.t-opts .qa-opt .xtst-spk { width: 40px; height: 40px; }
.xtst-tfig { margin: 6px 0 12px; text-align: center; }
.xtst-tpic { max-width: 100%; max-height: 280px; border-radius: 14px; border: 1px solid var(--line); background: var(--chip); }
.xtst-timer { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--gold-soft); color: var(--ink); font-variant-numeric: tabular-nums; flex: none; }
.xtst-timer.low { background: var(--red-soft); color: var(--red); }
.xtst-rx { margin: 10px 0; text-align: left; }
.xtst-revise { background: var(--gold-soft); border-radius: 12px; padding: 10px 14px; margin: 8px 0; }
.xtst-revise ul { margin: 6px 0 0; padding-left: 20px; }
.xtst-retest { display: flex; align-items: center; gap: 6px; margin: 6px 0; }
.xtst-practise { display: flex; justify-content: center; gap: 8px; margin-top: 8px; text-decoration: none; }
.xtst-home .xtst-plink { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 8px 12px; margin: 6px 0; border: 1px solid var(--line-strong); border-radius: 12px; color: inherit; text-decoration: none; }
.xtst-home .xtst-plink small { color: var(--mute); }
.xtst-res { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.xtst-res:last-child { border-bottom: 0; }
.xtst-res strong, .xtst-res small { display: block; }
.xtst-res small { color: var(--mute); }
.xtst-res-r { text-align: right; flex: none; }
.xtst-res-r b { font-size: 20px; }
.xtst-res.good .xtst-res-r b { color: var(--leaf, #1d7a45); }
.xtst-res.low .xtst-res-r b { color: var(--red); }
.xtst-final b { font-size: 26px; }
.xtst-poptrow { display: flex; align-items: center; gap: 8px; }
.xtst-poptrow .qa-opt { flex: 1; min-width: 0; text-align: left; font: inherit; color: inherit; background: var(--paper); cursor: pointer; display: flex; gap: 10px; }
.xtst-popt.right { border-color: var(--leaf, #1d7a45); background: var(--leaf-soft, #e3f3ea); }
.xtst-popt.wrong { border-color: var(--red); background: var(--red-soft); opacity: .75; }
.xtst-pmsg { display: flex; align-items: center; gap: 6px; font-weight: 600; padding: 8px 12px; border-radius: 10px; }
.xtst-pmsg.good { background: var(--leaf-soft, #e3f3ea); color: var(--leaf, #1d7a45); }
.xtst-pmsg.bad { background: var(--red-soft); color: var(--red); }
.xtst-flags summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
