:root{--bg:#f6f5f2;--panel:#fff;--panel-soft:#fbfaf7;--text:#1d2329;--muted:#68727d;--line:#d9ded7;--accent:#16695a;--accent-strong:#0f5549;--accent-soft:#e2f1ed;--blue:#245f9c;--blue-soft:#e8f0f8;--red:#b9342c;--red-soft:#fae8e6;--green:#1e7a4e;--green-soft:#e5f3ea;--amber:#8a6200;--amber-soft:#f7efd4;--shadow:0 12px 32px #20282414}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}.appShell{width:min(1280px,100%);margin:0 auto;padding:20px}.topbar{justify-content:space-between;align-items:flex-end;gap:18px;padding:18px 0 14px;display:flex}.topbar h1,.stateShell h1{letter-spacing:0;margin:0;font-size:30px;line-height:1.15}.topbar p{color:var(--muted);margin:8px 0 0;font-size:14px}.topStats{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.topStats span,.examRules span{border:1px solid var(--line);background:var(--panel);min-height:34px;color:var(--muted);white-space:nowrap;border-radius:8px;align-items:center;padding:7px 10px;display:inline-flex}.modeTabs{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px;padding:8px;display:grid}.modeTabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:6px;font-weight:700}.modeTabs button.active{background:var(--accent);color:#fff}.practiceLayout,.examLayout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.questionPanel,.examMain,.sidePanel,.examNav,.examStart section,.emptyPanel,.stateShell{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.questionPanel,.examMain{min-width:0}.questionCard{padding:22px}.questionMeta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;display:flex}.typeBadge{border-radius:6px;justify-content:center;align-items:center;min-width:48px;min-height:28px;padding:4px 8px;font-weight:800;display:inline-flex}.typeBadge.single{background:var(--blue-soft);color:var(--blue)}.typeBadge.multi{background:var(--amber-soft);color:var(--amber)}.questionCard h2{letter-spacing:0;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:22px;line-height:1.55}.assetList{gap:12px;margin-top:16px;display:grid}.assetList figure{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;margin:0;overflow:hidden}.assetList img{width:100%;height:auto;display:block}.optionList{gap:10px;margin-top:22px;display:grid}.optionButton{border:1px solid var(--line);background:var(--panel-soft);width:100%;min-height:54px;color:var(--text);text-align:left;border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;padding:11px 14px;display:grid}.optionButton:hover:not(:disabled){border-color:var(--accent)}.optionButton.picked{border-color:var(--accent);background:var(--accent-soft)}.optionButton.correct{border-color:var(--green);background:var(--green-soft)}.optionButton.wrong{border-color:var(--red);background:var(--red-soft)}.optionKey{border:1px solid var(--line);background:#fff;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;font-weight:900;display:inline-flex}.optionText{white-space:pre-wrap;overflow-wrap:anywhere;padding-top:5px;line-height:1.45}.answerPanel{border:1px solid var(--line);border-radius:8px;gap:8px;margin-top:18px;padding:14px;display:grid}.answerPanel.right{border-color:var(--green);background:var(--green-soft)}.answerPanel.miss{border-color:var(--red);background:var(--red-soft)}.answerPanel p{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.6}.actionRow{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 22px 22px;display:grid}.primaryButton,.secondaryButton,.wideButton{border:1px solid var(--line);border-radius:8px;min-height:44px;padding:9px 14px;font-weight:800}.primaryButton{background:var(--accent);border-color:var(--accent);color:#fff}.primaryButton:hover:not(:disabled){background:var(--accent-strong)}.secondaryButton,.wideButton{background:var(--panel-soft);color:var(--text)}.sidePanel,.examNav{gap:12px;padding:16px;display:grid}.sideBlock{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:7px;padding:13px;display:grid}.sideBlock strong,.examBar strong{font-size:20px}.sideLabel{color:var(--muted);font-size:13px;font-weight:800}.jumpInput{border:1px solid var(--line);width:100%;min-height:38px;color:var(--text);background:#fff;border-radius:6px;padding:8px 10px}.wideButton{width:100%}.dangerText{color:var(--red)}.emptyPanel,.examStart section,.stateShell{padding:28px}.emptyPanel h2,.examStart h2,.resultPanel h2{margin:0 0 12px;font-size:24px}.emptyPanel p,.stateShell p{color:var(--muted);margin:0}.examStart{display:grid}.examStart section{gap:18px;display:grid}.examRules{flex-wrap:wrap;gap:8px;display:flex}.examBar{border-bottom:1px solid var(--line);background:var(--panel-soft);border-radius:8px 8px 0 0;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px;display:grid}.examBar>div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;min-height:62px;padding:10px;display:grid}.timeDanger,.scoreFail{color:var(--red)}.scorePass{color:var(--green)}.resultPanel{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;margin:0 22px 22px;padding:16px}.resultPanel p{color:var(--muted);margin:0}.navHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.navHead button{border:1px solid var(--line);background:var(--panel-soft);min-height:34px;color:var(--muted);border-radius:6px;font-weight:800}.navGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.navGrid button{aspect-ratio:1;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);border-radius:6px;font-weight:800}.navGrid button.current{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.navGrid button.answered{background:var(--blue-soft);border-color:#b9cde0}.navGrid button.correct{background:var(--green-soft);border-color:var(--green)}.navGrid button.wrong{background:var(--red-soft);border-color:var(--red)}.stateShell{width:min(560px,100% - 32px);margin:80px auto}.accessShell{place-items:center;min-height:100vh;padding:20px;display:grid}.accessPanel{border:1px solid var(--line);background:var(--panel);width:min(420px,100%);box-shadow:var(--shadow);border-radius:8px;gap:22px;padding:28px;display:grid}.accessPanel h1{margin:0;font-size:30px;line-height:1.15}.accessPanel p{color:var(--muted);margin:8px 0 0}.accessForm{gap:10px;display:grid}.accessForm input{border:1px solid var(--line);background:var(--panel-soft);width:100%;min-height:46px;color:var(--text);border-radius:8px;padding:10px 12px}.accessForm input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.accessError{color:var(--red);font-size:14px}@media (max-width:900px){.appShell{padding:14px}.topbar{flex-direction:column;align-items:stretch}.topStats{justify-content:flex-start}.modeTabs{grid-template-columns:repeat(2,minmax(0,1fr))}.practiceLayout,.examLayout{grid-template-columns:1fr}.sidePanel{order:-1;grid-template-columns:repeat(2,minmax(0,1fr))}.examNav{order:-1}.navGrid{grid-template-columns:repeat(10,42px);padding-bottom:4px;overflow-x:auto}.navGrid button{aspect-ratio:auto;width:42px;height:42px}.examBar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.appShell{padding:10px}.topbar h1,.stateShell h1{font-size:26px}.topStats span{flex:auto;justify-content:center}.modeTabs{gap:6px;padding:6px}.modeTabs button{min-height:40px;font-size:14px}.questionCard{padding:16px}.questionCard h2{font-size:18px;line-height:1.55}.optionButton{grid-template-columns:36px minmax(0,1fr);gap:9px;padding:10px}.optionKey{width:30px;height:30px}.actionRow{grid-template-columns:1fr;padding:12px 16px 16px}.sidePanel{grid-template-columns:1fr}.examBar{grid-template-columns:1fr;padding:12px}}
