:root{--marino:#0b2545;--celeste:#0098e0;--naranja:#f3841d;--fondo:#f4f7fa;--texto:#333;--borde:#dbe4ed}
*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.55 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}a{color:#0075af;text-decoration:none}a:hover{text-decoration:underline}.ancho{max-width:1120px;margin:0 auto;padding:0 24px}.cabecera{background:#fff;border-bottom:1px solid var(--borde)}.bar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:96px;flex-wrap:wrap}.logo{width:220px;height:auto;display:block}.cabecera nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-weight:600;font-size:14px}.cabecera nav a{color:var(--marino)}.espaciador{padding-top:34px}.identidad{color:#6f8091}h1{color:var(--marino);font-size:clamp(24px,4vw,31px);line-height:1.2;margin:8px 0 24px}h2{color:var(--marino);font-size:20px;line-height:1.35}p{margin:0 0 18px}.hero{background:#fff;border:1px solid var(--borde);border-radius:18px;max-width:750px;margin:40px auto 80px;padding:clamp(25px,5vw,55px);box-shadow:0 8px 28px #0b25450d}.hero h2{font-size:clamp(25px,4vw,34px)}.etiqueta{color:var(--celeste);font-size:12px;font-weight:800;letter-spacing:.07em}.cuadro{background:#fff;border:1px solid var(--borde);padding:26px;border-radius:15px;box-shadow:0 5px 20px #0b254509}.cuadro h2{margin-top:0}.angosto{max-width:540px;margin:20px auto 70px}.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:20px;margin:22px 0 36px}.indicadores{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.indicadores .cuadro{display:flex;flex-direction:column}.indicadores strong{color:var(--celeste);font-size:34px}.indicadores span{font-weight:600;color:var(--marino)}label{display:block;margin:0 0 17px;font-weight:650;color:var(--marino);font-size:14px}input,textarea,select{font:inherit;width:100%;padding:12px;border:1px solid #cdd8e3;border-radius:8px;background:#fff;color:var(--marino);margin-top:6px}input:focus,textarea:focus,select:focus{outline:2px solid #95dbfc;outline-offset:1px}.boton{display:inline-block;background:var(--naranja);color:#fff!important;border:0;border-radius:9px;font:700 14px/1.3 inherit;padding:13px 18px;cursor:pointer;font-weight:700}.boton:hover{background:#d76c0b;text-decoration:none}.secundario{background:var(--marino)}.inline{display:inline}.salir{border:1px solid var(--borde);border-radius:8px;padding:8px 10px;background:#fff;color:var(--marino);cursor:pointer;font:inherit}.tabla-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:420px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--borde);vertical-align:top}th{color:var(--marino)}.aviso{padding:15px 18px;border-radius:9px;margin:10px 0 22px}.ok{background:#e8f7ed;color:#196033}.error{background:#ffe8e8;color:#8a1313}.advertencia{background:#fff3dc;color:#6b450a}.nota{color:#697687;font-size:13px;margin-top:14px}.subtitulo{color:#66788a}.lectura{max-width:800px;margin:20px auto 70px}.lectura p{white-space:normal}.pie{text-align:center;font-size:12px;color:#617085;border-top:1px solid var(--borde);padding:25px 12px;margin-top:60px}code{background:#f2f5f8;border-radius:5px;padding:3px 5px;word-break:break-word}
@media(max-width:600px){.bar{padding-top:15px;padding-bottom:15px}.logo{width:180px}.cabecera nav{gap:10px}.ancho{padding:0 16px}.cuadro{padding:19px}.rejilla{grid-template-columns:1fr}}
/* ECESAM V2.3 · navegación y portada */
.v23-nav-group{position:relative;color:var(--marino)}.v23-nav-group summary{cursor:pointer;list-style:none;padding:9px 10px;border-radius:8px}.v23-nav-group summary::after{content:'⌄';margin-left:7px}.v23-nav-group summary::-webkit-details-marker{display:none}.v23-nav-dropdown{position:absolute;top:100%;right:0;z-index:40;min-width:225px;display:grid;padding:9px;background:white;border:1px solid var(--borde);border-radius:10px;box-shadow:0 14px 38px #0b254522}.v23-nav-dropdown a{display:block;padding:10px;border-radius:7px}.v23-nav-dropdown a:hover,.v23-nav-group[open] summary{background:#f4f7fa;text-decoration:none}.pie p{margin:0 0 10px}.v23-home-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff;border:1px solid var(--borde);border-radius:18px;overflow:hidden;margin:28px 0 25px;box-shadow:0 12px 30px #0b254512}.v23-home-hero-content{padding:clamp(24px,4vw,50px);align-self:center}.v23-home-hero-content h2{font-size:clamp(26px,3.1vw,39px);color:var(--marino);line-height:1.17;margin:12px 0 20px}.v23-home-hero img{display:block;width:100%;height:100%;object-fit:cover;min-height:370px}.v23-home-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.v23-home-meta a{font-size:13px}.v23-check-inline{display:flex;gap:12px;align-items:start;font-size:14px;margin:15px 0}.v23-check-inline input{width:18px;height:18px;margin:3px 0 0;flex:none}.v23-legal-body{white-space:pre-wrap;line-height:1.75;max-width:900px}.v23-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.v23-toolbar form{display:inline}.v23-linkbutton{background:#fff;color:#0b2545;border:1px solid #cbd8e5;border-radius:8px;padding:9px 12px;cursor:pointer}.v23-document-list{padding:0;list-style:none}.v23-document-list li{border-bottom:1px solid var(--borde);padding:12px 0}.v23-callout{border-left:4px solid var(--celeste);background:#f4f7fa;padding:12px 16px;border-radius:8px}.v23-table-sm{font-size:13px}.v23-table-sm th,.v23-table-sm td{padding:8px}.v23-grade{display:inline-block;background:#e8f7ed;border:1px solid #b4ddc5;color:#146438;padding:5px 9px;border-radius:7px;font-weight:700;font-size:13px}.v23-errorline{color:#a81818}.v23-upload-label{border:2px dashed #b7cfe1;padding:15px;border-radius:12px;background:#f7fbfe}.v23-small-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:11px 0}.v23-small-actions .boton{padding:8px 10px}
@media(max-width:750px){.v23-home-hero{grid-template-columns:1fr}.v23-home-hero img{min-height:180px;max-height:300px}.v23-nav-dropdown{right:auto;left:0}.cabecera nav{font-size:12px;gap:6px}}


/* ==============================================================
   ECESAM · Componentes compartidos de interfaz · V2.4.9
   Ampliación aditiva: no sustituye las clases previas de V2.3.
   La lógica de formularios permanece del lado del servidor.
   ============================================================== */
:root { --naranja-hover: #e96e04; --ecui-azul: #0b2545; --ecui-celeste: #0098e0; }

/* Botón institucional: mismo comportamiento que la web principal. */
.boton {
  transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.boton:not(.secundario):hover:not(:disabled) {
  background: var(--naranja-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.boton:disabled, .boton[disabled] {
  background: #e4eaf0;
  color: #65758b !important;
  box-shadow: none;
  transform: none;
  cursor: not-allowed;
}
.boton:disabled:hover, .boton[disabled]:hover {
  background: #e4eaf0;
  box-shadow: none;
  transform: none;
}
.boton:focus-visible, a:focus-visible, .salir:focus-visible,
.v23-nav-group summary:focus-visible {
  outline: 3px solid #f49b41;
  outline-offset: 3px;
}

/* Piezas reutilizables para pantallas de dos columnas. */
.ecui-page { margin: 18px 0 42px; }
.ecui-lead { color: #566c80; font-size: 14px; max-width: 830px; margin: 0 0 21px; }
.ecui-eyebrow { color: #176f9f; font-size: 11px; font-weight: 800; letter-spacing: .095em; margin: 0 0 8px; }
.ecui-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.ecui-card { background:#fff; border:1px solid var(--borde); border-radius:14px; padding:24px;
  box-shadow:0 4px 15px rgba(11,37,69,.055); min-width:0; }
.ecui-card h2 { font-size:20px; margin:0 0 10px; color:var(--marino); }
.ecui-card h3 { font-size:16px; margin:19px 0 10px; color:var(--marino); }
.ecui-card > p { font-size:14px; }
.ecui-card .nota { line-height:1.6; }
.ecui-card-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:12px; }
.ecui-muted { color:#60748a; font-size:13px; }
.ecui-divider { border:0; border-top:1px solid #e1e9f0; margin:20px 0; }
.ecui-check { border:1px solid #dce6ee; background:#f7fafc; border-radius:10px;
  padding:14px; margin:18px 0; }
.ecui-check input { accent-color:var(--celeste); }
.ecui-check strong { color:var(--marino); }
.ecui-check-info { font-size:12px; color:#63778c; font-weight:400; line-height:1.5; margin:7px 0 0 30px; }
.ecui-status { display:inline-flex; align-items:center; padding:5px 10px; border-radius:999px;
  background:#eaf5fc; color:#18597d; font-size:11px; font-weight:800; white-space:nowrap; }
.ecui-status--neutral { color:#526378; background:#eef3f7; }
.ecui-doc { padding:15px 0; border-top:1px solid #e1e9f0; }
.ecui-doc:first-of-type { border-top:0; }
.ecui-doc h3 { font-size:15px; margin:0 0 7px; }
.ecui-doc p { font-size:13px; margin:0 0 9px; color:#53677a; }
.ecui-doc a { font-size:13px; font-weight:700; }
.ecui-doc-links { display:flex; gap:9px 17px; flex-wrap:wrap; margin:8px 0 0; }
.ecui-history { margin-top:15px; border:1px solid #e0e8f0; border-radius:10px; padding:12px 14px; }
.ecui-history summary { cursor:pointer; color:var(--marino); font-size:13px; font-weight:700; }
.ecui-history-table { overflow-x:auto; margin-top:12px; }
.ecui-history-table table { min-width:0; font-size:12px; }
.ecui-history-table td, .ecui-history-table th { padding:8px 6px; }
.ecui-history-table td:last-child, .ecui-history-table th:last-child { text-align:right; }
.ecui-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:17px; }
.ecui-actions .boton { min-width:155px; }
.ecui-privacy-hint { padding:14px; border-left:3px solid var(--celeste); border-radius:8px;
  background:#f0f7fc; color:#365a75; font-size:13px; margin:17px 0 0; }
@media (max-width:760px) {
  .ecui-grid { grid-template-columns:1fr; }
  .ecui-card { padding:19px; }
}
@media (prefers-reduced-motion:reduce) {
  .boton { transition:none; }
  .boton:not(.secundario):hover:not(:disabled) { transform:none; }
}


/* ECESAM V2.5.2: componentes del formulario de aceptacion.
   Estilos unificados en el CSS institucional, solo prefijo ela-/ecesam-. */
/* ECESAM Aula V2.4.8 · Formulario jurídico institucional.
   CSS externo compatible con CSP style-src 'self'. Sin alterar estilos globales.
   Botón ECESAM: #F3841D, texto blanco, hover #E96E04. */
.ecesam-legal-accept {
  --ela-navy:#0b2545; --ela-orange:#f3841d; --ela-orange-hover:#e96e04;
  --ela-ice:#f4f7fa; --ela-cyan:#0098e0; --ela-ink:#26394e;
  width:min(100%,1160px); margin:0 auto; padding:14px 16px 48px;
  color:var(--ela-ink); font-size:15px; line-height:1.55;
}
.ecesam-legal-accept, .ecesam-legal-accept *, .ecesam-legal-accept *::before, .ecesam-legal-accept *::after { box-sizing:border-box; }
.ecesam-legal-accept .ela-head { display:flex; justify-content:space-between; align-items:flex-start; gap:26px; padding:4px 0 24px; border-bottom:2px solid #e4edf5; }
.ecesam-legal-accept .ela-kicker, .ecesam-legal-accept .ela-eyebrow { font-size:.74rem; line-height:1.35; letter-spacing:.085em; font-weight:700; color:#2b6e9c; margin:0 0 9px; }
.ecesam-legal-accept .ela-head h2 { color:var(--ela-navy); font-size:clamp(1.32rem,2.35vw,1.88rem); line-height:1.23; font-weight:700; margin:0 0 10px; }
.ecesam-legal-accept .ela-head-intro { color:#54687e; max-width:730px; margin:0; font-size:.94rem; }
.ecesam-legal-accept .ela-step { display:flex; align-items:center; gap:10px; background:#eaf5fc; border:1px solid #cce6f4; color:#0b4c77; border-radius:11px; padding:10px 13px; min-width:175px; }
.ecesam-legal-accept .ela-step span { display:grid; place-items:center; background:#fff; border-radius:9px; width:37px; height:37px; font-weight:700; color:var(--ela-navy); }
.ecesam-legal-accept .ela-step small { font-size:.77rem; font-weight:750; line-height:1.32; }
.ecesam-legal-accept .ela-alert { margin:20px 0 0; padding:14px 16px; border-radius:9px; border-left:4px solid var(--ela-orange); background:#fff7ea; color:#62441e; font-size:.9rem; }
.ecesam-legal-accept .ela-alert--error { border-left-color:#ad2922; background:#fff2f0; color:#8b2520; }
.ecesam-legal-accept .ela-alert--info { margin-bottom:22px; }
.ecesam-legal-accept .ela-section { margin-top:22px; }
.ecesam-legal-accept .ela-section-heading { margin-bottom:15px; }
.ecesam-legal-accept .ela-section-heading h3, .ecesam-legal-accept .ela-panel h3 { color:var(--ela-navy); margin:0 0 8px; line-height:1.28; font-size:1.21rem; font-weight:700; }
.ecesam-legal-accept .ela-section-heading p:last-child, .ecesam-legal-accept .ela-intro { font-size:.89rem; color:#60758a; margin:0; }
.ecesam-legal-accept .ela-document-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; align-items:stretch; }
.ecesam-legal-accept .ela-panel { background:#fff; padding:23px; border-radius:14px; border:1px solid #dbe5ef; box-shadow:0 3px 10px rgba(11,37,69,.045); min-width:0; }
.ecesam-legal-accept .ela-document { display:flex; flex-direction:column; }
.ecesam-legal-accept .ela-meta { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:15px; }
.ecesam-legal-accept .ela-type, .ecesam-legal-accept .ela-version, .ecesam-legal-accept .ela-optional { display:inline-block; border-radius:100px; padding:5px 11px; font-size:.73rem; font-weight:800; line-height:1.3; }
.ecesam-legal-accept .ela-type { background:#f0f5fa; color:#335e7b; }
.ecesam-legal-accept .ela-version { background:#e7f5fd; color:#075f91; }
.ecesam-legal-accept .ela-document h4 { color:var(--ela-navy); font-size:1.04rem; font-weight:700; line-height:1.4; margin:0 0 17px; }
.ecesam-legal-accept .ela-links { background:var(--ela-ice); padding:13px 15px; border-radius:9px; display:grid; gap:12px; margin-top:auto; }
.ecesam-legal-accept .ela-links a { font-weight:750; font-size:.87rem; color:#006dab; text-decoration:none; overflow-wrap:anywhere; }
.ecesam-legal-accept .ela-links a:hover { color:#004a7c; text-decoration:underline; }
.ecesam-legal-accept .ela-links .ela-link-primary { padding-bottom:10px; border-bottom:1px solid #dbe6ee; }
.ecesam-legal-accept .ela-integrity { margin-top:13px; font-size:.78rem; color:#617389; }
.ecesam-legal-accept .ela-integrity summary { cursor:pointer; font-weight:700; color:#375c78; }
.ecesam-legal-accept .ela-integrity p { margin:8px 0 1px; }
.ecesam-legal-accept .ela-integrity code { display:block; font-size:.72rem; line-height:1.45; word-break:break-all; background:#f5f7fa; padding:8px; border-radius:6px; color:#28415b; }
.ecesam-legal-accept .ela-form { margin-top:25px; }
.ecesam-legal-accept .ela-confirm { margin-bottom:18px; }
.ecesam-legal-accept .ela-check { display:flex; align-items:flex-start; gap:12px; width:100%; border:1px solid #dce6ef; background:#fbfcfe; border-radius:10px; margin:14px 0 0; padding:16px; font-size:.91rem; cursor:pointer; }
.ecesam-legal-accept .ela-check:has(input:checked) { background:#f0f9ff; border-color:#a9d8ef; }
.ecesam-legal-accept .ela-check input[type="checkbox"] { appearance:auto; flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; accent-color:#008bcf; cursor:pointer; }
.ecesam-legal-accept .ela-check strong, .ecesam-legal-accept .ela-check small { display:block; }
.ecesam-legal-accept .ela-check strong { color:var(--ela-navy); font-size:.91rem; margin-bottom:3px; }
.ecesam-legal-accept .ela-check small { color:#425b72; font-size:.87rem; line-height:1.55; }
.ecesam-legal-accept .ela-marketing { margin-bottom:18px; }
.ecesam-legal-accept .ela-marketing-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.ecesam-legal-accept .ela-optional { background:#eef2f6; color:#586c80; }
.ecesam-legal-accept .ela-check--optional { background:#fff; }
.ecesam-legal-accept .ela-footnote { margin:11px 0 0; color:#66788a; font-size:.81rem; }
.ecesam-legal-accept .ela-actions { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:20px 22px; border:1px solid #dbe5ef; border-radius:13px; background:#f8fbfd; }
.ecesam-legal-accept .ela-actions strong { font-size:.94rem; color:var(--ela-navy); }
.ecesam-legal-accept .ela-actions p { margin:5px 0 0; color:#66788a; font-size:.81rem; max-width:510px; }
.ecesam-legal-accept .ela-action-control { text-align:right; flex-shrink:0; }
.ecesam-legal-accept button.ela-submit { display:inline-flex; align-items:center; justify-content:center; background:#F3841D !important; color:#FFFFFF !important; background-image:none !important; border:1px solid #F3841D !important; border-radius:8px; font-size:.89rem; font-weight:800; line-height:1.3; padding:13px 20px; min-height:45px; cursor:pointer; transition:background .18s, border-color .18s, transform .18s, box-shadow .18s; }
.ecesam-legal-accept button.ela-submit:disabled { background:#e4eaf0 !important; background-image:none !important; border-color:#d0dbe5 !important; color:#65758b !important; cursor:not-allowed; box-shadow:none !important; transform:none !important; }
.ecesam-legal-accept .ela-action-hint { font-size:.75rem !important; color:#64788b; margin:6px 0 0 !important; }
.ecesam-legal-accept :focus-visible { outline:3px solid #0098e0; outline-offset:3px; }
@media(hover:hover) {
  .ecesam-legal-accept button.ela-submit:not(:disabled):hover { background:#E96E04 !important; border-color:#E96E04 !important; color:#fff !important; transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.12); }
}
@media(max-width:850px) { .ecesam-legal-accept .ela-document-grid { grid-template-columns:1fr; } .ecesam-legal-accept .ela-actions { align-items:flex-start; flex-direction:column; } .ecesam-legal-accept .ela-action-control { text-align:left; width:100%; } }
@media(max-width:640px) { .ecesam-legal-accept { padding:8px 5px 28px; } .ecesam-legal-accept .ela-head { flex-direction:column; gap:10px; } .ecesam-legal-accept .ela-step { min-width:0; } .ecesam-legal-accept .ela-panel { padding:17px; } .ecesam-legal-accept .ela-document-grid { gap:12px; } .ecesam-legal-accept .ela-actions { padding:16px; } .ecesam-legal-accept .ela-action-control { width:100%; } .ecesam-legal-accept button.ela-submit { width:100%; } }
@media(prefers-reduced-motion: reduce) { .ecesam-legal-accept button.ela-submit { transition:none !important; } .ecesam-legal-accept button.ela-submit:hover { transform:none !important; } }

/* ECESAM V2.5.3 · copia histórica institucional y mensajes de documento */
.documento-cabecera{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--borde)}
.documento-cabecera-barra{min-height:84px}
.documento-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.documento-nav a{color:var(--marino);font-weight:600}
.documento-print{padding:10px 12px}
.documento-legal-page{padding-top:28px;padding-bottom:50px}
.documento-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.95fr);gap:22px;align-items:start;margin-bottom:18px}
.documento-hero-texto,.documento-datos{background:#fff;border:1px solid var(--borde);border-radius:18px;box-shadow:0 8px 24px #0b25450c}
.documento-hero-texto{padding:clamp(24px,4vw,34px)}
.documento-hero-texto h1{margin:8px 0 16px;font-size:clamp(30px,4vw,44px);line-height:1.14}
.documento-resumen{max-width:780px;font-size:16px}
.documento-acciones{margin-top:22px}
.documento-datos{padding:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.documento-dato-card{background:#f8fbfd;border:1px solid #dbe8f2;border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:6px;min-height:86px}
.documento-dato-card strong{color:var(--marino);font-size:16px;line-height:1.35}
.documento-dato-label{color:#5f7184;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.documento-dato-wide{grid-column:1/-1}
.documento-dato-card code{font-size:12px;line-height:1.6}
.documento-aviso-evidencia{margin:0 0 18px}
.documento-legal-card{padding:clamp(24px,4vw,38px)}
.documento-cabecera-interna{display:flex;justify-content:space-between;align-items:start;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--borde);padding-bottom:16px;margin-bottom:16px}
.documento-cabecera-interna h2{margin:8px 0 0;font-size:clamp(24px,3vw,33px)}
.documento-badges{display:flex;gap:10px;flex-wrap:wrap}
.documento-badge{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;border-radius:999px;background:#e9f5fb;color:var(--marino);font-size:13px;font-weight:800}
.documento-meta-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;background:#f8fbfd;border:1px solid #dbe8f2;border-radius:14px;padding:15px 16px;margin-bottom:18px}
.documento-meta-resumen div{font-size:14px;color:#4f6275}
.documento-cuerpo{font-size:15px;line-height:1.85;color:#213243;white-space:normal;overflow-wrap:anywhere}
.documento-cuerpo h3,.documento-cuerpo strong{color:var(--marino)}
.documento-cuerpo p{margin:0 0 14px}
.documento-cuerpo br{content:""}
.documento-error-card{max-width:760px;margin:24px auto 50px}
@media(max-width:900px){.documento-hero{grid-template-columns:1fr}.documento-datos{grid-template-columns:1fr 1fr}.documento-cabecera-interna{flex-direction:column}.documento-hero-texto h1{font-size:clamp(28px,8vw,38px)}}
@media(max-width:600px){.documento-datos{grid-template-columns:1fr}.documento-nav{width:100%;justify-content:flex-start}.documento-legal-page{padding-top:20px}.documento-hero-texto,.documento-datos,.documento-legal-card{border-radius:14px}.documento-cuerpo{font-size:14px;line-height:1.78}}
@media print{.documento-cabecera,.documento-acciones,.documento-aviso-evidencia,.pie,.documento-nav{display:none!important}body{background:#fff}.documento-hero-texto,.documento-datos,.documento-legal-card,.documento-meta-resumen,.documento-dato-card{box-shadow:none;border:1px solid #d5dde5}.documento-hero{grid-template-columns:1fr}.documento-legal-page{padding:0}.documento-hero{margin:0 0 18px}.documento-hero-texto{padding:0;border:0}.documento-datos{padding:0;border:0;background:transparent}.documento-dato-card{background:#fff}}


/* ECESAM V2.5.4 · estados y errores (compartido, sin hojas duplicadas) */
.ecesam-estado-body{min-height:100vh;display:flex;flex-direction:column;background:#f4f7fa}
.ecesam-estado-header{background:#fff}
.ecesam-estado-main{flex:1;width:100%;display:grid;place-items:center;padding-top:36px;padding-bottom:50px}
.ecesam-estado-card{max-width:720px;width:100%;padding:clamp(24px,5vw,46px);text-align:left;border-top:4px solid #0098e0}
.ecesam-estado-code{display:inline-flex;align-items:center;margin:12px 0 8px;padding:7px 12px;background:#e9f5fb;border-radius:9px;color:#0b2545;font-weight:800;font-size:14px;letter-spacing:.03em}
.ecesam-estado-name{margin:0;color:#0075af;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.ecesam-estado-card h1{font-size:clamp(26px,4vw,36px);font-weight:700;line-height:1.2;margin:10px 0 16px;color:#0b2545}
.ecesam-estado-description{font-size:16px;line-height:1.65;color:#37485a}
.ecesam-estado-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:24px 0}
.ecesam-estado-card .boton{font-family:inherit;font-size:14px;font-weight:700;background:#F3841D!important;color:white!important;text-decoration:none;border-radius:9px}
.ecesam-estado-card .boton:hover{background:#E96E04!important}
.ecesam-estado-secondary{font-weight:650}
.ecesam-estado-help{margin:18px 0 0;border-top:1px solid #dbe4ed;padding-top:18px}
.ecesam-empty-state{padding:24px;margin-top:20px}
.ecesam-empty-state h2{font-weight:700;margin-top:0}
.ecesam-empty-state .boton{background:#F3841D!important;color:#fff!important}
.ecesam-empty-state .boton:hover{background:#E96E04!important}
@media(max-width:600px){.ecesam-estado-main{padding-top:22px}.ecesam-estado-actions{align-items:stretch;flex-direction:column}.ecesam-estado-actions .boton{text-align:center}}

/* ECESAM V2.5.5 - contraste institucional en acciones habilitadas.
   Normal y estados de enlaces: blanco sobre naranja; no cambia botones deshabilitados.
   La regla se aplica tambien a enlaces que han sido visitados. */
a.boton:link,
a.boton:visited,
a.boton:hover,
a.boton:active,
a.boton:focus-visible,
button.boton:not(:disabled),
input.boton:not(:disabled),
.ecesam-legal-admin button.elegal-button--primary:not(:disabled),
.ecesam-legal-admin button.elegal-button--publish:not(:disabled),
.ecesam-legal-accept button.ela-submit:not(:disabled) {
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}
a.boton:link *,
a.boton:visited *,
a.boton:hover *,
button.boton:not(:disabled) * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor;
}
/* Mantener el efecto de sombreado del portal institucional. */
a.boton:not(.secundario):hover,
button.boton:not(.secundario):not(:disabled):hover,
input.boton:not(.secundario):not(:disabled):hover {
  background-color: #e96e04;
}

/* ECESAM V2.5.6: impresión preparada; estilos compartidos y contraste naranja. */
a.documento-print-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font:700 14px/1.3 system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
a.documento-print-link:hover{background:#eaf4fb;text-decoration:none;color:#0b2545}
.v23-home-hero img[src*="hero-formacion-ecesam-v256"]{object-position:54% center}
.documento-print-body{background:#eaf0f5;color:#23384b}
.documento-print-toolbar{max-width:880px;margin:18px auto;padding:13px 20px;background:#fff;border:1px solid #dbe4ed;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.documento-print-toolbar strong{color:#0b2545}.documento-print-toolbar p{font-size:13px;color:#596b7c;margin:4px 0 0}
.documento-print-toolbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.documento-print-toolbar-actions a{font-weight:650}
.documento-print-toolbar kbd{display:inline-block;padding:1px 6px;background:#f2f5f9;border:1px solid #dbe4ed;border-radius:4px}
.documento-print-paper{max-width:880px;min-height:550px;margin:0 auto 50px;padding:44px 48px;background:#fff;box-shadow:0 10px 40px #0b25451a}
.documento-print-head{border-bottom:2px solid #0098e0;padding-bottom:16px;margin-bottom:25px}
.documento-print-brand{color:#0878b5;font-size:12px;font-weight:800;letter-spacing:.07em}
.documento-print-head h1{font-size:26px;line-height:1.3;margin:12px 0;color:#0b2545}
.documento-print-meta{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.documento-print-text{font:400 13px/1.62 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;color:#25384a}
.documento-print-footer{margin-top:25px;padding-top:14px;border-top:1px solid #cfdbe6;color:#62758b;font-size:11px}
@media(max-width:750px){.documento-print-toolbar{margin:0 0 12px;border-radius:0}.documento-print-paper{padding:25px 20px;margin:0 0 25px;box-shadow:none}.documento-print-head h1{font-size:22px}}
@media print{
  @page{size:A4;margin:18mm 16mm}
  .documento-print-body{background:#fff!important;color:#000!important}
  .documento-print-toolbar{display:none!important}
  .documento-print-paper{max-width:none;margin:0;padding:0;box-shadow:none;border:0;min-height:0}
  .documento-print-head{break-after:avoid;page-break-after:avoid}
  .documento-print-text{font-size:10.8pt;line-height:1.48;color:#000!important;white-space:pre-wrap;overflow-wrap:anywhere;print-color-adjust:exact}
  .documento-print-head h1{font-size:17pt}
  .documento-print-footer{font-size:8pt}
}

/* Ajustes del panel de preparación, compatibles con la política CSP. */
.ec-espacio-superior{margin-top:20px}.ec-espacio-vertical{margin:20px 0}.ec-ancho-completo{width:100%}.ec-seguimiento-curso{margin-bottom:10px}.ec-pregunta{border-bottom:1px solid #dbe4ed;padding:13px 0}.ec-alternativa{margin:6px 0}.ec-correcta{color:#167449}.ec-casilla{display:flex;gap:9px;align-items:center}.ec-casilla input{width:auto;margin:0}.ec-horas{min-width:90px;width:100px}
