/* Radar de Feiras & Festas — Tramas dark. Layout: rail de filtros | conteúdo;
   no mapa vira rail | mapa | detalhe. Mobile: drawer de filtros + bottom-sheet. */
:root{
  --paper:#0b0c10; --paper-2:#101218; --card:#14161d;
  --ink:#eceef2; --ink-soft:#a8afbd; --ink-faint:#6b7280;
  --line:rgba(255,255,255,.09); --line-strong:rgba(255,255,255,.17);
  --accent:#8fe8ff; --accent-ink:#8fe8ff;
  --t-agro:#6ab04c; --t-gastro:#e08a2e; --t-cultura:#c85a9c;
  --t-religioso:#5f86d8; --t-rodeio:#d96a45; --t-esporte:#2bb8a0; --t-negocios:#8fa0b8;
  --shadow:0 1px 2px rgba(0,0,0,.45),0 10px 26px rgba(0,0,0,.32);
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --mono:'JetBrains Mono','SF Mono',ui-monospace,monospace;
  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --rail:236px; --detail:342px;
}
body{background:var(--paper)}
.evwrap{max-width:1320px;margin:0 auto;padding:0 22px;font-family:var(--sans);color:var(--ink)}
.evwrap *,.ev-shell *{box-sizing:border-box}
.serif{font-family:var(--serif);font-style:italic;font-weight:400}

/* header */
header.mast{padding:30px 0 20px;border-bottom:1px solid var(--line)}
.kicker{font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}
.mast h1{font-family:var(--serif);font-style:italic;font-size:clamp(32px,5vw,54px);line-height:1.02;margin:10px 0 8px;font-weight:400;letter-spacing:-.01em;text-wrap:balance;color:var(--ink)}
.lede{max-width:66ch;color:var(--ink-soft);font-size:16px;line-height:1.6;margin:0}
.lede b{color:var(--ink);font-weight:600}
.stats{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:20px;align-items:baseline}
.stat{display:flex;align-items:baseline;gap:8px}
.stat .n{font-size:25px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink)}
.stat .l{font-family:var(--mono);font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}

/* shell: rail | main */
.ev-shell{max-width:1320px;margin:16px auto 0;padding:0 22px;display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:28px;align-items:start;font-family:var(--sans);color:var(--ink)}

/* rail de filtros */
.ev-rail{position:sticky;top:72px;max-height:calc(100vh - 92px);overflow:auto;display:flex;flex-direction:column;gap:18px;padding:2px 2px 20px}
.ev-rail-head{display:none;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.ev-rail-x{background:none;border:none;color:var(--ink-soft);font-size:24px;line-height:1;cursor:pointer;padding:0 4px}
.ev-fgroup{display:flex;flex-wrap:wrap;gap:6px}
.ev-fgroup .cap{flex-basis:100%;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin:0 0 3px}
.reset{align-self:flex-start;font-family:var(--mono);font-size:12px;color:var(--accent-ink);background:none;border:none;cursor:pointer;text-decoration:underline;padding:5px 0}

/* mainbar (topo do conteúdo): toggle + busca + count */
.ev-main{min-width:0}
.ev-mainbar{position:sticky;top:72px;z-index:20;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 0;background:rgba(11,12,16,.92);backdrop-filter:saturate(1.3) blur(9px);border-bottom:1px solid var(--line);margin-bottom:16px}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden;background:var(--card)}
.seg button{font-size:13.5px;font-weight:600;padding:8px 16px;border:none;background:none;color:var(--ink-soft);cursor:pointer;font-family:var(--sans)}
.seg button[aria-selected="true"]{background:var(--accent);color:#08222b}
input.search{flex:1;min-width:180px;font-size:15px;font-family:var(--sans);padding:9px 13px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card);color:var(--ink)}
input.search::placeholder{color:var(--ink-faint)}
input.search:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.ev-filtros-btn{display:none;align-items:center;gap:7px;font-size:13.5px;font-weight:600;font-family:var(--sans);padding:8px 14px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card);color:var(--ink);cursor:pointer}
.ev-fcount{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--accent);color:#08222b;border-radius:999px;padding:0 6px;min-width:17px;text-align:center}
.count{font-family:var(--mono);font-size:12.5px;color:var(--ink-soft);margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}

/* chips */
.chip{font-size:13px;padding:5px 11px;border:1px solid var(--line-strong);border-radius:999px;background:var(--card);color:var(--ink-soft);cursor:pointer;user-select:none;white-space:nowrap;transition:all .12s;font-family:var(--sans)}
.chip:hover{border-color:var(--ink-faint);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--accent);color:#08222b;border-color:var(--accent)}
.chip.t[aria-pressed="true"],.chip.vd[aria-pressed="true"]{background:var(--c);border-color:var(--c);color:#0b0c10}
.chip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:middle}
.chip.t[aria-pressed="true"] .dot,.chip.vd[aria-pressed="true"] .dot{background:rgba(11,12,16,.85)}

/* list */
.month{margin-top:24px}
.month:first-child{margin-top:0}
.month-hd{display:flex;align-items:baseline;gap:12px;padding:10px 0 6px;border-bottom:2px solid var(--accent);margin-bottom:16px;position:sticky;top:126px;background:var(--paper);z-index:5}
.month-hd h2{font-family:var(--serif);font-style:italic;font-size:25px;font-weight:400;margin:0;letter-spacing:-.01em;text-transform:capitalize;color:var(--ink)}
.month-hd .mc{font-family:var(--mono);font-size:12.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:14px}

.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 16px 14px 18px;box-shadow:var(--shadow);overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c)}
.card.dz{border-color:color-mix(in srgb,var(--c) 40%,var(--line))}
.card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-right:56px}
.ev{font-size:16.5px;font-weight:600;line-height:1.2;letter-spacing:-.005em;margin:0 0 3px;text-wrap:balance;color:var(--ink)}
.star{color:#e8c25a;font-size:13px;margin-left:3px}
.loc{font-size:13px;color:var(--ink-soft);font-weight:500}
.loc .uf{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:#0b0c10;background:var(--c);padding:1px 6px;border-radius:5px;margin-left:5px;vertical-align:1px}
.date{font-size:14px;font-weight:600;color:var(--ink);margin-top:9px;font-variant-numeric:tabular-nums}
.tema{font-size:13px;color:var(--ink-soft);line-height:1.45;margin:7px 0 0}
.meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:11px;padding-top:10px;border-top:1px dashed var(--line-strong);font-size:12.5px;color:var(--ink-soft)}
.meta .k,.collabs .k{font-family:var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700;display:block;margin-bottom:1px}
.meta div{min-width:0}
.meta .ig{color:var(--accent-ink);font-weight:600}
.tag{position:absolute;top:13px;right:14px;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent);padding:2px 7px;border-radius:6px;white-space:nowrap}
.flag{display:inline-block;width:7px;height:7px;border-radius:50%;margin-left:6px;vertical-align:middle}
.flag.media{background:#d99a2b}.flag.baixa{background:#c0512a}
.collabs{margin-top:9px}.collabs .k{margin-bottom:4px}
.cbwrap{display:flex;flex-wrap:wrap;gap:4px}
.cb{font-family:var(--mono);font-size:11px;color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);border-radius:6px;padding:1px 6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.vbadge{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.02em;padding:1px 6px;border-radius:5px;margin-left:6px;vertical-align:1px;white-space:nowrap}
.vbadge.confirmado_2026{background:rgba(79,174,79,.16);color:#7bd47b}
.vbadge.provavel{background:rgba(208,166,58,.16);color:#e0c069}
.vbadge.nao_encontrado{background:rgba(154,148,136,.16);color:#b7b1a5}
.vbadge.cancelado_2026{background:rgba(217,106,69,.16);color:#eb9174}
.vbadge.cartaz_2026{background:rgba(58,160,189,.16);color:#7fd0e6}
.vlinks{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line-strong)}
.vlinks a{font-family:var(--mono);font-size:12px;color:var(--accent-ink);font-weight:600;text-decoration:none}
.vlinks a:hover{text-decoration:underline}
.empty{padding:40px 0;text-align:center;color:var(--ink-faint);font-size:15px;display:none}

/* map view: mapa | detalhe */
#mapView{display:grid;grid-template-columns:minmax(0,1fr) var(--detail);gap:18px;align-items:start}
.mapbox{position:relative;background:linear-gradient(180deg,#0e1017,#0b0c10);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
svg.br{display:block;width:100%;height:auto;touch-action:none;cursor:grab}
svg.br:active{cursor:grabbing}
.ev-zoom{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px;z-index:6}
.ev-zoom button{width:34px;height:34px;border:1px solid var(--line-strong);background:rgba(18,20,27,.9);color:var(--ink);font-size:19px;line-height:1;border-radius:8px;cursor:pointer;font-family:var(--sans);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:border-color .12s,color .12s}
.ev-zoom button:hover{border-color:var(--accent);color:var(--accent)}
.uf-shape{fill:#1b1e27;stroke:#2b2f3a;stroke-width:.06;stroke-linejoin:round}
.uf-lbl{fill:#4b5261;font-size:.55px;font-weight:700;letter-spacing:.02px;text-anchor:middle;pointer-events:none;font-family:var(--sans)}
.pin{cursor:pointer;transition:transform .12s}
.pin path{stroke:#0b0c10;stroke-width:.5;paint-order:stroke}
.pin circle.core{fill:#0b0c10}
.pin text.cnt{fill:#fff;font-size:7px;font-weight:800;text-anchor:middle;font-family:var(--sans);pointer-events:none}
.pin:hover{filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.pin.sel path{stroke:var(--accent);stroke-width:1.1}
.maplegend{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;border-top:1px solid var(--line);background:rgba(20,22,29,.6);font-family:var(--mono);font-size:11px;color:var(--ink-soft)}
.maplegend span{display:inline-flex;align-items:center;gap:5px}
.maplegend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.mappanel{position:sticky;top:64px;max-height:calc(100vh - 84px);overflow:auto}
.mappanel .ph{color:var(--ink-faint);font-size:14px;padding:24px 16px;text-align:center;border:1px dashed var(--line-strong);border-radius:12px;line-height:1.5}
.mappanel h3{margin:0 0 3px;font-size:19px;color:var(--ink)}
.mappanel .pcity{font-family:var(--mono);font-size:11.5px;color:var(--ink-soft);margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.mappanel .grid{grid-template-columns:1fr}
.ev-sheet-x{display:none;position:absolute;top:8px;right:10px;background:none;border:none;color:var(--ink-soft);font-size:26px;line-height:1;cursor:pointer;z-index:2}
.ev-sheet-grip{display:none}

/* review + footer */
.review{margin-top:44px;padding:22px;background:var(--paper-2);border:1px solid var(--line);border-radius:12px}
.review h3{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--ink)}
.review p{margin:0 0 12px;font-size:13.5px;color:var(--ink-soft);max-width:78ch;line-height:1.6}
.review ul{margin:0;padding-left:18px;font-size:13px;color:var(--ink-soft)}
.review li{margin-bottom:5px}.review b{color:var(--ink)}
.evfoot{padding:20px 0 10px;font-family:var(--mono);font-size:12px;color:var(--ink-faint);line-height:1.6}

/* ---- MOBILE: drawer de filtros + bottom-sheet de detalhe ---- */
@media (max-width:920px){
  .ev-shell{grid-template-columns:1fr;padding:0 18px;gap:0}
  .evwrap{padding:0 18px}
  .ev-filtros-btn{display:inline-flex}
  .ev-mainbar .search{order:5;flex-basis:100%;min-width:0}
  .month-hd{top:168px}
  .count{display:none}
  /* rail vira drawer */
  .ev-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:65}
  .ev-rail{position:fixed;top:0;left:0;bottom:0;width:min(84vw,330px);max-height:none;background:var(--paper-2);border-right:1px solid var(--line-strong);box-shadow:6px 0 30px rgba(0,0,0,.5);transform:translateX(-100%);transition:transform .25s ease;z-index:70;padding:18px;gap:20px}
  .ev-rail.open{transform:none}
  .ev-rail-head{display:flex}
  /* mapa full width; detalhe vira bottom-sheet */
  #mapView{grid-template-columns:1fr}
  .mappanel{position:fixed;left:0;right:0;bottom:0;max-height:80vh;max-width:none;overflow:auto;background:var(--paper-2);border-top:1px solid var(--line-strong);border-radius:16px 16px 0 0;box-shadow:0 -8px 34px rgba(0,0,0,.55);padding:18px 16px 26px;transform:translateY(103%);transition:transform .28s ease;z-index:68}
  .mappanel.open{transform:none}
  .mappanel .ph{display:none}
  .ev-sheet-x{display:block}
  .ev-sheet-grip{display:block;width:38px;height:4px;border-radius:3px;background:var(--line-strong);margin:0 auto 12px}
}
@media (max-width:560px){.stat .n{font-size:21px}.grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
