:root{--blue:#0b2c72;--blue2:#1f5fff;--gold:#d8ac35;--bg:#f4f7fc;--white:#fff;--text:#17305a;--muted:#63718a;--line:#dbe3ef;--green:#18864b;--red:#c83d49}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--text)}a{text-decoration:none;color:inherit}button,input{font:inherit}.portal-bg{min-height:100vh;background:radial-gradient(circle at top,#eaf1ff 0,#f7f9fd 45%,#edf2fa 100%)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.login-card{width:min(560px,94vw);background:#fff;border:1px solid var(--line);border-radius:30px;padding:30px;box-shadow:0 24px 70px rgba(11,44,114,.14)}
.portal-brand{display:flex;align-items:center;gap:14px}.portal-brand img{width:70px;height:70px;border-radius:50%;object-fit:cover;box-shadow:0 8px 20px rgba(0,0,0,.12)}.portal-brand strong,.portal-brand span{display:block}.portal-brand strong{color:var(--blue);font-size:1.25rem}.portal-brand span{color:var(--gold);font-weight:700;font-size:.9rem}
.status-chip,.portal-eyebrow{display:inline-block;color:var(--gold);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.status-chip{margin-top:30px}.login-card h1,.welcome-card h1,.activity-card h1{font-size:clamp(2rem,5vw,3rem);line-height:1.05;margin:10px 0 14px;color:var(--blue)}.intro,.login-card p{color:var(--muted);line-height:1.55}
.login-form{display:grid;gap:16px;margin:24px 0}.login-form label{display:grid;gap:8px;font-weight:800;color:var(--blue)}.login-form input{border:1px solid #cdd8e8;border-radius:15px;padding:14px 16px;color:var(--text)}.primary-btn,.secondary-btn,.small-btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:15px;padding:14px 18px;font-weight:800;cursor:pointer}.primary-btn{background:linear-gradient(135deg,var(--blue2),#164ee2);color:white}.secondary-btn{background:#eef4ff;color:var(--blue2)}.small-btn{background:var(--blue2);color:#fff;padding:11px 15px;margin-top:8px}.message{min-height:22px}.demo-box{background:#f4f7fc;border:1px solid var(--line);padding:18px;border-radius:20px;margin-top:20px}.demo-box p{margin:6px 0 14px}.login-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:24px;font-size:.88rem;color:var(--muted)}
.dashboard-body{background:var(--bg);min-height:100vh}.portal-header{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px max(4vw,20px);position:sticky;top:0;z-index:10}.portal-brand.compact img{width:54px;height:54px}.logout-link{color:var(--blue2);font-weight:800}.portal-container{width:min(1100px,92vw);margin:0 auto;padding:34px 0 60px}.narrow-portal{width:min(720px,92vw)}
.welcome-card{background:linear-gradient(130deg,var(--blue),#183d92);color:#fff;border-radius:28px;padding:30px;display:flex;justify-content:space-between;gap:24px;align-items:center;box-shadow:0 18px 40px rgba(11,44,114,.16);margin-bottom:34px}.welcome-card h1{color:#fff}.welcome-card p{color:#d8e3ff;margin-bottom:0}.welcome-card.simple{display:block}.level-box{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:18px 24px;min-width:100px;text-align:center}.level-box span,.level-box strong{display:block}.level-box strong{font-size:2rem;color:var(--gold)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:26px 0 18px}.section-heading h2{margin:6px 0 0;font-size:2rem;color:var(--blue)}.section-heading a{color:var(--blue2);font-weight:800}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.practice-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;min-height:160px;box-shadow:0 10px 26px rgba(19,48,90,.05);transition:.2s}.practice-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(19,48,90,.09)}.practice-card .emoji{font-size:2rem;display:block;margin-bottom:18px}.practice-card strong,.practice-card small{display:block}.practice-card strong{font-size:1.2rem;color:var(--blue)}.practice-card small{color:var(--muted);margin-top:8px}.practice-card.highlight{border-color:#efcf73;background:linear-gradient(180deg,#fffdf7,#fff)}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}.white-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 10px 28px rgba(19,48,90,.05)}.white-card h3{font-size:1.4rem;margin:8px 0;color:var(--blue)}.white-card p{color:var(--muted)}.progress-row{display:flex;justify-content:space-between;margin:18px 0 10px}.progress-bar{height:10px;background:#e7edf6;border-radius:999px;overflow:hidden}.progress-bar span{height:100%;display:block;background:linear-gradient(90deg,var(--blue2),#6d91ff);border-radius:999px}.progress-card small{display:block;color:var(--muted);margin-top:12px}
.lesson-list{display:grid;gap:14px}.lesson-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}.lesson-card>span{font-size:1.8rem}.lesson-card strong,.lesson-card small{display:block}.lesson-card strong{color:var(--blue)}.lesson-card small{color:var(--muted);margin-top:4px}.lesson-card a{color:var(--blue2);font-weight:800}.activity-card{margin-top:20px}.question{font-size:1.65rem!important;color:var(--blue)!important;font-weight:800;margin:28px 0}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.answer-grid button{padding:18px;border-radius:17px;border:1px solid var(--line);background:#f8faff;color:var(--blue);font-weight:800;cursor:pointer}.answer-grid button:hover{border-color:var(--blue2)}.feedback,.explanation{margin-top:18px;border-radius:18px;padding:18px}.feedback.correct{background:#e8f8ef;color:var(--green)}.feedback.wrong{background:#fff0f2;color:var(--red)}.explanation{background:#f5f7fb;color:var(--text)}
@media(max-width:780px){.portal-header{height:auto;padding:12px 16px}.portal-brand.compact span{display:none}.welcome-card{align-items:flex-start}.practice-grid,.dashboard-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.lesson-card{grid-template-columns:auto 1fr}.lesson-card a{grid-column:2}.answer-grid{grid-template-columns:1fr}.portal-brand img{width:58px;height:58px}}

.error-text{color:#b42318!important}.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 22px}.filter-chip{border:1px solid #d9e2f2;background:#fff;color:#0b2c72;padding:10px 14px;border-radius:999px;font-weight:800;cursor:pointer}.filter-chip.active{background:#0b2c72;color:#fff}.practice-answer{width:100%;padding:14px;border:1px solid #d8e0ed;border-radius:14px;font:inherit;margin:12px 0}.admin-note{margin-bottom:28px}.admin-users{display:grid;gap:14px}.admin-user{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:14px;align-items:end;background:#fff;border:1px solid #dce3ef;border-radius:18px;padding:16px}.admin-user>div strong,.admin-user>div small{display:block}.role-pill{display:inline-block;margin-top:7px;background:#eef4ff;color:#1f5fff;padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:800}.admin-user label,.teacher-form label{display:grid;gap:6px;font-size:.82rem;font-weight:700}.admin-user select,.teacher-form input,.teacher-form select,.teacher-form textarea{padding:11px 12px;border:1px solid #d3dcea;border-radius:12px;font:inherit;background:#fff}.teacher-form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.teacher-form .wide{grid-column:1/-1}@media(max-width:850px){.admin-user{grid-template-columns:1fr 1fr}.admin-user>div{grid-column:1/-1}.teacher-form{grid-template-columns:1fr}.teacher-form .wide{grid-column:auto}}
