/* Prime Safety Vaults — authentication UI, Phase 11 */
:root {
    --pva-black: #0b0b0b;
    --pva-ink: #151515;
    --pva-copy: #3f3f3f;
    --pva-muted: #777773;
    --pva-bg: #f5f5f2;
    --pva-surface: #ffffff;
    --pva-border: #e7e7e1;
    --pva-border-strong: #d9d9d1;
    --pva-gold: #c7a45a;
    --pva-gold-dark: #a9833f;
    --pva-gold-soft: #f6efe0;
    --pva-danger: #a44848;
    --pva-danger-soft: #fbefef;
    --pva-success: #34715b;
    --pva-success-soft: #edf6f1;
}

html,
body,
.auth-main,
.auth-wrapper {
    min-height: 100%;
}

body,
button,
input,
select,
textarea,
.form-control,
.btn {
    font-family: "Manrope", sans-serif !important;
}

body {
    background:
        radial-gradient(circle at 12% 8%, rgba(199,164,90,.10), transparent 24%),
        linear-gradient(135deg, #f8f8f5 0%, #efefe9 100%) !important;
    color: var(--pva-ink);
}

.auth-main {
    min-height: 100vh;
}

.auth-wrapper.v2 {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 18px;
}

.auth-wrapper.v2 > .auth-form {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
}

.auth-form > .logo {
    margin: 0 auto 18px;
    text-align: center;
}

.auth-form > .logo .brand-logo {
    max-width: 205px;
    max-height: 72px;
    object-fit: contain;
}

.auth-form > .card {
    overflow: hidden;
    border: 1px solid var(--pva-border) !important;
    border-radius: 22px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 26px 70px rgba(15,15,15,.12) !important;
}

.auth-form > .card::before {
    content: "";
    display: block;
    height: 4px;
    background: linear-gradient(90deg, var(--pva-black), var(--pva-gold));
}

.auth-form > .card .card-body {
    padding: 34px !important;
}

.auth-header {
    width: 100%;
    margin-bottom: 22px;
    text-align: center;
}

.auth-header h2,
.auth-header h3,
.auth-header h4 {
    margin: 0;
    color: var(--pva-ink) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em;
}

.auth-header h2 { font-size: 27px; }
.auth-header h4 { margin-top: 8px; font-size: 15px; color: var(--pva-copy) !important; }
.auth-header p {
    margin: 8px 0 0;
    color: var(--pva-muted) !important;
    font-size: 14px !important;
    line-height: 1.55;
}

.auth-form .form-control,
.auth-form .form-select {
    min-height: 50px;
    border: 1px solid var(--pva-border-strong) !important;
    border-radius: 11px !important;
    background: var(--pva-surface) !important;
    color: var(--pva-ink) !important;
    font-size: 14px !important;
    box-shadow: none !important;
}

.auth-form .form-control:focus,
.auth-form .form-select:focus {
    border-color: var(--pva-gold) !important;
    box-shadow: 0 0 0 3px rgba(199,164,90,.13) !important;
}

.auth-form .form-floating > label {
    color: var(--pva-muted) !important;
    font-size: 13px;
}

.auth-form .btn {
    min-height: 46px;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    box-shadow: none !important;
}

.auth-form .btn-primary,
.auth-form .btn-secondary,
.auth-form .btn-seconadry {
    border-color: var(--pva-black) !important;
    background: var(--pva-black) !important;
    color: #fff !important;
}

.auth-form .btn-primary:hover,
.auth-form .btn-secondary:hover,
.auth-form .btn-seconadry:hover {
    background: #1d1d1d !important;
    border-color: #1d1d1d !important;
}

.auth-form a,
.auth-form .text-secondary {
    color: var(--pva-gold-dark) !important;
}

.auth-form a:hover {
    color: var(--pva-black) !important;
}

.auth-form hr {
    margin: 24px 0;
    border-color: var(--pva-border);
    opacity: 1;
}

.auth-form h5 {
    color: var(--pva-muted);
    font-size: 13px;
    font-weight: 600;
}

.auth-form .form-check-label,
.auth-form .form-check-label .h5 {
    color: var(--pva-copy) !important;
    font-size: 13px !important;
}

.auth-form .form-check-input:checked {
    border-color: var(--pva-black) !important;
    background-color: var(--pva-black) !important;
}

.auth-form .alert {
    border: 1px solid var(--pva-border) !important;
    border-radius: 10px !important;
    font-size: 13px;
}

.auth-form .alert-danger {
    border-color: #ecd0d0 !important;
    background: var(--pva-danger-soft) !important;
    color: var(--pva-danger) !important;
}

.auth-form .alert-success {
    border-color: #cee3d9 !important;
    background: var(--pva-success-soft) !important;
    color: var(--pva-success) !important;
}

.auth-form input[type="number"] {
    letter-spacing: .35em;
    font-size: 22px !important;
    font-weight: 800;
}

/* The custom Prime login screen controls its own full-page composition. */
.auth-form:has(.psv-login-page) {
    max-width: none;
}

.auth-form:has(.psv-login-page) > .logo {
    display: none !important;
}

@media (max-width: 575px) {
    .auth-wrapper.v2 { padding: 18px 12px; }
    .auth-form > .card .card-body { padding: 24px 20px !important; }
    .auth-header h2 { font-size: 24px; }
}
