@import url("/css/mosq-design.css?v=1.8.0");
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:#080b12;color:#111827}.auth-body{min-height:100vh;background:radial-gradient(circle at 15% 10%,#27141c 0,#080b12 38%,#05070b 100%);display:grid;place-items:center;padding:24px}.auth-shell{width:100%;max-width:470px}.auth-card{background:#fff;border-radius:24px;padding:34px;box-shadow:0 24px 80px #0008;border:1px solid #ffffff1a}.auth-card.wide{max-width:720px}.auth-brand{display:flex;gap:12px;align-items:center;margin-bottom:30px}.auth-brand>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#f41111;color:#fff;font-weight:900;font-size:24px;box-shadow:0 10px 24px #f4111140}.auth-brand strong{display:block;font-size:20px}.auth-brand small{display:block;color:#6b7280;margin-top:2px}.auth-card h1{font-size:30px;margin:0 0 8px}.auth-card p{color:#6b7280;line-height:1.55}.auth-field{display:block;font-weight:700;font-size:13px;margin:18px 0}.auth-field input{width:100%;margin-top:8px;padding:14px 15px;border:1px solid #d9dee7;border-radius:12px;font:inherit;outline:none}.auth-field input:focus{border-color:#f41111;box-shadow:0 0 0 3px #f4111114}.auth-btn{width:100%;border:0;border-radius:12px;background:#f41111;color:#fff;padding:14px 18px;font-weight:800;font-size:15px;cursor:pointer}.auth-btn:disabled{opacity:.55}.auth-btn.link{display:block;text-align:center;text-decoration:none;margin-top:18px}.auth-msg{color:#b91c1c!important;min-height:20px;font-weight:600}.auth-footer{text-align:center;color:#9ca3af;margin-top:26px;font-size:12px}.auth-alert{padding:14px;border-radius:12px;margin:18px 0}.auth-alert.warn{background:#fff7df;color:#805b00}.totp-grid{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:center;margin:20px 0}.qr{width:240px;height:240px;border-radius:12px;border:1px solid #e5e7eb}.secret{font-family:ui-monospace,Consolas,monospace;font-size:17px;word-break:break-all;background:#f4f6f8;padding:12px;border-radius:10px;color:#111!important}.muted{font-size:13px}.recovery{background:#f7f8fa;border:1px solid #e5e7eb;border-radius:14px;padding:18px;margin-top:18px}.recovery pre{white-space:pre-wrap;font:700 15px ui-monospace,Consolas,monospace;line-height:1.8}@media(max-width:640px){.auth-card{padding:24px;border-radius:18px}.totp-grid{grid-template-columns:1fr;text-align:center}.qr{margin:auto}}
.auth-alert.info{background:#eef7ff;color:#17466f;border:1px solid #cfe7fb}.totp-native{display:grid;gap:10px;margin:20px 0}.setup-row,.setup-secret{border:1px solid #e5e7eb;border-radius:12px;padding:13px 14px;background:#f8fafc}.setup-row span,.setup-secret>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-weight:800;margin-bottom:6px}.setup-secret{position:relative;padding-right:92px}.setup-secret code{font:800 16px ui-monospace,Consolas,monospace;word-spacing:4px;color:#111827}.setup-secret button{position:absolute;right:10px;top:50%;transform:translateY(-20%);border:0;background:#111827;color:white;border-radius:8px;padding:7px 11px;font-weight:700;cursor:pointer}.auth-details{margin:12px 0;color:#6b7280}.auth-details summary{cursor:pointer;font-weight:700}.auth-details .uri{display:block;margin-top:8px;padding:10px;background:#f4f6f8;border-radius:8px;word-break:break-all;color:#374151}/* v1.5.0b · QR TOTP local */
.qr-panel{display:flex;flex-direction:column;align-items:center;gap:9px}.qr-local{display:grid;place-items:center;background:#fff;padding:8px;overflow:hidden}.qr-local svg{display:block;width:100%;height:100%}.qr-caption{display:block;max-width:250px;text-align:center;color:#6b7280;line-height:1.4}.qr-error{padding:20px;color:#b91c1c;font-weight:700;text-align:center;font-size:13px}
/* v1.5.0c · 2FA enrollment diagnostics */
.auth-btn.secondary{margin-top:10px;background:#fff;color:#111827;border:1px solid #dbe0e7;box-shadow:none}.auth-btn.secondary:hover{background:#f5f7fa}.auth-msg{white-space:normal}.auth-details #clockInfo{font-size:12px;line-height:1.5;margin-top:10px}
/* v1.7.9 · Administrative pages and login on narrow screens. */
.auth-card,.auth-shell{min-width:0;max-width:100%}.auth-card input,.auth-card select,.auth-card textarea{min-width:0;max-width:100%}.auth-card h1,.auth-card h2,.auth-card p,.auth-card code,.auth-card strong{overflow-wrap:anywhere}
@media(max-width:640px){body.auth-body{padding:14px 10px}.auth-card{padding:20px 15px}.auth-card .bar,.auth-card .toplinks,.auth-card .actions{flex-wrap:wrap}.auth-card .grid{grid-template-columns:minmax(0,1fr)}.auth-card .grid>*{min-width:0}.auth-card input,.auth-card select,.auth-card textarea{font-size:16px}.auth-card button,.auth-card .btn2,.auth-card .link2{min-height:42px;white-space:normal}.auth-card .row{flex-wrap:wrap}.setup-secret{padding-right:14px}.setup-secret button{position:static;transform:none;margin-top:10px}.auth-card .table-wrap{max-width:100%;overscroll-behavior:contain}}
