﻿:root {
      color-scheme: dark;
      --bg: #0d1117;
      --panel: #151b23;
      --panel-strong: #1b2430;
      --panel-soft: #101720;
      --line: #2b3544;
      --text: #edf2f7;
      --muted: #96a3b6;
      --accent: #38bdf8;
      --accent-dark: #0f5f82;
      --good: #22c55e;
      --good-soft: rgba(34, 197, 94, 0.16);
      --bad: #ef4444;
      --bad-soft: rgba(239, 68, 68, 0.16);
      --warn: #f59e0b;
      --shadow: 0 18px 50px rgba(0, 0, 0, 0.32);
      --radius: 8px;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }

    :root[data-theme="light"] {
      color-scheme: light;
      --bg: #e8edf4;
      --panel: #f8fafc;
      --panel-strong: #eef3f8;
      --panel-soft: #f3f6fa;
      --line: #b9c4d4;
      --text: #172033;
      --muted: #627187;
      --accent: #0369a1;
      --accent-dark: #075985;
      --good: #137a3a;
      --good-soft: #dff7e8;
      --bad: #c81e1e;
      --bad-soft: #fde3e3;
      --warn: #a16207;
      --shadow: 0 18px 44px rgba(30, 41, 59, 0.16);
    }

    :root[data-theme="pink"] {
      color-scheme: dark;
      --bg: #160711;
      --panel: #24101d;
      --panel-strong: #33152a;
      --panel-soft: #1d0b17;
      --line: #5d2a4e;
      --text: #fff3fb;
      --muted: #d8a9c8;
      --accent: #ff5db8;
      --accent-dark: #b31272;
      --good: #35d07f;
      --good-soft: rgba(53, 208, 127, 0.18);
      --bad: #ff4d6d;
      --bad-soft: rgba(255, 77, 109, 0.17);
      --warn: #fbbf24;
      --shadow: 0 18px 52px rgba(82, 13, 58, 0.42);
    }

    * { box-sizing: border-box; }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      min-height: 100vh;
      background:
        radial-gradient(circle at top left, rgba(56, 189, 248, 0.12), transparent 34rem),
        linear-gradient(180deg, #0d1117 0%, #0a0e13 100%);
      color: var(--text);
      line-height: 1.5;
      overflow-x: hidden;
    }

    body.lightbox-open {
      overflow: hidden;
    }

    button,
    input,
    select,
    textarea {
      font: inherit;
    }

    .app-shell {
      width: min(1120px, calc(100% - 32px));
      margin: 0 auto;
      padding: 28px 0 48px;
    }

    .app-shell[hidden],
    .account-gate[hidden] {
      display: none !important;
    }

    .account-gate {
      min-height: 100vh;
      display: grid;
      place-items: center;
      padding: 24px;
    }

    .account-card {
      width: min(460px, 100%);
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(21, 27, 35, 0.96);
      box-shadow: var(--shadow);
    }

    .account-card h1 {
      margin-bottom: 8px;
    }

    .account-card p {
      margin: 0 0 18px;
      color: var(--muted);
    }

    .account-form {
      display: grid;
      gap: 12px;
    }

    .account-field {
      width: 100%;
      min-height: 44px;
      padding: 0 12px;
      color: var(--text);
      background: #0f151d;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      outline: none;
    }

    .account-field:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.15);
    }

    .account-actions,
    .user-panel {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      align-items: center;
    }

    .user-panel {
      justify-content: flex-end;
      color: var(--muted);
      font-size: 0.94rem;
    }

    .topbar {
      position: relative;
      margin: 0 0 22px;
      padding: 16px;
      background: rgba(13, 17, 23, 0.78);
      border: 1px solid rgba(43, 53, 68, 0.82);
      border-radius: var(--radius);
      box-shadow: 0 14px 42px rgba(0, 0, 0, 0.24);
    }

    .topbar-inner {
      width: min(1120px, 100%);
      margin: 0 auto;
    }

    .title-row {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 16px;
    }

    h1 {
      margin: 0;
      font-size: clamp(1.55rem, 2.2vw, 2.35rem);
      letter-spacing: 0;
    }

    .subtitle {
      margin: 4px 0 0;
      color: var(--muted);
      font-size: 0.96rem;
    }

    .stats {
      display: grid;
      grid-template-columns: repeat(4, minmax(104px, 1fr));
      gap: 10px;
      margin-bottom: 14px;
    }

    .stat {
      min-height: 72px;
      padding: 12px 14px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(21, 27, 35, 0.9);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    }

    .stat-label {
      display: block;
      color: var(--muted);
      font-size: 0.78rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }

    .stat-value {
      display: block;
      margin-top: 4px;
      font-size: 1.5rem;
      font-weight: 800;
    }

    .stat.good .stat-value { color: var(--good); }
    .stat.bad .stat-value { color: var(--bad); }
    .stat.accent .stat-value { color: var(--accent); }

    .controls {
      display: grid;
      gap: 12px;
    }

    .search-row {
      display: block;
    }

    .more-control-grid .control-button {
      width: 100%;
      min-width: 0;
      min-height: 54px;
      white-space: normal;
      overflow-wrap: break-word;
      line-height: 1.2;
      text-align: center;
    }

    .more-controls {
      position: fixed;
      right: 24px;
      bottom: 24px;
      z-index: 30;
      width: min(340px, calc(100vw - 32px));
      max-height: calc(100vh - 48px);
      overflow: auto;
      border: 1px solid rgba(43, 53, 68, 0.84);
      border-radius: var(--radius);
      background: rgba(16, 24, 34, 0.98);
      box-shadow: var(--shadow);
    }

    .more-controls:not([open]) {
      width: 52px;
      height: 52px;
      border-radius: 999px;
      overflow: hidden;
    }

    .more-controls summary {
      min-height: 52px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding: 0 14px;
      color: var(--muted);
      cursor: pointer;
      font-size: 0.9rem;
      font-weight: 800;
      letter-spacing: 0.03em;
      list-style: none;
    }

    .more-controls:not([open]) summary {
      min-height: 52px;
      justify-content: center;
      padding: 0;
    }

    .more-controls:not([open]) summary span {
      display: none;
    }

    .more-controls summary::-webkit-details-marker {
      display: none;
    }

    .more-controls summary::after {
      content: "";
      display: inline-grid;
      place-items: center;
      width: 24px;
      height: 24px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background:
        linear-gradient(var(--accent), var(--accent)) center / 10px 2px no-repeat,
        linear-gradient(var(--accent), var(--accent)) center / 2px 10px no-repeat,
        var(--panel-soft);
      flex: 0 0 auto;
    }

    .more-controls[open] summary::after {
      background:
        linear-gradient(var(--accent), var(--accent)) center / 10px 2px no-repeat,
        var(--panel-soft);
    }

    .more-controls:not([open]) summary::after {
      width: 34px;
      height: 34px;
    }

    .menu-title {
      padding: 14px 14px 8px;
      color: var(--muted);
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .more-control-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 12px;
      padding: 0 14px 14px;
    }

    .menu-group {
      display: grid;
      gap: 8px;
      padding: 12px;
      border: 1px solid rgba(43, 53, 68, 0.76);
      border-radius: var(--radius);
      background: rgba(13, 17, 23, 0.42);
    }

    .menu-group h3 {
      margin: 0 0 2px;
      color: var(--muted);
      font-size: 0.74rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .search-field {
      width: 100%;
      min-height: 54px;
      padding: 0 14px;
      color: var(--text);
      background: #0f151d;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      outline: none;
      transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
    }

    .search-field:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.15);
      background: #101923;
    }

    .control-button {
      min-height: 44px;
      padding: 0 14px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      color: var(--text);
      background: var(--panel-strong);
      cursor: pointer;
      transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, color 150ms ease;
      white-space: nowrap;
    }

    .control-button:hover {
      transform: translateY(-1px);
      border-color: rgba(56, 189, 248, 0.72);
      background: #202b38;
    }

    .control-button:active {
      transform: translateY(0);
    }

    .control-button.primary {
      border-color: rgba(56, 189, 248, 0.55);
      background: rgba(56, 189, 248, 0.14);
      color: #dff7ff;
    }

    .control-button.danger {
      border-color: rgba(239, 68, 68, 0.58);
      background: rgba(239, 68, 68, 0.14);
      color: #ffdede;
    }

    .control-button:disabled {
      cursor: not-allowed;
      opacity: 0.55;
      transform: none;
    }

    .back-to-top {
      position: fixed;
      right: 24px;
      bottom: 24px;
      z-index: 20;
      display: grid;
      place-items: center;
      width: 48px;
      height: 48px;
      border: 1px solid rgba(56, 189, 248, 0.55);
      border-radius: 50%;
      color: var(--text);
      background: rgba(27, 36, 48, 0.94);
      box-shadow: var(--shadow);
      cursor: pointer;
      opacity: 0;
      pointer-events: none;
      transform: translateY(10px);
      transition: opacity 160ms ease, transform 160ms ease, border-color 160ms ease, background 160ms ease;
    }

    .back-to-top.is-visible {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }

    .back-to-top:hover {
      border-color: rgba(56, 189, 248, 0.85);
      background: #202b38;
      transform: translateY(-2px);
    }

    .back-to-top:active {
      transform: translateY(0);
    }

    .back-to-top[hidden] {
      display: none !important;
    }

    .settings-panel[hidden] {
      display: none !important;
    }

    .settings-panel {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 12px;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(16, 24, 34, 0.72);
    }

    .settings-field {
      display: grid;
      gap: 6px;
      min-width: 180px;
      color: var(--muted);
      font-size: 0.9rem;
    }

    .settings-select {
      min-height: 40px;
      padding: 0 10px;
      color: var(--text);
      background: #0f151d;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      outline: none;
    }

    .status-line {
      min-height: 24px;
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 0.94rem;
    }

    .exam-history[hidden] {
      display: none !important;
    }

    .exam-history {
      margin-top: 12px;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(16, 24, 34, 0.72);
    }

    .exam-history-toggle {
      width: 100%;
      min-height: 40px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 0;
      border: 0;
      color: var(--text);
      background: transparent;
      cursor: pointer;
      text-align: left;
    }

    .exam-history-toggle span {
      color: var(--muted);
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .exam-history-toggle strong {
      color: var(--accent);
      font-size: 0.92rem;
      font-weight: 800;
    }

    .exam-history-list {
      display: grid;
      gap: 8px;
      margin-top: 10px;
    }

    .exam-history-item {
      display: grid;
      grid-template-columns: minmax(120px, 0.8fr) minmax(94px, 0.6fr) minmax(130px, 1fr);
      gap: 10px;
      align-items: center;
      min-height: 38px;
      padding: 8px 10px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      color: var(--text);
      background: var(--panel-soft);
    }

    .exam-history-item.passed strong {
      color: var(--good);
    }

    .exam-history-item.failed strong {
      color: var(--bad);
    }

    .question-list {
      display: grid;
      gap: 16px;
      min-width: 0;
    }

    .question-card {
      width: 100%;
      min-width: 0;
      max-width: 100%;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(21, 27, 35, 0.94);
      box-shadow: var(--shadow);
      padding: 18px;
      outline: none;
      transform: translateY(0);
      animation: cardIn 240ms ease both;
      transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
    }

    .question-card:hover,
    .question-card.active {
      border-color: rgba(56, 189, 248, 0.6);
      transform: translateY(-2px);
    }

    .question-card.active {
      box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.13), var(--shadow);
    }

    .question-card.correct {
      border-color: rgba(34, 197, 94, 0.55);
    }

    .question-card.wrong {
      border-color: rgba(239, 68, 68, 0.55);
    }

    .card-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 12px;
      color: var(--muted);
      font-size: 0.86rem;
    }

    .tag {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 0 10px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #111923;
      color: #c8d3e1;
    }

    .card-meta-left,
    .card-meta-right {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
    }

    .mark-button {
      min-height: 30px;
      padding: 0 10px;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: #c8d3e1;
      background: #111923;
      cursor: pointer;
      transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
    }

    .mark-button:hover {
      border-color: rgba(245, 158, 11, 0.72);
      background: rgba(245, 158, 11, 0.12);
    }

    .mark-button.marked {
      border-color: rgba(245, 158, 11, 0.85);
      background: rgba(245, 158, 11, 0.18);
      color: #ffe7b3;
    }

    .question-card h2 {
      margin: 0 0 14px;
      font-size: clamp(1rem, 1.2vw, 1.18rem);
      line-height: 1.48;
      letter-spacing: 0;
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .question-card h2 span,
    .answer-button span {
      color: inherit !important;
      background: transparent !important;
    }

    .prompt-details {
      margin: -4px 0 14px;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(16, 24, 34, 0.68);
      color: #d7e2ef;
      overflow-wrap: anywhere;
    }

    .prompt-details h3,
    .prompt-details p {
      margin: 0;
      font-size: 0.98rem;
      line-height: 1.55;
      letter-spacing: 0;
    }

    .prompt-details h3 + h3,
    .prompt-details p + p {
      margin-top: 8px;
    }

    .media {
      margin: 10px 0 14px;
      overflow-x: auto;
      overflow-y: hidden;
      border-radius: var(--radius);
    }

    .media figure,
    .review-panel figure {
      width: 100% !important;
      max-width: 100%;
      margin: 0;
    }

    .media a,
    .review-panel a {
      display: block;
      max-width: 100%;
    }

    .media img {
      width: auto;
      max-width: 100%;
      height: auto;
      display: block;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #0f151d;
      cursor: zoom-in;
    }

    .media figcaption {
      margin-top: 6px;
      color: var(--muted);
      font-size: 0.92rem;
      overflow-wrap: anywhere;
    }

    .image-lightbox[hidden] {
      display: none !important;
    }

    .image-lightbox {
      position: fixed;
      inset: 0;
      z-index: 60;
      display: grid;
      grid-template-rows: minmax(0, 1fr) auto;
      place-items: center;
      gap: 12px;
      padding: 22px;
      background: rgba(5, 9, 14, 0.86);
      backdrop-filter: blur(4px);
    }

    .lightbox-close {
      position: fixed;
      top: 16px;
      right: 16px;
      z-index: 61;
      width: 42px;
      height: 42px;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: var(--text);
      background: rgba(27, 36, 48, 0.96);
      cursor: pointer;
      font-size: 1.55rem;
      line-height: 1;
    }

    .image-lightbox img {
      max-width: min(100%, 1200px);
      max-height: calc(100vh - 110px);
      width: auto;
      height: auto;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #ffffff;
      box-shadow: var(--shadow);
      object-fit: contain;
    }

    .lightbox-caption {
      max-width: min(100%, 1200px);
      color: #d7e2ef;
      text-align: center;
      overflow-wrap: anywhere;
    }

    .answers {
      display: grid;
      gap: 10px;
      min-width: 0;
    }

    .answer-button {
      width: 100%;
      min-width: 0;
      max-width: 100%;
      min-height: 48px;
      display: grid;
      grid-template-columns: 34px minmax(0, 1fr);
      gap: 10px;
      align-items: center;
      padding: 10px 12px;
      color: var(--text);
      text-align: left;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--panel-soft);
      cursor: pointer;
      transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
    }

    .answer-button > span:last-child {
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .answer-button:hover:not(:disabled) {
      transform: translateX(3px);
      border-color: rgba(56, 189, 248, 0.72);
      background: #142030;
    }

    .answer-button:disabled {
      cursor: not-allowed;
      opacity: 0.9;
    }

    .answer-key {
      width: 30px;
      height: 30px;
      display: inline-grid;
      place-items: center;
      border-radius: 8px;
      background: #202a36;
      color: #d7e2ef;
      font-weight: 800;
    }

    .answer-button.selected:not(.correct-answer):not(.wrong-answer) {
      border-color: var(--warn);
      background: rgba(245, 158, 11, 0.14);
    }

    .answer-button.correct-answer {
      border-color: rgba(34, 197, 94, 0.8);
      background: var(--good-soft);
    }

    .answer-button.correct-answer .answer-key {
      background: var(--good);
      color: #04230f;
    }

    .answer-button.wrong-answer {
      border-color: rgba(239, 68, 68, 0.85);
      background: var(--bad-soft);
    }

    .answer-button.wrong-answer .answer-key {
      background: var(--bad);
      color: #2b0606;
    }

    .image-option-label {
      display: block;
      margin-top: 8px;
      color: var(--muted);
      font-size: 0.92rem;
      font-weight: 700;
    }

    .review-panel {
      display: none;
      margin-top: 14px;
      padding: 14px;
      border: 1px solid rgba(56, 189, 248, 0.32);
      border-radius: var(--radius);
      background: rgba(16, 24, 34, 0.95);
      color: #d7e2ef;
      overflow-x: auto;
    }

    .review-panel.visible {
      display: block;
      animation: cardIn 180ms ease both;
    }

    .review-panel table {
      width: 100%;
      border-collapse: collapse;
      background: transparent !important;
      color: inherit;
    }

    .review-panel td,
    .review-panel th {
      padding: 10px;
      border: 1px solid var(--line);
      vertical-align: top;
    }

    .review-panel img {
      max-width: 100%;
      height: auto;
      display: block;
      border-radius: var(--radius);
      cursor: zoom-in;
    }

    .review-panel span[style*="color"] {
      color: var(--good) !important;
      font-weight: 800;
    }

    .match-area,
    .self-check-area {
      display: grid;
      gap: 12px;
      margin-top: 12px;
    }

    .match-row {
      display: grid;
      grid-template-columns: minmax(160px, 0.9fr) minmax(180px, 1.1fr);
      gap: 10px;
      align-items: center;
      padding: 10px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: #101720;
      min-width: 0;
    }

    .match-left {
      color: #dce7f5;
      font-weight: 700;
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .match-select,
    .self-answer {
      width: 100%;
      color: var(--text);
      background: #0f151d;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      outline: none;
      transition: border-color 160ms ease, box-shadow 160ms ease;
    }

    .match-select {
      min-height: 42px;
      padding: 0 10px;
    }

    .self-answer {
      min-height: 110px;
      padding: 12px;
      resize: vertical;
    }

    .match-select:focus,
    .self-answer:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.15);
    }

    .match-row.correct-match {
      border-color: rgba(34, 197, 94, 0.8);
      background: var(--good-soft);
    }

    .match-row.wrong-match {
      border-color: rgba(239, 68, 68, 0.85);
      background: var(--bad-soft);
    }

    .match-actions,
    .self-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .feedback {
      min-height: 28px;
      margin-top: 12px;
      font-weight: 800;
    }

    .feedback.correct { color: var(--good); }
    .feedback.wrong { color: var(--bad); }
    .feedback.pending { color: var(--warn); }

    .empty-state {
      padding: 26px;
      border: 1px dashed var(--line);
      border-radius: var(--radius);
      color: var(--muted);
      text-align: center;
      background: rgba(21, 27, 35, 0.6);
    }

    .study-sheet {
      display: grid;
      gap: 16px;
    }

    .study-heading,
    .study-section {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(21, 27, 35, 0.94);
      box-shadow: var(--shadow);
    }

    .study-heading {
      padding: 18px;
    }

    .study-heading h2,
    .study-section h2 {
      margin: 0;
      font-size: 1.18rem;
      letter-spacing: 0;
    }

    .study-heading p {
      margin: 6px 0 0;
      color: var(--muted);
    }

    .study-section {
      overflow: hidden;
    }

    .study-section h2 {
      padding: 14px 16px;
      border-bottom: 1px solid var(--line);
      background: rgba(16, 24, 34, 0.74);
    }

    .study-table {
      display: grid;
    }

    .study-row {
      display: grid;
      grid-template-columns: minmax(120px, 0.75fr) minmax(150px, 0.95fr) minmax(220px, 1.4fr);
      gap: 12px;
      padding: 12px 16px;
      border-bottom: 1px solid rgba(43, 53, 68, 0.68);
      align-items: start;
    }

    .study-row:last-child {
      border-bottom: 0;
    }

    .study-key {
      color: var(--accent);
      font-weight: 800;
    }

    .study-value {
      color: var(--text);
      font-weight: 700;
    }

    .study-note {
      color: var(--muted);
    }

    #question-source {
      display: none !important;
    }

    @keyframes cardIn {
      from {
        opacity: 0;
        transform: translateY(12px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    :root[data-theme="light"] body {
      background:
        radial-gradient(circle at top left, rgba(3, 105, 161, 0.13), transparent 34rem),
        linear-gradient(180deg, #eef3f8 0%, #e3e9f1 48%, #dfe6ef 100%);
    }

    :root[data-theme="light"] .account-card,
    :root[data-theme="light"] .topbar,
    :root[data-theme="light"] .stat,
    :root[data-theme="light"] .question-card,
    :root[data-theme="light"] .empty-state {
      background: rgba(248, 250, 252, 0.96);
      border-color: var(--line);
    }

    :root[data-theme="light"] .topbar {
      background: rgba(244, 247, 251, 0.94);
      box-shadow: 0 14px 34px rgba(30, 41, 59, 0.13);
    }

    :root[data-theme="light"] .question-card {
      background: linear-gradient(180deg, #fbfcfe 0%, #f3f6fa 100%);
      border-color: #afbbcc;
    }

    :root[data-theme="light"] .question-card:hover,
    :root[data-theme="light"] .question-card.active {
      border-color: rgba(3, 105, 161, 0.62);
    }

    :root[data-theme="light"] .question-card.correct {
      border-color: rgba(19, 122, 58, 0.88);
      box-shadow: 0 0 0 3px rgba(19, 122, 58, 0.13), var(--shadow);
    }

    :root[data-theme="light"] .question-card.wrong {
      border-color: rgba(200, 30, 30, 0.88);
      box-shadow: 0 0 0 3px rgba(200, 30, 30, 0.12), var(--shadow);
    }

    :root[data-theme="light"] .stat {
      background: linear-gradient(180deg, #fbfcfe 0%, #edf2f7 100%);
    }

    :root[data-theme="light"] .stat.good {
      border-color: rgba(19, 122, 58, 0.36);
      background: linear-gradient(180deg, #f4fff8 0%, #e3f7eb 100%);
    }

    :root[data-theme="light"] .stat.bad {
      border-color: rgba(200, 30, 30, 0.34);
      background: linear-gradient(180deg, #fff7f7 0%, #fde8e8 100%);
    }

    :root[data-theme="light"] .stat.accent {
      border-color: rgba(3, 105, 161, 0.32);
      background: linear-gradient(180deg, #f4fbff 0%, #e2f1fb 100%);
    }

    :root[data-theme="light"] .account-field,
    :root[data-theme="light"] .search-field,
    :root[data-theme="light"] .settings-select,
    :root[data-theme="light"] .match-select,
    :root[data-theme="light"] .self-answer {
      background: #fdfefe;
      color: var(--text);
    }

    :root[data-theme="light"] .search-field:focus {
      background: #ffffff;
    }

    :root[data-theme="light"] .control-button {
      background: #e7edf5;
      color: var(--text);
      border-color: #b6c2d2;
    }

    :root[data-theme="light"] .control-button:hover {
      background: #dce8f3;
    }

    :root[data-theme="light"] .control-button.primary {
      background: #d9eefb;
      border-color: rgba(3, 105, 161, 0.48);
      color: #064b73;
    }

    :root[data-theme="light"] .control-button.danger {
      background: #fde3e3;
      border-color: rgba(200, 30, 30, 0.48);
      color: #9f1717;
    }

    :root[data-theme="light"] .back-to-top {
      background: rgba(231, 237, 245, 0.96);
      border-color: rgba(3, 105, 161, 0.5);
      color: var(--text);
    }

    :root[data-theme="light"] .back-to-top:hover {
      background: #dce8f3;
      border-color: rgba(3, 105, 161, 0.78);
    }

    :root[data-theme="light"] .tag,
    :root[data-theme="light"] .mark-button,
    :root[data-theme="light"] .answer-key {
      background: #e4ebf4;
      color: #1f2937;
      border-color: #b8c4d4;
    }

    :root[data-theme="light"] .answer-button,
    :root[data-theme="light"] .match-row,
    :root[data-theme="light"] .review-panel,
    :root[data-theme="light"] .prompt-details,
    :root[data-theme="light"] .exam-history,
    :root[data-theme="light"] .exam-history-item,
    :root[data-theme="light"] .more-controls,
    :root[data-theme="light"] .menu-group,
    :root[data-theme="light"] .study-heading,
    :root[data-theme="light"] .study-section,
    :root[data-theme="light"] .settings-panel {
      background: #f1f5f9;
      color: var(--text);
    }

    :root[data-theme="light"] .study-section h2 {
      background: #e7edf5;
    }

    :root[data-theme="light"] .answer-button:hover:not(:disabled) {
      background: #e7f3fb;
      border-color: rgba(3, 105, 161, 0.58);
    }

    :root[data-theme="light"] .answer-button.selected:not(.correct-answer):not(.wrong-answer) {
      border-color: rgba(161, 98, 7, 0.86);
      background: #fff4d6;
    }

    :root[data-theme="light"] .answer-button.correct-answer,
    :root[data-theme="light"] .match-row.correct-match {
      border-color: rgba(19, 122, 58, 0.9);
      background: linear-gradient(180deg, #eafbf0 0%, #d5f3df 100%);
      box-shadow: inset 4px 0 0 var(--good);
    }

    :root[data-theme="light"] .answer-button.correct-answer .answer-key {
      background: var(--good);
      color: #ffffff;
    }

    :root[data-theme="light"] .answer-button.wrong-answer,
    :root[data-theme="light"] .match-row.wrong-match {
      border-color: rgba(200, 30, 30, 0.92);
      background: linear-gradient(180deg, #fff0f0 0%, #fbd7d7 100%);
      box-shadow: inset 4px 0 0 var(--bad);
    }

    :root[data-theme="light"] .answer-button.wrong-answer .answer-key {
      background: var(--bad);
      color: #ffffff;
    }

    :root[data-theme="light"] .feedback.correct {
      color: #0f6b33;
    }

    :root[data-theme="light"] .feedback.wrong {
      color: #b91c1c;
    }

    :root[data-theme="light"] .review-panel {
      border-color: rgba(3, 105, 161, 0.32);
      background: #f6f9fc;
    }

    :root[data-theme="light"] .match-left {
      color: var(--text);
    }

    :root[data-theme="pink"] body {
      background:
        radial-gradient(circle at top left, rgba(255, 93, 184, 0.24), transparent 34rem),
        radial-gradient(circle at 85% 8%, rgba(192, 38, 211, 0.16), transparent 28rem),
        linear-gradient(180deg, #1b0714 0%, #120610 48%, #0d050b 100%);
    }

    :root[data-theme="pink"] .account-card,
    :root[data-theme="pink"] .topbar,
    :root[data-theme="pink"] .stat,
    :root[data-theme="pink"] .question-card,
    :root[data-theme="pink"] .empty-state {
      background: rgba(36, 16, 29, 0.94);
      border-color: rgba(255, 93, 184, 0.28);
    }

    :root[data-theme="pink"] .topbar {
      box-shadow: 0 16px 42px rgba(82, 13, 58, 0.38);
    }

    :root[data-theme="pink"] .question-card {
      background: linear-gradient(180deg, rgba(43, 18, 35, 0.97) 0%, rgba(30, 11, 24, 0.97) 100%);
    }

    :root[data-theme="pink"] .question-card:hover,
    :root[data-theme="pink"] .question-card.active {
      border-color: rgba(255, 93, 184, 0.72);
    }

    :root[data-theme="pink"] .question-card.active {
      box-shadow: 0 0 0 3px rgba(255, 93, 184, 0.16), var(--shadow);
    }

    :root[data-theme="pink"] .question-card.correct {
      border-color: rgba(53, 208, 127, 0.74);
      box-shadow: 0 0 0 3px rgba(53, 208, 127, 0.13), var(--shadow);
    }

    :root[data-theme="pink"] .question-card.wrong {
      border-color: rgba(255, 77, 109, 0.82);
      box-shadow: 0 0 0 3px rgba(255, 77, 109, 0.13), var(--shadow);
    }

    :root[data-theme="pink"] .account-field,
    :root[data-theme="pink"] .search-field,
    :root[data-theme="pink"] .settings-select,
    :root[data-theme="pink"] .match-select,
    :root[data-theme="pink"] .self-answer {
      background: #160912;
      border-color: #5d2a4e;
      color: var(--text);
    }

    :root[data-theme="pink"] .account-field:focus,
    :root[data-theme="pink"] .search-field:focus,
    :root[data-theme="pink"] .match-select:focus,
    :root[data-theme="pink"] .self-answer:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(255, 93, 184, 0.18);
      background: #1c0a16;
    }

    :root[data-theme="pink"] .control-button {
      background: #33152a;
      border-color: rgba(255, 93, 184, 0.32);
      color: var(--text);
    }

    :root[data-theme="pink"] .control-button:hover {
      border-color: rgba(255, 93, 184, 0.78);
      background: #451a38;
    }

    :root[data-theme="pink"] .control-button.primary {
      background: rgba(255, 93, 184, 0.18);
      border-color: rgba(255, 93, 184, 0.66);
      color: #ffe0f2;
    }

    :root[data-theme="pink"] .control-button.danger {
      background: rgba(255, 77, 109, 0.17);
      border-color: rgba(255, 77, 109, 0.62);
      color: #ffd9e0;
    }

    :root[data-theme="pink"] .back-to-top {
      background: rgba(51, 21, 42, 0.96);
      border-color: rgba(255, 93, 184, 0.62);
      color: var(--text);
    }

    :root[data-theme="pink"] .back-to-top:hover {
      background: #451a38;
      border-color: rgba(255, 93, 184, 0.84);
    }

    :root[data-theme="pink"] .settings-panel,
    :root[data-theme="pink"] .answer-button,
    :root[data-theme="pink"] .match-row,
    :root[data-theme="pink"] .prompt-details,
    :root[data-theme="pink"] .exam-history,
    :root[data-theme="pink"] .exam-history-item,
    :root[data-theme="pink"] .more-controls,
    :root[data-theme="pink"] .menu-group,
    :root[data-theme="pink"] .study-heading,
    :root[data-theme="pink"] .study-section,
    :root[data-theme="pink"] .review-panel {
      background: #1c0b16;
      border-color: rgba(255, 93, 184, 0.24);
      color: var(--text);
    }

    :root[data-theme="pink"] .study-section h2 {
      background: #33152a;
    }

    :root[data-theme="pink"] .answer-button:hover:not(:disabled) {
      background: #2a1022;
      border-color: rgba(255, 93, 184, 0.72);
    }

    :root[data-theme="pink"] .tag,
    :root[data-theme="pink"] .mark-button,
    :root[data-theme="pink"] .answer-key {
      background: #33152a;
      border-color: rgba(255, 93, 184, 0.28);
      color: #ffe3f3;
    }

    :root[data-theme="pink"] .mark-button:hover,
    :root[data-theme="pink"] .mark-button.marked {
      border-color: rgba(251, 191, 36, 0.82);
      background: rgba(251, 191, 36, 0.16);
      color: #ffe9ad;
    }

    :root[data-theme="pink"] .answer-button.selected:not(.correct-answer):not(.wrong-answer) {
      border-color: rgba(251, 191, 36, 0.88);
      background: rgba(251, 191, 36, 0.14);
    }

    :root[data-theme="pink"] .answer-button.correct-answer,
    :root[data-theme="pink"] .match-row.correct-match {
      border-color: rgba(53, 208, 127, 0.9);
      background: rgba(53, 208, 127, 0.18);
      box-shadow: inset 4px 0 0 var(--good);
    }

    :root[data-theme="pink"] .answer-button.correct-answer .answer-key {
      background: var(--good);
      color: #062817;
    }

    :root[data-theme="pink"] .answer-button.wrong-answer,
    :root[data-theme="pink"] .match-row.wrong-match {
      border-color: rgba(255, 77, 109, 0.92);
      background: rgba(255, 77, 109, 0.18);
      box-shadow: inset 4px 0 0 var(--bad);
    }

    :root[data-theme="pink"] .answer-button.wrong-answer .answer-key {
      background: var(--bad);
      color: #2b050d;
    }

    :root[data-theme="pink"] .media img {
      background: #160912;
      border-color: rgba(255, 93, 184, 0.28);
    }

    :root[data-theme="pink"] .match-left {
      color: #ffe3f3;
    }

    @media (max-width: 820px) {
      .app-shell {
        width: min(100% - 22px, 1120px);
        padding-top: 16px;
      }

      .title-row {
        display: block;
      }

      .stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .user-panel {
        justify-content: flex-start;
        margin-top: 12px;
      }
    }

    @media (max-width: 640px) {
      .more-control-grid {
        grid-template-columns: 1fr;
      }

      .more-control-grid .control-button {
        white-space: normal;
      }
    }

    @media (max-width: 520px) {
      .topbar {
        margin: 0 0 18px;
      }

      .stats {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
      }

      .stat {
        min-height: 66px;
        padding: 10px;
      }

      .stat-value {
        font-size: 1.28rem;
      }

      .control-button,
      .search-field {
        width: 100%;
      }

      .back-to-top {
        right: 14px;
        bottom: 14px;
        width: 44px;
        height: 44px;
      }

      .more-controls {
        right: 14px;
        bottom: 14px;
        width: min(340px, calc(100vw - 28px));
        max-height: calc(100vh - 28px);
      }

      .more-controls:not([open]) {
        width: 46px;
        height: 46px;
      }

      .more-controls:not([open]) summary {
        min-height: 46px;
      }

      .image-lightbox {
        padding: 12px;
      }

      .lightbox-close {
        top: 10px;
        right: 10px;
      }

      .image-lightbox img {
        max-height: calc(100vh - 92px);
      }

      .question-card {
        padding: 14px;
      }

      .answer-button {
        grid-template-columns: 30px minmax(0, 1fr);
        padding: 10px;
      }

      .answer-key {
        width: 28px;
        height: 28px;
      }

      .match-row {
        grid-template-columns: 1fr;
      }

      .study-row {
        grid-template-columns: 1fr;
        gap: 4px;
      }

      .exam-history-item {
        grid-template-columns: 1fr;
        gap: 4px;
      }
    }

    @media (max-width: 420px) {
      .topbar {
        padding: 12px;
      }

      .control-button,
      .search-field {
        min-height: 40px;
      }

      .control-button {
        padding: 0 10px;
      }
    }

