.viewSwitcher{
   display:flex;
   gap:10px;
   flex-direction: column;
}

.viewBtn{
   width:44px;
   height:44px;
   border-radius:12px;
   border:none;
   background:#66EEE5;
   cursor:pointer;
   display:flex;
   align-items:center;
   justify-content:center;
   transition:all .25s ease;
}

.viewBtn svg{
   width:22px;
   height:22px;
}

.viewBtn.active{
   background:#E47712;
}
.rs-handleThumb{
  width:60px;
  height:60px;
  object-fit:contain;
  display:block;
  margin:8px auto 0;
}
.rs-sidebar {
  position: absolute; top: 0; right: 0; bottom: 0;
  display: flex; flex-direction: row; align-items: stretch; z-index: 100;
}

.rs-panel {
  width: 300px; background: rgba(18,18,18,0.96); backdrop-filter: blur(12px);
  display: flex; flex-direction: column; opacity: 0; pointer-events: none;
  transform: translateX(12px); transition: opacity 0.22s ease, transform 0.22s ease, width 0.22s ease;
  overflow: hidden;
}
.rs-panel.rs-open { opacity: 1; pointer-events: all; transform: translateX(0); }
.rs-panel.rs-wide { width: 340px; }

.rs-tabs {
  display: flex; flex-wrap: wrap; background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.08); flex-shrink: 0;
}
.rs-tab {
  flex: 1 1 50%; min-width: 0; padding: 14px 8px; background: none; border: none;
  color: rgba(255,255,255,0.4); font-size: 12px; font-weight: 500; letter-spacing: 0.5px;
  cursor: pointer; text-transform: uppercase; transition: color 0.15s, background 0.15s;
  position: relative; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rs-tab::after {
  content: ''; position: absolute; bottom: 0; left: 10px; right: 10px;
  height: 2px; background: white; border-radius: 2px; opacity: 0; transition: opacity 0.15s;
}
.rs-tab:hover { color: rgba(255,255,255,0.7); }
.rs-tab.rs-tabActive { color: white; }
.rs-tab.rs-tabActive::after { opacity: 1; }

/* Options */
.rs-options {
  flex: 1; overflow-y: auto; padding: 16px 12px; display: flex; flex-direction: column; gap: 6px;
}
.rs-options::-webkit-scrollbar { width: 4px; }
.rs-options::-webkit-scrollbar-track { background: transparent; }
.rs-options::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }

.rs-optionBtn {
  display: flex; align-items: center; gap: 12px; padding: 13px 16px;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.06);
  border-radius: 8px; color: rgba(255,255,255,0.65); font-size: 14px;
  cursor: pointer; text-align: left; transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.rs-optionBtn:hover { background: rgba(255,255,255,0.1); color: white; }
.rs-optionBtn.rs-optionActive { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.3); color: white; }
.rs-optionDot {
  width: 13px; height: 13px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.2);
  flex-shrink: 0; transition: border-color 0.15s;
}
.rs-optionBtn.rs-optionActive .rs-optionDot { border-color: white; background: white; }

/* Search panel */
.rs-searchPanel { padding: 16px 14px; display: flex; flex-direction: column; gap: 14px; flex: 1; overflow-y: auto; }
.rs-searchPanel::-webkit-scrollbar { width: 4px; }
.rs-searchPanel::-webkit-scrollbar-track { background: transparent; }
.rs-searchPanel::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }

.rs-searchInput {
  width: 100%; padding: 10px 14px; background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; color: white;
  font-size: 13px; outline: none; transition: border-color 0.15s;
}
.rs-searchInput::placeholder { color: rgba(255,255,255,0.3); }
.rs-searchInput:focus { border-color: rgba(255,255,255,0.35); }

.rs-searchToggle { display: flex; background: rgba(255,255,255,0.06); border-radius: 8px; padding: 3px; gap: 3px; }
.rs-searchToggleBtn {
  flex: 1; padding: 7px 10px; border: none; border-radius: 6px; background: transparent;
  color: rgba(255,255,255,0.4); font-size: 12px; font-weight: 500; letter-spacing: 0.4px;
  text-transform: uppercase; cursor: pointer; transition: background 0.15s, color 0.15s;
}
.rs-searchToggleBtn:hover { color: rgba(255,255,255,0.75); }
.rs-searchToggleBtn.rs-toggleActive { background: rgba(255,255,255,0.14); color: white; }

.rs-selectBlock { display: flex; flex-direction: column; gap: 5px; }
.rs-selectLabel { font-size: 11px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: rgba(255,255,255,0.35); }

.rs-searchSelect {
  width: 100%; padding: 9px 32px 9px 12px;
  background: rgba(255,255,255,0.07) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff99' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;
  background-size: 12px; border: 1px solid rgba(255,255,255,0.12); border-radius: 8px;
  color: white; font-size: 13px; appearance: none; cursor: pointer; outline: none;
  transition: border-color 0.15s, background-color 0.15s;
}
.rs-searchSelect:hover { border-color: rgba(255,255,255,0.25); background-color: rgba(255,255,255,0.1); }
.rs-searchSelect:focus { border-color: rgba(255,255,255,0.35); }
.rs-searchSelect option { background: #1a1a1a; color: white; }

.rs-filterDivider { border: none; border-top: 1px solid rgba(255,255,255,0.08); margin: 2px 0; }

/* Sliders */
.rs-sliderBlock { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.rs-sliderHeader { display: flex; justify-content: space-between; align-items: center; }
.rs-sliderValue { font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.8); white-space: nowrap; }
.rs-sliderInput {
  width: 100%; appearance: none; height: 4px; border-radius: 2px;
  background: linear-gradient(to right, rgba(255,255,255,0.75) var(--fill,0%), rgba(255,255,255,0.15) var(--fill,0%));
  outline: none; cursor: pointer; touch-action: none;
}
.rs-sliderInput::-webkit-slider-thumb {
  appearance: none; width: 14px; height: 14px; border-radius: 50%; background: white;
  box-shadow: 0 1px 4px rgba(0,0,0,0.4); cursor: pointer; transition: transform 0.1s;
}
.rs-sliderInput::-webkit-slider-thumb:hover { transform: scale(1.2); }
.rs-sliderInput::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: white; border: none; box-shadow: 0 1px 4px rgba(0,0,0,0.4); cursor: pointer; }
.rs-sliderInput::-moz-range-track { height: 4px; border-radius: 2px; background: rgba(255,255,255,0.15); }
.rs-sliderPips { display: flex; gap: 4px; width: 100%; }
.rs-sliderPip { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,255,255,0.15); transition: background 0.15s; }
.rs-sliderPipActive { background: rgba(255,255,255,0.75); }

.rs-searchHint { font-size: 12px; color: rgba(255,255,255,0.3); text-align: center; }

/* Color cards */
.rs-colorCardGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
.rs-colorCard {
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 8px;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px; cursor: pointer; aspect-ratio: 1; transition: background 0.15s, border-color 0.15s;
}
.rs-colorCard:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.25); }
.rs-colorCard.rs-colorCardActive { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.5); }
.rs-colorCardLabel {
  font-size: 9px; font-weight: 600; letter-spacing: 0.4px; text-transform: uppercase;
  color: rgba(255,255,255,0.5); text-align: center; line-height: 1.2; flex-shrink: 0;
}
.rs-colorCard.rs-colorCardActive .rs-colorCardLabel { color: white; }
.rs-colorCardSwatch { flex: 1; width: 100%; border-radius: 5px; border: 1px solid rgba(0,0,0,0.2); min-height: 0; }

/* Color picker */
.rs-colorPicker { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; }
.rs-squareWrapper { position: relative; width: 100%; aspect-ratio: 1; flex-shrink: 0; }
.rs-hsvSquare { width: 100%; height: 100%; border-radius: 6px; cursor: crosshair; user-select: none; border: 1px solid rgba(255,255,255,0.1); }
.rs-squareDot {
  position: absolute; width: 14px; height: 14px; border-radius: 50%; border: 2px solid;
  background: transparent; pointer-events: none; box-shadow: 0 1px 5px rgba(0,0,0,0.6);
}
.rs-hueStrip {
  width: 100%; height: 18px; border-radius: 4px;
  background: linear-gradient(to right, hsl(0,100%,50%), hsl(60,100%,50%), hsl(120,100%,50%), hsl(180,100%,50%), hsl(240,100%,50%), hsl(300,100%,50%), hsl(360,100%,50%));
  position: relative; cursor: pointer; user-select: none;
}
.rs-hueThumb {
  position: absolute; top: 50%; transform: translateY(-50%); width: 14px; height: 14px;
  border-radius: 50%; border: 2px solid white; background: transparent;
  pointer-events: none; box-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
.rs-rgbRow { display: flex; gap: 8px; width: 100%; }
.rs-rgbChannel { display: flex; flex-direction: column; align-items: center; gap: 5px; flex: 1; }
.rs-rgbLabel { font-size: 10px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; }
.rs-rgbInput {
  width: 100%; padding: 6px 4px; background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12); border-radius: 6px; color: white;
  font-size: 12px; text-align: center; outline: none; appearance: textfield;
}
.rs-rgbInput::-webkit-inner-spin-button, .rs-rgbInput::-webkit-outer-spin-button { appearance: none; }
.rs-rgbInput:focus { border-color: rgba(255,255,255,0.35); }

.rs-palette { width: 100%; display: flex; flex-direction: column; gap: 8px; }
.rs-paletteGrid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; }
.rs-paletteChip {
  aspect-ratio: 2/3; border-radius: 3px; border: 1px solid rgba(0,0,0,0.2);
  cursor: pointer; padding: 0; transition: transform 0.1s, box-shadow 0.1s; position: relative;
}
.rs-paletteChip:hover { transform: scale(1.12); box-shadow: 0 2px 8px rgba(0,0,0,0.5); z-index: 1; }
.rs-paletteChip.rs-chipActive { outline: 2px solid white; outline-offset: 1px; transform: scale(1.12); z-index: 1; }

.rs-hexRow { display: flex; align-items: center; gap: 8px; width: 100%; }
.rs-colorSwatch { width: 28px; height: 28px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.15); flex-shrink: 0; }
.rs-hexInput {
  flex: 1; padding: 6px 10px; background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12); border-radius: 6px; color: white;
  font-size: 12px; font-family: monospace; letter-spacing: 1px; outline: none;
}
.rs-hexInput:focus { border-color: rgba(255,255,255,0.35); }

/* Room cards */
.rs-roomCardGrid { display: flex; flex-direction: column; gap: 10px; }
.rs-roomCard {
  position: relative; display: flex; flex-direction: column; align-items: center;
  justify-content: center; width: 100%; aspect-ratio: 1; padding: 16px;
  background: rgba(255,255,255,0.05); border: 1.5px solid rgba(255,255,255,0.08);
  border-radius: 14px; cursor: pointer; transition: background 0.18s, border-color 0.18s;
  text-align: center; gap: 0;
}
.rs-roomCard:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.18); }
.rs-roomCard.rs-roomCardAdd { border-style: dashed; border-color: rgba(255,255,255,0.1); background: transparent; }
.rs-roomCard.rs-roomCardAdd:hover:not(:disabled) { border-color: var(--room-accent, rgba(255,255,255,0.3)); }
.rs-roomCard.rs-roomCardAdd:disabled { opacity: 0.28; cursor: not-allowed; }
.rs-roomCardIcon { flex: 1; display: flex; align-items: center; justify-content: center; color: var(--room-accent, rgba(255,255,255,0.4)); transition: color 0.15s; }
.rs-roomCardIcon svg { width: 64px; height: 64px; }
.rs-roomCardLabel { font-size: 13px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: rgba(255,255,255,0.5); transition: color 0.15s; }
.rs-roomCardCount { position: absolute; top: 10px; right: 10px; font-size: 11px; font-weight: 500; color: rgba(255,255,255,0.3); letter-spacing: 0.3px; }

/* Nav */
.rs-nav {
  width: 76px; background: rgba(14,14,14,0.97); backdrop-filter: blur(12px);
  display: flex; flex-direction: column; align-items: center; padding: 28px 0; gap: 10px; flex-shrink: 0;
}
.rs-iconBtn {
  width: 54px; height: 54px; border-radius: 12px; border: none; background: transparent;
  color: rgba(255,255,255,0.4); cursor: pointer; display: flex; align-items: center;
  justify-content: center; transition: background 0.15s, color 0.15s;
}
.rs-iconBtn:hover { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.8); }
.rs-iconBtn.rs-iconActive { background: rgba(255,255,255,0.12); color: white; }
.rs-iconBtn svg { width: 28px; height: 28px; }

.rs-navDivider { width: 36px; height: 1px; background: rgba(255,255,255,0.12); margin: 4px 0; flex-shrink: 0; }
.rs-navRoomWrapper { position: relative; }
.rs-navRoom {
  width: 54px; height: 54px; border-radius: 12px; border: 1.5px solid var(--room-accent);
  background: transparent; cursor: pointer; display: flex; align-items: center;
  justify-content: center; transition: background 0.15s; color: var(--room-accent); padding: 0;
}
.rs-navRoom:hover { background: rgba(255,255,255,0.06); }
.rs-navRoom.rs-navRoomActive { background: rgba(255,255,255,0.15); }
.rs-navRoomIcon { display: flex; align-items: center; justify-content: center; }
.rs-navRoomIcon svg { width: 26px; height: 26px; }
.rs-navRoomRemove {
  position: absolute; top: -4px; right: -4px; width: 16px; height: 16px;
  border-radius: 50%; border: none; background: rgba(255,80,80,0.8); color: #fff;
  cursor: pointer; display: none; align-items: center; justify-content: center; padding: 0;
  transition: background 0.15s;
}
.rs-navRoomWrapper:hover .rs-navRoomRemove { display: flex; }
.rs-navRoomRemove:hover { background: rgba(255,60,60,1); }
.rs-navSpacer { flex: 1; }

/* Product grid */
.rs-productGrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.rs-productCard {
  display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 10px 6px;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px; color: rgba(255,255,255,0.65); cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.rs-productCard:hover { background: rgba(255,255,255,0.1); color: white; }
.rs-productCard.rs-productCardActive { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.3); color: white; }
.rs-productThumb { width: 100%; aspect-ratio: 3/4; object-fit: contain; border-radius: 6px; }
.rs-productLabel { font-size: 11px; font-weight: 500; text-align: center; line-height: 1.3; }
