@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap');
:root{--ink:#17231f;--muted:#78837d;--green:#3d765b;--lime:#c6dc82;--paper:#f4f6f2;--line:#e4e9e3;--mono:'DM Mono',monospace;--sans:'DM Sans','Noto Sans TC',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px}.shell{min-height:100vh}.sidebar{width:226px;background:#fbfcfa;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:29px 20px;display:flex;flex-direction:column;z-index:4}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-weight:700;font-size:16px;letter-spacing:.02em}.brand small{display:block;color:#89938c;font:9px var(--mono);letter-spacing:.1em;margin-top:4px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:var(--green);color:#f7f8eb;font-size:17px}.side-label,.eyebrow{font:10px var(--mono);letter-spacing:.12em;color:#89958d}.side-label{margin:57px 0 14px 8px}.side-nav{display:grid;gap:6px}.side-nav a{padding:12px 11px;color:#69756e;text-decoration:none;border-radius:8px;font-weight:500;display:flex;align-items:center;gap:12px}.side-nav a.active{background:#edf2eb;color:#285940}.nav-icon{font-size:17px;width:18px;text-align:center}.side-note{display:flex;gap:10px;align-items:flex-start;background:#f2f5f1;border:1px solid #e8ede7;border-radius:9px;padding:13px 10px;margin-top:37px}.live-dot,.eyebrow span{width:7px;height:7px;border-radius:50%;background:#8cb967;display:inline-block;margin-top:4px;box-shadow:0 0 0 3px #e1ecd5}.side-note strong,.side-note small{display:block}.side-note strong{font-size:11px}.side-note small{font-size:9px;color:var(--muted);margin-top:5px}.sidebar-foot{margin-top:auto;color:#9aa39d;font-size:10px;line-height:1.8;padding-left:8px}main{margin-left:226px;max-width:1500px;padding:0 5.1%}.topbar{height:68px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);color:#69746d;font-size:11px}.crumb{color:#a4ada6}.top-chip{font:10px var(--mono);border:1px solid #e1e8df;border-radius:20px;padding:7px 11px;color:#5c6b61}.top-chip i{display:inline-block;width:6px;height:6px;background:#8eb76c;border-radius:50%;margin-right:6px}.hero{position:relative;min-height:374px;padding:48px 0 45px;display:grid;grid-template-columns:1.04fr .96fr;align-items:center;border-bottom:1px solid var(--line)}.eyebrow{display:flex;align-items:center;gap:9px}.eyebrow span{margin:0}.hero h1{font-size:clamp(36px,4vw,54px);line-height:1.27;letter-spacing:-.055em;margin:23px 0 14px;font-weight:700}.hero h1 em{font-style:normal;color:var(--green)}.hero-copy p{max-width:436px;color:#748079;line-height:1.9;font-size:13px;margin:0 0 22px}.primary-button{display:inline-flex;gap:27px;align-items:center;padding:12px 15px;background:var(--green);color:white;text-decoration:none;border-radius:6px;font-size:11px}.primary-button span{font-size:15px}.hero-art{height:290px;position:relative;background:radial-gradient(ellipse at 53% 46%,#e7eee3 0,#edf2e9 27%,transparent 66%);overflow:hidden}.orbit{position:absolute;border:1px solid #d3dfd1;border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%)}.orbit-a{width:210px;height:210px}.orbit-b{width:285px;height:285px;border-style:dashed;opacity:.65}.board{position:absolute;width:129px;height:91px;border-radius:14px;left:50%;top:48%;transform:translate(-50%,-50%) rotate(-8deg);background:#315d49;box-shadow:0 14px 25px #55715c42;display:grid;place-items:center;color:#dbe8c2}.board-chip{width:46px;height:31px;background:#d1d9bb;border:3px solid #9baa88;border-radius:4px;display:grid;place-items:center;color:#244535;font:10px var(--mono);z-index:1}.board b{font:7px var(--mono);letter-spacing:.15em;position:absolute;bottom:12px;left:16px;color:#cbd9be}.board-port{position:absolute;left:-7px;top:25px;width:14px;height:37px;background:#c4cabc;border-radius:4px;border:2px solid #8e9b8b}.board-pins{position:absolute;right:15px;top:0;width:7px;height:10px;background:repeating-linear-gradient(90deg,#c5a852 0 2px,transparent 2px 4px)}.board-light{position:absolute;right:21px;bottom:20px;width:5px;height:5px;background:#d6ed92;border-radius:50%;box-shadow:0 0 10px #d6ed92}.sensor-node{position:absolute;z-index:1;display:flex;align-items:center;gap:7px;color:#536d58;background:#f9fbf4;border:1px solid #dfe8d8;padding:7px 9px;border-radius:6px;box-shadow:0 5px 14px #526d4610}.sensor-node span{font-size:15px}.sensor-node small{font:8px var(--mono);letter-spacing:.04em}.node-top{top:23px;left:calc(50% - 22px)}.node-right{top:126px;right:5px}.node-bottom{bottom:19px;left:calc(50% - 25px)}.art-caption{position:absolute;left:3px;bottom:49px}.art-caption span,.art-caption strong{display:block}.art-caption span{font:8px var(--mono);letter-spacing:.13em;color:#89978a}.art-caption strong{font-size:11px;margin-top:5px}.data-tag{position:absolute;right:4px;top:27px;color:#718772;font:9px var(--mono);background:#eff4e9;padding:6px 7px;border-radius:4px}.hero-index{position:absolute;bottom:16px;right:1px;color:#6d806d;font:10px var(--mono)}.hero-index span{color:#c4cbc3;margin:0 5px}.section{padding:33px 0 42px}.section-heading,.lab-head{display:flex;justify-content:space-between;align-items:flex-end}.muted{color:#8b978f}.section h2,.lab-head h2{font-size:22px;letter-spacing:-.035em;margin:9px 0 0}.section-aside{font-size:10px;color:#8a958e;padding-bottom:3px}.route-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:20px}.route-card{min-height:160px;border:1px solid var(--line);border-radius:8px;background:#fafbf9;padding:15px;text-decoration:none;color:var(--ink);position:relative;transition:transform .18s,border-color .18s}.route-card:hover{transform:translateY(-3px);border-color:#abc4a8}.route-card.featured{background:#edf3ea;border-color:#dce8d9}.route-number{font:9px var(--mono);letter-spacing:.08em;color:#718b6e}.route-arrow{position:absolute;right:14px;top:11px;color:#8a9c89;font-size:14px}.route-card h3{font-size:13px;margin:15px 0 7px;letter-spacing:-.02em}.route-card p{font-size:10px;line-height:1.65;color:#7d8881;margin:0;min-height:34px}.route-tag{display:inline-block;margin-top:10px;padding:4px 6px;border-radius:3px;background:#f0f3ee;color:#657768;font:8px var(--mono)}.lab-section{background:#e9efe7;margin:0 -5.7%;padding:34px 5.7% 39px}.lab-head{align-items:center}.lab-head p{color:#748079;font-size:11px;margin:8px 0 0}.serial-status{font:9px var(--mono);color:#627269;padding:7px 10px;border:1px solid #d6e0d4;border-radius:20px;white-space:nowrap}.serial-status span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8bb86c;margin-right:5px}.lab-card{display:grid;grid-template-columns:.82fr 1fr 1.05fr;gap:14px;margin-top:20px}.sensor-control,.flow-column,.code-panel{background:#fafbf8;border:1px solid #e0e7dd;border-radius:7px;padding:17px}.control-label{display:flex;gap:10px;align-items:center}.mini-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:7px;background:#edf3e9;color:#64835b;font-size:17px}.control-label strong,.control-label small{display:block}.control-label strong{font-size:10px}.control-label small{font-size:9px;color:#8b958d;margin-top:3px}.reading{margin:20px 0 9px}.reading strong{font:34px var(--mono);letter-spacing:-.08em}.reading span{font:9px var(--mono);color:#8c978f;margin-left:7px}input[type=range]{width:100%;accent-color:#658f63;height:3px}.range-label{display:flex;justify-content:space-between;color:#929c94;font:8px var(--mono);margin-top:3px}.threshold{border-top:1px solid #e8ece6;margin-top:17px;padding-top:10px;display:flex;justify-content:space-between;color:#839087;font-size:8px}.threshold b{color:#53685a;font-family:var(--mono);font-weight:500;margin-left:4px}.flow-column{display:flex;flex-direction:column;justify-content:space-between;padding:13px 16px}.flow-step{display:flex;align-items:center;gap:10px}.step-num{font:8px var(--mono);color:#98a39b}.flow-step div{flex:1}.flow-step small{display:block;font:8px var(--mono);color:#929c94;margin-bottom:5px}.flow-step code,.flow-step strong{font-size:10px;color:#40584a}.flow-step code{font:10px var(--mono)}.check{color:#749b66;font-size:12px}.logic-mark{font-size:18px;color:#91a88c}.flow-line{height:12px;border-left:1px dashed #c4d1c0;margin-left:29px}.output-step{transition:background .2s}.output-step.is-on{background:#f2f6e8;border-radius:5px;padding:4px}.output-indicator{width:10px;height:10px;border:1px solid #c7d0c5;border-radius:50%;background:#e8ece7}.output-indicator.on{background:#a2c85e;box-shadow:0 0 0 4px #e5efd4}.code-panel{background:#1d2b27;border-color:#1d2b27;color:#e4ebdf;padding:0;overflow:hidden}.code-top{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #34413b;color:#a5b1a5;font:8px var(--mono)}.code-top>span:first-child{display:flex;gap:4px}.code-top i{width:5px;height:5px;border-radius:50%;background:#64776b}.code-top>span:last-child{color:#b1d17a}.code-panel pre{font:9px/1.9 var(--mono);color:#d7dfd2;margin:0;padding:14px 16px;white-space:pre-wrap}.code-comment{color:#92a497}.code-panel b{color:#e8d68a;font-weight:400}.code-on{color:#c6dc82}.code-off{color:#a5c5ae}.code-foot{padding:9px 14px;border-top:1px solid #34413b;color:#9baa9f;font-size:8px}.bottom-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;padding:33px 0 31px}.ask-card,.checkpoint-card{border:1px solid var(--line);border-radius:8px;background:#fafbf9;padding:20px 21px}.ask-card h2{font-size:21px;line-height:1.4;margin:10px 0}.ask-card p,.checkpoint-card p{font-size:10px;line-height:1.8;color:#7d8881;margin:0 0 13px;max-width:440px}.ask-card form{display:flex;border:1px solid #dfe5dc;background:white;border-radius:5px;padding:4px}.ask-card input{border:0;outline:0;flex:1;padding:8px 9px;font:10px var(--sans);min-width:0}.ask-card button{border:0;background:#47775b;color:white;width:30px;border-radius:4px;font-size:16px;cursor:pointer}.answer{white-space:pre-wrap;color:#506758;font-size:10px;line-height:1.8;margin-top:10px;max-height:180px;overflow:auto}.checkpoint-card{background:#eaf0e7;border-color:#e2e9df}.checkpoint-card .eyebrow{color:#718a70}.checkpoint-card h3{font-size:15px;margin:11px 0 5px}.checkpoint-card p{margin-bottom:12px}.checklist{display:grid;gap:9px}.checklist label{display:flex;align-items:center;gap:8px;color:#59675d;font-size:10px;cursor:pointer}.checklist input{accent-color:#4d7b5d;width:13px;height:13px;margin:0}.checkpoint-foot{display:flex;justify-content:space-between;border-top:1px solid #dbe4d8;margin-top:13px;padding-top:9px;color:#869188;font:8px var(--mono)}.tiny-spark{color:#6c936d;letter-spacing:2px}footer{border-top:1px solid var(--line);padding:15px 0 20px;display:flex;justify-content:space-between;color:#8b958d;font-size:9px}footer b{color:#b6c3b3;margin:0 5px}#data-source{font-family:var(--mono)}.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}
@media(max-width:1100px){main{padding:0 4%}.sidebar{width:200px}main{margin-left:200px}.route-grid{grid-template-columns:repeat(3,1fr)}.lab-card{grid-template-columns:.85fr 1fr}.code-panel{grid-column:1/-1}.lab-section{margin:0 -4.5%;padding-left:4.5%;padding-right:4.5%}}
@media(max-width:760px){.sidebar{position:relative;width:auto;height:58px;padding:10px 16px;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:14px}.brand-mark{width:31px;height:31px}.brand small{font-size:7px}.side-label,.side-nav,.side-note,.sidebar-foot{display:none}main{margin-left:0;padding:0 18px}.topbar{height:48px}.top-chip{font-size:8px}.hero{grid-template-columns:1fr;padding:36px 0 25px}.hero h1{font-size:39px}.hero-art{height:220px;margin-top:15px}.orbit-a{width:170px;height:170px}.orbit-b{width:225px;height:225px}.board{transform:translate(-50%,-50%) scale(.86) rotate(-8deg)}.node-right{right:4%}.art-caption{left:4%}.data-tag{right:4%}.hero-index{bottom:8px}.section-heading{align-items:flex-start;gap:15px;flex-direction:column}.section h2,.lab-head h2{font-size:20px}.section-aside{font-size:9px}.route-grid{grid-template-columns:repeat(2,1fr);gap:8px}.route-card{min-height:156px;padding:12px}.route-card h3{font-size:12px}.route-card p{font-size:9px}.lab-section{margin:0 -18px;padding:28px 18px}.lab-head{align-items:flex-start;gap:10px;flex-direction:column}.lab-head p{max-width:320px}.lab-card{grid-template-columns:1fr}.code-panel{grid-column:auto}.sensor-control,.flow-column{min-height:160px}.bottom-grid{grid-template-columns:1fr;padding-top:24px}.ask-card,.checkpoint-card{padding:17px}footer{gap:10px;flex-direction:column}.hero-copy p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.route-card{transition:none}}
.quests-section{padding:39px 0 43px}.quest-heading{align-items:flex-end}.quest-intro{font-size:15px;line-height:1.8;color:#66746a;max-width:760px;margin:12px 0 20px}.campaigns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.campaign-card{appearance:none;min-height:88px;text-align:left;display:flex;align-items:center;gap:14px;padding:15px 18px;border:2px solid #e3e9df;border-radius:10px;background:#fbfcfa;color:var(--ink);cursor:pointer;transition:border-color .16s,transform .16s,box-shadow .16s}.campaign-card:hover,.campaign-card:focus-visible{border-color:#8eae7d;transform:translateY(-2px);box-shadow:0 7px 18px #324d3912;outline:none}.python-campaign{background:#f0f4e9}.arduino-campaign{background:#edf4f1}.campaign-icon{flex:0 0 48px;height:48px;border-radius:13px;display:grid;place-items:center;background:#d8e7b8;color:#3c6648;font:700 18px var(--mono)}.arduino-campaign .campaign-icon{background:#cde3d9}.campaign-copy{flex:1}.campaign-copy strong,.campaign-copy small{display:block}.campaign-copy strong{font-size:17px}.campaign-copy small{font-size:12px;color:#66746a;margin-top:5px}.campaign-progress{font:12px var(--mono);color:#5d765f;background:#ffffffa6;padding:7px 9px;border-radius:20px;white-space:nowrap}.game-card{margin-top:16px;min-height:145px;border:1px solid #dde5d9;border-radius:11px;background:#fafdF9;overflow:hidden}.game-empty{min-height:145px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#718076}.empty-spark{font-size:23px;color:#83a76d}.game-empty strong{font-size:17px;color:#34483a}.game-empty span:last-child{font-size:13px}.game-topline{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid #e7ece4}.back-track,.hint-button{border:0;background:none;color:#527453;font:600 13px var(--sans);padding:7px 3px;cursor:pointer}.back-track:hover,.hint-button:hover{text-decoration:underline}.xp-pill{color:#725e21;background:#f7f1d9;border:1px solid #eee4bb;border-radius:20px;padding:7px 11px;font:12px var(--mono)}.game-progress{padding:13px 20px 0}.progress-copy{display:flex;justify-content:space-between;font-size:12px;color:#758177;margin-bottom:7px}.progress-track,.monster-hp{height:9px;border-radius:8px;background:#e9ede7;overflow:hidden}.progress-track span,.monster-hp span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#9abe70,#5c9061);transition:width .25s}.battle-layout{display:grid;grid-template-columns:200px 1fr;gap:21px;padding:17px 20px 21px}.monster-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:255px;border-radius:9px;background:radial-gradient(circle at 50% 36%,#f0f4df,#e7efe4 65%,#e1eae0);overflow:hidden}.monster-stage.boss-stage{background:radial-gradient(circle at 50% 36%,#f6e8d8,#f1e8e0 66%,#ebdfdc)}.monster-aura{position:absolute;top:31px;width:108px;height:108px;border:1px dashed #b6c99e;border-radius:50%}.boss-stage .monster-aura{border-color:#d8b59b}.monster-avatar{position:relative;z-index:1;font-size:58px;line-height:1.2;filter:drop-shadow(0 7px 4px #344a2520);animation:monster-bob 2.4s ease-in-out infinite}.boss-stage .monster-avatar{font-size:66px}.monster-name{font-size:14px;font-weight:700;margin:7px 0 8px}.monster-hp{width:68%;height:8px;background:#d9dfd4}.monster-hp span{background:linear-gradient(90deg,#e29b69,#c95e4e)}.monster-stage small{font:10px var(--mono);color:#7d897c;margin-top:5px}.monster-caption{font-size:11px;color:#657267;margin-top:8px}.challenge{padding:3px 0}.challenge-label{display:flex;justify-content:space-between;color:#68805e;font:11px var(--mono);letter-spacing:.04em}.challenge h3{font-size:21px;letter-spacing:-.02em;margin:8px 0}.challenge-prompt{font-size:16px;line-height:1.8;color:#46564b;margin:0 0 12px}.answer-options{display:grid;gap:8px}.answer-option{display:flex;align-items:flex-start;gap:11px;width:100%;min-height:48px;text-align:left;border:1px solid #dfe6dc;border-radius:7px;background:white;padding:10px 12px;color:#26382d;cursor:pointer;transition:background .14s,border-color .14s}.answer-option:not(:disabled):hover,.answer-option:not(:disabled):focus-visible{border-color:#789c6c;background:#f3f7ed;outline:2px solid #d8e8cc}.answer-option:disabled{cursor:default;opacity:.68}.option-letter{flex:0 0 24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#edf2e8;color:#587753;font:12px var(--mono)}.answer-option code{font:13px/1.7 var(--mono);white-space:normal;overflow-wrap:anywhere;padding-top:1px}.hint-button{margin-top:9px;color:#667a47}.hint-box{padding:10px 12px;background:#f8f3df;border:1px solid #eee4bc;border-radius:6px;font-size:13px;line-height:1.6;color:#695a30;margin-top:3px}.game-feedback{min-height:30px;margin-top:8px;display:flex;flex-direction:column;gap:3px;color:#778277;font-size:12px;line-height:1.7}.game-feedback strong{font-size:14px}.game-feedback.correct-feedback{color:#356544}.game-feedback.try-feedback{color:#95693b}.game-next{margin-top:8px;padding:12px 17px;min-height:46px;border:0;border-radius:6px;background:#3f7658;color:white;font:600 14px var(--sans);cursor:pointer}.game-next:hover,.game-next:focus-visible{background:#2f6348;outline:3px solid #c8dcb9}.game-complete{min-height:290px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:27px}.trophy{font-size:45px;margin-bottom:8px}.game-complete h3{font-size:24px;margin:8px}.game-complete p{font-size:15px;line-height:1.8;color:#647267;margin:5px 0 11px}.game-complete p strong{color:#866d24}.campaign-card,.answer-option,.game-next,.back-track,.hint-button{touch-action:manipulation}@keyframes monster-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}
@media(max-width:760px){.quests-section{padding:28px 0 30px}.quest-heading{align-items:flex-start}.quest-intro{font-size:14px}.campaigns{grid-template-columns:1fr;gap:9px}.campaign-card{min-height:78px;padding:12px}.campaign-copy strong{font-size:16px}.campaign-copy small{font-size:11px}.game-card{margin-top:12px}.game-topline{padding:10px 13px}.battle-layout{grid-template-columns:1fr;gap:12px;padding:12px}.monster-stage{min-height:160px}.monster-aura{top:12px;width:82px;height:82px}.monster-avatar{font-size:48px}.boss-stage .monster-avatar{font-size:52px}.monster-name{margin:2px 0 6px}.monster-hp{width:56%}.monster-caption{margin-top:4px}.challenge{padding:3px 1px}.challenge h3{font-size:20px}.challenge-prompt{font-size:15px}.answer-option{min-height:54px;padding:12px}.answer-option code{font-size:13px}.game-next{width:100%;min-height:50px}.game-empty{padding:20px}.progress-copy{font-size:11px}}
.module-group{margin-top:22px}.module-group+.module-group{margin-top:27px}.module-label{display:flex;align-items:center;gap:10px;margin-bottom:10px}.module-label>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;background:#e8eee3;color:#527652;font:11px var(--mono)}.module-label strong,.module-label small{display:block}.module-label strong{font-size:14px}.module-label small{font-size:10px;color:#849086;margin-top:2px}.module-group .route-grid{margin-top:0}.module-group .route-card{min-height:150px}.module-group .route-card h3{font-size:15px}.module-group .route-card p{font-size:12px;line-height:1.7}.module-group .route-tag{font-size:9px}
.auth-page{min-height:100vh;background:radial-gradient(ellipse at 20% 10%,#e7eee4,transparent 45%),#f4f6f2}.auth-shell{width:min(100% - 32px,560px);margin:0 auto;padding:35px 0 23px}.auth-brand{margin:0 0 24px}.auth-card{padding:30px 34px;background:#fbfcfa;border:1px solid #e2e9df;border-radius:13px;box-shadow:0 16px 45px #3348320c}.auth-card h1{font-size:27px;letter-spacing:-.04em;margin:17px 0 7px}.auth-lead{font-size:15px;line-height:1.7;color:#738077;margin:0 0 21px}.login-tabs{display:grid;grid-template-columns:1fr 1fr;background:#edf1eb;padding:4px;border-radius:8px;margin-bottom:20px}.login-tab{height:44px;border:0;border-radius:6px;background:transparent;color:#69776b;font:600 15px var(--sans);cursor:pointer}.login-tab.active{background:white;color:#345c42;box-shadow:0 1px 5px #30442a16}.login-form{display:grid;grid-template-columns:1fr;gap:9px}.login-form.hidden{display:none}.login-form label{font-size:14px;font-weight:600;color:#3f5145;margin-top:6px}.label-soft{font-size:12px;font-weight:400;color:#849086}.login-form input,.create-class-card input:not([type=checkbox]),.add-member-form input{height:48px;border:1px solid #dce4da;border-radius:6px;background:#fff;padding:0 13px;font:15px var(--sans);color:#27382c;outline:none}.login-form input:focus,.create-class-card input:focus,.add-member-form input:focus{border-color:#6c9872;box-shadow:0 0 0 3px #dcebd8}.auth-submit{height:49px;border:0;border-radius:6px;background:#3d765b;color:#fff;font:600 15px var(--sans);cursor:pointer;margin-top:10px}.auth-submit:hover{background:#315f49}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-submit span{float:right;margin-right:15px;font-size:19px;line-height:16px}.form-message{min-height:25px;padding-top:8px;font-size:13px;line-height:1.6;color:#6d776e}.success-message{color:#3c7751}.error-message{color:#a04e3f}.auth-help{display:flex;flex-direction:column;gap:4px;background:#f0f4ed;border-radius:7px;padding:13px 14px;color:#647268;font-size:12px;line-height:1.6;margin-top:13px}.auth-help strong{font-size:13px;color:#425b48}.auth-footer{text-align:center;color:#8a958c;font-size:11px;margin-top:22px}.auth-footer b{color:#b7c4b6;margin:0 5px}
.teacher-page{min-height:100vh}.teacher-top{height:70px;background:#fbfcfa;border-bottom:1px solid var(--line);padding:0 max(22px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between}.teacher-user{display:flex;align-items:center;gap:17px;font-size:13px;color:#68756c}.teacher-user button,.refresh-button{border:1px solid #dce5da;background:#fff;border-radius:6px;padding:9px 13px;color:#496750;font:600 13px var(--sans);cursor:pointer}.teacher-main{width:min(100% - 40px,1100px);margin:0 auto;padding:38px 0 60px}.teacher-welcome h1{font-size:30px;letter-spacing:-.04em;margin:11px 0 8px}.teacher-welcome p{font-size:15px;line-height:1.8;color:#718075;max-width:760px;margin:0}.create-class-card{margin-top:24px;padding:22px;background:#eaf1e7;border:1px solid #dce7d9;border-radius:10px}.create-class-card h2{font-size:18px;margin:0 0 4px}.create-class-card p{font-size:13px;color:#748176;margin:0}.create-class-card form{display:grid;grid-template-columns:minmax(190px,1fr) auto auto;align-items:center;gap:10px;margin-top:15px}.create-class-card .auth-submit{margin:0;padding:0 20px}.toggle-label,.class-verification{display:flex;align-items:center;gap:8px;color:#506252;font-size:13px;white-space:nowrap}.toggle-label input,.class-verification input{width:18px;height:18px;accent-color:#477b59}.teacher-message{min-height:18px;font-size:13px;margin-top:9px}.classes-section{margin-top:34px}.classes-section .section-heading{align-items:center}.classes-section h2{font-size:23px}.class-list{display:grid;gap:15px;margin-top:16px}.loading-card,.empty-class{border:1px dashed #d6dfd3;border-radius:9px;background:#fbfcfa;padding:26px;color:#718077;font-size:14px}.teacher-class-card{border:1px solid #e0e7dd;background:#fbfcfa;border-radius:10px;padding:20px}.class-card-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.class-code-label{font-size:11px;color:#829086}.class-code-value{font:600 19px var(--mono);color:#345f43;margin-top:4px}.copy-class-code{margin-left:5px;border:1px solid #d7e2d4;border-radius:5px;background:#f2f6ef;color:#517653;padding:5px 8px;font:12px var(--sans);cursor:pointer}.class-card-head h3{font-size:19px;margin:8px 0 0}.member-count{background:#edf2e9;border-radius:20px;padding:7px 10px;white-space:nowrap;color:#5f735f;font-size:12px}.class-verification{margin-top:14px}.class-note{font-size:12px;line-height:1.6;color:#7c887e;margin:7px 0 12px}.add-member-form{display:grid;grid-template-columns:.8fr 1fr auto;gap:8px}.add-member-form button{border:0;border-radius:6px;background:#3d765b;color:#fff;padding:0 15px;min-height:46px;font:600 13px var(--sans);cursor:pointer}.add-member-form button:disabled{opacity:.6}.member-list-wrap{border-top:1px solid #e8ede6;margin-top:16px;padding-top:13px}.member-list-title{font-size:13px;font-weight:700;color:#44574a;margin-bottom:8px}.member-list{display:grid;gap:7px}.member-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;background:#f4f6f2;border-radius:7px;padding:9px 11px}.member-identity strong,.member-identity span{display:block}.member-identity strong{font-size:13px}.member-identity span{font:11px var(--mono);color:#7b897f;margin-top:3px}.code-state{font-size:11px;color:#89938a}.code-state.ready{color:#4d7953}.regenerate-code{min-height:36px;border:1px solid #d3dfd0;border-radius:5px;background:#fff;color:#496c4e;padding:0 10px;font:12px var(--sans);cursor:pointer}.regenerate-code:hover{border-color:#86a783}.empty-members,.loading-inline{font-size:12px;color:#89948b;padding:8px}.code-dialog{width:min(100% - 32px,450px);border:1px solid #dbe5d8;border-radius:12px;padding:24px;background:#fbfcfa;color:var(--ink);box-shadow:0 22px 65px #17231f30}.code-dialog::backdrop{background:#14251cb0}.code-dialog h2{font-size:20px;margin:11px 0 6px}.code-dialog p{font-size:13px;line-height:1.7;color:#718075}.generated-code{font:700 28px var(--mono);letter-spacing:.12em;text-align:center;background:#edf3e9;border:1px dashed #b6cba9;border-radius:8px;padding:16px;margin:15px 0;color:#345e40}.dialog-actions{display:flex;gap:9px}.dialog-actions button{flex:1;min-height:45px;border:1px solid #d7e2d4;border-radius:6px;background:#fff;color:#46674a;font:600 13px var(--sans);cursor:pointer}.dialog-actions button:last-child{background:#3d765b;color:#fff;border-color:#3d765b}.code-dialog>small{display:block;color:#8a948b;font-size:11px;line-height:1.6;margin-top:12px}
@media(max-width:760px){.module-group .route-card{min-height:148px}.module-group .route-card h3{font-size:13px}.module-group .route-card p{font-size:10px}.auth-shell{padding-top:20px}.auth-card{padding:24px 19px}.auth-card h1{font-size:24px}.teacher-top{height:60px;padding:0 14px}.teacher-user{font-size:11px;gap:8px}.teacher-user button{padding:8px}.teacher-main{width:min(100% - 28px,1100px);padding-top:25px}.teacher-welcome h1{font-size:25px}.teacher-welcome p{font-size:14px}.create-class-card{padding:16px}.create-class-card form{grid-template-columns:1fr;gap:9px}.create-class-card .auth-submit{width:100%}.classes-section .section-heading{align-items:flex-start}.refresh-button{padding:8px;font-size:12px}.teacher-class-card{padding:14px}.class-card-head{align-items:flex-start}.class-code-value{font-size:16px}.class-card-head h3{font-size:17px}.member-count{font-size:11px}.add-member-form{grid-template-columns:1fr}.add-member-form input{width:100%}.add-member-form button{min-height:48px}.member-row{grid-template-columns:1fr auto;gap:6px}.member-identity{grid-column:1}.code-state{grid-column:1}.regenerate-code{grid-column:2;grid-row:1/3}.toggle-label{font-size:14px}}
.student-signup{min-height:46px;border:1px solid #dce5da;border-radius:6px;background:#fff;color:#46674a;font:600 14px var(--sans);cursor:pointer}.student-signup:hover{background:#f3f7ef}.student-signup:disabled{opacity:.6;cursor:wait}.topbar-actions{display:flex;align-items:center;gap:10px}.logout-button{min-height:36px;padding:0 12px;border:1px solid #dce5da;border-radius:6px;background:#fff;color:#496750;font:600 12px var(--sans);cursor:pointer}.logout-button:hover{border-color:#91ae8c}.lesson-dialog{width:min(100% - 32px,900px);max-height:min(86vh,900px);border:1px solid #dbe5d8;border-radius:12px;padding:0;background:#fbfcfa;color:var(--ink);box-shadow:0 22px 65px #17231f30}.lesson-dialog::backdrop{background:#14251cb0}.lesson-dialog-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 25px 14px;background:#fbfcfa;border-bottom:1px solid #e6ece3}.lesson-dialog-head h2{font-size:21px;margin:7px 0 3px}.lesson-dialog-head p{font-size:11px;color:#88938a;margin:0;overflow-wrap:anywhere}.lesson-close{flex:0 0 auto;min-height:40px;padding:0 13px;border:1px solid #dce5da;border-radius:6px;background:white;color:#496750;font:600 13px var(--sans);cursor:pointer}.markdown-reader{padding:14px 26px 28px;font-size:15px;line-height:1.85;color:#405046;overflow:auto}.markdown-reader h2,.markdown-reader h3,.markdown-reader h4,.markdown-reader h5{color:#294b35;line-height:1.4;margin:23px 0 9px}.markdown-reader h2{font-size:21px}.markdown-reader h3{font-size:18px}.markdown-reader h4,.markdown-reader h5{font-size:16px}.markdown-reader p{margin:9px 0 14px}.markdown-reader ul{padding-left:25px}.markdown-reader li{padding-left:3px;margin:5px 0}.markdown-reader code{font:13px/1.7 var(--mono);background:#edf2e9;border-radius:4px;padding:2px 5px;overflow-wrap:anywhere}.markdown-reader pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#17231f;color:#e7efdf;padding:15px;border-radius:7px;overflow:auto}.markdown-reader pre code{padding:0;background:none;color:inherit}.markdown-reader blockquote{border-left:3px solid #95b680;padding:4px 13px;margin:12px 0;color:#637664;background:#f2f6ef}.markdown-reader img{max-width:100%;height:auto;border-radius:7px}.route-card{cursor:pointer;font:inherit;text-align:left}.route-card:focus-visible,.logout-button:focus-visible,.lesson-close:focus-visible,.student-signup:focus-visible{outline:3px solid #c8dcb9;outline-offset:2px}
@media(max-width:760px){.topbar-actions{gap:6px}.logout-button{min-height:34px;padding:0 8px}.lesson-dialog{width:calc(100% - 18px);max-height:92vh}.lesson-dialog-head{padding:15px 15px 11px}.lesson-dialog-head h2{font-size:18px}.lesson-close{min-height:38px}.markdown-reader{padding:10px 16px 22px;font-size:14px}.markdown-reader pre{padding:12px}.auth-card .student-signup{font-size:13px}}
.member-row{grid-template-columns:1fr auto auto auto}.member-status-toggle{min-height:36px;border:1px solid #e3d6d0;border-radius:5px;background:#fff8f5;color:#89594a;padding:0 10px;font:12px var(--sans);cursor:pointer}.member-status-toggle:hover{border-color:#c99885}.member-status-toggle:disabled{opacity:.6}.member-disabled{background:#f4f1ee}.member-disabled .member-identity{opacity:.65}
.markdown-table-wrap{max-width:100%;overflow:auto;margin:14px 0}.markdown-reader table{width:100%;border-collapse:collapse;font-size:13px}.markdown-reader th,.markdown-reader td{border:1px solid #dfe7dc;padding:8px 10px;text-align:left;vertical-align:top}.markdown-reader th{background:#edf3e9;color:#35573e}
@media(max-width:760px){.member-row{grid-template-columns:1fr auto}.member-status-toggle{grid-column:1/-1;min-height:42px}}
.quests-first{padding-top:24px;padding-bottom:27px;border-bottom:1px solid var(--line)}.quests-first .quest-heading h2{font-size:clamp(23px,2.5vw,30px);letter-spacing:-.04em;margin:8px 0 0}
/* Accessible, hands-on lesson cards */
.section-aside #learning-progress{display:inline-block;padding:7px 11px;border-radius:999px;background:#e7efe1;color:#466b4c;font-weight:700}
.route-card.is-complete{border-color:#9ebd91;background:#f4f8ef}.route-card.is-complete .route-arrow{color:#477b4e;font-weight:700}
.code-library{display:grid;gap:10px}.code-day-group{border:1px solid #dfe7dc;border-radius:9px;background:#fbfcfa;overflow:hidden}.code-day-group>summary{min-height:58px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:#315a40;list-style:none}.code-day-group>summary::-webkit-details-marker{display:none}.code-day-group>summary::after{content:'＋';font-size:18px;color:#7a9870}.code-day-group[open]>summary::after{content:'−'}.code-day-group>summary strong{font-size:14px}.code-day-group>summary span{margin-left:auto;color:#78837d;font-size:12px}.code-day-group[open]>summary{border-bottom:1px solid #e8eee5;background:#f2f6ef}.code-day-group .route-grid{padding:14px;margin:0}.code-day-group .route-number{font-size:9px}.code-library-empty{color:#78837d;padding:12px}.code-library-group .module-label small{max-width:680px;line-height:1.7}.code-day-group>summary:focus-visible{outline:3px solid #c8dcb9;outline-offset:-3px}
.roster-actions{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0}.roster-actions button,.selection-actions button{min-height:40px;padding:0 12px;border:1px solid #d6e1d2;border-radius:6px;background:#fff;color:#496c4e;font:600 13px var(--sans);cursor:pointer}.roster-actions button:hover,.selection-actions button:hover{border-color:#8bad86}.roster-actions button:disabled{opacity:.5;cursor:not-allowed}.batch-member-form{display:grid;gap:7px;padding:14px;margin:12px 0;border:1px solid #e1e9dd;border-radius:8px;background:#f7f9f5}.batch-member-form label{font-size:14px;font-weight:700;color:#43584a}.batch-member-form p,.roster-privacy-note{margin:0;color:#78857a;font-size:12px;line-height:1.6}.batch-member-form textarea{width:100%;min-height:95px;padding:11px 12px;border:1px solid #dce4da;border-radius:6px;background:#fff;color:#27382c;font:14px/1.7 var(--sans);resize:vertical}.batch-member-form textarea:focus,.schedule-edit-row input:focus,.schedule-edit-row textarea:focus{outline:2px solid #c8dcb9;border-color:#6c9872}.batch-member-form button,.save-learning-settings{justify-self:start;min-height:43px;padding:0 16px;border:0;border-radius:6px;background:#3d765b;color:#fff;font:600 14px var(--sans);cursor:pointer}.batch-member-form button:disabled,.save-learning-settings:disabled{opacity:.6;cursor:wait}.class-learning-settings{margin:14px 0;border:1px solid #dfe7dc;border-radius:8px;background:#fff}.class-learning-settings>summary{min-height:50px;padding:13px 15px;display:flex;align-items:center;cursor:pointer;color:#345c42;font-size:14px;font-weight:700}.class-learning-settings>summary::marker{color:#62865a}.class-learning-body{display:grid;gap:24px;padding:15px;border-top:1px solid #e8eee5}.settings-subhead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.settings-subhead strong{font-size:14px;color:#43584a}.settings-subhead p{margin:4px 0 0;color:#78857a;font-size:12px;line-height:1.6}.selection-actions{display:flex;gap:6px;flex-shrink:0}.selection-actions button{min-height:34px;font-size:12px}.course-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:460px;overflow:auto;padding:2px}.course-unit-group{min-width:0;margin:0;padding:9px;border:1px solid #e3e9e1;border-radius:7px}.course-unit-group legend{padding:0 5px;color:#56735a;font-size:12px;font-weight:700}.course-unit-option{display:flex;align-items:flex-start;gap:8px;padding:7px 5px;border-radius:5px;cursor:pointer}.course-unit-option:hover{background:#f3f6f0}.course-unit-option input{width:18px;height:18px;flex:0 0 auto;margin:2px 0 0;accent-color:#477b59}.course-unit-option strong,.course-unit-option small{display:block}.course-unit-option strong{font-size:12px;line-height:1.5;color:#3d5142}.course-unit-option small{margin-top:2px;color:#89938b;font-size:10px;line-height:1.5}.custom-schedule-toggle{display:flex;align-items:center;gap:7px;font-size:12px;color:#4d654f;white-space:nowrap}.custom-schedule-toggle input{width:17px;height:17px;accent-color:#477b59}.schedule-editor{display:grid;gap:8px}.schedule-editor.is-disabled{opacity:.55;pointer-events:none}.schedule-edit-row{display:grid;grid-template-columns:80px 160px 170px minmax(220px,1fr);align-items:start;gap:8px;padding:9px;border:1px solid #e6ece3;border-radius:6px;background:#f8faf7}.schedule-index{padding-top:25px;color:#607361;font-size:12px;font-weight:700}.schedule-edit-row label{display:grid;gap:4px;color:#758276;font-size:11px}.schedule-edit-row input,.schedule-edit-row textarea{width:100%;min-height:38px;padding:7px 8px;border:1px solid #dce4da;border-radius:5px;background:#fff;color:#334338;font:13px var(--sans)}.schedule-edit-row textarea{resize:vertical;line-height:1.55}.save-learning-settings{margin-top:3px}.member-code-column{display:grid;gap:3px}.member-verification-code{font:12px var(--mono);letter-spacing:.08em;color:#3d6544;overflow-wrap:anywhere}.missing-member-code{font-size:11px;color:#a16a35}.roster-privacy-note{margin:-3px 0 9px}.member-row{grid-template-columns:minmax(130px,1fr) minmax(135px,auto) auto auto auto}.copy-student-code{min-height:36px;padding:0 9px;border:1px solid #d3dfd0;border-radius:5px;background:#fff;color:#496c4e;font:12px var(--sans);cursor:pointer}
.brand-mark{font-size:10px;letter-spacing:-.06em}.brand>span:last-child{line-height:1.35}.brand small{max-width:220px;white-space:normal;line-height:1.4}
@media(max-width:900px){.member-row{grid-template-columns:1fr 1fr;gap:8px}.member-identity{grid-column:1}.member-code-column{grid-column:2}.member-row button{min-height:40px}.schedule-edit-row{grid-template-columns:70px minmax(130px,1fr) minmax(130px,1fr)}.schedule-topic{grid-column:2/4}.course-picker{grid-template-columns:1fr}}
@media(max-width:600px){.settings-subhead{display:grid}.selection-actions{justify-content:flex-start}.custom-schedule-toggle{white-space:normal}.schedule-edit-row{grid-template-columns:1fr 1fr}.schedule-index{grid-column:1/3;padding:0}.schedule-topic{grid-column:1/3}.member-row{grid-template-columns:1fr 1fr}.member-identity,.member-code-column{grid-column:1/3}.member-row button{grid-column:auto}.roster-actions button{flex:1}.class-learning-body{padding:11px}.course-picker{max-height:360px}}
.learning-workshop{max-width:820px;margin:0 auto;padding:3px 0 25px}.lesson-goal,.example-card,.practice-card{border:1px solid #e1e9dc;border-radius:12px;background:#fff;padding:20px;margin:12px 0}.lesson-goal{background:#edf4e8;border-color:#dce8d5}.lesson-goal h3{font-size:21px;line-height:1.5;color:#34583d;margin:7px 0}.lesson-goal p{font-size:16px;line-height:1.9;margin:0;color:#516258}.lesson-block{margin:26px 0}.lesson-block-heading{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px}.step-badge{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#dfead5;color:#3f6945;font-weight:800;font-size:17px}.lesson-block-heading h3{font-size:19px;margin:0 0 3px;color:#304a38}.lesson-block-heading p{font-size:14px;line-height:1.7;color:#77847a;margin:0}.example-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.example-head h3{font-size:17px;margin:5px 0 0;color:#304a38}.example-language{font-size:12px;color:#718071;background:#f0f4ed;padding:6px 9px;border-radius:999px}.example-card pre{white-space:pre;overflow:auto;background:#17231f;color:#e7efdf;padding:16px;border-radius:8px;font-size:14px;line-height:1.75}.copy-code,.activity-hint{min-height:46px;border:1px solid #d5e2cf;border-radius:8px;background:#f8fbf5;color:#466b4c;padding:0 15px;font:600 14px var(--sans);cursor:pointer}.hands-on-steps{padding-left:30px;font-size:16px;line-height:1.9;color:#46574b}.hands-on-steps li{padding:2px 0 5px 4px}.learning-checklist{display:grid;gap:8px;margin:15px 0;padding:14px;background:#f7f9f5;border-radius:9px}.learning-checklist label{display:flex;align-items:center;gap:12px;min-height:46px;font-size:16px;cursor:pointer}.learning-checklist input{width:22px;height:22px;accent-color:#528052}.practice-card{background:#f7f9f5;border-color:#e1e9dc}.practice-question{font-size:18px;font-weight:700;line-height:1.7;color:#304a38}.activity-options{display:grid;gap:9px}.activity-option{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:10px 14px;text-align:left;border:1px solid #dce5d8;border-radius:9px;background:#fff;color:#34483a;font:500 16px/1.6 var(--sans);cursor:pointer}.activity-option>span{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#edf3e8;color:#416b47;font-weight:800}.activity-option:hover:not(:disabled){border-color:#91b47f;background:#f6faf2}.activity-option:disabled{opacity:.7;cursor:default}.activity-feedback{min-height:52px;padding:13px 14px;margin:13px 0 8px;border-radius:8px;background:#edf2e9;color:#506450;font-size:15px;line-height:1.7}.activity-feedback.is-correct{background:#e5f2dc;color:#315e36}.activity-feedback.is-try-again{background:#fff3de;color:#765928}.activity-hint-text{padding:12px 14px;border-left:4px solid #d5ad5d;background:#fff8e9;color:#66582f;font-size:15px;line-height:1.7}.lesson-references{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:20px 0;padding:16px;border-top:1px solid #e4eae1}.lesson-references strong{width:100%;color:#526452}.lesson-references a{display:inline-block;min-height:42px;padding:9px 12px;border-radius:7px;background:#edf3e9;color:#426449;text-decoration:none}.source-details{border-top:1px solid #e2e9df;padding-top:16px;margin-top:24px}.source-details summary{min-height:48px;display:flex;align-items:center;cursor:pointer;color:#60715f;font-weight:700;font-size:15px}.source-markdown{border-left:3px solid #e0e9d9;padding-left:15px;margin-top:12px}.markdown-reader .source-markdown{font-size:14px}.learning-workshop button:focus-visible,.learning-workshop a:focus-visible,.learning-workshop input:focus-visible{outline:3px solid #b8d59f;outline-offset:2px}
@media(max-width:760px){.lesson-goal,.example-card,.practice-card{padding:15px}.lesson-goal h3{font-size:19px}.lesson-goal p,.hands-on-steps,.learning-checklist label{font-size:15px}.lesson-block-heading h3{font-size:17px}.practice-question{font-size:17px}.activity-option{font-size:15px}.example-head{flex-direction:column}.section-aside #learning-progress{font-size:12px}}
.curriculum-section{margin:26px 0}.curriculum-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.curriculum-list li{padding:14px 16px;border:1px solid #e2e9de;border-radius:9px;background:#fff}.curriculum-session-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.curriculum-session-meta strong{font-size:15px;color:#3c6444}.curriculum-session-meta span{font:12px var(--mono);color:#718071}.curriculum-list p{font-size:15px;line-height:1.75;color:#4b5d50;margin:7px 0 0}.curriculum-list li:nth-child(odd){background:#f8faf6}@media(max-width:760px){.curriculum-session-meta{align-items:flex-start;flex-direction:column;gap:3px}.curriculum-session-meta span{font-size:12px}.curriculum-list p{font-size:14px}}
/* Keep Python/C++ indentation visible and consistent across every lesson code block. */
.learning-workshop pre,.markdown-code-block pre,.code-panel pre{white-space:pre;overflow-x:auto;overflow-y:hidden;overflow-wrap:normal;tab-size:4;-moz-tab-size:4}
.markdown-code-block{margin:14px 0 18px}.markdown-code-block pre{background:#17231f;color:#e7efdf;padding:15px;border-radius:7px;font:13px/1.75 var(--mono)}.markdown-code-block pre code{padding:0;background:none;color:inherit;white-space:inherit}.markdown-code-block .copy-code{margin-top:8px}
.answer-option{align-items:flex-start}.answer-option .option-letter{flex:0 0 30px}.answer-option code{display:block;flex:1;min-width:0;max-width:calc(100% - 42px);white-space:pre;overflow-x:auto;tab-size:4;font-size:13px;line-height:1.65}
.code-panel .copy-code{margin:0 14px 10px;min-height:40px;border-color:#52685a;background:#293d34;color:#e2eddc}.code-panel .copy-code:hover{background:#354f42}
.program-output{margin:16px 0 22px;padding:17px 19px;border:1px solid #dce7d6;border-radius:10px;background:#f2f7ed}.program-output strong{display:block;margin-bottom:11px;color:#426347;font-size:14px}.program-output pre{margin:0;overflow-x:auto;white-space:pre;tab-size:4;font:600 16px/1.65 var(--mono);color:#263f30}
.team-arena{margin-top:24px;padding:20px;border:1px solid #dce5d8;border-radius:12px;background:linear-gradient(135deg,#f8faf5,#f1f4eb)}.team-arena-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.team-arena-heading h3{font-size:21px;margin:6px 0}.team-arena-heading p{max-width:650px;margin:0;color:#657369;font-size:14px;line-height:1.75}.team-badge{flex:0 0 auto;padding:8px 11px;border-radius:20px;background:#e7eedf;color:#4f6c4d;font-size:12px;font-weight:700}.team-controls{display:flex;align-items:center;gap:9px;margin-top:16px;flex-wrap:wrap}.team-controls label,.team-join-form label{font-size:13px;font-weight:700;color:#45584a}.team-controls select,.team-join-form input{min-height:44px;border:1px solid #d9e2d6;border-radius:7px;background:white;color:#34483a;padding:0 11px;font:14px var(--sans)}.team-controls select{min-width:170px}.team-primary,.team-secondary{min-height:44px;border-radius:7px;padding:0 14px;font:600 13px var(--sans);cursor:pointer;touch-action:manipulation}.team-primary{border:0;background:#3d765b;color:#fff}.team-primary:hover:not(:disabled){background:#2f6147}.team-primary:disabled{opacity:.5;cursor:not-allowed}.team-secondary{border:1px solid #d4dfd1;background:#fff;color:#4e694f}.team-secondary:hover{border-color:#89a980;background:#f7faf3}.team-join-form{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #e1e8dd}.team-join-form input{width:140px;text-transform:uppercase}.team-join-form span{flex:1 1 100%;min-height:20px;font-size:13px;color:#4d7154}.team-join-form span.is-error{color:#a14e40}.team-room-list{display:grid;gap:8px;margin-top:13px}.team-muted{display:block;padding:12px;border-radius:7px;background:#fff;color:#758177;font-size:13px;line-height:1.6}.team-room-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #e2e9df;border-radius:8px;background:#fff}.team-room-row strong,.team-room-row span{display:block}.team-room-row strong{font-size:14px;color:#354d3c}.team-room-row span{margin-top:4px;font-size:12px;color:#728075}.team-room-row code,.team-room-top code{padding:2px 5px;border-radius:4px;background:#f0f4eb;color:#3c6948;font:600 12px var(--mono);letter-spacing:.08em}.team-room-card{margin-top:14px}.team-room-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 15px;border:1px solid #e0e7dd;border-bottom:0;border-radius:10px 10px 0 0;background:#fff}.team-room-top h4{margin:5px 0 0;font-size:17px}.team-room-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.team-room-actions .team-secondary{min-height:38px;padding:0 10px;font-size:12px}.fight-scene{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:center;gap:10px;min-height:218px;padding:18px;border:1px solid #e0e7dd;border-radius:0 0 10px 10px;background:radial-gradient(ellipse at 50% 40%,#fff 0,#f2f5ed 70%);overflow:hidden}.fight-side{min-width:0;padding:13px;border-radius:9px;background:#fff;border:1px solid #e5ebe2;box-shadow:0 5px 16px #304a3008}.fighter-row{display:flex;align-items:center;gap:9px;min-height:62px}.fighter-avatar{display:grid;place-items:center;flex:0 0 50px;height:50px;border-radius:50%;background:#e7efdc;font-size:30px;filter:drop-shadow(0 4px 2px #29422b20)}.boss-side .fighter-avatar{background:#f5e7df}.fighter-name{font-size:14px;font-weight:800;color:#3c4e40}.fighter-name small{display:block;margin-top:3px;color:#879187;font:10px var(--mono);letter-spacing:.05em}.fight-hp{height:14px;margin:9px 0 5px;border:2px solid #647d5f;border-radius:99px;background:#e8ece5;overflow:hidden}.fight-hp span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#90bd64,#4f965f);transition:width .55s cubic-bezier(.2,.8,.2,1)}.boss-hp{border-color:#9b5b4d}.boss-hp span{background:linear-gradient(90deg,#efb74f,#d95f47)}.fight-side>strong{font:700 12px var(--mono);color:#4c664e}.boss-side>strong{color:#99584b}.fight-center{display:grid;place-items:center;position:relative;color:#8b7653;font:800 13px var(--mono)}.impact-star{position:absolute;font-size:36px;color:#e3a94f;opacity:0;transform:scale(.3) rotate(-30deg)}.hit-boss .impact-star,.hit-team .impact-star,.victory-flash .impact-star{animation:impact-pop .55s ease-out}.party-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.party-member{padding:4px 7px;border-radius:20px;background:#f2f4f0;color:#78827a;font-size:10px}.party-member.is-online{background:#eaf3e3;color:#456c45}.boss-caption{margin-top:9px;color:#8a7069;font-size:11px}.hit-boss .boss-emoji{animation:boss-recoil .6s ease-in-out}.hit-team .team-side{animation:team-shake .4s ease-in-out}.hit-team .fighter-avatar:not(.boss-emoji){animation:team-flinch .45s ease-in-out}.victory-flash .boss-emoji{animation:boss-defeat .8s ease-in forwards}.team-question,.team-waiting,.team-finish{padding:18px 20px;border:1px solid #e0e7dd;border-top:0;border-radius:0 0 10px 10px;background:#fff}.team-question h4{font-size:19px;margin:9px 0 5px;color:#2f4937}.team-question .game-feedback{min-height:39px}.team-waiting,.team-finish{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:110px}.team-waiting strong,.team-finish strong{font-size:18px;color:#365740}.team-waiting span,.team-finish p{flex:1 1 100%;margin:0;color:#68766b;font-size:14px;line-height:1.7}.team-finish>span{font-size:36px}.team-waiting .team-primary{margin-left:auto}.team-room-row button:focus-visible,.team-arena button:focus-visible,.team-controls select:focus-visible,.team-join-form input:focus-visible{outline:3px solid #c6dc82;outline-offset:2px}
@keyframes impact-pop{0%{opacity:0;transform:scale(.3) rotate(-30deg)}35%{opacity:1;transform:scale(1.2) rotate(10deg)}100%{opacity:0;transform:scale(.7) rotate(30deg)}}@keyframes boss-recoil{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(13px) rotate(12deg)}55%{transform:translateX(-8px) rotate(-8deg)}}@keyframes team-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}65%{transform:translateX(5px)}}@keyframes team-flinch{50%{filter:brightness(1.5) drop-shadow(0 0 8px #e77750)}}@keyframes boss-defeat{0%{transform:scale(1)}70%{transform:scale(1.25) rotate(12deg);opacity:.9}100%{transform:scale(.4) rotate(40deg);opacity:.25}}
@media(max-width:760px){.team-arena{padding:15px}.team-arena-heading{flex-direction:column}.team-arena-heading h3{font-size:19px}.team-controls{align-items:stretch}.team-controls label{flex:1 1 100%}.team-controls select,.team-controls button{flex:1}.team-join-form{align-items:stretch}.team-join-form label{flex:1 1 100%}.team-join-form input{flex:1;width:auto}.team-join-form button{flex:1}.team-room-row{align-items:flex-start;flex-direction:column}.team-room-row button{width:100%}.team-room-top{flex-direction:column}.team-room-actions{justify-content:flex-start}.fight-scene{grid-template-columns:1fr 28px 1fr;gap:5px;min-height:190px;padding:9px}.fight-side{padding:8px}.fighter-avatar{flex-basis:38px;height:38px;font-size:24px}.fighter-name{font-size:12px}.fight-hp{height:12px}.fight-side>strong{font-size:10px}.party-member{font-size:9px}.team-question,.team-waiting,.team-finish{padding:14px}.team-waiting .team-primary{width:100%;margin:0}}
@media(prefers-reduced-motion:reduce){.monster-avatar,.fight-scene *{animation:none!important;transition:none!important}.impact-star{display:none}}
.lab-topics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:16px 0 11px}.lab-topic-button{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:9px;min-height:70px;padding:10px 12px;border:1px solid #dfe7dc;border-radius:8px;background:#fbfcfa;color:#3b5141;text-align:left;cursor:pointer;touch-action:manipulation;transition:border-color .16s,background .16s,transform .16s}.lab-topic-button:hover{border-color:#a2bd94;transform:translateY(-1px)}.lab-topic-button.is-active{border-color:#6f966d;background:#eaf2e5;box-shadow:inset 0 0 0 1px #6f966d}.lab-topic-button>span{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#eef3e9;color:#537650;font-size:18px}.lab-topic-button strong{font-size:12px}.lab-topic-button small{margin-top:2px;color:#7b887e;font-size:10px}.flow-step.is-updated{animation:flow-update .45s ease-out}.lab-card .code-panel pre{min-height:150px}.lab-card .code-panel pre code{color:inherit;font:inherit;white-space:pre}.lab-card .reading strong{transition:color .2s}.lab-topic-button:focus-visible{outline:3px solid #c6dc82;outline-offset:2px}@keyframes flow-update{0%{background:#e5f0d9;transform:translateX(4px)}100%{background:transparent;transform:translateX(0)}}
@media(max-width:1100px){.lab-topics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.lab-topics{gap:7px;margin:13px 0 9px}.lab-topic-button{min-height:66px;padding:8px;grid-template-columns:29px 1fr;column-gap:7px}.lab-topic-button>span{width:28px;height:28px;font-size:16px}.lab-topic-button strong{font-size:11px}.lab-topic-button small{font-size:9px}.lab-card .code-panel pre{min-height:unset}}
@media(prefers-reduced-motion:reduce){.flow-step.is-updated{animation:none}.lab-topic-button{transition:none}}
.class-learning-settings>summary small{margin-left:auto;color:#78857a;font-size:11px;font-weight:500}.course-settings-notice{display:grid;gap:5px;padding:12px 14px;border:1px solid #ead7a7;border-radius:7px;background:#fff9e8;color:#745d24;font-size:12px;line-height:1.7}.course-settings-notice strong{font-size:13px}.course-settings-notice code{font:11px var(--mono);overflow-wrap:anywhere}.course-settings-empty{grid-column:1/-1;padding:14px;border:1px dashed #d6e1d2;border-radius:6px;color:#78857a;font-size:13px}.save-learning-settings:disabled{cursor:not-allowed}
.schedule-edit-row{grid-template-columns:70px minmax(120px,.6fr) minmax(230px,1fr) minmax(220px,1fr) auto}.schedule-time-range{display:grid;grid-template-columns:minmax(85px,1fr) auto minmax(85px,1fr);align-items:end;gap:6px;min-width:0;margin:0;padding:0;border:0}.schedule-time-range legend{grid-column:1/-1;padding:0;color:#758276;font-size:11px}.schedule-time-range label{display:grid;gap:4px;color:#758276;font-size:11px}.schedule-time-range input{width:100%;min-width:0;min-height:38px;padding:7px 6px;border:1px solid #dce4da;border-radius:5px;background:#fff;color:#334338;font:13px var(--sans)}.schedule-time-separator{padding-bottom:10px;color:#78857a;font-size:11px}.schedule-remove-button,.schedule-add-button{min-height:38px;padding:0 11px;border:1px solid #d6e1d2;border-radius:6px;background:#fff;color:#496c4e;font:600 12px var(--sans);cursor:pointer}.schedule-remove-button{align-self:end}.schedule-add-button{margin-top:9px}.schedule-remove-button:hover,.schedule-add-button:hover{border-color:#8bad86;background:#f5f8f2}.schedule-remove-button:disabled,.schedule-add-button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:1100px){.schedule-edit-row{grid-template-columns:65px minmax(110px,.55fr) minmax(220px,1fr)}.schedule-topic{grid-column:2/4}.schedule-remove-button{grid-column:3;justify-self:end}}
@media(max-width:600px){.schedule-edit-row{grid-template-columns:1fr 1fr}.schedule-index{grid-column:1/3;padding:0}.schedule-time-range{grid-column:1/3}.schedule-topic{grid-column:1/3}.schedule-remove-button{grid-column:2;justify-self:end}}
.schedule-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.schedule-actions button{min-height:40px;padding:0 12px;border:1px solid #d6e1d2;border-radius:6px;background:#fff;color:#496c4e;font:600 12px var(--sans);cursor:pointer}.schedule-actions button:hover{border-color:#8bad86;background:#f5f8f2}.schedule-actions button:disabled{opacity:.5;cursor:not-allowed}
.code-prompt{white-space:pre-wrap;overflow-wrap:anywhere;padding:13px 15px;border:1px solid #e0e7dd;border-radius:7px;background:#f4f7f1;color:#304539;font:14px/1.8 var(--mono)}.fill-answer-form{margin:10px 0 12px;padding:13px;border:1px solid #dfe7dc;border-radius:8px;background:#f7f9f5}.fill-answer-form>label{display:block;margin-bottom:7px;color:#465d49;font-size:13px;font-weight:700}.fill-answer-controls{display:flex;gap:8px}.fill-answer-controls input{flex:1;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #d4dfd0;border-radius:7px;background:#fff;color:#26382d;font:15px/1.5 var(--mono)}.fill-answer-controls input:focus-visible{outline:3px solid #c6dc82;outline-offset:1px}.fill-answer-controls button{min-width:112px;min-height:48px;padding:0 14px;border:0;border-radius:7px;background:#3d765b;color:#fff;font:600 14px var(--sans);cursor:pointer}.fill-answer-controls button:hover:not(:disabled){background:#315f49}.fill-answer-controls button:disabled{opacity:.6;cursor:default}
@media(max-width:600px){.fill-answer-controls{display:grid;grid-template-columns:1fr}.fill-answer-controls button{width:100%;min-height:50px}}

.lab-card #lab-code-samples{max-height:510px;overflow:auto}.lab-card .code-sample+.code-sample{border-top:1px solid #34413b;margin-top:4px}.code-sample-heading{display:flex;justify-content:space-between;align-items:center;padding:9px 13px 0;color:#dce6d8;font-size:10px}.code-sample-heading span{font:8px var(--mono);color:#b1d17a;letter-spacing:.08em}.lab-card .code-sample pre{min-height:unset}.lab-card .code-sample .copy-code{margin-bottom:10px}

.teacher-course-cards{margin:28px 0;padding:24px;border:1px solid #e0e7dd;border-radius:12px;background:#fbfcfa}
.teacher-course-cards .section-heading{margin-bottom:18px}
.teacher-course-cards .section-heading p{max-width:720px;margin:6px 0 0;color:#77847a;font-size:13px;line-height:1.7}
.course-card-form{display:grid;gap:15px}
.course-card-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.course-card-fields>label,.course-card-quiz-fields>label,.markdown-editor-label{display:grid;gap:7px;color:#46584a;font-size:13px;font-weight:700}
.course-card-fields input,.course-card-fields select,.course-card-quiz-fields input,.course-card-quiz-fields textarea,.markdown-editor-label textarea{width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid #d7e1d4;border-radius:7px;background:#fff;color:#26382d;font:14px/1.6 var(--sans)}
.course-card-fields input[type=file]{padding:8px;font-size:12px}
.course-card-fields small{color:#849086;font-size:11px;font-weight:400;line-height:1.6}
.markdown-editor-label textarea,.course-card-quiz-fields textarea{font:13px/1.7 var(--mono);resize:vertical}
.markdown-editor-label textarea{min-height:280px;white-space:pre;tab-size:4}
.course-card-writing-guide,.course-card-quiz{padding:12px 14px;border:1px solid #e1e8de;border-radius:8px;background:#f5f8f3}
.course-card-writing-guide summary,.course-card-quiz summary{min-height:38px;display:flex;align-items:center;cursor:pointer;color:#46634a;font-weight:700}
.course-card-writing-guide p{margin:9px 0;color:#627267;font-size:12px;line-height:1.8}
.course-card-writing-guide button{min-height:40px;padding:0 12px;border:1px solid #d6e1d2;border-radius:6px;background:#fff;color:#496c4e;font:600 12px var(--sans);cursor:pointer}
.course-card-quiz-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.course-card-submit-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.course-card-submit-row .auth-submit{min-height:48px;padding:0 22px}
#course-card-message{color:#607064;font-size:12px;line-height:1.6}
.teacher-course-card-list{margin-top:20px;padding-top:16px;border-top:1px solid #e5ebe2}
.teacher-course-card-list h3{margin:0 0 9px;color:#355541;font-size:15px}
.teacher-course-card-row{padding:11px 12px;border:1px solid #e1e8de;border-radius:7px;background:#fff;margin-top:7px}
.teacher-course-card-row>div{display:grid;gap:4px}
.teacher-course-card-row span,.teacher-course-card-row small{color:#819084;font-size:11px}
.teacher-course-card-row strong{color:#314937;font-size:13px}
.course-unit-option{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.65fr);align-items:center;gap:10px;padding:9px 7px;border-bottom:1px solid #edf0eb}
.course-unit-check{display:flex;align-items:flex-start;gap:8px;min-width:0;cursor:pointer}
.course-unit-check input{flex:0 0 auto;margin:3px 0 0;accent-color:#4d7b5d}
.course-unit-check>span{display:grid;gap:3px;min-width:0}
.course-unit-check strong{color:#35483a;font-size:12px;line-height:1.5}
.course-unit-check small{color:#828e84;font-size:10px;line-height:1.5}
.course-unit-layout-controls{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:7px}
.course-unit-layout-controls label{display:grid;gap:4px;color:#839084;font-size:10px}
.course-unit-layout-controls select,.course-unit-layout-controls input{width:100%;min-width:0;min-height:36px;padding:5px 7px;border:1px solid #dce5d8;border-radius:5px;background:#fff;color:#405345;font:11px var(--sans)}
.course-unit-layout-controls :disabled{opacity:.55;background:#f3f5f2}
.teacher-markdown-content{padding:18px 20px;border:1px solid #e3e9df;border-radius:10px;background:#fff;color:#435448;font-size:15px;line-height:1.85}
.teacher-markdown-content h3,.teacher-markdown-content h4,.teacher-markdown-content h5{color:#31533a;line-height:1.5;margin:1.2em 0 .5em}
.teacher-markdown-content pre{max-width:100%;overflow:auto;padding:14px;border-radius:8px;background:#17231f;color:#e7efdf;font:13px/1.75 var(--mono);white-space:pre}
.teacher-markdown-content ul,.teacher-markdown-content ol{padding-left:24px}
@media(max-width:760px){.teacher-course-cards{padding:16px}.course-card-fields,.course-card-quiz-fields{grid-template-columns:1fr}.course-unit-option{grid-template-columns:1fr;gap:8px}.course-unit-layout-controls{grid-template-columns:minmax(0,1fr) 86px}.teacher-markdown-content{padding:15px;font-size:14px}}

/* Keep expanded code-library cards evenly sized and consistently aligned. */
.code-day-group .route-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));grid-auto-rows:minmax(205px,1fr);align-items:stretch;gap:14px}
.code-day-group .route-card{display:flex;width:100%;height:100%;min-height:205px;flex-direction:column;align-items:stretch}
.code-day-group .route-card h3{min-height:3em}
.code-day-group .route-card p{flex:1}
.code-day-group .route-card .route-tag{align-self:flex-start;margin-top:12px}
.class-resources-section{border-top:1px solid var(--line)}.resources-intro{margin:8px 0 0;color:#77847a;font-size:13px;line-height:1.7}.class-resources-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.class-resource-card{display:flex;align-items:flex-start;gap:13px;min-width:0;padding:17px 18px;border:1px solid #e1e8de;border-radius:9px;background:#fff;color:#34483a;text-decoration:none;transition:border-color .18s,transform .18s}.class-resource-card:hover{border-color:#9ab895;transform:translateY(-2px)}.class-resource-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#edf3e9;color:#52785a;font-size:18px}.class-resource-copy{display:grid;gap:5px;min-width:0}.class-resource-copy strong{font-size:15px}.class-resource-copy small{font-size:12px;line-height:1.6;color:#77847a}.class-resource-copy code{overflow-wrap:anywhere;color:#8a958e;font:10px/1.6 var(--mono)}.class-resources-empty{grid-column:1/-1;margin:0;padding:18px 20px;border:1px dashed #d5dfd2;border-radius:8px;background:#f9fbf7;color:#78867a;font-size:13px;line-height:1.7}.class-resources-settings{margin:20px 0;padding:20px;border:1px solid #e0e8dd;border-radius:9px;background:#f8faf6}.class-resource-rows{display:grid;gap:9px}.class-resource-row{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(220px,1.4fr) minmax(150px,1fr) auto;align-items:end;gap:8px;padding:12px;border:1px solid #e2e9df;border-radius:7px;background:#fff}.class-resource-row label,.student-nav-order-editor label{display:grid;gap:5px;color:#607164;font-size:11px}.class-resource-row input,.student-nav-order-editor select{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid #d7e1d4;border-radius:6px;background:#fff;color:#26382d;font:12px/1.5 var(--sans)}.class-resource-row button,.resource-add-button{min-height:40px;padding:0 12px;border:1px solid #d7e1d4;border-radius:6px;background:#fff;color:#546d57;font:600 12px var(--sans);cursor:pointer}.class-resource-row button:hover,.resource-add-button:hover{border-color:#91ae8c;background:#f5f8f2}.resource-add-button{margin-top:10px}.student-nav-order-editor{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:20px;padding-top:15px;border-top:1px solid #e3e9e1}.student-nav-order-editor>strong,.student-nav-order-editor>p{grid-column:1/-1}.student-nav-order-editor>strong{font-size:13px;color:#405b46}.student-nav-order-editor>p{margin:-5px 0 2px;color:#7b887d;font-size:11px}.resource-save-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}.save-resource-settings{min-height:44px;padding:0 16px;border:0;border-radius:6px;background:#47775b;color:#fff;font:600 12px var(--sans);cursor:pointer}.save-resource-settings:disabled{opacity:.6;cursor:wait}.resource-message{font-size:11px;line-height:1.6;color:#607064}@media(max-width:760px){.class-resources-list{grid-template-columns:1fr}.class-resource-row{grid-template-columns:1fr}.student-nav-order-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.student-nav-order-editor>strong,.student-nav-order-editor>p{grid-column:1/-1}}
.learning-layout{display:contents}
.teacher-markdown-content .lesson-image,.markdown-reader .lesson-image{display:block;max-width:min(100%,760px);max-height:70vh;height:auto;object-fit:contain;margin:18px auto;border:1px solid #e2e9df;border-radius:9px;background:#f7f9f5}.teacher-markdown-content p:has(.lesson-image),.markdown-reader p:has(.lesson-image){margin:16px 0 22px}
.teacher-course-card-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.teacher-course-card-row>div{min-width:0}.edit-teacher-course-card,.course-card-cancel-edit{flex:0 0 auto;min-height:40px;padding:0 13px;border:1px solid #d6e1d2;border-radius:6px;background:#fff;color:#496c4e;font:600 12px var(--sans);cursor:pointer}.edit-teacher-course-card:hover,.course-card-cancel-edit:hover{border-color:#91ae8c;background:#f5f8f2}.edit-teacher-course-card:disabled{opacity:.55;cursor:wait}.course-card-cancel-edit[hidden]{display:none}
.site-attribution{font-size:10px;letter-spacing:.01em;color:#8b958d}.teacher-attribution{width:min(100% - 40px,1100px);margin:-34px auto 22px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;color:#8b958d;font-size:11px;line-height:1.7}.teacher-attribution b{margin:0 6px;color:#b6c3b3}@media(max-width:760px){.teacher-attribution{width:min(100% - 28px,1100px);margin-top:-28px;justify-content:flex-start}.site-attribution{font-size:9px}}
.teacher-course-content{margin:24px 0;padding:22px;border:1px solid #e0e7dd;border-radius:11px;background:#fbfcfa}.teacher-course-content .section-heading{margin-bottom:15px}.teacher-course-content .section-heading p{max-width:800px;margin:7px 0 0;color:#77847a;font-size:13px;line-height:1.75}.course-content-search-label{display:grid;grid-template-columns:auto minmax(200px,1fr);align-items:center;gap:12px;margin:16px 0;color:#55685a;font-size:12px;font-weight:700}.course-content-search-label input{min-height:42px;padding:8px 11px;border:1px solid #d7e1d4;border-radius:6px;background:white;color:#26382d;font:13px var(--sans)}.teacher-course-content-list{display:grid;gap:8px}.teacher-content-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid #e1e8de;border-radius:8px;background:#fff}.teacher-content-copy{display:grid;gap:4px;min-width:0}.teacher-content-copy>span,.teacher-content-copy small{color:#819084;font-size:11px;line-height:1.6;overflow-wrap:anywhere}.teacher-content-copy strong{color:#314937;font-size:14px}.teacher-content-copy em{color:#8b958d;font-size:10px;font-style:normal}.teacher-content-copy em.is-edited{color:#547e54;font-weight:700}.course-content-dialog{width:min(100% - 30px,1000px);max-height:92vh;border:1px solid #dbe5d8;border-radius:12px;padding:0;background:#fbfcfa;color:var(--ink);box-shadow:0 22px 65px #17231f30}.course-content-dialog::backdrop{background:#14251cb0}.course-content-editor{padding:16px 22px 22px}.course-content-editor-note{margin:0 0 12px;color:#718075;font-size:12px;line-height:1.7}.course-content-editor textarea{display:block;width:100%;min-height:55vh;max-height:68vh;resize:vertical;padding:16px;border:1px solid #d7e1d4;border-radius:8px;background:#fff;color:#24372b;font:13px/1.75 var(--mono);tab-size:4;white-space:pre;overflow:auto}.course-content-editor-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.course-content-editor-actions>div{display:flex;align-items:center;gap:9px}.course-content-editor-actions .auth-submit{min-height:42px;padding:0 17px}.course-content-message{font-size:12px;line-height:1.6;color:#607064}.course-content-message.success-message{color:#446c47}.course-content-message.error-message{color:#9a4444}@media(max-width:760px){.teacher-course-content{padding:15px}.course-content-search-label{grid-template-columns:1fr;gap:6px}.teacher-content-row{align-items:flex-start}.teacher-content-copy strong{font-size:13px}.teacher-content-row .edit-teacher-course-card{padding:0 9px}.course-content-dialog{width:calc(100% - 14px);max-height:96vh}.course-content-editor{padding:12px}.course-content-editor textarea{min-height:58vh;max-height:70vh;font-size:12px}.course-content-editor-actions{align-items:flex-start;flex-direction:column}.course-content-editor-actions>div{width:100%;justify-content:space-between}}
