.b3dv-shell{position:relative;width:100%;isolation:isolate}
.b3dv-shell .b3dv-viewer{transition:opacity .28s ease}
.b3dv-shell.is-ready .b3dv-viewer{opacity:1;visibility:visible}

.b3dv-viewer{
  --b3dv-bg1:#f7f9fc;--b3dv-bg2:#eef3f9;--b3dv-viewer-border:#dfe4eb;--b3dv-viewer-radius:24px;
  --b3dv-grid-color:#92a4b8;--b3dv-grid-opacity:.22;--b3dv-accent:#2b5cf5;--b3dv-kicker:#2b5cf5;
  --b3dv-text:#0f1620;--b3dv-subtitle:#637083;--b3dv-panel:#fff;--b3dv-panel-border:#dfe4eb;
  --b3dv-button-bg:#fff;--b3dv-button-text:#0f1620;--b3dv-button-border:#d6dce5;
  --b3dv-button-hover-bg:#fff;--b3dv-button-hover-text:#2b5cf5;--b3dv-button-hover-border:#2b5cf5;
  --b3dv-button-active-bg:#2b5cf5;--b3dv-button-active-text:#fff;--b3dv-button-active-border:#2b5cf5;--b3dv-button-radius:999px;
  --b3dv-project-bg:#fff;--b3dv-project-text:#0f1620;--b3dv-project-border:#d6dce5;
  --b3dv-project-hover-bg:#fff;--b3dv-project-hover-text:#2b5cf5;--b3dv-project-hover-border:#2b5cf5;
  --b3dv-project-active-bg:#2b5cf5;--b3dv-project-active-text:#fff;--b3dv-project-active-border:#2b5cf5;--b3dv-project-radius:999px;
  --b3dv-project-font:"Manrope";--b3dv-project-font-size:14px;--b3dv-project-height:40px;
  --b3dv-card-radius:24px;--b3dv-title-font:"Oxanium";--b3dv-subtitle-font:"Manrope";--b3dv-ui-font:"Manrope";
  --b3dv-title-size:30px;--b3dv-subtitle-size:16px;--b3dv-height:760px;--b3dv-tablet-height:760px;--b3dv-mobile-height:680px;
  position:relative;isolation:isolate;width:100%;height:var(--b3dv-height);min-height:0;overflow:hidden;
  display:flex;flex-direction:column;border-radius:var(--b3dv-viewer-radius);
  background:linear-gradient(180deg,var(--b3dv-bg1),var(--b3dv-bg2));color:var(--b3dv-text);
  font-family:var(--b3dv-ui-font),system-ui,sans-serif;border:1px solid var(--b3dv-viewer-border);
  box-shadow:0 22px 70px rgba(25,42,67,.11)
}
.b3dv-viewer *{box-sizing:border-box}
.b3dv-grid-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--b3dv-grid-opacity);background-image:linear-gradient(var(--b3dv-grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--b3dv-grid-color) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 100%)}

/* Encabezado: ocupa su altura real, por lo que nunca tapa el modelo. */
.b3dv-header{position:relative;z-index:12;flex:0 0 auto;margin:18px 18px 0;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:28px;background:var(--b3dv-panel);border:1px solid var(--b3dv-panel-border);border-radius:var(--b3dv-card-radius);box-shadow:0 8px 30px rgba(25,42,67,.055);pointer-events:auto}
.b3dv-title-wrap{display:block;min-width:0;max-width:min(690px,48%);flex:1 1 420px}
.b3dv-kicker{display:block;margin:0 0 7px;color:var(--b3dv-kicker);font:800 12px/1.2 var(--b3dv-ui-font);letter-spacing:.18em;text-transform:uppercase}
.b3dv-title{margin:0;color:var(--b3dv-text);font-family:var(--b3dv-title-font),sans-serif;font-size:var(--b3dv-title-size);font-weight:600;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.b3dv-subtitle{margin:9px 0 0;color:var(--b3dv-subtitle);font-family:var(--b3dv-subtitle-font),sans-serif;font-size:var(--b3dv-subtitle-size);font-weight:500;line-height:1.35}

.b3dv-toolbar{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px;pointer-events:auto;flex:1 1 640px;min-width:0}
.b3dv-view-controls,.b3dv-utility-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;width:100%}
.b3dv-viewer .b3dv-toolbar button{appearance:none!important;-webkit-appearance:none!important;border:1px solid var(--b3dv-button-border)!important;border-radius:var(--b3dv-button-radius)!important;background:var(--b3dv-button-bg)!important;color:var(--b3dv-button-text)!important;font-family:var(--b3dv-ui-font),sans-serif!important;font-weight:800!important;letter-spacing:.055em!important;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;white-space:nowrap;outline:0!important;box-shadow:none!important}
.b3dv-view-controls button{min-width:92px;height:40px;padding:0 15px;font-size:10px;line-height:1;text-transform:uppercase}
.b3dv-utility-controls button{width:42px;height:34px;padding:0;font-size:17px;line-height:1}
.b3dv-viewer .b3dv-toolbar button:hover{background:var(--b3dv-button-hover-bg)!important;color:var(--b3dv-button-hover-text)!important;border-color:var(--b3dv-button-hover-border)!important;border-radius:var(--b3dv-button-radius)!important;transform:translateY(-1px);box-shadow:0 6px 18px rgba(24,62,132,.10)!important}
.b3dv-viewer .b3dv-toolbar button.is-active,.b3dv-viewer .b3dv-toolbar button.is-active:hover,.b3dv-viewer .b3dv-toolbar button.is-active:focus,.b3dv-viewer .b3dv-toolbar button.is-active:active{background:var(--b3dv-button-active-bg)!important;color:var(--b3dv-button-active-text)!important;border:1px solid var(--b3dv-button-active-border)!important;border-radius:var(--b3dv-button-radius)!important;outline:0!important;transform:translateY(-1px);box-shadow:0 7px 20px rgba(43,92,245,.20)!important}
.b3dv-viewer .b3dv-toolbar button:focus,.b3dv-viewer .b3dv-toolbar button:active{border-radius:var(--b3dv-button-radius)!important;outline:0!important}
.b3dv-viewer .b3dv-toolbar button:focus-visible{outline:0!important;box-shadow:0 0 0 3px rgba(43,92,245,.20)!important}
.b3dv-model-chip:focus-visible{outline:0!important;box-shadow:0 0 0 3px rgba(43,92,245,.20)!important}

/* Visor: flex para que la altura se adapte a encabezados de una o varias líneas. */
.b3dv-stage{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow:hidden;margin-top:4px}
.b3dv-canvas{position:absolute;inset:0}
.b3dv-canvas canvas{display:block;width:100%!important;height:100%!important;touch-action:none}
.b3dv-loading,.b3dv-empty{position:absolute;inset:0;z-index:9;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:7px;padding:30px;background:radial-gradient(circle at center,rgba(43,92,245,.08),transparent 34%);transition:.25s ease}
.b3dv-loading.is-hidden,.b3dv-empty.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.b3dv-loader-mark{width:42px;height:42px;border:1px solid rgba(15,22,32,.12);border-top-color:var(--b3dv-accent);border-radius:50%;animation:b3dv-spin .8s linear infinite}
@keyframes b3dv-spin{to{transform:rotate(360deg)}}
.b3dv-loading strong,.b3dv-empty strong{font:600 19px var(--b3dv-title-font);color:var(--b3dv-text)}
.b3dv-loading span,.b3dv-empty span{font-size:12px;color:var(--b3dv-subtitle)}
.b3dv-progress{width:min(240px,60vw);height:4px;margin-top:8px;overflow:hidden;border-radius:999px;background:rgba(15,22,32,.08)}
.b3dv-progress i{display:block;width:0;height:100%;border-radius:inherit;background:var(--b3dv-accent);transition:width .22s ease}

/* Selector de proyectos independiente: solo uno activo cada vez.
   Se resetean estilos de temas de WordPress para evitar botones cuadrados o a ancho completo. */
.b3dv-footer{position:absolute;z-index:12;left:20px;right:20px;bottom:18px;display:flex;align-items:flex-end;justify-content:flex-start;gap:14px;pointer-events:none}
.b3dv-model-selector{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;pointer-events:auto;max-width:100%}
.b3dv-viewer .b3dv-model-chip{appearance:none!important;-webkit-appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;width:auto!important;max-width:100%!important;min-width:92px!important;height:var(--b3dv-project-height)!important;min-height:0!important;margin:0!important;padding:0 15px!important;border:1px solid var(--b3dv-project-border)!important;border-radius:var(--b3dv-project-radius)!important;background:var(--b3dv-project-bg)!important;color:var(--b3dv-project-text)!important;font-family:var(--b3dv-project-font),sans-serif!important;font-size:var(--b3dv-project-font-size)!important;line-height:1!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;text-align:center!important;white-space:nowrap!important;box-shadow:none!important;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.b3dv-viewer .b3dv-model-chip:hover{background:var(--b3dv-project-hover-bg)!important;color:var(--b3dv-project-hover-text)!important;border-color:var(--b3dv-project-hover-border)!important;transform:translateY(-1px);box-shadow:0 6px 18px rgba(24,62,132,.10)!important}
.b3dv-viewer .b3dv-model-chip.is-active{background:var(--b3dv-project-active-bg)!important;color:var(--b3dv-project-active-text)!important;border-color:var(--b3dv-project-active-border)!important;box-shadow:0 7px 20px rgba(43,92,245,.20)!important}
.b3dv-viewer .b3dv-model-chip.has-error{opacity:.45;cursor:not-allowed}
.b3dv-viewer .b3dv-model-chip.is-loading{opacity:.72;cursor:wait!important;pointer-events:none!important}

.b3dv-properties{display:none!important}
.b3dv-viewer.b3dv-hide-header .b3dv-header{display:none}
.b3dv-viewer.b3dv-hide-toolbar .b3dv-toolbar{display:none!important}
.b3dv-viewer.b3dv-hide-toolbar .b3dv-title-wrap{max-width:100%}
.b3dv-viewer.b3dv-hide-selector .b3dv-model-selector{display:none!important}
.b3dv-viewer:fullscreen{border-radius:0!important;height:100vh!important;max-height:none!important}
.b3dv-error{padding:12px;background:#fff3f3;border:1px solid #e4b7b7;color:#9f2323;border-radius:8px}
.b3dv-empty.is-error strong{color:#c53636}

@media(max-width:1280px){
  .b3dv-header{align-items:flex-start;gap:18px;padding:20px}
  .b3dv-title-wrap{max-width:42%;flex-basis:360px}
  .b3dv-toolbar{flex-basis:58%}
  .b3dv-view-controls{display:grid;grid-template-columns:repeat(3,minmax(88px,1fr));gap:7px}
  .b3dv-view-controls button{min-width:0;width:100%;padding:0 10px}
  .b3dv-utility-controls{justify-content:flex-end}
}

@media(max-width:960px){
  .b3dv-shell{height:var(--b3dv-tablet-height,760px)!important;min-height:0!important}
  .b3dv-viewer{height:var(--b3dv-tablet-height,760px)!important;min-height:0!important}
  .b3dv-header{display:block}
  .b3dv-title-wrap{max-width:100%}
  .b3dv-toolbar{margin-top:16px;width:100%;display:block}
  .b3dv-view-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%}
  .b3dv-view-controls button{height:39px;width:100%;min-width:0}
  .b3dv-utility-controls{display:grid;grid-template-columns:repeat(4,42px);justify-content:end;margin-top:7px;width:100%}
}

@media(max-width:760px){
  .b3dv-shell{height:var(--b3dv-mobile-height,680px)!important;min-height:0!important;border-radius:16px!important}
  .b3dv-viewer{height:var(--b3dv-mobile-height)!important;min-height:0!important;border-radius:min(var(--b3dv-viewer-radius),18px)}
  .b3dv-header{margin:10px 10px 0;padding:15px;border-radius:min(var(--b3dv-card-radius),20px)}
  .b3dv-kicker{font-size:9px;margin-bottom:5px}
  .b3dv-title{font-size:clamp(20px,6.5vw,var(--b3dv-title-size));line-height:1.06}
  .b3dv-subtitle{font-size:clamp(11px,3.6vw,var(--b3dv-subtitle-size));margin-top:6px}
  .b3dv-toolbar{margin-top:13px}
  .b3dv-view-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .b3dv-view-controls button{height:36px;font-size:9px;padding:0 6px}
  .b3dv-utility-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}
  .b3dv-utility-controls button{width:100%;height:34px;font-size:16px}
  .b3dv-stage{margin-top:2px;min-height:220px}
  .b3dv-footer{left:10px;right:10px;bottom:10px;overflow:hidden}
  .b3dv-model-selector{gap:6px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding:2px 2px 5px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .b3dv-viewer .b3dv-model-chip{flex:0 0 auto!important;min-width:92px!important;height:var(--b3dv-project-height)!important;padding:0 15px!important;font-size:var(--b3dv-project-font-size)!important}
}

@media(max-width:420px){
  .b3dv-header{padding:13px}
  .b3dv-title{font-size:clamp(19px,6.3vw,var(--b3dv-title-size))}
  .b3dv-view-controls button{height:34px;font-size:8.5px}
  .b3dv-utility-controls button{height:32px}
}
