/* ============ Convite (RSVP): o lado do casal ============
   Telas do canal Convite (js/15-convite.js), vindas de PROTOTIPOS/convite-rsvp.
   Arquivo separado do app.css pra não disputar o mesmo arquivo com outros
   trabalhos. Tudo com prefixo rv-: o app.css já usa .card, .item, .stats,
   .side, .seg e outros nomes curtos. Os tokens (--sage, --gold...) são os do app. */

#ch-convite{
  --st-sim:#5E7350; --st-sim-wash:#E8ECDF;
  --st-nao:#A2645F; --st-nao-wash:#F2E1DC;
  --st-talvez:#A9823F; --st-talvez-wash:#F3EAD5;
  --st-pend:#948A7C; --st-pend-wash:#ECE6DB;
  --st-env:#6C8797; --st-env-wash:#E5EBEE;
}
/* o "+ Nova opção" é dos fornecedores: aqui não faz sentido */
#app[data-ch="convite"] #addBtn, #app[data-ch="convite"] #mtopAdd{display:none !important}
/* o cabeçalho do casal (foto, nomes, contagem) some aqui: o convite já mostra tudo isso */
#app[data-ch="convite"] .apex{display:none}

.rv{max-width:1180px}
.rv-carregando{color:var(--muted); padding:40px 0; text-align:center}
.rv-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px}
.rv-head .cv-sub{margin-top:2px}
.rv a.btn{text-decoration:none}
.rv-ic{width:15px; height:15px; flex:none}
.rv-sm{padding:6px 12px; font-size:12.5px}
.rv-wa{background:var(--sage-deep); color:#fff; border-color:var(--sage-deep)}
.rv-wa:hover{background:#4a5a3c; border-color:#4a5a3c; color:#fff}
.rv-lnk{border:0; background:none; padding:0; font-size:12.5px; color:var(--sage-deep); text-decoration:underline; text-underline-offset:2px; cursor:pointer}
.rv-btn-link{border-color:transparent; background:none; color:var(--muted); text-decoration:underline; text-underline-offset:3px}
.rv-btn-link:hover{background:none; border-color:transparent; color:var(--ink)}
.rv-note{font-size:12px; color:var(--faint); margin-top:10px}
.rv-good{color:var(--st-sim) !important} .rv-warn{color:var(--st-nao) !important}

/* camada 1: o que fazer (montar ou acompanhar) */
.rv-modo{display:inline-flex; gap:4px; background:var(--panel); border:1px solid var(--line); border-radius:999px; padding:5px; margin:0 0 26px; box-shadow:var(--shadow)}
.rv-modo button{border:0; background:none; padding:10px 22px; border-radius:999px; font-size:15px; font-weight:500; color:var(--muted); white-space:nowrap; display:inline-flex; align-items:center}
.rv-modo button:hover{color:var(--ink)}
.rv-modo button.on{background:var(--sage-wash); color:var(--sage-deep); font-weight:600}
/* camada 2: as partes do acompanhar, mais discretas */
.rv-sub{display:flex; gap:22px; margin:22px 0 22px; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none}
.rv-sub::-webkit-scrollbar{display:none}
.rv-sub button{border:0; background:none; padding:4px 1px 11px; font-size:14px; font-weight:500; color:var(--muted); white-space:nowrap; flex:none; position:relative; display:inline-flex; align-items:center}
.rv-sub button:hover{color:var(--ink)}
.rv-sub button.on{color:var(--sage-deep); font-weight:600}
.rv-sub button.on::after{content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; border-radius:2px; background:var(--sage-deep)}
.rv-qtd{display:inline-block; min-width:18px; margin-left:6px; padding:0 5px; border-radius:999px; background:var(--gold); color:#fff; font-size:11px; line-height:18px; text-align:center; font-weight:600}
.rv-salvo-linha{display:flex; justify-content:flex-end; margin:-6px 2px 10px}
@media(max-width:560px){ .rv-modo{display:flex; margin-bottom:20px} .rv-modo button{flex:1; justify-content:center; padding:10px 12px} .rv-sub{gap:18px} }

.rv-aviso{display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--gold-wash); border:1px solid var(--gold-line); border-radius:14px; padding:12px 16px; font-size:13.5px; color:#6b5a3a; margin-bottom:14px}
.rv-aviso p{margin:0; flex:1; min-width:220px}
.rv-aviso.erro{background:#F7E7E2; border-color:#E8C3B8; color:#7d3b2b}

/* ---------- Acompanhar ---------- */
.rv-grid2{display:grid; grid-template-columns:1.25fr 1fr; gap:14px}
@media(max-width:760px){ .rv-grid2{grid-template-columns:1fr} }
.rv-card{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:18px 20px; box-shadow:var(--shadow)}
.rv-k{font-size:11px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--muted)}
.rv-hero{background:var(--sage-deep); color:#fff; border:0}
.rv-hero .rv-k{color:#fff; opacity:.8}
.rv-hero .rv-big{font-family:"Cormorant Garamond",serif; font-weight:600; font-size:38px; line-height:1.05; margin-top:4px}
.rv-hero .rv-big small{font-size:22px; opacity:.85}
.rv-hero .rv-rows{margin-top:14px; display:flex; flex-direction:column; gap:6px; font-size:13.5px}
.rv-hero .rv-r{display:flex; justify-content:space-between; gap:10px; border-top:1px solid rgba(255,255,255,.16); padding-top:6px}
.rv-hero .rv-r b{font-variant-numeric:tabular-nums}
.rv-proj .rv-range{font-family:"Cormorant Garamond",serif; font-size:30px; font-weight:600; line-height:1.1; margin:6px 0 2px}
.rv-proj .rv-money{font-size:14px; color:var(--ink)}
.rv-proj .rv-cmp{margin-top:12px; padding-top:12px; border-top:1px dashed var(--line); font-size:13.5px; color:var(--muted)}
.rv-proj .rv-cmp b{color:var(--ink)}

.rv-bar{display:flex; height:12px; border-radius:999px; overflow:hidden; background:var(--line-soft); margin:2px 0 10px}
.rv-bar span{display:block; height:100%}
.rv-legend{display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12.5px; color:var(--muted)}
.rv-legend i{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:0}
.rv-legend b{color:var(--ink); font-variant-numeric:tabular-nums}
.rv-dl{display:flex; flex-direction:column; gap:10px; margin-top:14px}
.rv-dl .rv-row{display:flex; align-items:center; gap:12px}
.rv-dl .rv-d{width:46px; flex:none; text-align:center; border:1px solid var(--gold-line); border-radius:10px; background:var(--gold-wash); padding:4px 0; line-height:1.1}
.rv-dl .rv-d b{display:block; font-family:"Cormorant Garamond",serif; font-size:20px}
.rv-dl .rv-d small{font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--gold)}
.rv-dl .rv-t{font-size:13.5px} .rv-dl .rv-t span{display:block; color:var(--muted); font-size:12.5px}

.rv-sec{margin-top:24px}
.rv-sec-t{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin:0 2px 10px; flex-wrap:wrap}
.rv-sec-t h3{font-family:"Cormorant Garamond",serif; font-size:22px; font-weight:600; margin:0}
.rv-sec-t span{color:var(--muted); font-size:13px}

.rv-chip{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap}
.rv-chip.sim{background:var(--st-sim-wash); color:var(--st-sim)}
.rv-chip.nao{background:var(--st-nao-wash); color:var(--st-nao)}
.rv-chip.talvez{background:var(--st-talvez-wash); color:var(--st-talvez)}
.rv-chip.pendente{background:var(--st-pend-wash); color:var(--st-pend)}
.rv-chip.naoenviado{background:transparent; color:var(--muted); border:1px dashed var(--faint)}
.rv-lado{font-size:11px; font-weight:600; padding:2px 8px; border-radius:6px; background:var(--blush-wash); color:var(--blush-deep)}
.rv-lado.b{background:var(--st-env-wash); color:var(--st-env)}
.rv-lado.ambos{background:var(--panel); color:var(--muted); border:1px solid var(--line)}

.rv-list{background:var(--paper); border:1px solid var(--line); border-radius:16px; overflow:hidden}
.rv-item{display:flex; align-items:center; gap:12px; padding:13px 16px; border-top:1px solid var(--line-soft)}
.rv-item:first-child{border-top:0}
.rv-item .rv-ini{width:36px; height:36px; flex:none; border-radius:50%; background:var(--sage-wash); color:var(--sage-deep); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:600}
.rv-item .rv-mid{flex:1; min-width:0}
.rv-item .rv-nm{font-weight:600; display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.rv-item .rv-meta{color:var(--muted); font-size:12.5px; margin-top:1px}
.rv-item .rv-acts{display:flex; gap:6px; align-items:center; flex:none}
.rv-pin{font-family:ui-monospace,Consolas,monospace; font-size:12.5px; letter-spacing:.08em; color:var(--muted); background:var(--panel); border:1px solid var(--line); padding:2px 7px; border-radius:6px}
.rv-mudou{color:var(--st-talvez); font-weight:600}
.rv-fone{display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.rv-fone .rv-ic{width:13px; height:13px; color:var(--sage)}
.rv-falta{color:var(--st-talvez); font-weight:600}
/* convite com a coluna de situação à esquerda */
.rv-cv{padding:0; align-items:stretch; gap:16px}
.rv-cv .rv-mid{padding:14px 0; align-self:center}
.rv-cv .rv-acts{padding-right:16px; align-self:center}
.rv-cv + .rv-cv{border-top-color:var(--line)}
.rv-stc{flex:none; width:104px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:12px 8px; text-align:center; font-size:12px; font-weight:600; line-height:1.25; box-shadow:inset -3px 0 0 currentColor}
.rv-stc-ic{display:flex} .rv-stc-ic svg{width:19px; height:19px}
.rv-stc-sim{background:var(--st-sim-wash); color:var(--st-sim)}
.rv-stc-parcial{background:#F0F2E8; color:var(--st-sim)}
.rv-stc-nao{background:var(--st-nao-wash); color:var(--st-nao)}
.rv-stc-talvez{background:var(--st-talvez-wash); color:#8A6A2E}
.rv-stc-pendente{background:var(--st-pend-wash); color:#6F6658}
.rv-stc-naoenviado{background:var(--panel); color:var(--muted); box-shadow:inset -3px 0 0 var(--line)}
@media(max-width:620px){
  .rv-item{gap:10px; padding:12px 14px} .rv-item .rv-ini{display:none}
  .rv-item .rv-acts{flex-direction:column-reverse; align-items:stretch; gap:5px}
  .rv-cv{padding:0; gap:10px} .rv-cv .rv-mid{padding:12px 0} .rv-cv .rv-acts{padding-right:12px}
  .rv-stc{width:62px; font-size:10px; padding:10px 3px; gap:4px} .rv-stc-ic svg{width:17px; height:17px}
  .rv-m-hide{display:none}
  .rv-cv .rv-acts .rv-bt-t{display:none}
  .rv-cv .rv-acts .rv-sm{width:40px; height:34px; padding:0; justify-content:center}
  .rv-cv .rv-acts .rv-sm .rv-ic{width:17px; height:17px}
}

.rv-groups details{background:var(--paper); border:1px solid var(--line); border-radius:14px; margin-bottom:8px; overflow:hidden}
.rv-groups summary{list-style:none; display:flex; align-items:center; gap:10px; padding:13px 16px; cursor:pointer}
.rv-groups summary::-webkit-details-marker{display:none}
.rv-groups summary .rv-c{flex:1}
.rv-groups summary .rv-n{color:var(--muted); font-size:13px}
.rv-groups summary::after{content:""; width:8px; height:8px; border-right:1.5px solid var(--muted); border-bottom:1.5px solid var(--muted); transform:rotate(45deg); margin-left:4px; transition:transform .2s}
.rv-groups details[open] summary::after{transform:rotate(225deg)}
.rv-groups .rv-gl{border-top:1px solid var(--line-soft)}
.rv-groups .rv-gl .rv-item{padding:11px 16px}
.rv-recado{font-family:"Cormorant Garamond",serif; font-style:italic; font-size:16px; color:var(--ink); margin-top:4px}

.rv-filters{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px}
.rv-filters button{border:1px solid var(--line); background:var(--paper); border-radius:999px; padding:6px 13px; font-size:12.5px; color:var(--muted)}
.rv-filters button.on{border-color:var(--sage); background:var(--sage-wash); color:var(--sage-deep); font-weight:600}
.rv-f-sep{width:1px; align-self:stretch; background:var(--line); margin:4px}
@media(max-width:520px){ .rv-f-sep{display:none} }
.rv-msg{white-space:pre-wrap; background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:14px 16px; font-size:13.5px; color:var(--ink)}

.rv-conv-bar{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 2px 12px; flex-wrap:wrap}
.rv-conv-sum{display:flex; flex-direction:column; gap:1px; min-width:0}
.rv-conv-sum b{font-family:"Cormorant Garamond",serif; font-size:24px; font-weight:600; line-height:1.1}
.rv-conv-sum span{color:var(--muted); font-size:13px}
.rv-msg-btn .rv-ic{color:var(--sage)}

.rv-queue{display:grid; grid-template-columns:1.2fr 1fr; gap:14px}
@media(max-width:760px){ .rv-queue{grid-template-columns:1fr} }
.rv-now{border:1px solid var(--gold-line); background:var(--paper); border-radius:18px; padding:22px; box-shadow:var(--shadow-lift)}
.rv-now .rv-pos{font-size:12px; color:var(--muted)}
.rv-now h3{font-family:"Cormorant Garamond",serif; font-size:28px; font-weight:600; margin:4px 0 2px}
.rv-now .rv-why{color:var(--muted); font-size:13.5px; margin-bottom:14px}
.rv-now .rv-acts{display:flex; gap:8px; margin-top:14px; flex-wrap:wrap}
.rv-empty{text-align:center; padding:40px 20px; color:var(--muted); background:var(--panel); border:1px dashed var(--line); border-radius:16px}
.rv-empty h3{font-family:"Cormorant Garamond",serif; font-size:24px; color:var(--ink); margin:0 0 6px; font-weight:600}

.rv-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.rv-stat{background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:14px 16px}
.rv-stat b{display:block; font-family:"Cormorant Garamond",serif; font-size:30px; font-weight:600; line-height:1}
.rv-stat span{color:var(--muted); font-size:12.5px}
.rv-diet{display:flex; justify-content:space-between; gap:10px; padding:11px 16px; border-top:1px solid var(--line-soft)}
.rv-diet:first-child{border-top:0}
.rv-diet span{color:var(--muted); font-size:12.5px; text-align:right}

.rv-regra{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:16px 18px}
.rv-regra > p{margin:0 0 12px; color:var(--muted); font-size:13.5px}
.rv-fx-row{display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 0; border-top:1px solid var(--line-soft); font-size:14px}
.rv-fx-row:first-child{border-top:0}
.rv-fx-de{min-width:74px; color:var(--muted)}
.rv-fx-in{width:62px; border:1px solid var(--line); background:var(--panel); border-radius:9px; padding:7px 8px; font:inherit; font-size:14px; text-align:center}
.rv-fx-sel{border:1px solid var(--line); background:var(--panel); border-radius:9px; padding:7px 8px; font:inherit; font-size:14px}
.rv-fx-in:focus, .rv-fx-sel:focus{outline:none; border-color:var(--gold-soft)}
.rv-fx-rm{margin-left:auto; width:28px; height:28px; border-radius:50%; border:1px solid var(--line); background:var(--paper); color:var(--muted); font-size:12px}
.rv-fx-rm:hover{color:var(--st-nao); border-color:var(--st-nao)}
.rv-fx-fim{color:var(--ink)}
.rv-fx-acts{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}

/* ---------- janelas (dentro do .overlay/.modal do app) ---------- */
.rv-mdl{position:relative; padding:26px 22px 18px; display:flex; flex-direction:column; gap:10px; max-width:420px}
.modal.rv-modal{max-width:420px}
.modal.rv-modal-larga{max-width:620px}
.modal.rv-modal-larga .rv-mdl{max-width:none}
.rv-mdl h3{font-family:"Cormorant Garamond",serif; font-size:24px; font-weight:600; margin:0; padding-right:34px}
.rv-mdl p{margin:0; color:var(--muted); font-size:13.5px}
.rv-mdl input{border:1px solid var(--line); background:var(--panel); border-radius:12px; padding:12px 14px; font:inherit; font-size:17px; letter-spacing:.02em; outline:none; color:var(--ink)}
.rv-mdl input:focus, .rv-mdl textarea:focus{border-color:var(--gold-soft); background:#fff}
.rv-mdl textarea{width:100%; border:1px solid var(--line); background:var(--panel); border-radius:12px; padding:12px 14px; font:inherit; font-size:14px; line-height:1.5; resize:vertical; outline:none; color:var(--ink)}
.rv-mdl-x{position:absolute; top:12px; right:12px}
.rv-mdl-err{color:var(--danger); font-size:12.5px}
.rv-mdl-err:empty{display:none}
.rv-mdl-ok{width:100%; justify-content:center; padding:12px 16px; font-size:14px}
.rv-etqs{display:flex; flex-wrap:wrap; gap:6px}
.rv-etq{border:1px dashed var(--gold-soft); background:var(--gold-wash); color:#6b5a3a; border-radius:999px; padding:5px 11px; font-size:12.5px}
.rv-etq:hover{border-style:solid}
.rv-mod-status{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:-2px}
.rv-tag{font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--st-pend-wash); color:var(--st-pend)}
.rv-tag.prop{background:var(--sage-wash); color:var(--sage-deep)}
.rv-mod-prev{border-top:1px dashed var(--line); padding-top:10px}
.rv-mod-prevh{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); margin-bottom:6px}
.rv-mod-prevh select{border:1px solid var(--line); background:var(--panel); border-radius:8px; padding:5px 8px; font:inherit; font-size:12.5px; max-width:100%}
.rv-mod-acts{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.rv-mod-acts .rv-sp{flex:1}

/* ---------- Personalizar ---------- */
.rv-pers{display:grid; grid-template-columns:minmax(0,1fr) 400px; gap:30px}
@media(max-width:1100px){ .rv-pers{grid-template-columns:1fr} }
.rv-salvo{font-size:12.5px; color:var(--muted); display:inline-flex; align-items:center; gap:6px}
.rv-salvo i{width:7px; height:7px; border-radius:50%; background:var(--sage); display:inline-block}
.rv-salvo.busy i{background:var(--gold-soft)}
.rv-salvo.erro i{background:var(--danger)}
.rv-sec2{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:20px 22px; margin-bottom:16px; box-shadow:var(--shadow)}
.rv-sec2 h3{font-family:"Cormorant Garamond",serif; font-size:22px; font-weight:600; margin:0}
.rv-sec2 .rv-sd{color:var(--muted); font-size:13px; margin:2px 0 16px}
.rv-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media(max-width:560px){ .rv-row2{grid-template-columns:1fr} .rv-sec2{padding:18px 16px} }
.rv-f{display:flex; flex-direction:column; gap:5px; margin-bottom:12px; min-width:0}
.rv-f label{font-size:12px; font-weight:600; color:var(--muted)}
.rv-f label small{font-weight:400; color:var(--faint)}
.rv-f input, .rv-f textarea{width:100%; border:1px solid var(--line); background:var(--panel); color:var(--ink); border-radius:10px; padding:10px 12px; font:inherit; font-size:14px; outline:none; transition:border-color .15s, background .15s}
.rv-f input:focus, .rv-f textarea:focus{border-color:var(--gold-soft); background:#fff}
.rv-f input:disabled, .rv-f textarea:disabled{opacity:.7}
.rv-f textarea{min-height:84px; resize:vertical; line-height:1.45}
.rv-f .rv-hint{font-size:12px; color:var(--faint)}
.rv-f .rv-err{font-size:12px; color:var(--danger)}
.rv-f .rv-err:empty{display:none}
.rv-f.bad input{border-color:var(--danger)}
.rv-check{display:flex; align-items:center; gap:9px; font-size:13.5px; margin:2px 0 14px; cursor:pointer}
.rv-check input{width:18px; height:18px; accent-color:var(--sage-deep)}
.rv-count{font-size:11.5px; color:var(--faint); text-align:right}

.rv-temas{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
@media(max-width:560px){ .rv-temas{grid-template-columns:repeat(2,1fr)} }
.rv-tema{position:relative; border:1px solid var(--line); background:var(--panel); border-radius:14px; padding:8px 8px 10px; text-align:left; transition:border-color .15s, box-shadow .15s; color:var(--ink)}
.rv-tema:hover{border-color:var(--gold-line)}
.rv-tema.on{border-color:var(--sage-deep); background:var(--sage-wash)}
.rv-tema .rv-sw{position:relative; height:74px; border-radius:9px; overflow:hidden; display:flex}
.rv-tema .rv-sw i{flex:1}
.rv-tema .rv-sw i + i{border-left:1px solid rgba(0,0,0,.14)}
.rv-tema .rv-sw b{position:absolute; left:50%; top:50%; width:22px; height:22px; margin:-11px 0 0 -11px; border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.25)}
.rv-tema .rv-tnm{display:block; font-weight:600; font-size:13px; margin-top:8px}
.rv-tema .rv-tds{display:block; font-size:11.5px; color:var(--muted)}
.rv-tema .rv-ok{position:absolute; top:12px; right:12px; width:20px; height:20px; border-radius:50%; background:var(--sage-deep); color:#fff; display:none; align-items:center; justify-content:center; font-size:12px}
.rv-tema.on .rv-ok{display:flex}
.rv-tema .rv-pers-tag{position:absolute; top:12px; left:12px; font-size:10px; font-weight:600; letter-spacing:.04em; padding:2px 7px; border-radius:999px; background:var(--paper); color:var(--sage-deep); box-shadow:0 1px 3px rgba(0,0,0,.15)}
.rv-extras{display:grid; gap:10px; margin-top:14px}
.rv-extra{border:1px solid var(--line); border-radius:14px; background:var(--panel)}
.rv-sw-row{display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; padding:14px 16px; background:none; border:0; text-align:left; cursor:pointer; font:inherit; color:inherit; border-radius:14px}
.rv-sw-row b{display:block; font-size:14px; font-weight:600}
.rv-sw-row small{display:block; color:var(--muted); font-size:12.5px; margin-top:1px}
.rv-sw-estatico{cursor:default}
.rv-toggle{appearance:none; -webkit-appearance:none; flex:none; width:42px; height:24px; border-radius:999px; background:var(--line); position:relative; cursor:pointer; transition:background .2s; margin:0}
.rv-toggle::before{content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); transition:transform .25s cubic-bezier(.22,1,.36,1)}
.rv-toggle:checked{background:var(--sage-deep)}
.rv-toggle:checked::before{transform:translateX(18px)}
.rv-toggle:focus-visible{outline:2px solid var(--gold-soft); outline-offset:2px}
.rv-chev{flex:none; color:var(--muted); transition:transform .25s cubic-bezier(.22,1,.36,1)}
[aria-expanded="true"] > .rv-chev{transform:rotate(90deg)}
.rv-extra-body{padding:14px 16px 16px; border-top:1px dashed var(--line)}
.rv-foto-row{display:flex; gap:14px; align-items:center; margin-bottom:14px}
.rv-foto-row .rv-th{width:72px; height:88px; border-radius:8px; background:var(--paper-2) center 30%/cover; flex:none; border:1px solid var(--line)}
.rv-foto-row .rv-th.arco{border-radius:36px 36px 6px 6px}
.rv-foto-row p{margin:0 0 8px; font-size:13px; color:var(--muted)}
.rv-foto-row .btn{cursor:pointer}
.rv-logo-th{width:88px; height:88px; flex:none; border-radius:10px; border:1px solid var(--line); background-color:#fff; background-position:center; background-size:contain; background-repeat:no-repeat}
.rv-logo-th.vazio{background-image:linear-gradient(45deg, var(--line-soft) 25%, transparent 25%, transparent 75%, var(--line-soft) 75%), linear-gradient(45deg, var(--line-soft) 25%, transparent 25%, transparent 75%, var(--line-soft) 75%); background-size:14px 14px; background-position:0 0, 7px 7px}
.rv-logo-dica{margin:0; font-size:12px; color:var(--muted)}
.rv-seg2{display:inline-flex; flex-wrap:wrap; gap:4px; background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:3px}
.rv-seg2 button{border:0; background:none; padding:7px 14px; border-radius:999px; font-size:12.5px; color:var(--muted)}
.rv-seg2 button.on{background:var(--sage-wash); color:var(--sage-deep); font-weight:600}
.rv-subindo{font-size:12.5px; color:var(--gold)}
.rv-cores-g{margin-bottom:16px}
.rv-cores-g h4{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:0 0 8px; font-weight:600}
.rv-cores-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:8px}
.rv-cor{display:flex; align-items:center; gap:10px; background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:8px 10px}
.rv-cor input[type=color]{flex:none; width:36px; height:36px; border:0; padding:0; background:none; cursor:pointer}
.rv-cor input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.rv-cor input[type=color]::-webkit-color-swatch{border:1px solid rgba(0,0,0,.15); border-radius:50%}
.rv-cor input[type=color]::-moz-color-swatch{border:1px solid rgba(0,0,0,.15); border-radius:50%}
.rv-cor b{display:block; font-size:13px; font-weight:600}
.rv-hex{width:90px; border:0; background:none; font:12px ui-monospace,Consolas,monospace; color:var(--muted); padding:1px 0; outline:none; text-transform:uppercase}
.rv-hex:focus{color:var(--ink); border-bottom:1px solid var(--gold-soft)}
.rv-cores-foot{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; padding-top:4px}
.rv-cores-aviso{color:var(--danger); font-size:12.5px; flex:1; min-width:200px}
.rv-cores-aviso:empty{display:none}
.rv-linkbox{display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--sage-wash); border-radius:12px; padding:12px 14px; font-size:13.5px; color:var(--sage-deep)}
.rv-linkbox code{font-family:ui-monospace,Consolas,monospace; font-size:12.5px; color:var(--ink); word-break:break-all; flex:1; min-width:180px}

/* prévia */
.rv-pv{position:sticky; top:20px; align-self:start}
.rv-pv-bar{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px}
.rv-pv-seg{display:inline-flex; background:var(--panel); border:1px solid var(--line); border-radius:999px; padding:3px}
.rv-pv-seg button{border:0; background:none; padding:6px 13px; border-radius:999px; font-size:12.5px; color:var(--muted)}
.rv-pv-seg button.on{background:var(--sage-wash); color:var(--sage-deep); font-weight:600}
.rv-phone{width:370px; height:740px; max-height:calc(100vh - 110px); margin:0 auto; border-radius:44px; padding:12px; background:#1f1e1c; box-shadow:var(--shadow-lift)}
.rv-phone iframe{width:100%; height:100%; border:0; border-radius:34px; background:#fff; display:block}
.rv-pv-note{font-size:12px; color:var(--faint); text-align:center; margin-top:10px}
.rv-pv-x{display:none}
.rv-fab{display:none}
@media(max-width:1100px){
  .rv-pv{position:fixed; inset:0; z-index:70; background:rgba(28,24,18,.55); padding:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s, visibility 0s linear .3s}
  .rv-pv.on{opacity:1; visibility:visible; transition:opacity .3s}
  .rv-pv-bar{width:min(390px,100%); background:var(--panel); border-radius:999px; padding:6px 8px 6px 16px}
  .rv-phone{width:min(390px,100%); height:min(780px, calc(100dvh - 90px)); max-height:none}
  .rv-pv-note{display:none}
  .rv-pv-x{display:inline-flex}
  .rv-fab{display:inline-flex; position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:50; background:var(--ink); color:var(--bg); border:0; border-radius:999px; padding:13px 22px; font-size:14px; font-weight:600; box-shadow:var(--shadow-lift)}
  .rv-pers-form{padding-bottom:60px}
}
/* trocar o link do convite */
.rv-link-ed{display:flex; align-items:center; flex:1; min-width:220px; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:0 0 0 10px; font:12.5px ui-monospace,Consolas,monospace; color:var(--muted)}
.rv-link-ed:focus-within{border-color:var(--gold-soft)}
.rv-link-ed span{white-space:nowrap}
.rv-link-ed input{flex:1; min-width:60px; border:0; background:none; outline:none; padding:9px 10px 9px 0; font:inherit; color:var(--ink)}
@media(max-width:560px){ .rv-link-ed span{font-size:11px} }
