html, body {  height: 100%;  margin: 0;  padding: 0;}#container {  display: flex;  width: 100%;  height: 100vh;}#map {  flex: 2;  height: 100%;}#sidebar {  flex: 1;  background: #f7f7f7;  border-left: 2px solid #ccc;  padding: 15px;  overflow-y: auto;}h2 {  color: #154a5d;  margin-top: 0;}input,select,textarea,button {  width: 100%;  padding: 6px;  margin-top: 4px;  border: 1px solid #ccc;  border-radius: 4px;}button {  background: #154a5d;  color: white;  font-weight: bold;  cursor: pointer;  transition: background 0.2s;}button:hover {  background: #1f6a81;}/* --- Liste des POI --- */#poiList {  list-style: none;  padding: 0;  margin: 0;}#poiList li {  display: flex;  align-items: flex-start;  position: relative;  background: white;  border: 1px solid #ddd;  margin-bottom: 6px;  border-left: 6px solid #888;  font-size: 13px;  line-height: 1.2em;  padding: 6px 45px 6px 6px;  transition: background 0.2s;  user-select: none;}#poiList li .poi-rank {  font-weight: bold;  color: #444;  background: #f2f2f2;  border-radius: 50%;  width: 22px;  height: 22px;  line-height: 22px;  text-align: center;  margin-right: 8px;  flex-shrink: 0;  border: 1px solid #ccc;}#poiList li .poi-info {  flex-grow: 1;}#poiList button.editPoi,#poiList button.delPoi {  position: absolute;  top: 6px;  right: 6px;  border: none;  background: none;  font-size: 14px;  cursor: pointer;  padding: 2px;  width: 20px;  height: 20px;  line-height: 16px;  text-align: center;  border-radius: 4px;  transition: 0.2s;}#poiList button.editPoi {  right: 28px;}#poiList button.editPoi:hover {  background: #e0f3ff;}#poiList button.delPoi:hover {  background: #ffe3e3;}/* --- Boutons principaux --- */#actionButtons {  display: flex;  justify-content: space-between;  align-items: center;  gap: 8px;  margin-bottom: 10px;}#btnAddPoi,#btnPrint {  flex: 1;  font-size: 13px;  padding: 6px 8px;  border: none;  border-radius: 6px;  cursor: pointer;  font-weight: 600;  transition: 0.2s ease;  width: max-content;}#btnAddPoi {  background-color: #007bff;}#btnAddPoi:hover {  background-color: #0069d9;}#btnPrint {  background-color: #28a745;}#btnPrint:hover {  background-color: #218838;}/* --- Modale --- */.modal {  display: none;  position: fixed;  z-index: 10;  left: 0;  top: 0;  width: 100%;  height: 100%;  background: rgba(0, 0, 0, 0.4);}.modal-content {  background: white;  width: 400px;  margin: 8% auto;  padding: 20px;  border-radius: 8px;}.modal-actions {  display: flex;  justify-content: space-between;  margin-top: 10px;}/* --- Divers --- */.flatpickr-day {  transition: all 0.2s ease-in-out;}/* --- Fiche POI (modale récapitulative) --- */#poiDetailsModal {  display: none;  position: fixed;  top: 0;  left: 0;  width: 100%;  height: 100%;  background: rgba(0, 0, 0, 0.5);  z-index: 1000;}#poiDetailsContent {  background: white;  width: 420px;  max-width: 90%;  margin: 10% auto;  padding: 20px;  border-radius: 8px;  box-shadow: 0 0 15px rgba(0,0,0,0.3);  position: relative;  font-size: 14px;}#poiDetailsContent h3 {  margin-top: 0;  color: #154a5d;}#closeDetails {  position: absolute;  top: 8px;  right: 12px;  background: none;  border: none;  font-size: 20px;  cursor: pointer;  color: #888;}#closeDetails:hover {  color: #000;}/* === LÉGENDE CARTE GOOGLE MAPS === */#poiLegend {  position: absolute;  bottom: 15px;  right: 15px;  background: rgba(255, 255, 255, 0.92);  border-radius: 10px;  padding: 10px 14px;  box-shadow: 0 2px 8px rgba(0,0,0,0.25);  font-family: Arial, sans-serif;  font-size: 13px;  color: #333;  z-index: 9999;  width: max-content;}#poiLegend div {  display: flex;  align-items: center;  margin: 4px 0;  gap: 6px;}#poiLegend img {  width: 18px;  height: 18px;}/* === LABELS AU-DESSUS DES POI === */.poi-label {  position: absolute;  white-space: pre-line;  text-align: center;  font-size: 13px;  font-weight: bold;  text-shadow:     0 0 4px white,    0 0 6px white,    1px 1px 2px rgba(0,0,0,0.2);  transition: opacity 0.3s;  opacity: 0;}.poi-label.visible {  opacity: 1;}/* === LAYOUT PRINCIPAL === */body {  margin: 0;  font-family: Arial, sans-serif;  overflow: hidden;}/* === CARTE === */#map {  position: absolute;  top: 0;  left: 0;  height: 100vh;  width: calc(100vw - 320px); /* laisse la place à la barre droite */}/* === PANNEAU DROIT === */#topBar {  position: absolute;  top: 0;  right: 0;  width: 320px;  height: 100vh;  background: #f8f9fa;  border-left: 2px solid #ccc;  padding: 15px;  overflow-y: auto;  box-shadow: -2px 0 6px rgba(0, 0, 0, 0.1);}#topBar h2 {  margin-top: 0;  text-align: center;  color: #154a5d;}#topBar button {  width: 100%;  margin-bottom: 8px;  padding: 8px;  border: none;  border-radius: 6px;  cursor: pointer;  font-weight: bold;  color: white;}#btnAddPoi { background: #28a745; }#btnShowAll { background: #6c757d; }#btnPrint { background: #007bff; }#topBar hr {  margin: 15px 0;  border: none;  border-top: 1px solid #ccc;}/* === LISTE DES POI === */#poiList {  list-style: none;  padding: 0;  margin: 0;}#poiList li {  background: white;  border: 1px solid #ddd;  border-radius: 6px;  margin-bottom: 6px;  padding: 8px;  display: flex;  justify-content: space-between;  align-items: center;  font-size: 13px;}#poiList li:hover {  background: #e9f5ff;}.poi-rank {  background: #154a5d;  color: white;  border-radius: 50%;  padding: 5px 9px;  font-size: 11px;  margin-right: 5px;}/* === LÉGENDE === */#poiLegend {  position: absolute;  bottom: 15px;  left: 15px;  background: rgba(255, 255, 255, 0.9);  border-radius: 10px;  padding: 10px 14px;  box-shadow: 0 2px 8px rgba(0,0,0,0.25);  font-size: 13px;  color: #333;  z-index: 9999;}#poiLegend div {  display: flex;  align-items: center;  margin: 4px 0;  gap: 6px;}#poiLegend img {  width: 18px;  height: 18px;}/* === LABELS SUR LA CARTE === */.poi-label {  position: absolute;  white-space: pre-line;  text-align: center;  font-size: 13px;  font-weight: bold;  text-shadow: 0 0 4px white, 0 0 6px white, 1px 1px 2px rgba(0,0,0,0.2);  opacity: 0;  transition: opacity 0.3s;}.poi-label.visible {  opacity: 1;}