@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
:root{font-family:Poppins,sans-serif;color:#173126;background:#fff9ec;font-size:18px;--blue:#1c5f33;--muted:#4d6658}*{box-sizing:border-box}body{margin:0}header{max-width:1120px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:24px 28px}.brand{font-family:Poppins,sans-serif;font-size:25px;font-weight:600;color:inherit;text-decoration:none;display:flex;gap:10px;align-items:center}.brand-icon{background:var(--blue);color:#fff;padding:3px 10px;border-radius:12px}.demo{font-size:14px;text-align:center;background:#edf4ec;color:#123f27;padding:10px 20px}main{max-width:960px;margin:46px auto;padding:0 24px;min-height:60vh}h1,h2,h3{font-family:Poppins,sans-serif}h1{font-size:clamp(32px,5vw,48px);line-height:1.12;letter-spacing:-1px;margin:16px 0}h2{font-size:28px;margin:0 0 12px}p{color:var(--muted);line-height:1.6}button,.button{font:inherit;font-weight:700;border:0;border-radius:14px;padding:16px 24px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;background:var(--blue);color:#fff;min-height:56px}button:hover,.button:hover{filter:brightness(.94)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d6b85a;outline-offset:4px}.quiet{background:transparent;color:var(--blue);padding:10px 14px;font-size:16px}.secondary{background:#edf4ec;color:#123f27}.panel{background:white;border:1px solid #d8e3d8;border-radius:26px;padding:32px;box-shadow:0 10px 35px #123f2708}.join-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center}.eyebrow{font-size:14px;text-transform:uppercase;letter-spacing:2px;font-weight:700;color:var(--blue)}label{display:block;font-weight:700;font-size:16px;margin:0 0 8px}input,textarea{width:100%;font:inherit;border:2px solid #cdd6e8;border-radius:12px;padding:14px;color:#173126;background:#fff;margin-bottom:20px}#code{text-transform:uppercase;font-size:30px;text-align:center;letter-spacing:5px;font-weight:700}form>.button,form>button[type=submit]{width:100%}.small{font-size:14px}.tip{background:#ffedb0;border-radius:16px;padding:18px 22px;color:#55431a;line-height:1.5}.tip p{color:inherit;margin:4px 0}.steps{display:flex;gap:8px;align-items:center;margin:0 0 24px;color:var(--muted);font-size:14px}.steps span{padding:8px 12px;background:#e8edf8;border-radius:30px}.steps .active{background:var(--blue);color:white}.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}.student{background:#fff;border:2px solid #d8e3d8;color:#173126;flex-direction:column;min-height:150px;font-size:23px}.student:hover{border-color:var(--blue);background:#f4f8f2}.avatar{font-size:38px}.topline{display:flex;justify-content:space-between;align-items:center;gap:12px}.login-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;margin-top:24px}.copy-row{padding:22px 0;border-bottom:1px solid #e1e6f0}.copy-row:last-child{border:0}.copy-title{font-size:16px;font-weight:700;color:var(--muted)}.value{font-size:23px;overflow-wrap:anywhere;margin:8px 0 14px;font-family:monospace}.copy-row button{width:100%}.launch{margin-top:20px;width:100%}.instruction{padding:14px 0;display:flex;align-items:flex-start;gap:12px;line-height:1.5}.number{flex-shrink:0;background:#edf4ec;color:var(--blue);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-weight:bold}kbd{background:white;border:1px solid #b9c4d9;border-bottom:3px solid #b9c4d9;border-radius:5px;padding:2px 6px;color:#273350;white-space:nowrap}footer{text-align:center;padding:28px;color:var(--muted);font-size:15px}.error{color:#ae2539;min-height:24px;font-size:16px}.status{color:#15623b;min-height:28px;line-height:1.5;margin-top:14px}.setup{max-width:720px;margin:auto}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.actions>*{flex:1}.code-display{font-size:28px;font-weight:bold;letter-spacing:3px}.hide{display:none}.practice{max-width:480px;margin:auto}.success{border-left:5px solid #169661;padding:20px;background:#e5f8ec;border-radius:12px}textarea{min-height:160px;font-family:monospace;font-size:16px}details{margin-top:18px;color:var(--muted);font-size:15px}summary{cursor:pointer}a{color:var(--blue)}@media(max-width:700px){header{padding:16px}.brand{font-size:21px}.join-layout,.login-grid{grid-template-columns:1fr;gap:24px}main{margin:24px auto;padding:0 18px}.panel{padding:24px}.roster{grid-template-columns:repeat(2,1fr)}.steps{flex-wrap:wrap}.topline{align-items:flex-start}.student{min-height:130px}.demo{font-size:13px}}
/* Classroom workspace */
body:has(.teacher-shell) main{max-width:1160px} .teacher-account{padding:0 0 20px!important}.teacher-detail>.panel{margin:22px 0}.teacher-detail>.topline{align-items:flex-start;flex-wrap:wrap}.teacher-detail>.topline>.actions{flex:0 1 460px}.teacher-detail #roster{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-detail .student-card{padding:20px}.teacher-detail .student-card .avatar{display:none}.teacher-detail #activity-form .actions{align-items:start}.teacher-detail #activity-form input{min-width:180px}.teacher-detail table{min-width:550px}.teacher-detail .value,.teacher-detail .small{overflow-wrap:anywhere}button:disabled{opacity:.55;cursor:wait}.board-overlay{position:fixed;inset:0;z-index:1000;background:#fff9ec;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;overflow:auto}.board-overlay h1{font-size:clamp(32px,6vw,68px)}.board-overlay .board-code{font:bold clamp(50px,12vw,140px) Poppins,sans-serif;letter-spacing:.15em;margin:12px 0;color:#1c5f33}.board-overlay p{overflow-wrap:anywhere;max-width:100%}#print-sheet{display:none}@media print{body.printing-cards>*{display:none!important}body.printing-cards>#print-sheet{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;visibility:visible!important}#print-sheet,#print-sheet *{visibility:visible!important}#print-sheet .print-card{display:block!important;break-inside:avoid;border:2px dashed #333;padding:18px;font-size:16px}#print-sheet h2{font-size:20px}#print-sheet p{overflow-wrap:anywhere}#print-sheet strong{font-size:24px}}@media(max-width:700px){.teacher-detail #roster{grid-template-columns:1fr}.teacher-account{align-items:flex-start!important;gap:10px}.teacher-account .small{font-size:13px}.teacher-detail .topline{flex-wrap:wrap}.teacher-detail>.topline>.actions{flex-basis:100%}}
.teacher-detail .activity-row .topline{align-items:center}.teacher-detail .activity-copy{flex:1;min-width:0}.teacher-detail .activity-copy .small{overflow-wrap:anywhere}.teacher-detail .activity-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.teacher-detail .activity-actions button{width:auto;min-height:42px;padding:9px 13px}.student-flow .activity-card{max-width:600px}.student-flow .activity-list:has(>.activity-card:only-child){grid-template-columns:minmax(0,600px)}
@media(min-width:701px) and (max-height:850px){body:has(.student-flow) header{padding-top:12px;padding-bottom:12px}body:has(.student-flow) main{margin-top:18px;margin-bottom:12px}.student-flow .steps{margin-bottom:12px}.student-flow .pin-panel{margin:12px auto;padding:20px 26px}.student-flow h1{font-size:34px;margin:10px 0}.student-flow .pin-panel p{margin:8px 0}.student-flow .pin-input{padding:8px;margin-bottom:8px;font-size:26px}.student-flow .keypad{gap:6px;margin:10px 0}.student-flow .keypad button{min-height:44px;padding:8px;font-size:20px}.student-flow .pin-panel button[type=submit]{min-height:46px;padding:10px}.student-flow .activity-card{padding:22px;gap:6px}.student-flow .activity-card button{min-height:44px;padding:10px}.student-flow .activity-card .credential-value{margin:2px 0 6px}.student-flow .activity-card .launch{min-height:46px;padding:10px}.student-flow .activity-list{margin-top:16px}.student-flow .flow-actions{margin-top:12px}body:has(.student-flow) footer{padding:12px}}
header{padding-top:16px;padding-bottom:16px}.brand{color:inherit;text-decoration:none;display:flex;align-items:center}.brand-lockup{display:flex;align-items:center;gap:10px;height:54px;color:#123f27;font-size:25px;font-weight:700;letter-spacing:-.6px}.brand-lockup img{display:block;width:58px;height:46px;object-fit:contain}.practice-label{font-weight:600;color:var(--muted)}@media(max-width:700px){.brand-lockup{height:44px;gap:8px;font-size:22px}.brand-lockup img{width:50px;height:40px}.practice-label{font-size:14px}}

/* Teacher heading actions and access-mode picker */
.teacher-detail>.topline>.teacher-heading-copy{flex:1 1 360px;min-width:0}
.new-class-button{flex:0 0 auto;min-height:48px;height:48px;padding:10px 18px;white-space:nowrap}
.new-class-button svg{width:20px;height:20px;flex:none}
.access-mode-picker{position:relative;margin:0 0 20px}
.access-mode-picker>label{margin-bottom:8px}
.access-mode-trigger{width:100%;min-height:56px;padding:11px 15px;border:2px solid #bfd0c1;border-radius:14px;background:#fff;color:#173126;text-align:left;justify-content:space-between;font-weight:600;box-shadow:0 4px 14px #123f270d}
.access-mode-trigger:hover{filter:none;border-color:#3f7652;background:#fbfdf9}
.access-mode-trigger[aria-expanded="true"]{border-color:#1c5f33;box-shadow:0 0 0 3px #d6b85a55}
.access-mode-trigger:focus-visible,.access-mode-option:focus-visible{outline:3px solid #d6b85a;outline-offset:3px}
.access-mode-menu{position:absolute;z-index:20;top:calc(100% + 8px);left:0;right:0;max-height:min(360px,calc(100vh - 180px));overflow-y:auto;padding:8px;border:1px solid #c9d7ca;border-radius:16px;background:#fffdf7;box-shadow:0 16px 38px #123f2724}
.access-mode-menu[hidden]{display:none}
.access-mode-option{width:100%;min-height:72px;padding:12px 14px;border:2px solid transparent;border-radius:12px;background:transparent;color:#173126;text-align:left;display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;align-items:start;font-weight:400}
.access-mode-option>span{display:flex;min-width:0;flex-direction:column;gap:4px}
.access-mode-option .access-mode-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.access-mode-option:hover{filter:none;background:#edf4ec;border-color:#d8e3d8}
.access-mode-option[aria-selected="true"],.access-mode-option.selected,.access-mode-option:has(input[type="radio"]:checked){background:#edf4ec;border-color:#1c5f33}
.access-mode-title{font-weight:700;line-height:1.3}
.access-mode-description{display:block;color:#4d6658;font-size:14px;line-height:1.4}
.recommended-badge{align-self:start;padding:3px 8px;border-radius:999px;background:#f6e4a3;color:#55431a;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.access-mode-picker input[type="radio"]{width:auto;margin:3px 0 0}

@media(max-width:700px){
  .teacher-detail>.topline>.teacher-heading-copy{flex-basis:100%}
  .teacher-detail>.topline>.new-class-button{flex-basis:auto;width:100%}
  .access-mode-menu{max-height:min(320px,calc(100vh - 140px))}
}

/* Student views reserve space only when feedback exists. */
.student-flow .error:empty,.student-flow .status:empty,.student-flow .copy-fallback:empty{display:none}
.student-flow .roster{align-items:stretch}
.student-flow .student{width:100%}

/* Classroom laptops: keep each student step visible without trapping zoomed users. */
@media(min-width:701px) and (max-height:720px){
  body:has(.student-flow) header{padding-top:7px;padding-bottom:7px}
  body:has(.student-flow) .brand-lockup{height:42px;font-size:22px}
  body:has(.student-flow) .brand-lockup img{width:50px;height:40px}
  body:has(.student-flow) main{margin-top:8px;margin-bottom:8px;min-height:0}
  body:has(.student-flow) footer{padding:7px 20px;font-size:13px}
  .student-flow .steps{margin-bottom:8px}
  .student-flow .student-step{padding:18px 24px}
  .student-flow .student-step h1,.student-flow>div>h1{font-size:30px;margin:7px 0}
  .student-flow .student-step p,.student-flow>div>.topline p,.student-flow>div>p{margin:5px 0;line-height:1.4}
  .student-flow .student-step input{margin-bottom:10px;padding:10px 14px}
  .student-flow .student-step button[type="submit"]{min-height:46px;padding:10px 18px}
  .student-flow .roster{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:10px 0;max-height:340px;overflow-y:auto;overscroll-behavior:contain;padding:2px}
  .student-flow .student{min-height:56px;height:auto;padding:7px 8px;border-radius:12px;flex-direction:row;justify-content:flex-start;gap:7px;font-size:15px;line-height:1.2;text-align:left}
  .student-flow .student .avatar{font-size:24px;line-height:1}
  .student-flow .pin-panel{margin:6px auto;padding:15px 22px}
  .student-flow .pin-panel h1{font-size:29px;margin:5px 0}
  .student-flow .pin-panel p{margin:4px 0;line-height:1.35}
  .student-flow .pin-panel label{margin-bottom:4px}
  .student-flow .pin-input{padding:6px 12px;margin-bottom:5px;font-size:23px}
  .student-flow .keypad{gap:5px;margin:7px 0}
  .student-flow .keypad button{min-height:44px;padding:5px;font-size:18px}
  .student-flow .pin-panel button[type="submit"]{min-height:44px;padding:8px 14px}
  .student-flow .activity-list{gap:12px;margin-top:10px}
  .student-flow .activity-card{padding:15px 18px;gap:3px}
  .student-flow .activity-card h2{font-size:22px}
  .student-flow .credential{padding:7px 0}
  .student-flow .credential-value{margin:2px 0 5px;font-size:16px}
  .student-flow .credential button{min-height:44px;padding:7px 12px}
  .student-flow .activity-card .launch{min-height:44px;margin-top:5px;padding:8px 14px}
  .student-flow .flow-actions{margin-top:7px}
}

@media(min-width:701px) and (max-width:1300px) and (max-height:720px){
  .student-flow .roster{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:700px), (max-height:560px){
  body:has(.student-flow){overflow-y:auto}
  .student-flow .roster{max-height:none;overflow:visible}
}
