*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f1eee8;--page-deep:#e8e2d8;--ink:#2f3533;--muted:#746f68;--line:#d9d2c7;--panel:#ffffffdb;--panel-solid:#fbfaf6;--brand:#5f6762;--accent:#82999d;--accent-dark:#657c80;--putty:#d7cfc4;--chip:#eee9df;--correct:#6f8372;--correct-bg:#eef1ea;--wrong:#9b6f66;--wrong-bg:#f6ece8;--warning-bg:#f3ede5;--shadow:0 18px 45px #483f361c;--soft-shadow:0 8px 20px #483f3612;--cn-ui-font:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", ui-sans-serif, system-ui, sans-serif;--cn-brand-font:"Kaiti SC", "STKaiti", "LXGW WenKai Screen", "Songti SC", "Noto Serif CJK SC", serif;--cn-display-font:"Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", "PingFang SC", serif}html{-webkit-text-size-adjust:100%;font-size:16px}body{min-height:100vh;font-family:var(--cn-ui-font);color:var(--ink);background:linear-gradient(130deg, #ffffff94, transparent 42%), linear-gradient(180deg, #f4f1eb 0%, var(--page) 54%, var(--page-deep) 100%);line-height:1.5}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #82999d61}@keyframes tonalDrift{0%{opacity:.2;transform:translate(-34%)skew(-10deg)}48%{opacity:.34}to{opacity:.2;transform:translate(34%)skew(-10deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app-shell{background:linear-gradient(90deg, #c2b8a929 0 1px, transparent 1px 22px), linear-gradient(180deg, #ffffff75, transparent 38%, #ad9a8914), var(--panel-solid);max-width:520px;min-height:100vh;box-shadow:var(--shadow);border-inline:1px solid #d9d2c7b8;margin:0 auto;position:relative;overflow:hidden}.app-shell:before{content:"";pointer-events:none;filter:blur(18px);background:linear-gradient(105deg,#0000 24%,#ffffff8a 43%,#d3c5b42e 56%,#0000 72%);width:min(760px,140vw);height:52vh;animation:10s ease-in-out infinite alternate tonalDrift;position:fixed;top:-18%;left:50%;transform:translate(-50%)}.app-shell:after{content:"/ʃ/  /θ/  /ɪ/";color:#6f675e2e;font-family:var(--cn-brand-font);pointer-events:none;font-size:.78rem;font-weight:700;position:fixed;bottom:10px;right:max(16px,50vw - 246px)}.app-brand,.nav-bar,.practice-container{z-index:1;position:relative}.app-brand{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;max-width:480px;margin:0 auto;padding:14px 16px 8px;display:grid}.brand-mark{background:var(--brand);color:#fbf9f3;width:48px;height:48px;font-family:var(--cn-brand-font);border-radius:8px;place-items:center;font-size:1.62rem;font-weight:600;line-height:1;display:grid;box-shadow:inset 0 -5px #cdbdab57}.brand-copy strong{font-family:var(--cn-brand-font);font-size:1.32rem;font-weight:600;line-height:1.1;display:block}.brand-copy span{color:var(--muted);margin-top:4px;font-size:.82rem;line-height:1.35;display:block}.account-menu{background:#ffffffad;border:1px solid #d2c9bddb;border-radius:8px;place-items:flex-end end;gap:3px;min-width:132px;padding:7px 8px;display:grid}.account-menu-label{color:var(--muted);font-size:.7rem;font-weight:700;line-height:1.2}.account-menu strong{color:var(--ink);text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:142px;font-size:.92rem;line-height:1.2;overflow:hidden}.account-action{color:#665f57;background:#ffffff9e;border:1px solid #d2c9bd;border-radius:999px;min-height:32px;padding:0 10px;font-size:.78rem;font-weight:700}.account-action:hover{background:var(--panel-solid)}.shell-error{color:var(--wrong);margin:0;padding:8px 16px 0;font-size:.82rem}.practice-container{max-width:480px;margin:0 auto;padding:20px 16px 28px}.auth-screen{min-height:100vh}.auth-brand{grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:22px 0 24px;display:grid}.auth-brand h1{margin:0}.auth-brand p{color:var(--muted);margin:4px 0 0}.auth-form{background:var(--panel-solid);border:1px solid var(--line);border-radius:8px;gap:14px;padding:18px;display:grid}.auth-form h2{margin:0}.auth-form p{color:var(--muted);margin:0}.auth-form label{gap:6px;display:grid}.auth-form label span{color:var(--muted);font-size:.84rem;font-weight:700}.auth-form input,.auth-form select{border:1px solid var(--line);color:var(--ink);background:#fffdfa;border-radius:8px;padding:9px 10px;font-size:1rem}.practice-header{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:14px;font-size:.875rem;display:flex}.progress-label{font-weight:600}.accent-label{background:var(--chip);border:1px solid #d2c9bd;border-radius:999px;padding:2px 8px;font-size:.75rem}.practice-context{flex-shrink:0;align-items:center;gap:6px;display:flex}.level-label{background:var(--chip);color:#665f57;border:1px solid #d2c9bd;border-radius:999px;padding:1px 7px;font-size:.75rem;font-weight:700}.practice-error{text-align:center;padding:32px 0}.practice-error h2{margin-bottom:8px}.practice-error .hint{color:#888;margin-top:12px;font-size:.85rem}.choice-question{margin-bottom:24px}.word-display{text-align:center;margin-bottom:14px;padding:16px 0 6px}.word-text{color:var(--ink);font-size:3rem;font-weight:850;line-height:1;display:block}.word-meaning{color:var(--muted);margin-top:8px;font-size:.9rem;font-weight:700;display:block}.question-cue-label{color:var(--muted);letter-spacing:0;margin-bottom:6px;font-size:.82rem;font-weight:800;display:block}.ipa-cue{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:2.35rem}.audio-btn{width:44px;height:44px;color:var(--accent-dark);cursor:pointer;vertical-align:middle;background:#eef1ee;border:1px solid #ccd6d3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;font-size:1.25rem;transition:border-color .15s,background .15s,transform .15s;display:inline-flex}.audio-btn:hover:not(:disabled){border-color:var(--accent);background:#f5f7f4;transform:translateY(-1px)}.audio-btn:disabled{opacity:.5;cursor:default}.audio-btn-wrapper{vertical-align:middle;align-items:center;gap:6px;display:inline-flex}.audio-source-label{max-width:190px;color:var(--muted);text-align:left;font-size:.78rem;font-weight:600;line-height:1.25}.audio-source-label--error{color:var(--wrong)}.question-prompt{text-align:center;color:var(--muted);margin-bottom:16px;font-size:.95rem}.choices-list{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.choice-btn{border:1px solid var(--line);background:var(--panel);box-shadow:var(--soft-shadow);color:var(--ink);text-align:center;border-radius:8px;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.25rem;font-weight:700;transition:border-color .15s,background .15s,transform .15s}.choice-word{overflow-wrap:anywhere;font-family:inherit}.choice-ipa{overflow-wrap:anywhere}.choice-btn:hover:not(:disabled){border-color:var(--accent);background:#f5f7f4;transform:translateY(-1px)}.choice-btn:disabled{cursor:default}.choice-correct{color:var(--correct);border-color:var(--correct)!important;background:var(--correct-bg)!important}.choice-wrong{color:var(--wrong);border-color:var(--wrong)!important;background:var(--wrong-bg)!important}.submit-status{text-align:center;color:var(--muted);font-size:.85rem}.feedback{text-align:center;box-shadow:var(--soft-shadow);border-radius:8px;margin-top:12px;padding:12px;font-size:1rem}.feedback-correct{background:var(--correct-bg);color:var(--correct);border:1px solid #c7d1c1}.feedback-wrong{background:var(--warning-bg);color:#7d6357;border:1px solid #d4c3b4}.feedback-error{background:var(--wrong-bg);color:var(--wrong);border:1px solid #ddc6c0}.missed-answer-explanation{gap:8px;display:grid}.missed-answer-explanation p{margin:0}.explanation-grid{text-align:left;grid-template-columns:minmax(84px,max-content) minmax(0,1fr);align-items:center;gap:6px 10px;display:grid}.explanation-grid span{color:var(--muted);font-size:.85rem;font-weight:600}.explanation-grid code,.summary-answer code{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700}.focus-hint,.summary-hint{color:var(--muted);font-size:.85rem}.accent-compare-note{color:var(--ink);background:#eef3ef;border:1px solid #cddbd0;border-radius:8px;grid-template-columns:minmax(96px,max-content) minmax(0,1fr);align-items:center;gap:6px 10px;margin-top:12px;padding:12px;font-size:.88rem;display:grid}.accent-compare-note span{color:var(--muted);font-weight:750}.accent-compare-note code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:750}.accent-compare-note p{color:var(--muted);grid-column:1/-1;margin:2px 0 0}.feedback-continue-btn{background:var(--accent);border:1px solid var(--accent-dark);color:#fff;border-radius:8px;width:100%;margin-top:4px;padding:10px 16px;font-weight:700}.feedback-continue-btn:hover{background:var(--accent-dark)}.practice-summary{text-align:center}.practice-summary h2{font-family:var(--cn-display-font);margin-bottom:8px;font-size:1.45rem;font-weight:760}.workflow-kicker,.section-copy{color:var(--muted);font-size:.9rem}.workflow-kicker{margin-bottom:4px}.summary-score{color:var(--accent-dark);margin-bottom:16px;font-size:1.5rem;font-weight:700}.summary-section{background:var(--panel);border:1px solid var(--line);text-align:left;box-shadow:var(--soft-shadow);border-radius:8px;margin:16px 0;padding:12px}.summary-section h3{margin-bottom:8px;font-size:1rem}.summary-perfect{color:var(--correct);margin:16px 0}.summary-list{text-align:left;padding:0;list-style:none}.summary-list li{border-bottom:1px solid #d9d2c7cc;flex-direction:column;gap:4px;padding:10px 0;font-size:.95rem;display:flex}.summary-correct{color:var(--correct)}.summary-wrong{color:var(--wrong)}.summary-answer{color:var(--muted);margin-top:2px;font-size:.85rem;display:block}.summary-phonemes{color:var(--accent-dark);font-size:.85rem;font-weight:600}.summary-hint{display:block}.summary-actions{gap:8px;margin-top:20px;display:grid}.primary-action-btn,.secondary-action-btn,.focus-action-btn{border-radius:8px;min-height:44px;padding:10px 12px;font-weight:800}.primary-action-btn{background:var(--accent);border:1px solid var(--accent);color:#fff;box-shadow:0 10px 18px #82999d38}.secondary-action-btn{background:var(--panel-solid);border:1px solid var(--line);color:#665f57}.secondary-action-btn.compact{align-self:flex-start;min-height:34px;padding:6px 10px;font-size:.85rem}.primary-action-btn:disabled,.secondary-action-btn:disabled,.focus-action-btn:disabled{cursor:default;opacity:.55}.active-focus-banner,.focus-panel,.settings-focus-panel,.mode-panel,.settings-panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--soft-shadow);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:10px;display:flex}.today-hub{gap:12px;display:grid}.today-hub h1{font-family:var(--cn-display-font);font-size:1.58rem;font-weight:760;line-height:1.2}.hub-status-card,.specialty-panel,.level-progress-panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--soft-shadow);border-radius:8px;gap:7px;padding:12px;display:grid}.hub-status-card.pending{background:var(--warning-bg);border-color:#d4c3b4}.specialty-panel{grid-template-columns:minmax(0,1fr);align-items:center}.specialty-panel div{gap:5px;display:grid}.pending-copy{color:#7d6357;font-size:.9rem}.active-focus-banner{font-size:.85rem}.focus-panel,.settings-focus-panel,.mode-panel,.settings-panel{flex-direction:column;align-items:flex-start}.mode-panel{margin-bottom:16px}.focus-choice-panel{background:var(--panel-solid);border:1px solid var(--line);border-radius:8px;padding:12px}.focus-panel-label{color:var(--muted);font-size:.85rem;font-weight:700}.nav-bar{border-bottom:0;gap:6px;max-width:480px;margin:0 auto 2px;padding:0 16px 8px;display:flex}.nav-tab{color:#8b857d;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;min-height:38px;padding:8px 0;font-size:.9rem;font-weight:800;transition:color .15s,background .15s,box-shadow .15s}.nav-tab:hover{color:var(--ink);background:#eee9dfb3}.nav-active{color:var(--accent-dark);background:var(--chip);box-shadow:inset 0 0 0 1px #d8cfc2}.page-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header h1{font-family:var(--cn-display-font);margin:0;font-size:1.38rem;font-weight:760}.back-btn{border:1px solid var(--line);color:#665f57;cursor:pointer;background:#ffffff9e;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:700}.progress-stats{gap:12px;margin-bottom:24px;display:flex}.stat-card{text-align:center;background:var(--panel);border:1px solid var(--line);box-shadow:var(--soft-shadow);border-radius:8px;flex:1;padding:12px 8px}.stat-number{color:var(--accent-dark);font-size:1.5rem;font-weight:700;display:block}.stat-word{font-size:1.1rem;line-height:1.25}.stat-label{color:var(--muted);margin-top:2px;font-size:.75rem;display:block}.stat-subtext{color:var(--muted);margin-top:3px;font-size:.72rem;display:block}.phoneme-section{margin-bottom:20px}.phoneme-section h2{margin-bottom:8px;font-size:1rem}.phoneme-list{padding:0;list-style:none}.phoneme-item{border-bottom:1px solid #d9d2c7cc;grid-template-columns:minmax(44px,auto) 1fr auto;align-items:center;gap:8px;padding:10px 0;font-size:.95rem;display:grid}.phoneme-symbol{color:var(--ink);min-width:48px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}.phoneme-acc{color:var(--muted);font-size:.85rem}.phoneme-count{color:var(--muted);font-size:.8rem}.focus-action-btn{background:var(--panel-solid);border:1px solid var(--line);color:#665f57;min-height:32px;padding:5px 8px;font-size:.8rem}.phoneme-help{color:var(--muted);grid-column:2/-1;font-size:.8rem}.phoneme-item.weak .phoneme-symbol{color:var(--wrong)}.phoneme-item.strong .phoneme-symbol{color:var(--correct)}.empty-hint{text-align:center;color:var(--muted);margin-top:24px;font-size:.9rem}.level-progress-list{gap:12px;margin-bottom:20px;display:grid}.level-progress-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.level-progress-header h2{font-size:1rem}.level-scope-label{background:var(--chip);color:#665f57;border:1px solid #d2c9bd;border-radius:999px;padding:2px 7px;font-size:.75rem;font-weight:700}.level-stat-grid{color:var(--muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;font-size:.85rem;display:grid}.level-progress-panel h3{margin-top:4px;font-size:.9rem}.settings-form{flex-direction:column;gap:4px;display:flex}.setting-row{cursor:pointer;border-bottom:1px solid #d9d2c7cc;justify-content:space-between;align-items:center;padding:10px 0;font-size:.95rem;display:flex}.setting-row span{gap:2px;display:grid}.setting-row small{color:var(--muted);font-size:.78rem;font-weight:600}.setting-row select,.setting-row input[type=number]{border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:8px;padding:6px 8px;font-size:.9rem}.setting-row input[type=number]{text-align:center;width:64px}.setting-row-stacked{flex-direction:column;align-items:flex-start;gap:8px}.setting-row .focus-input{box-sizing:border-box;border:1px solid var(--line);background:var(--panel-solid);border-radius:8px;width:100%;padding:6px 8px;font-size:.9rem}.settings-help-list{color:var(--muted);border-bottom:1px solid #d9d2c7cc;gap:6px;padding:0 0 12px 18px;font-size:.82rem;line-height:1.35;display:grid}.setting-row input[type=checkbox]{width:20px;height:20px}.level-choice-list{gap:8px;width:100%;display:grid}.level-choice{background:var(--panel-solid);border:1px solid var(--line);color:var(--ink);text-align:left;border-radius:8px;gap:3px;padding:10px;display:grid}.level-choice.selected{border-color:var(--accent);background:#eef1ee}.level-choice span{color:var(--muted);font-size:.85rem}.phoneme-chip-list{flex-wrap:wrap;gap:6px;padding:4px 0 8px;display:flex}.phoneme-chip{background:var(--chip);color:#665f57;border:1px solid #d2c9bd;border-radius:999px;padding:5px 7px;font-size:.85rem;line-height:1}.phoneme-chip.removable,.phoneme-chip.selectable{background:var(--panel-solid);cursor:pointer}.advanced-focus{border-bottom:1px solid #d9d2c7cc;padding:10px 0}.advanced-focus summary{color:var(--muted);cursor:pointer;font-size:.9rem;font-weight:600}.save-confirm{color:var(--correct);margin-bottom:8px;font-size:.85rem}.save-error{color:var(--wrong);margin-bottom:8px;font-size:.85rem}.account-box{background:#faf8f3d1;border:1px dashed #cbbfb1;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:10px;width:100%;padding:12px;display:grid}.account-icon{color:#70685f;background:#eee8dd;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.account-box strong{font-size:.95rem;display:block}.account-box span{color:var(--muted);margin-top:2px;font-size:.8rem;line-height:1.35;display:block}@media (width<=520px){body{background:var(--panel-solid)}.app-shell{min-height:100vh;box-shadow:none;border-inline:0}.app-brand{padding-top:10px}.brand-copy span{display:none}.practice-container{padding-top:14px}.progress-stats{gap:8px}.stat-card{padding:10px 6px}.word-text{font-size:2.72rem}.phoneme-item{grid-template-columns:minmax(44px,auto) 1fr}.phoneme-count,.focus-action-btn{grid-column:2;justify-self:start}}
