/* Identity presentation; authentication and token handling stay in ASP.NET Identity. */
.auth-body { margin:0; min-height:100vh; min-height:100dvh; background:#f7f6fb; color:#2e3b53; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
.auth-body * { box-sizing:border-box; }
.auth-shell { width:min(1000px,calc(100% - 40px)); margin:40px auto; display:grid; grid-template-columns:.9fr 1.1fr; border:1px solid #e8e2ef; border-radius:28px; background:white; overflow:hidden; box-shadow:0 18px 65px #57456e0b; }
.auth-hero { position:relative; padding:42px 36px; background:linear-gradient(155deg,#f0eafb,#f8f5fc 60%,#eef6f2); display:flex; flex-direction:column; justify-content:space-between; gap:36px; }
.auth-brand { font-size:30px; font-weight:800; letter-spacing:-1px; color:#29364e; text-decoration:none; display:inline-block; }
.auth-eyebrow { display:block; margin:8px 0 0; font-size:11px; letter-spacing:1.4px; font-weight:700; color:#8d799f; }
.auth-hero h2 { font-size:34px; line-height:1.22; font-weight:760; letter-spacing:-.7px; margin-bottom:14px; max-width:310px; }
.auth-hero p { color:#7c8193; line-height:1.75; font-size:14px; }
.auth-sample { border:1px solid #e3d8ee; border-radius:18px; padding:22px; background:#fffafc; transform:rotate(-3deg); box-shadow:8px 10px 0 #e8dfef; margin:22px 8px; }
.auth-sample-label { display:block; color:#b9708c; font-size:10px; letter-spacing:1px; font-weight:750; margin-bottom:12px; }
.auth-sample strong { font-size:26px; font-weight:750; }
.auth-sample small { display:block; margin-top:4px; color:#818ba0; }
.auth-sample p { margin:16px 0 0; padding-top:12px; border-top:1px solid #f0e7ed; color:#69778d; font-size:13px; }
.auth-footnote { font-size:12px!important; margin:0; }
.auth-content { min-width:0; padding:42px; }
.auth-title { font-size:27px; font-weight:780; letter-spacing:-.5px; margin:12px 0 8px; }
.auth-subtitle { color:#798598; line-height:1.65; margin:0 0 28px; font-size:14px; }
.auth-kicker { display:inline-block; color:#896caa; background:#f2edf9; border-radius:8px; font-size:10px; font-weight:750; letter-spacing:.8px; padding:6px 9px; }
.auth-form .form-label { font-size:13px; font-weight:650; color:#546078; margin-bottom:7px; }
.auth-form .form-control { min-height:48px; border:1px solid #e4deec; border-radius:12px; background:#fcfbfe; padding:12px 14px; font-size:16px; color:#34415a; }
.auth-form .form-control:focus { background:white; border-color:#bca4dc; box-shadow:0 0 0 3px #efe6fa; }
.auth-form .form-control:disabled { background:#f1f2f6; color:#8490a3; }
.auth-password { position:relative; }
.auth-password .form-control { padding-right:78px; }
.auth-password-toggle { position:absolute; right:5px; top:5px; bottom:5px; border:0; background:#f3f0f8; border-radius:8px; min-width:64px; font-size:12px; font-weight:650; color:#7b6b91; }
.auth-password-toggle:hover { background:#eae3f4; }
.auth-body .btn { border-radius:12px; min-height:46px; font-size:14px; font-weight:650; padding:11px 18px; display:inline-flex; justify-content:center; align-items:center; gap:8px; }
.auth-body .btn-primary { background:#8054d6; border-color:#8054d6; color:#fff; }
.auth-body .btn-primary:hover { background:#7045c1; border-color:#7045c1; }
.auth-body .btn-outline-primary { color:#7852b1; border-color:#dfd3ee; background:#f7f3fc; }
.auth-body .btn-danger { color:#a44360; background:#faedf1; border-color:#edcdd8; }
.auth-body .btn-danger:hover { color:#fff; background:#b85271; border-color:#b85271; }
.auth-body .btn-link { background:transparent; border:0; color:#7c58ac; padding:8px 0; }
.auth-body a:not(.auth-brand):not(.btn):not(.manage-nav-link) { color:#7b55ad; text-underline-offset:3px; }
.auth-check { display:flex; align-items:center; gap:8px; font-size:13px; color:#6b768b; cursor:pointer; }
.auth-check input { width:17px; height:17px; accent-color:#8054d6; }
.auth-form-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin:18px 0; font-size:13px; }
.auth-links { text-align:center; font-size:13px; color:#8590a2; margin-top:24px; line-height:1.8; }
.auth-links a { font-weight:650; }
.auth-hint { font-size:12px; line-height:1.6; color:#8b93a3; margin:8px 0 16px; }
.auth-note { border:1px solid #e5deef; background:#f8f5fc; border-radius:14px; padding:16px; color:#77768d; font-size:13px; line-height:1.65; margin:18px 0; }
.auth-status-icon { display:flex; align-items:center; justify-content:center; width:54px; height:54px; background:#edf6f0; color:#4a916f; border:1px solid #dcebe2; border-radius:17px; font-size:25px; margin-bottom:20px; }
.auth-status-icon.warning { color:#ad7e46; background:#fcf5e9; border-color:#f2e5cc; }
.auth-status-icon.danger { color:#b4647e; background:#fcf0f4; border-color:#efdce4; }
.auth-content .alert { border-radius:13px; font-size:14px; line-height:1.6; }
.auth-content .alert-success { background:#eef7f1; border-color:#d7e9de; color:#497d60; }
.auth-content .alert-danger,.auth-content .validation-summary-errors { border:1px solid #efd6df; border-radius:12px; background:#fff4f6; color:#ae516f; padding:13px 15px; margin-bottom:18px; font-size:13px; }
.auth-content .validation-summary-errors ul { margin:0; padding-left:18px; }
.auth-content .field-validation-error { display:block; margin-top:6px; font-size:12px; color:#ad526c; }
.auth-content .input-validation-error { border-color:#d49aaf; }
.auth-external { border-top:1px solid #eee8f3; padding-top:20px; margin-top:24px; }
.auth-external p { color:#8390a2; font-size:12px; text-align:center; }
.auth-external .btn { width:100%; margin-top:8px; }
.auth-body :focus-visible { outline:3px solid #b9a2dc; outline-offset:3px; }
.auth-body .form-control:focus-visible { outline:none; }
.auth-shell.manage-shell { display:block; max-width:1080px; }
.manage-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:24px 30px; border-bottom:1px solid #eee8f3; background:#fcfafe; }
.manage-content { padding:30px; }
.manage-intro { margin-bottom:24px; }
.manage-intro h1 { font-size:26px; font-weight:750; margin-bottom:6px; }
.manage-intro p { font-size:14px; color:#8390a2; }
.manage-grid { display:grid; grid-template-columns:210px minmax(0,1fr); gap:28px; }
.manage-nav { display:flex; flex-direction:column; gap:6px; }
.manage-nav-link { display:block; padding:12px 14px; border-radius:12px; text-decoration:none; color:#7a8497; font-size:13px; font-weight:600; min-height:44px; }
.manage-nav-link.active { color:#7950b2; background:#f0e9fa; }
.manage-nav-link:hover { background:#f8f5fc; color:#7950b2; }
.manage-panel { min-width:0; border:1px solid #eee7f3; border-radius:18px; padding:26px; background:#fff; }
.manage-panel h3 { font-size:22px; font-weight:720; margin-bottom:22px; }
.manage-panel h4 { font-size:17px; margin-top:24px; }
.manage-panel p,.manage-panel li { color:#788397; line-height:1.7; font-size:14px; }
.manage-panel > .row > [class*="col-md-"],.manage-panel form .row > [class*="col-md-"] { width:100%; }
.manage-panel .form-floating .form-control { min-height:58px; padding-top:24px; }
.manage-panel .form-floating>label { color:#7d879a; font-size:14px; }
.manage-panel .form-floating input[type=password] { padding-right:76px; }
.manage-panel .btn { margin-bottom:8px; }
.manage-panel table { width:100%; font-size:13px; }
.manage-panel td { padding:8px; overflow-wrap:anywhere; }
.manage-panel kbd,.manage-panel code { overflow-wrap:anywhere; word-break:break-word; }
.auth-trust { text-align:center; color:#9297a5; font-size:11px; margin:0 auto 25px; padding:0 16px; }
@media(max-width:767px) {
 .auth-shell { width:calc(100% - 24px); margin:14px auto; display:block; border-radius:22px; }
 .auth-hero { padding:20px 24px; gap:0; }
 .auth-hero-story,.auth-footnote { display:none; }
 .auth-brand { font-size:27px; }
 .auth-eyebrow { margin-top:3px; font-size:10px; }
 .auth-content { padding:26px 24px; }
 .auth-title { font-size:25px; }
 .auth-subtitle { margin-bottom:22px; }
 .manage-header,.manage-content { padding:20px; }
 .manage-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
 .manage-nav { flex-direction:row; overflow-x:auto; padding-bottom:6px; }
 .manage-nav-link { flex:none; white-space:nowrap; }
 .manage-panel { padding:20px; }
}
@media(prefers-reduced-motion:reduce) { .auth-body * { scroll-behavior:auto!important; } }
