:root{--exam-bg:#f4f1ea;--exam-card:#fffdf9;--exam-ink:#1f1d1a;--exam-muted:#6d655c;--exam-red:#bd231d;--exam-red-soft:#fdecea;--exam-green:#1c7a4d;--exam-green-soft:#e8f5ee;--exam-line:#e2dbd0;--exam-serif:"Songti SC", "STSong", "Noto Serif CJK SC", SimSun, serif;--exam-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body.exam-body{background:var(--exam-bg);color:var(--exam-ink);font:16px/1.7 var(--exam-sans);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0}.exam-body [hidden]{display:none!important}.exam-body a{color:inherit;text-decoration:none}.exam-body button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}.exam-body p{overflow-wrap:anywhere;margin:0}.exam-body h1,.exam-body h2,.exam-body h3{margin:0;font-weight:500}.exam-body button:focus-visible,.exam-body a:focus-visible{outline:2px solid var(--exam-red);outline-offset:3px}.exam-shell{background:var(--exam-bg);width:100%;max-width:640px;min-height:100dvh;padding-bottom:calc(96px + env(safe-area-inset-bottom));flex-direction:column;margin-inline:auto;display:flex}.exam-bar{z-index:30;min-height:52px;padding:0 12px;padding-top:env(safe-area-inset-top);color:#f6e1b4;background:#171717;align-items:center;gap:10px;display:flex;position:sticky;top:0}.exam-back{place-items:center;width:40px;height:40px;margin-left:-6px;font-size:22px;line-height:1;display:grid}.exam-bar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;line-height:1.4;overflow:hidden}.exam-bar-meta{color:#cbb998;white-space:nowrap;font-size:12px}.exam-progress{top:calc(52px + env(safe-area-inset-top));z-index:29;background:#e7e0d5;height:3px;position:sticky}.exam-progress i{background:var(--exam-red);width:0;height:100%;transition:width .18s;display:block}.exam-main{flex:1;padding:16px 14px 24px}.exam-hero{color:#f7f1e6;background:linear-gradient(160deg,#1d1b18 0%,#332a22 100%);border-radius:14px;padding:22px 18px 18px}.exam-hero .eyebrow{letter-spacing:.16em;color:#d9b981;font-size:11px}.exam-hero h1{font-family:var(--exam-serif);margin:8px 0 6px;font-size:26px;font-weight:400;line-height:1.4}.exam-hero p.lead{color:#d8cec0;font-size:13px;line-height:1.8}.exam-hero-stats{border-top:1px solid #ffffff24;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;padding-top:14px;display:grid}.exam-hero-stats div{text-align:center}.exam-hero-stats strong{color:#f6e1b4;font-size:21px;line-height:1.3;display:block}.exam-hero-stats span{color:#b9ab99;font-size:11px}.exam-cta{grid-template-columns:1.2fr 1fr;gap:10px;margin:16px 14px 0;display:grid}.btn{border:1px solid var(--exam-line);background:var(--exam-card);text-align:center;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:46px;padding:10px 14px;font-size:15px;line-height:1.4;display:inline-flex}.btn-primary{border-color:var(--exam-red);background:var(--exam-red);color:#fff}.btn-ghost{color:var(--exam-red);background:#fff8f6;border-color:#ecc4bf}.btn:disabled{opacity:.5;cursor:default}.btn-block{width:100%}.exam-section{margin-top:22px}.exam-section>header{justify-content:space-between;align-items:baseline;gap:10px;padding:0 2px 10px;display:flex}.exam-section h2{font-size:17px;font-weight:600}.exam-section>header span{color:var(--exam-muted);font-size:12px}.exam-section .hint{color:var(--exam-muted);padding:0 2px 10px;font-size:12px;line-height:1.7}.paper-list{gap:10px;display:grid}.paper-item{border:1px solid var(--exam-line);background:var(--exam-card);border-radius:12px;align-items:center;gap:12px;padding:13px 14px;display:flex}.paper-item .paper-year{font-family:var(--exam-serif);color:var(--exam-red);flex:0 0 52px;font-size:19px;line-height:1.2}.paper-item .paper-info{flex:1;min-width:0}.paper-item .paper-info strong{font-size:14px;font-weight:600;display:block}.paper-item .paper-info span{color:var(--exam-muted);font-size:12px}.paper-item .paper-actions{gap:8px;display:flex}.paper-item .paper-actions a{border:1px solid var(--exam-line);white-space:nowrap;border-radius:8px;align-items:center;min-height:36px;padding:0 10px;font-size:12px;display:inline-flex}.paper-item .paper-actions a.solid{border-color:var(--exam-red);background:var(--exam-red);color:#fff}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.topic-card{border:1px solid var(--exam-line);background:var(--exam-card);border-radius:12px;flex-direction:column;gap:4px;min-height:76px;padding:13px 14px;display:flex}.topic-card strong{font-size:14px;font-weight:600}.topic-card span{color:var(--exam-muted);font-size:12px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat-cell{border:1px solid var(--exam-line);background:var(--exam-card);text-align:center;border-radius:12px;padding:12px 10px}.stat-cell strong{font-size:20px;line-height:1.3;display:block}.stat-cell span{color:var(--exam-muted);font-size:11px}.exam-note{color:#574f46;background:#efe9dd;border-radius:12px;margin-top:20px;padding:12px 14px;font-size:12px;line-height:1.8}.exam-footer{padding:8px 14px calc(24px + env(safe-area-inset-bottom));color:#8b8177;text-align:center;font-size:11px;line-height:1.8}.exam-footer a{text-underline-offset:3px;text-decoration:underline}.q-card{border:1px solid var(--exam-line);background:var(--exam-card);border-radius:14px;padding:16px 15px}.q-tags{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.q-tags span{color:#6a5d4d;background:#f0eade;border-radius:20px;padding:2px 8px;font-size:11px;line-height:1.7}.q-tags span.type{background:var(--exam-red-soft);color:var(--exam-red)}.q-stem{font-family:var(--exam-serif);color:#1b1917;white-space:pre-wrap;font-size:17px;font-weight:400;line-height:1.75}.q-options{gap:9px;margin-top:16px;display:grid}.q-option{border:1px solid var(--exam-line);text-align:left;background:#fff;border-radius:10px;align-items:flex-start;gap:10px;width:100%;min-height:48px;padding:11px 12px;font-size:15px;line-height:1.65;display:flex}.q-option .key{color:#6a5d4d;border:1px solid #cfc6b8;border-radius:50%;flex:0 0 22px;place-items:center;width:22px;height:22px;margin-top:1px;font-size:12px;line-height:1;display:grid}.q-option .text{flex:1;min-width:0}.q-option.is-selected{border-color:var(--exam-red);background:#fff7f5}.q-option.is-selected .key{border-color:var(--exam-red);background:var(--exam-red);color:#fff}.q-option.is-correct{border-color:var(--exam-green);background:var(--exam-green-soft)}.q-option.is-correct .key{border-color:var(--exam-green);background:var(--exam-green);color:#fff}.q-option.is-wrong{border-color:var(--exam-red);background:var(--exam-red-soft)}.q-option.is-wrong .key{border-color:var(--exam-red);background:var(--exam-red);color:#fff}.q-option:disabled{cursor:default;opacity:1}.q-feedback{border-radius:10px;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.q-feedback.ok{background:var(--exam-green-soft);color:var(--exam-green)}.q-feedback.no{background:var(--exam-red-soft);color:var(--exam-red)}.q-feedback small{color:var(--exam-muted);font-size:12px;font-weight:400}.q-explain{border-left:3px solid var(--exam-red);color:#3d3831;white-space:pre-wrap;background:#f7f2e8;border-radius:0 10px 10px 0;margin-top:12px;padding:12px 14px;font-size:14px;line-height:1.85}.q-explain b{letter-spacing:.1em;color:var(--exam-red);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.exam-actions{z-index:40;width:100%;max-width:640px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--exam-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf9f2;gap:10px;margin-inline:auto;display:flex;position:fixed;bottom:0;left:0;right:0}.exam-actions .btn{flex:1}.exam-actions .btn-primary{flex:1.4}.result-card{color:#f7f1e6;text-align:center;background:linear-gradient(160deg,#1d1b18,#382d24);border-radius:14px;padding:20px 16px}.result-card .score{font-family:var(--exam-serif);color:#f6e1b4;font-size:46px;line-height:1.1}.result-card .score small{color:#bfae95;font-size:15px}.result-card p{color:#d8cec0;margin-top:6px;font-size:13px}.result-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.result-stats div{color:#cbb998;font-size:12px}.result-stats strong{color:#fff;font-size:18px;display:block}.review-list{gap:10px;margin-top:14px;display:grid}.review-item{border:1px solid var(--exam-line);background:var(--exam-card);border-radius:12px;padding:13px 14px}.review-item .meta{color:var(--exam-muted);justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.review-item .meta .no{color:var(--exam-red)}.review-item h3{font-size:15px;line-height:1.7;font-family:var(--exam-serif);font-weight:400}.review-item .ans{margin-top:8px;font-size:13px}.review-item .ans b{font-weight:600}.review-item .ans .right{color:var(--exam-green)}.review-item .ans .wrong{color:var(--exam-red)}.review-item .exp{color:#4a443c;margin-top:6px;font-size:13px;line-height:1.8}.empty-state{text-align:center;color:var(--exam-muted);background:#fbf7f0;border:1px dashed #d8cfc1;border-radius:14px;padding:32px 18px;font-size:14px;line-height:1.9}.empty-state strong{color:var(--exam-ink);margin-bottom:6px;font-size:16px;display:block}.empty-state .btn{margin-top:14px}.exam-guide{gap:12px;display:grid}.guide-card{border:1px solid var(--exam-line);background:var(--exam-card);border-radius:12px;padding:15px 16px}.guide-card h2{margin-bottom:8px;font-size:16px;font-weight:600}.guide-card p,.guide-card li{color:#3d3831;font-size:14px;line-height:1.9}.guide-card ul,.guide-card ol{margin:0;padding-left:20px}.guide-table{border-collapse:collapse;width:100%;font-size:13px}.guide-table th,.guide-table td{border-bottom:1px solid var(--exam-line);text-align:left;padding:8px 6px}.guide-table th{color:var(--exam-muted);font-size:12px;font-weight:600}@media (width>=720px){.exam-shell{border-inline:1px solid var(--exam-line)}.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.q-stem{font-size:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.exam-progress i{transition:none}}
