/* Public QHealth colors and typography, with form controls aligned to Login. */
.registration-page { --signup-focus: #007aff; --signup-focus-soft: #e5f2ff; margin: 0; background: var(--qh-soft); color: var(--qh-ink); font-size: 16px; line-height: 1.5; }
.registration-page *, .registration-page *::before, .registration-page *::after { box-sizing: border-box; }
.registration-page [hidden] { display: none !important; }
.registration-page a { text-underline-offset: .22em; }
.registration-page button, .registration-page input, .registration-page select { font: inherit; }
.registration-page :focus-visible { outline: 2px solid var(--signup-focus); outline-offset: 3px; }
.signup-skip { position: absolute; top: -90px; left: 20px; background: white; padding: 12px; z-index: 10; }
.signup-skip:focus { top: 12px; }
.signup-header { padding: 16px 32px; max-width: 1100px; margin: auto; display: flex; justify-content: space-between; align-items: center; }
.signup-brand img { width: 112px; height: auto; display: block; filter: brightness(0); }
.signup-signin { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--qh-ink); font-size: 14px; font-weight: 500; text-decoration: none; }
.signup-signin:hover { text-decoration: underline; }
.signup-shell { max-width: 940px; padding: 0 32px 24px; margin: auto; }
.signup-progress { display: flex; justify-content: center; list-style: none; max-width: 560px; margin: 8px auto 24px; padding: 0; }
.signup-progress li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--qh-muted); white-space: nowrap; }
.signup-progress li:not(:last-child) { flex: 1; }
.signup-progress li:not(:last-child)::after { content: ''; flex: 1; min-width: 16px; height: 1px; background: #dcdce0; margin: 0 12px 0 4px; }
.signup-progress li > span[aria-hidden] { width: 26px; height: 26px; flex-shrink: 0; display: grid; place-items: center; border: 1px solid #d2d2d7; border-radius: 50%; font-size: 12px; }
.signup-progress li.is-current { font-weight: 600; color: var(--qh-ink); }
.signup-progress li.is-current > span[aria-hidden] { background: var(--qh-ink); color: white; border-color: var(--qh-ink); }
.signup-progress li.is-done > span[aria-hidden] { color: var(--qh-positive); background: #e8f2ed; border-color: transparent; }
.signup-title { margin: 0 auto 24px; max-width: 620px; text-align: center; }
.signup-title h1, .signup-finish h1 { font-size: clamp(26px, 3vw, 32px); line-height: 1.2; letter-spacing: -.025em; margin: 0 0 12px; }
.signup-title p { max-width: 540px; margin: 0 auto; font-size: 15px; line-height: 1.6; }
.signup-title .signup-eyebrow, .signup-eyebrow { color: var(--qh-muted); font-size: 12px; font-weight: 500; letter-spacing: .01em; margin: 0 0 10px; }
.signup-card { background: white; padding: 28px 32px; border-radius: 20px; border: 1px solid var(--qh-border); box-shadow: 0 4px 20px rgba(0,0,0,.02); min-width: 0; }
.signup-card h2 { font-size: 24px; letter-spacing: -.02em; line-height: 1.25; margin: 0 0 10px; }
.signup-plans { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.signup-plan { display: flex; flex-direction: column; }
.signup-plan > div > p { min-height: 48px; font-size: 15px; margin-bottom: 0; }
.signup-plan ul { list-style: none; padding: 24px 0 8px; margin: 0 0 auto; }
.signup-plan li { position: relative; padding: 0 0 16px 26px; font-size: 14px; }
.signup-plan li::before { content: '✓'; position: absolute; left: 0; color: var(--qh-positive); }
.signup-plan form { margin-top: 12px; }
.signup-muted { color: var(--qh-muted); font-size: 13px; }
.registration-page .signup-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px 20px; border-radius: 10px; border: 1px solid var(--qh-ink); background: var(--qh-ink); color: white; font-size: 15px; font-weight: 600; text-decoration: none; cursor: pointer; text-align: center; line-height: 1.5; transition: background-color 150ms ease, border-color 150ms ease; }
.registration-page .signup-button:hover { background: #000; color: white; }
.registration-page .signup-button-secondary { background: white; color: var(--qh-ink); border-color: #747775; }
.registration-page .signup-button-secondary:hover { background: var(--qh-soft); color: var(--qh-ink); }
.signup-plan .signup-button, .signup-full { width: 100%; }
.signup-account { max-width: 680px; margin: auto; }
.signup-identity { max-width: 520px; }
.signup-form-section { margin: 0; }
.signup-form-section + .signup-form-section { border-top: 1px solid var(--qh-border); padding-top: 24px; }
.signup-form-section h2 { font-size: 18px; font-weight: 600; margin: 0 0 20px; letter-spacing: -.02em; }
.signup-divider { display: flex; align-items: center; gap: 14px; color: var(--qh-muted); font-size: 13px; margin: 22px 0; }
.signup-divider::before, .signup-divider::after { content: ''; flex: 1; height: 1px; background: var(--qh-border); }
.registration-page .signup-google { font-family: Arial, sans-serif; font-weight: 500; gap: 12px; color: #1f1f1f; }
.signup-google-icon { width: 20px; height: 20px; flex-shrink: 0; }
.signup-google-connected { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--qh-border); font-size: 14px; overflow-wrap: anywhere; }
.signup-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.signup-fields label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 500; min-width: 0; }
.signup-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.signup-fields label > span:not(.signup-password):not(.signup-code-wrapper), .signup-field > span:not(.signup-password):not(.signup-code-wrapper) { font-size: 13px; color: var(--qh-muted); font-weight: 400; }
.signup-fields input, .signup-fields select { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #cfcfd4; border-radius: 10px; padding: 11px 13px; color: var(--qh-ink); background: white; font-size: 16px; font-weight: 400; line-height: 1.5; transition: border-color 150ms ease, box-shadow 150ms ease; }
.signup-fields input::placeholder { color: #85858a; opacity: 1; }
.signup-fields input:hover:not(:focus):not(:disabled):not([aria-invalid="true"]), .signup-fields select:hover:not(:focus):not(:disabled):not([aria-invalid="true"]) { border-color: #a3a3aa; }
.signup-fields input:focus, .signup-fields select:focus { outline: none; border-color: var(--signup-focus); box-shadow: 0 0 0 3px var(--signup-focus-soft); }
.signup-fields input:disabled { background: var(--qh-soft); color: var(--qh-muted); opacity: 1; -webkit-text-fill-color: var(--qh-muted); }
.signup-fields input[aria-invalid="true"], .signup-fields select[aria-invalid="true"] { border-color: #c43d43; }
.signup-fields input[aria-invalid="true"]:focus, .signup-fields select[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(196,61,67,.1); }
.signup-fields .signup-field-error { color: #a62e35 !important; font-size: 13px; font-weight: 400; }
.signup-field-error:empty, .signup-validation-summary:empty { display: none; }
.signup-wide { grid-column: 1/-1; }
.signup-password { position: relative; display: flex; }
.signup-password input { padding-right: 70px; }
.registration-page .signup-password-toggle { position: absolute; right: 2px; top: 2px; min-width: 62px; height: 44px; border: 0; border-radius: 8px; background: transparent; color: #52525b; cursor: pointer; font-size: 13px; font-weight: 500; padding: 0 12px; }
.signup-password-toggle:hover { color: var(--qh-ink); }
.signup-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 26px; }
.signup-actions-stacked { flex-direction: column; align-items: stretch; gap: 6px; }
.signup-checkout { max-width: 520px; margin: auto; }
.signup-checkout-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.signup-checkout-heading h2 { margin: 0; }
.signup-status { display: inline-block; border-radius: 999px; padding: 5px 10px; font-size: 12px; color: #206343; background: #edf6f0; }
.signup-summary { margin: 22px 0 26px; }
.signup-summary > div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; font-size: 14px; }
.signup-summary dt { color: var(--qh-muted); }
.signup-summary dd { margin: 0; font-weight: 500; text-align: right; min-width: 0; overflow-wrap: anywhere; }
.signup-summary .signup-total { border-top: 1px solid var(--qh-border); margin-top: 16px; padding-top: 20px; align-items: center; }
.signup-total dd { font-size: 28px; line-height: 1.2; letter-spacing: -.025em; }
.signup-total small { font-size: 13px; font-weight: 400; letter-spacing: 0; color: var(--qh-muted); }
.signup-payment-note { font-size: 13px; line-height: 1.6; text-align: center; margin: 16px 0 0; }
.signup-payment-note a { display: inline-block; min-height: 44px; padding: 10px 0; color: #52525b; text-decoration: none; }
.signup-payment-note a:hover { text-decoration: underline; }
.signup-payment-actions { display: grid; gap: 8px; margin: 24px 0 12px; }
.registration-page .signup-text-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border: 0; padding: 10px 8px; border-radius: 6px; color: #52525b; background: transparent; text-decoration: none; font-size: 14px; font-weight: 400; line-height: 1.5; cursor: pointer; }
.signup-text-button:hover { color: var(--qh-ink); text-decoration: underline; }
.signup-verify { max-width: 440px; margin: auto; }
.signup-verify .signup-full { margin-top: 24px; }
.signup-email { color: var(--qh-ink); overflow-wrap: anywhere; font-weight: 500; }
/* Match Login's OTP: envelope icon, gray input, rounded border and spaced digits. */
.signup-code-wrapper { position: relative; display: flex; align-items: center; }
.signup-code-icon { position: absolute; left: 16px; color: #a3a3a3; pointer-events: none; }
.signup-code-wrapper:focus-within .signup-code-icon { color: var(--signup-focus); }
.signup-fields .signup-code { padding: 16px 16px 16px 48px; min-height: 60px; border: 2px solid #e5e5e5; border-radius: 12px; background: #f5f5f5; letter-spacing: .3em; font-variant-numeric: tabular-nums; }
.signup-fields .signup-code::placeholder { color: #a3a3a3; }
.signup-fields .signup-code:focus { background: white; border-color: var(--signup-focus); box-shadow: 0 0 0 4px var(--signup-focus-soft); }
.signup-fields .signup-code[aria-invalid="true"] { border-color: #c43d43; }
.signup-fields .signup-code[aria-invalid="true"]:focus { box-shadow: 0 0 0 4px rgba(196,61,67,.1); }
.signup-code-help { margin-top: 24px; text-align: center; }
.signup-code-help p { font-size: 13px; margin: 0 0 4px; }
.registration-page .signup-resend { color: var(--qh-blue-dark); font-weight: 500; font-variant-numeric: tabular-nums; }
.registration-page .signup-resend:disabled { color: var(--qh-muted); cursor: default; text-decoration: none; }
.signup-code-help > a { margin-top: 4px; }
.signup-finish { max-width: 560px; margin: 32px auto; padding: 40px 32px; text-align: center; }
.signup-finish > p { font-size: 15px; line-height: 1.6; }
.signup-finish > .signup-eyebrow { font-size: 12px; }
.signup-finish > .signup-muted { font-size: 13px; overflow-wrap: anywhere; }
.signup-finish .signup-button { margin: 12px 0; }
.signup-success-icon { display: grid; place-items: center; height: 52px; width: 52px; margin: 0 auto 24px; color: var(--qh-positive); background: #edf6f0; border-radius: 50%; font-size: 24px; }
.signup-errors { background: #fff5f3; border: 1px solid #f0d8d3; border-radius: 10px; color: #963c2e; padding: 12px 14px; margin: 0 auto 22px; max-width: 680px; font-size: 14px; text-align: left; overflow-wrap: anywhere; }
.signup-errors p { color: inherit; font-size: inherit; margin: 0; }
.signup-errors ul { margin: 0; padding-left: 18px; }
.signup-errors li + li { margin-top: 4px; }
.signup-footer { text-align: center; font-size: 12px; color: var(--qh-muted); padding-top: 28px; }
.signup-account-status, .signup-account-switch { text-align: center; }
.signup-account-status p { margin: 18px 0 24px; overflow-wrap: anywhere; }
.signup-account-switch { margin-top: 10px; }
.signup-practice-account { padding-bottom: 20px; margin-bottom: 22px; border-bottom: 1px solid var(--qh-border); font-size: 13px; color: var(--qh-muted); overflow-wrap: anywhere; }
.signup-practice-account strong { color: var(--qh-ink); font-size: 14px; font-weight: 500; }
.signup-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media(max-width:620px) {
 .signup-header { padding: 16px 20px; }
 .signup-brand img { width: 104px; }
 .signup-shell { padding: 0 16px 24px; }
 .signup-progress { gap: 0; justify-content: space-between; margin: 8px 4px 26px; }
 .signup-progress li, .signup-progress li:not(:last-child) { flex: 0 1 auto; flex-direction: column; font-size: 12px; gap: 6px; }
 .signup-progress li:not(:last-child)::after { display: none; }
 .signup-title { margin-bottom: 22px; }
 .signup-title p { font-size: 14px; }
 .signup-title .signup-eyebrow { font-size: 12px; }
 .signup-google-connected { flex-direction: column; align-items: flex-start; }
 .signup-plans, .signup-fields { grid-template-columns: minmax(0,1fr); }
 .signup-card { padding: 24px 20px; border-radius: 16px; }
 .signup-plan > div > p { min-height: 0; }
 .signup-actions { flex-direction: column-reverse; align-items: stretch; gap: 6px; text-align: center; margin-top: 24px; }
 .signup-actions-stacked { flex-direction: column; }
 .signup-summary > div { gap: 12px; }
 .signup-summary-account { flex-direction: column; gap: 3px !important; }
 .signup-summary-account dd { text-align: left; }
 .signup-checkout-heading { align-items: flex-start; }
 .signup-checkout-heading h2 { font-size: 22px; }
 .signup-finish { padding: 32px 24px; }
 .signup-footer { padding-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
 .signup-fields input, .signup-fields select, .registration-page .signup-button { transition: none; }
}

/* Subscription checkout and policy pages use the existing registration theme. */
.signup-price { display:flex; flex-direction:column; margin:24px 0 0; gap:3px; }
.signup-price strong { font-size:36px; line-height:1.15; letter-spacing:-.04em; }
.signup-price span { font-size:13px; color:var(--qh-muted); }
.signup-estimate { color:var(--qh-ink) !important; font-weight:500 !important; margin-top:4px; }
.signup-checkout { max-width:580px; }
.signup-renewal { padding:16px; background:var(--qh-soft); border-radius:12px; font-size:14px; }
.signup-renewal p { margin:8px 0 0; font-size:13px; line-height:1.6; }
.signup-checkout-form { margin-top:24px; }
.signup-payment-status-check { margin-top:12px; text-align:center; }
.signup-checkout-options { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 18px; margin-top:12px; }
.signup-checkout-options form { margin:0; }
.registration-page .signup-cancel-button { color:#a3353c; }
.registration-page .signup-cancel-button:hover { color:#84242b; }
.signup-checkout-caution { margin:12px 0 0; padding:12px 14px; border-radius:10px; background:#f7f8fa; color:#626b75; font-size:12px; line-height:1.6; text-align:center; }
.signup-checkout-left-note { margin:0 0 20px; padding:14px 16px; border:1px solid #d7e4f3; border-radius:10px; background:#eef5fc; color:#315777; font-size:13px; line-height:1.6; }
.signup-plan-return-note { max-width:560px; margin:0 auto 22px; padding:12px 16px; border:1px solid #d3e6dc; border-radius:10px; background:#f0f8f3; color:#285d42; font-size:13px; line-height:1.6; text-align:center; }
.signup-consent { border:0; margin:22px 0; padding:0; display:grid; gap:16px; min-width:0; }
.signup-checkout-form .signup-consent { margin-top:0; }
.signup-consent label { display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; font-size:13px; line-height:1.65; cursor:pointer; }
.signup-consent input { width:18px; height:18px; margin:3px 0 0; accent-color:#1d1d1f; }
.signup-consent a { color:var(--qh-ink); }
.signup-consent .signup-field-error { grid-column:2; color:#a62e35; }
.signup-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 18px; }
.signup-footer nav a { color:var(--qh-muted); font-size:12px; padding:8px 0; }
.signup-policy { max-width:820px; }
.signup-policy h1 { font-size:30px; line-height:1.25; margin:8px 0 28px; }
.signup-policy h2 { font-size:18px; margin:26px 0 10px; }
.signup-policy p { font-size:14px; line-height:1.8; }

.signup-currency-picker { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 16px; margin:0 auto 28px; max-width:560px; }
.signup-currency-picker label { font-size:13px; font-weight:500; color:#63636b; }
.signup-currency-picker select { font:inherit; font-size:14px; color:#1d1d1f; padding:11px 36px 11px 14px; background:#fff; border:1px solid #dce0e6; border-radius:10px; max-width:100%; }
.signup-currency-picker p { flex-basis:100%; text-align:center; font-size:12px; color:#6e6e73; margin:0; }
.signup-rate-source { font-size:11px; line-height:1.6; text-align:center; color:#777b83; margin:26px auto 0; max-width:620px; }
.signup-rate-source a { color:inherit; }

.signup-price strong{color:var(--qh-ink)}

.signup-access{padding-top:56px}.registration-page .signup-local-price{font-size:13px;line-height:1.65;color:var(--qh-muted);margin:10px 0 0}.signup-plan .signup-local-price{margin-bottom:0}
.signup-coming-soon { padding: 36px 0 12px; }
.signup-coming-soon h1 { max-width: 590px; margin-inline: auto; font-size: clamp(30px, 4vw, 44px); }
.signup-coming-soon > .signup-button { margin-top: 28px; }
.signup-launch-notice { max-width: 620px; margin: 8px auto 24px; padding: 16px 20px; color: var(--qh-ink); background: #e5f2ff; border-radius: 12px; text-align: center; font-size: 13px; line-height: 1.6; }
.signup-launch-notice strong, .signup-launch-notice span { display: block; }
.signup-launch-notice span { color: var(--qh-muted); font-size: 12px; }
.signup-preview-access { max-width: 440px; margin: 36px auto 0; }
.signup-preview-access > summary { padding: 12px; color: var(--qh-muted); font-size: 13px; text-align: center; cursor: pointer; }
.signup-preview-access > summary span { display: block; margin-top: 4px; font-size: 12px; }
.signup-preview-access[open] > summary { margin-bottom: 12px; }
@media (max-width: 600px) { .signup-access { padding-top: 28px; } .signup-coming-soon { padding-top: 20px; } }

/* Match Admin Control's faded background and 36px ring spinner. */
.signup-loading-overlay { position:fixed; inset:0; z-index:9999; background:rgba(255,255,255,.75); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); cursor:wait; }
.signup-loading-overlay[hidden] { display:none !important; }
.signup-loading-spinner { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
.signup-loading-spinner .spinner { display:block; width:36px; height:36px; border:3px solid var(--color-border-strong,#d2d2d7); border-top-color:var(--color-accent,#007aff); border-radius:50%; animation:signup-loading-spin .7s linear infinite; }
.signup-is-loading { overflow:hidden; }
@keyframes signup-loading-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .signup-loading-spinner .spinner { animation:none; } }

.signup-billing-toggle{display:flex;justify-content:center;margin:24px 0}.signup-billing-toggle [role=group]{display:flex;gap:4px;border:1px solid #ddd;border-radius:16px;padding:5px;background:#fff}.signup-billing-toggle button{border:0;border-radius:12px;background:transparent;padding:12px 20px;font:inherit;cursor:pointer;color:#555}.signup-billing-toggle button[aria-pressed=true]{background:#18181b;color:white}.signup-billing-toggle span{font-size:12px;margin-left:6px;color:#178557}.signup-billing-toggle button[aria-pressed=true] span{color:#93e3b5}.signup-billing-toggle button:focus-visible{outline:2px solid #4a77e8;outline-offset:3px}

/* Searchable location controls keep the original selects as the no-script fallback. */
.signup-combobox { position: relative; }
.signup-fields .signup-combobox input { padding-left: 43px; padding-right: 30px; }
.signup-combobox-flag { position: absolute; top: 12px; left: 13px; font-size: 19px; line-height: 24px; pointer-events: none; }
.signup-combobox-arrow { position: absolute; right: 12px; top: 10px; color: var(--qh-muted); pointer-events: none; }
.signup-combobox-popup { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 20; background: white; border: 1px solid #d2d2d7; border-radius: 12px; box-shadow: 0 10px 28px rgba(0,0,0,.12); overflow: hidden; }
.signup-combobox-popup ul { list-style: none; margin: 0; padding: 5px; max-height: 244px; overflow-y: auto; overscroll-behavior: contain; }
.signup-combobox-popup ul:empty { display: none; }
.signup-combobox-popup li { display: flex; align-items: center; gap: 10px; padding: 10px 9px; min-height: 44px; border-radius: 7px; font-size: 14px; line-height: 1.45; cursor: pointer; }
.signup-combobox-popup li > span:first-child { flex-shrink: 0; font-size: 19px; }
.signup-combobox-popup li:hover, .signup-combobox-popup li[aria-selected="true"] { background: var(--signup-focus-soft); }
.signup-combobox-status { padding: 13px; font-size: 13px; color: var(--qh-muted); }
.signup-combobox-status:empty { display: none; }
.signup-fields select:disabled { background: var(--qh-soft); color: var(--qh-muted); opacity: 1; }
.signup-seats { margin-top: 28px; border: 1px solid #dbe7ee; border-radius: 14px; background: #f8fbfd; padding: 22px; }
.signup-seats-heading { display: flex; gap: 16px; align-items: center; justify-content: space-between; }
.signup-seats-heading .signup-eyebrow { margin-bottom: 4px; }
.signup-seats-heading h2 { font-size: 19px; margin: 0; }
.signup-seats-badge { flex-shrink: 0; background: #e8f1f8; color: #375e7b; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 500; }
.signup-seats-description { margin: 14px 0 22px; font-size: 13px; color: #5f6771; line-height: 1.65; }
.signup-seat-choice { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 24px; }
.signup-seat-stepper { display: flex; gap: 6px; max-width: 200px; }
.signup-fields .signup-seat-stepper input { text-align: center; padding: 10px 3px; font-weight: 600; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.signup-seat-stepper input::-webkit-inner-spin-button, .signup-seat-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.signup-seat-stepper button { flex: 0 0 44px; min-height: 48px; border-radius: 10px; background: white; border: 1px solid #cfcfd4; color: var(--qh-ink); font-size: 22px; cursor: pointer; }
.signup-seat-stepper button:hover:not(:disabled) { border-color: var(--signup-focus); background: var(--signup-focus-soft); }
.signup-seat-stepper button:disabled { color: #a9aeb6; background: #f3f5f7; cursor: default; }
.signup-seat-price { display: flex; flex-direction: column; gap: 6px; }
.signup-seat-price > span { font-size: 13px; color: #5f6771; }
.signup-seat-price > strong { font-size: 15px; line-height: 1.55; font-weight: 600; }
.signup-admin-included { display: flex; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid #dbe7ee; }
.signup-admin-check { display: grid; place-items: center; flex: 0 0 22px; height: 22px; margin-top: 2px; background: #e5f1e9; border-radius: 50%; color: #276846; font-size: 13px; }
.signup-admin-included strong { font-size: 13px; color: #276846; }
.signup-admin-included p { font-size: 12px; color: #5f6771; margin: 4px 0 0; line-height: 1.6; }
@media (max-width: 620px) {
 .signup-seats { padding: 18px 16px; margin-top: 24px; }
 .signup-seats-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
 .signup-seat-choice { grid-template-columns: minmax(0,1fr); gap: 18px; }
}

/* The provider owns card entry; QHealth supplies context and an honest security explanation. */
.signup-secure-title { margin-bottom: 24px; text-align: center; }
.signup-secure-title > .signup-eyebrow { width: 100%; text-align: center; }
.signup-secure-emblem { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 14px; border: 1px solid #d5e9df; background: #eef7f2; color: #287454; border-radius: 15px; }
.signup-checkout-test { display: flex; justify-content: center; align-items: center; gap: 10px; padding: 11px 16px; margin: 0 0 20px; border: 1px solid #ecdfbf; border-radius: 10px; background: #fffbf1; color: #715922; font-size: 12px; line-height: 1.6; }
.signup-checkout-test strong { flex-shrink: 0; }
.signup-secure-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(290px, 1fr); gap: 24px; align-items: start; }
.signup-card-entry { padding: 28px; }
.signup-card-entry-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.signup-card-entry-heading h2 { font-size: 21px; margin: 0 0 7px; }
.signup-card-entry-heading p { font-size: 13px; color: var(--qh-muted); margin: 0; line-height: 1.65; }
.signup-card-outline { color: #7b8795; flex-shrink: 0; margin-top: 2px; }
.signup-payment-provider { display: flex; align-items: center; gap: 8px; margin: 22px 0 20px; padding: 11px 12px; border-radius: 9px; background: #f1f7f5; border: 1px solid #e0ece7; font-size: 12px; color: #426456; }
.signup-payment-provider strong { color: #285c4c; font-weight: 600; }
.signup-provider-lock { display: flex; flex: 0 0 auto; }
.signup-payment-frame { min-width: 0; min-height: 240px; }
.signup-payment-frame iframe { width: 100%; max-width: 100%; border: 0; }
.signup-card-status { margin: 14px 0 0; color: #68727e; font-size: 12px; line-height: 1.6; }
.signup-card-status[data-state="error"] { padding: 12px; color: #993c32; background: #fff3f0; border: 1px solid #f0d7d2; border-radius: 9px; }
.signup-card-status[data-state="redirect"] { color: #286948; font-weight: 500; }
.signup-card-protection { display: flex; align-items: flex-start; gap: 10px; margin: 22px 0 0; padding-top: 20px; border-top: 1px solid var(--qh-border); color: #617067; }
.signup-card-protection svg { flex: 0 0 auto; color: #387257; margin-top: 2px; }
.signup-card-protection p { font-size: 12px; line-height: 1.7; margin: 0; }
.signup-bank-verification { display: flex; align-items: flex-start; gap: 13px; margin-top: 20px; }
.signup-3ds-label { flex: 0 0 auto; margin-top: 2px; padding: 5px 8px; border: 1px solid #d4dce5; border-radius: 6px; background: #f8fafc; color: #415268; font-size: 11px; font-weight: 600; white-space: nowrap; }
.signup-bank-verification strong { display: block; font-size: 12px; font-weight: 500; color: #485564; }
.signup-bank-verification p { font-size: 12px; color: var(--qh-muted); line-height: 1.65; margin: 4px 0 0; }
.signup-checkout-order { padding: 25px; background: #fbfcfd; box-shadow: none; }
.signup-checkout-order > h2 { font-size: 19px; margin-bottom: 22px; }
.signup-checkout-plan { display: flex; flex-direction: column; gap: 4px; margin-bottom: 18px; }
.signup-checkout-plan strong { font-size: 17px; font-weight: 600; }
.signup-checkout-plan span { font-size: 12px; color: var(--qh-muted); }
.signup-checkout-lines { margin: 0; }
.signup-checkout-lines > div { display: flex; justify-content: space-between; gap: 12px; margin: 12px 0; font-size: 12px; }
.signup-checkout-lines dt { color: #647080; }
.signup-checkout-lines dd { margin: 0; font-weight: 500; text-align: right; }
.signup-checkout-due { display: flex; flex-direction: column; gap: 5px; padding: 20px 0; margin-top: 19px; border-top: 1px solid var(--qh-border); border-bottom: 1px solid var(--qh-border); }
.signup-checkout-due > span { font-size: 13px; font-weight: 500; }
.signup-checkout-due > strong { font-size: 32px; font-weight: 650; letter-spacing: -.035em; line-height: 1.3; overflow-wrap: anywhere; }
.signup-checkout-due > small { color: var(--qh-muted); font-size: 12px; }
.signup-checkout-renews { margin-top: 18px; font-size: 12px; line-height: 1.7; }
.signup-checkout-renews > strong { font-weight: 500; }
.signup-checkout-renews p { margin: 5px 0 0; color: var(--qh-muted); }
.signup-checkout-billing { display: flex; flex-direction: column; gap: 4px; margin: 19px 0 22px; font-size: 12px; }
.signup-checkout-billing > span { color: var(--qh-muted); }
.signup-checkout-billing > strong { font-weight: 500; overflow-wrap: anywhere; }
.signup-checkout-order > .signup-button { font-size: 13px; min-height: 44px; padding: 10px 12px; border-color: #ccd3db; }
.signup-checkout-activation { font-size: 11px; color: #6a747e; line-height: 1.7; text-align: center; margin: 14px 0 0; }
.signup-checkout-help { text-align: center; color: var(--qh-muted); font-size: 12px; margin: 24px 0 0; }
.signup-checkout-help a { display: inline-block; color: var(--qh-ink); padding: 8px 3px; }
@media (max-width: 760px) {
 .signup-secure-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .signup-checkout-order { order: -1; }
 .signup-checkout-order > h2, .signup-checkout-order > .signup-eyebrow { margin-bottom: 12px; }
 .signup-checkout-plan { margin-bottom: 10px; }
 .signup-checkout-due { margin-top: 14px; padding: 14px 0; }
 .signup-checkout-billing { margin: 14px 0; }
 .signup-card-entry { padding: 24px 20px; }
 .signup-checkout-test { justify-content: flex-start; align-items: flex-start; }
 .signup-bank-verification { gap: 10px; }
}
.signup-card-entry:has(.signup-card-status[data-state="error"]) .signup-payment-frame:empty { min-height: 0; }
