/* Painéis deslizantes e janelas do site: detalhe, listas, atualizações, fotos, nome, registro, recorrentes, histórico, compartilhar. */
/* painel deslizante */
.sheet{position:fixed;left:0;right:0;bottom:calc(65px + env(safe-area-inset-bottom,0px));z-index:700;background:#fff;border-radius:18px 18px 0 0;
  box-shadow:0 -10px 30px rgba(14,26,43,.18);max-height:calc(100% - 150px);display:flex;flex-direction:column} /* fica acima da navegação de baixo */
@media (min-width:760px){.sheet{left:auto;right:16px;top:calc(env(safe-area-inset-top,0px) + 76px);bottom:calc(81px + env(safe-area-inset-bottom,0px));width:400px;border-radius:16px;max-height:none}}
.sheet-head{display:flex;align-items:center;gap:10px;padding:16px 16px 8px}
.sheet-head h2{font-size:19px;font-weight:800;line-height:1.25;flex:1;min-width:0}
.x{border:0;background:var(--canvas);width:40px;height:40px;border-radius:20px;font-size:20px;line-height:1;flex:none;color:var(--sub)}
.sheet-body{overflow:auto;padding:4px 16px 20px;display:flex;flex-direction:column;gap:14px}

label.f{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px;color:var(--ink)}
input[type=text],textarea{width:100%;min-height:48px;border:1px solid var(--border);background:#fff;border-radius:12px;padding:12px;font-size:16px;font-weight:500}
input[type=text]:focus,textarea:focus{border-color:var(--brand);outline:none}
textarea{min-height:84px;resize:vertical}
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cat{border:1px solid var(--border);background:#fff;border-radius:12px;padding:10px;text-align:left;font-weight:700;font-size:13.5px;display:flex;gap:8px;align-items:center;min-height:48px}
.cat .ci{width:30px;height:30px;border-radius:9px;background:var(--canvas);color:var(--sub);display:flex;align-items:center;justify-content:center;flex:none}
.cat[aria-pressed=true]{border:2px solid var(--brand);background:var(--brand-tint);padding:9px}
.cat[aria-pressed=true] .ci{background:var(--brand);color:#fff}
.dot{width:10px;height:10px;border-radius:5px;flex:none}
.btn{min-height:48px;border:1px solid transparent;border-radius:12px;padding:0 16px;font-weight:700;font-size:15px;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover:not(:disabled){background:var(--brand-dark)}
.btn.ghost{background:#fff;color:var(--ink);border-color:var(--border)}
.btn.ghost:hover:not(:disabled){background:var(--canvas)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.row{display:flex;gap:8px;flex-wrap:wrap}
.row .btn{flex:1 1 140px}
.hint{font-size:12.5px;color:var(--muted);margin:0;font-weight:500}
.addr{font-size:14px;font-weight:600;background:var(--canvas);border-radius:12px;padding:10px 12px;color:var(--sub);display:flex;gap:8px;align-items:flex-start}
.photo-pick{border:1.5px dashed #7FA6DA;border-radius:12px;padding:16px;text-align:center;color:var(--sub);font-weight:700;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;background:#fff}
.photo-pick input{display:none}
.preview{position:relative}
.preview img,.det-photo{width:100%;border-radius:12px;display:block;max-height:280px;object-fit:cover}
.preview button{position:absolute;top:8px;right:8px;border:0;border-radius:16px;background:rgba(14,26,43,.75);color:#fff;padding:6px 12px;font-size:13px;font-weight:700}

/* detalhe */
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.st-aguardando{background:var(--pending-tint);color:var(--pending-ink)}
.st-confirmada{background:var(--grave-tint);color:var(--grave-ink)}
.st-resolvida{background:var(--ok-tint);color:var(--ok-ink)}
.st-expirada{background:var(--map);color:var(--sub)}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted);font-weight:500}
.meta b{color:var(--ink)}
.progress{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--sub);font-weight:700}
.progress i{width:30px;height:8px;border-radius:4px;background:var(--line)}
.progress i.on{background:var(--pending)}
.progress.full i.on{background:var(--grave)}
.ligar{border:1px solid #F5C9A8;background:#FFF6EF;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}
.ligar.urg{border-color:#F1A7A7;background:#FFF1F1}
.ligar p{margin:0;font-size:13.5px;line-height:1.4;color:var(--ink)}
.ligar .hint a{color:var(--ink);font-weight:800}
.tels{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tel{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:8px 10px;color:var(--ink);text-decoration:none;min-height:48px}
.tel svg{flex:none;color:#1E7A3C}
.tel span{display:flex;flex-direction:column;min-width:0}
.tel small{font-size:11px;color:var(--muted);font-weight:700;line-height:1.2}
.tel b{font-size:15px;font-weight:800}
.resp{background:var(--canvas);border-radius:12px;padding:10px 12px;font-size:14px;font-weight:700}
.resp b{display:block;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.desc{margin:0;white-space:pre-wrap;color:var(--sub)}
.small-link{background:none;border:0;color:var(--brand-dark);font-weight:700;font-size:13px;padding:6px 0;align-self:flex-start}

/* lista */
.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.tab{flex:none;height:40px;border:1px solid var(--border);background:#fff;border-radius:20px;padding:0 14px;font-size:13.5px;font-weight:600;white-space:nowrap;color:var(--ink)}
.tab[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:700}
.item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:14px;text-align:left;padding:12px;width:100%;color:var(--ink)}
.item:hover{border-color:var(--brand-line)}
.item .ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;color:#fff}
.item div{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.item strong{display:block;font-size:15px;font-weight:700;line-height:1.3}
.item span{font-size:12.5px;color:var(--muted);font-weight:500}
#listaItens{display:flex;flex-direction:column;gap:8px}
.empty{border:1px dashed var(--border);border-radius:14px;background:#fff;padding:24px 16px;text-align:center;color:var(--muted);font-size:14px}

/* atualizações (comentários curtos) */
.upd-sec{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.upd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.upd-list li{display:flex;gap:12px}
.upd-rail{display:flex;flex-direction:column;align-items:center;width:32px;flex:none}
.av{width:32px;height:32px;border-radius:16px;background:var(--map);color:var(--sub);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex:none}
.av.autor{background:var(--brand-tint);color:var(--brand-dark)}
.upd-line{flex:1;width:2px;background:var(--line);margin-top:4px}
.upd-list li:last-child .upd-line{display:none}
.upd-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding-bottom:16px}
.upd-head{font-size:13px;color:var(--muted);font-weight:500}
.upd-head b{color:var(--ink);font-weight:700}
.upd-txt{margin:0;font-size:14.5px;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
.sit{display:inline-flex;align-items:center;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;margin-left:4px}
.sit-continua{background:var(--pending-tint);color:var(--pending-ink)}
.sit-piorou{background:var(--grave-tint);color:var(--grave-ink)}
.sit-melhorou{background:var(--ok-tint);color:var(--ok-ink)}
.sit-registro{background:var(--brand-tint);color:var(--brand-dark)}
.upd-photo{width:120px;height:90px;object-fit:cover;border-radius:10px;display:block;cursor:zoom-in;background:var(--line)}
.upd-when{display:block;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:1px}
.foto-data{font-size:12px;color:var(--muted);margin:4px 0 0;font-variant-numeric:tabular-nums}
.foto-removida{font-size:13px;font-weight:700;color:var(--sub);background:var(--line);border-radius:10px;padding:8px 12px;margin:4px 0 0;align-self:flex-start}
.foto-removida small{font-weight:500}
.bad.equipe{background:var(--brand);color:#fff}
.selo-eq{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--brand);color:#fff;font-size:11px;font-weight:800;vertical-align:1px}
.ronda-info{margin:0;font-size:13px;color:var(--sub)}
.nome-regra{margin:-4px 0 0;font-size:12.5px;color:var(--muted)}
.nome-regra.trava{color:var(--sub);font-weight:600}
.nome-erro{margin:-4px 0 0;font-size:13px;color:#B42318;font-weight:700}
.denfoto .chips{margin-top:6px}
.datas{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:13px;color:var(--sub);background:var(--line);border-radius:10px;padding:8px 12px;margin:0}
.datas dt{font-weight:600}.datas dd{margin:0;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.datas .nota{grid-column:1/-1;font-size:11.5px;color:var(--muted);font-weight:500}
.upd-form{display:flex;flex-direction:column;gap:10px;background:var(--canvas);border-radius:14px;padding:12px}
.upd-form textarea{min-height:64px;background:#fff}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chipsit{height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--border);background:#fff;font-size:13px;font-weight:700;color:var(--ink)}
.chipsit[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.upd-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.upd-actions .btn{flex:1 1 150px}
.addph{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px dashed #7FA6DA;border-radius:12px;background:#fff;font-weight:700;font-size:13.5px;color:var(--sub);cursor:pointer}
.addph input{display:none}
.mini{position:relative;width:64px;height:48px;flex:none}
.mini img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.mini button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:11px;border:0;background:var(--ink);color:#fff;font-size:13px;line-height:1}
.count-upd{font-size:12px;color:var(--muted);font-weight:700}
/* fotos: miniatura na lista e no histórico, ampliar ao tocar */
.det-photo{cursor:zoom-in}
.occ-thumb{width:48px;height:48px;border-radius:10px;object-fit:cover;flex:none;background:var(--line)}
.tl-thumb{width:44px;height:34px;border-radius:6px;object-fit:cover;flex:none;margin-left:auto;background:var(--line)}
.lb{position:fixed;inset:0;z-index:3000;background:rgba(8,12,20,.94);display:flex;align-items:center;justify-content:center;padding:56px 12px}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.lb .x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);right:max(12px,env(safe-area-inset-right,0px));background:rgba(255,255,255,.95);color:var(--ink)}
.lb .cap{position:absolute;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);color:#fff;text-align:center;font-size:13px;font-weight:600}

/* janela do nome */
.modal{position:fixed;inset:0;z-index:900;background:rgba(14,26,43,.45);display:grid;place-items:center;padding:16px;overflow-y:auto}.modal > .card{max-height:calc(100dvh - 32px);overflow-y:auto}
.card{background:#fff;border-radius:18px;padding:24px;width:min(400px,100%);display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 50px rgba(14,26,43,.25)}
.card .logo{width:44px;height:44px;border-radius:14px}
.card h1{font-size:24px;font-weight:800;line-height:1.2}
.card.boas{gap:12px;padding:20px}
.boas-top{display:flex;gap:12px;align-items:center}
.boas-top h1{font-size:24px}
.boas-top .slogan{margin:2px 0 0 !important}
.feats{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.feats h2{font-size:15px;font-weight:800;margin:0;color:var(--ink)}
.feats ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.feats li{display:flex;gap:10px;align-items:flex-start}
.feats li svg,.semcad svg{flex:none;color:#1E7A3C;margin-top:1px}
.feats li div{display:flex;flex-direction:column;gap:1px;min-width:0}
.feats li b{font-size:14px;font-weight:800;color:var(--ink)}
.feats li span{font-size:13px;color:var(--sub);line-height:1.35}
.semcad{display:flex;gap:10px;align-items:flex-start;font-size:13px !important;font-weight:700;color:var(--ink) !important;margin:2px 0 0 !important}
.frase{background:var(--canvas);border-radius:12px;padding:10px 12px;text-align:center;font-size:13.5px;color:var(--sub) !important;font-style:italic}
@media (max-height:600px){.feats li span{display:none}.feats ul{gap:7px}}
.card p{margin:0;color:var(--sub)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(150px + env(safe-area-inset-bottom,0px));z-index:950;background:var(--ink);color:#fff;padding:12px 16px;border-radius:12px;font-weight:600;font-size:14px;max-width:min(440px,calc(100% - 32px));box-shadow:0 8px 24px rgba(14,26,43,.3)}
.leaflet-container{font-family:var(--font);background:var(--map)}
.leaflet-tooltip{font-family:var(--font);font-weight:700}
/* registro */
.step{display:flex;flex-direction:column;gap:10px}
.step > b{font-size:12px;font-weight:800;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.kind{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kind button{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--border);text-align:left;color:var(--ink)}
.kind button b{font-size:14.5px;font-weight:800}
.kind button span{font-size:12px;color:var(--muted);font-weight:500;line-height:1.35}
.kind button[aria-pressed=true]{border:2px solid var(--ink);padding:11px}
.kind .ki{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff}
.near{background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}
.near > b{color:var(--brand-dark);font-weight:800}
.near .sub2{font-size:13px;color:var(--sub);margin-top:-4px}
.near ul{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--brand-line);border-radius:10px}
.near li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #E1ECFA;flex-wrap:wrap}
.near li:last-child{border-bottom:0}
.near li .grow{flex:1;min-width:150px}
.near li strong{display:block;font-size:14px}
.near li small{font-size:12px;color:var(--muted)}
.btn.sm{min-height:38px;padding:0 12px;font-size:13px;border-radius:10px}
.bad{display:inline-flex;align-items:center;border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.bad.brand{background:var(--brand-tint);color:var(--brand-dark)}
.bad.neutral{background:var(--map);color:var(--sub)}
.bad.att{background:var(--att-tint);color:var(--att-ink)}
.bad.grave{background:var(--grave-tint);color:var(--grave-ink)}
.addr-in{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.mut{color:var(--muted);font-weight:600}

/* recorrentes: cartões */
.rcard{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;width:100%;text-align:left;color:var(--ink)}
.rcard:hover{border-color:var(--brand-line)}
.rcard .n{flex:none;width:44px;height:44px;border-radius:12px;background:var(--brand);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 16px/1 var(--font)}
.rcard .n small{font-size:9.5px;font-weight:700;opacity:.85;margin-top:2px}
.rcard .n.pend{background:var(--map);color:var(--sub)}
.rcard div{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.rcard strong{font-size:15px;font-weight:700;line-height:1.3}
.rcard span{font-size:12.5px;color:var(--muted);font-weight:500}
.rcard .row{gap:6px}

/* histórico */
.rank{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px}
.rank button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:6px;border-radius:8px}
.rank button:focus-visible{outline:3px solid var(--brand)}
.rank .pos{width:22px;font-size:12px;font-weight:800;color:var(--muted)}
.rank .gr{flex:1;min-width:0}
.rank .gr span{display:flex;justify-content:space-between;gap:8px;font-size:14px;font-weight:700}
.rank .bar{display:block;height:6px;border-radius:3px;background:var(--line);margin-top:4px}
.rank .bar i{display:block;height:6px;border-radius:3px;background:var(--brand)}
.crit{display:flex;gap:10px;align-items:stretch;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;text-align:left;width:100%;color:var(--ink)}
.crit .lv{width:8px;border-radius:4px;flex:none}
.crit .gr{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.crit strong{font-size:14.5px}
.crit small{font-size:12.5px;color:var(--muted)}
.crit .tag{font-size:12px;font-weight:800;align-self:center}
details.met{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
details.met summary{cursor:pointer;font-weight:700}
details.met p{margin:8px 0 0;font-size:13.5px;color:var(--sub)}

/* compartilhar */
.share-img{width:100%;max-width:300px;align-self:center;border-radius:14px;box-shadow:0 10px 30px rgba(14,26,43,.25);display:block}
.linkbox{display:flex;gap:8px}
.linkbox input{flex:1;min-width:0;min-height:44px;border:1px solid var(--border);border-radius:10px;padding:0 10px;font-size:14px;background:var(--canvas)}
.ok-msg{font-size:13px;font-weight:700;color:var(--ok-ink)}
.denok{font-size:13px;font-weight:700;color:var(--grave-ink);background:var(--grave-tint);border-radius:10px;padding:8px 12px;align-self:flex-start}

.legend .dot{display:inline-block}
.st-obra{background:#EFE7E3;color:#4E342E}
.obra-box{display:flex;gap:10px;align-items:flex-start;background:#EFE7E3;color:#4E342E;border-radius:12px;padding:12px;font-size:14px;font-weight:600}
.obra-box b{font-weight:800}
.warn-cens{margin:-4px 0 0;background:var(--att-tint);color:var(--att-ink);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600}
.tab.sm{height:34px;font-size:12.5px}
.sheet-body > *{flex-shrink:0} /* listas longas não espremem as abas do topo */
#listaItens > *{flex-shrink:0}
.since-box{display:flex;align-items:center;gap:12px;border-radius:14px;padding:12px 14px;background:var(--grave-tint);color:var(--grave-ink)}
.since-box > span{display:flex;flex-direction:column}
.since-box .big{font-size:24px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.since-box small{font-size:12.5px;font-weight:700;opacity:.85}
.since-box.att{background:var(--pending-tint);color:var(--pending-ink)}
.since-box.obra{background:#EFE7E3;color:#4E342E}
.since-box.ok{background:var(--ok-tint);color:var(--ok-ink)}
.catchip{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;background:var(--map);color:var(--sub)}
.cat{position:relative}
.cat .ordem{margin-left:auto;font-size:10.5px;font-weight:800;color:var(--brand-dark);background:#fff;border-radius:6px;padding:1px 6px}
.bm-pill .bm-pill-icon + .bm-pill-icon{margin-left:-4px}
.chip.inst{background:var(--brand);color:#fff;border-color:var(--brand)}
.passos{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:15px}
select{width:100%;min-height:48px;border:1px solid var(--border);background:#fff;border-radius:12px;padding:0 10px;font-size:16px;font-weight:600;color:var(--ink)}
.link-sug{all:unset;cursor:pointer;align-self:flex-start;font-size:13.5px;font-weight:700;color:var(--brand);text-decoration:underline;text-underline-offset:3px;margin-top:-4px}
.link-sug:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}
.sug{display:flex;flex-direction:column;gap:10px;background:var(--canvas);border-radius:14px;padding:12px}
.sug-row{display:flex;gap:8px;flex-wrap:wrap}
.ok-sug{margin:0;font-size:13px;font-weight:700;color:#1E7A3C}
.card .slogan{margin:-8px 0 0;color:var(--brand-dark);font-weight:700}
.assinatura{margin:4px 0 0;text-align:center;font-size:12px;color:var(--muted)}
