:root{--paper:#f7f5f0;--card:#fffefa;--ink:#20221f;--muted:#777970;--line:#e9e7df;--green:#c6f06b;--green-dark:#263618;--purple:#e9e2ff;--orange:#f6a56f;--blue:#deefff;--shadow:0 18px 50px #29281b0c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Manrope,system-ui,sans-serif}.app-shell{max-width:1100px;margin:auto;min-height:100vh;padding:0 28px 110px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-weight:800;letter-spacing:-.05em;font-size:20px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;background:var(--green);border-radius:10px;font:700 24px 'Playfair Display',serif}.avatar{border:0;border-radius:50%;background:#ede9dc;width:38px;height:38px;font-weight:800;cursor:pointer}main{max-width:860px;margin:0 auto}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:800}.page-head{padding:36px 0 24px}.page-head h1{font:700 clamp(32px,5vw,48px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:-.03em;margin:8px 0}.page-head p{color:var(--muted);margin:8px 0;max-width:580px}.hero{position:relative;overflow:hidden;border-radius:26px;padding:30px;background:#e5f3cb;box-shadow:var(--shadow);display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.hero:after{content:'✳';position:absolute;right:38px;top:8px;font-size:145px;line-height:1;color:#ffffff73;transform:rotate(-14deg)}.hero-copy{position:relative;z-index:1}.hero h2{font:700 31px/1.16 'Playfair Display',Georgia,serif;margin:7px 0 14px;max-width:440px}.hero p{color:#4d5740;margin:0 0 22px}.hero-art{position:relative;z-index:1;align-self:center;justify-self:center;font-size:88px;filter:drop-shadow(0 12px 10px #32481720)}button,.button{font:700 13px Manrope,system-ui;cursor:pointer}.primary{border:0;background:var(--ink);color:white;border-radius:14px;padding:13px 18px;transition:transform .18s,opacity .18s}.primary:hover{transform:translateY(-2px)}.primary.light{background:var(--green);color:var(--green-dark)}.secondary{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:13px;padding:11px 15px}.course-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:#536044;font-weight:700}.progress-row{display:flex;align-items:center;gap:12px;margin:18px 0 9px;font-size:12px;font-weight:700}.progress{height:8px;background:#ffffffa3;border-radius:20px;overflow:hidden;flex:1}.progress i{display:block;background:#527b27;height:100%;border-radius:20px;transition:width .4s}.section-title{display:flex;justify-content:space-between;align-items:center;margin:34px 0 14px}.section-title h2{font:700 22px 'Playfair Display',Georgia,serif;margin:0}.section-title span{font-size:12px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.stat,.panel,.module,.lesson-card,.feature,.upload-card,.feedback{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:var(--shadow)}.stat strong{display:block;font-size:22px;letter-spacing:-.05em}.stat span{font-size:11px;color:var(--muted)}.module{padding:0;overflow:hidden;margin-bottom:12px}.module-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.module-head h3{font-size:14px;margin:0}.module-head small{color:var(--muted)}.lesson-list{padding:4px 14px}.lesson{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #f1efe9}.lesson:last-child{border-bottom:0}.lesson-marker{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#eff6e5;color:#597a37;font-size:12px;font-weight:800;flex:none}.lesson.current .lesson-marker{background:var(--green);color:var(--ink)}.lesson.locked{opacity:.48}.lesson-title{flex:1;font-size:13px;font-weight:650}.lesson small{color:var(--muted);font-size:11px}.lesson button{border:0;background:none;color:#5b7c36;font-size:12px;font-weight:800}.two-col{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.panel h3{margin:0 0 12px;font-size:14px}.panel p{margin:5px 0;color:var(--muted);font-size:13px}.streak{background:#fff0e6}.badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.badge{background:#f1ecdf;border-radius:20px;padding:7px 10px;font-size:11px;font-weight:700}.tabs{display:flex;gap:8px;overflow:auto;padding:2px 0 15px}.pill{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:9px 15px;white-space:nowrap;color:var(--muted)}.pill.active{background:var(--ink);color:white;border-color:var(--ink)}.reader{max-width:700px;margin:auto}.reader-top{display:flex;align-items:center;justify-content:space-between;margin:18px 0 24px;color:var(--muted);font-size:12px;font-weight:700}.reader-progress{height:4px;background:#e8e6df;border-radius:5px;margin:10px 0}.reader-progress i{height:100%;display:block;background:#82a64e;border-radius:5px}.reader h1{font:700 clamp(31px,6vw,44px)/1.14 'Playfair Display',Georgia,serif;letter-spacing:-.03em}.reader h2{font:700 24px 'Playfair Display',Georgia,serif;margin:30px 0 8px}.reader p{font-size:16px;line-height:1.8;color:#484a44}.reader .lead{font-size:18px;color:#65685d}.callout{background:#edf5df;padding:17px 20px;border-radius:14px;margin:20px 0;font-size:14px}.callout strong{display:block;margin-bottom:4px}.quote{border-left:3px solid #a5c86a;padding:4px 0 4px 18px;font:italic 18px/1.6 'Playfair Display',Georgia,serif;color:#4b5142;margin:23px 0}.reader-controls{display:flex;justify-content:space-between;margin-top:38px}.quiz{margin:28px 0;padding:21px;background:#f0ebff;border-radius:18px}.quiz h3{font-size:15px;margin:0 0 13px}.option{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid #dcd4f3;background:#ffffffa6;border-radius:12px;margin:8px 0;cursor:pointer;font-size:13px}.option input{accent-color:#6c58a8;margin-top:4px}.quiz-result{padding:12px;background:#fff;border-radius:11px;margin:12px 0;font-size:13px}.upload-card{padding:28px;text-align:center;border:1.5px dashed #c7c5ba;background:#fbfaf6;cursor:pointer}.upload-card .upload-icon{font-size:36px}.upload-card h3{margin:8px 0 4px}.upload-card p{color:var(--muted);font-size:13px;margin:4px 0 17px}.file-item{display:flex;align-items:center;gap:13px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;margin-top:12px}.file-icon{width:40px;height:44px;border-radius:10px;background:#edf5df;display:grid;place-items:center;font-size:18px}.file-info{flex:1;min-width:0}.file-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.file-info small{color:var(--muted);font-size:11px}.status{font-size:11px;color:#5d8535;font-weight:800}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.feature{cursor:pointer;transition:transform .18s;text-align:left}.feature:hover{transform:translateY(-3px)}.feature-icon{font-size:24px}.feature h3{margin:8px 0 3px;font-size:15px}.feature p{margin:0;color:var(--muted);font-size:12px}.chat{height:350px;overflow:auto;padding:18px;background:#fff;border:1px solid var(--line);border-radius:18px}.bubble{max-width:85%;padding:12px 14px;border-radius:16px;background:#f0ebff;margin:8px 0;font-size:13px}.bubble.me{background:#e8f3d8;margin-left:auto}.chat-form{display:flex;gap:8px;margin-top:10px}.chat-form input,.text-input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff;font:14px Manrope,system-ui;outline:none}.chat-form input:focus,.text-input:focus{border-color:#8daa59}.homework-box{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.feedback{margin-top:18px}.score{font:700 42px 'Playfair Display',serif;color:#577d2f}.feedback h3{font-size:14px;margin:12px 0 6px}.feedback ul{margin:5px 0;padding-left:20px;color:#5a5d55;font-size:13px}.feedback li{margin:5px 0}.toast{position:fixed;bottom:98px;left:50%;transform:translate(-50%,20px);opacity:0;background:#242620;color:white;border-radius:99px;padding:11px 16px;font-size:12px;transition:.2s;pointer-events:none;z-index:9}.toast.show{opacity:1;transform:translate(-50%,0)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:8;background:#fbfaf6ed;backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;justify-content:center;padding:9px 12px calc(9px + env(safe-area-inset-bottom));gap:5px}.nav-item{border:0;background:transparent;color:#85877f;padding:7px 18px;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:82px;font-size:10px}.nav-icon{font-size:20px;line-height:1.1}.nav-item.active{color:var(--ink);background:#eaf4d9}.nav-item.active .nav-icon{color:#61803d}.empty{padding:22px;text-align:center;color:var(--muted)}@media(max-width:650px){.app-shell{padding:0 17px 100px}.topbar{height:64px}.page-head{padding:25px 0 18px}.hero{padding:22px;grid-template-columns:1fr}.hero-art{display:none}.hero:after{right:10px;font-size:105px}.hero h2{font-size:27px}.stats{grid-template-columns:repeat(2,1fr);gap:9px}.stat{padding:13px}.two-col{grid-template-columns:1fr;gap:10px}.feature-grid{grid-template-columns:1fr 1fr;gap:9px}.feature{padding:14px}.feature p{font-size:11px}.bottom-nav{justify-content:space-around;gap:0;padding-left:4px;padding-right:4px}.nav-item{min-width:0;flex:1;padding:8px 2px}.homework-box{grid-template-columns:1fr}.reader p{font-size:15.5px}.reader-top{margin-top:12px}.hero .primary{position:relative;z-index:2}}

/* Imported MHTML lessons: readable theory, dialogue, quizzes, and highlighted terms */
.rich-reader{max-width:820px}.rich-content{font-family:Arial,system-ui,sans-serif;font-size:17px;line-height:1.58;color:#242629}.rich-theory{padding:3px 0 12px}.rich-theory p{font-size:17px;line-height:1.58;color:#292b2e;margin:0 0 18px}.rich-theory h2,.rich-theory h3,.rich-theory h4{font-family:Arial,system-ui,sans-serif;line-height:1.25;margin:28px 0 14px}.rich-theory h2{font-size:30px}.rich-theory h3{font-size:23px}.rich-theory strong,.rich-theory b{font-weight:750;background:linear-gradient(transparent 58%,#fff0a8 58%);padding:0 2px}.rich-theory blockquote{margin:20px 0;padding:18px 20px;border-radius:18px;background:#d8ebff}.rich-theory li{margin:8px 0}.rich-theory table{border-collapse:collapse;width:100%;font-size:14px}.rich-theory td,.rich-theory th{border:1px solid var(--line);padding:9px;text-align:left}.lesson-dialog{margin:20px 0 30px;padding:10px 0}.dialog-message{max-width:82%;margin:18px 0 22px}.dialog-author{margin:0 0 4px 12px;color:#8a8b89;font-size:13px}.dialog-bubble{padding:12px 16px;border-radius:18px 18px 18px 5px;background:#f0f0f0;color:#242629}.dialog-right{margin-left:auto}.dialog-right .dialog-author{text-align:right;margin-right:12px}.dialog-right .dialog-bubble{background:#e8f3d8;border-radius:18px 18px 5px 18px}.dialog-bubble p{margin:0;color:inherit;font-size:16px;line-height:1.5}.lesson-quiz{margin:24px 0;padding:22px;border:1px solid #e3e1dc;border-radius:20px;background:#fff;box-shadow:0 8px 28px #2222140b}.quiz-question{font-size:19px;line-height:1.5;margin:14px 0 20px}.quiz-question p{margin:0}.lesson-option{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border:1px solid #e4e4e1;border-radius:13px;margin:9px 0;background:#fff;cursor:pointer;transition:background .15s,border-color .15s}.lesson-option:has(input:checked){background:#eff7e6;border-color:#88a865}.lesson-option input{flex:none;margin-top:5px;accent-color:#5c8739}.lesson-option span{flex:1}.lesson-quiz .primary{margin-top:12px}.lesson-quiz-result{margin-top:14px;padding:13px 15px;border-radius:12px;line-height:1.45}.lesson-quiz-result.is-correct{background:#e6f6ec;color:#167551}.lesson-quiz-result.is-wrong{background:#fff3d9;color:#815a13}.lesson-quiz-result div{margin-top:6px;font-weight:400}.lesson-quiz-result p{margin:0;font-size:14px;color:inherit}.image-caption{font-style:italic;color:var(--muted)}

/* Structure editing and imported lesson controls */
.module-tools,.lesson-tools{display:flex;align-items:center;gap:4px}.module-tools small{color:var(--muted);margin-right:6px}.structure-btn{width:29px;height:29px;padding:0;border:1px solid var(--line);border-radius:9px;background:#fffefa;color:#54574f;font-size:13px;line-height:1}.structure-btn:disabled{opacity:.3;cursor:default}.structure-btn.danger{color:#a4493e}.lesson-tools{flex:none}.lesson-tools .structure-btn{width:25px;height:25px}.lesson{gap:8px}.lesson-title{min-width:90px}.reader{padding-bottom:112px}.reader-controls{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(82px + env(safe-area-inset-bottom));width:min(760px,calc(100% - 30px));z-index:7;background:#fbfaf6f5;padding:9px 11px;border:1px solid #e9e7df;border-radius:16px;box-shadow:0 5px 24px #17170f16;backdrop-filter:blur(14px)}.rich-reader .eyebrow{margin-top:4px}.rich-theory{margin:18px 0 26px}.rich-theory h2{margin-top:32px}.rich-theory p{margin-bottom:17px}.rich-theory .definition-card{padding:20px 22px;border-radius:18px;margin:22px 0;line-height:1.62}.definition-tone-0{background:#d5eaff}.definition-tone-1{background:#fff8c9}.definition-tone-2{background:#f0f1f2}.rich-theory .definition-card strong,.rich-theory .definition-card b{background:linear-gradient(transparent 55%,#ffffff80 55%)}.rich-theory mark{background:#fff0a8;padding:0 3px;border-radius:3px}.rich-theory h2,.rich-theory h3{color:#22241f}.rich-theory ul,.rich-theory ol{padding-left:23px;margin:14px 0 22px}.rich-theory li{padding-left:3px}.rich-theory blockquote{font-size:16px;line-height:1.65;border-left:4px solid #8fb6de}.lesson-quiz .quiz-question{font-weight:650}.lesson-option span p{margin:0;color:inherit;font-size:15px;line-height:1.5}.dialog-bubble .rich-theory{margin:0}.upload-card p{max-width:520px;margin:5px auto 18px}
@media(max-width:650px){.module-head{align-items:flex-start;gap:7px;padding:12px}.module-head h3{font-size:13px;line-height:1.5}.module-tools{gap:2px}.module-tools small{font-size:10px;margin:5px 2px 0 0;white-space:nowrap}.structure-btn{width:26px;height:26px}.lesson{flex-wrap:wrap;padding:10px 2px;gap:6px}.lesson-title{min-width:calc(100% - 45px);font-size:12px}.lesson small{margin-left:35px}.lesson button[data-action="open-lesson"]{margin-left:auto}.lesson-tools{margin-left:auto}.lesson-tools .structure-btn{width:23px;height:23px}.reader-controls{bottom:calc(78px + env(safe-area-inset-bottom));width:calc(100% - 22px);padding:8px;gap:8px}.reader-controls button{font-size:12px;padding:11px 12px}.rich-content{font-size:16px}.rich-theory .definition-card{padding:17px 16px}.dialog-message{max-width:92%}}

/* Persistent progress strip in the lesson reader */
.reader-sticky{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--paper);padding:8px 0 7px;margin:0 0 14px;border-bottom:1px solid #e7e5de}.reader-sticky .reader-top{margin:0 0 8px;padding:0;background:transparent}.reader-sticky .reader-progress{position:relative;top:auto;height:5px;margin:0;background:#e6e4dc}.reader-sticky .reader-progress i{transition:width .25s ease}.reader-block{scroll-margin-top:90px;border-radius:14px;transition:background .2s}.reader-block.is-read{background:#f0f5e8}.reader-block.is-read>.rich-theory{padding:0 7px}.reader-block.is-read>.lesson-dialog,.reader-block.is-read>.lesson-quiz{outline:1px solid #d9e7c8}.matching-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.8fr);align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.matching-prompt{line-height:1.45}.matching-row select{width:100%;min-height:42px;border:1px solid #d8d8d3;border-radius:11px;background:#fff;padding:8px;font:14px system-ui;color:var(--ink)}.matching-row select:focus{outline:2px solid #9bbd72;border-color:transparent}.lesson-quiz .matching-row p{margin:0;color:inherit;font-size:15px}.reader-controls button:disabled{opacity:.65;cursor:default}
@media(max-width:650px){.reader-sticky{top:env(safe-area-inset-top,0px);margin-left:-2px;margin-right:-2px;padding-top:6px}.reader-sticky .reader-top{font-size:11px}.matching-row{grid-template-columns:1fr;gap:7px;padding:11px 0}.matching-row select{min-height:46px}.reader-block.is-read>.rich-theory{padding:0 4px}}

.remove-file{width:34px;height:34px;flex:none;border:1px solid #e9d8d3;border-radius:10px;background:#fff8f6;color:#a3493d;font-size:21px;line-height:1;cursor:pointer}.remove-file:active{transform:scale(.95)}.file-item .status{white-space:nowrap}.file-item .file-info{padding-right:4px}
@media(max-width:650px){.remove-file{width:36px;height:36px}.file-item .status{font-size:10px}}
.lesson-option.is-wrong-answer{border-color:#d84b4b;background:#fff0ef;color:#a72222}.lesson-option.is-wrong-answer:has(input:checked){border-color:#d84b4b;background:#ffe5e3}.lesson-option.is-correct-answer{border-color:#49a778;background:#edf8f0;color:#176b46}.matching-row.is-wrong-answer select{border-color:#d84b4b;background:#fff0ef;color:#a72222}.matching-row.is-correct-answer select{border-color:#49a778;background:#edf8f0;color:#176b46}

/* App polish: responsive type scale, consistent scroll clearance, and course title control. */
@media(max-width:650px){.app-shell{padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}.hero{padding:20px;border-radius:22px}.hero h2{font-size:24px;line-height:1.18}.hero p{font-size:14px;line-height:1.6}.page-head h1{font-size:29px}.reader h1{font-size:29px}.reader h2{font-size:21px}.reader p,.rich-content{font-size:15px;line-height:1.7}.stat strong{font-size:20px}.course-rename{padding:8px 11px;margin:0 0 6px;font-size:12px}.reader{padding-bottom:144px}}
.course-rename{display:inline-block}


/* Keep stat values consistent and style the separate homework import section. */
.stat strong,.stat strong span,.stat strong small{font-size:22px!important;line-height:1.25}
.homework-import h2{font:700 21px 'Playfair Display',Georgia,serif;margin:8px 0}
.homework-import>p{color:var(--muted);font-size:13px;line-height:1.55;margin:0 0 14px}
.homework-file .status{margin-left:4px}
@media(max-width:650px){.stat strong,.stat strong span,.stat strong small{font-size:20px!important}.homework-import{padding:15px}.homework-import h2{font-size:19px}}

.homework-material-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.homework-material-controls>span{font-size:11px;color:var(--muted);letter-spacing:.04em}.homework-preview{flex-basis:100%;padding:0 8px 8px;color:var(--muted);font-size:12px}.homework-preview summary{cursor:pointer;color:#597a37;font-weight:700}.homework-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;padding:12px;background:#f7f5f0;border-radius:10px;color:var(--ink);font:13px/1.55 system-ui,sans-serif}.homework-import h2{margin-top:8px}
@media(max-width:650px){.homework-material-controls{align-items:flex-start;flex-direction:column;gap:8px}.homework-material-controls button{width:100%}.homework-preview{padding:0}}

.homework-import{margin:22px 0 26px}

.import-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.video-import{margin:22px 0 24px}.video-import h2{font:700 21px 'Playfair Display',Georgia,serif;margin:8px 0}.video-import>p,.video-import>small{color:var(--muted)}.video-import>small{display:block;margin-top:10px}.course-video{display:block;width:100%;max-height:min(65vh,640px);background:#111;border-radius:16px;margin:20px 0}.video-reader{padding-bottom:24px}@media(max-width:650px){.import-actions{flex-direction:column}.import-actions button{width:100%}.video-import{padding:16px}}
.video-fullscreen{display:block;margin:-8px 0 18px auto}

/* Keep original image dimensions from forcing Android WebView to zoom out. */
.rich-reader,.rich-content,.rich-theory{min-width:0;max-width:100%;}
.rich-theory img,.lesson-quiz img,.dialog-bubble img{display:block;width:auto;max-width:100%;height:auto;max-height:75svh;object-fit:contain;margin:18px auto;border-radius:12px;cursor:zoom-in;}
.image-viewer{position:fixed;inset:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:clamp(16px,4vw,32px);border:0;background:#111;color:#fff;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;overflow:auto;overscroll-behavior:contain;}
.image-viewer[open]{display:flex;}
.image-viewer::backdrop{background:#000e;}
.image-viewer img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 100px);object-fit:contain;cursor:zoom-in;}
.image-viewer img.is-enlarged{max-width:none;max-height:none;width:auto;height:auto;cursor:zoom-out;}
.image-viewer-close{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px;z-index:2;border:1px solid #ffffff66;border-radius:12px;background:#252525;color:#fff;padding:12px 16px;font:600 15px system-ui;}
.image-viewer-caption{flex:none;padding:10px;color:#ddd;font:13px system-ui;text-align:center;}
.practice-topic-heading{margin:20px 0 8px;font-size:16px}.practice-topics{margin:0 0 18px}.practice-topic-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.practice-topic-actions .secondary{font-size:13px;padding:9px 12px}.practice-topic-picker{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.practice-topic-picker>summary{font-weight:700;cursor:pointer}.practice-topic-option{display:flex;align-items:flex-start;gap:10px;padding:9px 4px;line-height:1.4;overflow-wrap:anywhere}.practice-topic-option input{flex:0 0 20px;width:20px;height:20px;accent-color:#648640}.practice-topic-option.practice-all{margin-top:8px;border-bottom:1px solid var(--line);font-weight:700}.practice-module-topics{min-width:0;margin:10px 0 0;padding:0;border:0}.practice-module-topics legend{width:100%;padding:12px 0 3px;font-size:13px;font-weight:700;color:var(--muted)}
/* AI settings, conversations and homework feedback. */
.ai-settings{margin:20px 0}.ai-settings summary{font-weight:700;cursor:pointer}.ai-settings form{display:grid;gap:14px;margin-top:16px}.ai-settings label,.ai-lesson-label{display:grid;gap:7px}.ai-settings input,.ai-lesson-label select{width:100%;min-width:0;box-sizing:border-box}.ai-settings p,.ai-caption{font-size:13px;line-height:1.5;color:var(--muted)}.ai-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.ai-lesson-label{margin:20px 0}.ai-selected{outline:2px solid #6c8d39}.ai-error{padding:16px;margin:16px 0;background:#fff0ee;color:#922f28;border-radius:16px;overflow-wrap:anywhere}.ai-error button{margin-top:10px}.ai-materials{display:grid;gap:12px;margin:16px 0}.ai-materials label{display:flex;gap:10px;align-items:flex-start;overflow-wrap:anywhere}.ai-materials input{flex-shrink:0;width:20px;height:20px}.chat .bubble{white-space:pre-wrap;overflow-wrap:anywhere}.chat{margin-top:20px}.ai-wait{opacity:.7}button:disabled{cursor:wait;opacity:.55}#hwAssignment,#hwText{width:100%;box-sizing:border-box;margin:12px 0}.feedback p,.feedback li{white-space:pre-wrap;overflow-wrap:anywhere}

.chat .bubble:not(.me){white-space:normal}.bubble p{margin:0 0 10px}.bubble p:last-child{margin-bottom:0}.bubble h4{font:700 15px/1.4 system-ui;margin:12px 0 8px}.ai-list-item{margin:6px 0}.bubble code{background:#ffffff80;padding:1px 4px;border-radius:4px}.chat{height:auto;min-height:180px;max-height:60svh;scroll-padding:18px}.ai-review-text{line-height:1.6}.ai-review-text p{white-space:normal}

.lesson-table-scroll{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;margin:20px 0}.lesson-table-scroll table{width:100%;min-width:560px;table-layout:auto}.lesson-table-scroll th,.lesson-table-scroll td{white-space:normal;overflow-wrap:anywhere}.lesson-table-scroll p{font-size:inherit;margin:0}.rich-reader,.rich-content,.rich-theory,.lesson-quiz{min-width:0;box-sizing:border-box}

.homework-page-review{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.homework-page-review h3{color:var(--green-dark,#537b2a)}.homework-page-review small{overflow-wrap:anywhere}

.bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.nav-item{min-width:0;padding-left:3px;padding-right:3px;line-height:1.2}.interview-setup{display:grid;gap:16px}.interview-setup label{display:grid;gap:6px}.interview-setup .interview-topic{display:flex;align-items:center;gap:10px;margin:10px 0}.interview-question h2{font-size:24px;line-height:1.35;overflow-wrap:anywhere}.interview-clock{font:700 42px/1.3 system-ui;color:#537b2a;font-variant-numeric:tabular-nums;margin:16px 0}.interview-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.interview-question textarea{margin-top:8px;box-sizing:border-box}.interview-report,.interview-history{margin-top:24px}.interview-rubric{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.interview-rubric>div{display:grid;padding:12px;background:#edf5df;border-radius:12px}.interview-rubric b{font-size:22px}.interview-rubric span{font-size:12px}.interview-turn{padding:16px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.interview-turn summary{cursor:pointer;font-weight:700}.interview-turn p{white-space:pre-wrap}.interview-question #voiceStatus{color:var(--muted);min-height:25px}.video-import .secondary{margin:6px 4px 6px 0}@media(max-width:420px){.nav-item{font-size:9px}.interview-actions>*{flex:1 1 auto}.interview-question h2{font-size:21px}}
.practice-options{display:grid;gap:10px}.practice-options button{text-align:left;white-space:normal}.practice-question{margin:18px 0}.bubble em{font-style:italic}.time-open{margin:0 0 22px}.time-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.time-summary strong,.time-summary span{display:block}.time-summary strong{font-size:21px}.time-summary span{color:var(--muted);font-size:12px}.time-tabs{display:flex;background:#edf1e6;padding:4px;border-radius:14px;gap:4px}.time-tabs button{flex:1;border:0;border-radius:11px;padding:10px 4px;background:transparent;font:inherit}.time-tabs .selected{background:#fff;color:#527631;font-weight:700}.time-range{display:flex;align-items:center;gap:12px;margin:16px 0}.time-range p{flex:1;font-size:13px;text-align:center;margin:0}.time-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;margin:18px 0}.time-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.time-text{background:#759844}.time-video{background:#e6a552}.time-practice{background:#8e79c9}.time-homework{background:#599bad}.time-interview{background:#d67481}.time-chart-scroll{overflow-x:auto;padding-bottom:8px}.time-chart{display:grid;grid-template-columns:repeat(var(--columns),minmax(28px,1fr));gap:6px;min-height:220px}.time-bar{border:0;background:transparent;padding:0;display:flex;flex-direction:column;min-width:0;cursor:pointer}.time-stack{height:180px;width:100%;display:flex;flex-direction:column-reverse;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent,transparent 44px,#e4e5df 45px)}.time-stack i{display:block;flex-shrink:0;width:100%}.time-bar small{font-size:11px;margin-top:9px}.time-bar.selected .time-stack{outline:2px solid #527631}.time-detail{padding:16px;background:#edf4e1;border-radius:12px}.time-detail p{margin:6px 0;font-size:13px}.time-panel{margin:24px 0}.time-panel h2{font:700 22px/1.4 system-ui}.time-summary strong{overflow-wrap:anywhere}@media(max-width:450px){.time-summary{gap:8px;padding:16px}.time-summary strong{font-size:18px}.time-range .secondary{padding:10px}.time-panel{padding:18px}.time-chart{gap:4px}}

.stat.stat-link{appearance:none;text-align:left;font:inherit;color:var(--ink);cursor:pointer;touch-action:manipulation}.stat.stat-link:focus-visible{outline:3px solid #759844;outline-offset:3px}.stat.stat-link:active{background:#edf4e1}
.time-summary{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.time-unknown{box-sizing:border-box;border:2px dashed #9ba28f;background:repeating-linear-gradient(45deg,#edf0e7,#edf0e7 4px,#fff 4px,#fff 8px)}.time-unknown-key{display:inline-block;width:12px;height:12px;border:1px dashed #9ba28f;margin-right:5px}
.rank-current{text-align:center;margin:22px 0;background:#edf5df}.rank-emblem{display:block;font-size:54px;margin-bottom:12px}.rank-current h2{font:700 32px/1.3 system-ui;margin:12px 0}.rank-current p{font-size:14px;line-height:1.6}.rank-metrics{display:flex;justify-content:center;flex-wrap:wrap;gap:24px;margin:20px 0;font-size:21px}.rank-current .progress{margin:20px 0 12px}.rank-list{display:grid;gap:12px;margin-bottom:24px}.rank-row{display:flex;align-items:center;gap:16px}.rank-row>div{flex:1}.rank-row h3{margin:0 0 6px}.rank-row p{margin:0 0 6px;color:var(--muted);font-size:13px}.rank-row small{font-size:12px}.rank-icon{font-size:30px}.rank-active{border:2px solid #759844}.rank-rules p{font-size:14px;line-height:1.6}
