*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f2f4f7;font-family:system-ui,"Segoe UI",sans-serif;color:#101828}
.card{width:100%;max-width:420px;background:#fff;border:1px solid #e4e7ec;border-radius:12px;padding:28px 28px 24px;box-shadow:0 4px 16px rgba(16,24,40,.06)}
h1{margin:0 0 20px;font-size:20px;color:#163459;line-height:1.3}
h1 .sub{display:block;font-size:15px;font-weight:500;color:#475467}
h2{font-size:16px;margin:0 0 8px}
label{display:block;font-size:14px;font-weight:600;margin:12px 0}
input[type=email],input[type=password],input:not([type]),input[inputmode]{display:block;width:100%;margin-top:6px;padding:10px 12px;font-size:15px;border:1px solid #d0d5dd;border-radius:8px}
input:focus{outline:2px solid #2e6fd8;outline-offset:1px}
button{width:100%;margin-top:12px;padding:11px;font-size:15px;font-weight:600;border:0;border-radius:8px;background:#163459;color:#fff;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
button.secondary{background:#eef2f6;color:#163459}
button.link{background:none;color:#475467;font-weight:500;text-decoration:underline}
.hint{font-size:13px;color:#475467;line-height:1.45;padding-left:0}
ol.hint{padding-left:18px}
.msg{padding:10px 12px;border-radius:8px;font-size:14px;background:#fef3f2;color:#b42318;border:1px solid #fecdca}
.msg.ok{background:#ecfdf3;color:#067647;border-color:#abefc6}
.qr{text-align:center;margin:8px 0}
.qr img{image-rendering:pixelated}
code{word-break:break-all;font-size:13px}
.codes{columns:2;font-family:ui-monospace,Consolas,monospace;font-size:15px;padding-left:18px}
.check{display:flex;gap:8px;align-items:center;font-weight:500}
details{font-size:13px;margin:8px 0}
.hidden{display:none!important}
