:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#172d2e;background:#f4f6f7;font-size:16px;--ink:#172d2e;--muted:#65767b;--line:#dfe6e6;--lime:#c8f364;--dark:#112b2b}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;line-height:1.08;font-size:clamp(2rem,3.5vw,3.35rem);font-weight:650}h2{font-size:1.2rem;letter-spacing:-.02em}p{line-height:1.6}button:focus-visible,a:focus-visible{outline:3px solid #729d21;outline-offset:4px}[hidden]{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.15em}.primary,.secondary{border:0;border-radius:10px;padding:13px 20px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px}.primary{background:var(--dark);color:white}.primary:hover{background:#254c4b}.secondary{border:1px solid var(--line);background:white;color:var(--ink)}.secondary:hover{background:#edf3ed}.brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:1.05rem;line-height:1.15;letter-spacing:-.03em}.brand-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--lime);color:var(--dark);font-size:2rem}.login-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:var(--dark);color:white;padding:42px 9%;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-story h1{font-size:clamp(3.2rem,6vw,6rem);margin:25px 0}.login-story h1 span{color:var(--lime)}.login-story p{color:#b5c5c4;font-size:1.1rem}.story-foot{font-size:.8rem;color:#a7bdbb;padding-top:24px}.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px}.login-panel form{width:min(100%,360px)}.login-panel h2{font-size:2rem;margin:18px 0 12px}.login-panel .primary{width:100%;margin-top:12px}.login-note{font-size:.875rem;color:var(--muted);margin-top:36px;text-align:center}label{display:block;font-size:.875rem;font-weight:600;margin:20px 0 12px}input,textarea,select{display:block;width:100%;border:1px solid #d3dddd;border-radius:9px;padding:13px;background:white;color:var(--ink);margin-top:8px;font-weight:400}textarea{resize:vertical;line-height:1.6;min-height:160px}input:focus,textarea:focus,select:focus{outline:2px solid #8dbd30;outline-offset:1px}.error{color:#b63636;font-size:.875rem;margin-top:16px}.app{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--dark);color:#f6ffff;padding:32px 23px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.nav-label{color:#83a3a0;font-size:.75rem;letter-spacing:.1em;margin:52px 8px 16px}.nav-button{border:0;background:none;color:#b9cdcb;width:100%;text-align:left;padding:14px 12px;margin:3px 0;border-radius:9px;font-size:.9rem}.nav-button.active{background:#284342;color:var(--lime)}.nav-button:hover{background:#203b3a}.sidebar-bottom{margin-top:auto;padding-top:36px}.model-label{color:#8ba5a2;font-size:.75rem;margin-bottom:8px}.sidebar-bottom>strong,.sidebar-bottom>.muted{display:block}.sidebar .muted{font-size:.8rem;color:#a3b9b6;margin-top:5px}.connection{font-size:.75rem;color:#cbdcd8;line-height:1.5;background:#203b3a;padding:10px;border-radius:8px;margin-top:16px}.profile{display:flex;align-items:center;gap:10px;margin-top:26px;padding-top:20px;border-top:1px solid #36504c}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#4b6460;flex-shrink:0;font-size:.85rem}.profile>div{min-width:0;flex:1}.profile strong{font-size:.85rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile small{display:block;font-size:.75rem;color:#a3b9b6;margin-top:3px}.icon-button{border:0;background:transparent;color:inherit;font-size:1.3rem;padding:8px}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:.875rem;background:#fff}.topbar .muted{font-size:.8rem}main{min-width:0}main>section{padding:36px 38px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.page-heading .eyebrow{color:#607c76}.page-heading h1{margin:14px 0}.page-heading p{margin-bottom:0;font-size:.95rem}.accent{color:#6fa126}.steps{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:13px;background:#fff;margin-bottom:30px;overflow:hidden}.steps>div{display:flex;align-items:center;gap:14px;padding:20px;border-right:1px solid var(--line)}.steps>div:last-child{border:0}.steps b{color:#749733;background:#edf5de;font-size:.85rem;padding:11px;border-radius:50%}.steps span{font-weight:600;font-size:.9rem}.steps small{display:block;font-weight:400;color:var(--muted);margin-top:5px;font-size:.8rem}.workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}.project-list,.editor,.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-heading h2{margin:0}.count{background:#eef2f1;border-radius:20px;padding:4px 9px;font-size:.75rem}.project-item{display:block;text-align:left;width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px;margin:10px 0;color:var(--ink)}.project-item:hover{border-color:#9cad97}.project-item.selected{border-color:#90b746;background:#f4f9eb}.project-item strong{display:block;overflow-wrap:anywhere;font-size:.9rem}.project-item small{color:var(--muted);display:block;font-size:.75rem;margin-top:12px}.project-list .list-empty{font-size:.875rem;color:var(--muted);line-height:1.6;padding:12px 0}.empty{min-height:330px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column}.empty-symbol{font-size:3.5rem;color:#8ab644;margin-bottom:18px}.empty p{color:var(--muted);font-size:.9rem}.editor-header{display:flex;gap:12px;align-items:start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:18px}.editor-header h2{margin:0;overflow-wrap:anywhere}.badge{font-size:.75rem;color:#466333;background:#edf6df;padding:6px 10px;border-radius:20px;white-space:nowrap}.badge.warning{background:#fff2df;color:#866020}.editor label{margin-top:0}.editor textarea{min-height:220px}.editor-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.editor-actions .muted{font-size:.75rem}.panel{padding:18px;border-radius:10px;background:#f4f7f7;margin-top:22px}.panel h3{font-size:1rem;margin-bottom:10px}.panel p,.panel li{font-size:.9rem;line-height:1.65}.panel p{margin-bottom:0;white-space:pre-wrap;overflow-wrap:anywhere}.panel ol{padding-left:24px;margin-bottom:0}.feedback{border-left:3px solid #94c34b}.plan{background:#f2f7e9;border:1px solid #dce7c9}.plan .primary{margin-top:18px;background:#c8f364;color:#172d2e}.job-status{display:flex;align-items:center;gap:12px;background:#ecf3f4;border-radius:10px;padding:16px;font-size:.875rem;margin-top:18px}.spinner{width:16px;height:16px;border:2px solid #b0c5c3;border-top-color:#284945;border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.failure{background:#fff0ec;color:#a04031}.version-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:26px 0 12px;flex-wrap:wrap}.version-heading h3{margin:0;font-size:1rem}.version-heading select{width:auto;max-width:100%;margin:0;font-size:.8rem;padding:8px}.game-frame{border:1px solid var(--line);border-radius:10px;width:100%;height:440px;background:white}.version-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.version-actions a{font-size:.85rem}.version-actions small{font-size:.75rem;color:var(--muted)}details{margin-top:14px;font-size:.85rem}summary{cursor:pointer;color:#4b6b45}details p{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:min(92vw,560px);color:var(--ink)}dialog::backdrop{background:#10262599;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading h2{margin:0;font-size:1.4rem}dialog .primary{width:100%}dialog .muted{font-size:.85rem}.toast{position:fixed;bottom:25px;right:25px;max-width:min(90vw,480px);padding:16px 22px;border-radius:12px;background:#183a35;color:#fff;box-shadow:0 8px 25px #0002;z-index:50;font-size:.9rem;line-height:1.5}.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lesson-grid article{background:white;border:1px solid var(--line);border-radius:13px;padding:28px}.lesson-grid article>span{font-size:.75rem;color:#739133;font-weight:700;letter-spacing:.08em}.lesson-grid h2{margin-top:16px}.lesson-grid p{color:var(--muted);font-size:.95rem;margin-bottom:0}.example{padding:28px;background:#eaf3d5;border-radius:13px;margin-top:24px;max-width:850px}.example p{margin-top:16px}.admin-grid{display:grid;grid-template-columns:320px 1fr;gap:22px}.student-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.student-row strong{font-size:.9rem}.student-row small{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}.student-row button{font-size:.8rem;padding:8px 12px;min-height:36px}.admin-projects{margin-top:22px}.admin-project-button{border:0;background:none;text-align:left;color:var(--ink);padding:12px 0;display:block;width:100%;border-bottom:1px solid var(--line)}.admin-project-button:hover{color:#679024}.admin-project-button small{display:block;color:var(--muted);margin-top:5px}.readonly{font-size:.85rem;color:#8a6222;margin:12px 0}.history-row{border-bottom:1px solid var(--line);padding:12px 0}.history-row strong{display:block}.history-row p{font-size:.85rem;white-space:pre-wrap}.history-row small{display:block;color:var(--muted);margin-top:5px}@media(min-width:1550px){main>section{max-width:1400px;margin:auto}.workspace{grid-template-columns:290px 1fr}}@media(max-width:1150px){.workspace{grid-template-columns:210px 1fr}.steps>div{padding:16px 12px;gap:9px}.steps small{font-size:.75rem}main>section{padding:28px 24px}.topbar{padding:0 24px}.app{grid-template-columns:205px 1fr}.sidebar{padding:26px 18px}.admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:850px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:static;padding:16px 20px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px}.sidebar .brand{font-size:.9rem}.sidebar .brand-icon{width:32px;height:32px;font-size:1.6rem}.nav-label,.sidebar-bottom>.model-label,.sidebar-bottom>strong,.sidebar-bottom>.muted,.profile .avatar,.profile>div{display:none}.sidebar nav{display:flex;flex:1}.nav-button{width:auto;font-size:.8rem;padding:10px}.sidebar-bottom{margin:0;padding:0;display:flex;align-items:center;gap:6px}.connection{margin:0;background:transparent;padding:0;max-width:130px}.profile{padding:0;border:0;margin:0}.workspace{grid-template-columns:1fr}.project-list{padding:16px}.project-list #projects{display:flex;gap:10px;overflow:auto}.project-item{min-width:170px;width:190px;flex-shrink:0;margin:0}.section-heading{margin-bottom:12px}.login-screen{grid-template-columns:1fr}.login-story{min-height:350px;padding:30px}.login-story h1{font-size:3rem;margin:22px 0}.login-story h1 br{display:none}.login-story p{font-size:1rem}.story-foot{display:none}.login-panel{padding:36px 24px}.topbar{height:52px}.page-heading h1 br{display:none}.page-heading{align-items:flex-start}.page-heading .primary{flex-shrink:0}.steps small{display:none}.admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:550px){main>section{padding:24px 16px}.topbar{padding:0 16px}.topbar .muted{max-width:155px;text-align:right}.sidebar{padding:12px;gap:10px}.sidebar nav{order:3;width:100%}.sidebar-bottom{margin-left:auto}.nav-button{flex:1;text-align:center}.page-heading{flex-direction:column;gap:20px}.page-heading h1{font-size:2.3rem}.steps>div{padding:13px 8px;flex-direction:column;align-items:flex-start}.steps span{font-size:.8rem}.steps b{padding:8px;font-size:.75rem}.editor{padding:18px}.editor-header{flex-direction:column}.editor-actions{align-items:flex-end}.editor-actions .primary{padding:12px;font-size:.85rem}.lesson-grid,.admin-grid{grid-template-columns:1fr}.game-frame{height:400px}.lesson-grid article,.example{padding:22px}.toast{right:16px;bottom:16px}.login-story h1{font-size:2.8rem}}
.game-frame{height:700px}
@media(max-width:550px){.game-frame{height:700px}}
