@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap');
:root{--ink:#49352b;--green:#c4e6d9;--paper:#fff7d9}*{box-sizing:border-box}body.auth-page{margin:0;background-color:#fff7d9;background-image:radial-gradient(#d9bc782e 1px,transparent 1px);background-size:14px 14px;color:#49352b;font:16px Nunito,system-ui,sans-serif}.auth-brand{display:block;width:max-content;margin:24px auto 8px;font-size:35px;font-weight:900;letter-spacing:-1.5px;text-decoration:none;color:#49352b}.auth-brand span{color:#719987}.auth-layout{padding:20px 16px 40px;max-width:none}.auth-card{margin:auto;width:min(100%,460px);background:#fffdf0;border:2px solid #49352b;border-radius:24px;box-shadow:5px 6px 0 #d9b78c;padding:28px}.auth-card h1{font-family:inherit;font-size:34px;line-height:1.12;letter-spacing:-1px;margin:12px 0}.auth-card h2{font-family:inherit;font-size:22px}.auth-card p{line-height:1.55}.auth-card label{display:block;font-size:14px;font-weight:800;margin-top:16px}.auth-card input{width:100%;border:2px solid #b79c78;border-radius:12px;padding:13px;margin:7px 0 3px;background:#fffef8;font:inherit;min-height:48px;color:inherit}.auth-card button{font:800 16px Nunito,system-ui,sans-serif;min-height:48px;border:2px solid #49352b;border-radius:13px;background:#c4e6d9;color:#49352b;cursor:pointer;padding:10px 16px;box-shadow:2px 3px 0 #49352b}.auth-card form>button{width:100%;margin-top:16px}.auth-card button:disabled{opacity:.6;cursor:wait}.auth-card .text-button{box-shadow:none;border:0;background:transparent;text-decoration:underline;font-size:14px;width:100%;margin-top:13px}.auth-card .eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:900;color:#8a6d50}.auth-note{font-size:12px;color:#806b55;margin:16px 0 0}.auth-error{font-size:14px;color:#934b3d;overflow-wrap:anywhere}.auth-error:empty{display:none}.auth-pet{font-size:38px}.muted{color:#806b55}.hidden{display:none!important}.teacher-card{max-width:820px;width:100%}.teacher-section{border-top:1px dashed #bfa47e;margin-top:26px;padding-top:23px}.teacher-create{display:flex;gap:12px;align-items:center}.teacher-create input{min-width:0}.teacher-create button{white-space:nowrap;font-size:13px}.teacher-list-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.student-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #e4d6b8}.student-row strong{overflow-wrap:anywhere}.student-row small{display:block;color:#806b55;font-size:12px}.student-actions{display:flex;gap:9px}.student-actions button{font-size:12px;box-shadow:1px 2px 0 #49352b;min-height:44px}.issued-password{background:#e0ece0;padding:16px;border:1px solid #9cb69b;border-radius:12px;margin-top:16px}.issued-password code{display:block;overflow-wrap:anywhere;font-size:20px;padding:10px 0}.issued-password button{font-size:13px;width:100%;margin-top:9px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #568778;outline-offset:3px}@media(max-width:500px){.auth-card{padding:22px}.auth-card h1{font-size:30px}.teacher-create{align-items:stretch;flex-direction:column;gap:8px}.student-row{align-items:start;flex-direction:column}.student-actions{width:100%}.student-actions button{flex:1}.teacher-list-head h2{margin:0}}

/* Keep issued credentials in view even when resetting at the bottom of a long list. */
.student-row{flex-wrap:wrap}.row-error{flex-basis:100%;margin:0}.auth-card .issued-password{color:var(--ink);background:#fffdf0;border:2px solid #49352b;border-radius:22px;padding:24px;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;box-shadow:5px 6px 0 #d9b78c}.issued-password::backdrop{background:#49352b80}.issued-password h2{margin:0 0 14px}.issued-password code{user-select:all}.issued-password textarea{width:100%;resize:vertical;font:14px/1.5 monospace;padding:10px;border:2px solid #b79c78;border-radius:10px;background:#fffef8;color:inherit}.issued-password #copy-status{font-size:14px}.issued-password #dismiss-secret{background:#fff0c4}

.student-actions{flex-wrap:wrap}.issued-password code{white-space:pre-wrap;word-break:break-all}
