:root {
  --ink: #142235;
  --muted: #657489;
  --line: #e2e8f0;
  --blue: #2f6fed;
  --blue-dark: #1d4fbd;
  --navy: #102d50;
  --paper: #f4f7fb;
  --mint: #dcf6eb;
  --card: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Microsoft YaHei UI", "PingFang SC", Arial, sans-serif; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.shell { min-height: 100vh; }

.topbar {
  height: 72px;
  padding: 0 max(28px, calc((100vw - 1380px) / 2));
  display: flex;
  align-items: center;
  gap: 42px;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(14px);
}
.brand { border: 0; background: none; padding: 0; cursor: pointer; font-size: 24px; letter-spacing: -1px; color: var(--navy); }
.brand span { font-weight: 950; }
.brand b { color: var(--blue); margin-left: 3px; }
.account-loading { color:#71839b; font-size:12px; white-space:nowrap; }
.topbar nav { display: flex; gap: 26px; flex: 1; }
.topbar nav button, .topbar nav a { border: 0; background: none; text-decoration: none; color: #536276; font-weight: 750; font-size: 14px; cursor: pointer; padding: 8px 0; }
.topbar nav button.active { color: var(--blue); }
.nav-count { display: inline-grid; place-items: center; min-width: 21px; height: 21px; margin-left: 6px; padding: 0 6px; border-radius: 999px; background: #edf3ff; color: var(--blue-dark); font-size: 11px; font-weight: 900; }
.topbar nav button.active .nav-count { background: var(--blue); color: #fff; }
.nav-count.badge-red { background: #e5484d; color: #fff; }
.local-badge { font-size: 12px; background: var(--mint); color: #167255; padding: 8px 12px; border-radius: 999px; font-weight: 850; }
.sync-badge { border: 0; border-radius: 999px; padding: 8px 12px; background: #eef3f8; color: #66758a; font-size: 12px; font-weight: 850; white-space: nowrap; }.sync-badge.error { background: #fff0f0; color: #b34545; cursor: pointer; }
.account-menu { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.account-menu button { border: 1px solid var(--line); background: #fff; color: #536276; border-radius: 9px; padding: 7px 10px; cursor: pointer; font-size: 12px; font-weight: 800; }
.account-menu button.account-primary { background: var(--blue); color: #fff; border-color: var(--blue); }
.account-menu button.account-name { max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-color: transparent; background: #f2f5f9; color: var(--navy); font-size: 13px; font-weight: 850; }
.auth-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(9, 28, 51, .46); backdrop-filter: blur(6px); }
.auth-card { position: relative; width: min(430px, 100%); max-height: calc(100dvh - 40px); overflow-y: auto; padding: 30px; border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgba(9, 28, 51, .24); }
.recovery-zone { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.recovery-zone h3 { margin: 0 0 7px; font-size: 16px; }
.recovery-hint { color: #64748b; font-size: 12px; line-height: 1.7; margin: 8px 0; }
.recovery-preview { padding: 9px 11px; border: 1px solid #efd28c; border-radius: 8px; background: #fff8e5; color: #805512; font-size: 12px; line-height: 1.6; }
.recovery-tabs { display: flex; gap: 6px; padding: 4px; background: #f1f5f9; border-radius: 10px; margin-top: 12px; }
.recovery-tabs button { flex: 1; padding: 9px; border: 0; border-radius: 7px; background: transparent; color: #536276; cursor: pointer; font-weight: 700; }
.recovery-tabs button[aria-pressed=true] { background: #fff; color: var(--blue); box-shadow: 0 1px 4px #14284b14; }
.recovery-code-row { display: flex; gap: 8px; }
.recovery-code-row input { min-width: 0; flex: 1; letter-spacing: 3px; }
.recovery-code-row button, .recovery-contact-item button { flex-shrink: 0; padding: 10px 12px; border: 1px solid #c9daf7; border-radius: 9px; background: #f3f7ff; color: #235bbd; cursor: pointer; font-weight: 700; }
.recovery-code-row button:disabled { opacity: .55; cursor: default; }
.recovery-notice { margin: 8px 0 0; color: #17654b; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.recovery-error:empty, .recovery-notice:empty { display: none; }
.recovery-forgot { display: block; margin: 12px 0 0 auto; padding: 5px 0; border: 0; background: none; color: var(--blue); cursor: pointer; font-size: 13px; }
.recovery-contact-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.recovery-contact-item strong { font-size: 13px; display: block; }
.recovery-contact-item span { display: block; font-size: 13px; color: #64748b; margin-top: 5px; overflow-wrap: anywhere; }
.recovery-overlay { z-index: 200; }
.recovery-account { padding: 10px; border-radius: 8px; background: #f4f7fb; color: #526176; font-size: 13px; }
@media (min-width: 700px) {
  .register-card { width: min(760px, 100%); }
  .register-card .auth-form-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 22px; }
  .register-card .auth-account-fields > label:first-child { margin-top: 0; }
  .register-card .recovery-zone { border-top: 0; border-left: 1px solid var(--line); padding: 0 0 0 26px; margin: 0; }
}
@media (max-width: 480px) { .auth-overlay { padding: 12px; } .auth-card { padding: 22px; max-height: calc(100dvh - 24px); } }
.auth-card h2 { margin: 7px 0 8px; font-size: 26px; }
.auth-help { margin: 0 0 22px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.auth-card label { display: block; margin: 15px 0 7px; color: #526176; font-size: 12px; font-weight: 850; }
.auth-card input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 12px 13px; outline: none; }
.auth-role { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.auth-role-option { position: relative; display: block; margin: 0 !important; border: 1px solid var(--line); border-radius: 10px; padding: 12px 0; text-align: center; cursor: pointer; transition: border-color .2s, background .2s; }
.auth-role-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.auth-role-option span { color: #526176; font-size: 14px; font-weight: 800; }
.auth-role-option:has(input:checked) { border-color: var(--blue); background: #f0f6ff; }
.auth-role-option:has(input:checked) span { color: var(--blue-dark); }
.auth-role-option:hover { border-color: #9bb9f4; }
.auth-card input:focus { border-color: #8cb1ff; box-shadow: 0 0 0 3px rgba(47,111,237,.1); }
.auth-close { position: absolute; top: 13px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #f0f3f7; color: #607086; cursor: pointer; font-size: 21px; }
.auth-submit, .auth-switch { width: 100%; border-radius: 10px; padding: 11px 14px; cursor: pointer; font-weight: 850; }
.auth-submit { margin-top: 20px; border: 0; background: var(--blue); color: #fff; }
.auth-submit:disabled { opacity: .55; cursor: wait; }
.auth-switch { margin-top: 9px; border: 0; background: transparent; color: var(--blue-dark); }
.auth-error { margin: 12px 0 0; padding: 10px 12px; border-radius: 9px; background: #fff0f0; color: #b34545; font-size: 12px; line-height: 1.5; }
.account-settings-card { width: min(520px,100%); max-height: calc(100vh - 40px); overflow-y: auto; }.account-settings-identity { margin: 22px 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafc; display: flex; align-items: center; justify-content: space-between; gap: 18px; }.account-settings-identity span { color: var(--muted); font-size: 12px; }.account-settings-identity strong { color: var(--navy); }
.password-zone { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #f8fbff; }.password-zone h3 { margin: 0 0 7px; font-size: 17px; }.password-zone > p:not(.password-feedback) { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.7; }.password-zone label { margin-top: 11px; }.password-submit { width: 100%; margin-top: 17px; border: 0; border-radius: 9px; padding: 10px 14px; background: var(--blue); color: #fff; cursor: pointer; font-weight: 850; }.password-submit:disabled { opacity: .55; cursor: wait; }.password-feedback { margin: 12px 0 0; padding: 10px 12px; border-radius: 9px; font-size: 12px; line-height: 1.5; }.password-feedback.error { background: #fff0f0; color: #b34545; }.password-feedback.success { background: #ecfaf3; color: #247553; }
.invite-zone { margin-bottom: 20px; padding: 20px; border: 1px solid #cfe0fb; border-radius: 14px; background: #f7faff; }.invite-zone h3 { margin: 0 0 7px; font-size: 17px; }.invite-zone > p { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.7; }.invite-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.invite-controls label { margin: 0; }.invite-controls input, .invite-controls select { width: 100%; margin-top: 6px; border: 1px solid var(--line); border-radius: 9px; padding: 9px 10px; background: #fff; }.invite-controls > button { grid-column: 1 / -1; border: 0; border-radius: 9px; padding: 10px 13px; background: var(--blue); color: #fff; cursor: pointer; font-weight: 850; }.invite-controls > button:disabled { opacity: .55; cursor: wait; }.invite-result { margin-top: 14px; padding: 12px; display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; border-radius: 10px; background: #e9f2ff; }.invite-result span { grid-column: 1 / -1; color: var(--muted); font-size: 11px; }.invite-result code { align-self: center; color: var(--navy); font-size: 15px; font-weight: 900; letter-spacing: .04em; }.invite-result button, .invite-list-title button, .invite-list button { border: 1px solid #b8cbea; border-radius: 8px; padding: 6px 9px; background: #fff; color: var(--blue-dark); cursor: pointer; font-weight: 800; }.invite-notice { margin: 10px 0 0 !important; color: #247553 !important; }.invite-list-title { margin-top: 18px; display: flex; align-items: center; justify-content: space-between; }.invite-list-title strong { font-size: 13px; }.invite-list-title button { padding: 4px 8px; font-size: 11px; }.invite-list { margin: 8px 0 0; padding: 0; list-style: none; }.invite-list li { padding: 9px 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #dfE8f5; }.invite-list li div { display: flex; flex-direction: column; gap: 3px; }.invite-list li strong { font-size: 12px; }.invite-list li span, .invite-empty { color: var(--muted); font-size: 11px; }.invite-empty { margin: 10px 0 0 !important; }
.danger-zone { margin-top: 28px; padding: 20px; border: 1px solid #f0caca; border-radius: 14px; background: #fff8f8; }.danger-eyebrow { color: #b34545; }.danger-zone h3 { margin: 6px 0 8px; font-size: 17px; }.danger-zone p:not(.eyebrow) { margin: 0; color: #816565; font-size: 12px; line-height: 1.7; }.danger-zone button { margin-top: 16px; border: 1px solid #d65a5a; border-radius: 9px; padding: 9px 13px; background: #fff; color: #b53636; cursor: pointer; font-weight: 850; }
.clear-confirm-card { width: min(520px,100%); }.clear-impact-list { margin: 16px 0 20px; padding: 14px 14px 14px 34px; border-radius: 11px; background: #fff6f6; color: #714f4f; font-size: 12px; line-height: 1.9; }.clear-confirm-card label { color: #8a3d3d; }.clear-confirm-card input { border-color: #e7b8b8; }.clear-confirm-card input:focus { border-color: #d65a5a; box-shadow: 0 0 0 3px rgba(214,90,90,.1); }.clear-confirm-actions { margin-top: 20px; display: flex; justify-content: flex-end; gap: 9px; }.clear-confirm-actions button { border: 1px solid var(--line); border-radius: 9px; padding: 10px 14px; background: #fff; cursor: pointer; font-weight: 850; }.clear-confirm-actions button.confirm-danger { border-color: #c84444; background: #c84444; color: #fff; }.clear-confirm-actions button:disabled { opacity: .4; cursor: not-allowed; }

.content { width: min(1380px, calc(100% - 36px)); margin: 26px auto 64px; display: grid; grid-template-columns: 294px 1fr; gap: 22px; align-items: start; }
.filters, .problem-panel, .question-card, .related section { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 10px 34px rgba(29, 50, 82, .045); }
.filters { padding: 24px; position: sticky; top: 98px; max-height: calc(100vh - 122px); overflow: auto; scrollbar-gutter: stable; overscroll-behavior: contain; }
.filters h2 { font-size: 19px; margin: 6px 0 22px; }
.filters label { display: block; font-size: 12px; font-weight: 850; color: #78869a; margin: 22px 0 9px; }
.filters > label:first-child { margin-top: 0; }
.eyebrow { font-size: 11px; letter-spacing: .13em; color: var(--blue); font-weight: 900; margin: 0; text-transform: uppercase; }
.search, .filters select { width: 100%; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); padding: 11px 12px; outline: none; }
.search:focus, .filters select:focus, textarea:focus { border-color: #8cb1ff; box-shadow: 0 0 0 3px rgba(47,111,237,.1); }
.chips { display: flex; flex-wrap: wrap; gap: 7px; }
.chips button { border: 1px solid var(--line); background: #fff; color: #5b687a; border-radius: 9px; padding: 7px 10px; cursor: pointer; font-size: 13px; }
.chips button.active { background: var(--navy); border-color: var(--navy); color: #fff; }
.source-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.source-chips button { width: 100%; }
.year-range { padding: 12px 13px 10px; border: 1px solid var(--line); border-radius: 11px; background: #f9fbfe; }
.year-range strong { display: block; margin-bottom: 10px; color: var(--blue-dark); font-size: 13px; }
.year-range input { width: 100%; accent-color: var(--blue); cursor: pointer; }
.year-range div { display: flex; justify-content: space-between; margin-top: 3px; color: #95a1b1; font-size: 10px; }
.topic-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 22px 0 9px; }
.topic-heading > span { color: #78869a; font-size: 12px; font-weight: 850; }.topic-heading > span b { margin-left: 6px; color: var(--blue-dark); font-size: 10px; }.topic-heading > div { display: flex; align-items: center; gap: 5px; }
.topic-multi-toggle { border: 1px solid #d8e0ea; border-radius: 8px; padding: 5px 7px; background: #fff; color: #718096; cursor: pointer; font-size: 10px; font-weight: 850; }.topic-multi-toggle.active { border-color: #9bb9f4; background: #edf4ff; color: var(--blue-dark); }
/* Visible controls above the question list. */
.practice-filters { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px 20px; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); background: #f9fbfe; border-radius: 18px 18px 0 0; }
.practice-filter-field { min-width: 0; }
.practice-filter-field > label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 700; color: #63748a; }
.practice-filter-field select { width: 100%; min-width: 0; height: 40px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); padding: 8px 10px; font: inherit; font-size: 13px; }
.practice-filter-field select:focus { outline: none; border-color: #8cb1ff; box-shadow: 0 0 0 3px rgba(47,111,237,.1); }
.practice-filter-secondary { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; }
.practice-filter-options { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; }
.practice-filter-options label { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: #53657d; font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap; }
.practice-filter-options input { width: 15px; height: 15px; margin: 0; accent-color: var(--blue); }
.practice-filter-options label:has(input:checked) { color: var(--blue-dark); }
.practice-filter-search { position: relative; flex: 0 1 240px; min-width: 190px; }
.practice-filter-search svg { position: absolute; left: 10px; top: 9px; width: 16px; height: 16px; color: #8290a3; pointer-events: none; }
.practice-filter-search .search { width: 100%; min-width: 0; height: 34px; margin: 0; padding: 7px 10px 7px 33px; border: 1px solid #e1e7ef; border-radius: 7px; background: transparent; color: var(--ink); font: inherit; font-size: 12px; }
.practice-filter-search .search::placeholder { color: #77869b; }
.practice-filter-search .search:focus { outline: none; border-color: #8cb1ff; background: #fff; box-shadow: 0 0 0 3px rgba(47,111,237,.08); }
@media(max-width:1100px) { .practice-filters { gap: 16px; } .practice-filter-secondary { flex-wrap: wrap; } .practice-filter-search { margin-left: auto; } }
@media(max-width:600px) { .practice-filters { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 18px 16px 16px; gap: 16px; } .practice-filter-year { grid-column: 1 / -1; } .practice-filter-secondary { gap: 14px; } .practice-filter-search { flex-basis: 100%; min-width: 0; } .practice-filter-options { gap: 12px 20px; } }
.advanced-summary { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.advanced-summary button { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid #d6e3fb; border-radius: 999px; padding: 5px 8px; background: #f2f6ff; color: #42649b; cursor: pointer; font-size: 10px; }
.advanced-summary .topic-filter-chip { border-color: #b9d8cf; background: #f0faf7; color: #27715e; }
.topic-tree section { border-top: 1px solid #edf0f5; margin-top: 13px; padding-top: 13px; }
.topic-tree h3 { font-size: 11px; color: #8a96a7; margin: 0 0 7px; font-weight: 800; }
.topic-link { width: 100%; display: flex; justify-content: space-between; gap: 10px; border: 0; background: transparent; border-radius: 8px; padding: 8px 9px; cursor: pointer; text-align: left; font-size: 13px; }
.lv-tag { display: inline-block; margin-left: 6px; padding: 1px 5px; border-radius: 5px; background: #f3e8ff; color: #7c3aad; font-size: 10px; font-style: normal; font-weight: 800; vertical-align: 1px; }
.lv-tag.mix { background: #eef2fe; color: #4f5fd0; }
/* Boot splash */
.boot-splash { min-height: 60vh; display: grid; place-content: center; justify-items: center; gap: 14px; }
.boot-mark { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 14px; background: linear-gradient(135deg, #2f6fed, #1d4fbd); color: #fff; font-size: 26px; font-weight: 900; animation: boot-pulse 1.2s ease-in-out infinite; }
.boot-splash b { color: var(--navy); font-size: 15px; letter-spacing: 1px; }
.boot-splash i { width: 30px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, transparent, var(--blue), transparent); animation: boot-slide 1.1s linear infinite; }
@keyframes boot-pulse { 50% { transform: scale(1.08); } }
@keyframes boot-slide { from { transform: translateX(-14px); } to { transform: translateX(14px); } }

/* Feedback */
.feedback-fab { position: fixed; right: 22px; bottom: 26px; z-index: 60; border: 1px solid #dbe7fb; border-radius: 999px; background: #fff; color: var(--blue-dark); font-size: 15px; font-weight: 800; padding: 14px 24px; cursor: pointer; box-shadow: 0 8px 24px rgba(29,50,82,.18); }
.feedback-toast { position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%) translateY(14px); z-index: 90; background: #1f2b3e; color: #fff; font-size: 13px; font-weight: 700; padding: 12px 20px; border-radius: 10px; box-shadow: 0 10px 28px rgba(20,35,60,.28); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; cursor: pointer; max-width: 86vw; }
.feedback-toast.show { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.feedback-fab:hover { border-color: var(--blue); background: #f7faff; }
.feedback-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 4px; }
.feedback-cat { border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #526176; font-size: 12px; font-weight: 800; padding: 7px 13px; cursor: pointer; }
.feedback-cat.active { border-color: var(--blue); background: #f0f6ff; color: var(--blue-dark); }
.feedback-card textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 12px 13px; outline: none; font: inherit; margin: 12px 0 0; resize: vertical; box-sizing: border-box; }
.feedback-card input { margin-top: 10px; box-sizing: border-box; }
.feedback-context { margin: 10px 0 0; color: var(--muted); font-size: 12px; }
.feedback-context code { background: #f1f5fb; border-radius: 5px; padding: 2px 6px; }
@media print { .feedback-fab { display: none; } }
/* Landing page */
.landing { width: min(1120px, calc(100% - 36px)); margin: 28px auto 70px; display: grid; gap: 20px; }
.landing-hero { position: relative; overflow: hidden; padding: 72px 48px 64px; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 16px 48px rgba(29,50,82,.08); text-align: center; }
.landing-glow { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .5; pointer-events: none; transition: transform .6s cubic-bezier(.22,.61,.36,1); }
.landing-glow.g1 { width: 460px; height: 460px; left: -120px; top: -160px; background: radial-gradient(circle, #bcd4ff 0%, transparent 65%); animation: landing-drift 14s ease-in-out infinite alternate; }
.landing-glow.g2 { width: 420px; height: 420px; right: -100px; bottom: -180px; background: radial-gradient(circle, #d8f3e6 0%, transparent 65%); animation: landing-drift 17s ease-in-out infinite alternate-reverse; }
.landing-grid { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(47,111,237,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(47,111,237,.045) 1px, transparent 1px); background-size: 44px 44px; mask-image: radial-gradient(ellipse 75% 70% at 50% 40%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse 75% 70% at 50% 40%, #000 30%, transparent 75%); }
@keyframes landing-drift { from { margin-left: 0; } to { margin-left: 60px; } }
.landing-badge { position: relative; display: inline-block; padding: 6px 16px; border: 1px solid #c9dcff; border-radius: 999px; background: rgba(238,246,255,.9); color: var(--blue-dark); font-size: 13px; font-weight: 800; letter-spacing: 3px; }
.landing-hero h1 { position: relative; margin: 22px auto 18px; font-size: 46px; line-height: 1.25; max-width: 620px; }
.landing-hero h1 b { color: var(--blue); background: linear-gradient(120deg, var(--blue) 20%, #7aa2ff 60%, var(--blue) 90%); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: landing-shine 4s linear infinite; }
@keyframes landing-shine { to { background-position: 200% center; } }
.landing-sub { position: relative; margin: 0 auto 30px; color: var(--muted); font-size: 17px; }
.landing-sub b { color: var(--navy); font-size: 22px; font-variant-numeric: tabular-nums; }
.landing-actions { position: relative; display: flex; gap: 14px; justify-content: center; }
.landing-cta { border: 0; border-radius: 12px; padding: 14px 38px; background: var(--blue); color: #fff; font-size: 16px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 24px rgba(47,111,237,.28); transition: transform .2s, box-shadow .2s; }
.landing-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(47,111,237,.36); }
.landing-cta.ghost { border: 1px solid var(--line); background: #fff; color: var(--blue-dark); box-shadow: none; }
.landing-cta.ghost:hover { border-color: #9bb9f4; background: #f7faff; }
.landing-fx { opacity: 0; transform: translateY(18px); animation: landing-enter .7s cubic-bezier(.22,.61,.36,1) forwards; animation-delay: calc(var(--d) * 90ms); }
@keyframes landing-enter { to { opacity: 1; transform: none; } }
.landing-modes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.landing-mode { position: relative; display: grid; gap: 7px; align-content: start; justify-items: start; border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: 24px 24px 20px; cursor: pointer; text-align: left; transition: transform .25s, box-shadow .25s, border-color .25s; }
.landing-mode:hover:not(.soon) { transform: translateY(-4px); border-color: #b9cdf6; box-shadow: 0 14px 34px rgba(29,50,82,.1); }
.landing-mode-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(135deg, #eef4ff, #e3edff); color: var(--blue-dark); font-size: 19px; }
.landing-mode b { font-size: 17px; color: var(--navy); }
.landing-mode > span:not(.landing-mode-icon) { color: var(--muted); font-size: 13px; }
.landing-mode em { font-style: normal; font-size: 12px; font-weight: 800; color: var(--blue); margin-top: 4px; }
.landing-mode.soon { cursor: default; background: #fbfcfe; }
.landing-mode.soon b, .landing-mode.soon > span:not(.landing-mode-icon) { color: #a5b0c0; }
.landing-mode.soon em { color: #a5b0c0; }
.landing-mode.soon .landing-mode-icon { background: #f1f3f7; color: #a5b0c0; }
.landing-teacher { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; border: 1px dashed #c9dcff; border-radius: 16px; background: rgba(238,246,255,.55); padding: 18px 24px; cursor: pointer; text-align: left; transition: border-color .25s, background .25s; }
.landing-teacher:hover { border-color: var(--blue); background: #eef4ff; }
.landing-teacher > span:first-child { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: #fff; color: var(--blue-dark); font-size: 16px; border: 1px solid #dbe7fb; }
.landing-teacher b { display: block; font-size: 15px; color: var(--navy); }
.landing-teacher div > span { color: var(--muted); font-size: 13px; }
.landing-teacher em { font-style: normal; font-size: 13px; font-weight: 800; color: var(--blue); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .landing-fx { animation: none; opacity: 1; transform: none; }
  .landing-hero h1 b, .landing-glow { animation: none; }
}
@media (max-width: 900px) {
  .landing-hero { padding: 48px 24px 44px; }
  .landing-hero h1 { font-size: 32px; }
  .landing-modes { grid-template-columns: 1fr; }
  .landing-teacher { grid-template-columns: auto 1fr; }
  .landing-teacher em { display: none; }
}
.topic-link:hover { background: #f4f7fb; }
.topic-link.selected { background: #eaf2ff; color: var(--blue-dark); font-weight: 850; }
.topic-link small { color: #93a0b1; }
.topic-link .topic-count { display: inline-flex; flex: 0 0 auto; align-items: baseline; gap: 3px; white-space: nowrap; font-size: 10px; font-weight: 750; }
.topic-link .topic-count b { color: #3b9a7b; font-size: 11px; }
.topic-link .topic-count span { color: #93a0b1; }
.topic-link.selected .topic-count b { color: #24765f; }
.topic-link > span { min-width: 0; display: flex; align-items: center; gap: 7px; }.topic-check { width: 15px; height: 15px; flex: 0 0 15px; display: grid; place-items: center; border: 1px solid #cbd5e2; border-radius: 4px; background: #fff; color: #fff; font-size: 10px; font-style: normal; }.topic-link.selected .topic-check { border-color: var(--blue); background: var(--blue); }

.problem-panel { overflow: hidden; }
.paper-summary p:not(.eyebrow) { color: var(--muted); font-size: 13px; line-height: 1.75; }
.paper-back { width: 100%; margin-top: 12px; border: 0; border-radius: 10px; padding: 11px 13px; background: var(--blue); color: #fff; cursor: pointer; font-size: 13px; font-weight: 850; }
.paper-library { width: min(1180px, calc(100% - 36px)); margin: 34px auto 70px; }
.paper-hero { padding: 34px 36px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(130deg, #f8fbff, #eaf2ff 64%, #e8f7f1); box-shadow: 0 10px 34px rgba(29,50,82,.05); }
.paper-hero h1 { margin: 8px 0 10px; font-size: 36px; }
.paper-hero > p:last-child { margin: 0; color: var(--muted); font-size: 14px; }
.paper-source-list { display: grid; gap: 34px; margin-top: 28px; }.paper-source-section { scroll-margin-top: 92px; }.paper-source-heading { min-height: 58px; padding: 0 4px 12px; display: flex; align-items: end; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }.paper-source-heading h2 { margin: 5px 0 0; color: var(--navy); font-size: 24px; }.paper-source-heading > span { color: #8794a5; font-size: 11px; }
.paper-source-tabs { margin-top: 22px; padding: 6px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; border: 1px solid var(--line); border-radius: 14px; background: #eef2f7; }.paper-source-tabs button { min-width: 0; padding: 12px 14px; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 10px; background: transparent; color: #66758a; cursor: pointer; font-weight: 850; }.paper-source-tabs button b { padding: 3px 6px; border-radius: 999px; background: rgba(255,255,255,.75); color: #8794a5; font-size: 9px; }.paper-source-tabs button.active { background: #fff; color: var(--blue-dark); box-shadow: 0 4px 13px rgba(29,50,82,.11); }.paper-source-tabs button.active b { background: #edf4ff; color: var(--blue-dark); }
.paper-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 16px; }
.paper-card { display: grid; gap: 9px; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; text-align: left; box-shadow: 0 8px 24px rgba(29,50,82,.04); transition: transform .16s, border-color .16s, box-shadow .16s; }
.paper-card:hover { transform: translateY(-2px); border-color: #a9c2f5; box-shadow: 0 13px 30px rgba(29,50,82,.09); }
.paper-card.active-exam { border-color: #f0ad4e; box-shadow: 0 0 0 3px rgba(240,173,78,.12); }
.paper-card > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.paper-card > div span { color: var(--blue); font-size: 25px; font-weight: 950; }
.paper-card > div b { color: #627187; font-size: 12px; }
.paper-card > strong { margin-top: 5px; font-size: 17px; }
.paper-card > small { color: #8995a6; font-size: 11px; }
.paper-card > i { height: 6px; overflow: hidden; border-radius: 999px; background: #edf1f6; }
.paper-card > i em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blue), #4fc3a1); }
.paper-card > .paper-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 6px; }
.round2-paper-card > .paper-actions { grid-template-columns: 1fr; }
.paper-actions button { border: 1px solid #cbd7e9; border-radius: 9px; padding: 9px 8px; background: #fff; color: #40536d; cursor: pointer; font-weight: 800; }
.paper-actions .exam-start { border-color: var(--blue); background: var(--blue); color: #fff; }
.active-exam-banner { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 20px; margin: 18px 0 0; padding: 16px 20px; border: 1px solid #f3cc8a; border-radius: 14px; background: #fff9ee; }
.active-exam-banner > div { display: grid; gap: 3px; }.active-exam-banner span { color: var(--muted); font-size: 12px; }.active-exam-banner > strong { color: #b76700; font: 900 22px/1 Consolas, monospace; }
.active-exam-banner button, .exam-submit { border: 0; border-radius: 9px; padding: 10px 14px; background: #e58612; color: #fff; cursor: pointer; font-weight: 850; }
.hero-row { min-height: 192px; padding: 34px 38px; background: linear-gradient(130deg, #f8fbff 0%, #edf4ff 65%, #e9f6f2 100%); display: flex; align-items: center; justify-content: space-between; }
.hero-row h1 { font-size: clamp(28px, 3vw, 38px); margin: 8px 0 9px; letter-spacing: -.03em; }
.hero-row > div > p:last-child { color: var(--muted); margin: 0; font-size: 14px; }
.metric { width: 132px; height: 105px; flex: 0 0 132px; background: rgba(255,255,255,.88); border: 1px solid rgba(255,255,255,.95); border-radius: 18px; display: grid; place-content: center; text-align: center; box-shadow: 0 14px 30px rgba(47,111,237,.12); }
.metric strong { font-size: 36px; color: var(--blue); line-height: 1; }
.metric span { font-size: 11px; color: var(--muted); margin-top: 7px; }
.progress-strip { min-height: 82px; padding: 18px 28px; display: grid; grid-template-columns: auto minmax(120px, 1fr) auto auto auto; align-items: center; gap: 22px; border-bottom: 1px solid var(--line); }
.progress-strip > div:not(.bar) { display: grid; gap: 4px; }
.progress-strip span { font-size: 11px; color: #8995a6; }
.progress-strip strong { font-size: 15px; }
.bar { height: 7px; background: #edf1f6; border-radius: 20px; overflow: hidden; }
.bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), #4fc3a1); border-radius: 20px; }
.list-tools { height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; color: var(--muted); font-size: 13px; }
.list-tools b { color: var(--ink); }
.list-tools button { border: 0; background: #eef4ff; color: var(--blue-dark); padding: 7px 10px; border-radius: 8px; cursor: pointer; font-size: 12px; font-weight: 750; }
.list-tools > div { display: flex; align-items: center; gap: 7px; }.list-tools button.print-current { background: var(--blue); color: #fff; }.list-tools button:disabled { opacity: .45; cursor: not-allowed; }
.result-filter-bar { min-height: 66px; padding: 11px 22px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); background: #fff; }.result-filter-summary { min-width: 0; display: flex; align-items: center; gap: 10px; }.result-filter-summary > b { flex: none; color: #78869a; font-size: 11px; }.result-filter-summary > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; }.result-filter-summary button, .result-filter-summary span { border: 1px solid #d6e3fb; border-radius: 999px; padding: 5px 8px; background: #f2f6ff; color: #42649b; font-size: 10px; white-space: nowrap; }.result-filter-summary button { cursor: pointer; }.result-filter-summary > strong { flex: none; color: var(--ink); font-size: 12px; }.result-actions { flex: none; display: flex; align-items: center; gap: 7px; }.result-actions button { border: 0; border-radius: 8px; padding: 7px 10px; background: #eef4ff; color: var(--blue-dark); cursor: pointer; font-size: 12px; font-weight: 750; }.result-actions button.print-current { background: var(--blue); color: #fff; }.result-actions button.basket-random-add { background: #e8f7f1; color: #167255; }.result-actions button:disabled { opacity: .45; cursor: not-allowed; }
.table-head, .question-row { display: grid; grid-template-columns: 36px 112px minmax(300px, 1fr) 144px; align-items: center; gap: 14px; }
.table-head { padding: 14px 25px; color: #8a96a7; font-size: 11px; font-weight: 850; background: #fafbfd; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.question-row { width: 100%; padding: 17px 25px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; transition: background .16s, transform .16s; }
.question-row:hover { background: #f7faff; transform: translateX(2px); }
.question-row > div { display: grid; gap: 4px; min-width: 0; }
.question-row > div:nth-child(2) strong { color: var(--blue); font-size: 16px; }
.question-row > div:nth-child(3) b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; }
.question-row small { color: #8e99a9; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.question-big-group { border-bottom: 1px solid var(--line); background: #fff; }
.question-group-head { width: 100%; min-height: 78px; padding: 15px 25px; display: grid; grid-template-columns: 36px 112px minmax(300px, 1fr) 144px 112px; align-items: center; gap: 14px; border: 0; background: #f7faff; text-align: left; cursor: pointer; }
.question-group-head:hover { background: #edf4ff; }
.question-group-year { display: grid; gap: 3px; }
.question-group-year strong { color: var(--blue); font-size: 17px; }
.question-group-year span, .question-group-title small { color: #8693a5; font-size: 11px; }
.question-group-title { min-width: 0; }
.question-group-title p { margin: 0 0 5px; overflow: hidden; color: #24354b; font-size: 15px; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.question-group-head > b { display: grid; justify-items: end; color: var(--blue-dark); font-size: 13px; }
.question-group-head > b small { margin-top: 3px; color: #8390a2; font-size: 10px; font-weight: 700; }
.question-group-children { margin: 0 24px 16px 48px; overflow: hidden; border: 1px solid #e3e9f1; border-radius: 11px; background: #fff; }
.question-subrow { width: 100%; min-height: 48px; padding: 9px 14px; display: grid; grid-template-columns: 28px 104px minmax(220px, 1fr) 142px; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid #edf1f5; background: #fff; text-align: left; cursor: pointer; }
.question-subrow:last-child { border-bottom: 0; }
.question-subrow:hover { background: #fafcff; }
.question-subrow > b { color: #61728a; font-size: 11px; }
.question-subrow > span:not(.status-dot) { overflow: hidden; color: #35455a; font-size: 13px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.question-subrow > small { justify-self: start; color: #6d7d92; font-size: 10px; }
.status-dot { width: 22px; height: 22px; border: 1px solid #d8dee8; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 900; font-size: 12px; }
.status-dot.correct { background: #1fa370; border-color: #1fa370; }
.status-dot.incorrect { background: #e15b5b; border-color: #e15b5b; }
.status-dot.revealed { background: #9aa7b8; border-color: #9aa7b8; }
.topic-pill { justify-self: start; background: #edf4ff; color: #2c61c5; border-radius: 999px; padding: 6px 9px; font-size: 11px; font-weight: 850; white-space: nowrap; }
.empty { padding: 72px 30px; display: grid; justify-items: center; gap: 8px; color: var(--muted); }
.empty strong { color: var(--ink); font-size: 18px; }.empty span { font-size: 13px; }.empty button { margin-top: 9px; border: 0; background: var(--blue); color: #fff; padding: 10px 14px; border-radius: 9px; cursor: pointer; }

.question-layout { width: min(1380px, calc(100% - 36px)); margin: 26px auto 64px; display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: 22px; align-items: start; }
.question-card { padding: 30px; }
.detail-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.back { border: 0; background: #eff4fb; color: #4d617a; border-radius: 9px; padding: 9px 12px; cursor: pointer; font-size: 13px; font-weight: 750; }
.detail-print { border: 0; border-radius: 9px; padding: 9px 13px; background: var(--blue); color: #fff; cursor: pointer; font-size: 13px; font-weight: 850; box-shadow: 0 6px 14px rgba(47,111,237,.18); }
.detail-print:hover { background: var(--blue-dark); }
.question-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 24px 0 10px; }
.question-meta > span:not(.topic-pill) { color: #617087; background: #f1f4f8; border-radius: 7px; padding: 6px 9px; font-size: 11px; font-weight: 800; }
.question-card > h1 { font-size: clamp(25px, 3vw, 36px); letter-spacing: -.03em; margin: 12px 0 24px; }
.program-group-title { margin: 12px 0 22px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.program-group-title p { margin: 0 0 4px; color: var(--blue); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.program-group-title h1 { margin: 0; font-size: clamp(25px, 3vw, 36px); letter-spacing: -.03em; }
.program-group-title > strong { flex: none; border-radius: 999px; padding: 8px 12px; background: #edf4ff; color: var(--blue-dark); font-size: 12px; }
.program-shared-stem { border-color: #cfdced; box-shadow: 0 7px 22px rgba(35,65,105,.05); }
.program-subnav { position: sticky; top: 72px; z-index: 5; margin: 16px 0; padding: 10px; display: flex; gap: 8px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.94); backdrop-filter: blur(8px); }
.program-subnav a { min-width: 38px; height: 36px; padding: 0 9px; display: grid; place-items: center; border: 1px solid #dce3ed; border-radius: 8px; background: #f8fafc; color: #65748a; text-decoration: none; font-size: 12px; font-weight: 900; }
.program-subnav a:hover, .program-subnav a.current { border-color: var(--blue); color: var(--blue); background: #edf4ff; }
.program-subnav a.correct { border-color: #8ed2b9; color: #17724f; background: #ecf9f3; }
.program-subnav a.incorrect { border-color: #efbcbc; color: #b34545; background: #fff3f3; }
.program-subquestions { display: grid; gap: 18px; }
.program-subquestion { scroll-margin-top: 126px; border: 1px solid var(--line); border-radius: 15px; overflow: hidden; background: #fff; transition: border-color .2s, box-shadow .2s; }
.program-subquestion.focused { border-color: #a4bef4; box-shadow: 0 0 0 3px rgba(47,111,237,.08); }
.program-subquestion-head { min-height: 54px; padding: 12px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; background: #f7f9fc; border-bottom: 1px solid var(--line); }
.program-subquestion-head > div { display: flex; align-items: center; gap: 9px; }
.program-subquestion-head > div > b { font-size: 15px; }
.subquestion-status { color: #8a96a7; font-size: 11px; font-weight: 850; }
.subquestion-status.correct { color: #19845c; }.subquestion-status.incorrect { color: #c44b4b; }
.program-subquestion-text { margin: 0; padding: 21px 22px 15px; white-space: pre-wrap; color: #2b394d; font: 14px/1.8 Consolas, "Microsoft YaHei UI", "PingFang SC", monospace; }
/* Keep Markdown code spans in the existing subquestion font. */
.program-subquestion-text code { font: inherit; }
.program-subquestion .answer-box { margin: 0 18px 18px; }
.program-subquestion > textarea { display: block; width: calc(100% - 36px); min-height: 84px; margin: 0 18px 18px; resize: vertical; border: 1px solid var(--line); border-radius: 10px; padding: 13px; outline: none; background: #fff; font-family: Consolas, "Microsoft YaHei UI", monospace; }
.program-subquestion .question-options { padding: 0 18px 18px; background: #fff; }
.program-aside-list { display: grid; }
.related section .program-aside-list button { width: 100%; padding: 10px 3px; display: flex; justify-content: space-between; border: 0; border-top: 1px solid #edf0f4; background: #fff; cursor: pointer; }
.program-aside-list button b { font-size: 12px; }.program-aside-list button span { color: #8a96a7; font-size: 10px; }
.source-help { color: var(--muted); line-height: 1.7; font-size: 13px; margin: 0 0 24px; }
.paper-viewer { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #e9edf3; }
.question-text-panel { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; }
.question-text-panel pre { margin: 0; padding: 26px 24px; overflow-x: auto; white-space: pre-wrap; overflow-wrap: normal; tab-size: 4; color: #263548; background: #fbfcfe; font: 14px/1.85 Consolas, "Microsoft YaHei UI", "PingFang SC", monospace; }
.numbered-code { display: block; margin: 8px 0; min-width: max-content; counter-reset: code-line; }
/* Markdown pilot: preserve prose wrapping and original fenced-code indentation. */
.question-markdown { padding: 24px; font-size: 16px; line-height: 1.75; color: #334257; overflow-wrap: anywhere; }
.question-markdown p { margin: 0 0 .85em; }
.question-markdown p:last-child { margin-bottom: 0; }
.question-markdown code, .question-option code, .print-options code { font-family: Consolas, "Courier New", monospace; white-space: pre-wrap; }
.question-markdown .markdown-code { padding: 0; margin: 14px 0; overflow-x: auto; font: 14px/1.65 Consolas, monospace; }
.question-markdown .numbered-code { min-width: 0; margin: 0; }
.question-markdown .code-line-text { white-space: pre; }
.question-markdown img { max-width: 100%; height: auto; }
.print-sheet .question-markdown { padding: 0; margin-bottom: 3mm; font-size: 10pt; line-height: 1.6; }
.print-sheet .question-markdown .markdown-code { padding: 0; font-size: 9pt; overflow: visible; }
.print-sheet .question-markdown .code-line-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.print-program-group > .question-markdown { break-inside: avoid; }
@media (max-width: 600px) { .question-markdown { padding: 20px 16px; font-size: 15px; } }
.code-line { display: grid; grid-template-columns: 3.25em minmax(0, 1fr); min-height: 1.85em; counter-increment: code-line; }
.code-line-number { padding-right: 1em; color: #96a0ad; text-align: right; user-select: none; border-right: 1px solid #e1e6ed; }
.code-line-text { padding-left: 1em; white-space: pre; }
.question-diagram { margin: 0; padding: 2px 24px 22px; background: #fbfcfe; display: grid; justify-items: center; }
.question-source-image img { display: block; max-width: min(100%, 920px); height: auto; margin: 8px auto; }
.question-diagram figcaption { margin-top: 3px; color: #7a8798; font-size: 11px; }
.stack-operation-diagram > div { position: relative; width: min(100%, 1100px); aspect-ratio: 1300 / 145; overflow: hidden; background: #fff; }
.stack-operation-diagram img { position: absolute; top: 0; left: 0; width: 100%; height: auto; transform: translateY(-28.2%); }
.binary-tree-canvas { position: relative; width: 280px; height: 190px; }
.binary-tree-canvas .tree-node { position: absolute; z-index: 2; width: 20px; height: 14px; border: 2px solid #243346; border-radius: 50%; background: #fff; box-sizing: border-box; }
.binary-tree-canvas .edge { position: absolute; z-index: 1; height: 2px; background: #243346; transform-origin: 0 50%; }
.binary-tree-canvas .node-1 { left: 120px; top: 8px; }.binary-tree-canvas .node-2 { left: 45px; top: 58px; }.binary-tree-canvas .node-3 { left: 170px; top: 58px; }
.binary-tree-canvas .node-4 { left: 130px; top: 108px; }.binary-tree-canvas .node-5 { left: 210px; top: 108px; }.binary-tree-canvas .node-6 { left: 245px; top: 158px; }
.binary-tree-canvas .edge-1 { left: 126px; top: 22px; width: 90px; transform: rotate(146deg); }.binary-tree-canvas .edge-2 { left: 135px; top: 22px; width: 66px; transform: rotate(45deg); }
.binary-tree-canvas .edge-3 { left: 176px; top: 72px; width: 57px; transform: rotate(134deg); }.binary-tree-canvas .edge-4 { left: 185px; top: 72px; width: 57px; transform: rotate(45deg); }.binary-tree-canvas .edge-5 { left: 225px; top: 122px; width: 55px; transform: rotate(55deg); }
.question-options { display: grid; gap: 10px; padding: 0 24px 24px; background: #fbfcfe; }
.question-options.two-options { grid-template-columns: 1fr 1fr; }
.question-option { width: 100%; display: grid; grid-template-columns: 36px 1fr; align-items: start; gap: 12px; border: 1px solid #dfe5ee; border-radius: 11px; padding: 13px 15px; background: #fff; text-align: left; cursor: pointer; transition: border-color .16s, background .16s, box-shadow .16s; }
.question-option:hover { border-color: #9cbaf6; background: #f6f9ff; }
.question-option.chosen { border-color: var(--blue); background: #edf4ff; box-shadow: 0 0 0 2px rgba(47,111,237,.09); }
.question-option b { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: #edf1f6; color: var(--navy); }
.question-option.chosen b { background: var(--blue); color: #fff; }
.question-option > span { padding-top: 4px; color: #334257; line-height: 1.65; white-space: pre-wrap; }
/* KaTeX 内部结构依赖精确的盒模型，禁止被选项样式波及 */
.question-option .katex span { padding: 0; }
.inline-math { font-family: "Cambria Math", "Times New Roman", serif; white-space: nowrap; }
.inline-math sup, .inline-math sub, .question-option sup, .question-option sub { font-size: .72em; line-height: 0; }
.inline-code { padding: 0 .12em; font-family: Consolas, "SFMono-Regular", monospace; font-size: .94em; font-style: normal; color: inherit; background: transparent; }
.math-roman { font-style: normal; }
.math-sqrt { display: inline-flex; align-items: flex-start; vertical-align: -.08em; }
.math-root { font-size: 1.08em; line-height: 1.05; }
.math-radicand { border-top: 1px solid currentColor; padding: 0 .08em; line-height: 1.12; }
.math-overline { text-decoration: overline; text-decoration-thickness: 1px; }
.math-fraction { display: inline-grid; grid-template-rows: auto auto; vertical-align: -.42em; margin: 0 .14em; text-align: center; line-height: 1.05; }
.math-fraction > span:first-child { border-bottom: 1px solid currentColor; padding: 0 .12em .05em; }
.math-fraction > span:last-child { padding: .05em .12em 0; }
.section-title { min-height: 62px; padding: 13px 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #fff; border-bottom: 1px solid var(--line); }
.section-title > div { display: grid; gap: 3px; }.section-title span { font-weight: 900; }.section-title small { color: var(--muted); font-size: 11px; }.section-title > b { color: #8793a4; font-size: 11px; }
.paper-viewer img { display: block; width: auto; max-width: calc(100% - 32px); height: auto; margin: 16px auto; background: white; box-shadow: 0 4px 18px rgba(24,43,70,.13); }
.answer-box { border: 1px solid var(--line); border-radius: 14px; overflow: visible; margin-top: 20px; }
.answer-box > .section-title { background: #f9fbfe; border-radius: 14px 14px 0 0; }
.choice-grid { padding: 20px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.choice-grid.two-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-grid button { border: 1px solid var(--line); background: #fff; border-radius: 11px; padding: 13px 10px; cursor: pointer; display: flex; align-items: center; gap: 10px; }
.choice-grid button:hover { border-color: #a8c2fa; }.choice-grid button.chosen { border-color: var(--blue); background: #edf4ff; box-shadow: 0 0 0 2px rgba(47,111,237,.08); }
.choice-grid b { width: 28px; height: 28px; display: grid; place-items: center; background: #eef2f7; border-radius: 50%; color: var(--navy); }.choice-grid .chosen b { background: var(--blue); color: #fff; }.choice-grid span { font-size: 12px; color: var(--muted); }
.answer-box textarea { display: block; width: calc(100% - 40px); margin: 20px; resize: vertical; border: 1px solid var(--line); border-radius: 10px; padding: 13px; outline: none; background: #fff; font-family: Consolas, "Microsoft YaHei UI", monospace; }
.answer-box .answer-chips { margin: 14px 20px 0; }
.answer-box .answer-chips + textarea { margin-top: 14px; }
.answer-actions { padding: 0 20px 20px; display: flex; gap: 10px; }
.choice-answer-box .answer-actions { padding-top: 20px; }
.answer-actions button { border-radius: 9px; padding: 10px 16px; cursor: pointer; font-weight: 850; font-size: 13px; }
.submit { border: 0; background: var(--blue); color: #fff; }.submit:disabled { opacity: .42; cursor: not-allowed; }.reveal { border: 1px solid var(--line); background: #fff; color: #5a687a; }.reveal:disabled { opacity: .48; cursor: not-allowed; background: #f3f5f8; }
.reveal-control { position: relative; display: inline-flex; }
.reveal-control .reveal { display: inline-flex; align-items: center; gap: 9px; }
.reveal-control .reveal::after { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -3px; }
.reveal-control .reveal[aria-expanded="true"]::after { transform: rotate(225deg); margin-top: 3px; }
.reveal-control.is-locked .reveal { background: #f3f5f8; color: #7b8796; cursor: help; }
.reveal-hint { position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); z-index: 5; visibility: hidden; opacity: 0; pointer-events: none; white-space: nowrap; padding: 7px 10px; border-radius: 7px; background: #27364e; color: #fff; font-size: 12px; font-weight: 600; box-shadow: 0 5px 14px rgba(29,50,82,.18); }
.reveal-control.is-locked:hover .reveal-hint, .reveal-control.is-locked:focus-within .reveal-hint, .reveal-control.is-hint-open .reveal-hint { visibility: visible; opacity: 1; }
@media(max-width:600px) { .reveal-hint { left: 0; transform: none; } }
.attempt-result { margin: 0 20px 20px; padding: 13px 15px; border-radius: 10px; display: flex; align-items: center; gap: 10px; font-size: 12px; }
.attempt-result span { color: #657489; }.attempt-result.correct { background: #ecf9f3; border: 1px solid #bde8d6; }.attempt-result.correct strong { color: #17724f; }.attempt-result.incorrect { background: #fff3f3; border: 1px solid #f2c9c9; }.attempt-result.incorrect strong { color: #b34545; }
.feedback { margin: 0 20px 20px; padding: 18px; border-radius: 12px; border: 1px solid #d9e1ec; background: #f7f9fc; }
.feedback.correct { background: #ecf9f3; border-color: #bde8d6; }.feedback.correct > strong { color: #17724f; }.feedback.incorrect { background: #fff3f3; border-color: #f2c9c9; }.feedback.incorrect > strong { color: #b34545; }
.feedback > p { margin: 9px 0; font-size: 14px; }.feedback code { background: #fff; border: 1px solid rgba(120,140,165,.22); border-radius: 6px; padding: 4px 7px; font-size: 14px; color: var(--navy); }.equivalent { color: var(--muted); }
.explanation { border-top: 1px solid rgba(120,140,165,.2); margin-top: 16px; padding-top: 16px; display: grid; grid-template-columns: 82px 1fr; gap: 9px 14px; font-size: 15px; line-height: 1.82; }.explanation-markdown { color: #405065; min-width: 0; }
.editorial-feedback .explanation { display: block; border-top: 0; margin-top: 0; padding-top: 0; }
.explanation-body { min-width: 0; }
.round1-editorial-votes { border-top: 1px solid rgba(120,140,165,.2); margin-top: 18px; padding-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.round1-editorial-votes > span { font-size: 13px; color: #5b697a; }
.round1-editorial-votes > div[role="group"] { display: flex; gap: 8px; }
.round1-editorial-votes button { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 6px 11px; color: var(--navy); cursor: pointer; font: inherit; font-size: 13px; }
.round1-editorial-votes button[aria-pressed="true"] { border-color: var(--blue); background: #edf4ff; color: var(--blue); }
.round1-editorial-votes button:disabled { opacity: .55; cursor: default; }
.round1-editorial-votes small { width: 100%; min-height: 1.2em; color: var(--muted); font-size: 12px; }

.round1-editorial-votes [hidden] { display: none; }
.round1-editorial-reasons { width: 100%; box-sizing: border-box; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #f7f9fc; font-size: 13px; }
.round1-editorial-reasons fieldset { border: 0; margin: 0 0 12px; padding: 0; min-width: 0; }
.round1-editorial-reasons legend { font-weight: 600; margin-bottom: 8px; }
.round1-editorial-reasons legend span { font-weight: 400; color: var(--muted); }
.round1-editorial-reasons fieldset label { display: flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; }
.round1-editorial-reasons input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); flex-shrink: 0; }
.round1-editorial-reasons textarea { box-sizing: border-box; display: block; width: 100%; margin-top: 8px; resize: vertical; border: 1px solid var(--line); border-radius: 8px; padding: 10px; font: inherit; background: white; color: var(--ink); }
.round1-reason-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.round1-editorial-reasons small { display: block; margin-top: 8px; }
.explanation-markdown h1, .explanation-markdown h2, .explanation-markdown h3 { margin: 12px 0 5px; color: var(--blue); font-weight: 800; font-size: 14px; line-height: 1.5; }.explanation-markdown h1:first-child, .explanation-markdown h2:first-child, .explanation-markdown h3:first-child { margin-top: 0; }
.explanation-markdown p { margin: 3px 0; }.explanation-markdown table { border-collapse: collapse; margin: 7px 0; max-width: 100%; }.explanation-markdown td, .explanation-markdown th { border: 1px solid #dfe5ec; padding: 3px 10px; font-size: 12px; font-family: Consolas, Menlo, monospace; color: #425062; text-align: left; }.explanation-markdown th { background: #f4f7fb; font-weight: 800; color: #23324a; }.explanation-markdown code { background: #f1f5fb; border-radius: 4px; padding: 1px 5px; font-family: Consolas, Menlo, monospace; font-size: 11.5px; color: #24486e; }
.explanation-markdown pre { max-width: 100%; margin: 12px 0; padding: 14px 16px; overflow-x: auto; border: 1px solid #dfe5ec; border-radius: 8px; background: #f5f7fa; color: #263548; font: 13px/1.75 Consolas, Menlo, monospace; white-space: pre; overflow-wrap: normal; word-break: normal; tab-size: 4; }
.explanation-markdown pre code { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; white-space: inherit; overflow-wrap: normal; word-break: normal; }
.question-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; margin-top: 22px; }.question-nav button { border: 1px solid var(--line); background: #fff; border-radius: 9px; padding: 10px 14px; cursor: pointer; }.question-nav button:first-child { justify-self: start; }.question-nav button:last-child { justify-self: end; }.question-nav button:disabled { opacity: .35; cursor: default; }.question-nav span { color: #8793a4; font-size: 12px; font-weight: 750; }.question-nav span::after { content: " · 键盘 ←/→ 切换题目"; font-size: 11px; font-weight: 500; opacity: .75; }
.related { position: sticky; top: 98px; display: grid; gap: 16px; }
.related-hint, .related-empty { color: var(--muted); font-size: 12px; line-height: 1.7; margin: 0 0 12px; }
.related section > button.related-all { color: var(--blue-dark); font-size: 13px; font-weight: 700; padding-top: 15px; }
.related section { padding: 21px; }.related h2 { font-size: 20px; margin: 6px 0 16px; }.related section > button { width: 100%; text-align: left; border: 0; border-top: 1px solid #edf0f4; background: #fff; padding: 13px 3px; display: grid; gap: 5px; cursor: pointer; }.related section > button:hover b { color: var(--blue); }.related section > button b { font-size: 13px; line-height: 1.45; }.related section > button span { color: #8a96a7; font-size: 11px; }.detail-note b { color: var(--navy); }.detail-note p { color: var(--muted); font-size: 12px; line-height: 1.7; margin-bottom: 0; }

.exam-overview, .exam-result { width: min(1120px, calc(100% - 36px)); margin: 28px auto 70px; padding: 30px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 12px 36px rgba(29,50,82,.06); }
.exam-overview-head { display: grid; grid-template-columns: 1fr 280px; align-items: center; gap: 28px; }.exam-overview-head h1 { margin: 7px 0; }.exam-overview-head p:last-child { margin: 0; color: var(--muted); }
.exam-time-card { padding: 20px; border-radius: 14px; background: #fff7ea; text-align: center; display: grid; gap: 7px; }.exam-time-card span, .exam-time-card small { color: #8f6b37; }.exam-time-card strong { color: #b76700; font: 950 30px/1 Consolas, monospace; }
.exam-overview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 25px 0 18px; }.exam-overview-actions button, .result-actions button { border: 1px solid var(--line); border-radius: 9px; padding: 10px 15px; background: #fff; cursor: pointer; font-weight: 800; }.exam-overview-actions .continue { border-color: var(--blue); background: var(--blue); color: #fff; }.exam-overview-actions .danger { margin-left: auto; border-color: #d85858; color: #bd3e3e; }
.exam-overview-grid { display: grid; grid-template-columns: repeat(10, minmax(52px, 1fr)); gap: 9px; padding-top: 18px; border-top: 1px solid var(--line); }.exam-overview-cell { min-height: 58px; border: 1px solid #dbe2eb; border-radius: 9px; background: #f8fafc; display: grid; place-content: center; gap: 2px; cursor: pointer; }.exam-overview-cell b { font-size: 15px; }.exam-overview-cell span { color: #98a3b1; font-size: 10px; }.exam-overview-cell.answered { border-color: #85aaf4; background: #edf4ff; }.exam-overview-cell.answered span { color: var(--blue); }
.exam-question-top { display: flex; align-items: center; justify-content: space-between; }.exam-question-top > div { display: flex; align-items: baseline; gap: 10px; }.exam-question-top span { color: var(--muted); font-size: 11px; }.exam-question-top strong { color: #b76700; font: 900 20px/1 Consolas, monospace; }
.exam-pause { border: 1px solid #f3cc8a; border-radius: 8px; background: #fff9ee; color: #b76700; padding: 7px 12px; cursor: pointer; font-weight: 800; font-size: 12px; white-space: nowrap; }
.exam-pause:disabled { opacity: .55; cursor: default; }
.exam-paused .exam-time-card strong { color: #8f6b37; }
.exam-paused-card { display: grid; gap: 8px; margin: 6px 0 24px; padding: 22px; border: 1px dashed #f3cc8a; border-radius: 14px; background: #fff9ee; }
.exam-paused-card b { color: #b76700; font-size: 17px; }.exam-paused-card span { color: var(--muted); }
.exam-sheet-head { display: flex; align-items: baseline; justify-content: space-between; margin: 12px 0; }.exam-sheet-head strong { color: #b76700; font: 900 18px/1 Consolas, monospace; }.exam-sheet-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }.related .exam-sheet-grid button { border: 1px solid #dfe5ee; border-radius: 7px; background: #fff; padding: 7px 0; display: block; text-align: center; }.related .exam-sheet-grid button.answered { background: #edf4ff; border-color: #9bb9f4; color: var(--blue); }.related .exam-sheet-grid button.current { box-shadow: 0 0 0 2px var(--blue); }.exam-sheet .exam-submit { width: 100%; margin-top: 16px; background: #d95555; }
.score-card { text-align: center; padding: 20px 10px 28px; }.score-card > strong { color: var(--blue); font-size: 72px; line-height: 1; }.score-card > span { color: var(--muted); font-size: 18px; }.score-card h1 { margin: 14px 0 8px; }.score-card p { color: var(--muted); }.score-card small { color: #9a7c4c; }
.result-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.result-summary > div { padding: 16px; border-radius: 11px; background: #f6f8fb; display: flex; justify-content: space-between; }.result-summary span { color: var(--muted); }.result-actions { margin: 22px 0 12px; display: flex; align-items: center; justify-content: space-between; }.result-actions span { color: var(--muted); font-size: 12px; }
.exam-result-list { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }.exam-result-row { width: 100%; display: grid; grid-template-columns: 42px 1fr 70px; align-items: center; gap: 10px; padding: 13px 16px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }.exam-result-row:last-child { border-bottom: 0; }.exam-result-row > strong { justify-self: end; }.exam-result-row.correct > strong { color: #19845c; }.exam-result-row.incorrect > strong { color: #c44b4b; }.exam-result-row.unanswered > strong { color: #8995a6; }

.stats-page { width: min(1180px, calc(100% - 36px)); margin: 28px auto 70px; display: grid; gap: 18px; }
.stats-hero, .stats-trend, .stats-detail, .stats-breakdown, .stats-login, .stats-empty { border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 10px 34px rgba(29,50,82,.045); }
.stats-hero { min-height: 170px; padding: 30px 34px; display: flex; align-items: center; justify-content: space-between; gap: 28px; background: linear-gradient(130deg,#f8fbff,#edf4ff 62%,#e9f6f2); }.stats-hero h1 { margin: 7px 0 8px; font-size: 34px; }.stats-hero p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.stats-controls { min-width: 290px; display: grid; gap: 12px; justify-items: end; }.stats-range { display: flex; padding: 4px; border-radius: 11px; background: rgba(255,255,255,.8); }.stats-range button { border: 0; border-radius: 8px; padding: 8px 12px; background: transparent; color: #68778b; cursor: pointer; font-size: 12px; font-weight: 800; }.stats-range button.active { background: var(--blue); color: #fff; box-shadow: 0 4px 12px rgba(47,111,237,.22); }

.stats-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }.stats-kpis > div { min-height: 126px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; display: grid; align-content: center; gap: 5px; }.stats-kpis span { color: #718096; font-size: 12px; font-weight: 800; }.stats-kpis strong { color: var(--navy); font-size: 30px; }.stats-kpis small { color: #99a4b3; font-size: 10px; }
.stats-trend, .stats-detail { padding: 25px 28px; }.stats-section-title { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }.stats-section-title h2 { margin: 5px 0 0; font-size: 21px; }.stats-section-title > span { color: #929dab; font-size: 11px; }
.stats-bars { max-height: 430px; overflow: auto; padding-right: 6px; }.stats-bar-row { min-height: 34px; display: grid; grid-template-columns: 62px minmax(100px,1fr) 38px 44px; align-items: center; gap: 10px; }.stats-bar-row > span { color: #778599; font-size: 11px; }.stats-bar-row > div { height: 9px; overflow: hidden; border-radius: 999px; background: #eef2f7; }.stats-bar-row i { display: block; min-width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--blue),#55c3a0); }.stats-bar-row b { text-align: right; font-size: 12px; }.stats-bar-row small { text-align: right; color: #96a1af; font-size: 10px; }

.stats-breakdown { padding: 25px 28px; }.stats-breakdown-empty { min-height: 150px; display: grid; place-content: center; justify-items: center; text-align: center; }.stats-breakdown-empty h2 { margin: 7px 0; }.stats-breakdown-empty p { margin: 0; color: var(--muted); }.stats-breakdown-empty button { margin-top: 12px; border: 0; border-radius: 8px; padding: 8px 13px; background: var(--blue); color: #fff; cursor: pointer; font-weight: 800; }
.breakdown-source-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 11px; }.breakdown-source-card { min-width: 0; padding: 16px; border: 1px solid #dfe5ee; border-radius: 13px; background: #f9fbfd; display: grid; gap: 7px; text-align: left; cursor: pointer; }.breakdown-source-card:hover { border-color: #a9c2f5; }.breakdown-source-card.active { border-color: var(--blue); background: #f2f6ff; box-shadow: inset 0 0 0 1px var(--blue); }.breakdown-source-card > span { color: #66758a; font-size: 11px; font-weight: 850; }.breakdown-source-card > strong { color: var(--navy); font-size: 24px; }.breakdown-source-card strong small { color: #8b97a8; font-size: 11px; }.breakdown-source-card > i, .breakdown-row > i, .topic-progress i { height: 7px; overflow: hidden; border-radius: 999px; background: #e7ecf3; }.breakdown-source-card em, .breakdown-row em, .topic-progress em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--blue),#55c3a0); }.breakdown-source-card > b { color: #8995a5; font-size: 10px; }
.breakdown-columns { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(480px,1.35fr); gap: 16px; margin-top: 18px; }.breakdown-columns > section { min-width: 0; padding: 18px; border: 1px solid #e4e9f0; border-radius: 13px; }.breakdown-subtitle { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 13px; }.breakdown-subtitle h3 { margin: 0; font-size: 15px; }.breakdown-subtitle span { color: #929dab; font-size: 10px; }.breakdown-type-list { display: grid; gap: 9px; }.breakdown-row { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; }.breakdown-row > div { display: grid; gap: 2px; }.breakdown-row b { font-size: 12px; }.breakdown-row span { color: #8a96a7; font-size: 10px; }.breakdown-row > strong { color: var(--blue-dark); font-size: 11px; }.breakdown-row > i { grid-column: 1/-1; }
.breakdown-topic-wrap { max-height: 350px; overflow: auto; border: 1px solid #e6eaf0; border-radius: 10px; }.breakdown-topic-wrap table { width: 100%; border-collapse: collapse; font-size: 11px; }.breakdown-topic-wrap th { position: sticky; top: 0; z-index: 1; padding: 9px 10px; background: #f7f9fc; color: #7b889a; text-align: left; white-space: nowrap; }.breakdown-topic-wrap td { padding: 10px; border-top: 1px solid #edf0f4; }.breakdown-topic-wrap td:nth-child(2), .breakdown-topic-wrap td:nth-child(3) { white-space: nowrap; }.topic-progress { min-width: 110px; display: grid; grid-template-columns: minmax(55px,1fr) 38px; align-items: center; gap: 7px; }.topic-progress span { color: #758399; text-align: right; }.breakdown-definition { margin: 15px 2px 0; color: #8895a6; font-size: 10px; line-height: 1.6; }
.stats-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; }.stats-detail table { width: 100%; border-collapse: collapse; font-size: 12px; }.stats-detail th { padding: 11px 13px; background: #f7f9fc; color: #78869a; text-align: left; white-space: nowrap; }.stats-detail td { padding: 12px 13px; border-top: 1px solid #edf0f4; white-space: nowrap; }.accuracy-pill { display: inline-block; min-width: 52px; padding: 4px 7px; border-radius: 999px; background: #edf4ff; color: var(--blue-dark); text-align: center; font-weight: 850; }.stats-no-data { padding: 36px; color: #8a96a7; text-align: center; }.stats-definition { margin: 0 4px; color: #8895a6; font-size: 11px; line-height: 1.7; }
.stats-login, .stats-empty { min-height: 360px; padding: 45px; display: grid; place-content: center; justify-items: center; text-align: center; }.stats-login h1 { margin: 8px 0; }.stats-login > p:not(.eyebrow), .stats-empty span { max-width: 520px; color: var(--muted); line-height: 1.7; }.stats-login button, .stats-empty button { margin-top: 12px; border: 0; border-radius: 9px; padding: 10px 18px; background: var(--blue); color: #fff; cursor: pointer; font-weight: 850; }
.stats-login h1 { max-width: 720px; font-size: clamp(24px, 3vw, 32px); line-height: 1.45; text-wrap: balance; }
.stats-login > p:not(.eyebrow) { max-width: 580px; margin: 12px 0 0; }
.stats-login-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.stats-login-actions button { margin-top: 0; min-height: 44px; padding: 11px 22px; border: 1px solid var(--blue); }
.stats-login-actions .stats-login-secondary { background: #fff; color: var(--blue); border-color: var(--line); }
.stats-login-actions button:hover { filter: brightness(.96); }
.stats-login-actions button:focus-visible { outline: 3px solid #9abaff; outline-offset: 3px; }
@media (max-width: 600px) { .stats-login { min-height: 360px; padding: 32px 20px; } .stats-login-actions { width: 100%; gap: 10px; } .stats-login-actions button { width: 100%; } }
.stats-view-detail { border: 0; border-radius: 7px; padding: 6px 10px; background: #edf4ff; color: var(--blue-dark); cursor: pointer; font-size: 11px; font-weight: 850; }
.stats-detail-overlay { position: fixed; inset: 0; z-index: 90; padding: 22px; display: grid; place-items: center; background: rgba(9,28,51,.48); backdrop-filter: blur(5px); }.stats-detail-drawer { width: min(920px,100%); max-height: min(780px,calc(100vh - 44px)); overflow: hidden; border-radius: 18px; background: #fff; box-shadow: 0 28px 90px rgba(9,28,51,.28); display: grid; grid-template-rows: auto minmax(0,1fr); }.stats-detail-header { padding: 22px 25px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }.stats-detail-header h2 { margin: 5px 0 3px; }.stats-detail-header span { color: #8794a5; font-size: 11px; }.stats-detail-header > button { width: 36px; height: 36px; border: 0; border-radius: 50%; background: #eef2f7; color: #617087; cursor: pointer; font-size: 22px; }
.attempt-detail-list { overflow: auto; padding: 8px 24px 24px; }.attempt-detail-row { display: grid; grid-template-columns: 38px minmax(0,1fr) 92px; gap: 13px; align-items: start; padding: 16px 0; border-bottom: 1px solid #edf0f4; }.attempt-detail-row:last-child { border-bottom: 0; }.attempt-result-badge { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 950; }.attempt-detail-row.correct .attempt-result-badge { background: #20a36f; }.attempt-detail-row.incorrect .attempt-result-badge { background: #dc5959; }.attempt-main { min-width: 0; display: grid; gap: 9px; }.attempt-main > button { border: 0; padding: 0; background: none; display: grid; gap: 4px; text-align: left; cursor: pointer; }.attempt-main > button:hover b { color: var(--blue); }.attempt-main b { font-size: 13px; line-height: 1.5; }.attempt-main button span { color: #8a96a7; font-size: 10px; }.attempt-answer { display: flex; flex-wrap: wrap; gap: 7px 16px; color: #69788c; font-size: 11px; }.attempt-answer code { border: 1px solid #e0e6ee; border-radius: 6px; padding: 3px 6px; background: #f7f9fc; color: #263548; }.attempt-meta { display: grid; justify-items: end; gap: 6px; }.attempt-meta time { color: var(--navy); font: 800 12px/1 Consolas,monospace; }.attempt-meta span { border-radius: 999px; padding: 4px 7px; background: #f0f3f7; color: #778599; font-size: 9px; }.stats-detail-loading { min-height: 260px; display: grid; place-content: center; justify-items: center; gap: 10px; color: #7d8999; }.stats-detail-loading.error { color: #b34545; }.stats-detail-loading button { border: 0; border-radius: 8px; padding: 8px 12px; background: var(--blue); color: #fff; cursor: pointer; }

.list-tools button.basket-random-add { background: #e8f7f1; color: #167255; }
.basket-picker-card { width: min(500px,100%); }.basket-picker-scope { margin: 18px 0 14px; padding: 14px; display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; }.basket-picker-scope span { color: var(--muted); font-size: 12px; }.basket-picker-scope strong { color: var(--navy); font-size: 13px; }.basket-picker-actions { margin-top: 20px; display: flex; justify-content: flex-end; gap: 9px; }.basket-picker-actions button { border: 1px solid var(--line); border-radius: 9px; padding: 10px 15px; background: #fff; cursor: pointer; font-weight: 850; }.basket-picker-actions .basket-picker-submit { border-color: var(--blue); background: var(--blue); color: #fff; }.basket-picker-actions button:disabled { opacity: .45; cursor: not-allowed; }
.detail-toolbar > div { display: flex; align-items: center; gap: 8px; }.detail-basket { border: 1px solid #b9d8cf; border-radius: 9px; padding: 8px 12px; background: #effaf6; color: #167255; cursor: pointer; font-size: 13px; font-weight: 850; }.detail-basket:disabled { opacity: .62; cursor: default; }
.basket-page { width: min(960px,calc(100% - 36px)); margin: 30px auto 70px; display: grid; gap: 16px; }.basket-hero { min-height: 190px; padding: 34px 38px; display: flex; align-items: center; justify-content: space-between; gap: 28px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(130deg,#f8fbff,#edf4ff 62%,#e8f7f1); box-shadow: 0 10px 34px rgba(29,50,82,.05); }.basket-hero h1 { margin: 8px 0 9px; font-size: 36px; }.basket-hero p:last-child { max-width: 700px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }.basket-hero-count { width: 145px; min-height: 120px; flex: 0 0 145px; display: grid; place-content: center; justify-items: center; border: 1px solid rgba(255,255,255,.95); border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 14px 30px rgba(47,111,237,.12); }.basket-hero-count strong { color: var(--blue); font-size: 38px; line-height: 1; }.basket-hero-count span { margin-top: 7px; font-size: 12px; font-weight: 850; }.basket-hero-count small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.basket-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }.basket-summary > div { min-height: 86px; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.basket-summary span { color: var(--muted); font-size: 12px; font-weight: 800; }.basket-summary strong { color: var(--navy); font-size: 25px; }
.basket-toolbar { padding: 14px 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.basket-toolbar > div { display: flex; align-items: center; gap: 9px; }.basket-toolbar span { color: var(--muted); font-size: 11px; }.basket-toolbar button { border: 1px solid var(--line); border-radius: 9px; padding: 9px 13px; background: #fff; cursor: pointer; font-weight: 850; }.basket-toolbar .basket-clear { color: #b34545; }.basket-toolbar .basket-print { border-color: var(--blue); background: var(--blue); color: #fff; }.basket-toolbar button:disabled { opacity: .4; cursor: not-allowed; }.basket-notice { margin: 0; padding: 10px 14px; border-radius: 10px; background: #ecf9f3; color: #17724f; font-size: 12px; }.basket-notice.error { background: #fff1f1; color: #b34545; }
.basket-list { overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; }.basket-row { min-height: 105px; padding: 17px 20px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); }.basket-row:last-child { border-bottom: 0; }.basket-order { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #edf4ff; color: var(--blue-dark); font-size: 12px; font-weight: 900; }.basket-row-main { min-width: 0; }.basket-row-meta { display: flex; flex-wrap: wrap; gap: 6px; }.basket-row-meta span { padding: 4px 7px; border-radius: 6px; background: #f1f4f8; color: #68778b; font-size: 10px; font-weight: 800; }.basket-row h2 { margin: 8px 0 5px; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }.basket-row p { margin: 0; color: var(--blue-dark); font-size: 10px; font-weight: 800; }.basket-row-actions { display: flex; align-items: center; gap: 6px; }.basket-row-actions button { min-width: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 9px; background: #fff; cursor: pointer; font-size: 11px; font-weight: 800; }.basket-row-actions button.remove { color: #b34545; }.basket-row-actions button:disabled { opacity: .35; cursor: default; }.basket-empty { min-height: 300px; padding: 40px; display: grid; place-content: center; justify-items: center; gap: 9px; text-align: center; }.basket-empty strong { font-size: 20px; }.basket-empty span { max-width: 520px; color: var(--muted); font-size: 13px; line-height: 1.7; }.basket-empty button { margin-top: 8px; border: 0; border-radius: 9px; padding: 10px 16px; background: var(--blue); color: #fff; cursor: pointer; font-weight: 850; }

footer { border-top: 1px solid var(--line); background: #fff; padding: 16px max(28px, calc((100vw - 1380px) / 2)) 14px; display: flex; flex-direction: column; gap: 9px; color: #8490a0; font-size: 12px; }
footer b { color: var(--navy); font-size: 15px; }
footer a { color: #67758a; text-decoration: none; }
footer a:hover { color: var(--blue-dark); text-decoration: underline; }
.footer-main { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 24px; min-height: 54px; }
.footer-filings { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 22px; }

.class-code-line { display: flex; align-items: center; gap: 8px; margin: 10px 0 2px; }
.class-code-line span { color: var(--muted); font-size: 11px; font-weight: 800; flex: 0 0 auto; }
.class-code-line code { font: 800 13px/1 Consolas,monospace; letter-spacing: .5px; color: var(--navy); background: #f1f4f8; border-radius: 6px; padding: 5px 8px; }
.class-code-line small { color: var(--muted); font-size: 10px; }
.class-code-line button, .class-code-rotate { border: 1px solid var(--line); background: #fff; border-radius: 7px; padding: 5px 10px; font-size: 11px; font-weight: 700; cursor: pointer; color: #67758a; }
.class-code-line button:hover, .class-code-rotate:hover { color: var(--blue-dark); border-color: var(--blue); }
.class-code-rotate { margin: 0 0 10px; }
.joined-classes { margin-bottom: 18px; }
.class-papers { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; display: grid; gap: 8px; }
.class-papers-loading { color: var(--muted); font-size: 11px; padding-top: 8px; }
.class-paper-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.class-paper-row b { display: block; font-size: 13px; color: var(--navy); }
.class-paper-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.class-paper-actions { display: flex; gap: 6px; flex: 0 0 auto; }
.class-paper-actions button { border: 1px solid var(--line); background: #fff; border-radius: 7px; padding: 5px 9px; font-size: 11px; font-weight: 700; cursor: pointer; color: #67758a; }
.class-paper-actions button:hover { color: var(--blue-dark); border-color: var(--blue); }
.class-paper-actions button:disabled { opacity: .5; cursor: default; }
.nav-new-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e36b5d; margin-left: 5px; vertical-align: 2px; }
.class-leave { margin-top: 10px; border: 0; background: none; padding: 0; font-size: 11px; color: #98a3b3; cursor: pointer; text-decoration: underline; }
.class-leave:hover { color: #b34545; }
.class-dissolve { margin-top: 12px; border: 1px solid #eed3d0; border-radius: 7px; padding: 5px 10px; font-size: 11px; font-weight: 700; color: #b34545; background: #fff; cursor: pointer; }
.class-dissolve:hover { background: #fdf3f2; }
.student-list { list-style: none; margin: 0; padding: 0; }
.student-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 6px; border-radius: 7px; cursor: pointer; }
.student-row:hover { background: #f5f8fc; }
.student-row span { font-size: 13px; color: var(--navy); font-weight: 700; }
.student-row small { color: var(--muted); font-size: 10px; }
.student-detail { padding: 0 6px 10px; }
.student-detail-inner { border: 1px solid var(--line); border-radius: 9px; background: #f8fafc; padding: 10px 12px; display: grid; gap: 8px; }
.student-detail-inner.error { color: #b34545; }
.student-detail-summary { font-size: 12px; font-weight: 800; color: var(--blue-dark); }
.student-paper-status { font-size: 11px; font-weight: 700; color: var(--muted); flex: 0 0 auto; }
.student-paper-status.submitted { color: #17724f; }
.student-paper-status.in_progress { color: #b07a2a; }
.quick-publish-bar { display: flex; align-items: center; gap: 10px; margin: 18px 0 4px; font-size: 12px; color: var(--muted); font-weight: 700; }
.quick-publish-bar select { border: 1px solid var(--line); border-radius: 7px; padding: 6px 8px; background: #fff; font-size: 12px; color: var(--ink); }
.quick-papers { margin-top: 16px; }
.quick-paper-list { display: grid; gap: 8px; margin-top: 10px; }
.paper-lib-heading { margin: 22px 0 4px; font-size: 14px; color: var(--navy); letter-spacing: .5px; }
.paper-lib-list { display: grid; gap: 10px; margin-top: 10px; }
.paper-lib-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 14px 18px; }
.paper-lib-main { min-width: 0; }
.paper-lib-main b { display: block; font-size: 16px; color: var(--navy); line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.paper-lib-main small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.paper-lib-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.paper-lib-actions button { border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 7px 13px; font-size: 12px; font-weight: 750; cursor: pointer; color: #52627a; }
.paper-lib-actions button:hover { color: var(--blue-dark); border-color: var(--blue); }
.paper-lib-actions button:last-child { border-color: var(--blue); background: var(--blue); color: #fff; }
.publish-target-list { display: grid; gap: 10px; margin-top: 14px; }
.publish-target-class { display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 10px; background: #fff; padding: 13px 16px; font-size: 14px; font-weight: 750; color: var(--navy); cursor: pointer; }
.publish-target-class:hover { border-color: var(--blue); background: #f5f9ff; }
.publish-target-class small { color: var(--muted); font-size: 11px; font-weight: 600; }
.class-assign { margin: 10px 0 2px; border: 1px solid var(--blue); background: var(--blue); color: #fff; border-radius: 8px; padding: 8px 14px; font-size: 12px; font-weight: 850; cursor: pointer; }
.class-assign:hover { opacity: .92; }
.assign-card { width: min(640px, calc(100vw - 32px)); max-height: min(80vh, 720px); overflow: auto; display: flex; flex-direction: column; gap: 4px; text-align: left; }
.assign-card h2 { margin: 4px 0 10px; font-size: 19px; }
.assign-section { margin-bottom: 14px; }
.assign-card .auth-close { position: absolute; top: 14px; right: 14px; }

.print-sheet { display: none; }

@media print {
  @page { size: A4; margin: 13mm 12mm 15mm; }
  html, body { background: #fff !important; color: #000 !important; }
  body.printing #app { display: none !important; }
  body.printing .print-sheet { display: block; font-family: "Microsoft YaHei", "SimSun", sans-serif; font-size: 10.5pt; line-height: 1.55; }
  .print-header { padding-bottom: 7mm; border-bottom: 1.5pt solid #111; margin-bottom: 7mm; }
  .print-header p { margin: 0 0 2mm; color: #555; font-size: 9pt; }
  .print-header h1 { margin: 0 0 4mm; font-size: 18pt; line-height: 1.3; }
  .print-header div { display: flex; flex-wrap: wrap; gap: 4mm 12mm; font-size: 9.5pt; }
  .print-question { margin: 0 0 7mm; padding: 0 0 6mm; border-bottom: .6pt solid #bbb; break-inside: avoid-page; page-break-inside: avoid; }
  .print-question-meta { display: flex; align-items: baseline; gap: 3mm; margin-bottom: 2mm; }
  .print-question-meta > span { color: #333; font-size: 9.5pt; font-weight: 700; }
  .print-question h2 { margin: 0 0 2mm; font-size: 11pt; line-height: 1.5; }
  .print-question pre { margin: 0 0 3mm; white-space: pre-wrap; overflow-wrap: anywhere; font: 9.5pt/1.45 Consolas, "Courier New", monospace; }
  .print-program-group { break-inside: auto; page-break-inside: auto; }
  .print-subquestion { margin: 5mm 0 0; padding-top: 4mm; border-top: .6pt dotted #999; break-inside: avoid; page-break-inside: avoid; }
  .print-subquestion h3 { display: grid; grid-template-columns: auto 1fr; gap: 3mm; margin: 0 0 3mm; font-size: 10.5pt; line-height: 1.55; }
  .print-subquestion h3 b { white-space: nowrap; }
  /* Do not target every descendant span here: KaTeX uses nested spans for
     operators, superscripts and spacing. */
  .print-subquestion h3 > .print-subquestion-copy { font-weight: 500; white-space: pre-wrap; }
  .print-sheet .inline-math { white-space: nowrap; }
  .print-options { display: grid; gap: 2mm; margin-left: 2mm; }
  .print-options > div { display: grid; grid-template-columns: 7mm 1fr; align-items: start; break-inside: avoid; }
  .print-answer-space { min-height: 15mm; padding-top: 3mm; border-bottom: .6pt dotted #777; }
  .print-answer-space span { font-weight: 700; }
}

.result-actions button.wrong-delete { background: #c94444; color: #fff; }
.wrong-book-notice { padding: 10px 22px; border-bottom: 1px solid #cce9dc; background: #eefaf5; color: #167255; font-size: 12px; font-weight: 750; }
.wrong-book-notice.error { border-color: #f1cccc; background: #fff2f2; color: #b43f3f; }
.question-row.wrong-manage-row.selected { background: #eef5ff; box-shadow: inset 3px 0 var(--blue); }
.batch-check { width: 22px; height: 22px; border: 2px solid #c8d2df; border-radius: 6px; display: grid; place-items: center; background: #fff; color: #fff; font-size: 13px; font-weight: 900; }
.wrong-manage-row.selected .batch-check { border-color: var(--blue); background: var(--blue); }

@media (max-width: 1020px) {
  .topbar { gap: 20px; }.topbar nav { gap: 14px; }.local-badge { display: none; }
  .content { grid-template-columns: 250px 1fr; }
  .table-head, .question-row { grid-template-columns: 28px 86px minmax(220px,1fr); }
  .table-head span:nth-child(4), .question-row .topic-pill { display: none; }
  .question-layout { grid-template-columns: 1fr; }.related { position: static; grid-template-columns: 1fr 1fr; }
  .paper-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-kpis { grid-template-columns: repeat(2,1fr); }.breakdown-columns { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .topbar { height: 62px; padding: 0 16px; gap: 12px; }.topbar nav, .local-badge { display: none; }.account-menu { margin-left: auto; }.brand { font-size: 19px; }.account-menu button.account-name { max-width: 92px; }
  .content, .question-layout { width: min(100% - 20px, 680px); margin-top: 12px; grid-template-columns: 1fr; }
  .paper-library, .teaching-page { width: min(100% - 20px, 680px); margin-top: 12px; }.paper-hero { padding: 26px 22px; }.paper-grid { grid-template-columns: 1fr; }
  .paper-source-tabs { display: flex; overflow-x: auto; }.paper-source-tabs button { flex: 0 0 auto; min-width: 118px; }
  .active-exam-banner { grid-template-columns: 1fr auto; }.active-exam-banner button { grid-column: 1 / -1; }.exam-overview, .exam-result { width: min(100% - 20px, 680px); padding: 20px 14px; }.exam-overview-head { grid-template-columns: 1fr; }.exam-overview-grid { grid-template-columns: repeat(5, 1fr); }.exam-sheet-grid { grid-template-columns: repeat(8, 1fr); }
  .stats-page { width: min(100% - 20px,680px); margin-top: 12px; }.stats-hero { padding: 24px 20px; display: grid; }.stats-controls { min-width: 0; justify-items: start; }.stats-kpis { grid-template-columns: 1fr 1fr; gap: 9px; }.stats-kpis > div { padding: 16px; min-height: 110px; }.stats-trend, .stats-detail, .stats-breakdown { padding: 20px 14px; }.stats-section-title { align-items: start; flex-direction: column; gap: 5px; }.breakdown-source-grid { grid-template-columns: 1fr; }.breakdown-columns > section { padding: 14px 10px; }.breakdown-topic-wrap { max-height: 420px; }
  .stats-detail-overlay { padding: 8px; align-items: end; }.stats-detail-drawer { max-height: calc(100vh - 16px); border-radius: 16px 16px 8px 8px; }.stats-detail-header { padding: 18px 16px; }.attempt-detail-list { padding: 5px 16px 20px; }.attempt-detail-row { grid-template-columns: 34px 1fr; }.attempt-meta { grid-column: 2; grid-row: 2; justify-items: start; display: flex; }.attempt-answer { display: grid; }
  .basket-page { width: min(100% - 20px,680px); margin-top: 12px; }.basket-hero { min-height: 0; padding: 25px 21px; }.basket-hero h1 { font-size: 29px; }.basket-hero-count { display: none; }.basket-summary { grid-template-columns: 1fr 1fr; gap: 8px; }.basket-summary > div { min-height: 72px; padding: 13px; }.basket-toolbar { align-items: stretch; flex-direction: column; }.basket-toolbar > div { justify-content: space-between; }.basket-row { grid-template-columns: 30px minmax(0,1fr); padding: 15px 12px; gap: 10px; }.basket-row-actions { grid-column: 2; justify-content: flex-end; }.detail-toolbar { align-items: flex-start; }.detail-toolbar > div { flex-wrap: wrap; justify-content: flex-end; }
  .filters { position: static; max-height: none; overflow: visible; scrollbar-gutter: auto; }.topic-tree { display: none; }
  .hero-row { min-height: 160px; padding: 26px 22px; }.metric { display: none; }
  .progress-strip { grid-template-columns: 1fr 1fr 1fr; gap: 12px; }.progress-strip .bar { grid-column: 1 / -1; grid-row: 2; }.progress-strip > div:first-child { grid-column: span 3; }
  .result-filter-bar { padding: 12px 14px; align-items: stretch; flex-direction: column; }.result-filter-summary { align-items: flex-start; flex-wrap: wrap; }.result-filter-summary > div { flex: 1 1 calc(100% - 80px); }.result-filter-summary > strong { margin-left: auto; }.result-actions { justify-content: flex-end; }
  .table-head { display: none; }.question-row { grid-template-columns: 25px 72px 1fr; padding: 15px; }
  .question-group-head { grid-template-columns: 25px 72px minmax(0,1fr) auto; padding: 14px; }.question-group-head > .topic-pill { display: none; }.question-group-head > b small { display: none; }
  .question-group-children { margin: 0 10px 12px 24px; }.question-subrow { grid-template-columns: 26px 76px minmax(0,1fr); padding: 9px 10px; }.question-subrow > small { display: none; }
  .question-card { padding: 18px 14px; }.paper-viewer img { margin: 8px auto; box-shadow: none; }
  .question-text-panel pre { padding: 20px 16px; font-size: 13px; }.question-options { padding: 0 16px 18px; }.question-options.two-options { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: 1fr 1fr; }.related { grid-template-columns: 1fr; }
  .explanation { grid-template-columns: 1fr; }.section-title > b { display: none; }
  footer { padding: 18px; display: grid; gap: 5px; }
}

.offline-loading{padding:80px;text-align:center;color:#657489}
/* Teacher/student paper workflow */
.account-name small { display: block; margin-top: 2px; color: #738096; font-size: 10px; font-weight: 600; }
.my-paper-tabs { display: flex; gap: 8px; margin: 20px 0; padding: 5px; width: fit-content; border: 1px solid #dfe5ec; border-radius: 12px; background: #f7f9fb; }
.my-paper-tabs button { padding: 9px 16px; border: 0; border-radius: 8px; background: transparent; color: #536176; font-weight: 700; }
.my-paper-tabs button.active { background: #fff; color: #12664f; box-shadow: 0 2px 8px rgba(25, 45, 65, .1); }
.my-paper-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; padding: 34px; border: 1px dashed #ccd5df; border-radius: 16px; background: #fbfcfd; color: #667386; }
.my-paper-empty strong { color: #27364a; font-size: 20px; }
.my-paper-empty button, .class-join-panel button, .class-create-panel button, .paper-publish-submit { border: 0; border-radius: 9px; background: #12664f; color: #fff; padding: 10px 18px; font-weight: 700; }
.class-join-panel, .class-create-panel, .paper-publish-panel { display: flex; align-items: flex-end; gap: 14px; margin: 18px 0 24px; padding: 20px; border: 1px solid #dce5e2; border-radius: 16px; background: #f6fbf9; }
.class-join-panel > div, .class-create-panel > div, .paper-publish-panel > div:first-child { flex: 1; display: flex; flex-direction: column; gap: 5px; }
.class-join-panel span, .class-create-panel p, .paper-publish-panel p { margin: 0; color: #667386; }
.class-join-panel input, .class-create-panel input, .paper-publish-fields input, .paper-publish-fields select { min-height: 40px; padding: 8px 10px; border: 1px solid #cbd5df; border-radius: 8px; background: #fff; }
.assigned-paper-card h2, .teacher-paper-card h2 { margin: 12px 0 8px; font-size: 18px; line-height: 1.4; }
.paper-score { color: #12664f; font-size: 22px; font-weight: 800; }
.paper-publish-panel { display: block; margin-top: 28px; }
.paper-publish-fields { display: grid; grid-template-columns: 2fr 1.4fr 1fr 1.5fr auto; gap: 12px; align-items: end; margin-top: 16px; }
.paper-publish-fields label { display: flex; flex-direction: column; gap: 6px; color: #4d5b6e; font-size: 13px; font-weight: 700; }
.paper-publish-empty { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.teaching-page { width: min(1180px, calc(100% - 36px)); margin: 30px auto 70px; padding: 0; }
.class-code-result { display: flex; align-items: center; gap: 12px; margin: 16px 0; padding: 16px 20px; border-radius: 12px; background: #fff6d9; color: #5e4b12; }
.class-code-result code { font-size: 20px; font-weight: 800; letter-spacing: 1px; }
.class-code-result button { margin-left: auto; }
.teaching-page .class-grid { grid-template-columns: 1fr; gap: 20px; }
.class-card { padding: 20px; border: 1px solid #dce3ea; border-radius: 16px; background: #fff; box-shadow: 0 5px 18px rgba(30, 50, 70, .05); }
.class-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.class-card-head span, .class-card p, .class-card small { color: #758195; }
.class-card h2 { margin: 4px 0; }
.class-card ul { padding: 0; margin: 16px 0 0; list-style: none; }
.class-card li { display: flex; justify-content: space-between; padding: 9px 0; border-top: 1px solid #edf0f3; }
.class-empty { margin-top: 15px; padding: 15px; border-radius: 10px; background: #f7f9fb; color: #748094; }
@media (max-width: 900px) {
  .paper-publish-fields { grid-template-columns: 1fr 1fr; }
  .class-join-panel, .class-create-panel { align-items: stretch; flex-direction: column; }
  .my-paper-tabs { width: 100%; overflow-x: auto; }
  .my-paper-tabs button { white-space: nowrap; }
}

.teacher-paper-detail { width: min(960px, calc(100% - 36px)); margin: 30px auto 70px; display: grid; gap: 18px; }
.teacher-paper-detail-nav { display: flex; align-items: center; justify-content: space-between; }
.teacher-paper-detail-nav button, .teacher-answer-detail .stats-section-title button { border: 1px solid #d8e0e8; border-radius: 9px; padding: 9px 13px; background: #fff; color: #526176; cursor: pointer; font-weight: 750; }
.submission-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.submission-kpis > div { min-height: 92px; padding: 17px 20px; display: grid; align-content: center; gap: 6px; border: 1px solid #dfe5ec; border-radius: 14px; background: #fff; }
.submission-kpis span { color: #788597; font-size: 12px; }
.submission-kpis strong { color: #203147; font-size: 26px; }
.submission-list, .teacher-answer-detail { padding: 22px; border: 1px solid #dfe5ec; border-radius: 16px; background: #fff; }
.teacher-student-row { width: 100%; min-height: 70px; display: grid; grid-template-columns: 76px minmax(120px, .8fr) minmax(190px, 1fr) 160px; align-items: center; gap: 14px; padding: 13px 10px; border: 0; border-top: 1px solid #edf0f4; background: transparent; color: #2b3a4e; text-align: left; cursor: pointer; }
.teacher-student-row:first-of-type { margin-top: 12px; }
.teacher-student-row:disabled { cursor: default; }
.teacher-student-row:not(:disabled):hover, .teacher-student-row.selected { background: #f3f8ff; }
.teacher-student-row > b { font-size: 14px; }
.teacher-student-row > span:not(.submission-status) { display: grid; gap: 4px; }
.teacher-student-row > span strong { font-size: 14px; }
.teacher-student-row small, .teacher-student-row time { color: #7d8999; font-size: 11px; }
.teacher-student-row time { text-align: right; }
.submission-status { width: fit-content; padding: 5px 9px; border-radius: 999px; background: #eef1f5; color: #68768a; font-size: 10px; font-weight: 850; }
.teacher-student-row.submitted .submission-status { background: #e9f8f1; color: #13704f; }
.teacher-student-row.in_progress .submission-status { background: #edf4ff; color: #2f6fed; }
.teacher-answer-list { margin-top: 14px; display: grid; gap: 8px; }
.teacher-answer-row { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 13px 15px; border-radius: 11px; background: #f7f9fb; }
.teacher-answer-row > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 900; }
.teacher-answer-row.correct > span { background: #20a36f; }
.teacher-answer-row.incorrect > span { background: #d95656; }
.teacher-answer-row b { font-size: 13px; line-height: 1.5; }
.teacher-answer-row p { margin: 7px 0 0; color: #637185; font-size: 11px; }
.teacher-answer-row code { padding: 2px 5px; border-radius: 5px; background: #fff; color: #24354b; }
.teaching-tabs { margin: 0 0 22px; }
.teaching-papers { padding-top: 4px; }
.teacher-paper-content { padding: 20px; border: 1px solid #dfe5ec; border-radius: 14px; background: #fff; }
.teacher-paper-question-list { display: grid; gap: 8px; }
.teacher-paper-question { display: grid; grid-template-columns: minmax(68px, auto) 1fr auto; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 1px solid #e1e7ed; border-radius: 10px; background: #fbfcfe; color: #304055; text-align: left; cursor: pointer; }
.teacher-paper-question:hover { border-color: #a9cabc; background: #f3faf6; }
.teacher-paper-question b { color: #17664f; white-space: nowrap; }
.teacher-paper-question span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teacher-paper-question small { color: #7a8796; white-space: nowrap; }
@media (max-width: 760px) {
  .teacher-paper-detail { width: min(100% - 20px, 680px); margin-top: 12px; }
  .submission-kpis { grid-template-columns: 1fr 1fr; }
  .teacher-student-row { grid-template-columns: 70px 1fr; }
  .teacher-student-row > span:not(.submission-status), .teacher-student-row time { grid-column: 2; text-align: left; }
  .teacher-paper-question { grid-template-columns: 1fr auto; gap: 5px 10px; }
  .teacher-paper-question span { grid-column: 1 / -1; white-space: normal; }
}
.class-view-panel { padding: 11px 12px 12px; border: 1px solid #d5e3f8; border-radius: 11px; background: #f2f7ff; margin-bottom: 4px; }
.class-view-panel label { margin: 0 0 8px; color: var(--blue-dark); }
.class-view-note { display: block; margin-top: 7px; color: #7d8ea6; font-size: 11px; line-height: 1.5; }
.class-view-note b { color: var(--blue-dark); }
.class-view-note.error { color: #d05656; }
.class-picker-hint { color: var(--blue-dark); }

/* 题干/选项中的题目插图（洛谷真题图，本地托管于 /luogu-img/） */
img.q-figure { display: block; max-width: min(420px, 100%); margin: 10px 0 6px; border: 1px solid #e3e8f0; border-radius: 10px; background: #fff; padding: 6px; }
.question-option img.q-figure { max-width: min(260px, 100%); max-height: 180px; margin: 6px 0 0; }
.program-subquestion-text img.q-figure { margin: 10px 0 6px; }

/* 反馈站内信：标签页、消息气泡、未读红点 */
.feedback-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.feedback-tab { flex: 1; border: 1px solid #d9e2f0; background: #fff; border-radius: 8px; padding: 8px 10px; cursor: pointer; font: inherit; color: #5b6472; }
.feedback-tab.active { border-color: var(--blue); background: #edf4ff; color: var(--blue); font-weight: 600; }
.feedback-hint { font-size: 12.5px; color: #8a94a6; margin: 8px 0 0; }
.feedback-unread-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e5484d; margin-left: 6px; vertical-align: middle; }
.feedback-msgs { display: flex; flex-direction: column; gap: 10px; max-height: 300px; overflow-y: auto; }
.feedback-thread { border: 1px solid #e3e8f0; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; background: #fbfcfe; }
.feedback-thread > b { display: block; font-size: 13px; margin-bottom: 8px; }
.feedback-handled { font-size: 11px; color: #2f9e63; background: #e6f6ee; border-radius: 6px; padding: 1px 6px; margin-left: 6px; }
.feedback-msg { max-width: 88%; margin-bottom: 6px; padding: 7px 10px; border-radius: 10px; font-size: 13.5px; line-height: 1.5; }
.feedback-msg span { display: block; white-space: pre-wrap; word-break: break-word; }
.feedback-msg small { display: block; font-size: 11px; color: #98a2b3; margin-top: 3px; }
.feedback-msg.admin { background: #eef3fb; border-top-left-radius: 3px; }
.feedback-msg.mine { background: #e6f6ee; border-top-right-radius: 3px; margin-left: auto; }
.feedback-reply { display: flex; gap: 6px; margin-top: 8px; }
.feedback-reply input { flex: 1; border: 1px solid #d9e2f0; border-radius: 8px; padding: 7px 10px; font: inherit; font-size: 13px; }
.feedback-reply button { border: none; background: var(--blue); color: #fff; border-radius: 8px; padding: 7px 14px; cursor: pointer; font: inherit; font-size: 13px; }

.feedback-fab-dot { position: absolute; top: -6px; right: -4px; background: #e5484d; color: #fff; border-radius: 999px; font-size: 11px; font-style: normal; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 4px; font-weight: 700; }
.feedback-fab.has-unread { animation: feedback-pulse 2s infinite; }
@keyframes feedback-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0); } 50% { box-shadow: 0 0 0 6px rgba(229, 72, 77, 0.25); } }

/* 再次发布弹窗内的表单布局（覆盖发卷面板的 5 列 grid） */
.republish-card .paper-publish-fields { display: flex; flex-direction: column; gap: 10px; align-items: stretch; margin-top: 10px; }
.republish-card .paper-publish-submit { width: 100%; margin-top: 6px; white-space: nowrap; }

/* Search landing pages: public links and compact year navigation. */
.topbar nav a.active { color: var(--blue); }
.landing-cta, a.landing-mode { text-decoration: none; }
.landing-hero { padding: 30px 32px 28px; }
.landing-hero h1 { margin: 14px auto 12px; font-size: 38px; }
.landing-sub { margin-bottom: 18px; font-size: 15px; }
.landing-sub b { font-size: 19px; }
.home-papers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.home-paper-group { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.home-paper-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.home-paper-heading h2 { margin: 0; font-size: 17px; line-height: 1.5; }
.home-paper-heading h2 a { color: var(--navy); text-decoration: none; }
.home-paper-all { color: var(--blue-dark); font-size: 12px; text-decoration: none; white-space: nowrap; }
.home-paper-group p { margin: 6px 0 14px; color: var(--muted); font-size: 12px; }
.home-paper-years { display: flex; gap: 7px; flex-wrap: wrap; }
.home-paper-years a { min-width: 48px; padding: 9px 10px; border: 1px solid #dbe5f4; border-radius: 8px; color: var(--blue-dark); background: #f7faff; text-decoration: none; text-align: center; font-size: 13px; font-weight: 750; }
.home-paper-years a:hover, .paper-actions a:hover { border-color: var(--blue); background: #edf4ff; }
.catalog-crumb { margin-bottom: 18px; font-size: 13px; color: var(--muted); }
.catalog-crumb a { color: var(--blue-dark); text-decoration: none; }
.catalog-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
.catalog-tabs a { display: block; text-align: center; padding: 12px 14px; border-radius: 10px; font-size: 14px; font-weight: 750; color: var(--muted); text-decoration: none; }
.catalog-tabs a.active { background: #fff; color: var(--blue-dark); box-shadow: 0 4px 13px rgba(29,50,82,.1); }
.catalog-section { margin-top: 24px; }
.catalog-section > h2 { font-size: 19px; color: var(--navy); }
.paper-card-title { margin: 0; font-size: 17px; line-height: 1.6; }
.paper-card-title a { color: var(--navy); text-decoration: none; }
.paper-card-title a:hover { color: var(--blue); }
.paper-card-info { margin: 4px 0 12px; color: var(--muted); font-size: 12px; }
.paper-summary h1 { font-size: 22px; line-height: 1.5; }
.paper-summary a.paper-back { display: inline-block; text-decoration: none; color: #fff; }
.paper-actions a { display: block; border: 1px solid #cbd7e9; border-radius: 9px; padding: 9px 8px; background: #fff; color: #40536d; font-weight: 800; text-decoration: none; text-align: center; }
.home-papers a:focus-visible, .catalog-tabs a:focus-visible, .paper-card a:focus-visible { outline: 3px solid #83aaff; outline-offset: 3px; }
@media (max-width: 640px) {
  .landing { margin-top: 16px; gap: 12px; }
  .landing-hero { padding: 24px 14px; }
  .landing-hero h1 { font-size: 28px; }
  .landing-badge { font-size: 11px; letter-spacing: 1px; }
  .home-papers { grid-template-columns: 1fr; gap: 12px; }
  .home-paper-group { padding: 16px; }
  .home-paper-heading h2 { font-size: 16px; }
  .home-paper-years { gap: 6px; }
  .home-paper-years a { flex: 1 0 38px; min-width: 38px; padding: 9px 5px; font-size: 12px; }
  .catalog-tabs { display: grid; }
  .catalog-tabs a { padding: 10px 6px; font-size: 13px; }
}


/* Goal-based practice entry and navigation. */
.prep-context { max-width:1380px; margin:0 auto; padding:20px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--line); }
.prep-context label { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.prep-context label > span { color:var(--muted); font-size:12px; }
.prep-context select { border:1px solid #cddaf0; border-radius:10px; background:white; padding:10px 34px 10px 14px; font-size:15px; font-weight:800; color:var(--navy); cursor:pointer; }
.prep-context nav { display:flex; gap:8px; flex-wrap:wrap; }
.prep-context nav button,.prep-context nav a { border:0; background:transparent; border-radius:9px; padding:10px 16px; color:var(--muted); font-size:14px; font-weight:700; text-decoration:none; cursor:pointer; }
.prep-context nav .active { background:#e6efff; color:var(--blue-dark); }
.prep-context :focus-visible,.goal-card:focus-visible { outline:3px solid #91baff; outline-offset:3px; }
.landing-goals { position:relative; width:min(680px,100%); margin:28px auto 0; }
.goal-prompt { font-size:14px; font-weight:700; color:#526784; margin:0 0 16px; }
.goal-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.goal-card { text-align:left; border:1px solid #bbd0f5; background:#fff; border-radius:18px; padding:24px; cursor:pointer; box-shadow:0 8px 26px #1d4fbd0b; transition:transform .18s,border-color .18s; }
.goal-card:hover { transform:translateY(-3px); border-color:var(--blue); }
.goal-card .goal-level { display:inline-block; font-size:11px; font-weight:700; padding:4px 9px; border-radius:6px; color:#225ec4; background:#eaf2ff; }
.goal-card strong { display:block; font-size:24px; margin:14px 0 10px; letter-spacing:-.6px; color:var(--navy); }
.goal-description { display:block; color:var(--muted); font-size:12px; line-height:1.7; }
.goal-enter { display:flex; justify-content:space-between; align-items:center; padding-top:20px; margin-top:20px; border-top:1px solid var(--line); color:var(--blue-dark); font-size:14px; font-weight:750; }
.goal-enter b { font-size:21px; }
.goal-card.senior { border-color:#c7c2ec; }.goal-card.senior:hover { border-color:#7664be; }.senior .goal-level { color:#7052ae; background:#f0ecfb; }.senior .goal-enter { color:#7052ae; }
.goal-note { font-size:12px; color:#738299; margin:18px 0 0; }.continue-goal { border:0; background:transparent; color:var(--blue-dark); font-size:13px; cursor:pointer; margin-top:16px; padding:5px; }
.welcome-description { position:relative; color:#6b7e99; font-size:14px; margin:0 0 22px; }
.returning-hero .landing-sub { display:none; }
.resume-card { position:relative; display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; max-width:680px; margin:26px auto 30px; padding:26px 28px; text-align:left; border:1px solid #b8cff4; border-radius:18px; background:linear-gradient(115deg,#f0f6ff,#fff); box-shadow:0 10px 28px #244c8b0a; }
.resume-context { flex:1; min-width:0; }.resume-goal { font-size:12px; color:#3266b8; font-weight:700; }.resume-context h2 { color:var(--navy); font-size:23px; line-height:1.4; margin:10px 0 8px; overflow-wrap:anywhere; }.resume-context p { color:#697d98; font-size:12px; line-height:1.8; margin:0; }.resume-draft { display:block; color:#487869; margin-top:4px; }
.resume-actions { display:flex; flex-direction:column; gap:8px; align-items:stretch; flex-shrink:0; }.resume-primary { border:0; border-radius:10px; padding:14px 22px; background:var(--blue); color:#fff; font-size:15px; font-weight:700; cursor:pointer; box-shadow:0 5px 12px #316de32a; }.resume-primary span { margin-left:24px; }.resume-primary:hover { background:var(--blue-dark); }.resume-primary:disabled { opacity:.65; cursor:wait; }.resume-secondary { border:0; background:transparent; color:#687e9b; font-size:12px; padding:6px; cursor:pointer; }.resume-error { flex-basis:100%; color:#b34444; font-size:13px; margin:0; }.resume-actions button:focus-visible { outline:3px solid #91baff; outline-offset:3px; }
.returning-hero .goal-card { padding:18px 22px; box-shadow:none; }.returning-hero .goal-card strong { font-size:20px; margin:10px 0; }.returning-hero .goal-enter { margin-top:16px; padding-top:14px; }
@media(max-width:600px) { .resume-card { padding:22px 20px; gap:18px; margin:22px auto; }.resume-context { flex-basis:100%; }.resume-context h2 { font-size:21px; }.resume-actions { width:100%; }.returning-hero h1 { font-size:28px; }.welcome-description { font-size:13px; }.returning-hero .goal-enter { position:static; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }.returning-hero .goal-card { padding:16px 20px; } }
.home-teacher-entry { display:flex; justify-content:center; gap:16px; padding:12px 0 35px; font-size:13px; color:var(--muted); }.home-teacher-entry button { border:0; background:none; color:var(--blue-dark); cursor:pointer; }
.tree-heading > span { font-size:11px; color:var(--blue-dark); font-weight:700; }.tree-heading h2 { margin:7px 0; font-size:22px; }.tree-heading p { margin:0; font-size:12px; color:var(--muted); }
.filters .legacy-toggle { display:flex; align-items:center; gap:9px; color:var(--ink); font-size:13px; margin-top:12px; cursor:pointer; }.legacy-toggle input { width:16px; height:16px; accent-color:var(--blue); }.legacy-help { margin:6px 0 16px 25px; font-size:11px; color:var(--muted); }
.legacy-papers { margin-top:36px; border-top:1px solid var(--line); padding-top:8px; }.legacy-papers-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; border:0; background:transparent; color:var(--muted); font-size:13px; cursor:pointer; padding:18px 0; }.legacy-papers > p { font-size:12px; color:var(--muted); margin:0 0 20px; }
@media(max-width:760px) { .prep-context { padding:16px; align-items:stretch; flex-direction:column; gap:12px; }.prep-context nav { flex-wrap:nowrap; gap:2px; justify-content:space-between; }.prep-context nav button,.prep-context nav a { padding:9px 8px; font-size:12px; }.prep-context label { justify-content:space-between; }.goal-cards { gap:12px; }.goal-card { padding:18px; }.goal-card strong { font-size:20px; }.goal-description { font-size:11px; }.filters .topic-tree { display:block; max-height:340px; overflow:auto; }.home-teacher-entry { flex-wrap:wrap; gap:8px; } }
@media(max-width:430px) { .goal-cards { grid-template-columns:1fr; }.goal-card { position:relative; padding:18px 20px; }.goal-card strong { margin:8px 0; }.goal-enter { position:absolute; right:20px; top:22px; border:0; margin:0; padding:0; font-size:12px; gap:10px; }.landing-hero { padding-top:38px; }.goal-note { font-size:11px; } }

/* Compact primary navigation and optional user features. */
.compact-topbar { gap:24px; padding:0 max(24px,calc((100vw - 1440px)/2)); }
.compact-topbar .brand { flex-shrink:0; font-size:21px; white-space:nowrap; }
.compact-topbar .prep-context { max-width:none; margin:0; padding:0; border:0; flex:1; min-width:0; justify-content:flex-start; gap:28px; flex-direction:row; }
.compact-topbar .prep-context select { padding:9px 24px 9px 12px; font-size:13px; border-color:#e2e8f0; background:#f7f9fc; border-radius:8px; }
.compact-topbar .prep-context nav { gap:20px; flex-wrap:nowrap; white-space:nowrap; align-items:center; flex:0 1 auto; }
.compact-topbar .prep-context nav button,.compact-topbar .prep-context nav a { padding:25px 0 23px; border-radius:0; font-size:13px; color:#64748b; border-bottom:3px solid transparent; }
.compact-topbar .prep-context nav .active { background:none; color:var(--blue-dark); border-bottom-color:var(--blue); }
.compact-topbar .account-menu { flex-shrink:0; margin-left:auto; }.compact-topbar .account-name small { margin-left:8px; }.compact-topbar .settings-entry { color:var(--muted); }
.mobile-nav-toggle { display:none; border:0; background:transparent; font-size:20px; cursor:pointer; padding:5px; }
.feature-settings { margin:24px 0; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature-settings h3,.settings-account h3 { margin:0 0 8px; font-size:16px; }.feature-settings > p,.settings-account p { font-size:12px; line-height:1.7; color:var(--muted); }
.account-settings-card .setting-switch { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0; padding:17px 0; cursor:pointer; }
.setting-switch span { display:block; }.setting-switch b { font-size:14px; color:var(--ink); }.setting-switch small { display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:6px; }
.account-settings-card .setting-switch input { appearance:none; flex-shrink:0; width:40px; height:23px; border:0; border-radius:20px; background:#cbd5e1; padding:0; position:relative; cursor:pointer; transition:background .15s; }
.setting-switch input:before { content:''; position:absolute; left:3px; top:3px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0002; transition:transform .15s; }.account-settings-card .setting-switch input:checked { background:var(--blue); }.setting-switch input:checked:before { transform:translateX(17px); }.setting-switch input:disabled { opacity:.4; cursor:not-allowed; }.setting-switch input:focus-visible { outline:3px solid #91baff; outline-offset:3px; }
.settings-save-note { margin:4px 0 0; font-size:11px!important; }.settings-logout { width:100%; border:1px solid var(--line); border-radius:10px; background:#fff; padding:12px; color:var(--muted); margin-top:22px; cursor:pointer; }
@media(max-width:1200px) { .compact-topbar { gap:18px; padding:0 20px; }.compact-topbar .brand { font-size:19px; }.compact-topbar .prep-context { gap:20px; }.compact-topbar .prep-context nav { gap:14px; }.compact-topbar .prep-context nav button,.compact-topbar .prep-context nav a { font-size:12px; } }
@media(max-width:1050px) { .compact-topbar .brand b { display:inline; }.compact-topbar { gap:14px; }.compact-topbar .prep-context { gap:16px; }.compact-topbar .prep-context nav { gap:12px; } }
@media(max-width:850px) { .compact-topbar { height:62px; padding:0 16px; gap:12px; }.compact-topbar .prep-context { gap:0; }.compact-topbar .prep-context select { font-size:12px; padding:8px; }.compact-topbar .prep-context nav { display:none; }.compact-topbar .mobile-nav-toggle { display:block; }.compact-topbar.navigation-open .prep-context nav { display:flex; position:absolute; top:62px; left:0; right:0; padding:14px 20px; background:white; box-shadow:0 8px 16px #14223512; border-top:1px solid var(--line); flex-wrap:wrap; gap:8px 20px; }.compact-topbar.navigation-open .prep-context nav a,.compact-topbar.navigation-open .prep-context nav button { padding:10px 0; }.compact-topbar .account-name { font-size:12px; max-width:80px; }.compact-topbar .account-name span { display:none; }.compact-topbar .account-name small { margin:0; font-size:12px; }.practice-topbar .login-entry,.practice-topbar .account-primary { display:none; }.compact-topbar .home-context { flex:1; }.compact-topbar .sync-badge { position:absolute; top:62px; right:10px; background:white; } }

.goal-migration-note { margin:0 0 18px; padding:12px 16px; border:1px solid #dbe7fb; border-radius:10px; background:#f4f8ff; color:#526784; font-size:13px; line-height:1.8; }

/* A direct practice homepage, with the previous session first. */
.new-user-intro { margin:0 0 30px; padding:34px 24px 30px; border:1px solid #dce6f5; border-radius:16px; text-align:center; background:radial-gradient(ellipse at top left,#eaf2ff,transparent 65%),linear-gradient(120deg,#fff,#f8fbff); }
.intro-label { font-size:11px; font-weight:700; letter-spacing:1.5px; color:#58749c; }
.new-user-intro h1 { font-size:36px; line-height:1.35; letter-spacing:-1px; color:var(--navy); margin:18px 0 14px; }
.new-user-intro h1 b { color:var(--blue); }.new-user-intro p { margin:0; color:#647b99; font-size:13px; line-height:1.8; }
.intro-count { display:inline-block; min-width:4.4ch; font-size:18px; color:var(--navy); font-variant-numeric:tabular-nums; }
@media(max-width:650px) { .new-user-intro { padding:28px 16px; margin-bottom:26px; }.new-user-intro h1 { font-size:28px; margin:16px 0 12px; }.intro-label { font-size:10px; letter-spacing:1px; }.new-user-intro p { font-size:12px; } }
.landing.practice-home { display:block; width:100%; max-width:1040px; padding:38px 24px 48px; margin:0 auto; }
.home-section-title { margin:0 0 16px; font-size:17px; line-height:1.5; font-weight:750; color:#263d5c; }
.last-practice { margin-bottom:34px; }
.practice-home .resume-card { max-width:none; margin:0; padding:24px 28px; border-radius:14px; box-shadow:none; }
.practice-home .resume-context h2 { font-size:23px; margin:7px 0; }
.practice-home .resume-actions { min-width:166px; }
.practice-home .goal-card { padding:24px; border-radius:14px; cursor:default; box-shadow:none; }
.practice-home .goal-card:hover { transform:none; border-color:#bbd0f5; }
.practice-home .goal-card.senior:hover { border-color:#c7c2ec; }
.practice-home .goal-card h2 { color:var(--navy); font-size:23px; margin:14px 0 8px; letter-spacing:-.5px; }
.practice-home .goal-card p { font-size:13px; line-height:1.7; color:#75849b; margin:0; }
.goal-actions { display:flex; align-items:center; gap:18px; margin-top:24px; padding-top:18px; border-top:1px solid #e6edf6; }
.goal-actions button { cursor:pointer; font-size:14px; border:0; border-radius:8px; padding:11px 15px; }
.goal-actions a.goal-practice { cursor:pointer; font-size:14px; border-radius:8px; padding:11px 15px; text-decoration:none; display:inline-block; }
.editor-note { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin:14px 0 2px; padding:10px 14px; border:1px dashed #c9d6ea; border-radius:10px; background:#f7fafd; font-size:13px; line-height:1.7; }
.editor-note b { color:#44608c; font-size:12px; flex:none; }
.editor-note span { color:#4a5a70; }
.editor-note small { margin-left:auto; color:#93a2b5; font-size:11px; flex:none; }
.goal-practice { color:#245bbb; background:#eaf1fe; font-weight:700; }.goal-practice span { margin-left:24px; }.goal-practice:hover { background:#dfeafe; }
.senior .goal-practice { color:#6d53ad; background:#f0ecfa; }.senior .goal-practice:hover { background:#e9e1f8; }
.goal-actions .goal-papers { background:transparent; color:#617591; padding-left:0; padding-right:0; }.goal-papers:hover { color:var(--blue-dark); }
.goal-actions button:focus-visible { outline:3px solid #91baff; outline-offset:3px; }
.home-year-links { margin-top:34px; }.practice-home .home-papers { margin:0; }.practice-home .home-paper-group { box-shadow:none; border-radius:14px; padding:20px; }
.practice-home .home-paper-heading h2 { font-size:16px; }.home-bank-note { font-size:12px; color:#8390a3; margin:22px 0 0; line-height:1.8; }
@media(max-width:650px) {
  .landing.practice-home { padding:26px 16px 36px; }.practice-home .goal-cards,.practice-home .home-papers { grid-template-columns:1fr; gap:14px; }
  .practice-home .resume-card { padding:20px; gap:18px; }.practice-home .resume-context { flex-basis:100%; }.practice-home .resume-context h2 { font-size:21px; }.practice-home .resume-actions { width:100%; }
  .practice-home .goal-card { padding:20px; }.practice-home .goal-card h2 { font-size:21px; margin:12px 0 6px; }.goal-actions { margin-top:18px; padding-top:16px; gap:22px; }
  .last-practice,.home-year-links { margin-bottom:0; }.home-goals { margin-top:28px; }.practice-home > .home-goals:first-child { margin-top:0; }.home-year-links { margin-top:28px; }.home-bank-note { font-size:11px; }
}

/* Keep each paper collection inside its preparation goal. */
.goal-actions a { display:inline-flex; align-items:center; font-size:14px; border-radius:8px; padding:11px 15px; text-decoration:none; }
.goal-actions a:focus-visible,.goal-paper-section a:focus-visible { outline:3px solid #91baff; outline-offset:3px; }
.goal-paper-section { margin-top:22px; }
.goal-paper-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.goal-paper-heading h3 { margin:0; color:#526784; font-size:12px; font-weight:650; }
.goal-paper-heading > a { color:#617591; font-size:12px; text-decoration:none; }
.goal-paper-heading > a:hover { color:var(--blue-dark); }
.goal-card .home-paper-years a { min-width:0; flex:0 0 auto; padding:8px 10px; font-size:12px; }
.goal-card.senior .home-paper-years a { color:#7052ae; background:#faf8fd; border-color:#e4dff2; }
.goal-card.senior .home-paper-years a:hover { border-color:#9b87c8; background:#f0ecfa; }
.practice-home .goal-coming-soon { background:#fcfbfe; border-style:dashed; }
.goal-empty { margin-top:24px; padding:22px 0 0; border-top:1px solid #e6edf6; }
.goal-empty > span { display:inline-block; padding:7px 12px; border-radius:8px; color:#788399; background:#eef1f6; font-size:13px; }
.practice-home .goal-empty p { margin-top:12px; font-size:12px; }

.goal-empty-link{display:inline-block;margin-top:16px;color:#7052ae;font-size:12px;text-decoration:none}

@media(max-width:520px){.paper-library .paper-hero h1{font-size:26px;line-height:1.4}}

.result-filter-bar .paper-pdf-download { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--blue); border-radius: 9px; padding: 10px 15px; background: var(--blue); color: #fff; font-family: inherit; font-size: 12px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.result-filter-bar .paper-pdf-download:hover { background: var(--blue-dark); border-color: var(--blue-dark); }

/* Explain both rounds while keeping detailed first-round solutions prominent. */
.new-user-intro .intro-description{font-size:14px;line-height:1.9}.intro-description span{display:block}.new-user-intro .intro-inventory{margin-top:20px;font-size:12px;color:#71839b}.intro-inventory .intro-count{font-size:16px;margin-right:3px}@media(max-width:650px){.new-user-intro .intro-description{font-size:12px}.new-user-intro .intro-inventory{font-size:11px;margin-top:16px}}

/* Compact home cards keep the second-round year links closer to the first screen. */
.practice-home .goal-cards { gap:14px; }
.practice-home .home-section-title { margin-bottom:12px; }
.practice-home .goal-card { padding:18px 20px; }
.practice-home .goal-card h2 { font-size:22px; margin:6px 0 0; }
.practice-home .goal-actions { margin-top:12px; padding-top:10px; }
.practice-home .goal-actions button,.practice-home .goal-actions a { padding-top:8px; padding-bottom:8px; }
.practice-home .goal-paper-section { margin-top:10px; }
.goal-card.round2-goal > .goal-paper-section { margin-top:22px; padding-top:0; border-top:0; }
.practice-home .goal-paper-heading { justify-content:flex-end; margin-bottom:8px; }
.practice-home .goal-empty { margin-top:12px; padding-top:12px; }
.practice-home .goal-empty p { margin-top:8px; }
.practice-home .goal-empty-link { margin-top:10px; }
@media(min-width:651px) and (max-height:800px) {
  .landing.practice-home { padding-top:24px; }
  .practice-home .new-user-intro { padding:14px 20px; margin-bottom:18px; }
  .practice-home .new-user-intro h1 { font-size:30px; margin:8px 0 0; }
}

@media(min-width:651px) {
  .practice-home .goal-card > .goal-level { float:right; margin-left:12px; }
  .practice-home .goal-card h2 { margin-top:0; }
}

.practice-home .new-user-intro .intro-features { margin-top:10px; }

.result-actions:has(.paper-pdf-download) button.print-current { border:1px solid var(--line); background:#fff; color:#61718a; }
.result-actions:has(.paper-pdf-download) button.print-current:hover { background:#f5f7fa; }


.problem-panel > .result-filter-bar { padding: 14px 24px; min-height: 66px; }
.problem-panel > .result-filter-bar .result-actions { margin: 0; }
@media(max-width:600px) { .problem-panel > .result-filter-bar { padding: 14px 16px; gap: 12px; } }

/* Question utilities remain secondary to answering. */
.question-card .detail-toolbar .detail-print { border: 0; background: #eff4fb; color: var(--blue); font-weight: 650; box-shadow: none; }
.question-card .detail-toolbar .detail-print:hover { background: #e5eefc; color: var(--blue-dark); }
.question-card .answer-actions { align-items: center; }
@media(max-width:600px) { .question-card .answer-actions { gap: 6px; padding-left: 14px; padding-right: 14px; } .question-card .answer-actions button { padding: 10px 8px; font-size: 12px; white-space: nowrap; } }

.question-layout > .question-card, .question-card .program-subquestions { min-width: 0; }
@media(max-width:600px) { .program-subquestion .answer-box { margin-left: 8px; margin-right: 8px; } .program-subquestion .answer-actions { padding-left: 8px; padding-right: 8px; } }

.question-card .detail-toolbar { align-items: center; }
.question-card .detail-toolbar .back, .question-card .detail-toolbar .detail-print { display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 12px; line-height: 20px; white-space: nowrap; }

/* Stable shuffled practice order; does not apply to papers or exams. */
.result-actions .question-shuffle-toggle{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;padding:8px 2px;margin-right:4px}
.result-actions .question-shuffle-toggle span{font-size:12px;font-weight:650;color:var(--ink)}
.question-shuffle-toggle input{appearance:none;-webkit-appearance:none;position:relative;width:32px;height:19px;border:0;border-radius:20px;background:#c7d0dd;cursor:pointer;margin:0;flex:none;transition:background .15s}
.question-shuffle-toggle input::before{content:"";position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .15s}
.question-shuffle-toggle input:checked{background:var(--blue)}
.question-shuffle-toggle input:checked::before{transform:translateX(13px)}
.question-shuffle-toggle input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.result-filter-bar .result-actions{flex-wrap:wrap}

/* User settings categories. */
.account-settings-tabs{display:flex;gap:26px;margin-top:24px;border-bottom:1px solid var(--line)}
.account-settings-tabs [role="tab"]{position:relative;border:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:650;padding:0 0 13px;cursor:pointer}
.account-settings-tabs [role="tab"][aria-selected="true"]{color:var(--blue)}
.account-settings-tabs [role="tab"][aria-selected="true"]::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--blue);border-radius:2px}
.account-settings-tabs [role="tab"]:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.account-settings-panel>.feature-settings{margin:0;padding:22px 0 0;border:0}
.account-settings-panel>.feature-settings>h3{display:none}
.account-settings-panel>.feature-settings>p:first-of-type{margin-top:0}
.account-settings-panel>.settings-account{padding-top:24px}

/* First-attempt score-weighted learning metric. */
.stats-kpis-weighted{grid-template-columns:repeat(5,minmax(0,1fr))}
.stats-kpis-weighted>div{padding:18px 16px}
.stats-kpis-weighted small+small{margin-top:5px}
@media(max-width:1100px){.stats-kpis-weighted{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-kpis-weighted>div:last-child{grid-column:1/-1}}

/* Compact learning overview and full-width topic results. */
.stats-breakdown-heading{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(180px,1fr) minmax(260px,1.3fr);align-items:start;gap:24px;margin-bottom:22px}
.stats-completion-slot{grid-column:1;grid-row:1;grid-template-columns:1fr;margin:0}
.stats-completion-slot .breakdown-source-card{width:100%;max-width:none}
.stats-completion-slot .breakdown-source-card>strong{font-size:30px;line-height:1.2}
.stats-overview-types{grid-column:2;grid-row:1;min-width:0}
.stats-overview-types .breakdown-subtitle{gap:6px;margin-bottom:10px}
.stats-overview-types .breakdown-subtitle h3{font-size:12px}
.stats-overview-types .breakdown-subtitle>span{font-size:9px}
.stats-overview-types .breakdown-type-list{gap:8px}
.stats-rate-summary{grid-column:3;grid-row:1;min-width:0}
.stats-rate-period{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.stats-rate-period>span{font-size:10px;color:var(--muted);white-space:nowrap}
.stats-rate-period .stats-range{padding:3px;gap:2px;white-space:nowrap}
.stats-rate-period .stats-range button{padding:6px 7px;font-size:11px}
.stats-rate-values{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.stats-rate-values>div{display:grid;align-content:start;gap:7px}
.stats-rate-values span{font-size:11px;color:var(--muted)}
.stats-rate-values strong{font-size:30px;line-height:1.2;color:var(--navy)}
.stats-rate-values small{font-size:10px;line-height:1.5;color:var(--muted)}
.stats-rate-scope{margin:14px 0 0;font-size:10px;line-height:1.6;color:var(--muted)}
.topic-first-score strong{display:block;font-size:13px;color:var(--navy)}

.breakdown-columns.breakdown-topics-full{grid-template-columns:minmax(0,1fr)}
.breakdown-topics-full .breakdown-topic-wrap{max-height:520px}
@media(max-width:760px){
.stats-breakdown-heading{grid-template-columns:1fr;gap:18px}
.stats-completion-slot{grid-column:1;grid-row:1}
.stats-overview-types{grid-column:1;grid-row:2}
.stats-rate-summary{grid-column:1;grid-row:3;padding-top:18px;border-top:1px solid var(--line)}
.stats-rate-values strong,.stats-completion-slot .breakdown-source-card>strong{font-size:28px}
}

/* One completion card includes the overall total and question-type breakdown. */
.stats-breakdown-heading{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr)}
.stats-completion-slot{grid-template-columns:minmax(130px,.7fr) minmax(180px,1fr);align-items:start;gap:18px;padding:16px;border:1px solid #cad9f8;border-radius:13px;background:#f5f8ff}
.stats-completion-slot:empty{display:none}
.stats-completion-slot .breakdown-source-card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.stats-completion-slot .breakdown-source-card:hover{background:transparent}
.stats-completion-slot .stats-overview-types{grid-column:2;grid-row:1;padding-left:18px;border-left:1px solid #dce5f5}
.stats-rate-summary{grid-column:2;padding-top:8px}
@media(max-width:760px){
.stats-breakdown-heading{grid-template-columns:1fr}
.stats-completion-slot{grid-template-columns:1fr;gap:16px}
.stats-completion-slot .stats-overview-types{grid-column:1;grid-row:2;padding:14px 0 0;border-left:0;border-top:1px solid #dce5f5}
.stats-rate-summary{grid-column:1;grid-row:2;padding-top:18px}
}

/* Compact topic comparison without duplicate completion percentages. */
.breakdown-topics-full .breakdown-topic-wrap th{padding:8px 12px}
.breakdown-topics-full .breakdown-topic-wrap td{padding:7px 12px;line-height:1.5}
.breakdown-topics-full .breakdown-topic-wrap th:first-child{width:50%}
.breakdown-topics-full .breakdown-topic-wrap th:nth-child(2){width:25%}
.breakdown-topics-full .topic-first-score strong{font-size:12px;line-height:1.5}

/* Read each topic column top to bottom; stack the same order on small screens. */
.stats-topic-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.breakdown-topics-full .stats-topic-columns .breakdown-topic-wrap{max-height:none;min-width:0}
@media(max-width:760px){.stats-topic-columns{grid-template-columns:1fr;gap:12px}}

/* Show practice coverage visually and keep first-attempt performance separate. */
.stats-type-table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}
.stats-type-table thead th{padding:0 0 9px;color:var(--muted);font-size:10px;font-weight:500;white-space:nowrap}
.stats-type-table tbody th,.stats-type-table tbody td{padding:9px 0;border-top:1px solid #e2e9f5;white-space:nowrap}
.stats-type-table th+th,.stats-type-table td{padding-left:10px}
.stats-type-table tbody th{font-size:13px;font-weight:400;line-height:1.6;color:#334155}
.stats-type-table td:last-child{color:var(--navy)}
.topic-completion{display:grid;gap:5px;min-width:110px}
.topic-completion span{font-size:10px;color:var(--muted)}
.topic-completion i{display:block;height:4px;background:#e9edf4;border-radius:4px;overflow:hidden}
.topic-completion em{display:block;height:100%;border-radius:inherit;background:#719ded}
.stats-type-table .type-completion{min-width:0;width:calc(100% - 16px);max-width:180px}
.stats-type-table .type-completion span{font-size:11px}
.breakdown-topics-full .breakdown-topic-wrap th:first-child{width:44%}
.breakdown-topics-full .breakdown-topic-wrap th:nth-child(2){width:32%}
.breakdown-topics-full .breakdown-topic-wrap td{padding-top:8px;padding-bottom:8px}

/* One all-history overview; period selection belongs to the daily table. */
.stats-breakdown-heading{grid-template-columns:minmax(0,1fr)}
.stats-completion-slot{grid-template-columns:minmax(150px,1fr) minmax(0,1fr);gap:20px 28px;padding:20px}
.stats-completion-slot .breakdown-source-card{max-width:280px}
.stats-completion-slot .stats-rate-summary{grid-column:2;grid-row:1;padding:0;border:0}
.stats-completion-slot .stats-rate-values{gap:28px}
.stats-completion-slot .stats-overview-types{grid-column:1 / -1;grid-row:2;padding:14px 0 0;border-left:0;border-top:1px solid #dce5f5}
.stats-completion-slot .stats-type-table{table-layout:fixed}
.stats-completion-slot .stats-type-table th,.stats-completion-slot .stats-type-table td{padding-left:0}
.stats-detail .stats-range{flex-shrink:0}
@media(max-width:760px){
.stats-completion-slot{grid-template-columns:1fr;padding:16px;gap:18px}
.stats-completion-slot .breakdown-source-card{max-width:none}
.stats-completion-slot .stats-rate-summary{grid-column:1;grid-row:2}
.stats-completion-slot .stats-overview-types{grid-row:3}
.stats-completion-slot .stats-rate-values{gap:14px}
}

.stats-topic-order{display:flex;gap:2px;padding:3px;border-radius:8px;background:#f1f4f9}
.stats-topic-order button{border:0;border-radius:6px;background:transparent;padding:5px 9px;color:var(--muted);font-size:11px;white-space:nowrap;cursor:pointer}
.stats-topic-order button[aria-pressed="true"]{background:white;color:var(--blue);box-shadow:0 1px 4px #223b6514}
.stats-topic-order button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:420px){.stats-topic-order button{padding:5px 6px;font-size:10px}}

.breakdown-topics-full .breakdown-topic-wrap td.topic-name{font-size:13px;font-weight:400;line-height:1.6;color:#334155}

.topic-name .stats-topic-practice{color:inherit;font:inherit;text-decoration:none;text-underline-offset:3px}
.topic-name .stats-topic-practice:hover{text-decoration:underline}
.topic-name .stats-topic-practice:focus-visible{outline:2px solid var(--blue);outline-offset:3px;text-decoration:underline;border-radius:2px}


/* Website updates and compact account entry. */
.account-menu { gap: 8px; }
.account-menu .website-updates-entry { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 40px; width: 40px; height: 40px; border: 0; padding: 0; background: transparent; color: #596779; }
.message-envelope { display: block; flex-shrink: 0; transform: translateY(1px); }
.account-menu .updates-dot { transform: translateY(1px); }
.account-menu .website-updates-entry:hover { color: var(--blue); }
.updates-dot { position: absolute; top: 8px; right: 7px; width: 6px; height: 6px; border-radius: 50%; background: #e36b5d; box-shadow: 0 0 0 2px #fff; pointer-events: none; }
.account-divider { width: 1px; height: 14px; background: #e1e6ed; }
.account-dropdown-wrap { position: relative; }
.account-menu button.account-name { display: flex; align-items: center; gap: 6px; max-width: 140px; padding: 7px 5px; background: transparent; font-size: 13px; font-weight: 400; }
.compact-topbar .account-name span { display: block; overflow: hidden; text-overflow: ellipsis; }
.account-name .account-chevron { display: block; align-self: center; color: #8692a2; flex: 0 0 12px; width: 12px; height: 12px; }
.account-menu button.account-name:hover, .account-menu button.account-name[aria-expanded="true"] { background: #f1f4f8; }
.account-dropdown { position: absolute; top: calc(100% + 8px); right: 0; min-width: 148px; padding: 5px; background: #fff; border: 1px solid #e2e7ee; border-radius: 12px; box-shadow: 0 10px 35px #263d5826; z-index: 110; }
.account-menu .account-dropdown button { display: block; width: 100%; text-align: left; border: 0; padding: 10px 12px; font-size: 13px; font-weight: 400; border-radius: 7px; }
.account-menu .account-dropdown button:hover, .account-menu .account-dropdown button:focus-visible { background: #f1f5fa; color: #2464b5; }
.account-menu button:focus-visible, .website-updates-card button:focus-visible { outline: 2px solid #4279b9; outline-offset: 3px; }
.website-updates-card { width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 64px); display: flex; flex-direction: column; border: 1px solid #e3e8ef; background: #fff; border-radius: 18px; box-shadow: 0 24px 80px #10243b33; overflow: hidden; }
.website-updates-heading { display: flex; align-items: flex-start; justify-content: space-between; padding: 25px 28px 18px; border-bottom: 1px solid #edf0f4; }
.website-updates-heading h2 { margin: 0; font-size: 21px; font-weight: 600; color: #25364a; }
.website-updates-heading p { margin: 8px 0 0; font-size: 13px; color: #8290a0; }
.updates-close { background: transparent; border: 0; color: #8390a0; width: 30px; height: 30px; font-size: 25px; cursor: pointer; border-radius: 6px; }
.updates-close:hover { background: #f1f4f8; }
.website-updates-list { overflow-y: auto; padding: 0 28px; }
.website-update-item { padding: 23px 0; }
.website-update-item + .website-update-item { border-top: 1px solid #edf0f4; }
.website-update-item time { font-size: 12px; color: #8895a5; }
.website-update-item h3 { margin: 8px 0 10px; color: #34465c; font-size: 16px; line-height: 1.6; font-weight: 500; }
.website-update-item p { margin: 0 0 13px; font-size: 14px; line-height: 1.8; color: #69788a; }
.update-action, .updates-retry, .updates-read-error button { border: 0; background: transparent; color: #3274b9; padding: 3px 0; cursor: pointer; font-size: 13px; }
.update-action:hover { text-decoration: underline; }
.updates-state { padding: 20px 0; color: #748195; font-size: 14px; }
.updates-retry { margin-bottom: 20px; }
.updates-read-error { margin: 0; padding: 10px 28px; border-top: 1px solid #edf0f4; color: #a05f35; font-size: 12px; }
@media(max-width:850px) {
  .compact-topbar { gap: 8px; padding-left: 12px; padding-right: 12px; }
  .compact-topbar .account-menu { gap: 5px; }
  .compact-topbar .account-menu button.account-name { max-width: 80px; font-size: 12px; gap: 3px; padding: 7px 3px; }
  .account-menu .website-updates-entry { flex-basis: 44px; width: 44px; height: 44px; }
  .account-menu .updates-dot { top: 10px; right: 9px; }
  .practice-topbar .login-entry { display: inline-block; }
  .practice-topbar .account-primary { display: none; }
  .website-updates-heading { padding: 22px 20px 18px; }
  .website-updates-list { padding: 0 20px; }
}
@media(max-width:380px) {
  .compact-topbar .prep-context select { max-width: 99px; padding-left: 4px; padding-right: 4px; }
  .compact-topbar .account-menu button.account-name { max-width: 58px; }
  .compact-topbar { gap: 5px; padding-left: 8px; padding-right: 8px; }
}

/* Selected AK CSP wordmark (option 06). */
.compact-topbar .brand { display:flex; align-items:center; }
.compact-topbar .brand-logo { display:block; width:104px; height:32px; }
@media(max-width:650px) {
  .compact-topbar .brand-logo { width:94px; height:30px; }
}

.website-update-item p { white-space: pre-wrap; overflow-wrap: anywhere; }

/* One feedback entry for the current question, following related practice. */
.question-feedback-entry { padding: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.question-feedback-prompt { color: var(--muted); font-size: 14px; font-weight: 400; line-height: 1.5; }
.question-feedback-link { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; max-width: 100%; border: 0; border-radius: 9px; padding: 6px 16px; background: var(--blue); color: #fff; font: inherit; font-size: 13px; font-weight: 850; line-height: 1.5; cursor: pointer; }
.question-feedback-link:hover { background: var(--blue-dark); color: #fff; }
.question-feedback-link:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.question-feedback-unread { display: inline-block; width: 7px; height: 7px; margin-left: 3px; border-radius: 50%; background: #e5484d; }
@media print { .question-feedback-entry { display: none; } }

/* ---- NOI 大纲 2025 知识树（级别→板块→分组，条目默认收起） ---- */
.syllabus-level h4 { font-size: 12px; color: var(--blue-dark, #1d4ed8); margin: 14px 0 4px; font-weight: 900; letter-spacing: .04em; }
.syllabus-level h4:first-child { margin-top: 2px; }
.node-row { position: relative; }
.node-row .topic-link { padding-right: 30px; }
.node-items-toggle { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; border: 0; border-radius: 6px; background: transparent; color: #8a96a7; font-size: 12px; cursor: pointer; line-height: 1; }
.node-items-toggle:hover { background: #f4f7fb; color: var(--blue-dark, #1d4ed8); }
.node-items { margin: 2px 0 8px 10px; padding: 8px 10px; border-left: 2px solid #e6ecf5; background: #f9fbfe; border-radius: 0 8px 8px 0; }
.node-items p { margin: 3px 0; font-size: 11.5px; color: #5b6a7d; line-height: 1.55; }
.node-items p:first-child { margin-top: 0; }
.syllabus-crumb { color: var(--blue, #2563eb); text-decoration: none; font-weight: 650; }
.syllabus-crumb:hover { text-decoration: underline; }
.syllabus-diff { display: inline-block; margin-left: 8px; padding: 1px 7px; border-radius: 999px; background: #fff4e5; color: #b45309; font-size: 11px; font-weight: 800; }

/* Manual review membership does not change answer status. */
.question-card .answer-actions { flex-wrap: wrap; }
.detail-wrong-actions { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.answer-actions .detail-wrong-add { border: 1px solid #cbd5e1; background: #fff; color: #334155; font-weight: 600; }
.answer-actions .detail-wrong-add:hover:not(:disabled) { border-color: #94a3b8; background: #f8fafc; }
.answer-actions .detail-wrong-add.is-added { color: #475569; background: #f1f5f9; border-color: #e2e8f0; opacity: 1; cursor: default; }
.answer-actions .detail-wrong-remove { border: 0; background: transparent; color: #64748b; padding-left: 6px; padding-right: 6px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.detail-wrong-error { color: #b91c1c; font-size: 12px; }
.paper-lib-tabs { margin-top: 18px; }
.publish-target-fields { display: grid; gap: 10px; margin: 14px 0 4px; }
.publish-target-fields label { display: grid; gap: 5px; font-size: 12px; font-weight: 700; color: var(--muted); text-align: left; }
.publish-target-fields input { border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; font-size: 13px; background: #fff; color: var(--ink); }
.basket-publish { border: 1px solid var(--blue) !important; background: var(--blue) !important; color: #fff !important; }
.paper-lib-delete { border-color: #eed3d0 !important; color: #b34545 !important; background: #fff !important; }
.paper-lib-delete:hover { background: #fdf3f2 !important; border-color: #b34545 !important; }
.publish-target-class { position: relative; }
.publish-target-class.selected { border-color: var(--blue); background: #f0f6ff; }
.publish-target-class.selected i { position: absolute; right: 14px; font-style: normal; color: var(--blue); font-weight: 900; }
.publish-confirm { margin-top: 16px; border: 1px solid var(--blue); background: var(--blue); color: #fff; border-radius: 9px; padding: 12px 16px; font-size: 14px; font-weight: 850; cursor: pointer; width: 100%; }
.publish-confirm:disabled { opacity: .45; cursor: not-allowed; }

.paper-lib-draft { margin-left: 8px; font-style: normal; font-size: 10px; font-weight: 800; color: #b07a2a; background: #fdf6e8; border: 1px solid #f0ddb8; border-radius: 6px; padding: 2px 7px; vertical-align: 2px; }

/* 班级卡内试卷行：两端紧凑，消除标题与操作之间的大留白 */
.class-paper-row { gap: 12px; }
.class-paper-row > div:first-child { display: grid; gap: 2px; min-width: 0; }
.class-paper-row .class-paper-actions { margin-left: auto; }
.teaching-page .class-papers { max-width: 760px; }
/* 班级卡头：右侧放班级码与学生数 */
.class-head-side { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: flex-end; }
.class-head-side .class-code-line { margin: 0; }
.class-card-actions { display: flex; gap: 10px; margin: 10px 0 14px; }
.class-card-actions .class-assign { margin: 0; }
/* 学生详情：逐题作答展开 */
.student-paper-row.expandable { cursor: pointer; }
.student-paper-row.expandable:hover b { color: var(--blue-dark); }
.student-answers { display: grid; gap: 6px; padding: 10px 12px; border-top: 1px dashed var(--line); }
.student-answer-row { display: flex; align-items: center; gap: 10px; font-size: 12px; }
.detail-q-no { flex: 0 0 96px; color: var(--muted); font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-q-mark { flex: 0 0 34px; text-align: center; border-radius: 6px; padding: 1px 6px; font-weight: 800; }
.detail-q-mark.ok { color: #17724f; background: #e7f6ee; }
.detail-q-mark.no { color: #b34545; background: #fdeeec; }
.detail-q-mark.empty { color: #7a8698; background: #eef1f5; font-size: 11px; }
.detail-q-answer { font: 800 12px/1.4 Consolas,monospace; color: var(--navy); word-break: break-all; }
.detail-q-expected { margin-left: auto; color: var(--muted); font-size: 11px; }

/* Teacher class workspace: roster and assignments stay separate from answer review. */
.teacher-workspace .class-page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:28px 0 22px; }
.teacher-workspace .class-page-heading h1 { margin:0 0 8px; font-size:28px; font-weight:600; letter-spacing:-.5px; }
.teacher-workspace .class-page-heading p { margin:0; color:#758195; font-size:14px; }
.class-secondary-button,.class-primary-button { padding:10px 16px; border-radius:9px; border:1px solid #dce3eb; background:#fff; color:#35465d; cursor:pointer; font-size:14px; white-space:nowrap; }
.class-primary-button { background:#2563eb; border-color:#2563eb; color:#fff; }
.class-primary-button:hover { background:#1d4ed8; }
.teacher-workspace .class-create-panel { align-items:center; background:#fff; padding:18px 22px; }
.teacher-workspace .class-create-panel label { font-size:14px; }
.teacher-workspace .class-create-panel input { flex:1; min-width:0; }
.teacher-workspace .class-create-panel button { background:#2563eb; font-weight:500; }
.teacher-workspace .teacher-class-card { padding:0; overflow:hidden; border-color:#dfe5ee; box-shadow:0 3px 16px #253b5610; }
.class-workspace-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 26px; border-bottom:1px solid #e9edf3; }
.teacher-workspace .class-workspace-header h2 { font-size:21px; font-weight:600; margin:0 0 10px; }
.teacher-workspace .class-code-line { margin:0; flex-wrap:wrap; }
.teacher-workspace .class-code-line span,.teacher-workspace .class-code-line button { font-size:12px; font-weight:400; }
.teacher-workspace .class-code-line code { font-weight:500; background:#f2f5f9; }
.class-workspace-body { display:grid; grid-template-columns:265px minmax(0,1fr); min-height:290px; }
.class-roster { padding:22px 14px; background:#fafbfe; border-right:1px solid #e9edf3; }
.class-section-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:20px; }
.class-section-heading h3 { margin:0; font-size:16px; font-weight:500; color:#27364c; overflow-wrap:anywhere; }
.class-section-heading h3 > span { color:#7c8aa0; font-size:13px; margin-left:6px; }
.class-section-heading p { margin:6px 0 0; font-size:13px; color:#7c8799; }
.class-roster .class-section-heading { padding:0 10px; }
.teacher-workspace .class-roster ul { margin:0; max-height:480px; overflow-y:auto; }
.teacher-workspace .class-roster li { display:block; border:0; padding:0; margin-bottom:4px; }
.class-roster-student { display:flex; align-items:center; gap:11px; width:100%; padding:12px 10px; border:1px solid transparent; border-radius:10px; background:transparent; text-align:left; cursor:pointer; }
.class-roster-student:hover { background:#f0f4fa; }
.class-roster-student.selected { border-color:#d9e6fc; background:#edf4ff; }
.student-avatar { flex:0 0 34px; height:34px; display:grid; place-items:center; border-radius:10px; background:#e8edf5; color:#667996; font-size:15px; }
.selected .student-avatar { background:#dce9ff; color:#2563eb; }
.student-name { color:#34435a; font-size:15px; overflow-wrap:anywhere; min-width:0; }
.teacher-workspace .student-name small { display:block; margin-top:4px; font-size:12px; font-weight:400; }
.student-chevron { margin-left:auto; color:#97a6b9; font-size:22px; }
.class-workspace-content { padding:24px 26px; min-width:0; }
.class-text-button { background:none; border:0; color:#557295; font-size:13px; padding:5px 0; cursor:pointer; white-space:nowrap; }
.class-text-button:hover { color:#2563eb; text-decoration:underline; }
.class-workspace-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 26px; border-top:1px solid #eef1f5; color:#8a95a6; font-size:12px; }
.class-workspace-footer .class-danger { color:#8a95a6; font-size:12px; }
.class-workspace-footer .class-danger:hover { color:#bd4242; }
.class-work-empty { padding:32px 12px; color:#8692a5; font-size:14px; line-height:1.8; text-align:center; }
.class-work-empty.error { color:#b34545; }
.class-work-empty button { display:block; margin:12px auto; }
.teacher-workspace .class-papers { margin:0; padding:0; border:0; gap:0; }
.teacher-workspace .class-paper-row { padding:18px 0; border-bottom:1px solid #edf0f5; row-gap:14px; }
.teacher-workspace .class-paper-row:first-child { padding-top:0; }
.teacher-workspace .class-paper-row:last-child { border:0; }
.teacher-workspace .class-paper-row b { font-size:15px; font-weight:400; line-height:1.6; }
.teacher-workspace .class-paper-row small { font-size:12px; margin-top:7px; }
.teacher-workspace .class-paper-actions button { font-size:12px; font-weight:400; padding:6px 10px; }
.student-work-summary { display:grid; grid-template-columns:repeat(3,1fr); padding:16px 20px; border-radius:10px; background:#f7f9fc; margin-bottom:10px; }
.student-work-summary > div { display:grid; gap:6px; }
.student-work-summary span { color:#7b889b; font-size:12px; }
.student-work-summary strong { color:#324158; font-size:22px; font-weight:500; }
.student-work-summary small { font-size:12px; font-weight:400; }
.student-work-row { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #edf0f5; padding:20px 0; }
.student-work-row:last-child { border:0; }
.student-work-title { min-width:0; }
.student-work-title h4 { margin:8px 0 6px; font-size:15px; font-weight:400; color:#304057; line-height:1.5; overflow-wrap:anywhere; }
.student-work-title p { margin:0; font-size:12px; line-height:1.7; }
.work-status { font-size:11px; padding:3px 7px; border-radius:4px; background:#f0f2f5; color:#7b8798; }
.work-status.submitted { background:#eaf7f1; color:#24805e; }
.work-status.in_progress { background:#fff5e2; color:#a1782d; }
.student-work-result { display:grid; justify-items:end; gap:8px; flex-shrink:0; }
.student-work-score { font-size:24px; font-weight:500; color:#31415a; }
.student-work-score small { font-size:12px; font-weight:400; }
.class-view-answer { padding:7px 11px; border-radius:7px; border:1px solid #d8e5fc; background:#f5f8ff; color:#2563eb; font-size:13px; cursor:pointer; }
.class-view-answer:hover { background:#eaf1ff; }
.student-work-pending { font-size:13px; color:#96a1b0; }
.student-answer-dialog { width:min(840px,calc(100vw - 40px)); max-height:calc(100dvh - 64px); padding:0; margin:auto; border:0; border-radius:18px; box-shadow:0 24px 90px #14284240; color:#304057; background:white; overflow:hidden; }
.student-answer-dialog[open] { display:flex; flex-direction:column; }
.student-answer-dialog::backdrop { background:#1c293966; backdrop-filter:blur(3px); }
.answer-dialog-header { flex-shrink:0; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 28px 18px; }
.answer-dialog-header p { margin:0 0 8px; color:#7c889b; font-size:13px; }
.answer-dialog-header h2 { margin:0; font-size:22px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.answer-dialog-close { flex:0 0 34px; width:34px; height:34px; border:0; border-radius:8px; font-size:25px; color:#7d899b; background:#f3f5f8; cursor:pointer; }
.answer-dialog-summary { flex-shrink:0; display:flex; align-items:center; gap:38px; padding:0 28px 20px; border-bottom:1px solid #e9edf3; }
.answer-dialog-summary > div { display:grid; gap:5px; }
.answer-dialog-summary span { font-size:12px; color:#7e8ba0; }
.answer-dialog-summary strong { font-size:26px; font-weight:500; color:#2f476d; }
.answer-dialog-summary small { font-size:13px; color:#7e8ba0; font-weight:400; }
.answer-dialog-summary p { margin-left:auto; color:#8a96a8; font-size:12px; }
.answer-dialog-body { overflow-y:auto; overscroll-behavior:contain; min-height:0; padding:8px 28px 24px; }
.answer-review-row { padding:20px 0; border-bottom:1px solid #edf0f5; }
.answer-review-row:last-child { border:0; }
.answer-review-title { display:flex; align-items:baseline; gap:12px; }
.answer-review-number { color:#8a97aa; flex-shrink:0; font-size:13px; }
.answer-review-title h3 { font-size:15px; line-height:1.7; font-weight:400; margin:0; flex:1; overflow-wrap:anywhere; }
.answer-review-status { font-size:12px; white-space:nowrap; color:#8794a8; }
.correct .answer-review-status { color:#21825c; }
.incorrect .answer-review-status { color:#ce5656; }
.answer-review-values { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0 0 28px; }
.answer-review-values > div { background:#f7f9fc; border-radius:8px; padding:10px 14px; display:flex; gap:12px; align-items:baseline; }
.answer-review-values span { color:#8591a4; font-size:12px; flex-shrink:0; }
.answer-review-values strong { font-weight:500; font-size:14px; overflow-wrap:anywhere; }
.incorrect .answer-review-values > div:first-child { background:#fff5f4; color:#bd5252; }
.class-roster-student:focus-visible,.class-view-answer:focus-visible,.answer-dialog-close:focus-visible { outline:2px solid #2563eb; outline-offset:2px; }
@media(max-width:760px) {
 .class-workspace-body { grid-template-columns:1fr; }
 .class-roster { border-right:0; border-bottom:1px solid #e9edf3; padding:18px 16px; }
 .teacher-workspace .class-roster ul { display:flex; gap:8px; max-height:none; overflow-x:auto; }
 .teacher-workspace .class-roster li { flex:0 0 auto; max-width:220px; }
 .student-chevron,.class-roster .student-name small { display:none; }
 .class-roster .class-section-heading { margin-bottom:12px; padding:0; }
 .class-workspace-header,.class-workspace-content { padding:20px 16px; }
 .class-workspace-header { align-items:flex-start; }
 .teacher-workspace .class-page-heading { gap:10px; }
 .teacher-workspace .class-page-heading h1 { font-size:24px; }
 .teacher-workspace .class-page-heading p { font-size:12px; }
 .class-workspace-header .class-primary-button { font-size:12px; padding:9px 10px; }
 .student-work-row { gap:12px; }
 .student-answer-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 24px); border-radius:14px; }
 .answer-dialog-header { padding:20px 16px 16px; }
 .answer-dialog-header h2 { font-size:19px; }
 .answer-dialog-summary { padding:0 16px 16px; gap:24px; flex-wrap:wrap; }
 .answer-dialog-summary p { margin:0; flex-basis:100%; }
 .answer-dialog-body { padding:0 16px 16px; }
 .answer-review-values { margin-left:0; gap:8px; }
 .answer-review-values > div { display:grid; gap:5px; padding:10px; }
}

/* 「← 全部作业」标题右侧白底描边按钮（次级操作） */
.class-all-work { padding: 7px 13px; border: 1px solid #dce3eb; border-radius: 8px; background: #fff; color: #35465d; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.class-all-work:hover { border-color: #2563eb; color: #2563eb; background: #f5f8ff; }

.class-code-reset { border: 0; background: none; padding: 0; color: #557295; font-size: 12px; cursor: pointer; text-decoration: underline; }
.class-code-reset:hover { color: #2563eb; }

/* Feedback 90: reversible removal and explicit exam-review scope. */
.wrong-removal-toast { position: fixed; z-index: 100; bottom: 24px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; width: max-content; max-width: calc(100vw - 32px); padding: 12px 16px; border: 1px solid #cad7e7; border-radius: 12px; background: #fff; color: #24364d; box-shadow: 0 6px 28px #20365026; }
.wrong-removal-toast span { flex: 1; min-width: 0; }
.wrong-removal-toast button { min-height: 40px; flex-shrink: 0; border: 0; border-radius: 6px; padding: 6px 10px; color: #245ca6; background: #eef4fc; cursor: pointer; }
.wrong-removal-toast button:disabled { opacity: .6; cursor: wait; }
.exam-wrong-note { margin: 14px 0; color: #536278; line-height: 1.7; }
.exam-result .result-actions button[aria-pressed="true"] { color: #fff; background: #245ca6; }
.exam-result .result-actions { flex-wrap: wrap; justify-content: flex-start; gap: 10px; }
.exam-result .result-actions button { white-space: nowrap; }
.exam-result .result-actions > span { margin-left: auto; }
@media (max-width: 480px) { .exam-result .result-actions > span { flex-basis: 100%; margin-left: 0; } }
@media (max-width: 480px) { .wrong-removal-toast { bottom: 12px; gap: 6px; padding: 10px; font-size: 13px; } }

/* Post-exam score estimation is the primary action on the 2026 papers. */
.paper-estimate { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; background:#eef4ff; border-bottom:1px solid #d6e3fb; }
.paper-estimate h2 { margin:0 0 8px; color:var(--ink); font-size:21px; }
.paper-estimate p { margin:0 0 6px; color:var(--ink); font-size:14px; line-height:1.6; }
.paper-estimate small { display:block; color:#61718a; font-size:12px; line-height:1.7; }
.paper-estimate-start { flex:none; border:1px solid var(--blue); border-radius:10px; padding:13px 25px; background:var(--blue); color:#fff; font:inherit; font-size:16px; font-weight:800; cursor:pointer; white-space:nowrap; }
.paper-estimate-start:hover { background:var(--blue-dark); border-color:var(--blue-dark); }
.paper-estimate-start:focus-visible { outline:3px solid var(--blue-dark); outline-offset:3px; }
.paper-estimate ~ .result-filter-bar .paper-pdf-download { background:#fff; color:var(--blue-dark); border-color:var(--line); }
.paper-estimate ~ .result-filter-bar .paper-pdf-download:hover { background:#f2f6ff; border-color:var(--blue); }
@media(max-width:650px) { .paper-estimate { align-items:stretch; flex-direction:column; gap:14px; padding:20px 16px; } .paper-estimate-start { width:100%; } }

.content:has(.paper-estimate) .paper-summary .paper-back { background:#fff; color:var(--blue-dark); border:1px solid var(--line); }
.content:has(.paper-estimate) .paper-summary .paper-back:hover { background:#f2f6ff; border-color:var(--blue); }
