/* RTR Exam Trainer — v5.2.0 */
@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;600;800&family=Barlow:wght@300;400;500;600&display=swap');

/* ══════════════════════════════════════════════════════════════════════
   THEME SYSTEM
   Three themes via data-theme attribute on .rtr-app:
     data-theme="light"   (default) — clean black & white, professional
     data-theme="dark"              — deep navy, aviation instrument feel
     data-theme="blue"              — soft aviation blue, easy on eyes

   All themes use the same variable names so every component
   automatically re-colours with zero layout changes.
══════════════════════════════════════════════════════════════════════ */

/* ── LIGHT THEME (default) ───────────────────────────────────────────
   Clean, professional, black-and-white only.
   Uses slate-grey tones for hierarchy instead of flat white-on-white.
   ────────────────────────────────────────────────────────────────── */
.rtr-app,
.rtr-app[data-theme="light"] {
  --bg:    #f0f2f5;  /* page background: soft grey — separates panels */
  --bg2:   #ffffff;  /* card/panel: pure white */
  --bg3:   #f7f8fa;  /* input/nested: light grey */
  --panel: #fafafa;  /* sidebar: near white */

  --bdr:   #e0e4ea;  /* hairline separator */
  --bdr2:  #b0b8c4;  /* visible border */

  --acc:   #1a1f2e;  /* near-black — crisp on white */
  --acc2:  #4a5568;  /* dark slate secondary */

  --green: #1a7f3c;  /* rich green */
  --green2:#166534;
  --amber: #92400e;  /* dark amber */
  --red:   #b91c1c;  /* dark red */

  --txt:   #111827;  /* primary text: near-black */
  --txt2:  #6b7280;  /* secondary: grey */
  --txt3:  #9ca3af;  /* tertiary: light grey */

  --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,.10), 0 2px 4px rgba(0,0,0,.07);

  --mono:'Share Tech Mono',monospace;
  --head:'Orbitron',sans-serif;
  --body:'Barlow',sans-serif;

  font-family:var(--body); color:var(--txt); background:var(--bg);
  min-height:100vh; position:relative;
}

/* ── DARK THEME ───────────────────────────────────────────────────────
   Deep charcoal with clear structure. Easy on eyes for night use.
   ────────────────────────────────────────────────────────────────── */
.rtr-app[data-theme="dark"] {
  --bg:    #111318;  /* near-black page */
  --bg2:   #1c1f27;  /* card/panel: dark charcoal */
  --bg3:   #252832;  /* input/nested */
  --panel: #181b23;  /* sidebar */

  --bdr:   #2e3340;  /* dark separator */
  --bdr2:  #454e63;  /* visible border */

  --acc:   #a8c0ff;  /* soft periwinkle — readable on dark */
  --acc2:  #c4b5fd;  /* soft violet secondary */

  --green: #6ee7a0;  /* mint green */
  --green2:#4ade80;
  --amber: #fcd34d;  /* warm yellow */
  --red:   #fca5a5;  /* soft salmon */

  --txt:   #e8eaf0;  /* near-white primary */
  --txt2:  #8892a4;  /* muted blue-grey */
  --txt3:  #5a6475;  /* dark secondary */

  --shadow-sm: 0 1px 3px rgba(0,0,0,.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,.5);

  --mono:'Share Tech Mono',monospace;
  --head:'Orbitron',sans-serif;
  --body:'Barlow',sans-serif;

  font-family:var(--body); color:var(--txt); background:var(--bg);
  min-height:100vh; position:relative;
}

/* ── AVIATION BLUE THEME ──────────────────────────────────────────────
   Deep navy inspired by cockpit instrument panels. Warm accents.
   ────────────────────────────────────────────────────────────────── */
.rtr-app[data-theme="blue"] {
  --bg:    #0d1b2e;  /* deep navy */
  --bg2:   #142236;  /* panel */
  --bg3:   #1a2d47;  /* card / input */
  --panel: #101e30;  /* sidebar */

  --bdr:   #1f3554;  /* navy divider */
  --bdr2:  #2f5080;  /* readable border */

  --acc:   #7eb8f7;  /* clear sky blue */
  --acc2:  #f6c96e;  /* warm amber (cockpit gauges) */

  --green: #6fd4a4;  /* soft teal-green */
  --green2:#4ec990;
  --amber: #f6c96e;  /* warm amber */
  --red:   #f68a8a;  /* soft red */

  --txt:   #dde8f5;  /* pale sky */
  --txt2:  #7a9ec4;  /* muted steel blue */
  --txt3:  #4a6a8a;  /* dark steel */

  --shadow-sm: 0 1px 4px rgba(0,0,0,.4);
  --shadow-md: 0 4px 18px rgba(0,0,0,.55);

  --mono:'Share Tech Mono',monospace;
  --head:'Orbitron',sans-serif;
  --body:'Barlow',sans-serif;

  font-family:var(--body); color:var(--txt); background:var(--bg);
  min-height:100vh; position:relative;
}


/* ── WARM THEME — Sepia-tinted, gentle on eyes for long sessions ──────
   ────────────────────────────────────────────────────────────────── */
.rtr-app[data-theme="warm"] {
  --bg:    #faf8f4;  /* warm cream page */
  --bg2:   #ffffff;  /* clean white panels */
  --bg3:   #f3f0ea;  /* warm beige input */
  --panel: #faf7f2;  /* warm sidebar */

  --bdr:   #e0d9ce;  /* warm hairline */
  --bdr2:  #b8a898;  /* warm medium border */

  --acc:   #7c4a1e;  /* rich brown */
  --acc2:  #a0522d;  /* sienna secondary */

  --green: #2d6a3f;  /* forest green */
  --green2:#1e4d2f;
  --amber: #b85c00;  /* warm orange-brown */
  --red:   #c0392b;  /* terracotta red */

  --txt:   #2c1f10;  /* dark warm brown */
  --txt2:  #7a6248;  /* medium warm */
  --txt3:  #a08060;  /* light warm */

  --shadow-sm: 0 1px 3px rgba(100,60,20,.10);
  --shadow-md: 0 4px 14px rgba(100,60,20,.12);

  --mono:'Share Tech Mono',monospace;
  --head:'Orbitron',sans-serif;
  --body:'Barlow',sans-serif;

  font-family:var(--body); color:var(--txt); background:var(--bg);
  min-height:100vh; position:relative;
}
/* ── WELCOME ── */
.rtr-welcome-screen {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:var(--bg);
  padding:20px;
}
.rtr-welcome-card {
  background:var(--bg2); border:1px solid var(--bdr2);
  border-radius:14px; padding:40px 38px; max-width:480px; width:100%;
  text-align:center;
  box-shadow: var(--shadow-md);
}
.rtr-welcome-logo  { font-family:var(--head); font-size:.8rem; letter-spacing:4px; color:var(--acc); margin-bottom:6px; }
.rtr-welcome-title { font-family:var(--head); font-size:1.2rem; font-weight:800; color:var(--acc); letter-spacing:3px; text-shadow:0 0 20px color-mix(in srgb, var(--acc) 25%, transparent); margin-bottom:8px; }
.rtr-welcome-sub   { color:var(--txt2); font-size:.9rem; margin-bottom:22px; }
.rtr-welcome-fields { display:flex; flex-direction:column; gap:12px; margin-bottom:20px; text-align:left; }
.rtr-wf-row { display:flex; align-items:center; gap:10px; }
.rtr-wf-row label { font-family:var(--head); font-size:.5rem; letter-spacing:3px; color:var(--txt2); width:52px; flex-shrink:0; }
.rtr-sel { flex:1; background:var(--bg3); border:1px solid var(--bdr); color:var(--acc); font-family:var(--mono); font-size:.72rem; padding:8px 10px; border-radius:5px; outline:none; }
.rtr-paper-info { font-family:var(--mono); font-size:.7rem; color:var(--txt); background:rgba(var(--acc-rgb,30,41,59),.04); border:1px solid rgba(var(--acc-rgb,30,41,59),.10); border-radius:6px; padding:10px 13px; margin-bottom:16px; line-height:1.7; text-align:left; }
.rtr-start-btn { display:inline-block; padding:13px 36px; border-radius:6px; border:1px solid var(--acc); background:var(--bg3); color:var(--acc); font-family:var(--head); font-size:.68rem; letter-spacing:2px; cursor:pointer; transition:all .2s; }
.rtr-start-btn:hover { background:color-mix(in srgb, var(--acc) 18%, transparent); box-shadow:0 4px 20px color-mix(in srgb, var(--acc) 15%, transparent),0 0 0 1px var(--acc); }
.rtr-btn-green { border-color:var(--green); background:color-mix(in srgb, var(--green) 10%, transparent); color:var(--green); }
.rtr-btn-amber { border-color:var(--amber); background:color-mix(in srgb, var(--amber) 10%, transparent); color:var(--amber); }

/* ── EXAM SCREEN ── */
.rtr-exam-screen { display:flex; flex-direction:column; height:100vh; height:100dvh; overflow:hidden; }

/* TOP BAR */
.rtr-topbar { background:var(--bg2); border-bottom:2px solid var(--bdr); display:flex; align-items:center; gap:6px; padding:0 10px; height:44px; flex-shrink:0; overflow:hidden; box-shadow:var(--shadow-sm); }
.rtr-exit-btn { font-family:var(--mono); font-size:.62rem; color:var(--txt2); background:transparent; border:1px solid var(--bdr); padding:3px 7px; border-radius:3px; cursor:pointer; white-space:nowrap; flex-shrink:0; }
.rtr-exit-btn:hover { color:var(--txt); border-color:var(--bdr2); }
.rtr-topbar-title { font-family:var(--head); font-size:.55rem; letter-spacing:2px; color:var(--txt2); white-space:nowrap; padding:0 6px; border-right:1px solid var(--bdr); flex-shrink:0; }
.rtr-topbar-mid { display:flex; align-items:center; gap:6px; flex:1; min-width:0; overflow:hidden; }
.rtr-q-pill { font-family:var(--mono); font-size:.65rem; color:var(--acc); background:rgba(var(--acc-rgb,30,41,59),.08); border:1px solid rgba(var(--acc-rgb,30,41,59),.15); padding:2px 8px; border-radius:10px; white-space:nowrap; flex-shrink:0; max-width:140px; overflow:hidden; text-overflow:ellipsis; }
.rtr-step-pill { font-family:var(--mono); font-size:.62rem; color:var(--txt2); white-space:nowrap; flex-shrink:0; }
.rtr-progress-bar-wrap { flex:1; height:3px; background:var(--bdr); border-radius:2px; overflow:hidden; min-width:30px; max-width:100px; }
.rtr-progress-bar { height:100%; background:linear-gradient(90deg,var(--acc),var(--green2)); border-radius:2px; transition:width .4s ease; }
.rtr-topbar-right { display:flex; align-items:center; gap:6px; flex-shrink:0; margin-left:auto; }
.rtr-mode-badge { font-family:var(--head); font-size:.48rem; letter-spacing:1px; color:var(--green); background:color-mix(in srgb, var(--green) 8%, transparent); border:1px solid color-mix(in srgb, var(--green) 20%, transparent); padding:2px 7px; border-radius:3px; }
.rtr-score-badge { font-family:var(--mono); font-size:.65rem; color:var(--txt2); white-space:nowrap; }
.rtr-score-badge strong { color:var(--acc); }

/* PAGINATION ROW */
.rtr-pagination-bar { background:var(--bg2); border-bottom:1px solid var(--bdr); padding:4px 10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.rtr-pagination-bar::-webkit-scrollbar { display:none; }
.rtr-pagination { display:flex; align-items:center; gap:3px; flex-wrap:nowrap; }
.rtr-page-dot { min-width:24px; width:24px; height:24px; border-radius:4px; border:1px solid var(--bdr2); background:var(--bg3); color:var(--txt2); font-family:var(--head); font-size:.48rem; cursor:pointer; transition:all .15s; padding:0; line-height:24px; text-align:center; flex-shrink:0; }
.rtr-page-active { background:var(--acc) !important; border-color:var(--acc) !important; color:#000 !important; font-weight:700; box-shadow:0 0 6px color-mix(in srgb, var(--acc) 30%, transparent); }
.rtr-page-pending { opacity:.6; }
.rtr-page-pending:hover { opacity:1; border-color:var(--acc); }
.rtr-page-done-good { background:color-mix(in srgb, var(--green) 15%, transparent); border-color:var(--green); color:var(--green); }
.rtr-page-done-part { background:color-mix(in srgb, var(--amber) 15%, transparent); border-color:var(--amber); color:var(--amber); }
.rtr-page-done-miss { background:color-mix(in srgb, var(--red) 15%, transparent); border-color:var(--red); color:var(--red); }
.rtr-page-dot:hover:not(.rtr-page-active) { transform:translateY(-1px); box-shadow:0 2px 8px rgba(0,0,0,.3); }
.rtr-page-dot:disabled { cursor:default; opacity:.3; }
.rtr-act-prev { color:var(--acc); border-color:rgba(var(--acc-rgb,30,41,59),.20); }
.rtr-act-prev:hover { background:rgba(var(--acc-rgb,30,41,59),.06); }
.rtr-act-prev:disabled { opacity:.3; cursor:default; }
.rtr-act-finish { color:var(--green); border-color:color-mix(in srgb, var(--green) 30%, transparent); }

/* BODY 3-col grid */
.rtr-body { display:grid; grid-template-columns:220px 1fr 200px; flex:1; overflow:hidden; min-height:0; }

/* LEFT SIDEBAR */
.rtr-left { background:var(--bg3); border-right:2px solid var(--bdr); overflow-y:auto; display:flex; flex-direction:column; }
.rtr-left-hdr { font-family:var(--head); font-size:.5rem; letter-spacing:2px; color:var(--txt2); padding:10px 12px 8px; border-bottom:1px solid var(--bdr); flex-shrink:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rtr-chart-list { padding:8px 8px 0; flex-shrink:0; }
.rtr-chart-card { display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:6px; cursor:pointer; margin-bottom:5px; border:1px solid transparent; transition:all .18s; background:var(--bg3); }
.rtr-chart-card:hover { border-color:rgba(var(--acc-rgb,30,41,59),.18); background:rgba(var(--acc-rgb,30,41,59),.04); }
.rtr-chart-card:not(.active) { cursor:default; opacity:.55; }
.rtr-chart-card:not(.active):hover { border-color:transparent; background:var(--bg3); opacity:.55; }
.rtr-chart-card.active { cursor:pointer; opacity:1; border-color:var(--acc); background:rgba(var(--acc-rgb,30,41,59),.08); box-shadow:0 0 8px rgba(var(--acc-rgb,30,41,59),.08); }
.rtr-chart-thumb { width:52px; height:38px; border-radius:3px; overflow:hidden; flex-shrink:0; background:#1a3040; display:flex; align-items:center; justify-content:center; }
.rtr-thumb-img { width:100%; height:100%; object-fit:cover; display:block; opacity:.8; }
.rtr-chart-card.active .rtr-thumb-img { opacity:1; }
.rtr-chart-info { flex:1; min-width:0; }
.rtr-chart-num { font-family:var(--head); font-size:.52rem; letter-spacing:2px; color:var(--txt2); }
.rtr-chart-region { font-family:var(--mono); font-size:.62rem; color:var(--txt2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rtr-chart-card.active .rtr-chart-num,.rtr-chart-card.active .rtr-chart-region { color:var(--acc); }

/* CENTER */
.rtr-center { display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; background:var(--bg); min-height:0; flex:1; }
.rtr-center-scroll { display:contents; }
@supports not (display:contents){
  .rtr-center-scroll { display:flex; flex-direction:column; flex:1; overflow-y:auto; min-height:0; align-content:flex-start; }
}

/* MOBILE CHART STRIP */
.rtr-mobile-chart-strip { display:none; align-items:center; gap:8px; padding:7px 14px; background:rgba(var(--acc-rgb,30,41,59),.04); border-bottom:1px solid rgba(var(--acc-rgb,30,41,59),.10); flex-shrink:0; }
.rtr-mcs-label { font-family:var(--head); font-size:.44rem; letter-spacing:2px; color:var(--txt2); flex-shrink:0; }
.rtr-mcs-name { font-family:var(--mono); font-size:.66rem; color:var(--acc); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rtr-mcs-btn { font-family:var(--head); font-size:.52rem; letter-spacing:1px; color:var(--acc); background:rgba(var(--acc-rgb,30,41,59),.08); border:1px solid rgba(var(--acc-rgb,30,41,59),.20); padding:5px 12px; border-radius:4px; cursor:pointer; flex-shrink:0; white-space:nowrap; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.rtr-mcs-btn:active { background:rgba(var(--acc-rgb,30,41,59),.18); }

/* INSTRUCTION BAR */
.rtr-instruction-bar { background:color-mix(in srgb, var(--green) 8%, transparent); border-bottom:1px solid color-mix(in srgb, var(--green) 18%, transparent); padding:9px 16px; display:flex; align-items:center; gap:9px; flex-shrink:0; }
.rtr-instr-dot { width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 5px color-mix(in srgb, var(--green) 50%, transparent); flex-shrink:0; animation:rtr-blink 2s infinite; }
@keyframes rtr-blink{0%,100%{opacity:1}50%{opacity:.3}}
#rtr-instruction-text { font-family:var(--mono); font-size:.75rem; color:var(--green2); letter-spacing:.5px; }

/* QUESTION BLOCK */
.rtr-q-block { padding:16px 18px; border-bottom:1px solid var(--bdr); border-left:3px solid var(--acc); flex-shrink:0; background:var(--bg2); overflow:visible; }
.rtr-q-block-hdr { display:flex; align-items:flex-start; gap:10px; margin-bottom:8px; }
.rtr-q-icon { color:var(--acc2); font-size:.9rem; flex-shrink:0; padding-top:2px; }
.rtr-q-main-text { font-family:var(--mono); font-size:.78rem; color:var(--txt); line-height:1.6; }
.rtr-sub-qs { display:flex; flex-direction:column; gap:4px; margin-top:8px; }
.rtr-sub-item { font-family:var(--mono); font-size:.72rem; color:var(--txt2); padding:5px 10px; background:rgba(0,0,0,.25); border-radius:4px; border-left:2px solid var(--bdr2); }
.rtr-sub-item b { color:var(--acc2); }
.rtr-sub-active { background:rgba(var(--acc-rgb,30,41,59),.08) !important; border-left:3px solid var(--acc) !important; color:var(--txt) !important; }
.rtr-sub-badge { font-family:var(--head); font-size:.48rem; letter-spacing:1px; color:var(--acc); background:rgba(var(--acc-rgb,30,41,59),.10); padding:1px 6px; border-radius:3px; margin-left:6px; }

/* WAVEFORM */
.rtr-wave-area { flex-shrink:0; height:56px; background:rgba(0,0,0,.35); border-top:1px solid var(--bdr); border-bottom:1px solid var(--bdr); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.rtr-wave-canvas { width:100%; height:100%; display:block; image-rendering:auto; -webkit-tap-highlight-color:transparent; }

/* STATUS LINE */
.rtr-status-line { font-family:var(--mono); font-size:.72rem; color:var(--txt2); padding:6px 16px; font-style:italic; flex-shrink:0; }
.rtr-status-line.recording { color:var(--green2); font-style:normal; animation:rtr-blink .8s infinite; }

/* LIVE TRANSCRIPT */
.rtr-live-transcript { font-family:var(--mono); font-size:.72rem; padding:6px 16px 4px; color:var(--red); flex-shrink:0; }
.rtr-lt-interim { color:var(--txt); }
.rtr-lt-live { color:var(--txt2); font-style:italic; }

/* CONVERSATION */
.rtr-convo-section { flex-shrink:0; overflow-y:visible; min-height:0; }
.rtr-convo-hdr { font-family:var(--head); font-size:.5rem; letter-spacing:3px; color:var(--txt2); padding:8px 14px; border-bottom:1px solid var(--bdr); border-top:1px solid var(--bdr); background:rgba(0,0,0,.2); position:sticky; top:0; z-index:2; }
/* Single-turn display — log holds exactly one message at a time */
.rtr-convo-log { padding:10px 14px; display:flex; flex-direction:column; gap:9px; }
.rtr-msg { display:flex; flex-direction:column; gap:3px; animation:rtr-pop .25s ease; }
@keyframes rtr-pop{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.rtr-msg-role { font-family:var(--head); font-size:.46rem; letter-spacing:3px; }
.rtr-msg-atc .rtr-msg-role { color:var(--acc2); }
.rtr-msg-atc .rtr-msg-role::before { content:'📡 '; }
.rtr-msg-pilot .rtr-msg-role { color:var(--acc); }
.rtr-msg-pilot .rtr-msg-role::before { content:'✈ '; }
.rtr-msg-meta { display:flex; align-items:center; justify-content:space-between; }
.rtr-msg-ts { font-family:var(--mono); font-size:.5rem; color:var(--txt2); }
.rtr-msg-bubble { font-family:var(--mono); font-size:.76rem; line-height:1.6; padding:8px 12px; border-radius:6px; }
.rtr-msg-atc .rtr-msg-bubble { background:rgba(255,107,53,.08); border:1px solid rgba(255,107,53,.2); margin-left:16px; }
.rtr-msg-pilot .rtr-msg-bubble { background:rgba(var(--acc-rgb,30,41,59),.05); border:1px solid rgba(0,212,255,.18); margin-right:16px; }
.rtr-msg-pilot.scored-good .rtr-msg-bubble { border-color:var(--green2); }
.rtr-msg-pilot.scored-part .rtr-msg-bubble { border-color:var(--amber); }
.rtr-msg-pilot.scored-miss .rtr-msg-bubble { border-color:var(--red); }
/* Note blocks — spoken with ATC voice, displayed with NOTAM/green accent */
.rtr-msg-note .rtr-msg-role          { color:var(--green); }
.rtr-msg-note .rtr-msg-role::before  { content:'📋 '; }
.rtr-msg-note .rtr-msg-bubble        { background:rgba(0,200,100,.06); border:1px solid rgba(0,200,100,.25); margin-left:16px; }
.rtr-score-chip { font-family:var(--mono); font-size:.58rem; padding:2px 8px; border-radius:10px; display:inline-block; margin-top:2px; }
.chip-good { background:var(--green); color:#fff; }
.chip-part { background:var(--amber); color:#fff; }
.chip-miss { background:color-mix(in srgb, var(--red) 15%, transparent); color:var(--red); }

/* TRANSMIT */
.rtr-transmit-wrap { flex-shrink:0; padding:14px 16px 10px; border-top:1px solid var(--bdr); display:flex; flex-direction:column; align-items:center; gap:10px; background:var(--bg2); z-index:10; box-shadow:0 -4px 20px rgba(0,0,0,.4); }
.rtr-transmit-btn { display:flex; align-items:center; gap:10px; padding:14px 32px; border-radius:8px; cursor:pointer; transition:all .2s; border:2px solid var(--acc); background:var(--acc); color:var(--bg); font-family:var(--head); font-size:.72rem; letter-spacing:2px; min-width:220px; justify-content:center; font-weight:700; box-shadow:var(--shadow-md); }
.rtr-transmit-btn:hover { background:color-mix(in srgb, var(--green) 18%, transparent); box-shadow:0 4px 16px rgba(74,222,128,.15); }
.rtr-transmit-btn.transmitting { border-color:var(--red); background:var(--red); color:#fff; animation:rtr-blink .6s infinite; }
.rtr-transmit-btn.atc-speaking { border-color:var(--acc2); background:rgba(255,107,53,.1); color:var(--acc2); animation:none; cursor:default; }
.rtr-transmit-icon { font-size:1.2rem; }
.rtr-action-row { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.rtr-act-btn { padding:7px 18px; border-radius:4px; font-family:var(--head); font-size:.58rem; letter-spacing:1px; cursor:pointer; transition:all .18s; border:1px solid var(--bdr); background:transparent; color:var(--txt2); }
.rtr-act-btn:hover { color:var(--txt); border-color:var(--bdr2); }

/* INLINE SCORE */
.rtr-inline-score { padding:0 16px 10px; flex-shrink:0; }
.rtr-is-block { padding:10px 12px; border-radius:6px; font-family:var(--mono); font-size:.7rem; line-height:1.6; margin-top:8px; }
.rtr-is-good { background:rgba(0,255,136,.07); border-left:3px solid var(--green); }
.rtr-is-part { background:rgba(255,184,0,.07); border-left:3px solid var(--amber); }
.rtr-is-miss { background:rgba(255,59,92,.07); border-left:3px solid var(--red); }
.rtr-is-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.rtr-is-grade { font-family:var(--head); font-size:.56rem; letter-spacing:1px; }
.rtr-is-pts { font-family:var(--head); font-size:.56rem; color:var(--txt2); }
.rtr-is-feedback { color:var(--txt); margin-bottom:2px; }
.rtr-is-why { color:var(--txt2); font-size:.65rem; }
.rtr-is-kw { margin-top:3px; font-size:.62rem; }
.rtr-is-spoken { margin-top:4px; font-size:.65rem; color:var(--txt2); font-style:italic; }
.kw-hit { color:var(--green); }
.kw-miss { color:var(--red); text-decoration:line-through; opacity:.7; }

/* RIGHT PANEL */
.rtr-right { background:var(--bg3); border-left:2px solid var(--bdr); overflow-y:auto; display:flex; flex-direction:column; }
.rtr-right-hdr { font-family:var(--head); font-size:.5rem; letter-spacing:2px; color:var(--txt2); padding:10px 13px 8px; border-bottom:1px solid var(--bdr); flex-shrink:0; }
.rtr-detail-section { padding:10px 13px 4px; }
.rtr-detail-group-title { font-family:var(--head); font-size:.46rem; letter-spacing:3px; color:var(--txt2); margin-bottom:6px; padding-bottom:4px; border-bottom:1px solid var(--bdr); }
.rtr-detail-row { display:flex; justify-content:space-between; align-items:center; padding:2px 0; }
.rtr-dk { font-family:var(--mono); font-size:.62rem; color:var(--txt2); }
.rtr-dv { font-family:var(--mono); font-size:.62rem; color:var(--acc); font-weight:600; }
.rtr-notam-section { padding:8px 13px; }
.rtr-notam-box { font-family:var(--mono); font-size:.66rem; line-height:1.5; color:var(--amber); background:color-mix(in srgb, var(--amber) 10%, transparent); border:1px solid rgba(255,184,0,.25); border-radius:4px; padding:6px 9px; margin-bottom:5px; }
.rtr-score-section { padding:8px 0; border-top:1px solid var(--bdr); }
.rtr-score-cards { padding:0 13px 8px; display:flex; flex-direction:column; gap:6px; }
.rtr-score-card { padding:8px 10px; border-radius:5px; font-family:var(--mono); font-size:.68rem; line-height:1.5; }
.rtr-sc-good { background:rgba(0,255,136,.07); border-left:3px solid var(--green); }
.rtr-sc-part { background:rgba(255,184,0,.07); border-left:3px solid var(--amber); }
.rtr-sc-miss { background:rgba(255,59,92,.07); border-left:3px solid var(--red); }
.rtr-sc-lbl { font-size:.52rem; letter-spacing:2px; margin-bottom:2px; }
.rtr-sc-good .rtr-sc-lbl { color:var(--green); }
.rtr-sc-part .rtr-sc-lbl { color:var(--amber); }
.rtr-sc-miss .rtr-sc-lbl { color:var(--red); }
.rtr-sc-kw { margin-top:3px; font-size:.6rem; }

/* MODEL ANSWER */
.rtr-reveal-btn { background:transparent; border:1px solid var(--bdr); color:var(--txt2); font-family:var(--mono); font-size:.58rem; padding:2px 7px; border-radius:3px; cursor:pointer; transition:all .2s; }
.rtr-reveal-btn:hover { color:var(--acc); border-color:var(--acc); }
.rtr-model-body { padding:8px 13px 10px; display:flex; flex-direction:column; gap:7px; }
.rtr-model-section { padding-bottom:10px; }
.rtr-model-block { padding:7px 10px; border-radius:4px; font-family:var(--mono); font-size:.68rem; line-height:1.6; }
.rtr-mb-pilot { background:rgba(var(--acc-rgb,30,41,59),.05); border-left:2px solid var(--acc); }
.rtr-mb-atc   { background:rgba(255,107,53,.06); border-left:2px solid var(--acc2); }
.rtr-mb-note  { background:rgba(0,255,136,.04); border-left:2px solid var(--green); }
.rtr-mb-lbl   { font-size:.5rem; letter-spacing:2px; margin-bottom:3px; }
.rtr-mb-pilot .rtr-mb-lbl { color:var(--acc); }
.rtr-mb-atc   .rtr-mb-lbl { color:var(--acc2); }
.rtr-mb-note  .rtr-mb-lbl { color:var(--green); }

/* FINAL SCREEN */
.rtr-final-screen { min-height:100vh; align-items:flex-start; justify-content:center; padding:24px 16px; overflow-y:auto; background:var(--bg); flex-direction:column; }
.rtr-final-card { background:var(--bg2); border:1px solid var(--bdr); border-radius:10px; padding:28px; max-width:760px; width:100%; margin:0 auto; }
.rtr-final-title { font-family:var(--head); font-size:.85rem; letter-spacing:3px; color:var(--acc); text-align:center; margin-bottom:20px; }
.rtr-final-btns { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:20px; }
.rtr-final-stats { display:flex; gap:20px; justify-content:center; margin-bottom:12px; flex-wrap:wrap; }
.rtr-fstat { text-align:center; }
.rtr-fstat-val { font-family:var(--head); font-size:2rem; font-weight:800; line-height:1; }
.rtr-fstat-key { font-family:var(--head); font-size:.44rem; letter-spacing:3px; color:var(--txt2); margin-top:3px; }
.rtr-report-section { margin-bottom:20px; }
.rtr-report-title { font-family:var(--head); font-size:.55rem; letter-spacing:3px; color:var(--acc); margin-bottom:10px; padding-bottom:6px; border-bottom:1px solid var(--bdr); }
.rtr-report-q-card { border:1px solid var(--bdr); border-radius:6px; margin-bottom:12px; overflow:hidden; }
.rtr-report-q-hdr { display:flex; justify-content:space-between; align-items:flex-start; padding:8px 12px; background:rgba(0,0,0,.3); }
.rtr-report-q-num { font-family:var(--head); font-size:.48rem; letter-spacing:2px; color:var(--txt2); }
.rtr-report-q-tag { font-family:var(--mono); font-size:.72rem; color:var(--acc); }
.rtr-report-q-pct { font-family:var(--head); font-size:.85rem; }
.rtr-report-q-body { padding:10px 12px; }
.rtr-report-q-text { font-family:var(--mono); font-size:.7rem; color:var(--txt2); margin-bottom:8px; }
.rtr-report-turn { padding:5px 8px; border-radius:3px; font-family:var(--mono); font-size:.68rem; margin-bottom:5px; }
.rtr-rt-atc { background:rgba(255,107,53,.06); border-left:2px solid var(--acc2); }
.rtr-rt-good { background:rgba(0,255,136,.06); border-left:2px solid var(--green); }
.rtr-rt-part { background:rgba(255,184,0,.06); border-left:2px solid var(--amber); }
.rtr-rt-miss { background:rgba(255,59,92,.06); border-left:2px solid var(--red); }
.rtr-rt-lbl { font-size:.52rem; letter-spacing:1px; margin-bottom:2px; font-family:var(--head); }
.rtr-rt-expected { color:var(--txt2); font-size:.66rem; }
.rtr-rt-why { color:var(--amber); font-size:.64rem; margin-top:2px; }

/* SLIDE REPORT */
.rtr-slide-overview { font-family:var(--body); }
.rtr-slide-summary-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:8px; margin:12px 0; }
.rtr-slide-summary-item { background:var(--bg3); border:1px solid var(--bdr); border-radius:6px; padding:10px 12px; cursor:pointer; transition:all .18s; }
.rtr-slide-summary-item:hover { border-color:var(--acc); background:rgba(var(--acc-rgb,30,41,59),.06); transform:translateY(-1px); }
.rtr-ssq-num   { font-family:var(--head); font-size:.52rem; letter-spacing:2px; color:var(--txt2); }
.rtr-ssq-tag   { font-family:var(--mono); font-size:.68rem; color:var(--txt); margin:3px 0; }
.rtr-ssq-score { font-family:var(--head); font-size:.72rem; }
.rtr-slide-nav-hint { font-family:var(--mono); font-size:.65rem; color:var(--txt2); text-align:center; margin-top:10px; padding:7px; border:1px dashed var(--bdr); border-radius:4px; }
.rtr-slide-nav { display:flex; align-items:center; justify-content:space-between; padding:12px 0 0; border-top:1px solid var(--bdr); margin-top:16px; }
.rtr-slide-counter { font-family:var(--head); font-size:.58rem; letter-spacing:2px; color:var(--txt2); }
.rtr-slide-card { background:var(--bg2); border:1px solid var(--bdr2); border-radius:8px; overflow:hidden; animation:rtr-pop .25s ease; }
.rtr-slide-hdr { display:flex; align-items:flex-start; justify-content:space-between; padding:12px 16px; background:rgba(0,0,0,.3); border-bottom:1px solid var(--bdr); }
.rtr-slide-qnum { font-family:var(--head); font-size:.48rem; letter-spacing:3px; color:var(--txt2); }
.rtr-slide-qtag { font-family:var(--head); font-size:.72rem; color:var(--acc); margin-top:2px; }
.rtr-slide-score-big { font-family:var(--head); font-size:1.3rem; text-align:right; }
.rtr-slide-qtext { font-family:var(--mono); font-size:.78rem; color:var(--txt); padding:12px 16px 8px; background:rgba(var(--acc-rgb,30,41,59),.04); border-left:3px solid var(--acc); margin:12px 16px 8px; border-radius:0 4px 4px 0; }
.rtr-slide-subs { padding:0 16px 8px; display:flex; flex-direction:column; gap:4px; }
.rtr-slide-sub { font-family:var(--mono); font-size:.7rem; color:var(--txt2); background:rgba(0,0,0,.2); padding:4px 8px; border-radius:3px; border-left:2px solid var(--bdr2); }
.rtr-slide-turns { padding:8px 16px 16px; display:flex; flex-direction:column; gap:8px; }
.rtr-slide-turn { padding:10px 12px; border-radius:5px; font-family:var(--mono); font-size:.72rem; line-height:1.55; }
.rtr-slide-atc  { background:rgba(255,107,53,.06); border-left:3px solid var(--acc2); }
.rtr-slide-good { background:rgba(0,255,136,.07); border-left:3px solid var(--green); }
.rtr-slide-part { background:rgba(255,184,0,.07); border-left:3px solid var(--amber); }
.rtr-slide-miss { background:rgba(255,59,92,.07); border-left:3px solid var(--red); }
.rtr-slide-turn-lbl { font-family:var(--head); font-size:.5rem; letter-spacing:2px; margin-bottom:6px; }
.rtr-slide-atc  .rtr-slide-turn-lbl { color:var(--acc2); }
.rtr-slide-good .rtr-slide-turn-lbl { color:var(--green); }
.rtr-slide-part .rtr-slide-turn-lbl { color:var(--amber); }
.rtr-slide-miss .rtr-slide-turn-lbl { color:var(--red); }
.rtr-slide-turn-text { color:var(--txt2); }
.rtr-slide-expected,.rtr-slide-spoken { margin-bottom:5px; }
.rtr-slide-label { font-family:var(--head); font-size:.5rem; letter-spacing:1px; color:var(--txt2); margin-right:6px; }
.rtr-slide-spoken-text { color:var(--txt); font-style:italic; }
.rtr-slide-why { font-size:.65rem; color:var(--amber); margin-top:4px; padding-top:4px; border-top:1px solid rgba(255,255,255,.06); }

/* POPUP */
.rtr-popup-overlay { display:none; position:fixed; inset:0; z-index:99999; background:rgba(0,0,0,.88); backdrop-filter:blur(4px); justify-content:center; align-items:center; pointer-events:none; }
.rtr-popup-overlay.rtr-popup-open { display:flex !important; pointer-events:all; animation:rtr-fade-in .2s ease; }
@keyframes rtr-fade-in{from{opacity:0}to{opacity:1}}

/* DASHBOARD */
.rtr-dash-table { width:100%; border-collapse:collapse; font-family:var(--mono); font-size:.72rem; }
.rtr-dash-table th { font-family:var(--head); font-size:.46rem; letter-spacing:3px; color:var(--txt2); padding:8px 12px; border-bottom:2px solid var(--bdr); text-align:left; }
.rtr-dash-table td { padding:8px 12px; border-bottom:1px solid var(--bdr); color:var(--txt); }
.rtr-dash-table tr:hover td { background:rgba(0,212,255,.03); }


/* ══════════════════════════════════════════════════════════════════════
   RESPONSIVE — single source of truth  v4.1.9
   Tested breakpoints:
     ≤1024px  tablet landscape  (iPad Pro, Surface)
     ≤768px   tablet portrait   (iPad Mini 768×1024)
     ≤580px   large phone       (Pixel 7  412×915)
     ≤380px   small phone       (iPhone SE 375px)
══════════════════════════════════════════════════════════════════════ */

/* Chart cards: JS controls visibility; CSS default = hidden */
.rtr-chart-card        { display: none !important; }
.rtr-chart-card.active { display: flex !important; }

/* ── TABLET LANDSCAPE ≤1024px ───────────────────────────────────────── */
@media (max-width: 1024px) {
  .rtr-body { grid-template-columns: 190px 1fr !important; }
  .rtr-right { display: none !important; }
}

/* ── TABLET PORTRAIT ≤768px ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .rtr-body { grid-template-columns: 148px 1fr !important; }
  .rtr-right { display: none !important; }

  /* Topbar */
  .rtr-topbar-title { display: none !important; }

  /* Chart sidebar — compact */
  .rtr-chart-thumb  { width: 38px !important; height: 28px !important; }
  .rtr-chart-num    { font-size: .44rem !important; }
  .rtr-chart-region { font-size: .52rem !important; }

  /* Center content */
  .rtr-q-main-text  { font-size: .74rem !important; }
  .rtr-sub-item     { font-size: .67rem !important; }
  .rtr-wave-area    { height: 44px !important; }

  /* Transmit area */
  .rtr-transmit-btn { min-width: 190px !important; padding: 11px 20px !important; font-size: .68rem !important; }
  .rtr-act-btn      { padding: 6px 12px !important; font-size: .54rem !important; }
}

/* ── MOBILE PHONE ≤580px ────────────────────────────────────────────── */
@media (max-width: 580px) {
  /* Layout: single column, no sidebars */
  .rtr-body  { grid-template-columns: 1fr !important; }
  .rtr-left  { display: none !important; }
  .rtr-right { display: none !important; }

  /* Topbar: show only EXIT · Q-pill · SCORE */
  .rtr-topbar         { height: 40px !important; padding: 0 8px !important; gap: 6px !important; }
  .rtr-topbar-title   { display: none !important; }
  .rtr-step-pill      { display: none !important; }
  .rtr-mode-badge     { display: none !important; }
  .rtr-progress-bar-wrap { display: none !important; }
  .rtr-exit-btn       { font-size: .6rem !important; padding: 3px 8px !important; }
  .rtr-q-pill         { font-size: .6rem !important; padding: 2px 7px !important; max-width: 130px !important; }
  .rtr-score-badge    { font-size: .6rem !important; }

  /* Mobile chart strip — show it */
  .rtr-mobile-chart-strip { display: flex !important; }

  /* Pagination row: scroll horizontally */
  .rtr-pagination-bar { justify-content: flex-start !important; padding: 5px 8px !important; }
  .rtr-page-dot       { min-width: 28px !important; width: 28px !important; height: 28px !important;
                        font-size: .52rem !important; line-height: 28px !important; }

  /* Center content */
  .rtr-q-block        { padding: 12px 14px !important; }
  .rtr-q-main-text    { font-size: .73rem !important; line-height: 1.5 !important; }
  .rtr-sub-item       { font-size: .67rem !important; padding: 5px 8px !important; }
  .rtr-wave-area      { height: 42px !important; }
  .rtr-status-line    { font-size: .7rem !important; padding: 6px 14px !important; }
  .rtr-msg-bubble     { font-size: .72rem !important; }

  /* Transmit — nearly full width */
  .rtr-transmit-wrap  { padding: 10px 12px 8px !important; gap: 8px !important; }
  .rtr-transmit-btn   {
    min-width: 88vw !important;
    max-width: 340px !important;
    font-size: .66rem !important;
    padding: 13px 16px !important;
  }
  .rtr-action-row     { gap: 6px !important; flex-wrap: wrap !important; justify-content: center !important; }
  .rtr-act-btn        { padding: 7px 13px !important; font-size: .55rem !important; }

  /* Inline score */
  .rtr-is-block       { font-size: .66rem !important; }

  /* Final screen */
  .rtr-final-card     { padding: 20px 16px !important; }
}

/* ── SMALL PHONE ≤380px ─────────────────────────────────────────────── */
@media (max-width: 380px) {
  .rtr-topbar         { height: 38px !important; padding: 0 6px !important; }
  .rtr-q-pill         { max-width: 100px !important; font-size: .56rem !important; }
  .rtr-transmit-btn   { font-size: .62rem !important; padding: 11px 12px !important; }
  .rtr-act-btn        { padding: 6px 10px !important; font-size: .52rem !important; }
  .rtr-page-dot       { min-width: 26px !important; width: 26px !important; height: 26px !important; }
}

/* ── TOUCH DEVICES (pointer:coarse) — larger tap targets ────────────── */
@media (pointer: coarse) {
  .rtr-transmit-btn {
    min-height: 52px !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .rtr-act-btn {
    min-height: 40px !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    user-select: none;
  }
  .rtr-page-dot {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .rtr-mcs-btn {
    min-height: 36px !important;
  }
}

/* ── iOS SAFARI — fix 100vh (address bar pushes content) ────────────── */
@supports (-webkit-touch-callout: none) {
  .rtr-exam-screen {
    height: -webkit-fill-available !important;
  }
}

/* ── WELCOME SCREEN mobile ──────────────────────────────────────────── */
@media (max-width: 480px) {
  .rtr-welcome-card  { padding: 28px 20px !important; margin: 0 4px; }
  .rtr-welcome-title { font-size: 1rem !important; letter-spacing: 2px !important; }
  .rtr-welcome-sub   { font-size: .82rem !important; }
  .rtr-start-btn     { padding: 12px 24px !important; font-size: .62rem !important; width: 100%; box-sizing: border-box; }
  .rtr-sel           { font-size: .68rem !important; }
}

/* ── TRANSMIT — always pinned, never clipped ────────────────────────── */
.rtr-transmit-wrap {
  flex-shrink: 0 !important;
  z-index: 10;
  box-shadow: 0 -4px 20px rgba(0,0,0,.45);
}

/* ── v5.0 ADDITIONS ── */

/* Mode lock badge on welcome screen */
.rtr-mode-lock-badge {
  display: inline-block;
  font-family: var(--head);
  font-size: .55rem;
  letter-spacing: 3px;
  padding: 5px 18px;
  border: 2px solid;
  border-radius: 5px;
  margin: 0 auto 10px;
  font-weight: 700;
}

/* Exam rules row on welcome */
.rtr-exam-rules {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 10px 0 20px;
}
.rtr-exam-rules span {
  font-family: var(--mono);
  font-size: .6rem;
  color: var(--txt2);
  background: rgba(255,255,255,.04);
  border: 1px solid var(--bdr);
  border-radius: 4px;
  padding: 4px 10px;
  white-space: nowrap;
}

/* ── CENTERED TURN RESULT CARD ── */
.rtr-turn-result-card {
  background: var(--bg3);
  border: 2px solid var(--bdr2);
  border-radius: 10px;
  padding: 16px 12px 14px;
  text-align: center;
  margin-bottom: 10px;
  box-shadow: 0 0 16px rgba(0,0,0,.25);
}
.rtr-turn-result-card.rtr-tr-good  { border-color: var(--green); box-shadow: 0 0 18px color-mix(in srgb, var(--green) 12%, transparent); }
.rtr-turn-result-card.rtr-tr-part  { border-color: var(--amber); box-shadow: 0 0 18px color-mix(in srgb, var(--amber) 10%, transparent); }
.rtr-turn-result-card.rtr-tr-miss  { border-color: var(--red);   box-shadow: 0 0 18px color-mix(in srgb, var(--red) 10%, transparent); }

.rtr-tr-title {
  font-family: var(--head);
  font-size: .52rem;
  letter-spacing: 3px;
  color: var(--txt2);
  margin-bottom: 8px;
  text-transform: uppercase;
}
.rtr-turn-result-card.rtr-tr-good .rtr-tr-title { color: var(--green); }
.rtr-turn-result-card.rtr-tr-part .rtr-tr-title { color: var(--amber); }
.rtr-turn-result-card.rtr-tr-miss .rtr-tr-title { color: var(--red);   }

.rtr-tr-score {
  font-family: var(--head);
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 2px;
}
.rtr-tr-pct { font-size: 1rem; }
.rtr-tr-pts {
  font-family: var(--mono);
  font-size: .6rem;
  color: var(--txt2);
  margin-bottom: 10px;
}
.rtr-tr-rows {
  border-top: 1px solid var(--bdr);
  padding-top: 8px;
  margin-top: 6px;
}
.rtr-tr-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2px 0;
}
.rtr-tr-label { font-family: var(--mono); font-size: .6rem; color: var(--txt2); }
.rtr-tr-val   { font-family: var(--mono); font-size: .65rem; font-weight: 700; }

/* Practice mode hint in inline score */
.rtr-is-hint {
  margin-top: 7px;
  padding: 6px 10px;
  background: rgba(var(--acc-rgb,30,41,59),.05);
  border: 1px solid rgba(var(--acc-rgb,30,41,59),.15);
  border-radius: 5px;
  font-family: var(--mono);
  font-size: .65rem;
  color: var(--acc);
  line-height: 1.5;
}

/* ── EXAM MODE inline score — score number only, no text ── */
.rtr-is-exam-only {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 5px;
  border-left: 3px solid var(--bdr2);
  background: var(--bg3);
}
.rtr-is-exam-only .rtr-is-grade { font-size: 1rem; }
.rtr-is-exam-only .rtr-is-pts   { font-family: var(--mono); font-size: .72rem; color: var(--txt); font-weight: 600; }

/* ══ THEME SWITCHER ══ */
.rtr-theme-switcher {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-wrap: wrap;
  margin: 14px 0 20px;
  padding: 10px 12px;
  background: var(--bg3);
  border: 1px solid var(--bdr);
  border-radius: 10px;
}
.rtr-ts-label {
  font-family: var(--head);
  font-size: .42rem;
  letter-spacing: 2px;
  color: var(--txt2);
  margin-right: 4px;
  flex-shrink: 0;
}
.rtr-ts-btn {
  font-family: var(--mono);
  font-size: .62rem;
  padding: 5px 11px;
  border-radius: 6px;
  border: 1px solid var(--bdr2);
  background: var(--bg2);
  color: var(--txt2);
  cursor: pointer;
  transition: all .16s;
  white-space: nowrap;
  letter-spacing: .5px;
}
.rtr-ts-btn:hover {
  border-color: var(--acc);
  color: var(--acc);
  background: var(--bg2);
}
.rtr-ts-btn.active {
  background: var(--acc);
  border-color: var(--acc);
  color: var(--bg2);
  font-weight: 700;
  box-shadow: var(--shadow-sm);
}

/* ── Per-theme refinements ────────────────────────────────────────── */

/* Light: page background creates depth; card sits on top */
.rtr-app[data-theme="light"] .rtr-welcome-screen,
.rtr-app .rtr-welcome-screen {
  background: var(--bg);
}

/* Dark / Blue: transmit button contrast fix */
.rtr-app[data-theme="dark"] .rtr-transmit-btn,
.rtr-app[data-theme="blue"] .rtr-transmit-btn {
  border-color: var(--acc);
  background: rgba(0,0,0,0);
  color: var(--acc);
  border-width: 2px;
}
.rtr-app[data-theme="dark"] .rtr-transmit-btn:hover,
.rtr-app[data-theme="blue"] .rtr-transmit-btn:hover {
  background: rgba(255,255,255,.06);
}

/* Dark: instruction bar gets a green left accent */
.rtr-app[data-theme="dark"] .rtr-instruction-bar,
.rtr-app[data-theme="blue"] .rtr-instruction-bar {
  background: rgba(255,255,255,.03);
  border-bottom-color: var(--bdr2);
  border-left: 3px solid var(--green);
}

/* Dark/Blue: Q block accent from accent colour */
.rtr-app[data-theme="dark"] .rtr-q-block,
.rtr-app[data-theme="blue"] .rtr-q-block {
  border-left-color: var(--acc);
}

/* ══ CUSTOM SCROLLABLE PAPER SELECT ══════════════════════════════════════
   Replaces the native <select> whose OS dropdown can overflow the viewport.
   The panel is capped at 40vh and scrolls internally so every option is
   always reachable, regardless of how many papers exist.
════════════════════════════════════════════════════════════════════════ */
.rtr-custom-select {
  position: relative;
  flex: 1;
  min-width: 0;
}

/* ── Trigger button — matches .rtr-sel visually ── */
.rtr-csel-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--bdr);
  color: var(--acc);
  font-family: var(--mono);
  font-size: .72rem;
  padding: 8px 10px;
  border-radius: 5px;
  cursor: pointer;
  text-align: left;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  gap: 8px;
}
.rtr-csel-trigger:hover,
.rtr-csel-trigger:focus {
  border-color: var(--acc);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--acc) 18%, transparent);
}
.rtr-csel-trigger[aria-expanded="true"] {
  border-color: var(--acc);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.rtr-csel-label {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.rtr-csel-arrow {
  flex-shrink: 0;
  font-size: .65rem;
  opacity: .7;
  transition: transform .15s;
}
.rtr-csel-trigger[aria-expanded="true"] .rtr-csel-arrow {
  transform: rotate(180deg);
}

/* ── Dropdown panel ── */
.rtr-csel-list {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 9999;
  list-style: none;
  margin: 0;
  padding: 4px 0;
  background: var(--bg3);
  border: 1px solid var(--acc);
  border-top: none;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  /* ▼ KEY: cap height and scroll — never overflows viewport */
  max-height: 40vh;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--acc) var(--bg3);
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
}
.rtr-csel-list::-webkit-scrollbar        { width: 5px; }
.rtr-csel-list::-webkit-scrollbar-track  { background: var(--bg3); }
.rtr-csel-list::-webkit-scrollbar-thumb  { background: var(--bdr); border-radius: 3px; }
.rtr-csel-list::-webkit-scrollbar-thumb:hover { background: var(--acc); }

.rtr-csel-list.rtr-csel-open { display: block; }

/* ── Individual option ── */
.rtr-csel-option {
  padding: 9px 13px;
  font-family: var(--mono);
  font-size: .72rem;
  color: var(--txt);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background .1s, color .1s;
}
.rtr-csel-option:hover,
.rtr-csel-option.rtr-csel-focused {
  background: color-mix(in srgb, var(--acc) 14%, transparent);
  color: var(--acc);
}
.rtr-csel-option[aria-selected="true"] {
  background: color-mix(in srgb, var(--acc) 10%, transparent);
  color: var(--acc);
  font-weight: 600;
}

/* Mobile: ensure the list doesn't push content or clip near edges */
@media (max-width: 600px) {
  .rtr-csel-list { max-height: 35vh; }
  .rtr-csel-trigger { font-size: .68rem !important; }
}

/* Note block in results slide review */
.rtr-slide-note { border-left: 3px solid var(--green) !important; background: rgba(0,200,100,.05) !important; }
