.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid label,.field{display:grid;gap:6px;font-size:12px;font-weight:700}.form-grid input,.form-grid select,.field input{width:100%;padding:12px;border:1px solid #b9cfde;border-radius:9px;color:var(--ink);background:white}.form-grid .full{grid-column:1/-1}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.stack{display:grid;gap:12px}.inline-error{padding:14px;border-radius:9px;background:#fff1e9;color:#8c342c;font-size:13px;margin-bottom:16px}.class-title{display:flex;gap:15px;align-items:center;justify-content:space-between}.code-sheet{background:#e8f7f0;border:1px solid #b6dac9}.code-sheet code{display:block;font-size:19px;letter-spacing:1px;margin:7px 0}.team-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.team-actions button{font-size:11px;padding:7px}.saved-turn{border-bottom:1px solid var(--line);padding:18px 0}.saved-turn small{font-size:11px;color:var(--muted)}.flag{color:#8a5720;background:#fff3d9;padding:4px 8px;border-radius:7px;font-size:11px}.login-actions{display:grid;gap:12px;margin:25px 0}.login-actions .button{white-space:normal}.entry .panel p{font-size:14px}.profile-tag{font-size:11px;color:var(--muted)}.grant{border-top:1px solid var(--line);padding:16px 0}.grant:first-child{border:0}.grant input[type=checkbox]{width:auto}.grant-labels{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;margin:12px 0}.team .button{width:auto}.teams .team{display:block}.team code{overflow-wrap:anywhere;font-size:15px}.chat-panel .message{white-space:pre-wrap;overflow-wrap:anywhere}.login-page{max-width:520px}.expired-banner{padding:18px;background:#fff1e9;color:#8c342c}.section-top .actions{justify-content:flex-end}.working{opacity:.6;pointer-events:none}@media(max-width:760px){.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.class-title{flex-wrap:wrap}.section-top{flex-wrap:wrap}.header{height:auto;min-height:75px;flex-wrap:wrap;padding:15px 20px}.nav{flex-wrap:wrap}.code-sheet code{font-size:16px}.role-list{grid-template-columns:repeat(3,minmax(0,1fr))}.team-actions .button{width:auto}.page-intro{margin-top:12px}}
/* Print just the issued team slips, without dashboard content or controls. */
@media print {
  @page { margin: 0; }
  body { background: #fff; padding: 12mm; color: #000; }
  body > :not(#app),
  #app > :not(main.layout),
  main.layout > :not(.code-sheet),
  .code-sheet > :not(.teams):not(.print-heading) { display: none !important; }
  main.layout { display: block; max-width: none; margin: 0; padding: 0; }
  .code-sheet { margin: 0; padding: 0; border: 0; background: #fff; box-shadow: none; }
  .code-sheet .teams { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8mm; }
  .code-sheet .team { display: block; border: 1px dashed #777; border-radius: 0; padding: 8mm; break-inside: avoid; }
  .code-sheet .team strong { font-size: 14pt; }
  .code-sheet code { color: #000; font-size: 18pt; letter-spacing: 1px; overflow-wrap: anywhere; }
}

.section-card summary{cursor:pointer;list-style-position:outside}.section-card summary h2{display:inline-block;margin:8px 0}.section-card summary .eyebrow,.section-card summary .muted{display:block}.section-card[open] summary{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}.rename-form,.reopen-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:15px 0}.rename-form label,.reopen-form label{display:grid;gap:5px;font-size:12px;flex:1;min-width:140px}.rename-form input,.reopen-form select{padding:10px;border:1px solid #b9cfde;border-radius:8px;width:100%;background:white;color:var(--ink)}.delete-area{border-top:1px solid var(--line);margin-top:24px;padding-top:12px;font-size:12px}.code-sheet .team strong,.code-sheet .team small{display:block}.print-heading{margin-bottom:18px}

.teacher-directory{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}.teacher-card{display:grid;gap:9px;text-align:left;border:1px solid #b9cfde;background:#f5fafc;border-radius:12px;padding:18px;cursor:pointer;color:var(--ink);font:inherit;overflow-wrap:anywhere}.teacher-card small{color:var(--muted)}.teacher-card span{font-size:12px;font-weight:700}.teacher-card.selected{background:#e8f7f0;border:2px solid #3a8269;padding:17px}.teacher-card:focus-visible{outline:3px solid #267da0;outline-offset:3px}
