*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f5f7fb;color:#172033}.home{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px}.brand{text-align:center;margin-bottom:36px}.logo{width:72px;height:72px;border-radius:20px;background:#0b3d91;color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;margin:auto}.brand h1{margin:16px 0 6px;font-size:32px}.brand p{margin:0;color:#667085}.entry-grid{width:min(900px,100%);display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.entry-card{background:#fff;border:1px solid #e4e7ec;border-radius:24px;padding:34px;box-shadow:0 12px 35px #10182812;text-align:center}.icon{font-size:42px}.entry-card h2{font-size:25px;margin:14px 0 8px}.entry-card p{color:#667085;min-height:48px;line-height:1.5}.btn{display:inline-block;border:0;border-radius:12px;padding:14px 20px;text-decoration:none;font-weight:700;cursor:pointer}.primary{background:#0b3d91;color:#fff}.secondary{background:#0f766e;color:#fff}footer{margin-top:35px;color:#98a2b3;font-size:13px}.page{min-height:100vh;padding:24px;max-width:1100px;margin:auto}.panel{background:#fff;border:1px solid #e4e7ec;border-radius:18px;padding:24px;margin-bottom:20px}.progress{height:12px;background:#eaecf0;border-radius:99px;overflow:hidden}.progress>div{height:100%;width:0;background:#0b3d91;transition:.3s}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.input{width:100%;padding:13px;border:1px solid #d0d5dd;border-radius:10px}.field{margin:14px 0}.field label{display:block;font-weight:700;margin-bottom:7px}.muted{color:#667085}.success{color:#027a48}.danger{color:#b42318}.subject{padding:10px 14px;border:1px solid #d0d5dd;border-radius:10px;background:#fff}.question{font-size:20px;line-height:1.5}.option{display:block;padding:14px;border:1px solid #d0d5dd;border-radius:10px;margin:10px 0;cursor:pointer}.option:hover{background:#f9fafb}
.student-landing{background:linear-gradient(135deg,#eefaf4,#f7f9fc);min-height:100vh}.landing-shell{min-height:100vh;max-width:1180px;margin:auto;padding:28px}.landing-card{background:#fff;border:1px solid #dfe7e2;border-radius:28px;box-shadow:0 24px 70px #153e2b14;overflow:hidden}.school-brand{display:flex;align-items:center;gap:18px;padding:30px 36px;border-bottom:1px solid #edf1ee}.school-mark{width:68px;height:68px;border-radius:18px;background:#087443;color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:.5px}.school-mark.small{width:58px;height:58px;margin:0 auto 18px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#087443;margin:0 0 6px}.school-brand h1{margin:0;font-size:30px}.subtitle{margin:6px 0 0;color:#667085}.preparation-layout{display:grid;grid-template-columns:.9fr 1.35fr;gap:0}.instructions{padding:34px;background:#f6fbf8;border-right:1px solid #e4eee8}.instructions h2{margin:14px 0}.instructions ol{padding-left:20px;line-height:1.75;color:#475467}.step-badge{display:inline-block;background:#dff6e9;color:#087443;padding:7px 10px;border-radius:99px;font-size:11px;font-weight:800}.offline-note{margin-top:24px;padding:14px;border-radius:12px;background:#fff8e6;color:#7a5b00;border:1px solid #f5df9b;font-size:13px}.preparation{padding:34px}.status-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.status-head h2{margin:0;font-size:28px}.connection{padding:7px 11px;border-radius:99px;font-size:11px;font-weight:800}.connection.online{background:#dcfae6;color:#067647}.connection.offline{background:#fff1f3;color:#b42318}.connection.ready{background:#dcfae6;color:#067647}.progress-wrap{display:flex;align-items:center;gap:14px;margin:22px 0}.progress-wrap .progress{flex:1}.progress{background:#e7ece9}.progress>div{background:#087443}.download-list{border:1px solid #e4e7ec;border-radius:14px;overflow:hidden}.download-list div{display:flex;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #edf0ee}.download-list div:last-child{border-bottom:0}.download-list b{color:#667085}.download-list b.good{color:#087443}.ready-box{display:flex;gap:15px;align-items:center;margin-top:20px;padding:18px;border-radius:14px;background:#ecfdf3;border:1px solid #abefc6}.ready-icon{width:42px;height:42px;border-radius:50%;background:#087443;color:#fff;display:grid;place-items:center;font-size:22px;font-weight:900}.ready-box h3{margin:0;color:#067647}.ready-box p{margin:4px 0;color:#475467}.ready-instruction{font-weight:800!important;color:#067647!important}.login-btn{width:100%;margin-top:20px;background:#087443;color:#fff}.login-btn:disabled{background:#b8c7be;cursor:not-allowed}.modal{position:fixed;inset:0;background:#10182899;display:grid;place-items:center;padding:20px;z-index:20}.modal[hidden]{display:none}.modal-card,.admin-card{background:#fff;border-radius:22px;padding:30px;width:min(480px,100%);box-shadow:0 24px 70px #10182833}.modal-close{float:right;border:0;background:#f2f4f7;width:34px;height:34px;border-radius:50%;font-size:22px;cursor:pointer}.full{width:100%}.admin-login{min-height:100vh;background:linear-gradient(135deg,#eefaf4,#f7f9fc)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.admin-card{text-align:left}.admin-card .school-mark{margin-left:0}.back-link{display:inline-block;margin-top:18px;color:#087443;text-decoration:none;font-weight:700}@media(max-width:800px){.preparation-layout{grid-template-columns:1fr}.instructions{border-right:0;border-bottom:1px solid #e4eee8}.landing-shell{padding:12px}.school-brand{padding:24px}.preparation{padding:24px}}

/* Student landing / preparation interface */
.status-message{line-height:1.6;max-width:620px}.preparation-status{display:flex;gap:14px;align-items:center;padding:17px 18px;margin:0 0 18px;border:1px solid #e4eee8;border-radius:14px;background:#f8fbf9}.status-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e7f7ed;color:#087443;font-size:20px;font-weight:800;flex:0 0 auto}.status-icon.complete{background:#087443;color:#fff}.preparation-status strong{display:block;color:#172033}.preparation-status p{margin:4px 0 0;color:#667085;font-size:13px}.student-login{margin-top:22px;padding:20px;border:1px solid #e4e7ec;border-radius:16px;background:#fff}.login-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:6px}.login-heading h3{margin:0;font-size:18px}.login-lock{display:inline-flex;padding:6px 10px;border-radius:99px;background:#f2f4f7;color:#667085;font-size:10px;font-weight:800;letter-spacing:.5px}.login-lock.unlocked{background:#dcfae6;color:#067647}.login-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.student-login .field{margin:12px 0}.student-login .input:disabled{background:#f4f6f5;color:#98a2b3;cursor:not-allowed}.student-login .input:focus{border-color:#087443;outline:3px solid #08744318}.login-message{min-height:20px;margin:10px 0 0;font-size:13px}.login-btn{transition:.2s}.login-btn:not(:disabled):hover{background:#06663b;transform:translateY(-1px)}@media(max-width:800px){.login-fields{grid-template-columns:1fr}.student-login{padding:17px}}

/* v4 professional student landing layout */
.student-workspace{display:grid;grid-template-columns:1fr 1fr;min-height:420px}
.instructions{padding:38px 40px;background:#f6fbf8;border-right:1px solid #e4eee8}
.instructions h2{font-size:25px;margin:15px 0 8px}.instructions .intro-text{color:#667085;line-height:1.6;margin:0 0 14px}.instructions ol{margin:0;padding-left:21px;line-height:1.75;color:#475467}.instructions li{padding:3px 0}.instructions strong{color:#087443}
.login-panel{padding:38px 40px;background:#fff;display:flex;flex-direction:column;justify-content:center}.login-panel-head{text-align:center}.session-icon{width:52px;height:52px;margin:0 auto 13px;border-radius:16px;background:#e7f7ed;color:#087443;display:grid;place-items:center;font-size:27px;font-weight:900}.login-panel-head h2{font-size:28px;margin:0 0 7px}.student-login{margin-top:20px;padding:0;border:0;background:transparent}.student-login .field{margin:14px 0}.student-login .input{min-height:49px}.login-btn{min-height:50px;font-size:14px;letter-spacing:.2px}.login-status{display:flex;gap:11px;align-items:center;margin-top:18px;padding:13px 15px;border:1px solid #e4e7ec;border-radius:13px;background:#f8faf9}.login-status>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eef1ef;font-size:14px}.login-status strong{display:block;font-size:13px}.login-status p{margin:2px 0 0;color:#667085;font-size:12px;line-height:1.4}.login-status.ready{background:#ecfdf3;border-color:#abefc6}.login-status.ready>span{background:#087443;color:#fff}
.download-section{padding:30px 40px 34px;border-top:1px solid #e4eee8;background:#fbfdfc}.download-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.download-head h2{margin:0;font-size:23px}.download-head .status-message{margin:6px 0 0}.download-section .progress-wrap{margin:20px 0 13px}.download-section .progress{height:14px}.preparation-status{margin:0}.ready-box{margin-top:16px}
@media(max-width:800px){.student-workspace{grid-template-columns:1fr}.instructions{border-right:0;border-bottom:1px solid #e4eee8;padding:28px}.login-panel{padding:30px 28px}.download-section{padding:27px 28px}.download-head{flex-direction:column}.landing-shell{padding:12px}.school-brand{padding:24px}}
