/* =====================================================================
   Consertix — UX v3 (carregado depois de app.css)
   Mantém as cores e a identidade; melhora leitura no telemóvel, cartões,
   cabeçalho, conversa, player de áudio, uploads e seleção de bairro.
   ===================================================================== */

/* ------------------------------------------------ Base: nada empurra a página para os lados */
html, body { max-width: 100%; overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
body { overscroll-behavior-y: none; }
img, video, svg, canvas, iframe { max-width: 100%; }
.min-w-0 { min-width: 0 !important; }
h1, .h1, h2, .h2, h3, .h3 { overflow-wrap: anywhere; hyphens: auto; }
.h3, h1.h3 { font-size: clamp(1.25rem, 4.6vw, 1.6rem); }
.form-label { font-size: .95rem; }
.small, small { font-size: .875rem; }
.form-text { font-size: .85rem; }

/* Barras de rolagem: finas e discretas no computador; escondidas no telemóvel (o conteúdo continua a deslizar) */
* { scrollbar-width: thin; scrollbar-color: rgba(15, 30, 46, .18) transparent; }
*::-webkit-scrollbar { width: 6px; height: 6px; }
*::-webkit-scrollbar-thumb { background: rgba(15, 30, 46, .18); border-radius: 6px; }
*::-webkit-scrollbar-track { background: transparent; }
@media (hover: none), (max-width: 991.98px) {
  html, body, .cx-chat-body, .cx-loc-list, .offcanvas-body { scrollbar-width: none; }
  html::-webkit-scrollbar, body::-webkit-scrollbar, .cx-chat-body::-webkit-scrollbar, .cx-loc-list::-webkit-scrollbar, .offcanvas-body::-webkit-scrollbar { display: none; width: 0; height: 0; }
}

/* ------------------------------------------------ Cabeçalho das páginas internas */
.cx-topbar .container-xl { min-width: 0; }
.cx-topbar.is-inner .cx-back-btn { margin-left: -6px; color: var(--cx-ink); }
.cx-topbar-title { font-weight: 700; font-size: 1.05rem; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cx-topbar .cx-bell .cx-count, .cx-icon-btn .cx-count {
  position: absolute; top: 4px; right: 4px; transform: translate(25%, -15%);
  min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--cx-danger); color: #fff;
  font-size: .68rem; font-weight: 800; line-height: 19px; text-align: center; border: 2px solid #fff; box-sizing: content-box;
}
@media (max-width: 991.98px) {
  .cx-topbar.is-inner { height: calc(56px + env(safe-area-inset-top)); }
  .cx-topbar .cx-logo { font-size: 1.15rem; }
  .cx-topbar .cx-logo img, .cx-topbar .cx-logo-img { width: 32px; height: 32px; }
}
/* O título da página no conteúdo repete o do cabeçalho em páginas internas: fica mais compacto */
@media (max-width: 991.98px) {
  .cx-topbar.is-inner ~ main .cx-main { padding-top: .9rem; }
}

/* ------------------------------------------------ Botões e campos (toque confortável) */
.btn { min-height: 44px; }
.btn-sm { min-height: 38px; }
.btn i.bi { line-height: 1; }
.btn-link.cx-btn-quiet { color: var(--cx-muted); font-weight: 600; text-decoration: none; }
.btn-link.cx-btn-quiet:hover { color: var(--cx-danger); }
.form-control, .form-select { min-height: 48px; background-color: #fff; border: 1.5px solid #D6DEE5; transition: border-color .15s, box-shadow .15s; }
.form-control::placeholder { color: #93A1AE; }
.form-control:hover, .form-select:hover { border-color: #BAC7D2; }
.form-control:focus, .form-select:focus { border-color: var(--cx-primary-2); box-shadow: 0 0 0 4px rgba(14, 94, 111, .12); }
textarea.form-control { min-height: 110px; resize: vertical; line-height: 1.5; }
.cx-input-lg { font-size: 1.05rem; font-weight: 600; }
.input-group-text { border: 1.5px solid #D6DEE5; background: var(--cx-bg); color: var(--cx-muted); font-weight: 600; border-radius: 12px; }
.input-group > .form-control:not(:last-child) { border-right: 0; }
.form-select { background-position: right .9rem center; padding-right: 2.4rem; }
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }
.cx-field-tip { display: flex; gap: .5rem; align-items: flex-start; margin-top: .45rem; font-size: .85rem; color: var(--cx-muted); line-height: 1.4; }
.cx-field-tip > i { color: var(--cx-warning); margin-top: .1rem; flex-shrink: 0; }
.cx-field-tip strong { color: var(--cx-ink); font-weight: 600; }
.cx-guide { display: flex; gap: .8rem; align-items: flex-start; padding: .9rem 1rem; border-radius: 14px; background: linear-gradient(135deg, var(--cx-primary-50), #F2FAF5); border: 1px solid #D3E6EA; font-size: .92rem; line-height: 1.45; }
.cx-guide > i { font-size: 1.5rem; color: var(--cx-primary-2); flex-shrink: 0; line-height: 1; }

/* ------------------------------------------------ Etiquetas pequenas */
.cx-mini-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .22rem .6rem; border-radius: 999px; font-size: .76rem; font-weight: 700; white-space: nowrap; background: var(--tone-bg, var(--cx-primary-50)); color: var(--tone, var(--cx-primary)); }
.cx-mini-warn { --tone: #B45309; --tone-bg: var(--cx-warning-50); }
.cx-mini-ok { --tone: var(--cx-accent-600); --tone-bg: var(--cx-accent-50); }
.cx-mini-info { --tone: var(--cx-primary-2); --tone-bg: var(--cx-primary-50); }
.cx-status-chip { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }

/* ------------------------------------------------ Cartões de pedido / trabalho */
.cx-rcard { padding: 1rem; display: flex; flex-direction: column; gap: .7rem; height: 100%; }
.cx-rcard.is-urgent { border-color: #F7C899; box-shadow: 0 0 0 3px rgba(234, 122, 11, .08), var(--cx-shadow); }
.cx-rcard-top { display: flex; gap: .8rem; align-items: flex-start; color: var(--cx-ink); min-width: 0; }
.cx-rcard-top:hover { color: var(--cx-ink); }
.cx-rcard-icon { flex-shrink: 0; width: 48px; height: 48px; border-radius: 14px; background: var(--cx-primary-50); display: grid; place-items: center; }
.cx-rcard-icon svg { width: 38px; height: 38px; }
.cx-rcard-head { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.cx-rcard-title { font-weight: 700; font-size: 1.05rem; line-height: 1.3; color: var(--cx-ink);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.cx-rcard-service { font-size: .87rem; color: var(--cx-muted); margin-top: .15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-rcard-status { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.cx-rcard-desc { margin: 0; font-size: .92rem; color: #334155; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cx-rcard-facts { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem .9rem; font-size: .87rem; color: var(--cx-muted); }
.cx-rcard-facts li { display: inline-flex; align-items: center; gap: .35rem; min-width: 0; max-width: 100%; }
.cx-rcard-facts li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-rcard-facts i { color: var(--cx-primary-2); flex-shrink: 0; }
.cx-rcard-offers { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; padding: .55rem .8rem; border-radius: 12px; background: var(--cx-bg); font-size: .9rem; }
.cx-rcard-offers.has { background: var(--cx-accent-50); color: var(--cx-accent-600); }
.cx-rcard-offers strong { font-weight: 800; }
.cx-rcard-amount { color: var(--cx-ink); }
.cx-rcard-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .5rem; margin-top: auto; }
.cx-rcard-actions .btn { width: 100%; white-space: nowrap; }
.cx-rcard-actions-3 { grid-template-columns: 1fr 1fr; }
.cx-rcard-actions-3 .cx-btn-quiet { grid-column: 1 / -1; min-height: 36px; padding: .25rem; }
.cx-rcard-actions-full { grid-column: 1 / -1; }
@media (max-width: 359.98px) { .cx-rcard-actions, .cx-rcard-actions-3 { grid-template-columns: 1fr; } }
/* barra de etapas compacta não aperta */
.cx-rcard-progress { min-width: 0; }

/* Cartão de profissional */
.cx-pro-card { padding: 1rem; display: flex; flex-direction: column; gap: .75rem; }
.cx-pro-top { display: flex; gap: .85rem; align-items: flex-start; color: var(--cx-ink); min-width: 0; }
.cx-pro-top:hover { color: var(--cx-ink); }
.cx-pro-avatar { position: relative; flex-shrink: 0; }
.cx-pro-head { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.cx-pro-card .cx-pro-name, .cx-pro-name { font-weight: 700; font-size: 1.02rem; line-height: 1.3; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cx-pro-cat { font-size: .87rem; color: var(--cx-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-online-dot { position: absolute; right: 1px; bottom: 1px; width: 13px; height: 13px; border-radius: 50%; background: var(--cx-accent); border: 2px solid #fff; }

/* Cartão de proposta */
.cx-prop-top { display: flex; gap: .85rem; align-items: flex-start; }
.cx-prop-price { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-top: .8rem; padding: .6rem .85rem; border-radius: 12px; background: var(--cx-bg); }
.cx-prop-price .cx-amount { font-size: 1.3rem; }
.cx-proposal .cx-kv { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cx-proposal .cx-kv > div { min-width: 0; }

/* ------------------------------------------------ Lista de conversas */
.cx-conv { display: flex; gap: .8rem; padding: .85rem 1rem; align-items: flex-start; }
.cx-conv .cx-avatar { flex-shrink: 0; }
.cx-conv-body { flex: 1; min-width: 0; display: grid; gap: .15rem; }
.cx-conv-line { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.cx-conv-name { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1rem; }
.cx-conv-time { flex-shrink: 0; font-size: .78rem; color: var(--cx-muted); }
.cx-conv-req { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .85rem; color: var(--cx-primary-2); font-weight: 600; }
.cx-conv-last { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .88rem; color: var(--cx-muted); }
.cx-conv-unread { flex-shrink: 0; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--cx-accent); color: #fff; font-size: .75rem; font-weight: 800; display: grid; place-items: center; }
.cx-conv.is-unread .cx-conv-name, .cx-conv.is-unread .cx-conv-last { color: var(--cx-ink); font-weight: 700; }
.cx-conv .cx-mini-chip { font-size: .7rem; padding: .15rem .5rem; }

/* ------------------------------------------------ Conversa (ecrã inteiro no telemóvel) */
.cx-chat-page { max-width: 860px; margin: 0 auto; }
.cx-chat { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cx-line); border-radius: var(--cx-radius); box-shadow: var(--cx-shadow); overflow: hidden;
  height: calc(100dvh - 62px - 4rem); min-height: 420px; }
.cx-chat-head { padding: .55rem .75rem; gap: .6rem; min-height: 64px; position: relative; z-index: 2; }
.cx-chat-head .cx-icon-btn { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: var(--cx-ink); background: transparent; border: 0; font-size: 1.25rem; flex-shrink: 0; }
.cx-chat-head .cx-icon-btn:hover { background: var(--cx-bg); }
.cx-chat-avatar { position: relative; flex-shrink: 0; }
.cx-chat-avatar .cx-avatar { width: 44px; height: 44px; }
.cx-chat-name { display: flex; align-items: center; gap: .35rem; font-weight: 700; font-size: 1.02rem; min-width: 0; line-height: 1.25; }
.cx-chat-sub { font-size: .82rem; color: var(--cx-muted); }
.cx-chat-context { display: flex; align-items: center; gap: .6rem; padding: .5rem .85rem; background: var(--cx-primary-50); color: var(--cx-ink); border-bottom: 1px solid var(--cx-line); font-size: .88rem; }
.cx-chat-context:hover { color: var(--cx-ink); background: #DCEBEE; }
.cx-chat-context > i:first-child { color: var(--cx-primary-2); font-size: 1.1rem; }
.cx-chat-context .cx-status-chip { font-size: .72rem; padding: .18rem .55rem; flex-shrink: 0; }
.cx-chat-body { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: .9rem .75rem 1rem; gap: .45rem;
  background: #EEF2F5 radial-gradient(rgba(11, 61, 79, .035) 1px, transparent 1px) 0 0 / 16px 16px; }
.cx-msg { max-width: min(82%, 520px); padding: .55rem .8rem .4rem; border-radius: 18px; box-shadow: 0 1px 1px rgba(15, 30, 46, .06); line-height: 1.45; }
.cx-msg.them { background: #fff; border: 0; }
.cx-msg.me { background: var(--cx-primary); }
.cx-msg time { font-size: .68rem; margin-top: 3px; white-space: nowrap; letter-spacing: .01em; }
.cx-msg.is-audio { padding: .45rem .55rem .35rem; width: min(82%, 320px); }
.cx-msg.is-audio time { margin-top: 0; padding-right: .25rem; }
.cx-msg img, .cx-msg video { max-width: min(240px, 100%); }
.cx-msg-system { font-size: .78rem; box-shadow: none; background: rgba(230, 236, 240, .95); }
.cx-chat-input { padding: .55rem .6rem calc(.55rem + env(safe-area-inset-bottom)); gap: .45rem; align-items: flex-end; }
.cx-chat-input textarea.form-control { min-height: 46px; max-height: 120px; height: 46px; resize: none; border-radius: 23px; padding: .65rem 1rem; line-height: 1.35; overflow-y: auto; font-size: 1rem; }
.cx-chat-input .btn { width: 46px; height: 46px; min-height: 46px; flex-shrink: 0; }
.cx-chat-input .dropup { flex-shrink: 0; }
.cx-rec-hint { display: flex; align-items: center; gap: .6rem; white-space: nowrap; padding: .7rem .85rem calc(.7rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--cx-line); font-weight: 600; }
.cx-rec-hint.d-none { display: none !important; }
.cx-rec-time { font-variant-numeric: tabular-nums; min-width: 2.6em; }
.cx-rec-bars { display: inline-flex; gap: 3px; align-items: center; height: 18px; }
.cx-rec-bars i { width: 3px; height: 40%; background: var(--cx-danger); border-radius: 3px; animation: cxRecBar .9s ease-in-out infinite; }
.cx-rec-bars i:nth-child(2) { animation-delay: .15s; } .cx-rec-bars i:nth-child(3) { animation-delay: .3s; } .cx-rec-bars i:nth-child(4) { animation-delay: .45s; } .cx-rec-bars i:nth-child(5) { animation-delay: .6s; }
@keyframes cxRecBar { 0%, 100% { height: 30%; } 50% { height: 100%; } }
@media (max-width: 380px) { .cx-rec-bars { display: none; } .cx-rec-hint .btn { padding-inline: .6rem; } }
.cx-rec-review { padding: .7rem .75rem calc(.7rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--cx-line); }
.cx-rec-actions { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: .45rem; margin-top: .6rem; }
.cx-rec-actions .btn { min-height: 44px; padding-inline: .5rem; white-space: nowrap; }
@media (max-width: 339.98px) { .cx-rec-actions .btn span { display: none; } }
[data-voice-out] .cx-rec-actions { grid-template-columns: 1fr 1fr; }
[data-voice-out] .cx-rec-actions .btn span { display: inline; }

@media (max-width: 991.98px) {
  /* No telemóvel a conversa ocupa o ecrã: sem cabeçalho geral, sem barra de baixo, caixa de escrita sempre visível */
  .cx-app-chat .cx-topbar, .cx-app-chat .cx-bottom-nav, .cx-app-chat .cx-install, .cx-chat-open .cx-install-prompt { display: none !important; }
  .cx-app-chat main { padding: 0 !important; }
  .cx-chat-page { max-width: none; }
  .cx-chat { position: fixed; left: 0; right: 0; top: 0; height: var(--cx-vvh, 100dvh); min-height: 0; border: 0; border-radius: 0; box-shadow: none; z-index: 1030; }
  .cx-chat-head { padding-top: calc(.55rem + env(safe-area-inset-top)); min-height: calc(64px + env(safe-area-inset-top)); }
  html.cx-chat-open, html.cx-chat-open body { overflow: hidden; height: 100%; overscroll-behavior: none; }
  .cx-app-chat ~ .cx-push-prompt { display: none; }
}
@media (min-width: 992px) {
  .cx-app-chat main { padding: 2rem 0 2rem; }
}

/* ------------------------------------------------ Player de áudio Consertix */
.cx-player { display: flex; align-items: center; gap: .7rem; width: 100%; min-width: 0; padding: .55rem .7rem; border-radius: 16px; background: #fff; border: 1px solid var(--cx-line);
  --pl-accent: var(--cx-accent); --pl-bar: #C8D3DB; --pl-fill: var(--cx-primary-2); --pl-text: var(--cx-muted); --pl-btn-bg: var(--cx-accent); --pl-btn-fg: #fff; }
.cx-player audio { display: none; }
.cx-player:not(.is-enhanced) audio { display: block; width: 100%; }
.cx-player:not(.is-enhanced) .cx-player-btn, .cx-player:not(.is-enhanced) .cx-player-main { display: none; }
.cx-player-btn { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; border: 0; display: grid; place-items: center; background: var(--pl-btn-bg); color: var(--pl-btn-fg);
  font-size: 1.45rem; box-shadow: 0 3px 10px rgba(22, 163, 74, .28); transition: transform .12s ease, box-shadow .12s; cursor: pointer; touch-action: manipulation; }
.cx-player-btn .bi-play-fill { margin-left: 3px; }
.cx-player-btn:active { transform: scale(.92); }
.cx-player-btn:focus-visible { outline: 3px solid rgba(22, 163, 74, .35); outline-offset: 2px; }
.cx-player.is-playing .cx-player-btn { box-shadow: 0 0 0 5px rgba(22, 163, 74, .15); }
.cx-player-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.cx-player-wave { position: relative; height: 32px; cursor: pointer; touch-action: none; user-select: none; -webkit-user-select: none; outline: none; }
.cx-player-wave:focus-visible { outline: 2px solid var(--pl-fill); outline-offset: 3px; border-radius: 6px; }
.cx-wave-bars { position: absolute; inset: 0; display: flex; align-items: center; gap: 2px; }
.cx-wave-bars i { flex: 1; min-width: 2px; border-radius: 3px; background: var(--pl-bar); min-height: 3px; }
.cx-wave-fill { position: absolute; inset: 0; clip-path: inset(0 100% 0 0); pointer-events: none; }
.cx-wave-fill .cx-wave-bars i { background: var(--pl-fill); }
.cx-wave-knob { position: absolute; top: 50%; left: 0; width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; border-radius: 50%; background: var(--pl-fill); box-shadow: 0 0 0 3px rgba(255, 255, 255, .85); opacity: 0; transition: opacity .15s; pointer-events: none; }
.cx-player.is-playing .cx-wave-knob, .cx-player.is-seeking .cx-wave-knob, .cx-player-wave:hover .cx-wave-knob { opacity: 1; }
.cx-player-meta { display: flex; justify-content: space-between; align-items: center; gap: .5rem; min-width: 0; }
.cx-player-time { font-size: .78rem; font-weight: 600; color: var(--pl-text); white-space: nowrap; font-variant-numeric: tabular-nums; letter-spacing: .01em; flex-shrink: 0; }
.cx-player-label { font-size: .75rem; color: var(--pl-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .85; }
/* cores dentro das mensagens */
.cx-msg .cx-player { padding: .15rem .1rem; border: 0; background: transparent; }
.cx-player-me { --pl-bar: rgba(255, 255, 255, .35); --pl-fill: #fff; --pl-text: rgba(255, 255, 255, .8); --pl-btn-bg: #fff; --pl-btn-fg: var(--cx-primary); }
.cx-player-me .cx-player-btn { box-shadow: 0 3px 10px rgba(0, 0, 0, .18); }
.cx-player-me.is-playing .cx-player-btn { box-shadow: 0 0 0 5px rgba(255, 255, 255, .18); }
.cx-player-me .cx-wave-knob { box-shadow: 0 0 0 3px rgba(11, 61, 79, .6); }
.cx-player-them { --pl-bar: #CBD5DE; --pl-fill: var(--cx-accent); }
.cx-msg .cx-player-label { display: none; }
.cx-voice-block { padding: .8rem; border-radius: 16px; background: var(--cx-primary-50); }
.cx-voice-block-title { font-size: .85rem; font-weight: 700; color: var(--cx-primary); margin-bottom: .5rem; display: flex; align-items: center; gap: .4rem; }
.cx-voice-block .cx-player { border-color: transparent; box-shadow: 0 1px 2px rgba(15, 30, 46, .06); }

/* Gravar áudio no pedido */
.cx-voice-card { border: 1.5px dashed #C3D3DA; border-radius: 16px; padding: 1rem; background: #fff; transition: border-color .15s, background .15s; }
.cx-voice-card.is-recording { border-color: var(--cx-danger); background: #FFF7F7; }
.cx-voice-card.has-audio { border-style: solid; border-color: #BFE3CB; background: #FAFEFB; }
.cx-voice-icon { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--cx-accent-50); color: var(--cx-accent-600); font-size: 1.3rem; flex-shrink: 0; }
.cx-voice-card.is-recording .cx-voice-icon { background: #FDE2E2; color: var(--cx-danger); animation: cxPulse 1.2s ease-in-out infinite; }
@keyframes cxPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }

/* ------------------------------------------------ Uploads */
.cx-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.cx-upload { position: relative; display: grid; gap: .6rem; }
.cx-drop { display: flex; align-items: center; gap: .85rem; padding: .9rem 1rem; border: 1.5px dashed #BFCED7; border-radius: 16px; background: #fff; cursor: pointer; margin: 0; transition: border-color .15s, background .15s; min-width: 0; }
.cx-drop:hover, .cx-drop.is-over { border-color: var(--cx-primary-2); background: var(--cx-primary-50); }
.cx-upload:focus-within .cx-drop { border-color: var(--cx-primary-2); box-shadow: 0 0 0 4px rgba(14, 94, 111, .12); }
.cx-drop-icon { width: 48px; height: 48px; flex-shrink: 0; border-radius: 14px; background: var(--cx-primary-50); color: var(--cx-primary-2); display: grid; place-items: center; font-size: 1.45rem; }
.cx-drop-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cx-drop-text strong { font-size: .97rem; color: var(--cx-ink); line-height: 1.3; }
.cx-drop-text small { color: var(--cx-muted); font-size: .8rem; line-height: 1.35; margin-top: .1rem; }
.cx-drop-btn { flex-shrink: 0; display: inline-flex; align-items: center; gap: .3rem; padding: .5rem .8rem; border-radius: 10px; background: var(--cx-primary); color: #fff; font-weight: 600; font-size: .88rem; min-height: 40px; }
.cx-upload-count:empty { display: none; }
.cx-file-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: .55rem; }
.cx-file-list:empty { display: none; }
.cx-file { position: relative; border: 1px solid var(--cx-line); border-radius: 14px; background: #fff; overflow: hidden; display: flex; flex-direction: column; animation: cxPop .2s ease; }
@keyframes cxPop { from { transform: scale(.94); opacity: 0; } to { transform: none; opacity: 1; } }
.cx-file-thumb { aspect-ratio: 1; background: var(--cx-bg); display: grid; place-items: center; position: relative; color: var(--cx-primary-2); font-size: 2rem; }
.cx-file-thumb img, .cx-file-thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.cx-file-badge { position: absolute; inset: auto auto 6px 6px; width: 26px; height: 26px; border-radius: 50%; background: rgba(15, 30, 46, .7); color: #fff; display: grid; place-items: center; font-size: .9rem; }
.cx-file-info { padding: .35rem .5rem .45rem; display: flex; flex-direction: column; min-width: 0; }
.cx-file-name { font-size: .74rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-file-size { font-size: .7rem; color: var(--cx-muted); }
.cx-file-remove { position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(15, 30, 46, .72); color: #fff; display: grid; place-items: center; font-size: .85rem; }
.cx-file-remove:hover { background: var(--cx-danger); }
.cx-upload-error { display: flex; gap: .55rem; align-items: flex-start; padding: .6rem .8rem; border-radius: 12px; background: var(--cx-danger-50); color: #9F1C1C; font-size: .86rem; line-height: 1.4; }
.cx-upload-error i { margin-top: .1rem; }

/* Fotografia de perfil com pré-visualização na caixinha */
.cx-avatar-up { position: relative; display: flex; align-items: center; gap: 1rem; padding: .9rem; border: 1.5px solid var(--cx-line); border-radius: 18px; background: #fff; flex-wrap: wrap; }
.cx-avatar-up-frame { position: relative; width: 96px; height: 96px; border-radius: 50%; flex-shrink: 0; cursor: pointer; margin: 0; background: var(--cx-primary-50); border: 2px dashed #BFCED7; display: grid; place-items: center; overflow: visible; }
.cx-avatar-up.has-image .cx-avatar-up-frame { border: 3px solid #fff; box-shadow: 0 0 0 2px var(--cx-accent), var(--cx-shadow); }
.cx-avatar-up-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; border-radius: 50%; display: block; }
.cx-avatar-up-empty { color: var(--cx-primary-2); font-size: 2.2rem; }
.cx-avatar-up-cam { position: absolute; right: -2px; bottom: -2px; width: 32px; height: 32px; border-radius: 50%; background: var(--cx-primary); color: #fff; display: grid; place-items: center; border: 3px solid #fff; font-size: .85rem; }
.cx-avatar-up-body { flex: 1; min-width: 180px; }
.cx-avatar-up-name { display: block; margin-top: .3rem; font-size: .8rem; color: var(--cx-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.cx-avatar-up .cx-upload-error { flex-basis: 100%; }

/* ------------------------------------------------ Seleção de bairro com pesquisa */
.cx-loc { position: relative; }
.cx-loc-native { position: absolute !important; left: 0; bottom: 0; width: 100% !important; height: 1px !important; min-height: 0 !important; opacity: 0; pointer-events: none; padding: 0 !important; border: 0 !important; }
.cx-loc-field { width: 100%; display: flex; align-items: center; gap: .7rem; min-height: 54px; padding: .5rem .9rem; border-radius: 12px; border: 1.5px solid #D6DEE5; background: #fff; text-align: left; color: var(--cx-ink); transition: border-color .15s, box-shadow .15s; }
.cx-loc-field:hover { border-color: #BAC7D2; }
.cx-loc.is-open .cx-loc-field, .cx-loc-field:focus-visible { border-color: var(--cx-primary-2); box-shadow: 0 0 0 4px rgba(14, 94, 111, .12); outline: none; }
.cx-loc-field > .bi-geo-alt-fill { color: var(--cx-accent); font-size: 1.15rem; flex-shrink: 0; }
.cx-loc-value { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.cx-loc-value strong { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-loc-value small { font-size: .78rem; color: var(--cx-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-loc-caret { color: var(--cx-muted); transition: transform .15s; flex-shrink: 0; }
.cx-loc.is-open .cx-loc-caret { transform: rotate(180deg); }
.cx-loc-panel { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 1060; background: #fff; border: 1px solid var(--cx-line); border-radius: 16px; box-shadow: 0 16px 40px rgba(15, 30, 46, .18); overflow: hidden; display: flex; flex-direction: column; max-height: min(430px, 62vh); }
.cx-loc-search { display: flex; align-items: center; gap: .5rem; padding: .55rem .75rem; border-bottom: 1px solid var(--cx-line); }
.cx-loc-search i { color: var(--cx-muted); }
.cx-loc-search input { flex: 1; border: 0; outline: none; min-height: 40px; font-size: 1rem; background: transparent; min-width: 0; }
.cx-loc-list { overflow-y: auto; overscroll-behavior: contain; flex: 1; padding: .25rem 0; }
.cx-loc-group { position: sticky; top: 0; z-index: 1; padding: .5rem .9rem .3rem; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: var(--cx-primary-2); background: #F7FAFB; border-bottom: 1px solid #EEF2F5; }
.cx-loc-opt { width: 100%; border: 0; background: transparent; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .7rem .9rem; min-height: 46px; font-size: .97rem; color: var(--cx-ink); }
.cx-loc-opt small { font-size: .75rem; color: var(--cx-muted); text-align: right; flex-shrink: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 50%; }
.cx-loc-opt:hover, .cx-loc-opt:focus-visible { background: var(--cx-bg); outline: none; }
.cx-loc-opt.is-selected { background: var(--cx-primary-50); font-weight: 700; color: var(--cx-primary); }
.cx-loc-empty { padding: 1rem .9rem; color: var(--cx-muted); font-size: .9rem; }
.cx-loc-manual { display: flex; align-items: center; gap: .7rem; width: 100%; border: 0; border-top: 1px solid var(--cx-line); background: #FFFBF5; padding: .75rem .9rem; text-align: left; color: var(--cx-ink); }
.cx-loc-manual:hover { background: var(--cx-warning-50); }
.cx-loc-manual i { font-size: 1.2rem; color: var(--cx-warning); }
.cx-loc-manual span { display: flex; flex-direction: column; line-height: 1.25; }
.cx-loc-manual small { color: var(--cx-muted); font-size: .8rem; }
.cx-loc-manual-box { padding: .1rem 0 0; }
@media (max-width: 575.98px) {
  /* no telemóvel, a lista abre como folha de baixo para cima, com espaço para o teclado */
  .cx-loc.is-open::before { content: ""; position: fixed; inset: 0; background: rgba(15, 30, 46, .35); z-index: 1059; }
  .cx-loc-panel { position: fixed; left: 0; right: 0; top: auto; bottom: 0; max-height: 78dvh; border-radius: 20px 20px 0 0; padding-bottom: env(safe-area-inset-bottom); }
}

/* ------------------------------------------------ Barra de navegação de baixo: nunca tapa conteúdo */
@media (max-width: 991.98px) {
  .cx-app-body main { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  .cx-app-chat main { padding-bottom: 0; }
  .cx-sticky-actions { bottom: calc(68px + env(safe-area-inset-bottom)); }
  .cx-bottom-nav a span, .cx-bottom-nav button span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; padding: 0 2px; }
}

/* ------------------------------------------------ Títulos de página e cabeçalhos de secção */
.cx-page-actions { flex-wrap: wrap; }
@media (max-width: 575.98px) {
  .cx-main h1.h3 { font-size: 1.35rem; }
  .cx-kv { gap: .5rem; }
  .cx-kv > div { padding: .55rem .6rem; font-size: .8rem; }
  .cx-card-body { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cx-rec-bars i, .cx-voice-card.is-recording .cx-voice-icon, .cx-file { animation: none; }
}

/* ------------------------------------------------ Computador: barra lateral fixa ao lado do conteúdo (não por cima) */
@media (min-width: 992px) {
  .cx-app { padding-left: calc(264px + env(safe-area-inset-left)); }
  .cx-sidebar { scrollbar-width: none; }
  .cx-sidebar::-webkit-scrollbar { display: none; }
  .cx-sidebar:hover { scrollbar-width: thin; }
  .cx-topbar .container-xl, .cx-main .container-xl { max-width: 1240px; }
  .cx-main .container-xl { padding-inline: 1.5rem; }
}
@media (min-width: 992px) and (max-width: 1199.98px) {
  .cx-app { padding-left: calc(232px + env(safe-area-inset-left)); }
  .cx-sidebar { width: 232px !important; padding-inline: .75rem !important; }
}
@media (min-width: 1600px) {
  .cx-topbar .container-xl, .cx-main .container-xl { max-width: 1400px; }
}
/* Tabelas da administração: deslizam dentro do cartão, nunca a página inteira */
.table-responsive { -webkit-overflow-scrolling: touch; }
.cx-card > .table-responsive, .cx-card .table-responsive { border-radius: inherit; }
.table td, .table th { vertical-align: middle; }
.table th { white-space: nowrap; }
.table td, .table th { overflow-wrap: normal; word-break: normal; hyphens: none; }
.table td { white-space: nowrap; }
.table td .small, .table td small, .table td .text-truncate { white-space: normal; }
.table td:first-child { white-space: normal; min-width: 160px; }
.table td .cx-avatar { flex-shrink: 0; }
.cx-topbar .cx-bell .cx-count { top: 3px; right: 3px; transform: none; }
@media (min-width: 992px) {
  .table > :not(caption) > * > * { padding: .7rem .6rem; font-size: .9rem; }
  .table th { font-size: .72rem; }
}
.cx-topbar .cx-bell .cx-count { top: 5px; right: 2px; }
@media (max-width: 991.98px) {
  /* título repetido (já está no cabeçalho) e «voltar» duplicado ficam escondidos no telemóvel */
  .cx-dup-title { display: none !important; }
  .cx-topbar.is-inner ~ main .cx-page-back { display: none !important; }

}
.cx-field-tip small[id$="-count"] { white-space: nowrap; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.cx-rcard-actions-3 { grid-template-columns: 1fr 1fr; }
.cx-rcard-actions-3 [data-lead-action="interessado"] { grid-column: 1 / -1; }
.cx-rcard-actions-3 .cx-btn-quiet { grid-column: auto; min-height: 44px; }
@media (min-width: 576px) { .cx-rcard-actions-3 { grid-template-columns: 1.3fr 1fr auto; } .cx-rcard-actions-3 [data-lead-action="interessado"] { grid-column: auto; } }
@media (max-width: 420px) {
  .cx-avatar-up { gap: .8rem; padding: .8rem; flex-wrap: nowrap; align-items: flex-start; }
  .cx-avatar-up-frame { width: 80px; height: 80px; }
  .cx-avatar-up-body { min-width: 0; }
  .cx-avatar-up { flex-wrap: wrap; }
  .cx-avatar-up .cx-upload-error { order: 3; }
}
.cx-avatar-up-frame { aspect-ratio: 1 / 1; align-self: flex-start; }
.cx-avatar-up-frame img { position: absolute; inset: 0; }
@media (max-width: 575.98px) { .cx-rcard-actions-3 .cx-btn-quiet { grid-column: 1 / -1; min-height: 36px; } }
.cx-rcard-actions .btn { overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 575.98px) { .cx-rcard-actions-3 { grid-template-columns: 1fr; } .cx-rcard-actions-3 > * { grid-column: auto !important; } }

/* ------------------------------------------------ Formulários por passos: Voltar em cima, Continuar fixo em baixo */
.cx-wiz-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 44px; margin-bottom: .6rem; }
.cx-wiz-back { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .4rem .85rem .4rem .6rem; border: 0; border-radius: 999px; background: var(--cx-bg, #F4F6F8); color: var(--cx-ink, #0F2A33); font-weight: 700; font-size: .95rem; text-decoration: none; }
.cx-wiz-back:hover { background: #e7edf0; color: var(--cx-ink, #0F2A33); }
.cx-wiz-back i { font-size: 1.05rem; }
.cx-wiz-count { font-size: .9rem; font-weight: 700; color: var(--cx-muted, #5B6B73); white-space: nowrap; }
.cx-wiz-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; background: rgba(255,255,255,.97); border-top: 1px solid var(--cx-line, #E3E8EB); padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom)); box-shadow: 0 -6px 20px rgba(15,42,51,.06); }
.cx-wiz-bar-in { max-width: 480px; margin: 0 auto; display: grid; }
.cx-wiz-bar-in .btn { width: 100%; min-height: 54px; font-size: 1.08rem; font-weight: 700; border-radius: 14px; }
form[data-wizard] { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
/* pedido: modo foco, sem o menu de baixo enquanto preenche */
@media (max-width: 991.98px) {
  .cx-focus .cx-bottom-nav, .cx-focus .cx-bottomnav, .cx-focus nav.cx-tabbar { display: none !important; }
  .cx-focus .cx-app { padding-bottom: 0 !important; }
}
@media (min-width: 992px) {
  .cx-app .cx-wiz-bar { left: 264px; }
}
@media (min-width: 992px) and (max-width: 1199.98px) { .cx-app .cx-wiz-bar { left: 232px; } }
.cx-auth-body .cx-wiz-bar { background: #fff; }

/* ------------------------------------------------ Lista de mensagens (profissão em destaque) */
.cx-conv-list2 { display: grid; gap: .6rem; max-width: 760px; }
.cx-conv2 { display: flex; gap: .85rem; align-items: flex-start; padding: .9rem 1rem; background: #fff; border: 1px solid var(--cx-line, #E3E8EB); border-radius: 16px; text-decoration: none; color: var(--cx-ink, #0F2A33); transition: background .15s, border-color .15s; }
.cx-conv2:hover { border-color: #cfd9de; background: #fbfcfd; color: inherit; }
.cx-conv2.is-unread { border-color: rgba(22,163,74,.45); box-shadow: 0 0 0 1px rgba(22,163,74,.12); }
.cx-conv2-icon { flex-shrink: 0; width: 48px; height: 48px; border-radius: 14px; background: var(--cx-bg, #F4F6F8); display: grid; place-items: center; }
.cx-conv2-icon svg, .cx-conv2-icon img { width: 34px; height: 34px; }
.cx-conv2-body { flex: 1; min-width: 0; display: grid; gap: .15rem; }
.cx-conv2-top, .cx-conv2-sub, .cx-conv2-bottom { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.cx-conv2-title { flex: 1; min-width: 0; font-size: 1.05rem; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-conv2-ok { color: #16A34A; font-size: .95rem; }
.cx-conv2-time { flex-shrink: 0; font-size: .82rem; color: var(--cx-muted, #5B6B73); }
.cx-conv2.is-unread .cx-conv2-time { color: #15803D; font-weight: 700; }
.cx-conv2-sub { font-size: .9rem; color: #3B4F57; }
.cx-conv2-sub .text-truncate { flex: 1; min-width: 0; }
.cx-conv2-rate { flex-shrink: 0; font-weight: 700; color: #3B4F57; }
.cx-conv2-rate i { color: #F59E0B; }
.cx-conv2-bottom { justify-content: space-between; }
.cx-conv2-last { flex: 1; min-width: 0; font-size: .92rem; color: var(--cx-muted, #5B6B73); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-conv2.is-unread .cx-conv2-last { color: var(--cx-ink, #0F2A33); font-weight: 700; }
.cx-conv2-unread { flex-shrink: 0; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: #16A34A; color: #fff; font-size: .78rem; font-weight: 800; display: grid; place-items: center; }
.cx-conv2-bottom .cx-mini-chip { flex-shrink: 0; }

/* ------------------------------------------------ Página do pedido (cliente): limpa e clara */
.cx-req-hero { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: .9rem; }
.cx-req-hero-icon { flex-shrink: 0; width: 64px; height: 64px; border-radius: 18px; background: #fff; border: 1px solid var(--cx-line, #E3E8EB); display: grid; place-items: center; }
.cx-req-hero-icon svg, .cx-req-hero-icon img { width: 46px; height: 46px; }
.cx-req-hero-title { font-size: 1.35rem; font-weight: 800; line-height: 1.25; margin: 0 0 .2rem; overflow-wrap: anywhere; }
.cx-req-hero-sub { color: var(--cx-muted, #5B6B73); font-size: .95rem; }
.cx-req-next { display: flex; gap: .6rem; align-items: flex-start; background: #E9F7EF; color: #14532D; border-radius: 14px; padding: .8rem 1rem; font-size: 1rem; font-weight: 600; margin-bottom: 1.2rem; line-height: 1.4; }
.cx-req-next i { color: #16A34A; font-size: 1.15rem; margin-top: .05rem; }
.cx-req-facts { display: grid; gap: .65rem; }
.cx-req-facts > div { display: flex; gap: .7rem; align-items: flex-start; font-size: 1rem; }
.cx-req-facts i { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; background: var(--cx-bg, #F4F6F8); color: var(--cx-primary, #0E3B4A); display: grid; place-items: center; font-size: 1.05rem; }
.cx-req-facts span { padding-top: .35rem; min-width: 0; overflow-wrap: anywhere; }
.cx-req-steps { padding: 0; overflow: hidden; }
.cx-req-steps > summary { list-style: none; display: flex; align-items: center; gap: .6rem; padding: 1rem 1.1rem; font-weight: 700; cursor: pointer; min-height: 52px; }
.cx-req-steps > summary::-webkit-details-marker { display: none; }
.cx-req-steps[open] > summary .bi-chevron-down { transform: rotate(180deg); }
.cx-req-steps-body { padding: 0 1.1rem 1.1rem; }
@media (max-width: 575.98px) { .cx-req-hero-title { font-size: 1.2rem; } .cx-req-hero-icon { width: 56px; height: 56px; } }

/* ------------------------------------------------ Passos com menos texto */
.cx-step-q { font-size: 1.5rem; font-weight: 800; line-height: 1.2; margin: 0 0 1rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cx-step-opt { font-size: .8rem; font-weight: 700; color: var(--cx-muted, #5B6B73); background: var(--cx-bg, #F4F6F8); padding: .2rem .6rem; border-radius: 999px; }
.cx-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.cx-chips .cx-option { margin: 0; }
.cx-chip-body { min-height: 46px; padding: .5rem 1rem !important; display: inline-flex !important; align-items: center; gap: .4rem; font-size: 1rem; border-radius: 999px !important; }
.cx-voice-btn { min-height: 50px; font-weight: 700; font-size: 1rem; }
.cx-voice-status { display: block; font-size: .9rem; color: var(--cx-muted, #5B6B73); margin-top: .35rem; }
.cx-voice-status:empty { display: none; }
.cx-sum-edit { flex-shrink: 0; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; color: var(--cx-primary, #0E3B4A); }
.cx-sum-edit:hover { background: var(--cx-bg, #F4F6F8); }
.cx-safe-note { display: flex; align-items: center; gap: .5rem; margin: 1rem 0 0; color: #14532D; font-weight: 600; font-size: .95rem; }
.cx-safe-note i { color: #16A34A; font-size: 1.1rem; }
@media (max-width: 575.98px) { .cx-step-q { font-size: 1.35rem; } }

/* ------------------------------------------------ Pedido gamificado */
.cx-game-dots { margin-bottom: .9rem; }
.cx-game-dots .cx-step-dot { font-size: .78rem; }
.cx-game-dots .cx-step-dot i { width: 42px; height: 42px; font-size: 1.05rem; }
.cx-game-dots .cx-step-dot.current i { background: var(--cx-primary, #0E3B4A); border-color: var(--cx-primary, #0E3B4A); color: #fff; transform: scale(1.1); box-shadow: 0 6px 16px rgba(14,59,74,.25); }
.cx-game-dots .cx-step-dot.current { color: var(--cx-ink, #0F2A33); }
.cx-game-dots .cx-step-dot.done i { animation: cxDotPop .35s ease; }
.cx-game-dots::before { top: 20px; }
@keyframes cxDotPop { 0% { transform: scale(.7); } 70% { transform: scale(1.15); } 100% { transform: scale(1); } }
.cx-power { display: flex; align-items: center; gap: .75rem; padding: .65rem .9rem; margin-bottom: 1.2rem; border-radius: 14px; background: linear-gradient(135deg, #FFF8E6, #FFFDF5); border: 1px solid #FCE7B0; }
.cx-power-stars { display: flex; gap: .15rem; flex-shrink: 0; }
.cx-power-stars i { font-size: 1.2rem; color: #E5E7EB; transition: color .25s, transform .25s; }
.cx-power-stars i.on { color: #F59E0B; transform: scale(1.08); }
.cx-power-text { display: grid; min-width: 0; line-height: 1.25; }
.cx-power-text strong { font-size: .98rem; color: #78350F; }
.cx-power-text small { font-size: .85rem; color: #92400E; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cx-power.is-full { background: linear-gradient(135deg, #E9F7EF, #F5FCF8); border-color: #B7E4C7; }
.cx-power.is-full strong, .cx-power.is-full small { color: #14532D; }
.cx-power.bump .cx-power-stars { animation: cxDotPop .45s ease; }
.cx-wizard-step.active { animation: cxStepIn .28s ease; }
@keyframes cxStepIn { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
.cx-cat-ill { transition: transform .15s, box-shadow .15s; }
.cx-option input:checked + .cx-cat-ill { transform: scale(1.03); box-shadow: 0 8px 20px rgba(14,59,74,.15); }
.cx-option:active .cx-option-body { transform: scale(.97); }
.cx-confirm { position: relative; overflow: hidden; }
.cx-confetti { position: absolute; inset: 0; pointer-events: none; }
.cx-confetti i { position: absolute; top: -12px; left: calc(var(--i) * 5.6%); width: 8px; height: 12px; border-radius: 2px; background: hsl(calc(var(--i) * 47), 85%, 55%); animation: cxConf 1.8s calc(var(--i) * .06s) ease-in forwards; opacity: 0; }
@keyframes cxConf { 0% { opacity: 1; transform: translateY(0) rotate(0); } 100% { opacity: 0; transform: translateY(420px) rotate(540deg); } }
.cx-done-stars { display: flex; justify-content: center; gap: .3rem; margin: .2rem 0 .5rem; }
.cx-done-stars i { font-size: 1.7rem; color: #E5E7EB; }
.cx-done-stars i.on { color: #F59E0B; animation: cxDotPop .4s calc(.3s + var(--d) * .12s) both; }
@media (prefers-reduced-motion: reduce) { .cx-confetti, .cx-wizard-step.active, .cx-done-stars i.on { animation: none !important; } .cx-confetti { display: none; } }
@media (max-width: 380px) { .cx-game-dots .cx-step-dot { font-size: .7rem; } .cx-game-dots .cx-step-dot i { width: 38px; height: 38px; } }
.cx-conv2-title { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.25; }

/* ================================================= v5: sino, progresso, cores acolhedoras */
/* Sino das notificações: maior, número ao lado (sem bola vermelha a tapar) */
.cx-bell { width: auto !important; min-width: 44px; height: 44px; padding: 0 .55rem !important; display: inline-flex !important; align-items: center; justify-content: center; gap: .3rem; border-radius: 12px; position: relative; }
.cx-bell > i { font-size: 1.45rem; line-height: 1; color: var(--cx-ink, #0F2A33); }
.cx-bell .cx-count { position: static !important; transform: none !important; min-width: 0; height: auto; padding: .1rem .45rem; border: 0 !important; box-shadow: none !important; background: #E6F2EF !important; color: #0B5D4B !important; font-size: .9rem !important; font-weight: 800; line-height: 1.3; border-radius: 8px; }

/* Barra de progresso do pedido */
.cx-quest { margin: .2rem 0 1.3rem; }
.cx-quest-bar { height: 10px; border-radius: 999px; background: var(--cx-line, #E3E8EB); overflow: hidden; }
.cx-quest-bar span { display: block; height: 100%; width: 6%; border-radius: inherit; background: var(--cx-primary, #0E3B4A); transition: width .45s cubic-bezier(.2,.8,.2,1), background .3s; }
.cx-quest.is-full .cx-quest-bar span { background: linear-gradient(90deg, #22C55E, #16A34A); }
.cx-quest-tip { display: flex; align-items: center; gap: .55rem; margin: .65rem 0 0; font-size: 1.02rem; font-weight: 700; color: var(--cx-ink, #0F2A33); line-height: 1.35; }
.cx-quest-tip i { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--cx-bg, #F4F6F8); color: var(--cx-primary, #0E3B4A); font-size: 1.05rem; }
.cx-quest-tip span { flex: 1; min-width: 0; }
.cx-quest-pct { flex-shrink: 0; font-size: .95rem; color: var(--cx-muted, #5B6B73); }
.cx-quest.is-full .cx-quest-tip { color: #14532D; }
.cx-quest.is-full .cx-quest-tip i { background: #DCFCE7; color: #16A34A; }
.cx-quest.is-full .cx-quest-pct { color: #15803D; }

body.cx-focus .cx-cat-name { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.2; }

/* Página «Pedido enviado» */
.cx-sent-sub { font-size: 1.1rem; font-weight: 600; margin: .2rem 0 .9rem; }
.cx-sent-next { display: flex; align-items: center; justify-content: center; gap: .5rem; background: var(--cx-bg, #F4F6F8); color: var(--cx-ink, #0F2A33); border-radius: 14px; padding: .75rem 1rem; font-weight: 600; margin-bottom: 1rem; }

/* Sem reticências: textos aparecem completos */
.cx-conv2-title, .cx-conv2-last, .cx-conv2-sub .text-truncate, .cx-power-text small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; display: block !important; -webkit-line-clamp: unset !important; }
.cx-conv2-top, .cx-conv2-bottom { align-items: flex-start; }
.cx-loc-value strong, .cx-loc-value small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
.cx-loc-value small { font-size: .85rem; }
.cx-conv2-bottom { flex-wrap: wrap; row-gap: .35rem; }
.cx-conv2-bottom .cx-conv2-last { flex: 1 1 100%; }
.cx-conv2-bottom .cx-mini-chip, .cx-conv2-bottom .cx-conv2-unread { margin-left: 0; }
#titulo.cx-autogrow { resize: none; min-height: 0; line-height: 1.4; }
body.cx-focus .text-truncate { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }

/* Conversas trancadas / arquivadas */
.cx-chat-locked { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 1rem; margin: 0; background: var(--cx-bg, #F4F6F8); border-top: 1px solid var(--cx-line, #E3E8EB); color: var(--cx-muted, #5B6B73); font-weight: 600; font-size: .98rem; text-align: center; }
.cx-chat-locked i { color: var(--cx-ink, #0F2A33); }
.cx-arch-link { display: flex; align-items: center; gap: .6rem; max-width: 760px; margin-top: .8rem; padding: .9rem 1rem; border-radius: 16px; border: 1px dashed var(--cx-line, #E3E8EB); color: var(--cx-ink, #0F2A33); font-weight: 700; text-decoration: none; }
.cx-arch-link span { margin-left: auto; color: var(--cx-muted, #5B6B73); }
.cx-arch-link:hover { background: #fff; color: inherit; }
.cx-arch-note { display: flex; gap: .5rem; align-items: center; color: var(--cx-muted, #5B6B73); font-weight: 600; }
.cx-conv2-icon { position: relative; }
.cx-conv2-lock { position: absolute; right: -4px; bottom: -4px; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 1px solid var(--cx-line, #E3E8EB); display: grid; place-items: center; font-size: .7rem; color: var(--cx-muted, #5B6B73); }

/* Agenda: calendário do mês */
.cx-cal { padding: 1rem; }
.cx-cal-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .8rem; }
.cx-cal-head strong { display: block; font-size: 1.15rem; }
.cx-cal-head small { display: block; color: var(--cx-muted, #5B6B73); font-size: .9rem; }
.cx-cal-nav { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--cx-bg, #F4F6F8); color: var(--cx-ink, #0F2A33); font-size: 1.1rem; }
.cx-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cx-cal-wd span { text-align: center; font-size: .85rem; font-weight: 700; color: var(--cx-muted, #5B6B73); padding: .2rem 0; }
.cx-cal-day { position: relative; aspect-ratio: 1 / 1; min-height: 40px; display: grid; place-items: center; border-radius: 12px; font-weight: 700; font-size: 1rem; color: var(--cx-ink, #0F2A33); text-decoration: none; }
.cx-cal-day:hover { background: var(--cx-bg, #F4F6F8); color: inherit; }
.cx-cal-day.is-past { color: #A3B0B6; }
.cx-cal-day.is-today { box-shadow: inset 0 0 0 2px var(--cx-primary, #0E3B4A); }
.cx-cal-day.has-jobs { background: #E7F6EC; color: #14532D; }
.cx-cal-day.has-jobs i { position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); min-width: 8px; height: 8px; border-radius: 999px; background: #16A34A; font-style: normal; font-size: .6rem; line-height: 8px; color: #fff; padding: 0 2px; }
.cx-cal-day.has-jobs i:not(:empty) { height: 14px; line-height: 14px; min-width: 14px; bottom: 2px; }
.cx-cal-day.is-sel { background: var(--cx-primary, #0E3B4A); color: #fff; }
.cx-cal-day.is-sel i { background: #fff; color: var(--cx-primary, #0E3B4A); }
.cx-cal-today { display: block; text-align: center; margin-top: .8rem; font-weight: 700; }
.cx-agenda-day { font-size: 1.2rem; font-weight: 800; margin: 0 0 .8rem; }
.cx-agenda-empty { display: flex; align-items: center; gap: .6rem; padding: 1rem; border-radius: 16px; background: #fff; border: 1px solid var(--cx-line, #E3E8EB); color: var(--cx-muted, #5B6B73); font-weight: 600; }
.cx-agenda-empty i { font-size: 1.3rem; }

/* Pedido: acabamento limpo (cores da marca) */
body.cx-focus .cx-cat-ill { position: relative; background: #fff; border: 1.5px solid var(--cx-line, #E3E8EB); border-radius: 18px !important; box-shadow: 0 2px 6px rgba(15,42,51,.04); gap: .4rem; padding: .9rem .4rem !important; }
body.cx-focus .cx-option input:checked + .cx-cat-ill { border-color: var(--cx-primary, #0E3B4A); box-shadow: 0 0 0 3px rgba(14,59,74,.12), 0 8px 18px rgba(15,42,51,.08); transform: none; }
body.cx-focus .cx-option input:checked + .cx-cat-ill::after { content: "\F26E"; font-family: bootstrap-icons; position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%; background: var(--cx-primary, #0E3B4A); color: #fff; font-size: .8rem; display: grid; place-items: center; }
body.cx-focus .cx-chip-body { background: #fff; border: 1.5px solid var(--cx-line, #E3E8EB) !important; font-weight: 600; }
body.cx-focus .cx-option input:checked + .cx-chip-body { background: #E8F1F3; border-color: var(--cx-primary, #0E3B4A) !important; color: var(--cx-primary, #0E3B4A); box-shadow: none; }
body.cx-focus .cx-option input:checked + .cx-chip-body::before { content: "\F26E"; font-family: bootstrap-icons; font-size: 1rem; }
body.cx-focus .form-control, body.cx-focus .form-select, body.cx-focus .cx-loc-field { border-radius: 14px; min-height: 52px; font-size: 1.02rem; border-width: 1.5px; }
body.cx-focus .form-control:focus { border-color: var(--cx-primary, #0E3B4A); box-shadow: 0 0 0 4px rgba(14,59,74,.10); }
body.cx-focus .form-label { font-weight: 700; font-size: 1rem; margin-bottom: .4rem; }
body.cx-focus .cx-quest-tip i { background: #E8F1F3; }
body.cx-focus .cx-quest-bar span { background: linear-gradient(90deg, var(--cx-primary, #0E3B4A), #16697A); }
body.cx-focus .cx-quest.is-full .cx-quest-bar span { background: #16A34A; }
body.cx-focus #resumo .cx-link-row { padding: .85rem 1rem; }
body.cx-focus .cx-wizard-step { max-width: 640px; }
body.cx-focus .cx-voice-btn { border: 1.5px dashed var(--cx-line, #CBD5DA); background: #fff; color: var(--cx-ink, #0F2A33); }
.cx-ag-item { display: flex; align-items: center; gap: .9rem; padding: .9rem 1rem; text-decoration: none; }
.cx-ag-time { flex-shrink: 0; white-space: nowrap; font-weight: 800; font-size: 1.05rem; background: var(--cx-primary, #0E3B4A); color: #fff; border-radius: 12px; padding: .55rem .7rem; }
.cx-ag-body { flex: 1; min-width: 0; display: grid; gap: .2rem; justify-items: start; }
.cx-ag-body strong { font-size: 1.02rem; line-height: 1.3; }
.cx-ag-body small { color: var(--cx-muted, #5B6B73); font-size: .9rem; }
.cx-ag-go { color: var(--cx-muted, #5B6B73); }

/* Profissional: detalhe do pedido */
.cx-pj { max-width: 1040px; }
.cx-pj-urgent { display: flex; gap: .8rem; align-items: center; padding: .9rem 1rem; border-radius: 16px; background: #FEF3C7; color: #78350F; margin-bottom: 1rem; }
.cx-pj-urgent i { font-size: 1.5rem; }
.cx-pj-urgent strong { display: block; font-size: 1.05rem; }
.cx-pj-head { display: flex; gap: 1rem; align-items: center; padding: 1.1rem; }
.cx-pj-ill { flex-shrink: 0; width: 64px; height: 64px; display: grid; place-items: center; }
.cx-pj-ill svg { width: 64px; height: 64px; }
.cx-pj-cat { font-weight: 700; color: var(--cx-primary, #0E3B4A); font-size: .95rem; }
.cx-pj-title { font-size: 1.35rem; font-weight: 800; line-height: 1.25; margin: .15rem 0 .25rem; overflow-wrap: anywhere; }
.cx-pj-meta { color: var(--cx-muted, #5B6B73); font-size: .92rem; }
.cx-pj-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.cx-pj-fact { background: #fff; border: 1px solid var(--cx-line, #E3E8EB); border-radius: 16px; padding: .8rem .9rem; display: grid; grid-template-columns: auto 1fr; column-gap: .4rem; row-gap: .15rem; align-content: start; min-width: 0; }
.cx-pj-fact i { font-size: 1rem; color: var(--cx-primary, #0E3B4A); align-self: center; }
.cx-pj-fact strong, .cx-pj-fact span { grid-column: 1 / -1; }
.cx-pj-fact small { color: var(--cx-muted, #5B6B73); font-size: .85rem; font-weight: 600; }
.cx-pj-fact strong { font-size: 1.02rem; line-height: 1.3; overflow-wrap: anywhere; }
.cx-pj-fact span { font-size: .88rem; color: #16A34A; font-weight: 600; }
.cx-pj-h { font-size: 1.05rem; font-weight: 800; margin-bottom: .6rem; }
.cx-pj-desc { font-size: 1.05rem; line-height: 1.55; margin: 0; overflow-wrap: anywhere; }
.cx-pj-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.cx-pj-steps li { display: flex; gap: .75rem; align-items: flex-start; }
.cx-pj-steps b { flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--cx-bg, #F1F4F6); color: var(--cx-muted, #5B6B73); font-size: .95rem; }
.cx-pj-steps strong { display: block; font-size: 1rem; }
.cx-pj-steps span { color: var(--cx-muted, #5B6B73); font-size: .92rem; }
.cx-pj-steps li.is-now b { background: var(--cx-primary, #0E3B4A); color: #fff; }
.cx-pj-steps li.is-done b { background: #16A34A; color: #fff; font-size: 0; }
.cx-pj-steps li.is-done b::before { content: "\F26E"; font-family: bootstrap-icons; font-size: 1rem; }
.cx-pj-go { min-height: 56px; font-size: 1.1rem; font-weight: 800; border-radius: 14px; }
.cx-pj-state { display: flex; gap: .75rem; align-items: center; margin-bottom: .6rem; }
.cx-pj-state i { font-size: 1.5rem; color: var(--cx-primary, #0E3B4A); }
.cx-pj-state strong { display: block; font-size: 1.05rem; }
.cx-pj-state span { color: var(--cx-muted, #5B6B73); font-size: .92rem; }
.cx-pj-state.is-off i { color: var(--cx-muted, #5B6B73); }
.cx-pj-mine { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--cx-line, #E3E8EB); }
.cx-pj-mine span { color: var(--cx-muted, #5B6B73); }
@media (max-width: 991.98px) {
  .cx-pj-action.has-cta .cx-btn-quiet { padding: .3rem; margin-top: .1rem !important; }
  .cx-pj-action.has-cta { position: fixed; left: 0; right: 0; bottom: calc(64px + env(safe-area-inset-bottom)); z-index: 20; border-radius: 18px 18px 0 0; padding: .75rem 1rem .4rem !important; box-shadow: 0 -8px 24px rgba(15,42,51,.12); }
  .cx-pj.has-cta { padding-bottom: 150px; }
}
.cx-rcard-facts li { font-size: .98rem; }
.cx-rcard-title { font-size: 1.15rem; }

/* Aviso fixo: pagar/receber só depois do trabalho */
.cx-paysafe { display: flex; gap: .75rem; align-items: flex-start; padding: .85rem 1rem; border-radius: 16px; background: #E7F6EC; border: 1px solid #B7E4C7; color: #14532D; margin-bottom: 1rem; }
.cx-paysafe > i { font-size: 1.5rem; line-height: 1; color: #16A34A; flex-shrink: 0; }
.cx-paysafe strong { display: block; font-size: 1rem; line-height: 1.3; }
.cx-paysafe span { display: block; font-size: .92rem; line-height: 1.4; margin-top: .15rem; color: #1F5135; }
.cx-paysafe.is-compact { padding: .6rem .85rem; align-items: center; }
.cx-paysafe.is-compact > i { font-size: 1.25rem; }
.cx-paysafe.is-compact span { font-size: .85rem; margin-top: 0; }
.cx-chat .cx-paysafe { margin: .6rem .75rem .25rem; border-radius: 14px; border-width: 1px; flex-shrink: 0; }

/* Pop-up pagamento seguro */
.cx-ps-modal { position: fixed; inset: 0; z-index: 2000; background: rgba(15,42,51,.55); display: flex; align-items: flex-end; justify-content: center; padding: 0; animation: cxPsFade .15s ease; }
@media (min-width: 576px) { .cx-ps-modal { align-items: center; padding: 1rem; } }
.cx-ps-box { background: #fff; width: 100%; max-width: 440px; border-radius: 22px 22px 0 0; padding: 1.4rem 1.25rem calc(1rem + env(safe-area-inset-bottom)); box-shadow: 0 -10px 40px rgba(0,0,0,.2); animation: cxPsUp .2s ease; }
@media (min-width: 576px) { .cx-ps-box { border-radius: 22px; padding: 1.6rem; } }
.cx-ps-icon { width: 60px; height: 60px; border-radius: 50%; background: #E7F6EC; color: #16A34A; display: grid; place-items: center; font-size: 1.9rem; margin: 0 auto .7rem; }
.cx-ps-ask { text-align: center; color: var(--cx-muted, #5B6B73); font-weight: 600; font-size: .95rem; }
.cx-ps-title { text-align: center; font-size: 1.3rem; font-weight: 800; line-height: 1.25; margin: .2rem 0 1rem; }
.cx-ps-list { list-style: none; padding: 0; margin: 0 0 1.2rem; display: grid; gap: .7rem; }
.cx-ps-list li { display: flex; gap: .6rem; align-items: flex-start; font-size: 1rem; line-height: 1.4; }
.cx-ps-list i { color: #16A34A; font-size: 1.1rem; margin-top: .1rem; flex-shrink: 0; }
body.cx-ps-open { overflow: hidden; }
@keyframes cxPsFade { from { opacity: 0; } }
@keyframes cxPsUp { from { transform: translateY(30px); opacity: 0; } }

/* Convites */
.cx-inv { display: grid; gap: 1rem; }
.cx-inv-hero { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem; border-radius: 20px; background: linear-gradient(135deg, var(--cx-primary, #0E3B4A), #16697A); color: #fff; }
.cx-inv-hero h2 { font-size: 1.45rem; font-weight: 800; margin: .5rem 0 .25rem; color: #fff; }
.cx-inv-hero p { margin: 0; font-size: 1rem; color: rgba(255,255,255,.88); }
.cx-inv-hero svg { width: 72px; height: 72px; flex-shrink: 0; }
.cx-inv-free { display: inline-flex; align-items: center; gap: .35rem; background: rgba(255,255,255,.16); border-radius: 999px; padding: .25rem .7rem; font-weight: 700; font-size: .85rem; }
.cx-inv-grid { display: grid; gap: .8rem; }
@media (min-width: 768px) { .cx-inv-grid { grid-template-columns: 1fr 1fr; } }
.cx-inv-card { padding: 1rem; display: grid; gap: .6rem; }
.cx-inv-card-head { display: flex; gap: .75rem; align-items: center; margin-bottom: .2rem; }
.cx-inv-card-head svg { width: 48px; height: 48px; flex-shrink: 0; }
.cx-inv-card-head strong { display: block; font-size: 1.1rem; }
.cx-inv-card-head span { color: var(--cx-muted, #5B6B73); font-size: .92rem; line-height: 1.35; display: block; }
.cx-inv-h { font-size: 1.05rem; font-weight: 800; margin-bottom: .8rem; }
.cx-inv-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.cx-inv-steps li { display: flex; gap: .8rem; align-items: flex-start; }
.cx-inv-steps b { flex-shrink: 0; min-width: 52px; text-align: center; padding: .35rem .4rem; border-radius: 12px; background: #E7F6EC; color: #15803D; font-size: 1rem; }
.cx-inv-steps b.is-friend { background: #E8F1F3; color: var(--cx-primary, #0E3B4A); }
.cx-inv-steps strong { display: block; font-size: 1rem; }
.cx-inv-steps span { color: var(--cx-muted, #5B6B73); font-size: .92rem; }
.cx-inv-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.cx-inv-stats div { background: #fff; border: 1px solid var(--cx-line, #E3E8EB); border-radius: 14px; padding: .7rem .5rem; text-align: center; }
.cx-inv-stats strong { display: block; font-size: 1.35rem; font-weight: 800; }
.cx-inv-stats span { font-size: .8rem; color: var(--cx-muted, #5B6B73); line-height: 1.2; display: block; }
.cx-inv-code { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .8rem 1rem; border: 1.5px dashed var(--cx-line, #CBD5DA); border-radius: 14px; background: #fff; }
.cx-inv-code span { color: var(--cx-muted, #5B6B73); font-weight: 600; }
.cx-inv-code strong { font-size: 1.15rem; letter-spacing: .06em; flex: 1; }
/* Banner de convite no início */
.cx-inv-banner { display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; border-radius: 18px; background: linear-gradient(135deg, var(--cx-primary, #0E3B4A), #16697A); color: #fff !important; text-decoration: none; }
.cx-inv-banner svg { width: 46px; height: 46px; flex-shrink: 0; }
.cx-inv-banner strong { display: block; font-size: 1.02rem; }
.cx-inv-banner span { font-size: .88rem; color: rgba(255,255,255,.85); }
.cx-inv-banner i.bi-chevron-right { margin-left: auto; }
.cx-pts-next { height: 8px; border-radius: 999px; background: rgba(255,255,255,.2); margin-top: .5rem; overflow: hidden; }
.cx-pts-next span { display: block; height: 100%; background: #4ADE80; border-radius: 999px; }
.cx-inv-card .btn-lg { font-size: 1rem; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.cx-step-dots { padding-inline: .5rem; }

/* Versão final: margens laterais e pequenos acertos */
@media (max-width: 991.98px) {
  .cx-main .container-xl, .cx-main > .container, .cx-main .container { padding-inline: 1rem; }
}
.cx-tap.text-danger, a.text-danger.small { display: inline-flex; align-items: center; gap: .4rem; }
.cx-inv-free { white-space: nowrap; }
@media (max-width: 419.98px) {
  [data-step-dots] .cx-step-dot { font-size: 0; gap: 0; }
  [data-step-dots] .cx-step-dot.current { font-size: .78rem; gap: .25rem; }
}
@media (max-width: 991.98px) { .container-xl { padding-inline: 1rem; } }
