:root { --auth-ink:#203644; --auth-green:#2f6f78; --auth-gold:#5d8791; --auth-border:#dce4e9; }
* { box-sizing:border-box; }
body.admin-auth-page { min-height:100vh; margin:0; padding:24px; display:flex; align-items:center; justify-content:center; overflow-x:hidden; background:radial-gradient(circle at 15% 14%,rgba(113,167,177,.19),transparent 26%),radial-gradient(circle at 90% 86%,rgba(92,132,159,.18),transparent 31%),linear-gradient(135deg,#172833 0%,#274250 52%,#182b36 100%); color:#435864; font-family:"Manrope","Segoe UI",Arial,sans-serif; }
body.admin-auth-page:before, body.admin-auth-page:after { position:fixed; width:340px; height:340px; border:1px solid rgba(183,214,220,.16); border-radius:50%; content:""; pointer-events:none; }
body.admin-auth-page:before { top:-180px; right:-105px; }
body.admin-auth-page:after { bottom:-210px; left:-115px; }
.auth-shell { position:relative; z-index:1; width:min(100%,440px); }
.auth-shell-wide { width:min(100%,850px); }
.auth-card { overflow:hidden; border:1px solid rgba(255,255,255,.3); border-radius:15px; background:rgba(255,255,255,.98); box-shadow:0 24px 65px rgba(5,23,11,.34); }
.auth-card-top { padding:30px 34px 24px; border-bottom:1px solid #e5ebee; background:linear-gradient(135deg,#fbfcfd,#f1f6f8); text-align:center; }
.auth-logo { display:flex; height:68px; align-items:center; justify-content:center; margin:0 0 16px; }
.auth-logo img { max-width:205px; max-height:68px; object-fit:contain; }
.auth-eyebrow { display:block; margin-bottom:5px; color:#5c8390; font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.auth-card h1 { margin:0; color:var(--auth-ink); font-size:21px; font-weight:800; letter-spacing:-.025em; }
.auth-card-top p { margin:7px 0 0; color:#71828c; font-size:12px; line-height:1.6; }
.auth-card-body { padding:26px 34px 30px; }
.auth-card .alert { margin-bottom:18px; padding:10px 12px; border-radius:7px; font-size:12px; }
.auth-card label { margin-bottom:7px; color:#4b6370; font-size:12px; font-weight:700; }
.auth-card .form-group { margin-bottom:16px; }
.auth-input { position:relative; }
.auth-input .form-control { height:43px; padding:8px 39px 8px 12px; border-color:#cfdae0; border-radius:7px; color:#38515e; font-size:13px; }
.auth-input .form-control:focus { border-color:#84adb3; box-shadow:0 0 0 3px rgba(47,111,120,.13); }
.auth-input > i { position:absolute; z-index:2; top:50%; right:13px; transform:translateY(-50%); color:#5c8791; font-size:13px; pointer-events:none; }
.auth-password-toggle { position:absolute; z-index:3; top:50%; right:5px; transform:translateY(-50%); min-width:39px; padding:4px 6px; border:0; border-radius:4px; background:transparent; color:#637a87; font-size:10px; font-weight:800; cursor:pointer; }
.auth-password-toggle:hover, .auth-password-toggle:focus { background:#edf6f7; color:#2f6f78; outline:none; }
.auth-input.has-toggle .form-control { padding-right:51px; }
.auth-primary { min-height:42px; border-color:#2a626b; border-radius:7px; background:#2f6f78; color:#fff; font-size:12px; font-weight:800; box-shadow:0 5px 12px rgba(31,82,90,.15); }
.auth-primary:hover, .auth-primary:focus { border-color:#255761; background:#285f67; color:#fff; box-shadow:0 0 0 3px rgba(47,111,120,.18); outline:none; }
.auth-footer { margin:19px 0 0; color:#7b8a94; font-size:11px; text-align:center; }
.auth-footer a { color:#527783; font-weight:800; text-decoration:none; }
.auth-footer a:hover, .auth-footer a:focus { color:#2f6f78; outline:none; text-decoration:underline; }
.auth-secret { margin:13px 0; padding:12px; border:1px dashed #b8cdd2; border-radius:7px; background:#f4f9fa; color:#315f69; font-family:Consolas,"Courier New",monospace; font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.auth-card details { margin:0 0 17px; padding:10px 12px; border:1px solid #dfe8eb; border-radius:7px; background:#fbfcfd; color:#617681; font-size:12px; }
.auth-card summary { color:#456b77; font-weight:700; cursor:pointer; }
.auth-code { height:51px !important; padding-left:14px !important; padding-right:14px !important; font-size:20px !important; font-weight:800; letter-spacing:.42em; text-align:center; }
.auth-setup-note { padding:11px 12px; border-left:3px solid #5e8d97; border-radius:0 6px 6px 0; background:#f0f7f8; color:#506d77; font-size:12px; line-height:1.6; }
.auth-setup-intro { display:flex; gap:11px; align-items:flex-start; margin:0 0 18px; padding:12px 14px; border:1px solid #d6e6e8; border-radius:8px; background:#f4faf9; color:#48636b; font-size:12px; line-height:1.6; }
.auth-setup-intro p { margin:0; }
.auth-step-number { display:inline-flex; flex:0 0 23px; width:23px; height:23px; align-items:center; justify-content:center; border-radius:50%; background:#2f6f78; color:#fff; font-size:12px; font-weight:800; }
.auth-totp-setup-grid { display:grid; grid-template-columns:250px minmax(0,1fr); gap:16px; align-items:stretch; margin-bottom:19px; }
.auth-qr-panel, .auth-totp-help { padding:15px; border:1px solid #dce7e8; border-radius:9px; background:#fcfefe; }
.auth-panel-label { display:block; margin-bottom:10px; color:#2d6670; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.auth-totp-qr { display:flex; align-items:center; justify-content:center; min-height:177px; padding:10px; border:1px solid #d6e1e4; border-radius:7px; background:#fff; }
.auth-totp-qr svg { display:block; width:157px; height:157px; max-width:100%; }
.auth-qr-panel p, .auth-help-copy { margin:10px 0 0; color:#71818a; font-size:11px; line-height:1.55; }
.auth-qr-unavailable { display:flex; flex-direction:column; gap:9px; align-items:center; justify-content:center; min-height:177px; padding:18px; border:1px dashed #bdd1d6; border-radius:7px; color:#617a83; font-size:11px; text-align:center; }
.auth-qr-unavailable i { color:#4a7c85; font-size:25px; }
.auth-app-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:12px; }
.auth-app-guide-card { min-width:0; padding:10px; border:1px solid #dce6e9; border-radius:7px; background:#fff; }
.auth-app-guide-card strong { display:flex; gap:6px; align-items:center; min-height:28px; color:#3d5661; font-size:10px; line-height:1.35; }
.auth-app-guide-card strong i { color:#2f6f78; font-size:14px; }
.auth-app-guide-card > div { display:flex; gap:5px; margin-top:8px; }
.auth-app-guide-card a { display:inline-flex; align-items:center; gap:3px; color:#456f79; font-size:9px; font-weight:800; text-decoration:none; }
.auth-app-guide-card a:hover, .auth-app-guide-card a:focus { color:#244f58; text-decoration:underline; outline:none; }
.auth-manual-setup { margin:13px 0 0 !important; }
.auth-manual-setup code { display:block; margin:9px 0; padding:8px; border-radius:5px; background:#eff6f7; color:#315f69; font-family:Consolas,"Courier New",monospace; font-size:11px; letter-spacing:.08em; overflow-wrap:anywhere; }
.auth-manual-setup a { color:#3f707a; font-size:11px; font-weight:800; text-decoration:none; }
.auth-manual-setup a:hover, .auth-manual-setup a:focus { color:#285e66; text-decoration:underline; outline:none; }
.auth-manual-setup a i { margin-right:5px; }
.auth-code-confirmation { padding:15px; border:1px solid #dce7e8; border-radius:9px; background:#fbfdfd; }
.auth-code-confirmation .form-group { margin-bottom:14px; }
.auth-method-intro { margin:0 0 17px; color:#657983; font-size:12px; line-height:1.65; text-align:center; }
.auth-method-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.auth-method-choice { display:flex; flex-direction:column; min-height:232px; padding:18px; border:1px solid #d8e4e6; border-radius:9px; background:#fbfdfd; text-align:center; }
.auth-method-icon { display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; align-self:center; margin-bottom:11px; border-radius:50%; background:#e8f2f3; color:#2f6f78; font-size:18px; }
.auth-method-choice strong { color:#2e4853; font-size:13px; }
.auth-method-choice p { flex:1; margin:8px 0 16px; color:#74858e; font-size:11px; line-height:1.58; }
.auth-secondary { min-height:42px; border:1px solid #496f7a; border-radius:7px; background:#fff; color:#2f6873; font-size:12px; font-weight:800; }
.auth-secondary:hover, .auth-secondary:focus { border-color:#2b616a; background:#edf6f7; color:#245962; box-shadow:0 0 0 3px rgba(47,111,120,.13); outline:none; }
.auth-email-panel { padding:16px; border:1px solid #dce7e8; border-radius:9px; background:#fbfdfd; }
.auth-email-panel > p { margin:0 0 14px; color:#617681; font-size:12px; line-height:1.65; }
.auth-alternative-actions { display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:8px; }
.auth-alternative-actions form, .auth-change-method { margin:0; }
.auth-alternative-actions .btn-link, .auth-change-method .btn-link { padding:3px 0; color:#416f79; font-size:11px; font-weight:800; }
.auth-change-method { margin-top:11px; text-align:center; }
@media (max-width:480px) { body.admin-auth-page { padding:13px; } .auth-card-top { padding:24px 22px 20px; } .auth-card-body { padding:21px 22px 25px; } .auth-logo { height:59px; } .auth-logo img { max-height:59px; } }
@media (max-width:650px) { .auth-totp-setup-grid { grid-template-columns:1fr; } .auth-app-guide-grid, .auth-method-choice-grid { grid-template-columns:1fr; } .auth-totp-qr { min-height:0; } .auth-method-choice { min-height:0; } }
