/* Public pages and authentication, using existing Bootstrap components. */
body.public-purple { background: #fbfaff; background-image: none; color: #30243f; font-family: "Segoe UI", Arial, sans-serif; min-height: 100vh; }
.public-purple a { color: #7040c8; }
.public-purple .navbar-default { background: #fff; border: 0; border-bottom: 1px solid #eee8f5; padding: 16px 0; margin-bottom: 0; }
.public-purple .navbar-default .navbar-brand { color: #7040c8; font-size: 25px; font-weight: 750; letter-spacing: -.8px; }
.public-purple .navbar-default .navbar-nav > li > a { color: #665a74; font-size: 14px; font-weight: 600; }
.public-purple .navbar-default .navbar-nav > li > a:hover { color: #7040c8; background: #f5effc; border-radius: 8px; }
.public-purple .btn { border-radius: 9px; padding: 12px 20px; font-weight: 600; box-shadow: none; transition: background-color .15s ease; }
.public-purple .btn-primary, .public-purple .btn-login { background: #7040c8; border: 1px solid #7040c8; color: #fff; }
.public-purple .btn-primary:hover, .public-purple .btn-primary:focus { background: #592ba8; border-color: #592ba8; color: #fff; }
.public-purple .btn-default { background: #fff; color: #7040c8; border: 1px solid #dcd0ef; }
.public-purple .btn-default:hover { background: #f2eafa; }
.public-purple .btn.bg-maroon { background: #f2eafa !important; color: #6333b4 !important; border: 1px solid #dfd0f3; }
.public-purple a:focus-visible, .public-purple button:focus-visible { outline: 3px solid #b79be6; outline-offset: 4px; }
.welcome-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 65px; align-items: center; min-height: calc(100vh - 100px); padding: 65px 0; }
.welcome-eyebrow, .auth-eyebrow { display: block; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; color: #7040c8; }
.welcome-eyebrow { background: #f0eafa; padding: 10px 14px; border-radius: 24px; display: inline-block; }
.welcome-copy h1 { color: #30243f; font-size: clamp(38px, 4vw, 58px); line-height: 1.14; font-weight: 750; letter-spacing: -2px; margin: 25px 0; }
.welcome-copy h1 > span { color: #7040c8; }
.welcome-copy > p { font-size: 17px; line-height: 1.8; color: #796e86; max-width: 470px; }
.welcome-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0; }
.welcome-actions .btn { font-size: 14px; }
.welcome-caption { font-size: 12px; color: #8a7b9b; }
.welcome-visual { background: #eee6f9; padding: 28px; border-radius: 28px; transform: rotate(2deg); }
.welcome-preview { background: #fff; border: 1px solid #e7dcf5; padding: 30px; border-radius: 18px; box-shadow: 0 24px 65px #46217512; transform: rotate(-2deg); }
.preview-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; border-bottom: 1px solid #f0ebf6; padding-bottom: 22px; margin-bottom: 28px; }
.preview-top strong { font-size: 23px; color: #7040c8; }
.preview-top > span { font-size: 11px; color: #91839f; }
.welcome-preview h2 { font-size: 25px; line-height: 1.4; margin: 12px 0 26px; font-weight: 650; }
.preview-item { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid #f0ebf6; }
.preview-icon { background: #f3edfb; color: #7040c8; border-radius: 12px; padding: 13px; font-size: 12px; font-weight: 700; }
.preview-item strong { font-size: 14px; }
.preview-item p { font-size: 12px; color: #8a7e96; margin: 5px 0 0; }
.preview-footer { color: #887694; font-size: 11px; margin-top: 24px; }
.auth-purple .eq-height-row { display: flex; min-height: 100vh; }
.auth-purple .left-col { background: #f1ebfa; background-image: none; color: #38234f; display: flex; align-items: center; justify-content: center; padding: 60px; }
.auth-purple .left-col-content { margin: 0; padding: 0; width: 100%; text-align: left; }
.auth-purple .auth-brand > a { color: #7040c8; font-size: 36px; font-weight: 750; }
.auth-purple .auth-brand > small { display: block; color: #8b739f; font-size: 15px; margin-top: 8px; }
.auth-purple .auth-brand h2 { color: #38234f; font-size: clamp(30px, 3vw, 47px); font-weight: 700; line-height: 1.2; letter-spacing: -1.4px; margin: 48px 0 22px; }
.auth-purple .auth-brand p { color: #826e94; font-size: 17px; line-height: 1.8; max-width: 350px; font-weight: 400; }
.auth-brand-caption { display: block; margin-top: 60px; font-size: 10px; letter-spacing: 2px; color: #9176aa; }
.auth-purple .right-col { display: block; height: auto; background: #fff; color: #30243f; padding: 24px 40px 60px; }
.auth-purple .right-col a { color: #7040c8; }
.auth-purple .right-col a:hover { color: #592ba8; }
.auth-purple .right-col .text-white { color: #796e86 !important; }
.auth-purple .login-form { float: none; width: 100%; max-width: 430px; margin: 12vh auto 0; padding: 0; }
.auth-purple .login-form .form-header { color: #30243f; font-size: 32px; font-weight: 700; margin: 12px 0 8px; }
.auth-description { color: #887b95; margin-bottom: 32px; }
.auth-purple .login-form label { color: #62536f; font-size: 13px; font-weight: 600; margin-bottom: 9px; }
.auth-purple .form-control { background: #fff; color: #30243f; border: 1px solid #ded5e9; border-radius: 9px; box-shadow: none; min-height: 45px; }
.auth-purple .form-control:focus { border-color: #9064d3; box-shadow: 0 0 0 3px #7040c816; }
.auth-purple .login-form .form-control-feedback { top: 31px; height: 45px; line-height: 45px; color: #a28db5; }
.auth-purple .login-form .btn-login { display: block; width: 100%; min-height: 47px; margin-bottom: 20px; }
.auth-purple .btn-login > span { float: right; }
.auth-purple .login-form .pull-right { float: none !important; display: block; text-align: center; font-size: 13px; }
.auth-purple .login-form .has-error .form-control { border-color: #bc3e59; }
.auth-purple .login-form .help-block { color: #ad304b; }
.auth-purple .login-form.right-col-content-register { max-width: 640px; margin-top: 55px; }
.auth-purple .wizard > .content { background: #faf8fd; border: 1px solid #e6ddef; border-radius: 14px; margin: 18px 0; min-height: 430px; }
.auth-purple .wizard > .content > .body { width: 100%; height: auto; padding: 24px; color: #30243f; }
.auth-purple .wizard legend { color: #483458; font-size: 18px; border-bottom: 1px solid #e6ddef; padding-bottom: 14px; }
.auth-purple .wizard > .steps > ul { display: flex; gap: 10px; }
.auth-purple .wizard > .steps > ul > li { width: auto; flex: 1; }
.auth-purple .wizard > .steps a { margin: 0; padding: 14px 18px; border-radius: 9px; }
.auth-purple .wizard > .steps .current a, .auth-purple .wizard > .steps .current a:hover { background: #7040c8; color: #fff; }
.auth-purple .wizard > .steps .done a { background: #eee5fa; color: #7040c8; }
.auth-purple .wizard > .steps .disabled a { background: #f3f0f7; color: #84768e; }
.auth-purple .wizard > .actions a, .auth-purple .wizard > .actions a:hover { background: #7040c8; color: #fff; border-radius: 8px; padding: 10px 20px; }
.auth-purple .wizard > .actions .disabled a { background: #f3f0f7; color: #93889d; }
.auth-purple .wizard .input-group-addon { background: #f2ecfa; border-color: #ded5e9; color: #8462ac; border-radius: 8px 0 0 8px; }
.auth-purple .wizard .input-group .form-control { border-radius: 0 8px 8px 0; }
.auth-purple .wizard > .content label.error { color: #ad304b; }
@media (max-width: 767px) {
    .auth-purple .login-form.right-col-content-register { margin-top: 45px; }
    .auth-purple .wizard > .content { min-height: 630px; }
    .auth-purple .wizard > .content > .body { padding: 18px 8px; }
    .auth-purple .wizard > .steps a { padding: 12px 10px; }
}
@media (max-width: 991px) {
    .welcome-hero { gap: 30px; }
    .welcome-visual { padding: 15px; }
    .welcome-preview { padding: 22px; }
    .auth-purple .left-col { padding: 30px; }
    .auth-purple .right-col { padding: 20px 25px 45px; }
}
@media (max-width: 767px) {
    .welcome-hero { grid-template-columns: 1fr; padding: 45px 10px; min-height: auto; gap: 40px; }
    .welcome-copy h1 { font-size: 41px; }
    .welcome-visual, .welcome-preview { transform: none; }
    .welcome-eyebrow { font-size: 9px; }
    .auth-purple .eq-height-row { display: block; }
    .auth-purple .right-col { min-height: 100vh; padding: 20px 24px 45px; }
    .auth-purple .login-form { margin-top: 75px; }
    .auth-purple .right-col > .row > .col-xs-8 { width: 100%; }
    .public-purple .navbar-default { padding: 8px 0; }
}
@media (prefers-reduced-motion: reduce) { .public-purple .btn { transition: none; } }
