:root{--ink:#172b29;--muted:#65716d;--paper:#fffdf7;--sand:#f1ecdf;--lime:#d5ed64;--coral:#ff765b;--blue:#a6dcea;--line:#d9ddd5}*{box-sizing:border-box}body{margin:0;background:var(--sand);color:var(--ink);font-family:"Zen Kaku Gothic New",sans-serif}.app-shell{max-width:1500px;margin:auto;background:var(--paper);min-height:100vh}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4.5%;gap:28px}.brand{font-weight:900;color:var(--ink);text-decoration:none;letter-spacing:.02em;font-size:18px;margin-right:auto}.brand-mark{color:var(--coral);font-size:23px}.mode-switch{background:#f2f2eb;padding:4px;border-radius:100px;display:flex;gap:2px}.mode,.filter{border:0;background:transparent;color:var(--muted);font-family:inherit;padding:8px 14px;border-radius:100px;cursor:pointer}.mode.active,.filter.selected{background:var(--ink);color:white}.avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);display:grid;place-items:center;font-weight:700}.view{display:none}.view.active{display:block}.student-layout{display:grid;grid-template-columns:310px minmax(0,800px);min-height:calc(100vh - 76px)}.journey{background:#1b3430;color:white;padding:52px 36px}.eyebrow{font-family:"DM Mono",monospace;font-size:11px;letter-spacing:.1em;margin:0 0 10px;color:#92aaa3}.eyebrow.coral{color:#cf533c}.journey h1,.teacher-head h1{font-size:31px;line-height:1.3;margin:0 0 31px;letter-spacing:.03em}.progress{height:8px;background:#36504a;border-radius:8px}.progress span{display:block;width:75%;height:100%;border-radius:8px;background:var(--lime)}.progress-copy{font-size:12px;color:#b9c7c2;margin:9px 0 34px}.progress-copy strong{color:var(--lime)}.lesson-path{padding:0;list-style:none;position:relative}.lesson-path:before{content:"";position:absolute;left:15px;top:22px;height:178px;border-left:1px solid #49615b}.lesson-path li{display:flex;align-items:center;gap:11px;position:relative;margin:0 0 23px;color:#98ada7}.lesson-path i{font-style:normal;font:11px "DM Mono";width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#36504a;color:#bbcbc6;z-index:1}.lesson-path li.done i{background:var(--lime);color:var(--ink)}.lesson-path li.now i{background:var(--coral);color:white}.lesson-path span{font-size:13px;font-weight:700;line-height:1.25}.lesson-path small{display:block;font-weight:400;color:#91a49e;margin-top:3px}.lesson-path b{margin-left:auto;color:var(--lime)}.lesson-path .now{color:white}.lesson-path .now b{color:var(--coral);font-size:11px}.link-button{margin-top:17px;border:1px solid #526963;background:transparent;color:white;padding:12px;width:100%;border-radius:4px;font:13px inherit;text-align:left;cursor:pointer}.link-button span{float:right}.journal-page{padding:54px 7% 80px}.lesson-header{display:flex;justify-content:space-between;gap:20px;align-items:start}.lesson-header h2{margin:0;font-size:31px;letter-spacing:.02em}.due{background:#ffede7;border-radius:8px;padding:9px 13px;min-width:100px;color:#8c3f2e;font-size:11px}.due span{display:block}.due strong{font-size:14px}.intro-card{margin:29px 0 35px;padding:18px 20px;background:#edf6e4;border-left:4px solid var(--lime);display:flex;gap:14px;align-items:flex-start;font-size:14px;line-height:1.8}.intro-card p{margin:0}.spark{font-size:23px;color:#697f1f}.question{border:0;border-top:1px solid var(--line);margin:0;padding:26px 0}.question legend{font-size:17px;font-weight:700;line-height:1.65;padding:0}.question legend span{font:11px "DM Mono";background:var(--ink);color:white;padding:5px 6px;border-radius:2px;margin-right:8px;vertical-align:2px}.question em{font-style:normal;font-size:10px;color:#bf4938;background:#ffebe5;padding:3px 5px;border-radius:2px;margin-left:5px;vertical-align:2px}.help{font-size:12px;color:var(--muted);margin:8px 0 14px}textarea{border:1px solid #cfd6cd;border-radius:5px;background:#fff;width:100%;padding:14px;font:14px/1.7 inherit;resize:vertical;min-height:115px;outline-color:#4f746d}.input-foot{display:flex;justify-content:space-between;margin-top:7px}.char-count{font:11px "DM Mono";color:#86918d}.memory-button{border:0;background:transparent;color:#1c7164;text-decoration:underline;font:12px inherit;cursor:pointer}.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:15px}.choice-grid label{border:1px solid #d5d9d0;padding:13px 8px;border-radius:5px;display:grid;gap:5px;place-items:center;cursor:pointer;font-size:13px}.choice-grid input{position:absolute;opacity:0}.choice-grid label:has(input:checked){border:2px solid #355f56;background:#eff6e4}.choice-grid span{font-size:21px}.actions{border-top:1px solid var(--line);padding-top:24px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.actions p{margin-right:auto;font-size:12px;color:var(--muted)}button{font-family:inherit}.primary,.secondary{border:0;border-radius:4px;padding:13px 17px;font-weight:700;cursor:pointer;font-size:13px}.primary{background:var(--coral);color:white}.primary span{margin-left:13px;font-size:17px}.secondary{background:#e9ece6;color:var(--ink)}dialog{border:0;border-radius:8px;max-width:520px;width:calc(100% - 40px);padding:37px;background:var(--paper);color:var(--ink);box-shadow:0 24px 70px #142a2455}dialog::backdrop{background:#172b2994}.close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:26px;cursor:pointer;color:var(--muted)}dialog h2{font-size:25px;margin:0 0 20px}blockquote{font-size:17px;line-height:1.8;background:#f2f5e7;margin:18px 0;padding:19px;border-left:4px solid var(--lime)}.memory-note{font-size:12px;line-height:1.7;color:var(--muted)}#submit-dialog{text-align:center;max-width:420px}.celebrate{font-size:43px;color:var(--coral)}.teacher-wrap{max-width:1100px;margin:auto;padding:56px 30px 80px}.teacher-head{display:flex;justify-content:space-between;align-items:center}.teacher-head h1{margin:0}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:35px 0}.stat-row article{padding:21px;background:#f3f1e9;border-radius:7px}.stat-row article:nth-child(2){background:#eaf5ee}.stat-row article:nth-child(3){background:#fff0e9}.stat-row span{font-size:12px;color:var(--muted)}.stat-row strong{display:block;font:35px "DM Mono";margin:6px 0}.stat-row small{font:14px "Zen Kaku Gothic New"}.stat-row p{font-size:11px;margin:0;color:var(--muted)}.class-board{border:1px solid var(--line);border-radius:8px;overflow:hidden}.board-top{display:flex;justify-content:space-between;align-items:center;padding:21px 24px;border-bottom:1px solid var(--line)}.board-top h2{font-size:18px;margin:0 0 5px}.board-top p{font-size:12px;color:var(--muted);margin:0}.filters{display:flex;gap:3px;background:#f1f2ed;padding:3px;border-radius:99px}.filter{font-size:12px;padding:7px 10px}.student-row{display:grid;grid-template-columns:40px 1.2fr .8fr .9fr 120px;align-items:center;gap:12px;padding:15px 24px;border-bottom:1px solid #edf0ea;font-size:13px}.student-row:last-child{border-bottom:0}.student-avatar{width:32px;height:32px;border-radius:50%;background:#d7ebe2;display:grid;place-items:center;font-size:12px}.student-row strong{display:block}.student-row small{color:var(--muted);font-size:11px}.status{font-size:11px;font-weight:700;padding:5px 8px;border-radius:99px;width:max-content}.submitted{background:#def1d1;color:#486b31}.draft{background:#fff0c9;color:#80651d}.not-started{background:#eceeea;color:#79817e}.commented{color:#1d7164}.row-action{border:1px solid #cfd6cd;background:white;border-radius:4px;padding:7px;font-size:11px;cursor:pointer}.comment-label{display:block;margin:20px 0 7px;font-size:13px;font-weight:700}#comment-dialog .primary{margin-top:14px;float:right}@media(max-width:760px){.topbar{padding:0 18px}.mode-switch{display:none}.student-layout{display:block}.journey{padding:26px 22px}.journey h1,.progress,.progress-copy,.lesson-path{display:none}.journey .eyebrow{margin:0}.link-button{margin:15px 0 0}.journal-page{padding:34px 22px}.lesson-header h2{font-size:25px}.choice-grid{grid-template-columns:repeat(2,1fr)}.actions{flex-wrap:wrap}.actions p{width:100%;margin:0 0 8px}.teacher-wrap{padding:34px 18px}.teacher-head{align-items:start;gap:12px}.teacher-head .primary{font-size:11px;padding:11px}.stat-row{grid-template-columns:1fr}.board-top{align-items:start;gap:14px;flex-direction:column}.student-row{grid-template-columns:34px 1fr 80px}.student-row > :nth-child(3),.student-row > :nth-child(4){display:none}}
