:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#183844;background:#f4f7f8;font-synthesis:none;font-size:16px;line-height:1.6;--ink: #153e53;--green: #227763;--line: #d9e4e5;--mint: #78d2b8}*{box-sizing:border-box}body{margin:0}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-family:Georgia,Times New Roman,serif;line-height:1.2;letter-spacing:-.025em}h1{font-size:clamp(2rem,4vw,3.5rem);margin-bottom:20px}h2{font-size:1.7rem}h3{font-size:1.1rem}p{margin-bottom:16px}a{color:var(--green)}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a,button,input,textarea,select,summary{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d79c22}header{padding:22px max(20px,calc((100vw - 1160px)/2));background:var(--ink);color:#fff;display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}.brand{font:700 1.5rem Georgia,serif;color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--mint);flex-shrink:0}.user-menu{display:flex;align-items:center;gap:12px;font-size:.88rem}.user-menu .text-button{color:#fff}nav{display:flex;gap:4px;flex-wrap:wrap;padding:12px max(20px,calc((100vw - 1160px)/2));background:#fff;border-bottom:1px solid var(--line)}nav a{border:0!important;background:transparent!important}main{max-width:1200px;margin:0 auto;padding:32px 20px 48px;min-height:65vh}main:focus{outline:none}#page{min-width:0}footer{text-align:center;color:#576d74;padding:22px 20px;border-top:1px solid var(--line)}.skip{position:absolute;top:-200px;left:16px;z-index:100;background:#fff;padding:12px}.skip:focus{top:8px}.primary,.secondary,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 17px;border-radius:9px;font-weight:650;text-decoration:none;border:1px solid transparent;max-width:100%;line-height:1.4;text-align:center}.primary{background:var(--ink);color:#fff}.primary:hover{background:#205774}.secondary{background:#fff;color:var(--ink);border-color:#aebfc5}.secondary:hover{background:#eef8f4}.text-button{background:transparent;color:var(--green);padding:9px 7px}.danger{color:#a43731}.actions,.subnav,.tags{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions{margin:20px 0}.subnav{margin-bottom:25px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;margin-bottom:24px;box-shadow:0 2px 4px #133b5210;min-width:0;overflow-wrap:anywhere}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.cards>.card{margin:0}.cards{margin-bottom:25px}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;font-weight:750;color:#528777;margin-bottom:13px}.hero{background:radial-gradient(ellipse at top right,#207889,transparent 70%),var(--ink);color:#fff;border-radius:24px;display:flex;gap:28px;align-items:center;justify-content:space-between;padding:40px;margin-bottom:30px}.hero .eyebrow{color:#b1e3d4}.hero h1{max-width:400px;font-size:clamp(2.5rem,5vw,4rem)}.hero p:last-child{margin-bottom:0;color:#cfdee6;font-size:1.1rem}.level{width:140px;height:140px;border:6px solid var(--mint);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:.85rem}.level strong{font:700 3rem Georgia,serif;line-height:1.2}.tag,.badge{display:inline-block;border-radius:30px;background:#e8f4ef;color:#256850;font-size:.76rem;font-weight:700;padding:5px 10px}.badge{font-size:.95rem;padding:10px 15px}.tag.required{background:#fff0d2;color:#80590c}.locked .tag{background:#eef1f3;color:#60707a}.locked{background:#fafbfc}.course-card .eyebrow{margin-top:18px}.notice{border-radius:10px;padding:16px 18px;background:#eaf2f6;border:1px solid #c4d9e3;margin:16px 0;overflow-wrap:anywhere}.notice p:last-child{margin-bottom:0}.notice.error{background:#fff0ed;color:#8b3022;border-color:#e5b0a5}.notice.success{background:#e8f7ef;border-color:#91cbb4;color:#23684e}.speech-status{max-width:1160px;margin:auto;padding:0 20px;color:#8b3022}.speech-status:not(:empty){padding-top:15px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:24px}.filters label{flex:1;min-width:160px;margin:0}label{display:block;font-weight:650;font-size:.9rem;margin:16px 0}input,textarea,select{display:block;width:100%;max-width:100%;border:1px solid #aabdc3;border-radius:8px;padding:11px 12px;background:#fff;color:#183844;margin-top:6px;min-height:44px}textarea{resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:3px 0 0;accent-color:var(--green)}.check{display:flex;align-items:flex-start;gap:12px}.check span{min-width:0}.check input{margin-top:3px}.login-card{max-width:490px;margin:25px auto}.login-card button.primary{width:100%;margin:10px 0 22px}details{margin:14px 0}summary{cursor:pointer;font-weight:650;padding:8px 0}details[open]>summary{margin-bottom:10px}.muted{color:#647983}.list-item{border-top:1px solid var(--line);padding:19px 0}.list-item p{font-size:.9rem;margin-bottom:8px}.list-item h3{margin-bottom:7px}.list-item:last-child{padding-bottom:0}.objectives{background:#edf6f2;padding:20px 20px 20px 42px;border-radius:10px}.lesson{max-width:850px;margin-top:20px}.lesson-block{margin:26px 0}.preserve-lines{white-space:pre-wrap}.question{border:0;border-top:1px solid var(--line);padding:24px 0;margin:20px 0;min-width:0}.question legend{float:left;width:100%;margin-bottom:18px;font-size:1.08rem;font-weight:700}.question legend+div{clear:both}.answer{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid #c7d7dc;border-radius:10px;margin:10px 0;font-size:1rem;font-weight:400;cursor:pointer}.answer:has(input:checked){background:#e9f7f1;border-color:#35816a}.answer span{flex:1;min-width:0}.match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:16px}.match-row select{margin:0}.read-aloud{font-size:.86rem;margin:10px 0}.read-aloud[aria-pressed=true]{background:#daf1e8;border-color:#1d745c}.feedback-panel,.completion-result{padding:24px;background:#edf5f8;border:1px solid #c2d8e2;border-radius:14px;margin:22px 0}.feedback-panel.success,.completion-result{background:#ecf8f1;border-color:#a0d2b8}.feedback-item{border-top:1px solid #cfdfdc;margin-top:20px;padding-top:20px}.feedback-item:last-child p:last-child{margin-bottom:0}.completion-result h2{color:#1e7258;font-size:1.6rem}.completion-result .actions{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:25px 0}.stats>div{background:#fff;padding:24px;border:1px solid var(--line);border-radius:14px}.stats strong{font:700 2.4rem Georgia,serif;color:var(--green);display:block}.stats span{font-size:.83rem}.tree-viewport{width:100%;max-width:100%;overflow:auto;background:#edf2f3;border:1px solid var(--line);border-radius:16px;max-height:75vh;touch-action:pan-x pan-y}.tree-canvas{position:relative}.tree-canvas svg{position:absolute;left:0;top:0;pointer-events:none}.tree-canvas path{fill:none;stroke:#8aafa4;stroke-width:2}.tree-node{position:absolute;width:250px;height:185px;overflow:auto;background:#fff;border:1px solid #afc6c7;border-radius:13px;padding:16px;font-size:.8rem;box-shadow:0 3px 6px #18384410}.tree-node h2{font-size:1.18rem;margin:10px 0 6px}.tree-node p{margin-bottom:6px}.tree-node .primary{padding:7px 12px;min-height:36px;font-size:.8rem}.tree-node .tag{font-size:.65rem;padding:3px 7px}.tree-node.passed{border:2px solid #60ac88;background:#f2fbf7}.tree-node.locked{background:#f6f8f9;border-style:dashed;color:#60747d}.tree-node details{margin:0}.tree-node summary{padding:2px 0}.editor-item{border:1px solid var(--line);border-radius:12px;padding:15px;margin:20px 0}.editor-item summary{overflow-wrap:anywhere}.editor-block{padding:15px;background:#f5f9f8;border-radius:9px;margin:20px 0}.reference-choices{border:1px solid var(--line);border-radius:9px;padding:12px;min-width:0;margin:20px 0}.reference-choices legend{font-weight:650;font-size:.9rem}.option-editor{display:flex;gap:10px;align-items:end}.option-editor>label{flex:1;min-width:0}.option-editor>button{margin-bottom:18px}.sticky-actions{position:sticky;bottom:0;padding:14px;background:#f4f7f8ed;border-top:1px solid var(--line);z-index:2}.update-notice{position:fixed;bottom:12px;left:12px;right:12px;background:#fff;padding:14px;border:1px solid #89b49f;box-shadow:0 4px 22px #0003;border-radius:12px;display:flex;gap:15px;align-items:center;justify-content:center;z-index:10;font-size:.9rem}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}code,pre{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}#save-status{font-size:.88rem;color:#286b56;padding:10px 0}@media(max-width:620px){header{padding:18px 16px;gap:8px}.brand{font-size:1.25rem}.user-menu{width:100%;justify-content:space-between}.user-menu span{overflow-wrap:anywhere}nav{padding:7px 9px;gap:0}nav .secondary{padding:8px 11px;font-size:.8rem}main{padding:24px 15px 35px}.card{padding:21px 18px;border-radius:14px}.hero{flex-direction:column;align-items:flex-start;padding:26px 22px;gap:15px}.hero h1{font-size:2.5rem}.hero p:last-child{font-size:.95rem}.hero .eyebrow{font-size:.68rem}.level{width:100px;height:100px;border-width:4px;font-size:.68rem}.level strong{font-size:2rem}.grid.two{grid-template-columns:1fr}.stats{gap:9px}.stats>div{padding:15px 12px}.stats strong{font-size:1.8rem}.stats span{font-size:.72rem}.match-row{grid-template-columns:1fr;gap:7px}.editor-item,.editor-block{padding:11px}.filters label{min-width:100%}.filters button{width:100%}.question legend{font-size:1rem}.answer{padding:13px}.feedback-panel,.completion-result{padding:18px}.subnav{gap:6px}.subnav .secondary{font-size:.83rem;padding:8px 10px}.update-notice{align-items:stretch;flex-direction:column}.login-card{margin-top:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
