:root{
  --bg:#070B10;
  --panelA: rgba(7,11,16,0.96);
  --panelB: rgba(13,20,26,0.90);
  --panelRightA: rgba(255,255,255,0.025);
  --panelRightB: rgba(255,255,255,0.018);
  --text:#e7edf5;
  --muted:#c7d2e1;
  --muted2:#9fb0c3;
  --accent:#7FD1B9;
  --premiumAccent:#7FD1B9;

  --edgePad: 14px;
  --leftPanelW: 380px;

  /* ✅ nuevo: “respiración” entre panel izquierdo y el derecho */
  --midGap: 14px;
    /* ===== Mapamundi tokens (solo variables, no afectan layout) ===== */
  --land: rgba(231,237,245,0.14);
  --landStroke: rgba(231,237,245,0.18);
  --graticule: rgba(231,237,245,0.10);
  --dotStroke: rgba(255,255,255,0.85);
  --dotGlow: rgba(255,255,255,0.45);
}

    *{ box-sizing:border-box; }
    html,body{
      height:100%;
      margin:0;
     background:
    radial-gradient(1400px 900px at 15% 15%, rgba(217,170,63,.12), transparent 55%),
    radial-gradient(1200px 800px at 85% 35%, rgba(78,121,167,.14), transparent 60%),
    radial-gradient(900px 600px at 50% 80%, rgba(255,255,255,.04), transparent 65%),
    linear-gradient(180deg, #0b0f14 0%, #0a0e13 100%);
      color: var(--text);
        overflow-x: hidden;
  overflow-y: auto;

      font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    }

    /* ===== Layout: lienzo full-screen + paneles flotantes (glass) ===== */
    .app{
      position:relative;
      width:100vw;
      height:100vh;
    }

.panel{
  position: relative;           /* ✅ para que .panel::before se ancle al panel */
  overflow: hidden;             /* ✅ recorta el glow dentro del borde redondeado */
  --panelGlow: rgba(255,255,255,0.06); /* ✅ valor por defecto si no hay modelo */

  background: linear-gradient(180deg, var(--panelA), var(--panelB));
  border:1px solid rgba(255,255,255,0.06);
  border-radius:16px;
  box-shadow:
    0 16px 42px rgba(0,0,0,0.34),
    inset 0 1px 0 rgba(255,255,255,0.04);
  backdrop-filter: blur(12px) saturate(115%);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
}



.panel.left{
  position:fixed;
  top: 0;
  left: 0;
  width: 100vw;
  max-width: 100vw;
  height: 100vh;
  max-height: 100vh;
  overflow:auto;

  padding: 0 14px 14px 14px;   /* ✅ arriba a 0 */
  border: none;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background:
    linear-gradient(180deg, var(--panelA), var(--panelB)),
    radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 16%, rgba(255,255,255,0.08)), transparent 62%);
  z-index: 10;
}

.panel.left::before{
  inset: 0;
  border-radius: 0;
}

.panel.left > *{
  width: min(var(--leftPanelW), calc(100vw - (var(--edgePad) * 2)));
}

.panel.left .leftTopSticky{
  position: sticky;
  top: 0;
  z-index: 30;
  background: linear-gradient(180deg, var(--panelA), var(--panelB));
  margin-top: 0;
}

@media (min-width: 981px){
  .panel.left > *{
    width: min(calc(var(--leftPanelW) - 18px), calc(100vw - (var(--edgePad) * 2) - 18px));
  }

  .panel.left .modelsListCard{
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 4px 0 0 0;
    margin-top: 10px;
  }

  .panel.left .modelsListCard .row{
    padding: 0 4px 2px 2px;
  }

  .panel.left #modelsList{
    padding-right: 14px;
    scrollbar-gutter: stable;
  }
}

.panel.right{
  position: fixed;
  top: var(--edgePad);
  left: calc(var(--edgePad) + var(--leftPanelW) + var(--midGap));
  right: var(--edgePad);

  /* ✅ ocupa todo el alto “usable” */
  max-height: calc(100vh - (var(--edgePad) * 2));
  overflow: auto;

  padding: 0;
  z-index: 20;

  background: linear-gradient(180deg, var(--panelRightA), var(--panelRightB));
  border:1px solid rgba(255,255,255,0.06);
  border-radius:16px;
  box-shadow: 0 16px 42px rgba(0,0,0,0.34);
}
.panel::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;

  /* ✅ glow con color variable + un segundo glow suave */
  background:
    radial-gradient(520px 320px at 88% 12%, var(--panelGlow), transparent 62%),
    radial-gradient(700px 420px at 18% 85%, rgba(255,255,255,0.05), transparent 65%);
  opacity:.95;
  mix-blend-mode: screen;   /* hace que “respire” sin aclarar demasiado */
animation: none;

    }






    /* ===== Títulos / cards (doc) ===== */
  .title{
  font-weight: 900;
  letter-spacing: -0.4px;
  font-size: 20px;
  line-height: 1.15;
  margin: 2px 0 10px 0;
  color: #ffffff;
}

.sidebarHeader{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  column-gap:10px;
  min-width:0;
  margin:2px 0 10px 0;
}

.sidebarHeader .title{
  grid-column:1;
  margin:0;
  min-width:0;
}

.appsHomeLink{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  grid-column:2;
  align-self:center;
  margin-top:6px;
  flex:0 0 auto;
  min-height:30px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,0.10);
  border-radius:999px;
  background:rgba(7,11,16,0.52);
  color:rgba(231,237,245,0.78);
  text-decoration:none;
  font-size:12px;
  font-weight:750;
  letter-spacing:0;
  line-height:1;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 10px 24px rgba(0,0,0,0.18);
  backdrop-filter:blur(12px) saturate(112%);
  -webkit-backdrop-filter:blur(12px) saturate(112%);
  transition:
    background .16s ease,
    border-color .16s ease,
    color .16s ease,
    transform .16s ease;
}

.appsHomeLink:hover{
  background:rgba(255,255,255,0.075);
  border-color:rgba(255,255,255,0.18);
  color:rgba(255,255,255,0.90);
}

.appsHomeLink:active{
  transform:translateY(1px);
}

.appsHomeLink:focus-visible{
  outline:none;
  border-color:rgba(217,170,63,0.50);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 0 0 3px rgba(217,170,63,0.14),
    0 10px 24px rgba(0,0,0,0.18);
}

.appsHomeLink svg{
  width:14px;
  height:14px;
  flex:0 0 auto;
}

.appsHomeLink--floating{
  display:none;
}

body.infoFull .appsHomeLink--floating{
  position:fixed;
  top:calc(env(safe-area-inset-top) + 10px);
  left:calc(var(--edgePad) + 2px);
  z-index:999999;
  display:inline-flex;
  margin:0;
}

body.is-embed .appsHomeLink,
body.embedMode .appsHomeLink{
  display:none !important;
}

.t-eyebrow{
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: rgba(231,237,245,.65);
  margin-bottom: 2px;
}

.t-main{
  display: block;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.5px;
  color: #ffffff;
}
    
.t-main::before{
  content:"·";
  color: rgba(217,170,63,.85);
  margin-right:6px;
}

    .subtitle{
      color:var(--muted);
      opacity:.85;
      font-size:12.5px;
      line-height:1.35;
      margin-bottom:12px;
    }
    /* ===== Línea de recuento de modelos ===== */
#countLine{
  display:flex;
  gap:6px;
  align-items:baseline;
  flex-wrap:nowrap;
  white-space:nowrap;
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
}

#countLine .count-n{
  font-weight:900;
  font-size:14px;
  color:#fff;
  flex:0 0 auto;
}

#countLine .count-txt{
  font-weight:600;
  opacity:.75;
  flex:0 0 auto;
}

#countLine .count-school{
  font-weight:800;
  color: var(--schoolColor, #dfe6f1);
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.countFiltersRow{
  margin-top:10px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-width:0;
}

/* Sticky de controles sin "tarjeta" visible */
.panel.left .schoolSticky{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
  margin: 8px 0 10px !important;
}

    .card{
      background: rgba(255,255,255,0.04);
      border:1px solid rgba(255,255,255,0.06);
      border-radius:14px;
      padding:12px;
      margin:12px 0;
      box-shadow:
        0 10px 28px rgba(0,0,0,0.25),
        inset 0 1px 0 rgba(255,255,255,0.04);
    }
    .row{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
    label{font-size:12px;color:var(--muted2);}

    .schoolControls{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(0,1fr);
      gap:8px;
      align-items:center;
      width:100%;
    }

    .schoolControls .schoolControl{
      min-width:0;
    }

    .schoolControls select{
      width:100%;
      height:38px;
      padding:8px 32px 8px 10px;
      border-radius:11px;
      font-size:12px;
    }

    .compactLabel{
      display:none;
    }

    .groupTargetWrap[hidden]{
      display:none !important;
    }

    .schoolSelectRow{
      display:none !important;
    }

    .libraryViewControl{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      grid-column:1 / -1;
      padding-top:2px;
    }

    .libraryViewControl .compactLabel{
      margin:0;
      flex:0 0 auto;
    }

    .libraryViewToggle{
      display:grid;
      grid-template-columns:repeat(2,minmax(72px,1fr));
      gap:3px;
      width:min(100%,190px);
      padding:3px;
      border:1px solid rgba(244,238,228,0.11);
      border-radius:11px;
      background:#111015;
    }

    .libraryViewToggle :is(button, a){
      min-height:30px;
      padding:5px 10px;
      border:0;
      border-radius:8px;
      background:transparent;
      color:rgba(244,238,228,0.55);
      font:700 0.7rem/1 'Hanken Grotesk',system-ui,sans-serif;
      cursor:pointer;
      transition:background-color .16s ease,color .16s ease,box-shadow .16s ease;
    }

    .libraryViewToggle :is(button, a):hover{
      color:#f4eee4;
    }

    .libraryViewToggle :is(button, a).is-active{
      background:color-mix(in srgb,var(--schoolColor,#D9AA3F) 18%,#17151a);
      color:#fff;
      box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--schoolColor,#D9AA3F) 34%,transparent);
    }

    .mobileTypeSlot{
      display:none;
    }

    .typeFilters{
      display:flex;
      gap:8px;
      flex-wrap:nowrap;
      align-items:center;
      margin-top:0;
      flex-shrink:0;
      justify-self:end;
    }

    .typeFilterSelect{
      min-width:132px;
      height:34px;
      padding:6px 32px 6px 12px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.16);
      background:
        linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04)),
        radial-gradient(120px 60px at 90% 50%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 15%, transparent), transparent 60%);
      color:rgba(234,240,248,.92);
      font-size:11px;
      font-weight:800;
      letter-spacing:.28px;
      text-transform:uppercase;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
      appearance:none;
      -webkit-appearance:none;
      -moz-appearance:none;
      background-image:
        linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04)),
        radial-gradient(120px 60px at 90% 50%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 15%, transparent), transparent 60%),
        url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>\
<path d='M7 10l5 5 5-5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/>\
</svg>");
      background-repeat:no-repeat;
      background-position:
        0 0,
        0 0,
        right 10px center;
      background-size:
        auto,
        auto,
        16px 16px;
    }

    .typeFilterSelect:hover{
      border-color: rgba(255,255,255,.26);
      color:#fff;
    }

    .typeFilterSelect:focus{
      outline:none;
      border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 56%, rgba(255,255,255,.24));
      box-shadow:
        0 0 0 3px color-mix(in srgb, var(--schoolColor, #D9AA3F) 18%, transparent),
        inset 0 1px 0 rgba(255,255,255,.20);
    }

    select{
      width: 100%;
      background: rgba(255,255,255,0.06);
      border:1px solid rgba(255,255,255,0.12);
      color: var(--text);
      border-radius: 12px;
      padding: 10px 10px;
      font-weight: 700;
      outline: none;
    }
    select:focus{ border-color: rgba(217,170,63,.35); box-shadow: 0 0 0 4px rgba(217,170,63,.10); }

    .modelsList{
      margin-top: 10px;
      display:flex;
      flex-direction:column;
      gap:10px;
    }

    .school-swipe-out-left{
      animation: schoolSwipeOutLeft .18s ease forwards;
    }
    .school-swipe-out-right{
      animation: schoolSwipeOutRight .18s ease forwards;
    }
    .school-swipe-in-left{
      animation: schoolSwipeInLeft .24s cubic-bezier(.22,.61,.36,1) both;
    }
    .school-swipe-in-right{
      animation: schoolSwipeInRight .24s cubic-bezier(.22,.61,.36,1) both;
    }

    @keyframes schoolSwipeOutLeft{
      from{ opacity:1; transform:translateX(0); }
      to{ opacity:.0; transform:translateX(-26px); }
    }
    @keyframes schoolSwipeOutRight{
      from{ opacity:1; transform:translateX(0); }
      to{ opacity:.0; transform:translateX(26px); }
    }
    @keyframes schoolSwipeInLeft{
      from{ opacity:.0; transform:translateX(26px); }
      to{ opacity:1; transform:translateX(0); }
    }
    @keyframes schoolSwipeInRight{
      from{ opacity:.0; transform:translateX(-26px); }
      to{ opacity:1; transform:translateX(0); }
    }

    /* Lista clicable (doc) */
.mi-item{
  cursor: pointer;
  height: 96px;
  min-height: 96px;
  border-radius: 18px;
  padding: 13px 14px;
  border: 1px solid rgba(255,255,255,0.07);
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--schoolColor) 5%, rgba(255,255,255,0.035)),
      rgba(255,255,255,0.022)
    ),
    radial-gradient(180px 100px at 96% 8%, rgba(255,255,255,0.05), transparent 72%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 8px 18px rgba(0,0,0,0.12);
  backdrop-filter: blur(6px) saturate(106%);
  -webkit-backdrop-filter: blur(6px) saturate(106%);
  transition:
    background .16s ease,
    border-color .14s ease,
    transform .16s ease,
    box-shadow .16s ease,
    opacity .16s ease;
  user-select:none;
  position: relative;
  content-visibility: auto;
  contain-intrinsic-size: 96px;
  overflow: hidden;
}

    .mi-item:hover{
      background:
        linear-gradient(
          180deg,
          color-mix(in srgb, var(--schoolColor) 7%, rgba(255,255,255,0.05)),
          rgba(255,255,255,0.038)
        ),
        radial-gradient(200px 110px at 96% 8%, rgba(255,255,255,0.07), transparent 74%);
      border-color: rgba(255,255,255,0.14);
      transform: translate3d(0,-1px,0);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.07),
        0 14px 28px rgba(0,0,0,0.16);
    }
   .mi-item.active{
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 34%, rgba(255,255,255,0.18));
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 12%, rgba(255,255,255,0.08)),
      rgba(255,255,255,0.04)
    ),
    radial-gradient(220px 120px at 0% 0%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 16%, transparent), transparent 72%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor, #D9AA3F) 12%, transparent),
    0 14px 28px color-mix(in srgb, var(--schoolColor, #D9AA3F) 8%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.12);
}
/* ===== MARCOS: aspecto claramente distinto ===== */
.mi-item.is-marco{
  position: relative;
  border-style: solid;
  border-width: 1px;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 0.8%, rgba(255,255,255,0.024)),
      rgba(255,255,255,0.010)
    ),
    radial-gradient(170px 90px at 96% 10%, rgba(255,255,255,0.018), transparent 76%);
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 4%, rgba(255,255,255,0.08));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.028),
    0 4px 10px rgba(0,0,0,0.08);
}

.mi-item.is-marco.active{
  border-color: color-mix(in srgb, var(--schoolColor) 18%, rgba(255,255,255,0.14));
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 3.2%, rgba(255,255,255,0.04)),
      rgba(255,255,255,0.016)
    ),
    radial-gradient(200px 110px at 0% 0%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 5%, transparent), transparent 76%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor) 5%, transparent),
    0 8px 16px color-mix(in srgb, var(--schoolColor) 3%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.08);
}

.mi-item.is-marco:hover{
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 7%, rgba(255,255,255,0.10));
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 1.4%, rgba(255,255,255,0.032)),
      rgba(255,255,255,0.015)
    ),
    radial-gradient(180px 100px at 96% 8%, rgba(255,255,255,0.026), transparent 76%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 6px 14px rgba(0,0,0,0.10);
}

.mi-section{
  display:grid;
  gap:10px;
  margin:8px 0 6px;
}

.mi-section + .mi-section{
  margin-top:18px;
}

.mi-sectionHeader{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:10px;
  align-items:center;
}

.mi-sectionLine{
  height:1px;
  border-radius:999px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
}

.mi-sectionLabel{
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.62);
  white-space:nowrap;
}

.mi-shell{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:12px;
  align-items:center;
  height:100%;
}

.mi-avatar{
  position:relative;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:999px;
  overflow:hidden;
  flex:0 0 auto;
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,0.16), rgba(255,255,255,0.03) 62%),
    color-mix(in srgb, var(--schoolColor, #D9AA3F) 14%, rgba(255,255,255,0.03));
  border:1px solid color-mix(in srgb, var(--schoolColor, #D9AA3F) 18%, rgba(255,255,255,0.12));
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--schoolColor, #D9AA3F) 8%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

.mi-avatar img{
  grid-area:1 / 1;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center top;
  opacity:0;
  transition:opacity .18s ease;
}

.mi-avatar img.is-loaded{
  opacity:1;
}

.mi-avatarFallback{
  grid-area:1 / 1;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.88);
}

.mi-item.active .mi-avatar{
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 34%, rgba(255,255,255,0.16));
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--schoolColor, #D9AA3F) 10%, transparent),
    0 6px 16px color-mix(in srgb, var(--schoolColor, #D9AA3F) 10%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.14);
}

.mi-body{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  min-height:100%;
  position:relative;
}

.mi-top{
  display:block;
  position:relative;
}

.mi-titleWrap{
  min-width:0;
  display:grid;
  grid-template-columns:6px minmax(0,1fr);
  column-gap:9px;
  align-items:center;
  padding-right:64px;
}

.mi-accentDot{
  width:6px;
  height:6px;
  margin-top:0;
  border-radius:999px;
  flex:0 0 auto;
  background: color-mix(in srgb, var(--schoolColor, #D9AA3F) 58%, rgba(255,255,255,0.20));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--schoolColor, #D9AA3F) 8%, transparent);
  opacity:.72;
}

.mi-title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  font-weight:760;
  font-size:13.4px;
  color:#fff;
  line-height:1.2;
  letter-spacing:-0.015em;
  max-height:calc(1.2em * 2);
}

.mi-item.is-marco .mi-title{
  font-weight: 690;
  letter-spacing: 0;
  color: rgba(255,255,255,0.88);
  opacity: 1;
}

.mi-item.is-marco .mi-typeTag,
.mi-item.is-marco .mi-marcoTag{
  position:static;
}

.mi-item.is-marco .mi-sub{
  padding-right:64px;
  color: rgba(184,197,215,0.70);
}

.mi-item.is-marco .mi-year{
  color: rgba(231,237,245,.58);
  border-color: rgba(255,255,255,.06);
  background: rgba(255,255,255,0.032);
}

.mi-item.is-marco .mi-avatar{
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,0.10), rgba(255,255,255,0.018) 62%),
    color-mix(in srgb, var(--schoolColor, #D9AA3F) 9%, rgba(255,255,255,0.02));
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 10%, rgba(255,255,255,0.10));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor, #D9AA3F) 4%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

.mi-item.is-marco .mi-accentDot{
  background: color-mix(in srgb, var(--schoolColor, #D9AA3F) 38%, rgba(255,255,255,0.18));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--schoolColor, #D9AA3F) 5%, transparent);
  opacity:.56;
}

.mi-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  align-self:start;
  position:absolute;
  top:0;
  right:0;
}

    .mi-year{
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:22px;
      padding:0 8px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,0.09);
      background: rgba(255,255,255,0.05);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
      font-weight:800;
      font-size:10px;
      letter-spacing:.045em;
      color: rgba(231,237,245,.72);
    }
    .mi-typeTag,
    .mi-marcoTag{
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:18px;
      max-width:58px;
      padding:0 6px;
      border-radius:999px;
      border:1px solid color-mix(in srgb, var(--schoolColor, #D9AA3F) 18%, rgba(255,255,255,0.09));
      background: color-mix(in srgb, var(--schoolColor, #D9AA3F) 7%, rgba(255,255,255,0.025));
      font-size:8px;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 28%, rgba(231,237,245,0.60));
      pointer-events:none;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .mi-sub{
      min-width:0;
      display:-webkit-box;
      -webkit-box-orient:vertical;
      -webkit-line-clamp:2;
      overflow:hidden;
      opacity:.8;
      font-size:12px;
      font-weight:540;
      color:#b8c5d7;
      line-height:1.14;
      padding-left:15px;
      padding-right:64px;
      margin-top:0;
    }
    .mi-item.active .mi-sub{
      color:#d7e1ee;
    }
    .pill{
      display:inline-block;
      margin-top:6px;
      padding:2px 8px;
      border-radius:999px;
      font-size:11px;
      background: rgba(255,255,255,0.07);
      border:1px solid rgba(255,255,255,0.10);
      color:#dfe6f1;
    }
/* =========================
   Fade al cambiar de modelo
   ✅ SOLO smartphone/tablet (<=980px)
   ========================= */

/* Desktop: SIN fade (por defecto) */
#modelInfo,
.modelPanel{
  transition: none !important;
  will-change: auto !important;
}
#modelInfo.is-loading,
.modelPanel.is-loading{
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}

/* Móvil: CON fade */
@media (max-width: 980px){
  #modelInfo{
    transition: opacity .22s ease, transform .22s ease;
    will-change: opacity, transform;
  }

  #modelInfo.is-loading{
    opacity: 0;
    transform: translateY(4px);
    pointer-events: none;
  }

  .modelPanel{
    transition: opacity .22s ease, transform .22s ease;
  }

  .modelPanel.is-loading{
    opacity: 0;
    transform: translateY(4px);
    pointer-events: none;
  }
}


    /* ===== Panel derecho: modelPanel (doc) ===== */
    .model-panel{ padding:0; overflow:hidden; }
    .modelPanel{
      padding: 18px 16px;
      color: #e7edf5;
      font-size: 13px;
      line-height: 1.45;
    }

     .modelPanel .mp-tag{
       display:inline-flex;
       align-items:center;
       gap:6px;
       padding:4px 10px;
       border-radius:999px;
       font-size:11px;
      font-weight:800;
      letter-spacing:.3px;
      margin-bottom:10px;
       background: rgba(255,255,255,0.08);
       border: 1px solid rgba(255,255,255,0.12);
     }
    .modelPanel .mp-tag-sep{
      opacity:.72;
    }
    .modelPanel .mp-tag-type{
      font-weight:900;
      text-transform:none;
    }
.modelPanel .mp-title{
  font-size:28px;              /* ⬅️ más presencia */
  font-weight:800;            /* ⬅️ menos “bloque”, más elegante */
  line-height:1.05;
  margin:6px 0 12px;
  color:#fff;

  letter-spacing:-0.02em;     /* ⬅️ look premium */
  text-shadow:
    0 1px 0 rgba(0,0,0,0.35),
    0 10px 28px rgba(0,0,0,0.35);
}

    /* ===== DIFERENCIAR VISTA ESCUELA ===== */
.modelPanel.school-view{
 
  padding-top: 16px;
}

.modelPanel.school-view .mp-title{
  display:none; /* en escuela no usamos el mp-title */
}

.school-header{
  margin: 4px 0 14px 0;
}

.school-eyebrow{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  opacity: .65;
}

.school-title{
  font-size: 30px;
  font-weight: 950;
  line-height: 1.05;
  letter-spacing: -0.6px;
  color: var(--schoolColor, #fff);
}

    .modelPanel .mp-author{
      font-size:13px;
      font-weight:700;
      color:#cfd9e6;
      margin-bottom:10px;
    }
    .modelPanel .mp-meta{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-bottom:14px;
    }
    .modelPanel .mp-pill{
      padding:4px 10px;
      border-radius:999px;
      font-size:11px;
      font-weight:700;
      background: rgba(255,255,255,0.07);
      border: 1px solid rgba(255,255,255,0.12);
      color:#dfe6f1;
    }
    .modelPanel .mp-desc{
      margin-top:6px;
      font-size:13px;
      line-height:1.55;
      color:#e3ebf6;
      white-space: pre-wrap;
    }
    .modelPanel .mp-quote{
      margin: 6px 0 10px;
      padding: 8px 12px;
      border-left: 3px solid color-mix(in srgb, var(--schoolColor, #b0882c) 72%, #ffffff 10%);
      border-radius: 0 10px 10px 0;
      background: linear-gradient(
        90deg,
        rgba(255,255,255,0.06) 0%,
        rgba(255,255,255,0.06) 45%,
        rgba(255,255,255,0) 50%,
        rgba(255,255,255,0) 100%
      );
      color: #f2f6fd;
      font-size: 13px;
      line-height: 1.5;
      white-space: pre-wrap;
    }
    .modelPanel .mp-quote::before{
      content: "“";
      opacity: .72;
      margin-right: 2px;
    }
    .modelPanel .mp-quote::after{
      content: "”";
      opacity: .72;
      margin-left: 2px;
    }
    /* En vista de ESCUELA: no respetes saltos del template literal */
.modelPanel.school-view .mp-desc{
  white-space: normal;
}

/* ===== Vista editorial de escuela ===== */
.panel.right:has(.school-editorial){
  background:#0c0a0d;
}
.modelPanel:has(.school-editorial){
  min-height:100%;
  padding:0;
  overflow:visible;
  background:#0c0a0d;
}
.modelPanel.school-view:has(.school-editorial):not(.school-swipe-out-left):not(.school-swipe-out-right){
  opacity:1 !important;
}
.school-editorial{
  --school-ink:#f4eee4;
  --school-muted:rgba(244,238,228,0.68);
  --school-line:rgba(244,238,228,0.12);
  position:relative;
  min-height:100%;
  overflow:hidden;
  background:
    radial-gradient(900px 620px at 90% 4%, color-mix(in srgb,var(--schoolColor,#D9AA3F) 18%,transparent), transparent 66%),
    #0c0a0d;
  color:var(--school-ink);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
}
.school-editorial::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0.18;
  background:
    linear-gradient(90deg,transparent 0 49.9%,rgba(244,238,228,0.08) 50%,transparent 50.1%),
    linear-gradient(0deg,transparent 0 49.9%,rgba(244,238,228,0.05) 50%,transparent 50.1%);
  background-size:160px 160px;
  mask-image:linear-gradient(90deg,transparent 32%,#000 100%);
}
.school-editorialHero{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,0.85fr);
  gap:clamp(50px,8vw,120px);
  align-items:center;
  min-height:100%;
  padding:clamp(54px,7vw,90px) clamp(34px,7vw,100px);
}
.school-editorialKicker{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 24px;
  color:var(--schoolColor,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:0.72rem;
  font-weight:650;
  letter-spacing:0.18em;
  text-transform:uppercase;
}
.school-editorialKicker::before{
  content:"";
  width:32px;
  height:1px;
  background:currentColor;
}
.school-editorialTitle{
  max-width:800px;
  margin:0;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(4.8rem,9vw,9rem);
  font-weight:400;
  letter-spacing:-0.035em;
  line-height:0.86;
  text-wrap:balance;
}
.school-editorialSubtitle{
  max-width:650px;
  margin:34px 0 0;
  color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 72%,#ffffff 28%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.55rem,2.6vw,2.35rem);
  line-height:1.08;
}
.school-editorialSide{
  align-self:center;
}
.school-editorialIntro{
  margin:0;
  color:var(--school-muted);
  font-size:clamp(1.02rem,1.45vw,1.2rem);
  line-height:1.75;
}
.school-editorialIntro::first-letter{
  float:left;
  padding:8px 12px 0 0;
  color:var(--schoolColor,#D9AA3F);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:4.2em;
  line-height:0.65;
}
.school-editorialFacts{
  display:grid;
  grid-template-columns:0.7fr 1.3fr;
  gap:24px;
  margin-top:30px;
}
.school-editorialFact{
  padding-left:13px;
  border-left:2px solid color-mix(in srgb,var(--schoolColor,#D9AA3F) 65%,transparent);
}
.school-editorialFactLabel{
  display:block;
  margin-bottom:5px;
  color:rgba(244,238,228,0.42);
  font-family:'Space Grotesk',monospace;
  font-size:0.59rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.school-editorialFactValue{
  color:#f4eee4;
  font-size:0.94rem;
  font-weight:650;
  line-height:1.4;
}
.school-editorialBody{
  position:relative;
  z-index:1;
  padding:clamp(42px,6vw,76px) clamp(34px,7vw,100px);
}
.school-editorialSectionHead{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:26px;
}
.school-editorialSectionKicker{
  margin:0 0 7px;
  color:var(--schoolColor,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:0.65rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.school-editorialSectionTitle{
  margin:0;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:400;
}
.school-editorialKeys{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:30px;
}
.school-editorialKey{
  padding:10px 15px;
  border:1px solid color-mix(in srgb,var(--schoolColor,#D9AA3F) 26%,rgba(244,238,228,0.12));
  border-radius:999px;
  background:color-mix(in srgb,var(--schoolColor,#D9AA3F) 7%,rgba(255,255,255,0.018));
  color:rgba(244,238,228,0.82);
  font-size:0.86rem;
  font-weight:650;
}
.school-editorialCta{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:30px;
  padding-top:22px;
  border-top:1px solid var(--school-line);
  color:rgba(244,238,228,0.52);
  font-size:0.86rem;
  font-weight:650;
}
.school-editorialCta::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--schoolColor,#D9AA3F);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--schoolColor,#D9AA3F) 12%,transparent);
}

/* Portada editorial de Tags */
.tags-editorial .school-editorialHero{
  min-height:min(720px,calc(100vh - 34px));
}
.tags-editorialBody{
  border-top:1px solid var(--school-line);
}
.tags-editorialFacets{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(34px,5vw,58px);
  border-top:1px solid var(--school-line);
  border-left:1px solid var(--school-line);
}
.tags-editorialFacet{
  position:relative;
  min-height:210px;
  padding:30px 28px 32px;
  border-right:1px solid var(--school-line);
  border-bottom:1px solid var(--school-line);
  background:linear-gradient(145deg,color-mix(in srgb,var(--schoolColor,#8BAA9A) 5%,transparent),transparent 62%);
}
.tags-editorialFacetNum{
  display:block;
  margin-bottom:38px;
  color:color-mix(in srgb,var(--schoolColor,#8BAA9A) 78%,#ffffff 22%);
  font-family:'Space Grotesk',monospace;
  font-size:.62rem;
  font-weight:650;
  letter-spacing:.18em;
}
.tags-editorialFacetTitle{
  margin:0;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.65rem,2.3vw,2.25rem);
  font-weight:400;
  line-height:1;
}
.tags-editorialFacetText{
  max-width:30ch;
  margin:14px 0 0;
  color:var(--school-muted);
  font-size:.88rem;
  line-height:1.62;
}
.tags-editorialFacetMeta{
  display:block;
  margin-top:22px;
  color:rgba(244,238,228,.36);
  font-family:'Space Grotesk',monospace;
  font-size:.56rem;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
}
@media (max-width:900px){
  .tags-editorial .school-editorialHero{ min-height:auto; }
  .tags-editorialFacets{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px){
  .tags-editorialFacets{ grid-template-columns:1fr; }
  .tags-editorialFacet{ min-height:0; }
}
.school-editorialTimeline{
  position:relative;
  z-index:1;
  margin:0 clamp(34px,7vw,100px) clamp(50px,7vw,88px);
  padding:clamp(48px,5vw,72px) clamp(42px,6vw,78px);
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
  isolation:isolate;
}
.school-editorialTimeline::before{
  display:none;
}
.school-editorialTimeline > *{
  position:relative;
  z-index:1;
}
.school-editorialTimelineHead{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:clamp(52px,6vw,72px);
}
.school-editorialTimelineKicker{
  display:flex;
  align-items:center;
  gap:28px;
  margin:0 0 18px;
  color:var(--schoolColor,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:0.9rem;
  font-weight:650;
  letter-spacing:0.28em;
  text-transform:uppercase;
}
.school-editorialTimelineKicker::before{
  content:"";
  width:56px;
  height:1px;
  background:currentColor;
  opacity:.9;
}
.school-editorialTimelineTitle{
  margin:0;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(3.9rem,6.5vw,6.8rem);
  font-weight:400;
  line-height:.9;
  letter-spacing:-.025em;
}
.school-editorialTimelineCount{
  margin-bottom:12px;
  color:rgba(244,238,228,0.42);
  font-family:'Space Grotesk',monospace;
  font-size:0.92rem;
  font-weight:650;
  letter-spacing:0.22em;
  text-transform:uppercase;
}
.school-editorialTimelineList{
  position:relative;
  isolation:isolate;
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.school-editorialTimelineList::before{
  content:"";
  position:absolute;
  left:252px;
  top:0;
  bottom:54px;
  z-index:0;
  width:2px;
  border-radius:999px;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--schoolColor,#D9AA3F) 76%,transparent),
    color-mix(in srgb,var(--schoolColor,#D9AA3F) 54%,transparent) 88%,
    transparent);
  transform:translateX(-50%);
  box-shadow:0 0 10px color-mix(in srgb,var(--schoolColor,#D9AA3F) 18%,transparent);
  pointer-events:none;
}
.school-editorialTimelineItem{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:228px 104px minmax(0,1fr);
  gap:36px;
  align-items:start;
  min-height:120px;
  margin-top:var(--timeline-gap, 0px);
  padding:0 0 28px;
}
.school-editorialTimelineItem:last-child{
  padding-bottom:34px;
}
/* === Timeline scroll-reveal motion === */
.school-editorialTimelineList.tl-will-animate::before{
  transform-origin:top center;
  transform:scaleY(0);
  transition:transform 1.5s cubic-bezier(0.22,1,0.36,1) 0.08s;
}
.school-editorialTimelineList.tl-will-animate.is-visible::before{
  transform:scaleY(1);
}
.school-editorialTimelineItem.tl-will-animate{
  opacity:0;
  transform:translateY(22px);
  transition:
    opacity  0.52s cubic-bezier(0.22,1,0.36,1),
    transform 0.52s cubic-bezier(0.22,1,0.36,1);
}
.school-editorialTimelineItem.tl-will-animate.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media(prefers-reduced-motion:reduce){
  .school-editorialTimelineList.tl-will-animate::before,
  .school-editorialTimelineItem.tl-will-animate{
    opacity:1;transform:none;transition:none;
  }
}
/* === end timeline motion === */
.school-editorialTimelineItem::before{
  content:"";
  position:absolute;
  left:252px;
  top:9px;
  width:12px;
  height:12px;
  border-radius:50%;
  border:0;
  background:color-mix(in srgb,var(--schoolColor,#D9AA3F) 64%,rgba(244,238,228,0.38));
  transform:translateX(-50%);
  box-shadow:none;
}
.school-editorialTimelineItem.is-decade-start::before{
  width:15px;
  height:15px;
  top:7px;
  border:2px solid var(--schoolColor,#D9AA3F);
  background:#0c0a0d;
}
.school-editorialTimelineDecade{
  color:var(--schoolColor,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:1.05rem;
  font-weight:650;
  letter-spacing:0.34em;
  line-height:1.2;
  text-transform:uppercase;
}
.school-editorialTimelineItem:not(.is-decade-start) .school-editorialTimelineDecade{
  color:transparent;
}
.school-editorialTimelineYear{
  color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 78%,#ffffff 22%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.85rem,2.4vw,2.55rem);
  font-weight:400;
  line-height:.9;
  letter-spacing:0;
  padding-left:18px;
}
.school-editorialTimelineLabel{
  display:block;
  width:fit-content;
  max-width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.75rem,2.6vw,2.65rem);
  font-weight:400;
  line-height:1;
  text-align:left;
  cursor:pointer;
  transition:color .16s ease, text-shadow .16s ease;
}
button.school-editorialTimelineLabel:hover,
button.school-editorialTimelineLabel:focus-visible{
  color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 72%,#ffffff 28%);
  text-shadow:0 0 24px color-mix(in srgb,var(--schoolColor,#D9AA3F) 20%,transparent);
}
button.school-editorialTimelineLabel:focus-visible{
  outline:1px solid color-mix(in srgb,var(--schoolColor,#D9AA3F) 68%,transparent);
  outline-offset:6px;
}
.school-editorialTimelineAuthors{
  display:block;
  margin-top:12px;
  color:rgba(244,238,228,0.48);
  font-size:clamp(0.98rem,1.25vw,1.18rem);
  font-style:italic;
  font-weight:520;
  line-height:1.35;
}
.school-editorialTimeline--all .school-editorialTimelineItem::before{
  background:color-mix(in srgb,var(--timeline-item-color,var(--schoolColor,#D9AA3F)) 72%,rgba(244,238,228,0.34));
}
.school-editorialTimeline--all .school-editorialTimelineItem.is-decade-start::before{
  border-color:var(--timeline-item-color,var(--schoolColor,#D9AA3F));
  background:#0c0a0d;
}
.school-editorialTimeline--all button.school-editorialTimelineLabel:hover,
.school-editorialTimeline--all button.school-editorialTimelineLabel:focus-visible{
  color:color-mix(in srgb,var(--timeline-item-color,var(--schoolColor,#D9AA3F)) 72%,#ffffff 28%);
  text-shadow:0 0 24px color-mix(in srgb,var(--timeline-item-color,var(--schoolColor,#D9AA3F)) 20%,transparent);
}
.school-editorialTimelineSource{
  display:flex;
  align-items:center;
  gap:8px;
  width:fit-content;
  margin-top:10px;
  color:color-mix(in srgb,var(--timeline-item-color,var(--schoolColor,#D9AA3F)) 72%,rgba(244,238,228,0.58));
  font-family:'Space Grotesk',monospace;
  font-size:.58rem;
  font-weight:650;
  letter-spacing:.12em;
  line-height:1.35;
  text-transform:uppercase;
}
.school-editorialTimelineSource::before{
  content:"";
  width:6px;
  height:6px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--timeline-item-color,var(--schoolColor,#D9AA3F));
}
.school-editorialTimelineMore{
  display:grid;
  grid-template-columns:228px 104px minmax(0,1fr);
  gap:36px;
  align-items:center;
  margin-top:2px;
  color:rgba(244,238,228,0.38);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.25rem,1.9vw,1.9rem);
  font-style:italic;
  letter-spacing:.08em;
}
.school-editorialTimelineMore::before{
  content:"";
  grid-column:2;
  justify-self:start;
  margin-left:-18px;
  width:10px;
  height:10px;
  border-radius:50%;
  border:2px solid rgba(244,238,228,0.28);
}
.school-editorialTimelineMore span{
  grid-column:3;
}
.school-editorial .ep-comparison{
  margin:0 clamp(34px,7vw,100px) clamp(50px,7vw,90px);
}

/* ===== Cabecera y selectores editoriales del buscador ===== */
.panel.left .sidebarHeader{
  align-items:center;
  margin:0 0 18px;
  padding-top:12px;
}
.panel.left .sidebarHeader .title{
  position:relative;
  padding-left:15px;
}
.panel.left .sidebarHeader .title::before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  bottom:3px;
  width:2px;
  border-radius:999px;
  background:var(--schoolColor,#D9AA3F);
}
.panel.left .t-eyebrow{
  margin:0 0 3px;
  color:rgba(244,238,228,0.46);
  font-family:'Space Grotesk',monospace;
  font-size:0.58rem;
  font-weight:650;
  letter-spacing:0.17em;
}
.panel.left .t-main{
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:2rem;
  font-weight:400;
  letter-spacing:-0.025em;
  line-height:0.92;
}
.panel.left .t-main::before{ display:none; }

.panel.left .schoolSticky{
  margin-bottom:16px !important;
}
.panel.left .schoolControls{
  grid-template-columns:minmax(0,0.95fr) minmax(0,1.35fr);
  gap:9px;
  align-items:end;
}
.panel.left .schoolControls .schoolControl{
  position:relative;
}
.panel.left .schoolControls .compactLabel{
  display:block;
  margin:0 0 6px 2px;
  color:rgba(244,238,228,0.38);
  font-family:'Space Grotesk',monospace;
  font-size:0.52rem;
  font-weight:650;
  letter-spacing:0.13em;
  line-height:1;
  text-transform:uppercase;
}
.panel.left .schoolControls select,
.panel.left .typeFilterSelect{
  width:100%;
  height:42px;
  appearance:none;
  -webkit-appearance:none;
  padding:9px 34px 9px 12px;
  border:1px solid rgba(244,238,228,0.13);
  border-radius:12px;
  background-color:#111015;
  background-image:
    linear-gradient(45deg,transparent 50%,color-mix(in srgb,var(--schoolColor,#D9AA3F) 82%,#ffffff 18%) 50%),
    linear-gradient(135deg,color-mix(in srgb,var(--schoolColor,#D9AA3F) 82%,#ffffff 18%) 50%,transparent 50%),
    linear-gradient(180deg,rgba(255,255,255,0.035),transparent);
  background-position:
    calc(100% - 15px) 18px,
    calc(100% - 11px) 18px,
    0 0;
  background-size:4px 4px,4px 4px,100% 100%;
  background-repeat:no-repeat;
  color:#f4eee4;
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.79rem;
  font-weight:700;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.035);
  transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease;
}
.panel.left .schoolControls select:hover,
.panel.left .typeFilterSelect:hover{
  border-color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 38%,rgba(244,238,228,0.16));
  background-color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 5%,#111015);
}
.panel.left .schoolControls select:focus,
.panel.left .typeFilterSelect:focus{
  outline:none;
  border-color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 72%,transparent);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045),
    0 0 0 3px color-mix(in srgb,var(--schoolColor,#D9AA3F) 12%,transparent);
}
.panel.left .schoolControls select option,
.panel.left .typeFilterSelect option{
  background:#111015;
  color:#f4eee4;
}
.panel.left .countFiltersRow{
  margin-top:13px;
  padding-top:12px;
  border-top:1px solid rgba(244,238,228,0.09);
}
.panel.left #countLine{
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.76rem;
}
.panel.left #countLine .count-n{
  color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 82%,#ffffff 18%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.25rem;
  font-weight:400;
}

/* Tags: seis facetas compactas con menús de checkboxes bajo demanda. */
.tagFiltersPanel{
  position:relative;
  z-index:35;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(244,238,228,0.09);
}
.tagFiltersPanel[hidden]{ display:none !important; }
.tagFiltersStatus{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:20px;
  margin:0 2px 7px;
  color:rgba(244,238,228,0.46);
  font-family:'Space Grotesk',monospace;
  font-size:0.56rem;
  font-weight:650;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.tagFiltersClear{
  appearance:none;
  border:0;
  padding:2px 0;
  background:transparent;
  color:color-mix(in srgb,var(--schoolColor,#8BAA9A) 76%,#ffffff 24%);
  font:inherit;
  letter-spacing:inherit;
  text-transform:uppercase;
  cursor:pointer;
}
.tagFiltersClear[hidden]{ display:none !important; }
.tagFacetGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}
.tagFacet{
  position:relative;
  min-width:0;
}
.tagFacet > summary{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
  height:32px;
  padding:0 9px;
  border:1px solid rgba(244,238,228,0.11);
  border-radius:10px;
  background:rgba(255,255,255,0.032);
  color:rgba(244,238,228,0.72);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.69rem;
  font-weight:700;
  list-style:none;
  cursor:pointer;
  user-select:none;
  transition:border-color .16s ease,background .16s ease,color .16s ease;
}
.tagFacet > summary::-webkit-details-marker{ display:none; }
.tagFacet > summary::after{
  content:'+';
  margin-left:auto;
  color:rgba(244,238,228,0.36);
  font-size:0.86rem;
  font-weight:500;
}
.tagFacet[open] > summary::after{ content:'\2212'; }
.tagFacet[open] > summary,
.tagFacet.has-selection > summary{
  border-color:color-mix(in srgb,var(--schoolColor,#8BAA9A) 52%,rgba(244,238,228,0.12));
  background:color-mix(in srgb,var(--schoolColor,#8BAA9A) 10%,rgba(255,255,255,0.035));
  color:#f7f2ea;
}
.tagFacetName{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tagFacetCount{
  display:none;
  flex:0 0 auto;
  min-width:18px;
  height:18px;
  padding:0 5px;
  place-items:center;
  border-radius:999px;
  background:color-mix(in srgb,var(--schoolColor,#8BAA9A) 34%,rgba(255,255,255,0.08));
  color:#fff;
  font-size:0.58rem;
  line-height:18px;
  text-align:center;
}
.tagFacet.has-selection .tagFacetCount{ display:inline-grid; }
.tagFacetMenu{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  z-index:60;
  width:245px;
  max-height:238px;
  overflow:auto;
  padding:7px;
  border:1px solid rgba(244,238,228,0.14);
  border-radius:13px;
  background:rgba(15,15,19,0.98);
  box-shadow:0 20px 46px rgba(0,0,0,0.48),inset 0 1px 0 rgba(255,255,255,0.04);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.tagFacet:nth-child(3n+2) .tagFacetMenu{
  left:50%;
  transform:translateX(-50%);
}
.tagFacet:nth-child(3n) .tagFacetMenu{
  right:0;
  left:auto;
}
.tagCheck{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:32px;
  padding:5px 7px;
  border-radius:8px;
  color:rgba(244,238,228,0.76);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.72rem;
  font-weight:600;
  line-height:1.22;
  text-transform:none;
  letter-spacing:0;
  cursor:pointer;
}
.tagCheck:hover{ background:rgba(255,255,255,0.055); color:#fff; }
.tagCheck input{
  width:15px;
  height:15px;
  flex:0 0 auto;
  margin:0;
  accent-color:var(--schoolColor,#8BAA9A);
}
.tagFiltersMessage{
  padding:8px 2px 2px;
  color:rgba(244,238,228,0.56);
  font-size:0.72rem;
}
body.theme-light .tagFiltersPanel{ border-top-color:rgba(27,31,38,0.10); }
body.theme-light .tagFiltersStatus{ color:rgba(27,31,38,0.48); }
body.theme-light .tagFacet > summary{
  border-color:rgba(27,31,38,0.12);
  background:rgba(255,255,255,0.64);
  color:rgba(27,31,38,0.74);
}
body.theme-light .tagFacet[open] > summary,
body.theme-light .tagFacet.has-selection > summary{ color:#171a20; }
body.theme-light .tagFacetMenu{
  border-color:rgba(27,31,38,0.13);
  background:rgba(250,250,248,0.98);
  box-shadow:0 20px 44px rgba(37,42,52,0.18);
}
body.theme-light .tagCheck{ color:rgba(27,31,38,0.76); }
body.theme-light .tagCheck:hover{ background:rgba(27,31,38,0.055); color:#111319; }

/* Tags bloqueados: vista previa local, sin solicitar el índice privado. */
.tagFiltersLockedNote{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 10px;
  border:1px solid rgba(139,170,154,0.18);
  border-radius:10px;
  background:rgba(139,170,154,0.06);
  color:rgba(244,238,228,0.58);
  font-family:'Space Grotesk',monospace;
  font-size:0.6rem;
  font-weight:650;
  letter-spacing:0.06em;
  line-height:1.35;
  text-transform:uppercase;
}
.tagFiltersLockedNote::before{
  content:'\2022';
  color:#9BC4AF;
  font-size:1rem;
  line-height:1;
}
.tagsPaywall{
  position:relative;
  min-height:440px;
  margin:8px 0 24px;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(139,170,154,0.2);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 14%,rgba(139,170,154,0.14),transparent 42%),
    linear-gradient(180deg,rgba(22,27,26,0.94),rgba(11,13,14,0.98));
  box-shadow:0 24px 64px rgba(0,0,0,0.34),inset 0 1px 0 rgba(255,255,255,0.04);
}
.tagsPaywallPreview{
  position:absolute;
  inset:0;
  display:grid;
  align-content:start;
  gap:8px;
  padding:18px 13px;
  opacity:0.44;
  filter:blur(4.5px);
  transform:scale(1.025);
  pointer-events:none;
  user-select:none;
}
.tagsPaywallPreviewRow{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 32px;
  align-items:center;
  gap:10px;
  min-height:54px;
  padding:8px 10px;
  border:1px solid rgba(244,238,228,0.1);
  border-radius:12px;
  background:rgba(255,255,255,0.035);
}
.tagsPaywallPreviewDot{
  width:34px;
  height:34px;
  border-radius:50%;
  background:linear-gradient(145deg,rgba(155,196,175,0.7),rgba(139,170,154,0.16));
}
.tagsPaywallPreviewText{
  display:grid;
  gap:6px;
}
.tagsPaywallPreviewText::before,
.tagsPaywallPreviewText::after{
  content:'';
  display:block;
  height:7px;
  border-radius:999px;
  background:rgba(244,238,228,0.42);
}
.tagsPaywallPreviewText::after{
  width:62%;
  height:5px;
  background:rgba(244,238,228,0.2);
}
.tagsPaywallPreviewMeta{
  height:18px;
  border-radius:999px;
  background:rgba(139,170,154,0.3);
}
.tagsPaywallShade{
  position:absolute;
  inset:0;
  z-index:1;
  display:grid;
  place-items:center;
  padding:22px;
  background:linear-gradient(180deg,rgba(10,12,13,0.12),rgba(10,12,13,0.7) 35%,rgba(10,12,13,0.92));
}
.tagsPaywallCard{
  width:min(292px,100%);
  padding:24px 20px 20px;
  border:1px solid rgba(155,196,175,0.28);
  border-radius:18px;
  background:rgba(14,18,17,0.9);
  box-shadow:0 24px 70px rgba(0,0,0,0.52),inset 0 1px 0 rgba(255,255,255,0.06);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  text-align:center;
}
.tagsPaywallIcon{
  display:grid;
  width:42px;
  height:42px;
  margin:0 auto 14px;
  place-items:center;
  border:1px solid rgba(155,196,175,0.34);
  border-radius:50%;
  color:#B9D8C8;
  background:rgba(139,170,154,0.11);
  box-shadow:0 0 32px rgba(139,170,154,0.14);
}
.tagsPaywallIcon svg{ width:18px; height:18px; }
.tagsPaywallEyebrow{
  margin:0 0 8px;
  color:#9BC4AF;
  font-family:'Space Grotesk',monospace;
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.tagsPaywallTitle{
  margin:0;
  color:#F7F2EA;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.8rem;
  font-weight:400;
  line-height:1.02;
}
.tagsPaywallCopy{
  margin:11px auto 18px;
  color:rgba(244,238,228,0.64);
  font-size:0.78rem;
  line-height:1.5;
}
.tagsPaywallButton{
  width:100%;
  min-height:44px;
  border:0;
  border-radius:999px;
  padding:0 18px;
  color:#102019;
  background:linear-gradient(135deg,#C4DDCF,#8FBCA5);
  box-shadow:0 12px 32px rgba(139,170,154,0.2);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.8rem;
  font-weight:800;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.tagsPaywallButton:hover,
.tagsPaywallButton:focus-visible{
  outline:none;
  transform:translateY(-1px);
  filter:brightness(1.06);
  box-shadow:0 16px 38px rgba(139,170,154,0.3),0 0 0 4px rgba(139,170,154,0.1);
}
.tagsPaywallFine{
  display:block;
  margin-top:10px;
  color:rgba(244,238,228,0.34);
  font-size:0.62rem;
  line-height:1.35;
}
body.theme-light .tagFiltersLockedNote{
  border-color:rgba(74,108,91,0.18);
  background:rgba(91,130,111,0.06);
  color:rgba(27,31,38,0.58);
}
body.theme-light .tagsPaywall{
  border-color:rgba(74,108,91,0.2);
  background:linear-gradient(180deg,#F0F4F1,#E7ECE9);
}
body.theme-light .tagsPaywallCard{
  border-color:rgba(74,108,91,0.22);
  background:rgba(250,252,250,0.9);
  box-shadow:0 24px 64px rgba(37,52,44,0.2);
}
body.theme-light .tagsPaywallTitle{ color:#17201C; }
body.theme-light .tagsPaywallCopy{ color:rgba(27,31,38,0.66); }
body.theme-light .tagsPaywallFine{ color:rgba(27,31,38,0.42); }

@media (max-width:560px){
  .tagsPaywall{ min-height:410px; }
  .tagsPaywallShade{ padding:16px; }
  .tagsPaywallCard{ padding:21px 17px 17px; }
}

@media (max-width:900px){
  .school-editorialHero{
    grid-template-columns:1fr;
    gap:46px;
    min-height:100%;
  }
  .school-editorialTitle{ font-size:clamp(4rem,12vw,7rem); }
  .school-editorialSide{ max-width:720px; }
}

@media (max-width:620px){
  .school-editorialHero,
  .school-editorialBody{ padding-inline:22px; }
  .school-editorialHero{ padding-top:54px; padding-bottom:48px; }
  .school-editorialTitle{ font-size:clamp(3.5rem,18vw,5.4rem); }
  .school-editorialFacts{ grid-template-columns:1fr; gap:18px; }
  .school-editorialSectionHead{ display:block; }
  .school-editorialTimeline{ margin-inline:22px; padding:38px 0; }
  .school-editorialTimelineHead{ display:block; }
  .school-editorialTimelineKicker{ gap:18px; font-size:.76rem; }
  .school-editorialTimelineKicker::before{ width:38px; }
  .school-editorialTimelineTitle{ font-size:clamp(2.9rem,14vw,4.6rem); }
  .school-editorialTimelineCount{ display:block; margin-top:10px; }
  .school-editorialTimelineList{ padding-left:0; }
  .school-editorialTimelineList::before{ left:84px; bottom:42px; }
  .school-editorialTimelineItem{
    grid-template-columns:70px 68px minmax(0,1fr);
    gap:14px;
    min-height:0;
    padding-bottom:34px;
  }
  .school-editorialTimelineItem::before{ left:84px; top:6px; }
  .school-editorialTimelineDecade{ font-size:.68rem; letter-spacing:.2em; }
  .school-editorialTimelineYear{ padding-left:16px; font-size:1.34rem; line-height:1; }
  .school-editorialTimelineLabel{ font-size:1.34rem; line-height:1.04; }
  .school-editorialTimelineAuthors{ margin-top:7px; font-size:.88rem; }
  .school-editorialTimelineMore{ grid-template-columns:70px 68px minmax(0,1fr); gap:14px; font-size:1.08rem; }
  .school-editorialTimelineMore::before{ margin-left:10px; }
  .school-editorial .ep-comparison{ margin-inline:22px; }
  .panel.left .schoolControls .compactLabel{ display:none; }
  .panel.left .schoolControls select{ height:38px; }
}

.ep-comparison{
  margin-top:14px;
  overflow:visible;
  border:1px solid rgba(232,238,246,0.18);
  border-radius:16px;
  background:
    radial-gradient(720px 420px at -8% -18%, rgba(255,255,255,0.050), transparent 72%),
    linear-gradient(180deg, rgba(10,10,11,0.42), rgba(2,2,3,0.34));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    inset 0 -1px 0 rgba(0,0,0,0.32),
    0 18px 54px rgba(0,0,0,0.30);
  backdrop-filter:blur(26px) saturate(112%);
  -webkit-backdrop-filter:blur(26px) saturate(112%);
}

.ep-comparison-title{
  padding:14px 15px 11px;
  font-size:13px;
  font-weight:850;
  color:#f3f7fc;
  border-bottom:1px solid rgba(255,255,255,0.07);
  background:linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.010));
}

.ep-comparison-scroll{
  overflow-x:auto;
  scrollbar-gutter:stable;
  background:rgba(0,0,0,0.08);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  scrollbar-width:thin;
  scrollbar-color:rgba(231,237,245,0.28) rgba(255,255,255,0.06);
}

.ep-comparison-table{
  width:100%;
  min-width:1260px;
  border-collapse:separate;
  border-spacing:0;
}

.ep-comparison-table th,
.ep-comparison-table td{
  vertical-align:top;
  text-align:left;
  padding:19px 22px;
  border-right:1px solid rgba(238,242,247,0.10);
  border-bottom:1px solid rgba(238,242,247,0.10);
  font-size:14px;
  line-height:1.48;
}

.ep-comparison-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:
    linear-gradient(180deg,
      rgba(44,45,47,0.50),
      rgba(18,18,20,0.42));
  color:rgba(228,238,250,0.96);
  font-size:12px;
  font-weight:900;
  letter-spacing:.58px;
  text-transform:uppercase;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,0.08);
}

.ep-comparison-table td{
  color:rgba(224,234,246,0.88);
  background:rgba(0,0,0,0.24);
}

.ep-comparison-table tr:nth-child(even) td{
  background:rgba(255,255,255,0.045);
}

.ep-comparison-table tr:hover td{
  background:rgba(255,255,255,0.075);
}

.ep-comparison-table th:first-child,
.ep-comparison-table td:first-child{
  width:210px;
  color:rgba(255,255,255,0.98);
  font-size:15px;
  font-weight:900;
  line-height:1.25;
  background:rgba(0,0,0,0.30);
}

.ep-comparison-table td:first-child{
  padding:0;
  position:relative;
}

.ep-model-cover{
  position:absolute;
  inset:0;
  isolation:isolate;
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:18px 22px;
  background:
    radial-gradient(160px 120px at 100% 50%, rgba(255,255,255,0.055), transparent 70%),
    rgba(0,0,0,0.38);
}

.ep-model-cover-img{
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:72% center;
  opacity:.78;
  filter:saturate(.74) contrast(1.05) brightness(.82);
}

.ep-model-cover::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,0.96) 0%,
      rgba(0,0,0,0.86) 42%,
      rgba(0,0,0,0.42) 68%,
      rgba(0,0,0,0.10) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.18), rgba(0,0,0,0.30));
}

.ep-model-cover-title{
  max-width:86%;
  color:#fff;
  text-shadow:
    0 1px 1px rgba(0,0,0,0.7),
    0 10px 22px rgba(0,0,0,0.48);
}

.ep-comparison-table th:last-child,
.ep-comparison-table td:last-child{
  border-right:0;
}

.ep-comparison-table tr:last-child td{
  border-bottom:0;
}

.ep-section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin:0 0 10px 0;
}

.ep-section-head h4{
  margin:0;
}

.ep-table-link{
  border:0;
  padding:0;
  background:transparent;
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 72%, #ffffff 12%);
  font:inherit;
  font-size:12px;
  font-weight:850;
  line-height:1.2;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

.ep-table-link:hover{
  color:#fff;
}

.ep-table-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(900px 560px at 50% 38%, rgba(255,255,255,0.035), transparent 68%),
    rgba(0,0,0,0.58);
  backdrop-filter:blur(20px) saturate(106%);
  -webkit-backdrop-filter:blur(20px) saturate(106%);
}

.ep-table-modal[hidden]{
  display:none;
}

.ep-table-dialog{
  width:min(1500px, 94vw);
  max-height:min(880px, 90vh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(232,238,246,0.22);
  border-radius:24px;
  background:
    radial-gradient(960px 560px at -12% -20%, rgba(255,255,255,0.055), transparent 74%),
    linear-gradient(180deg, rgba(12,12,13,0.50), rgba(0,0,0,0.38));
  box-shadow:
    0 28px 100px rgba(0,0,0,0.62),
    inset 0 1px 0 rgba(255,255,255,0.12);
  backdrop-filter:blur(30px) saturate(108%);
  -webkit-backdrop-filter:blur(30px) saturate(108%);
}

.ep-table-modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:24px 34px 18px;
  border-bottom:0;
}

.ep-table-modal-kicker{
  min-width:0;
}

.ep-table-modal-title{
  margin:0;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.75rem,3vw,2.4rem);
  font-weight:400;
  line-height:0.96;
  letter-spacing:-0.01em;
}

.ep-table-modal-subtitle{
  margin:7px 0 0;
  color:rgba(215,225,238,0.64);
  font-size:14px;
  line-height:1.35;
}

.ep-table-close{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:999px;
  background:
    radial-gradient(circle at 35% 20%, rgba(255,255,255,0.14), transparent 48%),
    rgba(255,255,255,0.055);
  color:rgba(255,255,255,0.84);
  font-size:0;
  font-weight:400;
  line-height:1;
  cursor:pointer;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 8px 20px rgba(0,0,0,0.22);
  transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.ep-table-close::before{
  content:"\00d7";
  font-size:24px;
  font-weight:300;
  line-height:1;
  transform:translateY(-1px);
}

.ep-table-close:hover{
  border-color:rgba(255,255,255,0.20);
  background:
    radial-gradient(circle at 35% 20%, rgba(255,255,255,0.20), transparent 48%),
    rgba(255,255,255,0.095);
  color:#fff;
  transform:translateY(-1px);
}

.ep-table-modal-body{
  min-height:180px;
  overflow:auto;
  padding:0 22px 22px;
  scrollbar-width:thin;
  scrollbar-color:rgba(231,237,245,0.28) rgba(255,255,255,0.06);
}

.ep-table-modal-body::-webkit-scrollbar,
.ep-comparison-scroll::-webkit-scrollbar{
  width:10px;
  height:10px;
}

.ep-table-modal-body::-webkit-scrollbar-track,
.ep-comparison-scroll::-webkit-scrollbar-track{
  background:rgba(255,255,255,0.045);
  border:1px solid rgba(255,255,255,0.055);
  border-radius:999px;
}

.ep-table-modal-body::-webkit-scrollbar-thumb,
.ep-comparison-scroll::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.13));
  border:1px solid rgba(255,255,255,0.09);
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10);
}

.ep-table-modal-body::-webkit-scrollbar-thumb:hover,
.ep-comparison-scroll::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg, rgba(231,237,245,0.38), rgba(231,237,245,0.18));
}

.ep-table-modal-body::-webkit-scrollbar-corner,
.ep-comparison-scroll::-webkit-scrollbar-corner{
  background:transparent;
}

.ep-table-modal-body .ep-comparison{
  margin-top:0;
}

.ep-table-modal-body .ep-comparison-title{
  display:none;
}

/* === Editorial header para tabla comparativa === */
.ep-comparison-header{
  padding:22px 28px 18px;
  border-bottom:1px solid rgba(255,255,255,0.07);
  background:linear-gradient(180deg,rgba(255,255,255,0.035),rgba(255,255,255,0.010));
}
.ep-comparison-eyebrow{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 8px;
  color:var(--schoolColor,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:0.62rem;
  font-weight:650;
  letter-spacing:0.18em;
  text-transform:uppercase;
}
.ep-comparison-eyebrow::before{
  content:"";
  width:20px;
  height:1px;
  background:currentColor;
  flex:0 0 auto;
}
.ep-comparison-heading{
  margin:0;
  color:#fbf6ee;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.3rem,2.1vw,1.75rem);
  font-weight:400;
  line-height:0.96;
  letter-spacing:-0.01em;
}
.ep-comparison-sub{
  margin:7px 0 0;
  color:rgba(244,238,228,0.5);
  font-size:0.78rem;
  line-height:1.38;
}
.ep-table-modal-body .ep-comparison-header{
  display:none;
}

/* === Modal header editorial === */
.ep-table-modal-eyebrow{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 10px;
  color:var(--schoolColor,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:0.64rem;
  font-weight:650;
  letter-spacing:0.18em;
  text-transform:uppercase;
}
.ep-table-modal-eyebrow::before{
  content:"";
  width:22px;
  height:1px;
  background:currentColor;
  flex:0 0 auto;
}

/* === ep-ficha-ed: ficha de epistemología con layout editorial === */
.panel.right:has(.ep-ficha-ed){
  background:#0c0a0d;
}
.modelPanel:has(.ep-ficha-ed){
  min-height:100%;
  padding:0;
  overflow:visible;
  background:#0c0a0d;
}
.ep-ficha-ed .ep-ch-block{
  margin-top:28px;
}
.ep-ficha-ed .ep-ch-block + .ep-ch-block{
  padding-top:24px;
  border-top:1px solid rgba(244,238,228,0.10);
}
.ep-ficha-ed .ep-pregunta-ed{
  padding:28px 0 32px;
  border-top:1px solid rgba(244,238,228,0.10);
  margin-bottom:28px;
}
.ep-ficha-ed .ep-pregunta-label{
  margin:0 0 12px;
  color:var(--ed-accent,#D9AA3F);
  font-family:'Space Grotesk',monospace;
  font-size:0.62rem;
  font-weight:650;
  letter-spacing:0.18em;
  text-transform:uppercase;
}
.ep-ficha-ed .ep-questionText{
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.5rem,2.6vw,2.2rem);
  font-weight:400;
  line-height:1.14;
  letter-spacing:-0.01em;
  color:#fbf6ee;
  max-width:720px;
}
.ep-ficha-ed .ep-questionText::before{
  color:color-mix(in srgb,var(--ed-accent,#D9AA3F) 82%,#ffffff 18%);
  font-size:60px;
}
.ep-ficha-ed .ed-lead.ep-lead-nodrop::first-letter{
  float:none;
  font-size:inherit;
  line-height:inherit;
  padding:0;
  color:inherit;
  font-family:inherit;
}
.ep-ficha-ed .ep-table-link-chap{
  align-self:flex-end;
  margin-bottom:6px;
  font-size:11px;
}
.ep-ficha-ed .ep-notice{
  margin-bottom:24px;
}
.ep-ficha-ed .ep-ch-block h4{
  margin:0 0 14px;
  color:rgba(244,238,228,0.5);
  font-family:'Space Grotesk',monospace;
  font-size:0.7rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:600;
}

/* === Concepciones fundamentales · composición editorial === */
.ep-ficha-ed .ep-conceptionsEditorial{
  display:grid;
  grid-template-columns:minmax(230px,288px) minmax(0,1fr);
  gap:clamp(36px,4.5vw,68px);
  align-items:start;
  padding-top:20px;
  border-top:1px solid var(--ed-line,rgba(244,238,228,0.12));
}
.ep-ficha-ed .ep-conceptionsIntro{
  position:sticky;
  top:88px;
  align-self:start;
  padding:12px 0 4px;
}
.ep-ficha-ed .ep-conceptionsIntro .ed-chap-head{
  align-items:flex-start;
  gap:16px;
  margin:0 0 26px;
}
.ep-ficha-ed .ep-conceptionsIntro .ed-chap-num{
  flex:0 0 auto;
  font-size:clamp(3.2rem,5vw,4.5rem);
}
.ep-ficha-ed .ep-conceptionsIntro .ed-chap-title{
  font-size:clamp(2rem,3.3vw,3rem);
  line-height:.98;
  text-wrap:balance;
}
.ep-ficha-ed .ep-conceptionsDeck{
  margin:0 0 26px;
  color:var(--ed-mut,rgba(244,238,228,0.68));
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:.98rem;
  line-height:1.58;
  text-wrap:pretty;
}
.ep-ficha-ed .ep-conceptionsIntro .ep-table-link-chap{
  align-self:auto;
  margin:0;
}
.ep-ficha-ed .ep-conception-radio{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
}
.ep-ficha-ed .ep-conception-indexLabel{
  margin:0 0 18px;
  color:var(--ed-mut2,rgba(244,238,228,0.42));
  font-family:'Space Grotesk',monospace;
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ep-ficha-ed .ep-conception-tabs{
  display:flex;
  flex-direction:column;
  margin:28px 0 24px;
}
.ep-ficha-ed .ep-conception-tab{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:14px;
  align-items:baseline;
  width:100%;
  padding:16px 4px 16px 14px;
  border-top:1px solid var(--ed-line,rgba(244,238,228,0.12));
  border-left:2px solid rgba(243,236,226,.12);
  color:inherit;
  cursor:pointer;
  text-align:left;
  transition:background .15s ease,border-color .15s ease;
}
.ep-ficha-ed .ep-conception-tab:hover{
  background:rgba(255,255,255,.03);
}
.ep-ficha-ed .ep-conception-tabRoman{
  color:rgba(243,236,226,.34);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.5rem;
  font-style:italic;
  line-height:.9;
}
.ep-ficha-ed .ep-conception-tabCopy{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.ep-ficha-ed .ep-conception-tabName{
  color:rgba(243,236,226,.74);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.32rem;
  line-height:1.02;
}
.ep-ficha-ed .ep-conception-tabRole{
  color:rgba(243,236,226,.4);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:.82rem;
  line-height:1.3;
}
.ep-ficha-ed .ep-conceptions{
  position:relative;
  min-width:0;
}
.ep-ficha-ed .ep-conceptCard{
  position:relative;
  display:none;
  align-items:center;
  min-height:clamp(430px,42vw,590px);
  overflow:hidden;
  padding:clamp(30px,4.5vw,58px);
  border:1px solid rgba(243,236,226,.14);
  border-radius:16px;
  background:#151014;
  box-shadow:0 34px 80px rgba(0,0,0,.48);
}
.ep-ficha-ed .ep-conceptBg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  border-radius:0;
  object-fit:cover;
  object-position:center;
  opacity:1;
  filter:saturate(.9) contrast(1.04) brightness(.86);
  transform:scale(1.015);
}
.ep-ficha-ed .ep-conceptCard::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:0;
  background:
    linear-gradient(95deg,rgba(11,10,12,.99) 0%,rgba(11,10,12,.94) 33%,rgba(11,10,12,.70) 51%,rgba(11,10,12,.24) 70%,transparent 91%),
    linear-gradient(to top,rgba(11,10,12,.56),transparent 42%);
  pointer-events:none;
}
.ep-ficha-ed .ep-conceptCard::after{
  display:none;
}
.ep-ficha-ed .ep-conceptBody{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  width:min(610px,67%);
  min-height:0;
  text-shadow:0 2px 18px rgba(0,0,0,.78);
}
.ep-ficha-ed .ep-conceptIndex{
  display:flex;
  align-items:center;
  gap:11px;
  margin:0 0 15px;
  color:color-mix(in srgb,var(--ed-accent,#D9AA3F) 68%,#ffffff 32%);
  font-family:'Space Grotesk',monospace;
  font-size:.7rem;
  font-weight:650;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ep-ficha-ed .ep-conceptIndex::after{
  content:"";
  width:20px;
  height:1px;
  background:currentColor;
  opacity:.65;
}
.ep-ficha-ed .ep-conceptTitle{
  max-width:13ch;
  margin:0 0 20px;
  color:#f8f2e9;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(2.15rem,4vw,3.45rem);
  font-weight:400;
  line-height:1;
  letter-spacing:-.01em;
  text-wrap:balance;
}
.ep-ficha-ed .ep-conceptSummary{
  max-width:32ch;
  margin:0 0 18px;
  color:color-mix(in srgb,var(--ed-accent,#D9AA3F) 72%,#ffffff 28%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.2rem,1.8vw,1.55rem);
  font-weight:400;
  line-height:1.18;
}
.ep-ficha-ed .ep-conceptText{
  margin:0;
  color:rgba(243,236,226,.86);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:clamp(.96rem,1.05vw,1.06rem);
  line-height:1.68;
  white-space:pre-wrap;
  text-wrap:pretty;
}
.ep-ficha-ed .ep-conceptText::first-letter{
  float:left;
  padding:7px 13px 0 0;
  color:color-mix(in srgb,var(--ed-accent,#D9AA3F) 78%,#ffffff 22%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:3.6rem;
  line-height:.7;
}
.ep-ficha-ed .ep-conception-radio[data-key="verdad"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="verdad"],
.ep-ficha-ed .ep-conception-radio[data-key="sujeto"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="sujeto"],
.ep-ficha-ed .ep-conception-radio[data-key="cambio"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="cambio"],
.ep-ficha-ed .ep-conception-radio[data-key="terapeuta"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="terapeuta"]{
  display:flex;
}
.ep-ficha-ed .ep-conception-radio[data-key="verdad"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="verdad"],
.ep-ficha-ed .ep-conception-radio[data-key="sujeto"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="sujeto"],
.ep-ficha-ed .ep-conception-radio[data-key="cambio"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="cambio"],
.ep-ficha-ed .ep-conception-radio[data-key="terapeuta"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="terapeuta"]{
  border-left-color:var(--ed-accent,#D9AA3F);
  background:color-mix(in srgb,var(--ed-accent,#D9AA3F) 6%,transparent);
}
.ep-ficha-ed .ep-conception-radio[data-key="verdad"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="verdad"] .ep-conception-tabRoman,
.ep-ficha-ed .ep-conception-radio[data-key="sujeto"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="sujeto"] .ep-conception-tabRoman,
.ep-ficha-ed .ep-conception-radio[data-key="cambio"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="cambio"] .ep-conception-tabRoman,
.ep-ficha-ed .ep-conception-radio[data-key="terapeuta"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="terapeuta"] .ep-conception-tabRoman{
  color:var(--ed-accent,#D9AA3F);
}
.ep-ficha-ed .ep-conception-radio[data-key="verdad"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="verdad"] .ep-conception-tabName,
.ep-ficha-ed .ep-conception-radio[data-key="sujeto"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="sujeto"] .ep-conception-tabName,
.ep-ficha-ed .ep-conception-radio[data-key="cambio"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="cambio"] .ep-conception-tabName,
.ep-ficha-ed .ep-conception-radio[data-key="terapeuta"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="terapeuta"] .ep-conception-tabName{
  color:#f8f2e9;
}
.ep-ficha-ed .ep-conception-radio[data-key="verdad"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="verdad"] .ep-conception-tabRole,
.ep-ficha-ed .ep-conception-radio[data-key="sujeto"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="sujeto"] .ep-conception-tabRole,
.ep-ficha-ed .ep-conception-radio[data-key="cambio"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="cambio"] .ep-conception-tabRole,
.ep-ficha-ed .ep-conception-radio[data-key="terapeuta"]:checked ~ .ep-conceptionsEditorial .ep-conception-tab[data-key="terapeuta"] .ep-conception-tabRole{
  color:rgba(243,236,226,.6);
}

/* === Desplegables ep-ficha-ed al estilo editorial === */
.ep-ficha-ed .mp-sub{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.ep-ficha-ed .mp-sub details{
  margin:0;
  border:1px solid var(--ed-line,rgba(244,238,228,0.12));
  border-radius:14px;
  background:rgba(255,255,255,0.018);
  overflow:hidden;
}
.ep-ficha-ed .mp-sub details[open]{
  border-color:color-mix(in srgb,var(--ed-accent,#D9AA3F) 40%,transparent);
  background:color-mix(in srgb,var(--ed-accent,#D9AA3F) 6%,rgba(255,255,255,0.02));
}
.ep-ficha-ed .mp-sub summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:17px 20px;
  font-family:'Hanken Grotesk',sans-serif;
  font-size:1.08rem;
  font-weight:700;
  color:#f4eee4;
  user-select:none;
}
.ep-ficha-ed .mp-sub summary::-webkit-details-marker{ display:none; }
.ep-ficha-ed .mp-sub .subLeft{
  display:flex;
  gap:8px;
  align-items:flex-start;
  min-width:0;
}
.ep-ficha-ed .mp-sub .subTitle{
  font-weight:700;
  line-height:1.3;
}
.ep-ficha-ed .mp-sub .subRight{
  flex-shrink:0;
}
.ep-ficha-ed .mp-sub .chev{
  color:var(--ed-accent,#D9AA3F);
  transition:transform .2s ease;
}
.ep-ficha-ed .mp-sub details[open] .chev{ transform:rotate(180deg); }
.ep-ficha-ed .mp-sub .subBody{
  padding:0 20px 18px;
  color:rgba(244,238,228,0.80);
  font-size:0.98rem;
  line-height:1.65;
  white-space:normal;
}
.ep-ficha-ed .mp-sub .subText{
  white-space:pre-wrap;
}

@media (max-width:760px){
  .ep-ficha-ed .mp-sub summary{ padding:15px 16px; font-size:1rem; }
  .ep-ficha-ed .mp-sub .subBody{ padding:0 16px 15px; font-size:0.93rem; }
  .ep-ficha-ed .ep-conceptionsEditorial{
    display:block;
    padding-top:0;
  }
  .ep-ficha-ed .ep-conceptionsIntro{
    position:static;
    padding:28px 0 30px;
  }
  .ep-ficha-ed .ep-conceptionsIntro .ed-chap-head{
    margin-bottom:20px;
  }
  .ep-ficha-ed .ep-conception-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-bottom:22px;
  }
  .ep-ficha-ed .ep-conception-indexLabel{
    grid-column:1 / -1;
  }
  .ep-ficha-ed .ep-conception-tab{
    grid-template-columns:25px minmax(0,1fr);
    gap:8px;
    padding:13px 8px;
  }
  .ep-ficha-ed .ep-conception-tabRoman{
    font-size:1.2rem;
  }
  .ep-ficha-ed .ep-conception-tabName{
    font-size:1.08rem;
  }
  .ep-ficha-ed .ep-conception-tabRole{
    display:none;
  }
  .ep-ficha-ed .ep-conceptCard{
    align-items:flex-end;
    min-height:560px;
    padding:30px 22px;
  }
  .ep-ficha-ed .ep-conceptCard::before{
    background:
      linear-gradient(180deg,rgba(11,10,12,.18),rgba(11,10,12,.78) 45%,rgba(11,10,12,.99) 100%),
      linear-gradient(to right,rgba(11,10,12,.45),transparent 78%);
  }
  .ep-ficha-ed .ep-conceptBody{
    width:100%;
  }
  .ep-ficha-ed .ep-conceptTitle{
    font-size:clamp(2.25rem,11vw,3rem);
  }
}

@media (max-width: 760px){
  .ep-comparison{
    border-radius:12px;
  }

  .ep-comparison-title{
    padding:12px;
  }

  .ep-comparison-table{
    min-width:980px;
  }

  .ep-comparison-table th,
  .ep-comparison-table td{
    padding:10px 11px;
    font-size:12px;
  }

  .ep-table-modal{
    padding:10px;
  }

  .ep-table-dialog{
    width:100%;
    max-height:94vh;
    border-radius:12px;
  }

  .ep-table-modal-head{
    padding:12px;
  }
}

    .modelPanel .mp-section{
      margin-top:16px;
      padding-top:12px;
      border-top:1px solid rgba(255,255,255,0.10);
    }
    .modelPanel .mp-section h4{
  font-weight: 700;
  letter-spacing: .2px;
  opacity: .95;
}

.modelPanel .mp-section h3{
  font-weight: 700;
  letter-spacing: .2px;
  opacity: .95;
  margin: 0 0 10px 0;
}

.modelPanel .procesos-grid{
  display:grid;
  grid-template-columns:minmax(340px, 38%) minmax(0, 1fr);
  gap:14px;
  align-items:start;
}

.modelPanel .grafica-procesos{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.05);
  background:
    radial-gradient(140% 120% at 18% 8%, rgba(255,255,255,0.12), rgba(255,255,255,0) 52%),
    radial-gradient(120% 130% at 92% 92%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 16%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    inset 0 0 0 1px rgba(255,255,255,0.02),
    0 12px 34px rgba(0,0,0,0.26);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(118%);
}

.modelPanel .dim-card{
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.05);
  background:
    radial-gradient(140% 120% at 18% 8%, rgba(255,255,255,0.14), rgba(255,255,255,0) 54%),
    radial-gradient(120% 130% at 92% 92%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 14%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 0 0 1px rgba(255,255,255,0.02),
    0 14px 36px rgba(0,0,0,0.28);
  backdrop-filter: blur(14px) saturate(118%);
  -webkit-backdrop-filter: blur(14px) saturate(118%);
}

.modelPanel .dim-col{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:0;
}

.modelPanel .dim-colBody{
  position:relative;
  overflow:hidden;
  min-height:0;
  transition:max-height .28s ease;
}

.modelPanel .dim-colBody.is-collapsed::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:56px;
  pointer-events:none;
  display:none;
}

.modelPanel .dim-colBody.is-collapsed{
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) calc(100% - 56px),
    rgba(0,0,0,0) 100%
  );
  mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) calc(100% - 56px),
    rgba(0,0,0,0) 100%
  );
}

.modelPanel .dim-expandBtn{
  position:relative;
  z-index:4;
  align-self:center;
  margin-top:8px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #D9AA3F) 48%, rgba(255,255,255,.24));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 20%, rgba(255,255,255,.14)),
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 32%, rgba(0,0,0,.16)));
  color:#f5f8ff;
  font: inherit;
  font-size:11px;
  font-weight:800;
  letter-spacing:.35px;
  text-transform:uppercase;
  padding:7px 12px;
  border-radius:999px;
  cursor:pointer;
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--schoolColor, #D9AA3F) 14%, transparent),
    inset 0 1px 0 rgba(255,255,255,.24);
}

.modelPanel .dim-colBody.is-collapsed + .dim-expandBtn{
  position:absolute;
  left:50%;
  bottom:10px;
  transform:translateX(-50%);
  margin-top:0;
}

.modelPanel .dim-expandBtn:hover{
  filter:brightness(1.06);
}

.modelPanel .dim-expandBtn[hidden]{
  display:none !important;
}

.modelPanel .dim-title{
  margin: 0 0 12px 0;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .45px;
  text-transform: uppercase;
  color: rgba(231,237,245,.84);
}

.modelPanel .dim-pieWrap{
  position: relative;
  width: 180px;
  height: 180px;
  margin: 2px auto 14px;
}

.modelPanel .dim-pieWrap::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:999px;
  pointer-events:none;
  background: radial-gradient(circle, color-mix(in srgb, var(--schoolColor, #D9AA3F) 28%, transparent), transparent 66%);
  opacity:.35;
}

.modelPanel .dim-pie{
  position:relative;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.20);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 14px 30px rgba(0,0,0,.28);
}

.modelPanel .dim-pie::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  pointer-events:none;
  background:
    radial-gradient(120px 80px at 32% 22%, rgba(255,255,255,.24), rgba(255,255,255,0) 72%);
}

.modelPanel .dim-pieSvg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border-radius:999px;
}

.modelPanel .dim-segment{
  cursor:pointer;
  transition: opacity .2s ease, filter .2s ease, transform .2s ease;
  transform-origin: 60px 60px;
}

.modelPanel .dim-card.dim-anim-pending .dim-segment{
  opacity: 1;
}

.modelPanel .dim-card.dim-anim-running .dim-segment{
  opacity: 1;
}

.modelPanel .dim-card.has-hover .dim-segment{
  opacity:.42;
}

.modelPanel .dim-card.has-hover .dim-segment.is-linked-hover{
  opacity:1;
  filter: brightness(1.12) saturate(1.16)
    drop-shadow(0 0 8px color-mix(in srgb, var(--segmentColor, #D9AA3F) 48%, transparent));
  transform: scale(1.03);
}


.modelPanel .dim-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.modelPanel .dim-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.modelPanel .dim-group + .dim-group{
  margin-top:8px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.10);
}

.modelPanel .dim-groupTitle{
  font-size:10px;
  font-weight:800;
  letter-spacing:.34px;
  text-transform:uppercase;
  color:rgba(231,237,245,.72);
}

.modelPanel .dim-reference{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.10);
  font-size:11px;
  line-height:1.45;
  color:rgba(231,237,245,.76);
}

.modelPanel .dim-item{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.modelPanel .dim-row{
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:8px;
  align-items:center;
  font-size:11px;
  padding:4px 6px;
  border-radius:10px;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  color: rgba(231,237,245,.9);
  transition: border-color .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
  appearance:none;
  -webkit-appearance:none;
  font-family: inherit;
  font-size: 11px;
  line-height: 1.25;
  text-align:left;
  cursor:pointer;
}

.modelPanel .dim-row.no-justification{
  cursor:default;
}

.modelPanel .dim-card.has-hover .dim-row{
  opacity:.66;
}

.modelPanel .dim-card.has-hover .dim-row.is-linked-hover{
  opacity:1;
  border-color: color-mix(in srgb, var(--dot, var(--schoolColor, #D9AA3F)) 48%, rgba(255,255,255,.18));
  background: color-mix(in srgb, var(--dot, var(--schoolColor, #D9AA3F)) 16%, rgba(255,255,255,.03));
  color: #ffffff;
}

.modelPanel .dim-item.is-open .dim-row{
  border-color: color-mix(in srgb, var(--dot, var(--schoolColor, #D9AA3F)) 52%, rgba(255,255,255,.20));
  background: color-mix(in srgb, var(--dot, var(--schoolColor, #D9AA3F)) 14%, rgba(255,255,255,.04));
  color:#fff;
  opacity:1;
}

.modelPanel .dim-detail{
  margin: -2px 0 2px 22px;
  padding: 9px 11px;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--dot, var(--schoolColor, #D9AA3F)) 34%, rgba(255,255,255,.12));
  background: color-mix(in srgb, var(--dot, var(--schoolColor, #D9AA3F)) 10%, rgba(8,12,18,.45));
  color: rgba(231,237,245,.92);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
}

.modelPanel .dim-detail[hidden]{
  display:none !important;
}

.modelPanel .dim-segment.is-linked-open{
  opacity:1;
  filter: brightness(1.08) saturate(1.12)
    drop-shadow(0 0 8px color-mix(in srgb, var(--segmentColor, #D9AA3F) 42%, transparent));
}

.modelPanel .dim-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background: var(--dot, #9fb0c3);
  box-shadow:
    0 0 0 2px rgba(255,255,255,.10),
    0 0 8px color-mix(in srgb, var(--dot, #9fb0c3) 42%, transparent);
}

.modelPanel .dim-label{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.modelPanel .dim-val{
  font-weight:800;
  color:#fff;
}

.modelPanel .dim-empty{
  font-size:12px;
  color: rgba(231,237,245,.72);
}

.modelPanel .fila-proceso{
  width:100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.02);
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
  appearance:none;
  -webkit-appearance:none;
  font: inherit;
  text-align:left;
  cursor:pointer;
}

.modelPanel .fila-proceso:hover{
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 34%, rgba(255,255,255,.16));
  background: color-mix(in srgb, var(--schoolColor, #D9AA3F) 10%, rgba(255,255,255,.03));
  transform: translateY(-1px);
}

.modelPanel .fila-proceso.no-justification{
  cursor:default;
}

.modelPanel .proceso-item.is-open .fila-proceso{
  border-color: color-mix(in srgb, var(--schoolColor, #D9AA3F) 52%, rgba(255,255,255,.20));
  background: color-mix(in srgb, var(--schoolColor, #D9AA3F) 14%, rgba(255,255,255,.04));
}

.modelPanel .label-proceso{
  width: min(48%, 360px);
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 12px;
  line-height: 1.25;
}

.modelPanel .proceso-codigo{
  flex: 0 0 auto;
  min-width: 34px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--schoolColor, #D9AA3F) 44%, rgba(255,255,255,.22));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 28%, rgba(255,255,255,.16)),
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 40%, rgba(0,0,0,.12)));
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--schoolColor, #D9AA3F) 16%, transparent),
    inset 0 1px 0 rgba(255,255,255,.22);
  font-weight: 800;
  letter-spacing: .35px;
  color: #f2f6fd;
  text-align: center;
}

.modelPanel .proceso-nombre{
  min-width: 0;
  font-weight: 650;
  color: rgba(231,237,245,.92);
}

.modelPanel .barra-container{
  flex: 0 1 440px;
  width: 100%;
  max-width: 440px;
  height: 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.18));
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.25);
}

.modelPanel .barra{
  height: 100%;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--schoolColor, #D9AA3F) 68%, #ffffff 8%),
    color-mix(in srgb, var(--schoolColor, #D9AA3F) 92%, #1a2230 8%)
  );
  border-radius: 999px;
  transition: width 1.55s cubic-bezier(0.16, 1, 0.22, 1);
  box-shadow:
    0 0 12px color-mix(in srgb, var(--schoolColor, #D9AA3F) 34%, transparent),
    inset 0 1px 0 rgba(255,255,255,.35);
}

.modelPanel .proceso-detail{
  margin: 6px 0 2px 44px;
  padding: 9px 11px;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--schoolColor, #D9AA3F) 34%, rgba(255,255,255,.12));
  background: color-mix(in srgb, var(--schoolColor, #D9AA3F) 10%, rgba(8,12,18,.45));
  color: rgba(231,237,245,.92);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
}

.modelPanel .proceso-detail[hidden]{
  display:none !important;
}

@media (max-width: 980px){
  .panel.left{
    padding-left: 10px;
    padding-right: 10px;
  }

  .panel.left > *{
    width: 100%;
    max-width: 100%;
  }

  .panel.left .card{
    padding-left: 0;
    padding-right: 0;
  }

  .panel.left .modelsListCard,
  .panel.left .schoolSticky{
    width: 100%;
    max-width: 100%;
  }

  .modelsList{
    gap:8px;
  }

  .mi-item{
    height:90px;
    min-height:90px;
    padding:11px 12px;
    border-radius:15px;
  }

  .mi-shell{
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
  }

  .mi-avatar{
    width:38px;
    height:38px;
  }

  .mi-title{
    font-size:12.6px;
  }

  .mi-sub{
    font-size:11.5px;
    padding-left:15px;
  }

  .mi-item.is-marco .mi-typeTag,
  .mi-item.is-marco .mi-marcoTag{
    position:static;
  }

  .mi-item.is-marco .mi-sub{
    padding-right:68px;
  }

  .mi-year{
    min-height:22px;
    padding:0 8px;
    font-size:10px;
  }

  .modelPanel{
    overflow-x: clip;
  }

  .modelPanel .procesos-grid{
    grid-template-columns:1fr;
  }

  .modelPanel .procesos-grid > *{
    min-width:0;
    width:100%;
    max-width:100%;
  }

  .modelPanel .grafica-procesos,
  .modelPanel .dim-col,
  .modelPanel .dim-colBody,
  .modelPanel .dim-card,
  .modelPanel .proceso-item,
  .modelPanel .fila-proceso,
  .modelPanel .proceso-detail,
  .modelPanel .dim-list,
  .modelPanel .dim-row{
    min-width:0;
    max-width:100%;
  }

  .modelPanel .fila-proceso{
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }

  .modelPanel .proceso-detail{
    margin-left: 0;
    margin-top: 6px;
  }

  .modelPanel .label-proceso{
    width: 100%;
    overflow: hidden;
  }

  .modelPanel .proceso-nombre{
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .modelPanel .barra-container{
    max-width: none;
    flex-basis: auto;
  }

  .modelPanel .dim-pieWrap{
    width: 158px;
    height: 158px;
  }

  /* El flujo circular desborda en pantallas estrechas: degradamos a layout lineal */
  .mp-flow.mp-flow-circ{
    width:100%;
    height:auto;
    display:flex;
    flex-direction:column;
    gap:0;
    padding-left:40px;
    padding-right:14px;
  }

  .mp-flow.mp-flow-circ::after{
    display:none;
  }

  .mp-flow.mp-flow-circ .mp-flowItem{
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    display:grid;
    grid-template-columns:28px 1fr;
    column-gap:14px;
    align-items:center;
  }

  .mp-flow.mp-flow-circ .mp-flowItem::after{
    display:block;
  }

  .mp-flow.mp-flow-circ .mp-flowDot{
    margin: 0 0 0 calc((var(--col) - var(--dot)) / 2);
  }

  .mp-flow.mp-flow-circ .mp-flowBox{
    width:auto;
    max-width:100%;
    text-align:left;
  }
}

    .mp-list{ margin:0; padding-left:18px; }
    .mp-list li{ margin: 6px 0; }
    .mp-code{
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
      font-size: 11px;
      opacity: .9;
      padding: 2px 6px;
      border-radius: 8px;
      border: 1px solid rgba(255,255,255,0.10);
      background: rgba(255,255,255,0.05);
      display:inline-block;
      margin-left:6px;
        display: none !important;
    }

    /* Estado inicial (doc) */
    .modelPanel .mp-hint{
      position:relative;
      margin:10px 0 0 0;
      padding:12px 14px 12px 40px;
      font-size:13px;
      line-height:1.35;
      font-weight:700;
      color: rgba(231,237,245,.86);
      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
      border: 1px solid rgba(255,255,255,.10);
      border-radius:14px;
      box-shadow: 0 10px 26px rgba(0,0,0,.28);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      animation: hintIn .35s ease both;
    }
    .modelPanel .mp-hint::before{
      content:"⌖";
      position:absolute;
      left:12px;
      top:50%;
      transform:translateY(-50%);
      width:22px;
      height:22px;
      display:grid;
      place-items:center;
      font-size:14px;
      font-weight:900;
      color: var(--accent);
      background: rgba(217,170,63,.10);
      border: 1px solid rgba(217,170,63,.22);
      border-radius:10px;
      box-shadow: 0 0 0 4px rgba(217,170,63,.06);
    }
    @keyframes hintIn{
      from{ opacity:0; transform: translateY(6px); }
      to{ opacity:1; transform: translateY(0); }
    }
/* ===== Vista red ===== */
.networkView{
  position: relative;
  min-height: min(106vh, 1032px);
  padding: 10px 0 0 0;
}

.networkHeader{
  position: relative;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  pointer-events: none;
}

.networkTitle{
  font-size: 30px;
  font-weight: 820;
  line-height: 1.04;
  letter-spacing: -0.55px;
  color: rgba(245,249,255,.96);
  text-shadow: 0 8px 24px rgba(0,0,0,.28);
}

.networkSub{
  margin-top: 7px;
  font-size: 12px;
  font-weight: 560;
  color: rgba(231,237,245,.76);
  max-width: 62ch;
}

.networkCanvas{
  position: relative;
  margin-top: 10px;
  width: 100%;
  height: min(98vh, 936px);
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.16);
  overflow: hidden;
  background:
    radial-gradient(980px 520px at 18% 10%, rgba(255,255,255,.14), transparent 58%),
    radial-gradient(860px 500px at 84% 90%, rgba(126,188,255,.12), transparent 64%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow:
    0 28px 56px rgba(5,10,18,.36),
    inset 0 1px 0 rgba(255,255,255,.26),
    inset 0 0 0 1px rgba(255,255,255,.06);
}

.networkCanvas.is-loading #networkSvg{
  opacity: .28;
  filter: saturate(.72) blur(.4px);
  transition: opacity .18s ease, filter .18s ease;
}

.networkCanvas.is-access-preview #networkSvg{
  opacity:.54;
  filter: blur(7px) saturate(.78);
  pointer-events:none;
}

.networkAccessOverlay{
  position:absolute;
  inset:0;
  z-index:12;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(520px 300px at 50% 42%, rgba(127,209,185,.16), transparent 68%),
    linear-gradient(180deg, rgba(5,8,12,.08), rgba(5,8,12,.58));
  pointer-events:auto;
}

.networkAccessCard{
  width:min(560px, 100%);
  padding:24px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:rgba(7,11,16,.58);
  box-shadow:0 22px 62px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(14px) saturate(125%);
  -webkit-backdrop-filter:blur(14px) saturate(125%);
  text-align:center;
}

.networkAccessText{
  max-width:480px;
  margin:13px auto 0;
  color:rgba(255,255,255,.76);
  font-size:14px;
  line-height:1.55;
  font-weight:700;
}

.networkCanvas::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 22% 14%, rgba(255,255,255,.14), transparent 42%),
    radial-gradient(circle at 78% 84%, rgba(183,211,255,.10), transparent 46%);
}

.networkCanvas::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 34px 34px, 34px 34px;
  opacity: .34;
}

#networkSvg{
  width: 100%;
  height: 100%;
  display: block;
}

.networkThreeMount{
  position:absolute;
  inset:0;
  z-index:1;
}

.networkThreeMount[hidden]{
  display:none !important;
}

.networkThreeCanvas{
  width:100%;
  height:100%;
}

.networkThreeCanvas canvas{
  width:100% !important;
  height:100% !important;
  display:block;
}

.network3dHud{
  position:absolute;
  top:16px;
  left:16px;
  right:16px;
  z-index:5;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  pointer-events:none;
}

.network3dBadge{
  max-width:min(44ch, 68%);
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(10,16,24,.58);
  color:rgba(244,248,255,.9);
  font-size:11px;
  line-height:1.45;
  box-shadow:
    0 12px 30px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.network3dBadge strong{
  display:block;
  margin-bottom:4px;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.96);
}

.network3dCameraBar{
  display:flex;
  gap:8px;
  pointer-events:auto;
}

.network3dViewBtn{
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(10,16,24,.62);
  color:#fff;
  font:inherit;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:
    0 12px 28px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.network3dViewBtn:hover{
  border-color: rgba(255,255,255,.24);
}

.networkLoading{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s ease;
  z-index: 9;
}

.networkCanvas.is-loading .networkLoading{
  opacity: 1;
  visibility: visible;
}

.networkLoadingCard{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  min-width: 230px;
  padding: 16px 22px 18px 20px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(10,16,24,.80);
  color: rgba(247,251,255,.94);
  box-shadow:
    0 16px 36px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.networkLoadingCard::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:14px;
  width:2px;
  border-radius:999px;
  background: var(--schoolColor, #5F7F78);
}

.networkLoadingEyebrow{
  font-family:'Space Grotesk', monospace;
  font-size: .58rem;
  font-weight: 650;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: rgba(244,238,228,.5);
}

.networkLoadingTitle{
  margin: 0;
  font-family:'Instrument Serif', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.05;
  color: #fbf6ee;
}

.networkLoadingDots{
  display: inline-flex;
  gap: 3px;
  margin-left: 3px;
  vertical-align: middle;
}

.networkLoadingDots span{
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--schoolColor, #5F7F78);
  opacity: .28;
  animation: networkLoadingDot 1.15s ease-in-out infinite;
}

.networkLoadingDots span:nth-child(2){ animation-delay: .15s; }
.networkLoadingDots span:nth-child(3){ animation-delay: .3s; }

.networkLoadingRule{
  position: relative;
  width: 100%;
  height: 1px;
  margin-top: 5px;
  background: rgba(255,255,255,.12);
  overflow: hidden;
}

.networkLoadingRule::after{
  content:"";
  position: absolute;
  top: 0;
  left: -40%;
  height: 100%;
  width: 40%;
  background: linear-gradient(90deg, transparent, var(--schoolColor, #5F7F78), transparent);
  animation: networkLoadingSweep 1.7s ease-in-out infinite;
}

@keyframes networkLoadingDot{
  0%, 80%, 100%{ opacity: .28; transform: translateY(0); }
  40%{ opacity: 1; transform: translateY(-2px); }
}

@keyframes networkLoadingSweep{
  0%{ left: -40%; }
  100%{ left: 100%; }
}

.networkLegend{
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  pointer-events: auto;
}

.networkControlsBar{
  display:none;
  margin-top:10px;
  gap:8px;
  pointer-events:auto;
}

.networkControl{
  flex:1 1 0;
  min-width:0;
}

.networkControl select{
  width:100%;
  height:38px;
  padding:8px 34px 8px 12px;
  border-radius:12px;
  font-size:12px;
  font-weight:800;
}

.networkLegend .chip{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  font-size: 11px;
  font-weight: 760;
  color: inherit;
  cursor: pointer;
  transition: opacity .14s ease, border-color .14s ease, background .14s ease, transform .14s ease;
  appearance: none;
  -webkit-appearance: none;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 8px 16px rgba(0,0,0,.18);
}

.networkLegend .chip:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.24);
}

.networkLegend .chip.is-off{
  opacity: .42;
  border-color: rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}

.networkLegend .chip.is-on{
  opacity: 1;
}

.networkLegend .chip:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(217,170,63,.18);
}

.networkLegend .chip.reset{
  border-style: dashed;
}

.networkLegend .dot{
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.networkTip{
  margin-top: 10px;
}

.networkTooltip{
  position: absolute;
  z-index: 4;
  min-width: 180px;
  max-width: 280px;
  pointer-events: none;
  padding: 9px 11px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.22);
  background:
    linear-gradient(180deg, rgba(14,20,30,.88), rgba(10,15,24,.82));
  box-shadow:
    0 18px 30px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(8px) saturate(120%);
  -webkit-backdrop-filter: blur(8px) saturate(120%);
  font-size: 11px;
  line-height: 1.4;
  color: #f4f7fd;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .12s ease, transform .12s ease;
}

.networkTooltip.is-on{
  opacity: 1;
  transform: translateY(0);
}

.networkModelGraphPanel{
  position:absolute;
  top:18px;
  right:18px;
  z-index:8;
  width:min(520px, max(320px, calc(100vw - 460px)));
  max-width:520px;
  max-height:calc(100vh - 36px);
  overflow:auto;
  padding:16px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.14);
  background:
    linear-gradient(180deg, rgba(15,22,32,.90), rgba(11,17,26,.82)),
    radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--schoolColor, #5F7F78) 18%, rgba(255,255,255,.04)), transparent 62%);
  box-shadow:
    0 26px 56px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(18px) saturate(128%);
  -webkit-backdrop-filter: blur(18px) saturate(128%);
}

.networkModelGraphPanel[hidden]{
  display:none !important;
}

.networkMobileGraphCta{
  position:absolute;
  left:50%;
  bottom:18px;
  z-index:9;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #5F7F78) 42%, rgba(255,255,255,.14));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--schoolColor, #5F7F78) 30%, rgba(255,255,255,.10)), rgba(17,24,34,.90));
  box-shadow:
    0 14px 30px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.10);
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  cursor:pointer;
}

.networkMobileGraphCta[hidden]{
  display:none !important;
}

.networkModelGraphHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.networkModelGraphKicker{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #5F7F78) 42%, rgba(255,255,255,.16));
  background:color-mix(in srgb, var(--schoolColor, #5F7F78) 12%, rgba(255,255,255,.04));
  color:var(--schoolColor, #fff);
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.networkModelGraphTitle{
  margin:8px 0 0;
  font-size:20px;
  line-height:1.14;
  letter-spacing:-.03em;
  color:#fff;
}

.networkModelGraphMeta{
  margin:8px 0 0;
  font-size:12px;
  line-height:1.45;
  color:rgba(231,237,245,.74);
}

.networkModelGraphClose{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);
  color:#fff;
  font:inherit;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}

.networkModelGraphBody{
  display:grid;
  gap:14px;
}

.networkModelGraphBody .mp-section{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.networkModelGraphBody .grafica-procesos,
.networkModelGraphBody .dim-card{
  margin:0;
}

.networkSelectionCard{
  display:grid;
  gap:16px;
  margin-top:12px;
  padding:16px;
  border:1px solid rgba(255,255,255,0.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03)),
    radial-gradient(130% 120% at 0% 0%, color-mix(in srgb, var(--schoolColor, #5F7F78) 18%, rgba(255,255,255,0.08)), transparent 62%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 18px 36px rgba(0,0,0,0.18);
}

.networkSelectionCard[hidden]{
  display:none !important;
}

.networkSelectionHead{
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:14px;
  align-items:center;
}

.networkSelectionPhoto{
  width:84px;
  height:84px;
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
  border:1px solid rgba(255,255,255,0.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
}

.networkSelectionPhoto img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center top;
}

.networkSelectionSchoolRow{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 10px;
}

.networkSelectionSchoolPill{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #5F7F78) 48%, rgba(255,255,255,0.16));
  background:color-mix(in srgb, var(--schoolColor, #5F7F78) 14%, rgba(255,255,255,0.04));
  color:var(--schoolColor, #fff);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.networkSelectionTitle{
  margin:0;
  font-size:18px;
  line-height:1.16;
  letter-spacing:-.03em;
  color:#fff;
}

.networkSelectionMeta{
  margin:8px 0 0;
  font-size:12px;
  line-height:1.5;
  color:rgba(231,237,245,.78);
}

.networkSelectionDesc{
  margin:0;
  font-size:12.5px;
  line-height:1.72;
  color:rgba(231,237,245,.82);
}

.networkSelectionActions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
}

.networkSelectionBtn{
  appearance:none;
  border:1px solid color-mix(in srgb, var(--schoolColor, #5F7F78) 42%, rgba(255,255,255,0.14));
  border-radius:999px;
  padding:9px 14px;
  font:inherit;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  color:#fff;
  background:linear-gradient(180deg, color-mix(in srgb, var(--schoolColor, #5F7F78) 32%, rgba(255,255,255,0.1)), rgba(255,255,255,0.04));
  cursor:pointer;
}

.networkZoneList{
  display:grid;
  gap:8px;
}

.networkZoneItem{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #5F7F78) 28%, rgba(255,255,255,0.1));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--schoolColor, #5F7F78) 10%, rgba(255,255,255,0.06)), rgba(255,255,255,0.02));
}

.networkZoneItemTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.networkZoneItemTitle{
  font-size:13px;
  font-weight:800;
  line-height:1.3;
  color:#fff;
}

.networkZoneItemSchool{
  display:inline-flex;
  align-items:center;
  padding:0 8px;
  min-height:22px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #5F7F78) 48%, rgba(255,255,255,0.14));
  color:var(--schoolColor, #fff);
  background:color-mix(in srgb, var(--schoolColor, #5F7F78) 12%, rgba(255,255,255,0.03));
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.networkZoneItemMeta{
  font-size:11.5px;
  line-height:1.45;
  color:rgba(231,237,245,.72);
}

.networkNodeLabel{
  pointer-events:none;
}

.networkZoneNodeLabels{
  pointer-events:none;
}

/* ===== Vista red fullscreen (fondo) ===== */
body.network-mode .panel.right{
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  max-height: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  z-index: 6 !important;
  overflow: hidden !important;
}

body.network-mode .panel.right::before{
  display: none !important;
}

body.network-mode #modelInfo.modelPanel{
  height: 100vh;
  padding: 0 !important;
}

body.network-mode .networkView{
  min-height: 100vh;
  height: 100vh;
  padding: 0;
}

body.network-mode .networkHeader{
  position: absolute;
  top: 14px;
  right: calc(var(--edgePad, 14px) + 10px);
  left: calc(var(--edgePad, 14px) + var(--leftPanelW, 380px) + var(--midGap, 14px) + 10px);
  z-index: 7;
  background: transparent;
  box-shadow: none;
}

body.network-mode .networkCanvas{
  margin-top: 0;
  width: 100vw;
  height: 100vh;
  border-radius: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background:
    radial-gradient(980px 520px at 18% 10%, rgba(255,255,255,.14), transparent 58%),
    radial-gradient(860px 500px at 84% 90%, rgba(126,188,255,.12), transparent 64%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.01));
}

body.network-mode .networkLegend{
  margin-top: 0;
}

body.network-mode .networkTip{
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  z-index: 7;
  margin-top: 0;
  background: linear-gradient(180deg, rgba(18,28,40,.52), rgba(15,22,32,.34));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 16px 36px rgba(0,0,0,.25);
}

/* panel izquierdo glass en vista red */
body.network-mode .panel.left{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: none;
}

body.network-mode .panel.left::before{
  display: none !important;
}

body.network-mode .panel.left > *{
  pointer-events: auto;
}

body.network-mode .panel.left .card{
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow:
    0 14px 30px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.12);
}

body.network-mode .panel.left .schoolSticky{
  background: transparent !important;
  border: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
}

body.network-mode .panel.left .leftTopSticky.stuck{
  background: linear-gradient(180deg, rgba(24,34,46,.88), rgba(20,29,40,.76)) !important;
  box-shadow:
    0 14px 30px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.12) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.network-mode .networkSelectionCard,
body.network-mode .networkModelGraphBody .grafica-procesos,
body.network-mode .networkModelGraphBody .dim-card{
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

@media (max-width: 980px){
  body.network-mode .panel.right{
    display:block !important;
  }

  .networkView{
    min-height: auto;
  }
  .networkControlsBar{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .networkCanvas{
    height: 56vh;
  }
  .networkModelGraphPanel{
    top:auto;
    left:10px;
    right:10px;
    bottom:10px;
    width:auto;
    max-width:none;
    max-height:min(58vh, 520px);
  }
  .networkMobileGraphCta{
    left:10px;
    right:10px;
    bottom:10px;
    width:auto;
    transform:none;
  }
  .networkTitle{
    font-size: 24px;
  }
  .network3dHud{
    top:10px;
    left:10px;
    right:10px;
    flex-direction:column;
    align-items:stretch;
  }
  .network3dBadge{
    max-width:none;
  }
  .network3dCameraBar{
    justify-content:flex-end;
    flex-wrap:wrap;
  }
  body.network-mode .networkHeader{
    top: 10px;
    left: 10px;
    right: 10px;
  }
  body.network-mode .panel.left{
    display:none !important;
  }
  body.network-mode .networkLegend{
    gap:6px;
  }
  body.network-mode .networkLegend .chip{
    min-height:32px;
    padding:5px 9px;
    font-size:10.5px;
  }
  body.network-mode .networkTip{
    left: 10px;
    right: 10px;
    bottom: 10px;
  }
}
/* ===== Hero de entrada (panel derecho) ===== */
.modelPanel .mp-hero{
  position: relative;
  margin: 4px 0 12px 0;
  padding: 16px 16px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.10);
  background:
    radial-gradient(900px 420px at 15% 10%, rgba(255,255,255,0.10), transparent 60%),
    radial-gradient(700px 340px at 70% 30%, var(--panelGlow, rgba(217,170,63,0.10)), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.06), rgba(0,0,0,0.10));
  box-shadow: 0 18px 70px rgba(0,0,0,.45);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: hidden;
  animation: heroIn .45s ease both;
}

.modelPanel .mp-hero::after{
  content:"";
  position:absolute;
  inset:-40px;
  pointer-events:none;
  opacity:.35;
  background:
    radial-gradient(circle at 12px 12px, rgba(255,255,255,0.10) 1px, transparent 1.6px);
  background-size: 24px 24px;
  transform: rotate(6deg);
}

.modelPanel .mp-hero-eyebrow{
  display:block;

  padding: 0;
  border-radius: 0;
  background: none;
  border: none;

  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;

  color: rgba(231,237,245,0.58);
  margin-bottom: 8px;
}

.modelPanel .mp-hero-title{
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -0.15px;
  line-height: 1.25;

  color: rgba(231,237,245,0.92);
  text-shadow: none;
}



.modelPanel .mp-hero-text{
  font-size: 13.5px;
  line-height: 1.5;
  color: rgba(227,235,246,0.92);
  margin: 0 0 12px 0;
  max-width: 56ch;
}

.modelPanel .mp-hero-steps{
  display:flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.10);
}

.modelPanel .mp-step{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 12.5px;
  font-weight: 800;
  color: rgba(231,237,245,0.90);
}

.modelPanel .mp-step-dot{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(217,170,63,0.22);
  border: 1px solid rgba(217,170,63,0.35);
  box-shadow: 0 0 0 6px rgba(217,170,63,0.06);
  flex: 0 0 auto;
}

@keyframes heroIn{
  from{ opacity:0; transform: translateY(8px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes panelBreath{
  0%,100%{
    background-position: 0% 0%;
    opacity: .85;
  }
  50%{
    background-position: 100% 100%;
    opacity: 1;
  }
}

    /* Scrollbar glass (doc) */
    .panel.left, .panel.right{
      scrollbar-width: thin;
      scrollbar-color: rgba(231,237,245,0.28) rgba(255,255,255,0.06);
    }
    .panel.left::-webkit-scrollbar{ width:8px; }
    .panel.right::-webkit-scrollbar{ width:10px; }
    .panel.left::-webkit-scrollbar-track, .panel.right::-webkit-scrollbar-track{
      background: rgba(255,255,255,0.05);
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,0.06);
    }
    .panel.left::-webkit-scrollbar-track{
      background: rgba(255,255,255,0.035);
      border-color: rgba(255,255,255,0.04);
    }
    .panel.left::-webkit-scrollbar-thumb, .panel.right::-webkit-scrollbar-thumb{
      background: linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.14));
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,0.10);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
    }
    .panel.left::-webkit-scrollbar-thumb{
      background: linear-gradient(180deg, rgba(231,237,245,0.22), rgba(231,237,245,0.10));
      border-color: rgba(255,255,255,0.08);
    }
    .panel.left::-webkit-scrollbar-thumb:hover, .panel.right::-webkit-scrollbar-thumb:hover{
      background: linear-gradient(180deg, rgba(231,237,245,0.36), rgba(231,237,245,0.18));
    }
    /* ===== Acordeones (desplegables) ===== */
.mp-acc{
  margin-top:12px;
  border-top:1px solid rgba(255,255,255,0.10);
  padding-top:12px;
}

.mp-acc details{
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.03);
  border-radius: 14px;
  margin: 10px 0;
  overflow:hidden;
}

.mp-acc summary{
  list-style: none;
  cursor: pointer;
  padding: 12px 14px;
  font-weight: 700;
  font-size: 12px;
  color: #fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  user-select:none;
}

.mp-acc summary::-webkit-details-marker{ display:none; }

.mp-acc .sumRight{
  display:flex;
  align-items:center;
  gap:10px;
}

.mp-acc .sumCount{
  font-size: 11px;
  font-weight: 800;
  color: rgba(231,237,245,.80);
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.16);
}

.mp-acc .chev{
  width: 22px; height: 22px;
  display:grid; place-items:center;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(255,255,255,0.04);
  color: rgba(231,237,245,.85);
  transition: transform .15s ease;
}

.mp-acc details[open] > summary .chev{ transform: rotate(180deg); }

.mp-acc .body{
  padding: 0 14px 12px 14px;
  color:#e3ebf6;
  white-space: normal;   /* ✅ evita huecos por indentación */
  line-height: 1.55;
}


.mp-acc .body .mp-list{ margin-top: 8px; }

.mp-acc .body .mp-section{ /* neutraliza el estilo anterior si lo usabas */
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
/* ===== Sub-acordeones (procedimientos/micros) ===== */
.mp-sub details{
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(0,0,0,0.12);
  border-radius: 12px;
  margin: 8px 0;
  overflow: hidden;
}

.mp-sub summary{
  list-style:none;
  cursor:pointer;
  padding: 10px 12px;
  font-weight: 800;
  font-size: 12px;
  color: rgba(255,255,255,0.95);
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  user-select:none;
}

.mp-sub summary::-webkit-details-marker{ display:none; }

.mp-sub .subLeft{
  display:flex;
  gap:8px;
  align-items:flex-start;
  min-width:0;
}

.mp-sub .subTitle{
  font-weight: 600;
  line-height: 1.2;
}

.mp-sub .subRight{
  display:flex;
  gap:8px;
  align-items:center;
  flex-shrink:0;
}

.mp-sub .subBody{
  padding: 0 12px 10px 12px;
  color: rgba(227,235,246,0.92);
  white-space: normal;
  line-height: 1.55;
  font-size: 13px;
}

.mp-sub .subText{
  white-space: pre-wrap;
}

.mp-sub details[open] .chev{ transform: rotate(180deg); }

.iso-tech{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,0.08);
}

.iso-tech-stack{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.iso-tech-item{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
  background:rgba(255,255,255,0.03);
  overflow:hidden;
}

.iso-tech-item summary{
  list-style:none;
  cursor:pointer;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  user-select:none;
}

.iso-tech-item summary::-webkit-details-marker{ display:none; }

.iso-tech-main{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
}

.iso-tech-title{
  flex:0 0 auto;
  font-size:11px;
  font-weight:800;
  letter-spacing:.3px;
  text-transform:uppercase;
  color:rgba(231,237,245,.66);
}

.iso-tech-name{
  min-width:0;
  font-size:12px;
  font-weight:800;
  color:#fff;
  line-height:1.3;
}

.iso-tech-meta{
  flex:0 0 auto;
  font-size:10px;
  font-weight:700;
  color:rgba(231,237,245,.62);
}

.iso-tech-body{
  padding:0 12px 12px;
  color:rgba(227,235,246,.9);
  font-size:12px;
  line-height:1.5;
}

.iso-tech-def{
  color:rgba(231,237,245,.82);
}

.iso-tech-eqTitle{
  margin:10px 0 6px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.34px;
  text-transform:uppercase;
  color:rgba(231,237,245,.68);
}

.iso-tech-eqList{
  margin:0;
  padding-left:18px;
}

.iso-tech-eqList li + li{
  margin-top:6px;
}

.iso-tech-eqModel{
  font-weight:800;
  color:#fff;
}

.iso-tech-eqAuthor{
  color:rgba(231,237,245,.72);
}

.iso-tech-eqTechnique{
  color:rgba(231,237,245,.9);
}

.iso-tech-empty{
  color:rgba(231,237,245,.7);
}
/* =========================
   Oculta el header/menu de Teachable
   ========================= */

header:not(.atlas-header),
.site-header,
.header,
.navbar,
#header{
  display: none !important;
}

/* Por si Teachable mete padding-top por header fijo */
body{
  padding-top: 0 !important;
}
/* ===== Selector de escuelas (glass premium) ===== */
select{
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  background:
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.04)),
    radial-gradient(120px 60px at 90% 50%, rgba(217,170,63,.18), transparent 60%);
  
  border: 1px solid rgba(255,255,255,0.14);
  color: #ffffff;

  border-radius: 14px;
  padding: 12px 42px 12px 14px;

  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .2px;

  outline: none;
  cursor: pointer;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 10px 26px rgba(0,0,0,0.35);

  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    background .15s ease;
}

/* Hover */
select:hover{
  border-color: rgba(255,255,255,0.22);
}

/* Focus */
select:focus{
  border-color: rgba(217,170,63,.55);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 0 0 4px rgba(217,170,63,.15),
    0 12px 30px rgba(0,0,0,.45);
}

/* Flecha custom */
select{
  background-image:
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.04)),
    radial-gradient(120px 60px at 90% 50%, rgba(217,170,63,.18), transparent 60%),
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>\
<path d='M7 10l5 5 5-5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/>\
</svg>");
  background-repeat: no-repeat;
  background-position:
    0 0,
    0 0,
    right 14px center;
  background-size:
    cover,
    cover,
    16px;
}
label{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: rgba(231,237,245,.75);
}
/* Intento máximo de estilado del desplegable nativo */
select option{
  background-color: #11161d;
  color: #e7edf5;
  font-weight: 700;
}

select option:checked{
  background-color: #1e2632;
  color: #ffffff;
}
   /* =========================
   Fondo activo “semántico” (diagrama de nodos)
   ========================= */
body::before{
  animation: none;
}


@keyframes bgDrift{
  from{ background-position: 0 0; }
  to{ background-position: -520px 260px; }
}



/* Asegura que tu app quede por encima de before/after */
.app{ position: relative; z-index: 2; }
 
body::after{
  content:"";
  position:fixed;
  inset:0;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='1'/></filter><rect width='120' height='120' filter='url(%23n)' opacity='.015'/></svg>");
  pointer-events:none;
  z-index:1;
}
/* =========================
   FABs · navegación (abajo izquierda)
   ========================= */
/* =========================
   FAB · navegación (speed dial)
   ========================= */
.nav-speed{
  position: fixed;
  right: calc(var(--edgePad, 14px) + 6px);
  bottom: calc(var(--edgePad, 14px) + 6px);
  z-index: 999999;

  display: flex;
  flex-direction: column;
  align-items: flex-end;

  /* Contenedor transparente al puntero para no bloquear clics del contenido */
  pointer-events: none;
}

/* asegura que el botón principal siempre quede clicable */
.nav-fab-main{
  position: relative;
  z-index: 2;
  pointer-events: auto;
}
.nav-menu{
  position: relative;
  z-index: 1;
}


/* Menú (los accesos) */
.nav-menu{
  display: flex;
  flex-direction: column;
  gap: 10px;

  margin-bottom: 10px;              /* separa del botón principal */
  pointer-events: none;             /* cerrado = no clicable */
  opacity: 0;
  transform: translateY(10px) scale(.98);
  filter: blur(1px);
  transition: opacity .16s ease, transform .16s ease, filter .16s ease;
}

.nav-speed.open .nav-menu{
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* Micro-anim de cada item al abrir */
.nav-menu .nav-fab{
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease;
}
.nav-speed.open .nav-menu .nav-fab{
  opacity: 1;
  transform: translateY(0);
}

/* Botón principal: rota el + al abrir */
.nav-fab-main svg{
  transition: transform .18s ease;
}
.nav-speed.open .nav-fab-main svg{
  transform: rotate(45deg);
}



.nav-fab{
  width: 46px;
  height: 46px;
  border-radius: 999px;

  display: grid;
  place-items: center;

  background: rgba(15,22,32,0.62);
  border: 1px solid rgba(255,255,255,0.14);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  box-shadow: 0 16px 50px rgba(0,0,0,.45);

  color: #e7edf5;
  text-decoration: none;

  cursor: pointer;
  user-select: none;
  transition: transform .12s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
}

.nav-fab:hover{
  transform: translateY(-1px);
  background: rgba(15,22,32,0.78);
  border-color: rgba(217,170,63,0.35);
  box-shadow: 0 18px 60px rgba(0,0,0,.55), 0 0 0 6px rgba(217,170,63,.06);
}

.nav-fab:active{
  transform: translateY(0px) scale(0.98);
}

.nav-fab svg{
  width: 22px;
  height: 22px;
  display: block;
  opacity: .95;
}

.nav-fab:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(217,170,63,.22), 0 18px 60px rgba(0,0,0,.55);
}
    /* Botón principal: más transparente */
.nav-fab-main{
background: rgba(15,22,32,0.32);

  border-color: rgba(255,255,255,0.10);
}

/* Hover: sigue visible pero sin volverse opaco */
.nav-fab-main:hover{
  background: rgba(15,22,32,0.55);
  box-shadow:
    0 14px 40px rgba(0,0,0,.35),
    0 0 0 4px rgba(217,170,63,.04);
}

/* =========================
   Micro-ritual de entrada
   ========================= */
body:not(.loaded) .panel{
  opacity: 0;
  transform: translateY(8px);
}

body.loaded .panel{
  opacity: 1;
  transform: translateY(0);
  transition: opacity .38s ease, transform .38s ease;
}

/* izquierda primero */
body.loaded .panel.left{
  transition-delay: 0ms;
}

/* derecha 100ms después */
body.loaded .panel.right{
  transition-delay: 100ms;
}

/* hero: un pelín después del panel derecho */
body:not(.loaded) .mp-hero{
  opacity: 0;
  transform: translateY(6px);
}
body.loaded .mp-hero{
  opacity: 1;
  transform: translateY(0);
  transition: opacity .42s ease, transform .42s ease;
  transition-delay: 160ms;
}
/* =========================
   Jerarquía tipográfica del hero
   ========================= */
.modelPanel{
  padding-top: 22px; /* más aire arriba */
}



.modelPanel .mp-hero-text{
  font-size: 13.5px;
  opacity: .92;
}

.modelPanel .mp-hint{
  font-size: 12.5px;
  opacity: .72; /* claramente secundario */
}
body.access-locked{
  overflow:hidden;
}

body.access-locked .app,
body.access-locked .nav-speed{
  visibility:hidden;
  pointer-events:none;
}

.nav-speed{
  display:none !important;
}

.accessGate{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(900px 640px at 20% 20%, rgba(127,209,185,.16), transparent 58%),
    radial-gradient(840px 580px at 80% 30%, rgba(217,170,63,.12), transparent 62%),
    linear-gradient(180deg, rgba(7,11,16,.98), rgba(5,8,12,.98));
}

body:not(.access-locked) .accessGate{
  display:none;
}

.accessCard{
  width:min(420px, 100%);
  padding:24px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.045);
  box-shadow:0 24px 80px rgba(0,0,0,.46), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(18px) saturate(112%);
  -webkit-backdrop-filter:blur(18px) saturate(112%);
}

.accessEyebrow{
  margin:0 0 8px;
  color:rgba(255,255,255,.50);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.accessTitle{
  margin:0;
  color:rgba(255,255,255,.92);
  font-size:26px;
  line-height:1.05;
  font-weight:900;
}

.accessText{
  margin:10px 0 18px;
  color:rgba(255,255,255,.62);
  font-size:14px;
  line-height:1.45;
}

.accessForm{
  display:grid;
  gap:12px;
}

.accessInput{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  outline:none;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.92);
  font:700 15px/1 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  letter-spacing:0;
}

.accessInput:focus{
  border-color:rgba(127,209,185,.72);
  box-shadow:0 0 0 4px rgba(127,209,185,.14);
}

.accessInput::placeholder{
  color:rgba(255,255,255,.38);
}

.accessActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.accessButton{
  height:46px;
  border:0;
  border-radius:12px;
  cursor:pointer;
  color:#07100d;
  background:linear-gradient(180deg, #9be6d3, #6fcdb4);
  font:900 14px/1 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

.accessButton.secondary{
  color:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.07);
}

.accessButton:disabled{
  cursor:wait;
  opacity:.68;
}

.accessLinks{
  display:flex;
  justify-content:flex-start;
  gap:10px;
  min-height:18px;
}

.accessLink{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:rgba(155,230,211,.76);
  cursor:pointer;
  font:800 12px/1.35 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  text-align:left;
}

.accessLink:hover,
.accessLink:focus-visible{
  color:rgba(155,230,211,.96);
  text-decoration:underline;
  outline:none;
}

.accessError{
  min-height:18px;
  margin:0;
  color:#ffb8b8;
  font-size:13px;
  font-weight:700;
}

.accessError.is-ok{
  color:#9be6d3;
}

.accessCard{
  position:relative;
  overflow:hidden;
  width:min(450px, 100%);
  padding:28px;
  border:1px solid rgba(245,226,194,.18);
  border-radius:8px;
  background:
    linear-gradient(160deg, rgba(22,27,24,.96), rgba(9,12,11,.92)),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size:auto, 74px 74px;
  box-shadow:0 30px 110px rgba(0,0,0,.68), inset 0 0 0 1px rgba(255,255,255,.03);
}

.accessCard::before{
  content:"";
  position:absolute;
  inset:0;
  height:4px;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(245,219,171,.24), transparent 38%, rgba(155,230,211,.12));
}

.accessCard::after{
  content:"";
  position:absolute;
  inset:4px 0 auto;
  height:150px;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(245,219,171,.055), transparent);
}

.accessCard > *{
  position:relative;
  z-index:1;
}

.accessEyebrow{
  margin:0 0 12px;
  color:#f5dbab;
  font-size:11px;
  letter-spacing:.1em;
}

.accessEyebrow::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:8px;
  border-radius:999px;
  background:#f5dbab;
  vertical-align:.12em;
}

.accessTitle{
  color:#fff8ec;
  font-size:clamp(31px, 6vw, 40px);
  letter-spacing:0;
}

.accessText{
  margin:12px 0 20px;
  color:rgba(247,239,227,.72);
  font-size:15px;
  line-height:1.62;
}

.accessInput{
  border-color:rgba(245,226,194,.17);
  border-radius:8px;
  background:rgba(6,8,7,.76);
  color:#fff8ec;
}

.accessInput:focus{
  border-color:rgba(245,219,171,.72);
  box-shadow:0 0 0 3px rgba(216,182,123,.13);
}

.accessInput::placeholder{
  color:rgba(247,239,227,.38);
}

.accessButton{
  border-radius:8px;
  color:#17130d;
  background:linear-gradient(180deg, #f2daa6, #cda360);
  box-shadow:0 14px 34px rgba(205,163,96,.18);
}

.accessButton.secondary{
  color:rgba(247,239,227,.88);
  border-color:rgba(245,226,194,.16);
  background:rgba(255,255,255,.06);
  box-shadow:none;
}

.accessLink{
  color:rgba(245,219,171,.76);
}

.accessLink:hover,
.accessLink:focus-visible{
  color:rgba(245,219,171,.96);
}

.accessMeta{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(245,226,194,.1);
}

.accessMeta span{
  min-height:42px;
  display:grid;
  align-content:center;
  gap:2px;
  padding:9px 10px;
  border:1px solid rgba(245,226,194,.12);
  border-radius:8px;
  color:rgba(247,239,227,.88);
  background:rgba(255,255,255,.04);
  font-size:13px;
  font-weight:850;
}

.accessMeta small{
  color:rgba(247,239,227,.48);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.checkoutNoticeModal{
  position:fixed;
  inset:0;
  z-index:1000000;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(760px 520px at 28% 24%, rgba(127,209,185,.12), transparent 58%),
    linear-gradient(180deg, rgba(5,8,12,.72), rgba(5,8,12,.86));
  backdrop-filter:blur(10px) saturate(112%);
  -webkit-backdrop-filter:blur(10px) saturate(112%);
}

.checkoutNoticeModal[hidden]{
  display:none;
}

.checkoutNoticeCard{
  width:min(480px, 100%);
  padding:22px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:18px;
  background:rgba(12,18,25,.82);
  box-shadow:0 24px 80px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.06);
}

.checkoutNoticeTitle{
  margin:0;
  color:rgba(255,255,255,.92);
  font-size:22px;
  line-height:1.1;
  font-weight:900;
}

.checkoutNoticeText{
  margin:12px 0 20px;
  color:rgba(231,237,245,.72);
  font-size:14px;
  line-height:1.55;
}

.checkoutNoticeActions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
}

.checkoutNoticeButton{
  min-height:42px;
  padding:0 14px;
  border:0;
  border-radius:12px;
  cursor:pointer;
  font:900 13px/1 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

.checkoutNoticeButton.secondary{
  color:rgba(255,255,255,.80);
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
}

.checkoutNoticeButton.primary{
  color:#07100d;
  background:linear-gradient(180deg, #9be6d3, #6fcdb4);
  box-shadow:0 12px 30px rgba(111,205,180,.16);
}

.checkoutNoticeCard{
  position:relative;
  overflow:hidden;
  border-color:rgba(245,226,194,.18);
  border-radius:8px;
  background:
    linear-gradient(160deg, rgba(22,27,24,.96), rgba(9,12,11,.92)),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size:auto, 74px 74px;
  box-shadow:0 30px 110px rgba(0,0,0,.68), inset 0 0 0 1px rgba(255,255,255,.03);
}

.checkoutNoticeCard::before{
  content:"";
  position:absolute;
  inset:0;
  height:4px;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(245,219,171,.24), transparent 38%, rgba(155,230,211,.12));
}

.checkoutNoticeCard > *{
  position:relative;
  z-index:1;
}

.checkoutNoticeTitle{
  color:#fff8ec;
  font-size:clamp(24px, 5vw, 32px);
  letter-spacing:0;
}

.checkoutNoticeText{
  color:rgba(247,239,227,.72);
  line-height:1.62;
}

.checkoutNoticeButton{
  border-radius:8px;
}

.checkoutNoticeButton.secondary{
  color:rgba(247,239,227,.84);
  border-color:rgba(245,226,194,.16);
  background:rgba(255,255,255,.06);
}

.checkoutNoticeButton.primary{
  color:#17130d;
  background:linear-gradient(180deg, #f2daa6, #cda360);
  box-shadow:0 14px 34px rgba(205,163,96,.18);
}

.checkoutNoticeButton:hover{
  filter:brightness(1.06);
}

.checkoutNoticeButton:disabled{
  opacity:.62;
  cursor:wait;
}

@media (max-width: 520px){
  .accessGate{
    padding:18px;
  }

  .accessCard{
    padding:22px 18px;
  }

  .accessActions,
  .accessMeta{
    grid-template-columns:1fr;
  }

  .checkoutNoticeModal{
    padding:18px;
  }

  .checkoutNoticeCard{
    padding:18px;
  }

  .checkoutNoticeActions{
    display:grid;
    grid-template-columns:1fr;
  }
}

.mp-publicPreview{
  position:relative;
  width:100%;
  min-height:360px;
  margin:18px 0 24px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.025)),
    rgba(8,13,20,.64);
  box-shadow:0 24px 70px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);
}

.mp-publicPreviewMock{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);
  gap:22px;
  padding:26px;
  filter:blur(8px);
  opacity:.72;
  transform:scale(1.02);
  pointer-events:none;
}

.mp-publicPreview::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(520px 260px at 38% 32%, rgba(127,209,185,.16), transparent 66%),
    linear-gradient(180deg, rgba(5,8,12,.18), rgba(5,8,12,.68));
  pointer-events:none;
}

.mp-publicDonut,
.mp-publicBars,
.mp-publicDropdowns{
  border:1px solid rgba(255,255,255,.13);
  border-radius:16px;
  background:rgba(255,255,255,.055);
}

.mp-publicDonut{
  display:grid;
  place-items:center;
  min-height:260px;
}

.mp-publicDonut svg{
  width:min(260px, 72%);
  height:auto;
}

.mp-publicBars{
  display:grid;
  align-content:center;
  gap:13px;
  padding:24px;
}

.mp-publicBar{
  height:18px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(127,209,185,.85), rgba(217,170,63,.65));
  width:var(--w, 72%);
}

.mp-publicDropdowns{
  grid-column:1 / -1;
  display:grid;
  gap:10px;
  padding:16px;
}

.mp-publicDropdown{
  height:42px;
  border-radius:12px;
  background:linear-gradient(90deg, rgba(255,255,255,.16), rgba(255,255,255,.055));
}

.mp-publicPreviewOverlay{
  position:absolute;
  inset:0;
  z-index:2;
  display:grid;
  place-items:center;
  padding:24px;
  text-align:center;
}

.mp-publicPreviewCard{
  width:min(620px, 100%);
  padding:24px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:rgba(7,11,16,.56);
  box-shadow:0 18px 54px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(14px) saturate(125%);
  -webkit-backdrop-filter:blur(14px) saturate(125%);
}

.mp-publicSubscribeBtn{
  height:48px;
  min-width:170px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  color:#07100d;
  background:linear-gradient(180deg, #9be6d3, #6fcdb4);
  font:900 14px/1 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  box-shadow:0 14px 34px rgba(127,209,185,.24);
}

.mp-publicPreviewText{
  max-width:540px;
  margin:13px auto 0;
  color:rgba(255,255,255,.76);
  font-size:14px;
  line-height:1.55;
  font-weight:700;
}

/* ===== Editorial access / public preview ===== */
.accessGate{
  background:
    linear-gradient(95deg, rgba(11,10,12,.98) 0%, rgba(11,10,12,.94) 34%, rgba(11,10,12,.70) 66%, rgba(11,10,12,.92) 100%),
    radial-gradient(820px 520px at 76% 18%, rgba(217,170,63,.14), transparent 60%),
    #0b0a0c;
}

.accessGate::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(217,170,63,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(217,170,63,.035) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.76), transparent 82%);
}

.accessCard{
  width:min(760px, 100%);
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(230px, .58fr);
  gap:clamp(22px, 4vw, 42px);
  align-items:stretch;
  padding:0;
  border:1px solid rgba(243,236,226,.14);
  border-radius:16px;
  background:
    linear-gradient(160deg, rgba(22,18,22,.94), rgba(11,10,12,.92)),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size:auto, 74px 74px;
  box-shadow:0 34px 120px rgba(0,0,0,.7), inset 0 0 0 1px rgba(255,255,255,.03);
}

.accessCard::before{
  background:linear-gradient(90deg, rgba(217,170,63,.55), transparent 44%, rgba(243,236,226,.14));
}

.accessCard::after{
  display:none;
}

.accessCardMain{
  padding:clamp(28px, 5vw, 42px);
}

.accessEditorialAside{
  position:relative;
  min-height:100%;
  overflow:hidden;
  border-left:1px solid rgba(243,236,226,.10);
  background:
    linear-gradient(180deg, rgba(11,10,12,.18), rgba(11,10,12,.88)),
    url("https://raw.githubusercontent.com/josepmunta-design/modelos-app/main/assets/fotos/biblioteca.jpg");
  background-size:cover;
  background-position:center;
}

.accessEditorialAside::after{
  content:"Fig. 01 · Biblioteca clínica";
  position:absolute;
  right:18px;
  bottom:18px;
  max-width:170px;
  color:rgba(243,236,226,.54);
  font-family:'Space Grotesk',monospace;
  font-size:10px;
  letter-spacing:.14em;
  line-height:1.45;
  text-align:right;
  text-transform:uppercase;
}

.accessEyebrow{
  color:#d9aa3f;
  font-family:'Space Grotesk',monospace;
  font-size:11px;
  font-weight:650;
  letter-spacing:.18em;
}

.accessEyebrow::before{
  width:28px;
  height:1px;
  border-radius:0;
  background:#d9aa3f;
  vertical-align:.32em;
}

.accessTitle{
  margin:0;
  color:#f8f2e9;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(42px, 7vw, 64px);
  font-weight:400;
  line-height:.94;
}

.accessText{
  max-width:480px;
  color:rgba(243,236,226,.68);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:16px;
  line-height:1.65;
}

.accessForm{
  gap:13px;
}

.accessInput{
  height:50px;
  border-color:rgba(243,236,226,.16);
  border-radius:8px;
  background:rgba(11,10,12,.62);
  color:#f8f2e9;
  font:700 15px/1 'Hanken Grotesk',system-ui,sans-serif;
}

.accessInput:focus{
  border-color:rgba(217,170,63,.72);
  box-shadow:0 0 0 3px rgba(217,170,63,.14);
}

.accessActions{
  margin-top:4px;
}

.accessButton{
  height:48px;
  border-radius:999px;
  color:#180f0a;
  background:#d9aa3f;
  font:800 14px/1 'Hanken Grotesk',system-ui,sans-serif;
  box-shadow:0 18px 44px rgba(217,170,63,.22);
}

.accessButton:hover,
.accessButton:focus-visible,
.mp-publicSubscribeBtn:hover,
.mp-publicSubscribeBtn:focus-visible{
  filter:none;
  background:#e6c063;
  outline:none;
}

.accessButton.secondary{
  color:rgba(243,236,226,.86);
  border:1px solid rgba(243,236,226,.16);
  background:rgba(255,255,255,.055);
}

.accessButton.secondary:hover,
.accessButton.secondary:focus-visible{
  color:#f8f2e9;
  background:rgba(255,255,255,.09);
}

.accessLink{
  color:rgba(217,170,63,.78);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
}

.accessLink:hover,
.accessLink:focus-visible{
  color:#e6c063;
}

.accessMeta{
  margin:18px 0 0;
}

.accessMeta span{
  border-color:rgba(243,236,226,.12);
  color:rgba(243,236,226,.88);
  background:rgba(255,255,255,.035);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
}

.accessMeta small{
  color:rgba(243,236,226,.48);
  font-family:'Space Grotesk',monospace;
}

.mp-publicPreview{
  min-height:420px;
  margin:clamp(22px, 4vw, 38px) 0 clamp(30px, 5vw, 54px);
  border-color:rgba(243,236,226,.14);
  border-radius:16px;
  background:
    linear-gradient(180deg, rgba(26,20,24,.86), rgba(11,10,12,.94)),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size:auto, 74px 74px;
  box-shadow:0 30px 90px rgba(0,0,0,.46), inset 0 0 0 1px rgba(255,255,255,.03);
}

.mp-publicPreview::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(217,170,63,.58), transparent 44%, rgba(116,194,163,.16));
  z-index:3;
}

.mp-publicPreviewMock{
  padding:clamp(22px, 4vw, 34px);
  filter:blur(6px);
  opacity:.52;
  transform:scale(1.01);
}

.mp-publicPreview::after{
  background:
    linear-gradient(95deg, rgba(11,10,12,.9), rgba(11,10,12,.54) 48%, rgba(11,10,12,.9)),
    radial-gradient(620px 320px at 44% 26%, rgba(217,170,63,.12), transparent 66%);
}

.mp-publicDonut,
.mp-publicBars,
.mp-publicDropdowns{
  border-color:rgba(243,236,226,.12);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}

.mp-publicBar{
  background:linear-gradient(90deg, rgba(230,192,99,.92), rgba(116,194,163,.62));
}

.mp-publicPreviewOverlay{
  text-align:left;
}

.mp-publicPreviewCard{
  width:min(650px, 100%);
  padding:clamp(26px, 4vw, 38px);
  border:1px solid rgba(243,236,226,.16);
  border-radius:16px;
  background:rgba(11,10,12,.76);
  box-shadow:0 26px 80px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(16px) saturate(115%);
  -webkit-backdrop-filter:blur(16px) saturate(115%);
}

.mp-publicPreviewKicker{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 14px;
  color:#d9aa3f;
  font-family:'Space Grotesk',monospace;
  font-size:11px;
  font-weight:650;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.mp-publicPreviewKicker::before{
  content:"";
  width:28px;
  height:1px;
  background:#d9aa3f;
}

.mp-publicPreviewTitle{
  margin:0;
  color:#f8f2e9;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(34px, 6vw, 52px);
  font-weight:400;
  line-height:.98;
  text-wrap:balance;
}

.mp-publicPreviewText{
  max-width:560px;
  margin:18px 0 0;
  color:rgba(243,236,226,.68);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:16px;
  font-weight:500;
  line-height:1.62;
  text-wrap:pretty;
}

.mp-publicPreviewActions{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
  align-items:center;
  margin-top:24px;
}

.mp-publicSubscribeBtn{
  height:52px;
  min-width:0;
  padding:0 28px;
  border-radius:999px;
  color:#180f0a;
  background:#d9aa3f;
  font:800 15px/1 'Hanken Grotesk',system-ui,sans-serif;
  box-shadow:0 18px 44px rgba(217,170,63,.22);
}

.mp-publicPreviewHint{
  color:rgba(243,236,226,.48);
  font-family:'Space Grotesk',monospace;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.mp-lockedSection{
  position:relative;
  margin-top:18px;
  overflow:hidden;
  border:1px solid rgba(243,236,226,.14);
  border-radius:16px;
  background:rgba(255,255,255,.025);
}

.mp-lockedSectionHead{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 18px;
  border-bottom:1px solid rgba(243,236,226,.10);
  background:rgba(11,10,12,.82);
}

.mp-lockedSectionLabel{
  display:flex;
  align-items:center;
  gap:10px;
  color:#f4eee4;
  font:700 1rem/1.3 'Hanken Grotesk',sans-serif;
}

.mp-lockIcon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  flex:0 0 auto;
  border:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 42%,transparent);
  border-radius:999px;
  color:var(--ed-accent,#d9aa3f);
  background:color-mix(in srgb,var(--ed-accent,#d9aa3f) 9%,transparent);
  font-size:14px;
}

.mp-lockedSubscribeBtn{
  min-height:40px;
  padding:0 18px;
  border:0;
  border-radius:999px;
  color:#180f0a;
  background:#d9aa3f;
  font:800 13px/1 'Hanken Grotesk',sans-serif;
  cursor:pointer;
  white-space:nowrap;
}

.mp-lockedSubscribeBtn:hover,
.mp-lockedSubscribeBtn:focus-visible{
  background:#e6c063;
  outline:none;
}

.mp-lockedMock{
  position:relative;
  display:grid;
  gap:12px;
  padding:16px;
  pointer-events:none;
  user-select:none;
}

.mp-lockedMock::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(11,10,12,.18),rgba(11,10,12,.05),rgba(11,10,12,.22));
}

.mp-lockedAccordion{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:58px;
  padding:0 18px;
  border:1px solid var(--ed-line,rgba(243,236,226,.12));
  border-radius:13px;
  color:rgba(244,238,228,.72);
  background:rgba(255,255,255,.025);
}

.mp-lockedAccordionText{
  opacity:.78;
}

.mp-lockedAccordionRight{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--ed-accent,#d9aa3f);
}

.mp-lockedChart{
  min-height:190px;
  display:grid;
  grid-template-columns:repeat(7,1fr);
  align-items:end;
  gap:10px;
  padding:28px 22px 20px;
  filter:blur(5px);
  opacity:.48;
}

.mp-lockedChart span{
  height:var(--h);
  border-radius:8px 8px 2px 2px;
  background:linear-gradient(180deg,var(--ed-accent,#d9aa3f),rgba(116,194,163,.45));
}

.mp-lockedInfluenceGraph{
  position:relative;
  min-height:330px;
  padding:34px 28px;
  filter:blur(4.5px);
  opacity:.52;
}

.mp-lockedInfluenceGraph svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.mp-lockedInfluenceGraph path{
  fill:none;
  stroke:var(--ed-accent,#d9aa3f);
  stroke-width:1.4;
  opacity:.72;
}

.mp-lockedInfluenceNode{
  position:absolute;
  display:grid;
  place-items:center;
  min-height:52px;
  padding:10px 14px;
  border:1px solid rgba(243,236,226,.18);
  border-radius:12px;
  color:rgba(244,238,228,.78);
  background:rgba(20,17,23,.92);
  font:700 12px/1.25 'Hanken Grotesk',sans-serif;
  text-align:center;
}

.mp-lockedInfluenceNode.is-left{ left:7%; width:22%; }
.mp-lockedInfluenceNode.is-right{ right:7%; width:22%; }
.mp-lockedInfluenceNode.is-one{ top:18%; }
.mp-lockedInfluenceNode.is-two{ top:42%; }
.mp-lockedInfluenceNode.is-three{ top:66%; }
.mp-lockedInfluenceNode.is-center{
  left:38%;
  top:43%;
  width:24%;
  min-height:72px;
  border-color:var(--ed-accent,#d9aa3f);
  color:#f8f2e9;
  background:color-mix(in srgb,var(--ed-accent,#d9aa3f) 18%,rgba(20,17,23,.96));
}
.mp-lockedInfluenceNode.is-epistemology{
  left:40%;
  top:10%;
  width:20%;
  min-height:38px;
  border-color:color-mix(in srgb,var(--ed-accent,#d9aa3f) 60%,transparent);
}

.mp-lockedGraphs{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
  gap:14px;
  padding:16px;
  filter:blur(5px);
  opacity:.5;
}

.mp-lockedGraphPanel{
  min-height:300px;
  padding:20px;
  border:1px solid var(--ed-line,rgba(243,236,226,.12));
  border-radius:14px;
  background:rgba(255,255,255,.025);
}

.mp-lockedGraphKicker{
  margin:0 0 18px;
  color:rgba(243,236,226,.54);
  font:700 10px/1 'Space Grotesk',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.mp-lockedDimensionsBody{
  display:grid;
  grid-template-columns:minmax(0,1fr) 130px;
  gap:18px;
  align-items:center;
}

.mp-lockedDimList,
.mp-lockedProcessList{
  display:grid;
  gap:13px;
}

.mp-lockedDimRow{
  display:grid;
  grid-template-columns:8px auto 1fr 32px;
  gap:8px;
  align-items:center;
  color:rgba(243,236,226,.76);
  font:650 10px/1.2 'Hanken Grotesk',sans-serif;
}

.mp-lockedDimDot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--c);
}

.mp-lockedDimRule{
  height:1px;
  background:rgba(243,236,226,.13);
}

.mp-lockedDonut{
  width:126px;
  aspect-ratio:1;
  border-radius:50%;
  background:conic-gradient(#c58da9 0 30%,#d9b267 30% 55%,#a96e9a 55% 70%,#d59d59 70% 85%,#a7b18b 85% 100%);
  box-shadow:0 12px 30px rgba(0,0,0,.34);
}

.mp-lockedDonut::after{
  content:"";
  display:block;
  width:34%;
  aspect-ratio:1;
  margin:33%;
  border-radius:50%;
  background:#111318;
}

.mp-lockedProcessRow{
  display:grid;
  grid-template-columns:30px minmax(130px,.8fr) minmax(100px,1.6fr) 32px;
  gap:10px;
  align-items:center;
  color:rgba(243,236,226,.76);
  font:650 10px/1.2 'Hanken Grotesk',sans-serif;
}

.mp-lockedProcessCode{
  display:grid;
  place-items:center;
  min-height:20px;
  border:1px solid rgba(243,236,226,.18);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  font-size:9px;
}

.mp-lockedProcessTrack{
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(243,236,226,.07);
}

.mp-lockedProcessFill{
  display:block;
  width:var(--w);
  height:100%;
  border-radius:inherit;
  background:#6795c1;
}

@media (max-width:620px){
  .mp-lockedSectionHead{ align-items:flex-start; flex-direction:column; }
  .mp-lockedSubscribeBtn{ width:100%; }
  .mp-lockedGraphs{ grid-template-columns:1fr; }
  .mp-lockedInfluenceGraph{ min-height:290px; }
  .mp-lockedDimensionsBody{ grid-template-columns:minmax(0,1fr) 100px; }
  .mp-lockedDonut{ width:96px; }
  .mp-lockedProcessRow{ grid-template-columns:28px minmax(105px,.8fr) minmax(80px,1.4fr) 28px; }
}

@media (max-width: 760px){
  .accessCard{
    grid-template-columns:1fr;
    padding:0;
  }

  .accessEditorialAside{
    min-height:150px;
    order:-1;
    border-left:0;
    border-bottom:1px solid rgba(243,236,226,.10);
  }

  .mp-publicPreview{
    min-height:420px;
  }

  .mp-publicPreviewMock{
    grid-template-columns:1fr;
  }

  .mp-publicDropdowns{
    display:none;
  }
}

.authUserMenu{
  position:fixed;
  top:24px;
  right:34px;
  z-index:1000003;
}

.authMenuButton{
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.025)),
    rgba(12,18,28,.18);
  color:rgba(255,255,255,.92);
  box-shadow:
    0 10px 28px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  display:grid;
  place-items:center;
  cursor:pointer;
  padding:0;
}

.authMenuButton:hover,
.authUserMenu.is-open .authMenuButton{
  background:
    linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.04)),
    rgba(12,18,28,.25);
  border-color:rgba(217,170,63,.30);
}

.authMenuButton svg{
  width:18px;
  height:18px;
  display:block;
}

.authMenuDropdown{
  position:absolute;
  top:46px;
  right:0;
  min-width:148px;
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.20);
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.045)),
    rgba(12,18,28,.74);
  box-shadow:
    0 18px 50px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter:blur(18px) saturate(132%);
  -webkit-backdrop-filter:blur(18px) saturate(132%);
  display:grid;
  gap:4px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-4px);
  transition:opacity .16s ease, visibility .16s ease, transform .16s ease;
}

.authUserMenu.is-open .authMenuDropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.authMenuItem{
  min-height:34px;
  padding:0 12px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:rgba(255,255,255,.9);
  font:900 12px/1 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  text-align:left;
  cursor:pointer;
}

a.authMenuItem{
  display:flex;
  align-items:center;
  text-decoration:none;
}

.authMenuHomeLink{
  display:none !important;
}

.authMenuItem:hover,
.authMenuItem:focus-visible{
  outline:none;
  background:rgba(255,255,255,.08);
}

body.access-locked .authUserMenu{
  display:none;
}

body:not(.auth-logged-in) #authFullscreenButton,
body:not(.auth-logged-in) #authLogoutButton,
body.auth-logged-in #authLoginButton{
  display:none;
}

body.auth-logged-in .mp-fullBtn{
  display:none;
}

@media (max-width:620px){
  .authMenuHomeLink{
    display:flex !important;
  }

  .appsHomeLink,
  .appsHomeLink--floating{
    display:none !important;
  }
}

html, body{ position: relative; }
.app{ position: relative; z-index: 2; }
/* =========================
   Fondo: blobs de color muy blur (sutiles)
   ========================= */
.bg-blobs{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;             /* detrás de .app (que ya está en z-index:2) */
  overflow: hidden;
  filter: blur(70px);
  opacity: .55;           /* controla “cuánto se intuyen” */
}

/* cada blob */
.bg-blobs::before,
.bg-blobs::after{
  content:"";
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 999px;
  will-change: transform;
  mix-blend-mode: screen; /* se integra bien con fondos oscuros */
  opacity: .22;           /* opacidad del blob individual */
}

/* blob 1 (accent) */
.bg-blobs::before{
  left: -120px;
  top: -140px;
  background: radial-gradient(circle at 30% 30%,
    rgba(217,170,63,.95),
    rgba(217,170,63,0) 62%);
  animation: blobA 28s ease-in-out infinite;
}

/* blob 2 (azul) */
.bg-blobs::after{
  right: -160px;
  top: 120px;
  background: radial-gradient(circle at 35% 35%,
    rgba(78,121,167,.95),
    rgba(78,121,167,0) 62%);
  animation: blobB 34s ease-in-out infinite;
}

/* añadimos 2 blobs más con un pseudo-layer extra usando background múltiple */
.bg-blobs{
  background:
    radial-gradient(circle at 22% 78%, rgba(118,183,178,.18), rgba(118,183,178,0) 52%),
    radial-gradient(circle at 72% 86%, rgba(176,122,161,.16), rgba(176,122,161,0) 55%);
  animation: blobBg 40s ease-in-out infinite;
}

@keyframes blobA{
  0%   { transform: translate3d(0,0,0) scale(1); }
  35%  { transform: translate3d(260px, 220px,0) scale(1.08); }
  70%  { transform: translate3d(520px, -40px,0) scale(0.96); }
  100% { transform: translate3d(0,0,0) scale(1); }
}

@keyframes blobB{
  0%   { transform: translate3d(0,0,0) scale(1); }
  30%  { transform: translate3d(-260px, 260px,0) scale(1.06); }
  65%  { transform: translate3d(-520px, -80px,0) scale(0.94); }
  100% { transform: translate3d(0,0,0) scale(1); }
}

@keyframes blobBg{
  0%   { background-position: 0% 0%, 0% 0%; }
  50%  { background-position: 14% -10%, -10% 12%; }
  100% { background-position: 0% 0%, 0% 0%; }
}

/* Respeta accesibilidad */
@media (prefers-reduced-motion: reduce){
  .bg-blobs, .bg-blobs::before, .bg-blobs::after{
    animation: none !important;
  }
}
#modelInfo.school-view .mp-hint{
  margin-top: 12px; /* en vez de auto */
}

#modelInfo.school-view .mp-hint.dim-overview-hint{
  position: relative;
  margin-top: 14px;
  padding: 14px 16px 14px 46px;
  border-radius: 16px;
  border: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  box-shadow:
    0 10px 22px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter: blur(10px) saturate(115%);
  -webkit-backdrop-filter: blur(10px) saturate(115%);
  color: rgba(232,238,248,.9);
  font-size: 13px;
  line-height: 1.4;
  opacity: 1;
}

#modelInfo.school-view .mp-hint.dim-overview-hint::before{
  content:"←";
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  color: color-mix(in srgb, var(--schoolColor,#D9AA3F) 70%, #ffffff 18%);
  border:0;
  background: color-mix(in srgb, var(--schoolColor,#D9AA3F) 14%, rgba(255,255,255,.04));
  box-shadow:none;
}

@media (max-width: 980px){
  #modelInfo.school-view .mp-hint.dim-overview-hint::before{
    content:"↑";
  }
}
.mi-item.active .mi-title{
  color: var(--schoolColor, #fff);
}
/* =========================
   MINI MAP como FONDO (derecha)
   (render limpio: blur solo en land, graticule sin blur)
   ========================= */

.modelPanel{
  position: relative;     /* clave para el absoluto */
  overflow: hidden;       /* recorta el mapa dentro del panel */
}

/* contenedor del “fondo-mapa” */
.mp-mapbg{
  position: absolute;
  right: -36px;
  top: 0px;
  width: 560px;
  height: 340px;

  pointer-events: none;
  z-index: 0;

  opacity: .55;

  /* ✅ clip real + estabilidad de composición */
  border-radius: 18px;
  overflow: hidden;

  will-change: transform;
  transform: translateZ(0);
  isolation: isolate;
}

/* el SVG ocupa el contenedor */
.mp-mapbg svg{
  width: 100%;
  height: 100%;
  display: block;

  /* ✅ evita artefactos de composición */
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* ===== TIERRA (continentes) =====
   ✅ blur SOLO aquí para que el mapa sea reconocible sin “bandas” raras
*/
.mp-mapbg .land{
  filter: blur(0.85px);
  opacity: 1;
  transform: translateZ(0);
}

.mp-mapbg .land path{
  fill: rgba(231,237,245,0.18);
  stroke: rgba(231,237,245,0.22);
  stroke-width: 1.1;

  /* ✅ mejora bordes en algunos renders */
  shape-rendering: geometricPrecision;
}

/* ===== GRATICULE (rejilla) =====
   ✅ SIN blur + muy suave para que no “ensucie” arriba
*/
.mp-mapbg .graticule{
  filter: none !important;
  opacity: .38; /* baja la presencia global */
}

.mp-mapbg .graticule path{
  fill: none;
  stroke: rgba(231,237,245,0.10);
  stroke-width: 1;

  /* ✅ hace que la rejilla no se convierta en “barras” */
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 2.2 6.5;
}

/* (Opcional) punto */
.mp-mapbg .mini-dot{
  stroke: rgba(255,255,255,0.85);
  stroke-width: 2;
}

/* ===== Fade real a transparente: MASK (tu versión) ===== */
.mp-mapbg{
  -webkit-mask-image:
    linear-gradient(to left,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 68%,
      rgba(0,0,0,0) 97%
    ),
    linear-gradient(to bottom,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 50%,
      rgba(0,0,0,0.35) 62%,
      rgba(0,0,0,0) 78%
    );
  -webkit-mask-composite: source-in;

  mask-image:
    linear-gradient(to left,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 68%,
      rgba(0,0,0,0) 97%
    ),
    linear-gradient(to bottom,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,1) 50%,
      rgba(0,0,0,0.35) 62%,
      rgba(0,0,0,0) 78%
    );
  mask-composite: intersect;
}


/* velo MUY suave */
.mp-mapbg::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(240px 160px at 70% 45%, rgba(255,255,255,0.05), transparent 65%);
}

/* sube el contenido del panel por encima del mapa */
.modelPanel > :not(.mp-mapbg){
  position: relative;
  z-index: 1;
}

/* ===== Mini-mapa: reducir presencia en smartphone ===== */
@media (max-width: 768px){
  .mp-mapbg{
    opacity: .20;        /* antes .55 */
    right: -178px;        /* ✅ más a la derecha en móvil (ajusta -60/-90 si quieres) */
  }

  .mp-mapbg .land{
    filter: blur(1.1px);
  }
}
    /* =========================
   IDEAS PRINCIPALES – ACORDEÓN INTERNO
   ========================= */

.mp-ideas{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* contenedor de cada idea */
.mp-idea{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: rgba(255,255,255,.02);
  overflow: hidden;
}

/* título (summary) */
.mp-idea-title{
  position: relative;
  cursor: pointer;
  padding: 12px 36px 12px 14px;
  font-size: 14px;
  font-weight: 500;
  list-style: none;
}

/* quitamos marcador nativo */
.mp-idea-title::-webkit-details-marker{
  display: none;
}

/* ▶ TRIÁNGULO (cerrado) */
.mp-idea-title::after{
  content: '▸';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  opacity: .55;
  transition: transform .18s ease, opacity .18s ease;
}

/* ▼ TRIÁNGULO (abierto) */
.mp-idea[open] > .mp-idea-title::after{
  transform: translateY(-50%) rotate(90deg);
  opacity: .85;
}

/* cuerpo desplegable */
.mp-idea-body{
  padding: 0 14px 14px 14px;
  font-size: 14px;
  line-height: 1.55;
  opacity: .85;
  white-space: pre-wrap;
}
    /* ✅ Sticky: selector de escuela fijo dentro del panel izquierdo (todas) */
.panel.left .schoolSticky{
  position: relative;
  top: auto;
  z-index: 1;

  background: linear-gradient(180deg, var(--panelA), var(--panelB));
  backdrop-filter: blur(12px) saturate(115%);
  -webkit-backdrop-filter: blur(12px) saturate(115%);

  border-bottom: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 10px 26px rgba(0,0,0,0.28);
  margin-top: 0 !important;
}
/* ✅ Cuando el selector está realmente “pegado” arriba: esquinas superiores rectas */
@media (max-width: 980px){

  /* Cuando está en posición sticky activa */
  .panel.left:has(.leftTopSticky:is(:sticky, :not(:has(*)))) .schoolSticky{
    border-top-left-radius: 0;
    border-top-right-radius: 0;

    /* mantenemos abajo redondeado */
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 14px;
  }
}

/* ✅ Aire solo para el título */
.panel.left .title{
  padding-top: 14px;
  margin-top: 0;
}

@media (min-width: 981px){
  body.desktop-left-list-scroll .panel.left{
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }

  body.desktop-left-list-scroll .panel.left .leftTopSticky{
    flex:0 0 auto;
  }

  body.desktop-left-list-scroll .panel.left .modelsListCard{
    flex:1 1 auto;
    min-height:0;
    margin-bottom:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }

  body.desktop-left-list-scroll .panel.left .modelsListCard .row{
    flex:0 0 auto;
  }

  body.desktop-left-list-scroll .panel.left #modelsList{
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    padding-right:14px;
    scrollbar-gutter: stable;
  }

  body.desktop-left-list-scroll .panel.left #modelsList{
    scrollbar-width: thin;
    scrollbar-color: rgba(231,237,245,0.28) rgba(255,255,255,0.06);
  }

  body.desktop-left-list-scroll .panel.left #modelsList::-webkit-scrollbar{
    width:10px;
  }

  body.desktop-left-list-scroll .panel.left #modelsList::-webkit-scrollbar-track{
    background: rgba(255,255,255,0.05);
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.06);
  }

  body.desktop-left-list-scroll .panel.left #modelsList::-webkit-scrollbar-thumb{
    background: linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.14));
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
  }

  body.desktop-left-list-scroll .panel.left #modelsList::-webkit-scrollbar-thumb:hover{
    background: linear-gradient(180deg, rgba(231,237,245,0.38), rgba(231,237,245,0.18));
  }

  body.desktop-network-zone-scroll .panel.left{
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }

  body.desktop-network-zone-scroll .panel.left .leftTopSticky,
  body.desktop-network-zone-scroll .panel.left .modelsListCard{
    flex:0 0 auto;
  }

  body.desktop-network-zone-scroll .panel.left .networkSelectionCard{
    flex:1 1 auto;
    min-height:0;
    margin-bottom:0;
    overflow:auto;
    padding-right:14px;
  }
}

/* ================== MÓVIL ================== */
@media (max-width: 980px){
  .schoolControls{
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
    gap:6px;
    align-items:center;
  }

  .schoolControls select{
    height:34px;
    padding:6px 28px 6px 8px;
    font-size:11px;
  }

  .typeFilters{
    margin-top:0;
    gap:6px;
  }

  .typeFilterSelect{
    min-width:118px;
    height:32px;
    font-size:10.5px;
  }

  .schoolControl-main{
    min-width:0;
  }

  .schoolControl-main .schoolSelectRow{
    display:none !important;
  }

  .schoolControl-main .mobileTypeSlot{
    display:none !important;
  }

  .schoolControl-main .schoolSelectRow select{
    width:100%;
  }

  .schoolControl-main .mobileTypeSlot .typeFilters{
    width:100%;
  }

  .schoolControl-main .mobileTypeSlot .typeFilterSelect{
    width:100%;
    min-width:0;
  }


  :root{
    --leftH: 300px;     /* alto fijo panel izquierdo */
    --rightGap: 20px;   /* separación entre paneles */
  }

  .panel.left{
    left: 0;
    right: 0;
    top: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    overflow: auto;
    padding: 0 var(--edgePad) calc(env(safe-area-inset-bottom) + 112px) var(--edgePad);
    border: none;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background:
      linear-gradient(180deg, var(--panelA), var(--panelB)),
      radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--schoolColor, #D9AA3F) 16%, rgba(255,255,255,0.08)), transparent 62%);
    transition: height .42s cubic-bezier(.22,.61,.36,1);
    z-index: 10;
  }

  .panel.left::before{
    inset: 0;
    border-radius: 0;
  }

  .panel.left.mobile-expanded{
    height: calc(100dvh + var(--mobilePanelShift, 0px));
    max-height: calc(100dvh + var(--mobilePanelShift, 0px));
  }

  .panel.left .title{
    padding-left: 2px;
    padding-right: 2px;
  }

  .sidebarHeader{
    column-gap:8px;
    margin:0 0 9px 0;
    padding-left:2px;
    padding-right:2px;
  }

  .sidebarHeader .title{
    padding-left:0;
    padding-right:0;
  }

  .appsHomeLink{
    min-height:28px;
    margin-top:5px;
    padding:6px 9px;
    font-size:11.5px;
  }

  .panel.left .leftTopSticky{
    background: linear-gradient(180deg, var(--panelA), var(--panelB));
  }

  .panel.left .card{
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    background: transparent;
    box-shadow: none;
    padding-left: 2px;
    padding-right: 2px;
  }

  .panel.left .modelsListCard{
    padding-top: 10px;
    padding-bottom: calc(env(safe-area-inset-bottom) + 96px);
  }

  .panel.left #modelsList{
    padding-bottom: calc(env(safe-area-inset-bottom) + 32px);
  }

  .panel.left .networkSelectionCard{
    border-radius: 18px;
    border-left: 1px solid rgba(255,255,255,0.08);
    border-right: 1px solid rgba(255,255,255,0.08);
    background:
      linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03)),
      radial-gradient(130% 120% at 0% 0%, color-mix(in srgb, var(--schoolColor, #5F7F78) 18%, rgba(255,255,255,0.08)), transparent 62%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.08),
      0 18px 36px rgba(0,0,0,0.18);
    padding-left: 16px;
    padding-right: 16px;
  }

  .panel.right{
    width: calc(100vw - (var(--edgePad) * 2));
    left: var(--edgePad);
    right: var(--edgePad);

    /* ✅ fijo: sin readP */
    top: calc(var(--edgePad) + var(--leftH) + var(--rightGap));
    max-height: calc(100vh - (var(--edgePad) * 2) - (var(--leftH) + var(--rightGap)));

    transition: transform .42s cubic-bezier(.22,.61,.36,1);
    transform: translateY(0);

    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    z-index: 20;
  }

  .panel.right.mobile-lowered{
    transform: translateY(var(--mobilePanelShift, 0px));
  }

  body:not(.infoFull) .panel.right{
    display:none;
  }

  body.infoFull .panel.right{
    display:block;
    transform: none !important;
  }

  /* ✅ Sticky compacto en móvil: solo el select */
  .panel.left .schoolSticky{
    padding: 0 !important;
  }

  /* Oculta “ESCUELA” (label) */
  .panel.left .schoolSticky label{
    display: none !important;
  }

  .panel.left .schoolSticky .tagCheck{
    display:flex !important;
  }

  .panel.left .tagFiltersPanel{
    margin-top:8px;
    padding-top:8px;
  }

  .panel.left .tagFacetMenu{
    width:min(245px, calc(100vw - 32px));
  }

  /* Oculta el contador “X modelos en…” */
  .panel.left .schoolSticky #countLine{
    display: none !important;
  }

  .panel.left .schoolSticky .countFiltersRow{
    display:none;
  }

  /* Reduce el margen de la fila del label si sigue ocupando sitio */
  .panel.left .schoolSticky .row{
    margin-bottom: 0 !important;
    padding: 0 !important;
  }

  /* Ajuste fino del select para que se vea “barra” */
  .panel.left .schoolSticky select{
    width: 100%;
    height: 36px;                /* más corto */
    padding: 8px 34px 8px 10px;
    font-size: 12px;
  }

  /* ✅ Mantén contain (pero quita will-change de animación) */
  .panel.left, .panel.right{
    contain: layout paint;
  }
}

/* ✅ Bordes rectos cuando el sticky está pegado (tu clase .stuck) */
.panel.left .leftTopSticky.stuck{
  background: linear-gradient(180deg, var(--panelA), var(--panelB)) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,0.28) !important;
  backdrop-filter: blur(12px) saturate(115%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(115%) !important;
}

body.theme-light .panel.left .leftTopSticky.stuck{
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,249,255,.90)) !important;
  box-shadow: 0 10px 24px rgba(28,47,79,.12) !important;
}
/* ===== Botón FULL (arriba derecha dentro del panel de info) ===== */
.panel.right{ position: fixed; }  /* ya lo es, pero lo dejamos explícito */


.mp-fullBtn{
  position: fixed;        /* ✅ fijo en pantalla */
  top: 12px;
  right: 12px;
  z-index: 1000000;       /* ✅ por encima de todo */

  width: 34px;
  height: 34px;
  border-radius: 12px;

  display: grid;
  place-items: center;

  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.14);
  color: rgba(231,237,245,0.95);

  cursor: pointer;
  user-select: none;

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: opacity .24s ease, transform .24s ease, visibility .24s ease;
}
/* ===== Ocultar botón FULL mientras está la landing ===== */
body.landing-on .mp-fullBtn{
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
}

@media (max-width: 980px){
  body.mobile-model-lowered .mp-fullBtn{
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
  }
}


.mp-fullBtn:hover{
  border-color: rgba(255,255,255,0.22);
}

.mp-fullBtn svg{
  width: 18px;
  height: 18px;
  display: block;
}

.modelCloseBtn{
  position:fixed;
  top:max(12px, env(safe-area-inset-top));
  right:max(12px, env(safe-area-inset-right));
  z-index:1000002;
  width:42px;
  height:42px;
  border-radius:999px;
  display:none;
  place-items:center;
  border:1px solid rgba(255,255,255,0.24);
  background:rgba(7,11,16,0.76);
  color:rgba(231,237,245,0.96);
  box-shadow:0 14px 36px rgba(0,0,0,0.34);
  cursor:pointer;
}

.modelCloseBtn svg{
  width:20px;
  height:20px;
  display:block;
}

body.model-info-open .modelCloseBtn{
  display:grid;
}

@media (min-width: 981px){
  .mp-fullBtn,
  .modelCloseBtn{
    display:none !important;
  }
}

/* ===== Estado FULLSCREEN del panel derecho ===== */
body.infoFull .panel.right{
  position: fixed;
  top: var(--edgePad);
  left: var(--edgePad);
  right: var(--edgePad);
  bottom: var(--edgePad);

  max-height: none;
  overflow: auto;

  z-index: 999999;
}

@media (max-width: 980px){
  .mp-fullBtn{
    display:none;
  }

  body.infoFull .mp-fullBtn{
    display:grid;
    top:max(12px, env(safe-area-inset-top));
    right:max(12px, env(safe-area-inset-right));
    width:42px;
    height:42px;
    border-radius:999px;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    background:rgba(7,11,16,0.72);
    border-color:rgba(255,255,255,0.24);
    box-shadow:0 14px 36px rgba(0,0,0,0.34);
  }

  body.infoFull.model-swipe-out-right .panel.right{
    animation: modelSwipeOutRight .24s cubic-bezier(.22,.61,.36,1) forwards;
  }
  body.infoFull.model-swipe-out-left .panel.right{
    animation: modelSwipeOutLeft .24s cubic-bezier(.22,.61,.36,1) forwards;
  }

  body.infoFull .panel.right{
    top:0;
    left:0;
    right:0;
    bottom:0;
    width:100vw;
    max-width:100vw;
    border-radius:0;
  }
}

@keyframes modelSwipeOutRight{
  from{ transform: translateX(0); opacity:1; }
  to{ transform: translateX(52px); opacity:0; }
}

@keyframes modelSwipeOutLeft{
  from{ transform: translateX(0); opacity:1; }
  to{ transform: translateX(-52px); opacity:0; }
}

/* Oculta el panel superior mientras estás en fullscreen */
body.infoFull .panel.left{
  display: none !important;
}
    
    
/* ===== Sticky header del modelo (overlay bonito + solo cuando toca) ===== */
#stickyModelHeader{
  position: sticky;
  top: 0;
  z-index: 999998;

  width: 100%;
  left: 0;
  right: 0;

  /* ✅ no ocupa, no empuja, no mueve scroll */
  height: 0;
  margin: 0;
  padding: 0;
  overflow: visible;
}


/* capa visual */
#stickyModelHeader .smh-overlay{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;

  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  z-index: 999999;

  display: grid;
  grid-template-columns:minmax(180px, 1fr) auto;
  align-items: center;
  gap:24px;
  min-height:62px;
  padding:10px 96px 10px 24px;

  /* apagado por defecto */
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  /* ✅ fondo y estética (lo que te falta ahora) */
  background:rgba(10,8,11,0.94);
  border-bottom:1px solid rgba(244,238,228,0.12);
  backdrop-filter:blur(24px) saturate(120%);
  -webkit-backdrop-filter:blur(24px) saturate(120%);


  box-shadow:0 12px 32px rgba(0,0,0,0.32);

  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease;
  will-change: opacity, transform;
}

body.is-embed #stickyModelHeader .smh-overlay,
body.infoFull #stickyModelHeader .smh-overlay{
  padding-top:calc(10px + env(safe-area-inset-top));
}

#stickyModelHeader .smh-overlay::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,0.06),
      transparent 0%
    );

  mix-blend-mode: screen;
}

#stickyModelHeader.is-on .smh-overlay{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;

  box-shadow:0 14px 36px rgba(0,0,0,0.42);
}

#stickyModelHeader .smh-dot{

  width:8px;
  height:8px;
  border-radius: 999px;

  background: color-mix(in srgb, var(--schoolColor,#D9AA3F) 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--schoolColor,#D9AA3F) 90%, transparent);

  box-shadow:0 0 0 4px color-mix(in srgb, var(--schoolColor,#D9AA3F) 12%, transparent);

  flex: 0 0 auto;

  /* reposo */
  animation: none;

  transform-origin: center;
  will-change: transform, box-shadow, opacity;
}
#stickyModelHeader.is-on .smh-dot{
  animation:none;
}

/* TEXTO */
#stickyModelHeader .smh-title{
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;
  letter-spacing:0;
  line-height: 1.1;
  font-size:1.22rem;
  color:#fbf6ee;
  text-shadow:none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#stickyModelHeader .smh-author{
  display:none !important;
}

#stickyModelHeader .smh-text{
  display:flex;
  align-items:center;
  gap:12px;
  min-width: 0;
}

#stickyModelHeader .smh-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
#stickyModelHeader .smh-nav::-webkit-scrollbar{ display:none; }
#stickyModelHeader .smh-navLink{
  flex:0 0 auto;
  padding:8px 13px;
  border:1px solid transparent;
  border-radius:999px;
  background:rgba(255,255,255,0.045);
  color:rgba(244,238,228,0.58);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.72rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  transition:background .16s ease,color .16s ease,border-color .16s ease;
}
#stickyModelHeader .smh-navLink:hover,
#stickyModelHeader .smh-navLink:focus-visible{
  color:#fbf6ee;
  border-color:rgba(244,238,228,0.14);
  outline:none;
}
#stickyModelHeader .smh-navLink.is-active{
  border-color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 72%,transparent);
  background:var(--schoolColor,#D9AA3F);
  color:#0c0a0d;
}
#stickyModelHeader .smh-navLink.is-special{
  border-color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 38%,transparent);
  color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 78%,#fff);
}
#stickyModelHeader .smh-navLink.is-special::before{
  content:"";
  display:inline-block;
  width:5px;
  height:5px;
  margin-right:7px;
  border-radius:50%;
  background:currentColor;
  vertical-align:middle;
}
#stickyModelHeader .smh-navLink.is-special.is-active{
  color:#0c0a0d;
}

@media (max-width:900px){
  #stickyModelHeader .smh-overlay{
    grid-template-columns:minmax(130px,0.55fr) minmax(0,1fr);
    gap:12px;
    padding-left:14px;
    padding-right:76px;
  }
  #stickyModelHeader .smh-title{ font-size:1rem; }
  #stickyModelHeader .smh-navLink{ padding:7px 10px; font-size:0.68rem; }
}

@media (max-width:620px){
  #stickyModelHeader .smh-overlay{
    grid-template-columns:1fr;
    gap:7px;
    padding:9px 58px 9px 12px;
  }
  #stickyModelHeader .smh-nav{ justify-content:flex-start; }
}

@keyframes dotBreath{
  0%,100%{
    transform: scale(1);
    box-shadow:
      0 0 0 4px color-mix(in srgb, var(--schoolColor,#D9AA3F) 14%, transparent),
      0 0 10px color-mix(in srgb, var(--schoolColor,#D9AA3F) 28%, transparent);
    opacity: .85;
  }

  50%{
    transform: scale(1.08); /* 👈 solo +8% */
    box-shadow:
      0 0 0 6px color-mix(in srgb, var(--schoolColor,#D9AA3F) 22%, transparent),
      0 0 14px color-mix(in srgb, var(--schoolColor,#D9AA3F) 40%, transparent);
    opacity: .95;
  }
}

/* ===== Foto autor ===== */

.mp-author-wrap{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.mp-author-photo{
  width: 54px;
  height: 54px;
  border-radius: 999px;
  object-fit: cover;

  border: 1px solid rgba(255,255,255,0.18);
  transition: opacity .28s ease;

  box-shadow:
    0 6px 18px rgba(0,0,0,0.35),
    inset 0 1px 0 rgba(255,255,255,0.08);

  background: rgba(255,255,255,0.06);
}

img.mp-author-photo[data-photo-url]{
  opacity:0;
}

img.mp-author-photo[data-photo-url].is-loaded{
  opacity:1;
}

.mp-author-text{
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.mp-author-name{
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
}

.mp-author-part{
  color: rgba(231,237,245,0.65);
  transition: opacity .2s ease, color .2s ease, text-shadow .2s ease;
}

.mp-author-part.is-active{
  color: #fff;
  text-shadow: none;
}

.mp-author-sep{
  opacity:.45;
}

.mp-author-meta{
  font-size: 12px;
  font-weight: 600;
  color: rgba(231,237,245,0.75);
}
.mp-author-photo{ display:block; }

    .author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Esto evita que la foto se deforme */
    display: block;    /* Evita espacios fantasmas debajo de la imagen */
}
/* ===== SECUENCIAS (FLOW) — versión más visual ===== */
.mp-flow{
  --seqCol: color-mix(in srgb, var(--schoolColor,#D9AA3F) 60%, rgba(255,255,255,0.20));

  /* ✅ geometría del carril */
  --dot: 26px;          /* tamaño del número */
  --col: 28px;          /* ancho columna del dot (grid) */
  --railX: calc((var(--col) - 3px) / 2);  /* centro del carril para línea de 3px */

  position: relative;
  display: flex;
  flex-direction: column;
gap: 0;

  padding-left: 40px;
padding-right: 14px;   /* ✅ aire a la derecha */

  margin-top: 12px;
  --dotRight: calc((var(--col) + var(--dot)) / 2); /* borde derecho del círculo */

}


/* línea vertical principal (más visible + glow) */
.mp-flow::before{
  content:"";
  position:absolute;
 left: var(--railX);

  top: 8px;
  bottom: 8px;
  width: 3px;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.06),
    rgba(255,255,255,0.13),
    rgba(255,255,255,0.06)
  );
  border-radius: 99px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.06),
    0 0 18px rgba(0,0,0,0.35);
}

/* cada item */
.mp-flowItem{
  position: relative;
  display: grid;
  grid-template-columns: 28px 1fr;  /* columna dot + columna caja */
  column-gap: 14px;
  align-items: center;             /* ✅ centra verticalmente el dot */

    }


/* segmento de línea por item (da sensación de “tramo” conectando) */
.mp-flowItem::after{
  content:"";
  position:absolute;
  left: var(--railX);
  top: calc(50% + (var(--dot) / 2));
  bottom: -34px;
  width: 3px;
  background: rgba(255,255,255,0.10);
  border-radius: 99px;
  opacity: 0.9;
}

.mp-flowItem:last-child::after{ display:none; }

/* nodo numerado (más protagonista + glow con color escuela) */
.mp-flowDot{
  position: relative;
  left: 0;
  top: 0;
margin-left: calc((var(--col) - var(--dot)) / 2);

  width: var(--dot);
height: var(--dot);


  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  font-size: 12px;

  background: radial-gradient(circle at 30% 25%, rgba(255,255,255,0.20), rgba(255,255,255,0.08));
  border: 1px solid rgba(255,255,255,0.14);
  color: rgba(231,237,245,0.96);

  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--seqCol) 20%, transparent),
    0 12px 26px rgba(0,0,0,0.35),
    0 0 18px color-mix(in srgb, var(--seqCol) 30%, transparent);
}

/* conector horizontal dot → box + flecha (esto es lo que faltaba) */
.mp-flowItem::before{
  content:"";
  position:absolute;
  left: calc(var(--dotRight) + 0px);

  top: 50%;
  transform: translateY(-50%);
  width: calc(1px + 14px); /* col-gap (14) + un poco de aire (14) */
  height: 2px;
  background: linear-gradient(90deg, rgba(255,255,255,0.18), rgba(255,255,255,0.06));
  border-radius: 99px;
}


.mp-flowBox::before{
  content:"";
  position:absolute;
  left: -8px;
 top: 50%;
transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid rgba(255,255,255,0.16);
  filter: drop-shadow(0 6px 12px rgba(0,0,0,0.25));
  opacity: 0.9;
}

/* caja (más “card” + acento de color) */
.mp-flowBox{
  position: relative;
  grid-column: 2;

  flex: 1;

  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 18px;

  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
  box-shadow:
    0 18px 46px rgba(0,0,0,0.26),
    0 0 0 1px rgba(0,0,0,0.14) inset;

  padding: 12px 14px;

  overflow: hidden;
}

/* barra/acento lateral con color de escuela */
.mp-flowBox::after{
  content:"";
  position:absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, var(--seqCol), rgba(255,255,255,0.06));
  opacity: 0.95;
}

/* hover (si quieres que “se sienta” interactivo) */
.mp-flowBox:hover{
  transform: translateY(-1px);
  box-shadow:
    0 22px 56px rgba(0,0,0,0.32),
    0 0 0 1px rgba(0,0,0,0.14) inset,
    0 0 22px color-mix(in srgb, var(--seqCol) 22%, transparent);
}

/* texto principal */
.mp-flowAction{
  font-weight: 650;
  font-size: 12px;
  line-height: 1.35;
  color: rgba(231,237,245,0.94);
}

/* descripción de secuencia */
.mp-seqDesc{
  margin: 6px 14px 14px 40px;   /* ⬅️ alinea con el flow */
  opacity: .86;
  line-height: 1.45;

  padding: 10px 14px;
  border-radius: 14px;

  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.045),
    rgba(255,255,255,0.02)
  );

  border: 1px solid rgba(255,255,255,0.08);
}



/* ===== Pasos desplegables dentro de Secuencias ===== */
.mp-step{
  /* mantiene estética de mp-flowBox */
}

.mp-stepSum{
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  user-select: none;
}

.mp-stepSum::-webkit-details-marker{ display:none; }

.mp-stepChev{
  opacity: .75;
  font-weight: 900;
  transform: translateY(-1px);
  transition: transform .18s ease, opacity .18s ease;
}

.mp-step[open] .mp-stepChev{
  transform: rotate(180deg) translateY(1px);
  opacity: .95;
}

.mp-stepBody{
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.08);
  line-height: 1.45;
  font-size: 12px;
  font-weight: 500;             /* ✅ lectura más cómoda */
  opacity: .88;
}

 @media (max-width: 980px){

  /* El paso completo pasa a columna */
  .mp-step{
    display: flex;
    flex-direction: column;
  }

  /* Summary en columna */
  .mp-stepSum{
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
    padding-right: 34px;
  }

  /* Título ocupa todo */
  .mp-flowAction{
    width: 100%;
    display: block;
  }

  /* Cuerpo SIEMPRE debajo */
  .mp-stepBody{
    width: 100%;
    display: block;
    margin-top: 10px;
    padding-top: 8px;
  }

  /* Chevron fijo derecha */
  .mp-stepChev{
    position: absolute;
    right: 12px;
    top: 12px;
    transform: none;
  }

  /* Rotación al abrir */
  .mp-step[open] .mp-stepChev{
    transform: rotate(180deg);
  }

}



/* Si no hay explicación, quita sensación de desplegable */
.mp-step[data-noexp="1"] .mp-stepChev{
  opacity: .25;
}
.mp-step[data-noexp="1"]{
  cursor: default;
}
.mp-step[data-noexp="1"] .mp-stepSum{
  cursor: default;
}

    /* ================== LANDING (pantalla inicio) ================== */
.landingOverlay{
    --accent: rgba(217,170,63,1);

  position: fixed;
  inset: 0;
  z-index: 2147483647; /* por encima de Teachable */
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;

  background: rgba(10,14,20,0.78);



  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

}
@media (max-width: 760px){
  .landingOverlay{
    background: rgba(10,14,20,0.62);
  }
}


.landingOverlay.is-on{ display: flex; }
.landingCard{
  width: min(900px, 100%);

  /* Fallbacks sólidos para móviles */
  max-height: 80vh;
  max-height: 90svh;            /* iOS moderno */
  max-height: min(80vh, 90dvh); /* viewport real móvil */

  overflow-y: auto;
  -webkit-overflow-scrolling: touch; /* ✅ iOS: scroll fluido */
  overscroll-behavior: contain;      /* ✅ evita “rebote” raro */

  border-radius: 28px;
  padding: 48px 56px;

  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);

  /* ✅ más ligero: el blur grande en un elemento que scrollea mata el rendimiento */
backdrop-filter: blur(12px) saturate(120%);
-webkit-backdrop-filter: blur(12px) saturate(120%);

/* ✅ sombra menos “carísima” */
box-shadow: 0 18px 60px rgba(0,0,0,0.45);

/* ✅ aisla repintados del resto de la página */
contain: layout paint;

}
/* =========================
   Scrollbar glass (EMBED) — para la ficha en iframe
   ========================= */

/* Firefox */
body.is-embed .sheet,
body.is-embed #modelSheet{
  scrollbar-width: thin;
  scrollbar-color: rgba(231,237,245,0.28) rgba(255,255,255,0.06);
}

/* Chrome / Edge / Safari */
body.is-embed .sheet::-webkit-scrollbar,
body.is-embed #modelSheet::-webkit-scrollbar{ width:10px; }

body.is-embed .sheet::-webkit-scrollbar-track,
body.is-embed #modelSheet::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.05);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.06);
}

body.is-embed .sheet::-webkit-scrollbar-thumb,
body.is-embed #modelSheet::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.14));
  border-radius: 999px;
  border: 1px solid rgba(231,237,245,0.10);
}


/* =========================
   Scrollbar glass (landing) — igual que paneles
   ========================= */

/* Firefox */
.landingCard{
  scrollbar-width: thin;
  scrollbar-color: rgba(231,237,245,0.28) rgba(255,255,255,0.06);
}

/* Chrome / Edge / Safari */
.landingCard::-webkit-scrollbar{ width:10px; }
.landingCard::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.05);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.06);
}
.landingCard::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.14));
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
}
.landingCard::-webkit-scrollbar-thumb:hover{
  background: linear-gradient(180deg, rgba(231,237,245,0.36), rgba(231,237,245,0.18));
}
/* Si el scroll ocurre en el overlay (móvil), mantenemos el mismo look */
.landingOverlay{
  scrollbar-width: thin;
  scrollbar-color: rgba(231,237,245,0.28) rgba(255,255,255,0.06);
}
.landingOverlay::-webkit-scrollbar{ width:10px; }
.landingOverlay::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.05);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.06);
}
.landingOverlay::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.14));
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
}
.landingOverlay::-webkit-scrollbar-thumb:hover{
  background: linear-gradient(180deg, rgba(231,237,245,0.36), rgba(231,237,245,0.18));
}

/* =========================
   LANDING HERO (título con estilo, sutil)
   ========================= */

.landingHero{
  padding: 6px 8px 16px 8px;
  margin-bottom: 10px;
}

.landingKicker{
  display: inline-flex;
  align-items: center;
  gap: 10px;

  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .72;
}

.landingKicker::before{
  content:"";
  width: 10px;
  height: 10px;
  border-radius: 999px;

  background: color-mix(in srgb, var(--accent) 70%, rgba(255,255,255,0.20));
  box-shadow:
    0 0 0 4px rgba(255,255,255,0.04),
    0 0 26px color-mix(in srgb, var(--accent) 38%, transparent);
  opacity: .95;
}

.landingH1{
  margin: 8px 0 0 0;
  font-size: 40px;
  font-weight: 750;           /* menos “bloque” */
  letter-spacing: -0.03em;
  line-height: 1.06;

  background: none;           /* fuera gradient */
  -webkit-background-clip: initial;
  background-clip: initial;
  color: rgba(231,237,245,0.94);

  text-shadow: none;          /* fuera “profundidad” */
}


.landingH1::after{
  content:"";
  display:block;
  height: 1px;
  width: min(420px, 100%);
  margin-top: 10px;

  background: linear-gradient(90deg,
    color-mix(in srgb, var(--accent) 48%, rgba(255,255,255,0.18)),
    transparent 75%
  );
  opacity: .55;
}

.landingLead{
  margin-top: 10px;
  opacity: .78;
  line-height: 1.45;
  max-width: 62ch;
}

/* Móvil: más compacto, igual de fino */
@media (max-width: 768px){
  .landingH1{
    font-size: 28px;
    line-height: 1.10;
    letter-spacing: -0.03em;
  }
  .landingH1::after{
    width: min(320px, 100%);
    opacity: .50;
  }
  .landingLead{
    max-width: 48ch;
  }
}

.landingGrid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 10px 6px 6px 6px;
}

@media (max-width: 980px){
  .landingGrid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px){
  .landingGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .landingGrid{ grid-template-columns: 1fr; }
}


.landingSchool{
  position: relative;
  border-radius: 16px;

  /* más compacta */
  padding: 12px 16px 10px 18px;

  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.10);

  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);

  /* sombra más editorial */
  box-shadow:
    0 14px 36px rgba(0,0,0,0.42),
    inset 0 1px 0 rgba(255,255,255,0.05);

  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
  cursor: pointer;
  overflow: hidden;
}

.landingSchool:hover{
  transform: translateY(-1px);
  border-color: rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.065);
  box-shadow:
    0 20px 48px rgba(0,0,0,0.48),
    inset 0 1px 0 rgba(255,255,255,0.06);
}

.landingSchool:active{
  transform: translateY(0px);
  box-shadow:
    0 12px 30px rgba(0,0,0,0.40),
    inset 0 1px 0 rgba(255,255,255,0.05);
}



/* banda color (firma visual de la escuela) */
.landingSchool::before{
  content:"";
  position:absolute;
  left: 6px;
  top: 6px;
  bottom: 6px;
  width: 3px;

  border-radius: 6px;

  
  opacity: .85;
}



.landingSchoolName{
  font-weight: 850;
  font-size: 19px;
  line-height: 1.05;
  letter-spacing: -0.6px;

  color: var(--schoolColor, #fff);
  text-shadow: 0 0 18px rgba(0,0,0,0.28);
}



.landingSchoolMeta{
  margin-top: 0;

  display:inline-flex;
  gap: 6px;
  align-items: center;

  margin-left: 8px;
  vertical-align: middle;

  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;

  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.2px;
  color: rgba(231,237,245,0.62);
}

.landingSchoolMeta .landingCount{
  color: rgba(231,237,245,0.92);
  font-weight: 950;
}

.landingSchoolMeta .landingCountLabel{
  color: rgba(231,237,245,0.62);
  font-weight: 800;
}


.landingSchoolMeta .landingCount{
  color: rgba(231,237,245,0.92);
}

.landingSchoolMeta .landingCountLabel{
  color: rgba(231,237,245,0.68);
  font-weight: 700;
}
.landingFooter{
  margin: 18px auto 0;
  padding: 0 10px 4px;
  max-width: 96ch;
  color: rgba(231,237,245,0.42);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.55;
  text-align: center;
}

@media (max-width: 768px){
  .landingFooter{
    margin-top: 14px;
    font-size: 10.5px;
    line-height: 1.5;
  }
}



/* ================== /LANDING ================== */

/* secuencias circulares. */
/* ===== SECUENCIAS (FLOW) — modo CIRCULAR para protocolo_ciclico ===== */
.mp-flow.mp-flow-circ{
  position: relative;

  /* tamaño del círculo */
  width: min(560px, 100%);
  height: 360px;

  /* anulamos el carril vertical */
  padding-left: 0;
  margin-top: 14px;

  display: block;
}

.mp-flow.mp-flow-circ::before{
  display:none; /* quita la línea vertical */
}

/* los items pasan a posición absoluta */
.mp-flow.mp-flow-circ .mp-flowItem{
  position: absolute;
  left: 50%;
  top: 50%;

  /* el item ya no necesita grid de 2 columnas */
  display: block;
  grid-template-columns: none;
  column-gap: 0;
  align-items: initial;
}

.mp-flow.mp-flow-circ .mp-flowItem::after{
  display:none; /* quita el tramo vertical por item */
}

/* dot y caja apilados */
.mp-flow.mp-flow-circ .mp-flowDot{
  margin: 0 auto 8px auto;
}

.mp-flow.mp-flow-circ .mp-flowBox{
  width: 190px;
  text-align: center;
}

/* colocación circular usando variables CSS por item */
.mp-flow.mp-flow-circ .mp-flowItem{
  --r: 135px;  /* radio */
  transform:
    translate(-50%,-50%)
    rotate(var(--ang))
    translate(var(--r))
    rotate(calc(-1 * var(--ang)));
}

/* icono central de ciclo */
.mp-flow.mp-flow-circ::after{
  content:"↺";
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
  font-size: 28px;
  font-weight: 900;
  color: color-mix(in srgb, var(--schoolColor,#D9AA3F) 70%, rgba(255,255,255,0.20));
  opacity: .85;
  text-shadow: 0 0 18px rgba(0,0,0,0.35);
}
/* ===== FLOW CÍCLICO: flecha último → primero ===== */

.mp-flow.mp-flow-loop{
  position: relative;
  padding-bottom: 52px;
 /* espacio para la flecha */
}


.mp-flow.mp-flow-loop::before{
  content:"";

  position:absolute;

  left: 22px;
  top: 18px;
  bottom: 22px;

  width: 2px;

  background: linear-gradient(
    to bottom,
    transparent,
    color-mix(in srgb, var(--schoolColor,#D9AA3F) 60%, transparent),
    transparent
  );

  opacity:.5;
}
/* ===== RETORNO DESDE ÚLTIMO PASO AL INICIO ===== */

.mp-flow.mp-flow-loop .mp-flowItem:last-child{
  position: relative;
}


/* ===== Teachable: permitir ancho completo ===== */
html, body{
  width: 100%;
  height: 100%;
}

body{
  margin: 0;
}

/* Si Teachable envuelve con containers típicos */
.container, .container-fluid, .row, .col, .col-12, .course-mainbar, .lecture-mainbar{
  max-width: none !important;
}

/* Tu root (elige el id/clase real si lo tienes) */
#app, #root, .app, .tmpsApp{
  max-width: none !important;
  width: 100% !important;
}

/* Evita padding heredado del contenedor */
#app, #root, .app, .tmpsApp{
  margin: 0 !important;
  padding: 0 !important;
}
.landing-hero{
  text-align:center;
  margin-bottom:48px;
}

.landing-hero h1{
  font-size:44px;
  font-weight:750;
  letter-spacing:-0.028em;
  margin:0 0 12px;
}


.landing-hero p{
  font-size:17px;
  opacity:.68;
  line-height:1.6;
  margin:0;
}

/* Micro-noise ultra sutil (Apple style) */
.landingSchool::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;

  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='1'/></filter><rect width='120' height='120' filter='url(%23n)' opacity='.02'/></svg>");

  mix-blend-mode: overlay;
}
.landingSchool{
  background-clip: padding-box;
}

.landingSchool::before{
  /* tu banda sigue igual */
}

.landingSchool::marker{ display:none; } /* por si acaso */
.landingSchool .spec{
  display:none;
}
/* =========================
   LANDING · FIX SMARTPHONE
   ========================= */

@media (max-width: 768px){

  .landingOverlay{
    align-items: flex-start;   /* no centra vertical */
    padding-top: 12px;
  }

  .landingCard{
    margin-top: 12px;

    max-height: 92dvh;
    padding: 28px 22px;

    border-radius: 22px;
  }

  .landingTitle{
    font-size: 26px;
    line-height: 1.15;
  }
}
/* =========================
   SCROLL FIX LANDING (móvil)
   ========================= */

/* Fondo bloqueado SOLO cuando la landing está activa */
body.landing-on{
  overflow: hidden !important;
  height: 100%;
}

/* El overlay es el contenedor scrolleable */
.landingOverlay{
  height: 100dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

/* La tarjeta también puede scrollear (doble seguridad) */
.landingCard{
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}
/* =========================
   LANDING BLOBS (1 color, sutil)
   ========================= */

.landingBlobs{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;            /* detrás del contenido */
  overflow: hidden;

  /* “un solo color” (usa tu accent) */
  --blob: rgba(217,170,63,0.55);


  filter: blur(100px);
  opacity: .55;
}

/* 2 blobs grandes */
.landingBlobs::before,
.landingBlobs::after{
  content:"";
  position:absolute;
  width: 560px;
  height: 560px;
  border-radius: 999px;
  will-change: transform;
  mix-blend-mode: screen;
  opacity: .18;

  background: radial-gradient(circle at 30% 30%, var(--blob), rgba(217,170,63,0) 62%);
}

.landingBlobs::before{
  left: -180px;
  top: -220px;
  animation: landingBlobA 34s ease-in-out infinite;
}

.landingBlobs::after{
  right: -220px;
  bottom: -240px;
  animation: landingBlobB 40s ease-in-out infinite;
}

/* Asegura que la landing (contenido) quede por encima */
#landingOverlay .landingShell{
  position: relative;
  z-index: 1;
}

@keyframes landingBlobA{
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(220px, 180px,0) scale(1.06); }
  100% { transform: translate3d(0,0,0) scale(1); }
}
@keyframes landingBlobB{
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(-240px, -160px,0) scale(1.05); }
  100% { transform: translate3d(0,0,0) scale(1); }
}

/* En móvil: que se note un pelín más sin volverse “fiesta” */
@media (max-width: 760px){
  .landingBlobs{
    filter: blur(70px);
    opacity: .70;
  }
  .landingBlobs::before,
  .landingBlobs::after{
    opacity: .22;
  }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .landingBlobs::before,
  .landingBlobs::after{
    animation: none !important;
  }
}
/* =========================
   EMBED MODE (para iframes)
   ========================= */


/* fuera landing y nav */
body.embedMode #landingOverlay{ display:none !important; }
body.embedMode .nav-speed{ display:none !important; }

/* esconder panel izquierdo si existe */
body.embedMode .leftPanel,
body.embedMode .schoolsPanel,
body.embedMode .sidePanel{
  display:none !important;
}

/* el panel principal a full */
body.embedMode .appShell{
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}
body.embedMode .mainPanel{
  width: 100% !important;
  max-width: 100% !important;
}
/* =========================
   EMBED MODE (iframe)
   ?embed=1&open=<id>
   ========================= */


/* En embed: fuera el panel izquierdo (lista) */
body.is-embed .panel.left{
  display: none !important;
}

/* En embed: panel derecho visible y a pantalla completa */
/* ✅ EMBED: EL SCROLL REAL */
body.is-embed .panel.right{
  display: block !important;
  position: relative !important;

  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  max-height: 100vh !important;

  overflow-y: auto !important;
  overflow-x: hidden !important;

  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

body.is-embed .panel.right{
  scrollbar-width: thin;
  scrollbar-color: rgba(231,237,245,0.28) rgba(255,255,255,0.06);
}
body.is-embed .panel.right::-webkit-scrollbar{ width:10px; }
body.is-embed .panel.right::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.05);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.06);
}
body.is-embed .panel.right::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(231,237,245,0.28), rgba(231,237,245,0.14));
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
}
body.is-embed .panel.right::-webkit-scrollbar-thumb:hover{
  background: linear-gradient(180deg, rgba(231,237,245,0.36), rgba(231,237,245,0.18));
}


/* Quita padding general */
body.is-embed .app{
  padding: 0 !important;
}

/* Fuera overlays/landing/menús rápidos */
body.is-embed #landingOverlay,
body.is-embed .nav-speed{
  display: none !important;
}

/* Fuera botones flotantes propios de la app (menú de cuenta, cerrar ficha):
   en embed el host (el iframe que la incrusta) ya pone su propio botón de cerrar */
body.is-embed .authUserMenu,
body.is-embed .modelCloseBtn,
body.is-embed .mp-fullBtn{
  display: none !important;
}

/* La portada con foto (.ed-hero.has-bg) está pensada para anchos de escritorio:
   a min(640px,94vw) caemos justo entre el breakpoint de 900px (recorte ancho,
   object-position 28% arriba) y el de 620px (recorte ya adaptado a estrecho,
   62% centro). Sin esto, algunas fotos salen mal encuadradas/"cortadas" en
   cuanto cargan (la portada se repinta sin imagen y, ~1s después, con ella). */
body.is-embed .ed-hero.has-bg{
  min-height: 600px !important;
  align-items: flex-end !important;
}
body.is-embed .ed-hero-bg img{
  object-position: 62% center !important;
}

/* .ed-hero-inner usa width:min(58%,660px) — pensado para dejar sitio a la foto
   en pantallas anchas. A 640px de panel eso deja ~370px para el título, y el
   acento entre paréntesis del autor (.ed-title-accent) tiene white-space:nowrap,
   así que si el nombre es largo no cabe, no puede partirse, y al tener .ed-hero
   overflow:hidden se ve "cortado". En embed siempre usamos el ancho completo y
   dejamos que el acento se parta como el resto del título si hace falta. */
body.is-embed .ed-hero-inner{
  width: 100% !important;
  max-width: none !important;
}
body.is-embed .ed-title-accent{
  white-space: normal !important;
}

/* #modelInfo/.modelPanel se estira a 871px por razones no identificadas en la cascada
   (element.style vacío, sin width explícito visible). Forzamos 100% del contenedor. */
body.is-embed #modelInfo,
body.is-embed .modelPanel{
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* La ficha ocupa todo */
body.is-embed .sheet,
body.is-embed #modelSheet{
  width: 100vw !important;
  height: auto !important;
  min-height: 100vh !important;

  max-width: none !important;
  max-height: none !important;
  border-radius: 0 !important;

  overflow: visible !important;   /* ✅ SIN scroll interno */
}


/* =========================
   EMBED MODE — anclar arriba
   ========================= */
html,
body.is-embed{
  height: 100%;
}

body.is-embed{
  overflow: hidden;               /* ✅ el body NO scrollea en embed */
}


/* 1) si algún wrapper centraba, lo anulamos */
body.is-embed *{
  scroll-margin-top: 0;
}

/* 2) ancla arriba el primer contenedor "grande" típico */
body.is-embed .app,
body.is-embed .page,
body.is-embed .wrap,
body.is-embed .container,
body.is-embed main,
body.is-embed #app,
body.is-embed #root{
  align-items: flex-start !important;
  justify-content: flex-start !important;
}

/* 3) si tu layout es flex centrado, esto lo rompe a favor de arriba */
body.is-embed .app,
body.is-embed #app,
body.is-embed #root,
body.is-embed main{
  min-height: 0 !important;
  height: auto !important;
  padding-top: 0 !important;
}

/* 4) por si hay un "centering" vía grid */
body.is-embed .app,
body.is-embed #app,
body.is-embed #root,
body.is-embed main{
  place-items: start !important;
}

/* 5) si hay margin-top raro en el panel principal */
body.is-embed .panel{
  margin-top: 0 !important;
}
/* ✅ Embed: el documento debe medir la altura del iframe */
html, body{
  height: 100%;
}




/* ✅ Tu shell y panel principal deben ocupar toda la altura */
body.embedMode .appShell{
  height: 100dvh !important;
  min-height: 100dvh !important;
}

body.embedMode .mainPanel{
  height: 100dvh !important;
  min-height: 100dvh !important;
  overflow: visible !important;
}

/* =========================
   EMBED / SOLO: layout normal (sin paneles fixed)
   ========================= */
body.is-embed .app,
body.embedMode .app{
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}


/* Desactiva el layout de 2 paneles fijos dentro del iframe */
/* En embed: fuera el panel izquierdo */
body.is-embed .panel.left,
body.embedMode .panel.left{
  display: none !important;
}


html:root{
  --midGap: 0px;
}
/* ✅ Embed: panel derecho fijo, scroll real */
body.is-embed .panel.right{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
}


/* ✅ FIX: evita recorte del sticky header (contain recorta pintura) */
body.is-embed .panel.right,
body.infoFull .panel.right{
  contain: none !important;
}

/* ✅ por si algún wrapper limita el ancho en embed/full */
body.is-embed #stickyModelHeader .smh-overlay,
body.infoFull #stickyModelHeader .smh-overlay{
  width: 100% !important;
  max-width: 100% !important;
}

/* =========================
   EMBED: fondo transparente (para uso en iframe)
   ========================= */



body.is-embed .app{
  background: transparent !important;
}

/* =========================
   PERFORMANCE MODE (smartphone)
   ========================= */
@media (max-width: 980px){
  .panel,
  .landingCard,
  .mp-fullBtn,
  #stickyModelHeader .smh-overlay{
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .panel::before,
  .bg-blobs,
  .bg-blobs::before,
  .bg-blobs::after,
  .landingBlobs,
  .landingBlobs::before,
  .landingBlobs::after{
    animation: none !important;
  }

  body::after{
    display: none !important;
  }
}

/* =========================
   Theme Toggle (Light Mode)
   ========================= */
body.theme-light{
  --bg:#f2f6fc;
  --panelA: rgba(255,255,255,0.90);
  --panelB: rgba(247,251,255,0.80);
  --panelRightA: rgb(255,255,255);
  --panelRightB: rgb(244,248,253);
  --text:#1d1d1f;
  --muted:#5f697a;
  --muted2:#768296;
  --accent:#0a84ff;

  color:#1d1d1f;
  background:
    radial-gradient(1300px 760px at 14% 12%, rgba(112,164,255,.20), transparent 56%),
    radial-gradient(1100px 760px at 86% 20%, rgba(124,214,255,.16), transparent 58%),
    radial-gradient(920px 680px at 50% 88%, rgba(180,166,255,.12), transparent 64%),
    linear-gradient(180deg,#f8fafe 0%,#edf3fb 100%);
}

body.theme-light .bg-blobs{
  opacity:.32;
  filter: blur(72px);
}

body.theme-light .panel{
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(247,251,255,.82));
  border:1px solid rgba(118,129,153,.20);
  box-shadow:
    0 24px 56px rgba(24,44,74,0.14),
    0 8px 20px rgba(24,44,74,0.08),
    inset 0 1px 0 rgba(255,255,255,.98);
  backdrop-filter: blur(16px) saturate(125%);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
}

body.theme-light .panel::before{
  background:
    radial-gradient(620px 360px at 88% 12%,
      color-mix(in srgb, var(--schoolColor, #6f9be6) 38%, transparent), transparent 62%),
    radial-gradient(700px 420px at 18% 85%, rgba(125,186,255,.14), transparent 67%);
  mix-blend-mode: normal;
  opacity:.86;
}

body.theme-light .panel.right::before{
  background:
    radial-gradient(720px 420px at 90% 10%,
      color-mix(in srgb, var(--schoolColor, #6f9be6) 46%, transparent), transparent 62%),
    radial-gradient(760px 460px at 20% 90%, rgba(125,186,255,.16), transparent 70%);
  opacity:.92;
}

body.theme-light .modelPanel .mp-hero{
  background:
    radial-gradient(900px 420px at 15% 10%, rgba(255,255,255,0.28), transparent 60%),
    radial-gradient(740px 360px at 74% 24%,
      color-mix(in srgb, var(--schoolColor, #6f9be6) 34%, transparent), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(245,250,255,0.56));
}

body.theme-light .title,
body.theme-light .t-main,
body.theme-light .modelPanel .mp-title,
body.theme-light .mi-title{
  color:#15181f;
  text-shadow:none;
}

body.theme-light .subtitle,
body.theme-light .mi-sub,
body.theme-light .modelPanel .mp-desc,
body.theme-light .modelPanel .mp-quote,
body.theme-light .modelPanel .mp-author,
body.theme-light .modelPanel .mp-hero-text,
body.theme-light .modelPanel .mp-hint,
body.theme-light .modelPanel .ep-kicker,
body.theme-light .modelPanel .ep-brief,
body.theme-light .modelPanel .ep-cardText,
body.theme-light .modelPanel .ep-itemText,
body.theme-light .school-eyebrow{
  color:#5f6a7c;
}
body.theme-light .modelPanel .mp-quote{
  background: linear-gradient(
    90deg,
    rgba(120,153,208,0.12) 0%,
    rgba(120,153,208,0.12) 45%,
    rgba(120,153,208,0) 50%,
    rgba(120,153,208,0) 100%
  );
  border-left-color: color-mix(in srgb, var(--schoolColor, #6f9be6) 68%, #ffffff 16%);
}

body.theme-light .modelPanel .ep-authorTitle,
body.theme-light .modelPanel .ep-questionText{
  color:#182133;
}

body.theme-light .modelPanel .ep-authorText{
  color:#5f6a7c;
}

body.theme-light .modelPanel .ep-authorSep{
  color:color-mix(in srgb, var(--schoolColor, #5f8fd1) 58%, #61718d);
}

body.theme-light .ep-comparison{
  border-color:color-mix(in srgb, var(--schoolColor, #6f9be6) 22%, rgba(118,129,153,.22));
  background:
    radial-gradient(420px 180px at 0% 0%, color-mix(in srgb, var(--schoolColor, #6f9be6) 12%, rgba(255,255,255,.72)), transparent 72%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(245,249,255,.82));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 10px 22px rgba(28,47,79,.10);
}

body.theme-light .ep-comparison-title,
body.theme-light .ep-comparison-table th:first-child,
body.theme-light .ep-comparison-table td:first-child{
  color:#182133;
}

body.theme-light .ep-comparison-title{
  border-bottom-color:rgba(118,129,153,.18);
}

body.theme-light .ep-comparison-table th{
  background:color-mix(in srgb, var(--schoolColor, #6f9be6) 16%, rgba(255,255,255,.96));
  color:#27344b;
}

body.theme-light .ep-comparison-table td{
  color:#4d5a70;
  background:rgba(255,255,255,.44);
}

body.theme-light .ep-comparison-table tr:nth-child(even) td{
  background:rgba(232,239,250,.48);
}

body.theme-light .ep-comparison-table th,
body.theme-light .ep-comparison-table td{
  border-color:rgba(118,129,153,.16);
}

body.theme-light .ep-table-link{
  color:color-mix(in srgb, var(--schoolColor, #5f8fd1) 74%, #243756 26%);
}

body.theme-light .ep-table-link:hover{
  color:#182133;
}

body.theme-light .ep-table-modal{
  background:rgba(233,240,250,0.72);
}

body.theme-light .ep-table-dialog{
  border-color:color-mix(in srgb, var(--schoolColor, #6f9be6) 28%, rgba(118,129,153,.22));
  background:
    radial-gradient(640px 280px at 0% 0%, color-mix(in srgb, var(--schoolColor, #6f9be6) 14%, rgba(255,255,255,.92)), transparent 74%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,248,254,.98));
  box-shadow:0 24px 70px rgba(28,47,79,.22);
}

body.theme-light .ep-table-modal-head{
  border-bottom-color:rgba(118,129,153,.18);
}

body.theme-light .ep-table-modal-title,
body.theme-light .ep-table-close{
  color:#182133;
}

body.theme-light .ep-table-close{
  border-color:rgba(118,129,153,.22);
  background:rgba(255,255,255,.70);
}

body.theme-light .ep-comparison-header{
  border-bottom-color:rgba(118,129,153,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(245,249,255,.42));
}

body.theme-light .ep-comparison-heading{
  color:#182133;
}

body.theme-light .ep-comparison-sub{
  color:#6b7a91;
}

body.theme-light .ep-table-modal-eyebrow{
  color:color-mix(in srgb, var(--schoolColor, #5f8fd1) 72%, #243756 28%);
}

body.theme-light .ep-ficha-ed .ed-chapter{
  border-bottom-color:rgba(118,129,153,.14);
}

body.theme-light .ep-ficha-ed .ep-ch-block + .ep-ch-block{
  border-top-color:rgba(118,129,153,.16);
}

body.theme-light .ep-ficha-ed .ep-pregunta-ed{
  border-top-color:rgba(118,129,153,.16);
}

body.theme-light .ep-ficha-ed .ep-questionText{
  color:#182133;
}

body.theme-light #modelInfo.school-view .mp-hint.dim-overview-hint{
  border:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(245,249,255,.86));
  box-shadow:
    0 8px 18px rgba(28,47,79,.10),
    inset 0 1px 0 rgba(255,255,255,.98);
  color:#3b4a61;
}

body.theme-light .t-eyebrow,
body.theme-light label{
  color:#738196;
}

body.theme-light select{
  background:
    linear-gradient(180deg, rgba(255,255,255,.97), rgba(241,247,255,.88));
  border:1px solid rgba(118,129,153,.24);
  color:#1a1d24;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.99),
    0 8px 20px rgba(28,47,79,.10);
}

body.theme-light select:focus{
  border-color: rgba(10,132,255,.46);
  box-shadow:
    0 0 0 3px rgba(10,132,255,.14),
    0 10px 24px rgba(28,47,79,.12),
    inset 0 1px 0 rgba(255,255,255,.99);
}

body.theme-light select option{
  background-color:#f5f8fd;
  color:#202534;
}

body.theme-light .typeFilterSelect{
  color:#55637a;
  border:1px solid rgba(118,129,153,.24);
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(242,248,255,.90)),
    radial-gradient(120px 60px at 90% 50%, rgba(95,143,209,.10), transparent 60%),
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>\
<path d='M7 10l5 5 5-5' stroke='%2355637a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/>\
</svg>");
  background-repeat:no-repeat;
  background-position:
    0 0,
    0 0,
    right 10px center;
  background-size:
    auto,
    auto,
    16px 16px;
}

body.theme-light .typeFilterSelect:hover{
  color:#1f2d44;
  border-color: rgba(89,128,188,.40);
  background-image:
    linear-gradient(180deg, rgba(255,255,255,1), rgba(236,245,255,.94)),
    radial-gradient(120px 60px at 90% 50%, rgba(95,143,209,.12), transparent 60%),
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>\
<path d='M7 10l5 5 5-5' stroke='%231f2d44' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/>\
</svg>");
}

body.theme-light .typeFilterSelect:focus{
  border-color: color-mix(in srgb, var(--schoolColor,#5f8fd1) 42%, rgba(118,129,153,.22));
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--schoolColor,#5f8fd1) 13%, transparent),
    inset 0 1px 0 rgba(255,255,255,.98);
}

@media (max-width: 980px){
  body.theme-light .schoolControl-main .mobileTypeSlot .typeFilters{
    border:1px solid rgba(118,129,153,.24);
    background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(241,247,255,.88));
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.99),
      0 8px 20px rgba(28,47,79,.10);
  }

  body.theme-light .schoolControl-main .mobileTypeSlot .typeFilterSelect{
    color:#102744;
    background-image:
      linear-gradient(180deg,
        color-mix(in srgb, var(--schoolColor,#5f8fd1) 20%, rgba(255,255,255,.95)),
        color-mix(in srgb, var(--schoolColor,#5f8fd1) 34%, rgba(255,255,255,.82))),
      radial-gradient(120px 60px at 90% 50%, rgba(95,143,209,.12), transparent 60%),
      url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>\
<path d='M7 10l5 5 5-5' stroke='%23102744' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/>\
</svg>");
  }
}

body.theme-light .card,
body.theme-light .mi-item,
body.theme-light .mp-acc details,
body.theme-light .mp-sub details,
body.theme-light .mp-idea,
body.theme-light .modelPanel .dim-card,
body.theme-light .modelPanel .mp-hero,
body.theme-light .modelPanel .mp-hint,
body.theme-light .modelPanel .ep-card,
body.theme-light .modelPanel .ep-notice{
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(244,249,255,.84));
  border:1px solid rgba(118,129,153,.20);
  box-shadow:
    0 10px 24px rgba(28,47,79,.10),
    inset 0 1px 0 rgba(255,255,255,.98);
}

body.theme-light .mi-item{
  color:#1a1f29;
  background:
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(247,251,255,.88)),
    radial-gradient(190px 100px at 96% 10%, rgba(255,255,255,.78), transparent 72%);
  border-color: rgba(118,129,153,.20);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 10px 24px rgba(28,47,79,.08);
}

body.theme-light .mi-item:hover{
  border-color: rgba(81,135,255,.28);
  background:
    linear-gradient(180deg, rgba(255,255,255,.995), rgba(241,247,255,.94)),
    radial-gradient(200px 110px at 96% 10%, rgba(255,255,255,.88), transparent 72%);
}

body.theme-light .mi-item.active{
  border-color: color-mix(in srgb, var(--schoolColor) 34%, rgba(118,129,153,.24));
  background:
    linear-gradient(180deg, rgba(255,255,255,.99), rgba(242,248,255,.94)),
    radial-gradient(220px 120px at 0% 0%, color-mix(in srgb, var(--schoolColor) 16%, rgba(255,255,255,.78)), transparent 72%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor) 12%, transparent),
    0 14px 24px color-mix(in srgb, var(--schoolColor) 8%, transparent),
    inset 0 1px 0 rgba(255,255,255,.99);
}

body.theme-light .mi-item.is-marco{
  background:
    linear-gradient(180deg, rgba(255,255,255,.86), rgba(246,249,255,.79)),
    radial-gradient(180px 100px at 96% 10%, rgba(255,255,255,.28), transparent 76%);
  border-color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 5%, rgba(118,129,153,.18));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    0 5px 14px rgba(28,47,79,.06);
}

body.theme-light .mi-item.is-marco:hover{
  border-color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 8%, rgba(118,129,153,.20));
  background:
    linear-gradient(180deg, rgba(255,255,255,.89), rgba(245,248,255,.82)),
    radial-gradient(180px 100px at 96% 10%, rgba(255,255,255,.34), transparent 76%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.99),
    0 6px 16px rgba(28,47,79,.07);
}

body.theme-light .mi-item.is-marco.active{
  border-color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 14%, rgba(118,129,153,.22));
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(244,248,255,.85)),
    radial-gradient(200px 110px at 0% 0%, color-mix(in srgb, var(--schoolColor, #5f8fd1) 4%, rgba(255,255,255,.74)), transparent 76%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor, #5f8fd1) 4%, transparent),
    0 8px 16px color-mix(in srgb, var(--schoolColor, #5f8fd1) 3%, transparent),
    inset 0 1px 0 rgba(255,255,255,.99);
}

body.theme-light .mi-sectionLine{
  background:linear-gradient(90deg, transparent, rgba(118,129,153,.28), transparent);
}

body.theme-light .mi-sectionLabel{
  color:rgba(65,78,102,.66);
}

body.theme-light .mi-avatar{
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,.96), rgba(255,255,255,.72) 62%),
    color-mix(in srgb, var(--schoolColor, #5f8fd1) 10%, rgba(255,255,255,.76));
  border-color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 18%, rgba(118,129,153,.18));
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--schoolColor, #5f8fd1) 7%, transparent),
    inset 0 1px 0 rgba(255,255,255,.98);
}

body.theme-light .mi-avatarFallback{
  color:#29405f;
}

body.theme-light .mi-year{
  color:#52627c;
  border-color: rgba(118,129,153,.18);
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.98);
}

body.theme-light .mi-typeTag,
body.theme-light .mi-marcoTag{
  color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 44%, #465a79);
  border-color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 20%, rgba(118,129,153,.18));
  background: color-mix(in srgb, var(--schoolColor, #5f8fd1) 8%, rgba(255,255,255,.90));
}

body.theme-light .mi-sub{
  color:#607089;
}

body.theme-light .mi-item.active .mi-sub{
  color:#33445f;
}

body.theme-light .pill,
body.theme-light .modelPanel .mp-pill,
body.theme-light .modelPanel .mp-tag,
body.theme-light .modelPanel .ep-chip,
body.theme-light .mp-acc .sumCount{
  color:#202838;
  border:1px solid rgba(118,129,153,.24);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(242,248,255,.88));
}

body.theme-light .mp-acc summary,
body.theme-light .mp-sub summary,
body.theme-light .mp-idea-title,
body.theme-light .modelPanel .mp-step,
body.theme-light .modelPanel .mp-hero-title,
body.theme-light .modelPanel .mp-author-name,
body.theme-light .modelPanel .ep-cardTitle{
  color:#1b2231;
}

body.theme-light .mp-acc .body,
body.theme-light .mp-sub .subBody,
body.theme-light .mp-idea-body{
  color:#4f5b70;
}

body.theme-light .modelPanel .grafica-procesos{
  background:
    radial-gradient(140% 120% at 18% 8%, rgba(255,255,255,.86), rgba(255,255,255,0) 54%),
    radial-gradient(120% 130% at 92% 92%, color-mix(in srgb, var(--schoolColor,#5f8fd1) 14%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(245,250,255,.72));
  border-color: rgba(118,129,153,.14);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 0 0 1px rgba(255,255,255,.42),
    0 12px 28px rgba(28,47,79,.12);
  backdrop-filter: blur(14px) saturate(116%);
  -webkit-backdrop-filter: blur(14px) saturate(116%);
}

body.theme-light .modelPanel .dim-card{
  background:
    radial-gradient(140% 120% at 18% 8%, rgba(255,255,255,.88), rgba(255,255,255,0) 54%),
    radial-gradient(120% 130% at 92% 92%, color-mix(in srgb, var(--schoolColor,#5f8fd1) 12%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,.90), rgba(245,250,255,.74));
  border-color: rgba(118,129,153,.14);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 0 0 1px rgba(255,255,255,.40),
    0 14px 30px rgba(28,47,79,.12);
  backdrop-filter: blur(14px) saturate(116%);
  -webkit-backdrop-filter: blur(14px) saturate(116%);
}

body.theme-light .modelPanel .fila-proceso{
  background: rgba(255,255,255,.72);
  border-color: rgba(118,129,153,.20);
}

body.theme-light .modelPanel .fila-proceso:hover{
  border-color: color-mix(in srgb, var(--schoolColor,#5f8fd1) 38%, rgba(118,129,153,.22));
  background: color-mix(in srgb, var(--schoolColor,#5f8fd1) 10%, rgba(255,255,255,.80));
}

body.theme-light .modelPanel .proceso-item.is-open .fila-proceso{
  border-color: color-mix(in srgb, var(--schoolColor,#5f8fd1) 44%, rgba(118,129,153,.24));
  background: color-mix(in srgb, var(--schoolColor,#5f8fd1) 12%, rgba(255,255,255,.84));
}

body.theme-light .modelPanel .label-proceso{
  color: color-mix(in srgb, var(--schoolColor,#4c73a9) 78%, #1c2b42);
}

body.theme-light .modelPanel .proceso-codigo{
  color: #1d2e4b;
  border-color: color-mix(in srgb, var(--schoolColor,#5f8fd1) 52%, rgba(118,129,153,.24));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--schoolColor,#5f8fd1) 20%, rgba(255,255,255,.95)),
      color-mix(in srgb, var(--schoolColor,#5f8fd1) 32%, rgba(255,255,255,.84)));
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--schoolColor,#5f8fd1) 14%, transparent),
    inset 0 1px 0 rgba(255,255,255,.98);
}

body.theme-light .modelPanel .proceso-nombre{
  color: #40516b;
}

body.theme-light .modelPanel .barra-container{
  background: linear-gradient(180deg, rgba(118,129,153,.22), rgba(118,129,153,.15));
  border-color: rgba(118,129,153,.20);
  box-shadow: inset 0 1px 1px rgba(44,63,93,.15);
}

body.theme-light .modelPanel .proceso-detail{
  color:#2d3b52;
  border-color: color-mix(in srgb, var(--schoolColor,#5f8fd1) 34%, rgba(118,129,153,.20));
  background: color-mix(in srgb, var(--schoolColor,#5f8fd1) 10%, rgba(255,255,255,.88));
}

body.theme-light .modelPanel .dim-title{
  color:#3f4f67;
}

body.theme-light .modelPanel .dim-row{
  color:#3f4f67;
}

body.theme-light .modelPanel .dim-card.has-hover .dim-row.is-linked-hover{
  color:#1f2d44;
}

body.theme-light .modelPanel .dim-colBody.is-collapsed::after{
  display:none;
}

body.theme-light .modelPanel .dim-expandBtn{
  color:#1f2d44;
}

body.theme-light .modelPanel .dim-val{
  color:#1f2d44;
}

body.theme-light .modelPanel .dim-groupTitle{
  color:#52627b;
}

body.theme-light .modelPanel .dim-reference{
  color:#44556f;
  border-top-color: rgba(118,129,153,.24);
}


body.theme-light .mp-mapbg{
  opacity:.62;
}

body.theme-light .mp-mapbg .land{
  filter: blur(.55px);
}

body.theme-light .mp-mapbg .land path{
  fill: rgba(38,58,94,0.24);
  stroke: rgba(38,58,94,0.30);
}

body.theme-light .mp-mapbg .graticule{
  opacity:.46;
}

body.theme-light .mp-mapbg .graticule path{
  stroke: rgba(38,58,94,0.20);
}

body.theme-light .nav-fab{
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(243,248,255,.86));
  border:1px solid rgba(118,129,153,.26);
  color:#1e2533;
  box-shadow:
    0 12px 28px rgba(24,44,74,.14),
    inset 0 1px 0 rgba(255,255,255,.98);
}

body.theme-light .nav-fab:hover{
  border-color: rgba(81,135,255,.42);
  box-shadow:
    0 14px 32px rgba(24,44,74,.18),
    0 0 0 4px rgba(10,132,255,.10);
}

body.theme-light .nav-fab-main{
  background: rgba(255,255,255,.92);
}

body.theme-light .landingOverlay{
  background: rgba(239,245,252,.72);
}

body.theme-light .networkControlsBar select{
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(241,247,255,.90));
  border:1px solid rgba(118,129,153,.24);
  color:#1a1d24;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.99),
    0 8px 20px rgba(28,47,79,.10);
}

body.theme-light .landingCard{
  background: rgba(255,255,255,.84);
  border:1px solid rgba(118,129,153,.18);
  box-shadow: 0 20px 52px rgba(24,44,74,.14);
}

body.theme-light .landingH1,
body.theme-light .landingSchoolName{
  color: var(--schoolColor, #2f4f83);
  text-shadow:none;
}

body.theme-light .landingLead,
body.theme-light .landingFooter,
body.theme-light .landingSchoolMeta{
  color:#5e6a7f;
}

body.theme-light .landingSchool::before{
  background: var(--schoolColor, #8aa7db);
  opacity:.88;
}

body.theme-light .school-title{
  color: var(--schoolColor, #2f4f83);
}

body.theme-light .count-school{
  color: var(--schoolColor, #2f4f83);
}

body.theme-light .mi-item.active .mi-title{
  color: var(--schoolColor, #2f4f83);
}

body.theme-light .modelPanel .mp-tag{
  color: color-mix(in srgb, var(--schoolColor) 75%, #243756);
  border-color: color-mix(in srgb, var(--schoolColor) 42%, rgba(118,129,153,.22));
  background: color-mix(in srgb, var(--schoolColor) 12%, rgba(255,255,255,.78));
}

/* Sticky header en claro (evita franja oscura) */
body.theme-light #stickyModelHeader .smh-overlay{
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--schoolColor, #7fa4db) 10%, rgba(255,255,255,.96)),
    rgba(246,250,255,.88)
  ) !important;
  box-shadow:
    0 8px 22px rgba(24,44,74,.12),
    0 0 0 1px color-mix(in srgb, var(--schoolColor,#7fa4db) 16%, rgba(118,129,153,.18)) !important;
  backdrop-filter: blur(18px) saturate(118%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(118%) !important;
}

body.theme-light #stickyModelHeader .smh-overlay::after{
  background: linear-gradient(180deg, rgba(255,255,255,.46), transparent 38%) !important;
}

body.theme-light #stickyModelHeader .smh-title{
  color: color-mix(in srgb, var(--schoolColor,#4c73a9) 78%, #1c2b42) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.62), 0 1px 2px rgba(24,44,74,.16) !important;
}

body.theme-light #stickyModelHeader .smh-author{
  color: #5e6d84 !important;
}

body.theme-light #stickyModelHeader .smh-dot{
  background: color-mix(in srgb, var(--schoolColor,#5f8fd1) 72%, white 8%) !important;
  border-color: color-mix(in srgb, var(--schoolColor,#5f8fd1) 86%, rgba(118,129,153,.22)) !important;
  box-shadow:
    0 0 0 5px color-mix(in srgb, var(--schoolColor,#5f8fd1) 16%, transparent),
    0 0 10px color-mix(in srgb, var(--schoolColor,#5f8fd1) 20%, transparent) !important;
}

body.theme-light::after{
  opacity:.16;
}

body.theme-light #countLine{
  opacity: 1;
}

body.theme-light #countLine .count-n{
  color:#1d2636;
  font-size:15px;
  font-weight:900;
}

body.theme-light #countLine .count-txt{
  color:#596881;
  opacity:1;
  font-weight:700;
}

body.theme-light #countLine .count-school{
  color: var(--schoolColor, #2f4f83);
  font-weight:850;
}

body.theme-light .mi-title{
  font-weight:760;
  font-size:13.4px;
  line-height:1.2;
  letter-spacing:-0.015em;
  color:#1c2433;
}

body.theme-light .mi-item.is-marco .mi-title{
  font-weight:690;
  letter-spacing:0;
  color:#40516b;
}

body.theme-light .mi-year{
  color:#6a7890;
  font-weight:780;
}

body.theme-light .mi-item.is-marco .mi-year{
  color:#7b8aa1;
  border-color: rgba(118,129,153,.14);
  background: rgba(255,255,255,.68);
}

body.theme-light .mi-sub{
  color:#607089;
  opacity:1;
}

body.theme-light .mi-item.is-marco .mi-sub{
  color:#728199;
}

body.theme-light .mi-item.is-marco .mi-avatar{
  background:
    radial-gradient(circle at 30% 28%, rgba(255,255,255,.94), rgba(255,255,255,.64) 62%),
    color-mix(in srgb, var(--schoolColor, #5f8fd1) 6%, rgba(255,255,255,.82));
  border-color: color-mix(in srgb, var(--schoolColor, #5f8fd1) 12%, rgba(118,129,153,.18));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor, #5f8fd1) 4%, transparent),
    inset 0 1px 0 rgba(255,255,255,.99);
}

body.theme-light .mi-item.is-marco .mi-accentDot{
  background: color-mix(in srgb, var(--schoolColor, #5f8fd1) 34%, rgba(118,129,153,.20));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--schoolColor, #5f8fd1) 5%, transparent);
  opacity:.54;
}

body.theme-light .landingSchoolMeta{
  color:#5b6880;
}

body.theme-light .landingSchoolMeta .landingCount{
  color:#1f2a3d;
  font-weight:900;
}

body.theme-light .landingSchoolMeta .landingCountLabel{
  color:#5e6c84;
  font-weight:800;
}

body.theme-light .count-school,
body.theme-light .school-title,
body.theme-light .modelPanel .mp-tag,
body.theme-light .mi-year,
body.theme-light .landingSchoolMeta .landingCount{
  text-shadow: 0 1px 0 rgba(255,255,255,.46);
}

body.theme-light .mi-item.active .mi-title{
  color: color-mix(in srgb, var(--schoolColor, #6f9be6) 58%, #1d2a40 42%) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.56) !important;
}

/* Escuelas claras conflictivas (Otros / Sistemico) en modo light */
body.theme-light.school-otros .mi-item.active .mi-title,
body.theme-light.school-sistemico .mi-item.active .mi-title{
  color:#1f2d44 !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.62) !important;
}

body.theme-light.school-otros .modelPanel .mp-tag,
body.theme-light.school-sistemico .modelPanel .mp-tag{
  box-shadow:
    0 1px 0 rgba(23,38,64,.26),
    inset 0 1px 0 rgba(255,255,255,.72) !important;
}

body.theme-light.school-otros .mi-item.active{
  border-color: rgba(64,79,104,.50) !important;
  box-shadow:
    0 0 0 2px rgba(64,79,104,.18),
    inset 0 1px 0 rgba(255,255,255,.98) !important;
}

body.theme-light.school-otros .modelPanel .mp-tag{
  text-shadow:
    0 1px 0 rgba(255,255,255,.46),
    0 1px 2px rgba(20,30,48,.34) !important;
}

body.theme-light.school-otros .count-school,
body.theme-light.school-otros #countLine .count-school{
  color:#304563 !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.58),
    0 1px 2px rgba(20,30,48,.30) !important;
}

/* Landing (solo light): legible y limpio sin halo borroso */
body.theme-light .landingSchool{
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(246,250,255,.88));
  border-color: rgba(118,129,153,.24);
  box-shadow:
    0 12px 28px rgba(24,44,74,.12),
    inset 0 1px 0 rgba(255,255,255,.98);
}

body.theme-light .landingSchoolName{
  color: color-mix(in srgb, var(--schoolColor, #6f9be6) 52%, #1c2a42 48%) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.64) !important;
}

body.theme-light .landingKicker,
body.theme-light .landingLead,
body.theme-light .landingSchoolMeta,
body.theme-light .landingSchoolMeta .landingCount,
body.theme-light .landingSchoolMeta .landingCountLabel{
  text-shadow: 0 1px 0 rgba(255,255,255,.58) !important;
}

/* Descripciones más legibles en light */
body.theme-light .modelPanel .mp-desc,
body.theme-light .modelPanel .mp-hero-text,
body.theme-light .mp-acc .body,
body.theme-light .mp-sub .subBody,
body.theme-light .mp-idea-body,
body.theme-light .mp-seqDesc,
body.theme-light .modelPanel .mp-changeTheory-text{
  color:#273246 !important;
}

body.theme-light .modelPanel .mp-changeTheory-card,
body.theme-light .modelPanel .mp-contextOrigin-card{
  border-color:rgba(20,31,46,0.10);
  background:
    radial-gradient(540px 250px at 86% -12%, rgba(89,145,180,0.16), transparent 62%),
    radial-gradient(420px 210px at 0% 14%, rgba(214,168,64,0.12), transparent 70%),
    linear-gradient(145deg, rgba(255,255,255,0.96), rgba(244,248,252,0.78)),
    rgba(255,255,255,0.78);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.82),
    inset 0 -22px 48px rgba(43,66,84,0.06),
    0 16px 34px rgba(28,38,52,0.10);
}

body.theme-light .modelPanel .mp-changeTheory-eyebrow,
body.theme-light .modelPanel .mp-contextOrigin-eyebrow{
  color:#667386;
}

body.theme-light .modelPanel .mp-changeTheory-rule,
body.theme-light .modelPanel .mp-contextOrigin-rule{
  background:linear-gradient(90deg, rgba(34,48,68,0.16), rgba(87,134,164,0.18), transparent);
}

body.theme-light .modelPanel .mp-contextOrigin-subtitle,
body.theme-light .modelPanel .mp-contextOrigin-phrase,
body.theme-light .modelPanel .mp-contextOrigin-narrative,
body.theme-light .modelPanel .mp-contextOrigin-chainItem{
  color:#354056;
}

body.theme-light .modelPanel .mp-contextOrigin-blockTitle{
  color:#ffffff;
  text-shadow:0 2px 14px rgba(10,20,32,0.64);
}

body.theme-light .modelPanel .mp-contextOrigin-block{
  border-color:rgba(20,31,46,0.10);
  background:rgba(255,255,255,0.56);
}

body.theme-light .modelPanel .mp-contextOrigin-media img{
  opacity:.76;
  filter:saturate(.86) contrast(1.04) brightness(.94);
}

body.theme-light .modelPanel .mp-contextOrigin-media::after{
  background:
    linear-gradient(180deg, rgba(6,10,14,0.06) 0%, rgba(6,10,14,0.22) 42%, rgba(6,10,14,0.70) 100%),
    linear-gradient(90deg, rgba(6,10,14,0.46), rgba(6,10,14,0.12) 62%, rgba(6,10,14,0.38));
}

body.theme-light .modelPanel .mp-contextOrigin-content{
  background:linear-gradient(180deg, rgba(8,13,18,0.00) 0%, rgba(8,13,18,0.02) 42%, rgba(8,13,18,0.48) 78%, rgba(8,13,18,0.74) 100%);
}

body.theme-light .modelPanel .mp-contextOrigin-chip{
  border-color:rgba(54,75,98,0.12);
  background:rgba(255,255,255,0.62);
  color:#4b596d;
}

body.theme-light .modelPanel .mp-contextOrigin-chainLabel{
  color:#758296;
}

body.theme-light .modelPanel .mp-contextOriginApple .mp-contextOrigin-title{
  color:#f7fafc;
}

body.theme-light .modelPanel .mp-contextOriginApple .mp-contextOrigin-subtitle,
body.theme-light .modelPanel .mp-co-text{
  color:rgba(235,239,243,0.74);
}

body.theme-light .modelPanel .mp-co-tabs{
  border-color:rgba(190,215,232,0.14);
  background:rgba(10,16,22,0.32);
}

@media (max-width: 980px){
  body.theme-light .panel{
    background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,252,255,.90));
  }

  body.theme-light .mp-mapbg{
    opacity:.40;
  }
}

/* Browser móvil: ocultar barras de scroll visuales (manteniendo scroll) */
@media (max-width: 980px), (hover: none) and (pointer: coarse) {
  html, body,
  .panel.left, .panel.right,
  .landingCard, .landingOverlay,
  .sheet, #modelSheet {
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  .panel.left::-webkit-scrollbar,
  .panel.right::-webkit-scrollbar,
  .landingCard::-webkit-scrollbar,
  .landingOverlay::-webkit-scrollbar,
  .sheet::-webkit-scrollbar,
  #modelSheet::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
  }
}

/* APK / WebView app-like mode: ocultar barras de scroll visuales */
@media (display-mode: standalone), (display-mode: fullscreen) {
  html, body,
  .panel.left, .panel.right,
  .landingCard, .landingOverlay,
  .sheet, #modelSheet {
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  .panel.left::-webkit-scrollbar,
  .panel.right::-webkit-scrollbar,
  .landingCard::-webkit-scrollbar,
  .landingOverlay::-webkit-scrollbar,
  .sheet::-webkit-scrollbar,
  #modelSheet::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
  }
}

/* Fallback manual por clase si el wrapper APK no expone display-mode */
body.apk-mode,
body.apk-mode .panel.left,
body.apk-mode .panel.right,
body.apk-mode .landingCard,
body.apk-mode .landingOverlay,
body.apk-mode .sheet,
body.apk-mode #modelSheet {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

body.apk-mode::-webkit-scrollbar,
body.apk-mode .panel.left::-webkit-scrollbar,
body.apk-mode .panel.right::-webkit-scrollbar,
body.apk-mode .landingCard::-webkit-scrollbar,
body.apk-mode .landingOverlay::-webkit-scrollbar,
body.apk-mode .sheet::-webkit-scrollbar,
body.apk-mode #modelSheet::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
}

/* =========================
   Landing editorial
   ========================= */
.landingOverlay,
body.theme-light .landingOverlay{
  --landing-ink:#f3ece2;
  --landing-muted:rgba(243,236,226,0.56);
  --landing-line:rgba(243,236,226,0.11);
  --landing-accent:#ff7a4d;
  align-items:stretch;
  justify-content:stretch;
  padding:0;
  overflow:hidden;
  background:#0b0a0c;
  color:var(--landing-ink);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.landingOverlay.is-on{
  display:block;
}

.landingOverlay .landingBlobs{
  display:none;
}

#landingOverlay .landingShell{
  display:grid;
  grid-template-columns:minmax(350px, 37vw) minmax(0, 1fr);
  width:100%;
  height:100%;
  min-height:0;
  background:#0b0a0c;
  animation:landingEditorialIn .42s ease both;
}

@keyframes landingEditorialIn{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

.landingMasthead{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:28px;
  min-width:0;
  padding:clamp(28px,3.4vw,52px);
  overflow:hidden;
  border-right:1px solid var(--landing-line);
}

.landingMasthead::after{
  content:"M";
  position:absolute;
  left:-4%;
  bottom:-7%;
  color:rgba(243,236,226,0.024);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(15rem,26vw,28rem);
  line-height:.7;
  pointer-events:none;
  user-select:none;
}

.landingBrand,
.landingHero,
.landingFooter{
  position:relative;
  z-index:1;
}

.landingBrand{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  font-family:'Space Grotesk',monospace;
  font-size:.68rem;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.landingBrandName{
  display:inline-flex;
  align-items:center;
  gap:11px;
  color:var(--landing-ink);
  font-weight:600;
}

.landingBrandName::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--landing-accent);
}

.landingBrandField{
  color:rgba(243,236,226,.42);
  text-align:right;
}

.landingHero{
  padding:0;
  margin:0;
}

.landingKicker{
  display:inline-flex;
  align-items:center;
  gap:11px;
  margin:0 0 20px;
  color:var(--landing-accent);
  font-family:'Space Grotesk',monospace;
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:1;
}

.landingKicker::before{
  width:30px;
  height:1px;
  border-radius:0;
  background:var(--landing-accent);
  box-shadow:none;
}

.landingH1,
body.theme-light .landingH1{
  margin:0;
  color:#f8f2e9;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(2.7rem,4.35vw,4.15rem);
  font-weight:400;
  line-height:.96;
  letter-spacing:-.01em;
  text-shadow:none;
  text-wrap:balance;
}

.landingH1::after{
  display:none;
}

.landingH1 em{
  display:block;
  font-weight:400;
}

.landingLead,
body.theme-light .landingLead{
  max-width:430px;
  margin:24px 0 0;
  color:rgba(243,236,226,.72);
  font-size:1.08rem;
  line-height:1.55;
  opacity:1;
}

.landingStats{
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  margin-top:32px;
}

.landingStat{
  min-width:82px;
  padding-left:13px;
  border-left:2px solid rgba(255,122,77,.62);
}

.landingStatLabel{
  display:block;
  margin-bottom:3px;
  color:rgba(243,236,226,.48);
  font-family:'Space Grotesk',monospace;
  font-size:.59rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.landingStatValue{
  display:block;
  color:var(--landing-ink);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.7rem;
  line-height:1;
}

.landingSearch{
  display:flex;
  align-items:center;
  gap:12px;
  max-width:430px;
  margin-top:32px;
  padding:13px 17px;
  border:1px solid rgba(243,236,226,.16);
  border-radius:13px;
  background:rgba(255,255,255,.018);
  transition:border-color .16s ease, background .16s ease;
}

.landingSearch:focus-within{
  border-color:rgba(255,122,77,.52);
  background:rgba(255,255,255,.028);
}

.landingSearch svg{
  width:17px;
  height:17px;
  flex:0 0 auto;
  color:rgba(243,236,226,.42);
}

.landingSearch input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--landing-ink);
  font:inherit;
  font-size:.96rem;
}

.landingSearch input::placeholder{
  color:rgba(243,236,226,.38);
}

.landingFooter,
body.theme-light .landingFooter{
  max-width:430px;
  margin:0;
  padding:0;
  color:rgba(243,236,226,.32);
  font-family:'Space Grotesk',monospace;
  font-size:.61rem;
  font-weight:400;
  line-height:1.6;
  text-align:left;
}

.landingIndex{
  min-width:0;
  min-height:0;
  overflow-y:auto;
  background:#0b0a0c;
  scrollbar-width:thin;
  scrollbar-color:rgba(243,236,226,.18) transparent;
}

.landingIndexHeader{
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px clamp(22px,3vw,48px);
  border-bottom:1px solid var(--landing-line);
  background:rgba(11,10,12,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.landingIndexTitle,
.landingIndexStatus{
  font-family:'Space Grotesk',monospace;
  font-size:.7rem;
}

.landingIndexTitle{
  color:var(--landing-ink);
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.landingIndexStatus{
  color:rgba(243,236,226,.45);
  letter-spacing:.04em;
  text-align:right;
}

.landingGrid{
  display:block;
  padding:8px clamp(22px,3vw,48px) 48px;
}

.landingSchool{
  position:relative;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  width:100%;
  padding:20px 12px 20px 18px;
  overflow:hidden;
  border:0;
  border-bottom:1px solid var(--landing-line);
  border-left:2px solid color-mix(in srgb,var(--schoolColor,#D9AA3F) 44%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:inherit;
  cursor:pointer;
  font:inherit;
  text-align:left;
  transition:background .16s ease, border-left-color .16s ease;
}

.landingSchool[hidden]{
  display:none;
}

.landingSchool::before,
.landingSchool::after{
  display:none;
}

.landingSchool:hover,
.landingSchool:focus-visible{
  transform:none;
  border-color:var(--landing-line);
  border-left-color:var(--schoolColor,#D9AA3F);
  outline:none;
  background:color-mix(in srgb,var(--schoolColor,#D9AA3F) 7%,transparent);
  box-shadow:none;
}

.landingSchool:active{
  transform:none;
  background:color-mix(in srgb,var(--schoolColor,#D9AA3F) 10%,transparent);
  box-shadow:none;
}

.landingSchoolIndex{
  color:rgba(243,236,226,.32);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.7rem;
  font-style:italic;
  line-height:.8;
}

.landingSchoolCopy{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}

.landingSchoolName,
body.theme-light .landingSchoolName{
  color:var(--schoolColor,#fff);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.6rem;
  font-weight:400;
  line-height:1;
  letter-spacing:0;
  text-shadow:none;
}

.landingSchoolDesc{
  max-width:62ch;
  color:rgba(243,236,226,.55);
  font-size:.88rem;
  line-height:1.35;
}

.landingSchoolMeta,
body.theme-light .landingSchoolMeta{
  display:flex;
  align-items:center;
  gap:18px;
  margin:0;
  padding:0;
  color:rgba(243,236,226,.42);
  background:none;
  border:0;
  font-family:'Space Grotesk',monospace;
}

.landingSchoolCount{
  min-width:48px;
  text-align:right;
}

.landingSchoolMeta .landingCount{
  display:block;
  color:var(--schoolColor,#fff);
  font-size:1.04rem;
  font-weight:600;
  line-height:1;
}

.landingSchoolMeta .landingCountLabel{
  display:block;
  margin-top:4px;
  color:rgba(243,236,226,.42);
  font-size:.58rem;
  font-weight:400;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.landingSchoolArrow{
  color:rgba(243,236,226,.32);
  font-size:1.2rem;
  line-height:1;
  transition:color .16s ease, transform .16s ease;
}

.landingSchool:hover .landingSchoolArrow{
  color:var(--schoolColor,#fff);
  transform:translateX(3px);
}

.landingEmpty{
  display:none;
  margin:40px 4px;
  color:rgba(243,236,226,.45);
  font-family:'Space Grotesk',monospace;
  font-size:.82rem;
}

.landingEmpty.is-visible{
  display:block;
}

@media (max-width:900px){
  .landingOverlay{
    overflow-y:auto;
  }

  #landingOverlay .landingShell{
    display:block;
    height:auto;
    min-height:100%;
  }

  .landingMasthead{
    min-height:min(660px,100svh);
    padding:30px clamp(22px,6vw,48px);
    border-right:0;
    border-bottom:1px solid var(--landing-line);
  }

  .landingIndex{
    overflow:visible;
  }

  .landingIndexHeader{
    top:0;
  }
}

@media (max-width:560px){
  .landingMasthead{
    min-height:auto;
    justify-content:flex-start;
    gap:0;
    padding-top:24px;
    padding-bottom:22px;
  }

  .landingHero{
    margin-top:clamp(48px,8svh,64px);
  }

  .landingKicker{
    margin-bottom:14px;
  }

  .landingBrandField{
    display:none;
  }

  .landingH1{
    max-width:100%;
    font-size:clamp(2.2rem,9vw,2.4rem);
    line-height:.94;
  }

  .landingLead{
    max-width:100%;
    margin-top:18px;
    font-size:1rem;
    line-height:1.45;
  }

  .landingStats{
    gap:18px;
    margin-top:24px;
  }

  .landingStat{
    min-width:0;
  }

  .landingSearch{
    margin-top:24px;
  }

  .landingFooter{
    margin-top:24px;
  }

  .landingGrid{
    padding-inline:14px;
  }

  .landingIndexHeader{
    padding-inline:18px;
  }

  .landingSchool{
    grid-template-columns:34px minmax(0,1fr);
    gap:13px;
    padding:18px 8px 18px 12px;
  }

  .landingSchoolMeta{
    grid-column:2;
    justify-content:flex-start;
  }

  .landingSchoolCount{
    min-width:0;
    text-align:left;
  }
}

/* =========================
   Premium dark editorial redesign
   ========================= */

html,
body{
  background:#070B10 !important;
}

body{
  color:rgba(255,255,255,0.86);
  background:
    linear-gradient(180deg, #070B10 0%, #080D12 58%, #05080C 100%) !important;
  font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
  font-feature-settings:"cv02","cv03","cv04","cv11";
}

.panel{
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.035);
  box-shadow:0 20px 60px rgba(0,0,0,0.35);
  backdrop-filter:blur(16px) saturate(112%);
  -webkit-backdrop-filter:blur(16px) saturate(112%);
}

.panel::before{
  background:none;
  animation:none;
}

.panel.left{
  background:
    linear-gradient(180deg, rgba(7,11,16,0.98) 0%, rgba(13,20,26,0.96) 100%) !important;
  border-right:1px solid rgba(255,255,255,0.06);
}

.panel.left .leftTopSticky{
  background:linear-gradient(180deg, rgba(7,11,16,0.98), rgba(10,15,21,0.92));
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}

.title{
  font-weight:800;
  letter-spacing:-0.03em;
}

.t-eyebrow,
.mi-sectionLabel,
.modelPanel .dim-title,
.modelPanel .mp-section h4,
.school-eyebrow{
  font-size:11px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.48);
}

.t-main{
  font-weight:800;
  letter-spacing:-0.03em;
}

.t-main::before{
  color:var(--schoolColor, var(--premiumAccent));
}

#countLine .count-n,
#countLine .count-school{
  color:var(--schoolColor, var(--premiumAccent));
}

select,
.typeFilterSelect{
  border:1px solid rgba(255,255,255,0.08) !important;
  background:rgba(255,255,255,0.04) !important;
  color:rgba(255,255,255,0.84) !important;
  border-radius:12px;
  font-weight:600;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);
  transition:border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

select:focus,
.typeFilterSelect:focus{
  border-color:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 48%, rgba(255,255,255,0.18)) !important;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 14%, transparent) !important;
}

/* El buscador conserva el acabado editorial frente al skin global de selects. */
.panel.left .schoolControls select,
.panel.left .typeFilterSelect{
  appearance:auto !important;
  -webkit-appearance:auto !important;
  border-color:rgba(244,238,228,0.12) !important;
  background:#15161a !important;
  color:#f4eee4 !important;
  padding-right:12px !important;
}
.panel.left .schoolControls select:hover,
.panel.left .typeFilterSelect:hover{
  border-color:rgba(244,238,228,0.22) !important;
  background:#191a1f !important;
}
.panel.left .schoolControls select:focus,
.panel.left .typeFilterSelect:focus{
  border-color:rgba(244,238,228,0.38) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045),
    0 0 0 2px rgba(244,238,228,0.06) !important;
}

.modelsList{
  gap:12px;
}

.mi-item,
.mi-item.is-marco{
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.06);
  background:rgba(255,255,255,0.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.035);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transition:all 180ms ease;
}

.mi-item:hover,
.mi-item.is-marco:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.052);
  box-shadow:0 14px 32px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.05);
}

.mi-item.active,
.mi-item.is-marco.active{
  border:1px solid color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 65%, rgba(255,255,255,0.14));
  background:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 11%, rgba(255,255,255,0.035));
  box-shadow:0 0 30px color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 13%, transparent), inset 0 1px 0 rgba(255,255,255,0.08);
}

.mi-title{
  color:rgba(255,255,255,0.92);
  font-weight:700;
  letter-spacing:-0.01em;
}

.mi-sub{
  color:rgba(255,255,255,0.58);
  font-weight:500;
}

.mi-year,
.pill{
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.04);
  color:rgba(255,255,255,0.70);
}

.panel.right{
  border-radius:24px;
  border:1px solid rgba(255,255,255,0.08);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 9%, transparent), transparent 32%),
    rgba(255,255,255,0.025) !important;
  box-shadow:0 24px 80px rgba(0,0,0,0.42);
  backdrop-filter:blur(16px) saturate(112%);
  -webkit-backdrop-filter:blur(16px) saturate(112%);
}

.modelPanel{
  padding:40px;
  color:rgba(255,255,255,0.72);
  font-size:14.5px;
  line-height:1.6;
}

.modelPanel .mp-tag{
  padding:0;
  margin-bottom:12px;
  border:0 !important;
  background:transparent;
  color:var(--schoolColor, var(--premiumAccent)) !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.01em;
  text-transform:none;
}

.modelPanel .mp-title{
  max-width:650px;
  margin:6px 0 22px;
  color:rgba(255,255,255,0.96);
  font-size:clamp(34px, 4.4vw, 40px);
  font-weight:750;
  line-height:0.98;
  letter-spacing:-0.04em;
  text-shadow:0 18px 44px rgba(0,0,0,0.42);
}

.modelPanel .mp-modelHero{
  position:relative;
  overflow:hidden;
  min-height:clamp(330px, 35vw, 480px);
  margin:-40px -40px 30px;
  padding:56px 40px 96px;
  border-bottom:1px solid rgba(255,255,255,0.08);
  background:transparent;
}

.modelPanel .mp-modelHero::before{
  content:"";
  position:absolute;
  inset:0 0 -420px 0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.84) 24%, rgba(0,0,0,0.42) 44%, rgba(0,0,0,0) 62%, rgba(0,0,0,0) 100%);
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 48%, rgba(0,0,0,0.56) 72%, rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 48%, rgba(0,0,0,0.56) 72%, rgba(0,0,0,0) 100%);
}

.modelPanel .mp-modelHero.has-life-bg::after{
  display:none;
}

.modelPanel .mp-modelHeroBg{
  position:absolute;
  inset:0 0 auto 0;
  z-index:0;
  width:100%;
  height:calc(100% + 420px);
  display:block;
  object-fit:cover;
  object-position:center top;
  opacity:1;
  filter:saturate(.96) contrast(1.02) brightness(1);
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 34%, rgba(0,0,0,0.74) 54%, rgba(0,0,0,0.34) 72%, rgba(0,0,0,0.10) 88%, rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 34%, rgba(0,0,0,0.74) 54%, rgba(0,0,0,0.34) 72%, rgba(0,0,0,0.10) 88%, rgba(0,0,0,0) 100%);
}

@media (min-width: 981px) and (max-width: 1280px){
  .modelPanel .mp-modelHeroBg{
    object-position:38% top;
  }
}

.modelPanel .mp-modelHeroContent{
  position:relative;
  z-index:2;
  max-width:min(760px, 72%);
  padding-top:10px;
}

.modelPanel .mp-modelHero .mp-title{
  max-width:820px;
  margin-top:16px;
  margin-bottom:18px;
  font-size:clamp(38px, 5.4vw, 60px);
  line-height:.98;
}

.modelPanel .mp-modelHero .mp-meta{
  margin-bottom:0;
}

.modelPanel .mp-modelHero .mp-author-wrap{
  margin-bottom:16px;
}

.modelPanel .mp-modelHero.has-life-bg .mp-author-photo{
  display:none;
}

.modelPanel .mp-modelHero .mp-tag{
  color:var(--schoolColor, var(--premiumAccent)) !important;
}

.modelPanel .mp-modelHero.has-life-bg{
  overflow:visible;
  min-height:0;
  padding-bottom:118px;
  margin-bottom:-82px;
  border-bottom:0;
}

.modelPanel .mp-modelHero.has-life-bg + .mp-quote{
  position:relative;
  z-index:3;
  margin-top:0;
  margin-bottom:22px;
}

.modelPanel .mp-modelMapCard{
  position:relative;
  display:flex;
  justify-content:flex-end;
  height:auto;
  min-height:0;
  overflow:hidden;
  margin:0 58px 0 0;
  border-left:0;
  isolation:isolate;
  pointer-events:none;
  align-self:start;
}

.modelPanel .mp-modelMapCard::before{
  display:none;
}

.modelPanel .mp-mapMedallion{
  position:relative;
  width:min(350px, 100%);
  aspect-ratio:1;
  overflow:hidden;
  border-radius:999px;
  border:1px solid rgba(190,215,232,0.10);
  background:radial-gradient(circle at 58% 44%, rgba(255,255,255,0.045), rgba(255,255,255,0.012) 62%, rgba(255,255,255,0) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 20px 44px rgba(0,0,0,0.16);
}

.modelPanel .mp-mapMedallion::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(circle at 56% 42%, transparent 0%, transparent 48%, rgba(7,11,16,0.18) 74%, rgba(7,11,16,0.50) 100%),
    linear-gradient(90deg, rgba(7,11,16,0.36), transparent 36%);
}

.modelPanel .mp-modelMapCard .mp-mapbg{
  position:absolute;
  inset:-22%;
  width:auto;
  height:auto;
  opacity:1;
  mix-blend-mode:screen;
  z-index:0;
  border-radius:0;
  -webkit-mask-image:none;
  mask-image:none;
  -webkit-mask-composite:source-over;
  mask-composite:add;
}

.modelPanel .mp-modelMapCard .mp-mapbg .land path{
  fill:rgba(188,214,222,0.22);
  stroke:rgba(188,226,218,0.30);
}

.modelPanel .mp-modelMapCard .mp-mapbg .graticule{
  opacity:0.24;
}

.modelPanel .mp-modelMapCard .mp-mapbg .mini-halo{
  opacity:0.78;
}

.modelPanel .mp-modelMapCard .mp-mapbg::after{
  display:none;
}

.modelPanel .mp-mapPlace{
  display:none;
}

.modelPanel .mp-mapPlaceArc{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}

.modelPanel .mp-mapPlaceArc text{
  fill:rgba(245,248,250,0.90);
  font-size:4.2px;
  font-weight:800;
  letter-spacing:.03em;
  text-shadow:0 2px 8px rgba(0,0,0,0.82);
}

.mp-author-wrap{
  gap:14px;
  margin:0 0 14px;
}

.mp-author-photo{
  width:62px;
  height:62px;
  border:1px solid rgba(255,255,255,0.16);
  box-shadow:0 0 20px color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 14%, transparent), 0 12px 30px rgba(0,0,0,0.36);
  background:rgba(255,255,255,0.04);
}

.mp-author-name{
  font-size:16px;
  font-weight:700;
  letter-spacing:-0.02em;
  color:rgba(255,255,255,0.92);
}

.mp-author-part{
  color:rgba(255,255,255,0.70);
}

.mp-author-part.is-active{
  color:rgba(255,255,255,0.94);
}

.modelPanel .mp-meta{
  gap:8px;
  margin:0 0 22px;
}

.modelPanel .mp-pill{
  padding:5px 11px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:999px;
  background:rgba(255,255,255,0.04);
  color:rgba(255,255,255,0.70);
  font-size:11px;
  font-weight:600;
}

.modelPanel .mp-quote{
  position:relative;
  margin:18px 0 18px;
  padding:0 0 0 38px;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(255,255,255,0.88);
  font-size:17px;
  font-weight:600;
  line-height:1.42;
  max-width:760px;
}

.modelPanel .mp-quote::before{
  content:"“";
  position:absolute;
  left:0;
  top:-10px;
  color:var(--schoolColor, var(--premiumAccent));
  font-size:42px;
  line-height:1;
  opacity:0.78;
}

.modelPanel .mp-quote::after{
  content:"";
}

.modelPanel .mp-desc{
  max-width:820px;
  margin-top:12px;
  color:rgba(255,255,255,0.72);
  font-size:14.5px;
  line-height:1.65;
}

.modelPanel .mp-section{
  margin-top:32px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,0.08);
}

.modelPanel .ep-ficha{
  width:100%;
  max-width:none;
}

.modelPanel .ep-kicker{
  display:block;
  margin:2px 0 8px;
  color:rgba(255,255,255,0.64);
  font-size:12px;
  font-weight:800;
  letter-spacing:.4px;
  text-transform:uppercase;
}

.modelPanel .ep-brief{
  max-width:860px;
  margin:10px 0 0;
  color:rgba(255,255,255,0.80);
  font-size:15px;
  line-height:1.6;
}

.modelPanel .ep-chipList{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.modelPanel .ep-chip{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:999px;
  background:rgba(255,255,255,0.07);
  color:#e7edf5;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}

.modelPanel button.ep-chip{
  cursor:pointer;
  font-family:inherit;
}

.modelPanel button.ep-chip:hover{
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 65%, #ffffff 10%);
}

.modelPanel .ep-authorGrid{
  display:flex;
  flex-wrap:wrap;
  gap:18px 34px;
  align-items:flex-start;
}

.modelPanel .ep-authorGroup{
  min-width:min(210px, 100%);
  max-width:360px;
}

.modelPanel .ep-authorTitle{
  margin:0 0 6px;
  color:#fff;
  font-size:13px;
  font-weight:850;
}

.modelPanel .ep-authorText{
  margin:0;
  color:rgba(255,255,255,0.72);
  font-size:13px;
  line-height:1.6;
  white-space:normal;
}

.modelPanel .ep-authorName{
  font-weight:650;
}

.modelPanel .ep-authorSep{
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 62%, rgba(255,255,255,0.42));
  padding-right:6px;
}

.modelPanel .ep-section--question{
  position:relative;
  padding-top:30px;
}

.modelPanel .ep-section--question::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:min(160px, 34%);
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--schoolColor, #D9AA3F), transparent);
  box-shadow:0 0 22px color-mix(in srgb, var(--schoolColor, #D9AA3F) 44%, transparent);
}

.modelPanel .ep-questionText{
  max-width:980px;
  margin:0;
  color:#fff;
  font-size:clamp(23px, 2.1vw, 34px);
  line-height:1.18;
  font-weight:850;
  letter-spacing:0;
}

.modelPanel .ep-questionText::before{
  content:"\201C";
  display:block;
  height:30px;
  margin:2px 0 2px;
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 72%, #ffffff 16%);
  font-family:Georgia, "Times New Roman", serif;
  font-size:58px;
  line-height:.72;
  font-weight:700;
}

.modelPanel .ep-conceptions{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
}

.modelPanel .ep-conceptCard{
  position:relative;
  min-height:390px;
  overflow:visible;
  padding:74px 26px 28px;
  border:1px solid rgba(255,255,255,0.22);
  border-radius:8px;
  background:rgba(8,13,18,0.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), 0 18px 44px rgba(0,0,0,0.26);
}

.modelPanel .ep-conceptBg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:.46;
  border-radius:8px;
}

.modelPanel .ep-conceptCard::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg, rgba(5,8,12,0.08) 0%, rgba(5,8,12,0.44) 38%, rgba(5,8,12,0.88) 100%),
    linear-gradient(90deg, rgba(5,8,12,0.36), rgba(5,8,12,0.02) 58%);
  border-radius:8px;
  pointer-events:none;
}

.modelPanel .ep-conceptCard::after{
  content:"";
  position:absolute;
  top:34px;
  left:26px;
  z-index:2;
  width:28px;
  height:3px;
  border-radius:999px;
  background:var(--schoolColor, #D9AA3F);
  box-shadow:0 0 18px color-mix(in srgb, var(--schoolColor, #D9AA3F) 64%, transparent);
}

.modelPanel .ep-conceptBody{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.modelPanel .ep-conceptTitle{
  max-width:12ch;
  margin:0 0 22px;
  color:#fff;
  font-size:clamp(24px, 2.2vw, 30px);
  font-weight:850;
  line-height:1.08;
  letter-spacing:0;
  text-shadow:0 14px 28px rgba(0,0,0,0.5);
}

.modelPanel .ep-conceptSummary{
  max-width:26ch;
  margin:0 0 30px;
  color:var(--schoolColor, #D9AA3F);
  font-size:13px;
  font-weight:850;
  line-height:1.36;
  letter-spacing:0;
  text-shadow:0 10px 24px rgba(0,0,0,0.46);
}

.modelPanel .ep-conceptText{
  margin:0;
  color:rgba(255,255,255,0.82);
  font-size:14px;
  line-height:1.58;
  white-space:pre-wrap;
  overflow:visible;
  display:block;
  max-height:none;
  -webkit-line-clamp:unset;
  line-clamp:unset;
}

.modelPanel .ep-card{
  padding:14px;
  border:1px solid rgba(255,255,255,0.10);
  border-radius:8px;
  background:rgba(255,255,255,0.045);
}

.modelPanel .ep-cardTitle{
  margin:0 0 8px;
  color:#fff;
  font-size:13px;
  font-weight:850;
}

.modelPanel .ep-cardText,
.modelPanel .ep-itemText{
  margin:0;
  color:rgba(255,255,255,0.76);
  font-size:13px;
  line-height:1.6;
  white-space:pre-wrap;
}

@media (max-width: 1280px){
  .modelPanel .ep-conceptions{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px){
  .modelPanel .ep-conceptions{
    grid-template-columns:1fr;
  }

  .modelPanel .ep-conceptCard{
    min-height:340px;
    padding:68px 22px 24px;
  }

  .modelPanel .ep-conceptTitle{
    margin-bottom:18px;
  }

  .modelPanel .ep-conceptSummary{
    margin-bottom:24px;
  }
}

/* La ficha editorial interactiva prevalece sobre la antigua cuadrícula. */
#ep-section-conceptions .ep-conceptions{
  position:relative;
  display:block;
  min-width:0;
}
#ep-section-conceptions .ep-conceptCard{
  position:relative;
  display:none;
  align-items:center;
  min-height:clamp(430px,42vw,590px);
  overflow:hidden;
  padding:clamp(30px,4.5vw,58px);
  border:1px solid rgba(243,236,226,.14);
  border-radius:16px;
  background:#151014;
  box-shadow:0 34px 80px rgba(0,0,0,.48);
}
#ep-section-conceptions .ep-conceptBg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  border-radius:0;
  object-fit:cover;
  object-position:center;
  opacity:1;
  filter:saturate(.9) contrast(1.04) brightness(.86);
  transform:scale(1.015);
}
#ep-section-conceptions .ep-conceptCard::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:0;
  background:
    linear-gradient(95deg,rgba(11,10,12,.99) 0%,rgba(11,10,12,.94) 33%,rgba(11,10,12,.70) 51%,rgba(11,10,12,.24) 70%,transparent 91%),
    linear-gradient(to top,rgba(11,10,12,.56),transparent 42%);
  pointer-events:none;
}
#ep-section-conceptions .ep-conceptCard::after{
  display:none;
}
#ep-section-conceptions .ep-conceptBody{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  width:min(610px,67%);
  min-height:0;
  text-shadow:0 2px 18px rgba(0,0,0,.78);
}
#ep-section-conceptions .ep-conceptTitle{
  max-width:13ch;
  margin:0 0 20px;
  color:#f8f2e9;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(2.15rem,4vw,3.45rem);
  font-weight:400;
  line-height:1;
  letter-spacing:-.01em;
}
#ep-section-conceptions .ep-conceptSummary{
  max-width:32ch;
  margin:0 0 18px;
  color:color-mix(in srgb,var(--ed-accent,#D9AA3F) 72%,#ffffff 28%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.2rem,1.8vw,1.55rem);
  font-weight:400;
  line-height:1.18;
}
#ep-section-conceptions .ep-conceptText{
  margin:0;
  color:rgba(243,236,226,.86);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:clamp(.96rem,1.05vw,1.06rem);
  line-height:1.68;
  white-space:pre-wrap;
  overflow:visible;
  display:block;
  max-height:none;
}
#ep-section-conceptions .ep-conception-radio[data-key="verdad"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="verdad"],
#ep-section-conceptions .ep-conception-radio[data-key="sujeto"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="sujeto"],
#ep-section-conceptions .ep-conception-radio[data-key="cambio"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="cambio"],
#ep-section-conceptions .ep-conception-radio[data-key="terapeuta"]:checked ~ .ep-conceptionsEditorial .ep-conceptCard[data-key="terapeuta"]{
  display:flex;
}

@media (max-width:720px){
  #ep-section-conceptions .ep-conceptCard{
    align-items:flex-end;
    min-height:560px;
    padding:30px 22px;
  }
  #ep-section-conceptions .ep-conceptCard::before{
    background:
      linear-gradient(180deg,rgba(11,10,12,.18),rgba(11,10,12,.78) 45%,rgba(11,10,12,.99) 100%),
      linear-gradient(to right,rgba(11,10,12,.45),transparent 78%);
  }
  #ep-section-conceptions .ep-conceptBody{
    width:100%;
  }
}

.modelPanel .ep-items{
  display:grid;
  gap:10px;
}

.modelPanel .ep-notice{
  padding:16px;
  border:1px solid color-mix(in srgb, var(--schoolColor, #D9AA3F) 48%, rgba(255,255,255,0.14));
  border-radius:8px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--schoolColor, #D9AA3F) 18%, transparent), rgba(255,255,255,0.045));
}

.modelPanel .ep-biblio{
  margin:0;
  padding-left:18px;
}

.modelPanel .ep-biblio li{
  margin:0 0 8px;
}

.modelPanel .mp-changeTheory,
.modelPanel .mp-contextOrigin{
  margin-top:30px;
  margin-bottom:42px;
  padding-top:32px;
}

.modelPanel .mp-contextOrigin{
  margin-top:6px;
}

.modelPanel .mp-changeTheory + .mp-contextOrigin{
  margin-top:-16px;
}

.modelPanel .mp-contextOrigin + .mp-acc{
  margin-top:56px;
}

.modelPanel .mp-contextOrigin-card{
  max-width:1240px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

.modelPanel .mp-contextOrigin-card::before{
  left:0;
  top:0;
  bottom:auto;
  width:2px;
  height:76px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--schoolColor, #f0cf62), rgba(116,178,207,0.36));
  opacity:.9;
}

.modelPanel .mp-contextOrigin-card::after{
  display:none;
}

body.theme-light .modelPanel .mp-contextOrigin-card{
  border:0;
  background:transparent;
  box-shadow:none;
}

body.theme-light .modelPanel .mp-contextOrigin-card{
  border:0;
  background:transparent;
  box-shadow:none;
}

.modelPanel .mp-contextOrigin-head,
.modelPanel .mp-contextOrigin-title,
.modelPanel .mp-contextOrigin-subtitle,
.modelPanel .mp-contextOrigin-grid{
  margin-left:24px;
}

.modelPanel .mp-changeTheory-card,
.modelPanel .mp-contextOrigin-card{
  position:relative;
  overflow:hidden;
  max-width:1160px;
  padding:28px 32px 30px 34px;
  border:1px solid rgba(190,215,232,0.12);
  border-radius:8px;
  background:
    radial-gradient(560px 260px at 82% -18%, rgba(88,153,190,0.16), transparent 62%),
    radial-gradient(420px 220px at 0% 10%, var(--panelGlow, rgba(255,216,94,0.12)), transparent 70%),
    linear-gradient(145deg, rgba(255,255,255,0.068), rgba(255,255,255,0.018) 54%, rgba(80,126,156,0.045)),
    rgba(12,18,24,0.50);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.055),
    inset 0 -24px 54px rgba(4,9,14,0.16),
    0 22px 54px rgba(0,0,0,0.20);
}

.modelPanel .mp-changeTheory-card::before,
.modelPanel .mp-contextOrigin-card::before{
  content:"";
  position:absolute;
  left:0;
  top:28px;
  bottom:28px;
  width:3px;
  border-radius:0 999px 999px 0;
  background:linear-gradient(180deg, var(--schoolColor, #f0cf62), rgba(116,178,207,0.55));
  opacity:.72;
}

.modelPanel .mp-changeTheory-card::after{
  content:"\201C";
  position:absolute;
  right:28px;
  top:10px;
  color:rgba(159,204,229,0.095);
  font-family:Georgia, "Times New Roman", serif;
  font-size:118px;
  line-height:1;
  pointer-events:none;
}

.modelPanel .mp-contextOrigin-card::after{
  content:"";
  position:absolute;
  right:30px;
  top:24px;
  width:180px;
  height:180px;
  border:1px solid rgba(159,204,229,0.075);
  border-radius:999px;
  background:radial-gradient(circle, rgba(159,204,229,0.06), transparent 68%);
  pointer-events:none;
}

.modelPanel .mp-changeTheory-card > *,
.modelPanel .mp-contextOrigin-card > *{
  position:relative;
  z-index:1;
}

.modelPanel .mp-contextOrigin-card{
  max-width:1240px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

.modelPanel .mp-contextOrigin-card::before{
  left:0;
  top:0;
  bottom:auto;
  width:2px;
  height:76px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--schoolColor, #f0cf62), rgba(116,178,207,0.36));
  opacity:.9;
}

.modelPanel .mp-contextOrigin-card::after{
  display:none;
}

body.theme-light .modelPanel .mp-contextOrigin-card{
  border:0;
  background:transparent;
  box-shadow:none;
}

.modelPanel .mp-contextOrigin-head,
.modelPanel .mp-contextOrigin-title,
.modelPanel .mp-contextOrigin-subtitle,
.modelPanel .mp-contextOrigin-grid{
  margin-left:24px;
}

.modelPanel .mp-changeTheory-eyebrow{
  color:rgba(226,234,240,0.58);
}

.modelPanel .mp-changeTheory-head,
.modelPanel .mp-contextOrigin-head{
  margin-bottom:14px;
}

.modelPanel .mp-contextOrigin-head{
  display:flex;
  align-items:center;
  gap:14px;
}

.modelPanel .mp-changeTheory-eyebrow,
.modelPanel .mp-contextOrigin-eyebrow{
  color:var(--schoolColor, rgba(240,207,98,0.88));
  flex:0 0 auto;
  font-size:11px;
  font-weight:900;
  letter-spacing:0;
  line-height:1;
  text-transform:uppercase;
}

.modelPanel .mp-changeTheory-head{
  display:flex;
  align-items:center;
  gap:14px;
}

.modelPanel .mp-changeTheory-eyebrow{
  color:rgba(226,234,240,0.58);
}

.modelPanel .mp-changeTheory-rule,
.modelPanel .mp-contextOrigin-rule{
  display:block;
  height:1px;
  min-width:72px;
  flex:1 1 auto;
  background:linear-gradient(90deg, rgba(255,255,255,0.18), rgba(117,168,198,0.22), transparent);
}

.modelPanel .mp-contextOrigin-title{
  color:var(--text);
  font-family:Georgia, "Times New Roman", serif;
  font-size:25px;
  font-weight:800;
  line-height:1.08;
  margin:0;
  text-transform:uppercase;
}

.modelPanel .mp-contextOrigin-subtitle{
  color:rgba(226,234,240,0.58);
  font-size:14px;
  font-weight:600;
  line-height:1.4;
  margin-top:8px;
}

.modelPanel .mp-contextOrigin-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:16px;
}

.modelPanel .mp-contextOrigin-block{
  position:relative;
  min-width:0;
  min-height:360px;
  overflow:hidden;
  padding:0;
  border:1px solid rgba(190,215,232,0.12);
  border-radius:8px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.016)),
    rgba(8,13,18,0.38);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.045),
    inset 0 -20px 40px rgba(4,9,14,0.12),
    0 16px 34px rgba(0,0,0,0.13);
}

.modelPanel .mp-contextOrigin-media{
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(260px 150px at 78% 0%, rgba(159,204,229,0.13), transparent 62%),
    linear-gradient(135deg, rgba(255,255,255,0.05), rgba(255,255,255,0.015));
}

.modelPanel .mp-contextOrigin-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  opacity:.9;
  filter:saturate(.94) contrast(1.02) brightness(1.04);
}

.modelPanel .mp-contextOrigin-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(6,10,14,0.03) 0%, rgba(6,10,14,0.12) 42%, rgba(6,10,14,0.38) 100%),
    linear-gradient(90deg, rgba(6,10,14,0.22), rgba(6,10,14,0.06) 62%, rgba(6,10,14,0.2));
  pointer-events:none;
}

.modelPanel .mp-contextOrigin-content{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:360px;
  margin-top:0;
  padding:142px 28px 34px;
  background:linear-gradient(180deg, rgba(8,13,18,0.00) 0%, rgba(8,13,18,0.02) 42%, rgba(8,13,18,0.42) 78%, rgba(8,13,18,0.76) 100%);
}

.modelPanel .mp-contextOrigin-blockTitle{
  display:block;
  margin:0 0 12px;
  color:#f5f8fa;
  font-size:25px;
  font-weight:800;
  line-height:1;
  text-shadow:0 2px 16px rgba(0,0,0,0.72);
}

.modelPanel .mp-contextOrigin-phrase{
  color:rgba(237,242,246,0.82);
  font-size:14.5px;
  font-weight:500;
  line-height:1.48;
  margin-top:0;
}

.modelPanel .mp-contextOrigin-narrative{
  color:rgba(237,242,246,0.82);
  font-size:14.5px;
  font-weight:500;
  line-height:1.48;
  margin-top:0;
  max-width:37rem;
}

.modelPanel .mp-contextOrigin-block::after{
  content:"\2192";
  position:absolute;
  right:24px;
  bottom:24px;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border:1px solid rgba(221,180,83,0.36);
  border-radius:999px;
  color:rgba(245,248,250,0.88);
  font-size:24px;
  font-weight:500;
  line-height:1;
  background:rgba(8,13,18,0.22);
  box-shadow:0 10px 24px rgba(0,0,0,0.22);
}

.modelPanel .mp-contextOrigin-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}

.modelPanel .mp-contextOrigin-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:22px;
  padding:3px 8px;
  border:1px solid rgba(190,215,232,0.12);
  border-radius:999px;
  background:rgba(255,255,255,0.045);
  color:rgba(226,234,240,0.74);
  font-size:11.5px;
  font-weight:800;
  line-height:1.25;
}

.modelPanel .mp-contextOrigin-block.is-trace{
  background:
    linear-gradient(145deg, rgba(255,255,255,0.052), rgba(86,134,164,0.045)),
    rgba(255,255,255,0.03);
}

.modelPanel .mp-contextOrigin-chain{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:10px;
}

.modelPanel .mp-contextOrigin-chainItem{
  color:rgba(226,234,240,0.74);
  font-size:12.5px;
  font-weight:750;
  line-height:1.35;
}

.modelPanel .mp-contextOrigin-chainLabel{
  display:block;
  color:rgba(226,234,240,0.42);
  font-size:10.5px;
  font-weight:900;
  line-height:1.2;
  margin-bottom:3px;
  text-transform:uppercase;
}

.modelPanel .mp-contextOrigin-arrow{
  color:rgba(159,204,229,0.36);
  font-size:15px;
  line-height:1;
}

.modelPanel .mp-contextOrigin{
  border-top:0;
  padding-top:44px;
}

.modelPanel .mp-contextOriginApple{
  max-width:1180px;
}

.modelPanel .mp-contextOriginApple .mp-contextOrigin-head,
.modelPanel .mp-contextOriginApple .mp-contextOrigin-title,
.modelPanel .mp-contextOriginApple .mp-contextOrigin-subtitle{
  margin-left:0;
}

.modelPanel .mp-contextOriginApple .mp-contextOrigin-head{
  align-items:center;
  margin-bottom:16px;
}

.modelPanel .mp-contextOriginApple .mp-contextOrigin-eyebrow{
  color:var(--schoolColor, rgba(240,207,98,0.88));
  font-size:11px;
  font-weight:900;
}

.modelPanel .mp-contextOriginApple .mp-contextOrigin-rule{
  max-width:320px;
}

.modelPanel .mp-contextOriginApple .mp-contextOrigin-title{
  color:rgba(245,248,250,0.94);
  font-family:Inter, system-ui, sans-serif;
  font-size:28px;
  font-weight:850;
  line-height:1.1;
  text-transform:none;
}

.modelPanel .mp-contextOriginApple .mp-contextOrigin-subtitle{
  color:rgba(226,234,240,0.64);
  font-size:15px;
  font-weight:500;
}

.modelPanel .mp-co-radio{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.modelPanel .mp-co-hero{
  position:relative;
  overflow:hidden;
  width:min(100%, 980px);
  aspect-ratio:2.45 / 1;
  margin-top:30px;
  margin-left:auto;
  margin-right:auto;
  border:1px solid rgba(190,215,232,0.16);
  border-radius:28px;
  background:rgba(255,255,255,0.035);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 34px 80px rgba(0,0,0,0.26);
}

.modelPanel .mp-co-image{
  position:absolute;
  inset:0;
  display:none;
}

.modelPanel .mp-co-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  opacity:.9;
  filter:saturate(.94) contrast(1.02) brightness(1.04);
}

.modelPanel .mp-co-image img.is-context-header-zoom{
  transform:scale(2);
  transform-origin:left center;
  object-position:left center;
}

.modelPanel .mp-co-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(4,8,12,0.03), rgba(4,8,12,0.1) 58%, rgba(4,8,12,0.32)),
    radial-gradient(520px 220px at 50% 92%, rgba(255,255,255,0.1), transparent 70%);
  pointer-events:none;
}

.modelPanel .mp-co-timeline{
  position:absolute;
  z-index:2;
  left:clamp(22px, 6vw, 72px);
  right:clamp(22px, 6vw, 72px);
  bottom:clamp(18px, 4.8vw, 38px);
  height:42px;
  pointer-events:none;
}

.modelPanel .mp-co-timelineTrack{
  position:absolute;
  left:0;
  right:0;
  top:18px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(236,244,246,0.46) 10%, rgba(236,244,246,0.56) 50%, rgba(236,244,246,0.46) 90%, transparent);
  box-shadow:0 0 18px rgba(168,218,214,0.12);
}

.modelPanel .mp-co-timelineTick{
  position:absolute;
  top:15px;
  width:1px;
  height:7px;
  border-radius:999px;
  background:rgba(236,244,246,0.34);
  transform:translateX(-50%);
}

.modelPanel .mp-co-timelineYear{
  position:absolute;
  top:-8px;
  transform:translateX(-50%);
  display:block;
  color:rgba(255,235,194,0.98);
  font-size:13px;
  font-weight:850;
  line-height:1;
  text-shadow:0 2px 10px rgba(0,0,0,0.72), 0 0 12px rgba(255,200,105,0.32);
}

.modelPanel .mp-co-timelineYear::after{
  content:"";
  position:absolute;
  left:50%;
  top:26px;
  width:11px;
  height:11px;
  border:2px solid rgba(255,236,197,0.96);
  border-radius:50%;
  background:rgba(255,200,105,0.98);
  box-shadow:0 0 0 6px rgba(255,200,105,0.16), 0 0 18px rgba(255,200,105,0.4);
  transform:translate(-50%, -50%);
}

.modelPanel .mp-co-tabs{
  display:grid;
  grid-template-columns:repeat(var(--co-count, 4), minmax(0, 1fr));
  overflow:hidden;
  max-width:860px;
  margin:40px auto 0;
  border:1px solid rgba(190,215,232,0.14);
  border-radius:999px;
  background:rgba(255,255,255,0.025);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 18px 52px rgba(0,0,0,0.20);
}

@media (max-width: 780px){
  .modelPanel .mp-co-hero{
    width:100%;
    aspect-ratio:1.45 / 1;
    border-radius:18px;
    margin-top:24px;
  }

  .modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-hero{
    width:min(100%, 360px);
    aspect-ratio:1 / 1;
  }

  .modelPanel .mp-co-tabs{
    max-width:none;
    margin-top:24px;
    border-radius:18px;
  }

  .modelPanel .mp-co-tab{
    min-height:42px;
    padding:0 8px;
    font-size:12.5px;
  }

  .modelPanel .mp-co-copy{
    margin-top:24px;
  }

  .modelPanel .mp-co-text{
    font-size:14.5px;
    line-height:1.72;
  }
}

.modelPanel .mp-co-tab{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 16px;
  color:rgba(235,239,243,0.74);
  cursor:pointer;
  font-size:14px;
  font-weight:700;
  line-height:1;
  user-select:none;
  transition:color .18s ease, background .18s ease, box-shadow .18s ease;
}

.modelPanel .mp-co-tab + .mp-co-tab{
  border-left:1px solid rgba(190,215,232,0.08);
}

.modelPanel .mp-co-copy{
  max-width:860px;
  margin:34px auto 0;
}

.modelPanel .mp-co-text{
  display:none;
  color:rgba(235,239,243,0.74);
  font-size:15px;
  font-weight:400;
  line-height:1.78;
}

.modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-hero{
  width:min(100%, 420px);
  aspect-ratio:1 / 1;
}

.modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-hero:has(.mp-co-image[data-key="vida"] img.is-life-author-image){
  width:min(100%, 980px);
  aspect-ratio:2.45 / 1;
}

@media (max-width: 780px){
  .modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-hero:has(.mp-co-image[data-key="vida"] img.is-life-author-image){
    width:100%;
    aspect-ratio:1.45 / 1;
  }
}

.modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-hero .mp-co-image[data-key="vida"],
.modelPanel .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-hero .mp-co-image[data-key="epoca"],
.modelPanel .mp-co-radio[data-key="problema"]:checked ~ .mp-co-hero .mp-co-image[data-key="problema"],
.modelPanel .mp-co-radio[data-key="influencias"]:checked ~ .mp-co-hero .mp-co-image[data-key="influencias"],
.modelPanel .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-hero .mp-co-image[data-key="estilo"],
.modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-copy .mp-co-text[data-key="vida"],
.modelPanel .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-copy .mp-co-text[data-key="epoca"],
.modelPanel .mp-co-radio[data-key="problema"]:checked ~ .mp-co-copy .mp-co-text[data-key="problema"],
.modelPanel .mp-co-radio[data-key="influencias"]:checked ~ .mp-co-copy .mp-co-text[data-key="influencias"],
.modelPanel .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-copy .mp-co-text[data-key="estilo"]{
  display:block;
}

.modelPanel .mp-co-radio[data-key="vida"]:checked ~ .mp-co-tabs .mp-co-tab[data-key="vida"],
.modelPanel .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-tabs .mp-co-tab[data-key="epoca"],
.modelPanel .mp-co-radio[data-key="problema"]:checked ~ .mp-co-tabs .mp-co-tab[data-key="problema"],
.modelPanel .mp-co-radio[data-key="influencias"]:checked ~ .mp-co-tabs .mp-co-tab[data-key="influencias"],
.modelPanel .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-tabs .mp-co-tab[data-key="estilo"]{
  color:rgba(255,224,168,0.96);
  background:linear-gradient(180deg, rgba(255,214,139,0.09), rgba(255,214,139,0.035));
  box-shadow:
    inset 0 0 0 1px rgba(255,205,121,0.42),
    inset 0 1px 0 rgba(255,255,255,0.05);
  border-radius:999px;
}

.modelPanel .mp-changeTheory-summary{
  color:var(--text);
  font-size:24px;
  font-weight:950;
  line-height:1.34;
  max-width:920px;
  text-wrap:balance;
}

.modelPanel .mp-changeTheory-layout{
  width:100%;
  max-width:none;
}

.modelPanel .mp-changeTheory-layout.has-map{
  display:grid;
  grid-template-columns:minmax(520px, 1fr) minmax(420px, 38%);
  gap:16px;
  align-items:stretch;
}

.modelPanel .mp-changeTheory-layout.has-map .mp-changeTheory-card{
  max-width:none;
  height:100%;
}

.modelPanel .mp-changeTheory-copy{
  min-width:0;
}

.modelPanel .mp-locationCard{
  position:relative;
  width:100%;
  max-width:none;
  min-height:100%;
  overflow:hidden;
  border:1px solid rgba(190,215,232,0.12);
  border-radius:8px;
  background:
    radial-gradient(520px 260px at 70% 10%, rgba(159,204,229,0.11), transparent 64%),
    linear-gradient(145deg, rgba(255,255,255,0.055), rgba(255,255,255,0.016)),
    rgba(12,18,24,0.50);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.055),
    inset 0 -24px 54px rgba(4,9,14,0.16),
    0 22px 54px rgba(0,0,0,0.20);
  pointer-events:none;
  isolation:isolate;
}

.modelPanel .mp-changeTheory-mapFrame{
  position:relative;
  width:100%;
  aspect-ratio:1.42 / 1;
  overflow:hidden;
  height:100%;
  min-height:320px;
  border-radius:inherit;
  border:0;
  background:
    radial-gradient(320px 220px at 64% 36%, rgba(255,255,255,0.06), transparent 68%),
    linear-gradient(145deg, rgba(255,255,255,0.052), rgba(255,255,255,0.018));
  box-shadow:none;
  isolation:isolate;
}

.modelPanel .mp-changeTheory-mapFrame::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(7,11,16,0.04), rgba(7,11,16,0.34)),
    radial-gradient(circle at 58% 42%, transparent 0%, transparent 56%, rgba(7,11,16,0.42) 100%);
}

.modelPanel .mp-locationCard .mp-mapbg{
  position:absolute;
  inset:-14%;
  width:auto;
  height:auto;
  opacity:1;
  mix-blend-mode:screen;
  z-index:0;
  border-radius:0;
  -webkit-mask-image:none;
  mask-image:none;
  -webkit-mask-composite:source-over;
  mask-composite:add;
}

.modelPanel .mp-locationCard .mp-mapbg .land path{
  fill:rgba(188,214,222,0.22);
  stroke:rgba(188,226,218,0.30);
}

.modelPanel .mp-locationCard .mp-mapbg .graticule{
  opacity:0.24;
}

.modelPanel .mp-locationCard .mp-mapbg .mini-halo{
  opacity:0.78;
}

.modelPanel .mp-locationCard .mp-mapbg::after{
  display:none;
}

.modelPanel .mp-locationOverlay{
  position:absolute;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:3;
  padding:0;
  color:rgba(245,248,250,0.94);
  text-shadow:0 2px 16px rgba(0,0,0,0.78);
}

.modelPanel .mp-locationTitle{
  color:var(--schoolColor, rgba(240,207,98,0.88));
  font-size:11px;
  font-weight:900;
  line-height:1;
  letter-spacing:0;
  text-transform:uppercase;
}

.modelPanel .mp-locationPlace{
  margin-top:8px;
  color:#f5f8fa;
  font-size:24px;
  font-weight:850;
  line-height:1.05;
  letter-spacing:-0.03em;
}

.modelPanel .mp-changeTheory-text{
  color:rgba(226,234,240,0.72);
  font-size:15px;
  line-height:1.78;
  margin-top:18px;
  max-width:880px;
  white-space:pre-wrap;
}

@media (max-width: 980px){
  .modelPanel .mp-changeTheory-layout.has-map{
    grid-template-columns:1fr;
    gap:12px;
  }

  .modelPanel .mp-changeTheory-mapFrame{
    height:auto;
    min-height:0;
    aspect-ratio:1 / 1;
  }
}

@media (max-width: 720px){
  .modelPanel .mp-changeTheory,
  .modelPanel .mp-contextOrigin{
    margin-top:24px;
    margin-bottom:28px;
    padding-top:24px;
  }

  .modelPanel .mp-changeTheory + .mp-contextOrigin{
    margin-top:0;
  }

  .modelPanel .mp-contextOrigin + .mp-acc{
    margin-top:34px;
  }

  .modelPanel .mp-changeTheory-card,
  .modelPanel .mp-contextOrigin-card{
    padding:24px 20px 24px 22px;
  }

  .modelPanel .mp-changeTheory-layout,
  .modelPanel .mp-changeTheory-layout.has-map,
  .modelPanel .mp-changeTheory-card,
  .modelPanel .mp-locationCard{
    width:100%;
    max-width:none;
  }

  .modelPanel .mp-changeTheory-layout.has-map{
    grid-template-columns:1fr;
    gap:12px;
    align-items:stretch;
  }

  .modelPanel .mp-locationCard{
    justify-self:stretch;
  }

  .modelPanel .mp-changeTheory-mapFrame{
    height:auto;
    min-height:0;
    aspect-ratio:1 / 1;
  }

  .modelPanel .mp-locationOverlay{
    left:16px;
    right:16px;
    bottom:16px;
  }

  .modelPanel .mp-changeTheory-summary{
    font-size:20px;
  }

  .modelPanel .mp-contextOrigin-grid{
    grid-template-columns:1fr;
  }

  .modelPanel .mp-contextOrigin-block,
  .modelPanel .mp-contextOrigin-block.is-estilo{
    grid-column:1 / -1;
    min-height:340px;
  }

  .modelPanel .mp-contextOrigin-content{
    min-height:340px;
    padding:128px 20px 26px;
  }

  .modelPanel .mp-contextOrigin-blockTitle{
    font-size:24px;
  }

  .modelPanel .mp-contextOrigin-block::after{
    width:36px;
    height:36px;
    right:18px;
    bottom:18px;
    font-size:22px;
  }
}

@media (min-width: 721px) and (max-width: 1100px){
  .modelPanel .mp-contextOrigin-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .modelPanel .mp-contextOrigin-block,
  .modelPanel .mp-contextOrigin-block.is-estilo{
    grid-column:auto;
  }
}

.modelPanel .procesos-grid{
  gap:20px;
}

.modelPanel .grafica-procesos,
.modelPanel .dim-card{
  border-radius:20px;
  border:1px solid rgba(255,255,255,0.07);
  background:rgba(255,255,255,0.04);
  box-shadow:0 20px 52px rgba(0,0,0,0.26), inset 0 1px 0 rgba(255,255,255,0.04);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}

.modelPanel .grafica-procesos{
  gap:10px;
  padding:18px;
}

.modelPanel .dim-card{
  padding:18px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 190px;
  grid-template-areas:
    "title title"
    "list pie"
    "reference reference";
  column-gap:24px;
  align-items:center;
}

.modelPanel .mp-influenceGraph{
  position:relative;
  container-type:inline-size;
  margin-top:14px;
  margin-bottom:28px;
  padding:22px 24px 26px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.048) 1px, transparent 0) 0 0 / 18px 18px,
    rgba(9,13,18,.72);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 16px 42px rgba(0,0,0,.16);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  overflow:hidden;
}

.modelPanel .mp-influenceGraph::before{
  display:none;
}

.modelPanel .mp-influenceGraph > *{
  position:relative;
  z-index:1;
}

.modelPanel .mp-influenceGraph > .mp-influenceGraphDots{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  pointer-events:none;
}

.modelPanel .mp-influenceGraphHead{
  position:relative;
  display:block;
  min-height:13px;
  margin-bottom:30px;
}

.modelPanel .mp-influenceGraphTitle{
  margin:0;
  color:rgba(255,255,255,.52);
  font-size:11px;
  font-weight:650;
  letter-spacing:.12em;
  line-height:1.2;
  text-transform:uppercase;
}

.modelPanel .mp-influenceGraphLabel{
  position:absolute;
  top:0;
  transform:translateX(-50%);
  color:rgba(255,255,255,.42);
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.2;
  text-align:center;
  text-transform:uppercase;
  white-space:nowrap;
}

.modelPanel .mp-influenceGraphLabel.is-left{
  left:18%;
}

.modelPanel .mp-influenceGraphLabel.is-center{
  left:50%;
  color:rgba(255,255,255,.50);
}

.modelPanel .mp-influenceGraphLabel.is-right{
  left:82%;
}

.modelPanel .mp-influenceGraphMeta{
  color:rgba(255,255,255,.45);
  font-size:11px;
  font-weight:500;
  white-space:nowrap;
}

.modelPanel .mp-influenceGraphStage{
  position:relative;
  min-height:318px;
}

.modelPanel .mp-influenceGraphSvg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}

.modelPanel .mp-influenceEdge{
  stroke:rgba(220, 230, 240, .48);
  stroke-width:1.05;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none;
  opacity:.86;
  vector-effect:non-scaling-stroke;
}

.modelPanel .mp-influenceEdge.is-down{
  stroke:rgba(232, 238, 245, .58);
  stroke-width:1.15;
}

.modelPanel .mp-influenceEdge.is-ep{
  stroke:rgba(220, 230, 240, .38);
  stroke-dasharray:5 6;
  stroke-dashoffset:1;
  opacity:.72;
}

.modelPanel .mp-influenceConnector{
  fill:rgba(226, 234, 242, .62);
  stroke:rgba(12, 17, 23, .72);
  stroke-width:.55;
  vector-effect:non-scaling-stroke;
}

.modelPanel .mp-influenceArrow{
  fill:rgba(220,230,240,.82);
  stroke:none;
}

.modelPanel .mp-influenceNode{
  position:absolute;
  left:var(--x);
  top:var(--y);
  z-index:2;
  width:min(178px, 34%);
  min-height:42px;
  display:grid;
  place-items:center;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.145);
  background:rgba(16,21,28,.68);
  color:rgba(245,248,252,.82);
  box-shadow:0 12px 28px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.045);
  transform:translate(-50%, -50%);
  text-align:center;
  font-size:10.8px;
  font-weight:500;
  line-height:1.26;
  transition:
    transform 160ms ease,
    z-index 0ms linear 160ms,
    border-color 160ms ease,
    background 160ms ease,
    box-shadow 160ms ease;
}

.modelPanel .mp-influenceNode:hover,
.modelPanel .mp-influenceNode:focus-visible{
  z-index:8;
  border-color:rgba(255,255,255,.28);
  background:rgba(20,26,34,.86);
  box-shadow:
    0 18px 42px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.08);
  transform:translate(-50%, -56%) scale(1.035);
  transition:
    transform 160ms ease,
    z-index 0ms,
    border-color 160ms ease,
    background 160ms ease,
    box-shadow 160ms ease;
}

.modelPanel .mp-influenceNode[data-action="open-influence-model"]{
  cursor:pointer;
}

.modelPanel .mp-influenceNode.is-center{
  width:min(210px, 40%);
  min-height:58px;
  border-color:rgba(255,255,255,.30);
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.025)),
    rgba(18,24,32,.88);
  color:rgba(255,255,255,.96);
  font-size:11.2px;
  font-weight:650;
  letter-spacing:.01em;
  box-shadow:
    0 18px 38px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 0 0 1px rgba(255,255,255,.045);
}

.modelPanel .mp-influenceNode.is-epistemology{
  width:min(148px, 24%);
  border-color:rgba(255,255,255,.14);
  background:rgba(18,24,32,.64);
  color:rgba(245,248,252,.78);
}

.modelPanel .mp-influenceNode.is-empty{
  opacity:.58;
  border-style:dashed;
  font-weight:500;
}

.modelPanel .mp-influenceJustificationTooltip{
  position:absolute;
  left:0;
  top:0;
  z-index:24;
  width:min(420px, calc(100% - 24px));
  max-height:190px;
  overflow:auto;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:13px;
  background:rgba(11,16,23,.96);
  color:rgba(242,246,251,.86);
  box-shadow:
    0 22px 52px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.06);
  font-size:11.5px;
  line-height:1.55;
  pointer-events:auto;
  opacity:0;
  transform:translateY(5px);
  transition:opacity 140ms ease, transform 140ms ease;
}

.modelPanel .mp-influenceJustificationTooltip.is-on{
  opacity:1;
  transform:translateY(0);
}

.modelPanel .mp-influenceJustificationTooltip[hidden]{
  display:none;
}

.modelPanel .mp-influenceJustificationTooltip strong{
  display:block;
  margin-bottom:5px;
  color:rgba(255,255,255,.98);
  font-size:10px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.modelPanel .mp-influenceNode[data-has-justification="1"]::after{
  content:"";
  position:absolute;
  right:7px;
  top:7px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(255,255,255,.62);
  box-shadow:0 0 0 3px rgba(255,255,255,.07);
}

.modelPanel .mp-influenceGraphState{
  min-height:120px;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.54);
  font-size:12px;
  font-weight:500;
  text-align:center;
}

.modelPanel .influence-graph-mobile-shell,
.modelPanel .influence-graph-viewport,
.modelPanel .influence-graph-track{
  display:contents;
}

.modelPanel .influence-graph-nav{
  display:none;
}

@media (max-width: 768px){
  .modelPanel .influence-graph-mobile-shell{
    position:relative;
    display:block;
  }

  .modelPanel .influence-graph-viewport{
    display:block;
    width:100%;
    overflow:hidden;
    touch-action:pan-y;
  }

  .modelPanel .influence-graph-track{
    display:block;
    width:860px;
    max-width:none;
    transform:translateX(var(--influence-graph-shift, 0px));
    transition:transform 260ms ease;
    will-change:transform;
  }

  .modelPanel .influence-graph-track .mp-influenceGraphStage{
    min-height:318px;
  }

  .modelPanel .influence-graph-track .mp-influenceNode{
    width:min(178px, 34%);
    font-size:10.8px;
  }

  .modelPanel .influence-graph-track .mp-influenceNode.is-center{
    width:min(210px, 40%);
    font-size:11.2px;
  }

  .modelPanel .influence-graph-track .mp-influenceNode.is-epistemology{
    width:min(148px, 24%);
  }

  .modelPanel .influence-graph-nav{
    position:absolute;
    top:50%;
    z-index:7;
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(10,14,20,.64);
    color:rgba(255,255,255,.82);
    box-shadow:0 10px 26px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    font-size:34px;
    font-weight:300;
    line-height:1;
    cursor:pointer;
    transform:translateY(-50%);
    transition:opacity 160ms ease, background 160ms ease, border-color 160ms ease;
    touch-action:manipulation;
  }

  .modelPanel .influence-graph-nav-left{
    left:2px;
  }

  .modelPanel .influence-graph-nav-right{
    right:2px;
  }

  .modelPanel .influence-graph-nav:hover,
  .modelPanel .influence-graph-nav:focus-visible{
    border-color:rgba(255,255,255,.26);
    background:rgba(14,19,27,.82);
    outline:none;
  }

  .modelPanel .influence-graph-nav:disabled{
    opacity:.34;
    cursor:default;
  }
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-mobile-shell{
  position:relative;
  display:block;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-viewport{
  display:block;
  width:100%;
  overflow:hidden;
  touch-action:pan-y;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-track{
  display:block;
  width:860px;
  max-width:none;
  transform:translateX(var(--influence-graph-shift, 0px));
  transition:transform 260ms ease;
  will-change:transform;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-track .mp-influenceGraphStage{
  min-height:318px;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-track .mp-influenceNode{
  width:min(178px, 34%);
  font-size:10.8px;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-track .mp-influenceNode.is-center{
  width:min(210px, 40%);
  font-size:11.2px;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-track .mp-influenceNode.is-epistemology{
  width:min(148px, 24%);
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-nav{
  position:absolute;
  top:50%;
  z-index:7;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(10,14,20,.64);
  color:rgba(255,255,255,.82);
  box-shadow:0 10px 26px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  font-size:34px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
  transition:opacity 160ms ease, background 160ms ease, border-color 160ms ease;
  touch-action:manipulation;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-nav-left{
  left:2px;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-nav-right{
  right:2px;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-nav:hover,
.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-nav:focus-visible{
  border-color:rgba(255,255,255,.26);
  background:rgba(14,19,27,.82);
  outline:none;
}

.modelPanel .mp-influenceGraph.is-influenceGraph-narrow .influence-graph-nav:disabled{
  opacity:.34;
  cursor:default;
}

@media (max-width: 720px){
  .modelPanel .mp-influenceGraph{
    padding:16px 14px 18px;
    border-radius:16px;
  }

  .modelPanel .mp-influenceGraphStage{
    min-height:420px;
  }

  .modelPanel .mp-influenceNode{
    width:min(210px, 68%);
    font-size:10.5px;
  }

  .modelPanel .influence-graph-track .mp-influenceGraphStage{
    min-height:318px;
  }

  .modelPanel .influence-graph-track .mp-influenceNode{
    width:min(178px, 34%);
    font-size:10.8px;
  }

  .modelPanel .influence-graph-track .mp-influenceNode.is-center{
    width:min(210px, 40%);
    font-size:11.2px;
  }

  .modelPanel .influence-graph-track .mp-influenceNode.is-epistemology{
    width:min(148px, 24%);
  }
}

.modelPanel .dim-title{
  grid-area:title;
  margin-bottom:16px;
  color:rgba(255,255,255,0.56);
}

.modelPanel .dim-pieWrap{
  grid-area:pie;
  width:176px;
  height:176px;
  margin:0 auto;
}

.modelPanel .dim-pieWrap::before{
  display:none;
}

.modelPanel .dim-list{
  grid-area:list;
  gap:8px;
}

.modelPanel .dim-reference{
  grid-area:reference;
  margin-top:16px;
  color:rgba(255,255,255,0.48);
  border-top:1px solid rgba(255,255,255,0.07);
}

.modelPanel .dim-groupTitle{
  display:none;
}

.modelPanel .dim-group + .dim-group{
  margin-top:4px;
  padding-top:0;
  border-top:0;
}

.modelPanel .fila-proceso{
  gap:14px;
  padding:7px 2px;
  border:0;
  border-radius:10px;
  background:transparent;
  transition:background 180ms ease, transform 180ms ease;
}

.modelPanel .fila-proceso:hover{
  border-color:transparent;
  background:rgba(255,255,255,0.035);
}

.modelPanel .proceso-item.is-open .fila-proceso{
  background:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 10%, transparent);
}

.modelPanel .label-proceso{
  width:min(42%, 360px);
  font-size:13px;
}

.modelPanel .proceso-codigo{
  min-width:31px;
  padding:3px 8px;
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(255,255,255,0.07);
  box-shadow:none;
  color:rgba(255,255,255,0.78);
  font-size:11px;
  font-weight:700;
}

.modelPanel .proceso-nombre{
  color:rgba(255,255,255,0.74);
  font-weight:500;
}

.modelPanel .barra-container{
  flex:1 1 280px;
  max-width:none;
  height:6px;
  border:0;
  background:rgba(255,255,255,0.06);
  box-shadow:none;
}

.modelPanel .barra{
  background:var(--schoolColor, var(--premiumAccent));
  box-shadow:0 0 14px color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 22%, transparent);
}

.modelPanel .proceso-percent{
  flex:0 0 44px;
  text-align:right;
  color:rgba(255,255,255,0.82);
  font-size:12px;
  font-weight:700;
}

.modelPanel .proceso-detail,
.modelPanel .dim-detail{
  border:1px solid color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 22%, rgba(255,255,255,0.08));
  background:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 8%, rgba(255,255,255,0.025));
  color:rgba(255,255,255,0.76);
}

.modelPanel .dim-pie{
  overflow:hidden;
  border:0;
  box-shadow:0 18px 34px rgba(0,0,0,0.20);
  background:transparent;
}

.modelPanel .dim-pieSvg{
  z-index:1;
}

.modelPanel .dim-pie::before{
  content:"";
  position:absolute;
  inset:38%;
  z-index:2;
  border-radius:999px;
  background:#11181E;
  border:1px solid rgba(255,255,255,0.06);
  box-shadow:inset 0 1px 8px rgba(0,0,0,0.34);
}

.modelPanel .dim-pie::after{
  z-index:3;
  background:radial-gradient(110px 80px at 34% 22%, rgba(255,255,255,0.08), rgba(255,255,255,0) 72%);
}

.modelPanel .dim-row{
  grid-template-columns:auto minmax(0,1fr) minmax(70px, auto);
  gap:10px;
  min-height:30px;
  padding:3px 0;
  border:0;
  background:transparent;
  color:rgba(255,255,255,0.72);
}

.modelPanel .dim-row:hover,
.modelPanel .dim-card.has-hover .dim-row.is-linked-hover,
.modelPanel .dim-item.is-open .dim-row{
  background:color-mix(in srgb, var(--dot, var(--schoolColor, var(--premiumAccent))) 13%, rgba(255,255,255,0.025));
  color:rgba(255,255,255,0.90);
}

.modelPanel .dim-label{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
}

.modelPanel .dim-label::after{
  content:"";
  height:1px;
  flex:1 1 auto;
  background:rgba(255,255,255,0.10);
}

.modelPanel .dim-val{
  min-width:58px;
  text-align:right;
  color:rgba(255,255,255,0.84);
}

.modelPanel .dim-dot{
  box-shadow:0 0 10px color-mix(in srgb, var(--dot, #7FD1B9) 38%, transparent);
}

.mp-mapbg{
  right:-10px;
  top:-36px;
  width:min(900px, 58vw);
  height:500px;
  opacity:0.46;
  mix-blend-mode:screen;
  border-radius:0;
  overflow:hidden;
  -webkit-mask-image:
    radial-gradient(circle at 64% 34%, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 34%, rgba(0,0,0,0.74) 48%, rgba(0,0,0,0) 76%),
    linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.95) 54%, rgba(0,0,0,0) 100%),
    linear-gradient(to right, rgba(0,0,0,0) 0%, rgba(0,0,0,0.76) 22%, rgba(0,0,0,1) 48%);
  -webkit-mask-composite:source-in;
  mask-image:
    radial-gradient(circle at 64% 34%, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 34%, rgba(0,0,0,0.74) 48%, rgba(0,0,0,0) 76%),
    linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0.95) 54%, rgba(0,0,0,0) 100%),
    linear-gradient(to right, rgba(0,0,0,0) 0%, rgba(0,0,0,0.76) 22%, rgba(0,0,0,1) 48%);
  mask-composite:intersect;
}

.mp-mapbg svg{
  filter:contrast(1.06) saturate(0.72);
}

.mp-mapbg .land{
  filter:blur(0.45px);
}

.mp-mapbg .land path{
  fill:rgba(188,214,222,0.115);
  stroke:rgba(188,226,218,0.185);
  stroke-width:0.82;
}

.mp-mapbg .graticule{
  opacity:0.16;
}

.mp-mapbg .graticule path{
  stroke:rgba(188,226,218,0.105);
  stroke-width:0.72;
  stroke-dasharray:1.8 7;
}

.mp-mapbg .mini-dot{
  fill:var(--schoolColor, #7FD1B9) !important;
  stroke:color-mix(in srgb, var(--schoolColor, #7FD1B9) 26%, rgba(255,255,255,0.82));
  stroke-width:1.2;
  filter:
    drop-shadow(0 0 18px color-mix(in srgb, var(--schoolColor, #7FD1B9) 68%, transparent))
    drop-shadow(0 0 36px color-mix(in srgb, var(--schoolColor, #7FD1B9) 28%, transparent));
}

.mp-mapbg .mini-halo{
  fill:color-mix(in srgb, var(--schoolColor, #7FD1B9) 18%, transparent);
  stroke:var(--schoolColor, #7FD1B9) !important;
  stroke-width:0.9;
  opacity:0.64;
  filter:drop-shadow(0 0 22px color-mix(in srgb, var(--schoolColor, #7FD1B9) 42%, transparent));
}

.mp-mapbg::after{
  background:
    radial-gradient(180px 150px at 62% 43%, color-mix(in srgb, var(--schoolColor, #7FD1B9) 24%, transparent), color-mix(in srgb, var(--schoolColor, #7FD1B9) 8%, transparent) 34%, transparent 68%),
    radial-gradient(620px 360px at 58% 38%, color-mix(in srgb, var(--schoolColor, #7FD1B9) 7%, transparent), transparent 72%),
    linear-gradient(90deg, rgba(7,11,16,0.86) 0%, rgba(7,11,16,0.38) 28%, transparent 56%),
    linear-gradient(180deg, transparent 0%, rgba(7,11,16,0.18) 52%, rgba(7,11,16,0.90) 100%);
}

.mp-ideas{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.mp-idea{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.mp-idea-title{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:999px;
  background:rgba(255,255,255,0.035);
  color:rgba(255,255,255,0.78);
  padding:7px 13px;
  font-size:12px;
  font-weight:500;
  transition:background 180ms ease, border-color 180ms ease, color 180ms ease;
}

.mp-idea-title:hover,
.mp-idea[open] > .mp-idea-title{
  border-color:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 44%, rgba(255,255,255,0.10));
  background:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 13%, rgba(255,255,255,0.025));
  color:rgba(255,255,255,0.92);
}

.mp-idea-body{
  margin-top:8px;
  border:1px solid rgba(255,255,255,0.07);
  border-radius:14px;
  background:rgba(255,255,255,0.04);
  color:rgba(255,255,255,0.72);
}

.modelPanel .dim-expandBtn{
  border:1px solid color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 38%, rgba(255,255,255,0.10));
  background:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 11%, rgba(255,255,255,0.025));
  color:rgba(255,255,255,0.84);
  box-shadow:none;
  transition:background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.modelPanel .dim-expandBtn:hover{
  border-color:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 54%, rgba(255,255,255,0.10));
  background:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 16%, rgba(255,255,255,0.025));
  transform:translateY(-1px);
}

.modelPanel .dim-colBody.is-collapsed + .dim-expandBtn:hover{
  transform:translateX(-50%) translateY(-1px);
}

@media (max-width: 980px){
  .panel.right{
    border-radius:22px 22px 0 0;
    background:
      radial-gradient(circle at top right, color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 12%, transparent), transparent 34%),
      linear-gradient(180deg, rgba(15,20,27,0.98), rgba(10,15,21,0.96)) !important;
    border-color:rgba(255,255,255,0.10);
    box-shadow:0 -18px 58px rgba(0,0,0,0.58);
    backdrop-filter:blur(18px) saturate(118%);
    -webkit-backdrop-filter:blur(18px) saturate(118%);
  }

  .modelPanel{
    padding:28px 18px 34px;
    font-size:14px;
  }

  .modelPanel .mp-title{
    font-size:clamp(32px, 12vw, 38px);
  }

  .mp-author-photo{
    width:54px;
    height:54px;
  }

  .modelPanel .fila-proceso{
    gap:8px;
  }

  .modelPanel .label-proceso{
    width:100%;
  }

  .modelPanel .barra-container{
    flex:0 0 8px;
    width:100%;
    height:8px;
    min-height:8px;
  }

  .modelPanel .proceso-nombre{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }

  .modelPanel .dim-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "title"
      "pie"
      "list"
      "reference";
    row-gap:14px;
  }

  .modelPanel .dim-pieWrap{
    width:158px;
    height:158px;
  }

  .modelPanel .proceso-percent{
    align-self:flex-end;
    margin-top:-2px;
  }

  .mp-mapbg{
    width:520px;
    right:-230px;
    opacity:0.26;
  }
}

.mp-descInfluences{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(260px, 0.52fr);
  gap:28px;
  align-items:start;
}

.mp-descInfluences.has-life-bg{
  position:relative;
  z-index:3;
  grid-template-columns:minmax(0, 1fr);
  gap:0;
  margin-top:-4px;
  align-items:start;
}

.mp-descInfluences .mp-desc{
  margin-top:12px;
  grid-column:1;
}

.mp-descMain{
  min-width:0;
}

.epistemic-note{
  grid-column:1;
  width:100%;
  margin:24px 0 0;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.035);
  backdrop-filter:blur(10px) saturate(108%);
  -webkit-backdrop-filter:blur(10px) saturate(108%);
  color:rgba(255,255,255,0.68);
}

.epistemic-note__header{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 8px;
  color:rgba(255,255,255,0.52);
  font-size:11px;
  line-height:1;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:700;
}

.epistemic-note__icon{
  flex:0 0 auto;
  width:16px;
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:currentColor;
  opacity:.58;
}

.epistemic-note__icon svg{
  width:15px;
  height:15px;
  display:block;
}

.epistemic-note__text{
  margin:0;
  max-width:none;
  width:100%;
  color:rgba(255,255,255,0.66);
  font-size:13px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:0;
}

.controversia-card,
.debate-critico-card{
  margin:22px 0 0;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:18px;
  background:rgba(255,255,255,0.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.035);
  backdrop-filter:blur(10px) saturate(108%);
  -webkit-backdrop-filter:blur(10px) saturate(108%);
  color:var(--text);
}

.controversia-header,
.debate-critico-header{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:1rem;
  margin-bottom:0.75rem;
}

.controversia-titleRow{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0.65rem;
}

.controversia-header h3,
.debate-critico-header h3{
  margin:0;
  font-size:1rem;
  font-weight:700;
  letter-spacing:0;
}

.controversia-meter{
  display:flex;
  align-items:center;
  gap:0.5rem;
  white-space:nowrap;
  font-size:0.9rem;
  color:var(--muted);
}

.controversia-bars{
  letter-spacing:0.08em;
  font-weight:700;
  color:rgba(255,255,255,0.92);
}

body.theme-light .controversia-bars{
  color:rgba(28,36,48,0.82);
}

.controversia-label,
.debate-critico-nivel{
  font-size:0.78rem;
  font-weight:700;
  line-height:1;
  color:var(--muted2);
}

.controversia-label{
  display:inline-flex;
  align-items:center;
  gap:0.45rem;
  padding:0;
  border-radius:0;
  background:transparent;
  letter-spacing:0.04em;
  text-transform:uppercase;
}

.controversia-label::before{
  content:"";
  width:18px;
  height:1px;
  background:currentColor;
  opacity:0.5;
}

.debate-critico-nivel{
  padding:0.22rem 0.5rem;
  border-radius:999px;
  background:color-mix(in srgb, var(--schoolColor, var(--accent)) 14%, transparent);
}

.controversia-criterios,
.debate-critico-temas ul,
.debate-critico-lecturas ul{
  margin:0.65rem 0 0;
  padding-left:1.1rem;
  color:var(--muted);
}

.controversia-criterios li,
.debate-critico-temas li{
  margin:0.25rem 0;
}

.controversia-texto,
.debate-critico-resumen{
  margin:0.75rem 0 0;
  line-height:1.55;
  color:var(--muted);
}

.debate-critico-temas,
.debate-critico-lecturas{
  margin-top:1rem;
}

.controversia-subsection{
  margin-top:1rem;
  padding-top:0.9rem;
  border-top:1px solid color-mix(in srgb, var(--muted2) 18%, transparent);
}

.controversia-subsection h4,
.debate-critico-temas h4,
.debate-critico-lecturas h4{
  margin:0 0 0.4rem;
  font-size:0.86rem;
  font-weight:700;
  opacity:0.85;
}

.controversia-sublist{
  margin:0.65rem 0 0;
  padding-left:1.1rem;
  color:var(--muted);
}

.controversia-itemText{
  color:var(--muted);
}

.controversia-textBlock + .controversia-textBlock,
.controversia-textBlock + .controversia-refs{
  margin-top:0.55rem;
}

.controversia-refs{
  margin-top:0.32rem;
  color:var(--muted2);
  font-size:0.76rem;
  line-height:1.42;
  opacity:0.74;
}

.controversia-refs-title{
  font-weight:700;
}

.debate-lectura{
  margin:0.45rem 0;
}

.debate-lectura-titulo{
  font-weight:650;
  color:var(--text);
}

.debate-lectura-meta{
  font-size:0.82rem;
  opacity:0.72;
  margin-top:0.12rem;
}

.debate-lectura a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}

body.theme-light .epistemic-note{
  border-color:rgba(28,36,48,0.09);
  background:rgba(28,36,48,0.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.52);
}

body.theme-light .controversia-card,
body.theme-light .debate-critico-card{
  border-color:rgba(28,36,48,0.09);
  background:rgba(28,36,48,0.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.52);
}

/* Fronteras: aparato critico con tratamiento editorial */
.ep-ficha-ed .controversia-card,
.ep-ficha-ed .debate-critico-card{
  position:relative;
  margin:clamp(34px,5vw,58px) 0 0;
  padding:clamp(26px,4vw,42px) 0 0;
  border:0;
  border-top:1px solid var(--ed-line,rgba(244,238,228,.14));
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.ep-ficha-ed .controversia-card::before,
.ep-ficha-ed .debate-critico-card::before{
  content:"Nota critica";
  position:absolute;
  top:-.55em;
  right:0;
  padding-left:12px;
  background:var(--ed-bg,#0c0a0d);
  color:var(--ed-mut2,rgba(244,238,228,.52));
  font:600 .62rem/1 'Space Grotesk',monospace;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.ep-ficha-ed .debate-critico-card::before{ content:"Contrapunto"; }
.ep-ficha-ed .controversia-header,
.ep-ficha-ed .debate-critico-header{ margin:0 0 20px; }
.ep-ficha-ed .controversia-titleRow{
  width:100%;
  justify-content:space-between;
  gap:18px 28px;
}
.ep-ficha-ed .controversia-header h3,
.ep-ficha-ed .debate-critico-header h3{
  color:#fbf6ee;
  font:400 clamp(1.7rem,3vw,2.45rem)/1.05 'Instrument Serif',Georgia,serif;
  text-wrap:balance;
}
.ep-ficha-ed .controversia-meter{
  gap:12px;
  color:var(--ed-mut2);
  font-family:'Space Grotesk',monospace;
}
.ep-ficha-ed .controversia-bars{ display:inline-flex; gap:4px; }
.ep-ficha-ed .controversia-tick{
  display:block;
  width:6px;
  height:20px;
  border:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 44%,transparent);
  transform:skew(-8deg);
}
.ep-ficha-ed .controversia-tick.is-active{
  border-color:var(--ed-accent,#d9aa3f);
  background:var(--ed-accent,#d9aa3f);
}
.ep-ficha-ed .controversia-label{
  color:var(--ed-mut2);
  font-size:.66rem;
  letter-spacing:.13em;
}
.ep-ficha-ed .controversia-texto,
.ep-ficha-ed .debate-critico-resumen{
  max-width:72ch;
  margin:0;
  color:var(--ed-mut,rgba(244,238,228,.72));
  font-size:1.02rem;
  line-height:1.72;
}
.ep-ficha-ed .controversia-criterios,
.ep-ficha-ed .debate-critico-temas-list{
  list-style:none;
  margin:26px 0 0;
  padding:0;
  border-top:1px solid var(--ed-line);
}
.ep-ficha-ed .controversia-criterios li,
.ep-ficha-ed .debate-critico-temas-list li{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:12px;
  margin:0;
  padding:13px 0;
  border-bottom:1px solid var(--ed-line);
}
.ep-ficha-ed .controversia-criterios li::before,
.ep-ficha-ed .debate-critico-temas-list li::before{
  content:"\2192";
  color:var(--ed-accent,#d9aa3f);
}
.ep-ficha-ed .controversia-subsection,
.ep-ficha-ed .debate-critico-lecturas{
  margin:0;
  padding:0;
  border:0;
  border-bottom:1px solid var(--ed-line);
}
.ep-ficha-ed .controversia-subsection:first-of-type,
.ep-ficha-ed .debate-critico-lecturas:first-of-type{ margin-top:28px; }
.ep-ficha-ed .controversia-subsection summary,
.ep-ficha-ed .debate-critico-lecturas summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px 0;
  cursor:pointer;
  color:#f4eee4;
  font:600 .72rem/1.3 'Space Grotesk',monospace;
  letter-spacing:.1em;
  text-transform:uppercase;
  list-style:none;
}
.ep-ficha-ed .controversia-subsection summary::-webkit-details-marker,
.ep-ficha-ed .debate-critico-lecturas summary::-webkit-details-marker{ display:none; }
.ep-ficha-ed .controversia-subsection summary::after,
.ep-ficha-ed .debate-critico-lecturas summary::after{
  content:"+";
  color:var(--ed-accent,#d9aa3f);
  font:400 1.25rem/1 'Instrument Serif',Georgia,serif;
}
.ep-ficha-ed .controversia-subsection[open] summary::after,
.ep-ficha-ed .debate-critico-lecturas[open] summary::after{ content:"\2212"; }
.ep-ficha-ed .controversia-subsection-body,
.ep-ficha-ed .debate-critico-lecturas ul{ padding:0 0 20px; }
.ep-ficha-ed .controversia-subsection .controversia-texto{ margin:0; }
.ep-ficha-ed .controversia-sublist{ margin:0; line-height:1.62; }
.ep-ficha-ed .debate-critico-temas{ margin-top:30px; }
.ep-ficha-ed .debate-critico-temas h4{
  color:var(--ed-accent,#d9aa3f);
  font-family:'Space Grotesk',monospace;
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.ep-ficha-ed .debate-critico-nivel{
  padding:5px 9px;
  border:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 34%,transparent);
  background:transparent;
  color:var(--ed-mut);
  font-family:'Space Grotesk',monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ep-ficha-ed .debate-lectura{ padding:8px 0; }
.ep-ficha-ed .debate-lectura-titulo a{ color:#f4eee4; text-decoration-color:var(--ed-accent); }
.ep-ficha-ed .controversia-refs{ color:var(--ed-mut2); }
body.theme-light .ep-ficha-ed .controversia-card,
body.theme-light .ep-ficha-ed .debate-critico-card{ background:transparent; box-shadow:none; }
body.theme-light .ep-ficha-ed .controversia-card::before,
body.theme-light .ep-ficha-ed .debate-critico-card::before{ background:var(--ed-bg,#f6f2eb); }
body.theme-light .ep-ficha-ed .controversia-header h3,
body.theme-light .ep-ficha-ed .debate-critico-header h3,
body.theme-light .ep-ficha-ed .controversia-subsection summary,
body.theme-light .ep-ficha-ed .debate-critico-lecturas summary{ color:#20242c; }

@media (max-width:620px){
  .ep-ficha-ed .controversia-titleRow{ align-items:flex-start; flex-direction:column; }
  .ep-ficha-ed .controversia-header,
  .ep-ficha-ed .debate-critico-header{ gap:12px; }
  .ep-ficha-ed .controversia-card::before,
  .ep-ficha-ed .debate-critico-card::before{ left:0; right:auto; padding:0 10px 0 0; }
}

body.theme-light .epistemic-note__header{
  color:rgba(28,36,48,0.48);
}

body.theme-light .epistemic-note__text{
  color:rgba(28,36,48,0.62);
}

.mp-descInfluences.has-life-bg .mp-desc{
  max-width:760px;
}

.mp-descInfluences .mp-section{
  margin-top:12px;
  grid-column:2;
  grid-row:1 / span 2;
}

.mp-aiImageNotice{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:4;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  pointer-events:none;
}

.mp-descInfluences .mp-aiImageNotice{
  grid-column:1;
  justify-content:flex-end;
  height:18px;
  margin:14px 12px -2px 0;
}

.mp-aiImageInfo{
  position:relative;
  width:18px;
  height:18px;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:999px;
  background:rgba(12,16,22,0.28);
  color:rgba(255,255,255,0.58);
  font:italic 600 11px/1 Georgia, "Times New Roman", serif;
  box-shadow:0 4px 16px rgba(0,0,0,0.12);
  backdrop-filter:blur(6px);
  cursor:help;
  pointer-events:auto;
  transition:color .18s ease, border-color .18s ease, background .18s ease;
}

.mp-aiImageInfo:hover,
.mp-aiImageInfo:focus-visible{
  color:rgba(255,255,255,0.82);
  border-color:color-mix(in srgb, var(--schoolColor, var(--premiumAccent)) 38%, rgba(255,255,255,0.16));
  background:rgba(255,255,255,0.045);
  outline:none;
}

.mp-aiImageInfoText{
  position:absolute;
  right:0;
  bottom:calc(100% + 8px);
  width:max-content;
  max-width:min(430px, calc(100vw - 52px));
  color:rgba(255,255,255,0.72);
  font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size:11.5px;
  font-weight:500;
  font-style:normal;
  line-height:1.35;
  letter-spacing:0;
  text-align:right;
  opacity:0;
  transform:translateY(4px);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  text-shadow:0 1px 4px rgba(0,0,0,0.95), 0 4px 16px rgba(0,0,0,0.75);
}

.mp-aiImageInfo:hover .mp-aiImageInfoText,
.mp-aiImageInfo:focus-visible .mp-aiImageInfoText{
  opacity:1;
  transform:translateY(0);
}

@media (max-width: 980px){
  .mp-descInfluences{
    grid-template-columns:1fr !important;
    gap:0;
  }

  .epistemic-note{
    margin:18px 0 4px;
    padding:14px 15px;
    border-radius:16px;
  }

  .epistemic-note__header{
    font-size:10.5px;
    margin-bottom:7px;
  }

  .epistemic-note__text{
    font-size:12.5px;
    line-height:1.5;
  }

  .controversia-card,
  .debate-critico-card{
    margin-top:18px;
    padding:14px 15px;
    border-radius:16px;
  }

  .controversia-header,
  .debate-critico-header{
    flex-direction:column;
    align-items:flex-start;
    gap:0.55rem;
  }

  .controversia-meter{
    white-space:normal;
  }

  .mp-descInfluences .mp-section{
    grid-column:1;
    grid-row:auto;
  }

  .mp-descInfluences.has-life-bg{
    grid-template-columns:1fr !important;
    margin-top:0;
  }

  .mp-aiImageNotice{
    right:14px;
    bottom:14px;
  }

  .mp-aiImageInfoText{
    max-width:calc(100vw - 48px);
    font-size:11px;
  }

  .modelPanel .mp-modelHero{
    min-height:360px;
    margin:-40px -40px 26px;
    padding:52px clamp(30px, 6vw, 42px) 84px;
  }

  .modelPanel .mp-modelHero.has-life-bg{
    min-height:0;
    padding-bottom:96px;
    margin-bottom:-62px;
  }

  .modelPanel .mp-modelHeroBg{
    opacity:.58;
  }

  .modelPanel .mp-modelHero.has-life-bg .mp-author-photo{
    display:block;
    width:44px;
    height:44px;
    flex:0 0 44px;
  }

  .modelPanel .mp-modelHero .mp-author-wrap{
    align-items:center;
    gap:10px;
    margin-bottom:14px;
  }

  .modelPanel .mp-modelHero .mp-author-text{
    min-width:0;
  }

  .modelPanel .mp-modelHero .mp-author-name{
    font-size:14px;
    line-height:1.15;
  }

  .modelPanel .mp-modelHeroContent{
    max-width:min(100%, 640px);
  }

  .modelPanel .mp-modelHero .mp-title{
    font-size:clamp(31px, 9.4vw, 42px);
    line-height:1.02;
  }

  .modelPanel .mp-modelHero.has-life-bg + .mp-quote{
    margin-top:12px;
  }

  .modelPanel .mp-modelMapCard{
    justify-content:center;
    margin:18px 0 0 0;
    border-left:0;
    border-top:0;
  }

  .modelPanel .mp-mapMedallion{
    width:min(300px, 78vw);
    margin:0 auto;
  }
}

details.mobile-graphDisclosure{
  display:contents;
}

details.mobile-graphDisclosure > summary{
  display:none;
}

details.mobile-graphDisclosure > .mobile-graphDisclosureBody{
  display:contents;
}

@media (max-width: 980px){
  .modelPanel .mp-co-tab{
    min-height:36px;
    padding:0 5px;
    font-size:10.5px;
    line-height:1;
    letter-spacing:0;
  }

  details.mobile-graphDisclosure{
    display:block;
    min-width:0;
    max-width:100%;
  }

  details.mobile-graphDisclosure > summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:46px;
    padding:0 14px;
    border:1px solid rgba(255,255,255,0.10);
    border-radius:14px;
    background:rgba(255,255,255,0.04);
    color:rgba(255,255,255,0.92);
    cursor:pointer;
    font-size:12px;
    font-weight:850;
    list-style:none;
    user-select:none;
  }

  details.mobile-graphDisclosure > summary::-webkit-details-marker{
    display:none;
  }

  details.mobile-graphDisclosure > summary::after{
    content:"▾";
    flex:0 0 auto;
    opacity:.72;
    transition:transform .18s ease, opacity .18s ease;
  }

  details.mobile-graphDisclosure[open] > summary::after{
    transform:rotate(180deg);
    opacity:.96;
  }

  details.mobile-graphDisclosure > .mobile-graphDisclosureBody{
    display:block;
    margin-top:10px;
    min-width:0;
    max-width:100%;
  }
}

/* =========================
   Vista red · rail izquierdo premium
   ========================= */
body.network-mode .panel.left{
  width:var(--leftPanelW) !important;
  max-width:var(--leftPanelW) !important;
  height:100vh !important;
  padding:0 14px 16px !important;
  display:flex !important;
  flex-direction:column;
  overflow:hidden !important;
  pointer-events:auto !important;
  background:
    linear-gradient(180deg, rgba(7,11,16,0.985) 0%, rgba(10,16,22,0.96) 100%) !important;
  border-right:1px solid rgba(255,255,255,0.07) !important;
  box-shadow:18px 0 54px rgba(0,0,0,0.30) !important;
  backdrop-filter:blur(18px) saturate(112%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(112%) !important;
}

body.network-mode .panel.left > *{
  width:100% !important;
  max-width:100% !important;
  pointer-events:auto;
}

body.network-mode .panel.left .leftTopSticky{
  flex:0 0 auto;
  background:
    linear-gradient(180deg, rgba(7,11,16,0.99), rgba(10,16,22,0.94)) !important;
  border-bottom:1px solid rgba(255,255,255,0.06);
  box-shadow:0 12px 30px rgba(0,0,0,0.26);
}

body.network-mode .panel.left .schoolSticky{
  margin:8px 0 10px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

body.network-mode .panel.left .modelsListCard{
  flex:0 0 auto;
  margin-top:10px;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible;
}

body.network-mode .panel.left .modelsListCard > .row{
  padding:0 2px 10px;
  border-bottom:1px solid rgba(255,255,255,0.08);
}

body.network-mode #leftListTitle{
  color:rgba(255,255,255,0.94) !important;
  font-size:13px !important;
  letter-spacing:-0.02em;
}

body.network-mode #leftListHint{
  color:rgba(255,255,255,0.48) !important;
  font-size:11.5px !important;
}

#leftListHint{
  appearance:none;
  border:0;
  background:transparent;
  color:rgba(244,238,228,.58);
  font:inherit;
  cursor:pointer;
  padding:0;
  text-align:right;
}

#leftListHint:hover,
#leftListHint:focus-visible{
  color:#f4eee4;
  text-decoration:underline;
  text-underline-offset:3px;
  outline:none;
}

body.network-mode #modelsList{
  gap:12px;
  padding:12px 1px 0;
  overflow:visible;
}

body.network-mode .panel.left .networkSelectionCard{
  flex:1 1 auto;
  min-height:0;
  margin-top:14px;
  margin-bottom:0;
  overflow:auto;
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.026)),
    radial-gradient(260px 160px at 0% 0%, color-mix(in srgb, var(--schoolColor,#5F7F78) 16%, transparent), transparent 72%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 14px 32px rgba(0,0,0,0.20);
}

body.network-mode .panel.left .networkSelectionCard[hidden]{
  display:none !important;
}

body.network-mode .networkModeCard{
  height:auto;
  min-height:96px;
  padding:0;
  border-radius:16px;
  border-color:rgba(255,255,255,0.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.026)),
    radial-gradient(220px 120px at 100% 0%, color-mix(in srgb, var(--schoolColor,#5F7F78) 13%, transparent), transparent 70%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 10px 24px rgba(0,0,0,0.16);
  content-visibility:visible;
  contain-intrinsic-size:auto;
}

body.network-mode .networkModeCard:hover{
  background:
    linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.034)),
    radial-gradient(240px 130px at 100% 0%, color-mix(in srgb, var(--schoolColor,#5F7F78) 16%, transparent), transparent 72%);
  border-color:rgba(255,255,255,0.14);
}

body.network-mode .networkModeCard.active{
  border-color:color-mix(in srgb, var(--schoolColor,#5F7F78) 58%, rgba(255,255,255,0.16));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--schoolColor,#5F7F78) 18%, rgba(255,255,255,0.06)),
      rgba(255,255,255,0.034)),
    radial-gradient(260px 140px at 0% 0%, color-mix(in srgb, var(--schoolColor,#5F7F78) 20%, transparent), transparent 74%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--schoolColor,#5F7F78) 12%, transparent),
    0 16px 36px color-mix(in srgb, var(--schoolColor,#5F7F78) 9%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

body.network-mode .networkModeCardInner{
  display:grid;
  grid-template-columns:8px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:15px 14px;
}

body.network-mode .networkModeCardDot{
  width:8px;
  height:8px;
  margin-top:4px;
  border-radius:999px;
  background:var(--schoolColor,#5F7F78);
  box-shadow:0 0 0 5px color-mix(in srgb, var(--schoolColor,#5F7F78) 14%, transparent);
  opacity:.68;
}

body.network-mode .networkModeCard.active .networkModeCardDot{
  opacity:1;
}

body.network-mode .networkModeCard .mi-title{
  display:block;
  max-height:none;
  color:rgba(255,255,255,0.92);
  font-size:13px;
  font-weight:760;
  line-height:1.2;
}

body.network-mode .networkModeCard.active .mi-title{
  color:var(--schoolColor,#5F7F78);
}

body.network-mode .networkModeCard .mi-sub{
  display:block;
  margin-top:4px;
  padding:0;
  color:rgba(255,255,255,0.58);
  font-size:11.5px;
  line-height:1.25;
  -webkit-line-clamp:unset;
}

body.network-mode .networkHeader{
  left:calc(var(--edgePad, 14px) + var(--leftPanelW, 380px) + var(--midGap, 14px) + 14px) !important;
  right:calc(var(--edgePad, 14px) + 14px) !important;
  padding:0;
}

body.network-mode .networkLegend{
  align-items:center;
  gap:8px;
}

body.network-mode .networkLegend .chip{
  min-height:25px;
  padding:4px 10px;
  border-color:rgba(255,255,255,0.12);
  background:rgba(255,255,255,0.045);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

body.network-mode .networkLegend .chip.reset{
  opacity:.5;
}

body.network-mode .networkCanvas{
  background:
    radial-gradient(900px 540px at 22% 22%, rgba(95,127,120,.16), transparent 60%),
    radial-gradient(980px 620px at 80% 72%, rgba(86,103,136,.16), transparent 64%),
    linear-gradient(180deg, #0A1016 0%, #081016 54%, #070B10 100%) !important;
}

/* =========================
   Vista red · piel editorial
   ========================= */
body.network-mode{
  --network-editorial-ink:#f4eee4;
  --network-editorial-muted:rgba(244,238,228,0.68);
  --network-editorial-line:rgba(244,238,228,0.12);
  --network-editorial-paper:#0f0d10;
}

body.network-mode .panel.right,
body.network-mode #modelInfo.modelPanel{
  background:var(--network-editorial-paper) !important;
}

body.network-mode .networkView{
  color:var(--network-editorial-ink);
  font-family:'Hanken Grotesk', system-ui, sans-serif;
}

body.network-mode .networkView::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.28;
  background-image:
    linear-gradient(90deg, rgba(244,238,228,0.028) 1px, transparent 1px),
    linear-gradient(180deg, rgba(244,238,228,0.018) 1px, transparent 1px);
  background-size:72px 72px, 72px 72px;
}

body.network-mode .networkHeader{
  padding:14px 16px 12px;
  border:1px solid rgba(244,238,228,0.10);
  background:rgba(15,13,16,0.74);
  box-shadow:0 18px 44px rgba(0,0,0,0.26), inset 0 1px 0 rgba(255,255,255,0.035);
  backdrop-filter:blur(14px) saturate(108%);
  -webkit-backdrop-filter:blur(14px) saturate(108%);
}

body.network-mode .networkTitle{
  color:var(--network-editorial-ink);
  font-family:'Instrument Serif', Georgia, serif;
  font-size:clamp(31px, 4.2vw, 54px);
  font-weight:400;
  line-height:.98;
  letter-spacing:0;
  text-shadow:none;
}

body.network-mode .networkSub{
  max-width:58ch;
  color:var(--network-editorial-muted);
  font-size:13px;
  line-height:1.48;
  font-weight:520;
}

body.network-mode .networkCanvas{
  z-index:0;
  background:
    linear-gradient(180deg, rgba(244,238,228,0.035), transparent 22%, rgba(0,0,0,0.22) 100%),
    linear-gradient(135deg, #121015 0%, #0f0d10 44%, #09080b 100%) !important;
}

body.network-mode .networkCanvas::before{
  background:
    linear-gradient(90deg, rgba(244,238,228,0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(244,238,228,0.022) 1px, transparent 1px);
  background-size:96px 96px, 96px 96px;
  opacity:.5;
}

body.network-mode .networkCanvas::after{
  background-image:
    radial-gradient(circle at 18% 22%, rgba(244,238,228,0.16) 0 1px, transparent 1.5px),
    radial-gradient(circle at 72% 34%, rgba(244,238,228,0.10) 0 1px, transparent 1.4px),
    radial-gradient(circle at 43% 78%, rgba(0,0,0,0.25) 0 1px, transparent 1.6px);
  background-size:38px 38px, 54px 54px, 47px 47px;
  opacity:.12;
  mix-blend-mode:soft-light;
}

body.network-mode .networkLegend .chip,
body.network-mode .network3dViewBtn,
body.network-mode .network3dBadge{
  border-color:var(--network-editorial-line);
  background:#17131b;
  color:var(--network-editorial-ink);
  box-shadow:none;
}

body.network-mode .networkLegend .chip{
  border-radius:999px;
  font-family:'Space Grotesk', monospace;
  font-size:10px;
  font-weight:650;
  letter-spacing:.08em;
  text-transform:uppercase;
}

body.network-mode .networkLegend .chip:hover,
body.network-mode .network3dViewBtn:hover{
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 42%, rgba(244,238,228,0.18));
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 8%, #17131b);
}

body.network-mode .networkTooltip{
  border-color:rgba(244,238,228,0.16);
  border-radius:14px;
  background:rgba(15,13,16,0.96);
  color:var(--network-editorial-ink);
  box-shadow:0 18px 40px rgba(0,0,0,0.34);
}

body.network-mode .networkModelGraphPanel{
  top:112px;
  max-height:calc(100vh - 130px);
  border-radius:18px;
  border:1px solid rgba(244,238,228,0.14);
  background:#0f0d10;
  box-shadow:0 28px 70px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.025);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

body.network-mode .networkModelGraphPanel::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:.16;
  background-image:
    linear-gradient(90deg, rgba(244,238,228,0.055) 1px, transparent 1px),
    linear-gradient(180deg, rgba(244,238,228,0.034) 1px, transparent 1px);
  background-size:34px 34px, 34px 34px;
}

body.network-mode .networkModelGraphHead,
body.network-mode .networkModelGraphBody{
  position:relative;
  z-index:1;
}

body.network-mode .networkModelGraphKicker,
body.network-mode .network3dBadge strong{
  border:0;
  background:transparent;
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 78%, #ffffff 22%);
  font-family:'Space Grotesk', monospace;
  font-size:.62rem;
  font-weight:650;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:0;
}

body.network-mode .networkModelGraphTitle{
  margin-top:7px;
  color:var(--network-editorial-ink);
  font-family:'Instrument Serif', Georgia, serif;
  font-size:clamp(28px, 3vw, 38px);
  font-weight:400;
  line-height:1.02;
  letter-spacing:0;
}

body.network-mode .networkModelGraphMeta{
  color:var(--network-editorial-muted);
  font-size:12.5px;
}

body.network-mode .networkModelGraphClose{
  border-radius:999px;
  border-color:rgba(244,238,228,0.15);
  background:#17131b;
  color:var(--network-editorial-ink);
  box-shadow:none;
}

body.network-mode .networkModelGraphBody .grafica-procesos,
body.network-mode .networkModelGraphBody .dim-card{
  border-radius:14px;
  border-color:rgba(244,238,228,0.13);
  background:#17131b;
  box-shadow:none;
  filter:saturate(.9);
}

body.network-mode .networkModelGraphBody .dim-title{
  color:rgba(244,238,228,0.82);
  font-family:'Space Grotesk', monospace;
  font-size:.64rem;
  font-weight:650;
  letter-spacing:.14em;
}

body.network-mode .networkModelGraphBody .fila-proceso,
body.network-mode .networkModelGraphBody .dim-row{
  border-color:rgba(244,238,228,0.10);
  background:rgba(255,255,255,0.018);
  color:rgba(244,238,228,0.88);
}

body.network-mode .networkModelGraphBody .mp-pill{
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 38%, rgba(244,238,228,0.16));
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 9%, #17131b);
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 72%, #ffffff 28%);
}

body.network-mode .networkModelGraphBody .dim-reference,
body.network-mode .networkModelGraphBody .dim-empty{
  color:var(--network-editorial-muted);
  border-color:rgba(244,238,228,0.11);
}

body.network-mode .networkMobileGraphCta{
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 45%, rgba(244,238,228,0.16));
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 12%, #17131b);
  color:var(--network-editorial-ink);
  font-family:'Space Grotesk', monospace;
  box-shadow:0 18px 44px rgba(0,0,0,0.34);
}

body.network-mode .panel.left{
  background:#0f0d10 !important;
  border-right:1px solid rgba(244,238,228,0.11) !important;
  box-shadow:18px 0 54px rgba(0,0,0,0.34) !important;
}

body.network-mode .panel.left .leftTopSticky{
  background:#0f0d10 !important;
  border-bottom-color:rgba(244,238,228,0.10);
}

body.network-mode .panel.left .networkSelectionCard,
body.network-mode .networkModeCard{
  border-color:rgba(244,238,228,0.11);
  background:#17131b;
  box-shadow:none;
}

body.network-mode .panel.left .networkSelectionCard{
  position:relative;
  isolation:isolate;
  gap:18px;
  padding:18px 16px 20px;
  border-radius:16px;
  border-color:rgba(244,238,228,0.13);
  background:
    linear-gradient(180deg, rgba(244,238,228,0.025), transparent 38%),
    #0f0d10;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.025);
}

body.network-mode .panel.left .networkSelectionCard::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:.12;
  background-image:
    linear-gradient(90deg, rgba(244,238,228,0.055) 1px, transparent 1px),
    linear-gradient(180deg, rgba(244,238,228,0.034) 1px, transparent 1px);
  background-size:32px 32px, 32px 32px;
}

body.network-mode .panel.left .networkSelectionCard > *{
  position:relative;
  z-index:1;
}

body.network-mode .networkSelectionHead{
  grid-template-columns:92px minmax(0,1fr);
  gap:16px;
  align-items:start;
}

body.network-mode .networkSelectionPhoto{
  width:92px;
  height:92px;
  border-radius:12px;
  border-color:rgba(244,238,228,0.16);
  background:#09080b;
  box-shadow:none;
  filter:saturate(.72) contrast(1.06);
}

body.network-mode .networkSelectionPhoto img{
  object-position:center 18%;
}

body.network-mode .networkSelectionSchoolRow{
  margin-bottom:9px;
}

body.network-mode .networkSelectionSchoolPill,
body.network-mode .networkZoneItemSchool{
  min-height:22px;
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 40%, rgba(244,238,228,0.14));
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 9%, #17131b);
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 72%, #ffffff 28%);
  font-family:'Space Grotesk', monospace;
  font-size:.62rem;
  font-weight:650;
  letter-spacing:.14em;
}

body.network-mode .networkSelectionTitle,
body.network-mode .networkZoneItemTitle,
body.network-mode .networkModeCard .mi-title{
  color:var(--network-editorial-ink);
}

body.network-mode .networkSelectionTitle{
  font-family:'Instrument Serif', Georgia, serif;
  font-size:25px;
  font-weight:400;
  line-height:1.02;
  letter-spacing:0;
}

body.network-mode .networkSelectionDesc,
body.network-mode .networkSelectionMeta,
body.network-mode .networkZoneItemMeta,
body.network-mode .networkModeCard .mi-sub{
  color:var(--network-editorial-muted);
}

body.network-mode .networkSelectionMeta{
  font-size:12px;
  line-height:1.45;
}

html[lang="en"] .accessEditorialAside::after{
  content:"Fig. 01 · Clinical library";
}

body.network-mode .networkSelectionDesc{
  padding-top:14px;
  border-top:1px solid rgba(244,238,228,0.10);
  color:rgba(244,238,228,0.72);
  font-size:13px;
  line-height:1.7;
}

body.network-mode .networkSelectionBtn{
  border-radius:999px;
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 44%, rgba(244,238,228,0.18));
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 12%, #17131b);
  color:var(--network-editorial-ink);
  font-family:'Space Grotesk', monospace;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:none;
}

body.network-mode .networkSelectionBtn:hover{
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 18%, #17131b);
}

body.network-mode .networkZoneList{
  gap:10px;
}

body.network-mode .networkZoneItem{
  border-radius:12px;
  border-color:rgba(244,238,228,0.11);
  background:#17131b;
}

@media (max-width: 980px){
  body.network-mode .panel.left{
    display:none !important;
  }

  body.network-mode .networkModelGraphPanel{
    top:auto;
    max-height:min(58vh, 520px);
  }

  body.network-mode .networkHeader{
    left:10px !important;
    right:10px !important;
    padding:12px;
  }
}

/* =========================
   Selector lateral editorial
   ========================= */
body:not(.network-mode) #modelsList.modelsList{
  gap:4px;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard),
body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard){
  height:84px;
  min-height:84px;
  padding:8px 9px 8px 8px;
  border-radius:8px;
  border:1px solid transparent;
  background:rgba(255,255,255,0.010);
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transform:none;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard)::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  bottom:9px;
  width:3px;
  border-radius:999px;
  background:transparent;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):hover,
body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard):hover{
  transform:none;
  border-color:transparent;
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 5%, rgba(255,255,255,0.012)),
      rgba(255,255,255,0.018) 72%);
  box-shadow:none;
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard),
body:not(.network-mode) #modelsList .mi-item.is-marco.active:not(.networkModeCard){
  border-color:transparent;
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 13%, rgba(255,255,255,0.014)),
      rgba(255,255,255,0.014) 74%);
  box-shadow:none;
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard)::before{
  background:color-mix(in srgb, var(--schoolColor, #D9AA3F) 78%, rgba(255,255,255,0.16));
}

body:not(.network-mode) #modelsList .mi-dependencyGroup{
  --branchX:22px;
  --branchIndent:36px;
  --childInset:18px;
  /* Solape deliberado entre tramos: mantiene un unico tronco incluso con zoom o fuentes tardias. */
  --branchStep:104px;
  --branchLine:color-mix(in srgb, var(--schoolColor, #D9AA3F) 38%, rgba(255,255,255,0.13));
  position:relative;
  display:grid;
  gap:6px;
  margin:-2px 0 6px var(--branchIndent);
  padding:3px 0 2px 0;
}

body:not(.network-mode) #modelsList .mi-dependencyGroup::before{
  content:none;
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program{
  width:calc(100% - 18px);
  min-height:70px;
  height:70px;
  justify-self:end;
  padding:7px 8px;
  overflow:visible;
  contain:none;
  content-visibility:visible;
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--schoolColor, #D9AA3F) 7%, rgba(255,255,255,0.014)),
      rgba(255,255,255,0.012) 72%);
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program::after{
  content:"";
  position:absolute;
  left:calc((var(--branchIndent) - var(--branchX) + var(--childInset)) * -1);
  bottom:50%;
  width:calc(var(--branchIndent) - var(--branchX) + var(--childInset) - 3px);
  height:var(--branchStep);
  border-left:1px solid var(--branchLine);
  border-bottom:1px solid var(--branchLine);
  border-bottom-left-radius:5px;
  background:none;
  box-shadow:-1px 1px 7px color-mix(in srgb, var(--schoolColor, #D9AA3F) 7%, transparent);
  pointer-events:none;
}

body:not(.network-mode) #modelsList .mi-dependencyGroup > .mi-item.is-dependent-program:first-child::after{
  height:calc(50% + 12px);
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-shell{
  grid-template-columns:38px minmax(0,1fr);
  gap:9px;
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-avatar{
  width:38px;
  height:54px;
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-title,
body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-sub{
  padding-right:38px;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-shell{
  grid-template-columns:48px minmax(0,1fr);
  gap:11px;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-avatar{
  width:48px;
  height:68px;
  border-radius:6px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.012)),
    color-mix(in srgb, var(--schoolColor, #D9AA3F) 8%, rgba(0,0,0,0.34));
  border:1px solid rgba(255,255,255,0.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.06);
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-avatar::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.06), rgba(0,0,0,0.32)),
    linear-gradient(90deg, rgba(255,255,255,0.045), transparent 34%);
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  opacity:0;
  filter:brightness(.92) saturate(.96) contrast(1.04);
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-avatar img.is-loaded{
  opacity:1;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-avatarFallback{
  width:100%;
  height:100%;
  place-items:center;
  font-size:12px;
  color:rgba(255,255,255,0.58);
  background:
    radial-gradient(circle at 32% 22%, rgba(255,255,255,0.10), transparent 56%),
    rgba(255,255,255,0.025);
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard) .mi-avatar{
  border-color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 22%, rgba(255,255,255,0.075));
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard) .mi-avatar img{
  filter:brightness(1) saturate(1) contrast(1.04);
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard) .mi-avatar img.is-loaded{
  opacity:1;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-body{
  gap:5px;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-titleWrap{
  display:block;
  padding-right:48px;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-accentDot{
  display:none;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-title,
body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard) .mi-title{
  font-size:13px;
  font-weight:670;
  line-height:1.18;
  letter-spacing:-0.012em;
  color:rgba(255,255,255,0.86);
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard) .mi-title{
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 74%, rgba(255,255,255,0.26));
  text-shadow:none;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-sub,
body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard) .mi-sub{
  padding-left:0;
  padding-right:46px;
  font-size:11.5px;
  font-weight:450;
  line-height:1.2;
  color:rgba(255,255,255,0.42);
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard) .mi-sub{
  color:rgba(255,255,255,0.58);
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-meta{
  top:1px;
  right:0;
  gap:0;
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-year,
body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard) .mi-year{
  min-height:auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  color:rgba(255,255,255,0.40);
  font-size:10px;
  font-weight:580;
  letter-spacing:.025em;
}

body:not(.network-mode) #modelsList .mi-item.active:not(.networkModeCard) .mi-year{
  color:color-mix(in srgb, var(--schoolColor, #D9AA3F) 48%, rgba(255,255,255,0.48));
}

@media (max-width: 980px){
  body:not(.network-mode) #modelsList.modelsList{
    gap:4px;
  }

  body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard),
  body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard){
    height:80px;
    min-height:80px;
    padding:7px 8px 7px 7px;
    border-radius:8px;
  }

  body:not(.network-mode) #modelsList .mi-dependencyGroup{
    --branchX:20px;
    --branchIndent:30px;
    --childInset:12px;
    --branchStep:96px;
    gap:5px;
    margin-top:-1px;
  }

  body:not(.network-mode) #modelsList .mi-item.is-dependent-program{
    width:calc(100% - 12px);
    height:66px;
    min-height:66px;
  }

  body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-shell{
    grid-template-columns:44px minmax(0,1fr);
    gap:10px;
  }

  body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-avatar{
    width:44px;
    height:62px;
    border-radius:7px;
  }

  body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-title,
  body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard) .mi-title{
    font-size:12.4px;
  }

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard) .mi-sub,
  body:not(.network-mode) #modelsList .mi-item.is-marco:not(.networkModeCard) .mi-sub{
    font-size:11px;
  }
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-shell{
  grid-template-columns:38px minmax(0,1fr);
  gap:9px;
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-avatar{
  width:38px;
  height:54px;
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-titleWrap{
  padding-right:40px;
}

body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-sub{
  padding-right:38px;
}

@media (max-width: 980px){
  body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-shell{
    grid-template-columns:36px minmax(0,1fr);
    gap:8px;
  }

  body:not(.network-mode) #modelsList .mi-item.is-dependent-program .mi-avatar{
    width:36px;
    height:50px;
  }
}

/* =========================
   Textura film en graficos inferiores
   ========================= */
.modelPanel .grafica-procesos,
.modelPanel .dim-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-color:rgba(255,255,255,0.045);
  filter:saturate(.92);
}

.modelPanel .grafica-procesos::before,
.modelPanel .dim-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:inherit;
  pointer-events:none;
  opacity:.13;
  mix-blend-mode:soft-light;
  background-image:
    radial-gradient(circle at 18% 22%, rgba(255,255,255,0.18) 0 1px, transparent 1.5px),
    radial-gradient(circle at 72% 34%, rgba(255,255,255,0.12) 0 1px, transparent 1.4px),
    radial-gradient(circle at 43% 78%, rgba(0,0,0,0.25) 0 1px, transparent 1.6px),
    radial-gradient(circle at 91% 61%, rgba(255,255,255,0.10) 0 1px, transparent 1.4px);
  background-size:38px 38px, 54px 54px, 47px 47px, 63px 63px;
}

.modelPanel .grafica-procesos::after,
.modelPanel .dim-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit;
  pointer-events:none;
  opacity:.44;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.025), transparent 24%, rgba(0,0,0,0.10) 100%),
    radial-gradient(520px 180px at 50% -8%, rgba(255,255,255,0.045), transparent 62%),
    radial-gradient(620px 260px at 50% 110%, rgba(0,0,0,0.18), transparent 68%);
}

.modelPanel .grafica-procesos > *,
.modelPanel .dim-card > *{
  position:relative;
  z-index:3;
}

.modelPanel .grafica-procesos .barra,
.modelPanel .dim-card .dim-segment{
  filter:saturate(.88) contrast(.98);
}

/* ===== EDITORIAL SKIN · ficha de modelo ===== */
.ed-ficha{
  --ed-ink:#f4eee4;
  --ed-mut:rgba(244,238,228,0.74);
  --ed-mut2:rgba(244,238,228,0.5);
  --ed-line:rgba(244,238,228,0.12);
  margin:0;
  border-radius:0;
  overflow:visible;
  background:#0c0a0d;
  color:var(--ed-ink);
  font-family:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.5;
}
.panel.right:has(.ed-ficha){
  background:#0c0a0d;
}
.modelPanel:has(.ed-ficha){
  min-height:100%;
  padding:0;
  overflow:visible;
  background:#0c0a0d;
}
.ed-ficha *{ box-sizing:border-box; }
.ed-ficha h4{
  font-family:'Space Grotesk',monospace;
  font-size:0.74rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--ed-mut2); font-weight:600; margin:0 0 14px;
}

/* HERO */
.ed-hero{
  position:relative;
  padding:clamp(52px,7vw,92px) clamp(28px,7vw,86px) clamp(44px,6vw,72px);
  border-bottom:1px solid var(--ed-line);
  overflow:hidden;
}
.ed-hero.has-bg{
  min-height:clamp(560px,72vh,780px);
  display:flex;
  align-items:center;
}
.ed-hero-bg{ position:absolute; inset:0; z-index:0; }
.ed-hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 28%;
  filter:saturate(1) contrast(1.01) brightness(1);
}
.ed-hero-scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,#0c0a0d 0%,rgba(12,10,13,0.96) 20%,rgba(12,10,13,0.66) 46%,rgba(12,10,13,0.02) 68%,transparent 100%),
    linear-gradient(0deg,rgba(12,10,13,0.8) 0%,rgba(12,10,13,0.08) 24%,transparent 54%);
}
.ed-hero-inner{ position:relative; z-index:1; width:min(58%,660px); max-width:660px; }
.ed-eyebrow{ margin:0 0 24px; display:flex; align-items:center; gap:11px; font-family:'Space Grotesk',monospace; font-size:0.74rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:600; color:var(--ed-accent,#ff7a4d); }
.ed-rule{ width:30px; height:1px; background:currentColor; flex:0 0 auto; }
.ed-ficha .mp-title.ed-title{
  max-width:620px;
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;
  font-size:clamp(4rem,6.8vw,6.15rem);
  line-height:0.94;
  letter-spacing:-0.025em;
  color:#fbf6ee;
  margin:0;
  text-wrap:balance;
}
.ed-title-accent{ color:var(--ed-accent,#ff7a4d); font-style:italic; white-space:nowrap; }
.ed-quote{
  max-width:620px;
  margin:34px 0 0;
  padding:0;
  border:0;
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-style:normal;
  font-size:clamp(1rem,1.35vw,1.18rem);
  font-weight:650;
  line-height:1.55;
  color:rgba(244,238,228,0.78);
}
.ed-facts{ display:flex; flex-wrap:wrap; gap:14px 28px; margin-top:34px; }
.ed-fact{ display:flex; flex-direction:column; gap:2px; border-left:2px solid color-mix(in srgb,var(--ed-accent,#ff7a4d) 60%,transparent); padding-left:12px; }
.ed-fact-k{ font-family:'Space Grotesk',monospace; font-size:0.6rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--ed-mut2); }
.ed-fact-v{ font-size:0.98rem; font-weight:600; color:var(--ed-ink); }

/* author */
.ed-ficha .ed-hero .mp-author.mp-author-wrap{ display:none; }
.ed-ficha.ep-ficha-ed .ed-hero .mp-author.mp-author-wrap{ display:flex; margin-top:28px; }
.ed-ficha .mp-author-photo{ width:54px; height:54px; border-radius:999px; object-fit:cover; border:1px solid var(--ed-line); flex:0 0 auto; background:rgba(255,255,255,0.05); }
.ed-ficha .mp-author-name{ font-family:'Instrument Serif',Georgia,serif; font-size:1.18rem; color:#fbf6ee; line-height:1.1; }
.ed-ficha .mp-author-part{ color:#fbf6ee; }
.ed-ficha .mp-author-meta{ display:none; }

@media (max-width:900px){
  .ed-hero.has-bg{ min-height:clamp(520px,68vh,680px); align-items:flex-end; }
  .ed-hero-inner{ width:min(78%,660px); }
  .ed-ficha .mp-title.ed-title{ font-size:clamp(3.35rem,8vw,5rem); }
  .ed-hero-scrim{
    background:
      linear-gradient(90deg,#0c0a0d 0%,rgba(12,10,13,0.9) 40%,rgba(12,10,13,0.08) 76%,transparent 100%),
      linear-gradient(0deg,rgba(12,10,13,0.82) 0%,rgba(12,10,13,0.22) 42%,transparent 74%);
  }
}

@media (max-width:620px){
  .ed-hero{ padding:42px 22px 34px; }
  .ed-hero.has-bg{ min-height:600px; }
  .ed-hero-inner{ width:100%; max-width:none; }
  .ed-hero-bg img{ object-position:62% center; }
  .ed-hero-scrim{
    background:
      linear-gradient(0deg,#0c0a0d 5%,rgba(12,10,13,0.82) 54%,rgba(12,10,13,0.14) 100%),
      linear-gradient(90deg,rgba(12,10,13,0.72),rgba(12,10,13,0.05));
  }
  .ed-ficha .mp-title.ed-title{ font-size:clamp(3rem,15vw,4.3rem); }
  .ed-quote{ margin-top:26px; }
  .ed-facts{ gap:14px 18px; margin-top:28px; }
}

/* CHAPTERS */
.ed-chapter{ padding:clamp(32px,4vw,56px) clamp(22px,4vw,54px); border-bottom:1px solid var(--ed-line); }
.ed-chapter.ed-alt{ background:#0e0c10; }
.ed-chap-head{ display:flex; align-items:flex-end; gap:20px; margin:0 0 30px; flex-wrap:nowrap; }
.ed-chap-head>div{ flex:1 1 auto; min-width:0; }
.ed-chap-num{ font-family:'Instrument Serif',Georgia,serif; font-size:clamp(3rem,6vw,4.8rem); line-height:0.78; color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 85%,#ffffff); }
.ed-chap-kicker{ margin:0 0 4px; font-family:'Space Grotesk',monospace; font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ed-mut2); }
.ed-chap-title{ margin:0; font-family:'Instrument Serif',Georgia,serif; font-weight:400; font-size:clamp(1.7rem,3vw,2.5rem); color:#fbf6ee; }
.ed-lead{ margin:0; font-size:clamp(1.04rem,1.5vw,1.2rem); line-height:1.75; color:var(--ed-mut); text-wrap:pretty; }
.ed-lead::first-letter{ font-family:'Instrument Serif',Georgia,serif; font-size:3.4em; line-height:0.7; float:left; padding:8px 14px 0 0; color:var(--ed-accent,#ff7a4d); }
.ed-modelIntro{
  display:grid;
  grid-template-columns:minmax(260px,0.82fr) minmax(360px,1.18fr);
  gap:clamp(42px,7vw,96px);
  align-items:start;
  padding-top:clamp(8px,1.5vw,18px);
  border-top:1px solid var(--ed-line);
}
.ed-changeSummary{
  position:sticky;
  top:86px;
  align-self:start;
  padding-top:42px;
}
.ed-changeSummary-kicker{
  margin:0 0 18px;
  color:var(--ed-accent,#ff7a4d);
  font-family:'Space Grotesk',monospace;
  font-size:0.68rem;
  font-weight:650;
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.ed-changeSummary-text{
  margin:0;
  color:#f4eee4;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.75rem,3vw,2.7rem);
  font-weight:400;
  line-height:1.08;
  text-wrap:balance;
}
.ed-changeTheoryExplanation{
  display:grid;
  grid-template-columns:minmax(190px,.34fr) minmax(0,1fr);
  gap:14px clamp(30px,6vw,92px);
  margin:38px 0 54px;
  padding:28px 0 0;
  border-top:1px solid color-mix(in srgb,var(--ed-accent,#ff7a4d) 42%,var(--ed-line));
}
.ed-changeTheoryExplanation-kicker{
  grid-column:1;
  margin:5px 0 0;
  color:var(--ed-accent,#ff7a4d);
  font:700 .66rem/1.2 'Space Grotesk',monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.ed-changeTheoryExplanation h3{
  grid-column:2;
  grid-row:1;
  margin:0;
  color:#f4eee4;
  font:400 clamp(1.5rem,2.1vw,2.15rem)/1.08 'Instrument Serif',Georgia,serif;
}
.ed-changeTheoryExplanation > p:last-child{
  grid-column:2;
  margin:5px 0 0;
  color:var(--ed-mut);
  font-size:1rem;
  line-height:1.72;
}
body.theme-light .ed-changeTheoryExplanation h3{ color:#20242c; }
.ed-modelDescription{
  min-width:0;
  padding-top:42px;
}
.ed-modelDescription .ed-lead{
  font-size:clamp(1.06rem,1.45vw,1.22rem);
  line-height:1.72;
}

@media (max-width:900px){
  .ed-modelIntro{
    grid-template-columns:minmax(220px,0.8fr) minmax(300px,1.2fr);
    gap:36px;
  }
  .ed-changeSummary-text{ font-size:clamp(1.55rem,3.7vw,2.2rem); }
}

@media (max-width:720px){
  .ed-modelIntro{
    display:block;
    padding-top:0;
  }
  .ed-changeSummary{
    position:relative;
    top:auto;
    padding-top:30px;
  }
  .ed-changeSummary-text{ font-size:clamp(1.8rem,8vw,2.5rem); }
  .ed-modelDescription{ padding-top:34px; }
}

/* Los bloques de Fronteras son capitulos del dossier, no tarjetas de UI. */
.ep-ficha-ed .ep-criticalChapter .controversia-card,
.ep-ficha-ed .ep-criticalChapter .debate-critico-card{
  display:grid;
  grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);
  column-gap:clamp(36px,7vw,94px);
  row-gap:0;
  margin:0;
  padding:clamp(10px,2vw,24px) 0 0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.ep-ficha-ed .ep-criticalChapter .controversia-card::before,
.ep-ficha-ed .ep-criticalChapter .debate-critico-card::before{ display:none; }
.ep-ficha-ed .ep-criticalChapter .controversia-header,
.ep-ficha-ed .ep-criticalChapter .debate-critico-header{
  grid-column:1;
  position:sticky;
  top:86px;
  align-self:start;
  margin:0;
  padding-top:4px;
}
.ep-ficha-ed .ep-criticalChapter .controversia-titleRow{
  display:block;
  width:auto;
}
.ep-ficha-ed .ep-criticalChapter .controversia-meter{
  display:block;
  white-space:normal;
}
.ep-ficha-ed .ep-criticalChapter .controversia-bars{
  display:flex;
  gap:7px;
  margin-bottom:18px;
}
.ep-ficha-ed .ep-criticalChapter .controversia-tick{
  width:9px;
  height:38px;
}
.ep-ficha-ed .ep-criticalChapter .controversia-label,
.ep-ficha-ed .ep-criticalChapter .debate-critico-nivel{
  display:inline-block;
  color:var(--ed-accent,#d9aa3f);
  font:650 .68rem/1.4 'Space Grotesk',monospace;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ep-ficha-ed .ep-criticalChapter .controversia-label::before{ display:none; }
.ep-ficha-ed .ep-criticalChapter .debate-critico-nivel{
  max-width:180px;
  padding:0 0 12px;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 55%,transparent);
  border-radius:0;
}
.ep-ficha-ed .ep-criticalChapter > .controversia-card > .controversia-textBlock,
.ep-ficha-ed .ep-criticalChapter > .debate-critico-card > .controversia-textBlock{
  grid-column:2;
}
.ep-ficha-ed .ep-criticalChapter .controversia-texto,
.ep-ficha-ed .ep-criticalChapter .debate-critico-resumen{
  max-width:none;
  color:var(--ed-mut);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:clamp(1.03rem,1.35vw,1.18rem);
  line-height:1.75;
  text-wrap:pretty;
}
.ep-ficha-ed .ep-criticalChapter > .controversia-card > .controversia-criterios,
.ep-ficha-ed .ep-criticalChapter .debate-critico-temas,
.ep-ficha-ed .ep-criticalChapter .controversia-subsection,
.ep-ficha-ed .ep-criticalChapter .debate-critico-lecturas{
  grid-column:1 / -1;
}
.ep-ficha-ed .ep-criticalChapter > .controversia-card > .controversia-criterios,
.ep-ficha-ed .ep-criticalChapter .debate-critico-temas{
  margin-top:clamp(34px,5vw,60px);
}
.ep-ficha-ed .ep-criticalChapter > .controversia-card > .controversia-criterios,
.ep-ficha-ed .ep-criticalChapter .debate-critico-temas-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 clamp(34px,6vw,76px);
  padding:0;
  border-top:1px solid var(--ed-line);
}
.ep-ficha-ed .ep-criticalChapter .controversia-criterios li,
.ep-ficha-ed .ep-criticalChapter .debate-critico-temas-list li{
  align-content:start;
  padding:18px 0;
  font-size:.98rem;
  line-height:1.55;
}
.ep-ficha-ed .ep-criticalChapter .controversia-subsection summary,
.ep-ficha-ed .ep-criticalChapter .debate-critico-lecturas summary{
  padding:19px 0;
  font-size:.7rem;
}
.ep-ficha-ed .ep-criticalChapter .controversia-subsection-body,
.ep-ficha-ed .ep-criticalChapter .debate-critico-lecturas ul{
  max-width:78ch;
  margin-left:auto;
  padding-bottom:28px;
}

@media (max-width:720px){
  .ep-ficha-ed .ep-criticalChapter .controversia-card,
  .ep-ficha-ed .ep-criticalChapter .debate-critico-card{ display:block; }
  .ep-ficha-ed .ep-criticalChapter .controversia-header,
  .ep-ficha-ed .ep-criticalChapter .debate-critico-header{
    position:relative;
    top:auto;
    margin-bottom:26px;
  }
  .ep-ficha-ed .ep-criticalChapter > .controversia-card > .controversia-criterios,
  .ep-ficha-ed .ep-criticalChapter .debate-critico-temas-list{ display:block; }
  .ep-ficha-ed .ep-criticalChapter .controversia-tick{ height:28px; }
}

.ed-ficha .ed-criticalDossier{
  margin-top:clamp(54px,8vw,96px);
  border-top:1px solid var(--ed-line);
}
.ed-ficha .ed-criticalDossier-head{
  display:grid;
  grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);
  gap:clamp(36px,7vw,94px);
  padding:24px 0 clamp(42px,6vw,70px);
}
.ed-ficha .ed-criticalDossier-kicker{
  margin:0;
  color:var(--ed-accent,#d9aa3f);
  font:650 .68rem/1.4 'Space Grotesk',monospace;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.ed-ficha .ed-criticalDossier-title{
  max-width:8ch;
  margin:12px 0 0;
  color:#fbf6ee;
  font:400 clamp(2.5rem,5vw,4.6rem)/.9 'Instrument Serif',Georgia,serif;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.ed-ficha .ed-criticalDossier-deck{
  max-width:31ch;
  margin:7px 0 0;
  color:var(--ed-mut);
  font:400 clamp(1.25rem,2vw,1.75rem)/1.18 'Instrument Serif',Georgia,serif;
  text-wrap:balance;
}
.ed-ficha .ed-criticalFeature{
  padding:clamp(36px,5vw,62px) 0;
  border-top:1px solid var(--ed-line);
}
.ed-ficha .ed-criticalFeature-head{
  display:flex;
  align-items:flex-end;
  gap:20px;
  margin-bottom:clamp(34px,5vw,58px);
  padding:0 0 22px 18px;
  border-left:3px solid var(--ed-accent,#d9aa3f);
  border-bottom:1px solid var(--ed-line);
}
.ed-ficha .ed-criticalFeature-index{
  color:color-mix(in srgb,var(--ed-accent,#d9aa3f) 76%,#fff);
  font:400 clamp(3.2rem,6vw,5rem)/.72 'Instrument Serif',Georgia,serif;
}
.ed-ficha .ed-criticalFeature-head p{
  margin:0 0 4px;
  color:var(--ed-mut2);
  font:600 .66rem/1 'Space Grotesk',monospace;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.ed-ficha .ed-criticalFeature-head h3{
  margin:0;
  color:#fbf6ee;
  font:400 clamp(2.15rem,3.8vw,3.25rem)/.98 'Instrument Serif',Georgia,serif;
  text-wrap:balance;
}
.ed-ficha .ed-criticalFeature .controversia-card,
.ed-ficha .ed-criticalFeature .debate-critico-card{
  display:grid;
  grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);
  gap:0 clamp(36px,7vw,94px);
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.ed-ficha .ed-criticalFeature .controversia-header,
.ed-ficha .ed-criticalFeature .debate-critico-header{
  grid-column:1;
  display:block;
  margin:0;
  padding-top:5px;
}
.ed-ficha .ed-criticalFeature .controversia-titleRow{ display:block; }
.ed-ficha .ed-criticalFeature .controversia-meter{ display:block; white-space:normal; }
.ed-ficha .ed-criticalFeature .controversia-meter-caption{
  display:flex;
  justify-content:space-between;
  gap:16px;
  width:min(100%,220px);
  margin-bottom:11px;
  color:var(--ed-mut2);
  font:600 .62rem/1.3 'Space Grotesk',monospace;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.ed-ficha .ed-criticalFeature .controversia-meter-caption b{
  color:#f4eee4;
  font-weight:600;
}
.ed-ficha .ed-criticalFeature .controversia-bars{
  display:grid !important;
  grid-template-columns:repeat(var(--controversy-max,5),minmax(18px,1fr));
  gap:6px;
  width:min(100%,220px);
  margin-bottom:15px;
}
.ed-ficha .ed-criticalFeature .controversia-tick{
  display:block !important;
  width:100%;
  height:12px;
  border:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 42%,transparent);
  background:color-mix(in srgb,var(--ed-accent,#d9aa3f) 7%,transparent);
  transform:none;
}
.ed-ficha .ed-criticalFeature .controversia-tick.is-active{
  border-color:var(--ed-accent,#d9aa3f);
  background:var(--ed-accent,#d9aa3f);
  box-shadow:0 0 14px color-mix(in srgb,var(--ed-accent,#d9aa3f) 22%,transparent);
}
.ed-ficha .ed-criticalFeature .controversia-label::before{ display:none; }
.ed-ficha .ed-criticalFeature .controversia-label,
.ed-ficha .ed-criticalFeature .debate-critico-nivel{
  display:inline-block;
  max-width:190px;
  padding:0 0 11px;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 52%,transparent);
  border-radius:0;
  background:transparent;
  color:var(--ed-accent,#d9aa3f);
  font:650 .68rem/1.4 'Space Grotesk',monospace;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.ed-ficha .ed-criticalFeature > .controversia-card > .controversia-textBlock,
.ed-ficha .ed-criticalFeature > .debate-critico-card > .controversia-textBlock{ grid-column:2; }
.ed-ficha .ed-criticalFeature .controversia-texto,
.ed-ficha .ed-criticalFeature .debate-critico-resumen{
  max-width:none;
  margin:0;
  color:var(--ed-mut);
  font-size:clamp(1.03rem,1.35vw,1.18rem);
  line-height:1.75;
  text-wrap:pretty;
}
.ed-ficha .ed-criticalFeature > .controversia-card > .controversia-criterios,
.ed-ficha .ed-criticalFeature .debate-critico-temas,
.ed-ficha .ed-criticalFeature .controversia-subsection,
.ed-ficha .ed-criticalFeature .debate-critico-lecturas{ grid-column:1 / -1; }
.ed-ficha .ed-criticalFeature > .controversia-card > .controversia-criterios,
.ed-ficha .ed-criticalFeature .debate-critico-temas-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 clamp(34px,6vw,76px);
  margin-top:clamp(34px,5vw,58px);
  padding:0;
  border-top:1px solid var(--ed-line);
  list-style:none;
}
.ed-ficha .ed-criticalFeature .controversia-criterios li,
.ed-ficha .ed-criticalFeature .debate-critico-temas-list li{
  display:grid;
  grid-template-columns:20px 1fr;
  gap:12px;
  margin:0;
  padding:18px 0;
  border-bottom:1px solid var(--ed-line);
  line-height:1.55;
}
.ed-ficha .ed-criticalFeature .controversia-criterios li::before,
.ed-ficha .ed-criticalFeature .debate-critico-temas-list li::before{
  content:"\2192";
  color:var(--ed-accent,#d9aa3f);
}
.ed-ficha .ed-criticalFeature .controversia-criterios li > .controversia-refs,
.ed-ficha .ed-criticalFeature .debate-critico-temas-list li > .controversia-refs{
  grid-column:2;
  width:100%;
  max-width:none;
  margin:7px 0 0;
  overflow-wrap:anywhere;
  word-break:normal;
}
.ed-ficha .ed-criticalFeature .controversia-subsection,
.ed-ficha .ed-criticalFeature .debate-critico-lecturas{
  margin:0;
  padding:0;
  border:0;
  border-bottom:1px solid var(--ed-line);
}
.ed-ficha .ed-criticalFeature .controversia-subsection summary,
.ed-ficha .ed-criticalFeature .debate-critico-lecturas summary{
  display:flex;
  justify-content:space-between;
  padding:19px 0;
  color:#f4eee4;
  font:600 .7rem/1.3 'Space Grotesk',monospace;
  letter-spacing:.11em;
  text-transform:uppercase;
  list-style:none;
}
.ed-ficha .ed-criticalFeature .controversia-subsection summary::after,
.ed-ficha .ed-criticalFeature .debate-critico-lecturas summary::after{
  content:"+";
  color:var(--ed-accent,#d9aa3f);
  font:400 1.25rem/1 'Instrument Serif',Georgia,serif;
}
.ed-ficha .ed-criticalFeature .controversia-subsection[open] summary::after,
.ed-ficha .ed-criticalFeature .debate-critico-lecturas[open] summary::after{ content:"\2212"; }
.ed-ficha .ed-criticalFeature .controversia-subsection-body,
.ed-ficha .ed-criticalFeature .debate-critico-lecturas ul{
  width:100%;
  max-width:82ch;
  margin:0;
  padding:0 0 28px;
}
.ed-ficha .ed-criticalFeature .controversia-subsection-body .controversia-textBlock,
.ed-ficha .ed-criticalFeature .controversia-subsection-body .controversia-texto,
.ed-ficha .ed-criticalFeature .controversia-subsection-body .controversia-sublist{
  width:100%;
  max-width:82ch;
  margin-left:0;
  margin-right:auto;
}

@media (max-width:720px){
  .ed-ficha .ed-criticalDossier-head{ display:block; }
  .ed-ficha .ed-criticalDossier-deck{ margin-top:18px; }
  .ed-ficha .ed-criticalFeature .controversia-card,
  .ed-ficha .ed-criticalFeature .debate-critico-card{ display:block; }
  .ed-ficha .ed-criticalFeature .controversia-header,
  .ed-ficha .ed-criticalFeature .debate-critico-header{ margin-bottom:26px; }
  .ed-ficha .ed-criticalFeature > .controversia-card > .controversia-criterios,
  .ed-ficha .ed-criticalFeature .debate-critico-temas-list{ display:block; }
  .ed-ficha .ed-criticalFeature .controversia-tick{ height:10px; }
}

/* Secuencias: cronologia editorial compartida por todos los modelos */
.ed-ficha .ed-sequencesBlock{
  margin-top:clamp(48px,7vw,82px);
  padding-top:24px;
  border-top:1px solid var(--ed-line);
}
.ed-ficha .ed-sequencesHeading{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr) auto;
  align-items:end;
  gap:24px clamp(34px,6vw,76px);
  padding-bottom:clamp(34px,5vw,56px);
}
.ed-ficha .ed-sequencesKicker{
  margin:0 0 10px;
  color:var(--ed-accent,#d9aa3f);
  font:650 .67rem/1.3 'Space Grotesk',monospace;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.ed-ficha .ed-sequencesTitle{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  margin:0;
  color:#fbf6ee;
  font:400 clamp(1.85rem,2.8vw,2.45rem)/1 'Instrument Serif',Georgia,serif;
  letter-spacing:-.015em;
}
.ed-ficha .ed-sequencesDeck{
  max-width:28ch;
  margin:0;
  color:var(--ed-mut);
  font:400 clamp(1.22rem,2vw,1.65rem)/1.16 'Instrument Serif',Georgia,serif;
  text-wrap:balance;
}
.ed-ficha .ed-sequencesCount{
  color:var(--ed-mut2);
  font:400 2.4rem/1 'Instrument Serif',Georgia,serif;
}
.ed-ficha .ed-sequencesList{ border-bottom:1px solid var(--ed-line); }
.ed-ficha .ed-sequence{
  margin:0;
  border-top:1px solid var(--ed-line);
}
.ed-ficha .ed-sequenceSummary{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) auto 22px;
  align-items:center;
  gap:20px;
  padding:24px 0;
  cursor:pointer;
  list-style:none;
}
.ed-ficha .ed-sequenceSummary::-webkit-details-marker,
.ed-ficha .ed-seqStep summary::-webkit-details-marker{ display:none; }
.ed-ficha .ed-sequenceRoman{
  color:var(--ed-accent,#d9aa3f);
  font:400 1.65rem/1 'Instrument Serif',Georgia,serif;
}
.ed-ficha .ed-sequenceTitle{
  color:#f4eee4;
  font:400 clamp(1.28rem,2vw,1.7rem)/1.12 'Instrument Serif',Georgia,serif;
  text-wrap:balance;
}
.ed-ficha .ed-sequenceMeta{
  color:var(--ed-mut2);
  font:600 .64rem/1.3 'Space Grotesk',monospace;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.ed-ficha .ed-sequenceToggle,
.ed-ficha .ed-seqStepToggle{
  position:relative;
  width:18px;
  height:18px;
}
.ed-ficha .ed-sequenceToggle::before,
.ed-ficha .ed-sequenceToggle::after,
.ed-ficha .ed-seqStepToggle::before,
.ed-ficha .ed-seqStepToggle::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:12px;
  height:1px;
  background:var(--ed-accent,#d9aa3f);
  transform:translate(-50%,-50%);
  transition:transform .18s ease;
}
.ed-ficha .ed-sequenceToggle::after,
.ed-ficha .ed-seqStepToggle::after{ transform:translate(-50%,-50%) rotate(90deg); }
.ed-ficha .ed-sequence[open] > summary .ed-sequenceToggle::after,
.ed-ficha .ed-seqStep[open] > summary .ed-seqStepToggle::after{ transform:translate(-50%,-50%) rotate(0); }
.ed-ficha .ed-sequenceBody{
  display:grid;
  grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);
  gap:clamp(32px,6vw,78px);
  padding:8px 0 clamp(42px,6vw,68px) 76px;
}
.ed-ficha .ed-sequenceDesc{
  margin:0;
  color:var(--ed-mut);
  font-size:.96rem;
  line-height:1.62;
  text-wrap:pretty;
}
.ed-ficha .ed-sequenceSteps{ counter-reset:sequence-step; }
.ed-ficha .ed-seqStep{
  margin:0;
  border-top:1px solid var(--ed-line);
}
.ed-ficha .ed-seqStep:last-child{ border-bottom:1px solid var(--ed-line); }
.ed-ficha .ed-seqStep > summary{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 20px;
  align-items:start;
  gap:16px;
  padding:18px 0;
  cursor:pointer;
  list-style:none;
}
.ed-ficha .ed-seqStep[data-noexp="1"] > summary{ cursor:default; }
.ed-ficha .ed-seqStepNum{
  color:var(--ed-accent,#d9aa3f);
  font:500 .7rem/1.5 'Space Grotesk',monospace;
  letter-spacing:.08em;
}
.ed-ficha .ed-seqStepTitle{
  color:#f4eee4;
  font-size:.94rem;
  font-weight:600;
  line-height:1.45;
}
.ed-ficha .ed-seqStepBody{
  margin-left:60px;
  padding:0 20px 22px 0;
  color:var(--ed-mut);
  font-size:.9rem;
  line-height:1.62;
}
.ed-ficha .ed-seqStepBody p{ margin:0; }
.ed-ficha .ed-seqProcesses{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:16px;
}
.ed-ficha .ed-seqProcesses span{
  padding:5px 9px;
  border:1px solid color-mix(in srgb,var(--ed-accent,#d9aa3f) 26%,transparent);
  border-radius:999px;
  color:var(--ed-mut2);
  font:600 .61rem/1.2 'Space Grotesk',monospace;
  letter-spacing:.06em;
}
.ed-ficha .ed-sequenceSteps.is-cyclic .ed-seqStepNum::after{
  content:" \21bb";
  color:var(--ed-mut2);
}
.ed-ficha .ed-sequenceEmpty{ margin:0; color:var(--ed-mut2); }
body.theme-light .ed-ficha .ed-sequencesTitle,
body.theme-light .ed-ficha .ed-sequenceTitle,
body.theme-light .ed-ficha .ed-seqStepTitle{ color:#20242c; }

@media (max-width:760px){
  .ed-ficha .ed-sequencesHeading{ grid-template-columns:1fr auto; }
  .ed-ficha .ed-sequencesDeck{ grid-column:1 / -1; grid-row:2; }
  .ed-ficha .ed-sequencesCount{ grid-column:2; grid-row:1; }
  .ed-ficha .ed-sequenceSummary{
    grid-template-columns:38px minmax(0,1fr) 20px;
    gap:13px;
  }
  .ed-ficha .ed-sequenceMeta{ grid-column:2; margin-top:-8px; }
  .ed-ficha .ed-sequenceToggle{ grid-column:3; grid-row:1; }
  .ed-ficha .ed-sequenceBody{ display:block; padding:4px 0 38px 51px; }
  .ed-ficha .ed-sequenceDesc{ margin-bottom:28px; }
  .ed-ficha .ed-seqStepBody{ margin-left:46px; }
}
.ed-influences{ margin-top:30px; }
.ed-lineage{ margin-bottom:28px; }
.ed-lineage h4{
  margin-bottom:8px;
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 72%,#ffffff 28%);
}
.ed-lineage p{
  margin:0;
  color:var(--ed-mut);
  font-size:1rem;
  line-height:1.55;
}
/* Captura de email al pie de la ficha (Fase 0.2, tercer emplazamiento).
   El componente `.lista-espera` toma su color del contexto; aqui se le pasa la
   paleta editorial de la ficha para que no imponga la suya. Es el ultimo
   capitulo, asi que se le quita el borde inferior. */
.ed-listaEspera{
  border-bottom:0;
  background:#0e0c10;
}
.ed-listaEspera .lista-espera{
  --le-tinta:var(--ed-ink);
  --le-suave:var(--ed-mut);
  --le-acento:var(--ed-accent,#cfb487);
  --le-linea:var(--ed-line);
  --le-fondo:rgba(244,238,228,0.04);
  max-width:520px;
}
.ed-listaEspera .lista-espera-titulo{
  font-family:'Instrument Serif',Georgia,serif;
  color:#fbf6ee;
}

.ed-refs{
  margin-top:36px;
  padding-top:24px;
  border-top:1px solid var(--ed-line);
}
.ed-refs h4{
  margin-bottom:22px;
}
.ed-refs .mp-list{
  counter-reset:ed-ref;
  list-style:none;
  padding:0;
  margin:0;
}
.ed-refs .mp-list li{
  counter-increment:ed-ref;
  display:grid;
  grid-template-columns:22px 1fr;
  gap:0 12px;
  padding:13px 0;
  border-bottom:1px solid var(--ed-line);
  color:var(--ed-mut);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.93rem;
  line-height:1.62;
  margin:0;
}
.ed-refs .mp-list li::before{
  content:counter(ed-ref);
  font-family:'Space Grotesk',monospace;
  font-size:0.65rem;
  font-weight:700;
  line-height:1;
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 70%,transparent);
  padding-top:4px;
}

/* Influence graph */
.ed-ficha .mp-influenceGraph{
  margin:0 0 10px;
  padding:28px 32px 34px;
  border:1px solid rgba(244,238,228,0.13);
  border-radius:22px;
  background:#0f0d10;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.025);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.ed-ficha .mp-influenceGraph > .mp-influenceGraphDots{ display:none; }
.ed-ficha .mp-influenceGraphHead{ margin-bottom:26px; }
.ed-ficha .mp-influenceGraphLabel{
  color:rgba(244,238,228,0.36);
  font-family:'Space Grotesk',monospace;
  font-size:0.62rem;
  font-weight:650;
  letter-spacing:0.16em;
}
.ed-ficha .mp-influenceGraphLabel.is-center{
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 78%,#ffffff 22%);
}
.ed-ficha .mp-influenceGraphStage{ min-height:390px; }
.ed-ficha .mp-influenceEdge{
  stroke:color-mix(in srgb,var(--ed-accent,#ff7a4d) 70%,transparent);
  stroke-width:1.25;
  opacity:0.82;
}
.ed-ficha .mp-influenceEdge.is-down{
  stroke:color-mix(in srgb,var(--ed-accent,#ff7a4d) 82%,transparent);
  stroke-width:1.3;
}
.ed-ficha .mp-influenceEdge.is-ep{
  stroke:rgba(244,238,228,0.34);
  stroke-width:1;
  stroke-dasharray:3 5;
  opacity:0.82;
}
.ed-ficha .mp-influenceConnector{
  fill:color-mix(in srgb,var(--ed-accent,#ff7a4d) 78%,#ffffff 22%);
  stroke:#0f0d10;
}
.ed-ficha .mp-influenceArrow{
  fill:color-mix(in srgb,var(--ed-accent,#ff7a4d) 82%,#ffffff 18%);
}
.ed-ficha .mp-influenceNode{
  width:min(220px,31%);
  min-height:68px;
  padding:14px 18px;
  border:1px solid rgba(244,238,228,0.16);
  border-radius:14px;
  background:#17131b;
  color:#f4eee4;
  box-shadow:none;
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:0.93rem;
  font-weight:700;
  line-height:1.28;
}
.ed-ficha .mp-influenceNode:hover,
.ed-ficha .mp-influenceNode:focus-visible{
  border-color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 56%,rgba(244,238,228,0.22));
  background:color-mix(in srgb,var(--ed-accent,#ff7a4d) 8%,#17131b);
  box-shadow:0 16px 36px rgba(0,0,0,0.28);
}
.ed-ficha .mp-influenceNode.is-center{
  width:min(280px,38%);
  min-height:82px;
  border-color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 72%,transparent);
  background:color-mix(in srgb,var(--ed-accent,#ff7a4d) 12%,#17100f);
  color:#fbf6ee;
  box-shadow:
    0 0 0 6px color-mix(in srgb,var(--ed-accent,#ff7a4d) 8%,transparent),
    0 16px 34px rgba(0,0,0,0.26);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.2rem;
  font-weight:400;
}
.ed-ficha .mp-influenceNodeKicker{
  display:block;
  margin-bottom:5px;
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 82%,#ffffff 18%);
  font-family:'Space Grotesk',monospace;
  font-size:0.56rem;
  font-weight:650;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.ed-ficha .mp-influenceNode.is-epistemology{
  width:min(210px,25%);
  min-height:36px;
  padding:9px 14px;
  border-color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 48%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--ed-accent,#ff7a4d) 9%,#17131b);
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 72%,#ffffff 28%);
  font-size:0.76rem;
}
.ed-ficha .mp-influenceNode[data-has-justification="1"]::after{
  background:var(--ed-accent,#ff7a4d);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ed-accent,#ff7a4d) 12%,transparent);
}
.ed-ficha .mp-influenceJustificationTooltip{
  border-color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 35%,rgba(244,238,228,0.14));
  background:rgba(15,13,16,0.97);
  color:var(--ed-ink);
  font-size:0.86rem;
}

@media (max-width:720px){
  .ed-ficha .mp-influenceGraph{ padding:22px 14px 26px; }
  .ed-ficha .influence-graph-track .mp-influenceGraphStage{ min-height:390px; }
  .ed-ficha .influence-graph-track .mp-influenceNode{
    width:min(210px,31%);
    font-size:0.9rem;
  }
  .ed-ficha .influence-graph-track .mp-influenceNode.is-center{
    width:min(270px,38%);
    font-size:1.12rem;
  }
  .ed-ficha .influence-graph-track .mp-influenceNode.is-epistemology{
    width:min(200px,25%);
    font-size:0.72rem;
  }
}

/* accordions (reusan acc()) */
.ed-acc{ display:flex; flex-direction:column; gap:16px; margin-top:14px; }
.ed-ficha .ed-acc details{ margin:0; border:1px solid var(--ed-line); border-radius:14px; background:rgba(255,255,255,0.018); overflow:hidden; }
.ed-ficha .ed-acc details[open]{ border-color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 40%,transparent); background:color-mix(in srgb,var(--ed-accent,#ff7a4d) 6%,rgba(255,255,255,0.02)); }
.ed-ficha .ed-acc summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 20px; font-family:'Hanken Grotesk',sans-serif; font-size:1.14rem; line-height:1.3; font-weight:700; color:#f4eee4; }
.ed-ficha .ed-acc summary::-webkit-details-marker{ display:none; }
.ed-ficha .ed-acc .sumRight{ display:flex; align-items:center; gap:10px; }
.ed-ficha .ed-acc .sumCount{ font-family:'Space Grotesk',monospace; font-size:0.84rem; color:var(--ed-mut2); }
.ed-ficha .ed-acc .chev{ color:var(--ed-accent,#ff7a4d); transition:transform .2s ease; }
.ed-ficha .ed-acc details[open] .chev{ transform:rotate(180deg); }
.ed-ficha .ed-acc > details > .body{
  padding:4px 18px 18px;
  font-size:1rem;
  line-height:1.65;
}
.ed-ficha .ed-allianceList,.ed-ficha .ed-neimeyerList{ display:grid; margin-top:4px; }
.ed-ficha .ed-allianceItem,.ed-ficha .ed-neimeyerItem{ display:grid; grid-template-columns:42px minmax(0,1fr); gap:14px 18px; padding:24px 0 26px; border-top:1px solid var(--ed-line); }
.ed-ficha .ed-allianceItem:first-child,.ed-ficha .ed-neimeyerItem:first-child{ border-top:0; padding-top:14px; }
.ed-ficha .ed-allianceIndex,.ed-ficha .ed-neimeyerIndex{ grid-column:1; padding-top:5px; color:var(--ed-accent); font:650 .68rem/1 'Space Grotesk',monospace; letter-spacing:.12em; }
.ed-ficha .ed-allianceTitle,.ed-ficha .ed-neimeyerTitle{ grid-column:2; margin:0; color:#f4eee4; font:400 clamp(1.35rem,1.1rem + .6vw,1.85rem)/1.08 'Instrument Serif',Georgia,serif; letter-spacing:-.015em; }
.ed-ficha .ed-allianceText,.ed-ficha .ed-neimeyerText{ grid-column:2; margin:0; max-width:1180px; color:var(--ed-mut); font-size:1rem; line-height:1.7; white-space:pre-wrap; text-wrap:pretty; }
.ed-ficha .ed-acc .mp-sub{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.ed-ficha .ed-acc .mp-sub details{
  margin:0;
  border-radius:13px;
}
.ed-ficha .ed-acc .mp-sub summary{
  padding:17px 18px;
  font-size:1.08rem;
}
.ed-ficha .ed-acc .mp-sub .subBody{
  padding:0 18px 18px;
  font-size:0.98rem;
  line-height:1.65;
}

@media (max-width:620px){
  .ed-acc{ gap:12px; }
  .ed-ficha .ed-acc summary{ padding:16px; font-size:1.06rem; }
  .ed-ficha .ed-acc > details > .body{ padding:3px 12px 14px; }
  .ed-ficha .ed-acc .mp-sub{ gap:10px; }
  .ed-ficha .ed-acc .mp-sub summary{ padding:15px; font-size:1rem; }
  .ed-ficha .ed-acc .mp-sub .subBody{ padding:0 15px 15px; font-size:0.94rem; }
  .ed-ficha .ed-allianceItem,.ed-ficha .ed-neimeyerItem{ grid-template-columns:30px minmax(0,1fr); gap:10px 12px; padding:20px 0 22px; }
  .ed-ficha .ed-allianceText,.ed-ficha .ed-neimeyerText{ font-size:.95rem; line-height:1.65; }
}
@media (max-width:760px){
  .ed-changeTheoryExplanation{ grid-template-columns:1fr; gap:10px; margin:30px 0 42px; }
  .ed-changeTheoryExplanation-kicker,
  .ed-changeTheoryExplanation h3,
  .ed-changeTheoryExplanation > p:last-child{ grid-column:1; grid-row:auto; }
}

/* location card · texto superpuesto sobre el mapa */
.ed-loc{ position:relative; margin:0 0 30px; }
.ed-loc-map.mp-locationCard{
  position:relative;
  display:block;
  width:100%;
  height:clamp(280px, 38vh, 420px);
  min-height:0;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--ed-line);
  background:#0c0a10;
}
.ed-loc-map .mp-changeTheory-mapFrame{
  height:100%;
  min-height:0;
  aspect-ratio:auto;
}
.ed-loc::after{ content:""; position:absolute; bottom:0; left:0; right:0; height:62%; background:linear-gradient(to top,rgba(6,4,12,0.94) 0%,rgba(6,4,12,0.52) 54%,transparent 100%); border-radius:0 0 18px 18px; z-index:1; pointer-events:none; }
.ed-loc-text{ position:absolute; bottom:0; left:0; right:0; z-index:2; padding:20px 24px; display:flex; flex-direction:column; }
.ed-loc-kicker{ margin:0 0 8px; font-family:'Space Grotesk',monospace; font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--ed-accent,#ff7a4d); }
.ed-loc-place{ margin:0; font-family:'Instrument Serif',Georgia,serif; font-size:clamp(1.45rem,2vw,2rem); line-height:1.05; color:#fbf6ee; }
.ed-loc-coords{ margin:8px 0 0; font-family:'Space Grotesk',monospace; font-size:0.8rem; color:var(--ed-mut2); }
.ed-loc-year{
  position:absolute;
  right:24px;
  bottom:20px;
  z-index:3;
  color:rgba(251,246,238,0.88);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(2.4rem,5.4vw,5rem);
  font-weight:400;
  line-height:.8;
  letter-spacing:0;
  text-shadow:0 18px 34px rgba(0,0,0,0.52);
  pointer-events:none;
}
@media (max-width:760px){ .ed-loc-map.mp-locationCard{ height:240px; } .ed-loc-text{ padding:16px 18px; padding-right:112px; } .ed-loc-place{ font-size:1.45rem; } .ed-loc-year{ right:18px; bottom:16px; font-size:2.6rem; } }

/* ===== EDITORIAL SKIN · Marco histórico ===== */
.ed-ficha .mp-contextOriginApple{
  max-width:none;
  margin-top:32px;
  padding-top:34px;
  border-top:1px solid var(--ed-line);
}
.ed-ficha .mp-contextOriginApple .mp-contextOrigin-head{
  margin-bottom:22px;
  align-items:center;
}
.ed-ficha .mp-contextOriginApple .mp-contextOrigin-eyebrow{
  font-family:'Space Grotesk',monospace;
  font-size:0.7rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ed-accent,#ff7a4d);
}
.ed-ficha .mp-contextOriginApple .mp-contextOrigin-rule{
  background:linear-gradient(90deg,color-mix(in srgb,var(--ed-accent,#ff7a4d) 40%,transparent),transparent);
}
.ed-ficha .mp-contextOriginApple .mp-contextOrigin-title{
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;
  font-size:clamp(2.8rem,5.6vw,4.6rem);
  line-height:.96;
  letter-spacing:-.01em;
  color:#fbf6ee;
  margin:0;
}
.ed-ficha .mp-contextOriginApple .mp-contextOrigin-title em{
  font-weight:400;
}
.ed-ficha .mp-contextOrigin-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
  margin-bottom:36px;
}
.ed-ficha .mp-contextOriginApple .mp-contextOrigin-subtitle{
  max-width:340px;
  margin:0;
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:1.04rem;
  line-height:1.5;
  color:var(--ed-mut);
  font-weight:400;
}
.ed-ficha .mp-co-layout{
  display:grid;
  grid-template-columns:288px minmax(0,1fr);
  gap:clamp(36px,4.5vw,68px);
  align-items:start;
  padding-top:20px;
  border-top:1px solid var(--ed-line);
}
.ed-ficha .mp-co-tabs{
  position:sticky;
  top:88px;
  display:flex;
  flex-direction:column;
  overflow:visible;
  max-width:none;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.ed-ficha .mp-co-indexLabel{
  margin:0 0 18px;
  color:var(--ed-mut2);
  font-family:'Space Grotesk',monospace;
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ed-ficha .mp-co-tab{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:14px;
  align-items:baseline;
  justify-content:stretch;
  min-height:0;
  width:100%;
  padding:16px 4px 16px 14px;
  border:0;
  border-top:1px solid var(--ed-line);
  border-left:2px solid rgba(243,236,226,.12);
  border-radius:0;
  background:transparent;
  color:inherit;
  text-align:left;
  transition:background .15s ease,border-color .15s ease;
}
.ed-ficha .mp-co-tab + .mp-co-tab{
  border-left:2px solid rgba(243,236,226,.12);
}
.ed-ficha .mp-co-tab:hover{
  background:rgba(255,255,255,.03);
}
.ed-ficha .mp-co-tabRoman{
  color:rgba(243,236,226,.34);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.5rem;
  font-style:italic;
  line-height:.9;
}
.ed-ficha .mp-co-tabCopy{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.ed-ficha .mp-co-tabName{
  color:rgba(243,236,226,.74);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.32rem;
  line-height:1.02;
}
.ed-ficha .mp-co-tabRole{
  color:rgba(243,236,226,.4);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:.82rem;
  font-weight:400;
  line-height:1.3;
  letter-spacing:0;
  text-transform:none;
  white-space:normal;
}
.ed-ficha .mp-co-article{
  min-width:0;
}
.ed-ficha .mp-co-hero{
  position:relative;
  display:flex;
  width:100%;
  min-height:clamp(380px,34vw,560px);
  aspect-ratio:auto;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(243,236,226,.14);
  border-radius:16px;
  background:#151014;
  box-shadow:0 34px 80px rgba(0,0,0,.55);
}
.ed-ficha .mp-co-image img{
  opacity:1;
  filter:saturate(.94) contrast(1.02) brightness(.92);
}
.ed-ficha .mp-co-image img.is-context-header-zoom{
  transform:scale(2);
  transform-origin:left center;
  object-position:left center;
}
.ed-ficha .mp-co-image::after{
  background:
    linear-gradient(95deg,rgba(11,10,12,.99) 0%,rgba(11,10,12,.95) 30%,rgba(11,10,12,.74) 48%,rgba(11,10,12,.32) 64%,rgba(11,10,12,.05) 80%,transparent 92%),
    linear-gradient(to top,rgba(11,10,12,.5),transparent 38%);
}
.ed-ficha .mp-co-copy{
  position:relative;
  z-index:3;
  display:flex;
  width:min(600px,62%);
  max-width:none;
  margin:0;
  flex-direction:column;
  justify-content:center;
  padding:clamp(26px,3.4vw,52px);
  pointer-events:none;
}
.ed-ficha .mp-co-text{
  display:none;
  color:rgba(243,236,226,.88);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:clamp(.96rem,1.05vw,1.06rem);
  line-height:1.68;
  text-wrap:pretty;
  text-shadow:0 1px 12px rgba(0,0,0,.85);
}
.ed-ficha .mp-co-textBody::first-letter{
  float:left;
  padding:7px 14px 0 0;
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 78%,#ffffff 22%);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:3.7rem;
  line-height:.7;
}
.ed-ficha .mp-co-textBody{
  margin:0;
}
.ed-ficha .mp-co-textKicker{
  display:flex;
  align-items:center;
  gap:11px;
  margin:0 0 14px;
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 68%,#ffffff 32%);
  font-family:'Space Grotesk',monospace;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,.8);
}
.ed-ficha .mp-co-textKicker::after{
  content:"";
  width:18px;
  height:1px;
  background:currentColor;
  opacity:.6;
}
.ed-ficha .mp-co-textLead{
  margin:0 0 20px;
  color:#f8f2e9;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:clamp(1.7rem,2.7vw,2.5rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.01em;
  text-wrap:balance;
  text-shadow:0 2px 18px rgba(0,0,0,.75);
}
/* timeline horizontal al pie de la imagen de época */
.ed-ficha .mp-co-timeline{
  top:auto;
  left:clamp(32px,5.5vw,64px);
  right:clamp(32px,5.5vw,64px);
  bottom:0;
  width:auto;
  height:48px;
  padding:0;
  border:none;
  border-radius:0;
  background:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:none;
  overflow:visible;
  z-index:4;
  opacity:1;
}
/* el track aparece solo en la zona fotográfica (derecha), no sobre el texto */
.ed-ficha .mp-co-timelineTrack{
  top:36px;
  bottom:auto;
  left:0;
  right:0;
  width:auto;
  height:1px;
  background:linear-gradient(90deg,transparent 55%,rgba(243,236,226,.38) 68%,rgba(243,236,226,.38) 97%,transparent);
  box-shadow:none;
}
/* ticks ocultos: el badge solo ya comunica el año */
.ed-ficha .mp-co-timelineTick{
  display:none;
}
.ed-ficha .mp-co-timelineYear{
  top:0;
  left:auto;
  right:auto;
  /* left:X% llega del atributo inline del JS */
  transform:translateX(-50%);
  min-width:44px;
  padding:5px 10px;
  border:1px solid color-mix(in srgb,var(--ed-accent,#ff7a4d) 50%,rgba(255,255,255,.12));
  border-radius:7px;
  background:rgba(8,7,10,.93);
  color:color-mix(in srgb,var(--ed-accent,#ff7a4d) 78%,#ffffff 22%);
  font-family:'Space Grotesk',monospace;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.1;
  text-align:center;
  text-shadow:none;
  box-shadow:0 4px 16px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.04);
  white-space:nowrap;
}
/* stem fino que conecta el badge con el track */
.ed-ficha .mp-co-timelineYear::before{
  content:"";
  position:absolute;
  bottom:-14px;
  left:50%;
  right:auto;
  top:auto;
  width:1px;
  height:14px;
  border-radius:0;
  background:color-mix(in srgb,var(--ed-accent,#ff7a4d) 55%,transparent);
  border:none;
  box-shadow:none;
  transform:translateX(-50%);
}
.ed-ficha .mp-co-timelineYear::after{
  display:none;
}

.ed-ficha .mp-co-radio[data-key="vida"]:checked ~ .mp-co-layout .mp-co-image[data-key="vida"],
.ed-ficha .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-layout .mp-co-image[data-key="epoca"],
.ed-ficha .mp-co-radio[data-key="problema"]:checked ~ .mp-co-layout .mp-co-image[data-key="problema"],
.ed-ficha .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-layout .mp-co-image[data-key="estilo"],
.ed-ficha .mp-co-radio[data-key="vida"]:checked ~ .mp-co-layout .mp-co-text[data-key="vida"],
.ed-ficha .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-layout .mp-co-text[data-key="epoca"],
.ed-ficha .mp-co-radio[data-key="problema"]:checked ~ .mp-co-layout .mp-co-text[data-key="problema"],
.ed-ficha .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-layout .mp-co-text[data-key="estilo"]{
  display:block;
}
.ed-ficha .mp-co-radio[data-key="vida"]:checked ~ .mp-co-layout .mp-co-tab[data-key="vida"],
.ed-ficha .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-layout .mp-co-tab[data-key="epoca"],
.ed-ficha .mp-co-radio[data-key="problema"]:checked ~ .mp-co-layout .mp-co-tab[data-key="problema"],
.ed-ficha .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-layout .mp-co-tab[data-key="estilo"]{
  border-left-color:var(--ed-accent,#ff7a4d);
  border-radius:0;
  background:color-mix(in srgb,var(--ed-accent,#ff7a4d) 6%,transparent);
  box-shadow:none;
}
.ed-ficha .mp-co-radio[data-key="vida"]:checked ~ .mp-co-layout .mp-co-tab[data-key="vida"] .mp-co-tabRoman,
.ed-ficha .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-layout .mp-co-tab[data-key="epoca"] .mp-co-tabRoman,
.ed-ficha .mp-co-radio[data-key="problema"]:checked ~ .mp-co-layout .mp-co-tab[data-key="problema"] .mp-co-tabRoman,
.ed-ficha .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-layout .mp-co-tab[data-key="estilo"] .mp-co-tabRoman{
  color:var(--ed-accent,#ff7a4d);
}
.ed-ficha .mp-co-radio[data-key="vida"]:checked ~ .mp-co-layout .mp-co-tab[data-key="vida"] .mp-co-tabName,
.ed-ficha .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-layout .mp-co-tab[data-key="epoca"] .mp-co-tabName,
.ed-ficha .mp-co-radio[data-key="problema"]:checked ~ .mp-co-layout .mp-co-tab[data-key="problema"] .mp-co-tabName,
.ed-ficha .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-layout .mp-co-tab[data-key="estilo"] .mp-co-tabName{
  color:#f8f2e9;
}
.ed-ficha .mp-co-radio[data-key="vida"]:checked ~ .mp-co-layout .mp-co-tab[data-key="vida"] .mp-co-tabRole,
.ed-ficha .mp-co-radio[data-key="epoca"]:checked ~ .mp-co-layout .mp-co-tab[data-key="epoca"] .mp-co-tabRole,
.ed-ficha .mp-co-radio[data-key="problema"]:checked ~ .mp-co-layout .mp-co-tab[data-key="problema"] .mp-co-tabRole,
.ed-ficha .mp-co-radio[data-key="estilo"]:checked ~ .mp-co-layout .mp-co-tab[data-key="estilo"] .mp-co-tabRole{
  color:rgba(243,236,226,.6);
}

@media (max-width:900px){
  .ed-ficha .mp-co-layout{
    grid-template-columns:220px minmax(0,1fr);
    gap:28px;
  }
  /* texto más ancho para que no quede demasiado estrecho/vertical */
  .ed-ficha .mp-co-copy{
    width:min(520px,80%);
  }
  /* la timeline en espacio estrecho se oculta para no solaparse con el texto */
  .ed-ficha .mp-co-timeline{
    display:none;
  }
}

@media (max-width:760px){
  .ed-ficha .mp-contextOrigin-heading{
    margin-bottom:28px;
  }
  .ed-ficha .mp-contextOriginApple .mp-contextOrigin-title{
    font-size:clamp(2.5rem,13vw,3.4rem);
  }
  .ed-ficha .mp-co-layout{
    display:block;
  }
  .ed-ficha .mp-co-tabs{
    position:static;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-bottom:22px;
  }
  .ed-ficha .mp-co-indexLabel{
    grid-column:1 / -1;
  }
  .ed-ficha .mp-co-tab{
    grid-template-columns:25px minmax(0,1fr);
    gap:8px;
    padding:13px 8px;
  }
  .ed-ficha .mp-co-tab + .mp-co-tab{
    border-left:2px solid rgba(243,236,226,.12);
  }
  .ed-ficha .mp-co-tabRoman{
    font-size:1.2rem;
  }
  .ed-ficha .mp-co-tabName{
    font-size:1.08rem;
  }
  .ed-ficha .mp-co-tabRole{
    display:none;
  }
  .ed-ficha .mp-co-hero{
    min-height:520px;
    aspect-ratio:auto;
  }
  .ed-ficha .mp-co-image img{
    object-position:center;
  }
  .ed-ficha .mp-co-image::after{
    background:
      linear-gradient(180deg,rgba(11,10,12,.22),rgba(11,10,12,.84) 48%,rgba(11,10,12,.98) 100%),
      linear-gradient(to right,rgba(11,10,12,.55),transparent 75%);
  }
  .ed-ficha .mp-co-copy{
    align-self:flex-end;
    width:100%;
    padding:26px 22px 30px;
  }
  .ed-ficha .mp-co-textLead{
    font-size:1.7rem;
  }
}

/* ===== EDITORIAL SKIN · tarjetas de modelo (solo lista estandar) ===== */
/* ===== Smartphone: controles de ficha sin solapes ===== */
@media (max-width:620px){
  body.model-info-open{
    --mobile-action-h: 58px;
  }

  body.model-info-open .panel.right,
  body.infoFull .panel.right{
    padding-bottom:calc(var(--mobile-action-h) + env(safe-area-inset-bottom) + 18px) !important;
  }

  body.model-info-open .modelCloseBtn{
    display:flex;
    position:fixed;
    left:max(12px, env(safe-area-inset-left));
    right:auto;
    top:auto;
    bottom:max(10px, env(safe-area-inset-bottom));
    z-index:1000004;
    width:44px;
    min-width:44px;
    height:44px;
    padding:0;
    gap:0;
    border-radius:999px;
    border:1px solid rgba(243,236,226,.2);
    background:rgba(11,10,12,.82);
    color:#f8f2e9;
    box-shadow:0 12px 28px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter:blur(14px) saturate(116%);
    -webkit-backdrop-filter:blur(14px) saturate(116%);
    align-items:center;
    justify-content:center;
    font-family:'Hanken Grotesk',system-ui,sans-serif;
    font-size:0;
  }

  body.model-info-open .modelCloseBtn::after{
    content:none;
  }

  body.model-info-open .modelCloseBtn svg{
    width:18px;
    height:18px;
  }

  body.model-info-open .modelCloseBtn:hover,
  body.model-info-open .modelCloseBtn:focus-visible{
    border-color:rgba(217,170,63,.42);
    background:rgba(20,16,20,.96);
    outline:none;
  }

  body.model-info-open .authUserMenu{
    top:auto;
    right:max(12px, env(safe-area-inset-right));
    bottom:max(10px, env(safe-area-inset-bottom));
    z-index:1000004;
  }

  body.model-info-open .authMenuButton{
    width:44px;
    height:44px;
    border-color:rgba(243,236,226,.2);
    background:rgba(11,10,12,.82);
    box-shadow:0 12px 28px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05);
  }

  body.model-info-open .authMenuDropdown{
    top:auto;
    right:0;
    bottom:54px;
    min-width:190px;
    border-color:rgba(243,236,226,.18);
    background:rgba(11,10,12,.96);
  }

  body.model-info-open .authMenuItem{
    min-height:42px;
    color:rgba(243,236,226,.88);
    font-size:0.9rem;
  }

  body.infoFull .mp-fullBtn{
    display:none !important;
  }

  body.model-info-open #stickyModelHeader .smh-overlay,
  body.infoFull #stickyModelHeader .smh-overlay{
    grid-template-columns:1fr;
    gap:8px;
    min-height:0;
    padding:
      calc(10px + env(safe-area-inset-top))
      12px
      10px
      12px;
  }

  body.model-info-open #stickyModelHeader .smh-title{
    max-width:100%;
    font-size:1.04rem;
  }

  body.model-info-open #stickyModelHeader .smh-nav{
    width:100%;
    justify-content:flex-start;
    padding-bottom:1px;
  }

  body.model-info-open #stickyModelHeader .smh-navLink{
    padding:8px 11px;
    font-size:0.7rem;
  }

  .ed-ficha .mp-co-tabs{
    position:relative;
    top:auto;
    z-index:1;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:0 0 22px;
    padding:0;
  }

  .ed-ficha .mp-co-indexLabel{
    margin-bottom:12px;
  }
}

body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):not(.is-marco){
  height:98px; min-height:98px; border-radius:16px;
}
body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):not(.is-marco) .mi-shell{
  grid-template-columns:62px minmax(0,1fr); gap:13px; align-items:center;
}
body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):not(.is-marco) .mi-avatar{
  width:62px; height:84px; border-radius:11px;
}
body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):not(.is-marco) .mi-title{
  font-family:'Instrument Serif',Georgia,serif; font-size:15.5px; font-weight:400; letter-spacing:0; line-height:1.12;
}
body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):not(.is-marco) .mi-sub{
  font-family:'Hanken Grotesk',system-ui,sans-serif;
}
body:not(.network-mode) #modelsList .mi-item:not(.networkModeCard):not(.is-marco) .mi-year{
  font-family:'Space Grotesk',monospace; color:color-mix(in srgb, var(--schoolColor,#D9AA3F) 72%, #ffffff 28%);
}


/* ===== Arquitectura del modelo ===== */
.ed-ficha .ed-architecture{ padding-top:clamp(58px,8vw,104px); padding-bottom:clamp(64px,9vw,118px); border-top:1px solid var(--ed-line); }
.ed-ficha .ed-arch-head{ display:grid !important; grid-template-columns:minmax(0,1fr) minmax(260px,.58fr); column-gap:clamp(28px,6vw,92px); align-items:end; margin-bottom:42px; }
.ed-ficha .ed-arch-head .ed-chap-kicker{ grid-column:1/-1; margin:0 0 12px; }
.ed-ficha .ed-arch-head h2{ margin:0; font-family:'Instrument Serif',Georgia,serif; font-size:clamp(2.7rem,5.7vw,5.4rem); font-weight:400; line-height:.92; letter-spacing:-.035em; color:#f7f1e8; }
.ed-ficha .ed-arch-head > p:last-child{ margin:0 0 4px; color:var(--ed-mut2); font-size:1rem; line-height:1.58; }
.ed-ficha .ed-arch-tabsNav{
  position:sticky;
  top:0;
  z-index:70;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 38px;
  align-items:center;
  gap:8px;
  margin:0 0 18px;
  padding:10px 0 12px;
  border-bottom:1px solid color-mix(in srgb,var(--ed-accent) 28%,var(--ed-line));
  background:rgba(12,10,13,.96);
  box-shadow:0 12px 24px rgba(0,0,0,.2);
  backdrop-filter:blur(18px) saturate(112%);
  -webkit-backdrop-filter:blur(18px) saturate(112%);
  transition:top .16s ease;
}
#stickyModelHeader.is-on ~ #modelInfo .ed-arch-tabsNav{ top:62px; }
@media (max-width:620px){
  #stickyModelHeader.is-on ~ #modelInfo .ed-arch-tabsNav{
    top:calc(74px + env(safe-area-inset-top));
  }
}
.ed-ficha .ed-arch-tabs{ display:flex; gap:8px; overflow:auto hidden; padding:0; scroll-behavior:smooth; scrollbar-width:none; }
.ed-ficha .ed-arch-tabs::-webkit-scrollbar{ display:none; }
.ed-ficha .ed-arch-tabsArrow{ display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid color-mix(in srgb,var(--ed-accent) 34%,var(--ed-line)); border-radius:999px; background:#131015; color:color-mix(in srgb,var(--ed-accent) 78%,#fff 22%); font:400 1.15rem/1 'Hanken Grotesk',sans-serif; cursor:pointer; transition:border-color .16s ease,background .16s ease,opacity .16s ease; }
.ed-ficha .ed-arch-tabsArrow:hover:not(:disabled){ border-color:color-mix(in srgb,var(--ed-accent) 68%,transparent); background:color-mix(in srgb,var(--ed-accent) 9%,#131015); }
.ed-ficha .ed-arch-tabsArrow:disabled{ opacity:.24; cursor:default; }
.ed-ficha .ed-arch-tabsNav:not(.is-overflowing){ grid-template-columns:minmax(0,1fr); }
.ed-ficha .ed-arch-tabsNav:not(.is-overflowing) .ed-arch-tabsArrow{ display:none; }
.ed-ficha .ed-arch-tabs button{ flex:0 0 auto; border:1px solid var(--ed-line); border-radius:999px; padding:9px 15px; background:transparent; color:var(--ed-mut2); font:650 .78rem/1 'Hanken Grotesk',sans-serif; cursor:pointer; }
.ed-ficha .ed-arch-tabs button[aria-selected="true"]{ border-color:color-mix(in srgb,var(--ed-accent) 58%,transparent); background:color-mix(in srgb,var(--ed-accent) 10%,transparent); color:#f7f1e8; }
.ed-ficha .ed-arch-tabsNav.is-mobile-module-nav{
  grid-template-columns:38px minmax(0,1fr) 38px;
}
.ed-ficha .ed-arch-tabsNav.is-mobile-module-nav .ed-arch-tabsArrow{
  display:grid;
}
.ed-ficha .ed-arch-module{ border-top:1px solid color-mix(in srgb,var(--ed-accent) 54%,transparent); padding-top:30px; }
.ed-ficha .ed-arch-module[hidden]{ display:none; }
.ed-ficha .ed-arch-module > header{ display:grid !important; grid-template-columns:minmax(0,.8fr) minmax(280px,1.2fr); gap:10px 48px; margin-bottom:34px; }
.ed-ficha .ed-arch-module > header .ed-arch-type{ grid-column:1/-1; margin:0; font:700 .68rem/1 'Space Grotesk',monospace; letter-spacing:.16em; text-transform:uppercase; color:var(--ed-accent); }
.ed-ficha .ed-arch-module > header h3{ margin:0; font:400 clamp(2rem,3.8vw,3.5rem)/1 'Instrument Serif',Georgia,serif; color:#f7f1e8; }
.ed-ficha .ed-arch-module > header > p:last-child{ margin:0; color:var(--ed-mut); line-height:1.65; }
.ed-ficha .ed-arch-module > footer{ display:flex; gap:14px; margin-top:32px; padding-top:16px; border-top:1px solid var(--ed-line); color:var(--ed-mut2); font-size:.78rem; line-height:1.5; }
.ed-ficha .ed-arch-module > footer span,.ed-ficha .ed-arch-overline{ flex:0 0 auto; margin:0; font:700 .64rem/1.2 'Space Grotesk',monospace; letter-spacing:.13em; text-transform:uppercase; color:var(--ed-accent); }
.ed-ficha .ed-arch-taxonomy{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.ed-ficha .ed-arch-group{ min-width:0; }
.ed-ficha .ed-arch-group > .ed-arch-overline{ margin-bottom:12px; }
.ed-ficha .ed-arch-taxItem{ border-top:1px solid var(--ed-line); }
.ed-ficha .ed-arch-taxItem:last-child{ border-bottom:1px solid var(--ed-line); }
.ed-ficha .ed-arch-taxItem summary{ display:flex; justify-content:space-between; gap:18px; padding:17px 2px; list-style:none; cursor:pointer; color:#f2ece3; font:650 1rem/1.25 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-arch-taxItem summary::-webkit-details-marker{ display:none; }
.ed-ficha .ed-arch-plus{ color:var(--ed-accent); transition:transform .18s ease; }
.ed-ficha .ed-arch-taxItem[open] .ed-arch-plus{ transform:rotate(45deg); }
.ed-ficha .ed-arch-taxBody{ padding:0 24px 18px 0; color:var(--ed-mut2); font-size:.9rem; line-height:1.58; }
.ed-ficha .ed-arch-taxBody p{ margin:0 0 10px; }
.ed-ficha .ed-arch-taxBody strong{ display:block; margin-bottom:3px; color:var(--ed-mut); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.ed-ficha .ed-arch-hierarchy{ display:flex; flex-direction:column-reverse; gap:8px; margin:0; padding:0; list-style:none; }
.ed-ficha .ed-arch-hierarchy li{ display:grid; grid-template-columns:52px 1fr; gap:20px; align-self:center; padding:18px 22px; border:1px solid color-mix(in srgb,var(--ed-accent) var(--levelTone),var(--ed-line)); background:color-mix(in srgb,var(--ed-accent) var(--levelFill),rgba(255,255,255,.012)); }
.ed-ficha .ed-arch-index{ color:var(--ed-accent); font:600 .75rem/1.4 'Space Grotesk',monospace; }
.ed-ficha .ed-arch-hierarchy h4,.ed-ficha .ed-arch-cycle h4,.ed-ficha .ed-arch-map h4,.ed-ficha .ed-arch-tree h4,.ed-ficha .ed-arch-continuum h4{ margin:0; color:#f4eee5; font:650 1rem/1.25 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-arch-hierarchy p,.ed-ficha .ed-arch-cycle p,.ed-ficha .ed-arch-map p,.ed-ficha .ed-arch-tree p,.ed-ficha .ed-arch-continuum p{ margin:5px 0 0; color:var(--ed-mut2); font-size:.82rem; line-height:1.45; }
.ed-ficha .ed-arch-cycle{ position:relative; width:min(100%,900px); min-height:700px; border:1px solid var(--ed-line); border-radius:50%; margin:0 auto; }
.ed-ficha .ed-arch-cycleCore{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:120px; aspect-ratio:1; border:1px solid color-mix(in srgb,var(--ed-accent) 48%,transparent); border-radius:50%; color:var(--ed-accent); font:700 .7rem 'Space Grotesk',monospace; letter-spacing:.14em; text-transform:uppercase; }
.ed-ficha .ed-arch-cycle article{ position:absolute; z-index:1; left:50%; top:50%; width:205px; padding:14px; transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-285px) rotate(calc(var(--angle)*-1)); border-top:1px solid color-mix(in srgb,var(--ed-accent) 44%,transparent); background:var(--ed-bg,#0c0a0d); transition:box-shadow .18s ease,background .18s ease; }
.ed-ficha .ed-arch-cycle article:hover,.ed-ficha .ed-arch-cycle article:focus{ z-index:20; outline:none; background:var(--ed-bg,#0c0a0d); box-shadow:0 0 0 12px var(--ed-bg,#0c0a0d),0 18px 38px rgba(0,0,0,.48); }
.ed-ficha .ed-arch-cycle article > span{ color:var(--ed-accent); font:600 .65rem 'Space Grotesk',monospace; }
.ed-ficha .ed-arch-mapVisual{ display:grid; gap:22px; }
.ed-ficha .ed-arch-map{ position:relative; min-height:max(var(--map-min-height,600px),calc(var(--map-rows,4) * 108px + 76px)); margin:0 0 10px; border:1px solid rgba(244,238,228,.13); border-radius:22px; overflow:hidden; background:#0f0d10; box-shadow:inset 0 1px 0 rgba(255,255,255,.025); }
.ed-ficha .ed-arch-map::before{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 0,transparent 24.8%,rgba(244,238,228,.035) 25%,transparent 25.2%,transparent 49.8%,color-mix(in srgb,var(--ed-accent) 7%,transparent) 50%,transparent 50.2%,transparent 74.8%,rgba(244,238,228,.035) 75%,transparent 75.2%),radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--ed-accent) 7%,transparent),transparent 38%); }
.ed-ficha .ed-arch-map svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.ed-ficha .ed-arch-map path.ed-arch-edge{ fill:none; vector-effect:non-scaling-stroke; stroke:color-mix(in srgb,var(--ed-accent) 76%,#f4eee4 24%); stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; opacity:.88; filter:drop-shadow(0 0 3px color-mix(in srgb,var(--ed-accent) 30%,transparent)); }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-secondary{ stroke-dasharray:5 5; stroke-width:1.25; opacity:.58; filter:none; }
.ed-ficha .ed-arch-map circle{ fill:color-mix(in srgb,var(--ed-accent) 84%,#fff 16%); stroke:#0f0d10; stroke-width:2; }
.ed-ficha .ed-arch-map marker path{ fill:color-mix(in srgb,var(--ed-accent) 82%,#f4eee4 18%); }
.ed-ficha .ed-arch-map path.ed-arch-edge{ cursor:pointer; transition:opacity .18s ease,stroke-width .18s ease,filter .18s ease; pointer-events:stroke; }
.ed-ficha .ed-arch-map path.ed-arch-edgeHit{ fill:none; stroke:transparent; stroke-width:14; pointer-events:stroke; cursor:pointer; }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-dinamica,.ed-ficha .ed-arch-map path.ed-arch-edge.is-temporal{ stroke-dasharray:7 5; }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-asociativa{ stroke-dasharray:2 6; opacity:.62; }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-tension{ stroke:color-mix(in srgb,#d98288 74%,var(--ed-accent)); stroke-width:2.4; filter:drop-shadow(0 3px 0 color-mix(in srgb,#d98288 38%,transparent)); }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-regulacion{ stroke:color-mix(in srgb,#79b8aa 68%,var(--ed-accent)); }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-causal{ stroke:color-mix(in srgb,#d8a86f 72%,var(--ed-accent)); }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-simbolica{ stroke:color-mix(in srgb,#ac93d4 70%,var(--ed-accent)); }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-punteada{ stroke-dasharray:2 6; }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-discontinua{ stroke-dasharray:7 5; }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-doble{ stroke-width:2.4; filter:drop-shadow(0 3px 0 color-mix(in srgb,var(--ed-accent) 42%,transparent)); }
.ed-ficha .ed-arch-map.is-focus-active path.ed-arch-edge:not(.is-focus){ opacity:.12; filter:none; }
.ed-ficha .ed-arch-map path.ed-arch-edge.is-focus{ opacity:1; stroke-width:2.5; }
.ed-ficha .ed-arch-map .is-density-hidden:not(.is-focus),.ed-ficha .ed-arch-map .is-layer-hidden{ display:none; }
.ed-ficha .ed-arch-zone{ position:absolute; z-index:0; padding:15px; border:1px solid color-mix(in srgb,var(--ed-accent) 22%,rgba(244,238,228,.1)); border-radius:18px; background:color-mix(in srgb,var(--ed-accent) 4%,rgba(255,255,255,.008)); pointer-events:none; }
.ed-ficha .ed-arch-zone.is-marcada{ border-style:dashed; background:color-mix(in srgb,var(--ed-accent) 7%,transparent); }
.ed-ficha .ed-arch-zone strong,.ed-ficha .ed-arch-zone small{ position:relative; z-index:1; display:block; max-width:190px; }
.ed-ficha .ed-arch-zone strong{ color:color-mix(in srgb,var(--ed-accent) 70%,#f4eee4); font:700 .66rem/1.2 'Space Grotesk',monospace; letter-spacing:.1em; text-transform:uppercase; }
.ed-ficha .ed-arch-zone small{ margin-top:5px; color:var(--ed-mut2); font-size:.68rem; line-height:1.3; }
.ed-ficha .ed-arch-edgeLabel{ position:absolute; z-index:3; max-width:190px; transform:translate(-50%,-50%) rotate(var(--label-angle,0deg)); transform-origin:center; padding:4px 8px; border:1px solid color-mix(in srgb,var(--ed-accent) 38%,transparent); border-radius:6px; background:color-mix(in srgb,var(--ed-accent) 9%,rgba(15,13,16,.96)); color:color-mix(in srgb,var(--ed-accent) 72%,#f4eee4 28%); box-shadow:0 3px 12px rgba(0,0,0,.28); font:700 .62rem/1.18 'Hanken Grotesk',sans-serif; text-align:center; pointer-events:auto; cursor:pointer; transition:opacity .18s ease,color .18s ease,background .18s ease; }
.ed-ficha .ed-arch-edgeLabel[data-label-aligned="true"]{ white-space:nowrap; }
.ed-ficha .ed-arch-edgeLabel:hover,.ed-ficha .ed-arch-edgeLabel:focus-visible,.ed-ficha .ed-arch-edgeLabel.is-focus{ z-index:30; border-color:color-mix(in srgb,var(--ed-accent) 70%,#fff 12%); background:color-mix(in srgb,var(--ed-accent) 17%,rgba(15,13,16,.98)); color:color-mix(in srgb,var(--ed-accent) 48%,#fff 52%); outline:none; box-shadow:0 8px 24px rgba(0,0,0,.52),0 0 0 2px color-mix(in srgb,var(--ed-accent) 12%,transparent); }
.ed-ficha .ed-arch-map[data-label-mode="nunca"] .ed-arch-edgeLabel,.ed-ficha .ed-arch-map[data-label-mode="alSeleccionar"] .ed-arch-edgeLabel:not(.is-focus){ opacity:0; pointer-events:none; }
.ed-ficha .ed-arch-map.is-focus-active article:not(.is-focus){ opacity:.28; }
.ed-ficha .ed-arch-map article.is-focus{ z-index:5; border-color:color-mix(in srgb,var(--ed-accent) 78%,#fff 12%); box-shadow:0 0 0 5px color-mix(in srgb,var(--ed-accent) 10%,transparent),0 16px 34px rgba(0,0,0,.34); }
.ed-ficha .ed-arch-map article{ position:absolute; z-index:1; transform:translate(-50%,-50%); display:grid; grid-template-columns:28px 1fr; align-items:center; gap:9px; width:min(210px,18%); min-height:68px; padding:13px 15px; border:1px solid rgba(244,238,228,.16); border-radius:14px; background:#17131b; color:#f4eee4; text-align:left; box-shadow:0 7px 18px rgba(0,0,0,.18); transition:border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.ed-ficha .ed-arch-map article:hover{ border-color:color-mix(in srgb,var(--ed-accent) 56%,rgba(244,238,228,.22)); background:color-mix(in srgb,var(--ed-accent) 8%,#17131b); box-shadow:0 16px 36px rgba(0,0,0,.28); }
.ed-ficha .ed-arch-map article > span{ color:color-mix(in srgb,var(--ed-accent) 82%,#fff 18%); font:650 clamp(.52rem,calc(.43rem + .12vw),.58rem)/1 'Space Grotesk',monospace; letter-spacing:.1em; }
.ed-ficha .ed-arch-map article h4{ color:#f4eee4; font:700 clamp(.78rem,calc(.65rem + .22vw),.93rem)/1.28 'Hanken Grotesk',system-ui,sans-serif; letter-spacing:0; text-transform:none; overflow-wrap:anywhere; }
.ed-ficha .ed-arch-map article.is-center{ width:min(270px,22%); min-height:82px; border-color:color-mix(in srgb,var(--ed-accent) 72%,transparent); background:color-mix(in srgb,var(--ed-accent) 12%,#17100f); box-shadow:0 0 0 6px color-mix(in srgb,var(--ed-accent) 8%,transparent),0 16px 34px rgba(0,0,0,.26); }
.ed-ficha .ed-arch-map article.is-center h4{ color:#fbf6ee; font-family:'Instrument Serif',Georgia,serif; font-size:clamp(.98rem,calc(.78rem + .3vw),1.2rem); font-weight:400; }
.ed-ficha .ed-arch-map article.is-role-alerta{ border-color:color-mix(in srgb,#d98288 58%,transparent); }
.ed-ficha .ed-arch-map article.is-role-contexto{ border-style:dashed; background:#131116; }
.ed-ficha .ed-arch-map article.is-role-resultado{ border-color:color-mix(in srgb,#79b8aa 48%,transparent); }
.ed-ficha .ed-arch-map article.is-size-grande{ width:min(280px,23%); min-height:84px; }
.ed-ficha .ed-arch-map article.is-size-pequeno{ width:min(176px,15%); min-height:58px; }
.ed-ficha .ed-arch-mapToolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:-8px; }
.ed-ficha .ed-arch-mapToolbar > span{ margin-right:4px; color:var(--ed-mut2); font:700 .62rem/1 'Space Grotesk',monospace; letter-spacing:.1em; text-transform:uppercase; }
.ed-ficha .ed-arch-layerBtn{ border:1px solid var(--ed-line); border-radius:999px; padding:7px 11px; background:#131015; color:var(--ed-mut2); font:650 .7rem/1 'Hanken Grotesk',sans-serif; cursor:pointer; }
.ed-ficha .ed-arch-layerBtn[aria-pressed="true"]{ border-color:color-mix(in srgb,var(--ed-accent) 54%,transparent); color:#f4eee4; background:color-mix(in srgb,var(--ed-accent) 10%,#131015); }
.ed-ficha .ed-arch-mapLegend{ display:flex; flex-wrap:wrap; gap:10px 18px; padding:12px 14px; border:1px solid var(--ed-line); border-radius:12px; color:var(--ed-mut2); font-size:.7rem; }
.ed-ficha .ed-arch-mapLegend span{ display:flex; align-items:center; gap:8px; }
.ed-ficha .ed-arch-mapLegend i{ width:28px; height:0; border-top:2px solid var(--ed-accent); }
.ed-ficha .ed-arch-mapLegend i.is-dinamica,.ed-ficha .ed-arch-mapLegend i.is-temporal{ border-top-style:dashed; }
.ed-ficha .ed-arch-mapLegend i.is-asociativa{ border-top-style:dotted; }
.ed-ficha .ed-arch-mapReader{ display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; min-height:82px; padding:16px 18px; border:1px solid color-mix(in srgb,var(--ed-accent) 24%,var(--ed-line)); border-radius:14px; background:color-mix(in srgb,var(--ed-accent) 4%,#0f0d10); }
.ed-ficha .ed-arch-mapReader[hidden]{ display:none; }
.ed-ficha .ed-arch-mapReader > span{ color:var(--ed-accent); font:700 .62rem/1.3 'Space Grotesk',monospace; letter-spacing:.1em; text-transform:uppercase; }
.ed-ficha .ed-arch-mapReader h5,.ed-ficha .ed-arch-mapReader p{ margin:0; }
.ed-ficha .ed-arch-mapReader h5{ color:#f4eee4; font:700 .94rem/1.25 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-arch-mapReader p{ margin-top:6px; color:var(--ed-mut2); font-size:.82rem; line-height:1.5; }
@media (max-width:700px){ .ed-ficha .ed-arch-edgeLabel:not(.is-focus){ opacity:0!important; pointer-events:none!important; } .ed-ficha .ed-arch-mapReader{ grid-template-columns:1fr; gap:7px; } }
.ed-ficha .ed-arch-mapNotes{ display:grid; grid-template-columns:1fr; border-top:1px solid var(--ed-line); }
.ed-ficha .ed-arch-mapNotes details{ min-width:0; border-bottom:1px solid var(--ed-line); }
.ed-ficha .ed-arch-mapNotes summary{ display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; padding:15px 16px; list-style:none; cursor:pointer; color:#f2ece3; font:650 .88rem/1.25 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-arch-mapNotes summary::-webkit-details-marker{ display:none; }
.ed-ficha .ed-arch-mapNotes summary > span{ color:var(--ed-accent); font:650 .64rem/1 'Space Grotesk',monospace; }
.ed-ficha .ed-arch-mapNotes summary i{ color:var(--ed-accent); font-style:normal; transition:transform .18s ease; }
.ed-ficha .ed-arch-mapNotes details[open] summary i{ transform:rotate(45deg); }
.ed-ficha .ed-arch-mapNotes details > p{ margin:0; padding:0 18px 18px 54px; color:var(--ed-mut2); font-size:.84rem; line-height:1.55; }
.ed-ficha .ed-arch-matrixWrap{ overflow:auto; border:1px solid var(--ed-line); scrollbar-width:thin; }
.ed-ficha .ed-arch-matrix{ width:100%; min-width:620px; border-collapse:collapse; table-layout:fixed; }
.ed-ficha .ed-arch-matrix th,.ed-ficha .ed-arch-matrix td{ padding:16px; border-right:1px solid var(--ed-line); border-bottom:1px solid var(--ed-line); text-align:left; vertical-align:top; }
.ed-ficha .ed-arch-matrix thead th{ color:var(--ed-accent); font:700 .68rem 'Space Grotesk',monospace; letter-spacing:.08em; text-transform:uppercase; }
.ed-ficha .ed-arch-matrix tbody th{ color:#f3ede4; font:650 .88rem 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-arch-matrix td strong,.ed-ficha .ed-arch-matrix td span{ display:block; }
.ed-ficha .ed-arch-matrix td strong{ color:#eee8df; font-size:.85rem; }
.ed-ficha .ed-arch-matrix td span{ margin-top:4px; color:var(--ed-mut2); font-size:.78rem; line-height:1.45; }
.ed-ficha .ed-arch-timeline{ display:flex; margin:0; padding:26px 0 0; list-style:none; overflow:auto hidden; scrollbar-width:thin; }
.ed-ficha .ed-arch-timeline li{ position:relative; flex:1 0 210px; padding:30px 24px 20px 0; border-top:1px solid color-mix(in srgb,var(--ed-accent) 44%,transparent); }
.ed-ficha .ed-arch-timeline li::before{ content:""; position:absolute; top:-4px; left:0; width:7px; height:7px; border-radius:50%; background:var(--ed-accent); }
.ed-ficha .ed-arch-time{ color:var(--ed-accent); font:650 .7rem 'Space Grotesk',monospace; }
.ed-ficha .ed-arch-timeline h4{ margin:8px 0 0; color:#f3ede4; font-size:.96rem; }
.ed-ficha .ed-arch-timeline p{ margin:6px 0 0; color:var(--ed-mut2); font-size:.82rem; line-height:1.5; }
.ed-ficha .ed-arch-tree{ --tree-node-w:360px; --tree-leaf-w:400px; overflow:auto hidden; padding:8px 8px 36px; scrollbar-width:thin; }
.ed-ficha .ed-arch-tree ul{ display:flex; justify-content:flex-start; align-items:flex-start; gap:0; position:relative; width:100%; min-width:max-content; margin:0; padding:78px 0 0; overflow:visible; list-style:none; }
.ed-ficha .ed-arch-tree > ul{ min-width:100%; padding-top:0; }
.ed-ficha .ed-arch-tree > ul > li{ margin-inline:auto; }
.ed-ficha .ed-arch-tree li{ --branch-color:color-mix(in srgb,var(--ed-accent) 58%,#f4eee4 10%); position:relative; flex:0 0 calc(var(--leaf-count,1) * var(--tree-leaf-w)); width:calc(var(--leaf-count,1) * var(--tree-leaf-w)); min-width:var(--tree-leaf-w); max-width:none; }
.ed-ficha .ed-arch-tree li.is-branch-yes{ --branch-color:#68a8d8; }
.ed-ficha .ed-arch-tree li.is-branch-no{ --branch-color:#d67678; }
.ed-ficha .ed-arch-tree li > article{ position:relative; z-index:1; box-sizing:border-box; width:var(--tree-node-w); min-height:112px; margin:0 auto; padding:22px 24px; border:1px solid color-mix(in srgb,var(--branch-color) 34%,var(--ed-line)); border-top:2px solid var(--branch-color); border-radius:12px; background:color-mix(in srgb,var(--branch-color) 3%,rgba(255,255,255,.014)); box-shadow:0 10px 26px rgba(0,0,0,.14); }
.ed-ficha .ed-arch-tree li > article h4,.ed-ficha .ed-arch-tree li > article p{ overflow-wrap:anywhere; }
.ed-ficha .ed-arch-tree li > article .ed-arch-overline{ color:color-mix(in srgb,var(--branch-color) 74%,#f4eee4 18%); }
.ed-ficha .ed-arch-tree li > ul::before{ content:""; position:absolute; left:var(--bus-left,25%); right:var(--bus-right,25%); top:39px; border-top:1.5px solid color-mix(in srgb,var(--ed-accent) 44%,transparent); }
.ed-ficha .ed-arch-tree li > ul::after{ content:""; position:absolute; left:50%; top:0; height:39px; border-left:1.5px solid color-mix(in srgb,var(--ed-accent) 44%,transparent); }
.ed-ficha .ed-arch-tree li > ul > li::before{ content:""; position:absolute; left:50%; top:-39px; height:39px; border-left:2px solid var(--branch-color); }
.ed-ficha .ed-arch-tree li > ul > li::after{ content:""; position:absolute; z-index:2; left:50%; top:-7px; transform:translateX(-50%); border:5px solid transparent; border-top:7px solid var(--branch-color); }
.ed-ficha .ed-arch-branchLabel{ position:absolute; z-index:3; left:50%; top:-39px; transform:translate(-50%,-50%); width:max-content; min-width:34px; max-width:min(300px,calc(var(--tree-leaf-w) - 32px)); padding:5px 10px; border:1px solid color-mix(in srgb,var(--branch-color) 64%,transparent); border-radius:999px; background:color-mix(in srgb,var(--branch-color) 13%,#0f0d10); color:color-mix(in srgb,var(--branch-color) 62%,#fff 38%); font:750 .63rem/1.25 'Space Grotesk',monospace; letter-spacing:.035em; text-align:center; white-space:normal; overflow-wrap:anywhere; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.ed-ficha .ed-arch-continuum{ padding:20px 8px clamp(230px,20vw,290px); }
.ed-ficha .ed-arch-poles{ display:flex; justify-content:space-between; gap:20px; margin-bottom:16px; color:#f0eae1; font-size:.88rem; }
.ed-ficha .ed-arch-scale{ position:relative; height:2px; background:linear-gradient(90deg,color-mix(in srgb,var(--ed-accent) 16%,transparent),var(--ed-accent),color-mix(in srgb,var(--ed-accent) 16%,transparent)); }
.ed-ficha .ed-arch-scale article{ position:absolute; top:-5px; width:150px; transform:translateX(-50%); text-align:center; }
.ed-ficha .ed-arch-scale article > span{ display:block; width:11px; height:11px; margin:0 auto 16px; border:2px solid var(--ed-bg,#0c0a0d); border-radius:50%; background:var(--ed-accent); box-shadow:0 0 0 1px var(--ed-accent); }
.ed-ficha .ed-arch-marker{ position:absolute; top:-10px; width:1px; height:22px; background:#f4eee4; box-shadow:0 0 10px var(--ed-accent); }
.ed-ficha .ed-geno-shell{ overflow:auto hidden; border:1px solid rgba(244,238,228,.13); border-radius:22px; background:#0f0d10; scrollbar-width:thin; }
.ed-ficha .ed-geno-stage{ position:relative; min-width:760px; height:var(--geno-height,680px); overflow:hidden; isolation:isolate; background:radial-gradient(circle at 42% 45%,color-mix(in srgb,var(--ed-accent) 5%,transparent),transparent 58%); }
.ed-ficha .ed-geno-stage.has-notes::before{ content:""; position:absolute; z-index:0; top:5%; right:2%; bottom:5%; width:34%; border-left:1px solid color-mix(in srgb,var(--ed-accent) 16%,transparent); background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ed-accent) 3%,transparent)); pointer-events:none; }
.ed-ficha .ed-geno-stage svg{ position:absolute; inset:0; z-index:1; width:100%; height:100%; overflow:visible; }
.ed-ficha .ed-geno-edge{ fill:none; vector-effect:non-scaling-stroke; stroke:rgba(244,238,228,.4); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; cursor:pointer; pointer-events:stroke; transition:opacity .18s ease,stroke-width .18s ease; }
.ed-ficha .ed-geno-edgeHit{ fill:none; stroke:transparent; stroke-width:14; pointer-events:stroke; cursor:pointer; }
.ed-ficha .ed-geno-edgeDot{ fill:color-mix(in srgb,var(--ed-accent) 70%,#fff 10%); opacity:.55; pointer-events:none; }
.ed-ficha .ed-geno-edge.is-pareja{ stroke:color-mix(in srgb,var(--ed-accent) 72%,#f4eee4 28%); stroke-width:1.7; }
.ed-ficha .ed-geno-edge.is-parental{ stroke:color-mix(in srgb,var(--ed-accent) 54%,rgba(244,238,228,.3)); stroke-width:1.35; }
.ed-ficha .ed-geno-edge.is-alianza{ stroke:color-mix(in srgb,#79b8aa 72%,var(--ed-accent)); stroke-width:1.8; }
.ed-ficha .ed-geno-edge.is-cercania,.ed-ficha .ed-geno-edge.is-fusion{ stroke:color-mix(in srgb,#79b8aa 64%,var(--ed-accent)); stroke-width:1.6; }
.ed-ficha .ed-geno-edge.is-distancia{ stroke:rgba(244,238,228,.45); stroke-dasharray:5 5; opacity:.72; }
.ed-ficha .ed-geno-edge.is-corte{ stroke:color-mix(in srgb,var(--ed-accent) 50%,#f4eee4 30%); stroke-width:1.4; opacity:.85; }
.ed-ficha .ed-geno-edge.is-tension{ stroke:color-mix(in srgb,#d8a86f 74%,var(--ed-accent)); stroke-width:1.4; }
.ed-ficha .ed-geno-edge.is-conflicto{ stroke:#c96f72; stroke-width:1.7; }
.ed-ficha .ed-geno-edge.is-hostil{ stroke:#a4474a; stroke-width:2.1; }
.ed-ficha .ed-geno-edge.is-abuso{ stroke:#8d7fd8; stroke-width:2.1; }
.ed-ficha .ed-geno-edge.is-arrow,.ed-ficha .ed-geno-edge.is-anotacion{ stroke:color-mix(in srgb,var(--ed-accent) 76%,#fff 10%); stroke-width:1.4; stroke-dasharray:4 4; }
.ed-ficha .ed-geno-edge.is-echo{ pointer-events:none; }
.ed-ficha .ed-geno-edgeSlash,.ed-ficha .ed-geno-edgeTick{ stroke:color-mix(in srgb,var(--ed-accent) 70%,#f4eee4 30%); stroke-width:1.6; vector-effect:non-scaling-stroke; pointer-events:none; }
.ed-ficha .ed-geno-stage.is-focus-active .ed-geno-edge:not(.is-focus){ opacity:.14; }
.ed-ficha .ed-geno-stage.is-focus-active .ed-geno-person:not(.is-focus),.ed-ficha .ed-geno-stage.is-focus-active .ed-geno-box:not(.is-focus){ opacity:.32; }
.ed-ficha .ed-geno-edge.is-focus{ opacity:1; stroke-width:2.6; filter:drop-shadow(0 0 4px color-mix(in srgb,var(--ed-accent) 36%,transparent)); }
.ed-ficha .ed-geno-stage marker path{ fill:color-mix(in srgb,var(--ed-accent) 84%,#fff 16%); }
.ed-ficha .ed-geno-person{ position:absolute; z-index:2; transform:translate(-50%,-50%); width:132px; text-align:center; color:#f4eee4; cursor:pointer; transition:opacity .18s ease; }
.ed-ficha .ed-geno-person:focus-visible{ outline:none; }
.ed-ficha .ed-geno-symbol{ position:relative; display:block; width:42px; height:42px; margin:0 auto 9px; border:1.5px solid color-mix(in srgb,var(--ed-accent) 72%,#f4eee4 28%); background:#17131b; transition:box-shadow .18s ease,border-color .18s ease; }
.ed-ficha .ed-geno-person.is-mujer .ed-geno-symbol,.ed-ficha .ed-geno-person.is-femenino .ed-geno-symbol{ border-radius:50%; }
.ed-ficha .ed-geno-person.is-otro .ed-geno-symbol,.ed-ficha .ed-geno-person.is-no-binario .ed-geno-symbol{ width:34px; height:34px; margin-bottom:13px; transform:rotate(45deg); }
.ed-ficha .ed-geno-person.is-index .ed-geno-symbol{ box-shadow:0 0 0 4px #0f0d10,0 0 0 6px color-mix(in srgb,var(--ed-accent) 68%,transparent); }
.ed-ficha .ed-geno-person.is-deceased .ed-geno-symbol::after{ content:""; position:absolute; left:50%; top:-7px; width:1.5px; height:56px; background:color-mix(in srgb,var(--ed-accent) 76%,#f4eee4 24%); transform:rotate(45deg); transform-origin:center; }
.ed-ficha .ed-geno-person h4{ margin:0; color:#f4eee4; font:700 .82rem/1.25 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-geno-person p{ margin:3px 0 0; color:var(--ed-mut2); font:.68rem/1.3 'Space Grotesk',monospace; }
.ed-ficha .ed-geno-person.is-focus .ed-geno-symbol,.ed-ficha .ed-geno-box.is-focus{ border-color:color-mix(in srgb,var(--ed-accent) 78%,#fff 12%); box-shadow:0 0 0 5px color-mix(in srgb,var(--ed-accent) 14%,transparent); }
.ed-ficha .ed-geno-box{ position:absolute; z-index:3; transform:translate(-50%,-50%); box-sizing:border-box; min-width:180px; padding:14px 16px; border:1px solid color-mix(in srgb,var(--ed-accent) 42%,rgba(244,238,228,.16)); border-radius:13px; background:color-mix(in srgb,var(--ed-accent) 8%,#17131b); box-shadow:0 14px 30px rgba(0,0,0,.24); cursor:pointer; transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease; }
.ed-ficha .ed-geno-box:focus-visible{ outline:none; border-color:var(--ed-accent); }
.ed-ficha .ed-geno-box .ed-arch-overline{ margin-bottom:7px; }
.ed-ficha .ed-geno-box h4{ margin:0; color:#f4eee4; font:700 .88rem/1.28 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-geno-box > p:last-child{ margin:7px 0 0; color:var(--ed-mut2); font-size:.78rem; line-height:1.45; }
.ed-ficha .ed-geno-edgeLabel{ position:absolute; z-index:4; max-width:160px; transform:translate(-50%,-50%); overflow:hidden; padding:4px 9px; border:1px solid rgba(244,238,228,.09); border-radius:999px; background:#15121a; color:var(--ed-mut2); font:650 .6rem/1.25 'Space Grotesk',monospace; text-align:center; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; transition:opacity .18s ease,color .18s ease,border-color .18s ease; }
.ed-ficha .ed-geno-edgeLabel:hover,.ed-ficha .ed-geno-edgeLabel:focus-visible,.ed-ficha .ed-geno-edgeLabel.is-focus{ z-index:30; outline:none; border-color:color-mix(in srgb,var(--ed-accent) 70%,#fff 12%); color:color-mix(in srgb,var(--ed-accent) 48%,#fff 52%); }
.ed-ficha .ed-geno-stage.is-focus-active .ed-geno-edgeLabel:not(.is-focus){ opacity:.18; }
.ed-ficha .ed-geno-reader{ display:grid; grid-template-columns:100px minmax(0,1fr); gap:14px; min-height:0; padding:0 18px; border-top:1px solid rgba(244,238,228,.1); color:var(--ed-mut2); }
.ed-ficha .ed-geno-reader[hidden]{ display:none; }
.ed-ficha .ed-geno-reader{ padding-top:14px; padding-bottom:14px; }
.ed-ficha .ed-geno-reader > span{ color:var(--ed-accent); font:700 .62rem/1.3 'Space Grotesk',monospace; letter-spacing:.1em; text-transform:uppercase; }
.ed-ficha .ed-geno-reader h5,.ed-ficha .ed-geno-reader p{ margin:0; }
.ed-ficha .ed-geno-reader h5{ color:#f4eee4; font:700 .94rem/1.25 'Hanken Grotesk',sans-serif; }
.ed-ficha .ed-geno-reader p{ margin-top:6px; font-size:.82rem; line-height:1.5; }
.ed-ficha .ed-geno-legend,.ed-ficha .ed-geno-legendRelations{ display:flex; flex-wrap:wrap; gap:14px 24px; padding:14px 18px; border-top:1px solid rgba(244,238,228,.1); color:var(--ed-mut2); font-size:.7rem; }
.ed-ficha .ed-geno-legendRelations{ padding-top:0; border-top:0; }
.ed-ficha .ed-geno-legend span,.ed-ficha .ed-geno-legendRelations span{ display:flex; align-items:center; gap:7px; }
.ed-ficha .ed-geno-legend i{ display:block; width:13px; height:13px; border:1px solid color-mix(in srgb,var(--ed-accent) 68%,#fff 20%); }
.ed-ficha .ed-geno-legend i.is-mujer{ border-radius:50%; }
.ed-ficha .ed-geno-legend i.is-otro{ width:10px; height:10px; transform:rotate(45deg); }
.ed-ficha .ed-geno-legend b{ display:block; width:13px; height:13px; border:1px solid var(--ed-accent); box-shadow:0 0 0 2px #0f0d10,0 0 0 3px var(--ed-accent); }
.ed-ficha .ed-geno-legendRelations i{ width:26px; height:0; border-top:2px solid color-mix(in srgb,var(--ed-accent) 72%,#f4eee4 28%); color:color-mix(in srgb,var(--ed-accent) 72%,#f4eee4 28%); }
.ed-ficha .ed-geno-legendRelations i.is-parental{ border-top-color:color-mix(in srgb,var(--ed-accent) 54%,rgba(244,238,228,.3)); }
.ed-ficha .ed-geno-legendRelations i.is-alianza{ border-top-color:#79b8aa; color:#79b8aa; }
.ed-ficha .ed-geno-legendRelations i.is-distancia{ border-top-style:dashed; opacity:.72; }
.ed-ficha .ed-geno-legendRelations i.is-arrow,.ed-ficha .ed-geno-legendRelations i.is-anotacion{ border-top-style:dashed; }
.ed-ficha .ed-geno-legendRelations i.is-cercania{ border-top-color:#79b8aa; color:#79b8aa; box-shadow:0 4px 0 0 currentColor; }
.ed-ficha .ed-geno-legendRelations i.is-fusion{ border-top-color:#79b8aa; color:#79b8aa; box-shadow:0 4px 0 0 currentColor,0 -4px 0 0 currentColor; }
.ed-ficha .ed-geno-legendRelations i.is-corte{ border-top:0; height:2px; width:26px; background:linear-gradient(90deg,currentColor 0 38%,transparent 38% 62%,currentColor 62% 100%); position:relative; }
.ed-ficha .ed-geno-legendRelations i.is-corte::before,.ed-ficha .ed-geno-legendRelations i.is-corte::after{ content:""; position:absolute; top:-4px; width:1.5px; height:8px; background:currentColor; }
.ed-ficha .ed-geno-legendRelations i.is-corte::before{ left:36%; }
.ed-ficha .ed-geno-legendRelations i.is-corte::after{ left:62%; }
.ed-ficha .ed-geno-legendRelations i.is-tension,.ed-ficha .ed-geno-legendRelations i.is-conflicto,.ed-ficha .ed-geno-legendRelations i.is-hostil,.ed-ficha .ed-geno-legendRelations i.is-abuso{ border-top:0; height:7px; background:repeating-linear-gradient(115deg,transparent 0 3px,currentColor 3px 4px); }
.ed-ficha .ed-geno-legendRelations i.is-tension{ color:color-mix(in srgb,#d8a86f 74%,var(--ed-accent)); }
.ed-ficha .ed-geno-legendRelations i.is-conflicto{ color:#c96f72; }
.ed-ficha .ed-geno-legendRelations i.is-hostil{ color:#a4474a; }
.ed-ficha .ed-geno-legendRelations i.is-abuso{ color:#8d7fd8; }
.ed-ficha .ed-arch-unknown{ padding:18px; border:1px solid var(--ed-line); background:rgba(255,255,255,.015); color:var(--ed-mut); }
.ed-ficha .ed-arch-unknown code{ color:var(--ed-accent); }
.ed-ficha .ed-arch-unknown pre{ max-height:320px; overflow:auto; white-space:pre-wrap; color:var(--ed-mut2); font-size:.76rem; }
body.theme-light .ed-ficha .ed-arch-head h2,body.theme-light .ed-ficha .ed-arch-module > header h3,body.theme-light .ed-ficha .ed-arch-hierarchy h4,body.theme-light .ed-ficha .ed-arch-cycle h4,body.theme-light .ed-ficha .ed-arch-map h4,body.theme-light .ed-ficha .ed-arch-tree h4,body.theme-light .ed-ficha .ed-arch-continuum h4{ color:#20242c; }
@media(max-width:760px){
  .ed-ficha .ed-arch-head,.ed-ficha .ed-arch-module > header{ grid-template-columns:1fr; }
  .ed-ficha .ed-arch-head > p:last-child{ margin-top:18px; }
  .ed-ficha .ed-arch-taxonomy{ grid-template-columns:1fr; }
  .ed-ficha .ed-arch-hierarchy li{ width:100%; grid-template-columns:40px 1fr; padding:15px; }
  .ed-ficha .ed-arch-cycle{ display:grid; gap:10px; min-height:0; border:0; border-radius:0; }
  .ed-ficha .ed-arch-cycleCore{ display:none; }
  .ed-ficha .ed-arch-cycle article{ position:relative; left:auto; top:auto; width:100%; transform:none; border:1px solid var(--ed-line); }
  .ed-ficha .ed-arch-mapVisual{ overflow-x:auto; }
  .ed-ficha .ed-arch-map[data-mobile-mode="lista"]{ display:none; }
  .ed-ficha .ed-arch-map:not([data-mobile-mode="lista"]){ width:820px; max-width:none; }
  .ed-ficha .ed-arch-mapNotes{ grid-template-columns:1fr; }
  .ed-ficha .ed-arch-timeline{ display:block; padding:0 0 0 18px; overflow:visible; border-left:1px solid color-mix(in srgb,var(--ed-accent) 44%,transparent); }
  .ed-ficha .ed-arch-timeline li{ padding:0 0 24px 20px; border:0; }
  .ed-ficha .ed-arch-timeline li::before{ top:4px; left:-22px; }
  .ed-ficha .ed-arch-tree{ padding-inline:0; overflow:visible; }
  .ed-ficha .ed-arch-tree ul{ display:block; min-width:0; padding:52px 0 0 32px; overflow:visible; }
  .ed-ficha .ed-arch-tree > ul{ padding:0; }
  .ed-ficha .ed-arch-tree li{ width:100%; min-width:0; max-width:none; margin-bottom:28px; }
  .ed-ficha .ed-arch-tree li > ul::before{ display:none; }
  .ed-ficha .ed-arch-tree li > ul::after{ left:14px; top:0; bottom:24px; height:auto; }
  .ed-ficha .ed-arch-tree li > ul > li::before{ left:-18px; top:-26px; width:32px; height:48px; border-left:2px solid var(--branch-color); border-bottom:2px solid var(--branch-color); }
  .ed-ficha .ed-arch-tree li > ul > li::after{ left:-1px; top:17px; transform:rotate(-90deg); }
  .ed-ficha .ed-arch-branchLabel{ left:0; top:-39px; transform:none; }
  .ed-ficha .ed-arch-continuum{ padding-bottom:20px; }
  .ed-ficha .ed-arch-poles{ font-size:.75rem; }
  .ed-ficha .ed-arch-scale{ height:auto; background:none; }
  .ed-ficha .ed-arch-scale article{ position:relative; left:auto!important; top:auto; width:100%; transform:none; display:grid; grid-template-columns:20px 1fr; text-align:left; margin-bottom:12px; }
  .ed-ficha .ed-arch-scale article > span{ grid-row:1/3; margin:4px 0; }
  .ed-ficha .ed-arch-marker{ display:none; }
}

/* ===== Buscador de modelos sin alterar el layout ===== */
.modelsListCard .modelListHeader{
  position:relative;
  min-height:32px;
}
.modelListHeaderActions{
  display:flex;
  align-items:center;
  gap:8px;
}
.modelSearchOpen,
.modelSearchClear{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid rgba(244,238,228,0.12);
  border-radius:999px;
  background:rgba(255,255,255,0.025);
  color:rgba(244,238,228,0.62);
  cursor:pointer;
  transition:border-color .16s ease,color .16s ease,background .16s ease;
}
.modelSearchOpen:hover,
.modelSearchOpen:focus-visible,
.modelSearchClear:hover,
.modelSearchClear:focus-visible{
  border-color:color-mix(in srgb,var(--schoolColor,#D9AA3F) 52%,transparent);
  background:color-mix(in srgb,var(--schoolColor,#D9AA3F) 8%,transparent);
  color:#f7f1e8;
  outline:none;
}
.modelSearchOpen svg{ width:14px; height:14px; }
.modelSearchShell{
  position:absolute;
  inset:-2px 0;
  z-index:5;
  display:flex;
  align-items:center;
  gap:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-3px);
  pointer-events:none;
  background:#0b0d11;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.modelSearchShell.is-open{
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}
.modelSearchShell::before{
  content:'⌕';
  flex:0 0 auto;
  color:var(--schoolColor,#D9AA3F);
  font-size:17px;
}
.modelSearchInput{
  min-width:0;
  flex:1;
  height:34px;
  padding:0 4px;
  border:0;
  border-bottom:1px solid rgba(244,238,228,0.2);
  border-radius:0;
  background:transparent;
  color:#f7f1e8;
  font:500 .82rem/1 'Hanken Grotesk',system-ui,sans-serif;
  outline:none;
}
.modelSearchInput:focus{ border-bottom-color:var(--schoolColor,#D9AA3F); }
.modelSearchInput::placeholder{ color:rgba(244,238,228,0.38); }
.modelSearchClear{
  width:27px;
  height:27px;
  border:0;
  background:transparent;
  font-size:17px;
  font-weight:300;
}
body.network-mode .modelSearchOpen{ display:none; }

/* Biblioteca abierta: oculta las superficies de cuenta y suscripcion sin
   eliminar su marcado ni su logica, para poder recuperarlas en el futuro. */
html.public-library-access .accessGate,
html.public-library-access .checkoutNoticeModal,
html.public-library-access .authUserMenu,
html.public-library-access .tagsPaywall,
html.public-library-access .mp-lockedSection,
html.public-library-access .mp-publicPreview,
html.public-library-access [data-action="subscribe-premium-grouping"],
html.public-library-access [data-action="subscribe-network-graph"],
html.public-library-access [data-action="subscribe-public-model"]{
  display:none !important;
}

/* ================================================================
   Red de afinidades · interfaz comparativa 2026
   Esta capa solo compone controles y superficies. El SVG y sus
   reglas de posicionamiento permanecen en la implementación original.
   ================================================================ */
body.network-mode{
  --network-paper:#0d0d0f;
  --network-panel:#151518;
  --network-panel-strong:#1a1a1e;
  --network-cream:#f2ecdf;
  --network-muted:rgba(242,236,223,.62);
  --network-hairline:rgba(242,236,223,.12);
  --network-gold:#caae68;
}

/* La navegación sticky pertenece a la ficha de modelo. Una URL con `open=`
   puede mantenerla montada al entrar en la red, pero nunca debe asomar aquí. */
body.network-mode #stickyModelHeader{
  display:none !important;
}

body.network-mode .networkView::before{
  opacity:.38;
  background-image:
    linear-gradient(90deg, rgba(242,236,223,.026) 1px, transparent 1px),
    linear-gradient(180deg, rgba(242,236,223,.018) 1px, transparent 1px);
  background-size:80px 80px;
}

body.network-mode .networkCanvas{
  background:
    radial-gradient(70% 90% at 8% 18%, rgba(75,103,96,.15), transparent 68%),
    radial-gradient(56% 72% at 92% 82%, rgba(92,78,118,.14), transparent 72%),
    linear-gradient(145deg, #121215 0%, #0d0d0f 48%, #09090b 100%) !important;
}

body.network-mode .networkCanvas::before{
  opacity:.44;
  background:
    linear-gradient(90deg, rgba(242,236,223,.028) 1px, transparent 1px),
    linear-gradient(180deg, rgba(242,236,223,.018) 1px, transparent 1px);
  background-size:80px 80px;
}

body.network-mode .networkHeader{
  top:10px;
  left:24px !important;
  right:24px !important;
  display:grid;
  gap:7px;
  padding:9px 11px 10px;
  border:1px solid var(--network-hairline);
  border-radius:14px;
  background:linear-gradient(145deg, rgba(23,23,27,.95), rgba(15,15,18,.88));
  box-shadow:0 22px 70px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(20px) saturate(112%);
  -webkit-backdrop-filter:blur(20px) saturate(112%);
}

body.network-mode.network-has-selection-card .networkHeader{
  left:calc(var(--leftPanelW, 380px) + 24px) !important;
}

.networkHeaderTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.networkHeading{
  display:flex;
  align-items:baseline;
  gap:9px;
  min-width:0;
}

.networkEyebrow{
  color:var(--network-gold);
  flex:0 0 auto;
  font:650 8px/1.2 'Space Grotesk', monospace;
  letter-spacing:.18em;
  text-transform:uppercase;
}

body.network-mode .networkTitle{
  margin:0;
  color:var(--network-cream);
  font:400 clamp(23px, 2vw, 30px)/.98 'Instrument Serif', Georgia, serif;
  letter-spacing:0;
}

body.network-mode .networkSub{
  display:none;
}

.networkModeSwitch{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:repeat(2, minmax(98px, 1fr));
  gap:3px;
  padding:3px;
  border:1px solid var(--network-hairline);
  border-radius:13px;
  background:rgba(0,0,0,.18);
  pointer-events:auto;
}

.networkModeButton{
  display:grid;
  gap:0;
  min-height:30px;
  padding:5px 9px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:var(--network-muted);
  font-family:'Hanken Grotesk', system-ui, sans-serif;
  text-align:center;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.networkModeButton > span{
  font-size:10.5px;
  font-weight:760;
}

.networkModeButton small{
  display:none;
}

.networkModeButton:hover{
  color:var(--network-cream);
  background:rgba(255,255,255,.035);
}

.networkModeButton.is-active{
  border-color:rgba(202,174,104,.34);
  background:linear-gradient(180deg, rgba(202,174,104,.14), rgba(202,174,104,.055));
  color:var(--network-cream);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.networkModeButton.is-active small{ color:var(--network-gold); opacity:.82; }

body.network-mode .networkLegend{
  display:grid;
  grid-template-columns:minmax(0, 1.65fr) minmax(280px, .9fr);
  align-items:stretch;
  gap:7px;
}

.networkFilterGroup{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  overflow:hidden;
  padding:5px 7px;
  border:1px solid rgba(242,236,223,.09);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}

.networkFilterGroupHead,
.networkFilterTitleRow{
  display:flex;
  align-items:center;
  gap:8px;
}

.networkFilterGroupHead{
  flex:0 0 auto;
  justify-content:space-between;
  gap:7px;
  margin-bottom:0;
}

.networkFilterGroup h3{
  margin:0;
  color:rgba(242,236,223,.72);
  font:650 8px/1.2 'Space Grotesk', monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.networkFilterCount{
  color:rgba(242,236,223,.38);
  font:600 8px/1 'Space Grotesk', monospace;
}

.networkFilterScopeAction{
  padding:2px 0;
  border:0;
  background:transparent;
  color:rgba(242,236,223,.46);
  font:650 8px/1.2 'Space Grotesk', monospace;
  letter-spacing:.04em;
  cursor:pointer;
}

.networkFilterScopeAction:hover,
.networkFilterScopeAction:focus-visible{
  color:var(--network-gold);
  outline:none;
}

.networkFilterChips{
  display:flex;
  min-width:0;
  flex:1 1 auto;
  flex-wrap:nowrap;
  gap:4px;
  overflow-x:auto;
  scrollbar-width:none;
}

.networkFilterChips::-webkit-scrollbar{ display:none; }

body.network-mode .networkLegend .chip{
  position:relative;
  flex:0 0 auto;
  min-height:22px;
  padding:4px 7px;
  border:1px solid color-mix(in srgb, var(--filter-color, var(--network-gold)) 32%, var(--network-hairline));
  border-radius:999px;
  background:color-mix(in srgb, var(--filter-color, var(--network-gold)) 9%, #17171a);
  color:rgba(242,236,223,.88);
  box-shadow:none;
  font:650 8px/1.1 'Space Grotesk', monospace;
  letter-spacing:.045em;
  text-transform:none;
}

body.network-mode .networkLegend .chip:hover{
  border-color:color-mix(in srgb, var(--filter-color, var(--network-gold)) 58%, rgba(242,236,223,.2));
  background:color-mix(in srgb, var(--filter-color, var(--network-gold)) 15%, #17171a);
}

body.network-mode .networkLegend .chip.is-off{
  opacity:.42;
  border-color:rgba(242,236,223,.08);
  background:rgba(255,255,255,.012);
  color:rgba(242,236,223,.56);
  box-shadow:none;
}

body.network-mode .networkLegend .chip.is-off .dot{
  background:transparent !important;
  border:1px solid var(--filter-color, rgba(242,236,223,.4));
}

body.network-mode .networkLegend .dot{
  flex:0 0 auto;
  width:7px;
  height:7px;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--filter-color, var(--network-gold)) 12%, transparent);
}

.networkLegendReset{
  display:none;
}

body.network-mode .networkLegend .chip.reset{
  min-height:32px;
  padding-inline:11px;
  border-style:solid;
  border-color:rgba(242,236,223,.12);
  background:transparent;
  color:rgba(242,236,223,.52);
  white-space:nowrap;
}

body.network-mode .networkLegend .chip.reset.is-off{ opacity:.46; }
body.network-mode .networkLegend .chip.reset.is-on{ color:var(--network-gold); }

.networkEmpty{
  position:absolute;
  left:50%;
  top:58%;
  z-index:3;
  width:min(360px, calc(100% - 36px));
  padding:22px 24px;
  transform:translate(-50%, -50%);
  border:1px solid var(--network-hairline);
  border-radius:16px;
  background:rgba(17,17,20,.9);
  color:var(--network-cream);
  box-shadow:0 22px 58px rgba(0,0,0,.3);
  text-align:center;
}

.networkEmpty[hidden]{ display:none !important; }

.networkEmptyMark{
  display:block;
  width:34px;
  height:34px;
  margin:0 auto 13px;
  border:1px solid rgba(202,174,104,.56);
  border-radius:50%;
  box-shadow:0 0 0 8px rgba(202,174,104,.06);
}

.networkEmpty strong{
  font:400 24px/1.05 'Instrument Serif', Georgia, serif;
}

.networkEmpty p{
  margin:8px 0 0;
  color:var(--network-muted);
  font:500 12px/1.5 'Hanken Grotesk', system-ui, sans-serif;
}

/* En esta perspectiva no se reutilizan los desplegables ni la lista lateral.
   El rail aparece solo cuando aporta contexto sobre una selección. */
.atlas-enabled body.network-mode .panel.left .leftTopSticky,
.atlas-enabled body.network-mode .panel.left .modelsListCard{
  display:none !important;
}

.atlas-enabled body.network-mode:not(.network-has-selection-card) .app > .panel.left{
  display:none !important;
}

.atlas-enabled body.network-mode.network-has-selection-card .app > .panel.left{
  display:block !important;
  width:var(--leftPanelW, 380px) !important;
  padding:18px 16px !important;
  background:linear-gradient(180deg, rgba(15,15,18,.97), rgba(10,10,12,.95)) !important;
  border-right:1px solid var(--network-hairline) !important;
  box-shadow:18px 0 60px rgba(0,0,0,.32) !important;
}

body.network-mode .panel.left .networkSelectionCard{
  margin:0;
  max-height:calc(100% - 2px);
  border-radius:18px;
  background:linear-gradient(160deg, rgba(242,236,223,.035), transparent 42%), var(--network-paper);
}

body.network-mode .networkModelGraphPanel{
  top:122px;
  max-height:calc(100vh - 142px);
}

@media (max-width: 1180px){
  body.network-mode .networkHeader{
    gap:7px;
    padding:9px 10px;
  }
  body.network-mode .networkLegend{
    grid-template-columns:minmax(0, 1fr) minmax(220px, .72fr);
  }
  .networkLegendReset{ display:none; }
  .networkModeSwitch{ grid-template-columns:repeat(2, minmax(96px, 1fr)); }
  .networkModeButton{ min-height:30px; }
  body.network-mode .networkModelGraphPanel{ top:122px; max-height:calc(100vh - 142px); }
}

@media (max-width: 980px){
  body.network-mode .networkHeader,
  body.network-mode.network-has-selection-card .networkHeader{
    top:10px;
    left:10px !important;
    right:10px !important;
    gap:7px;
    max-height:min(38vh, 250px);
    overflow:auto;
    padding:8px;
    border-radius:13px;
    scrollbar-width:thin;
  }
  .networkHeaderTop{
    align-items:stretch;
    gap:8px;
  }
  .networkHeading{ flex:1 1 auto; }
  body.network-mode .networkTitle{ font-size:24px; }
  body.network-mode .networkSub{ display:none; }
  .networkModeSwitch{
    align-self:center;
    grid-template-columns:repeat(2, auto);
  }
  .networkModeButton{
    min-height:30px;
    padding:5px 8px;
  }
  .networkModeButton > span{ font-size:10.5px; }
  body.network-mode .networkLegend{
    grid-template-columns:1fr;
    gap:7px;
  }
  .networkFilterGroup{
    padding:5px 7px;
  }
  body.network-mode .networkLegend .chip{
    min-height:22px;
    padding:4px 7px;
    font-size:8px;
  }
  .atlas-enabled body.network-mode.network-has-selection-card .app > .panel.left{
    display:none !important;
  }
  body.network-mode .networkModelGraphPanel{
    top:auto;
    max-height:min(58vh, 520px);
  }
}

@media (max-width: 560px){
  body.network-mode .networkHeader{
    max-height:min(42vh, 300px);
  }
  .networkHeaderTop{
    display:grid;
    grid-template-columns:1fr;
  }
  .networkHeading{
    grid-template-columns:auto 1fr;
    align-items:baseline;
    gap:8px;
  }
  body.network-mode .networkTitle{ font-size:24px; }
  .networkModeSwitch{
    width:100%;
    grid-template-columns:1fr 1fr;
  }
  .networkModeButton{ text-align:center; }
  .networkFilterChips{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .networkFilterChips::-webkit-scrollbar{ display:none; }
  body.network-mode .networkLegend .chip{ flex:0 0 auto; }
}

/* La leyenda de la red comparte el lenguaje compacto del Mapamundi: el color
   identifica el grupo y el nombre aparece solo al pasar el cursor o enfocarlo. */
body.network-mode .networkLegend{
  display:flex;
  grid-template-columns:none;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  overflow:visible;
}

body.network-mode .networkFilterGroup{
  display:flex;
  flex:0 0 auto;
  gap:3px;
  overflow:visible;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}

body.network-mode .networkFilterGroup-collections{
  padding-left:8px;
  border-left:1px solid var(--network-hairline);
}

body.network-mode .networkFilterChips{
  display:flex;
  flex-wrap:nowrap;
  gap:3px;
  overflow:visible;
  padding:0;
}

body.network-mode .networkLegend .chip{
  position:relative;
  display:grid;
  place-items:center;
  flex:0 0 25px;
  width:25px;
  min-width:25px;
  height:25px;
  min-height:25px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
}

body.network-mode .networkLegend .chip .dot{
  width:15px;
  height:15px;
  border:0;
  border-radius:50%;
  background:var(--filter-color) !important;
  box-shadow:0 0 0 1px rgba(255,255,255,.2),0 2px 6px rgba(0,0,0,.45);
  transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease;
}

body.network-mode .networkLegend .chip:hover,
body.network-mode .networkLegend .chip:focus-visible{
  border:0;
  background:transparent;
  outline:none;
  box-shadow:none;
  transform:none;
}

body.network-mode .networkLegend .chip:hover .dot,
body.network-mode .networkLegend .chip:focus-visible .dot{
  transform:scale(1.22);
  box-shadow:0 0 0 2px var(--network-paper),0 0 0 3px var(--filter-color),0 3px 9px rgba(0,0,0,.55);
}

body.network-mode .networkLegend .chip.is-off{
  opacity:1;
  border:0;
  background:transparent;
}

body.network-mode .networkLegend .chip.is-off .dot{
  opacity:.25;
  transform:scale(.78);
  border:0;
  background:var(--filter-color) !important;
  box-shadow:0 0 0 1px var(--filter-color);
}

body.network-mode .networkLegend .chip::after{
  content:attr(data-tooltip);
  position:absolute;
  z-index:1000;
  left:50%;
  top:calc(100% + 7px);
  width:max-content;
  max-width:210px;
  padding:6px 8px;
  border:1px solid var(--network-hairline);
  border-radius:6px;
  background:var(--network-paper);
  color:var(--network-cream);
  box-shadow:0 7px 20px rgba(0,0,0,.48);
  font:500 11px/1.25 'Hanken Grotesk',sans-serif;
  white-space:normal;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,-3px);
  transition:opacity .14s ease,transform .14s ease;
}

body.network-mode .networkLegend .chip:hover::after,
body.network-mode .networkLegend .chip:focus-visible::after{
  opacity:1;
  transform:translate(-50%,0);
}

@media (max-width:560px){
  body.network-mode .networkLegend{
    justify-content:flex-start;
    overflow-x:auto;
    padding:2px 0;
    scrollbar-width:none;
  }
  body.network-mode .networkLegend::-webkit-scrollbar{ display:none; }
  body.network-mode .networkFilterChips{ overflow:visible; }
}

/* ================================================================
   Articulo indexable de la ficha.
   Lo escribe scripts/build-model-pages.mjs dentro de #modelInfo. Es el
   contenido que reciben los buscadores y quien llega con la red lenta o sin
   JavaScript; la app lo sustituye por la ficha viva al montarse.
   ================================================================ */
.seo-article{
  max-width:820px;
  margin:0 auto;
  padding:34px 30px 48px;
  color:#e9e4d8;
  font:16px/1.7 'Hanken Grotesk', system-ui, sans-serif;
}
.seo-article > p:first-child{
  font-size:11px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:#cfb487;
  margin:0 0 14px;
}
.seo-article h1{
  font-family:'Instrument Serif', Georgia, serif;
  font-size:clamp(28px,4vw,44px);
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.5px;
  margin:0 0 18px;
}
.seo-article blockquote{
  margin:0 0 22px;
  padding-left:18px;
  border-left:2px solid #cfb48755;
  font-family:'Instrument Serif', Georgia, serif;
  font-size:20px;
  font-style:italic;
  line-height:1.4;
  color:#d8d2c4;
}
.seo-article h2{
  font-family:'Instrument Serif', Georgia, serif;
  font-size:25px;
  font-weight:400;
  margin:34px 0 12px;
  padding-top:20px;
  border-top:1px solid #e7ddbb1f;
}
.seo-article h3{
  font-size:15px;
  font-weight:600;
  margin:0 0 6px;
  color:#f2eee4;
}
.seo-article p{ margin:0 0 15px; color:#c9c5b8; }
.seo-article ol, .seo-article ul{ margin:0 0 15px; padding-left:22px; }
.seo-article li{ margin-bottom:13px; color:#c9c5b8; }
.seo-article ol li h3 + p{ margin-bottom:0; }
.seo-article a{ color:#8ed4d0; text-decoration:none; }
.seo-article a:hover{ text-decoration:underline; }
.seo-article nav ul{ list-style:none; padding-left:0; }

@media (max-width:760px){
  .seo-article{ padding:24px 20px 36px; font-size:15px; }
  .seo-article h2{ font-size:22px; }
}

/* Anchor semantics with the exact existing card/control appearance. */
a.mi-item, .mi-sectionLabel a { color: inherit; text-decoration: none; }
.libraryViewToggle a { text-decoration: none; }
h1.mp-hero-title { margin: 0; }
