:root{--bg: #f4f5f7;--surface: #ffffff;--surface-soft: #f8fafc;--surface-strong: #eef2f7;--text: #18212f;--muted: #6b7280;--border: #d9dee7;--border-strong: #b8c0cc;--accent: #1f4b7a;--accent-dark: #17385c;--danger: #c62828;--danger-soft: #fff0f0;--success: #147a4a;--success-soft: #eaf8f0;--warn: #a16207;--warn-soft: #fff7d6;--shadow: 0 18px 45px rgba(18, 31, 48, .08);--radius: 8px}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{margin:0;overflow:hidden;background:linear-gradient(135deg,rgba(31,75,122,.08),transparent 36%),var(--bg);color:var(--text);font-family:Microsoft YaHei,PingFang SC,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.app-shell{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;width:100%;height:100%;padding:18px}.sidebar{min-height:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:18px;background:#fffffff0;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.brand{display:grid;gap:4px;padding-bottom:16px;border-bottom:1px solid var(--border)}.brand span{width:fit-content;padding:3px 8px;color:var(--danger);background:var(--danger-soft);border:1px solid rgba(198,40,40,.22);border-radius:6px;font-size:12px;font-weight:800}.brand strong{font-size:22px;line-height:1.2}.brand small{color:var(--muted);font-size:12px}.field-label{color:var(--muted);font-size:12px;font-weight:700}select,.search-input,.jump-form input,.fill-input{width:100%;min-height:38px;padding:9px 10px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);outline:none}select:focus,.search-input:focus,.jump-form input:focus,.fill-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f4b7a1f}.mode-tabs,.mode-grid{display:grid;gap:8px}.mode-tabs{grid-template-columns:repeat(2,1fr);padding:4px;background:var(--surface-strong);border-radius:var(--radius)}.mode-grid{grid-template-columns:repeat(2,1fr)}.mode-tabs button,.mode-grid button,.reset-button,.header-actions button,.selection-bar button,.nav-row button,.answer-toggle{border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-weight:700;transition:background .16s ease,border-color .16s ease,transform .16s ease}.mode-tabs button{min-height:36px;border-color:transparent}.mode-grid button{min-height:36px}.mode-tabs button:hover,.mode-grid button:hover,.reset-button:hover,.header-actions button:hover,.selection-bar button:hover,.nav-row button:hover,.answer-toggle:hover{border-color:var(--accent)}.mode-tabs button.active,.mode-grid button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.stats-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats-panel.questions{grid-template-columns:repeat(2,1fr)}.stats-panel div{padding:10px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius)}.stats-panel span,.stats-panel strong{display:block}.stats-panel span{color:var(--muted);font-size:12px}.stats-panel strong{margin-top:3px;font-size:16px}.toggle-row{display:flex;align-items:center;gap:8px;padding:10px;color:var(--text);background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-weight:700}.toggle-row input{width:16px;height:16px;accent-color:var(--accent)}.jump-form{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:8px}.jump-form button{min-height:38px;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:7px;font-weight:800}.mini-progress{height:7px;overflow:hidden;background:var(--surface-strong);border-radius:999px}.mini-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--danger));border-radius:inherit;transition:width .2s ease}.question-grid{flex:0 0 auto;min-height:0;overflow:visible;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding-right:4px}.question-dot{position:relative;min-height:38px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font-size:12px;font-weight:800}.question-dot.important:after,.knowledge-list-item.important:after{content:"";position:absolute;width:7px;height:7px;background:var(--danger);border-radius:999px}.question-dot.important:after{top:4px;right:4px}.question-dot.current{border-color:var(--accent);box-shadow:0 0 0 3px #1f4b7a29}.question-dot.answered{background:#e8eef8;border-color:#b7c7dc}.question-dot.correct{background:var(--success);color:#fff;border-color:var(--success)}.question-dot.wrong{background:var(--danger);color:#fff;border-color:var(--danger)}.question-dot.missed{background:var(--warn-soft);border-color:#a1620759}.knowledge-list{flex:0 0 auto;min-height:0;overflow:visible;display:grid;gap:8px;padding-right:4px}.knowledge-list-item{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;min-height:42px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left}.knowledge-list-item span{display:inline-grid;place-items:center;height:26px;color:var(--muted);background:var(--surface-soft);border-radius:6px;font-size:12px;font-weight:800}.knowledge-list-item strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.knowledge-list-item.active{border-color:var(--accent);background:#edf4fb}.knowledge-list-item.important:after{top:6px;right:6px}.reset-button{min-height:38px;margin-top:0;color:var(--danger);background:var(--danger-soft);border-color:#c6282833}.main-panel{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;background:#ffffffb8;border:1px solid rgba(217,222,231,.82);border-radius:var(--radius);box-shadow:var(--shadow)}.workspace{display:flex;flex-direction:column;min-height:0;min-height:100%}.workspace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:26px 30px;background:var(--surface);border-bottom:1px solid var(--border)}.workspace-header h1{margin:4px 0 8px;font-size:clamp(24px,3vw,36px);line-height:1.16}.workspace-header p{max-width:760px;margin:0;color:var(--muted);line-height:1.7}.eyebrow{color:var(--danger);font-size:12px;font-weight:900}.header-actions{display:flex;flex-wrap:wrap;gap:8px}.header-actions button,.selection-bar button,.nav-row button,.answer-toggle{min-height:38px;padding:0 14px}.header-actions .favorite.active{color:var(--warn);background:var(--warn-soft);border-color:#a1620759}.question-card,.knowledge-card,.empty-state,.exam-report{width:min(100% - 48px,980px);margin:24px auto}.exam-report{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:0}.exam-report div{padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 24px #121f300d}.exam-report span,.exam-report strong{display:block}.exam-report span{color:var(--muted);font-size:13px;font-weight:800}.exam-report strong{margin-top:8px;color:var(--accent-dark);font-size:30px;line-height:1}.exam-report strong.danger{color:var(--danger)}.question-card,.knowledge-card{overflow:hidden;padding:26px;background:var(--surface);border:1px solid var(--border);border-top:5px solid var(--accent);border-radius:var(--radius);box-shadow:0 12px 30px #121f300f}.question-card.important,.knowledge-card.important{border-top-color:var(--danger)}.card-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.card-meta span,.card-meta strong,.highlight-strip span{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:800}.card-meta span{color:var(--muted);background:var(--surface-soft);border:1px solid var(--border)}.card-meta strong{color:var(--danger);background:var(--danger-soft);border:1px solid rgba(198,40,40,.22)}.question-card h2,.knowledge-card h2{margin:0 0 18px;font-size:clamp(23px,3vw,34px);line-height:1.38}.fill-blank{display:inline-flex;min-width:92px;margin:0 3px;color:transparent;border-bottom:3px solid var(--accent);transform:translateY(-2px)}.fill-blank.filled{min-width:0;padding:0 6px;color:var(--danger);font-weight:900;background:var(--danger-soft);border-bottom:3px solid var(--danger);border-radius:6px 6px 0 0;transform:none}.highlight-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.highlight-strip span{color:var(--danger);background:var(--danger-soft);border:1px solid rgba(198,40,40,.18)}.knowledge-topic{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:-4px 0 18px;padding:12px 14px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius)}.knowledge-topic span{color:var(--muted);font-size:12px;font-weight:900}.knowledge-topic strong{color:var(--accent-dark);font-size:15px;line-height:1.6}.question-image{margin-bottom:18px;padding:12px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.question-image img{max-width:100%;max-height:48vh;object-fit:contain;border-radius:6px;cursor:zoom-in}.answer-image{margin:4px 0 0}.inline-highlight{padding:0 3px;color:var(--danger);background:linear-gradient(transparent 52%,#c628282e 52%);border-radius:3px}.options-list{display:grid;gap:12px}.fill-panel{display:grid;gap:14px}.fill-options{margin-top:4px}.fill-input-row{display:grid;gap:8px;padding:16px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius)}.fill-input-row label{color:var(--muted);font-size:13px;font-weight:900}.fill-input{min-height:46px;font-size:16px}.option-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:flex-start;width:100%;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);text-align:left}.option-row:hover{border-color:var(--accent);background:#f1f6fb}.option-row>span{display:inline-grid;place-items:center;width:34px;height:34px;color:var(--accent);background:#e8eef8;border-radius:7px;font-weight:900}.option-row p{margin:5px 0 0;font-size:16px;line-height:1.65}.option-row.selected{border-color:var(--accent);background:#eaf2fb}.option-row.selected>span{color:#fff;background:var(--accent)}.option-row.correct{border-color:#147a4a80;background:var(--success-soft)}.option-row.correct>span{color:#fff;background:var(--success)}.option-row.wrong{border-color:#c628288c;background:var(--danger-soft)}.option-row.wrong>span{color:#fff;background:var(--danger)}.selection-bar,.nav-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.selection-bar{margin-top:18px;padding:14px;color:var(--muted);background:var(--surface-soft);border:1px dashed var(--border-strong);border-radius:var(--radius)}.answer-panel{display:grid;gap:10px;margin-top:20px;padding:18px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius)}.answer-panel.correct{background:var(--success-soft);border-color:#147a4a52}.answer-panel.wrong{background:var(--danger-soft);border-color:#c6282852}.answer-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.answer-line span{color:var(--muted);font-size:13px;font-weight:800}.answer-line strong{color:var(--accent-dark);font-size:18px}.explanation{padding-top:12px;border-top:1px solid rgba(0,0,0,.08)}.explanation p,.knowledge-content p,.answer-panel p{margin:0;font-size:16px;line-height:1.82}.explanation p+p,.knowledge-content p+p,.answer-panel p+p{margin-top:8px}.knowledge-content{display:grid;gap:8px;margin:18px 0;padding:18px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius)}.answer-toggle{width:100%;margin-top:4px;color:#fff;background:var(--accent);border-color:var(--accent)}.answer-toggle:hover{background:var(--accent-dark)}.nav-row{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.nav-row span{color:var(--muted);font-size:13px;font-weight:800}.empty-state{display:grid;place-items:center;min-height:220px;color:var(--muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty-state.error{color:var(--danger);background:var(--danger-soft)}.mobile-menu-button,.sidebar-backdrop{display:none}.fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#060c14eb;cursor:zoom-out}.fullscreen-overlay img{max-width:94vw;max-height:88vh;object-fit:contain;-webkit-user-select:none;user-select:none;touch-action:none;transition:transform .08s ease}.fullscreen-controls{position:absolute;bottom:58px;left:50%;display:flex;align-items:center;gap:10px;padding:8px 12px;background:#00000075;border:1px solid rgba(255,255,255,.14);border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(-50%)}.fullscreen-controls button{min-width:34px;height:34px;padding:0 10px;color:#fff;background:#ffffff1a;border:0;border-radius:999px;font-weight:900}.fullscreen-controls span{min-width:52px;color:#fff;font-size:13px;font-weight:800;text-align:center}.fullscreen-close{position:absolute;bottom:24px;color:#ffffffa8;font-size:12px}@media (max-width: 860px){body{overflow:auto}.app-shell{display:block;height:auto;min-height:100%;padding:0}.mobile-menu-button{position:fixed;right:14px;bottom:14px;z-index:40;display:inline-flex;align-items:center;justify-content:center;min-width:58px;height:40px;color:#fff;background:var(--accent);border:none;border-radius:999px;box-shadow:0 12px 28px #17385c47;font-weight:900}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:min(88vw,340px);border-radius:0;transform:translate(-105%);transition:transform .22s ease}.sidebar.open{transform:translate(0)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#0000005c}.sidebar-backdrop.open{display:block}.main-panel{min-height:100vh;border:0;border-radius:0}.workspace-header{flex-direction:column;padding:20px 16px}.question-card,.knowledge-card,.empty-state,.exam-report{width:calc(100% - 24px);margin:12px auto 96px;padding:18px}.exam-report{grid-template-columns:repeat(2,1fr);margin-bottom:12px;padding:0}.exam-report div{padding:14px}.question-card h2,.knowledge-card h2{font-size:22px}.fill-blank{min-width:64px}.option-row{grid-template-columns:36px minmax(0,1fr);padding:12px}.option-row>span{width:30px;height:30px}.selection-bar,.nav-row,.answer-line{align-items:stretch;flex-direction:column}.selection-bar button,.nav-row button{width:100%}}
