:root{color:#111827;background:#f7f9fc;font-family:Noto Sans SC,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #0b57d0;--blue-dark: #0848ad;--blue-soft: #eaf2ff;--green: #169447;--green-soft: #edf9f1;--red: #c33b3b;--red-soft: #fff1f0;--ink: #111827;--muted: #6b7280;--line: #e2e7ef}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f7f9fc}button{font:inherit}button:focus-visible{outline:3px solid rgb(11 87 208 / 28%);outline-offset:3px}.app-shell,.practice-page{min-height:100vh;max-width:520px;margin:0 auto;background:#fff}.page{min-height:calc(100vh - 76px);padding:48px 24px 112px}.home-header h1,.section-header h1{margin:0;font-size:clamp(30px,9vw,42px);line-height:1.16;letter-spacing:-.04em}.home-header p,.section-header p{margin:10px 0 0;color:var(--muted);font-size:17px}.dashboard-panel{margin-top:34px;padding:27px 22px 0;overflow:hidden;border:1px solid #dfe9f8;border-radius:18px;background:#f0f6ff}.eyebrow{color:#596273;font-size:17px}.completion-value{display:flex;align-items:baseline;gap:10px;margin-top:2px}.completion-value strong{color:var(--blue-dark);font-size:68px;line-height:1.1;letter-spacing:-.06em}.completion-value span{color:#4b5563;font-size:24px}.progress-track,.question-progress{height:8px;overflow:hidden;border-radius:999px;background:#d9e4f6}.progress-track{margin:22px 0 26px}.progress-track span,.question-progress span{display:block;height:100%;min-width:0;border-radius:inherit;background:var(--blue)}.metrics-row{display:grid;grid-template-columns:repeat(3,1fr);margin:0 -22px;border-top:1px solid #dfe9f8;background:#fff}.metric{position:relative;padding:20px 8px 23px;text-align:center}.metric+.metric:before{position:absolute;top:22px;bottom:22px;left:0;width:1px;content:"";background:var(--line)}.metric span{display:block;color:var(--muted);font-size:14px}.metric strong{display:block;margin-top:5px;font-size:31px;line-height:1.1}.metric strong.accent{color:var(--blue-dark)}.primary-button{width:100%;min-height:58px;border:0;border-radius:12px;color:#fff;background:var(--blue);font-size:19px;font-weight:700;cursor:pointer}.primary-button:hover{background:var(--blue-dark)}.home-page>.primary-button{margin-top:28px}.last-position{display:flex;align-items:center;justify-content:center;gap:7px;margin:14px 0 24px;color:var(--muted);font-size:14px}.action-list{border-top:1px solid var(--line)}.action-list button{display:grid;grid-template-columns:32px 1fr 24px;align-items:center;gap:13px;width:100%;min-height:72px;padding:0 6px;border:0;border-bottom:1px solid var(--line);color:var(--ink);background:transparent;text-align:left;cursor:pointer}.action-list button>svg:first-child{color:var(--blue)}.action-list button>svg:last-child{color:#7c8491}.action-list button:disabled{color:#a5aab3;cursor:not-allowed}.action-list button:disabled svg{color:#a5aab3}.bottom-nav{position:fixed;z-index:10;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);max-width:520px;height:76px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.nav-item{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;border:0;color:#737b88;background:transparent;font-size:13px;cursor:pointer}.nav-item.active{color:var(--blue);font-weight:700}.practice-page{padding-bottom:92px}.practice-header{display:grid;grid-template-columns:42px 1fr;align-items:center;padding:18px 20px 12px}.practice-header button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;color:#4b5563;background:transparent;cursor:pointer}.practice-header div{display:flex;align-items:center;justify-content:space-between;padding-left:8px}.practice-header span{color:var(--muted);font-size:14px}.practice-header strong{font-size:15px}.question-progress{height:4px;border-radius:0}.question-body{padding:34px 24px 36px}.question-title{margin:0 0 24px;font-size:clamp(23px,6.4vw,30px);line-height:1.52;letter-spacing:-.02em}.code-block{margin:-8px 0 24px;padding:16px;overflow-x:auto;border:1px solid var(--line);border-radius:12px;color:#1f2937;background:#f7f8fa;font:14px/1.65 Consolas,SFMono-Regular,monospace;white-space:pre}.question-image{display:block;width:min(100%,280px);max-height:360px;margin:0 auto 26px;object-fit:contain}.options-list{display:grid;gap:13px}.option-button{display:grid;grid-template-columns:36px 1fr 26px;align-items:center;gap:11px;width:100%;min-height:66px;padding:13px 16px;border:1px solid #d8dee8;border-radius:13px;color:var(--ink);background:#fff;text-align:left;cursor:pointer}.option-button:not(:disabled):hover{border-color:#9ab9e8;background:#f8fbff}.option-button:disabled{opacity:1;cursor:default}.option-letter{color:#374151;font-size:21px;font-weight:700}.option-text{font-size:16px;line-height:1.5}.option-button.correct{border-color:var(--green);color:#116f39;background:var(--green-soft)}.option-button.correct .option-letter,.option-button.correct svg{color:var(--green)}.option-button.incorrect{border-color:var(--red);color:#9e2e2e;background:var(--red-soft)}.option-button.incorrect .option-letter,.option-button.incorrect svg{color:var(--red)}.feedback{margin-top:22px;padding:17px 18px;border-radius:12px}.feedback.correct{color:#116f39;background:var(--green-soft)}.feedback.incorrect{color:#8f2e2e;background:var(--red-soft)}.feedback-heading{display:flex;align-items:center;gap:8px}.feedback p{margin:9px 0 0;color:#374151;font-size:15px;line-height:1.65}.feedback .review-note{color:#8a5a00}.practice-footer{position:fixed;right:0;bottom:0;left:0;max-width:520px;margin:0 auto;padding:14px 24px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffff7}.section-header p{margin-top:0;margin-bottom:5px;color:var(--blue);font-size:14px;font-weight:700}.empty-state{padding:90px 10px 0;color:var(--muted);text-align:center}.empty-state svg{color:var(--green)}.empty-state h2{margin:18px 0 8px;color:var(--ink)}.empty-state p{margin:0;line-height:1.65}.wrong-summary{margin:34px 0 22px;padding:23px;border-radius:16px;background:var(--blue-soft)}.wrong-summary strong{color:var(--blue-dark);font-size:48px}.wrong-summary span{margin-left:8px;font-size:17px}.wrong-summary p{margin:8px 0 0;color:var(--muted);font-size:14px}.wrong-list{margin-top:26px;border-top:1px solid var(--line)}.wrong-list article{padding:18px 2px;border-bottom:1px solid var(--line)}.wrong-list span,.wrong-list small{color:var(--muted);font-size:13px}.wrong-list p{display:-webkit-box;margin:7px 0;overflow:hidden;font-size:15px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.progress-stat-grid{display:grid;gap:14px;margin-top:34px}.progress-stat-grid article{padding:22px;border:1px solid var(--line);border-radius:14px}.progress-stat-grid span{color:var(--muted);font-size:14px}.progress-stat-grid strong{display:block;margin-top:7px;color:var(--blue-dark);font-size:34px}.progress-stat-grid p{margin:7px 0 0;color:var(--muted);font-size:13px}.danger-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;margin-top:42px;border:1px solid #edcccc;border-radius:12px;color:#ad3333;background:#fff;cursor:pointer}@media(min-width:600px){body{padding:20px 0}.app-shell,.practice-page{min-height:calc(100vh - 40px);border:1px solid var(--line);box-shadow:0 18px 60px #2033521a}.bottom-nav,.practice-footer{bottom:20px}}@media(max-height:700px){.page{padding-top:30px}.dashboard-panel{margin-top:22px}}
