.signin{max-width:590px;margin:36px auto}.signin-tabs{display:flex;gap:12px;margin-bottom:25px}.signin form>button{width:100%;margin:25px 0}.staff-class-select{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:25px 0}.staff-class-select label{margin:0}.staff-class-select select{width:auto;max-width:100%}input:not([type=hidden]),select,textarea{font:inherit;border:2px solid #cbd2df;background:#fff;color:var(--ink);border-radius:10px;width:100%;padding:12px;min-height:48px;box-sizing:border-box}select:focus-visible,textarea:focus-visible{outline:3px solid #f3b54d;outline-offset:3px}textarea{resize:vertical}form>button{margin-top:20px}.staff-controls form{padding:0 0 20px;max-width:580px}.staff-controls{border-top:1px solid var(--line);padding-top:20px}.roster-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.roster-pupil{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;align-items:start}.roster-pupil.selected{border-color:var(--purple);box-shadow:inset 0 0 0 1px var(--purple)}.roster-pupil>div{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;width:100%;margin-bottom:12px}.roster-pupil h3{margin:14px 0 8px}.roster-pupil p{font-size:14px}.roster-pupil>button{margin-top:auto}.pupil-detail{scroll-margin-top:20px}.teacher-card>details{padding:18px 0;border-top:1px solid var(--line)}.code-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:25px}.code-grid article{border:1px dashed var(--purple);border-radius:10px;padding:20px;break-inside:avoid}.code-grid article p{margin:4px 0}.code-grid dt{font-size:13px}.code-grid dd{margin:0 0 10px;font-family:monospace;font-size:19px;font-weight:700;letter-spacing:1px}.print-progress{display:none}header nav button{padding:8px 12px;font-size:14px}.brand{min-width:0}#teacher-tab[hidden],#pupil-tab[hidden],#signout[hidden]{display:none}.teacher-card,.roster-pupil,.signin{overflow-wrap:anywhere}body{min-width:0}@media(max-width:850px){.roster-cards,.code-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.roster-cards,.code-grid{grid-template-columns:1fr}.staff-class-select{display:block}.staff-class-select label,.staff-class-select span{display:block;margin:8px 0}.staff-class-select select{width:100%}.teacher-head>button{margin-top:20px}.signin{padding:25px 20px;margin:20px auto}header{gap:8px;flex-wrap:wrap}header nav{display:flex;gap:6px}.brand{font-size:17px}main{padding-left:16px;padding-right:16px}}
@media print{header,footer,.preview-note,#notice,.no-print{display:none!important}main{max-width:none;margin:0;padding:0}body{background:white;color:black}body[data-print="print-progress"] #app>*{display:none!important}body[data-print="print-progress"] #app>.print-progress{display:block!important}.print-pupil{break-inside:avoid;border-bottom:1px solid #ccc;padding:12px 0}.print-pupil p{font-size:11pt;margin:5px 0}body[data-print="print-codes"] #app>*{display:none!important}body[data-print="print-codes"] #app>.code-sheet{display:block!important;border:0;padding:0}.code-grid{grid-template-columns:repeat(2,1fr)}.code-grid article{color:black}.print-progress h1{font-size:22pt}}
.coverage-group{border-top:1px solid var(--line);padding:18px 0}.coverage-group>summary{display:flex;flex-direction:column;gap:8px}.coverage-group details{margin:18px 0 0;padding:16px;border:1px solid var(--line);border-radius:12px}.coverage-group li,#coverage-result li{overflow-wrap:anywhere;font-size:14px;margin-bottom:10px}#coverage-result{margin-top:22px}#coverage-groups{margin-top:24px}#coverage-json{font-family:monospace;font-size:13px}.code-grid dd{overflow-wrap:anywhere}
