:root{font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;color:#17312f;background:#e9e5db;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17312f;--ink-soft: #425b57;--muted: #6c7a76;--teal: #0b5b53;--teal-deep: #073f3a;--teal-pale: #dce9e5;--amber: #d7a528;--amber-pale: #f6e9c7;--paper: #f5f1e8;--surface: #fffdf8;--surface-2: #ede9df;--line: #d8d3c7;--red: #b84437;--red-pale: #f7e3df;--green: #22745c;--green-pale: #dcece5;--shadow: 0 8px 24px rgb(21 44 41 / 7%)}*{box-sizing:border-box}html{background:#e9e5db}body{margin:0;min-width:320px;min-height:100vh;background:#e9e5db}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgb(215 165 40 / 45%);outline-offset:2px}.app-shell{position:relative;width:min(100%,760px);min-height:100vh;margin:0 auto;background:var(--paper);box-shadow:0 0 45px #152c291a}.app-main{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.page{min-height:100vh;padding:calc(20px + env(safe-area-inset-top)) 18px 38px}.eyebrow{display:block;margin-bottom:5px;color:var(--teal);font-size:12px;font-weight:800;letter-spacing:.1em}.page-header{display:flex;align-items:center;gap:11px;min-height:54px;margin-bottom:24px}.page-header__copy{min-width:0;flex:1}.page-header h1{color:var(--ink);font-size:26px;font-weight:800;line-height:1.2}.page-header p{margin-top:3px;color:var(--muted);font-size:13px;line-height:1.4}.page-header__action{flex:none}.icon-button,.mini-icon-button{display:inline-grid;place-items:center;border:0;background:transparent;cursor:pointer}.icon-button{width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface)}.icon-button.is-favorite{color:var(--amber)}.mini-icon-button{width:44px;height:44px;border-radius:50%;background:var(--surface-2)}.mini-icon-button.is-favorite{color:var(--amber)}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:0 20px;border:1px solid transparent;border-radius:8px;font-weight:750;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.48}.button--primary{color:#fffdf5;background:var(--teal)}.button--primary:hover:not(:disabled){background:var(--teal-deep)}.button--secondary{color:var(--ink);border-color:var(--line);background:var(--surface)}.button--wide{width:100%}.text-button{padding:7px 0;color:var(--teal);border:0;background:transparent;font-size:13px;font-weight:700;text-align:left;cursor:pointer}.brand-mark{display:grid;width:42px;height:42px;flex:none;place-items:center;color:#fffdf5;border:2px solid rgb(255 255 255 / 42%);border-radius:8px;background:var(--teal);font-family:STKaiti,KaiTi,serif;font-size:24px;font-weight:800}.brand-mark--large{width:70px;height:70px;font-size:38px}.data-status{display:inline-flex;min-height:28px;align-items:center;padding:0 10px;border-radius:999px;font-size:11px;font-weight:800}.data-status--verified{color:var(--green);background:var(--green-pale)}.data-status--draft{color:#77560b;background:var(--amber-pale)}.progress-track{width:100%;height:5px;overflow:hidden;border-radius:999px;background:#ded9ce}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--teal);transition:width .22s ease}.progress-track--light{background:#ffffff3d}.progress-track--light span{background:var(--amber)}.launch-screen,.practice-empty{display:flex;width:min(100%,760px);min-height:100vh;margin:0 auto;align-items:center;justify-content:center;flex-direction:column;padding:32px;color:var(--ink);background:var(--paper);text-align:center}.launch-screen h1,.practice-empty h1{margin-top:16px;font-size:25px}.launch-screen p,.practice-empty p{margin:8px 0 22px;color:var(--muted);line-height:1.7}.launch-screen--error svg{color:var(--red)}.spin{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;display:grid;width:min(100%,760px);min-height:calc(67px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);padding:7px 10px env(safe-area-inset-bottom);transform:translate(-50%);border-top:1px solid var(--line);background:#fffdf8f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav__item{display:flex;min-height:52px;align-items:center;justify-content:center;gap:3px;flex-direction:column;color:#74817d;font-size:11px;font-weight:650}.bottom-nav__item.is-active{color:var(--teal)}.bottom-nav__item.is-active svg{stroke-width:2.6}.page--home .page-header{margin-bottom:20px}.continue-panel{display:flex;width:100%;min-height:76px;align-items:center;gap:13px;margin-bottom:14px;padding:14px;color:#fffdf5;border:0;border-radius:8px;background:var(--teal-deep);box-shadow:var(--shadow);text-align:left;cursor:pointer}.continue-panel__icon{display:grid;width:44px;height:44px;flex:none;place-items:center;color:var(--teal-deep);border-radius:50%;background:var(--amber)}.continue-panel__copy{display:flex;min-width:0;flex:1;gap:4px;flex-direction:column}.continue-panel__copy span{color:#cfe2dd;font-size:12px}.continue-panel__copy strong{font-size:16px}.overview-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:31px;padding:18px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.overview-strip div{display:flex;align-items:center;gap:3px;flex-direction:column;border-right:1px solid var(--line)}.overview-strip div:last-child{border-right:0}.overview-strip strong{color:var(--ink);font-size:21px}.overview-strip span{color:var(--muted);font-size:12px}.section-block{margin-bottom:22px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2{color:var(--ink);font-size:20px}.section-heading__meta{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.chapter-list{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.chapter-row{display:flex;min-height:91px;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.chapter-row:last-child{border-bottom:0}.chapter-row:active{background:#f6f2e9}.chapter-row__number{display:grid;width:42px;height:42px;flex:none;place-items:center;color:var(--teal);border:1px solid #b9d0ca;border-radius:8px;background:var(--teal-pale);font-size:13px;font-weight:850}.chapter-row__body{min-width:0;flex:1}.chapter-row__title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}.chapter-row__title strong{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.chapter-row__title span,.chapter-row__footer{color:var(--muted);font-size:11px}.chapter-row__footer{display:flex;justify-content:space-between;margin-top:7px}.muted-icon{flex:none;color:#95a09d}.study-note{display:flex;align-items:flex-start;gap:12px;padding:15px;border-left:3px solid var(--amber);background:#f0eadc}.study-note__icon{color:#876713}.study-note strong{font-size:14px}.study-note p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.6}.question-count{color:var(--muted);font-size:12px;font-weight:700}.level-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}.level-card{position:relative;display:grid;min-height:116px;grid-template-columns:auto 1fr auto;align-content:center;align-items:baseline;padding:17px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;cursor:pointer}.level-card.is-selected{color:#fffdf5;border-color:var(--teal-deep);background:var(--teal-deep)}.level-card:disabled{opacity:.45}.level-card__label{grid-column:1 / -1;margin-bottom:9px;color:var(--ink-soft);font-size:13px;font-weight:750}.level-card.is-selected .level-card__label{color:#cfe2dd}.level-card strong{font-size:27px}.level-card>span:not(.level-card__label){margin-left:4px;color:var(--muted);font-size:11px}.level-card.is-selected>span{color:#cfe2dd}.level-card .progress-track{grid-column:1 / -1;margin-top:11px}.session-builder{padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.session-builder__heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:23px}.session-builder__heading h2{font-size:21px}.session-builder__heading h2 small{display:block;margin-top:5px;color:var(--muted);font-size:11px;font-weight:500}.level-progress-ring{display:grid;width:52px;height:52px;place-items:center;color:var(--teal);border:5px solid var(--teal-pale);border-top-color:var(--teal);border-radius:50%;font-size:11px;font-weight:800}.setting-group{margin-bottom:20px}.setting-group>label{display:block;margin-bottom:9px;color:var(--ink-soft);font-size:12px;font-weight:750}.segmented-control{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;border-radius:8px;background:var(--surface-2)}.segmented-control button{display:flex;min-height:44px;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;background:transparent;font-size:13px;cursor:pointer}.segmented-control button.is-active{color:var(--teal);background:var(--surface);box-shadow:0 2px 8px #152c2914;font-weight:750}.count-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.count-options button{min-height:44px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:13px;font-weight:650;cursor:pointer}.count-options button.is-active{color:var(--teal);border-color:var(--teal);background:var(--teal-pale)}.form-error{margin:0 0 12px;color:var(--red);font-size:13px}.practice-page{width:min(100%,760px);min-height:100vh;margin:0 auto;padding-bottom:calc(88px + env(safe-area-inset-bottom));background:var(--paper)}.practice-header{position:sticky;z-index:10;top:0;display:flex;align-items:center;gap:11px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--line);background:#f5f1e8f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.practice-header__progress{min-width:0;flex:1}.practice-header__progress>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.practice-header__progress span{color:var(--muted);font-size:11px}.practice-header__progress strong{color:var(--teal);font-size:11px}.question-stage{padding:24px 18px 30px}.question-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:15px;color:var(--muted);font-size:11px}.question-stem{margin-bottom:25px;color:var(--ink);font-size:19px;font-weight:700;line-height:1.75}.option-list{display:flex;gap:11px;flex-direction:column}.option-button{display:flex;width:100%;min-height:58px;align-items:center;gap:12px;padding:12px 14px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;cursor:pointer}.option-button:disabled{opacity:1}.option-button__key{display:grid;width:31px;height:31px;flex:none;place-items:center;color:var(--ink-soft);border:1px solid var(--line);border-radius:50%;background:var(--surface-2);font-size:12px;font-weight:800}.option-button__text{flex:1;font-size:15px;line-height:1.55}.option-button.is-selected{border-color:var(--teal);background:var(--teal-pale)}.option-button.is-selected .option-button__key{color:#fff;border-color:var(--teal);background:var(--teal)}.option-button.is-correct{border-color:#7db6a2;background:var(--green-pale)}.option-button.is-correct .option-button__key{color:#fff;border-color:var(--green);background:var(--green)}.option-button.is-wrong{border-color:#dca59e;background:var(--red-pale)}.option-button.is-wrong .option-button__key{color:#fff;border-color:var(--red);background:var(--red)}.option-button.is-muted{color:#7a8481;background:#f2efe7}.option-result-icon{flex:none}.option-button.is-correct .option-result-icon{color:var(--green)}.option-button.is-wrong .option-result-icon{color:var(--red)}.fill-answer{display:flex;gap:10px;flex-direction:column}.fill-answer label{color:var(--ink-soft);font-size:12px;font-weight:750}.fill-answer input{width:100%;min-height:52px;padding:0 14px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:var(--surface)}.fill-answer input:disabled{color:var(--ink-soft);background:#efebe2}.answer-feedback{margin-top:18px;padding:15px;border-left:4px solid var(--green);border-radius:0 8px 8px 0;background:var(--green-pale)}.answer-feedback.is-wrong{border-left-color:var(--red);background:var(--red-pale)}.answer-feedback__heading{display:flex;align-items:flex-start;gap:10px}.answer-feedback__mark{display:grid;width:30px;height:30px;flex:none;place-items:center;color:#fff;border-radius:50%;background:var(--green)}.answer-feedback.is-wrong .answer-feedback__mark{background:var(--red)}.answer-feedback strong{font-size:14px}.answer-feedback p{margin-top:5px;color:var(--ink-soft);font-size:13px}.answer-feedback b{color:var(--ink)}.practice-footer{position:fixed;z-index:20;bottom:0;left:50%;display:grid;width:min(100%,760px);grid-template-columns:1fr 1.35fr;gap:10px;padding:11px 16px calc(11px + env(safe-area-inset-bottom));transform:translate(-50%);border-top:1px solid var(--line);background:#fffdf8f7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.results-page{min-height:100vh;padding-bottom:36px;background:var(--paper)}.results-hero{display:flex;align-items:center;flex-direction:column;padding:calc(34px + env(safe-area-inset-top)) 20px 32px;color:#fffdf5;background:var(--teal-deep);text-align:center}.results-hero .eyebrow{color:#bdd8d2}.score-ring{display:flex;width:116px;height:116px;align-items:baseline;justify-content:center;margin:12px 0 16px;padding-top:26px;color:var(--teal-deep);border:9px solid rgb(215 165 40 / 76%);border-radius:50%;background:var(--amber)}.score-ring strong{font-size:44px;line-height:1}.score-ring span{font-size:14px;font-weight:800}.results-hero h1{font-size:22px}.results-hero p{margin-top:7px;color:#bfd4cf;font-size:12px}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:18px;padding:18px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.result-metrics div{display:flex;align-items:center;gap:4px;flex-direction:column;border-right:1px solid var(--line)}.result-metrics div:last-child{border-right:0}.result-metrics svg{color:var(--teal)}.result-metrics strong{margin-top:4px;font-size:16px}.result-metrics span{color:var(--muted);font-size:10px}.result-section{margin:22px 18px}.result-section .section-heading svg{color:var(--teal)}.result-wrong-list{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.result-wrong-item{padding:14px;border-bottom:1px solid var(--line)}.result-wrong-item:last-child{border-bottom:0}.result-wrong-item span{color:var(--red);font-size:10px;font-weight:750}.result-wrong-item p{display:-webkit-box;overflow:hidden;margin-top:5px;color:var(--ink-soft);font-size:13px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.results-actions{display:flex;gap:10px;flex-direction:column;margin:22px 18px 0}.header-icon{display:grid;width:40px;height:40px;place-items:center;color:var(--teal);border:1px solid var(--line);border-radius:50%;background:var(--surface)}.filter-panel{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:7px;margin-bottom:16px}.filter-panel select{width:100%;min-height:44px;padding:0 7px;color:var(--ink-soft);border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:11px}.review-list{overflow:hidden;margin-bottom:96px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.review-item{padding:15px;border-bottom:1px solid var(--line)}.review-item:last-child{border-bottom:0}.review-item__meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}.review-item__meta span{padding:3px 7px;color:var(--teal);border-radius:999px;background:var(--teal-pale);font-size:9px;font-weight:700}.review-item p{display:-webkit-box;overflow:hidden;color:var(--ink);font-size:14px;line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:3}.review-item__footer{display:flex;align-items:center;justify-content:space-between;margin-top:11px;color:var(--muted);font-size:10px}.review-action-bar{position:fixed;z-index:20;bottom:calc(67px + env(safe-area-inset-bottom));left:50%;display:flex;width:min(100%,760px);align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;transform:translate(-50%);border-top:1px solid var(--line);background:#fffdf8f7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.review-action-bar>div{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.empty-state{display:flex;align-items:center;flex-direction:column;padding:80px 24px;color:var(--muted);text-align:center}.empty-state__icon{display:grid;width:62px;height:62px;place-items:center;color:var(--teal);border-radius:50%;background:var(--teal-pale)}.empty-state h2{margin-top:16px;color:var(--ink);font-size:18px}.empty-state p{max-width:290px;margin-top:7px;font-size:13px;line-height:1.7}.notice-banner{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;padding:13px;color:#654b10;border:1px solid #dec986;border-radius:8px;background:var(--amber-pale)}.notice-banner svg{flex:none}.notice-banner strong{font-size:13px}.notice-banner p{margin-top:4px;font-size:11px;line-height:1.6}.settings-group{margin-bottom:23px}.settings-group h2{margin-bottom:9px;color:var(--muted);font-size:12px;font-weight:750}.settings-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:8px}.settings-summary div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 9px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.settings-summary svg{color:var(--teal)}.settings-summary span{color:var(--muted);font-size:11px}.settings-summary strong{grid-column:2;font-size:20px}.settings-row{display:flex;width:100%;min-height:62px;align-items:center;gap:12px;padding:12px 14px;color:var(--ink);border:1px solid var(--line);border-bottom:0;background:var(--surface);text-align:left;cursor:pointer}.settings-row:first-of-type{border-radius:8px 8px 0 0}.settings-row:last-of-type{border-bottom:1px solid var(--line);border-radius:0 0 8px 8px}.settings-row:only-of-type{border-bottom:1px solid var(--line);border-radius:8px}.settings-row--static{cursor:default}.settings-row svg{flex:none;color:var(--teal)}.settings-row>div{display:flex;min-width:0;flex:1;gap:3px;flex-direction:column}.settings-row strong{font-size:13px}.settings-row span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.settings-row--danger strong,.settings-row--danger svg{color:var(--red)}.about-block{display:flex;align-items:center;gap:12px;margin-top:32px;padding:18px 0;border-top:1px solid var(--line)}.about-block strong{font-size:14px}.about-block p{margin-top:4px;color:var(--muted);font-size:10px}.toast-message{position:fixed;z-index:50;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;max-width:calc(100% - 44px);padding:11px 16px;transform:translate(-50%);color:#fff;border-radius:8px;background:var(--ink);box-shadow:var(--shadow);font-size:12px}@media(min-width:640px){.page{padding-right:30px;padding-left:30px}.chapter-list{display:grid;grid-template-columns:repeat(2,1fr)}.chapter-row:nth-child(odd){border-right:1px solid var(--line)}.chapter-row:last-child{border-bottom:0}.level-grid{grid-template-columns:repeat(4,1fr)}.question-stage{padding:32px 38px 36px}.practice-footer,.review-action-bar,.practice-header{padding-right:30px;padding-left:30px}}@media(max-width:370px){.page{padding-right:14px;padding-left:14px}.page-header h1{font-size:23px}.filter-panel{grid-template-columns:1fr 1fr}.filter-panel select:first-child{grid-column:1 / -1}.question-stem{font-size:18px}.practice-footer{gap:7px;padding-right:12px;padding-left:12px}.practice-footer .button{padding:0 12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
