*,:before,:after{box-sizing:border-box}html{height:100%}body{color:#26313c;background:#eef1f4;flex-direction:column;align-items:center;min-height:100%;margin:0;padding:24px 16px;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex}.auth-card{background:#fff;border:1px solid #c2ccd5;border-radius:10px;width:100%;max-width:380px;margin-top:8vh;padding:24px;box-shadow:0 6px 20px #0000001f}.auth-card--wide{max-width:860px;margin-top:0}.auth-brand{letter-spacing:.08em;text-transform:uppercase;color:#8b97a3;margin:0 0 4px;font:600 10px/1.4 system-ui,sans-serif}.auth-title{margin:0 0 16px;font-size:20px;font-weight:650;line-height:1.25}.auth-subtitle{margin:24px 0 10px;font-size:15px;font-weight:650}.auth-text{color:#5b6675;margin:0 0 14px}.auth-hint{color:#7a8894;margin:4px 0 0;font-size:12px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-field label{font-size:13px;font-weight:600}.auth-field input{width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #c2ccd5;border-radius:8px;padding:9px 10px}.auth-field input[readonly]{color:#5b6675;background:#f5f7fa}.auth-field input.auth-code{letter-spacing:.3em;font:18px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace}.auth-btn{cursor:pointer;color:#fff;background:#2f6fb7;border:1px solid #2f6fb7;border-radius:8px;padding:9px 16px;font:600 14px system-ui,sans-serif}.auth-btn:hover{background:#285f9e}.auth-btn:disabled{opacity:.55;cursor:not-allowed}.auth-btn--quiet{color:#33404c;background:#fff;border-color:#c2ccd5}.auth-btn--quiet:hover{background:#f1f4f7}.auth-btn--small{padding:5px 10px;font-size:12px}.auth-btn--danger{color:#b00020}.auth-link{color:#2f6fb7;text-decoration:underline}.auth-linkbtn{font:inherit;cursor:pointer;color:#2f6fb7;background:0 0;border:0;align-self:flex-start;padding:0;text-decoration:underline}.auth-field input:focus-visible,.auth-btn:focus-visible,.auth-link:focus-visible,.auth-linkbtn:focus-visible{outline-offset:2px;outline:2px solid #2f6fb7}.auth-message{border-radius:8px;margin:0;padding:9px 12px;font-size:13px}.auth-message[hidden]{display:none}.auth-message--error{color:#8c0019;background:#fdecef;border:1px solid #f3c2cb}.auth-message--info{color:#1f5a23;background:#e9f5ea;border:1px solid #bfdcc1}.auth-authenticator{background:#f5f7fa;border:1px solid #e2e6ec;border-radius:8px;flex-direction:column;gap:10px;padding:14px;display:flex}.auth-qr{background:#fff;border-radius:6px;align-self:center;width:180px;height:180px;display:block}.auth-qr[hidden]{display:none}.auth-key{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#fff;border:1px solid #c2ccd5;border-radius:8px;padding:8px 10px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.admin-head{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:8px;display:flex}.admin-head .auth-title{margin:0 auto 0 0}.admin-create{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.admin-create .auth-field{flex:220px}.admin-stack{flex-direction:column;gap:12px;display:flex}.admin-link{background:#e4eefa;border:1px solid #b9d0ea;border-radius:8px;flex-direction:column;gap:8px;padding:14px;display:flex}.admin-link[hidden]{display:none}.admin-link__title{margin:0;font-weight:650}.admin-link__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-link__row .auth-key{flex:260px}.admin-link__note{color:#33404c;margin:0;font-size:13px}.admin-table-wrap{border:1px solid #e2e6ec;border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;white-space:nowrap;padding:8px 10px}.admin-table th{letter-spacing:.08em;text-transform:uppercase;color:#8b97a3;background:#f5f7fa;font:600 10px/1.4 system-ui,sans-serif}.admin-table tbody tr{border-top:1px solid #e2e6ec}.admin-table td.admin-email{white-space:normal;overflow-wrap:anywhere;min-width:160px}.admin-actions{flex-wrap:wrap;gap:6px;display:flex}.admin-status{font-weight:600}.admin-status--active{color:#2e7d32}.admin-status--deactivated{color:#b00020}.admin-status--awaiting_setup{color:#8a5a12}.admin-empty{color:#7a8894;text-align:center;margin:0;padding:14px}@media (width<=480px){body{padding:12px 10px}.auth-card{margin-top:2vh;padding:18px 16px}}
