:root{
  --bg:#020713;--bg2:#06172a;--bg3:#0a2a48;--text:#f7fbff;--muted:#93abc3;
  --cyan:#7eeaff;--blue:#13b9ff;--line:rgba(126,234,255,.28);--glass:rgba(255,255,255,.055);
  --shadow:0 28px 80px rgba(0,0,0,.38);--danger:#ff7777;--warm:#ffc56d;
  --topbar-h:76px
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;background:var(--bg);font-family:Segoe UI,Arial,sans-serif;color:var(--text)}
body{overflow:hidden;background:radial-gradient(circle at 13% 15%,rgba(19,185,255,.12),transparent 30%),radial-gradient(circle at 82% 20%,rgba(126,234,255,.11),transparent 27%),linear-gradient(135deg,#020713 0%,#061426 44%,#092846 100%)}
body,.red-viewport,.red-canvas,.network-node,.focus-layer{-webkit-user-select:none;user-select:none}.settings-panel{-webkit-user-select:text;user-select:text}
button,a{font:inherit}.is-hidden{display:none!important}
.red-shell{height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden}
.red-topbar{height:var(--topbar-h);flex:0 0 var(--topbar-h);padding:0 26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(2,7,19,.78);backdrop-filter:blur(18px);z-index:120}
.red-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.red-brand-logo{width:46px;height:46px;border:1px solid rgba(126,234,255,.20);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.035)}.red-brand-logo img{width:40px;height:40px;object-fit:contain;filter:brightness(1.3)}
.red-brand-copy strong{display:block;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.red-top-actions{display:flex;align-items:center;gap:10px}.red-version,.red-user{padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);font-size:11px;font-weight:900}.red-version{color:var(--cyan)}.red-user{color:#cfe3f7}.red-settings-btn{width:42px;height:42px;border-radius:50%;border:1px solid rgba(126,234,255,.25);background:rgba(17,183,255,.10);color:#fff;font-size:18px;cursor:pointer;transition:.18s ease}.red-settings-btn:hover{background:rgba(17,183,255,.19);border-color:rgba(126,234,255,.5)}
.red-main{flex:1;position:relative;min-height:0;overflow:hidden}


/* v4.0.2 · identidad viva sin flash del logo legado */
.erp-brand-live{opacity:0;transition:opacity .16s ease}
.erp-brand-live.erp-brand-ready{opacity:1}

/* Escena fija: no pan, no zoom, no canvas infinito. */
.red-viewport{position:absolute;inset:0;overflow:hidden;background-image:linear-gradient(rgba(126,234,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(126,234,255,.023) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,transparent 0,black 5%,black 98%);touch-action:manipulation}
.red-canvas{position:absolute;inset:0;width:100%;height:100%;transform:none!important}.red-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.red-lines path{fill:none;stroke:rgba(126,234,255,.34);stroke-width:1.6;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(19,185,255,.15));stroke-linecap:round;stroke-linejoin:round}.red-lines .line-root{stroke:rgba(126,234,255,.48);stroke-width:2}.branch-lines{display:none!important}.branch-group{display:none!important}
.network-controls,.mobile-tree{display:none!important}

.network-node{position:absolute;border:1px solid rgba(126,234,255,.22);background:radial-gradient(circle at 94% 7%,rgba(19,185,255,.14),transparent 36%),linear-gradient(150deg,rgba(255,255,255,.085),rgba(255,255,255,.034));color:var(--text);box-shadow:var(--shadow);backdrop-filter:blur(14px);text-decoration:none;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .18s ease,border-color .18s ease,background .18s ease,opacity .22s ease,filter .22s ease,box-shadow .18s ease}
.network-node::after,.focus-card::after{content:"";position:absolute;inset:0;z-index:4;border-radius:inherit;padding:2px;background:conic-gradient(from 35deg,transparent 0 68%,rgba(19,185,255,.10) 73%,rgba(126,234,255,.94) 78%,#fff 81%,rgba(19,185,255,.95) 84%,rgba(126,234,255,.18) 89%,transparent 94%);opacity:0;pointer-events:none;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 7px rgba(126,234,255,.95)) drop-shadow(0 0 14px rgba(19,185,255,.65));transform:rotate(-18deg) scale(1.03)}
.network-node:hover::after,.network-node:focus-visible::after,.focus-card:hover::after,.focus-card:focus-visible::after{opacity:1;animation:laserSweep .66s cubic-bezier(.35,.05,.2,1) 1}
.network-node:hover,.network-node:focus-visible{border-color:rgba(126,234,255,.92);background:radial-gradient(circle at 94% 7%,rgba(19,185,255,.30),transparent 40%),linear-gradient(150deg,rgba(255,255,255,.13),rgba(255,255,255,.05));box-shadow:0 30px 88px rgba(0,0,0,.42),0 0 0 1px rgba(126,234,255,.35),0 0 26px rgba(19,185,255,.34),inset 0 0 24px rgba(19,185,255,.09);outline:none}
.network-node.is-activating,.focus-card.is-activating{animation:nodePulse .22s ease}
.network-node>*:not(.laser-spark),.focus-card>*:not(.laser-spark){position:relative;z-index:2}
.laser-spark{position:absolute;left:var(--spark-x,90%);top:var(--spark-y,10%);z-index:6;width:3px;height:12px;border-radius:999px;background:linear-gradient(to bottom,#fff 0 26%,#9cf4ff 42%,#15c8ff 75%,rgba(21,200,255,0) 100%);box-shadow:0 0 5px #fff,0 0 10px rgba(126,234,255,.95),0 0 17px rgba(19,185,255,.7);pointer-events:none;transform-origin:50% 0;animation:laserSpark .68s cubic-bezier(.12,.65,.28,1) forwards;animation-delay:var(--spark-delay,0ms)}
@keyframes laserSweep{0%{transform:rotate(-25deg) scale(1.03);filter:drop-shadow(0 0 4px rgba(126,234,255,.65))}42%{filter:drop-shadow(0 0 10px rgba(255,255,255,1)) drop-shadow(0 0 18px rgba(19,185,255,.85))}100%{transform:rotate(335deg) scale(1.03);filter:drop-shadow(0 0 7px rgba(126,234,255,.85))}}
@keyframes laserSpark{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-rot,20deg)) scale(.45)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--spark-tx,14px)),calc(-50% + var(--spark-ty,18px))) rotate(calc(var(--spark-rot,20deg) + 38deg)) scale(.12)}}
@keyframes nodePulse{50%{filter:brightness(1.35);box-shadow:0 0 0 5px rgba(126,234,255,.10),0 0 35px rgba(19,185,255,.22)}}

.core-node{left:50%;top:25%;transform:translate(-50%,-50%);width:clamp(300px,21vw,372px);height:clamp(232px,27vh,292px);padding:16px 26px 20px;border-radius:50%;align-items:center;text-align:center;gap:3px;background:radial-gradient(circle at 50% 42%,rgba(126,234,255,.20),rgba(17,183,255,.09) 42%,rgba(255,255,255,.028) 72%);border-color:rgba(126,234,255,.46);box-shadow:0 0 0 16px rgba(126,234,255,.025),0 40px 110px rgba(0,0,0,.48)}
.core-node:hover,.core-node:focus-visible{transform:translate(-50%,-50%) scale(1.022)}.core-node .node-icon{width:clamp(182px,13.5vw,226px);height:clamp(154px,17vh,190px);display:grid;place-items:center;margin:0 auto -1px}.core-node .node-icon img{width:100%;height:100%;object-fit:contain;transform:scale(1.15);filter:brightness(1.24) drop-shadow(0 0 22px rgba(126,234,255,.30))}.core-node small{color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.node-orbit{position:absolute;inset:-14px;border-radius:50%;border:1px dashed rgba(126,234,255,.24);animation:orbit 26s linear infinite}@keyframes orbit{to{transform:rotate(360deg)}}
.area-node{top:64%;transform:translate(-50%,-50%);width:clamp(330px,25vw,455px);min-height:clamp(135px,16vh,170px);padding:24px 26px;border-radius:22px}.workshop-node{left:25%}.admin-node{left:75%}.area-node:hover,.area-node:focus-visible{transform:translate(-50%,-53%)}.area-node strong{font-size:clamp(26px,2.2vw,35px);line-height:1.03;letter-spacing:-.7px}.area-node small{color:var(--muted);font-size:12px;font-weight:800}
.focus-active #networkCanvas{filter:saturate(.55) brightness(.68);opacity:.48;transition:opacity .22s ease,filter .22s ease}

/* Capa de foco. La rama se reemplaza nivel por nivel dentro del mismo viewport. */
.focus-layer{position:absolute;inset:0;z-index:70;display:grid;place-items:center;padding:28px 48px;opacity:1;visibility:visible;transition:opacity .22s ease,visibility .22s ease}.focus-layer.is-hidden{display:grid!important;opacity:0;visibility:hidden;pointer-events:none}.focus-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(13,59,91,.22),rgba(1,6,14,.56) 72%);backdrop-filter:blur(3px)}
.focus-panel{position:relative;width:min(1480px,94vw);max-height:calc(100vh - var(--topbar-h) - 54px);min-height:420px;border:1px solid rgba(126,234,255,.25);border-radius:28px;background:linear-gradient(145deg,rgba(3,14,28,.955),rgba(7,34,58,.95));box-shadow:0 44px 120px rgba(0,0,0,.55),0 0 55px rgba(17,183,255,.055);padding:18px 22px 28px;overflow:auto;animation:focusIn .24s cubic-bezier(.2,.8,.2,1)}
@keyframes focusIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.focus-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;min-height:46px}.focus-nav button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.045);color:#fff;cursor:pointer;font-size:20px}.focus-nav button:hover{border-color:rgba(126,234,255,.45);background:rgba(17,183,255,.12)}.focus-breadcrumb{display:flex;justify-content:center;align-items:center;gap:7px;min-width:0;color:#b9cee0;font-size:12px;font-weight:800}.focus-breadcrumb button{width:auto;height:auto;padding:0;border:0;background:none;color:inherit;font-size:12px}.focus-breadcrumb button:hover{color:var(--cyan)}.focus-breadcrumb i{font-style:normal;color:rgba(126,234,255,.46)}.focus-breadcrumb strong{color:var(--cyan);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-tree{position:relative;padding:8px 8px 0}.focus-parent{position:relative;width:min(390px,72vw);min-height:96px;margin:2px auto 64px;padding:17px 22px;border:1px solid rgba(126,234,255,.39);border-radius:20px;background:radial-gradient(circle at 92% 6%,rgba(19,185,255,.18),transparent 38%),linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.04));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 22px 60px rgba(0,0,0,.28)}.focus-parent::after{content:"";position:absolute;left:50%;top:100%;height:37px;border-left:2px solid rgba(126,234,255,.33)}.focus-parent span{color:var(--cyan);font-size:9px;font-weight:950;letter-spacing:.15em;text-transform:uppercase}.focus-parent strong{margin-top:5px;font-size:clamp(22px,2vw,29px);line-height:1.05}.focus-parent small{margin-top:5px;color:var(--muted);font-size:11px;font-weight:750}
.focus-children{--focus-cols:5;position:relative;display:grid;grid-template-columns:repeat(var(--focus-cols),minmax(0,1fr));gap:15px;max-width:1320px;margin:0 auto}.focus-children::before{content:"";position:absolute;left:5%;right:5%;top:-28px;border-top:2px solid rgba(126,234,255,.26)}
.focus-children.is-categorized{display:block;max-width:1160px}.focus-children.is-categorized::before{display:none}.focus-section+.focus-section{margin-top:22px;padding-top:18px;border-top:1px solid rgba(126,234,255,.12)}.focus-section-title{display:flex;align-items:center;gap:12px;margin:0 2px 10px;color:var(--cyan);font-size:10px;font-weight:950;letter-spacing:.13em;text-transform:uppercase}.focus-section-title::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,rgba(126,234,255,.24),transparent)}.focus-section-grid{display:grid;grid-template-columns:repeat(var(--section-cols),minmax(0,1fr));gap:15px}.focus-section:nth-child(2) .focus-section-grid{max-width:760px;margin:0 auto}.focus-layer[data-level="admin"] .focus-parent{min-height:84px;margin-bottom:42px}.focus-layer[data-level="admin"] .focus-parent::after{height:24px}.focus-layer[data-level="admin"] .focus-section-grid{gap:12px}.focus-layer[data-level="admin"] .focus-card{min-height:104px;padding:14px 15px}.focus-layer[data-level="admin"] .focus-section+.focus-section{margin-top:14px;padding-top:12px}.focus-layer[data-level="admin"] .focus-section:nth-child(2) .focus-section-grid{max-width:900px;margin:0 auto}
.focus-card{position:relative;min-width:0;min-height:132px;padding:17px 16px 16px;border:1px solid rgba(126,234,255,.18);border-radius:18px;background:radial-gradient(circle at 94% 7%,rgba(19,185,255,.12),transparent 36%),linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.03));color:#fff;text-decoration:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;cursor:pointer;overflow:hidden;isolation:isolate;box-shadow:0 18px 46px rgba(0,0,0,.25);opacity:0;transform:translateY(9px);animation:branchReveal .28s ease forwards;animation-delay:calc(var(--i,0)*45ms);transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.focus-card::before{content:"";position:absolute;left:50%;bottom:100%;height:28px;border-left:2px solid rgba(126,234,255,.26)}.focus-card:hover,.focus-card:focus-visible{transform:translateY(-3px);border-color:rgba(126,234,255,.90);background:radial-gradient(circle at 94% 7%,rgba(19,185,255,.27),transparent 40%),linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.045));box-shadow:0 22px 58px rgba(0,0,0,.32),0 0 0 1px rgba(126,234,255,.30),0 0 28px rgba(19,185,255,.30),inset 0 0 20px rgba(19,185,255,.07);outline:none}.focus-card strong{font-size:clamp(16px,1.25vw,21px);line-height:1.08}.focus-card small{color:var(--muted);font-size:10px;font-weight:750;line-height:1.25}.focus-card .node-symbol{width:42px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(17,183,255,.10);border:1px solid rgba(126,234,255,.17);color:var(--cyan);font-size:8px;font-weight:950;letter-spacing:.07em}.focus-card .trial-badge{color:var(--warm);font-size:8px;letter-spacing:.08em}.focus-card .focus-tag{position:absolute;right:10px;top:10px;padding:4px 6px;border-radius:999px;border:1px solid rgba(126,234,255,.22);color:var(--cyan);font-size:7px;font-weight:950;letter-spacing:.08em}.focus-card.is-disabled{opacity:.34!important;filter:saturate(.25) grayscale(.35);pointer-events:none}.focus-card.is-primary{border-color:rgba(126,234,255,.34)}
@keyframes branchReveal{to{opacity:1;transform:none}}
.focus-layer[data-level="quotes"] .focus-children,.focus-layer[data-level="secondary"] .focus-children{max-width:930px}

/* Banda de equipos: se conserva como explorador horizontal dentro de la misma escena. */
.catalog-band{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1660px,94vw);height:min(620px,78vh);border-radius:30px;border:1px solid rgba(126,234,255,.32);background:linear-gradient(150deg,rgba(3,13,26,.99),rgba(6,31,53,.985));box-shadow:0 44px 120px rgba(0,0,0,.62);padding:20px 22px 22px;z-index:95;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}.catalog-band.is-hidden{display:block!important;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-46%)}.catalog-band-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 6px 16px}.catalog-band-head span{display:block;color:var(--cyan);font-size:10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase}.catalog-band-head strong{display:block;margin-top:4px;font-size:29px}.catalog-band-head button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);color:#fff;font-size:24px;cursor:pointer}.equipment-rail-wrap{height:calc(100% - 68px);display:grid;grid-template-columns:58px 1fr 58px;gap:14px;align-items:center}.equipment-rail{height:100%;display:flex;align-items:center;gap:22px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;padding:4px 4px 12px}.equipment-rail::-webkit-scrollbar{display:none}.equipment-card{flex:0 0 min(390px,31vw);height:min(430px,62vh);border:1px solid rgba(255,255,255,.13);border-radius:24px;overflow:hidden;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.032));color:#fff;text-decoration:none;display:grid;grid-template-rows:minmax(0,1fr) auto;scroll-snap-align:center;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.equipment-card:hover{transform:translateY(-4px);border-color:rgba(126,234,255,.55);box-shadow:0 18px 42px rgba(0,0,0,.28)}.equipment-card .equipment-image{min-height:0;background:radial-gradient(circle at 50% 50%,rgba(126,234,255,.105),transparent 66%);display:grid;place-items:center;overflow:hidden;padding:8px 10px 2px}.equipment-card img{width:100%;height:100%;object-fit:contain}.equipment-card strong{display:block;padding:14px 16px 18px;text-align:center;font-size:20px;line-height:1.15}.rail-arrow{width:58px;height:116px;border:1px solid rgba(126,234,255,.24);border-radius:18px;background:rgba(17,183,255,.09);color:#fff;font-size:34px;cursor:pointer}.rail-arrow:hover{border-color:rgba(126,234,255,.5);background:rgba(17,183,255,.16)}.rail-loading{padding:92px 20px;width:100%;text-align:center;color:var(--muted)}

.settings-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.46);z-index:130}.settings-panel{position:fixed;right:18px;top:86px;width:320px;border-radius:24px;border:1px solid rgba(126,234,255,.22);background:rgba(3,15,29,.97);backdrop-filter:blur(16px);box-shadow:var(--shadow);padding:16px 16px 14px;z-index:140;transform:translateX(116%);opacity:0;transition:transform .22s ease,opacity .22s ease}.settings-panel.open{transform:translateX(0);opacity:1}.settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.settings-head span{display:block;color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.settings-head strong{display:block;margin-top:4px;font-size:22px}.settings-head button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font-size:20px;cursor:pointer}.settings-panel section{padding:12px 0;border-top:1px solid rgba(255,255,255,.06)}.settings-panel small{display:block;color:var(--cyan);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}.settings-user{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.03)}.settings-user strong{font-size:17px}.settings-user span{color:var(--muted);font-size:12px;font-weight:800;text-transform:capitalize}.settings-action{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;border-radius:14px;border:1px solid rgba(126,234,255,.20);background:rgba(17,183,255,.10);color:#fff;text-decoration:none;font-weight:800;cursor:pointer}.settings-panel footer{padding-top:14px;border-top:1px solid rgba(255,255,255,.06);margin-top:4px;color:var(--muted);font-size:12px;text-align:center}

.developer-only{display:none!important}.role-desarrollador .developer-only{display:flex!important}.role-operador [data-branch="admin"]{opacity:.48;filter:saturate(.36) grayscale(.2);border-color:rgba(255,255,255,.16)}.role-operador [data-branch="admin"]::after{content:'Acceso limitado';position:absolute;right:18px;top:18px;padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.17);background:rgba(0,0,0,.28);color:#d7e0ea;font-size:9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase;inset:auto 18px auto auto;width:auto;height:auto;opacity:1;animation:none;-webkit-mask:none;mask:none}

@media (max-width:1180px){
  .area-node{width:330px}.workshop-node{left:23%}.admin-node{left:77%}.area-node strong{font-size:27px}
  .focus-panel{width:95vw}.focus-children{--focus-cols:3!important;max-width:980px}.focus-layer[data-level="workshop"] .focus-children{--focus-cols:3!important}.focus-layer[data-level="quotes"] .focus-children,.focus-layer[data-level="secondary"] .focus-children{--focus-cols:3!important}
}
@media (max-width:760px){
  :root{--topbar-h:66px}html,body{height:100%;overflow:hidden}.red-topbar{height:66px;flex-basis:66px;padding:0 12px}.red-brand{gap:8px}.red-brand-logo{width:38px;height:38px}.red-brand-logo img{width:33px;height:33px}.red-brand-copy strong{font-size:12px}.red-top-actions{gap:6px}.red-user{display:none}.red-version{padding:6px 8px;font-size:9px}.red-settings-btn{width:38px;height:38px}
  .core-node{top:24%;width:214px;height:176px;padding:10px 14px 13px}.core-node .node-icon{width:126px;height:108px;margin:0 auto}.core-node .node-icon img{width:100%;height:100%;transform:scale(1.11)}.core-node small{font-size:8px}.node-orbit{inset:-9px}
  .area-node{left:50%;width:min(86vw,380px);min-height:104px;padding:15px 18px}.workshop-node{top:54%}.admin-node{top:74%}.area-node strong{font-size:22px}.area-node small{font-size:10px}.area-node:hover,.area-node:focus-visible{transform:translate(-50%,-50%)}.red-lines{display:none}
  .focus-layer{padding:8px}.focus-panel{width:100%;max-height:calc(100vh - 82px);min-height:0;border-radius:22px;padding:11px 10px 18px}.focus-nav{grid-template-columns:38px 1fr 38px}.focus-nav button{width:35px;height:35px}.focus-breadcrumb{font-size:10px;gap:4px}.focus-breadcrumb button{font-size:10px}.focus-tree{padding:4px 2px 0}.focus-parent{width:min(82vw,330px);min-height:76px;margin-bottom:46px;padding:12px 16px}.focus-parent::after{height:27px}.focus-parent strong{font-size:20px}.focus-parent small{font-size:9px}.focus-children{--focus-cols:2!important;gap:9px;max-width:none}.focus-children::before{top:-20px}.focus-card{min-height:96px;padding:12px 11px;border-radius:15px}.focus-card::before{height:20px}.focus-card strong{font-size:14px}.focus-card small{font-size:9px}.focus-card .node-symbol{width:34px;height:27px;font-size:7px}.focus-layer[data-level="quotes"] .focus-children,.focus-layer[data-level="secondary"] .focus-children{--focus-cols:1!important;max-width:380px}
  .catalog-band{position:fixed;left:8px;right:8px;top:74px;bottom:8px;transform:none;width:auto;height:auto;border-radius:22px;padding:14px 10px;z-index:150}.catalog-band.is-hidden{transform:translateY(20px)}.catalog-band-head{padding:0 4px 12px}.catalog-band-head strong{font-size:21px}.equipment-rail-wrap{height:calc(100% - 58px);display:block}.rail-arrow{display:none}.equipment-rail{height:100%;gap:14px;padding:4px 4px 12px;align-items:center}.equipment-card{flex:0 0 86vw;height:min(68vh,570px);max-height:570px;min-height:390px}.equipment-card strong{font-size:19px}.settings-panel{top:74px;right:3vw;width:94vw;max-width:360px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


/* v4.0.3 · fondo energético dinámico */
.red-viewport{isolation:isolate}
.red-energy-field{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.62}
.red-energy-svg{display:block;width:100%;height:100%;overflow:visible}
.red-energy-circuit .circuit-route{fill:none;stroke:rgba(126,234,255,.075);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(19,185,255,.06))}
.red-energy-circuit .circuit-node{fill:rgba(126,234,255,.14);filter:drop-shadow(0 0 4px rgba(126,234,255,.16))}
.red-energy-signals{mix-blend-mode:screen}
.energy-flow{fill:none;stroke:rgba(126,234,255,.38);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:16 250;stroke-dashoffset:266;opacity:0;filter:drop-shadow(0 0 4px rgba(126,234,255,.18));animation:energyTravel var(--flow-dur,3.4s) linear forwards}
.energy-flow.is-reactive{display:none}
.energy-head{fill:rgba(235,255,255,.78);opacity:.55;filter:drop-shadow(0 0 3px rgba(126,234,255,.34))}
.energy-glow{fill:rgba(126,234,255,.16);opacity:.34;filter:blur(1px)}
.energy-junction{display:none}
.energy-core-wave{display:none}
@keyframes energyTravel{0%{opacity:0;stroke-dashoffset:240}10%{opacity:.95}78%{opacity:.92}100%{opacity:0;stroke-dashoffset:-250}}
20%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}
18%{opacity:.34}100%{opacity:0;r:170px}}
.focus-active .red-energy-field{opacity:.28;filter:saturate(.55) brightness(.82)}
@media (prefers-reduced-motion: reduce){.red-energy-field{display:none}.node-orbit,.network-node:hover::after,.network-node:focus-visible::after,.focus-card:hover::after,.focus-card:focus-visible::after{animation:none!important}}

/* v4.2.56 · Taller y Producción: categorías visuales sin nivel extra */
.mobile-section-label{display:none}
@media (max-width:760px){.focus-children.is-categorized{display:block!important}.focus-section+.focus-section{margin-top:14px;padding-top:12px}.focus-section-title{margin-bottom:7px;font-size:8px}.focus-section-grid{grid-template-columns:1fr!important;gap:9px;max-width:none!important}.mobile-section-label{display:block;padding:12px 5px 5px;color:var(--cyan);font-size:9px;font-weight:950;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid rgba(126,234,255,.12)}.mobile-section-label:first-child{padding-top:3px}}

/* v4.2.56 · Catálogo completo: rejilla vertical, sin carrusel horizontal */
.catalog-band{width:min(1680px,96vw);height:min(830px,92vh);padding:20px 22px 22px}
.equipment-rail-wrap{height:calc(100% - 68px);display:block;overflow:hidden}
.equipment-rail{height:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:340px;align-content:start;align-items:stretch;gap:18px;overflow-y:auto;overflow-x:hidden;scroll-snap-type:none;padding:4px 10px 16px 4px;scrollbar-width:thin;scrollbar-color:rgba(126,234,255,.28) transparent}
.equipment-rail::-webkit-scrollbar{display:block;width:8px}.equipment-rail::-webkit-scrollbar-thumb{background:rgba(126,234,255,.24);border-radius:999px}.equipment-rail::-webkit-scrollbar-track{background:transparent}
.equipment-card{min-width:0;width:100%;height:340px;min-height:340px;max-height:none;flex:none;scroll-snap-align:none;grid-template-rows:minmax(0,1fr) auto}
.equipment-card .equipment-image{min-height:0;padding:8px 10px 2px}
.equipment-card strong{padding:12px 14px 16px;font-size:19px;min-height:56px;display:flex;align-items:center;justify-content:center}
.rail-arrow{display:none!important}
.rail-loading{grid-column:1/-1;padding:92px 20px}
@media(max-width:1280px){.equipment-rail{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.equipment-rail{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content}.equipment-card{height:auto;min-height:0;grid-template-rows:minmax(230px,1fr) auto}.equipment-card .equipment-image{min-height:230px;aspect-ratio:4/3;overflow:hidden}.equipment-card img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}.equipment-card strong{position:relative;z-index:2;min-height:62px;background:rgba(3,17,34,.96);overflow-wrap:anywhere}}
@media(max-width:620px){.catalog-band{left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));top:max(66px,env(safe-area-inset-top));bottom:max(6px,env(safe-area-inset-bottom));width:auto;height:auto;padding:12px 8px;overflow:hidden}.equipment-rail-wrap{height:calc(100% - 54px);overflow:hidden}.equipment-rail{grid-template-columns:1fr;grid-auto-rows:max-content;gap:12px;padding:4px 4px max(16px,env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.equipment-card{width:100%;height:auto;min-height:0;max-height:none;grid-template-rows:minmax(230px,1fr) auto;overflow:hidden}.equipment-card .equipment-image{width:100%;height:auto;min-height:230px;aspect-ratio:4/3;padding:8px;overflow:hidden}.equipment-card img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}.equipment-card strong{display:grid;place-items:center;position:relative;z-index:2;min-height:66px;padding:12px 12px 14px;font-size:18px;line-height:1.16;background:rgba(3,17,34,.97);overflow-wrap:anywhere}}


/* v4.2.56 · Android/iOS: Áreas usa un único scroll vertical en la capa de foco */
@media (max-width: 900px){
  .focus-layer{
    position:fixed;
    inset:var(--topbar-h) 0 0;
    z-index:170;
    display:flex!important;
    align-items:flex-start;
    justify-content:center;
    padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    overscroll-behavior-y:auto;
    scroll-behavior:smooth;
  }
  .focus-layer.is-hidden{display:flex!important;opacity:0;visibility:hidden;pointer-events:none}
  .focus-backdrop{
    position:fixed;
    inset:var(--topbar-h) 0 0;
  }
  .focus-panel{
    flex:0 0 auto;
    width:min(100%,760px);
    max-height:none!important;
    min-height:0;
    height:auto;
    margin:0 auto;
    overflow:visible!important;
  }
  .focus-nav{
    position:sticky;
    top:0;
    z-index:6;
    margin:-11px -10px 4px;
    padding:11px 10px 8px;
    border-radius:22px 22px 0 0;
    background:linear-gradient(180deg,rgba(3,14,28,.995),rgba(3,14,28,.94));
    backdrop-filter:blur(12px);
  }
  .focus-tree{padding-bottom:max(10px,env(safe-area-inset-bottom))}
}
@media (max-width: 620px){
  .focus-layer{padding-left:max(5px,env(safe-area-inset-left));padding-right:max(5px,env(safe-area-inset-right))}
  .focus-panel{width:100%;border-radius:18px;padding-bottom:14px}
  .focus-nav{border-radius:18px 18px 0 0}
  .focus-parent{margin-bottom:34px}
  .focus-section-grid{grid-template-columns:1fr!important}
  .focus-card{min-height:88px}
}

/* v4.2.56b · Áreas táctiles: evitar clipping por ancestros y viewport dinámico */
@media (max-width: 900px){
  html,body{height:100%;min-height:100%;overflow:hidden!important}
  .red-shell{height:100vh;min-height:100vh;overflow:hidden}
  .red-main{overflow:visible!important}
  @supports (height:100dvh){
    .red-shell{height:100dvh;min-height:100dvh}
  }
  .focus-layer{
    top:var(--topbar-h)!important;
    bottom:0!important;
    height:auto!important;
    max-height:none!important;
    overflow-y:scroll!important;
    overflow-x:hidden!important;
    touch-action:auto!important;
    overscroll-behavior-y:auto!important;
    scrollbar-gutter:stable;
  }
  .focus-panel{
    max-height:none!important;
    height:max-content!important;
    overflow:visible!important;
    touch-action:auto!important;
  }
  .focus-children,.focus-section,.focus-section-grid,.focus-card{touch-action:auto}
}


/* v4.2.56 · Android/iOS: Catálogo por encima de la capa desplazable de Áreas.
   La capa de foco alcanza z-index:170 en <=900px; el selector de equipos
   debe permanecer visible y recibir los taps sin interferir con el scroll. */
@media (max-width: 900px) {
  .catalog-band { z-index: 200; }
}
