/* Complementos do app ao visual do briefing (briefing.css traz cores, fundo milimetrado e botões) */
.logo{display:inline-block; color:var(--ink); text-decoration:none; line-height:0}
.logo svg{display:block; height:38px; width:auto}
.logo .meu{fill:currentColor}
.logo .casa{fill:none; stroke:currentColor}
.logo .croqui{fill:#C27F14}
:root[data-theme="dark"] .logo .croqui{fill:var(--accent)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo .croqui{fill:var(--accent)}}
.logo.big svg{height:clamp(70px,14vw,120px)}

.badge{display:inline-block; font-size:12px; letter-spacing:.08em; text-transform:uppercase; border:1px dashed var(--line); border-radius:999px; padding:3px 10px; color:var(--ink-2); background:var(--card)}
.home{padding-block:40px 20px; max-width:760px}
.home h1{font-family:var(--f-display); font-weight:800; font-size:clamp(28px,5.5vw,42px); line-height:1.08; letter-spacing:-.02em; margin:26px 0 12px; text-wrap:balance}
.home p{color:var(--ink-2); max-width:60ch}
.home .nav{justify-content:flex-start}
.privacy{display:flex; gap:10px; align-items:flex-start; margin-top:26px; font-size:15px; color:var(--ink-2)}
.privacy svg{width:22px; height:22px; flex:none; stroke:var(--ok); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round}

/* caixa de pendências ao enviar */
.errbox{margin-top:16px; border:1.5px solid var(--warn); border-radius:10px; background:var(--card); padding:14px 16px}
.errbox h3{font-family:var(--f-display); font-size:18px; margin:0 0 8px; color:var(--warn)}
.errbox ul{margin:0; padding-left:20px}
.errbox li{margin-bottom:6px}
.errbox button{all:unset; cursor:pointer; color:var(--accent); font-weight:700; text-decoration:underline}
.btn[disabled]{opacity:.6; cursor:wait}

/* página do cliente */
.done-card{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:20px; margin-top:20px; max-width:760px}
.done-card h2{font-family:var(--f-display); margin:0 0 8px}

/* ---------- mapa do lote (pergunta 2 e /mapa) ---------- */
.mz{margin-top:14px; display:grid; gap:10px}
.mz-mapa{height:min(62vh,440px); border:1px solid var(--line); border-radius:10px; background:var(--paper-2); z-index:0}
.mz-busca{position:relative}
.mz-busca input{width:100%; font:inherit; font-size:16px; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--ink)}
.mz-busca ul{position:absolute; z-index:1000; left:0; right:0; top:calc(100% + 4px); margin:0; padding:4px; list-style:none; background:var(--card); border:1px solid var(--line); border-radius:8px; max-height:300px; overflow:auto; box-shadow:0 8px 24px rgba(0,0,0,.12)}
.mz-busca li button{display:block; width:100%; text-align:left; font:inherit; color:var(--ink); background:none; border:0; border-radius:6px; padding:8px 10px; cursor:pointer}
.mz-busca li button:hover,.mz-busca li button:focus{background:var(--sel); outline:none}
.mz-busca small{display:block; color:var(--ink-2); font-size:13px}
.mz-nada{padding:8px 10px; color:var(--ink-2); font-size:14px}
.mz-barra{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.mz-barra button{font:inherit; font-size:14px; padding:8px 12px; border-radius:8px; border:1px solid var(--line); background:var(--card); color:var(--ink); cursor:pointer}
.mz-barra .mz-gps{border-color:var(--accent); color:var(--accent)}
.mz-dica{font-size:13px; color:var(--ink-2); flex:1 1 220px}
.mz-info:empty{display:none}
.mz-info{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:12px; display:grid; gap:10px}
.mz-zona{display:flex; gap:10px; align-items:center}
.mz-zona small{display:block; color:var(--ink-2); font-size:13px}
.mz-sig{color:#fff; font-weight:700; font-size:14px; padding:6px 9px; border-radius:6px; letter-spacing:.02em}
.mz-par{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:14px; color:var(--ink-2)}
.mz-par b{color:var(--ink)}
.mz-alerta{font-size:14px; color:var(--warn)}
.mz-carr{font-size:14px; color:var(--ink-2)}
.leaflet-tooltip.mz-rot{background:transparent; border:0; box-shadow:none; padding:0; font-size:11px; color:#1E292C; text-shadow:0 0 3px #fff,0 0 3px #fff; white-space:nowrap}
.leaflet-tooltip.mz-rot:before{display:none}
.leaflet-container{font-family:var(--f-body)}
.mapa-pag{max-width:980px; margin:0 auto; padding:8px 0 40px}
.mapa-pag h1{font-family:var(--f-display); font-size:clamp(22px,4vw,30px); margin:8px 0 4px}
.mapa-pag p{color:var(--ink-2); margin:0 0 6px}

/* ---------- Política de Privacidade (/privacidade) e rodapé ---------- */
.rodape-site{display:flex; flex-wrap:wrap; gap:8px 18px; justify-content:space-between; border-top:1px dashed var(--line); margin-top:40px; padding:16px 0 28px; font-size:14px; color:var(--ink-2)}
.rodape-site a{color:var(--accent)}
.privacy a{color:var(--accent)}
.politica{max-width:820px; padding-block:24px 10px}
.politica .eyebrow{font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); font-weight:700}
.politica h1{font-family:var(--f-display); font-weight:800; font-size:clamp(28px,5vw,40px); line-height:1.1; margin:6px 0 4px}
.politica .meta{color:var(--ink-2); margin:0 0 16px; font-size:15px}
.politica .lead{font-size:17px}
.politica h2{font-family:var(--f-display); font-size:clamp(20px,3.4vw,24px); margin:34px 0 10px; scroll-margin-top:16px}
.politica p{max-width:70ch}
.politica table{width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden; font-size:15px; margin:8px 0 12px; display:block; overflow-x:auto}
.politica th,.politica td{text-align:left; vertical-align:top; padding:9px 12px; border-bottom:1px solid var(--line)}
.politica thead th{background:var(--paper-2); font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-2)}
.politica tbody th, .politica tr > th:first-child:not(thead th){white-space:nowrap; color:var(--ink-2); font-weight:600}
.politica .sumario{display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 6px}
.politica .sumario a{font-size:14px; padding:6px 10px; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--ink); text-decoration:none}
.politica .sumario a:hover{border-color:var(--accent)}
.aviso-minuta{border:1.5px dashed var(--warn); border-radius:10px; background:var(--card); padding:12px 14px; margin:0 0 16px; font-size:15px}
.aviso-minuta b{color:var(--warn)}
mark.pend{background:var(--sel); color:var(--warn); padding:0 4px; border-radius:4px; font-weight:600}

/* aceite no fim do briefing */
.aceite{margin-top:18px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:14px 16px; display:grid; gap:10px}
.aceite h3{font-family:var(--f-display); font-size:18px; margin:0}
.aceite label{display:flex; gap:10px; align-items:flex-start; font-size:15px; cursor:pointer}
.aceite input{width:20px; height:20px; flex:none; margin-top:2px; accent-color:var(--accent)}
.aceite .sens{border-left:3px solid var(--accent); padding-left:10px}
.aceite a{color:var(--accent)}
.aceite small{color:var(--ink-2)}

/* ---------- Brasil inteiro: estado, cidade e condomínio (20/10/2026) ---------- */
.field select{width:100%; font:inherit; color:var(--ink); background:var(--paper); border:1.5px solid var(--line); border-radius:8px; padding:10px 12px; appearance:auto}
.field select:focus{outline:none; border-color:var(--accent)}
.cidade-aviso{margin-top:12px}
.tip.warn{border-style:solid; border-color:var(--warn); background:var(--card)}
.tip.warn .ic{color:var(--warn)}

/* ---------- planos e conta ---------- */
.planos{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:22px}
.plano{position:relative; background:var(--card); border:1.5px solid var(--line); border-radius:12px; padding:20px 18px; display:flex; flex-direction:column; gap:10px}
.plano.dest{border-color:var(--accent); box-shadow:0 0 0 3px var(--sel)}
.plano .rib{position:absolute; top:-11px; left:18px; background:var(--accent); color:var(--accent-ink); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 10px; border-radius:999px}
.plano h3{font-family:var(--f-display); font-size:22px; margin:0}
.plano .val{font-family:var(--f-display); font-weight:800; font-size:34px; color:var(--ink); line-height:1}
.plano .val small{font-size:16px; font-weight:600; margin-right:4px; color:var(--ink-2)}
.plano .sub{color:var(--ink-2); margin:0; font-size:15px}
.plano .tok{font-size:14px; font-weight:700; color:var(--accent)}
.plano ul{margin:0; padding-left:18px; color:var(--ink); font-size:15px; display:grid; gap:4px; flex:1}
.plano .btn{text-align:center; justify-content:center}
.conta-box{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:20px; max-width:560px; margin-top:18px; display:grid; gap:12px}
.conta-box label{display:grid; gap:4px; font-size:14px; color:var(--ink-2)}
.conta-box input{font:inherit; color:var(--ink); background:var(--paper); border:1.5px solid var(--line); border-radius:8px; padding:10px 12px}
.saldo{font-family:var(--f-display); font-size:40px; font-weight:800; color:var(--accent); line-height:1}
.hist{width:100%; border-collapse:collapse; font-size:14px; margin-top:8px}
.hist td,.hist th{border-bottom:1px solid var(--line); padding:6px 4px; text-align:left}
.peq{font-size:14px; color:var(--ink-2)}
.linkbtn{all:unset; cursor:pointer; color:var(--accent); font-weight:700; text-decoration:underline; font-size:inherit}
.croquis{margin-top:18px; max-width:560px}
.croquis a{display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none}
.croquis a:hover b{text-decoration:underline}
