*{box-sizing:border-box}body{color:#30254a;background:#faf5ff;margin:0;font-family:Tahoma,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:#7145b2}a:hover{text-decoration:underline}:root{--purple:#7851b2;--ink:#31264a;--muted:#746b84;--border:#e7dcf4;--bg:#fcf8ff}#root{min-height:100vh}.app-shell{background:var(--bg);min-height:100vh}.center{place-items:center;min-height:100vh;display:grid}.login-page{background:linear-gradient(145deg,#fff0dc,#f7efff);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;background:#fff;border-radius:26px;width:min(440px,100%);padding:38px;box-shadow:0 18px 70px #6e389c18}.login-card h1{color:var(--purple);margin:10px 0}.login-card p{color:var(--muted)}.brand-icon{font-size:48px}.stack{gap:14px;display:grid}.stack label{text-align:right;gap:7px;font-weight:700;display:grid}.stack input,.stack textarea,.stack select,.inline-form select{border:1.5px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:12px;outline:none;padding:13px 14px;font-weight:400}.stack input:focus,.stack textarea:focus,.stack select:focus{border-color:var(--purple)}.stack textarea{resize:vertical;min-height:75px}.primary,.outline,.ghost,.danger{border:1px solid #0000;border-radius:12px;padding:11px 18px;font-weight:700}.primary{background:var(--purple);color:#fff}.primary:hover{background:#5b3594}.outline{color:#623d98;background:#fff;border-color:#d5bee9}.ghost{color:#623d98;background:#f3ebff}.danger{color:#bb4040;background:#fff0f0}.small{font-size:13px}.topbar{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:14px max(22px,50vw - 590px);display:flex}.logo{color:var(--purple);font-size:20px;font-weight:900}.logo span{color:var(--muted);margin-right:8px;font-size:13px}.container{max-width:1180px;margin:auto;padding:24px}.hero{background:linear-gradient(100deg,#f3e6ff,#fff1e9);border-radius:22px;align-items:center;gap:20px;margin-bottom:20px;padding:25px;display:flex}.hero h1{color:var(--purple);margin:0 0 5px}.hero p{color:#6a5d7e;margin:0}.hero-emoji{font-size:48px}.dashboard{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:20px;display:grid}.main-area{gap:18px;min-width:0;display:grid}.panel{border:1px solid var(--border);background:#fff;border-radius:20px;margin-bottom:0;padding:22px}.panel h2{margin:0 0 18px;font-size:20px}.section-heading{justify-content:space-between;align-items:start;gap:10px;margin-bottom:15px;display:flex}.section-heading h2{margin:0 0 5px}.section-heading>span{background:#f4edff;border-radius:20px;padding:5px 10px}.sidebar{position:sticky;top:14px}.student-button{text-align:right;width:100%;color:var(--ink);background:#faf7ff;border:1px solid #0000;border-radius:12px;flex-direction:column;gap:5px;margin-bottom:8px;padding:14px;display:flex}.student-button.active{border-color:var(--purple);background:#f4ebff}.student-button small,.muted,.hint,.footnote{color:var(--muted)}.hint{font-size:12px;line-height:1.8}.empty{text-align:center;color:var(--muted);padding:40px}.lesson-list{gap:10px;display:grid}.lesson-row{border:1px solid var(--border);background:#fbf9ff;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:14px;display:flex}.lesson-row.chosen{border-color:#a386cf}.lesson-row h3{margin:0 0 8px;font-size:16px}.actions{flex-wrap:wrap;gap:8px;display:flex}.pill{border-radius:20px;padding:3px 9px;font-size:12px;display:inline-block}.pill.published{color:#24814c;background:#e3f6e9}.pill.draft{color:#8d611e;background:#fff2d9}.cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.game-card{border:1px solid var(--border);overflow-wrap:anywhere;background:#fbf7ff;border-radius:16px;padding:18px}.game-card h3{margin:8px 0}.game-card p{color:var(--muted);line-height:1.7}.game-emoji{font-size:42px}.link-button{margin-top:10px;text-decoration:none;display:inline-block}.notice{overflow-wrap:anywhere;background:#fff6e5;border-radius:10px;margin:16px 0;padding:12px}.assign-existing{color:#61439c;margin-top:14px}.assign-existing summary{cursor:pointer}.inline-form{gap:9px;margin-top:12px;display:flex}.footnote{text-align:center;margin:22px 0;font-size:12px}button:disabled{opacity:.55;cursor:not-allowed}@media (width<=760px){.dashboard{grid-template-columns:1fr}.sidebar{position:static}.hero{padding:18px}.container{padding:12px}.panel{padding:16px}.lesson-row,.section-heading{flex-direction:column;align-items:stretch}.topbar{padding:12px}.logo{font-size:16px}}
