.access-page{width:100%;max-width:1000px;margin:0 auto;padding:26px 0 48px;color:var(--ink,#292538)}
.access-entry{max-width:590px}.access-heading{margin-bottom:25px}.access-heading h1{font-size:clamp(30px,4vw,45px);margin:12px 0 14px;line-height:1.1}.access-heading p{color:var(--muted,#706c7d);max-width:660px;margin:0;font-size:16px}.access-eyebrow{color:var(--accent-dark,#554393);font-size:11px;font-weight:800;letter-spacing:.13em}.access-local{font-size:12px;color:var(--muted,#706c7d);margin:0 0 20px}
.access-card{padding:28px;border:1px solid var(--line,#e7e3ed);border-radius:24px;background:#fff;box-shadow:0 12px 32px #3c2a5808}.access-card h2{font-size:24px;margin-bottom:18px}.access-card p{overflow-wrap:anywhere}.access-card fieldset{padding:0;margin:0;min-width:0;border:0}.access-field{display:block;margin-bottom:19px;font-weight:650}.access-field input,.access-field select{width:100%;min-width:0;min-height:48px;margin-top:8px;display:block}.access-field small{display:block;color:var(--muted,#706c7d);font-size:12px;font-weight:400;margin-top:7px;line-height:1.5}.access-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.access-submit{width:100%;margin-top:5px}.access-help{font-size:13px;color:var(--muted,#706c7d);line-height:1.65;margin:12px 0 20px}.access-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line,#e7e3ed)}
.access-student-door{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:21px 0;color:var(--muted,#706c7d);font-size:14px}.access-message{padding:14px 17px;margin:0 0 20px;border:1px solid #bcdccb;border-radius:13px;background:#edf8f1;line-height:1.6;overflow-wrap:anywhere}.access-error{background:#fff1eb;border-color:#ebc5b5;color:#7a4436}.access-secret{border-color:#c3b6e4;background:linear-gradient(145deg,#fff,#f6f2ff)}.access-secret-value{font-family:ui-monospace,Consolas,monospace;font-size:18px;letter-spacing:.04em}.access-secret .btn{margin-top:12px}.access-credentials{display:grid;gap:12px;margin:22px 0}.access-credentials>div{padding:15px 17px;background:white;border:1px solid #e0d8ee;border-radius:12px}.access-credentials dt{font-size:12px;font-weight:650;color:var(--muted,#706c7d);margin-bottom:7px}.access-credentials dd{margin:0;font:700 clamp(19px,3vw,26px)/1.45 ui-monospace,Consolas,monospace;letter-spacing:.07em;overflow-wrap:anywhere;user-select:all}.access-code{font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere}
.access-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.access-card-top h2{margin:0 0 10px}.access-class-list,.access-roster{display:grid;gap:13px;margin-top:24px}.access-class,.access-student{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;background:#fcfbfd;border:1px solid var(--line,#e7e3ed);border-radius:17px}.access-class h3,.access-student h3{font-size:19px;line-height:1.3;margin:0 0 7px;overflow-wrap:anywhere}.access-class p,.access-student p{margin:0 0 8px;color:var(--muted,#706c7d);font-size:13px}.access-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.access-badge{display:inline-block;padding:5px 10px;border-radius:20px;background:#e0f2e8;color:#376e54;font-size:11px;font-weight:700}.access-inactive{background:#eeeaf2;color:#75697e}.access-empty{padding:24px;border:1px dashed #dcd3e8;border-radius:15px;color:var(--muted,#706c7d);margin:0}.access-progress{color:var(--muted,#706c7d);font-size:13px;margin:16px 0 0}.access-class>div,.access-student>div{min-width:0}.access-class .btn{flex-shrink:0}
@media(max-width:650px){.access-page{padding:16px 0 30px}.access-card{padding:21px;border-radius:20px}.access-fields{grid-template-columns:1fr}.access-card-top,.access-class,.access-student{flex-direction:column;align-items:stretch;gap:14px}.access-student-door{flex-direction:column;align-items:stretch;text-align:center}.access-links .btn,.access-actions .btn{flex:1 1 150px}.access-secret-value{font-size:16px}.access-heading h1{font-size:32px}.access-roster{gap:12px}}
