/* =========================
   ELEMENTOR NEUTRALISIEREN
========================= */

.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap {
  max-width: 100% !important;
  overflow: visible !important;
}

html, body {
  height: 100%;
  margin: 0;

}

/* =========================
   PLANNER APP
========================= */

#planner-app {
  display: flex;
  width: 100%;
  height: 100vh;
  min-width: 1024px;
}
#mainArea {
  flex: 1;
  display: flex;
  height: 100%;
}

/* =========================
   SIDEBAR
========================= */


.sidebar-logo {
  display: flex;
  justify-content: center;
  align-items: center;

  padding: 0px 10px 14px;
  margin-bottom: 6px;

  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.sidebar-logo img {
  max-width: 160px;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* SIDEBAR ALT*/

#sidebar {
  width: 320px;
  padding: 28px 22px;

  background: linear-gradient(
    180deg,
    rgba(10, 10, 18, 0.92),
    rgba(5, 5, 12, 0.96)
  );

  box-sizing: border-box;
  flex-shrink: 0;
}

#sidebar h2 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: #00eaff;
  margin: 0 0 10px 0;
}
#sidebar label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.65);
  margin-top: 14px;
  display: block;
}

#sidebar label::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 6px;
  background: linear-gradient(
    to right,
    rgba(0,234,255,0.5),
    rgba(0,234,255,0.05)
  );
}

#sidebar select,
#sidebar input[type="color"] {
  width: 100%;
  padding: 8px 10px;
  border-radius: 8px;

  background: rgba(20,20,30,0.85);
  border: 1px solid rgba(255,255,255,0.08);
  color: #fff;
  font-size: 14px;

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.02);

  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

#sidebar select:focus,
#sidebar input[type="color"]:focus {
  outline: none;
  border-color: #7a5cff;
  box-shadow:
    0 0 0 1px rgba(122,92,255,0.6),
    0 0 18px rgba(122,92,255,0.35);
}

/* =========================
   FARBFELDER
========================= */

#colorPalette {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.colorBtn {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 2px solid #555;
  cursor: pointer;
}

.colorBtn.active {
  border-color: #00eaff;
}

/* =========================
   ITEM PREVIEWS
========================= */

#items {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.itemPreview {
  width: 72px;
  height: 72px;
  background: #1a1a1a;
  border: 1px solid #333;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
}

.itemPreview img {
  max-width: 100%;
  max-height: 100%;
}

/* =========================
   BUTTONS
========================= */

#clearBtn,
#saveImageBtn {
  padding: 11px;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
}

#clearBtn {
  background: #2a0f14;
  color: #ff5a7a;
  border: 1px solid #ff5a7a;
}

#saveImageBtn {
  background: #0f2a1b;
  color: #5affb0;
  border: 1px solid #5affb0;
}

#buySetupBtn {
  padding: 11px;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  background: #0f1f2a;
  color: #5ac8ff;
  border: 1px solid #5ac8ff;
}

/* 🟢 Export-Button Hover */
#saveImageBtn:hover {
  background: #0c1f15;
  border-color: #38ffa0;
  transform: translateY(-2px);
}

/* 🔴 Clear-Button Hover */
#clearBtn:hover {
  background: #1a070a;
  border-color: #ff7a92;
  transform: translateY(-2px);
}

/* 🔵 Buy-Setup-Button – musst du ggf. noch so definieren */
#buySetupBtn {
  background: #001d3d;
  color: #3dd0ff;
  border: 1px solid #3dd0ff;
}

#buySetupBtn:hover {
  background: #001427;
  border-color: #6ddcff;
  transform: translateY(-2px);
}
/* =========================
   SCENE WRAPPER
========================= */


#sceneWrapper {
  flex: 1;
  display: flex;
  flex-direction: column;

  max-width: 1800px; /* 🔑 MUSS = Szene + AssetBar */
  width: 100%;
}

#workArea {
  flex: 1;
  display: flex;
  flex-direction: column;

  height: 100%;
  padding: 24px 40px;
  box-sizing: border-box;

  overflow: hidden; /* 🔑 NUR HIER */
}


/* =========================
   SCENE
========================= */

#scene {
  flex: 1;                 /* 🔑 nimmt exakt den Restplatz */
  width: 100%;
  max-width: 1800px;

  background: #fff;
  border-radius: 16px;
  position: relative;

  overflow: hidden;
}

/* Wand-Textur */
#scene::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;

  background-image: url("https://setupdesigner.com/wp-content/uploads/2026/01/black-paper.png");
  background-repeat: repeat;
  background-size: 400px 400px; /* Größe der Körnung */
  opacity: 0.2; /* 🔑 Feinheit – nicht höher gehen */
}

#scene > * {
  position: relative;
  z-index: 1;
}

/* =========================
   TABLE / MONITOR / PC
========================= */

#sceneTableLayer,
#sceneMonitorLayer,
#scenePcLayer {
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
}

#sceneTableLayer {
  
  display: flex;
	postion: relative;
  justify-content: center;
}

.sceneTable {
  width: 80%;
	z-index: 2;
	 transform: translateY(12px);
}

.sceneMonitor {
  position: relative;
  overflow: visible !important;	
    z-index: 60 !important;	
}

#sceneMonitorLayer {
  bottom: 110px;
  display: flex;
  justify-content: center;
}

#sceneMonitorLayer img {
  position: relative;
  z-index: 3;
}

#scenePcLayer {
  bottom: 110px;
}

.scenePc {
  position: absolute;
  height: 70px;
}

.sceneObject-content img {
  position: relative;
  z-index: 2;           /* Monitor IMMER vorne */
}

.monitor-led-layer {
  position: absolute;
  inset: 0;
  z-index: 1;           /* hinter dem Bild */
  pointer-events: none;
}

/* =========================
   MOUSEPAD
========================= */

#sceneMousepadLayer {
  position: absolute;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%) perspective(600px) rotateX(60deg);
  width: 500px;
  height: 150px;
  z-index: 10;
  pointer-events: none;
}

.mousepad-rect {
  width: 100%;
  height: 100%;
  background: #333;
  border-radius: 20px;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
}


/* =========================
   OBJECTS
========================= */

.sceneObject {
  position: absolute;
  cursor: grab;
}

/* =========================
   WANDPANELE
========================= */

.wood-wall {
  background-image: repeating-linear-gradient(
    to right,
    #5b4025,      /* Holz-Braun 1 */
    #5b4025 10px,
    #4a321b 10px, /* Dunklere Fuge */
    #4a321b 12px
  );
  background-color: #5b4025;
  background-size: cover;
}
/* =========================
   REGALE
========================= */

.regal {
  position: absolute;
  transform: translateX(-50%);
}

.regal img {
  display: block;
  width: 100%;
  height: auto;
}

/* 🔑 DIE GRÖSSEN */
.regal.size-small { width: 180px; }
.regal.size-medium { width: 260px; }
.regal.size-large { width: 360px; }

/* =========================
   REGAL LED (EXPORT-SAFE)
========================= */

.regalLed {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 83%;
  height: 2px;
  opacity: 0.4;
  pointer-events: none;

  background: linear-gradient(
    to bottom,
    rgba(255,255,255,1),
    rgba(var(--led-rgb), 0.65)
  );

  border-radius: 1px;

  box-shadow: 0 0 2px rgba(var(--led-rgb), 0.85);
}

.regalLed.on {
  opacity: 1;
}

/* =========================
   WANDLICHT (EXPORT-SAFE)
========================= */

.regalLed::after {
  content: "";
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 90px;
  opacity: 0;
  pointer-events: none;

  background: linear-gradient(
    to top,
    rgba(var(--led-rgb), 0.45) 0%,
    rgba(var(--led-rgb), 0.25) 25%,
    rgba(var(--led-rgb), 0) 60%
  );

  filter: blur(6px);
}

.regalLed.on::after {
  opacity: 1;
}

/* =========================
   SELECTION
========================= */

#scene,
#scene * {
  user-select: none;
}

/* =========================
   POSTER BASIS (FIX)
========================= */

.poster {
  position: absolute;
  cursor: grab;
 
}

.posterFrame {
  height: 100%;
  aspect-ratio: 3 / 4; /* Default */
  box-sizing: border-box;
}

/* =========================
   POSTER GRÖSSEN
========================= */

.poster.size-normal .posterFrame {
  aspect-ratio: 3 / 4;
	 width: 180px;
	height: 240px;
  
}

.poster.size-square .posterFrame {
  aspect-ratio: 1 / 1;
	width: 220px;
	height: 200px; 
 
}

.poster.size-wide .posterFrame {
  aspect-ratio: 16 / 9;
	width: 320px;
 	height: 206px;
}

/* =========================
   POSTER BILD
========================= */

.poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  background: #000; /* optional, für Letterbox bei 16:9 */
}

/* =========================
   POSTER RAHMEN
========================= */

.poster.frame-black .posterFrame {
  padding: 8px;
  background: #111;
  box-shadow: 0 8px 20px rgba(0,0,0,0.35);
}

.poster.frame-white .posterFrame {
  padding: 8px;
  background: #f5f5f5;
  box-shadow: 0 8px 20px rgba(0,0,0,0.25);
}

.poster.frame-none .posterFrame {
  padding: 0;
  box-shadow: none;
}

/* =========================
   TOOLBAR ÜBER OBJEKTEN
========================= */

.object-toolbar {
  position: absolute;
  top: -50px; /* weiter nach oben verschoben */
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.85);
  padding: 6px 8px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.object-toolbar.hidden {
  display: none;
}

.object-toolbar button {
  all: unset;
  width: 28px;
  height: 28px;
  font-size: 16px;
  background: #1f1f1f;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid #333;
  cursor: pointer;
  transition: background 0.2s ease;
}

.object-toolbar button:hover {
  background: #333;
}

.toolbar-section {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}

/* =========================
   CATEGORY BUTTONS
========================= */

.franchiseBtn {
  padding: 6px 10px;
  background: #1a1a1a;
  border: 1px solid #333;
  color: #fff;
  font-size: 13px;
  border-radius: 6px;
  cursor: pointer;
}

.franchiseBtn.active {
  background: #00eaff;
  color: #000;
  border-color: #00eaff;
}

/* =========================
   Mein Setup Kaufen
========================= */

#mein-setup-wrapper {
  max-width: 1000px;
  margin: 30px auto;
  padding: 10px;
  font-family: system-ui, sans-serif;
}

#mein-setup-liste {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.mein-setup-item {
  width: 200px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.05);
}

.mein-setup-item img {
  max-width: 100%;
  height: auto;
  margin-bottom: 8px;
  border-radius: 4px;
}

.mein-setup-item strong {
  display: block;
  font-size: 15px;
  margin-bottom: 5px;
}

.mein-setup-item button {
  background: #111;
  color: #fff;
  padding: 8px 12px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.mein-setup-item button:hover {
  background: #333;
}


#customModal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

#customModal .modalContent {
  background: #fff;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
  text-align: center;
}

#customModal .modalContent button {
  margin-top: 20px;
  padding: 10px 18px;
  background: #2979ff;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
}

#customModal .modalContent button:hover {
  background: #1c54b2;
}

.hidden {
  display: none !important;
}

.colorBtn.custom {
  position: relative;
  overflow: hidden;
  border: 2px solid #555;
  border-radius: 6px;
  width: 28px;
  height: 28px;
  cursor: pointer;

  /* 🌈 Regenbogenverlauf als Hinweis für „hier Farbe wählen“ */
  background: linear-gradient(
    45deg,
    red,
    green,
    cyan,
    blue,
    violet
  );
}

.colorBtn.mousepad-color {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 2px solid #555;
  background: linear-gradient(
    45deg,
    red,
    green,
    cyan,
    blue,
    violet
  );
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
}

.colorBtn.mousepad-color:hover {
  border-color: #00eaff;
}
/* Farbauswahl komplett transparent, aber klickbar */
.colorBtn.custom input[type="color"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background: none;
}

.colorBtn:hover {
  border-color: #00eaff;
  box-shadow: 0 0 4px rgba(0, 234, 255, 0.3);
}

.colorBtn.active {
  border-color: #00eaff;
}

.sidebar-row.mousepad-row {
  justify-content: flex-start;
}

.sidebar-row.mousepad-row .mousepad-color {
  margin-top: 6px;
  margin-left: 25px;	
}

.sidebar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px; /* 🔑 noch kompakter */
}

.sidebar-row label {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: #b0b0b0;
  white-space: nowrap;
  position: relative;
  top: 1px; /* 🔑 optische Zentrierung */
}
.sidebar-row select {
  flex: 1;
  max-width: 145px;
  padding: 5px 8px;   /* 🔑 flacher */
  font-size: 13px;
}
.sidebar-row input[type="color"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
#sidebar > .sidebar-row:not(:first-child) {
  border-top: 1px solid rgba(255,255,255,0.05);
  padding-top: 6px;
}

/* =========================
   SCENE HINT – UNTER SZENE
========================= */

#sceneHint {
  display: flex;
  justify-content: center;

  margin-top: 10px;
  padding-bottom: 10px;

  width: 83%;
  pointer-events: none;
}

#sceneHint strong {
  font-size: 13px;
  color: #bdbdbd;
  white-space: nowrap;
}

/* =========================
   DARK MODE – NUR OBJEKT-INHALTE DIMMEN
========================= */

/* Bilder & sichtbare Inhalte dimmen */


/* Toolbar explizit NIE dimmen */
#scene.dark-scene .sceneObject .object-toolbar {
  filter: none !important;
}

#scene.dark-scene {
  background-color: #0b0b0b !important;
}

.sceneObject img,
.sceneTable,
.sceneMonitor,
.scenePc {
  transition: filter 0.3s ease;
}

.dark-scene .mousepad-rect {
  filter: brightness(0.4);
}

/* Alle direkten Inhalte dimmen */


/* Toolbar explizit ausnehmen */
#scene.dark-scene .sceneObject > .object-toolbar {
  filter: none !important;
}

/* Tisch / Monitor / PC separat dimmen */
#scene.dark-scene img.sceneTable,
#scene.dark-scene img.sceneMonitor,
#scene.dark-scene img.scenePc {
  filter: brightness(0.4);
}

#scene.dark-scene .monitor-led {
  opacity: 1;
  filter: blur(55px);
}


.dark-scene .regalLed.on {
  opacity: 1;
  box-shadow: 0 0 12px rgba(var(--led-rgb), 0.95);
}
.dark-scene .regalLed.on::after {
  opacity: 1;
  filter: blur(12px);
}
.ambientLed {
	mix-blend-mode: screen;
  position: absolute;
  width: 400px;
  height: 40px;
  background: linear-gradient(
    to top,
    rgba(var(--led-rgb), 0.95), /* 🔥 fast volle Intensität */
    rgba(var(--led-rgb), 0.35),
    transparent
  );
  filter: blur(22px);
  opacity: 0;
  pointer-events: none;
}

#scene.dark-scene .ambientLed.led-table {
  filter: none !important;
  box-shadow: none !important;
}

#scene:not(.dark-scene) .ambientLed.led-table {
  display: none;
}

.ambientLed.led-table {
  position: absolute;
   animation: ledPulse 6s ease-in-out infinite;
  /* exakt hinter der hinteren Tischkante */
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 82%;
  height: 2px;                 /* 🔑 echte Edge-LED */

  background: linear-gradient(
    to right,
    rgba(0,0,0,0),
    rgba(var(--led-rgb), 0.95),
    rgba(0,0,0,0)
  );

  opacity: 0.9;
  pointer-events: none;

  z-index: -1;                 /* hinter dem Tisch */
}

.ambientLed.led-table::after {
  content: "";
  position: absolute;

  left: -25%;
  bottom: 100%;               /* startet ÜBER der Edge */
  width: 150%;
  height: 140px;

  background: radial-gradient(
    ellipse at center bottom,
    rgba(var(--led-rgb), 0.45),
    rgba(var(--led-rgb), 0.28) 38%,
    rgba(var(--led-rgb), 0.14) 62%,
    rgba(var(--led-rgb), 0.0) 82%
  );

  filter: blur(86px);
  opacity: 0.95;
  pointer-events: none;
}

.ambientLed.led-table::before {
  content: "";
  position: absolute;

  left: -25%;
  top: 100%;                /* 🔑 nach UNTEN */
  width: 150%;
  height: 120px;

  background: radial-gradient(
    ellipse at center top,
    rgba(var(--led-rgb), 0.35),
    rgba(var(--led-rgb), 0.22) 38%,
    rgba(var(--led-rgb), 0.12) 62%,
    rgba(var(--led-rgb), 0.0) 82%
  );

  filter: blur(26px);
  opacity: 0.9;
  pointer-events: none;
}

/* =========================
   AMBIENT LED TOGGLE UI
========================= */

#scene.dark-scene .ambientLed.led-monitor {
  opacity: 1 !important;
  filter: blur(65px) brightness(2.6) saturate(1.3) !important;
}

#scene.dark-scene .ambientLed.led-monitor::after {
  content: "";
  position: absolute;
  inset: -120px;
  background: radial-gradient(
    ellipse at center,
    rgba(var(--led-rgb), 0.35),
    transparent 70%
  );
  filter: blur(120px);
}

.ambient-toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
}

.ambient-arrow {
  font-size: 14px;
  color: #00eaff;
}

.ambient-options {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#ambientLedOptions .sidebar-row input[type="color"] {
  position: static;       /* NICHT overlay */
  opacity: 1;             /* sichtbar */
  width: 26px;
  height: 26px;
  border-radius: 6px;
  border: 2px solid #555;
  background: none;
}

#ambientLedOptions .sidebar-row input[type="color"]:hover {
  border-color: #00eaff;
}
.ambientLed.led-monitor {
  position: absolute;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);

  width: 120%;
  max-width: 1400px;
  height: 120px;

  background: radial-gradient(
    ellipse at center,
    rgba(var(--led-rgb), 1.15) 0%,
    rgba(var(--led-rgb), 0.75) 30%,
    rgba(var(--led-rgb), 0.35) 55%,
    rgba(var(--led-rgb), 0.15) 70%,
    transparent 80%
  );

  filter: blur(40px) brightness(1.9);

  box-shadow:
    0 0 120px rgba(var(--led-rgb), 0.45),
    0 0 260px rgba(var(--led-rgb), 0.25);

  pointer-events: none;
  z-index: 0;
}
/* =========================
   AMBIENT MASTER CHECKBOX – RECHTS
========================= */

.ambient-master {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 10px;
  cursor: pointer;
  font-size: 13px;
  color: #ccc;
}

/* 🔑 Checkbox nach RECHTS */
.ambient-master input {
  margin-left: auto;
  accent-color: #00eaff;
}

/* Text nach links */
.ambient-master span {
  order: 1;
}

/* =========================
   FIX: Ambient Checkbox nach rechts
   (Freeze-safe, CSS-only)
========================= */

/* NUR für den Ambient-Header */
#ambientLedToggle.sidebar-row {
  justify-content: flex-start; /* space-between AUS */
}

/* Checkbox aktiv nach rechts schieben */
#ambientLedToggle input[type="checkbox"] {
  margin-left: auto;
}

/* 🔧 FIX: LED-Colorpicker korrekt anzeigen */
#ambientLedOptions input[type="color"] {
  position: relative !important;
  inset: auto !important;
  opacity: 1 !important;
	  width: 26px;
  height: 26px;
  padding: 0;
  border-radius: 6px;
  border: 2px solid #555;
  background: none;
  cursor: pointer;
}
/* =========================
   RESPONSIVE SAFETY
========================= */




/* =========================
   SCENE GLOBAL CONTROLS
========================= */

#sceneGlobals {
  display: flex;
  align-items: center;
  gap: 30px;

  max-width: 1800px;
  margin-bottom: 16px;
  padding: 14px 20px;
  flex-shrink: 0;
  background: linear-gradient(
    180deg,
    rgba(10,10,18,0.85),
    rgba(5,5,12,0.95)
  );

  border-radius: 14px;

  box-shadow:
    0 0 30px rgba(122,92,255,0.25),
    0 0 60px rgba(61,208,255,0.15);
}

.scene-global-block label {
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 6px;
  display: block;
}

.deko-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.deko-item {
  width: 100%;
  padding: 10px 12px;
  text-align: left;

  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;

  color: #00eaff;
  font-size: 14px;
  font-weight: 500;

  cursor: pointer;
}

.deko-item:hover {
  background: rgba(0,234,255,0.08);
  color: #00eaff;
}

.deko-item.active {
  background: rgba(0,234,255,0.18);
  border-color: #00eaff;
  color: #00eaff;
}

.hardware-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.hardware-item {
  width: 100%;
  padding: 10px 12px;
  text-align: left;

  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;

  color: #c9b6ff;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.hardware-item:hover {
  background: rgba(199,125,255,0.08);
}

.hardware-item.active {
  background: rgba(199,125,255,0.18);
  border-color: #c77dff;
  color: #c77dff;
}

/* =========================
   MÖBEL – WARM GREEN / HOLZ
========================= */

.furniture-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 6px;
}

.furniture-item {
  width: 100%;
  padding: 10px 12px;
  text-align: left;

  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;

  color: #9ccfa1;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.furniture-item:hover {
  background: rgba(156,207,161,0.10);
}

.furniture-item.active {
  background: rgba(156,207,161,0.22);
  border-color: #9ccfa1;
  color: #9ccfa1;
}

/* =========================
   TOPBAR LAYOUT (SAFE)
========================= */

#sceneGlobals.topbar {
  position: sticky;      /* bleibt oben beim Scrollen */
  top: 0;
  z-index: 50;

  margin-bottom: 8px;
  padding: 12px 16px;

  background: linear-gradient(
    180deg,
    rgba(10,10,18,0.96),
    rgba(5,5,12,0.96)
  );

  border-bottom: 1px solid rgba(255,255,255,0.06);	
	
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;

  border-top-left-radius: 0;
  border-top-right-radius: 0;

  overflow: hidden; /* wichtig für saubere Kanten */
}
	
  box-shadow: none;      /* ❌ Glow aus */
  
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: 20px;
}

.topbar-right {
  display: flex;
  align-items: center;
  gap: 15px;
}

.topbar-right button {
  padding: 8px 12px;
  font-size: 13px;
  border-radius: 8px;
}

/* =========================
   SIDEBAR – SUBTLE OPEN STATE
========================= */

/* Nur wenn Dropdown sichtbar ist */
.hardware-group:not([style*="display:none"]) {
  margin-top: -6px;          /* zieht Dropdown unter Button */
  padding: 14px 14px 10px;
  
  background: rgba(199,125,255,0.18); /* GLEICHE FARBE wie Button */
  
  border-radius: 0 0 10px 10px; /* nur unten rund */
}

/* Subtiler Hintergrund – KEIN Button */
.hardware-group:not([style*="display:none"])::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.03); /* extrem dezent */
  pointer-events: none;
}
/* Sidebar – Hardware Gruppen standardmäßig zugeklappt */
.hardware-group {
  display: none;
}

/* =========================
   SIDEBAR – MÖBEL DROPDOWN = AKTIVER BUTTON
========================= */

.furniture-group:not([style*="display:none"]) {
  margin-top: -4px;
  padding: 14px 14px 10px;

  background: rgba(156,207,161,0.22); /* EXAKT gleiche Farbe */

}

/* Möbel-Gruppen standardmäßig zugeklappt */
.furniture-group {
  display: none;
}

/* =========================
   LAMPEN & LEDs – BUTTON
   (wie furniture-item, nur neon)
========================= */

.deko-item[data-cat="lampen"] {
  width: 100%;
  padding: 10px 12px;
  text-align: left;

  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px;

  color: #ffd84d; /* neon gelb */
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.deko-item[data-cat="lampen"]:hover {
  background: rgba(255, 216, 77, 0.12);
}

.deko-item[data-cat="lampen"].active {
  background: rgba(255, 216, 77, 0.22);
  border-color: #ffd84d;
  color: #ffd84d;
}

/* =========================
   LED ROW – CLEAN SYSTEM
========================= */

.led-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.led-label {
  font-size: 13px;
  color: #ccc;
}

/* =========================
   LED CONTROL (EIN BLOCK!)
========================= */

.led-control {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
}

/* =========================
   TOGGLE
========================= */

.led-switch {
  position: relative;
  width: 36px;
  height: 18px;
}

.led-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.led-switch .slider {
  position: absolute;
  inset: 0;
  background: #333;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.25s ease;
}

.led-switch .slider::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  left: 3px;
  top: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.25s ease;
}

.led-switch input:checked + .slider {
  background: #00eaff;
}

.led-switch input:checked + .slider::before {
  transform: translateX(18px);
}

/* =========================
   COLOR PICKER (INTEGRIERT)
========================= */

.led-control input[type="color"] {
  width: 20px;
  height: 20px;
  border: none;
  background: none;
  cursor: pointer;
}

/* =========================
   DISABLED STATE
========================= */

.led-switch input:not(:checked)
  ~ input[type="color"] {
  opacity: 0.35;
  pointer-events: none;
}

/* =========================
   ASSET BOTTOM BAR
========================= */

#assetBarWrapper {
   max-width: 100%;	
  display: flex;
 
  padding: 0;                /* ❌ kein eigenes Padding */
  margin-top: 12px;          /* kleiner Abstand zur Szene */
  background: transparent;
  flex-shrink: 0;	
}


#assetBar {
  width: 100%;
  max-width: 1800px;        /* 🔑 MUSS IDENTISCH zur Szene sein */
  height: 160px;

  margin: 0;
  padding: 0 14px 16px;

  background: linear-gradient(
    180deg,
    rgba(10,10,18,0.95),
    rgba(5,5,12,0.98)
  );

  border-top: 1px solid rgba(255,255,255,0.06);
  box-shadow: none;

  border-radius: 0 0 18px 18px; /* gleiche Rundung wie Szene */
  overflow: hidden;
}

/* Header */
.asset-bar-header {
  height: 32px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  font-size: 12px;
  color: #aaa;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
}

/* Asset Grid */
.asset-grid {
  flex: 1;
  display: flex;
  gap: 10px;
  padding: 10px;
  overflow-x: auto;
  overflow-y: hidden;
}

/* Einzelnes Asset */
.asset-grid .itemPreview {
  min-width: 80px;
  height: 80px;
  background: #111;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
}

.asset-grid .itemPreview img {
  max-width: 100%;
  max-height: 100%;
  pointer-events: none;
}


/* =========================
   Asset Thumbnails (Bottom Bar)
========================= */

.itemPreview {
  position: relative;
  cursor: pointer;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(0,0,0,0.35);

  transition:
    transform 0.2s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

/* 🔥 Neutraler Hover Effekt */
.itemPreview:hover {
  transform: translateY(-4px) scale(1.13);
  border-color: rgba(255,255,255,0.35);
  box-shadow:
    0 6px 14px rgba(0,0,0,0.45),
    0 0 0 1px rgba(255,255,255,0.08);
}

/* 🖼️ Bild sauber */
.itemPreview img {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

/* =========================
   ASSET BAR – AKTIVE KATEGORIE
========================= */

#assetBar {
  transition: border-color 0.3s ease;
}

/* Möbel */
#assetBar[data-category="tische"] {
  --glow-color: 34, 197, 94; /* grün */
  border-top: 3px solid rgb(var(--glow-color));
  animation: softGlow 2.5s ease-in-out infinite;
}

#assetBar[data-category="regale"] {
  --glow-color: 34, 197, 94; /* grün */
  border-top: 3px solid rgb(var(--glow-color));
  animation: softGlow 2.5s ease-in-out infinite;
}

/* DEKO */
#assetBar[data-category="figur"] {
  --glow-color: 59, 130, 246; /* blau */
  border-top: 3px solid rgb(var(--glow-color));
  animation: softGlow 2.5s ease-in-out infinite;
}


@keyframes softGlow {
  0% {
    box-shadow: 0 0 6px rgba(var(--glow-color), 0.4);
  }
  50% {
    box-shadow: 0 0 12px rgba(var(--glow-color), 0.8);
  }
  100% {
    box-shadow: 0 0 6px rgba(var(--glow-color), 0.4);
  }
}

/* Pagination */
.asset-pagination {
  height: 28px;
  flex-shrink: 0;
}

/* =========================
   AD AREA WERBUNG RECHTE SPALTE
========================= */
#adArea {
  display: none;
  width: 300px;
  flex-shrink: 0;
}

@media (min-width: 2200px) {
  #adArea {
    display: block;
  }
}

/* =========================
   FIX: LED Colorpicker sichtbar
========================= */

#ledTableColor,
#ledMonitorColor {
  appearance: none;
  -webkit-appearance: none;

  width: 26px;
  height: 26px;
  padding: 0;

  border-radius: 6px;
  border: 2px solid #555;

  background-color: currentColor; /* 🔑 */
  cursor: pointer;
}

/* Chrome / Edge */
#ledTableColor::-webkit-color-swatch,
#ledMonitorColor::-webkit-color-swatch {
  border: none;
  border-radius: 4px;
}

/* Firefox */
#ledTableColor::-moz-color-swatch,
#ledMonitorColor::-moz-color-swatch {
  border: none;
  border-radius: 4px;
}

/* =========================
   LED CONTROL – PREMIUM
========================= */

.led-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.led-label {
  flex: 1;
  font-size: 13px;
  color: #cfcfcf;
}

/* SWITCH */
.led-switch {
  position: relative;
  width: 36px;
  height: 18px;
}

.led-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.led-switch .slider {
  position: absolute;
  inset: 0;
  background: #333;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.25s ease;
}

.led-switch .slider::before {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  left: 3px;
  top: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.25s ease;
}

.led-switch input:checked + .slider {
  background: #00eaff;
}

.led-switch input:checked + .slider::before {
  transform: translateX(18px);
}

/* COLOR */
.led-color {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.3);
  box-shadow: 0 0 10px rgba(0,0,0,0.6);
}

.led-color input[type="color"] {
  width: 100%;
  height: 100%;
  border: none;
  padding: 0;
  background: none;
  cursor: pointer;
}

/* DISABLED STATE */
.led-switch input:not(:checked) ~ .led-color {
  opacity: 0.35;
  pointer-events: none;
}

/* =========================
   APP LOADER
========================= */

#appLoader {

  transition: opacity 0.35s ease;

  position: fixed;
  inset: 0;
  z-index: 999999;
  background: radial-gradient(
    ellipse at center,
    #0b0b12 0%,
    #05050c 80%
  );
  display: flex;
  align-items: center;
  justify-content: center;
}

.loader-inner {
  text-align: center;
  color: #fff;
}

.loader-logo {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #00eaff;
  margin-bottom: 20px;
}

.loader-bar {
  width: 220px;
  height: 4px;
  background: rgba(255,255,255,0.1);
  border-radius: 999px;
  overflow: hidden;
  margin: 0 auto 14px;
}

.loader-bar span {
  display: block;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, #00eaff, #7a5cff);
  animation: loaderMove 1.2s ease-in-out infinite;
}

@keyframes loaderMove {
  0%   { transform: translateX(-100%); }
  50%  { transform: translateX(150%); }
  100% { transform: translateX(150%); }
}

.loader-text {
  font-size: 13px;
  color: rgba(255,255,255,0.6);
}
.loader-logo {
  width: 140px;
  max-width: 70%;
  height: auto;
  margin-bottom: 18px;
  opacity: 0.95;
  filter: drop-shadow(0 8px 22px rgba(0,0,0,0.45));
}

.asset-bar-header-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

#assetBarTitle {
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
}

.franchise-filter {
  display: flex;
  margin-left: 20px;	
  gap: 6px;
  flex-wrap: nowrap;
}

.franchise-btn {
  padding: 4px 10px;
  font-size: 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: #fff;
  border: none;
  cursor: pointer;
}

.franchise-btn.active {
  background: linear-gradient(135deg, #7b5cff, #b96bff);
}

.topbar-hint {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  white-space: nowrap;
  margin-right: 10px;
}

.asset-shortcuts {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  margin-left: 12px;
  white-space: nowrap;
}