/* COPIA DERIVADA de rubria/prototipo/sistema.css (central-educativa @ 9c76777). Operaria Edu la usa como base y la re-viste
   con su marca en public/css/edu.css; los cambios de fondo se piden a la sesión de Rubria, no se hacen aquí. */
/* Rubria · sistema visual (lenguaje soft, violeta de Rubria) · nace de diseno/DIRECCIONES-VISUALES-V4.html · 6-oct-2026 */

/* ═══════════════ Tokens · canon-visual §3–§6 ═══════════════ */
:root{
  --escala:1;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"DM Mono",ui-monospace,Menlo,monospace;
  --navy:#132649;--navy-mid:#1D396D;--petrol:#1F5B57;--petrol-claro:#349891;--coral:#D7806A;--violeta:#7447A3;--violeta-luz:#C9B3E6;--violeta-piso:#EEE7F6;--violeta-tinta:#5B3A85;--tierra:#91524A;--piel:#EDC9C0;
  --acento:#132649;--acento-tinta:#fff;--acento-texto:#132649;
  --r-sm:8px;--r-md:14px;--r-lg:22px;--r-shell:28px;--bisel:6px;
  --spring:cubic-bezier(.32,.72,0,1);--peso:cubic-bezier(.2,.8,.2,1);--t:.22s;
  --fila:10px;
}
html[data-densidad="compacta"]{--fila:5px}
html{font-size:calc(16px * var(--escala));-webkit-text-size-adjust:100%}
/* Institucional · claro: riel en el color de la escuela (navy por omisión) */
html[data-modo="claro"]{
  --fondo:#EDEAE3;--hoja:#F7F6F2;--papel:#FFFFFF;--hoja-calida:#F7E7E3;
  --tinta:#132649;--tinta2:#505D74;--tinta3:#7C8493;--hair:#DCDAD7;--linea:rgba(19,38,73,.09);--linea2:rgba(19,38,73,.16);
  --bandeja:rgba(19,38,73,.035);--bandeja-borde:rgba(19,38,73,.08);--hover:rgba(19,38,73,.045);
  --sombra:0 1px 2px rgba(19,38,73,.05),0 4px 18px rgba(19,38,73,.06);--sombra-alta:0 2px 6px rgba(19,38,73,.07),0 14px 36px rgba(19,38,73,.10);--luz:inset 0 1px 0 rgba(255,255,255,.9);
  --ok:#349891;--ok-piso:#EAF3F1;--ok-vivo:#DCEDEA;--ok-tinta:#1F5B57;
  --warn:#D08A2E;--warn-piso:#F8F0E1;--warn-vivo:#F7E6C6;--warn-tinta:#7A5518;
  --err:#C8482E;--err-piso:#F8EAE5;--err-vivo:#F7DBD3;--err-tinta:#8E2F1B;
  --riel:var(--acento);--riel-tinta:#EDEAE3;--riel-2:#A9BACD;--riel-on:rgba(237,234,227,.10);--riel-hover:rgba(237,234,227,.06);--riel-borde:rgba(237,234,227,.12);
  --grano:.035;color-scheme:light;
}
/* Lino · claro: riel de lino y tinta navy */
html[data-tema="lino"][data-modo="claro"]{
  --fondo:#F2F0EB;--hoja:#FBFAF7;
  --riel:#E7E2D8;--riel-tinta:#132649;--riel-2:#505D74;--riel-on:rgba(19,38,73,.08);--riel-hover:rgba(19,38,73,.05);--riel-borde:rgba(19,38,73,.10);
}
/* Oscuro (ambos temas) */
html[data-modo="oscuro"]{
  --fondo:#0E182B;--hoja:#16223A;--papel:#FBFAF7;--hoja-calida:#2A2430;
  --tinta:#EDEAE3;--tinta2:#B4C0D2;--tinta3:#8B97AB;--hair:#26324A;--linea:rgba(237,234,227,.09);--linea2:rgba(237,234,227,.17);
  --bandeja:rgba(237,234,227,.035);--bandeja-borde:rgba(237,234,227,.09);--hover:rgba(237,234,227,.06);
  --sombra:0 1px 2px rgba(0,0,0,.3),0 4px 18px rgba(0,0,0,.25);--sombra-alta:0 2px 6px rgba(0,0,0,.35),0 14px 36px rgba(0,0,0,.4);--luz:inset 0 1px 0 rgba(255,255,255,.05);
  --ok:#5CC3BA;--ok-piso:rgba(92,195,186,.12);--ok-vivo:rgba(92,195,186,.2);--ok-tinta:#8FDBD3;
  --warn:#E5A955;--warn-piso:rgba(229,169,85,.12);--warn-vivo:rgba(229,169,85,.2);--warn-tinta:#F0C98E;
  --err:#E8735A;--err-piso:rgba(232,115,90,.13);--err-vivo:rgba(232,115,90,.22);--err-tinta:#F3A897;
  --riel:#091222;--riel-tinta:#EDEAE3;--riel-2:#A9BACD;--riel-on:rgba(237,234,227,.10);--riel-hover:rgba(237,234,227,.06);--riel-borde:rgba(237,234,227,.10);
  --grano:.05;color-scheme:dark;--violeta:#9054B5;--violeta-piso:rgba(144,84,181,.24);--violeta-tinta:#D7C4EE;
}
html[data-tema="lino"][data-modo="oscuro"]{--fondo:#1A1714;--hoja:#24201B;--riel:#120F0C;--tinta2:#CBC2B4;--tinta3:#A0978A}
html[data-mov="reducido"] *,html[data-mov="reducido"] *::before,html[data-mov="reducido"] *::after{transition:none!important;animation:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* ═══════════════ Base ═══════════════ */
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;background:var(--fondo);color:var(--tinta);font:400 .875rem/1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* fuera de default · grano de papel, heredado firmado de la propuesta soft (27-sep-2026) */
body::before{content:"";position:fixed;inset:0;z-index:70;pointer-events:none;opacity:var(--grano);mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .0745 0 0 0 0 .149 0 0 0 0 .286 0 0 0 1.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
html[data-modo="oscuro"] body::before{mix-blend-mode:screen}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--acento-texto)}
:focus-visible{outline:none;box-shadow:0 0 0 2px var(--petrol-claro),0 0 0 6px rgba(52,152,145,.18)!important}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.ic{width:1rem;height:1rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tenue{color:var(--tinta3)}.sec{color:var(--tinta2)}
.fila{display:flex;align-items:center;gap:10px}.esp{flex:1}
em{font-style:italic}

/* ── Materia: bandeja y hoja (doble bisel) ── */
.bz{padding:var(--bisel);border-radius:var(--r-shell);background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde);min-width:0}
.core{height:100%;min-width:0;background:var(--hoja);border-radius:var(--r-lg);box-shadow:var(--luz),var(--sombra);padding:24px 26px;display:flex;flex-direction:column;gap:16px}
.ceja{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;min-height:28px;padding:6px 14px 6px 12px;border-radius:999px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde);
  font:400 .66rem/1.35 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--tinta2)}
.ceja i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--violeta);box-shadow:0 0 0 3px rgba(116,71,163,.2)}
.h1{margin:0;font:400 clamp(2.3rem,2.2vw + 1.2rem,3.4rem)/1.02 var(--serif);letter-spacing:-.015em;color:var(--tinta);text-wrap:balance}
.h1 em,.h2 em{color:var(--violeta)}
html[data-modo="oscuro"] .h1 em,html[data-modo="oscuro"] .h2 em{color:var(--violeta-luz)}
.h2{margin:0;font:500 1.6rem/1.08 var(--serif);letter-spacing:-.005em;color:var(--tinta)}
.lbl{font:400 .66rem/1.35 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta2)}
.cab-t{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap}

/* ── Botones píldora con círculo anidado ── */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;height:2.5rem;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--tinta);
  font:500 .82rem/1 var(--sans);white-space:nowrap;box-shadow:0 0 0 1px var(--linea2);transition:transform var(--t) var(--spring),background-color var(--t) var(--spring),box-shadow var(--t) var(--spring)}
.btn:hover{background:var(--hover);box-shadow:0 0 0 1px var(--tinta)}
.btn.prim{background:var(--acento);color:var(--acento-tinta);padding:0 5px 0 20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 6px rgba(19,38,73,.10),0 16px 32px -14px rgba(19,38,73,.55)}
/* fuera de default · flecha en el círculo anidado: la acción lleva a otra parte · heredado firmado de la propuesta soft */
.btn.prim::after{content:"→";display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--violeta);color:#fff;font:500 .8rem/1 var(--mono);transition:transform .32s var(--spring)}
.btn.prim:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--acento) 86%,#fff 14%)}
.btn.prim:hover::after{transform:translate(2px,-1px) scale(1.05)}
.btn.plano{box-shadow:none;color:var(--acento-texto);padding:0 10px}
.btn.plano:hover{background:var(--hover);box-shadow:none}
.btn.peligro{color:var(--err-tinta)}
.btn.icono{width:2.5rem;padding:0;color:var(--tinta2)}
.btn[disabled]{opacity:.42;cursor:not-allowed;transform:none!important}
.btn:active:not([disabled]){transform:scale(.98)}
.linkp{display:inline-flex;align-items:center;gap:10px;height:2.25rem;padding:0 4px 0 14px;border:0;border-radius:999px;background:transparent;color:var(--tinta);font:500 .78rem/1 var(--sans);box-shadow:0 0 0 1px var(--linea2);white-space:nowrap;transition:box-shadow var(--t) var(--spring),background-color var(--t) var(--spring)}
.linkp::after{content:"→";display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--hover);font:500 .75rem/1 var(--mono);transition:transform .32s var(--spring)}
.linkp:hover{box-shadow:0 0 0 1px var(--tinta)}.linkp:hover::after{transform:translate(2px,-1px) scale(1.05)}
.enlace{background:none;border:0;padding:0;color:var(--acento-texto);font-size:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--linea2);text-underline-offset:3px}
.enlace:hover{text-decoration-color:currentColor}
.tabs{position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:4px;border-radius:999px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.tabs button{position:relative;z-index:1;height:2.1rem;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--tinta2);font-size:.8rem;white-space:nowrap;transition:color var(--t) var(--spring),background-color .35s var(--spring),box-shadow .35s var(--spring)}
.tabs button[aria-pressed="true"]{background:var(--hoja);color:var(--tinta);font-weight:500;box-shadow:var(--luz),0 1px 2px rgba(19,38,73,.08),0 6px 16px -6px rgba(19,38,73,.2)}
.seg{display:inline-flex}.seg button{border:0;background:transparent}
.campo{height:2.4rem;border:0;border-radius:12px;background:var(--papel);box-shadow:var(--luz),0 0 0 1px var(--linea2);padding:0 14px;font-size:.85rem;min-width:0;color:#132649}
html[data-modo="oscuro"] .campo{background:var(--hoja);color:var(--tinta)}
textarea.campo{height:auto;padding:12px 14px;line-height:1.5;resize:vertical}
.badge{margin-left:auto;min-width:24px;height:22px;padding:0 8px;border-radius:999px;display:inline-grid;place-items:center;background:var(--violeta-piso);color:var(--violeta-tinta);font:500 .68rem/1 var(--mono)}

/* ── Señales: punto + texto, nunca solo color ── */
.est{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 9px;border-radius:999px;font:500 .72rem/1.3 var(--sans);white-space:nowrap}
.est::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--k)}
.est.ok{background:var(--ok-piso);color:var(--ok-tinta);--k:var(--ok)}
.est.aviso{background:var(--warn-piso);color:var(--warn-tinta);--k:var(--warn)}
.est.critico{background:var(--err-piso);color:var(--err-tinta);--k:var(--err)}
.est.neutro{background:var(--bandeja);color:var(--tinta2);box-shadow:0 0 0 1px var(--bandeja-borde)}.est.neutro::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--tinta3)}
.est.info{background:rgba(29,57,109,.08);color:var(--tinta);--k:var(--navy-mid)}
html[data-modo="oscuro"] .est.info{background:rgba(169,186,205,.12);--k:#A9BACD}
.est.reservado{background:var(--hoja-calida);color:var(--tierra);--k:var(--tierra)}.est.reservado::before{border-radius:2px}
html[data-modo="oscuro"] .est.reservado{color:var(--piel)}
.est.sim{background:transparent;box-shadow:inset 0 0 0 1px var(--linea2);color:var(--tinta3)}.est.sim::before{display:none}
.marca-oficial{display:inline-flex;align-items:center;gap:5px;font:400 .6rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta3)}
.marca-oficial .ic{width:.7rem;height:.7rem}

/* ═══════════════ Aplicación: riel flotante ═══════════════ */
.app{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100dvh}
.riel{position:sticky;top:0;height:100dvh;padding:16px 0 16px 16px;z-index:30}
.riel .bz{height:100%}
.riel-core{height:100%;border-radius:var(--r-lg);background:var(--riel);color:var(--riel-tinta);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 24px 60px -28px rgba(19,38,73,.6);padding:22px 14px 16px;display:flex;flex-direction:column;gap:22px;overflow:auto;scrollbar-width:none}
.marca-esc{display:flex;align-items:center;gap:12px;padding:0 8px}
.escudo{flex:none;display:grid;place-items:center;border-radius:50%;background:#fff;overflow:hidden}
.escudo img{width:100%;height:100%;object-fit:contain;padding:12%}
.escudo .marcador{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;border:1.5px dashed rgba(19,38,73,.35);color:var(--navy);font:500 .8rem/1 var(--mono);letter-spacing:.06em;background:#fff}
.marca-esc .t{display:flex;flex-direction:column;min-width:0}
.marca-esc .k{font:400 .6rem/1.3 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--violeta-luz)}
html[data-tema="lino"][data-modo="claro"] .marca-esc .k{color:var(--violeta)}
.marca-esc .n{font:500 1.18rem/1.1 var(--serif);color:var(--riel-tinta)}
.marca-esc .c{font-size:.72rem;color:var(--riel-2)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav h6{margin:10px 14px 4px;font:400 .6rem/1.3 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--riel-2);opacity:.75}
.nl{position:relative;display:flex;align-items:center;gap:12px;min-height:2.5rem;padding:0 10px 0 14px;border:0;border-radius:999px;background:transparent;color:var(--riel-2);font:400 .875rem/1.2 var(--sans);text-align:left;width:100%;cursor:pointer;transition:background-color var(--t) var(--spring),color var(--t) var(--spring)}
.nl:hover{background:var(--riel-hover);color:var(--riel-tinta)}
.nl .pt{flex:none;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.3;transition:all var(--t) var(--spring)}
.nl span.t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nl .sub{margin-left:auto;font:400 .6rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.nl.on{background:var(--riel-on);color:var(--riel-tinta);font-weight:500;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 0 0 1px var(--riel-borde)}
/* fuera de default · el violeta de Rubria (#7447A3, el punto de la mochila) reemplaza al coral: es la rebeldía del producto y marca dónde estás y los círculos de acción · Francisco, 6-oct-2026 */
.nl.on .pt{opacity:1;background:var(--violeta);box-shadow:0 0 0 4px rgba(116,71,163,.16),0 0 14px rgba(116,71,163,.55)}
.riel-pie{margin-top:auto;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 12px;padding:14px 8px 2px;border-top:1px solid var(--riel-borde)}
.av{flex:none;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--violeta-piso);color:var(--violeta-tinta);font:500 .72rem/1 var(--mono);letter-spacing:.06em;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.av.sm{width:1.9rem;height:1.9rem;font-size:.62rem}
.quien{display:flex;flex-direction:column;min-width:0}
.quien b{font-weight:500;font-size:.84rem;color:var(--riel-tinta)}
.quien span{font-size:.72rem;color:var(--riel-2)}
.cambiar{grid-column:1 / -1;justify-self:start;font:400 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--violeta-luz);background:transparent;border:0;padding:8px 10px;border-radius:999px;box-shadow:0 0 0 1px rgba(201,179,230,.3)}
html[data-tema="lino"][data-modo="claro"] .cambiar{color:var(--violeta);box-shadow:0 0 0 1px rgba(116,71,163,.3)}
.firma-rubria{grid-column:1 / -1;display:flex;align-items:center;gap:8px;font:400 .6rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--riel-2);opacity:.85}
.ficticio{grid-column:1 / -1;font:400 .6rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--riel-2);opacity:.7}
.isla{display:none}
.main{padding:40px 44px 140px;min-width:0;width:100%;max-width:1340px;margin:0 auto}
.pant{display:flex;flex-direction:column;gap:24px}
.cab{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 32px;flex-wrap:wrap}
.cab-izq{display:flex;flex-direction:column;gap:16px;min-width:0}
.cab-der{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.buscar{display:flex;align-items:center;gap:10px;height:2.75rem;width:17rem;padding:0 6px 0 18px;border:0;border-radius:999px;background:var(--hoja);color:var(--tinta3);font-size:.82rem;box-shadow:var(--luz),0 0 0 1px var(--bandeja-borde),0 1px 2px rgba(19,38,73,.06);text-align:left}
.buscar span{flex:1}
.buscar i{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--hover);font:normal 500 .7rem/1 var(--mono);color:var(--tinta)}

/* ═══════════════ Inicio ═══════════════ */
.dos-col{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;align-items:start}
.col{display:flex;flex-direction:column;gap:20px;min-width:0}
.prox-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px}
.kpi-xl{font:300 clamp(3.4rem,4vw,5rem)/.9 var(--mono);letter-spacing:-.06em;color:var(--tinta)}
.kpi-l{font:300 2.8rem/.95 var(--mono);letter-spacing:-.05em;color:var(--tinta)}
.kpi-m{font:300 1.9rem/.95 var(--mono);letter-spacing:-.04em;color:var(--tinta)}
.kpi-xl small,.kpi-l small,.kpi-m small{font-size:.42em;letter-spacing:-.02em;color:var(--tinta2);margin-left:4px}
.medidor{position:relative;height:10px;border-radius:999px;background:var(--hover)}
.medidor i{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--navy-mid)}
html[data-modo="oscuro"] .medidor i{background:#A9BACD}
.medidor.warn i{background:var(--warn)}.medidor.err i{background:var(--err)}.medidor.ok i{background:var(--ok)}
.lista-mat{display:flex;flex-direction:column;gap:2px;margin:0 -10px}
.mrow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:44px;padding:4px 10px;border-radius:var(--r-md);transition:background-color var(--t) var(--spring)}
.mrow.clic{cursor:pointer}.mrow.clic:hover{background:var(--hover)}
.mrow .ico{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--bandeja);color:var(--tinta2)}
.mrow .t{min-width:0}.mrow .t>b{display:block;font-weight:500;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mrow .t>span{display:block;font-size:.72rem;color:var(--tinta2)}
.apoyo{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-md);background:var(--hoja-calida);font-size:.82rem;color:var(--tinta)}
.agenda{display:flex;flex-direction:column;margin:0 -8px}
.ag{display:grid;grid-template-columns:3.4rem 12px minmax(0,1fr);gap:12px;align-items:start;padding:10px 8px;border-radius:var(--r-md);cursor:pointer;transition:background-color var(--t) var(--spring)}
.ag:hover{background:var(--hover)}
.ag .h{font:400 .78rem/1.3 var(--mono);color:var(--tinta2);padding-top:1px}
.ag .h small{display:block;color:var(--tinta3);font-size:.68rem}
.ag .p{width:10px;height:10px;border-radius:50%;margin-top:4px;background:var(--k)}
.ag .t b{display:block;font-weight:500;font-size:.86rem;line-height:1.35}
.ag .t span{display:block;font-size:.74rem;color:var(--tinta2)}
.ahora{display:grid;grid-template-columns:3.4rem 12px 1fr;gap:12px;align-items:center;padding:0 8px;font:400 .66rem/1 var(--mono);letter-spacing:.12em;color:var(--err-tinta)}
.ahora .p{width:8px;height:8px;border-radius:50%;background:var(--violeta);box-shadow:0 0 0 3px rgba(116,71,163,.25);margin-left:1px}
.ahora i{height:1px;background:linear-gradient(90deg,var(--violeta),transparent)}
.grp-h{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin:4px 0 2px;padding:5px 11px;border-radius:999px;font:400 .62rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase}
.grp-h.err{background:var(--err-piso);color:var(--err-tinta)}.grp-h.warn{background:var(--warn-piso);color:var(--warn-tinta)}.grp-h.neu{background:var(--bandeja);color:var(--tinta2)}
.al{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:14px;align-items:start;padding:12px 10px 12px 12px;margin:0 -10px;border-radius:var(--r-md);cursor:pointer;transition:background-color var(--t) var(--spring)}
.al:hover{background:var(--hover)}
.al .mk{width:10px;height:10px;margin-top:5px;border-radius:50%}
.al.err .mk{background:var(--err);box-shadow:0 0 0 3px var(--err-vivo)}
.al.warn .mk{background:transparent;box-shadow:inset 0 0 0 2px var(--warn)}
.al.info .mk{background:var(--navy-mid);box-shadow:0 0 0 3px rgba(29,57,109,.12)}
html[data-modo="oscuro"] .al.info .mk{background:#A9BACD}
.al.neu .mk{background:transparent;box-shadow:inset 0 0 0 2px var(--tinta3)}
.al .b{display:flex;flex-direction:column;gap:3px;min-width:0}
.al .t{font-size:.875rem;line-height:1.4;color:var(--tinta)}
.al .m{font-size:.76rem;color:var(--tinta2)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--r-md);background:var(--bandeja);cursor:pointer;border:0;text-align:left;transition:background-color var(--t) var(--spring)}
.tile:hover{background:var(--hover)}
.tile.ancho{grid-column:1 / -1}
.tile .d{font-size:.74rem;color:var(--tinta2);line-height:1.4}
.puntos{display:grid;grid-template-columns:repeat(28,minmax(0,1fr));gap:3px}
.puntos span{aspect-ratio:1;border-radius:50%;background:var(--navy-mid);opacity:.85}
html[data-modo="oscuro"] .puntos span{background:#A9BACD}
.puntos span.sin{background:transparent;box-shadow:inset 0 0 0 1.4px var(--tinta3);opacity:1}
.msg{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:10px 8px;margin:0 -8px;border-radius:var(--r-md);cursor:pointer}
.msg:hover{background:var(--hover)}
.msg>div>b{display:block;font-weight:500;font-size:.84rem}.msg>div>span{display:block;font-size:.74rem;color:var(--tinta2)}

/* ═══════════════ Planificación ═══════════════ */
.anio{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:center}
.cinta{position:relative}
.cinta .meses{display:grid;grid-template-columns:repeat(10,1fr);font:400 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta3);margin-bottom:10px}
.cinta .pista{position:relative;height:34px;border-radius:999px;background:var(--hover)}
.cinta .u{position:absolute;top:4px;bottom:4px;border-radius:999px;font:500 .68rem/26px var(--sans);padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;background:rgba(29,57,109,.16);color:var(--tinta)}
html[data-modo="oscuro"] .cinta .u{background:rgba(169,186,205,.18)}
.cinta .u.on{background:var(--acento);color:var(--acento-tinta);box-shadow:0 6px 14px -8px rgba(19,38,73,.6)}
.cinta .hoy{position:absolute;top:-8px;bottom:-8px;width:2px;margin-left:-1px;border-radius:2px;background:var(--tierra)}
.cinta .hoy b{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);font:400 .58rem/1 var(--mono);letter-spacing:.14em;color:var(--tierra)}
.cinta .libre{position:absolute;bottom:-12px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--violeta)}
.cinta .inv{position:absolute;bottom:-11px;height:3px;border-radius:2px;background:repeating-linear-gradient(90deg,var(--violeta) 0 3px,transparent 3px 6px)}
.leyenda{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:22px;font-size:.72rem;color:var(--tinta2)}
.leyenda span{display:inline-flex;align-items:center;gap:8px}
.leyenda span::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--k)}
.banda{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-radius:var(--r-md);background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde);font-size:.84rem}
.pista-ses{display:flex;gap:4px;padding:5px;border-radius:999px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde);overflow-x:auto;scrollbar-width:none}
.pista-ses::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:8px;height:2.25rem;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--tinta2);font-size:.78rem;white-space:nowrap;transition:background-color var(--t) var(--spring),color var(--t) var(--spring)}
.chip:hover{background:var(--hover);color:var(--tinta)}
.chip b{font:500 .74rem/1 var(--mono)}
.chip .g{width:7px;height:7px;border-radius:50%;background:var(--k,transparent);box-shadow:inset 0 0 0 1.4px var(--k2,transparent)}
.chip[aria-pressed="true"]{background:var(--acento);color:var(--acento-tinta);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 6px 14px -8px rgba(19,38,73,.6)}
.chip .com{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--violeta);color:#fff;font:500 .6rem/1 var(--mono)}
.chip .com.ok{background:var(--ok)}
.plan-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(320px,5fr);gap:20px;align-items:start}
.pegado{position:sticky;top:20px}
.sesion h3{font:500 1.9rem/1.08 var(--serif)!important;letter-spacing:-.01em;margin:10px 0 4px!important}

/* Piezas compartidas del núcleo, vestidas en soft */
.rotulo-campo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:20px 0 8px;font:400 .62rem/1.35 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta2)}
.rotulo-campo .est{letter-spacing:0;text-transform:none}
.oa{padding:12px 14px;border-radius:var(--r-md);background:var(--bandeja);margin:6px 0}
.oa .cod{font:500 .78rem/1.5 var(--mono);color:var(--tinta)}
.oa p{margin:4px 0 0;font-size:.86rem;line-height:1.5}
.lista-ind{margin:8px 0 0;padding-left:1.1rem;font-size:.8rem;color:var(--tinta2)}
.lista-ind li{margin:3px 0}.lista-ind b{font:500 .74rem var(--mono);color:var(--tinta)}
.criterio-docente{padding:12px 14px;border-radius:var(--r-md);background:var(--hoja-calida);font-size:.88rem}
.editable{border-radius:8px;outline:none;transition:background-color var(--t),box-shadow var(--t)}
.editable:hover{background:var(--hover)}
.editable:focus{background:var(--papel);box-shadow:0 0 0 2px var(--petrol-claro),0 0 0 6px rgba(52,152,145,.14)}
html[data-modo="oscuro"] .editable:focus{background:var(--hoja)}
.momentos{display:grid;grid-template-columns:6rem 1fr 4.5rem;border-top:1px solid var(--linea)}
.momentos>div{padding:var(--fila) 0;border-bottom:1px solid var(--linea);font-size:.86rem}
.momentos .m{font:500 1.05rem/1.2 var(--serif)}
.momentos .min{text-align:right;font:400 .78rem var(--mono);color:var(--tinta2)}
.mat{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:46px;padding:4px 0;border-bottom:1px solid var(--linea)}
.mat>.ic{width:30px;height:30px;padding:7px;border-radius:50%;background:var(--bandeja);color:var(--tinta2)}
.mat .t{min-width:0}.mat .t>b{display:block;font-weight:500;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat .t>span{display:block;font-size:.72rem;color:var(--tinta2)}
.banda-version{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--r-md);background:var(--bandeja);font-size:.82rem}
.nota-al-pie{display:flex;gap:6px;align-items:flex-start;font-size:.72rem;color:var(--tinta2);margin:12px 0 0;line-height:1.45}
.nota-al-pie .ic{margin-top:1px;width:.85rem;height:.85rem}
.hilo{padding:16px 0;border-bottom:1px solid var(--linea)}
.hilo .cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.74rem;color:var(--tinta2)}
.hilo .cab b{color:var(--tinta);font-weight:500;font-size:.84rem}
.hilo p{margin:8px 0;font:400 1.08rem/1.38 var(--serif);color:var(--tinta)}
.hilo .avatar{display:none}
.sugerencia{border-radius:var(--r-md);padding:12px 14px;font-size:.82rem;background:var(--papel);box-shadow:var(--luz),0 0 0 1px var(--linea2);color:#132649}
html[data-modo="oscuro"] .sugerencia{background:var(--hoja);color:var(--tinta)}
.sugerencia .tenue{font:400 .6rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:4px}
.marcador-com{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--violeta);color:#fff;font:500 .6rem/1 var(--mono);margin-left:6px;vertical-align:2px}
.marcador-com.resuelto{background:var(--ok)}
.verif{display:flex;gap:10px;padding:var(--fila) 0;border-bottom:1px solid var(--linea);align-items:flex-start}
.verif .t{flex:1;min-width:0}.verif .t b{font-weight:500;font-size:.84rem}
.verif .t p{margin:3px 0 0;font-size:.76rem;color:var(--tinta2);line-height:1.45}
.tabla{width:100%;border-collapse:collapse;font-size:.82rem}
.tabla th{font:400 .6rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2);text-align:left;padding:8px;border-bottom:1px solid var(--linea)}
.tabla td{padding:var(--fila) 8px;border-bottom:1px solid var(--linea);vertical-align:top}
.hallazgo{position:relative;border-radius:var(--r-md);padding:16px 18px 16px 20px;margin:0 0 12px;background:var(--hoja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.hallazgo::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--k,var(--tinta3))}
.hallazgo:has(.est.critico){background:var(--err-piso);--k:var(--err)}
.hallazgo:has(.est.aviso){background:var(--warn-piso);--k:var(--warn)}
.hallazgo:has(.est.ok){background:var(--ok-piso);--k:var(--ok)}
.hallazgo .cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hallazgo .cab b{font:500 1.05rem/1.2 var(--serif)}
.hallazgo p{margin:8px 0;font-size:.84rem;line-height:1.5}
.diff del{background:var(--err-vivo);color:var(--err-tinta);text-decoration:line-through;border-radius:4px;padding:0 3px}
.diff ins{background:var(--ok-vivo);color:var(--ok-tinta);text-decoration:none;border-radius:4px;padding:0 3px}
.aviso-local{position:relative;font-size:.78rem;color:var(--tinta2);padding:10px 14px 10px 18px;border-radius:var(--r-md);background:var(--bandeja);margin:4px 0}
.aviso-local::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--violeta)}

/* ═══════════════ Operaria Edu ═══════════════ */
.pasos-edu{display:flex;gap:4px;padding:5px;border-radius:999px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde);overflow-x:auto;scrollbar-width:none}
.paso{flex:none;display:inline-flex;align-items:center;gap:8px;height:2.1rem;padding:0 14px;border-radius:999px;font-size:.76rem;color:var(--tinta2);white-space:nowrap}
.paso::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}
.paso.actual{background:var(--warn-vivo);color:var(--warn-tinta);font-weight:500}.paso.actual::before{background:var(--warn)}
.paso.bloq::before,.paso.pend::before{background:transparent;box-shadow:inset 0 0 0 1.4px var(--tinta3)}
.paso.bloq{color:var(--tinta3)}
.heredado{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.heredado span{padding:5px 11px;border-radius:999px;background:var(--hoja-calida);color:var(--tierra);font:400 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
html[data-modo="oscuro"] .heredado span{color:var(--piel)}
.edu-grid{display:grid;grid-template-columns:270px minmax(0,1fr) 320px;gap:20px;align-items:start}
.pieza{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;width:100%;padding:12px;border:0;border-radius:var(--r-md);background:transparent;text-align:left;transition:background-color var(--t) var(--spring),box-shadow var(--t) var(--spring)}
.pieza:hover{background:var(--hover)}
.pieza[aria-pressed="true"]{background:var(--papel);box-shadow:0 0 0 1px var(--linea2),var(--sombra)}
html[data-modo="oscuro"] .pieza[aria-pressed="true"]{background:var(--hoja)}
.pieza .ico{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--bandeja);color:var(--tinta2)}
.pieza .k{font:400 .6rem/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta2)}
.pieza b{display:block;font-weight:500;font-size:.84rem;line-height:1.3;margin:2px 0 6px}
.papel-doc{background:#FBFAF7;color:#132649;border-radius:6px;box-shadow:0 1px 2px rgba(19,38,73,.06),0 18px 40px -18px rgba(19,38,73,.35);padding:52px 56px 60px;min-height:820px;
  --tinta:#132649;--tinta2:#505D74;--tinta3:#7C8493;--linea:rgba(19,38,73,.09);--linea2:rgba(19,38,73,.16);--bandeja:rgba(19,38,73,.035);--hover:rgba(19,38,73,.045);--papel:#fff;--hoja:#F7F6F2;
  --ok-piso:#EAF3F1;--ok-tinta:#1F5B57;--ok:#349891;--warn-piso:#F8F0E1;--warn-tinta:#7A5518;--warn:#D08A2E;--err-piso:#F8EAE5;--err-tinta:#8E2F1B;--err:#C8482E;--err-vivo:#F7DBD3;--ok-vivo:#DCEDEA}
.ficha-doc{font-size:.95rem;line-height:1.6}
.ficha-doc h2{font:500 1.9rem/1.1 var(--serif);margin:14px 0 8px;letter-spacing:-.01em}
.ficha-doc .item{display:flex;gap:14px;padding:14px 0;border-bottom:1px dashed var(--linea2)}
.ficha-doc .item .n{font:400 1.2rem/1.2 var(--serif);font-style:italic;width:1.4rem;flex:none;color:var(--tierra)}
.ficha-doc .item.marcado,.ficha-doc .item.reparado{position:relative;margin:0 -16px;padding:14px 16px;border-radius:var(--r-md);border-bottom-color:transparent}
.ficha-doc .item.marcado{background:var(--err-piso)}.ficha-doc .item.reparado{background:var(--ok-piso)}
.ficha-doc .item.marcado::before,.ficha-doc .item.reparado::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--err)}
.ficha-doc .item.reparado::before{background:var(--ok)}
.ficha-doc .item.advertido{box-shadow:inset 3px 0 0 var(--warn);padding-left:14px}
.ficha-doc .op{display:flex;gap:18px;flex-wrap:wrap;margin-top:6px}
.ficha-doc .linea-resp{display:block;border-bottom:1px solid var(--linea2);height:1.8rem}
.lado{display:flex;flex-direction:column;gap:20px;min-width:0}

/* ═══════════════ Identidad ═══════════════ */
.id-split{display:grid;grid-template-columns:minmax(320px,4fr) 8fr;gap:20px;align-items:start}
.vitrina{position:sticky;top:20px}
.vitrina-core{border-radius:var(--r-lg);background:var(--acento);color:#EDEAE3;padding:34px 32px 28px;display:flex;flex-direction:column;gap:22px;min-height:560px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 24px 60px -28px rgba(19,38,73,.6)}
.vitrina .ceja{background:rgba(201,179,230,.10);box-shadow:0 0 0 1px rgba(201,179,230,.24);color:var(--violeta-luz);letter-spacing:.14em}
.vitrina h2{margin:0;font:400 clamp(2.4rem,2.6vw + .6rem,3.6rem)/.98 var(--serif);letter-spacing:-.02em}
.vitrina h2 em{color:var(--violeta-luz)}
.vitrina .datos{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:1px;border-radius:var(--r-md);overflow:hidden;background:rgba(237,234,227,.14)}
.vitrina .datos div{background:var(--acento);padding:12px 14px}
.vitrina .datos dt{font:400 .58rem/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#A9BACD}
.vitrina .datos dd{margin:4px 0 0;font-size:.86rem}
.id-form{display:grid;grid-template-columns:10rem 1fr;gap:12px 16px;align-items:center;font-size:.84rem}
.id-form label{font:400 .62rem/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2)}
.id-form .campo{width:100%}
.zona-logo{display:flex;gap:16px;align-items:center;padding:14px;border-radius:var(--r-md);background:var(--bandeja);box-shadow:inset 0 0 0 1.5px var(--linea2);border:0}
.zona-logo.arrastre{box-shadow:inset 0 0 0 2px var(--petrol-claro);background:var(--ok-piso)}
.zona-logo .vista{width:88px;height:88px;border-radius:50%;background:#fff;box-shadow:var(--sombra);display:grid;place-items:center;padding:10px;flex:none;overflow:hidden}
.zona-logo .vista.oscuro{background:var(--navy)}
.zona-logo .vista .logo-caja{border-radius:50%!important}
.logo-caja{flex:none;display:grid;place-items:center;overflow:hidden}
.logo-caja img{width:100%;height:100%;object-fit:contain;display:block}
.logo-marcador{width:100%;height:100%;display:grid;place-items:center;border:1.5px dashed rgba(19,38,73,.35);border-radius:inherit;color:var(--navy);font-family:var(--mono);font-weight:500;background:#fff}
.zona-logo b{font-weight:500}
.zona-logo .tenue{font-size:.74rem}
.zona-logo label.btn{text-transform:none;letter-spacing:0;font:500 .78rem/1 var(--sans);color:var(--tinta);height:2.2rem}
.muestras{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.muestras button{width:1.8rem;height:1.8rem;border-radius:50%;border:3px solid var(--hoja);box-shadow:0 0 0 1px var(--linea2)}
.muestras button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--tinta)}
.contraste{margin-top:8px}
.previas{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.previa{border-radius:var(--r-md);overflow:hidden;background:var(--hoja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.previa .cap{font:400 .6rem/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta2);padding:9px 12px;border-bottom:1px solid var(--linea)}
.previa .cont{padding:14px;min-height:130px}
.pv-ingreso{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--acento);color:#EDEAE3}
.pv-ingreso .tenue{color:#A9BACD!important}
.pv-ingreso .falso-campo{width:100%;height:22px;border-radius:999px;background:rgba(237,234,227,.1)}
.pv-ingreso .falso-btn{width:100%;height:22px;border-radius:999px;background:var(--violeta)}
.pv-doc{background:#fff;color:#132649;border-radius:4px;padding:12px;font-size:.6rem;box-shadow:var(--sombra);line-height:1.35}
.pv-doc .enc{display:flex;gap:8px;align-items:center;border-bottom:1px solid #ddd;padding-bottom:6px;margin-bottom:6px}
.pv-doc b{font-family:var(--serif);font-size:.82rem;font-weight:500}
.pv-doc i{display:block;height:3px;background:#e2e2e6;margin:4px 0;border-radius:2px}
.pv-doc .firma{margin-top:10px;display:flex;justify-content:space-between;gap:8px;font-size:.55rem;color:#6b6b70}
.pv-doc .firma span{flex:1;border-top:1px solid #bbb;padding-top:3px;text-align:center}
.pv-impresion .pv-doc{filter:grayscale(1)}
.pv-movil{width:150px;margin:0 auto;border-radius:22px;border:5px solid #0d0d0f;overflow:hidden;background:var(--fondo)}
.pv-movil .cabm{display:flex;align-items:center;gap:6px;margin:8px;padding:5px 8px;border-radius:999px;background:var(--acento);color:#EDEAE3;font-size:.58rem;font-weight:500}
.pv-movil i{display:block;height:7px;margin:8px;border-radius:4px;background:var(--hover)}
.previa .escuela{display:flex;gap:8px;align-items:center}
.previa .escuela .nombre{display:flex;flex-direction:column;line-height:1.2}
.previa .escuela .nombre b{font:500 .95rem var(--serif)}
.previa .escuela .nombre span{font-size:.66rem;opacity:.75}
.previa .nav a{display:flex;align-items:center;gap:8px;height:28px;padding:0 10px;border-radius:999px;font-size:.72rem}
.previa .cont[style*="--lateral"]{background:var(--acento)!important;color:#EDEAE3}

/* ═══════════════ Móvil ═══════════════ */
.mesa{display:flex;flex-direction:column;gap:22px}
.telefonos{display:flex;gap:26px;flex-wrap:wrap;justify-content:center}
figure.telefono{margin:0}
.telefono figcaption{text-align:center;margin-top:12px;font:400 .62rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2)}
.marco-tel{width:300px;height:640px;border-radius:46px;background:#0d0d0f;padding:11px;box-shadow:0 30px 60px -20px rgba(19,38,73,.45)}
.pantalla-tel{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:var(--fondo);display:flex;flex-direction:column}
.m{position:relative;font-size:.84rem;flex:1;display:flex;flex-direction:column;min-height:0}
.m-sup{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 14px 4px}
.m-isla{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 4px;border-radius:999px;background:var(--acento);color:#EDEAE3;font-size:.72rem;font-weight:500;min-width:0}
html[data-tema="lino"][data-modo="claro"] .m-isla{background:var(--hoja);color:var(--tinta);box-shadow:0 0 0 1px var(--bandeja-borde)}
.m-isla span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-redondo{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:0;background:var(--hoja);color:var(--tinta);box-shadow:0 0 0 1px var(--bandeja-borde)}
.m-volver{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 14px 0 10px;border:0;border-radius:999px;background:var(--hoja);color:var(--tinta);font-size:.76rem;box-shadow:0 0 0 1px var(--bandeja-borde)}
.m-cuerpo{flex:1;overflow:auto;padding:4px 14px 96px;scrollbar-width:none}
.m-cuerpo::-webkit-scrollbar{display:none}
.m h1{margin:10px 2px 2px;font:400 2.1rem/1 var(--serif);letter-spacing:-.02em;color:var(--tinta)}
.m h1 em{color:var(--violeta)}
html[data-modo="oscuro"] .m h1 em{color:var(--violeta-luz)}
.m .m-sub{margin:4px 2px 12px;font-size:.76rem;color:var(--tinta2)}
.m .m-t{margin:18px 4px 8px;font:400 .58rem/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta2)}
.m .m-grupo{padding:4px;border-radius:22px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.m .m-grupo>div{background:var(--hoja);border-radius:18px;box-shadow:var(--luz),var(--sombra);overflow:hidden}
.m .m-r{display:flex;align-items:center;gap:10px;padding:11px 12px;position:relative;min-height:46px}
.m .m-r+.m-r::before{content:"";position:absolute;top:0;left:12px;right:12px;border-top:1px solid var(--linea)}
.m .m-r .t{flex:1;min-width:0}.m .m-r .t>b{display:block;font-weight:500;font-size:.82rem;line-height:1.3}.m .m-r .t>span{display:block;font-size:.72rem;color:var(--tinta2);line-height:1.35}
.m .m-r .hora{width:2.6rem;flex:none;font:400 .7rem var(--mono);color:var(--tinta2)}
.m .m-r .est{font-size:.64rem;padding:3px 8px 3px 7px}
.m .m-r .btn{height:2rem;font-size:.72rem;padding:0 12px}
.m .m-r .btn.prim{padding:0 3px 0 12px}.m .m-r .btn.prim::after{width:24px;height:24px}
.m .m-destacada{padding:4px;border-radius:24px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.m .m-destacada>div{background:var(--hoja);border-radius:20px;padding:16px;box-shadow:var(--luz),var(--sombra)}
.m .m-destacada .cuando{font:400 .58rem/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta2)}
.m .m-destacada h3{margin:6px 0 4px;font:500 1.35rem/1.1 var(--serif)}
.m .m-acc{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.m .m-acc .btn{flex:1;height:2.4rem;font-size:.76rem}
.m .m-acc[style*="column"] .btn{flex:none}
.m .hijos{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:999px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.m .hijos button{border:0;background:transparent;border-radius:999px;padding:7px 4px;font-size:.76rem;font-weight:500;color:var(--tinta2);line-height:1.15}
.m .hijos button span{display:block;font:400 .56rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.m .hijos button[aria-pressed="true"]{background:var(--acento);color:var(--acento-tinta);box-shadow:0 6px 14px -8px rgba(19,38,73,.6)}
.m .m-barra{position:absolute;left:12px;right:12px;bottom:14px;display:grid;grid-template-columns:repeat(5,1fr);padding:6px;border-radius:999px;background:var(--acento);box-shadow:0 18px 30px -12px rgba(19,38,73,.6)}
html[data-modo="oscuro"] .m .m-barra{background:#091222;box-shadow:0 0 0 1px var(--linea2)}
.m .m-barra span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 0;border-radius:999px;font:400 .5rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#A9BACD;cursor:pointer}
.m .m-barra span .ic{width:1.05rem;height:1.05rem}
.m .m-barra span.on{background:rgba(237,234,227,.12);color:#EDEAE3}
.m .m-pie{position:absolute;left:12px;right:12px;bottom:14px}
.m .m-pie .btn{width:100%;height:3rem;justify-content:space-between}
.m-plena{min-height:100dvh;display:flex;flex-direction:column;max-width:640px;margin:0 auto}
.m-plena .m{min-height:100dvh}
.m-plena .m-barra,.m-plena .m-pie{position:fixed;bottom:76px;left:max(12px,calc(50% - 308px));right:max(12px,calc(50% - 308px))}

/* ═══════════════ Hoja (vista aún no diseñada) ═══════════════ */
.velo{position:fixed;inset:0;background:rgba(19,38,73,.22);backdrop-filter:blur(3px);z-index:80;display:flex;justify-content:center;align-items:flex-start;padding:60px 16px;overflow:auto;animation:aparece .2s ease}
.hoja{width:min(640px,100%);padding:var(--bisel);border-radius:var(--r-shell);background:rgba(237,234,227,.4);box-shadow:0 0 0 1px rgba(19,38,73,.1),var(--sombra-alta);animation:sube .32s var(--spring)}
.hoja>div{background:var(--hoja);border-radius:var(--r-lg);padding:28px 30px;box-shadow:var(--luz)}
.hoja h3{margin:12px 0 6px;font:500 1.8rem/1.08 var(--serif)}
.hoja dl{display:grid;grid-template-columns:8.5rem 1fr;gap:10px 16px;margin:18px 0;font-size:.84rem}
.hoja dt{font:400 .6rem/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2)}
.hoja dd{margin:0}
.hoja .acciones{display:flex;justify-content:flex-end;gap:8px}
@keyframes aparece{from{opacity:0}}
@keyframes sube{from{transform:translateY(16px);opacity:0}}

/* ═══════════════ Selector flotante de la muestra (no es parte de Rubria) ═══════════════ */
.muestra{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;background:rgba(247,246,242,.92);backdrop-filter:blur(10px);
  box-shadow:0 0 0 1px rgba(19,38,73,.12),0 18px 40px -16px rgba(19,38,73,.45);max-width:calc(100vw - 24px);overflow-x:auto;scrollbar-width:none}
html[data-modo="oscuro"] .muestra{background:rgba(22,34,58,.92);box-shadow:0 0 0 1px rgba(237,234,227,.14),0 18px 40px -16px rgba(0,0,0,.6)}
.muestra::-webkit-scrollbar{display:none}
.muestra .k{padding:0 10px 0 12px;font:400 .58rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta3);white-space:nowrap}
.muestra button{flex:none;height:2.1rem;padding:0 13px;border:0;border-radius:999px;background:transparent;color:var(--tinta2);font:400 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.muestra button:hover{color:var(--tinta);background:var(--hover)}
.muestra button[aria-pressed="true"]{background:var(--acento);color:var(--acento-tinta)}
.muestra .sep{width:1px;height:18px;background:var(--linea2);flex:none;margin:0 4px}
.pop{position:fixed;left:50%;bottom:72px;transform:translateX(-50%);width:min(320px,calc(100vw - 24px));z-index:61;padding:var(--bisel);border-radius:var(--r-shell);background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde),var(--sombra-alta)}
.pop>div{background:var(--hoja);border-radius:var(--r-lg);padding:18px}
.pop h4{margin:0 0 10px;font:500 1.2rem var(--serif)}
.pop .linea{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;font-size:.8rem}
.pop .tabs button{height:1.9rem;padding:0 10px;font-size:.72rem}
.lado .tabs{display:grid;width:100%}.lado .tabs button{padding:0 8px}
.pop .nota{font-size:.7rem;color:var(--tinta2);margin:12px 0 0;line-height:1.45}

/* ═══════════════ Alcance ═══════════════ */
.doc-muestra .papel-m{padding:var(--bisel);border-radius:var(--r-shell);background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.doc-muestra .papel-m>*{margin-left:24px;margin-right:24px}
.doc-muestra{background:var(--hoja);border-radius:var(--r-lg);padding:30px 32px;box-shadow:var(--luz),var(--sombra)}
.doc-muestra h1{font:400 2.6rem/1.02 var(--serif);margin:12px 0 8px;letter-spacing:-.015em}
.doc-muestra h2{font:500 1.5rem/1.1 var(--serif);margin:30px 0 10px}
.doc-muestra p{max-width:780px}
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:18px 0}
.cifras div{padding:16px;border-radius:var(--r-md);background:var(--bandeja)}
.cifras b{display:block;font:300 2.4rem/1 var(--mono);letter-spacing:-.05em}
.cifras span{font-size:.74rem;color:var(--tinta2)}
.filtro-alc{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.pie-credito{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;margin-top:24px;font-size:.72rem;color:var(--tinta2)}
.credito{display:inline-flex;align-items:center;gap:10px;font:400 .62rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta);text-decoration:none;padding:9px 14px;border-radius:999px;box-shadow:0 0 0 1px var(--linea2)}
.credito:hover{background:var(--hover)}

/* ═══════════════ Adaptación por ancho ═══════════════ */
@media (max-width:1280px){.edu-grid{grid-template-columns:240px minmax(0,1fr)}.edu-grid>.lado.der{grid-column:1 / -1}.main{padding:32px 28px 140px}}
@media (max-width:1100px){
  .app{grid-template-columns:minmax(0,1fr)}
  .riel{position:fixed;left:0;top:0;bottom:0;width:300px;transform:translateX(-110%);transition:transform .35s var(--spring)}
  .app.riel-abierto .riel{transform:none}
  .isla{display:flex;align-items:center;gap:10px;position:sticky;top:12px;z-index:25;margin:12px 16px 0;padding:6px 6px 6px 8px;border-radius:999px;background:var(--acento);color:#EDEAE3;box-shadow:0 18px 30px -16px rgba(19,38,73,.55)}
  .isla>span:not(.escudo){flex:1;min-width:0;font:500 1rem var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .isla .escudo{flex:none}
  .isla button{border:0;height:2.1rem;padding:0 14px;border-radius:999px;background:rgba(237,234,227,.12);color:#EDEAE3;font:400 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
  .dos-col,.plan-grid,.id-split{grid-template-columns:minmax(0,1fr)}
  .pegado,.vitrina{position:static}
  .anio{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .main{padding:20px 14px 140px}
  .edu-grid{grid-template-columns:minmax(0,1fr)}
  .core{padding:18px}
  .prox-cuerpo,.tiles{grid-template-columns:minmax(0,1fr)}
  .id-form{grid-template-columns:minmax(0,1fr);gap:6px}.id-form label{margin-top:8px}
  .zona-logo{flex-wrap:wrap}.previas{grid-template-columns:minmax(0,1fr)}
  .papel-doc{padding:26px 20px}
  .buscar{width:100%}
  .doc-muestra{padding:20px 16px}.tabla-alc{display:block;overflow-x:auto}
  .marco-tel{transform:scale(.92);transform-origin:top center}
}
@media print{.muestra,.riel,.isla{display:none}.app{display:block}}

/* ═══════════════ Prototipo · componentes del lote 1 ═══════════════ */
.migas{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:-6px;font-size:.78rem;color:var(--tinta2)}
.migas i{font-style:normal;color:var(--tinta3)}
.atras-fila{display:flex;margin-bottom:18px}
.atras-g{display:inline-grid;place-items:center;flex:none;width:2rem;height:2rem;padding:0;border:0;border-radius:999px;background:transparent;color:var(--tinta3);box-shadow:0 0 0 1px var(--linea2);cursor:pointer;transition:color .2s,background .2s,box-shadow .2s}
.atras-g .ic{width:15px;height:15px}
.atras-g:hover,.atras-g:focus-visible{color:var(--violeta);background:var(--hoja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.migas .atras-g{margin-right:4px}
.miga{border:0;background:none;padding:0;color:var(--tinta2);font-size:.78rem;cursor:pointer;text-decoration:underline;text-decoration-color:var(--linea2);text-underline-offset:3px}
.miga:hover{color:var(--tinta)}
.miga-actual{color:var(--tinta);font-weight:500}
.lnk{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--violeta) 45%,transparent);text-underline-offset:3px;text-decoration-thickness:1.5px;text-align:left}
.lnk:hover{color:var(--violeta);text-decoration-color:var(--violeta)}
html[data-modo="oscuro"] .lnk:hover{color:var(--violeta-luz)}
.lnk.mono{font-family:var(--mono);font-size:.92em;white-space:nowrap}
.serif{font-family:var(--serif);font-weight:500}
.fl{display:flex;align-items:center;gap:12px;padding:10px 10px;margin:0 -10px;border-radius:var(--r-md);min-height:48px;transition:background-color var(--t) var(--spring)}
.fl.clic{cursor:pointer}.fl.clic:hover{background:var(--hover)}
.fl>.t{flex:1;min-width:0}.fl>.t>b{display:block;font-weight:500;font-size:.875rem;line-height:1.35}.fl>.t>span{display:block;font-size:.76rem;color:var(--tinta2);line-height:1.4}
.fl .linkp{flex:none}
.fl .num{font-family:var(--mono)}
.mk-err,.mk-warn,.mk-info,.mk-neu{flex:none;width:10px;height:10px;border-radius:50%;align-self:flex-start;margin-top:6px}
.mk-err{background:var(--err);box-shadow:0 0 0 3px var(--err-vivo)}.mk-warn{box-shadow:inset 0 0 0 2px var(--warn)}.mk-info{background:var(--navy-mid)}.mk-neu{box-shadow:inset 0 0 0 2px var(--tinta3)}
.kp{display:flex;flex-direction:column;gap:6px;min-width:0}.kp .d{font-size:.74rem;color:var(--tinta2)}
.tiles-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.desliza{overflow-x:auto}
.tabla tr.sel td{background:var(--violeta-piso)}
.tabla tr.clic{cursor:pointer}.tabla tr.clic:hover td{background:var(--hover)}
.baja{color:var(--tierra);font-weight:500}
html[data-modo="oscuro"] .baja{color:var(--warn-tinta)}
.mini-dl,.ficha-dl{display:grid;grid-template-columns:9rem 1fr;gap:8px 14px;margin:6px 0;font-size:.84rem}
.mini-dl dt,.ficha-dl dt{font:400 .6rem/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2);padding-top:2px}
.mini-dl dd,.ficha-dl dd{margin:0}
.ficha-dl{margin-top:16px}
.registro{position:relative;display:grid;grid-template-columns:4.2rem 1fr;gap:12px;padding:12px 12px 12px 16px;border-radius:var(--r-md);background:var(--bandeja);margin-bottom:6px}
.registro::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--tinta3)}
.registro.ok::before{background:var(--ok)}.registro.warn::before{background:var(--warn)}
.registro p{margin:4px 0 0;font-size:.86rem}
.propuesta{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--r-md);background:var(--bandeja);margin-bottom:8px}
.propuesta b.serif{font-size:1.2rem;line-height:1.2}
/* Agenda semanal */
.semana-grid{display:grid;grid-template-columns:repeat(5,minmax(190px,1fr));gap:12px}
.dia-col{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:var(--r-lg);background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.dia-col.hoy{background:var(--violeta-piso)}
.dia-cab{display:flex;align-items:baseline;gap:8px;padding:6px 8px}
.dia-cab b{font:400 1.8rem/1 var(--serif)}
.evento{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 12px 12px 16px;border:0;border-radius:var(--r-md);background:var(--hoja);text-align:left;box-shadow:var(--luz),var(--sombra);transition:transform var(--t) var(--spring)}
.evento::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--k)}
.evento:hover{transform:translateY(-1px)}
.evento .num{font-size:.72rem;color:var(--tinta2)}
.evento b{font-weight:500;font-size:.84rem;line-height:1.3}
.evento>span:not(.num):not(.est){font-size:.74rem;color:var(--tinta2);line-height:1.35}
.evento .est{font-size:.64rem;padding:2px 8px 2px 7px}
/* Perfiles de la demo */
.perfiles{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:54vh;overflow:auto}
.perfil{display:flex;align-items:center;gap:8px;padding:8px;border:0;border-radius:var(--r-md);background:transparent;text-align:left;color:var(--tinta)}
.perfil:hover{background:var(--hover)}
.perfil.on{background:var(--violeta-piso)}
.perfil b{display:block;font-weight:500;font-size:.8rem}.perfil span span{display:block;font-size:.68rem;color:var(--tinta2)}
#pop-cont .pop{width:min(420px,calc(100vw - 24px))}
/* Clase en curso y proyección */
.momentos-lista{display:flex;flex-direction:column;gap:6px}
.momento{display:grid;grid-template-columns:3rem 1fr;gap:12px;padding:12px;border-radius:var(--r-md);background:var(--bandeja)}
.momento .num{font-size:1.2rem;color:var(--tinta2)}
.momento b.serif{font-size:1.2rem}.momento p{margin:2px 0 0;font-size:.86rem}
.proyeccion{position:fixed;inset:0;z-index:90;background:#0B1424;color:#EDEAE3;display:flex;flex-direction:column;padding:24px 32px}
.proy-barra{display:flex;align-items:center;gap:12px}
.proy-diapo{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px;max-width:1100px;margin:0 auto;width:100%}
.proy-diapo h2{margin:0;font:400 clamp(3rem,6vw,5.5rem)/1.02 var(--serif);letter-spacing:-.02em}
.proy-diapo p{font-size:1.8rem;margin:0;color:#C9B3E6}
.proy-nav{display:flex;justify-content:center;gap:12px}
.proy-nav .btn:not(.prim){color:#EDEAE3;box-shadow:0 0 0 1px rgba(237,234,227,.3)}
/* Asistencia */
.cnts{display:flex;gap:6px;flex-wrap:wrap}
.cnt{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border-radius:999px;font-size:.76rem;background:var(--bandeja);color:var(--tinta2)}
.cnt b{font:500 .8rem/1 var(--mono)}
.cnt.ok{background:var(--ok-piso);color:var(--ok-tinta)}.cnt.err{background:var(--err-piso);color:var(--err-tinta)}.cnt.warn{background:var(--warn-piso);color:var(--warn-tinta)}
.roster{list-style:none;margin:0 -10px;padding:0;display:flex;flex-direction:column;gap:2px}
.st{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:50px;padding:5px 10px 5px 12px;border-radius:var(--r-md)}
.st:hover{background:var(--hover)}
.st-b{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0;font-size:.9rem}
.st.s-A{background:var(--err-piso)}.st.s-T{background:var(--warn-piso)}
.st.s-A::before,.st.s-T::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--err)}
.st.s-T::before{background:var(--warn)}
.pat{display:inline-grid;grid-template-columns:repeat(3,38px);padding:3px;border-radius:999px;background:var(--bandeja);box-shadow:inset 0 1px 2px rgba(19,38,73,.06)}
.pat button{height:32px;border:0;border-radius:999px;background:transparent;color:var(--tinta2);font:500 .74rem/1 var(--mono)}
.pat button[aria-pressed="true"]:nth-child(1){background:var(--ok-vivo);color:var(--ok-tinta);box-shadow:inset 0 0 0 1px var(--ok)}
.pat button[aria-pressed="true"]:nth-child(2){background:var(--err-vivo);color:var(--err-tinta);box-shadow:inset 0 0 0 1px var(--err)}
.pat button[aria-pressed="true"]:nth-child(3){background:var(--warn-vivo);color:var(--warn-tinta);box-shadow:inset 0 0 0 1px var(--warn)}
.pat button[disabled]{cursor:not-allowed;opacity:.7}
/* Evaluación */
.alts{display:flex;flex-direction:column;gap:6px}
.alt{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r-md);background:var(--bandeja)}
.alt .num{width:1.4rem;color:var(--tinta2)}.alt .editable{flex:1}
.tabla-rub{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tabla-rub div{display:flex;flex-direction:column;padding:10px;border-radius:var(--r-md);background:var(--bandeja);font-size:.8rem}
.opciones{display:flex;flex-direction:column;gap:8px}
.opcion{display:flex;align-items:center;gap:12px;min-height:3.2rem;padding:10px 16px;border:0;border-radius:var(--r-md);background:var(--bandeja);text-align:left;font-size:1rem;color:var(--tinta);box-shadow:0 0 0 1px var(--bandeja-borde)}
.opcion .num{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--hoja);color:var(--tinta2)}
.opcion[aria-pressed="true"]{background:var(--violeta-piso);box-shadow:0 0 0 2px var(--violeta)}
.opcion[aria-pressed="true"] .num{background:var(--violeta);color:#fff}
.respuesta{margin:4px 0;padding:18px 22px;border-radius:var(--r-md);background:var(--papel);font:400 1.35rem/1.4 var(--serif);color:#132649;box-shadow:var(--luz),0 0 0 1px var(--linea2)}
html[data-modo="oscuro"] .respuesta{background:var(--hoja);color:var(--tinta)}
.niveles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.nivel{display:flex;flex-direction:column;gap:4px;padding:12px;border:0;border-radius:var(--r-md);background:var(--bandeja);text-align:left;color:var(--tinta);box-shadow:0 0 0 1px var(--bandeja-borde)}
.nivel b{font:500 1.05rem var(--serif)}.nivel span:last-child{font-size:.76rem;color:var(--tinta2)}
.nivel[aria-pressed="true"]{background:var(--violeta-piso);box-shadow:0 0 0 2px var(--violeta)}
.chip-est{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;border-radius:999px;background:var(--bandeja);font-size:.8rem}
.check{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--linea);font-size:.86rem;cursor:pointer}
.check input{width:1.1rem;height:1.1rem;accent-color:var(--violeta)}
.reproductor{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.ilustra{display:grid;place-items:center;height:160px;border-radius:var(--r-md);background:linear-gradient(160deg,#F0E4D2,#EBD8C1);color:#91524A;font:italic 400 1.3rem var(--serif)}
@media (max-width:1100px){.tiles-3{grid-template-columns:1fr 1fr}.niveles{grid-template-columns:1fr}}
@media (max-width:760px){.tiles-3,.perfiles{grid-template-columns:1fr}.mini-dl,.ficha-dl{grid-template-columns:1fr}.tabla-rub{grid-template-columns:1fr 1fr}.semana-grid{grid-template-columns:repeat(5,minmax(220px,1fr))}}
@media (max-width:760px){
  .cab-der{max-width:100%;min-width:0}
  .tabs{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{flex:none}
  .core .tabla{display:block;overflow-x:auto;max-width:100%}
  .core{min-width:0;max-width:100%}
  .banda{min-width:0}
}

/* Estados y cifras que se abren */
.chip-ir,.btn-limpio{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:999px}
.btn-limpio{border-radius:var(--r-md)}
.chip-ir .est{transition:box-shadow var(--t) var(--spring)}
.chip-ir:hover .est{box-shadow:0 0 0 1.5px currentColor}
.chip-ir .est::after{content:"→";font:500 .7rem/1 var(--mono);opacity:.55;margin-left:2px}
.btn-limpio:hover .kpi-l,.btn-limpio:hover .kpi-m{color:var(--violeta)}
.lnk.lbl{text-decoration-thickness:1px}
/* Etiquetas largas dentro de documentos y avisos: hacen salto de línea en vez de salirse de la columna */
.ficha-doc .item>div{flex:1;min-width:0}
.ficha-doc .est,.hallazgo .est,.registro .est,.m .est,.verif .est,.fl>.t .est{white-space:normal;max-width:100%;align-items:flex-start;line-height:1.35}
.ficha-doc .est::before,.hallazgo .est::before{margin-top:.32em}
.ficha-doc .op{gap:4px 18px}
.ficha-doc .linea-resp{max-width:100%}
.lado,.col,.core,.papel-doc{min-width:0}
.papel-doc{overflow-wrap:break-word}
/* ═══════════════ Portada de ingreso ═══════════════ */
.portada{display:grid;grid-template-columns:minmax(340px,4fr) 8fr;min-height:100dvh}
.portada-id{position:sticky;top:0;height:100dvh;margin:16px 0 16px 16px;height:calc(100dvh - 32px)}
.portada-id .vitrina-core{height:100%;min-height:0}
.portada-form{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:48px clamp(24px,6vw,96px);max-width:720px}
.portada-form form .core{gap:10px;padding:26px 28px}
.campo.grande{height:3rem;font-size:1rem;border-radius:14px}
.btn.grande{height:3.1rem;font-size:.92rem;justify-content:space-between;margin-top:8px}
.error-ingreso{margin:2px 0;color:var(--err-tinta);font-size:.84rem}
.aviso-clave{margin-bottom:4px}
@media (max-width:860px){.portada{grid-template-columns:1fr}.portada-id{position:static;height:auto;margin:12px}.portada-id .vitrina-core{min-height:0}.portada-form{padding:24px 18px 60px}}

/* Enlaces que la función no puede abrir */
.sin-acceso{cursor:default!important;text-decoration:none!important}
.lnk.sin-acceso:hover{color:inherit}
.fl.sin-acceso:hover,.tile.sin-acceso:hover,.ag.sin-acceso:hover{background:inherit}
