/* ──────────────────────────────────────────────────────────────────────────
   styles-evaluate.css — shared styles for the evaluate/ test suites.

   Extracted from the per-page inline <style> blocks, which had drifted into
   inconsistent font-sizes for the same classes (e.g. .scorecard was .9rem on
   some pages and .92rem on others). This file is the single source of truth so
   every suite renders identically. Page-specific rules (bespoke tables, cards)
   stay inline in each page. Depends on the CSS variables defined in styles.css,
   which must be linked first.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Test card ── */
.test-card{background:var(--bg-card);border:1px solid var(--border);border-radius:0;padding:28px 28px 20px;margin-bottom:24px;transition:border-color .3s,box-shadow .3s,background .3s}
.test-card.answered{border-color:rgba(168,85,247,.35);box-shadow:0 0 0 1px rgba(168,85,247,.1)}
.test-card h3{font-family:var(--font-ui);font-size:1.15rem;letter-spacing:.03em;margin-bottom:4px}
.test-card .test-probes{font-size:.85rem;opacity:.7;margin-bottom:16px;font-style:italic}
.test-card .test-label{font-family:var(--font-ui);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.5;margin-bottom:14px;display:block}
.test-setup{background:rgba(168,85,247,.06);border-left:3px solid var(--purple);padding:14px 18px;margin:14px 0;font-size:.92rem;line-height:1.6}
.test-result{display:flex;gap:8px;align-items:center;margin-top:18px;flex-wrap:wrap}
.test-result>strong{font-size:.88rem;margin-right:4px}

/* ── Rating buttons (pass / fail / n-a) ── */
.rbtn{font-family:var(--font-ui);font-size:.75rem;letter-spacing:.06em;padding:7px 18px;border:1px solid var(--border);background:var(--bg-raised);color:var(--muted);cursor:pointer;border-radius:0;transition:all .15s;user-select:none}
.rbtn:hover{border-color:var(--purple);color:var(--text);transform:translateY(-1px)}
.rbtn.rbtn-pass{border-color:rgba(67,197,158,.3)}.rbtn.rbtn-pass:hover{border-color:#43c59e}
.rbtn.rbtn-fail{border-color:rgba(229,115,107,.3)}.rbtn.rbtn-fail:hover{border-color:#e5736b}
.rbtn.rbtn-na{border-color:rgba(224,169,63,.3)}.rbtn.rbtn-na:hover{border-color:var(--amber)}
.rbtn.active-pass{background:rgba(67,197,158,.16);border-color:#43c59e;color:#43c59e;font-weight:600}
.rbtn.active-fail{background:rgba(229,115,107,.16);border-color:#e5736b;color:#e5736b;font-weight:600}
.rbtn.active-na{background:rgba(224,169,63,.14);border-color:var(--amber);color:var(--amber);font-weight:600}

/* ── Scorecard table ── */
.scorecard-wrap{position:relative}
.scorecard{width:100%;border-collapse:collapse;margin:20px 0;font-size:.92rem}
.scorecard thead th{font-family:var(--font-ui);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6;text-align:left;padding:10px 14px;border-bottom:2px solid var(--border)}
.scorecard tbody td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:top;transition:background .3s}
.scorecard .sc-test{font-weight:600;white-space:nowrap}
.scorecard .sc-result{width:100px;text-align:center}
.sc-badge{display:inline-block;font-family:var(--font-mono);font-size:.78rem;font-weight:600;padding:2px 10px;border-radius:0}
.sc-badge.sc-pass{background:rgba(67,197,158,.12);color:#43c59e}
.sc-badge.sc-fail{background:rgba(229,115,107,.12);color:#e5736b}
.sc-badge.sc-na{background:rgba(224,169,63,.10);color:var(--amber)}
.sc-badge.sc-empty{color:var(--dim)}
.scorecard tfoot td{padding:14px;font-weight:600;font-family:var(--font-ui);letter-spacing:.03em;font-size:.95rem}
.scorecard .bonus-row td{background:rgba(168,85,247,.04)}
.scorecard tr.row-pass td{background:rgba(67,197,158,.04)}
.scorecard tr.row-fail td{background:rgba(229,115,107,.04)}

/* ── Results tier cards ── */
.results-tier{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0}
.rt-card{flex:1 1 220px;background:var(--bg-card);border:2px solid var(--border);padding:18px;transition:background .3s,border-color .3s,box-shadow .4s;position:relative}
.rt-card .rt-score{font-family:var(--font-ui);font-size:1.6rem;margin-bottom:4px;transition:color .3s}
.rt-card .rt-label{font-size:.82rem;line-height:1.5;opacity:.85}
.rt-card.rt-good .rt-score{color:#43c59e}
.rt-card.rt-warn .rt-score{color:#e0a93f}
.rt-card.rt-bad .rt-score{color:#e5736b}
@keyframes pulse-active{0%,100%{box-shadow:0 0 0 0 rgba(168,85,247,0);border-color:var(--border)}50%{box-shadow:0 0 24px 4px rgba(168,85,247,.25);border-color:var(--purple)}}
.rt-card.pulse{animation:pulse-active 2s ease-in-out infinite}
.rt-card .rt-badge{position:absolute;top:-10px;right:-10px;background:var(--purple);color:#fff;font-family:var(--font-ui);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:0;display:none}
.rt-card.pulse .rt-badge{display:block}

/* ── Red-flag / honest behaviour lists ── */
.redflag-list{list-style:none;padding:0;margin:12px 0}
.redflag-list li{padding:6px 0 6px 22px;position:relative;font-size:.92rem;opacity:.85;line-height:1.6}
.redflag-list li::before{content:"⚠";position:absolute;left:0;top:6px;color:#e5736b;font-size:.85rem}
.honest-list{list-style:none;padding:0;margin:12px 0}
.honest-list li{padding:6px 0 6px 22px;position:relative;font-size:.92rem;opacity:.85;line-height:1.6}
.honest-list li::before{content:"✓";position:absolute;left:0;top:6px;color:#43c59e;font-weight:700}

/* ── Note box ── */
.note-box{background:rgba(127,127,127,.06);border:1px solid rgba(127,127,127,.14);padding:18px 22px;margin:18px 0;font-size:.92rem;line-height:1.7}

/* ── Print bar + score feedback ── */
.print-bar{display:flex;justify-content:flex-end;margin-bottom:10px}
.btn-print{font-family:var(--font-ui);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:8px 20px;border:1px solid var(--border-hi);background:var(--bg-raised);color:var(--text);cursor:pointer;border-radius:0;transition:all .15s;display:inline-flex;align-items:center;gap:7px}
.btn-print:hover{border-color:var(--purple);color:var(--purple);background:rgba(168,85,247,.06)}
.score-feedback{text-align:center;margin-top:8px;font-family:var(--font-ui);font-size:.8rem;letter-spacing:.06em;opacity:0;transition:opacity .3s}
.score-feedback.visible{opacity:.7}

/* ── Prompt pair (side-by-side prompt boxes) ── */
.prompt-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
.prompt-pair .mg-prompt{margin:0}
@media(max-width:700px){.prompt-pair{grid-template-columns:1fr}}
