.student-page{max-width:1240px;padding:calc(28px + env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));color:#192d42}
.student-header{gap:16px;margin-bottom:24px}
.student-heading{flex:1;min-width:0}.student-page .student-heading h1{text-align:left;font-size:clamp(1.45rem,3vw,2rem);line-height:1.2;min-width:0}
.student-eyebrow{margin:0 0 7px;font-size:.7rem;font-weight:800;letter-spacing:.12em;color:#52746f}
#student-class{display:inline-block;letter-spacing:0;margin-left:8px;padding:4px 9px;border-radius:6px;background:#e2f1ec;color:#23695c}
.student-page .btn{min-height:44px;border-radius:11px;font-size:.88rem;white-space:normal}
.student-join{display:flex;align-items:center;justify-content:space-between;gap:32px;margin:32px 0;padding:32px;border:1px solid #dbe7e4;border-radius:22px;background:linear-gradient(120deg,#fff,#edf7f3);box-shadow:0 10px 32px #173e3610}
.student-join h2{margin:0 0 10px;font-size:1.6rem}.student-join p:not(.student-eyebrow){margin:0;max-width:360px;color:#5b6f7d;line-height:1.6}
.student-code-entry{min-width:0}.student-code-entry label{display:block;font-size:.85rem;font-weight:750;margin-bottom:8px}.student-code-entry small{display:block;color:#61787d;margin-top:10px;font-size:.78rem}
.student-code-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#student-code{width:128px;min-width:0;padding:12px;border:1px solid #a9c7bf;border-radius:11px;background:#fff;font:800 1.3rem/1.2 system-ui;letter-spacing:.16em;text-align:center;text-transform:uppercase;color:#192d42}
.student-status{font-size:.85rem;line-height:1.5;color:#5b6f7d;margin:12px 4px}.student-status:empty{display:none}
.student-stage{overflow:hidden;border:1px solid #dbe5e9;border-radius:20px;background:#fff;box-shadow:0 8px 30px #192d420a}
.student-toolbar{display:flex;align-items:flex-end;gap:12px;padding:18px 20px;background:#f7faf9;border-bottom:1px solid #e2eae7}
.student-person-field{flex:0 1 380px;min-width:0}.student-person-field label{display:block;font-size:.75rem;font-weight:800;color:#52746f;margin-bottom:7px}
#student-person{width:100%;min-height:46px;padding:10px 34px 10px 12px;border:1px solid #cbdad6;border-radius:11px;background:#fff;font:inherit;font-size:.92rem;color:#192d42;text-overflow:ellipsis}
.student-display-actions{display:flex;margin-left:auto;flex:none}
#student-runtime{min-width:0}#student-runtime iframe{display:block;width:100%;height:72dvh;min-height:450px;border:0;background:white}
.student-page :focus-visible{outline:3px solid #20a08c;outline-offset:3px}
.student-results-dialog{width:calc(100% - 32px);max-width:540px;max-height:calc(100dvh - 32px);padding:28px;border:1px solid #dbe5e9;border-radius:22px;color:#192d42;box-shadow:0 24px 80px #152f4233}
.student-results-dialog::backdrop{background:#152f4277;backdrop-filter:blur(4px)}
.student-dialog-header{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;margin-bottom:24px}.student-dialog-header h2{margin:0;font-size:1.5rem}.student-dialog-header .btn{flex:none}
#student-values h3{font-size:.95rem}#student-values p{overflow-wrap:anywhere;line-height:1.6}#student-values p:not(:first-of-type){padding:12px 14px;background:#f1f7f5;border-radius:10px;font-weight:650}
#student-receipt{font-size:.9rem;line-height:1.6;color:#52746f}.student-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.student-body-fs{overflow:hidden!important}
#student-tool:fullscreen{width:100%;height:100dvh;border:0;border-radius:0;background:#fff;display:flex;flex-direction:column}
#student-tool:-webkit-full-screen{width:100%;height:100dvh;border:0;border-radius:0;background:#fff;display:flex;flex-direction:column}
#student-tool.is-fullscreen-fallback{position:fixed;inset:0;z-index:1000001;width:100%;height:100dvh;border:0;border-radius:0;background:#fff;display:flex;flex-direction:column}
.student-body-fs .student-toolbar{flex:none;padding-top:max(12px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
.student-body-fs #student-runtime{flex:1;min-height:0}.student-body-fs #student-runtime iframe{height:100%;min-height:0}
@media(max-width:700px){.student-page{padding:calc(16px + env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}.student-header{gap:12px}.student-header>#student-change-code{margin-left:auto;font-size:.78rem}.student-heading{flex-basis:calc(100% - 64px)}.student-join{margin:20px 0;padding:24px;flex-direction:column;align-items:stretch;gap:24px}.student-join h2{font-size:1.4rem}.student-toolbar{gap:10px;padding:14px;flex-wrap:wrap}.student-person-field{flex:1 1 150px}.student-toolbar>#student-capture{flex:0 1 145px;min-height:46px;padding:8px 12px}.student-display-actions{width:100%;justify-content:flex-end}.student-display-actions .btn{font-size:.78rem;min-height:38px;padding:6px 12px}#student-runtime iframe{height:68dvh;min-height:380px}.student-results-dialog{padding:22px}.student-dialog-header .student-eyebrow{font-size:.62rem}}
.custom-tools .student-header{display:grid;grid-template-columns:44px minmax(0,1fr) auto}
@media(max-width:700px){.custom-tools .student-header{grid-template-columns:40px minmax(0,1fr);gap:12px}.student-header>#student-change-code{grid-column:2;justify-self:start;margin-left:0}.student-page .student-heading h1{font-size:1.4rem}.student-eyebrow{line-height:1.6}}
