:root{--bg:#f7f5ef;--surface:#fffdf8;--text:#20201d;--muted:#66645e;--line:#d9d4c8;--accent:#2f6f63;--accent-strong:#20574d;--accent-weak:#d9ebe5;--warn:#9c5c16;--danger:#9d2f2f;--shadow:0 18px 48px #20201d14}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Arial,Microsoft YaHei,sans-serif}body{line-height:1.6}a{color:inherit}button,textarea,input{font:inherit}input[type=text]{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:40px;padding:8px 12px}button,.button{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:8px 14px;font-weight:700;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--accent-strong)}button:focus-visible,.button:focus-visible{outline:3px solid var(--accent-strong);outline-offset:3px}button:not(.targetWordButton):active,.button:active{transform:translateY(1px)}button:disabled,.button[aria-disabled=true]{cursor:not-allowed;opacity:.55;pointer-events:none}.button.secondary,button.secondary{border-color:var(--accent);color:var(--accent-strong);background:0 0}.button.secondary:hover,button.secondary:hover{background:var(--accent-weak)}.feedbackChoice.active{background:var(--accent-weak);border-color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--accent-strong)}.page{width:min(960px,100% - 32px);margin:0 auto;padding:32px 0 180px}.topicChip{min-height:34px;padding:5px 10px}.difficultyDock{bottom:calc(86px + env(safe-area-inset-bottom));z-index:99;width:min(620px,100% - 24px);position:fixed;left:50%;transform:translate(-50%)}.difficultyDock details{border:1px solid var(--line);background:#fffdf8fa;border-radius:12px;box-shadow:0 10px 28px #20201d24}.difficultyDock summary{cursor:pointer;text-align:center;padding:10px 14px;font-weight:700}.difficultyDockPanel{border-top:1px solid var(--line);padding:14px}.difficultyDockPanel p{margin:0}.difficultyResult{font-weight:700}.lookupDefinition+.lookupDefinition{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.lookupDefinition{gap:10px}.stack{gap:16px;display:grid}.cluster{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.surface{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.pronunciationControls{gap:6px;display:grid}.pronunciationIconButton{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;display:inline-flex;position:relative}.pronunciationSpeakerIcon{fill:currentColor;width:20px;height:20px}.pronunciationSpeakerIcon path:nth-child(n+2){fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px}.pronunciationAccentBadge{background:var(--surface);border:1px solid;border-radius:999px;width:15px;height:15px;font-size:9px;font-weight:800;line-height:13px;position:absolute;bottom:2px;right:2px}.pronunciationIconButton.active .pronunciationAccentBadge{background:var(--accent);color:var(--surface)}.pronunciationRetryButton{min-height:44px;padding:6px 10px}.pronunciationError{color:brown}.dangerButton{background:var(--danger);border-color:var(--danger)}.adminUserFacts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:0;display:grid}.adminUserFacts div{min-width:0}.adminUserFacts dt{color:var(--muted);font-size:.9rem}.adminUserFacts dd{overflow-wrap:anywhere;margin:0}.adminUserCard h2{margin:0}.resetPreview{border-color:var(--warn)}textarea{background:var(--surface);border:1px solid var(--line);resize:vertical;border-radius:8px;width:100%;padding:10px 12px}.assessmentResult{gap:20px}.assessmentResult p{margin:0}.assessmentLevel{color:var(--accent-strong);margin-top:4px;font-size:clamp(40px,10vw,64px);line-height:1;display:block}.assessmentColumns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.assessmentColumns>div{background:var(--accent-weak);border-radius:8px;padding:16px}.assessmentColumns h2{margin:0 0 8px;font-size:18px}.assessmentColumns ul{margin:0;padding-left:20px}.muted{color:var(--muted)}.accountControls{justify-content:flex-end;align-items:center;gap:10px;display:flex}.appNavigation{border:1px solid var(--line);bottom:calc(12px + env(safe-area-inset-bottom));z-index:100;background:#fffdf8f5;border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(520px,100% - 24px);padding:8px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 14px 36px #20201d2e}.appNavigationLink{color:var(--accent-strong);background:0 0;border-color:#0000;min-height:48px;padding-inline:10px}.appNavigationLink:hover{background:var(--accent-weak)}.appNavigationLink.active{background:var(--accent);border-color:var(--accent);color:#fff}.appNavigationLink.active:hover{background:var(--accent-strong)}.generationProgress{gap:10px}.generationProgress.compact{background:var(--accent-weak);box-shadow:none}.generationProgressHeader{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.generationProgress progress{accent-color:var(--accent);width:100%;height:14px}.generationProgress p{margin:0}.reading{font-size:18px;line-height:1.85}.targetWord,.lookupWord{display:inline-block;position:relative}.lookupWordButton{color:inherit;font-weight:inherit;background:0 0;border:0;border-radius:0;min-height:0;padding:0;display:inline}.lookupWordButton:hover,.lookupWordButton:focus-visible{background:var(--accent-weak);color:var(--accent-strong);outline-offset:1px}.targetWordButton{border:0;border-bottom:1px solid var(--accent);color:var(--text);background:0 0;border-radius:0;min-height:0;padding:0;font-weight:700;display:inline}.targetWordButton:hover{color:var(--accent-strong);background:0 0}.popover{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);z-index:2;border-radius:8px;gap:6px;width:360px;max-width:calc(100vw - 32px);padding:12px;font-size:16px;font-weight:400;line-height:1.5;display:grid;position:absolute;top:1.8em;left:0}.phonetic{color:var(--accent-strong);font-family:Arial,sans-serif}.vocabularyFeedbackChoices{border-top:1px solid var(--line);margin-top:4px;padding-top:10px}.popover .vocabularyFeedbackChoices button{flex:auto;min-height:34px;padding:5px 8px}.feedbackItem{border-top:1px solid var(--line);padding-top:12px}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vocabularyLibrary{gap:20px}.vocabularyCounts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.vocabularyCount{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:6px;padding:16px;display:flex}.vocabularyCount span:first-child{color:var(--muted);flex-basis:100%}.vocabularyCount strong{color:var(--accent-strong);font-size:28px;line-height:1.1}.vocabularyCount span:last-child{align-self:end}.vocabularyTools{align-items:center;gap:12px;display:flex}.vocabularySearch{flex:280px}.vocabularySearch input{background:var(--surface);border:1px solid var(--line);border-radius:8px;width:100%;min-height:42px;padding:8px 12px}.vocabularyFilters{gap:8px;display:flex}.vocabularyFilters button{min-width:64px;min-height:40px}.vocabularyList{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin:0;padding:0;list-style:none}.vocabularyRow{border-top:1px solid var(--line);gap:6px;padding:16px 18px;display:grid}.vocabularyRow:first-child{border-top:0}.vocabularyRow p{margin:0}.vocabularyWord,.vocabularyMeta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vocabularyWord strong{font-size:20px}.vocabularyExample{color:var(--muted);font-size:15px}.vocabularyStatusEditor{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vocabularyStatusEditor>span{color:var(--muted);font-size:14px}.vocabularyStatusEditor .vocabularyFeedbackChoices{border-top:0;margin-top:0;padding-top:0}.vocabularyMeta{color:var(--muted);justify-content:space-between;font-size:14px}.familiarity{border-radius:999px;padding:2px 10px;font-weight:700}.familiarity-known{color:#34733c;background:#eaf5ea}.familiarity-fuzzy{color:var(--warn);background:#fff2d8}.familiarity-unknown{color:var(--danger);background:#fde8e8}.vocabularyEmpty{text-align:center;justify-items:center;padding:32px}.vocabularyEmpty h2,.vocabularyEmpty p{margin:0}@media (max-width:640px){.page{width:min(100% - 24px,960px);padding:24px 0 calc(112px + env(safe-area-inset-bottom))}.popover{max-height:calc(100vh - 32px - env(safe-area-inset-top));max-width:none;left:12px;right:12px;top:max(16px, calc(env(safe-area-inset-top) + 16px));width:auto;position:fixed;overflow-y:auto}.appNavigation{bottom:calc(8px + env(safe-area-inset-bottom));gap:6px;width:calc(100% - 16px);padding:6px}.appNavigationLink{min-height:46px;padding-inline:6px;font-size:15px}h1{font-size:28px;line-height:1.2}.assessmentColumns{grid-template-columns:1fr}.vocabularyCounts{grid-template-columns:1fr;gap:0}.vocabularyCount{border-top:0;border-radius:0;padding:12px 14px}.vocabularyCount:first-child{border-top:1px solid var(--line);border-radius:8px 8px 0 0}.vocabularyCount:last-child{border-radius:0 0 8px 8px}.vocabularyTools{flex-direction:column;align-items:stretch}.vocabularyFilters{grid-template-columns:repeat(4,1fr);display:grid}.vocabularyFilters button{min-width:0;padding-inline:6px}}.statusBadge{border:1px solid var(--border,#cbd5e1);border-radius:999px;align-items:center;width:fit-content;padding:.2rem .55rem;font-size:.78rem;font-weight:700;display:inline-flex}.statusBadge.completed{color:#166534;background:#dcfce7}.statusBadge.reading{color:#92400e;background:#fef3c7}.statusBadge.not_started{color:#475569;background:#f1f5f9}.notice{background:#fffbeb;border-left:4px solid #d97706;padding:.75rem 1rem}.selectionToolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.selectableWord{min-height:2rem;color:inherit;background:0 0;border:1px dashed #0000;margin:0 .08rem;padding:.1rem .2rem;display:inline}.selectableWord.selected{color:#1e3a8a;background:#dbeafe;border-color:#2563eb}.interactiveTextSelection{display:block}.levelReferenceTable{gap:.5rem;margin-top:1rem;display:grid}.levelReferenceRow{border-bottom:1px solid var(--border,#e2e8f0);grid-template-columns:minmax(8rem,.8fr) minmax(10rem,1fr) minmax(14rem,1.5fr) minmax(14rem,1.5fr);gap:.75rem;padding:.65rem 0;display:grid}@media (max-width:760px){.levelReferenceRow{grid-template-columns:1fr;gap:.25rem}}
