/* Neves Fácil Core - CSS moderno e vibrante */
.nf-app{
  --nf-text:#1f2937;
  --nf-muted:#6b7280;
  --nf-line:#e5e7eb;
  --nf-primary:#7c3aed;
  --nf-primary2:#8b5cf6;
  --nf-radius:16px;
  color:var(--nf-text);
  font-family: 'Plus Jakarta Sans', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
.nf-app *{box-sizing:border-box}
.nf-card{
  background: #fff;
  border:1px solid var(--nf-line);
  border-radius: var(--nf-radius);
  box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.nf-card--pad{padding:20px}
.nf-card--tight{padding:14px}
.nf-grid{display:grid; gap:14px}
.nf-grid--3{grid-template-columns:1fr; }
@media(min-width:900px){ .nf-grid--3{grid-template-columns:1.4fr 1fr 1fr; align-items:end;} }
.nf-grid--cards{grid-template-columns:1fr; }
@media(min-width:720px){ .nf-grid--cards{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media(min-width:1100px){ .nf-grid--cards{grid-template-columns:repeat(3, minmax(0,1fr));} }
.nf-field{display:flex; flex-direction:column; gap:8px}
.nf-label{font-size:13px; color:var(--nf-primary); font-weight:600; text-transform:uppercase; letter-spacing:.5px}
.nf-input,.nf-select{
  width:100%;
  padding:14px 16px;
  border-radius: 12px;
  border:2px solid var(--nf-line);
  background: #f9fafb;
  color: var(--nf-text);
  font-size:15px;
  outline: none;
  transition: all .2s ease;
}
.nf-input::placeholder{color:#9ca3af}
.nf-input:focus,.nf-select:focus{border-color: var(--nf-primary); box-shadow:0 0 0 4px rgba(124,58,237,.15); background:#fff}
.nf-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 20px;
  border-radius:12px;
  border:none;
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);
  color:#fff;
  font-weight:700;
  font-size:15px;
  text-decoration:none;
  cursor:pointer;
  min-height:48px;
  transition: all .2s ease;
  box-shadow: 0 4px 14px rgba(124,58,237,.35);
}
.nf-btn:hover{transform:translateY(-1px); box-shadow: 0 6px 20px rgba(124,58,237,.4)}
.nf-btn:active{transform:scale(.98)}
.nf-btn--ghost{
  background: #f3f4f6;
  border:2px solid var(--nf-line);
  color:var(--nf-text);
  box-shadow:none;
}
.nf-btn--ghost:hover{background:#e5e7eb; box-shadow:none; transform:none}
.nf-link{color:var(--nf-primary); text-decoration:none; font-weight:600; transition:color .2s}
.nf-link:hover{color:#6d28d9; text-decoration:underline}
.nf-mt{margin-top:16px}
.nf-mt-sm{margin-top:12px}
.nf-title{font-size:18px; margin:12px 0 6px; line-height:1.3; font-weight:700}
.nf-title__link{color:var(--nf-text); text-decoration:none; transition:color .2s}
.nf-title__link:hover{color:var(--nf-primary)}
.nf-title--sm{font-size:16px; margin:0 0 6px}
.nf-meta{margin:0 0 10px; font-size:13px; color:var(--nf-muted)}
.nf-small{margin:0; font-size:13px; color:var(--nf-muted)}
.nf-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.nf-thumb{
  width:100%;
  border-radius: 14px;
  overflow:hidden;
  border:1px solid var(--nf-line);
  background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
  aspect-ratio: 16/9;
}
.nf-thumb__img{width:100%; height:100%; object-fit:cover; display:block}
.nf-thumb--placeholder{display:flex; align-items:center; justify-content:center}
.nf-thumb__ph{
  width:56px; height:56px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);
  border: none;
  font-weight:800;
  color:#fff;
  font-size:18px;
}
.nf-section-head{display:flex; align-items:end; justify-content:space-between; margin:12px 0}
.nf-h2{margin:0; font-size:20px; font-weight:700; letter-spacing:.2px}
.nf-map{
  border-radius: var(--nf-radius);
  overflow:hidden;
  border:1px solid var(--nf-line);
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}
.nf-app .leaflet-popup-content-wrapper,
.nf-app .leaflet-popup-tip{
  background: #fff;
  color: var(--nf-text);
  border:1px solid var(--nf-line);
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
}
.nf-popup-title{margin:0 0 8px; font-weight:700; color:var(--nf-text)}
.nf-popup-link{display:inline-flex; padding:10px 14px; border-radius:10px; background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%); border:none; color: #fff; text-decoration:none; font-weight:600; transition:all .2s}
.nf-popup-link:hover{transform:translateY(-1px); box-shadow: 0 4px 12px rgba(124,58,237,.3)}
