:root {
  --verde: #1f6b35;
  --verde-scuro: #14502a;
  --verde-chiaro: #e3f1e6;
  --testo: #1d2a22;
  --grigio: #5d6b62;
  --bordo: #cdd9d0;
  --errore: #b3261e;
  --sfondo: #fff;
}
@media (prefers-color-scheme: dark) {
  :root { --testo: #e8efe9; --grigio: #a5b3aa; --bordo: #34443a; --sfondo: #151c17; --verde-chiaro: #1f2e24; --verde: #5fb878; --verde-scuro: #7ccd93; }
}
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--testo); background: var(--sfondo); line-height: 1.45; }
header.top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: var(--verde); color: #fff; }
header.top h1 { font-size: 1.1rem; margin: 0; }
header.top a { color: #fff; }
.btn { display: inline-block; border: 0; border-radius: 8px; padding: 10px 16px; font-size: 1rem; cursor: pointer; background: var(--verde); color: #fff; text-decoration: none; }
.btn:hover { background: var(--verde-scuro); }
.btn.sec { background: transparent; color: var(--verde); border: 1px solid var(--verde); }
.btn.danger { background: var(--errore); }
header.top .btn { background: #fff; color: var(--verde-scuro); font-weight: 600; }
#map { height: calc(100vh - 52px); width: 100%; }
body.embed #map { height: 100vh; }
.popup { max-width: 260px; }
.popup img.main { width: 100%; max-height: 170px; object-fit: cover; border-radius: 6px; }
.popup .thumbs { display: flex; gap: 4px; margin: 4px 0; }
.popup .thumbs img { width: 44px; height: 34px; object-fit: cover; border-radius: 4px; cursor: pointer; border: 2px solid transparent; }
.popup .thumbs img.on { border-color: var(--verde); }
.popup h3 { margin: 6px 0 2px; font-size: 1rem; }
.popup .meta { color: var(--grigio); font-size: .85rem; }
.leaflet-popup-content-wrapper { background: #fff; color: #1d2a22; }
.popup .meta { color: #5d6b62; }
.popup .alberi { background: #e3f1e6; color: #14502a; border-radius: 6px; padding: 4px 8px; margin-top: 6px; font-size: .9rem; }
main.form { max-width: 720px; margin: 0 auto; padding: 16px; }
main.form h2 { color: var(--verde-scuro); }
label { display: block; font-weight: 600; margin: 14px 0 4px; }
label small { font-weight: 400; color: var(--grigio); }
input[type=text], input[type=email], select, textarea { width: 100%; padding: 10px; border: 1px solid var(--bordo); border-radius: 8px; font: inherit; background: var(--sfondo); color: var(--testo); }
textarea { min-height: 90px; }
#pickmap { height: 320px; border-radius: 10px; border: 1px solid var(--bordo); margin-top: 6px; }
.row { display: flex; gap: 8px; }
.row > input { flex: 1; }
.hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.msg { padding: 12px; border-radius: 8px; margin: 12px 0; }
.msg.err { background: #fde8e6; color: var(--errore); }
.msg.ok { background: var(--verde-chiaro); color: var(--verde-scuro); }
.previews { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.previews figure { margin: 0; position: relative; }
.previews img { width: 96px; height: 72px; object-fit: cover; border-radius: 6px; }
.previews label { display: flex; gap: 4px; font-weight: 400; font-size: .8rem; margin: 2px 0 0; }
.priv { color: var(--grigio); font-size: .85rem; }
