/* Teljes CSS */
    #map { height: 100vh; }

    #connection-error {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background-color: #f44336;
      color: white;
      padding: 16px 24px;
      border-radius: 10px;
      font-size: 16px;
      font-family: 'Segoe UI', sans-serif;
      box-shadow: 0 4px 12px rgba(0,0,0,0.3);
      display: none;
      z-index: 1200;
    }

    .leaflet-popup-content-wrapper {
      background: white;
      border-radius: 12px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
      font-family: 'Segoe UI', 'Roboto', 'Helvetica Neue', sans-serif;
    }
    .leaflet-popup-content {
      margin: 10px;
      font-size: 15px;
      line-height: 1.4;
      color: #333;
    }
    .leaflet-popup-tip {
      background: white;
    }

    #controls {
      position: absolute;
      top: 10px;
      left: 10px;
      background: white;
      padding: 10px;
      border-radius: 10px;
      box-shadow: 0 0 10px rgba(0,0,0,0.3);
      z-index: 1000;
      font-family: sans-serif;
      max-width: 90vw;
      width: max-content;
    }

    #controls > div {
      margin-bottom: 8px;
      font-size: 14px;
    }

    #controls button {
      margin: 4px 4px 0 0;
      padding: 10px 16px;
      font-size: 14px;
      border: none;
      border-radius: 6px;
      background: linear-gradient(to bottom, #4caf50, #388e3c);
      color: white;
      font-weight: bold;
      cursor: pointer;
      box-shadow: 0 4px 6px rgba(0,0,0,0.2);
      transition: background 0.3s, box-shadow 0.2s, opacity 0.3s;
    }

    #controls button:hover:not(:disabled) {
      background: linear-gradient(to bottom, #66bb6a, #43a047);
    }
    #controls button:active:not(:disabled) {
      box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
    }
    #controls button:disabled {
      background: #ccc;
      cursor: not-allowed;
      opacity: 0.6;
      box-shadow: none;
    }
    #controls button.loading::after {
      content: "";
      display: inline-block;
      margin-left: 8px;
      width: 14px;
      height: 14px;
      border: 2px solid #fff;
      border-top-color: transparent;
      border-radius: 50%;
      animation: spin 1s linear infinite;
    }

    @keyframes spin {
      to { transform: rotate(360deg); }
    }

    @media (max-width: 600px) {
      #controls {
        top: auto;
        bottom: 10px;
        left: 50%;
        transform: translateX(-50%);
        padding: 12px;
        max-width: 95vw;
      }
      #controls button {
        width: 100%;
        margin-top: 6px;
      }
    }

    #toast-container {
      position: fixed;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 1100;
      font-family: sans-serif;
    }
    .toast {
      background: rgba(0, 0, 0, 0.8);
      color: white;
      padding: 10px 20px;
      margin-top: 10px;
      border-radius: 6px;
      animation: fadein 0.3s, fadeout 0.3s 2.7s;
      pointer-events: none;
    }
    @keyframes fadein {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @keyframes fadeout {
      from { opacity: 1; transform: translateY(0); }
      to { opacity: 0; transform: translateY(20px); }
    }
    .pulse-outline {
      animation: pulseOutline 1.5s infinite;
    }
    @keyframes pulseOutline {
      0% { stroke-opacity: 0.7; stroke-width: 3; }
      50% { stroke-opacity: 0.2; stroke-width: 6; }
      100% { stroke-opacity: 0.7; stroke-width: 3; }
    }
    .pulse-dot {
      animation: pulseDot 1.5s infinite;
    }
    @keyframes pulseDot {
      0% { r: 8; opacity: 1; }
      50% { r: 12; opacity: 0.3; }
      100% { r: 8; opacity: 1; }
    }
    .pulse-zone {
	animation: pulseZone 1.5s infinite;
    }
    @keyframes pulseZone {
	0% {stroke-opacity: 1;}
	50% {stroke-opacity: 0.3;}
	100% {stroke-opacity: 1;}
    }
    .tippy-box[data-theme~='light-border'] {
      font-family: 'Segoe UI', sans-serif;
      font-size: 14px;
      color: #333;
      background-color: white;
      border: 1px solid #ccc;
      border-radius: 8px;
      box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }
    #legend {
      position: absolute;
      bottom: 20px;
      right: 10px;
      background: white;
      padding: 10px 14px;
      border-radius: 10px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.3);
      font-family: 'Segoe UI', sans-serif;
      font-size: 14px;
      z-index: 1001;
      line-height: 1.6;
      opacity: 0.95;
    }

    #legend .dot {
      display: inline-block;
      width: 14px;
      height: 14px;
      margin-right: 8px;
      border-radius: 50%;
      vertical-align: middle;
    }

    #legend .green { background-color: green; }
    #legend .yellow { background-color: orange; }
    #legend .red { background-color: red; }

    @media (max-width: 600px) {
      #legend {
        bottom: 80px; /* ne ütközzön a vezérlőpanellel */
        right: 10px;
        font-size: 13px;
        padding: 8px 12px;
      }
    }
