.rs-3d-viewer{margin-top:16px;border:1px solid rgba(70,211,255,.25);border-radius:18px;background:linear-gradient(145deg,rgba(5,12,20,.95),rgba(10,15,28,.9));box-shadow:0 18px 60px rgba(0,0,0,.28),0 0 35px rgba(0,174,255,.06);overflow:hidden}
.rs-3d-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.rs-3d-head strong{display:block;font-size:14px;margin-top:2px}
.rs-3d-quality{font-size:10px;font-weight:900;letter-spacing:.12em;color:#72dcff;border:1px solid rgba(114,220,255,.25);border-radius:999px;padding:5px 8px}
.rs-3d-stage{position:relative;background:radial-gradient(circle at 50% 38%,rgba(42,104,135,.22),transparent 42%),repeating-conic-gradient(#101a23 0 25%,#0b131b 0 50%) 0/28px 28px;min-height:300px}
.rs-3d-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.42))}
.rs-3d-stage canvas{display:block;width:100%;height:clamp(300px,35vw,520px);touch-action:none}
.rs-3d-loading,.rs-3d-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;z-index:3;padding:20px;text-align:center}
.rs-3d-loading{background:rgba(3,7,12,.42);backdrop-filter:blur(4px)}
.rs-3d-error{color:#ff9da8;background:rgba(35,7,13,.55)}
.rs-3d-hint{position:absolute;left:10px;right:10px;bottom:9px;text-align:center;font-size:10px;color:rgba(255,255,255,.58);z-index:4;pointer-events:none}
.rs-3d-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;border-top:1px solid rgba(255,255,255,.08)}
.rs-3d-toolbar .btn{font-size:12px;padding:7px 10px}
.rs-3d-toolbar .btn.active{border-color:#36c8ff;box-shadow:0 0 18px rgba(54,200,255,.18)}
.rs-3d-animation{margin-left:auto;display:flex;align-items:center;gap:6px;color:#93a0b5;font-size:12px}
.rs-3d-animation select{max-width:180px;background:#0c1420;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:9px;padding:7px}
.v811-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.v811-asset-card{min-width:0}
.v811-asset-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.v811-asset-head h3{margin:5px 0 2px;font-size:18px}
.v811-asset-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.v811-asset-meta span{font-size:11px;padding:6px 9px;border:1px solid rgba(255,255,255,.08);border-radius:999px;color:#b8c4d5}
.v811-asset-card details>summary{list-style:none}
.v811-asset-card details>summary::-webkit-details-marker{display:none}
code{color:#72dcff}
pre{white-space:pre-wrap;background:#060a11;padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,.08)}
@media(max-width:900px){.v811-admin-grid{grid-template-columns:1fr}}
@media(max-width:600px){.rs-3d-toolbar{align-items:stretch}.rs-3d-animation{margin-left:0;width:100%}.rs-3d-animation select{flex:1;max-width:none}.rs-3d-hint{font-size:9px}}

.rs-3d-viewer{contain:content}
.rs-3d-stage{min-height:280px}
.rs-3d-stage canvas{outline:none}
.rs-3d-loading span:last-child{font-variant-numeric:tabular-nums}
.v811-asset-help{font-size:12px;line-height:1.55}
.v811-file-status{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.v811-file-status span{font-size:11px;padding:5px 8px;border-radius:999px;background:rgba(114,220,255,.07);border:1px solid rgba(114,220,255,.16)}
@media(max-width:600px){.rs-3d-stage canvas{height:clamp(280px,82vw,440px)}}


/* =========================================================
   RabbitSkin V8.11.2 FIX2 — Product layout hardening
   ========================================================= */
.rs-3d-viewer--product{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  clear:both;
  box-sizing:border-box;
  margin:16px 0 0;
}
.rs-3d-viewer--product *{box-sizing:border-box}
.rs-3d-viewer--product .rs-3d-stage{
  width:100%;
  min-width:0;
  overflow:hidden;
}
.rs-3d-viewer--product .rs-3d-stage canvas{
  width:100%!important;
  max-width:100%;
  display:block;
}
.rs-3d-viewer--product .rs-3d-toolbar{
  min-width:0;
}
.rs-3d-viewer--product .rs-3d-animation{
  min-width:0;
}
.rs-3d-viewer--product .rs-3d-animation select{
  min-width:0;
  width:auto;
}

/* Recommendations must always occupy the full product page row.
   This also protects against inherited grid/flex rules from templates. */
main.wrap > .recommendation-section,
.product-detail > .recommendation-section,
.recommendation-section--full{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  grid-column:1 / -1!important;
  float:none!important;
  clear:both!important;
  position:relative;
  box-sizing:border-box;
}
.recommendation-section--full .recommendation-grid{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.recommendation-section--full .recommendation-grid>.card{
  min-width:0;
  width:100%;
}
.recommendation-section--full .recommendation-grid .product-image{
  min-width:0;
  width:100%;
  overflow:hidden;
}
.recommendation-section--full .recommendation-grid h3{
  overflow-wrap:anywhere;
  word-break:normal;
}
@media(max-width:1000px){
  .recommendation-section--full .recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .recommendation-section--full .recommendation-grid{grid-template-columns:1fr}
  .rs-3d-viewer--product{margin-top:12px}
  .rs-3d-viewer--product .rs-3d-stage canvas{height:clamp(280px,82vw,440px)!important}
  .rs-3d-viewer--product .rs-3d-animation{width:100%}
  .rs-3d-viewer--product .rs-3d-animation select{flex:1;width:100%}
}


/* =========================================================
   V8.11.2 FIX3 — Product page layout isolation
   ========================================================= */
.product-page-main{
  display:block!important;
  width:min(1240px,92%)!important;
  margin-inline:auto!important;
}
.product-page-main > .product-detail{
  width:100%!important;
  max-width:none!important;
}
.product-page-main > .recommendation-section,
.product-page-main > .recommendation-section--full{
  display:block!important;
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:24px 0 0!important;
  padding:20px!important;
  clear:both!important;
  float:none!important;
  grid-column:auto!important;
  box-sizing:border-box!important;
}
.product-page-main > .recommendation-section .recommendation-grid,
.product-page-main > .recommendation-section--full .recommendation-grid{
  display:grid!important;
  width:100%!important;
  max-width:none!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:16px!important;
}
.product-page-main > .recommendation-section .recommendation-grid>.card,
.product-page-main > .recommendation-section--full .recommendation-grid>.card{
  min-width:0!important;
  width:100%!important;
}
@media(max-width:1000px){
  .product-page-main > .recommendation-section .recommendation-grid,
  .product-page-main > .recommendation-section--full .recommendation-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:640px){
  .product-page-main > .recommendation-section,
  .product-page-main > .recommendation-section--full{
    padding:14px!important;
    margin-top:16px!important;
  }
  .product-page-main > .recommendation-section .recommendation-grid,
  .product-page-main > .recommendation-section--full .recommendation-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
}
@media(max-width:430px){
  .product-page-main > .recommendation-section .recommendation-grid,
  .product-page-main > .recommendation-section--full .recommendation-grid{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   V8.11.2 FIX4 — 3D optional / product layout invariant
   This stylesheet is intentionally loaded on every product page.
   It must never reserve space for 3D; it only controls the layout.
   ========================================================= */
main.product-page-main{
  display:block!important;
  width:min(1240px,92%)!important;
  margin:0 auto!important;
}
main.product-page-main > .product-detail{
  display:grid!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:30px 0 0!important;
}
main.product-page-main > .recommendation-section.recommendation-section--full{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:24px 0 30px!important;
  clear:both!important;
  float:none!important;
  grid-column:auto!important;
}
main.product-page-main > .recommendation-section.recommendation-section--full > .recommendation-grid{
  display:grid!important;
  width:100%!important;
  box-sizing:border-box!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:16px!important;
}
@media(max-width:1000px){
  main.product-page-main > .recommendation-section.recommendation-section--full > .recommendation-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:640px){
  main.product-page-main > .product-detail{
    grid-template-columns:1fr!important;
    gap:16px!important;
    margin-top:16px!important;
  }
  main.product-page-main > .recommendation-section.recommendation-section--full{
    margin-top:16px!important;
    padding:14px!important;
  }
  main.product-page-main > .recommendation-section.recommendation-section--full > .recommendation-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
}
@media(max-width:430px){
  main.product-page-main > .recommendation-section.recommendation-section--full > .recommendation-grid{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   V8.11.2 FIX5 — Product detail columns independent of 3D
   The presence/absence of a 3D asset MUST NOT change the
   product detail grid. 3D is content inside media-column.
   ========================================================= */
main.product-page-main > .product-detail{
  display:grid!important;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)!important;
  align-items:start!important;
  gap:30px!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* The media column owns gallery + optional 3D. */
main.product-page-main > .product-detail > .media-column{
  min-width:0!important;
  width:100%!important;
  align-self:start!important;
}

/* The information column stays beside media whether 3D exists or not. */
main.product-page-main > .product-detail > .detail-info{
  min-width:0!important;
  width:100%!important;
  align-self:start!important;
}

/* No empty 3D space is ever reserved. */
main.product-page-main .rs-3d-viewer{
  width:100%!important;
  max-width:100%!important;
}

/* Keep the full-width recommendation outside the product grid. */
main.product-page-main > .recommendation-section.recommendation-section--full{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  clear:both!important;
  float:none!important;
  grid-column:auto!important;
}

/* Mobile: the same invariant remains true, but columns stack for usability.
   Whether 3D exists or not, the order is identical. */
@media (max-width: 767px){
  main.product-page-main > .product-detail{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }
}


/* =========================================================
   V8.11.2 FIX6 — FINAL PRODUCT GRID INVARIANT
   This block intentionally comes LAST. It overrides legacy
   product-detail media rules without touching Bootstrap/header.
   ========================================================= */

/* Desktop + tablet: always keep media and information side by side. */
@media (min-width: 768px){
  main.product-page-main > .product-detail{
    display:grid!important;
    grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)!important;
    align-items:start!important;
    gap:28px!important;
    width:100%!important;
    max-width:none!important;
    margin:30px 0 0!important;
    box-sizing:border-box!important;
  }

  main.product-page-main > .product-detail > .media-column{
    display:block!important;
    min-width:0!important;
    width:100%!important;
    grid-column:1!important;
    grid-row:1!important;
  }

  main.product-page-main > .product-detail > .detail-info{
    display:block!important;
    min-width:0!important;
    width:100%!important;
    grid-column:2!important;
    grid-row:1!important;
  }

  /* 3D is content of media-column, never a third product column. */
  main.product-page-main .rs-3d-viewer{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* Recommendations are outside product-detail and span the page. */
  main.product-page-main > .recommendation-section,
  main.product-page-main > .recommendation-section--full{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:24px 0 30px!important;
    clear:both!important;
    float:none!important;
    grid-column:auto!important;
    box-sizing:border-box!important;
  }

  main.product-page-main > .recommendation-section .recommendation-grid,
  main.product-page-main > .recommendation-section--full .recommendation-grid{
    display:grid!important;
    width:100%!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:16px!important;
    box-sizing:border-box!important;
  }
}

/* Real mobile: one column, but 3D remains between gallery and info. */
@media (max-width:767px){
  main.product-page-main > .product-detail{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:16px!important;
    width:100%!important;
    max-width:none!important;
    margin:16px 0 0!important;
  }

  main.product-page-main > .product-detail > .media-column,
  main.product-page-main > .product-detail > .detail-info{
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
  }

  main.product-page-main > .recommendation-section,
  main.product-page-main > .recommendation-section--full{
    display:block!important;
    width:100%!important;
    margin:16px 0 24px!important;
    clear:both!important;
    float:none!important;
  }

  main.product-page-main > .recommendation-section .recommendation-grid,
  main.product-page-main > .recommendation-section--full .recommendation-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
  }
}

@media (max-width:430px){
  main.product-page-main > .recommendation-section .recommendation-grid,
  main.product-page-main > .recommendation-section--full .recommendation-grid{
    grid-template-columns:1fr!important;
  }
}

/* V8.11.2 FIX9 — only the requested Shading toggle */
.rs-3d-shading{display:inline-flex;align-items:center;gap:6px;color:#93a0b5;font-size:12px;cursor:pointer}
.rs-3d-shading input{accent-color:#42d7ff}
@media(max-width:600px){.rs-3d-shading{margin-left:0}}


/* =========================================================
   V8.11.2 FIX10 — 3D Asset Manager UX
   ========================================================= */
.rs3d-search-panel{padding:14px 16px}
.rs3d-search-form{display:flex;gap:10px;align-items:center}
.rs3d-search-box{position:relative;flex:1;min-width:0}
.rs3d-search-box>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#6fdfff;pointer-events:none}
.rs3d-search-box .input{padding-left:38px;padding-right:40px;width:100%}
.rs3d-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#8c9bad;cursor:pointer;padding:5px}
.rs3d-search-clear:hover{color:#fff}
.rs3d-search-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:9px;color:#8290a5;font-size:11px}
.rs3d-search-meta span{display:inline-flex;align-items:center;gap:6px}
.rs3d-search-meta i{color:#63ddff}
.rs3d-upload-wrap{min-width:0}
.rs3d-upload-zone{
  position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;gap:11px;min-height:78px;padding:12px 14px;
  border:1px dashed rgba(93,212,255,.34);border-radius:13px;
  background:linear-gradient(135deg,rgba(65,183,230,.065),rgba(255,255,255,.018));
  cursor:pointer;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;
  overflow:hidden;
}
.rs3d-upload-zone:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(90,220,255,.06),transparent);transform:translateX(-100%);transition:transform .5s}
.rs3d-upload-zone:hover:after,.rs3d-upload-zone.is-dragover:after{transform:translateX(100%)}
.rs3d-upload-zone:hover,.rs3d-upload-zone.is-dragover{border-color:rgba(93,220,255,.9);background:rgba(51,172,215,.09);box-shadow:0 10px 24px rgba(0,160,230,.08);transform:translateY(-1px)}
.rs3d-upload-zone.is-ready{border-color:rgba(82,225,156,.75);background:rgba(50,185,115,.07)}
.rs3d-upload-zone.is-error{border-color:rgba(255,96,119,.8);background:rgba(190,40,65,.07)}
.rs3d-upload-zone>i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(83,211,255,.08);border:1px solid rgba(83,211,255,.15);color:#65ddff;font-size:20px}
.rs3d-upload-zone strong,.rs3d-upload-zone span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs3d-upload-zone strong{font-size:12px;color:#e8f4ff}
.rs3d-upload-zone span{font-size:10px;color:#8293a7;margin-top:3px}
.rs3d-upload-zone .btn{position:relative;z-index:2;white-space:nowrap}
.rs3d-upload-zone--compact{min-height:70px;grid-template-columns:36px minmax(0,1fr) auto;padding:9px 11px}
.rs3d-upload-zone--compact>i{width:36px;height:36px;font-size:17px}
.rs3d-hidden-file{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:700px){
  .rs3d-search-form{flex-wrap:wrap}
  .rs3d-search-box{flex-basis:100%}
  .rs3d-upload-zone{grid-template-columns:38px minmax(0,1fr);min-height:84px}
  .rs3d-upload-zone .btn{grid-column:1/-1;width:100%}
}


/* V8.11.2 FIX13 — Noesis-style compact lighting presets */
.rs3d-light-control{position:relative;display:inline-flex;align-items:center}
.rs3d-light-menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:30;min-width:145px;padding:6px;border:1px solid rgba(110,210,255,.25);border-radius:12px;background:rgba(8,14,24,.97);box-shadow:0 14px 35px rgba(0,0,0,.35)}
.rs3d-light-menu button{display:flex;width:100%;align-items:center;gap:8px;border:0;border-radius:8px;background:transparent;color:#dce8f5;padding:8px 9px;font-size:11px;text-align:left;cursor:pointer}
.rs3d-light-menu button:hover{background:rgba(87,207,255,.09);color:#fff}
.rs3d-light-menu button.is-active{background:rgba(87,207,255,.13);color:#73ddff}

/* V8.11.2 FIX14 — material fidelity controls */
.rs3d-light-sep{height:1px;margin:5px 4px;background:rgba(150,190,220,.14)}
.rs3d-light-menu button.is-active{background:rgba(87,207,255,.13);color:#73ddff}

/* =========================================================
   V8.11.3 — 3D Asset Manager 2.0
   ========================================================= */
.rs3d-search-form--manager{align-items:stretch}
.rs3d-filter{width:auto;min-width:145px;max-width:180px}
.v811-asset-identity{display:flex;align-items:center;gap:10px;min-width:0}
.v811-asset-thumb{width:48px;height:48px;flex:0 0 48px;border-radius:12px;display:grid;place-items:center;overflow:hidden;background:#070d16;border:1px solid rgba(114,220,255,.14);color:#5edcff}
.v811-asset-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.v811-asset-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.v811-asset-actions .btn-sm{padding:5px 7px}
.rs3d-upload-zone--smart{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:104px;padding:14px 16px}
.rs3d-drop-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(83,211,255,.08);border:1px solid rgba(83,211,255,.16);color:#65ddff;font-size:21px}
.rs3d-drop-copy{min-width:0}
.rs3d-drop-copy strong,.rs3d-drop-copy span,.rs3d-drop-copy small{display:block}
.rs3d-drop-copy strong{font-size:13px;color:#eaf6ff}
.rs3d-drop-copy span{font-size:11px;color:#7fe1ff;margin-top:4px}
.rs3d-drop-copy small{font-size:10px;color:#8293a7;margin-top:4px}
.rs3d-drop-status{margin-top:7px;font-size:11px;color:#8190a5}
.rs3d-drop-status i{color:#68ddff}
.rs3d-upload-zone--smart.is-ready{border-color:rgba(82,225,156,.78);background:rgba(50,185,115,.07)}
.rs3d-upload-zone--smart.is-ready .rs3d-drop-icon{color:#64e9a4;border-color:rgba(82,225,156,.25)}
.rs3d-upload-zone--smart.is-error{border-color:rgba(255,96,119,.8);background:rgba(190,40,65,.07)}
.v811-health{color:#7fe1b0!important}
@media(max-width:900px){
  .rs3d-search-form--manager .rs3d-filter{flex:1;min-width:130px}
}
@media(max-width:700px){
  .rs3d-upload-zone--smart{grid-template-columns:42px minmax(0,1fr)}
  .rs3d-drop-icon{width:42px;height:42px}
  .rs3d-upload-zone--smart [data-rs3d-smart-browse]{grid-column:1/-1;width:100%}
  .rs3d-filter{max-width:none;width:100%}
}

/* V8.11.3 Asset Manager 2.0 */
.v811-inspector{margin-top:10px;padding:10px;border:1px solid rgba(115,210,255,.12);border-radius:12px;background:rgba(4,9,16,.35)}
.v811-inspector-title{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#a7b9ca;text-transform:uppercase;letter-spacing:.08em}
.v811-inspector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}
.v811-inspector-grid span{padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.025)}
.v811-inspector-grid small,.v811-inspector-grid b{display:block}.v811-inspector-grid small{font-size:9px;color:#708196}.v811-inspector-grid b{font-size:11px;margin-top:2px}
.v811-validation{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.v811-validation span{font-size:10px;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.03)}
.v811-health--ok,.v811-validation .ok{color:#79e8b0}.v811-health--danger,.v811-validation .danger{color:#ff8397}
.rs3d-preview-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:18px}.rs3d-preview-modal[hidden]{display:none}
.rs3d-preview-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}
.rs3d-preview-dialog{position:relative;width:min(1100px,96vw);height:min(780px,92vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid rgba(90,210,255,.28);border-radius:18px;overflow:hidden;background:#060b13;box-shadow:0 25px 80px rgba(0,0,0,.55)}
.rs3d-preview-dialog>header,.rs3d-preview-dialog>footer{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06)}.rs3d-preview-dialog>header{display:flex;justify-content:space-between;align-items:center}
.rs3d-preview-body{min-height:0;background:#03070d}.rs3d-preview-body iframe{width:100%;height:100%;border:0;display:block}
.rs3d-preview-dialog>footer{border-bottom:0;border-top:1px solid rgba(255,255,255,.06)}.rs3d-preview-tools{display:flex;flex-wrap:wrap;gap:6px}.rs3d-preview-tools .btn{font-size:10px}
body.rs3d-modal-open{overflow:hidden}
@media(max-width:700px){.v811-inspector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rs3d-preview-modal{padding:8px}.rs3d-preview-dialog{height:94vh;width:98vw;border-radius:12px}}

/* V8.12 — 3D Web Optimizer */
.v812-optimizer-panel{border-color:rgba(115,210,255,.16)}
.v812-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.v812-panel-head h2{margin:.2rem 0 0;font-size:20px}
.v812-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.v812-profile{padding:11px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(255,255,255,.025)}
.v812-profile span,.v812-profile b,.v812-profile small{display:block}.v812-profile span{font-size:10px;color:#7f91a6;text-transform:uppercase;letter-spacing:.06em}.v812-profile b{font-size:13px;margin:3px 0}.v812-profile small{font-size:10px;color:#718096;line-height:1.35}
.v812-card-tools{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.v812-card-tools form{margin:0}
@media(max-width:900px){.v812-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.v812-profile-grid{grid-template-columns:1fr}.v812-panel-head{display:block}}

/* V8.13 — 3D Showcase */
.rs3d-showcase-panel{margin-top:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(7,11,18,.82);backdrop-filter:blur(10px)}
.rs3d-showcase-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rs3d-showcase-group{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.rs3d-showcase-group>span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8190a4;margin-right:3px}
.rs3d-showcase-panel button{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035);color:inherit;border-radius:7px;padding:5px 8px;font-size:11px;cursor:pointer}
.rs3d-showcase-panel button:hover,.rs3d-showcase-panel button.active,.rs3d-showcase-panel button.rs3d-showcase-toggle.active{background:rgba(255,255,255,.11)}
.rs3d-showcase-toggle{margin-left:auto}.rs3d-showcase-timeline{display:flex;align-items:center;gap:7px;margin-top:9px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}
.rs3d-showcase-timeline input[type=range]{flex:1;min-width:120px}.rs3d-showcase-timeline span{min-width:130px;font-size:10px;color:#91a0b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs3d-showcase-mode .rs3d-showcase-panel{border-color:rgba(255,255,255,.16)}
@media(max-width:700px){.rs3d-showcase-group{width:100%}.rs3d-showcase-toggle{margin-left:0}.rs3d-showcase-timeline span{min-width:85px}}

/* V8.13 UI FIX — compact 3D controls drawer */
.rs3d-control-menu{position:absolute;z-index:40;top:10px;right:10px;display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(100,215,255,.22);border-radius:12px;background:rgba(8,15,25,.88);color:#dcecff;box-shadow:0 8px 28px rgba(0,0,0,.28);backdrop-filter:blur(10px);cursor:pointer;font-size:11px}
.rs3d-control-menu i{font-size:18px;color:#7fe9ff}.rs3d-control-menu span{font-weight:700;letter-spacing:.03em}
.rs3d-control-backdrop{position:absolute;z-index:49;inset:0;background:rgba(0,0,0,.32);opacity:0;pointer-events:none;transition:opacity .2s ease}
.rs3d-control-drawer{position:absolute!important;z-index:50;top:10px;right:10px;width:min(370px,calc(100% - 20px));max-height:calc(100% - 20px);overflow:auto;margin:0!important;padding:0!important;border:1px solid rgba(100,215,255,.18)!important;border-radius:16px!important;background:rgba(8,14,23,.97)!important;box-shadow:0 22px 70px rgba(0,0,0,.55);transform:translateX(calc(100% + 24px));opacity:0;pointer-events:none;transition:transform .24s ease,opacity .2s ease}
.rs3d-controls-open .rs3d-control-backdrop{opacity:1;pointer-events:auto}
.rs3d-controls-open .rs3d-control-drawer{transform:translateX(0);opacity:1;pointer-events:auto}
.rs3d-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid rgba(255,255,255,.07);position:sticky;top:0;background:rgba(8,14,23,.97);z-index:2}
.rs3d-drawer-head strong{display:block;font-size:15px;margin-top:2px}.rs3d-drawer-kicker{font-size:9px;letter-spacing:.12em;color:#75e6ff}
.rs3d-drawer-close{width:32px;height:32px;border-radius:9px;border:1px solid rgba(255,255,255,.08)!important;padding:0!important;background:rgba(255,255,255,.04)!important}
.rs3d-drawer-body{padding:12px 14px 14px}.rs3d-control-section{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.rs3d-control-label,.rs3d-control-label-row{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#8b9bb0}.rs3d-control-label i{color:#73dcf8;margin-right:5px}
.rs3d-control-label-row{display:flex;justify-content:space-between;align-items:center}.rs3d-control-label-row>[data-rs3d-timeline-label]{text-transform:none;letter-spacing:0;font-size:10px;color:#718096}
.rs3d-option-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.rs3d-option-grid-2{grid-template-columns:repeat(2,1fr)}
.rs3d-control-drawer button{font-family:inherit;color:#dbe7f4;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:9px;padding:8px 6px;font-size:10px;cursor:pointer}.rs3d-control-drawer button.active{border-color:rgba(95,220,255,.55);background:rgba(70,190,230,.12);color:#86ebff}
.rs3d-animation-select-wrap{display:flex;align-items:center;gap:8px;margin-top:8px;padding:0 9px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.025)}
.rs3d-animation-select-wrap select{width:100%;padding:8px 2px;background:transparent;border:0;color:#dce8f4;outline:none;font-size:11px}.rs3d-animation-select-wrap option{background:#0b111b}
.rs3d-control-drawer .rs3d-showcase-timeline{margin-top:8px;padding-top:0;border-top:0}.rs3d-showcase-timeline input[type=range]{accent-color:#2aaef0}
.rs3d-showcase-action{width:100%;display:flex!important;align-items:center;gap:10px;text-align:left;padding:10px!important;margin-top:12px!important;border-color:rgba(100,215,255,.16)!important}.rs3d-showcase-action>span{flex:1}.rs3d-showcase-action b,.rs3d-showcase-action small{display:block}.rs3d-showcase-action small{font-size:9px;color:#748399;margin-top:2px}.rs3d-showcase-action.active{border-color:rgba(110,230,255,.6)!important;background:rgba(70,190,230,.12)!important}
.rs3d-animation-section:not(.rs3d-has-animation){opacity:.62}
@media(max-width:700px){
  .rs3d-control-menu{top:8px;right:8px;width:42px;height:42px;justify-content:center;padding:0;border-radius:12px}.rs3d-control-menu span{display:none}.rs3d-control-menu i{font-size:21px}
  .rs3d-control-drawer{top:8px;right:8px;width:min(340px,calc(100% - 16px));max-height:calc(100% - 16px);border-radius:15px!important}
  .rs3d-option-grid{grid-template-columns:repeat(2,1fr)}
}

/* V8.13.3 — Showcase beside Auto rotate */
.rs3d-showcase-minimal{position:static!important;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 13px;border:1px solid rgba(100,215,255,.20);border-radius:11px;background:rgba(8,15,25,.82);color:#dcecff;box-shadow:0 7px 24px rgba(0,0,0,.18);backdrop-filter:blur(8px);cursor:pointer;font:700 10px/1 inherit;letter-spacing:.03em;vertical-align:middle}
.rs3d-showcase-minimal i{font-size:14px;color:#7fe9ff}.rs3d-showcase-minimal.active{border-color:rgba(110,230,255,.58);background:rgba(70,190,230,.13);color:#86ebff;box-shadow:0 0 18px rgba(70,190,230,.12)}
.rs3d-showcase-minimal:hover{background:rgba(255,255,255,.08)}
@media(max-width:700px){.rs3d-showcase-minimal{min-height:40px;padding:8px 10px}.rs3d-showcase-minimal span{display:inline}.rs3d-showcase-minimal i{font-size:15px}}

/* V8.13.4 — pre-save local 3D preview */
.rs3d-pre-save-preview{margin-top:8px}
.rs3d-local-preview-modal{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:20px}
.rs3d-local-preview-modal[hidden]{display:none}
.rs3d-local-preview-dialog{width:min(1000px,96vw);overflow:hidden}
.rs3d-local-preview-body{height:min(68vh,680px);background:#070b12}
.rs3d-local-preview-body iframe{width:100%;height:100%;border:0;display:block}
.rs3d-local-tools{display:flex;flex-wrap:wrap;gap:8px;padding:12px}
@media(max-width:700px){.rs3d-local-preview-modal{padding:8px}.rs3d-local-preview-body{height:62vh}.rs3d-local-tools .btn{flex:1 1 auto}}

.rs3d-local-preview-body{position:relative;min-height:420px}.rs3d-local-preview-body canvas{display:block;width:100%;height:100%;min-height:420px}.rs3d-local-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:2;color:#9edfff;font-weight:700;pointer-events:none}.rs3d-local-error{position:absolute;left:20px;right:20px;bottom:20px;z-index:3;padding:12px 14px;border:1px solid #7a3142;border-radius:10px;background:#160b12;color:#ffd5df;font-weight:600}.rs3d-local-error[hidden],.rs3d-local-loading[hidden]{display:none}

/* V8.14 · 3D Asset Intelligence */
.v814-intelligence{margin-top:14px;border:1px solid rgba(70,210,255,.22);border-radius:16px;padding:14px;background:linear-gradient(145deg,rgba(8,18,30,.92),rgba(5,10,18,.82));box-shadow:0 10px 30px rgba(0,0,0,.18)}
.v814-intel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.v814-intel-head strong{display:block;font-size:15px}.v814-score{min-width:62px;text-align:center;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:6px 9px}.v814-score b{font-size:22px}.v814-score small{opacity:.55}.v814-score--good{border-color:rgba(65,220,160,.35)}.v814-score--warn{border-color:rgba(255,190,70,.35)}.v814-score--bad{border-color:rgba(255,90,110,.4)}
.v814-intel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v814-intel-grid>div{border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:10px;min-width:0}.v814-intel-grid small,.v814-intel-grid span{display:block;color:#8793a8;font-size:11px}.v814-intel-grid b{display:block;margin:3px 0;font-size:13px}.v814-meter{height:4px!important;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin-top:7px}.v814-meter i{display:block;height:100%;background:#53d9ff;border-radius:99px}.v814-status--ok{color:#62e6b0}.v814-status--warn{color:#ffd16b}.v814-status--bad{color:#ff7185}.v814-validation{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.v814-validation span{border:1px solid rgba(255,255,255,.09);border-radius:999px;padding:5px 8px;font-size:10px}.v814-validation .ok{color:#69e5b5}.v814-validation .warn{color:#ffd16b}.v814-validation .danger{color:#ff7185}.v814-reasons{margin-top:9px;color:#b8c3d4;font-size:11px}.v814-reasons i{color:#ffd15c;margin-right:4px}
@media(max-width:900px){.v814-intel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.v814-intel-grid{grid-template-columns:1fr}.v814-intel-head{align-items:flex-start}}

/* V8.15 · 3D Pipeline */
.v815-pipeline-panel{border:1px solid rgba(89,211,255,.18)}
.v815-pipeline-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.v815-pipeline-head h2{margin:.2rem 0 .3rem}
.v815-pipeline-actions{display:flex;gap:8px;flex-wrap:wrap}
.v815-pipeline-actions form{margin:0}
.v815-pipeline-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.v815-pipeline-stats>div{padding:13px 14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}
.v815-pipeline-stats small,.v815-pipeline-stats span{display:block;color:#8e9aaa;font-size:.76rem}
.v815-pipeline-stats b{display:block;font-size:1.1rem;margin:.15rem 0}
.v815-queue-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.v815-versions{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 12px}
.v815-versions summary{cursor:pointer;font-weight:700}
.v815-version-list{display:grid;gap:8px;margin-top:10px}
.v815-version-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}
.v815-version-row div{min-width:0}.v815-version-row b,.v815-version-row small{display:block}.v815-version-row small{color:#8995a6;font-size:.72rem}
.v815-version-row form{margin:0}
@media(max-width:900px){.v815-pipeline-head{flex-direction:column}.v815-pipeline-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.v815-pipeline-stats{grid-template-columns:1fr}.v815-version-row{align-items:flex-start;flex-direction:column}}


/* V8.16 · 3D Performance */
.v816-performance-panel{border:1px solid rgba(89,211,255,.18);overflow:hidden}
.v816-performance-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.v816-performance-head h2{margin:.2rem 0 .3rem}
.v816-cap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.v816-cap-grid>div{padding:13px 14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}
.v816-cap-grid small,.v816-cap-grid span{display:block;color:#8e9aaa;font-size:.75rem}
.v816-cap-grid b{display:block;font-size:.92rem;margin:.25rem 0}
.v816-ok{color:#62e6b0}.v816-warn{color:#ffd16b}
.v816-perf-foot{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;color:#aeb8c8;font-size:.74rem}
.v816-perf-foot span{padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.07)}
.v816-worker-note{font-size:.72rem;color:#62e6b0;margin-left:5px}
@media(max-width:1000px){.v816-cap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.v816-performance-head{flex-direction:column}.v816-cap-grid{grid-template-columns:1fr}}

/* =========================================================
   V8.17 — Showcase avanzado
   ========================================================= */
.rs3d-showcase-panel--advanced{position:relative;display:block;margin-top:10px;padding:0!important;overflow:hidden;background:rgba(6,11,18,.94)!important;border-color:rgba(111,224,255,.18)!important}
.rs3d-showcase-panel--advanced[hidden]{display:none!important}
.rs817-head{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.07)}
.rs817-head span{display:block;font-size:9px;letter-spacing:.14em;color:#76e7ff}.rs817-head strong{display:block;margin-top:3px;font-size:13px;color:#e5f1fb}.rs817-head button{width:30px;height:30px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.04);color:#dbe9f5;font-size:18px;cursor:pointer}
.rs817-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.055)}
.rs817-block{min-width:0;padding:12px;background:rgba(8,14,23,.94)}
.rs817-block>label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#8d9caf}.rs817-block>label b{font-size:10px;color:#bfefff;letter-spacing:0}
.rs817-buttons{display:flex;flex-wrap:wrap;gap:6px}.rs817-block button,.rs817-actions button{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035);color:#dbe8f3;border-radius:8px;padding:7px 9px;font:600 10px/1 inherit;cursor:pointer}.rs817-block button:hover,.rs817-block button.active,.rs817-actions button:hover,.rs817-actions button.active{border-color:rgba(110,225,255,.45);background:rgba(70,190,230,.11);color:#91edff}
.rs817-block small{display:block;margin-top:7px;font-size:9px;color:#708096;line-height:1.35}.rs817-block input[type=range]{width:100%;accent-color:#45c7f2}.rs817-actions{grid-column:1/-1;display:flex;gap:7px;padding:10px;background:rgba(5,10,17,.98);border-top:1px solid rgba(255,255,255,.06)}.rs817-actions button{flex:1;min-height:34px}.rs817-actions i{margin-right:5px;color:#80e7ff}
.rs3d-presentation-mode .rs3d-showcase-minimal,.rs3d-presentation-mode .rs3d-showcase-panel--advanced{opacity:.08;transition:opacity .2s ease}.rs3d-presentation-mode .rs3d-showcase-minimal:hover,.rs3d-presentation-mode .rs3d-showcase-panel--advanced:hover{opacity:1}
@media(max-width:700px){.rs817-grid{grid-template-columns:1fr}.rs817-actions{grid-column:auto}.rs817-actions button{flex:1}.rs817-block{padding:11px}}

/* V8.17.1 · Admin global Showcase switch */
.rs817-showcase-settings{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:rgba(111,224,255,.16)!important;background:linear-gradient(135deg,rgba(8,15,25,.92),rgba(8,12,20,.82))!important}
.rs817-setting-copy{min-width:0}.rs817-setting-copy .eyebrow{display:inline-flex;align-items:center;gap:6px;color:#7fe9ff;font-size:9px;letter-spacing:.12em}.rs817-setting-copy h2{margin-top:5px}.rs817-switch-form{margin:0}.rs817-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}.rs817-switch input{position:absolute;opacity:0;pointer-events:none}.rs817-switch-track{width:58px;height:32px;padding:3px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);display:inline-flex;align-items:center;transition:.18s ease}.rs817-switch-thumb{width:24px;height:24px;border-radius:50%;background:#8b98a8;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:.18s ease}.rs817-switch input:checked + .rs817-switch-track{background:rgba(60,205,170,.22);border-color:rgba(80,225,190,.58)}.rs817-switch input:checked + .rs817-switch-track .rs817-switch-thumb{transform:translateX(26px);background:#65e4bd}.rs817-switch-state{min-width:82px;font-size:10px;font-weight:800;letter-spacing:.08em;color:#a9b7c8}.rs817-switch input:checked ~ .rs817-switch-state{color:#70e8c3}
@media(max-width:700px){.rs817-showcase-settings{align-items:flex-start;flex-direction:column}.rs817-switch-form{width:100%}.rs817-switch{width:100%;justify-content:flex-start}}

/* V8.17.3 — Lighting presets inside the Luz control */
.rs3d-light-menu-title{display:flex;align-items:center;gap:7px;padding:7px 9px 5px;color:#79ddff;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.rs3d-light-menu-title i{font-size:12px}
.rs3d-light-presets{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:2px 0 5px}
.rs3d-light-presets button{min-width:0;padding:7px 7px;gap:6px;align-items:center;border:1px solid transparent}
.rs3d-light-presets button>i{flex:0 0 auto;font-size:13px;color:#8de5ff}
.rs3d-light-presets button span{min-width:0;display:block;overflow:hidden}
.rs3d-light-presets button strong,.rs3d-light-presets button small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs3d-light-presets button strong{font-size:10px;line-height:1.2;font-weight:700}
.rs3d-light-presets button small{margin-top:2px;color:#71869b;font-size:8px;line-height:1.1}
.rs3d-light-presets button.is-active{border-color:rgba(87,207,255,.28);background:rgba(87,207,255,.13);color:#73ddff}
.rs3d-light-presets button.is-active small{color:#8ddcf4}
.rs3d-light-menu{min-width:238px}
@media(max-width:560px){.rs3d-light-menu{min-width:205px}.rs3d-light-presets button{padding:7px 6px}}
