/* ==========================================================================
   M O D U L  -  Akustische Ampeln Wien
   ========================================================================== */

.ampelnContainer {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  background: var(--color-bg);
  border: 1px solid var(--color-fg-muted);
  border-radius: 8px;
  grid-template-areas:
    'controls'
    'map'
    'table';
}

.ampelnMap,
.ampelnTableContainer {
  transition: opacity 0.3s ease;
}
.ampelnControls {
  grid-area: controls;
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}

.ampelnButton {
  padding: 0.5rem 0.75rem;
  border: 1.5px solid var(--color-fg);
  border-radius: 6px;
  background: var(--color-bg-vivid);
  color: var(--color-fg);
  cursor: pointer;
  font-weight: 600;
}

.ampelnButton:hover:not(:disabled) {
  background: var(--color-bg-muted);
}

.ampelnButton:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.ampelnStatus {
  padding: 0.4rem 0.6rem;
  border: 1px dashed var(--color-fg-muted);
  border-radius: 6px;
  background: var(--color-bg-vivid);
  font-size: 0.9em;
  opacity: 0.8;
}

.ampelnMap {
  grid-area: map;
  height: 500px;
  border: 1px solid var(--color-fg-muted);
  border-radius: 8px;
  background: var(--color-bg-vivid);
  display: none;
  /* Standardmäßig versteckt */
}

.ampelnTableContainer {
  grid-area: table;
  overflow: auto;
  border: 1px solid var(--color-fg-muted);
  border-radius: 8px;
  background: var(--color-bg-vivid);
}

.ampelnTable {
  width: 100%;
  border-collapse: collapse;
}

.ampelnTable th,
.ampelnTable td {
  padding: 0.5rem 0.75rem;
  text-align: left;
  border-bottom: 1px solid var(--color-fg-muted);
}

.ampelnTable th {
  font-weight: 600;
  background: var(--color-bg-muted);
}

.ampelnTable tr:hover {
  background: var(--color-bg-muted);
}

.ampelnActionButton {
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--color-fg);
  border-radius: 4px;
  background: var(--color-bg-vivid);
  color: var(--color-fg);
  cursor: pointer;
  font-size: 0.85em;
}

.ampelnActionButton:hover {
  background: var(--color-bg-muted);
}

/* Responsives Design */
@media (min-width: 640px) {
  .ampelnContainer {
    grid-template-columns: 1fr;
    grid-template-areas:
      'controls'
      'map'
      'table';
  }

  .ampelnMap {
    height: 600px;
  }
}
/* Suchfeld */
.ampelnSearchContainer {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1 1 auto;
  min-width: 200px;
}

.ampelnLabel {
  font-weight: 600;
  font-size: 0.9em;
}

.ampelnSearchInput {
  padding: 0.5rem 0.75rem;
  border: 1.5px solid var(--color-fg);
  border-radius: 6px;
  background: var(--color-bg-vivid);
  color: var(--color-fg);
  width: 100%;
  box-sizing: border-box;
}

.ampelnSearchInput:focus {
  outline: 3px solid var(--color-primary);
  outline-offset: 2px;
  background: var(--color-bg-vivid);
}

/* Tabellenansicht */
.ampelnTable th,
.ampelnTable td {
  padding: 0.5rem 0.75rem;
  text-align: left;
  border-bottom: 1px solid var(--color-fg-muted);
}

/* Responsives Design für Suchfeld */
@media (min-width: 640px) {
  .ampelnControls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .ampelnSearchContainer {
    flex: 1 1 300px;
    order: 1;
    /* Suchfeld als erstes Element */
  }

  .ampelnButton {
    order: 2;
    /* Buttons nach dem Suchfeld */
  }

  .ampelnStatus {
    order: 3;
    flex: 1 1 auto;
  }
}