:root{color-scheme:light;--paper: #f7f0e3;--panel: #fffaf0;--ink: #22201b;--muted: #6f685c;--line: #ded2bd;--green: #1e6b4f;--green-soft: #dceade;--brick: #a43f2f;--amber: #b87918;--blue: #2f5d7c;--shadow: 0 18px 50px rgba(49, 38, 20, .12);font-family:Microsoft YaHei,Noto Sans SC,PingFang SC,sans-serif;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(rgba(34,32,27,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(34,32,27,.035) 1px,transparent 1px),var(--paper);background-size:22px 22px}button,input,textarea{font:inherit}button{border:0;cursor:pointer}.app-shell{width:min(1180px,100%);margin:0 auto;padding:18px}.loading-screen{min-height:100vh;display:grid;place-items:center}.pulse-card{display:flex;align-items:center;gap:12px;padding:18px 22px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;animation:lift 1.4s ease-in-out infinite alternate}@keyframes lift{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.top-bar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;margin-bottom:18px;padding:10px;border:1px solid var(--line);background:#fffaf0eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px}.brand-button,.top-actions button,.ghost-button,.secondary-button,.primary-button,.submit-button,.step-button,.exam-header button,.exam-status button,.tag-filter button{min-height:42px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.brand-button{justify-content:flex-start;background:transparent;color:var(--ink);font-weight:800}.top-actions{display:flex;gap:6px}.top-actions button,.ghost-button{background:#f2e7d3;color:var(--ink)}.user-chip{color:var(--muted);font-size:13px}.toast{position:fixed;left:50%;top:18px;z-index:50;transform:translate(-50%);display:flex;gap:8px;align-items:center;max-width:calc(100vw - 24px);padding:10px 14px;border:1px solid #e8b2a8;background:#fff4ed;color:var(--brick);border-radius:8px;box-shadow:var(--shadow)}.auth-layout,.home-grid,.result-layout,.wrong-layout,.subjective-layout{display:grid;gap:18px}.auth-layout{min-height:calc(100vh - 36px);align-items:center;grid-template-columns:1.1fr .9fr}.hero-copy,.dashboard-hero,.score-card,.auth-card,.paper-card,.question-card,.subjective-card,.wrong-card,.empty-state{border:1px solid var(--line);background:#fffaf0f5;box-shadow:var(--shadow);border-radius:8px}.hero-copy,.dashboard-hero,.score-card{padding:clamp(24px,5vw,54px)}.eyebrow{display:inline-block;margin-bottom:12px;color:var(--green);font-weight:800;letter-spacing:0}h1,h2,p{margin-top:0}h1{font-family:Georgia,Times New Roman,Microsoft YaHei,serif;font-size:clamp(34px,7vw,72px);line-height:.96;letter-spacing:0;margin-bottom:18px}h2{font-size:20px;line-height:1.35}p{color:var(--muted);line-height:1.75}.auth-card{padding:22px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:18px;padding:5px;background:#eee1c9;border-radius:8px}.segmented button{height:38px;background:transparent;color:var(--muted);border-radius:6px}.segmented .active{background:var(--panel);color:var(--ink);font-weight:800}label{display:grid;gap:8px;margin-bottom:14px;color:var(--muted);font-size:14px;font-weight:700}input{width:100%;height:48px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:8px;padding:0 14px;outline:none}textarea{width:100%;min-height:180px;resize:vertical;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:8px;padding:14px;line-height:1.7;outline:none}input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #1e6b4f24}.primary-button,.secondary-button,.submit-button{width:100%;padding:0 16px;font-weight:900}.primary-button{background:var(--green);color:#fffdf8}.secondary-button{background:var(--green-soft);color:var(--green)}.submit-button{background:var(--brick);color:#fff}.form-error{margin:12px 0 0;color:var(--brick);font-size:14px}.home-grid{grid-template-columns:.85fr 1.15fr;align-items:start}.paper-list,.review-list,.wrong-list,.question-list-mode{display:grid;gap:14px}.home-filters{display:grid;gap:14px;padding:16px;border:1px solid var(--line);background:#fffaf0e6;border-radius:8px}.home-filters strong{display:block;margin-bottom:8px;color:var(--ink)}.filter-row{display:flex;flex-wrap:wrap;gap:8px}.filter-row button{flex:0 0 auto;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--muted);font-weight:800}.filter-row button.active{border-color:var(--green);background:var(--green);color:#fff}.paper-card{padding:20px;display:grid;gap:16px}.subjective-paper-card{border-color:#c9d8d9;background:#f4faf7}.admin-subjective-paper-card{border-color:#dec99a;background:#fff8e8}.info-structure-paper-card{border-color:#b7cfe0;background:#f0f7fb}.paper-index{color:var(--amber);font-weight:900}.paper-category{display:inline-flex;margin-left:8px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;color:var(--green);background:#eef7f2;font-size:12px;font-weight:900}.paper-meta,.score-grid,.question-meta{display:flex;flex-wrap:wrap;gap:8px}.paper-meta span,.score-grid span,.question-meta span{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:4px 9px;border:1px solid var(--line);background:#fffdf8;color:var(--muted);border-radius:999px;font-size:13px}.exam-layout{max-width:900px;margin:0 auto}.exam-header,.exam-status{position:sticky;z-index:30;display:grid;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);background:#fffaf0f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px}.exam-header{top:8px;grid-template-columns:42px 1fr 42px}.exam-header button,.exam-status button{background:#f2e7d3;color:var(--ink)}.exam-header div{min-width:0}.exam-header strong,.exam-header span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exam-header span{color:var(--muted);font-size:13px}.exam-status{top:76px;grid-template-columns:1fr auto auto;margin:10px 0}.exam-status span{display:inline-flex;align-items:center;gap:6px;font-weight:900}.danger-timer{color:var(--brick)}.exam-status .marked{background:#f6ddaf;color:#6f4300}.question-nav{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin:10px 0 14px}.question-nav button{aspect-ratio:1;border:1px solid var(--line);background:#fffdf8;color:var(--muted);border-radius:6px;font-weight:800}.question-nav .answered{background:var(--green-soft);color:var(--green)}.question-nav .active{outline:3px solid rgba(30,107,79,.24);border-color:var(--green)}.question-nav .flagged{color:var(--amber)}.question-card{padding:clamp(18px,4vw,28px)}.question-card h2{margin:16px 0 18px;font-size:clamp(21px,5vw,30px)}.option-stack{display:grid;gap:10px}.option{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;width:100%;min-height:58px;padding:10px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:8px;text-align:left}.option span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-weight:900}.option strong{line-height:1.55}.option.selected{border-color:var(--green);background:var(--green-soft)}.option.selected span{background:var(--green);color:#fff;border-color:var(--green)}.exam-stepper{position:sticky;bottom:10px;z-index:25;display:grid;grid-template-columns:1fr auto 1.15fr;gap:8px;margin-top:14px;padding:10px;border:1px solid var(--line);background:#fffaf0f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:8px;box-shadow:var(--shadow)}.step-button{min-width:0;padding:0 14px;background:#f2e7d3;color:var(--ink);font-weight:900}.step-button:disabled{cursor:not-allowed;opacity:.42}.step-button.mark{min-width:92px;color:var(--amber)}.step-button.mark.active{background:#f6ddaf;color:#6f4300}.step-button.next{background:var(--green);color:#fff}.step-button.finish{background:var(--brick);color:#fff}.score-card h1{color:var(--green);font-size:clamp(64px,16vw,128px)}.score-card small{font-size:28px;color:var(--muted)}.result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.module-card,.review-item{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:14px}.module-card span{color:var(--muted)}.module-card strong{display:block;margin-top:8px;font-size:28px}.review-item summary{display:flex;gap:8px;align-items:center;cursor:pointer}.review-item.correct summary{color:var(--green)}.review-item.wrong summary{color:var(--brick)}.review-stem{margin-top:12px;color:var(--ink);font-weight:800}.explanation{padding:12px;border-left:4px solid var(--blue);background:#edf4f4;color:#31454d;border-radius:6px}.source-badge{display:inline-flex;max-width:100%;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;color:var(--muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere;text-decoration:none}.source-badge:hover{border-color:var(--blue);color:var(--ink)}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:end}.section-title h1{margin-bottom:0}.tag-filter{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.tag-filter button{flex:0 0 auto;padding:0 14px;background:#fffdf8;color:var(--muted);border:1px solid var(--line)}.tag-filter .active{background:var(--green);color:#fff}.wrong-card{padding:18px}.wrong-answer-line{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.wrong-answer-line span{display:inline-flex;min-height:32px;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--line);background:#fffdf8;color:var(--muted);border-radius:8px;font-size:14px}.wrong-answer-line strong{color:var(--ink)}.wrong-option-stack{display:grid;gap:8px;margin:12px 0 14px}.wrong-option{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:54px;padding:9px;border:1px solid var(--line);background:#fffdf8;border-radius:8px}.wrong-option .option-key{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-weight:900}.wrong-option strong{min-width:0;line-height:1.5}.wrong-option.right{border-color:#1e6b4f57;background:var(--green-soft)}.wrong-option.right .option-key{border-color:var(--green);background:var(--green);color:#fff}.wrong-option.mistake{border-color:#a43f2f70;background:#fff4ed}.wrong-option.mistake .option-key{border-color:var(--brick);background:var(--brick);color:#fff}.option-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.option-badges span{min-height:24px;padding:3px 7px;border:1px solid rgba(34,32,27,.08);background:#fffdf8b8;color:var(--muted);border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.empty-state{display:grid;justify-items:center;text-align:center;padding:42px 24px}.subjective-shell{display:grid;grid-template-columns:310px 1fr;gap:16px;align-items:start}.subjective-nav{position:sticky;top:84px;display:grid;gap:8px;padding:12px;border:1px solid var(--line);background:#fffaf0f5;border-radius:8px;box-shadow:var(--shadow)}.subjective-nav>span{color:var(--muted);font-size:13px}.subjective-nav button{display:grid;grid-template-columns:28px 44px minmax(0,1fr);gap:8px;align-items:center;min-height:46px;padding:8px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:8px;text-align:left}.subjective-nav button .subjective-number,.subjective-nav button b{display:inline-grid;place-items:center;min-height:26px;border-radius:6px;font-size:12px}.subjective-nav button .subjective-number{background:#f2e7d3}.subjective-nav button b{background:#edf4f4;color:var(--blue)}.subjective-nav button strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.subjective-nav .active{border-color:var(--green);outline:3px solid rgba(30,107,79,.16)}.subjective-nav .mastered{background:var(--green-soft)}.subjective-nav .needs-review{background:#fff4ed}.subjective-card{padding:clamp(18px,4vw,30px)}.subjective-prompt{color:var(--ink);font-weight:700}.answer-label{margin-top:18px}.subjective-actions,.subjective-stepper{display:grid;gap:10px;margin-top:14px}.subjective-actions{grid-template-columns:1.2fr .8fr .8fr}.subjective-stepper{grid-template-columns:1fr 1fr}.reference-panel{margin-top:18px;padding:16px;border:1px solid #c9d8d9;background:#edf4f4;border-radius:8px}.reference-panel h3{margin:0 0 10px;color:var(--blue)}.reference-panel pre{overflow-x:auto;white-space:pre-wrap;margin:0 0 14px;padding:12px;background:#fffdf8;border:1px solid var(--line);border-radius:8px;line-height:1.55}.reference-panel ul{margin:0;padding-left:20px;color:#31454d;line-height:1.8}@media(max-width:820px){.app-shell{padding:10px}.auth-layout,.home-grid,.subjective-shell{grid-template-columns:1fr}.hero-copy{padding-top:42px}.top-bar{grid-template-columns:1fr auto}.user-chip{display:none}.question-nav{grid-template-columns:repeat(6,1fr)}.exam-stepper{grid-template-columns:1fr .9fr 1.15fr}.result-actions{grid-template-columns:1fr}.section-title{align-items:start;flex-direction:column}.subjective-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible}.subjective-nav>strong,.subjective-nav>span{grid-column:1 / -1}.subjective-nav{grid-template-areas:"title progress"}.subjective-nav>strong{grid-area:title}.subjective-nav>span{grid-area:progress;justify-self:end;align-self:center}.subjective-nav button{grid-template-columns:30px 1fr;grid-template-rows:auto auto;gap:7px;min-height:76px;align-content:start}.subjective-nav button b{justify-self:start;min-width:44px}.subjective-nav button strong{grid-column:1 / -1;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}}@media(max-width:460px){.brand-button span{display:none}.exam-status{grid-template-columns:1fr 1fr}.exam-status .submit-button{grid-column:1 / -1}.question-nav{grid-template-columns:repeat(5,1fr)}.exam-stepper{grid-template-columns:1fr 1fr}.exam-stepper .next,.exam-stepper .finish{grid-column:1 / -1}.subjective-actions,.subjective-nav{grid-template-columns:1fr}.subjective-nav{grid-template-areas:"title" "progress"}.subjective-nav>span{justify-self:start}.paper-meta span,.question-meta span{font-size:12px}.wrong-option{grid-template-columns:34px minmax(0,1fr)}.option-badges{grid-column:2;justify-content:flex-start}}
