/* ==========================================================================
   VV Imóveis — Painel do corretor (aplicação dentro do site)
   ========================================================================== */
:root{
  --cor:#2A2150;
  --verde:#1FC7A8;
  --cor-escura:#1B1440;
  --cor-clara:#E8EDF4;
  --verde-claro:#DFF7F1;
  --tinta:#16202F;
  --texto:#44505F;
  --suave:#78838F;
  --borda:#E3E7EC;
  --fundo:#F4F6F8;
  --branco:#fff;
  --raio:14px;
  --sombra:0 1px 3px rgba(16,32,52,.06), 0 10px 28px rgba(16,32,52,.05);
  --fonte:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --serif:'Poppins','Inter',sans-serif;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body.vv-app-body{
  margin:0; font-family:var(--fonte); color:var(--texto); background:var(--fundo);
  font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
body.vv-app-body h1,body.vv-app-body h2,body.vv-app-body h3,body.vv-app-body h4{ color:var(--tinta); line-height:1.25; margin:0; }
body.vv-app-body a{ color:var(--cor); text-decoration:none; }
body.vv-app-body img{ max-width:100%; }
.icone{ flex-shrink:0; }

/* ---------- Botões ---------- */
.botao{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--cor); color:#fff !important; border:0; cursor:pointer;
  padding:11px 20px; border-radius:10px; font:inherit; font-size:14.5px; font-weight:650;
  text-decoration:none; transition:background .15s, transform .1s;
}
.botao:hover{ background:#3A2F6B; }
.botao:active{ transform:translateY(1px); }
.botao-verde{ background:var(--verde); color:var(--cor) !important; }
.botao-verde:hover{ background:#D3B583; }
.botao-claro{ background:var(--cor-clara); color:var(--cor) !important; }
.botao-claro:hover{ background:#DCE3EC; }
.botao-borda{ background:#fff; color:var(--tinta) !important; border:1.5px solid var(--borda); }
.botao-borda:hover{ background:var(--fundo); border-color:#CBD3DC; }
.botao-perigo{ background:#FDECEB; color:#A83226 !important; }
.botao-perigo:hover{ background:#F9D9D6; }
.botao-mini{ padding:6px 12px; font-size:13px; border-radius:8px; gap:6px; }
.botao-bloco{ width:100%; }

/* ---------- Formulários ---------- */
.campo{ margin-bottom:16px; }
.campo label{ display:block; font-size:13.5px; font-weight:650; color:var(--tinta); margin-bottom:6px; }
.campo input,.campo select,.campo textarea{
  width:100%; padding:10px 13px; border:1.5px solid var(--borda); border-radius:9px;
  font:inherit; font-size:14.5px; color:var(--tinta); background:#fff;
}
.campo textarea{ resize:vertical; min-height:90px; }
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:none; border-color:var(--verde); box-shadow:0 0 0 3px rgba(31,199,168,.22);
}
.campo .dica{ font-size:12.5px; color:var(--suave); margin-top:5px; }
.linha-campos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:0 16px; }
.campo-check{ display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--tinta); margin-bottom:10px; }
.campo-check input{ width:auto; }

/* ---------- Cartões e KPIs ---------- */
.cartao{ background:#fff; border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:22px; }
.cartao-titulo{ font-size:15.5px; font-weight:750; margin:0 0 14px; color:var(--tinta);
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.cartao-titulo .icone{ color:var(--verde); }
.cartao-titulo > span{ display:inline-flex; align-items:center; gap:8px; }
.grade{ display:grid; gap:18px; }
.grade-2{ grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); }
.grade-3{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:18px; margin-bottom:22px; }
.kpi{ background:#fff; border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:18px 20px; }
.kpi .icone-kpi{ width:40px; height:40px; border-radius:11px; background:var(--verde-claro); color:#0F8A74;
  display:grid; place-items:center; margin-bottom:12px; }
.kpi .valor{ font-size:26px; font-weight:800; color:var(--tinta); line-height:1.1; font-family:var(--serif); }
.kpi .rotulo{ font-size:13px; color:var(--suave); font-weight:600; margin-top:3px; }
.kpi.destaque{ border-left:3px solid var(--verde); }

/* ---------- Tabelas ---------- */
.rolagem{ overflow-x:auto; }
.tabela{ width:100%; border-collapse:collapse; font-size:14.5px; }
.tabela th{ text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.07em;
  color:var(--suave); font-weight:750; padding:10px 14px; border-bottom:1.5px solid var(--borda); white-space:nowrap; }
.tabela td{ padding:12px 14px; border-bottom:1px solid #F0F2F5; vertical-align:middle; }
.tabela tr:last-child td{ border-bottom:0; }
.tabela tbody tr:hover{ background:#FAFBFC; }
.tabela .acoes{ display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap; }
.td-forte{ font-weight:700; color:var(--tinta); }
.td-sub{ display:block; font-size:12.5px; color:var(--suave); font-weight:500; }

/* ---------- Selos ---------- */
.selo{ display:inline-block; padding:3px 11px; border-radius:99px; font-size:12px; font-weight:750; white-space:nowrap; }
.selo-ok{ background:#E2F3E9; color:#14713F; }
.selo-pend{ background:#FDF3DA; color:#8F5F00; }
.selo-erro{ background:#FDECEB; color:#A83226; }
.selo-info{ background:#E7F0FB; color:#2B5F9E; }
.selo-neutro{ background:#EEF0F3; color:#5A6470; }
.selo-verde{ background:var(--verde-claro); color:#0F8A74; }
.alerta{ padding:13px 16px; border-radius:11px; margin-bottom:20px; font-size:14.5px; font-weight:600; }
.alerta-ok{ background:#E2F3E9; color:#14713F; }
.alerta-erro{ background:#FDECEB; color:#A83226; }

/* ---------- Vazio ---------- */
.vazio{ text-align:center; padding:44px 20px; color:var(--suave); }
.vazio .icone{ color:#C2CAD3; margin-bottom:10px; }
.vazio strong{ display:block; color:var(--texto); font-size:15.5px; margin-bottom:4px; }

/* ---------- Avatar ---------- */
.avatar{ width:38px; height:38px; border-radius:50%; background:var(--cor-clara); color:var(--cor);
  display:grid; place-items:center; font-weight:750; font-size:13.5px; flex-shrink:0; }
.avatar-claro{ background:rgba(255,255,255,.16); color:#fff; }

/* ==========================================================================
   Estrutura: barra lateral + topo
   ========================================================================== */
.app{ display:flex; min-height:100vh; }
.lateral{
  width:252px; flex-shrink:0; display:flex; flex-direction:column;
  background:var(--cor-escura); color:#B9C6D6; position:sticky; top:0; height:100vh;
}
.lateral .lateral-marca{ display:flex; align-items:center; gap:11px; padding:20px 18px 16px; color:#fff; }
.lateral-marca img{ max-height:38px; max-width:44px; }
.lateral-marca strong{ display:block; font-family:var(--serif); font-size:19px; line-height:1.15; color:#F2F1FA; }
.lateral-marca small{ display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.14em;
  color:var(--verde); font-weight:700; margin-top:2px; }
.lateral-nav{ padding:8px 12px; display:flex; flex-direction:column; gap:3px; flex:1; overflow-y:auto; }
.lateral .lateral-nav a{ display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px;
  color:#B9C6D6; font-size:14.2px; font-weight:600; transition:background .12s; }
.lateral .lateral-nav a:hover{ background:rgba(255,255,255,.07); color:#fff; }
.lateral .lateral-nav a.ativo{ background:var(--verde); color:var(--cor); }
.lateral-nav .nav-sep{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#6C7C8E;
  font-weight:700; padding:14px 12px 6px; }
.lateral-rodape{ display:flex; align-items:center; gap:11px; padding:16px 18px; border-top:1px solid rgba(255,255,255,.09); }
.lateral-user strong{ display:block; color:#fff; font-size:14px; line-height:1.2; }
.lateral .lateral-user a{ color:#8FA0B3; font-size:12.5px; }
.lateral .lateral-user a:hover{ color:#fff; }

.principal{ flex:1; min-width:0; display:flex; flex-direction:column; }
.topo{ display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.94); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--borda); padding:0 26px; height:62px; position:sticky; top:0; z-index:20; }
.topo h1{ font-size:18.5px; margin:0; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.topo-data{ font-size:13px; color:var(--suave); font-weight:600; }
.topo-acoes{ display:flex; align-items:center; gap:10px; }
.conteudo{ padding:26px; width:100%; max-width:1240px; margin:0 auto; }
.hamb{ display:none; background:none; border:0; cursor:pointer; padding:6px; }
.hamb span{ display:block; width:22px; height:2.5px; background:var(--tinta); border-radius:2px; margin:4.5px 0; }
.sombra-mobile{ display:none; }

.pagina-cab{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.pagina-cab h2{ margin:0; font-size:20px; font-family:var(--serif); font-weight:600; }
.pagina-cab p{ margin:2px 0 0; color:var(--suave); font-size:14px; }
.pagina-cab-acoes{ display:flex; gap:10px; flex-wrap:wrap; }

/* ---------- Filtros ---------- */
.filtros{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.filtros a{ padding:7px 14px; border-radius:99px; font-size:13px; font-weight:650;
  color:var(--texto); background:#fff; border:1.5px solid var(--borda); }
.filtros a.ativo{ background:var(--cor); border-color:var(--cor); color:#fff; }

/* ---------- Funil (kanban) ---------- */
.funil{ display:grid; grid-template-columns:repeat(5,minmax(210px,1fr)); gap:14px; overflow-x:auto; padding-bottom:6px; }
.funil-col{ background:#EDF0F4; border-radius:12px; padding:12px; min-height:180px; }
.funil-col h3{ font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--suave);
  font-weight:750; margin-bottom:10px; display:flex; justify-content:space-between; }
.funil-col h3 b{ background:#fff; border-radius:99px; padding:1px 8px; color:var(--tinta); }
.funil-card{ background:#fff; border:1px solid var(--borda); border-radius:10px; padding:12px; margin-bottom:9px;
  box-shadow:0 1px 2px rgba(16,32,52,.05); }
.funil-card strong{ display:block; font-size:14.5px; color:var(--tinta); }
.funil-card span{ display:block; font-size:12.5px; color:var(--suave); margin-top:2px; }
.funil-card .funil-acoes{ display:flex; gap:6px; margin-top:9px; flex-wrap:wrap; }
.funil-card .funil-acoes a{ font-size:11.5px; font-weight:700; color:var(--cor); background:var(--cor-clara);
  padding:3px 9px; border-radius:99px; }
.funil-card .funil-acoes a:hover{ background:var(--verde); color:var(--cor); }
.funil-card .funil-acoes a.perder{ background:#FDECEB; color:#A83226; }

/* ---------- Gráfico ---------- */
.grafico-caixa{ width:100%; overflow-x:auto; }
.grafico-caixa svg{ width:100%; height:auto; min-width:520px; }
.legenda{ display:flex; gap:16px; flex-wrap:wrap; margin-top:12px; font-size:12.5px; color:var(--suave); }
.legenda i{ width:10px; height:10px; border-radius:3px; display:inline-block; margin-right:6px; }

/* ---------- Lista de produtos no painel ---------- */
.mini-produto{ display:flex; gap:12px; align-items:center; }
.mini-produto img{ width:54px; height:44px; object-fit:cover; border-radius:8px; flex-shrink:0; }
.mini-produto .sem{ width:54px; height:44px; border-radius:8px; background:var(--cor-clara); flex-shrink:0; }
.fotos-edit{ display:flex; flex-wrap:wrap; gap:10px; }
.foto-edit{ text-align:center; font-size:11.5px; color:var(--suave); }
.foto-edit img{ width:86px; height:86px; object-fit:cover; border-radius:9px; display:block; margin-bottom:4px; }

/* ---------- Login ---------- */
.tela-login{ min-height:100vh; display:grid; place-items:center; padding:24px;
  background:linear-gradient(160deg,#2A2150 0%,#1B1440 100%); }
.login-caixa{ width:100%; max-width:400px; background:#fff; border-radius:18px; padding:34px 32px;
  box-shadow:0 30px 70px rgba(0,0,0,.3); text-align:center; }
.login-caixa > img{ width:68px; margin:0 auto 14px; }
.login-caixa h1{ font-family:var(--serif); font-size:26px; margin-bottom:4px; }
.login-caixa p.sub{ color:var(--suave); font-size:14px; margin:0 0 22px; }
.login-caixa label{ display:block; text-align:left; font-size:13.5px; font-weight:650; color:var(--tinta); margin-bottom:6px; }
.login-caixa input[type=text],.login-caixa input[type=password]{
  width:100%; padding:11px 13px; border:1.5px solid var(--borda); border-radius:9px; margin-bottom:14px; font:inherit; }
.login-caixa input[type=submit]{ width:100%; padding:13px; border:0; border-radius:10px; background:var(--verde);
  color:var(--cor); font-weight:750; font-size:15px; cursor:pointer; font-family:inherit; }
.login-caixa .login-forget{ display:flex; justify-content:space-between; font-size:12.5px; margin-top:16px; }
.login-caixa .login-forget a{ color:var(--suave); }
.login-rodape{ margin-top:18px; font-size:12px; color:rgba(242,241,250,.5); text-align:center; }

/* ---------- Responsivo ---------- */
@media (max-width:980px){
  .funil{ grid-template-columns:repeat(5,minmax(190px,1fr)); }
}
@media (max-width:860px){
  .lateral{ position:fixed; left:0; top:0; z-index:60; transform:translateX(-100%); transition:transform .22s; }
  .lateral.aberta{ transform:translateX(0); }
  .hamb{ display:block; }
  .sombra-mobile.ativa{ display:block; position:fixed; inset:0; background:rgba(10,20,34,.5); z-index:50; }
  .conteudo{ padding:18px; }
  .topo{ padding:0 16px; }
  .topo-data{ display:none; }
}

/* ===========================================================================
   Envio de fotos (v2.2) — uma por vez, com ordem e capa
   ======================================================================== */
.vv-up{ margin-top:6px; }

.vv-up-zona{
	border:2px dashed rgba(20,37,61,.22);
	border-radius:12px;
	padding:18px 16px;
	text-align:center;
	background:#fbfaf8;
	transition:border-color .2s, background .2s;
}
.vv-up-zona.sobre{ border-color:var(--verde,#1FC7A8); background:#fff8ec; }
.vv-up-zona label.vv-up-botao{
	display:inline-block;
	background:var(--cor,#2A2150);
	color:#fff;
	font-weight:600;
	padding:12px 20px;
	border-radius:8px;
	cursor:pointer;
	font-size:15px;
}
.vv-up-zona label.vv-up-botao:hover{ opacity:.9; }
.vv-up-zona input[type=file]{ position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.vv-up-zona .vv-up-sub{ display:block; margin-top:9px; font-size:12.5px; color:#6b7280; line-height:1.5; }

.vv-up-barra{
	height:7px;
	background:#e7e3dc;
	border-radius:99px;
	overflow:hidden;
	margin:12px 0 6px;
}
.vv-up-barra i{
	display:block;
	height:100%;
	width:0;
	background:var(--verde,#1FC7A8);
	transition:width .25s ease;
}
.vv-up-estado{ display:block; font-size:13px; color:#42506a; min-height:18px; }
.vv-up-aviso{
	display:block;
	margin-top:8px;
	font-size:12.5px;
	background:#fff6e5;
	border-left:3px solid #1FC7A8;
	padding:8px 10px;
	border-radius:0 6px 6px 0;
	color:#6b5320;
}

.vv-up-lista{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(112px,1fr));
	gap:9px;
	margin-top:14px;
}
.vv-up-item{
	position:relative;
	aspect-ratio:4/3;
	border-radius:9px;
	overflow:hidden;
	background:#eee;
	cursor:grab;
	border:2px solid transparent;
}
.vv-up-item.arrastando{ opacity:.4; border-color:var(--verde,#1FC7A8); }
.vv-up-item img{ width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }

.vv-up-capa{
	position:absolute; top:5px; left:5px;
	background:var(--verde,#1FC7A8);
	color:#20180a;
	font-size:10px;
	font-weight:800;
	text-transform:uppercase;
	letter-spacing:.06em;
	padding:3px 7px;
	border-radius:99px;
}
.vv-up-acoes{
	position:absolute;
	inset:auto 0 0 0;
	display:flex;
	background:rgba(15,24,38,.78);
}
.vv-up-acoes button{
	flex:1;
	border:0;
	background:transparent;
	color:#fff;
	font-size:13px;
	line-height:1;
	padding:8px 0;
	cursor:pointer;
}
.vv-up-acoes button:hover{ background:rgba(255,255,255,.18); }
.vv-up-acoes .vv-up-tirar{ color:#ffb4b4; font-size:17px; }
.vv-up-acoes .vv-up-topo{ color:#f2d79a; }

.vv-up.enviando .vv-up-zona{ opacity:.6; pointer-events:none; }

@media (max-width:600px){
	.vv-up-lista{ grid-template-columns:repeat(3,1fr); gap:7px; }
	.vv-up-acoes button{ padding:10px 0; font-size:14px; }
}

/* ===========================================================================
   Saúde do sistema e backup
   ======================================================================== */
.vv-saude{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:14px 0; }
.vv-saude div{ background:#faf9f7; border:1px solid #ece8e1; border-radius:10px; padding:12px 14px; }
.vv-saude span{ display:block; font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:#8a8676; margin-bottom:4px; }
.vv-saude b{ font-size:16px; color:#2A2150; word-break:break-word; }

.vv-alerta{ padding:11px 14px; border-radius:8px; font-size:13.5px; margin-bottom:8px; line-height:1.55; }
.vv-alerta.ok{ background:#eef7f0; border-left:4px solid #2E6B4F; color:#1f4a37; }
.vv-alerta.aviso{ background:#fff6e5; border-left:4px solid #1FC7A8; color:#6b5320; }
.vv-alerta.erro{ background:#fdeeee; border-left:4px solid #8A3B3B; color:#722; }

.vv-bkp-lista{ width:100%; border-collapse:collapse; margin-top:12px; font-size:14px; }
.vv-bkp-lista th{ text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:#8a8676; padding:6px 8px; border-bottom:1px solid #ece8e1; }
.vv-bkp-lista td{ padding:9px 8px; border-bottom:1px solid #f2efe9; }

.vv-pdf-campo{ margin-top:8px; }
.vv-pdf-atual{
	display:flex; align-items:center; gap:12px;
	margin-top:10px; padding:10px 12px;
	background:#f6f4ef; border-radius:8px; font-size:13.5px; color:#42506a;
}
.vv-pdf-atual .vv-pdf-nome{ flex:1; min-width:0; word-break:break-all; }
.vv-pdf-tirar{
	border:0; background:transparent; color:#8A3B3B;
	font-size:13px; font-weight:600; cursor:pointer; text-decoration:underline;
}

/* v2.2 — checagem de segurança */
.vv-check{ list-style:none; margin:0; padding:0; }
.vv-check li{
	position:relative; padding:11px 0 11px 30px;
	border-bottom:1px solid #f2efe9; font-size:14px; line-height:1.5;
}
.vv-check li:last-child{ border-bottom:0; }
.vv-check li::before{
	position:absolute; left:0; top:11px;
	width:19px; height:19px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	font-size:12px; font-weight:800;
}
.vv-check li.ok::before{ content:"✓"; background:#e4f2e9; color:#2E6B4F; }
.vv-check li.falta::before{ content:"!"; background:#fdeaea; color:#8A3B3B; }
.vv-check li b{ font-weight:600; color:#2A2150; }
.vv-check li.falta b{ color:#8A3B3B; }
.vv-check li span{ display:block; margin-top:4px; font-size:13px; color:#6b7280; }

/* ===========================================================================
   v2.2 — O painel no celular
   A Jussara publica produto do celular. Tudo aqui existe para isso funcionar
   igual ao computador: campo que não dá zoom sozinho no iPhone, tabela que
   vira lista, botão do tamanho do dedo.
   ======================================================================== */
@media (max-width:760px){

	/* iOS dá zoom em campo com letra menor que 16px — e a tela desalinha */
	.campo input, .campo select, .campo textarea,
	input[type=text], input[type=email], input[type=number],
	input[type=date], input[type=time], input[type=password],
	input[type=search], input[type=tel], input[type=url],
	select, textarea{
		font-size:16px !important;
		padding:13px 14px;
		border-radius:10px;
	}
	.campo{ margin-bottom:14px; }
	.linha-campos{ grid-template-columns:1fr; gap:0; }

	/* botões do tamanho do dedo */
	.botao{
		min-height:48px;
		padding:13px 20px;
		font-size:15px;
		justify-content:center;
	}
	.cartao > form > .botao,
	.cartao > .botao,
	form > .cartao > .botao{ width:100%; }
	.botao-mini{ min-height:38px; padding:8px 14px; font-size:13px; }

	.cartao{ padding:16px 15px; border-radius:12px; }
	.conteudo{ padding:14px 12px calc(28px + env(safe-area-inset-bottom)); }

	/* tabela vira lista: nada de rolagem lateral */
	.tabela thead{ display:none; }
	.tabela, .tabela tbody, .tabela tr, .tabela td{ display:block; width:100%; }
	.tabela tr{
		background:#fff;
		border:1px solid var(--borda,#E6E9EE);
		border-radius:12px;
		padding:12px 14px;
		margin-bottom:10px;
	}
	.tabela td{
		border:0;
		padding:4px 0;
		font-size:14.5px;
	}
	.tabela td:empty{ display:none; }
	.tabela .td-forte{ font-size:16px; font-weight:700; margin-bottom:2px; }
	.tabela .acoes{
		justify-content:flex-start;
		gap:8px;
		padding-top:10px;
		margin-top:8px;
		border-top:1px solid #F0F2F5;
	}
	.vv-bkp-lista thead, .vv-bkp-lista th{ display:none; }
	.vv-bkp-lista, .vv-bkp-lista tbody, .vv-bkp-lista tr, .vv-bkp-lista td{ display:block; width:100%; }
	.vv-bkp-lista tr{ border:1px solid #ece8e1; border-radius:10px; padding:10px 12px; margin-bottom:8px; }
	.vv-bkp-lista td{ border:0; padding:3px 0; }

	/* funil de clientes: arrasta para o lado, uma coluna por vez */
	.funil{
		display:flex !important;
		overflow-x:auto;
		scroll-snap-type:x mandatory;
		-webkit-overflow-scrolling:touch;
		gap:10px;
		padding-bottom:8px;
	}
	.funil > *{ flex:0 0 82%; scroll-snap-align:start; }

	.vv-painel-topo{ flex-direction:column; align-items:stretch; gap:10px; }
	.vv-painel-topo .botao{ width:100%; }

	/* atalhos da visão geral em duas colunas */
	.vv-painel-atalhos{ grid-template-columns:repeat(2,1fr) !important; gap:9px; }

	.vv-saude{ grid-template-columns:repeat(2,1fr); }
	.vv-saude b{ font-size:15px; }
}

/* telas bem pequenas */
@media (max-width:380px){
	.vv-up-lista{ grid-template-columns:repeat(2,1fr); }
	.vv-painel-atalhos{ grid-template-columns:1fr !important; }
}

/* o menu lateral respeita o entalhe do iPhone */
.lateral{ padding-bottom:env(safe-area-inset-bottom); }

/* ===========================================================================
   v2.3 — Textos do site
   ======================================================================== */
.vv-txt-grupo{padding:0;overflow:hidden}
.vv-txt-grupo > summary{
	list-style:none;cursor:pointer;
	padding:18px 22px;
	display:flex;flex-direction:column;gap:3px;
	position:relative;
	transition:background .15s;
}
.vv-txt-grupo > summary::-webkit-details-marker{display:none}
.vv-txt-grupo > summary::after{
	content:"+";
	position:absolute;right:22px;top:50%;transform:translateY(-50%);
	font-size:20px;color:#8a8676;line-height:1;
}
.vv-txt-grupo[open] > summary::after{content:"−"}
.vv-txt-grupo > summary:hover{background:#faf9f7}
.vv-txt-grupo > summary b{font-size:16px;color:#2A2150;padding-right:28px}
.vv-txt-grupo > summary span{font-size:13px;color:#8a8676;padding-right:28px}
.vv-txt-form{padding:4px 22px 22px;border-top:1px solid #f2efe9}
.vv-txt-acoes{
	display:flex;align-items:center;gap:14px;flex-wrap:wrap;
	margin-top:18px;padding-top:16px;border-top:1px solid #f2efe9;
}

/* imagem única */
.vv-img-linha{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.vv-img-previa{
	width:96px;height:72px;border-radius:9px;overflow:hidden;
	background:#eee;border:1px solid #ece8e1;flex:0 0 auto;
}
.vv-img-previa img{width:100%;height:100%;object-fit:cover;display:block}
.vv-img-acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vv-img-acoes input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.vv-img-estado{font-size:12.5px;color:#42506a}

/* listas */
.vv-lista-itens{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.vv-lista-linha{
	display:flex;align-items:flex-start;gap:10px;
	background:#faf9f7;border:1px solid #ece8e1;border-radius:10px;padding:12px 12px 12px 8px;
}
.vv-lista-linha.arrastando{opacity:.45;border-color:var(--verde,#1FC7A8)}
.vv-lista-punho{
	cursor:grab;color:#b9b3a5;font-size:15px;line-height:1;
	padding:8px 4px;user-select:none;flex:0 0 auto;
}
.vv-lista-campos{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.vv-lista-rot{
	display:block;font-size:11.5px;font-weight:600;letter-spacing:.04em;
	text-transform:uppercase;color:#8a8676;
}
.vv-lista-rot input,.vv-lista-rot textarea{
	display:block;width:100%;margin-top:4px;
	font-size:14px;font-weight:400;text-transform:none;letter-spacing:0;color:#1B2434;
	padding:9px 11px;border:1px solid #e0dcd3;border-radius:8px;background:#fff;
	font-family:inherit;
}
.vv-lista-rot textarea{resize:vertical;min-height:56px;line-height:1.5}
.vv-lista-tirar{
	border:0;background:transparent;color:#b98a8a;
	font-size:20px;line-height:1;cursor:pointer;padding:6px 8px;flex:0 0 auto;border-radius:6px;
}
.vv-lista-tirar:hover{background:#fdeeee;color:#8A3B3B}

/* monograma quando não há logo enviado */
.vv-mono{
	display:inline-flex;align-items:center;justify-content:center;
	border-radius:50%;font-family:'Poppins','Inter',sans-serif;
	font-weight:600;letter-spacing:.02em;line-height:1;
}

@media (max-width:760px){
	.vv-txt-form{padding:4px 15px 18px}
	.vv-txt-grupo > summary{padding:15px 18px}
	.vv-txt-acoes .botao{width:100%}
	.vv-lista-linha{padding:10px}
	.vv-lista-punho{display:none}
}

/* prévia da marca nas configurações */
.vv-marca-previa{margin:14px 0 4px}
.vv-marca-previa > span{
	display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;
	color:#8a8676;margin-bottom:8px;
}
.vv-marca-linha{display:flex;gap:10px}
.vv-marca-claro,.vv-marca-escuro{
	flex:1;display:flex;align-items:center;justify-content:center;
	padding:16px;border-radius:10px;border:1px solid #ece8e1;
}
.vv-marca-claro{background:#fbfaf8}
.vv-marca-escuro{background:var(--cor,#2A2150);border-color:transparent}
