:root{--navy:#081f3b;--blue:#175ca8;--teal:#16a6a2;--coral:#ef6570;--orange:#f2a329;--line:#dbe5ed;--muted:#718596}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--navy);background:linear-gradient(160deg,#f8fbfe,#eef6fb 55%,#fff8ee);overflow-x:hidden}.join-bg{position:fixed;inset:0;pointer-events:none}.join-bg i{position:absolute;border-radius:50%;filter:blur(6px);opacity:.28}.join-bg i:nth-child(1){width:340px;height:340px;background:#64ddd2;left:-130px;top:13%}.join-bg i:nth-child(2){width:320px;height:320px;background:#ffd08d;right:-130px;bottom:9%}.join-bg i:nth-child(3){width:220px;height:220px;background:#ff9ea7;right:14%;top:-90px}.join-header{position:relative;z-index:3;min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px max(20px,calc((100vw - 1120px)/2))}.teacher-link{color:#718596;text-decoration:none;font-size:12px;font-weight:750}.teacher-link b{color:var(--blue)}.join-shell{position:relative;z-index:2;width:min(1120px,calc(100% - 32px));margin:42px auto 80px;display:grid;grid-template-columns:minmax(0,650px) 1fr;gap:28px;align-items:start}.join-card,.classroom-card{grid-column:1;padding:clamp(24px,5vw,48px);border:1px solid rgba(8,31,59,.1);border-radius:34px;background:rgba(255,255,255,.95);box-shadow:0 35px 90px rgba(8,31,59,.12);backdrop-filter:blur(12px)}.join-kicker{font-size:10px;font-weight:1000;letter-spacing:.16em;color:var(--teal)}.join-card h1{margin:10px 0 12px;font-size:clamp(50px,8vw,86px);line-height:.92;letter-spacing:-.065em}.join-card>p{max-width:520px;margin:0;color:var(--muted);font-size:16px;line-height:1.65}.join-card form{display:grid;gap:14px;margin-top:28px}.join-card label{display:grid;gap:7px;color:#526b80;font-size:11px;font-weight:900}.join-card input{width:100%;border:1px solid #cfdae4;border-radius:16px;padding:16px 17px;background:#fff;color:var(--navy);font-size:18px;font-weight:850;outline:none;text-transform:none}.join-card #joinCode{text-transform:uppercase;letter-spacing:.12em}.join-card input:focus{border-color:#7aa7d0;box-shadow:0 0 0 4px rgba(23,92,168,.08)}#joinButton{border:0;border-radius:17px;padding:17px 19px;background:linear-gradient(135deg,var(--navy),#0e427a);color:white;font-size:14px;font-weight:950;display:flex;justify-content:space-between;cursor:pointer}.join-message{padding:12px 14px!important;margin-top:13px!important;border-radius:13px;background:#fff2f2;color:#9d3642!important;font-size:12px!important}.join-message.ok{background:#eafaf6;color:#087c75!important}.join-safe{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding-top:18px;border-top:1px solid #e6edf2}.join-safe>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e7f9f4;color:#10847d;font-weight:1000}.join-safe b,.join-safe small{display:block}.join-safe b{font-size:11px}.join-safe small{margin-top:3px;color:#8395a4;font-size:10px;line-height:1.45}.join-help{grid-column:2;grid-row:1;padding:22px;display:grid;grid-template-columns:34px 1fr;gap:15px 10px}.join-help>span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:var(--navy);color:white;font-size:10px;font-weight:950}.join-help p{margin:0}.join-help b,.join-help small{display:block}.join-help b{font-size:13px}.join-help small{margin-top:4px;color:#718596;font-size:10px;line-height:1.45}.classroom-card{padding:26px}.classroom-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.classroom-top small{display:block;color:#8296a6;font-size:8px;font-weight:950;letter-spacing:.1em}.classroom-top strong{display:block;margin-top:3px;font-size:20px}.connection-pill{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:#e9faf5;color:#087a73;font-size:8px;font-weight:900}.connection-pill i,.live-bar i{width:7px;height:7px;border-radius:50%;background:#20b7a8;box-shadow:0 0 0 5px rgba(32,183,168,.12)}.connection-pill.offline{background:#fff1f1;color:#a33e47}.connection-pill.offline i{background:#e7636e}.student-identity{display:flex;align-items:center;gap:11px;margin-top:20px;padding:12px;border:1px solid var(--line);border-radius:16px}.avatar{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--teal),#0d7f7a);color:white;font-size:19px;font-weight:950}.student-identity div{flex:1}.student-identity small{display:block;color:#8598a8;font-size:7px;font-weight:950}.student-identity b{display:block;margin-top:2px;font-size:13px}.student-identity button{border:0;background:transparent;color:#8a9baa;font-size:9px;font-weight:850}.waiting-state,.completed-state{padding:58px 18px 35px;text-align:center}.pulse-orbit{position:relative;width:120px;height:120px;margin:0 auto 30px;display:grid;place-items:center}.pulse-orbit span{width:66px;height:66px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:white;font-size:18px;font-weight:1000;z-index:2}.pulse-orbit i{position:absolute;inset:0;border:1px solid rgba(22,166,162,.25);border-radius:50%;animation:pulse 2.4s ease-out infinite}.pulse-orbit i:nth-child(2){animation-delay:.7s}.pulse-orbit i:nth-child(3){animation-delay:1.4s}@keyframes pulse{0%{transform:scale(.55);opacity:1}100%{transform:scale(1.2);opacity:0}}.waiting-state>small,.completed-state>small{font-size:8px;font-weight:950;color:var(--teal);letter-spacing:.12em}.waiting-state h2,.completed-state h2{margin:8px auto;font-size:clamp(28px,6vw,44px);line-height:1.05;letter-spacing:-.04em;max-width:520px}.waiting-state p,.completed-state p{max-width:470px;margin:10px auto;color:#748899;line-height:1.6;font-size:12px}.live-state{margin-top:20px}.live-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px}.live-bar span{display:flex;align-items:center;gap:8px;color:#0b817a;font-size:8px;font-weight:1000}.live-bar b{font-size:8px;color:#708597}.live-task{min-height:330px;padding:clamp(25px,7vw,50px);border-radius:28px;background:radial-gradient(circle at 80% 15%,rgba(22,166,162,.25),transparent 26%),linear-gradient(145deg,#071b34,#0d3d72);color:white;display:flex;flex-direction:column;justify-content:center;text-align:center}.live-task small{color:#75e1d8;font-size:9px;font-weight:1000;letter-spacing:.12em}.live-task h2{margin:13px auto 12px;max-width:800px;font-size:clamp(31px,7vw,58px);line-height:1.05;letter-spacing:-.045em}.live-task p{margin:0;color:#c6d6e2;font-size:14px;line-height:1.55}.student-scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-top:12px}.student-scoreboard>div{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:center}.student-scoreboard span{display:block;color:#7c90a1;font-size:7px;font-weight:1000}.student-scoreboard strong{display:block;margin-top:4px;font-size:27px}.student-scoreboard>b{font-size:9px;color:#91a2af}.student-action{display:flex;gap:8px;margin-top:12px}.student-action button{flex:1;border:1px solid var(--line);border-radius:13px;background:white;padding:12px;color:var(--navy);font-size:10px;font-weight:900}.student-action button:first-child{background:#ebfaf6;border-color:#bfe8df;color:#0b7d76}.sync-note{text-align:center;color:#8fa0ad;font-size:8px}.completed-state>span{width:72px;height:72px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#e6f9f3;color:#087b74;font-size:32px;font-weight:1000}@media(max-width:850px){.join-shell{grid-template-columns:1fr;margin-top:15px}.join-help{grid-column:1;grid-row:auto}.join-card,.classroom-card{grid-column:1}.teacher-link{display:none}}@media(max-width:520px){.join-header{min-height:65px;padding:8px 14px}.join-header .esc-brand-title{font-size:15px}.join-shell{width:min(100% - 18px,1120px);margin-bottom:30px}.join-card,.classroom-card{border-radius:26px;padding:22px}.join-card h1{font-size:54px}.join-help{padding:14px}.student-scoreboard{gap:6px}.student-action{flex-direction:column}.live-task{min-height:280px;border-radius:22px}}

/* Bilingual student header + assignments */
.join-header-actions{display:flex;align-items:center;gap:14px}
.join-lang-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.8)}
.join-lang-switch button{border:0;border-radius:8px;background:transparent;color:#718596;min-height:32px;padding:0 9px;font-size:10px;font-weight:900;cursor:pointer}
.join-lang-switch button.active{background:#fff;color:var(--navy);box-shadow:0 4px 12px rgba(8,31,59,.08)}
.assignment-zone{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:20px;background:#f9fbfc}
.assignment-zone-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.assignment-zone-head small{display:block;color:var(--teal);font-size:8px;font-weight:1000;letter-spacing:.11em}
.assignment-zone-head strong{display:block;margin-top:3px;font-size:17px}
.assignment-zone-head>span{min-width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:1000}
.student-assignment-list{display:grid;gap:10px}
.student-assignment{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.student-assignment.completed{background:#f4fbf9;border-color:#cce9e3}
.student-assignment-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.student-assignment-top span{padding:5px 8px;border-radius:999px;background:#fff2dc;color:#93640c;font-size:8px;font-weight:1000}
.student-assignment.completed .student-assignment-top span{background:#def4ee;color:#0a7b74}
.student-assignment-top small{color:#8194a4;font-size:9px}
.student-assignment h3{margin:11px 0 5px;font-size:18px;line-height:1.2}
.student-assignment p{margin:0;color:#718596;font-size:11px;line-height:1.5}
.student-assignment label{display:grid;gap:6px;margin-top:13px;color:#5f7487;font-size:10px;font-weight:900}
.student-assignment textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:11px;padding:10px;color:var(--navy);font:inherit;font-size:12px;outline:none}
.student-assignment textarea:focus{border-color:#7ba6cd;box-shadow:0 0 0 3px rgba(23,92,168,.07)}
.student-assignment button{width:100%;margin-top:10px;border:0;border-radius:11px;background:var(--navy);color:#fff;min-height:42px;font-size:11px;font-weight:950;cursor:pointer}
.student-assignment.completed>b{display:block;margin-top:10px;color:#0b7d76;font-size:11px}
@media(max-width:650px){.join-header-actions{gap:7px}.join-lang-switch button{padding:0 7px}.teacher-link{display:none}}

.student-assignment.overdue{background:#fbf7f7;border-color:#ead8da}
.student-assignment.overdue .student-assignment-top span{background:#f5e7e9;color:#954853}
.student-assignment.overdue>b{display:block;margin-top:10px;color:#954853;font-size:11px}

.student-assignment-feedback{margin-top:12px;padding:11px 12px;border-radius:11px;background:#eef6ff;border:1px solid #d6e7f7}
.student-assignment-feedback small{display:block;font-size:9px;font-weight:900;letter-spacing:.1em;color:#54728e}
.student-assignment-feedback strong{display:inline-block;margin-top:6px;padding:4px 7px;border-radius:999px;background:#dcecff;color:#245d91;font-size:11px}
.student-assignment-feedback p{margin:7px 0 0;font-size:11px;line-height:1.5;color:#38566f}


/* Student platform clarity */
.student-how-card,.student-lesson-overview{margin-top:16px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px}
.student-how-head,.student-overview-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.student-how-head small,.student-overview-head small{display:block;color:var(--teal);font-size:8px;font-weight:1000;letter-spacing:.11em}
.student-how-head strong,.student-overview-head strong{display:block;margin-top:3px;font-size:14px;line-height:1.25}
.student-how-head button{flex:none;width:32px;height:32px;border:0;border-radius:50%;background:#edf4f9;color:#2e5e84;font-size:14px;font-weight:1000;cursor:pointer}
.student-how-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.student-how-body>div{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px;border-radius:12px;background:#f7fafc}
.student-how-body>div>b{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--navy);color:#fff;font-size:9px}
.student-how-body strong,.student-how-body small{display:block}
.student-how-body strong{font-size:10px}
.student-how-body small{margin-top:3px;color:#75899a;font-size:9px;line-height:1.4}
.student-overview-head>span{padding:6px 8px;border-radius:999px;background:#eef5fb;color:#315d80;font-size:9px;font-weight:950}
.student-overview-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.student-overview-meta span{padding:6px 8px;border-radius:999px;background:#f2f6f9;color:#4d687e;font-size:8px;font-weight:900}
.student-progress-track{height:8px;margin-top:13px;border-radius:999px;background:#e9eff4;overflow:hidden}
.student-progress-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--blue));transition:width .25s ease}
.student-stage-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:11px}
.student-stage{min-width:0;padding:8px;border:1px solid #e1e8ee;border-radius:11px;background:#fafcfd}
.student-stage>span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#edf2f6;color:#698094;font-size:8px;font-weight:1000}
.student-stage p{margin:7px 0 0}
.student-stage strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#3b566d}
.student-stage small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7.5px;color:#8a9baa}
.student-stage.done{border-color:#cce9e3;background:#f5fbf9}
.student-stage.done>span{background:#daf2ec;color:#0a7b74}
.student-stage.active{border-color:#98bde0;background:#eef6fd;box-shadow:0 0 0 2px rgba(23,92,168,.06)}
.student-stage.active>span{background:var(--blue);color:#fff}
.student-next-card{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;margin-top:10px;padding:10px 11px;border-radius:12px;background:#fff8eb;border:1px solid #f0ddb5}
.student-next-card small{color:#9b6d1e;font-size:8px;font-weight:1000}
.student-next-card strong{font-size:10px;color:#5b461e}
.student-next-card span{font-size:8px;color:#8a754d}
.student-action button{display:grid;gap:2px;text-align:left}
.student-action button span{font-size:10px;font-weight:950}
.student-action button small{font-size:7.5px;font-weight:750;line-height:1.3;opacity:.72}
.student-activity-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.student-activity-summary>div{padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#f9fbfc}
.student-activity-summary small,.student-activity-summary span{display:block}
.student-activity-summary small{font-size:7.5px;font-weight:1000;color:#6d8294}
.student-activity-summary strong{display:block;margin:3px 0;font-size:20px;color:#173f65}
.student-activity-summary span{font-size:8px;color:#8b9aa7}
.assignment-zone-head p{margin:4px 0 0;color:#7e90a0;font-size:9px;line-height:1.4}
@media(max-width:720px){
  .student-stage-list{grid-template-columns:1fr}
  .student-stage{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center}
  .student-stage p{margin:0}
  .student-stage strong,.student-stage small{white-space:normal}
  .student-how-body{grid-template-columns:1fr}
  .student-next-card{grid-template-columns:1fr}
}


/* Student My Class dashboard */
.student-dashboard{margin-top:16px;display:grid;gap:10px}
.student-dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:18px;border-radius:20px;background:linear-gradient(135deg,#081f3b,#124f86);color:#fff}
.student-dashboard-hero>div>small{display:block;color:#7ee0d7;font-size:8px;font-weight:1000;letter-spacing:.12em}
.student-dashboard-hero h2{margin:6px 0 5px;font-size:27px;line-height:1.05;letter-spacing:-.035em}
.student-dashboard-hero p{margin:0;color:#c7d7e4;font-size:10.5px;line-height:1.45}
.student-teacher-card{min-width:150px;padding:12px 13px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.13)}
.student-teacher-card small,.student-teacher-card strong,.student-teacher-card span{display:block}
.student-teacher-card small{color:#8edfd8;font-size:7px;font-weight:950;letter-spacing:.1em}
.student-teacher-card strong{margin-top:4px;font-size:12px}
.student-teacher-card span{margin-top:3px;color:#bed0df;font-size:8px}
.student-dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.student-dashboard-stats article{padding:13px;border:1px solid var(--line);border-radius:15px;background:#fff}
.student-dashboard-stats small,.student-dashboard-stats span{display:block}
.student-dashboard-stats small{font-size:7px;font-weight:1000;color:#718596;letter-spacing:.06em}
.student-dashboard-stats strong{display:block;margin:4px 0 2px;font-size:24px;color:#173f65}
.student-dashboard-stats span{font-size:8px;color:#8a9aa7}
.student-dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:8px}
.student-now-card,.student-upcoming-card{padding:15px;border-radius:16px;border:1px solid var(--line);background:#fff}
.student-now-card{background:linear-gradient(135deg,#f2fbf8,#f9fcfd);border-color:#cfe9e2}
.student-now-card small,.student-upcoming-card small{display:block;font-size:7.5px;font-weight:1000;letter-spacing:.08em;color:#688093}
.student-now-card strong,.student-upcoming-card strong{display:block;margin-top:7px;font-size:13px;line-height:1.3;color:#173a58}
.student-now-card p,.student-upcoming-card p{margin:5px 0 0;font-size:9.5px;line-height:1.45;color:#718596}
.student-now-card button{margin-top:11px;border:0;border-radius:10px;background:#173f65;color:#fff;padding:9px 11px;font-size:9px;font-weight:900;cursor:pointer}
.student-history-zone{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:20px;background:#f9fbfc}
.student-history-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:11px}
.student-history-head small{display:block;color:var(--teal);font-size:8px;font-weight:1000;letter-spacing:.1em}
.student-history-head strong{display:block;margin-top:3px;font-size:16px}
.student-history-head p{margin:4px 0 0;color:#7b8f9f;font-size:9.5px;line-height:1.4}
.student-history-head>span{min-width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#173f65;color:#fff;font-size:9px;font-weight:950}
.student-history-list{display:grid;gap:7px}
.student-history-card{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid #dfe7ed;border-radius:13px;background:#fff}
.student-history-date small,.student-history-date span,.student-history-copy strong,.student-history-copy p{display:block}
.student-history-date small{font-size:8px;font-weight:900;color:#506c82}
.student-history-date span{margin-top:3px;font-size:8px;color:#8a9baa}
.student-history-copy strong{font-size:10.5px;color:#173a58}
.student-history-copy p{margin:3px 0 0;font-size:8.5px;color:#8193a1}
.student-history-metrics{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.student-history-metrics span{padding:5px 7px;border-radius:999px;background:#edf7f4;color:#16776e;font-size:7.5px;font-weight:850}
.student-history-metrics span:last-child{background:#f6f0e7;color:#8c672e}
@media(max-width:680px){
  .student-dashboard-hero{grid-template-columns:1fr}
  .student-teacher-card{min-width:0}
  .student-dashboard-stats{grid-template-columns:1fr 1fr 1fr}
  .student-dashboard-grid{grid-template-columns:1fr}
  .student-history-card{grid-template-columns:1fr}
  .student-history-metrics{justify-content:flex-start}
}
