:root { --sv-primary: #1a4c8b; --sv-teal: #2e9e9b; --sv-orange: #f5891e; --sv-slate: #6d6e71; }
.sv-auth { background: #fff; border: 1px solid #e3e9f0; border-radius: 16px; padding: 28px; max-width: 480px; margin: 32px auto; box-shadow: 0 10px 30px rgba(26, 76, 139, .08); }
.sv-auth__title { margin: 0 0 16px; color: var(--sv-primary); font-size: 1.7rem; font-weight: 800; }
.sv-auth__alert { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; border-radius: 10px; padding: 10px 12px; margin: 0 0 14px; font-size: .92rem; }
.sv-auth__social-title { font-weight: 600; margin: 0 0 10px; font-size: .9rem; }
.sv-auth__divider { display: flex; align-items: center; gap: 12px; color: var(--sv-slate); font-size: .85rem; margin: 18px 0 16px; }
.sv-auth__divider::before, .sv-auth__divider::after { content: ""; flex: 1; height: 1px; background: #e3e9f0; }
.sv-auth__form { display: flex; flex-direction: column; gap: 14px; }
.sv-auth__field { display: flex; flex-direction: column; gap: 4px; }
.sv-auth__label { font-weight: 600; font-size: .9rem; }
.sv-auth__field small { color: var(--sv-slate); font-size: .78rem; }
.sv-auth__req { color: var(--sv-orange); }
.sv-auth input[type=text], .sv-auth input[type=email], .sv-auth input[type=tel], .sv-auth input[type=password], .sv-auth select { width: 100%; border: 1px solid #d5dde8; border-radius: 10px; padding: 11px 12px; font-size: 1rem; background: #fff; }
.sv-auth input:focus, .sv-auth select:focus { outline: none; border-color: var(--sv-teal); box-shadow: 0 0 0 3px rgba(46, 158, 155, .18); }
.sv-auth input.invalid { border-color: #b91c1c; background: #fef2f2; }
.sv-auth__error { color: #b91c1c; font-size: .82rem; }
.sv-auth__error:empty { display: none; }
.sv-auth__ok { color: #15803d; font-size: .82rem; }
.sv-auth__check { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; }
.sv-auth__check input { width: auto; margin-top: 3px; accent-color: var(--sv-teal); }
.sv-auth__check a { text-decoration: underline; color: var(--sv-primary); }
.sv-auth__btn { background: var(--sv-orange); color: #fff; border: 0; border-radius: 10px; padding: 13px; font-size: 1.05rem; font-weight: 800; cursor: pointer; width: 100%; }
.sv-auth__btn:hover { background: #dd7410; }
.sv-auth__switch { text-align: center; font-size: .9rem; margin: 14px 0 0; }
.sv-auth__switch a { text-decoration: underline; color: var(--sv-primary); }
.sv-auth__hp { position: absolute !important; left: -9999px; height: 0; width: 0; opacity: 0; }
/* Nextend buttons sit side by side on wider screens */
.sv-auth .nsl-container-buttons { display: flex; flex-direction: column; gap: 10px; }
.sv-auth .nsl-container-buttons a { display: block; }
@media (min-width: 641px) { .sv-auth .nsl-container-buttons { flex-direction: row; } .sv-auth .nsl-container-buttons a { flex: 1; } }
@media (max-width: 640px) { .sv-auth { margin: 16px 0; padding: 18px; border-radius: 12px; } }
.sv-auth__notice { background: #ecfdf5; color: #166534; border: 1px solid #bbf7d0; border-radius: 10px; padding: 10px 12px; margin: 0 0 14px; font-size: .92rem; }
.sv-auth__alert a { text-decoration: underline; font-weight: 700; }
.sv-auth__social-buttons { display: flex; flex-direction: column; gap: 10px; }
.sv-auth__social-btn { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 14px; border: 1px solid #d5dde8; border-radius: 10px; background: #fff; color: #10284a; font-weight: 600; font-size: .95rem; text-decoration: none; }
.sv-auth__social-btn:hover { background: #f5f8fb; border-color: var(--sv-primary); }
.sv-auth__social-btn.is-disabled { opacity: .55; cursor: not-allowed; }
.sv-auth__social-btn.is-disabled:hover { background: #fff; border-color: #d5dde8; }
.sv-auth .g-recaptcha { transform-origin: 0 0; }
@media (min-width: 641px) { .sv-auth__social-buttons { flex-direction: row; } .sv-auth__social-btn { flex: 1; } }
@media (max-width: 380px) { .sv-auth .g-recaptcha { transform: scale(.88); } }

/* The card carries its own heading, so the theme's page title above it is hidden. */
.sv-auth-page .hero-section, .sv-auth-page .entry-header { display: none; }
