.registration-chat-entry { margin-left:auto; padding:0; border:0; color:inherit; background:none; font:inherit; cursor:default }
/* Keep the chat and its dimming layer above every page-level overlay. */
#registrationChatModal { z-index:2147483647 }
.modal-backdrop { z-index:2147483646 }
.registration-chat-dialog { max-width:720px }
.registration-chat-modal { height:min(760px,calc(100vh - 32px)); overflow:hidden; border:0; border-radius:28px; background:linear-gradient(145deg,#fff 55%,#fff8f3); box-shadow:0 28px 90px rgba(52,29,61,.28) }
.registration-chat-modal .modal-header { position:relative; gap:14px; padding:21px 62px 21px 24px; border-bottom:1px solid var(--line); background:linear-gradient(110deg,rgba(241,233,251,.85),rgba(255,240,232,.68)) }
.registration-chat-heading { display:flex; align-items:center; gap:13px }
.registration-chat-heading small { display:block; color:var(--brand); font-size:.65rem; font-weight:800; letter-spacing:.14em }
.registration-chat-heading h2 { margin:2px 0 0; font-size:1.3rem; letter-spacing:-.03em }
.registration-chat-mark { width:43px; height:43px; display:grid; place-items:center; flex:0 0 auto; border-radius:14px; color:#fff; background:linear-gradient(135deg,var(--brand-dark),var(--rose)); box-shadow:0 8px 20px rgba(102,50,148,.22) }
.registration-chat-modal .btn-close { position:absolute; top:14px; right:14px; margin:0; padding:10px; border-radius:50% }
.registration-chat-new { display:flex; min-height:44px; margin-left:auto; padding:9px 16px; align-items:center; justify-content:center; gap:7px; border-radius:13px; font-weight:700; white-space:nowrap }
.registration-chat-modal .modal-body { display:flex; flex-direction:column; min-height:0; padding:0 }
.registration-chat-modal [hidden] { display:none }
.registration-chat-loader { display:grid; flex:1; min-height:0; padding:28px; place-items:center; background:linear-gradient(145deg,#fff 45%,#fff8f3) }
.registration-chat-loader-content { width:min(100%,430px); padding:28px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 14px 40px rgba(52,29,61,.1); text-align:center }
.registration-chat-loader-icon { display:grid; width:54px; height:54px; margin:0 auto 14px; place-items:center; border-radius:18px; color:#fff; background:linear-gradient(135deg,var(--brand-dark),var(--rose)); box-shadow:0 9px 24px rgba(102,50,148,.23); font-size:1.25rem }
.registration-chat-loader-copy { display:flex; margin-bottom:16px; align-items:baseline; justify-content:space-between; gap:16px; color:var(--ink) }
.registration-chat-loader-copy span { flex:0 0 auto; color:var(--brand); font-size:.82rem; font-weight:800 }
.registration-chat-loader-track { height:9px; overflow:hidden; border-radius:999px; background:var(--lavender) }
.registration-chat-loader-track span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--brand-dark),var(--brand),var(--rose)); box-shadow:0 0 12px rgba(141,84,198,.35); transition:width .18s ease-out }
.registration-chat-auth-gate { flex:1; padding:34px 28px; overflow-y:auto; text-align:center }
.registration-chat-auth-icon { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 17px; border-radius:20px; color:#fff; background:linear-gradient(135deg,var(--brand-dark),var(--rose)); box-shadow:0 12px 28px rgba(102,50,148,.25); font-size:1.45rem }
.registration-chat-auth-copy { max-width:480px; margin:0 auto }
.registration-chat-auth-copy small { color:var(--brand); font-size:.68rem; font-weight:800; letter-spacing:.13em }
.registration-chat-auth-copy h3 { margin:6px 0 9px; color:var(--ink); font-size:1.45rem; letter-spacing:-.03em }
.registration-chat-auth-copy p { margin:0; color:var(--muted); line-height:1.55 }
.registration-chat-auth-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:480px; margin:24px auto 0 }
.registration-chat-auth-actions .btn { display:flex; min-height:50px; align-items:center; justify-content:center; gap:8px }
.registration-chat-login { display:grid; gap:13px; max-width:480px; margin:20px auto 0; padding:20px; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 10px 30px rgba(50,30,55,.07); text-align:left }
.registration-chat-login div { display:grid; gap:6px }
.registration-chat-login label { color:var(--ink); font-size:.8rem; font-weight:700 }
.registration-chat-login input { min-height:47px; padding:11px 13px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:var(--cream); font:inherit; outline:none }
.registration-chat-login input:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(141,84,198,.12) }
.registration-chat-login .btn { display:flex; min-height:48px; align-items:center; justify-content:center; gap:8px }
.registration-chat-login-error { margin:0; padding:10px 12px; border-radius:9px; color:#8b2929; background:#fff0f0; font-size:.82rem }
.registration-chat-login-response { padding:10px 12px; border:1px solid #d8cfe0; border-radius:9px; background:#f8f5fa; font-size:.8rem }
.registration-chat-login-response summary { color:var(--ink); font-weight:700; cursor:pointer }
.registration-chat-login-response pre { max-height:230px; margin:10px 0 0; padding:10px; overflow:auto; border-radius:8px; color:#312b33; background:#fff; font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; user-select:text }
.registration-chat-messages { flex:1; overflow-y:auto; padding:25px; scroll-behavior:smooth }
.registration-chat-messages.is-loading { display:none; scroll-behavior:auto }
.registration-chat-message-group { display:flex; width:100%; margin-bottom:12px; flex-direction:column; align-items:flex-start }
.registration-chat-message-group.user { align-items:flex-end }
.registration-chat-message { width:fit-content; max-width:min(82%,520px); padding:12px 16px; border-radius:18px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere }
.registration-chat-message.ai { margin-right:auto; border:1px solid var(--line); border-bottom-left-radius:5px; color:var(--ink); background:#fff; box-shadow:0 7px 22px rgba(50,30,55,.06) }
.registration-chat-message.user { margin-left:auto; border-bottom-right-radius:5px; color:#fff; background:linear-gradient(120deg,var(--brand-dark),var(--brand)); box-shadow:0 8px 24px rgba(102,50,148,.2) }
.registration-chat-confirmation { display:flex; align-items:flex-start; gap:10px; width:min(100%,480px); margin:12px 0 0; padding:15px; border-radius:16px; color:#198754; font-size:.84rem; font-weight:700 }
.registration-chat-message-group > .registration-chat-confirmation:first-child { margin-top:0 }
.registration-chat-confirmation.success { border:1px solid #a9ddbf; background:linear-gradient(135deg,#f1fff6,#fff) }
.registration-chat-confirmation i { flex:0 0 auto; margin-top:1px; font-size:1.2rem; line-height:1 }
.registration-chat-confirmation strong { display:block; margin-bottom:10px; color:#116c3a; font-size:.95rem }
.registration-chat-confirmation dl { display:grid; grid-template-columns:max-content 1fr; gap:5px 12px; margin:0; color:var(--ink); font-weight:400 }
.registration-chat-confirmation dt { color:var(--muted); font-weight:600 }
.registration-chat-confirmation dd { margin:0; overflow-wrap:anywhere; font-weight:700; user-select:all }
.registration-chat-confirmation.error { color:#a33a3a }
.registration-chat-confirmation.error i { flex:0 0 auto }
.registration-chat-next-actions { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 0 5px }
.registration-chat-next-actions .btn { display:inline-flex; align-items:center; gap:6px }
.registration-chat-download-actions { display:flex; flex-wrap:wrap; gap:10px; margin:10px 0 0 }
.registration-chat-download-actions .store-badge { min-width:165px }
.registration-chat-next-actions .registration-chat-trial-action { border:1px solid #ded6e5; color:var(--brand-dark); background:#fff; box-shadow:none }
.registration-chat-next-actions .registration-chat-trial-action:hover { border-color:#c8b7d8; color:var(--brand-dark); background:#faf7fc }
.registration-chat-trial-card { position:relative; display:grid; grid-template-columns:auto 1fr; gap:12px 14px; width:min(100%,520px); margin-top:12px; padding:18px; overflow:hidden; border:1px solid rgba(141,84,198,.2); border-radius:20px; background:linear-gradient(145deg,#fff 35%,#fbf5ff 70%,#fff2eb); box-shadow:0 14px 35px rgba(70,37,89,.1) }
.registration-chat-trial-card::after { position:absolute; top:-45px; right:-35px; width:130px; height:130px; border-radius:50%; background:rgba(255,181,158,.17); content:""; pointer-events:none }
.registration-chat-trial-icon { position:relative; z-index:1; display:grid; place-items:center; width:45px; height:45px; border-radius:14px; color:#fff; background:linear-gradient(135deg,var(--brand-dark),var(--rose)); box-shadow:0 8px 20px rgba(102,50,148,.2) }
.registration-chat-trial-copy { position:relative; z-index:1 }
.registration-chat-trial-copy small { display:block; margin-bottom:3px; color:var(--brand); font-size:.67rem; font-weight:800; letter-spacing:.12em }
.registration-chat-trial-copy strong { display:block; color:var(--ink); font-size:1rem }
.registration-chat-trial-copy p { margin:5px 0 0; color:var(--muted); font-size:.82rem; line-height:1.45 }
.registration-chat-trial-copy p b { color:var(--ink); font-weight:800 }
.registration-chat-trial-benefits { position:relative; z-index:1; grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:2px 0 0; padding:0; list-style:none }
.registration-chat-trial-benefits li { display:flex; min-width:0; padding:11px 9px; border:1px solid rgba(141,84,198,.15); border-radius:13px; flex-direction:column; align-items:flex-start; gap:8px; background:rgba(255,255,255,.76) }
.registration-chat-trial-benefit-icon { display:grid; place-items:center; width:29px; height:29px; border-radius:9px; color:var(--brand-dark); background:linear-gradient(135deg,#f0e7fa,#ffe9e2); font-size:.82rem }
.registration-chat-trial-benefits strong { display:block; color:var(--ink); font-size:.75rem; line-height:1.25 }
.registration-chat-trial-benefits small { display:block; margin-top:3px; color:var(--muted); font-size:.66rem; line-height:1.35 }
.registration-chat-trial-button { position:relative; z-index:1; grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; border-radius:13px }
.registration-chat-trial-already-active { position:relative; z-index:1; grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:11px 14px; border:1px solid #a9ddbf; border-radius:13px; color:#116c3a; background:linear-gradient(135deg,#f1fff6,#fff); font-size:.88rem; font-weight:700; text-align:center }
.registration-chat-trial-already-active i { flex:0 0 auto; color:#198754; font-size:1.2rem }
.registration-chat-payment { position:relative; z-index:1; grid-column:1/-1; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff }
.registration-chat-stripe-form { display:grid; gap:14px; padding:16px }
.registration-chat-stripe-form > .btn { display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px }
.registration-chat-stripe-form > small { color:var(--muted); text-align:center }
.registration-chat-stripe-error { margin:0; padding:10px 12px; border-radius:9px; color:#8b2929; background:#fff0f0; font-size:.82rem }
.registration-chat-payment-load-error { display:flex; align-items:center; gap:8px; padding:14px; color:#8b2929; background:#fff5f5; font-size:.84rem }
.registration-chat-trial-followup { max-width:500px; margin:12px 5px 5px; color:var(--ink); font-size:.9rem; line-height:1.5 }
.registration-chat-stripe-placeholder { display:flex; min-height:150px; padding:24px; flex-direction:column; align-items:center; justify-content:center; color:var(--muted); text-align:center; background:linear-gradient(145deg,#fff,#faf8ff) }
.registration-chat-stripe-placeholder strong { margin-top:10px; color:var(--ink); font-size:.92rem }
.registration-chat-stripe-placeholder small { margin-top:4px; font-size:.78rem }
.registration-chat-stripe-mark { padding:5px 10px 6px; border-radius:7px; color:#fff; background:#635bff; font-size:.85rem; font-weight:800; font-style:italic; letter-spacing:-.04em }
.registration-chat-voice-clone { display:grid; gap:13px; width:min(100%,520px); margin-top:12px; padding:18px; border:1px solid rgba(141,84,198,.22); border-radius:20px; background:linear-gradient(145deg,#fff 35%,#fbf5ff 72%,#fff4ef); box-shadow:0 14px 35px rgba(70,37,89,.1) }
.registration-chat-voice-head { display:flex; align-items:flex-start; gap:13px }
.registration-chat-voice-head small { display:block; color:var(--brand); font-size:.67rem; font-weight:800; letter-spacing:.12em }
.registration-chat-voice-head strong { display:block; margin-top:2px; color:var(--ink); font-size:1rem }
.registration-chat-voice-head p { margin:5px 0 0; color:var(--muted); font-size:.82rem; line-height:1.45 }
.registration-chat-voice-prompt { display:grid; gap:4px; padding:12px 14px; border-left:3px solid var(--rose); border-radius:5px 12px 12px 5px; color:var(--muted); background:#fff; font-size:.79rem; line-height:1.45 }
.registration-chat-voice-prompt strong { color:var(--ink) }
.registration-chat-voice-actions { display:flex; flex-wrap:wrap; gap:8px }
.registration-chat-voice-actions .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px }
.registration-chat-voice-timer { display:flex; align-items:center; gap:7px; width:max-content; color:#b52e50; font-size:.8rem; font-weight:800; font-variant-numeric:tabular-nums }
.registration-chat-voice-timer i { font-size:.65rem; animation:registration-recording-pulse 1.2s ease-in-out infinite }
.registration-chat-voice-note { color:var(--muted); font-size:.72rem }
.registration-chat-voice-progress { display:flex; align-items:center; gap:9px; padding:11px 13px; border-radius:12px; color:var(--brand-dark); background:var(--lavender); font-size:.82rem; font-weight:700 }
.registration-chat-voice-error { margin:0; padding:11px 13px; border:1px solid #e4a4a4; border-radius:12px; color:#8b2929; background:#fff5f5; font-size:.82rem }
.registration-chat-voice-success { display:grid; gap:7px; padding:14px; border:1px solid #a9ddbf; border-radius:14px; color:var(--muted); background:linear-gradient(135deg,#f1fff6,#fff); font-size:.82rem }
.registration-chat-voice-success strong { color:#116c3a; font-size:.9rem }
.registration-chat-voice-success strong i { margin-right:6px }
.registration-chat-voice-success audio { width:100%; height:42px; margin-top:3px }
.registration-chat-voice-clone.is-complete .registration-chat-voice-prompt,
.registration-chat-voice-clone.is-complete .registration-chat-voice-actions,
.registration-chat-voice-clone.is-complete .registration-chat-voice-note { display:none }
.registration-chat-status { display:flex; align-items:center; gap:9px; padding:0 25px 15px; color:var(--muted); font-size:.82rem }
.registration-chat-error { display:grid; gap:9px; margin:0 0 16px; padding:14px; border:1px solid #e4a4a4; border-radius:14px; color:#722; background:#fff5f5 }
.registration-chat-error span { font-size:.82rem }
.registration-chat-error pre { max-height:240px; margin:0; padding:10px; overflow:auto; border-radius:8px; color:#312b33; background:#f5f2f6; font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; user-select:text }
.registration-chat-error .btn { width:max-content }
.registration-chat-typing { display:flex; gap:3px; padding:9px 11px; border-radius:14px; background:var(--lavender) }
.registration-chat-typing i { width:6px; height:6px; border-radius:50%; background:var(--brand); animation:registration-chat-bounce 1s infinite ease-in-out }
.registration-chat-typing i:nth-child(2) { animation-delay:.14s }.registration-chat-typing i:nth-child(3) { animation-delay:.28s }
@keyframes registration-chat-bounce { 0%,60%,100% { transform:translateY(0); opacity:.45 } 30% { transform:translateY(-4px); opacity:1 } }
.registration-chat-modal .modal-footer { display:block; padding:16px 20px 20px; border-top:1px solid var(--line); background:#fff }
.registration-chat-debug { margin:0 0 12px; padding:12px; border:1px solid #d8cfe0; border-radius:14px; background:#f8f5fa }
.registration-chat-debug-header { display:flex; align-items:center; justify-content:space-between; gap:12px }
.registration-chat-debug-header button { padding:3px; border:0; color:var(--muted); background:transparent }
.registration-chat-debug p { margin:3px 0 9px; color:var(--muted); font-size:.78rem }
.registration-chat-debug pre { max-height:210px; margin:0; padding:10px; overflow:auto; border-radius:9px; color:#312b33; background:#fff; font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; user-select:text }
.registration-chat-form { display:flex; align-items:flex-end; gap:10px; width:100% }
.registration-chat-form textarea { flex:1; min-height:50px; max-height:calc(4.5em + 28px); overflow-y:hidden; resize:none; padding:13px 15px; border:1px solid var(--line); border-radius:15px; color:var(--ink); background:var(--cream); font:inherit; line-height:1.5; outline:none }
.registration-chat-form textarea:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(141,84,198,.12) }
.registration-chat-form .btn { min-height:50px; display:flex; align-items:center; gap:8px; justify-content:center }
.registration-chat-debug-toggle { width:50px; flex:0 0 50px; padding:0 }
.registration-chat-voice-wrap { position:relative; flex:0 0 50px }
.registration-chat-mic { width:50px; padding:0 }
.registration-chat-mic.is-recording { color:#fff; border-color:#d94b67; background:#d94b67; box-shadow:0 0 0 4px rgba(217,75,103,.14) }
.registration-chat-recorder { position:absolute; right:0; bottom:calc(100% + 12px); z-index:5; width:260px; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 16px 45px rgba(45,30,49,.18) }
.registration-chat-recorder:after { content:""; position:absolute; right:17px; bottom:-7px; width:13px; height:13px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; transform:rotate(45deg) }
.registration-chat-recording-status { display:flex; align-items:center; gap:8px; color:var(--ink); font-size:.84rem }
.registration-chat-recording-status time { margin-left:auto; color:var(--muted); font-variant-numeric:tabular-nums }
.registration-chat-recording-dot { width:9px; height:9px; border-radius:50%; background:#d94b67; box-shadow:0 0 0 4px rgba(217,75,103,.12); animation:registration-recording-pulse 1.2s ease-in-out infinite }
.registration-chat-recorder p { margin:10px 0 14px; color:var(--muted); font-size:.75rem; line-height:1.4 }
.registration-chat-recorder-actions { display:flex; gap:8px }
.registration-chat-recorder-actions .btn { min-height:36px; flex:1; padding:6px 12px }
.registration-chat-audio-status { display:flex; align-items:center; gap:10px; text-align:left }
.registration-chat-audio-status-icon { width:32px; height:32px; flex:0 0 32px; display:grid; place-items:center; border-radius:50%; color:var(--brand-dark); background:rgba(255,255,255,.72); font-size:1.05rem }
@keyframes registration-recording-pulse { 50% { opacity:.45; transform:scale(.82) } }
.registration-chat-form :disabled { cursor:not-allowed; opacity:.62 }

@media(max-width:767px) {
	.registration-chat-auth-actions { grid-template-columns:1fr }
	.registration-chat-entry {
		margin-left: 0
	}

	.registration-chat-dialog { margin:0; min-height:100%; max-width:none }
	.registration-chat-modal { height:100dvh; border-radius:0 }
	.registration-chat-modal .modal-header { padding:14px 54px 14px 14px; flex-wrap:wrap }
	.registration-chat-heading { flex:1 1 auto }
	.registration-chat-new { width:100%; order:2; margin:0 }
	.registration-chat-messages { padding:18px 15px }
	.registration-chat-message { max-width:88%; font-size:.94rem }
	.registration-chat-trial-card { padding:15px }
	.registration-chat-trial-benefits { grid-template-columns:1fr }
	.registration-chat-trial-benefits li { padding:10px; flex-direction:row; align-items:flex-start }
	.registration-chat-status { padding:0 15px 12px }
	.registration-chat-modal .modal-footer { padding:12px }
	.registration-chat-form .btn { width:50px; padding:0 }
	.registration-chat-form .btn span { display:none }
	.registration-chat-recorder { right:-50px }
	.registration-chat-recorder-actions .btn { width:auto; padding:6px 12px }
}
