/* H3.5.0 — Authentication visual refinement. Scoped to public authentication screens only. */
.sw-auth-shell { min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:38px 16px; background:#f4f6fa; color:#142441; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; -webkit-font-smoothing:antialiased; box-sizing:border-box; }
.sw-auth-shell * {box-sizing:border-box;}
.sw-auth-wrap {width:100%; max-width:464px; margin:0 auto;}
.sw-auth-brand {display:flex; align-items:center; gap:13px; margin:0 0 27px 3px;}
.sw-auth-mark {display:flex; align-items:center; justify-content:center; width:43px; height:43px; background:#10264f; color:#fff; border:1px solid #10264f; border-radius:10px !important;}
.sw-auth-brandname {display:block; font-size:15px; font-weight:750; letter-spacing:-.025em; line-height:1.3; color:#10264f;}
.sw-auth-brandsub {display:block; margin-top:1px; font-size:11px; font-weight:500; letter-spacing:.015em; color:#8490a5;}
.sw-auth-card {background:#fff; border:1px solid #dfe5ee; border-radius:14px !important; box-shadow:0 10px 35px rgba(15,36,69,.055),0 1px 2px rgba(15,36,69,.035); overflow:hidden;}
.sw-auth-panel {padding:36px 39px 34px;}
.sw-auth-eyebrow {color:#6683af; font-size:10px; font-weight:750; letter-spacing:.135em; margin-bottom:9px;}
.sw-auth-title {margin:0; font-size:27px; font-weight:735; letter-spacing:-.045em; line-height:1.19; color:#10264f;}
.sw-auth-lead {font-size:13.5px; line-height:1.65; color:#6d7b91; margin:9px 0 28px;}
.sw-auth-form {display:flex; flex-direction:column; gap:19px;}
.sw-auth-field {width:100%;}
.sw-auth-field label,.sw-auth-labelrow label {display:block; font-size:12.5px; font-weight:650; margin:0 0 8px; color:#273b5c;}
.sw-auth-labelrow {display:flex; align-items:baseline; justify-content:space-between; gap:16px;}
.sw-auth-link {border:0; background:none; color:#295cc0; font:600 12px inherit; font-family:inherit; font-size:12px; font-weight:600; padding:0; margin:0 0 7px; cursor:pointer;}
.sw-auth-link:hover,.sw-auth-back:hover {color:#153a85; text-decoration:underline; text-underline-offset:3px;}
.sw-auth-inputwrap {height:47px; display:flex; align-items:center; gap:11px; padding:0 13px; border:1px solid #d8e0eb; border-radius:8px !important; transition:border-color .15s,box-shadow .15s; background:white;}
.sw-auth-inputwrap:focus-within {border-color:#3d68bd; box-shadow:0 0 0 3px rgba(54,108,191,.1);}
.sw-auth-inputwrap>svg {flex:0 0 auto; color:#8192aa;}
.sw-auth-inputwrap input {appearance:none; width:100%; min-width:0; flex:1; border:0!important; padding:0; outline:none; box-shadow:none; background:transparent; color:#172c4a; font:400 13.5px/1.4 inherit; font-family:inherit; font-size:13.5px;}
.sw-auth-inputwrap input::placeholder {color:#9ca8b9;}
.sw-auth-eye {flex:0 0 28px; width:28px; height:30px; display:flex; align-items:center; justify-content:center; border:0; background:none; cursor:pointer; color:#7f8faa; padding:0; border-radius:6px !important;}
.sw-auth-eye:hover {color:#244778; background:#eef3fa;}
.sw-auth-remember {display:flex; align-items:center; gap:9px; cursor:pointer; font-size:12px; font-weight:500; color:#63748c; margin-top:-3px; user-select:none;}
.sw-auth-remember input {accent-color:#204d95; width:15px; height:15px; margin:0; cursor:pointer;}
.sw-auth-primary {display:flex; align-items:center; justify-content:center; gap:10px; min-height:47px; width:100%; background:#153b78; color:white; border:1px solid #153b78; border-radius:8px !important; box-shadow:0 2px 4px rgba(14,39,89,.12); font:650 13.5px inherit; font-family:inherit; font-size:13.5px; font-weight:650; cursor:pointer; transition:background-color .16s,box-shadow .16s;}
.sw-auth-primary:hover:not(:disabled) {background:#0e2d5e; box-shadow:0 3px 9px rgba(14,39,89,.18);}
.sw-auth-primary:disabled {background:#a3b4cf; border-color:#a3b4cf; box-shadow:none; cursor:not-allowed;}
.sw-auth-primary span {font-size:18px; font-weight:400; margin-top:-2px;}
.sw-auth-note {display:flex; align-items:flex-start; gap:12px; padding-top:20px; border-top:1px solid #edf0f5; margin-top:26px;}
.sw-auth-note-icon {color:#6682ab; width:22px; height:22px; display:flex; align-items:center; justify-content:center; flex-shrink:0; border:1.5px solid #a8b8d0; border-radius:50% !important; margin-top:1px; font-size:12px; font-weight:700; font-family:Georgia,serif;}
.sw-auth-note strong {color:#354b69; font-size:12px; font-weight:650; display:block; margin-bottom:3px;}
.sw-auth-note p {color:#8995a6; font-size:11.5px; line-height:1.55; margin:0;}
.sw-auth-bottom {text-align:center; margin-top:20px; font-size:10.5px; font-weight:500; color:#96a2b3; letter-spacing:.012em;}
.sw-auth-back {border:0; background:none; padding:0; color:#295cc0; display:inline-flex; gap:8px; align-items:center; font-family:inherit; font-size:12.5px; font-weight:650; cursor:pointer; margin-top:23px;}
.sw-auth-back span {font-size:18px; line-height:1;}
.sw-auth-forgot .sw-auth-form {gap:16px;}
.sw-auth-admin-help {border-left:3px solid #7896bf; background:#f5f7fb; padding:15px 16px; color:#4f6079;}
.sw-auth-admin-help strong {font-size:13px; color:#213b60;}
.sw-auth-admin-help p {margin:6px 0 0; font-size:12px; line-height:1.65;}
.sw-auth-alert {font-size:12px; line-height:1.55; padding:11px 12px; margin:0; border-radius:6px !important;}
.sw-auth-alert-error {color:#993a3a; background:#fff3f3; border:1px solid #f3dada;}
.sw-auth-alert-ok {color:#225746; background:#eff8f3; border:1px solid #d0e9db;}
.sw-auth-shell button:focus-visible,.sw-auth-shell input:focus-visible {outline:2px solid #4b75bc; outline-offset:3px;}
/* Keep the existing token-reset/change-password screens visually related, without changing their logic. */
.sw-auth-card > form,.sw-auth-card > div.p-7 {padding:34px 38px;}
.sw-auth-card > form input,.sw-auth-card > div.p-7 input {border-radius:7px !important;}
.sw-auth-card > form button,.sw-auth-card > div.p-7 button {border-radius:7px !important;}
@media(max-width:540px) {.sw-auth-shell {align-items:flex-start; padding:35px 16px;} .sw-auth-brand {margin-bottom:21px;} .sw-auth-panel {padding:29px 25px 27px;} .sw-auth-title {font-size:25px;} .sw-auth-card > form,.sw-auth-card > div.p-7 {padding:28px 25px;} }
@media(prefers-reduced-motion:reduce) {.sw-auth-shell * {transition:none!important;}}
