  @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@600&family=Roboto&display=swap');

  body {
      font-family: 'Roboto', sans-serif;
	  overflow-x: hidden; /*kein horizintales scrollen*/
      max-width: 900px;
      margin: 40px auto;
      padding: 0 20px;
      background: #f9f9f9;
      color: #2c3e50;
      transition: background 0.3s, color 0.3s;
  }
  html {
  overscroll-behavior-x: none;
  -webkit-overflow-scrolling: touch;
}


  .dark-mode {
      background: #1e1e1e;
      color: #ecf0f1;
  }

	header {
	  position: sticky;
	  top: 0;
	  left: 0;
	  width: 100vw;
	  background-color: inherit;
	  transition: background-color 0.3s ease;
	  padding: 10px 0;
	  z-index: 100;
	  text-align: center;
	  margin-left: calc(-50vw + 50%);
	}
	 /* Hamburger Button */
.hamburger {
    position: fixed;
    top: 1rem;
    left: 1rem;
    font-size: 1.6rem;
    background: none;
    border: none;
    color: var(--text-color);
    cursor: pointer;
    z-index: 1002;
}

.resetter {
    position: fixed;
    top: 1rem;
    right: 1rem;
    font-size: 1.6rem;
    background: none;
    border: none;
    color: var(--text-color);
    cursor: pointer;
    z-index: 1003;
    padding: 0.3rem 0.6rem; /* Klickbereich erhöhen */
    border-radius: 4px;     /* etwas Abrundung */
    transition: color 0.2s ease; /* sanfter Hover */
}

  .app-title {
      font-family: 'Orbitron', sans-serif;
	  max-width: 100%;
      font-size: 3rem;
      color: #3498db;
      margin-bottom: 0;
	  margin-top: 0;
      letter-spacing: 2px;
      
  }

  @keyframes pulse {
      from { opacity: 0.85; transform: scale(1); }
      to { opacity: 1; transform: scale(1.03); }
  }

  .subtitle {
      font-size: 1.1rem;
      color: #7f8c8d;
      margin-top: 4px;
	  max-width: 100%;
  }

  .theme-toggle {
      position: absolute;
      top: 20px;
      right: 20px;
  }

  input[type="submit"], .reset-btn {
      padding: 10px 18px;
      font-size: 16px;
      background-color: #3498db;
      border: none;
      color: white;
      cursor: pointer;
      border-radius: 4px;
  }

  input[type="submit"]:hover, .reset-btn:hover {
      background-color: #2980b9;
  }

  form {
      text-align: center;
      margin-bottom: 25px;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 10px;
  }

  form label.uhd-option {
      display: flex;
      align-items: center;
      margin: 0 10px 10px 0;
      font-size: 0.95em;
  }

  form label.uhd-option input[type="checkbox"] {
      margin-right: 6px;
  }

  .result-link {
      position: relative; /* Wichtig für fav-button */
      text-decoration: none;
      color: inherit;
      display: flex;
      align-items: center;
      background: white;
      margin-bottom: 12px;
      padding: 12px;
      border-radius: 6px;
      box-shadow: 0 0 6px rgb(0 0 0 / 0.1);
      transition: background 0.3s;
  }

  .result-link:hover {
      background: #ecf0f1;
  }

  .dark-mode .result-link {
      background: #2c2c2c;
      box-shadow: 0 0 6px rgb(0 0 0 / 0.5);
  }

  .dark-mode .result-link:hover {
      background: #3a3a3a;
  }

  .result-link img {
      width: 80px;
      height: auto;
      border-radius: 4px;
      margin-right: 20px;
      object-fit: contain;
      background: #eee;
  }

  .no-cover {
      width: 80px;
      height: 120px;
      background: #ddd;
      margin-right: 20px;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #666;
      font-size: 12px;
  }

  .info {
      flex: 1;
  }

  .title {
      font-weight: bold;
      font-size: 1.1em;
      margin-bottom: 6px;
      color: #34495e;
  }

  .dark-mode .title {
      color: #ecf0f1;
  }

  .details {
      color: #7f8c8d;
      font-size: 0.9em;
  }

  .dark-mode .details {
      color: #bdc3c7;
  }

  .filter-label {
      font-weight: bold;
      margin-right: 8px;
  }

  @media (max-width: 600px) {
      body {
          margin: 20px 10px;
          font-size: 16px;
      }

      h1 {
          font-size: 1.8rem;
          margin-bottom: 16px;
      }

      form input[type="text"],
      form input[type="number"],
	  form input[type="password"],
	  form input[type="email"],
	  form input[type="checkbox"],
      form select,
      form label.uhd-option {
          flex: 1 1 100%;
          max-width: 100%;
          font-size: 16px;
          padding: 8px 0 8px 0;
		  border-radius: 4px;
		  border: 1px solid #ccc;
          margin: 0 !important;
          box-sizing: border-box;
          justify-content: center;
      }
	  



      form .reset-btn {
          flex: 1 1 45%;
          font-size: 16px;
          padding: 10px;
          margin-top: 10px;
          box-sizing: border-box;
          margin-left: 0 !important;
      }

      .result-link img,
      .no-cover {
          width: 80px;
          height: auto;
          margin-right: 15px;
          flex-shrink: 0;
      }

      .info {
          flex: 1;
      }
  }

  .uhd-toggle-container {
      display: flex;
      align-items: center;
      justify-content: center;
	  margin-top: 10px;
      gap: 10px;
      font-size: 1rem;
  }

  .toggle-label {
      font-weight: bold;
  }

  /* Toggle Switch Styles */
  .switch {
      position: relative;
      display: inline-block;
      width: 50px;
      height: 26px;
  }

  .switch input {
      opacity: 0;
      width: 0;
      height: 0;
  }

  .slider {
      position: absolute;
      cursor: pointer;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: #ccc;
      transition: 0.3s;
      border-radius: 34px;
  }

  .slider:before {
      position: absolute;
      content: "";
      height: 20px;
      width: 20px;
      left: 3px;
      bottom: 3px;
      background-color: white;
      transition: 0.3s;
      border-radius: 50%;
  }

  .switch input:checked + .slider {
      background-color: #3498db;
  }

  .switch input:checked + .slider:before {
      transform: translateX(24px);
  }

  .dark-mode .switch input:checked + .slider {
      background-color: #2980b9;
  }

  .accordion {
      margin-top: 8px;
  }

  .accordion-toggle {
      background: none;
      border: none;
      color: #3498db;
      font-size: 0.9em;
      cursor: pointer;
      padding: 0;
      text-align: left;
  }

  .accordion-toggle:hover {
      text-decoration: underline;
  }

  .accordion-panel {
      display: none;
      margin-top: 4px;
      padding-left: 10px;
      font-size: 0.9em;
      color: #555;
  }

  .accordion-entry {
      margin: 2px 0;
  }

  .dark-mode .accordion-toggle {
      color: #82c4f8;
  }

  .dark-mode .accordion-panel {
      color: #ccc;
  }

.condition-neu { color: #a8e6cf; font-weight: bold; }
.condition-wie-neu { color: #b2dfdb; font-weight: bold; }
.condition-exzellent { color: #ffdd94; font-weight: bold; }
.condition-hervorragend { color: #56c6a9; font-weight: bold; }
.condition-sehr-gut { color: #a2c5e8; font-weight: bold; }
.condition-gut { color: #f5c3a2; font-weight: bold; }
.condition-akzeptabel { color: #ef9a9a; font-weight: bold; }
.condition-stark-genutzt { color: #d32f2f; font-weight: bold; }



  .condition-info {
      color: #888;
      font-size: 0.9em;
      font-style: italic;
      margin-top: 5px;
  }
  .unavailable {
      color: #aaa;
      opacity: 0.6;
      font-style: italic;
  }

  .not-available {
      color: #d9534f; /* Rot für Warnhinweis */
      font-weight: bold;
  }

  /* Optional: Cover für nicht verfügbare Titel leicht ausgrauen */
  .unavailable img {
      filter: grayscale(80%) brightness(70%);
  }

  .fav-toggle-container {
      flex-shrink: 0;
      margin-left: 12px;
      display: flex;
      align-items: center;
  }

  /* Du hast schon .switch und .slider, nutze dieselben Styles für .fav-switch */

  .fav-switch {
      width: 46px;
      height: 26px;
  }

  /* Optional: andere Farben für Favoriten-Button */
  .fav-switch input:checked + .slider {
      background-color: #56c6a9; /* z.B. grünes Favoriten-Grün */
  }

  .fav-switch input:checked + .slider:before {
      transform: translateX(20px);
  }

  /* Die runde Kugel ist schon in deinem Style */
  .top-bar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 1rem;
  }

  .favorites-link {
      font-size: 0.95rem;
      text-decoration: none;
      background-color: #ddd;
      padding: 0.5rem 1rem;
      border-radius: 0.5rem;
      color: black;
      transition: background-color 0.3s;
  }
  .favorites-link:hover {
      background-color: #ccc;
  }

  body.dark-mode .favorites-link {
      background-color: #444;
      color: white;
  }
  body.dark-mode .favorites-link:hover {
      background-color: #666;
  }


/* Sidebar */
.sidebar {
    height: 100%;
    width: 0;
    position: fixed;
    top: 0;
    left: 0;
    background-color: inherit; /* z.B. #fff im Light, #2c2c2c im Dark */
	transition: background-color 0.3s ease;
    color: inherit; /* z.B. #2c3e50 im Light, #ecf0f1 im Dark */
    overflow-x: hidden;
    transition: width 0.3s ease;
    padding-top: 2rem;
    z-index: 999;
    box-shadow: 2px 0 5px rgba(0,0,0,0.2);
}

/* Sidebar Navigation */
.sidebar-nav {
    display: flex;
    flex-direction: column;
	margin-top: 3rem;
    gap: 1.5rem;
    padding: 2rem;
}

.sidebar-nav a {
    font-size: 1.1rem;
    text-decoration: none;
    color: var(--text-color);
    padding: 0.5rem;
    border-left: 3px solid transparent;
    transition: border-color 0.2s, background-color 0.2s;
}

.sidebar-nav a:hover {
    border-left: 3px solid var(--accent-color);
    background-color: var(--card-hover);
}

.sticky-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: inherit;
  padding-top: 10px;
}

.sticky-header {
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.result-container.favorite::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-top: 20px solid #3399ff; /* sanftes Blau */
  border-left: 20px solid transparent;
  z-index: 2;
}
.result-container {
  touch-action: pan-y; /* nur vertikales Scrollen zulassen */
  position: relative;
}
.shop-heading {
  font-size: 1.1rem;
  margin: 2rem 0 0.5rem 0.5rem;
  border-left: 4px solid var(--accent-color, #888);
  padding-left: 0.5rem;
  color: var(--text-color);
}

.total-price {
  font-weight: normal;
  font-size: 0.85em;
  color: #555;
}
.update-price-btn {
  background: none;
  border: none;
  color: #888;
  font-size: 0.9em;
  cursor: pointer;
  margin-top: 0.3rem;
  display:none;
}
.update-price-btn:hover {
  color: #000;
}



.user-circle {
width: 2rem; 
height: 2rem; 
border-radius: 50%; 
background-color:#3498db; 
color: var(--background-color); 
display: flex; 
align-items: center; 
justify-content: center; 
font-weight: bold; 
margin-right: 0.5rem;">
}


/* Layout für Toggle + Text nebeneinander */
.switch {
  display: flex;
  align-items: center;
  gap: 0.5em; /* Abstand zwischen Switch und Text */
  cursor: pointer;
}

/* Beispiel für den Slider (falls du einen "Schieberegler" benutzt) */
.switch input {
  display: none; /* versteckt den Checkbox-Input */
}

/* Hier sollte dein Slider-Design sein, z.B. */
.slider {
  width: 40px;
  height: 20px;
  background-color: #ccc;
  border-radius: 20px;
  position: relative;
  transition: background-color 0.3s;
}

/* Slider Kreis */
.slider.round::before {
  content: "";
  position: absolute;
  height: 16px;
  width: 16px;
  left: 2px;
  bottom: 2px;
  background-color: white;
  border-radius: 50%;
  transition: transform 0.3s;
}

/* Zentrierter Absatz für Registrierung */
.register-link {
  text-align: center;
  margin-top: 2em;
  font-size: 0.9rem;
  color: #555;
}

.register-link a {
  color: #2196F3;
  text-decoration: none;
}

.register-link a:hover {
  text-decoration: underline;
}

.update-vendor-prices-btn {
    background: transparent;
    border: none;
    color: inherit;
    font-size: 1.8rem; /* Fett & etwas größer */
    font-weight: bold;
    cursor: pointer;
    padding: 0;
    margin-left: 6px;
    vertical-align: baseline; /* Stellt sicher, dass er auf gleicher Höhe wie die Summe bleibt */
    transition: color 0.3s ease;
}


#confirmDeleteModal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--background-color, #fff);
    padding: 20px;
    border-radius: 6px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    width: 80%;
    max-width: 400px;
    text-align: center;
    z-index: 1000;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.dark-mode #confirmDeleteModal {
    background: var(--dark-modal-bg, #2c2c2c);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    color: var(--text-color);
}

#confirmDeleteModal h5 {
    font-family: 'Orbitron', sans-serif;
    font-size: 1.5rem;
    color: var(--accent-color, #3498db);
    margin-bottom: 8px;
}

#confirmDeleteModal .modal-body {
    font-size: 1rem;
    color: var(--text-color, #34495e);
}

.dark-mode #confirmDeleteModal .modal-body {
    color: var(--light-gray-text, #bdc3c7);
}

/* Buttons */
#confirmDelete, #cancelDelete {
    padding: 10px 18px;
    font-size: 16px;
    border: none;
    cursor: pointer;
    border-radius: 4px;
    margin: 10px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

#confirmDelete {
    background-color: var(--delete-red, #e74c3c);
    color: white;
}

#confirmDelete:hover {
    background-color: var(--delete-hover, #c0392b);
}

#cancelDelete {
    background-color: var(--gray-text, #7f8c8d);
    color: white;
}

#cancelDelete:hover {
    background-color: var(--gray-hover, #95a5a6);
}

/* Mobile Darstellung */
@media (max-width: 600px) {
    #confirmDeleteModal {
        width: 90%;
        padding: 16px;
    }

    #confirmDelete, #cancelDelete {
        font-size: 14px;
        padding: 8px 16px;
    }
}

#priceChartModal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--background-color, #fff);
    padding: 20px;
    border-radius: 6px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    width: 80%;
    max-width: 400px;
    text-align: center;
    z-index: 1000;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.dark-mode #priceChartModal {
    background: var(--dark-modal-bg, #2c2c2c);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
    color: var(--text-color);
}

#priceChartModal .modal-content {
    text-align: center;
}

#priceChartModal canvas {
    max-width: 100%;
    max-height: 300px; /* Verhindert riesige Darstellung */
}

#closePriceChart {
    position: absolute;
    top: 0px;
    right: 8px;
    width: 28px;
    height: 28px;
    font-size: 16px;
    border: none;
    cursor: pointer;
    background: rgba(100, 100, 100, 0.3); /* 🔹 Dezente Graustufe */
    color: rgb(200, 200, 200); /* 🔹 Neutral graues Symbol */
    display: flex;
    align-items: center;
    justify-content: center;
	border-radius: 6px;
    transition: background-color 0.2s ease, opacity 0.2s ease;
    z-index: 10;
}

#closePriceChart:hover {
    background-color: var(--gray-hover, #95a5a6);
}

.chart-icon-btn {
    position: absolute;
    bottom: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    font-size: 16px;
    border: none;
    cursor: pointer;
    background: rgba(100, 100, 100, 0.3); /* 🔹 Dezente Graustufe */
    color: rgb(200, 200, 200); /* 🔹 Neutral graues Symbol */
    display: flex;
    align-items: center;
    justify-content: center;
	border-radius: 6px;
    transition: background-color 0.2s ease, opacity 0.2s ease;
    z-index: 10; /* ✅ Stellt sicher, dass der Button über der Card bleibt */
}

.chart-icon-btn:hover {
    background: rgba(80, 80, 80, 0.5); /* 🔥 Etwas dunkler beim Hover */
}

/* Schließen-Button */
#closePriceChart {
  font-size: 16px;
  border: none;
  cursor: pointer;
  border-radius: 6px;
  margin-top: 10px;
  background-color: var(--gray-text, #7f8c8d);
  color: white;
  transition: background-color 0.3s ease, color 0.3s ease;
}

#closePriceChart:hover {
  background-color: var(--gray-hover, #95a5a6);
}

/* Links im Stil von Buttons (z.B. Bluray-Disc, Amazon, Idealo) */
/* Einheitlicher Stil für Button-Links (z. B. Bluray-Disc, Amazon) */
.btn-link {
  display: inline-block;
  flex: 1;                    /* Alle gleich breit in Flex-Containern */
  padding: 10px 0;            /* Vertikales Padding */
  font-size: 14px;            /* Einheitliche Schriftgröße */
  border: none;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;        /* Kein Umbruch innerhalb der Buttons */
  background-color: var(--gray-text, #7f8c8d);
  color: white;
  transition: background-color 0.3s ease, color 0.3s ease;
  margin-top: 10px;
}

.btn-link:hover {
  background-color: var(--gray-hover, #95a5a6);
}

/* Container für gleich große Buttons in einer Reihe */
.modal-actions {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
}
.sidebar-section-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-color-muted);
  padding: 0.5rem 1rem;
  margin: 1rem 0 0.5rem 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  user-select: none;
}

.controls-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  background: var(--card-bg, #f4f4f4); /* Gleicher Hintergrund wie Karten */
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
  gap: 15px;

}

/* Dark Mode */
.dark-mode .controls-container {
  background: #2a2a2a; /* Gleiches Dark-Mode Grau wie die Karten */
  color: #f4f4f4;
}

.control {
  padding: 8px;
  border-radius: 6px;
  border: 1px solid var(--border-color, #ccc);
  font-size: 1rem;
  min-width: 120px;
  background: var(--card-bg, #fff); /* Gleiche Hintergrundfarbe wie Karten */
  color: var(--text-color, #222);
}

/* Dark Mode für Steuerungselemente */
.dark-mode .control {
  background: #333;
  color: #f4f4f4;
  border: 1px solid #555;
}


/* Stellt sicher, dass sich die Elemente gut anordnen */
.control-group {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 120px;
}

/* Eingabefeld für die Suche passt sich flexibel an */
.search-input {
  flex-grow: 1;
  max-width: 100%;
  box-sizing: border-box; /* Verhindert Überlauf über den Container */
}



/* Anzahl der sichtbaren Medien – Hellmodus */
.count-label {
  font-weight: bold;
  color: var(--text-color, #222);
  background: var(--card-bg, #fff);
  padding: 6px 12px;
  border-radius: 6px;
}

/* Dark Mode für Count-Label */
.dark-mode .count-label {
  color: #f4f4f4;
  background: #333;
}

@media (max-width: 600px) {
  .controls-container {
    /*flex-direction: column;*/
    align-items: stretch;
    gap: 8px;
  }

  .control-group {
    flex-direction: column;
    width: 100%;
  }

  .control {
    width: 100%;
  }

  .search-input {
    max-width: 100%;
  }
}

