#evacuation-plans{--evac-purple:#523178;--evac-mid:#8c4799;--evac-yellow:#f9b52c;--evac-ink:#2e1b43}.evac-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:28px;border-radius:24px;background:linear-gradient(135deg,#fff,#f5f1f8);border:1px solid #ece4f1;margin-bottom:18px}.evac-hero span{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--evac-mid)}.evac-hero h2{margin:6px 0 8px;font-size:30px;color:var(--evac-ink)}.evac-hero p{margin:0;color:#665c6d}.evac-state{min-width:220px;background:white;border:1px solid #e5daeb;border-radius:18px;padding:14px 16px;display:grid;gap:4px}.evac-state small{font-weight:800;color:#8c7e93}.evac-state strong{color:var(--evac-purple)}.evac-state span{font-size:12px;color:#74697a}.evac-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}.evac-panel,.evac-work{background:white;border:1px solid #ece6f0;border-radius:22px;padding:18px;box-shadow:0 8px 30px rgba(46,27,67,.06)}.evac-panel{display:flex;flex-direction:column;gap:12px}.evac-panel h3{font-size:15px;margin:0;color:var(--evac-ink)}.evac-panel label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#62576a}.evac-panel input,.evac-panel select{border:1px solid #d9cfdf;border-radius:12px;padding:11px;background:white}.evac-primary,.evac-secondary,.evac-toolbar button{border:0;border-radius:12px;padding:10px 12px;font-weight:800;cursor:pointer}.evac-primary{background:var(--evac-purple);color:white}.evac-secondary{background:#f1ebf5;color:var(--evac-purple)}.evac-panel hr{border:0;border-top:1px solid #eee7f1;width:100%}.evac-meta{display:grid;gap:8px}.evac-meta>div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.evac-meta button{border:0;background:transparent;color:#8b5967;text-align:left;padding:0;cursor:pointer}.evac-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:12px}.evac-tabs button{white-space:nowrap;border:0;background:#f3eff6;color:#65566f;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}.evac-tabs button.active{background:var(--evac-purple);color:white}.evac-tabpane{display:none}.evac-tabpane.active{display:block}.evac-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.evac-toolbar span{margin-right:auto;font-size:13px;color:#6e6374}.evac-toolbar button{background:#f4eff7;color:var(--evac-purple)}#evacApproveBase{background:var(--evac-yellow);color:#3d2d10}.evac-canvas{min-height:440px;border:1px solid #e8e0ec;border-radius:18px;background:#faf8fb;overflow:hidden;position:relative}.evac-plan{position:relative;min-height:440px;background:#f8f6f9}.evac-plan>img{width:100%;height:440px;object-fit:contain;opacity:.28;display:block}.evac-empty-source,.evac-empty{display:grid;place-items:center;min-height:440px;color:#8c8292}.evac-overlay{position:absolute;inset:0}.evac-zone{position:absolute;border:2px solid var(--evac-purple);background:rgba(82,49,120,.10);border-radius:8px;display:flex;align-items:flex-start;justify-content:space-between;padding:6px;min-width:70px;min-height:35px}.evac-zone>span{font-size:11px;font-weight:800;background:white;padding:3px 6px;border-radius:6px;color:var(--evac-ink)}.evac-zone.is-uncertain{border-style:dashed;border-color:#c48717;background:rgba(249,181,44,.16)}.evac-zone.is-manual{border-color:var(--evac-mid)}.evac-zone-actions{display:flex;gap:4px}.evac-zone-actions button{border:0;width:25px;height:25px;border-radius:50%;background:white;cursor:pointer}.evac-uncertainty{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.evac-uncertainty span{padding:7px 9px;border-radius:999px;background:#eee8f2;font-size:11px;font-weight:800}.evac-uncertainty .is-uncertain{background:#fff0cb;color:#78510b}.evac-route-svg{position:absolute;inset:0;width:100%;height:100%;color:#8c4799;pointer-events:none}.evac-marker{position:absolute;border:1px solid rgba(255,255,255,.96);border-radius:8px;padding:0;display:grid;place-items:center;line-height:1;background:linear-gradient(180deg,#1c7f55 0%,#126642 100%);color:#fff;box-shadow:0 5px 12px rgba(46,27,67,.18),inset 0 1px 0 rgba(255,255,255,.28);cursor:grab;touch-action:none;user-select:none;transform-origin:center center;overflow:hidden}.evac-marker>span{display:block;font-size:11px;font-weight:850;letter-spacing:.02em;white-space:nowrap;text-shadow:0 1px 1px rgba(0,0,0,.14);pointer-events:none}.evac-marker--extintor{background:linear-gradient(180deg,#cc3441 0%,#a91f2a 100%)}.evac-marker--ruta-de-evacuacion,.evac-marker--salida{background:linear-gradient(180deg,#26885f 0%,#176b49 100%)}.evac-marker--punto-de-encuentro{background:linear-gradient(180deg,#357f78 0%,#28665f 100%)}.evac-marker.is-selected{outline:2px solid #f9b52c;outline-offset:3px;box-shadow:0 7px 16px rgba(46,27,67,.24),inset 0 1px 0 rgba(255,255,255,.32)}.evac-marker:active{cursor:grabbing}.evac-signage-toolbar{gap:7px}.evac-signage-toolbar .evac-size-control{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #e7deeb;border-radius:10px;background:#fff;color:#5f5166;font-size:11px;font-weight:800}.evac-signage-toolbar .evac-size-control input[type="range"]{width:88px}.evac-rotation-readout{flex:0 0 auto!important;margin-right:0!important;min-width:34px;padding:6px 8px;border-radius:9px;background:#f1ecf4;color:#523178!important;text-align:center;font-weight:850!important}.evac-plan.is-training .evac-zone{background:rgba(255,255,255,.82)}.evac-plan.is-training .evac-route-svg{color:#523178;filter:drop-shadow(0 0 2px white)}.evac-training-head{display:flex;justify-content:space-between;padding:10px 0 14px;color:var(--evac-ink)}.evac-3d-stage{position:relative;height:440px;perspective:900px;background:linear-gradient(#f7f3f9,#fff);overflow:hidden}.evac-3d-block{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);background:linear-gradient(145deg,#eee7f3,#fff);border:2px solid #74518d;transform:rotateX(58deg) rotateZ(-7deg) translateZ(var(--lift));box-shadow:10px 14px 22px rgba(46,27,67,.18);transform-origin:center}.evac-3d-block:before{content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;background:#c9b7d4;transform:skewX(-45deg);transform-origin:top}.evac-3d-block span{font-size:11px;font-weight:800;padding:6px;display:block}.evac-caption{padding:10px 14px;margin:0;font-size:12px;color:#756a7a}@media(max-width:900px){.evac-grid{grid-template-columns:1fr}.evac-hero{flex-direction:column}.evac-state{width:100%;box-sizing:border-box}.evac-canvas,.evac-plan,.evac-empty,.evac-3d-stage{min-height:360px;height:auto}.evac-plan>img{height:360px}.evac-toolbar{align-items:stretch}.evac-toolbar span{width:100%}}
.evac-file-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.evac-file-label{display:block;text-align:center;cursor:pointer;box-sizing:border-box}
.evac-file-label.is-disabled{opacity:.45;pointer-events:none;cursor:not-allowed}
.evac-notice{margin:4px 0 0;padding:10px 12px;border-radius:12px;font-size:12px;font-weight:700;background:#f4eff7;color:#523178}
.evac-notice[data-tone="ok"]{background:#edf8f2;color:#26734d}
.evac-notice[data-tone="warn"]{background:#fff5dc;color:#76520f}
.evac-notice[data-tone="error"]{background:#fff0f2;color:#9b3349}
.evac-notice[data-tone="working"]{background:#f3eef8;color:#523178}
.evac-tabs button:disabled,.evac-toolbar button:disabled{opacity:.45;cursor:not-allowed}

.evac-view-switch{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;padding:10px 12px;border:1px solid #e8e0ec;border-radius:14px;background:#fbf9fc}
.evac-view-switch>b{margin-right:4px;color:#2e1b43}
.evac-view-switch button,.evac-view-switch label{border:0;border-radius:999px;padding:8px 12px;background:#f0ebf4;color:#67566f;font-weight:800;font-size:12px}
.evac-view-switch button{cursor:pointer}
.evac-view-switch button.active{background:#523178;color:#fff}
.evac-view-switch label{display:flex;align-items:center;gap:8px;margin-left:auto}
.evac-view-switch input[type="range"]{width:120px}
.evac-plan{position:relative;min-height:440px;background:#fff;overflow:hidden;cursor:crosshair}
.evac-source-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.evac-geometry-layer{position:absolute;inset:0;transition:opacity .18s ease}
.evac-geometry-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.evac-geom{vector-effect:non-scaling-stroke}
.evac-wall{stroke:#523178;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.evac-corridor{fill:rgba(140,71,153,.15);stroke:#8c4799;stroke-width:1.4}
.evac-access circle{fill:#f9b52c;stroke:#523178;stroke-width:.9}
.evac-access line{stroke:#523178;stroke-width:1.2}
.evac-geom.is-uncertain{stroke:#c48717!important;fill:rgba(249,181,44,.12);stroke-dasharray:4 3}
.evac-geom.is-manual{stroke:#2e1b43!important}
.evac-geom.is-rejected{opacity:.18;stroke:#a2a2a2!important;fill:transparent}
.evac-uncertainty-marker{position:absolute;transform:translate(-50%,-50%);display:flex;gap:5px;align-items:center;border:1px solid #d39a22;border-radius:999px;padding:5px 8px;background:#fff6dc;color:#6f4c0b;font-size:10px;font-weight:800;cursor:pointer;z-index:5}
.evac-uncertainty-marker>span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#f9b52c;color:#2e1b43}
.evac-uncertainty-marker.is-resolved{opacity:.45;text-decoration:line-through}
.evac-pending-point{position:absolute;width:12px;height:12px;border-radius:50%;background:#f9b52c;border:2px solid #523178;transform:translate(-50%,-50%);z-index:8}
.evac-validation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.evac-validation-grid>div{border:1px solid #ece5f0;border-radius:14px;padding:12px;background:#fff}
.evac-validation-grid h4{margin:0 0 8px;color:#2e1b43}
.evac-validation-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #f0ebf3;font-size:12px}
.evac-validation-row>div{display:flex;gap:6px}
.evac-validation-row button{border:0;border-radius:9px;padding:6px 8px;background:#f2edf5;color:#523178;font-weight:800;cursor:pointer}
.evac-validation-row button.active{background:#523178;color:#fff}
.evac-uncertainty-card{display:grid;width:100%;text-align:left;gap:3px;border:1px solid #f0d99d;border-radius:10px;padding:9px;background:#fff9ea;color:#503c10;cursor:pointer;margin-bottom:7px}
.evac-uncertainty-card span{font-size:11px}
.evac-uncertainty-card em{font-size:10px;font-style:normal;font-weight:800;color:#8c6512}
.evac-uncertainty-card.is-resolved{opacity:.48}
.evac-ok-note{font-size:12px;color:#26734d;font-weight:800}
.evac-3d-geometry{background:linear-gradient(180deg,#faf7fc,#eee6f3);transform-style:preserve-3d}
.evac-3d-wall{position:absolute;left:calc(var(--x1) * 1%);top:calc(var(--y1) * 1%);width:calc((var(--x2) - var(--x1)) * 1%);height:8px;background:#78528f;transform-origin:left center;transform:perspective(700px) rotateX(58deg) translateZ(calc(12px + var(--i) * .2px));box-shadow:0 8px 12px rgba(46,27,67,.18)}
.evac-3d-floor-label{position:absolute;left:18px;bottom:18px;background:#fff;border:1px solid #dfd4e6;border-radius:12px;padding:8px 10px;font-size:11px;font-weight:800;color:#523178}
@media(max-width:900px){.evac-validation-grid{grid-template-columns:1fr}.evac-view-switch label{margin-left:0;width:100%;justify-content:space-between}}

.evac-3d-corridor{position:absolute;inset:0;width:100%;height:100%;transform:perspective(700px) rotateX(58deg);transform-origin:center}
.evac-3d-corridor polygon{fill:rgba(140,71,153,.14);stroke:#ad9dbf;stroke-width:.8;vector-effect:non-scaling-stroke}
.evac-3d-wall{height:7px;background:#78528f;transform-origin:left center;box-shadow:0 7px 10px rgba(46,27,67,.2)}

.evac-size-control{display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:12px;background:#f4eff7;color:var(--evac-purple);font-size:12px;font-weight:800}.evac-size-control input{width:110px}.evac-marker.is-selected{outline:3px solid rgba(249,181,44,.75);outline-offset:2px}

.evac-3d-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.evac-3d-floor{fill:rgba(173,157,191,.18);stroke:#ad9dbf;stroke-width:.5;vector-effect:non-scaling-stroke}.evac-3d-wall-face{fill:rgba(82,49,120,.26);stroke:#523178;stroke-width:.65;vector-effect:non-scaling-stroke}.evac-3d-access{stroke:#f9b52c;fill:#f9b52c;stroke-width:.7;vector-effect:non-scaling-stroke}.evac-3d-floor-label{position:absolute;left:14px;bottom:12px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#523178;font-size:11px;font-weight:800;box-shadow:0 3px 12px rgba(46,27,67,.12)}

.evac-3d-route{fill:none;stroke:#8c4799;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.evac-3d-element{stroke:#fff;stroke-width:.45;vector-effect:non-scaling-stroke}.evac-3d-element-core{fill:#fff;stroke:none}.evac-3d-element-exit{fill:#523178}.evac-3d-element-extinguisher{fill:#f9b52c}.evac-3d-element-meeting{fill:#8c4799}.evac-3d-element-other{fill:#ad9dbf}

.evac-uncertainty-compact{min-width:0;padding:4px 6px;border-radius:999px;gap:4px;white-space:nowrap;box-shadow:0 2px 8px rgba(46,27,67,.12)}.evac-uncertainty-compact>span{width:16px;height:16px;font-size:10px}.evac-uncertainty-compact>b{font-size:9px;letter-spacing:.03em}.evac-3d-wall-top{stroke:#523178;stroke-width:.8;vector-effect:non-scaling-stroke}.evac-3d-stage{min-height:440px}.evac-3d-svg{padding:1%;box-sizing:border-box}

.evac-3d-stage{position:relative;min-height:440px;height:440px;overflow:hidden;background:linear-gradient(#f7f3f9,#fff);perspective:1200px}
.evac-3d-camera{position:absolute;inset:4%;display:grid;place-items:center;transform-style:preserve-3d}
.evac-3d-plane{position:relative;width:88%;height:82%;transform-style:preserve-3d;transform:rotateX(45deg) rotateZ(-35deg);transform-origin:center center}
.evac-3d-base-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;backface-visibility:hidden}
.evac-3d-validated-geometry,.evac-3d-route-layer{position:absolute;inset:0;transform:translateZ(1px);pointer-events:none}
.evac-3d-validated-geometry .evac-geometry-svg,.evac-3d-route-layer .evac-route-svg{width:100%;height:100%}
.evac-3d-wall-strip{position:absolute;height:3px;background:#523178;transform-origin:left center;transform:rotate(var(--wall-angle)) translateZ(8px);box-shadow:0 3px 0 rgba(82,49,120,.20);border-radius:999px}
.evac-3d-marker{position:absolute;transform:translate(-50%,-50%) translateZ(12px);display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #523178;box-shadow:0 3px 8px rgba(46,27,67,.24);font-size:13px;line-height:1;pointer-events:none}
.evac-3d-marker-exit{border-color:#523178}.evac-3d-marker-extinguisher{border-color:#f9b52c}.evac-3d-marker-meeting{border-color:#8c4799}

/* 8.62 · autoencuadre proporcional 2D validado + maqueta 3D elevada */
.evac-plan.evac-plan-fit{
  width:100%;
  min-height:0;
  height:auto;
  aspect-ratio:var(--evac-plan-aspect,16 / 9);
  max-height:72vh;
  margin-inline:auto;
}
.evac-plan.evac-plan-fit .evac-source-img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.evac-plan.evac-plan-fit .evac-geometry-layer,
.evac-plan.evac-plan-fit .evac-route-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.evac-3d-stage.evac-3d-maquette{
  position:relative;
  height:520px;
  min-height:440px;
  overflow:hidden;
  background:radial-gradient(circle at 50% 46%,#fff 0,#f7f3f9 68%,#eee7f3 100%);
}
.evac-3d-maquette .evac-3d-svg{
  position:absolute;
  inset:3%;
  width:94%;
  height:94%;
  overflow:visible;
}
.evac-3d-base-surface{
  fill:rgba(140,71,153,.08);
  stroke:rgba(140,71,153,.34);
  stroke-width:.7;
  vector-effect:non-scaling-stroke;
}
.evac-3d-wall-side{
  fill:rgba(82,49,120,.24);
  stroke:#523178;
  stroke-width:.7;
  vector-effect:non-scaling-stroke;
}
.evac-3d-wall-cap{
  stroke:#2e1b43;
  stroke-width:1.15;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.evac-3d-access circle{fill:#f9b52c;stroke:#523178;stroke-width:.8;vector-effect:non-scaling-stroke}
.evac-3d-access line{stroke:#523178;stroke-width:1;vector-effect:non-scaling-stroke}
.evac-3d-route{fill:none;stroke:#8c4799;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.evac-3d-element circle:first-child{fill:#fff;stroke-width:1.25;vector-effect:non-scaling-stroke}
.evac-3d-element-core{fill:currentColor;stroke:none}
.evac-3d-element-exit{color:#523178}.evac-3d-element-exit circle:first-child{stroke:#523178}
.evac-3d-element-extinguisher{color:#f9b52c}.evac-3d-element-extinguisher circle:first-child{stroke:#f9b52c}
.evac-3d-element-meeting{color:#8c4799}.evac-3d-element-meeting circle:first-child{stroke:#8c4799}
.evac-3d-element-other{color:#2e1b43}.evac-3d-element-other circle:first-child{stroke:#2e1b43}
@media(max-width:900px){
  .evac-plan.evac-plan-fit{max-height:none;aspect-ratio:var(--evac-plan-aspect,4 / 3)}
  .evac-3d-stage.evac-3d-maquette{height:420px}
}

/* 8.63 · 3D conceptual CSS puro reutilizando exactamente el 2D validado */
.evac-3d-css-stage{
  position:relative;
  min-height:520px;
  height:520px;
  overflow:hidden;
  border:1px solid #e8e0ec;
  border-radius:18px;
  background:radial-gradient(circle at 50% 42%,#fff 0%,#faf7fc 55%,#f2ebf6 100%);
  display:grid;
  place-items:center;
  padding:24px;
  box-sizing:border-box;
}
.evac-3d-css-plane{
  width:min(84%,980px);
  transform:perspective(1200px) rotateX(45deg) rotateZ(-30deg);
  transform-style:preserve-3d;
  transform-origin:center center;
  will-change:transform;
}
.evac-3d-css-plane .evac-plan{
  margin-inline:auto;
  cursor:default;
  overflow:visible;
  transform-style:preserve-3d;
  background:#fff;
  border:1px solid rgba(82,49,120,.12);
  box-shadow:0 28px 48px rgba(46,27,67,.18),0 10px 18px rgba(46,27,67,.10);
}
.evac-3d-css-plane .evac-geometry-layer{
  transform:translateZ(2px);
  transform-style:preserve-3d;
}
.evac-3d-css-plane .evac-wall{
  filter:drop-shadow(0 2px 0 rgba(82,49,120,.32)) drop-shadow(0 4px 8px rgba(46,27,67,.16));
}
.evac-3d-css-plane .evac-route-svg{
  transform:translateZ(10px);
  transform-style:preserve-3d;
  filter:drop-shadow(0 1px 2px rgba(46,27,67,.18));
}
.evac-3d-css-plane .evac-marker{
  transform:translate(-50%,-50%) translateZ(16px);
  box-shadow:0 8px 14px rgba(46,27,67,.18),0 2px 4px rgba(46,27,67,.16);
  pointer-events:none;
}
.evac-3d-css-plane button{pointer-events:none}
.evac-3d-css-plane .evac-uncertainty-marker,
.evac-3d-css-plane .evac-pending-point{display:none}
@media(max-width:900px){
  .evac-3d-css-stage{min-height:420px;height:420px;padding:16px}
  .evac-3d-css-plane{width:min(88%,760px)}
}

/* 8.64 · lenguaje visual de maqueta arquitectónica de referencia */
.evac-3d-reference-stage{
  background:
    radial-gradient(circle at 50% 38%,rgba(255,255,255,.98) 0%,rgba(245,247,250,.98) 58%,rgba(229,234,240,.98) 100%);
}
.evac-3d-reference-stage::after{
  content:"";
  position:absolute;
  left:8%;right:8%;bottom:7%;
  height:18%;
  border-radius:50%;
  background:rgba(46,27,67,.10);
  filter:blur(28px);
  pointer-events:none;
}
.evac-3d-css-plane{
  width:min(86%,1040px);
}
.evac-3d-css-plane .evac-plan{
  background:#f5f1e9;
  border:1px solid rgba(76,83,92,.18);
  box-shadow:
    0 34px 54px rgba(31,39,48,.22),
    0 12px 22px rgba(31,39,48,.12);
}
.evac-3d-css-plane .evac-source-img{
  opacity:.42 !important;
  filter:saturate(.55) contrast(.92) brightness(1.08);
}
.evac-3d-css-plane .evac-geometry-layer{
  transform:translateZ(13px);
}
.evac-3d-css-plane .evac-3d-wall-depth{
  position:absolute;
  inset:0;
  pointer-events:none;
  transform-style:preserve-3d;
}
.evac-3d-css-plane .evac-3d-wall-depth .evac-corridor,
.evac-3d-css-plane .evac-3d-wall-depth .evac-access{
  display:none;
}
.evac-3d-css-plane .evac-3d-wall-depth .evac-wall{
  stroke:#7c8790;
  stroke-width:4.4;
  filter:none;
}
.evac-3d-css-plane .evac-3d-wall-depth-1{transform:translateZ(3px)}
.evac-3d-css-plane .evac-3d-wall-depth-2{transform:translateZ(5.5px)}
.evac-3d-css-plane .evac-3d-wall-depth-3{transform:translateZ(8px)}
.evac-3d-css-plane .evac-3d-wall-depth-4{transform:translateZ(10.5px)}
.evac-3d-css-plane .evac-3d-wall-top .evac-wall{
  stroke:#eef2f4;
  stroke-width:2.1;
  filter:drop-shadow(0 1px 0 rgba(58,68,78,.42));
}
.evac-3d-css-plane .evac-3d-wall-top .evac-corridor{
  fill:rgba(245,241,233,.36);
  stroke:rgba(128,139,149,.34);
}
.evac-3d-css-plane .evac-3d-wall-top .evac-access{
  color:#59636c;
}
.evac-3d-css-plane .evac-route-svg{
  color:#138643;
  transform:translateZ(18px);
  filter:drop-shadow(0 2px 2px rgba(14,88,44,.22));
}
.evac-3d-css-plane .evac-route-svg polyline{
  stroke-width:2.4;
}
.evac-3d-css-plane .evac-route-svg circle{
  r:1.85;
}
.evac-3d-css-plane .evac-marker{
  width:24px !important;
  height:24px !important;
  transform:translate(-50%,-50%) translateZ(24px);
  border-width:2px;
  background:#fff;
  box-shadow:0 7px 13px rgba(31,39,48,.24),0 2px 4px rgba(31,39,48,.18);
}
.evac-3d-css-plane .evac-marker[data-element-type="Extintor"]{
  background:#c91d27;
  border-color:#fff;
  color:#fff;
}
.evac-3d-css-plane .evac-marker[data-element-type="Salida"]{
  background:#129044;
  border-color:#fff;
  color:#fff;
}
.evac-3d-css-plane .evac-marker[data-element-type="Punto de encuentro"]{
  width:28px !important;
  height:28px !important;
  background:#159447;
  border-color:#fff;
  color:#fff;
}

/* 8.64.1 · asegurar lectura real de maqueta */
.evac-3d-css-plane .evac-source-img{
  opacity:.10 !important;
  filter:grayscale(.15) contrast(.88) brightness(1.12);
}
.evac-3d-css-plane .evac-geometry-layer{
  opacity:1 !important;
}
.evac-3d-css-plane .evac-3d-wall-depth .evac-wall{
  stroke-width:7.2;
  stroke:#69747d;
}
.evac-3d-css-plane .evac-3d-wall-depth-1{transform:translateZ(4px)}
.evac-3d-css-plane .evac-3d-wall-depth-2{transform:translateZ(8px)}
.evac-3d-css-plane .evac-3d-wall-depth-3{transform:translateZ(12px)}
.evac-3d-css-plane .evac-3d-wall-depth-4{transform:translateZ(16px)}
.evac-3d-css-plane .evac-3d-wall-top{
  transform:translateZ(18px);
}
.evac-3d-css-plane .evac-3d-wall-top .evac-wall{
  stroke:#f7fafc;
  stroke-width:3.2;
  filter:drop-shadow(0 1px 0 rgba(50,59,67,.55)) drop-shadow(0 3px 4px rgba(31,39,48,.20));
}
.evac-3d-css-plane .evac-3d-wall-top .evac-corridor{
  fill:rgba(235,229,218,.72);
  stroke:rgba(112,123,132,.55);
  stroke-width:1.2;
}
.evac-3d-css-plane .evac-route-svg{
  color:#0d8b45;
  transform:translateZ(24px);
}
.evac-3d-css-plane .evac-marker{
  transform:translate(-50%,-50%) translateZ(30px);
}

/* 8.64.2 · relieve seguro sin clonar geometría */
.evac-3d-css-plane .evac-source-img{
  opacity:.18 !important;
  filter:grayscale(.08) contrast(.92) brightness(1.08);
}
.evac-3d-css-plane .evac-3d-wall-top{
  transform:translateZ(12px);
}
.evac-3d-css-plane .evac-3d-wall-top .evac-wall{
  stroke:#f5f7f9;
  stroke-width:3.1;
  filter:
    drop-shadow(0 1px 0 #8a949d)
    drop-shadow(0 2px 0 #7e8992)
    drop-shadow(0 3px 0 #737e87)
    drop-shadow(0 4px 0 #68747d)
    drop-shadow(0 6px 6px rgba(31,39,48,.22));
}
.evac-3d-css-plane .evac-3d-wall-top .evac-corridor{
  fill:rgba(240,235,226,.58);
  stroke:rgba(118,128,137,.45);
  stroke-width:1;
}
.evac-3d-css-plane .evac-route-svg{
  transform:translateZ(16px);
}
.evac-3d-css-plane .evac-marker{
  transform:translate(-50%,-50%) translateZ(22px);
}
.evac-3d-quality-warning{
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff8e8;
  border:1px solid rgba(249,181,44,.45);
  color:#6b5312;
  font-size:12px;
  line-height:1.45;
}
.evac-3d-css-plane .evac-3d-wall-depth{display:none !important}

/* 8.65 · maqueta generada desde 2D validado */
.evac-ai3d-empty,.evac-ai3d-state,.evac-ai3d-result{
  border:1px solid #e8e0ec;
  border-radius:18px;
  background:#fff;
  padding:18px;
}
.evac-ai3d-preview{
  max-height:420px;
  overflow:hidden;
  border-radius:14px;
  background:#f7f3f9;
  display:grid;
  place-items:center;
  margin-bottom:16px;
}
.evac-ai3d-preview .evac-plan{
  max-width:100%;
  transform:none!important;
}
.evac-ai3d-result{
  display:grid;
  gap:12px;
}
.evac-ai3d-canvas{
  position:relative;
  width:100%;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:none;
}
.evac-ai3d-image{
  display:block;
  width:100%;
  max-height:620px;
  object-fit:contain;
  border-radius:14px;
  background:#fff;
  box-shadow:none;
}
.evac-ai3d-brand{
  position:absolute;
  top:14px;
  right:18px;
  width:82px;
  max-width:15%;
  height:auto;
  object-fit:contain;
  border-radius:4px;
  background:rgba(255,255,255,.72);
  padding:3px 5px;
  box-shadow:none;
  opacity:.9;
  pointer-events:none;
}
.evac-ai3d-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.evac-ai3d-meta>div{
  display:grid;
  gap:3px;
}
.evac-ai3d-meta span{
  font-size:12px;
  color:#756a7a;
}
.evac-ai3d-warning{
  margin:0;
  padding:10px 12px;
  border-radius:12px;
  background:#fff8e8;
  border:1px solid rgba(249,181,44,.45);
  color:#6b5312;
  font-size:12px;
}
.evac-ai3d-state{
  min-height:360px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  gap:10px;
}
.evac-ai3d-spinner{
  width:38px;
  height:38px;
  border-radius:50%;
  border:4px solid #e8e0ec;
  border-top-color:#523178;
  animation:evacAi3dSpin .9s linear infinite;
}
@keyframes evacAi3dSpin{to{transform:rotate(360deg)}}

.evac-ai3d-error-detail{margin-top:10px;padding:10px 12px;border:1px solid rgba(82,49,120,.18);border-radius:10px;background:rgba(255,255,255,.72);font-size:12px}.evac-ai3d-error-detail summary{cursor:pointer;font-weight:700;color:#523178}.evac-ai3d-error-detail code{display:block;margin-top:8px;white-space:pre-wrap;overflow-wrap:anywhere;color:#513c59}
