/* Forest Exploration: real controls over decorative, independently generated artwork. */
:root{--navy:#193f32;--blue:#568834;--blue-dark:#254e37;--blue-light:#edf2e2;--green:#447d35;--green-soft:#edf5e7;--red:#ba4951;--red-soft:#fff0ef;--muted:#768071;--line:#dfe3d4;--surface:#f1f3e9;--white:#faf9f3;color:#193f32;background:#eeefe5}
body{background:#eeefe5;color:var(--navy)}
.student-shell{max-width:560px;background:#faf9f3;box-shadow:none}
.primary{background:#638f3e;border-radius:22px;box-shadow:0 6px 0 #244f36;font-weight:750;min-height:58px}
.primary:hover{background:#527f32}.primary:active{box-shadow:0 2px 0 #244f36;transform:translateY(4px)}
.primary:disabled{background:#e3e6dc;color:#8b9286;box-shadow:0 4px 0 #cbd1c3}
.secondary,.guest-button{background:#f8f9ef;border-color:#c7d3b6;color:#305333;box-shadow:0 3px 0 #e0e6d4}
.secondary:hover,.guest-button:hover{background:#edf2e1}.text-button{color:#5a7258}
input,textarea,select{background:#fffefa;border-color:#d0d7c6;color:#264333;border-radius:13px}
input::placeholder,textarea::placeholder{color:#879183}label{color:#244932}
input:focus,textarea:focus,select:focus{outline-color:#dce9c7;border-color:#6f9948}
button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:#789b48}
.home-brand{padding:27px 28px 14px;font-size:17px;position:relative;z-index:1}
.home-brand svg{width:29px;height:29px;color:#5d8a35;stroke-width:2.4}
.forest-hero{position:relative;margin-top:-10px;overflow:hidden}
.forest-hero>img{display:block;width:100%;height:auto;aspect-ratio:1100/650;object-fit:cover}
.forest-hero>p{position:absolute;left:28px;top:35%;font-size:19px;line-height:1.8;font-family:KaiTi,STKaiti,serif;color:#667954;letter-spacing:.08em}
.login-visual{text-align:left;padding:9px 28px 0}
.login-visual h1{font-size:clamp(32px,7.9vw,45px);line-height:1.38;letter-spacing:-.04em;font-weight:850;margin:0 0 14px}
.login-visual p{font-size:15px;color:#727e6e}
.login-panel{margin:24px 28px 0;padding:0;background:none;border:0;box-shadow:none;border-radius:0}
.login-heading{display:none}.login-panel input{background:#fffefa;min-height:55px}
.login-panel label{font-size:14px}.login-panel form{gap:9px}.login-panel form>.primary{font-size:17px;margin-top:15px}
.class-detail{font-size:13px;color:#707e69}.class-detail summary{min-height:39px;padding:10px 0}
.visitor-entry{display:grid;grid-template-columns:1fr;padding:23px 28px 0;gap:14px}
.visitor-entry>span{display:flex;align-items:center;gap:16px;font-size:13px;color:#89927e}
.visitor-entry>span:before,.visitor-entry>span:after{content:'';height:1px;flex:1;background:#cbd2bc}
.guest-button{width:100%;justify-content:center;min-height:53px;border:1px solid #c7d3b6;border-radius:21px;font-size:17px;font-weight:750;gap:10px}
.visitor-entry>p{font-size:12px;color:#7b8574}.quiet-footer{color:#7a876d;line-height:1.9}
.forest-footer{min-height:145px;padding-top:30px;text-align:right;padding-right:35px;font:18px/1.8 KaiTi,STKaiti,serif;background:url('assets/forest-path.webp') left bottom/100% auto no-repeat}
.topbar{padding-inline:22px}.topbar strong{font-size:17px}.eyebrow{color:#7c8c66}
.space-welcome,.selection-intro{padding-inline:28px}.space-welcome h1,.selection-intro h1{font-size:29px;font-weight:800;color:#204c36}
.space-welcome p,.selection-intro p{font-size:14px;color:#76816e}.space-brand{font-size:16px}.space-brand>svg{color:#618b3c}
.grade-chip,.learning-summary{background:#eef2e3;color:#61744f;border-color:#dae1cb}
.grade-chip>span,.grade-chip .text-button{color:#6d7f58;border-color:#d0dac0}.learning-summary b{color:#497334}
.grade-option,.topic-card{background:#fffef8;border:1px solid #d9dfca;box-shadow:0 4px 0 #e4e8d9;border-radius:21px}
.grade-option:hover,.topic-card:hover{background:#f6f8ed;border-color:#a1b885}
.grade-icon,.topic-icon{background:#e9f0d9;color:#608536}.grade-option small,.topic-card>p{color:#748069;font-size:12px}
.topic-card h3{font-size:23px}.category-label,.topic-card-bottom>span{color:#7b896a}.topic-state{background:#edf2df;color:#657e44}
.topic-card-bottom strong{color:#587d3d}.mini-progress{background:#e2e7d8}.mini-progress>span{background:#83a84d}
.chapter-map{background:#faf9f3}.chapter-intro{padding:18px 28px 12px}.chapter-intro h1{font-size:36px;font-weight:850;line-height:1.35;color:#163f2e}
.chapter-intro p{font-size:14px;color:#79836d}.chapter-summary{margin:4px 28px 8px;background:none;border:0;padding:7px 0;color:#75815f;font-size:12px}
.chapter-levels{padding:25px 25px 105px;gap:27px;background:#f6f6e9 url('assets/forest-path.webp') center top/100% auto repeat-y}
.chapter-level,.chapter-level.available,.chapter-level.completed,.chapter-level.locked{position:relative;display:grid;grid-template-columns:66px 1fr;gap:16px;align-items:center;width:90%;min-height:118px;padding:12px 8px;border:0;border-radius:0;background:transparent;box-shadow:none}
.chapter-level:nth-of-type(even){align-self:flex-end}.chapter-level:nth-of-type(odd){align-self:flex-start}
.level-node-icon{width:66px;height:66px;border-radius:50%;background:#79a842;color:#fff;border:3px solid #f9f9e9;box-shadow:0 5px 0 #648d36,0 0 0 2px #cbd99e;font-size:23px}
.level-node-icon svg{width:28px;height:28px;stroke-width:3}
.completed .level-node-icon{background:#83ad4b;color:#fff}.locked .level-node-icon{background:#d2d5c8;color:#84897a;box-shadow:0 5px 0 #b6bbab,0 0 0 2px #e9ebdf}
.chapter-level.available .level-node-icon{outline:5px solid #e8cc71;outline-offset:5px}
.chapter-level-copy{background:#faf9f3eb;padding:10px 12px;border-radius:13px}
.chapter-level-copy h2{font-size:17px;line-height:1.5;color:#254b31}.chapter-level-copy p{font-size:12px;line-height:1.75;color:#778267;margin:5px 0}
.chapter-level-copy small,.available .chapter-level-copy small,.completed .chapter-level-copy small{font-size:11px;color:#75875e}
.chapter-level-copy>div>span{background:#f4e7b4;color:#93732b;font-size:10px}
.level-go{grid-column:2;justify-self:start;margin-top:-11px;margin-left:12px;background:#28553a;color:#fff;padding:8px 13px;border-radius:10px;font-size:12px}
.completed .level-go{background:#eef3e2;color:#648049}.locked .level-go{display:none}.final-divider{font-size:11px;color:#7b855f;margin:0}.final-divider:before,.final-divider:after{background:#ccd4b8}
.final-level .level-node-icon{background:#c09a40}.final-level.locked .level-node-icon{background:#d7d3bd}.map-review{background:#faf9f3}
.question-meta{color:#83916f}.question-meta span:first-child{background:#edf2e2;color:#627649}.question-body h2{color:#244730}
.training-head{border-color:#e0e5d5}.review-heading,.quiz .training-head .review-heading{color:#73835d;font-size:12px}
.progress-line{height:8px;background:#e6eadc}.level-heading .eyebrow{color:#7d9064}.question-count small{color:#839373}
.choice{background:#fffefa;border-color:#dce1cf;box-shadow:0 3px 0 #e1e6d5}.choice-letter{background:#edf0e5;color:#698052}
.choice:hover:not(:disabled){border-color:#9eb87a}.choice.selected{background:#edf4df;border-color:#86a64d;box-shadow:0 3px 0 #c5d7a7}
.choice.selected .choice-letter{background:#62863b}.choice.correct{background:#edf5e7;border-color:#80ad64;box-shadow:0 3px 0 #d5e4c7}
.choice.wrong{background:var(--red-soft);border-color:#d79294;box-shadow:0 3px 0 #eed7d4}
.question-material{background:#f0f3e6;border-color:#aabd7d}.answer-dock{background:#faf9f3;border-color:#e0e5d6}.feedback p{color:#596b4f}
.completion,.result-intro{background:#faf9f3}.achievement-art,.result-art>img{width:100%;height:185px!important;object-fit:cover;border-radius:20px;filter:none}.completion h1,.result-intro h1{color:#20442e}
.result-intro .award-caption{background:#faf9f3e8;color:#4f6d36}.result-score,.level-score{color:#365f2e}
.teacher-host{background:#f2f3e9}.teacher-shell{color:#29452f}.teacher-top,.records-panel,.diagnosis-panel,.teacher-metrics article{background:#fffef8;border-color:#dde3d0}
.local-notice,.content-notice{background:#edf2e1;color:#62764e}.filters input,.filters select{background:#fffef8}
dialog{background:#fffef8;color:#29452f;border-color:#d9dfcb}.dialog-copy,.content-preview p,.content-preview li{color:#718063}
.student-shell:not(.home):not(.learning-space):not(.chapter-map):not(.picker):not(.quiz):not(.milestone):not(.results){padding:32px 28px}
@media(min-width:800px){.student-shell{border-inline:1px solid #dfe3d2}.login .forest-hero>img{max-height:290px}.home-brand{padding-top:30px}}
@media(max-width:370px){.home-brand,.login-visual{padding-inline:21px}.login-panel{margin-inline:21px}.visitor-entry{padding-inline:21px}.chapter-levels{padding-inline:15px}.chapter-level{grid-template-columns:58px 1fr;gap:11px;width:96%}.level-node-icon{width:58px;height:58px}.chapter-level-copy h2{font-size:15px}.login-visual h1{font-size:31px}}
@media(prefers-reduced-motion:reduce){.primary,.chapter-level,.choice{transition:none}}
.weekly-section{margin:24px}.weekly-section h2{font-size:20px}.weekly-card{margin:16px 0;padding:22px;background:#fffef8;border:1px solid #dce4d1;border-radius:20px;box-shadow:0 4px 0 #e4ead9}.weekly-card h3{font-size:21px;margin:14px 0}.weekly-card p,.weekly-card li{font-size:14px;line-height:1.7;color:#596b4f}.weekly-card ul{padding-left:20px}.weekly-card .primary{width:100%}.weekly-home-link{margin-left:24px}.weekly-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weekly-dates input{min-width:0}#weekly-options fieldset{border:1px solid #dce4d1;border-radius:12px;margin:14px 0;padding:12px}#weekly-options .weekly-choice{display:flex;align-items:center;gap:10px;margin:12px 0}#weekly-options input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:#638f3e}.weekly-home .space-welcome h1{font-size:28px}
.guidance-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.guidance h3{margin:0;color:#193f32}.mastery-summary,.next-step{margin:20px 24px;padding:20px;border:1px solid #dce4d1;border-radius:18px;background:#f0f4e8;text-align:left}.mastery-summary h2,.next-step h2{font-size:18px;margin:0 0 12px}.mastery-summary>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mastery-summary span{display:flex;justify-content:space-between;gap:8px;font-size:14px}.mastery-summary p,.next-step p{font-size:14px;line-height:1.7;color:#596b4f}.next-step button{width:100%}
