:root {
  --couleur-fond: #030303;
  --couleur-panel: #16181a;
  --couleur-panel-clair: #1e2123;
  --couleur-texte: #e6e6e6;
  --couleur-texte-secondaire: #9aa0a3;
  --couleur-bordure: #2c2f31;
  --couleur-accent: #4a8a94;
  --couleur-accent-clair: #7fc3cf;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Trebuchet MS", "Segoe UI", Helvetica, Arial, sans-serif;
  color: var(--couleur-texte);
  background-color: var(--couleur-fond);
  /* Halos diagonaux bleu/teal en haut de page, dans l'esprit du fond
     du site trains-en-vadrouille.com */
  background-image:
    radial-gradient(ellipse 1000px 450px at 12% -6%, rgba(100, 165, 175, 0.45), transparent 65%),
    radial-gradient(ellipse 750px 380px at 42% -4%, rgba(130, 200, 185, 0.36), transparent 62%),
    radial-gradient(ellipse 800px 400px at 72% -2%, rgba(175, 185, 190, 0.30), transparent 64%),
    radial-gradient(ellipse 650px 480px at 97% 8%, rgba(80, 155, 175, 0.42), transparent 62%);
  background-repeat: no-repeat;
  background-attachment: fixed;
}

a { color: var(--couleur-accent-clair); }
a:hover { color: #fff; }

#page { max-width: 1400px; margin: 0 auto; }

#site-header {
  background: rgba(8, 9, 10, 0.75);
  color: #fff;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
#site-header h1 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

.flash {
  padding: 0.75rem 1.5rem;
  font-weight: 600;
}
.flash-success { background: #163a1e; color: #a6e6b3; border-bottom: 1px solid #2a5c37; }
.flash-error { background: #3a1616; color: #e6a6a6; border-bottom: 1px solid #5c2a2a; }

#layout {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1rem;
}

#map {
  flex: 1 1 640px;
  min-height: 600px;
  border: 1px solid var(--couleur-bordure);
  border-radius: 6px;
}

#panneau {
  flex: 0 1 340px;
  background: rgba(22, 24, 26, 0.92);
  border: 1px solid var(--couleur-bordure);
  border-radius: 6px;
  padding: 1rem;
  max-height: 700px;
  overflow-y: auto;
  backdrop-filter: blur(2px);
}

#onglets {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 1rem;
}
#onglets button {
  flex: 1 1 auto;
  padding: 0.5rem;
  border: 1px solid var(--couleur-bordure);
  background: var(--couleur-panel-clair);
  color: var(--couleur-texte);
  cursor: pointer;
  border-radius: 4px;
  font-size: 0.85rem;
}
#onglets button.actif {
  background: var(--couleur-accent);
  color: #fff;
  border-color: var(--couleur-accent);
}

.panneau-contenu label {
  display: block;
  margin-top: 0.75rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--couleur-texte);
}
.panneau-contenu input[type="text"],
.panneau-contenu input[type="file"],
.panneau-contenu select,
.panneau-contenu textarea {
  width: 100%;
  padding: 0.4rem;
  margin-top: 0.25rem;
  border: 1px solid var(--couleur-bordure);
  border-radius: 4px;
  font-family: inherit;
  background: var(--couleur-panel-clair);
  color: var(--couleur-texte);
}
.panneau-contenu input[type="text"]::placeholder,
.panneau-contenu textarea::placeholder { color: var(--couleur-texte-secondaire); }
.panneau-contenu button[type="submit"] {
  margin-top: 1rem;
  padding: 0.6rem 1rem;
  background: var(--couleur-accent);
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 600;
}
.panneau-contenu button[type="submit"]:hover { background: var(--couleur-accent-clair); }
.aide { font-size: 0.8rem; color: var(--couleur-texte-secondaire); }

/* Honeypot anti-bot : invisible pour un humain, mais présent dans le
   DOM (contrairement à display:none, que certains bots savent éviter). */
.antibot {
  position: absolute;
  left: -9999px;
  top: -9999px;
  height: 0;
  overflow: hidden;
}

.mention-vie-privee {
  font-size: 0.75rem;
  color: var(--couleur-texte-secondaire);
  margin-top: 0.75rem;
  border-top: 1px solid var(--couleur-bordure);
  padding-top: 0.5rem;
}

.info {
  display: inline-block;
  cursor: help;
  color: var(--couleur-accent-clair);
  font-weight: 700;
  border: 1px solid var(--couleur-accent-clair);
  border-radius: 50%;
  width: 1.1em;
  height: 1.1em;
  line-height: 1em;
  text-align: center;
  font-size: 0.75rem;
}

.recherche-inline { display: flex; gap: 0.4rem; margin-top: 0.25rem; }
.recherche-inline input { flex: 1; margin-top: 0; }
.recherche-inline button {
  padding: 0.4rem 0.8rem;
  background: var(--couleur-accent);
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.recherche-inline button:hover { background: var(--couleur-accent-clair); }

#legende { list-style: none; padding: 0; margin: 0.5rem 0; }
#legende li { display: flex; align-items: center; gap: 0.4rem; padding: 0.15rem 0; font-size: 0.9rem; }
#legende img { width: 12px; }

#ligne_resultats {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  max-height: 150px;
  overflow-y: auto;
  border: 1px solid var(--couleur-bordure);
  border-radius: 4px;
  background: var(--couleur-panel-clair);
}
#ligne_resultats:empty { border: none; }
#ligne_resultats li {
  padding: 0.35rem 0.5rem;
  cursor: pointer;
  font-size: 0.85rem;
}
#ligne_resultats li:hover { background: rgba(74, 138, 148, 0.25); }

#recents ul, #exporter ul { padding-left: 1.1rem; }
#recents .discret { color: var(--couleur-texte-secondaire); font-size: 0.8rem; }

.popup-point { color: #1a1a1a; }
.popup-point h3 { margin: 0 0 0.4rem; font-size: 1rem; }
.popup-point img { max-width: 200px; border-radius: 4px; }
.popup-point p { margin: 0.3rem 0; font-size: 0.85rem; }
.popup-alerte {
  background: #fff3cd;
  color: #7a5b00;
  padding: 0.4rem 0.5rem;
  border-radius: 4px;
  border: 1px solid #e0c46c;
  font-weight: 600;
}

#site-footer {
  text-align: center;
  padding: 1.25rem;
  font-size: 0.8rem;
  color: var(--couleur-texte-secondaire);
}
#site-footer a { color: var(--couleur-accent-clair); }

@media (max-width: 900px) {
  #map { min-height: 400px; }
  #panneau { flex-basis: 100%; max-height: none; }
}
