:root { color-scheme: light; --ink:#17221c; --muted:#627067; --paper:#fbfcf8; --green:#176b45; --mint:#e4f2e9; --line:#d8e1da; --warm:#f4efe3; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.55 system-ui,"Microsoft YaHei",sans-serif; }
header { height:64px; display:flex; align-items:center; gap:12px; padding:0 max(20px,calc((100% - 900px)/2)); border-bottom:1px solid var(--line); background:#fff; }
header strong { font-size:22px; color:var(--green); } header span,.muted { color:var(--muted); }
.learner-menu { display:flex; align-items:center; gap:9px; margin-left:auto; }
.learner-menu label { margin:0; color:var(--muted); font-size:13px; font-weight:600; }
.learner-menu select { width:auto; min-width:150px; min-height:38px; margin:0; padding:7px 34px 7px 11px; }
.learner-menu button { min-height:38px; padding:7px 12px; border-color:#b9cabf; }
.profile-dialog { width:min(460px,calc(100vw - 32px)); padding:0; border:1px solid var(--line); border-radius:20px; color:var(--ink); background:#fff; box-shadow:0 24px 80px rgba(23,34,28,.2); }
.profile-dialog::backdrop { background:rgba(23,34,28,.38); backdrop-filter:blur(2px); }
.profile-dialog form { padding:26px; }
.profile-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.profile-dialog-head h2,.profile-dialog-head p { margin:0; }
.profile-dialog-head button { flex:none; width:36px; min-width:36px; min-height:36px; padding:0; border:0; font-size:24px; }
main { max-width:900px; margin:auto; padding:28px 20px 96px; }
.hero-copy { max-width:720px; margin:-10px 0 22px; color:var(--muted); font-size:17px; }
nav { position:fixed; inset:auto 0 0; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border-top:1px solid var(--line); }
nav button { border:0; border-radius:0; background:#fff; padding:16px 4px; color:var(--muted); } nav button.active { color:var(--green); font-weight:700; box-shadow:inset 0 3px var(--green); }
h1 { margin:.1em 0 .7em; font-size:clamp(26px,5vw,42px); line-height:1.2; }
.eyebrow { margin:0; color:var(--green); font-weight:700; letter-spacing:.06em; }
.card { margin:18px 0; padding:22px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 8px 30px #17221c0a; }
.empty { color:var(--muted); border-style:dashed; }
label { display:block; margin:14px 0 6px; font-weight:650; } label input,textarea { font-weight:400; }
input[type=text],input:not([type]),textarea { width:100%; padding:12px; margin-top:6px; border:1px solid #aebbb2; border-radius:10px; font:inherit; }
[hidden] { display:none!important; }
input[type=file]:not([hidden]) { display:block; width:100%; margin-top:8px; font:inherit; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
select { display:block; width:100%; margin-top:6px; padding:10px; border:1px solid #aebbb2; border-radius:10px; background:#fff; font:inherit; }
.field-help { display:block; margin:-1px 0 12px; color:var(--muted); font-size:13px; line-height:1.5; }
fieldset { display:flex; flex-wrap:wrap; gap:10px 22px; margin:0 0 14px; padding:12px; border:1px solid var(--line); border-radius:12px; } fieldset label,.check { font-weight:500; margin:0; }
button { min-height:44px; border:1px solid var(--green); border-radius:10px; padding:9px 16px; background:#fff; color:var(--green); font:inherit; cursor:pointer; }
button.primary { width:100%; background:var(--green); color:#fff; font-weight:700; }
button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #83c7a5; outline-offset:2px; }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }.actions .primary { width:auto; }
.status { display:inline-block; border-radius:999px; padding:3px 10px; background:var(--mint); color:var(--green); font-weight:700; }
.warning { padding:12px; border-radius:10px; background:var(--warm); }.fact { border-left:4px solid var(--green); padding-left:12px; }
dl { display:grid; grid-template-columns:max-content 1fr; gap:6px 14px; } dt { color:var(--muted); } dd { margin:0; }
.previews { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; margin-top:12px; }
.preview { margin:0; padding:8px; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.preview img { display:block; width:100%; height:110px; object-fit:contain; background:#f5f7f5; }
.preview figcaption { margin-top:6px; overflow-wrap:anywhere; color:var(--muted); font-size:13px; }
.drop-zone { display:grid; gap:10px; justify-items:center; padding:28px; border:2px dashed #9ab9a5; border-radius:14px; background:#f7fbf8; text-align:center; }
.drop-zone.dragging { background:var(--mint); border-color:var(--green); }
.upload-actions { justify-content:center; margin-top:6px; }.upload-actions .primary { width:auto; }
.selection-status { width:min(100%,520px); padding:10px 14px; border:1px solid #bdd7c7; border-radius:10px; background:#fff; color:var(--green); font-weight:750; }
.selection-status::before { content:"✓"; display:inline-grid; width:20px; height:20px; margin-right:8px; place-items:center; border-radius:50%; background:var(--mint); }
#camera-button { display:none; }
.report-grid { display:grid; gap:14px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }.report-panel { padding:15px; border:1px solid var(--line); border-radius:12px; background:#fbfdfb; }.evidence-list { padding-left:20px; }.lesson-section { margin:18px 0; }.steps li { margin-bottom:8px; }.answer-box { width:100%; min-height:86px; }
@media (max-width:759px) and (pointer:coarse) { #camera-button { display:inline-block; } }
.file-list { display:grid; gap:8px; margin:14px 0; scroll-margin-top:24px; }
.file-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; }
.roles { display:grid; gap:8px; }.roles label { padding:10px; border:1px solid var(--line); border-radius:10px; }.roles small { color:var(--muted); }
.processing-status { margin-top:18px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:#f7fbf8; }
.processing-status progress { width:100%; height:12px; accent-color:var(--green); }
.processing-heading { display:flex; justify-content:space-between; gap:12px; margin-top:8px; }
.processing-heading span,.processing-status p { color:var(--muted); }
.processing-status p { margin:5px 0 0; font-size:14px; }
.offline-return-context { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 16px; padding:14px 16px; border:1px solid #bdd7c7; border-radius:12px; background:#f1f8f3; }.offline-return-context span { color:var(--muted); }
.source-list { display:grid; gap:10px; }.source-question,.challenge-question { padding:14px; border:1px solid var(--line); border-radius:12px; background:#fbfdfb; }.source-question h4,.challenge-question h3 { margin:0 0 8px; }
.choice-list { display:grid; gap:8px; border:0; padding:0; }.choice-list label { display:flex; align-items:flex-start; gap:10px; margin:0; padding:12px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }.choice-list label:has(input:checked) { border-color:var(--green); background:var(--mint); }.choice-list input { margin-top:5px; }.choice-selection-status { display:block; margin-top:9px; color:var(--muted); font-weight:650; }
.answer-preview { display:block; max-width:100%; max-height:520px; margin:16px auto; border-radius:12px; border:1px solid var(--line); object-fit:contain; }
.confirm-answer { margin:14px 0; }
.today-plan { margin:24px 0; padding:24px; border-radius:18px; background:#f7fbf8; border:1px solid var(--line); }
.today-plan h3,.today-plan p { margin-top:0; }
.today-plan ol,.today-plan-list { display:grid; gap:12px; margin:24px 0 28px; padding:0; list-style:none; counter-reset:plan-item; }
.today-plan ol li,.today-plan-list li { counter-increment:plan-item; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:16px; min-height:78px; padding:16px 18px; border:1px solid #dfe7e1; border-radius:14px; background:#fff; box-shadow:0 5px 18px rgba(23,34,28,.045); }
.today-plan ol li::before,.today-plan-list li::before { content:counter(plan-item); display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--mint); color:var(--green); font-weight:800; }
.plan-item-copy { min-width:0; }.plan-item-copy strong { display:block; font-size:17px; line-height:1.45; }.plan-item-copy small { display:block; margin-top:4px; color:var(--muted); font-size:14px; }
.plan-item-meta { justify-self:end; padding:5px 10px; border-radius:999px; background:#f0f5f1; color:#43534b; font-size:14px; white-space:nowrap; }
.question-loop-list { display:grid; gap:24px; margin-top:22px; }.question-loop { padding:20px; border:1px solid var(--line); border-radius:16px; background:#fff; }.question-loop h3 { margin-top:20px; }.question-progress { color:var(--green); font-weight:750; }
.reading-context { margin:12px 0; padding:16px; border-left:4px solid #d6a738; background:#fff9e9; border-radius:4px 12px 12px 4px; }.reading-context p { white-space:pre-wrap; }.reading-context mark { padding:1px 3px; background:#ffe082; border-radius:3px; }.mark-note { color:var(--muted); font-size:14px; }
.original-question { margin:14px 0; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fbfdfb; }.original-question p:first-child { margin-top:0; }.original-question-text { white-space:pre-wrap; }.original-question mark { padding:1px 3px; background:#ffe082; border-radius:3px; }
.reasoning-panel,.concept-bridge,.solution-reason,.option-review,.contrast-examples { margin-top:24px; }
.reasoning-panel { border-left:4px solid var(--green); background:#f4faf6; padding:14px 18px; border-radius:0 12px 12px 0; }.reasoning-panel h3 { margin-top:0; }.reasoning-panel p:last-child { margin-bottom:0; }
.concept-bridge { padding:20px; border:1px solid #b7cde4; border-radius:14px; background:#f5f9fd; }.concept-bridge > h3 { margin:7px 0 14px; }.foundation-check { padding:16px; border-radius:12px; background:#fff; }.foundation-check > p:first-child { margin-top:0; }.foundation-check > button { margin-top:10px; }.foundation-details { margin-top:18px; }.foundation-details h4 { margin:18px 0 10px; font-size:16px; }.role-map { display:grid; gap:8px; }.role-map-row { display:grid; grid-template-columns:minmax(100px,.7fr) minmax(150px,1fr) minmax(150px,1fr); gap:12px; align-items:center; padding:11px 13px; border:1px solid #d7e2ee; border-radius:10px; background:#fff; }.role-map-row span { color:var(--muted); }.role-map-row b { color:#1b5d91; }.placeholder-steps { display:grid; gap:8px; padding-left:24px; }.shortcut-explanation { margin:16px 0 0; padding:13px 15px; border-left:4px solid #4c86b5; background:#fff; }
.question-warning { margin-top:18px; padding:14px 18px; border:1px solid #d89a31; background:#fff8e8; border-radius:12px; }.question-warning p { margin:6px 0 0; }
.option-review-list { display:grid; gap:12px; }.option-review-item { border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:#fff; }.option-review-item[data-verdict="correct"],.option-review-item[data-verdict="acceptable"] { border-color:#79ad91; background:#f4faf6; }.option-review-item[data-verdict="uncertain"] { border-color:#d89a31; background:#fff8e8; }
.option-review-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }.option-review-head span { font-size:.86rem; padding:3px 9px; border-radius:999px; background:#edf2ef; white-space:nowrap; }.option-review-item p { margin:8px 0 0; }.option-rewrite { color:#43534b; }
.contrast-examples { border-top:1px solid var(--line); padding-top:18px; }.contrast-examples article { padding:10px 0; }.contrast-examples article+article { border-top:1px dashed #ccd6d0; }.contrast-examples p { margin:4px 0; }.memory-rule { margin:22px 0; padding:14px 18px; background:#eaf4ff; border-radius:12px; }
.speech-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:16px 0 4px; padding:10px 12px; background:#f3f6f4; border-radius:12px; }.speech-toolbar label { display:flex; align-items:center; gap:8px; font-weight:650; }.speech-toolbar select { min-height:38px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:0 10px; }
.speech-toolbar [data-speech-status] { color:var(--muted); font-size:.9rem; }.speech-toolbar [data-speech-status].warning { color:#9b2c2c; }
.speech-button { flex:0 0 auto; min-width:max-content; min-height:36px; margin-left:8px; padding:6px 12px; border-color:#8ca99a; color:var(--green); background:#fff; font-size:.9rem; line-height:1.35; white-space:nowrap; vertical-align:middle; }.speech-button.speaking { color:#fff; background:var(--green); }.answer-source-note { color:var(--muted); font-size:.9rem; }
.recap { padding:16px; border-radius:12px; background:var(--mint); }
.calendar-board { display:grid; gap:14px; }.calendar-summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; background:var(--green); color:#fff; border-radius:16px; }.calendar-summary > div:first-child { display:grid; gap:2px; }.calendar-summary span { opacity:.9; }.calendar-print-actions { display:flex; gap:8px; flex-wrap:wrap; }.calendar-print-actions button { min-height:40px; border-color:#fff; background:#fff; color:var(--green); padding:7px 12px; }
.calendar-day { display:grid; grid-template-columns:120px 1fr; gap:16px; padding:18px; border:1px solid var(--line); border-radius:16px; background:#fff; }.calendar-day.is-today { border:2px solid var(--green); }.calendar-date { display:grid; align-content:start; gap:2px; }.calendar-date strong { font-size:18px; }.calendar-date span,.calendar-event small { color:var(--muted); }
.calendar-events { display:grid; gap:10px; }.calendar-event { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px; border-radius:12px; background:#f7fbf8; }.calendar-event > div { flex:1 1 auto; min-width:0; }.calendar-event h3,.calendar-event p { margin:5px 0; }.calendar-event > button { flex:0 0 144px; width:144px; height:44px; padding:9px 12px; white-space:nowrap; }.calendar-event.is-complete { border:1px solid #e0e9e3; background:#fbfdfb; }.calendar-event.is-complete > div { opacity:.72; }.calendar-event.is-complete > button { border-color:#aac5b5; color:var(--green); background:#fff; }.calendar-event button[disabled],#complete-learning[disabled] { cursor:not-allowed; opacity:.5; }.review-note { margin:14px 0 20px; padding:11px 14px; border-left:3px solid var(--green); border-radius:8px; color:#486055; background:#f3f8f4; }
.growth-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }.growth-head h2,.growth-head p { margin:6px 0 0; }.growth-head > p { color:var(--muted); }.knowledge-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }.knowledge-card { padding:16px; border:1px solid var(--line); border-radius:14px; background:#fbfdfb; }.knowledge-card > div { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }.knowledge-card > div span { flex:0 0 auto; padding:3px 9px; border-radius:999px; background:var(--mint); color:var(--green); font-size:13px; font-weight:700; }.knowledge-card p { margin:10px 0 4px; color:#43534b; }.knowledge-card small { color:var(--muted); }
.growth-shell { padding:0; overflow:hidden; }.subject-map { padding:24px; }.subject-map-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }.subject-map-head h2,.subject-map-head p { margin:6px 0 0; }.subject-map-head > p { color:var(--muted); font-size:14px; }.subject-tabs { display:flex; gap:8px; padding:16px 24px 0; }.subject-tabs button { min-width:96px; border-color:var(--line); }.subject-tabs button.active { color:#fff; background:var(--green); border-color:var(--green); }.change-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:22px 0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--line); }.change-strip div { display:grid; gap:2px; padding:15px; background:#f7fbf8; }.change-strip strong { color:var(--green); font-size:24px; }.change-strip span { color:var(--muted); font-size:13px; }.ability-map { display:grid; gap:10px; }.ability-row { display:grid; grid-template-columns:minmax(180px,1.3fr) minmax(100px,.7fr) 150px; align-items:center; gap:20px; min-height:82px; padding:14px 16px; border:1px solid var(--line); border-radius:14px; }.ability-copy { display:grid; gap:3px; }.ability-copy strong { font-size:17px; }.ability-copy span,.ability-state small { color:var(--muted); font-size:13px; }.ability-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }.ability-progress i { height:8px; border-radius:999px; background:#e1e7e3; }.ability-progress i.filled { background:var(--green); }.ability-row[data-status="consolidating"] .ability-progress i.filled { background:#d6a738; }.ability-state { display:grid; gap:2px; }.recent-learning { margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }.word-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0; }.vocabulary-training { margin:22px 0; padding:22px; border:1px solid #bdd7c7; border-radius:16px; background:#f4faf6; }.vocabulary-training h3 { margin:10px 0 2px; }.word-card { min-width:0; padding:20px; border:1px solid var(--line); border-radius:14px; background:#fff; }.word-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; }.word-head > div { display:flex; min-width:0; flex-wrap:wrap; align-items:baseline; gap:6px 8px; }.word-head .speech-button { min-width:82px; margin-left:0; }.word-head strong { font-size:21px; overflow-wrap:anywhere; }.word-head span,.word-source { color:var(--muted); }.training-steps { display:grid; gap:6px; margin-bottom:0; }
.vocabulary-plan { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:18px 0 8px; overflow:hidden; border:1px solid #cfe0d5; border-radius:13px; background:#cfe0d5; }.vocabulary-plan div { display:grid; gap:3px; padding:13px; background:#fff; }.vocabulary-plan strong { color:var(--green); font-size:22px; }.vocabulary-plan span,.vocabulary-plan-note { color:var(--muted); font-size:13px; }.word-head em { padding:2px 7px; border-radius:999px; background:#edf3ef; color:var(--muted); font-size:12px; font-style:normal; }.word-source { margin:12px 0; padding:11px 12px; border-left:3px solid #b7d1c1; background:#f7faf8; }.word-source p { margin:4px 0; }.familiar-sense { color:#7a5420; }.memory-tip { color:#275b43; }.question-with-audio { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.question-with-audio > p { flex:1; margin-top:0; }
.vocabulary-day-progress { width:100%; height:9px; margin:5px 0 2px; accent-color:var(--green); }
@media (max-width:760px){.word-grid{grid-template-columns:1fr}.vocabulary-plan{grid-template-columns:repeat(2,minmax(0,1fr));}.question-with-audio{display:block}.question-with-audio .speech-button{margin-bottom:10px}}
.paper-packet { display:none; color:#111; background:#fff; font:14px/1.5 "Microsoft YaHei",sans-serif; }.paper-header { display:flex; justify-content:space-between; gap:24px; padding-bottom:12px; border-bottom:2px solid #111; }.paper-header strong { color:#111; font-size:22px; }.paper-header p { margin:2px 0; }.paper-header > div:last-child { display:grid; gap:6px; text-align:right; }.paper-tip { padding:10px 12px; border:1px solid #999; }.paper-task { break-inside:avoid; margin:18px 0; padding:16px; border:1px solid #777; }.paper-task-head { display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid #aaa; }.paper-task-head h2 { margin:3px 0 10px; font-size:18px; }.paper-task-head small { white-space:nowrap; }.paper-context { padding:10px; border-left:3px solid #555; background:#f5f5f5; }.paper-context p,.paper-question p { white-space:pre-wrap; }.paper-answer-lines { display:grid; gap:16px; margin:18px 0; }.paper-answer-lines i { display:block; height:1px; border-bottom:1px solid #aaa; }.paper-method,.paper-practice { margin-top:14px; padding-top:10px; border-top:1px dashed #999; }.paper-check { font-weight:400; }.paper-check input { width:auto; }.paper-packet footer { margin-top:18px; padding-top:10px; border-top:1px solid #777; }
@media (max-width:620px) { .calendar-summary,.calendar-event,.growth-head,.subject-map-head,.offline-return-context { align-items:stretch; flex-direction:column; }.calendar-print-actions { display:grid; }.calendar-event > button { flex-basis:auto; width:100%; }.calendar-day { grid-template-columns:1fr; }.question-loop { padding:16px; }.today-plan { padding:18px; }.today-plan ol li,.today-plan-list li { grid-template-columns:38px minmax(0,1fr); gap:12px; padding:14px; }.plan-item-meta { grid-column:2; justify-self:start; }.change-strip { grid-template-columns:repeat(2,1fr); }.ability-row,.role-map-row { grid-template-columns:1fr; gap:6px; }.subject-map { padding:18px; } }
@media (min-width:760px) { nav { position:static; border:0; display:flex; margin-bottom:28px; } nav button { border-radius:8px; padding:8px 18px; } nav button.active { background:var(--mint); box-shadow:none; } }
.coach-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); background:#f7fbf8; }.coach-head > div { display:grid; gap:2px; }.coach-head strong { color:var(--ink); font-size:18px; }.coach-head span { color:var(--muted); font-size:12px; }.coach-head button { min-width:36px; min-height:36px; border:0; padding:0; font-size:24px; }
#coach-panel { position:fixed; z-index:10; right:20px; top:82px; bottom:20px; display:flex; flex-direction:column; width:min(370px,calc(100vw - 32px)); overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 20px 60px #17221c26; }
.coach-messages { flex:1; display:flex; flex-direction:column; gap:12px; overflow:auto; padding:18px; }.coach-message { max-width:90%; padding:11px 13px; border-radius:14px; white-space:pre-wrap; overflow-wrap:anywhere; }.coach-message.assistant { align-self:flex-start; background:#f1f6f2; }.coach-message.user { align-self:flex-end; background:var(--green); color:#fff; }.coach-message.pending { color:var(--muted); }
.coach-suggestions { display:flex; gap:7px; overflow-x:auto; padding:0 16px 10px; }.coach-suggestions button { flex:0 0 auto; min-height:34px; padding:5px 10px; border-color:#b8c9be; font-size:13px; white-space:nowrap; }
.coach-form { display:grid; grid-template-columns:1fr auto; gap:8px; padding:12px; border-top:1px solid var(--line); }.coach-form textarea { min-height:48px; max-height:120px; margin:0; resize:vertical; }.coach-form .primary { width:auto; min-width:68px; }
#coach-toggle { position:fixed; z-index:11; right:18px; bottom:78px; min-width:86px; border:0; border-radius:999px; background:var(--green); color:#fff; font-weight:750; box-shadow:0 8px 28px #17221c35; }
@media (min-width:1280px) { main { margin-left:max(20px,calc((100vw - 1320px)/2)); margin-right:410px; } header { padding-left:max(20px,calc((100vw - 1320px)/2)); } #coach-panel { right:max(20px,calc((100vw - 1320px)/2)); } #coach-toggle,#coach-close { display:none; } }
@media (max-width:1279px) { #coach-panel { top:auto; transform:translateY(calc(100% + 110px)); transition:transform .2s ease; } #coach-shell.open #coach-panel { transform:translateY(0); } }
@media (max-width:620px) { #coach-panel { right:8px; bottom:70px; width:calc(100vw - 16px); max-height:72vh; }.coach-form { grid-template-columns:1fr; }.coach-form .primary { width:100%; } }
/* Spacious learning and growth surfaces: fewer cramped edges, clearer reading rhythm. */
main { max-width:940px; padding:36px 24px 112px; }
.question-loop-list { gap:34px; margin-top:30px; }
.question-loop { padding:28px; border-color:#dfe6e1; border-radius:20px; box-shadow:0 12px 36px rgba(23,34,28,.035); }
.question-loop h3 { margin-top:28px; }
.question-loop p { line-height:1.72; }
.original-question { margin:20px 0 26px; padding:20px; border-color:#dfe6e1; border-radius:16px; background:#fcfdfb; }
.original-stem { display:block; margin-bottom:14px; }
.original-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; }
.original-options > span { display:block; padding:9px 11px; border:1px solid #e1e7e3; border-radius:10px; background:#fff; }
.original-question-text { display:block; margin-top:16px; }
.source-question-scan { margin:18px 0 24px; padding:16px; border:1px solid #d9e4dc; border-radius:18px; background:#f8fbf9; }
.source-question-scan-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.source-question-scan-head div { display:grid; gap:4px; }
.source-question-scan-head span { color:var(--muted); font-size:14px; }
.source-question-scan-head button { flex:0 0 auto; padding:9px 14px; border:1px solid #bfd1c5; border-radius:10px; color:var(--green); background:#fff; font-weight:700; }
.source-question-scan img { display:block; width:100%; max-height:760px; object-fit:contain; border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(35,65,48,.08); }
.original-stem { font-size:18px; line-height:1.75; }
.original-options > span { min-width:0; line-height:1.55; overflow-wrap:anywhere; }
.concept-overview { margin:26px 0; padding:24px; border:1px solid #dbe5df; border-radius:18px; background:#f8fbf8; }
.concept-overview h3 { margin:8px 0 10px; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.section-heading h3 { margin:8px 0 10px; }
.math-foundation { margin:28px 0; padding:26px; border:1px solid #cfded4; border-radius:20px; background:linear-gradient(145deg,#fbfdfb,#f1f7f3); box-shadow:0 14px 36px rgba(25,66,45,.05); }
.math-diagram { margin:20px 0; padding:16px 18px 12px; border:1px solid #dce7df; border-radius:16px; background:#fff; text-align:center; }
.math-diagram svg { width:min(100%,460px); max-height:220px; }
.math-diagram svg polygon,.math-diagram svg rect,.math-diagram svg circle,.math-diagram svg ellipse,.math-diagram svg line { fill:#f4faf6; stroke:#32694b; stroke-width:3; }
.math-diagram svg .guide { fill:none; stroke:#d09235; stroke-width:2; stroke-dasharray:6 5; }
.math-diagram svg .relation { fill:none; stroke:#d09235; stroke-width:2.5; }
.math-diagram svg .curve { fill:none; stroke:#32694b; stroke-width:3; }
.math-diagram svg .fill,.math-diagram svg .point { fill:#32694b; stroke:none; }
.math-diagram svg text { fill:#26372e; font-size:15px; font-weight:650; }
.math-diagram.data-driven-diagram { margin-top:18px; background:#fbfdfb; }
.math-diagram.data-driven-diagram svg { max-height:300px; }
.math-diagram.data-driven-diagram svg .grid { fill:none; stroke:#e6ece8; stroke-width:1; }
.math-diagram.data-driven-diagram svg .axis { fill:none; stroke:#9aaba0; stroke-width:1.5; }
.math-diagram.data-driven-diagram svg polygon { fill:#edf7f0; stroke:#32694b; stroke-width:3; }
.math-diagram.data-driven-diagram svg .measure { fill:#a05f11; font-size:13px; font-weight:750; }
.math-diagram figcaption { display:grid; gap:4px; color:var(--muted); font-size:14px; }
.math-diagram figcaption strong { color:#31483a; }
.formula-origin { margin:18px 0; padding:19px 20px; border-radius:15px; background:#fff; }
.formula-origin h4,.derivation-list h4 { margin:0 0 12px; }
.formula-origin code,.derivation-list code { display:inline-block; padding:9px 13px; border-radius:9px; background:#edf6ef; color:#214f37; font:700 18px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:normal; }
.formula-origin p { margin:12px 0 0; line-height:1.7; }
.derivation-list { margin:22px 0; }
.derivation-list article { display:grid; grid-template-columns:32px 1fr; gap:12px; padding:14px 0; border-top:1px solid #dce6df; }
.derivation-list article > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#32694b; color:#fff; font-weight:750; }
.derivation-list p { margin:2px 0 9px; line-height:1.65; }
.application-bridge { margin:18px 0 0; padding:15px 17px; border-left:4px solid #d09235; border-radius:4px 12px 12px 4px; background:#fff9ed; line-height:1.7; }
.concept-branches { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:18px 0; }
.concept-branches article { padding:16px; border:1px solid #dfe6e1; border-radius:14px; background:#fff; }
.concept-branches p { margin:7px 0 10px; color:var(--muted); font-size:14px; }
.concept-branches code { white-space:normal; color:#295b42; font-family:inherit; font-weight:700; }
.concept-focus { margin:0; padding:13px 15px; border-left:4px solid var(--green); background:#edf6ef; border-radius:4px 10px 10px 4px; }
@media (max-width:640px){.math-foundation,.concept-overview{padding:19px}.section-heading{align-items:center}.section-heading .speech-button{flex:0 0 auto}.formula-origin code,.derivation-list code{font-size:16px}}
.context-incomplete { border-color:#dfc17d; background:#fffdf8; }
.context-incomplete .warning { margin-bottom:0; }
.question-insight { margin:22px 0; padding:20px; border:1px solid #d8dfc0; border-radius:16px; background:#fffdf5; }
.question-insight > h3,.question-insight > p { margin:7px 0; }
.question-insight-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
.question-insight-grid article { padding:14px 16px; border-radius:12px; background:#fff; }
.question-insight-grid h4 { margin:0 0 8px; }
.question-insight-grid ul { display:grid; gap:7px; margin:0; padding-left:20px; }
.transfer-method { margin:22px 0; padding:20px; border:1px solid #bad2c3; border-radius:16px; background:#f4faf6; }
.transfer-method h3,.transfer-method p { margin:7px 0; }
.transfer-method ol { display:grid; gap:7px; margin:14px 0; padding-left:24px; }
.transfer-self-check { padding:12px 14px; border-radius:10px; background:#fff; }
.transfer-method details { margin-top:14px; padding-top:12px; border-top:1px solid #d4e2d8; }
.transfer-method summary { cursor:pointer; color:var(--green); font-weight:700; }
.reasoning-panel { padding:20px 22px; border-radius:0 16px 16px 0; }
.speech-toolbar { margin:22px 0 30px; padding:12px 14px; border:1px solid #e1e7e3; background:#f8faf8; border-radius:14px; }
.assessment-entry { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:28px; padding:24px; border:1px solid #d9e5dc; border-radius:18px; background:linear-gradient(135deg,#f4faf6,#eef6f1); }
.assessment-entry > div { flex:1 1 auto; min-width:0; }.assessment-entry h3,.assessment-entry p { margin:4px 0; }.assessment-entry button { flex:0 0 auto; width:auto; min-width:156px; white-space:nowrap; }
.assessment-blueprint { display:grid; gap:6px; margin:22px 0 30px; padding:20px 22px; border-radius:16px; background:#eef6f1; }.assessment-blueprint p { margin:0; color:var(--muted); }
.assessment-section { margin-top:34px; }.assessment-section>h3 { padding-bottom:12px; border-bottom:1px solid var(--line); }
.assessment-question { margin:18px 0; padding:20px 22px; border:1px solid #e0e7e2; border-radius:16px; background:#fff; }.assessment-question>p { font-size:1.05rem; }
.listening-assessment { padding:24px; border-radius:20px; background:#f7f9f7; }.listening-play { margin:0 0 16px; }
.assessment-actions { display:flex; gap:12px; margin-top:30px; }.assessment-result { margin:24px 0; padding:22px; border-radius:16px; background:#eef6f1; }
.assessment-summary { padding:26px; }.assessment-summary > h3 { margin:5px 0 8px; font-size:22px; }.assessment-summary-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:20px 0; }.assessment-summary-grid article { padding:15px 16px; border:1px solid #d7e3da; border-radius:13px; background:#fff; }.assessment-summary-grid article > div { display:flex; justify-content:space-between; gap:12px; }.assessment-summary-grid article p { margin:7px 0 0; color:var(--muted); font-size:13px; }
.writing-question textarea { width:100%; min-height:260px; margin-top:16px; padding:16px; resize:vertical; line-height:1.75; }.writing-dimensions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }.writing-dimensions article { padding:14px; border:1px solid #d7e3da; border-radius:12px; background:#fff; }.writing-dimensions p { margin:6px 0; }.writing-dimensions small { color:var(--muted); }
.listening-training { display:grid; gap:16px; }.listening-transcript { padding:18px; border:1px solid #d7e3da; border-radius:14px; background:#fff; }.listening-transcript>p:last-child { line-height:1.9; }.key-phrase-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }.key-phrase-grid article { display:grid; gap:4px; padding:13px; border-radius:12px; background:#f3f7f4; }.key-phrase-grid span { color:var(--muted); }
.coach-task-proposal { align-self:stretch; display:grid; gap:7px; padding:15px; border:1px solid #b9d3c2; border-radius:16px; background:#f4faf6; }.coach-task-proposal small,.coach-task-proposal span { color:var(--muted); }.coach-task-proposal strong { font-size:16px; }.coach-task-proposal p { margin:2px 0 6px; }.coach-task-proposal .primary { width:100%; }.coach-created-lesson { margin:22px 0; padding:20px; border-radius:16px; background:#f4faf6; }.question-result-list { display:grid; gap:10px; margin:20px 0; }.question-result-list article { padding:14px; border-radius:12px; }
.assessment-review { margin:30px 0; }.assessment-review > h3 { margin-bottom:16px; }.assessment-review-list { display:grid; gap:18px; }.assessment-review-card { padding:22px; border:1px solid #dfe7e1; border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(28,53,38,.05); }.assessment-review-card.is-wrong { border-color:#e8c6bc; background:#fffaf8; }.review-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; }.review-heading > span { color:var(--muted); font-size:13px; }.review-prompt { font-size:17px; line-height:1.75; }.review-options { display:grid; gap:9px; padding:0; margin:16px 0; list-style:none; }.review-options li { display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:8px; align-items:start; padding:11px 13px; border:1px solid #e3e8e4; border-radius:12px; background:#fff; }.review-options li.is-answer { border-color:#8db89d; background:#f1f8f3; }.review-options li.is-wrong { border-color:#d99d8d; background:#fff3ef; }.review-options small { color:var(--muted); white-space:nowrap; }.review-explanation { margin-top:16px; padding:15px 17px; border-radius:13px; background:#f2f6f3; }.review-explanation p { margin:7px 0 0; line-height:1.75; }.correct-review { margin-top:20px; }.correct-review > summary { cursor:pointer; color:var(--brand); font-weight:700; margin-bottom:16px; }
.listening-review-start button { margin-top:12px; }.listening-error-review { display:grid; gap:14px; margin-top:18px; padding:20px; border:1px solid #cdded3; border-radius:16px; background:#f8fbf9; }.listening-error-review h4 { margin:8px 0 0; font-size:17px; }.listening-error-review p { margin:0; line-height:1.75; }.listening-cause-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }.listening-cause-grid button { min-height:46px; text-align:left; background:#fff; }.optional-reflection { padding-top:8px; border-top:1px solid #dce7df; }.optional-reflection summary,.listening-full-text summary { cursor:pointer; color:var(--brand); font-weight:700; }.optional-reflection textarea { box-sizing:border-box; width:100%; margin-top:12px; padding:12px; resize:vertical; border:1px solid #ccd8d0; border-radius:10px; }.listening-error-review blockquote { margin:0; padding:16px 18px; border-left:4px solid var(--brand); border-radius:0 12px 12px 0; background:#fff; font-size:17px; line-height:1.8; }.listening-full-text { padding:14px 16px; border-radius:12px; background:#fff; }.listening-full-text mark { padding:2px 4px; background:#fff0a8; }.transfer-feedback { min-height:8px; }
.adaptive-probes { display:grid; gap:16px; margin-top:10px; padding-top:20px; border-top:1px solid #d7e3da; }.diagnostic-probe { padding:16px; border:1px solid #dde6df; border-radius:14px; background:#fff; }.diagnostic-probe > p { margin:0 0 10px; }.listening-diagnosis { display:grid; gap:14px; margin-top:8px; }.listening-diagnosis > h4 { font-size:20px; }.diagnosed-gap-list { display:grid; gap:10px; }.diagnosed-gap-list article { padding:14px 16px; border:1px solid #d7e3da; border-radius:12px; background:#fff; }.diagnosed-gap-list p { margin-top:5px; color:var(--muted); }
@media (max-width:720px){.assessment-entry{align-items:stretch;flex-direction:column}.assessment-entry button{width:100%;min-width:0}.listening-assessment{padding:18px}.assessment-question{padding:16px}}
@media (max-width:620px){.writing-dimensions{grid-template-columns:1fr}.writing-question textarea{min-height:220px}}
.subject-map { padding:30px; }
.subject-map-head { gap:24px; }
.subject-tabs { padding:20px 30px 0; }
.change-strip { margin:28px 0 34px; border-radius:16px; }
.change-strip div { align-content:center; min-height:94px; padding:18px 20px; }
.change-strip strong { font-size:26px; line-height:1; }
.change-strip small { display:block; margin-top:3px; color:#7a877f; font-size:11px; line-height:1.35; }
.ability-map { gap:14px; }
.ability-row { gap:24px; min-height:92px; padding:18px 20px; border-color:#dfe6e1; border-radius:16px; }
.curriculum-scope { display:grid; gap:5px; margin:20px 0 0; padding:16px 18px; border:1px solid #dfe8e2; border-radius:14px; background:#f6faf7; }
.curriculum-scope span { color:var(--muted); font-size:14px; line-height:1.7; }
.ability-skills { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ability-skills span { padding:4px 8px; border-radius:999px; background:#f2f5f3; color:#53635a; font-size:12px; line-height:1.35; }
.ability-details { margin-top:9px; }
.ability-details summary { width:max-content; cursor:pointer; color:var(--green); font-size:13px; }
.ability-copy { gap:5px; }
.ability-progress { gap:6px; }
.ability-state { gap:3px; }
.recent-learning { margin-top:32px; padding-top:26px; }
.coach-head { height:auto; padding:20px 22px 17px; border-bottom-color:#e5ebe7; background:#fafcf9; }
#coach-panel { width:min(400px,calc(100vw - 32px)); border-color:#dfe6e1; border-radius:24px; box-shadow:0 24px 72px rgba(23,34,28,.14); }
.coach-messages { gap:14px; padding:22px; }
.coach-message { max-width:86%; padding:12px 15px; border-radius:16px; line-height:1.65; }
.coach-suggestions { flex-wrap:wrap; gap:8px; overflow:hidden; padding:4px 18px 14px; }
.coach-suggestions button { max-width:100%; padding:5px 11px; overflow:hidden; border-color:#c5d2ca; text-overflow:ellipsis; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.coach-form { display:block; padding:14px 16px 16px; border-top-color:#e5ebe7; background:#fcfdfb; }
.coach-composer { overflow:hidden; border:1px solid #cfd8d2; border-radius:18px; background:#fff; box-shadow:0 3px 14px rgba(23,34,28,.045); transition:border-color .15s ease,box-shadow .15s ease; }
.coach-composer:focus-within { border-color:#78a78d; box-shadow:0 0 0 3px rgba(65,132,93,.09),0 4px 16px rgba(23,34,28,.06); }
.coach-form .coach-composer textarea { min-height:90px; max-height:200px; margin:0; padding:17px 18px 8px; border:0; border-radius:0; outline:0; background:transparent; box-shadow:none; overflow-y:hidden; resize:none; line-height:1.6; }
.coach-composer-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:6px 9px 9px 16px; }
.coach-compose-hint { color:#9aa39d; font-size:11px; letter-spacing:.01em; }
.coach-composer-actions { display:flex; align-items:center; gap:7px; }
.coach-form .coach-send,.coach-icon-button { display:inline-grid; place-items:center; width:38px; min-width:38px; height:38px; min-height:38px; padding:0; border-radius:50%; }
.coach-form .coach-send { border:0; background:#286a49; color:#fff; box-shadow:none; transition:background .15s ease,transform .15s ease; }
.coach-form .coach-send:hover:not(:disabled) { background:#205b3e; transform:translateY(-1px); }
.coach-icon-button { border:0; background:transparent; color:#53645b; box-shadow:none; transition:color .15s ease,background .15s ease; }
.coach-icon-button:hover { background:#edf3ef; color:#286a49; }
.coach-voice svg,.coach-send svg { width:19px; height:19px; fill:currentColor; }.coach-voice.listening { background:#fff0ef; color:#b23a35; }.coach-voice.listening svg { animation:voice-pulse 1s ease-in-out infinite; }
.coach-voice-status,.coach-voice-status.warning { margin:8px 4px 0; padding:0; border-radius:0; background:transparent; color:var(--muted); font-size:12px; line-height:1.45; }.coach-voice-status.warning { color:#a13b35; }
@keyframes voice-pulse { 50% { opacity:.42; transform:scale(.9); } }
.subject-switcher { display:flex; align-items:center; gap:6px; width:max-content; max-width:100%; margin:0 0 24px; padding:5px; border:1px solid var(--line); border-radius:14px; background:#f4f7f5; }
.subject-switcher button { min-width:82px; min-height:38px; padding:7px 16px; border:0; border-radius:10px; color:#536158; background:transparent; box-shadow:none; }
.subject-switcher button.active { color:#173f2e; background:#fff; box-shadow:0 2px 9px rgba(28,63,46,.09); }
.subject-badge { display:inline-flex; align-items:center; width:max-content; min-height:24px; padding:3px 9px; border:1px solid #cddbd3; border-radius:999px; color:#315c47; background:#f4faf6; font-size:12px; font-weight:750; letter-spacing:.04em; }
.upload-panel { margin:24px 0; }
.upload-panel > summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:15px 18px; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:#fff; cursor:pointer; list-style:none; transition:border-color .15s ease,background .15s ease; }
.upload-panel > summary::-webkit-details-marker { display:none; }
.upload-panel > summary:hover { border-color:#b8cbbf; background:#fbfdfb; }
.upload-panel > summary span:first-child { display:grid; gap:2px; }
.upload-panel > summary small { color:var(--muted); font-weight:400; }
.upload-summary-action { flex:none; color:var(--green); font-size:14px; font-weight:750; }
.upload-summary-action::after { content:"＋"; margin-left:7px; }
.upload-panel[open] .upload-summary-action::after { content:"−"; }
.upload-panel .upload-card { margin:10px 0 0; }
.today-task-overview { margin:22px 0; }
.today-task-overview:empty { display:none; }
.today-task-summary { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:12px; }
.today-task-summary h2,.today-task-summary p { margin:0; }
.today-task-summary p { color:var(--muted); font-size:14px; }
.today-primary-task { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:150px; padding:24px 26px; border:1px solid #bfd2c6; border-radius:18px; background:linear-gradient(135deg,#f5fbf7 0%,#fff 70%); box-shadow:0 12px 32px rgba(26,69,48,.07); }
.today-primary-task > div { min-width:0; }
.today-primary-task h2,.today-primary-task p { margin:8px 0 0; }
.today-primary-task p { color:var(--muted); }
.today-primary-task > button { flex:none; width:auto; min-width:116px; }
.today-primary-task.is-complete { min-height:126px; box-shadow:none; }
.today-later { margin-top:22px; }
.today-later > h3 { margin:0 0 10px; font-size:15px; color:#526258; }
.today-task-list { overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }
.today-task-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; width:100%; min-height:66px; padding:12px 16px; border:0; border-bottom:1px solid var(--line); border-radius:0; color:var(--ink); background:#fff; box-shadow:none; text-align:left; }
.today-task-row:last-child { border-bottom:0; }
.today-task-row:hover { background:#f8fbf9; transform:none; }
.today-task-row > span { display:flex; align-items:center; gap:10px; min-width:0; }
.today-task-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.today-task-row small { color:var(--muted); white-space:nowrap; }
.today-completed { margin-top:14px; color:var(--muted); }
.today-completed > summary { width:max-content; cursor:pointer; font-size:14px; }
.today-completed .today-task-list { margin-top:10px; opacity:.78; }
.today-empty { padding:24px; border:1px dashed #c7d5cc; border-radius:16px; background:#fbfdfb; }
.today-empty h2,.today-empty p { margin:0; }
.today-empty p { margin-top:7px; color:var(--muted); }
.task-state-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.task-state-row .status { margin:0; }
.calendar-day { grid-template-columns:105px 1fr; gap:14px; padding:14px 16px; border-radius:14px; }
.calendar-events { gap:0; overflow:hidden; border:1px solid var(--line); border-radius:12px; }
.calendar-event { min-height:66px; padding:11px 12px; border-radius:0; border-bottom:1px solid var(--line); background:#fff; }
.calendar-event:last-child { border-bottom:0; }
.calendar-event h3 { margin:4px 0 2px; font-size:16px; }
.calendar-event > button { flex-basis:96px; width:96px; height:38px; padding:7px 10px; }
.calendar-event.is-complete { border:0; border-bottom:1px solid var(--line); background:#fbfdfb; }
.calendar-event.is-complete:last-child { border-bottom:0; }
.print-progress { display:grid; grid-template-columns:minmax(160px,1fr) auto; align-items:center; gap:12px; margin:0 0 16px; padding:12px 14px; border:1px solid #dce6df; border-radius:12px; background:#f7faf8; }
.print-progress[hidden] { display:none; }
.print-progress progress { width:100%; }
.print-progress span { color:var(--muted); font-size:13px; }
.paper-vocabulary-group { break-inside:auto; margin:18px 0; }.paper-vocabulary-group table { width:100%; border-collapse:collapse; }.paper-vocabulary-group th,.paper-vocabulary-group td { padding:7px 8px; border:1px solid #cfd8d2; text-align:left; }.paper-word-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.paper-word { break-inside:avoid; padding:10px; border:1px solid #d9e2dc; border-radius:8px; }.paper-word p { margin:5px 0; }.paper-answers { break-before:page; }.paper-answer-key { break-inside:avoid; }
.paper-options { display:grid; gap:7px; margin:12px 0 16px; padding:0; list-style:none; }
.paper-options li { display:grid; grid-template-columns:24px minmax(0,1fr); gap:6px; padding:7px 9px; border:1px solid #dfe5e1; border-radius:7px; }
@media (min-width:1280px) { main { margin-left:max(24px,calc((100vw - 1410px)/2)); margin-right:440px; } header { padding-left:max(24px,calc((100vw - 1410px)/2)); } #coach-panel { right:max(24px,calc((100vw - 1410px)/2)); } }
@media (max-width:620px) { main { padding:24px 16px 96px; }.question-loop { padding:18px; }.subject-map { padding:20px; }.subject-switcher { width:100%; }.subject-switcher button { flex:1; min-width:0; }.today-task-summary,.today-primary-task { align-items:stretch; flex-direction:column; }.today-primary-task > button { width:100%; }.today-task-row { grid-template-columns:1fr; gap:5px; }.today-task-row > span { align-items:flex-start; flex-direction:column; gap:5px; }.today-task-row strong { white-space:normal; }.upload-panel > summary { align-items:flex-start; }.coach-messages { padding:18px; }.coach-form .coach-composer textarea { min-height:82px; max-height:160px; }.coach-compose-hint { display:none; }.coach-composer-toolbar { justify-content:flex-end; }.original-options { grid-template-columns:1fr; } }
@media (max-width:620px) { body > header { height:auto; min-height:64px; flex-wrap:wrap; padding:10px 16px; }.learner-menu { width:100%; margin-left:0; }.learner-menu label { display:none; }.learner-menu select { flex:1; min-width:0; }.learner-menu button { flex:none; } }
@media (max-width:620px) { .question-insight-grid { grid-template-columns:1fr; } }
@media print { @page { size:A4; margin:14mm; } body.printing-paper > :not(#paper-packet) { display:none!important; } body.printing-paper #paper-packet { display:block; } .paper-task { break-inside:avoid-page; } }
.attempt-history { display:grid; gap:18px; margin:32px 0; padding:26px; border:1px solid #dce6df; border-radius:20px; background:#f8fbf9; }
.attempt-history-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.attempt-history-head h3,.attempt-history-head p { margin:0; }
.attempt-history-head > span { color:var(--muted); font-size:13px; }
.attempt-session { display:grid; gap:12px; padding-top:18px; border-top:1px solid #dfe8e2; }
.attempt-session h4 { display:flex; justify-content:space-between; gap:16px; margin:0; }
.attempt-session h4 small { color:var(--muted); font-weight:400; }
.attempt-item { overflow:hidden; border:1px solid #dce5df; border-radius:14px; background:#fff; }
.attempt-item > summary { padding:14px 16px; cursor:pointer; font-weight:750; }
.attempt-item.needs-review { border-color:#e4c6bd; }
.attempt-timeline { display:grid; gap:10px; padding:0 16px 16px; }
.attempt-step { display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:10px; align-items:start; padding:12px 14px; border-radius:11px; background:#f4f7f5; }
.attempt-step.is-wrong { background:#fff3ef; }
.attempt-step b { color:#47715b; }
.attempt-step.is-wrong b { color:#a34b3e; }
.attempt-step p { grid-column:2 / -1; margin:0; color:#5e6962; line-height:1.65; }
.attempt-item .review-prompt { padding:0 16px; }
.attempt-item .review-options { margin:12px 16px; }
@media (max-width:620px){.attempt-history{padding:18px}.attempt-step{grid-template-columns:1fr auto}.attempt-step>strong{grid-column:1/-1}.attempt-step p{grid-column:1/-1}}
.feedback-toggle { position:fixed; right:24px; bottom:22px; z-index:30; width:auto; min-height:42px; padding:9px 16px; border:1px solid #cbd8d0; border-radius:999px; color:#365848; background:rgba(255,255,255,.96); box-shadow:0 8px 28px rgba(25,52,38,.12); font-size:13px; }
.feedback-toggle:hover { border-color:#8fb09d; background:#f7fbf8; }
.feedback-dialog { width:min(580px,calc(100vw - 32px)); padding:0; border:0; border-radius:22px; color:var(--ink); box-shadow:0 28px 90px rgba(20,38,29,.24); }
.feedback-dialog::backdrop { background:rgba(18,30,24,.34); backdrop-filter:blur(2px); }
.feedback-dialog form { padding:28px; }
.feedback-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.feedback-dialog-head h2,.feedback-dialog-head p { margin:0; }
.dialog-close { width:36px; min-width:36px; height:36px; padding:0; border:0; border-radius:50%; background:#f1f4f2; box-shadow:none; font-size:22px; line-height:1; }
.feedback-context-label { margin:14px 0 18px; padding:11px 13px; border-radius:11px; color:#54665c; background:#f4f7f5; font-size:14px; }
.feedback-task-picker { display:grid; gap:7px; margin:-4px 0 18px; font-weight:700; }
.feedback-task-picker[hidden] { display:none; }
.feedback-task-picker select { width:100%; min-height:44px; padding:9px 38px 9px 12px; border:1px solid #cfdad3; border-radius:11px; color:var(--ink); background:#fff; font:inherit; }
.feedback-task-picker small { color:var(--muted); font-size:12px; font-weight:400; }
.feedback-categories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; padding:0; border:0; }
.feedback-categories label { position:relative; cursor:pointer; }
.feedback-categories input { position:absolute; opacity:0; pointer-events:none; }
.feedback-categories span { display:flex; align-items:center; min-height:46px; padding:10px 13px; border:1px solid #d7e0da; border-radius:12px; background:#fff; transition:.15s ease; }
.feedback-categories input:checked + span { border-color:#4d8767; color:#215b3d; background:#eef7f1; box-shadow:0 0 0 2px rgba(50,113,76,.08); }
.feedback-description { display:grid; gap:8px; margin-top:18px; font-weight:700; }
.feedback-description textarea { box-sizing:border-box; width:100%; min-height:92px; padding:13px 14px; resize:vertical; border:1px solid #d0dbd4; border-radius:12px; line-height:1.6; font:inherit; }
.feedback-privacy { margin:12px 0; color:var(--muted); font-size:12px; }
.feedback-actions { display:flex; gap:10px; }
.feedback-actions button { width:auto; min-width:104px; }
.feedback-result:not(:empty) { margin-top:16px; padding:13px 15px; border-radius:12px; color:#245c3e; background:#eef7f1; }
.feedback-history { margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }
.feedback-history summary { cursor:pointer; color:#526359; font-size:13px; }
.feedback-history-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; padding:12px 0; border-bottom:1px solid #edf1ee; }
.feedback-history-item small { color:var(--muted); }
.context-feedback { display:flex; justify-content:flex-end; margin-top:18px; padding-top:14px; border-top:1px solid #edf1ee; }
.context-feedback button { width:auto; min-height:34px; padding:6px 11px; border:0; color:#68776f; background:transparent; box-shadow:none; font-size:12px; }
.context-feedback button:hover { color:#2e6848; background:#f2f7f4; }
@media (min-width:1280px) { .feedback-toggle { right:max(24px,calc((100vw - 1410px)/2)); bottom:82px; } }
@media (max-width:620px) { .feedback-toggle { right:14px; bottom:14px; }.feedback-dialog form{padding:22px 18px}.feedback-categories{grid-template-columns:1fr}.feedback-actions button{flex:1} }
.site-compliance { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px 18px; min-height:58px; padding:14px 20px 82px; border-top:1px solid var(--line); color:var(--muted); background:#fff; font-size:13px; }
.site-compliance a { display:inline-flex; align-items:center; gap:6px; color:#59675f; text-decoration:none; }
.site-compliance a:hover { color:var(--green); text-decoration:underline; }
.public-security-mark { display:inline-grid; place-items:center; width:18px; height:20px; border-radius:9px 9px 11px 11px; color:#fff; background:#68776f; font-size:10px; font-weight:800; }
