:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#152942;background:#f2f7fb;line-height:1.6;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:#076b91}h1,h2,h3,p{margin:0 0 .8rem}h1,h2,h3{line-height:1.28}h1{font-size:clamp(1.8rem,3.7vw,2.7rem)}h2{font-size:clamp(1.35rem,2.8vw,1.9rem)}h3{font-size:1.1rem}.shell{max-width:1060px;padding:24px 20px 70px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.brand{font-weight:800;display:flex;align-items:center;gap:11px;color:#102b4e;font-size:1.15rem}.brand-icon{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#102b4e;color:#fff;font-size:1.4rem}.user-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#586a7b;font-size:.86rem}.hero{background:linear-gradient(119deg,#102b4e 0%,#175777 70%,#12858c 100%);color:white;padding:clamp(24px,5vw,48px);border-radius:24px;box-shadow:0 16px 32px #0b2d4b16;margin-bottom:25px}.hero .eyebrow{color:#80f5e8;letter-spacing:2px;font-weight:750;font-size:.77rem;text-transform:uppercase}.hero p{max-width:640px;color:#dfedf9}.hero strong{color:#fff}.hero h1{margin-top:6px}.hero .pill{background:#ffffff1d;color:#edffff;border:1px solid #ffffff32}.card{background:#fff;border:1px solid #e1eaf0;border-radius:19px;padding:24px;box-shadow:0 4px 20px #102b4e08}.card + .card{margin-top:16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:15px}.topic{display:flex;flex-direction:column;gap:12px;text-align:left;min-height:210px;transition:transform .16s,border-color .16s;box-shadow:0 4px 18px #102b4e08}.topic:hover,.topic:focus-visible{transform:translateY(-3px);border-color:#29b4b8}.topic-icon{font-size:2rem}.topic h3{margin:0}.muted{color:#596f80}.tiny{font-size:.79rem}.label{font-size:.87rem;font-weight:750;color:#18314f}.field{width:100%;min-height:48px;border:1.5px solid #ccdce7;background:#fff;border-radius:11px;padding:10px 13px;color:#102b4e;outline-offset:3px}.field:focus,.context-select:focus{border-color:#058b9b;outline:3px solid #81f1ed77}.form-row{display:grid;grid-template-columns:1.5fr 1fr;gap:13px}.btn{background:#13657f;border:1px solid transparent;color:white;font-weight:750;border-radius:12px;min-height:46px;padding:10px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;line-height:1.3}.btn:hover:not(:disabled){background:#0d4f68}.btn.primary{background:#0b766f}.btn.primary:hover:not(:disabled){background:#08645f}.btn.outline{background:white;border:1px solid #b7d5de;color:#184e65}.btn.outline:hover:not(:disabled){background:#f2fafb}.btn.ghost{background:transparent;border:1px solid #e1e9ed;color:#385d71}.btn.light{background:#fff;color:#12485d}.btn.sm{min-height:36px;padding:7px 11px;border-radius:9px;font-size:.85rem}.btn.block{width:100%}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.actions .spacer{flex:1}.badge,.pill{border-radius:999px;background:#e8f8f6;color:#13736f;font-size:.77rem;font-weight:750;padding:5px 10px;white-space:nowrap}.badge.submitted{background:#ddf8e7;color:#0e7946}.badge.pending{background:#fff3d8;color:#8f5802}.badge.mini{background:#eef4fb;color:#526a84}.progress-track{width:100%;background:#dfedf1;border-radius:999px;height:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#1b98a5,#4bd9c3);border-radius:999px;transition:width .2s}.lesson-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.stage-nav{display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin;padding:4px 0 12px}.stage-step{border-radius:10px;background:#e7eef4;color:#536a80;font-size:.75rem;padding:7px 12px;white-space:nowrap;font-weight:750}.stage-step.current{background:#d8f5f2;color:#0a746c;border:1px solid #5ed7c9}.stage-step.done{color:#0a746c;background:#e4f8f4}.big-idiom{font-size:clamp(1.65rem,5vw,2.7rem);color:#113a63;letter-spacing:-.03em;overflow-wrap:anywhere}.detail{background:#f4f9fc;border-radius:14px;padding:19px;margin:17px 0}.detail blockquote{border-left:4px solid #5ad5d1;padding-left:14px;margin:7px 0;color:#2f4b60;font-size:1.03rem}.audio-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.audio-note{font-size:.76rem;color:#728397}.voice-indicator{font-size:.75rem;color:#506b7d}.statement{font-size:1.12rem;line-height:1.9;color:#253e54;margin:17px 0}.answer-area{display:flex;flex-wrap:wrap;gap:8px;min-height:67px;padding:12px;border-radius:13px;border:2px dashed #bfd5de;background:#f6fbfc;margin:15px 0}.word-bank{display:flex;gap:10px;flex-wrap:wrap}.word{border:1px solid #a7ced6;background:#e8fbfc;border-radius:10px;color:#104a5c;font-weight:750;padding:9px 13px;min-height:43px}.word:hover:not(:disabled){background:#d6f6f7}.word.selected{background:#1d728a;color:#fff}.mask{letter-spacing:.075em;font-weight:850;color:#124a68;font-size:clamp(1.3rem,4vw,2rem);overflow-wrap:anywhere;padding:15px 0;line-height:1.7}.feedback{margin-top:15px;padding:13px 15px;border-radius:12px;border:1px solid #b7d5da;background:#e9f5f7;color:#214c5d;font-weight:600}.feedback.ok{background:#e8f8f0;border-color:#93dcb4;color:#176446}.feedback.bad{background:#fff1ed;border-color:#ffc2b2;color:#a23f22}.feedback.warn{background:#fff5e5;border-color:#f5d499;color:#805119}.status-line{font-size:.88rem;color:#527080;margin-top:10px}.section-heading{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}.question-index{font-size:.87rem;color:#708397;font-weight:700}.context{font-size:1.01rem;line-height:2.5;white-space:normal}.context p{margin-bottom:16px}.dialogue-line{border-left:3px solid #a8e6e1;padding:7px 10px;margin:7px 0 10px;background:#f6fbfc;border-radius:0 9px 9px 0}.context-select{display:inline-block;vertical-align:middle;max-width:min(100%,300px);min-width:150px;border:1.5px solid #a6c4d0;border-radius:8px;background:#fff;padding:8px 6px;line-height:1.35;font-size:.93rem;color:#173a51}.context-select.ok{border-color:#22a876;background:#e6f8ee}.context-select.bad{border-color:#d96e56;background:#fff0ed}.bank-chip{display:inline-block;margin:5px 7px 5px 0;padding:5px 10px;border:1px solid #c5dce4;border-radius:999px;background:#f0f9fc;color:#38536b;font-size:.86rem}.summary-score{font-size:clamp(2.3rem,7vw,4.4rem);font-weight:850;letter-spacing:-.06em;color:#0a756e}.score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:22px 0}.score-cell{padding:15px;background:#f1f9f8;border-radius:13px;text-align:center}.score-cell strong{display:block;color:#0a726d;font-size:1.55rem}.score-cell span{font-size:.79rem;color:#63798a}.review-item{background:#f8fbfd;padding:14px;border-radius:10px;margin:10px 0;border:1px solid #dfe9ee}.review-item .answer{color:#08796b;font-weight:750}.story-complete{white-space:pre-line;line-height:2.05;background:#f0f8f8;padding:18px;border-radius:14px}.footer{margin-top:24px;padding-top:18px;color:#718493;font-size:.78rem;text-align:center}.roadmap{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.roadmap span{padding:8px 12px;border:1px solid #d2e2eb;border-radius:999px;background:white;color:#637a8c;font-size:.83rem}.roadmap span.now{background:#def8f1;color:#07685d;border-color:#9de9d4}.boot{max-width:600px;margin:130px auto;text-align:center;padding:30px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.separator{border:0;border-top:1px solid #e2ebf0;margin:22px 0}.checkbox-line{display:flex;gap:9px;align-items:flex-start;margin-top:12px;color:#546b7b;font-size:.86rem}.checkbox-line input{margin-top:6px;accent-color:#0d8d86}.loading-dots{font-size:1.1rem}.flex-between{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.hint{color:#6d7485;font-size:.88rem}.error-screen{margin:90px auto;max-width:690px}.note-blue{background:#f0f7fc;padding:14px;border-radius:11px;border-left:4px solid #70bbce}.back-link{border:0;background:none;color:#30728a;font-weight:750;padding:6px;cursor:pointer}.auth-card{max-width:690px;margin:0 auto}.no-export{font-weight:650;color:#885d31}.status{display:inline-flex;align-items:center;gap:4px}
@media(max-width:680px){.shell{padding:15px 12px 60px}.card{padding:18px}.hero{border-radius:16px}.form-row{grid-template-columns:1fr}.score-grid{grid-template-columns:repeat(2,1fr)}.topbar{margin-bottom:16px}.context{font-size:.97rem;line-height:2.6}.context-select{min-width:125px;max-width:230px}.actions .btn{flex:1 1 auto}.lesson-top{align-items:stretch;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
