  * { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --accent:#f5c518; --accent-dim:rgba(245,197,24,0.12); --accent-border:rgba(245,197,24,0.25);
    --correct:#4ade80; --wrong:#f87171;
    --bg:#0a1628; --card:#111e35; --card2:#0d1a2e; --border:#1e3058; --border2:#3a5a9a;
    --text:#f0f4ff; --muted:#8899bb; --body-text:#c8d5ef; --outer-text:#ffffff;
  }
  .nfl-mode  { --accent:#d4001f; --accent-dim:rgba(212,0,31,0.12);   --accent-border:rgba(212,0,31,0.3);   --bg:#0f0a0a; --card:#1c1010; --card2:#140c0c; --border:#3a1515; --border2:#6a2020; }
  .nfhs-mode { --accent:#3b82f6; --accent-dim:rgba(59,130,246,0.12); --accent-border:rgba(59,130,246,0.3); --bg:#080d1a; --card:#0e1629; --card2:#0a1020; --border:#162040; --border2:#2a4080; }
  .uil-mode  { --accent:#bf5700; --accent-dim:rgba(191,87,0,0.12);   --accent-border:rgba(191,87,0,0.3);   --bg:#0c0e08; --card:#141a0e; --card2:#0e1209; --border:#2a3518; --border2:#4a5f28; }

  body {
    font-family:'Segoe UI',system-ui,sans-serif; color:var(--text); min-height:100vh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:1rem; transition:background 0.4s; position:relative; overflow-x:hidden;
    background:var(--bg);
    background-attachment:fixed;
  }
  .screen { display:none; width:100%; max-width:480px; }
  @media (min-width: 1200px) {
    .logo { font-size:4rem; }
  }
  .screen.active { display:flex; flex-direction:column; align-items:center; }
  .logo { font-size:3rem; font-weight:800; letter-spacing:-1px; color:var(--outer-text); margin-bottom:0.25rem; transition:color 0.3s; }
  .logo span, .launch-logo span { color:var(--accent); }
  .tagline { font-size:1rem; color:var(--outer-text); opacity:0.7; margin-bottom:2rem; letter-spacing:0.5px; }
  .card { background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:16px; padding:2rem; width:100%; transition:background 0.3s,border-color 0.3s; }

  /* MODE SELECT */
  .mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; width:100%; margin-bottom:1.5rem; }
  .mode-card { border-radius:16px; border:3px solid rgba(255,255,255,0.55); padding:1.4rem 1rem; text-align:center; cursor:pointer; transition:border-color 0.2s,transform 0.15s,background 0.2s; background:var(--card); }
  .mode-card:hover { transform:translateY(-3px); }
  .mode-card.ncaa:hover,.mode-card.ncaa.selected { border-color:#f5c518; background:rgba(245,197,24,0.06); }
  .mode-card.nfl:hover,.mode-card.nfl.selected   { border-color:#d4001f; background:rgba(212,0,31,0.08); }
  .mode-card.nfhs:hover,.mode-card.nfhs.selected { border-color:#3b82f6; background:rgba(59,130,246,0.08); }
  mode-card.uil:hover,mode-card.uil.selected   { border-color:#bf5700; background:rgba(191,87,0,0.08); }
  .mode-icon { font-size:2rem; margin-bottom:0.4rem; }
  .mode-name { font-size:1rem; font-weight:700; margin-bottom:0.2rem; }
  .mode-desc { font-size:0.73rem; color:var(--muted); line-height:1.5; }
  .mode-card.ncaa .mode-name { color:#f5c518; }
  .mode-card.nfl  .mode-name { color:#d4001f; }
  .mode-card.nfhs .mode-name { color:#3b82f6; }
  mode-card.uil  .mode-name { color:#bf5700; }

  /* CATEGORY GRID */
  .category-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:5px; width:100%; margin-bottom:1rem; }
  .cat-btn { background:var(--card2); border:2px solid rgba(255,255,255,0.55); border-radius:8px; padding:0.32rem 0.4rem; cursor:pointer; text-align:left; transition:border-color 0.15s,background 0.15s; color:var(--text); }
  .cat-btn:hover { border-color:var(--border2); }
  .cat-btn.selected { border-color:var(--accent); background:rgba(255,255,255,0.15); }
  .cat-btn .cat-icon { font-size:0.8rem; margin-bottom:1px; }
  .cat-btn .cat-name { font-size:0.64rem; font-weight:600; line-height:1.1; }
  .cat-btn .cat-count { font-size:0.55rem; color:var(--muted); margin-top:0px; }

  /* CONTROLS */
  .diff-row { display:flex; gap:10px; width:100%; margin-bottom:1.5rem; }
  .diff-btn { flex:1; padding:0.6rem; border-radius:8px; border:3px solid rgba(255,255,255,0.55); background:transparent; color:var(--muted); cursor:pointer; font-size:0.85rem; font-weight:600; transition:all 0.15s; }
  .diff-btn:hover { border-color:var(--border2); color:var(--text); }
  .diff-btn.selected { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }
  .btn-primary { background:var(--accent); color:#fff; border:none; border-radius:10px; padding:0.9rem 2.5rem; font-size:1.05rem; font-weight:700; cursor:pointer; width:100%; transition:opacity 0.15s,transform 0.1s; }
  .btn-primary:hover { opacity:0.88; transform:translateY(-1px); }
  .btn-primary:active { transform:scale(0.98); }
  .btn-primary:disabled { opacity:0.4; cursor:not-allowed; transform:none; }
  .btn-outline { background:transparent; color:var(--muted); border:3px solid rgba(255,255,255,0.55); border-radius:10px; padding:0.7rem 1.5rem; font-size:0.9rem; font-weight:600; cursor:pointer; transition:all 0.15s; }
  .btn-outline:hover { border-color:var(--border2); color:var(--text); }
  .btn-classroom { width:100%; margin-top:0.75rem; padding:0.85rem; background:linear-gradient(135deg,#1a3a6b,#0d2244); border:1px solid var(--accent); border-radius:12px; color:var(--accent); font-size:1rem; font-weight:700; cursor:pointer; letter-spacing:0.5px; transition:all 0.2s; }
  .btn-classroom:hover { background:linear-gradient(135deg,#234a8a,#1a3a6b); }
  .btn-row { display:flex; gap:10px; width:100%; }
  .btn-row .btn-primary { flex:1; }
  .btn-row .btn-outline { flex-shrink:0; }

  /* PROGRESS */
  .progress-bar-wrap { width:100%; height:5px; background:var(--border); border-radius:3px; margin-bottom:1.25rem; overflow:hidden; }
  .progress-bar-fill { height:100%; background:var(--accent); border-radius:3px; transition:width 0.4s ease; }
  .q-meta { display:flex; justify-content:space-between; font-size:0.82rem; color:var(--muted); margin-bottom:1rem; }
  .category-badge { font-size:0.75rem; padding:3px 10px; border-radius:20px; background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); font-weight:600; }
  .diff-badge { font-size:0.75rem; padding:3px 10px; border-radius:20px; font-weight:600; }
  .diff-badge.easy   { background:rgba(34,197,94,0.12);  color:#4ade80; border:1px solid rgba(34,197,94,0.25); }
  .diff-badge.medium { background:rgba(245,197,24,0.12); color:#f5c518; border:1px solid rgba(245,197,24,0.25); }
  .diff-badge.hard   { background:rgba(239,68,68,0.12);  color:#f87171; border:1px solid rgba(239,68,68,0.25); }
  .question-text { font-size:1.1rem; font-weight:600; line-height:1.55; margin-bottom:1.5rem; color:#e8eeff; }

  /* OPTIONS */
  .options { display:flex; flex-direction:column; gap:10px; width:100%; }
  .opt-btn { background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:10px; padding:0.85rem 1.1rem; text-align:left; cursor:pointer; font-size:0.9rem; color:var(--body-text); transition:border-color 0.12s,background 0.12s; display:flex; align-items:center; gap:12px; }
  .opt-btn:hover:not(:disabled) { border-color:var(--border2); background:var(--card); }
  .opt-btn .opt-letter { width:26px; height:26px; border-radius:6px; background:var(--border); display:flex; align-items:center; justify-content:center; font-size:0.78rem; font-weight:700; color:var(--muted); flex-shrink:0; }
  .opt-btn.selected-test { border-color:var(--accent); background:var(--accent-dim); }
  .opt-btn.correct { border-color:#4ade80; background:rgba(34,197,94,0.08); }
  .opt-btn.correct .opt-letter { background:#4ade80; color:#0a1628; }
  .opt-btn.wrong   { border-color:#f87171; background:rgba(239,68,68,0.08); }
  .opt-btn.wrong   .opt-letter { background:#f87171; color:#0a1628; }
  .opt-btn.reveal  { border-color:#4ade80; background:rgba(34,197,94,0.05); }
  .opt-btn:disabled { cursor:default; }
  .explanation { margin-top:1rem; padding:1rem 1.1rem; background:var(--card2); border-left:3px solid var(--accent); border-radius:0 8px 8px 0; font-size:0.87rem; color:#a8bbd8; line-height:1.6; display:none; }
  .explanation.visible { display:block; }
  .explanation strong { color:var(--accent); font-weight:600; }

  /* TIMER */
  .timer-ring { width:48px; height:48px; position:relative; flex-shrink:0; }
  .timer-ring svg { transform:rotate(-90deg); }
  .timer-ring circle.bg   { fill:none; stroke:var(--border); stroke-width:3; }
  .timer-ring circle.fill { fill:none; stroke:var(--accent); stroke-width:3; stroke-dasharray:126; transition:stroke-dashoffset 1s linear,stroke 0.3s; stroke-linecap:round; }
  .timer-num { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:0.85rem; font-weight:700; color:var(--accent); }

  /* STREAK */
  .streak-bar { display:flex; justify-content:center; gap:5px; margin-bottom:1rem; flex-wrap:wrap; }
  .streak-dot { width:10px; height:10px; border-radius:50%; background:var(--border); transition:background 0.3s; }
  .streak-dot.hit  { background:var(--accent); }
  .streak-dot.miss { background:#f87171; }

  /* RESULTS */
  .score-circle { width:130px; height:130px; border-radius:50%; border:4px solid var(--accent); display:flex; flex-direction:column; align-items:center; justify-content:center; margin:1rem auto 1.5rem; }
  .score-big   { font-size:2.4rem; font-weight:800; color:var(--accent); line-height:1; }
  .score-label { font-size:0.78rem; color:var(--muted); margin-top:4px; }
  .result-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; width:100%; margin-bottom:1.5rem; }
  .result-stats.two-col { grid-template-columns:1fr 1fr; }
  .stat-card { background:var(--card2); border-radius:10px; padding:0.9rem; text-align:center; }
  .stat-val { font-size:1.5rem; font-weight:700; }
  .stat-lbl { font-size:0.75rem; color:var(--muted); margin-top:3px; }
  .stat-val.green  { color:#4ade80; }
  .stat-val.red    { color:#f87171; }
  .stat-val.yellow { color:var(--accent); }
  .grade-banner { font-size:1rem; font-weight:700; padding:0.6rem 1.5rem; border-radius:8px; text-align:center; margin-bottom:1.5rem; width:100%; }
  .review-list { width:100%; margin-bottom:1.5rem; }
  .review-item { background:var(--card2); border-radius:10px; padding:0.9rem 1rem; margin-bottom:8px; font-size:0.85rem; display:flex; gap:10px; align-items:flex-start; }
  /* ── Full Review Page ── */
  .review-full-card { background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:14px; padding:1.1rem 1.2rem; margin-bottom:1rem; }
  .review-full-num { font-size:0.72rem; color:var(--muted); font-weight:700; letter-spacing:1px; text-transform:uppercase; margin-bottom:0.3rem; }
  .review-full-q { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:0.75rem; line-height:1.4; }
  .review-full-opts { display:flex; flex-direction:column; gap:6px; margin-bottom:0.75rem; }
  .review-opt { padding:0.5rem 0.85rem; border-radius:8px; font-size:0.88rem; display:flex; align-items:center; gap:8px; }
  .review-opt.correct  { background:rgba(74,222,128,0.15); border:1.5px solid #4ade80; color:#4ade80; }
  .review-opt.wrong    { background:rgba(248,113,113,0.15); border:1.5px solid #f87171; color:#f87171; }
  .review-opt.neutral  { background:var(--card2); border:3px solid rgba(255,255,255,0.55); color:var(--muted); }
  .review-full-exp { font-size:0.83rem; color:var(--muted); line-height:1.5; background:var(--card2); border-radius:8px; padding:0.65rem 0.85rem; border-left:3px solid var(--accent); }
  .review-full-badge { display:inline-block; font-size:0.7rem; font-weight:700; padding:2px 8px; border-radius:20px; margin-bottom:0.5rem; }
  .review-full-badge.correct { background:rgba(74,222,128,0.2); color:#4ade80; }
  .review-full-badge.wrong   { background:rgba(248,113,113,0.2); color:#f87171; }
  .review-full-badge.timeout { background:rgba(250,204,21,0.2);  color:#facc15; }
  .review-icon { font-size:1rem; flex-shrink:0; margin-top:2px; }
  .review-q { color:var(--body-text); margin-bottom:4px; font-weight:500; }
  .review-a { color:var(--muted); font-size:0.8rem; }
  .review-correct { color:#4ade80; }
  .review-wrong   { color:#f87171; }
  .section-label { font-size:0.75rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted); margin-bottom:0.6rem; align-self:flex-start; }
  .mode-label { font-size:0.7rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:3px 10px; border-radius:20px; margin-bottom:1.5rem; }
  .mode-label.ncaa { background:rgba(245,197,24,0.12); color:#f5c518; border:1px solid rgba(245,197,24,0.3); }
  .mode-label.nfl  { background:rgba(212,0,31,0.12);   color:#d4001f; border:1px solid rgba(212,0,31,0.3); }
  .mode-label.nfhs { background:rgba(59,130,246,0.12);  color:#3b82f6; border:1px solid rgba(59,130,246,0.3); }
  .mode-label.uil  { background:rgba(191,87,0,0.12);    color:#bf5700; border:1px solid rgba(191,87,0,0.3); }

  /* ── LEADERBOARD ── */
  .lb-header { display:flex; justify-content:space-between; align-items:center; width:100%; margin-bottom:1.25rem; }
  .lb-title  { font-size:1.4rem; font-weight:800; color:var(--accent); }
  .lb-filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:1rem; width:100%; }
  .lb-filter-btn { padding:5px 14px; border-radius:20px; border:3px solid rgba(255,255,255,0.55); background:transparent; color:var(--muted); font-size:0.78rem; font-weight:700; cursor:pointer; transition:all 0.15s; font-family:inherit; }
  .lb-filter-btn:hover { border-color:var(--border2); color:var(--text); }
  .lb-filter-btn.active { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }
  .lb-table { width:100%; border-collapse:collapse; }
  .lb-table th { font-size:0.7rem; text-transform:uppercase; letter-spacing:1px; color:var(--muted); padding:0 0.75rem 0.6rem; text-align:left; font-weight:700; }
  .lb-table th:last-child { text-align:right; }
  .lb-table td { padding:0.65rem 0.75rem; font-size:0.88rem; color:var(--body-text); border-top:1px solid var(--border); }
  .lb-table td:last-child { text-align:right; }
  .lb-rank   { font-weight:800; color:var(--accent); width:2rem; }
  .lb-rank.gold   { color:#f5c518; }
  .lb-rank.silver { color:#aab8cc; }
  .lb-rank.bronze { color:#cd7f32; }
  .lb-name   { font-weight:600; color:var(--text); max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .lb-mode-badge { font-size:0.68rem; font-weight:700; padding:2px 8px; border-radius:10px; white-space:nowrap; }
  .lb-mode-badge.ncaa { background:rgba(245,197,24,0.12); color:#f5c518; }
  .lb-mode-badge.nfl  { background:rgba(212,0,31,0.12);   color:#d4001f; }
  .lb-mode-badge.nfhs { background:rgba(59,130,246,0.12);  color:#3b82f6; }
  .lb-mode-badge.uil  { background:rgba(191,87,0,0.12);    color:#bf5700; }
  .lb-pct  { font-weight:800; font-size:1rem; }
  .lb-pct.green  { color:#4ade80; }
  .lb-pct.yellow { color:#f5c518; }
  .lb-pct.red    { color:#f87171; }
  .lb-empty { text-align:center; color:var(--muted); padding:2.5rem 0; font-size:0.9rem; }
  .lb-date  { font-size:0.72rem; color:var(--muted); }
  .lb-diff-badge { font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:10px; }
  .lb-diff-badge.easy   { background:rgba(34,197,94,0.12);  color:#4ade80; }
  .lb-diff-badge.medium { background:rgba(245,197,24,0.12); color:#f5c518; }
  .lb-diff-badge.hard   { background:rgba(239,68,68,0.12);  color:#f87171; }
  .lb-diff-badge.all    { background:rgba(136,153,187,0.12);color:#8899bb; }
  .lb-clear { font-size:0.75rem; color:var(--muted); background:none; border:3px solid rgba(255,255,255,0.55); border-radius:8px; padding:4px 12px; cursor:pointer; font-family:inherit; transition:all 0.15s; }
  .lb-clear:hover { border-color:#f87171; color:#f87171; }

  /* ── LAUNCH SCREEN ── */
  .launch-wrap { width:100%; max-width:480px; display:flex; flex-direction:column; align-items:center; }
  .launch-logo { font-size:3.8rem; font-weight:900; letter-spacing:-2px; color:var(--outer-text); line-height:1; margin-bottom:0.15rem; }
  .launch-top-row { display:flex; justify-content:space-between; align-items:flex-start; width:100%; margin-bottom:2rem; }
  .launch-top-row .launch-logo { margin-bottom:0; }
  .settings-icon-btn { background:none; border:none; padding:8px 10px; cursor:pointer; font-size:1.2rem; color:var(--muted); transition:all 0.15s; line-height:1; }
  .settings-icon-btn:hover { color:var(--accent); }

  /* Settings modal */
  .modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:100; align-items:center; justify-content:center; padding:1rem; }
  .modal-overlay.open { display:flex; }
  .modal-box { background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:20px; padding:1.75rem; width:100%; max-width:400px; max-height:90vh; overflow-y:auto; }
  .modal-title { font-size:1.15rem; font-weight:800; color:var(--text); margin-bottom:1.5rem; display:flex; justify-content:space-between; align-items:center; }
  .modal-close { background:none; border:none; color:var(--muted); font-size:1.3rem; cursor:pointer; padding:0; line-height:1; }
  .modal-close:hover { color:var(--text); }
  .setting-row { display:flex; justify-content:space-between; align-items:center; padding:0.85rem 0; border-bottom:1px solid var(--border); }
  .setting-row:last-of-type { border-bottom:none; }
  .setting-info { flex:1; }
  .setting-name { font-size:0.92rem; font-weight:600; color:var(--text); }
  .setting-desc { font-size:0.75rem; color:var(--muted); margin-top:2px; }
  .toggle-switch { position:relative; width:44px; height:24px; flex-shrink:0; }
  .toggle-switch input { opacity:0; width:0; height:0; position:absolute; }
  .toggle-track { position:absolute; inset:0; background:var(--border); border-radius:24px; cursor:pointer; transition:background 0.2s; }
  .toggle-track::before { content:""; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform 0.2s; }
  .toggle-switch input:checked + .toggle-track { background:var(--accent); }
  .toggle-switch input:checked + .toggle-track::before { transform:translateX(20px); }
  .setting-select { background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:8px; padding:5px 10px; color:var(--text); font-size:0.85rem; font-family:inherit; cursor:pointer; outline:none; }
  .setting-select:focus { border-color:var(--accent); }
  /* color picker button */
  .color-pick-btn { display:flex; align-items:center; gap:10px; width:100%; padding:0.6rem 0.85rem; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:10px; cursor:pointer; color:var(--text); font-size:0.88rem; font-weight:600; transition:border-color 0.15s; }
  .color-pick-btn:hover { border-color:var(--accent); }
  .color-pick-dot { width:22px; height:22px; border-radius:50%; border:2px solid rgba(255,255,255,0.25); flex-shrink:0; display:inline-block; }
  /* color popup */
  .color-pop-overlay { position:fixed; inset:0; z-index:3000; display:none; }
  .color-pop-overlay.open { display:block; }
  .color-pop-box { position:fixed; background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:12px; padding:0.75rem; box-shadow:0 8px 40px rgba(0,0,0,0.7); width:220px; max-width:92vw; }
  .color-pop-title { font-size:0.68rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); margin-bottom:0.6rem; }
  .color-pop-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:5px; }
  .color-pop-swatch { width:100%; aspect-ratio:1; border-radius:5px; cursor:pointer; border:2px solid rgba(255,255,255,0.45); transition:transform 0.12s,border-color 0.12s; padding:0; }
  .color-pop-swatch:hover { transform:scale(1.15); }
  .color-pop-swatch.sel { border-color:#fff; box-shadow:0 0 0 2px rgba(255,255,255,0.6); }
  .color-pop-name { display:none; }
  .launch-sub  { font-size:1rem; color:var(--muted); margin-bottom:2rem; letter-spacing:0.5px; }
  .launch-card { background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:20px; padding:2rem 2rem 1.75rem; width:100%; }
  #screen-profile {
    --accent:#f54927; --accent-dim:rgba(245,73,39,0.12); --accent-border:rgba(245,73,39,0.25);
  }
  .field-label { font-size:0.72rem; text-transform:uppercase; letter-spacing:1.2px; color:var(--muted); font-weight:700; margin-bottom:6px; }
  .field-group { margin-bottom:1.25rem; }
  /* ── Password Eye Toggle ── */
  .password-wrap { position:relative; width:100%; }
  .password-wrap .launch-input { padding-right:2.8rem; }
  .eye-btn { position:absolute; right:0.85rem; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:1.1rem; color:var(--muted); padding:0; line-height:1; }
  .eye-btn:focus { outline:none; }
  /* ── Profile Avatar ── */
  .profile-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
  .profile-header .launch-section { margin:0; }
  .avatar-wrap { position:relative; width:72px; height:72px; flex-shrink:0; }
  .avatar-img { width:72px; height:72px; border-radius:50%; object-fit:cover; border:2.5px solid var(--accent); background:var(--card2); display:block; }
  .avatar-placeholder { width:72px; height:72px; border-radius:50%; border:2.5px dashed var(--border); background:var(--card2); display:flex; align-items:center; justify-content:center; font-size:1.8rem; cursor:pointer; }
  .avatar-edit-btn { position:absolute; bottom:0; right:0; width:22px; height:22px; border-radius:50%; background:var(--accent); border:none; cursor:pointer; font-size:0.7rem; display:flex; align-items:center; justify-content:center; color:#000; font-weight:700; }
  /* ── Color Swatch Picker ── */
  .swatch-picker { position:relative; width:100%; }
  .swatch-btn { width:100%; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:10px; padding:0.75rem 1rem; font-size:0.95rem; color:var(--text); display:flex; align-items:center; gap:10px; cursor:pointer; transition:border-color 0.15s; font-family:inherit; }
  .swatch-btn:focus { outline:none; border-color:var(--accent); }
  .swatch-btn .swatch-dot { width:22px; height:22px; border-radius:50%; border:2px solid rgba(255,255,255,0.25); flex-shrink:0; }
  .swatch-btn .swatch-arrow { margin-left:auto; opacity:0.5; font-size:0.8rem; }
  .swatch-dropdown { display:none; position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:12px; padding:8px; z-index:200; max-height:220px; overflow-y:auto; box-shadow:0 8px 30px rgba(0,0,0,0.4); }
  .swatch-dropdown.open { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
  .swatch-option { display:flex; flex-direction:column; align-items:center; gap:4px; padding:6px 4px; border-radius:8px; cursor:pointer; transition:background 0.1s; }
  .swatch-option:hover { background:rgba(255,255,255,0.08); }
  .swatch-option .swatch-dot { width:28px; height:28px; border-radius:50%; border:2px solid rgba(255,255,255,0.2); }
  .swatch-option span { font-size:0.62rem; color:var(--muted); text-align:center; line-height:1.2; }
  .launch-input { width:100%; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:10px; padding:0.75rem 1rem; font-size:0.95rem; color:var(--text); outline:none; transition:border-color 0.15s; font-family:inherit; }
  .launch-input:focus { border-color:var(--accent); }
  .launch-input::placeholder { color:var(--muted); }

  .launch-section { font-size:0.72rem; text-transform:uppercase; letter-spacing:1.2px; color:var(--muted); font-weight:700; margin:1.25rem 0 0.6rem; }
  .launch-mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:0; }
  .launch-mode-btn { border-radius:12px; border:3px solid rgba(255,255,255,0.55); padding:0.85rem 0.75rem; text-align:center; cursor:pointer; transition:border-color 0.15s,background 0.15s; background:var(--card2); }
  .launch-mode-btn .lm-icon { font-size:1.5rem; margin-bottom:3px; }
  .launch-mode-btn .lm-name { font-size:0.82rem; font-weight:700; }
  .launch-mode-btn .lm-sub  { font-size:0.67rem; color:var(--muted); margin-top:1px; }
  .launch-mode-btn.ncaa:hover,.launch-mode-btn.ncaa.sel { border-color:#f5c518; background:rgba(245,197,24,0.08); }
  .launch-mode-btn.nfl:hover,.launch-mode-btn.nfl.sel   { border-color:#d4001f; background:rgba(212,0,31,0.08); }
  .launch-mode-btn.nfhs:hover,.launch-mode-btn.nfhs.sel { border-color:#3b82f6; background:rgba(59,130,246,0.08); }
  .launch-mode-btn.uil:hover,.launch-mode-btn.uil.sel   { border-color:#bf5700; background:rgba(191,87,0,0.08); }
  .launch-mode-btn.ncaa .lm-name { color:#f5c518; }
  .launch-mode-btn.nfl  .lm-name { color:#d4001f; }
  .launch-mode-btn.nfhs .lm-name { color:#3b82f6; }
  .launch-mode-btn.uil  .lm-name { color:#bf5700; }

  .toggle-row { display:flex; gap:8px; }
  .toggle-btn { flex:1; padding:0.65rem 0.5rem; border-radius:9px; border:3px solid rgba(255,255,255,0.55); background:var(--card2); color:var(--muted); cursor:pointer; font-size:0.85rem; font-weight:700; text-align:center; transition:all 0.15s; font-family:inherit; }
  .toggle-btn:hover { border-color:var(--border2); color:var(--text); }
  .toggle-btn.sel { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }

  .diff-toggle-row { display:flex; gap:8px; }
  .diff-toggle-btn { flex:1; padding:0.6rem 0.25rem; border-radius:9px; border:3px solid rgba(255,255,255,0.55); background:var(--card2); color:var(--muted); cursor:pointer; font-size:0.8rem; font-weight:700; text-align:center; transition:all 0.15s; font-family:inherit; }
  .diff-toggle-btn:hover { border-color:var(--border2); color:var(--text); }
  .diff-toggle-btn.sel { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }

  .launch-err { font-size:0.82rem; color:#f87171; text-align:center; min-height:1.2em; margin-top:0.5rem; }
  .launch-go  { margin-top:1.25rem; }

  .welcome-badge { font-size:0.8rem; padding:4px 14px; border-radius:20px; background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); font-weight:600; margin-bottom:1rem; }

  /* ── LOGIN SCREEN ── */
  #screen-login { position:relative; min-height:100vh; width:100%; display:none; align-items:center; justify-content:center; padding:1rem; overflow:hidden; }
  #screen-login.active { display:flex; }
  #login-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .login-overlay { position:absolute; inset:0; background:rgba(0,0,0,0.55); z-index:1; }
  .login-box { position:relative; z-index:2; width:100%; max-width:400px; display:flex; flex-direction:column; align-items:center; }
  .login-title { display:flex; flex-direction:column; align-items:center; margin-bottom:0.1rem; }
  .login-title .logo { font-size:8rem; }
  .fbiq-logo-svg { filter:drop-shadow(0 4px 24px rgba(0,0,0,0.7)); }
  .login-sub { font-size:1rem; color:rgba(255,255,255,0.7); margin-bottom:2rem; text-align:center; letter-spacing:4px; text-transform:uppercase; font-weight:700; text-shadow:0 2px 12px rgba(0,0,0,0.6); }
  .login-card { background:rgba(0,0,0,0.88); backdrop-filter:blur(12px); border:3px solid rgba(255,255,255,0.55); border-radius:20px; padding:2rem; width:100%; }
  #screen-login .launch-input { background:#000000; }
  .login-err { font-size:0.82rem; color:#f87171; text-align:center; min-height:1.2em; margin-top:0.5rem; }

  /* ── ADMIN ── */
  #screen-admin { padding:1.5rem 1rem 3rem; max-width:480px; margin:0 auto; }
  .admin-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; width:100%; }
  .admin-title { font-size:1.9rem; font-weight:800; color:var(--accent); letter-spacing:1px; }
  .admin-tabs { display:flex; gap:8px; margin-bottom:1.25rem; }
  .admin-tab { flex:1; padding:0.65rem 0; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:10px; color:var(--muted); font-size:0.85rem; font-weight:700; cursor:pointer; text-align:center; transition:all 0.15s; }
  .admin-tab.active { background:var(--accent); color:#000; border-color:var(--accent); }
  .admin-panel { display:none; }
  .admin-panel.active { display:block; }
  .admin-section-title { font-size:0.75rem; font-weight:700; color:var(--muted); letter-spacing:2px; text-transform:uppercase; margin:1.25rem 0 0.5rem; }
  .admin-card { background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:14px; padding:1.25rem; margin-bottom:1rem; }
  .user-row { display:flex; align-items:center; justify-content:space-between; padding:0.6rem 0; border-bottom:1px solid var(--border); }
  .user-row:last-child { border-bottom:none; }
  .user-name { font-weight:600; font-size:0.95rem; }
  .user-role { font-size:0.75rem; color:var(--muted); margin-top:2px; }
  .user-del { background:transparent; border:1px solid #ef4444; color:#ef4444; border-radius:8px; padding:0.3rem 0.7rem; font-size:0.78rem; cursor:pointer; }
  .user-del:hover { background:#ef4444; color:#fff; }
  .admin-input-row { display:flex; flex-direction:column; gap:8px; margin-top:0.75rem; }
  .admin-input { width:100%; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:8px; padding:0.6rem 0.85rem; color:var(--text); font-size:0.9rem; }
  .admin-input:focus { outline:none; border-color:var(--accent); }
  .admin-add-btn { width:100%; background:var(--accent); color:#000; border:none; border-radius:8px; padding:0.7rem 1rem; font-weight:700; cursor:pointer; }
  .db-filter-row { display:flex; gap:8px; margin-bottom:0.75rem; flex-wrap:wrap; }
  .db-level-btn { padding:0.4rem 0.9rem; border-radius:8px; border:3px solid rgba(255,255,255,0.55); background:var(--card2); color:var(--muted); font-size:0.82rem; font-weight:700; cursor:pointer; }
  .db-level-btn.active { background:var(--accent); color:#000; border-color:var(--accent); }
  .db-search-row { margin-bottom:0.75rem; }
  .db-search { width:100%; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:8px; padding:0.4rem 0.75rem; color:var(--text); font-size:0.85rem; }
  .db-search:focus { outline:none; border-color:var(--accent); }
  .db-count { font-size:0.8rem; color:var(--muted); margin-bottom:0.5rem; }
  .diff-pill { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; font-size:0.68rem; font-weight:800; flex-shrink:0; }
  .diff-pill.easy   { background:rgba(34,197,94,0.15); color:#22c55e; }
  .diff-pill.medium { background:rgba(251,191,36,0.15); color:#fbbf24; }
  .diff-pill.hard   { background:rgba(239,68,68,0.15);  color:#ef4444; }
  .db-row { padding:0.65rem 0; border-bottom:1px solid var(--border); }
  .db-row:last-child { border-bottom:none; }
  .db-row-meta { display:flex; align-items:center; gap:8px; margin-bottom:0.35rem; font-size:0.78rem; }
  .db-row-cat { color:var(--muted); }
  .db-row-q { font-size:0.88rem; line-height:1.4; margin-bottom:0.3rem; }
  .db-row-ans { font-size:0.82rem; color:#22c55e; margin-bottom:0.4rem; }
  .db-row-actions { display:flex; gap:6px; }
  .color-preview-row { display:flex; gap:8px; flex-wrap:wrap; margin-top:0.5rem; }
  .admin-save-btn { width:100%; margin-top:1rem; padding:0.8rem; background:var(--accent); color:#000; border:none; border-radius:10px; font-weight:800; font-size:0.95rem; cursor:pointer; }
  .db-action-btn { padding:2px 8px; border-radius:6px; font-size:0.72rem; font-weight:700; cursor:pointer; border:none; margin-left:4px; }
  .db-edit-btn   { background:rgba(245,197,24,0.15); color:#f5c518; border:1px solid rgba(245,197,24,0.3); }
  .db-del-btn    { background:rgba(239,68,68,0.12); color:#ef4444; border:1px solid rgba(239,68,68,0.3); }
  .db-edit-btn:hover { background:rgba(245,197,24,0.3); }
  .db-del-btn:hover  { background:rgba(239,68,68,0.25); }
  .db-add-btn { padding:0.5rem 1.1rem; background:var(--accent); color:#000; border:none; border-radius:8px; font-weight:700; font-size:0.85rem; cursor:pointer; margin-bottom:0.75rem; }
  /* Question edit modal */
  #q-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:9999; align-items:center; justify-content:center; padding:1rem; }
  #q-modal-overlay.open { display:flex; }
  #q-modal-box { background:var(--card); border:3px solid rgba(255,255,255,0.55); border-radius:18px; padding:1.75rem; width:100%; max-width:560px; max-height:90vh; overflow-y:auto; }
  .q-modal-title { font-size:1.1rem; font-weight:800; color:var(--accent); margin-bottom:1.25rem; }
  .q-field-label { font-size:0.75rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; margin-top:0.85rem; }
  .q-field-input { width:100%; background:var(--card2); border:3px solid rgba(255,255,255,0.55); border-radius:8px; padding:0.55rem 0.8rem; color:var(--text); font-size:0.88rem; box-sizing:border-box; }
  .q-field-input:focus { outline:none; border-color:var(--accent); }
  textarea.q-field-input { resize:vertical; min-height:72px; font-family:inherit; }
  .q-opt-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:4px; }
  .q-modal-btns { display:flex; gap:10px; margin-top:1.25rem; }
  .q-modal-save { flex:1; padding:0.75rem; background:var(--accent); color:#000; border:none; border-radius:10px; font-weight:800; cursor:pointer; }
  .q-modal-cancel { padding:0.75rem 1.25rem; background:transparent; color:var(--muted); border:3px solid rgba(255,255,255,0.55); border-radius:10px; font-weight:600; cursor:pointer; }

  /* ── FLASHCARDS ── */
  .flip-card-scene { width:100%; max-width:380px; aspect-ratio:9/13; max-height:48vh; perspective:1600px; cursor:pointer; user-select:none; margin:0 auto; }
  .flip-card-inner {
    position:relative; width:100%; height:100%;
    transition:transform 0.6s cubic-bezier(.4,.2,.2,1);
    transform-style:preserve-3d;
  }
  .flip-card-inner.flipped { transform:rotateY(180deg); }
  .flip-card-face {
    position:absolute; inset:0; backface-visibility:hidden;
    background:var(--card); border:3px solid var(--accent); border-radius:20px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:1.5rem 1.5rem; text-align:center;
  }
  .flip-card-back { transform:rotateY(180deg); }
  .flip-card-label { font-size:0.78rem; font-weight:800; letter-spacing:2px; color:var(--accent); margin-bottom:1.25rem; }
  .flip-card-text { font-size:1.5rem; font-weight:700; line-height:1.4; color:var(--text); }
  .flip-card-answer { font-size:1.7rem; font-weight:800; line-height:1.3; color:var(--accent); margin-bottom:1rem; }
  .flip-card-exp { font-size:0.95rem; line-height:1.5; color:var(--body-text); max-height:140px; overflow-y:auto; }
  .flip-card-hint { position:absolute; bottom:1rem; font-size:0.75rem; color:var(--muted); letter-spacing:0.5px; }
  @media (max-width: 600px) { .flip-card-text { font-size:1.25rem; } .flip-card-answer { font-size:1.4rem; } }
