/* Rubria · sistema visual soft V5 (dirección elegida por Francisco el 6-oct-2026).
   Tokens y piezas tomados de rubria-brief/diseno/DIRECCIONES-VISUALES-V5.html; especificación en rubria-brief/anexos/07-diseno-V5.md. */
/* ═══════════════ 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:var(--navy)}
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 64px;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)}
/* ═══════════════ 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}}
.pop{position:fixed;left:50%;bottom:auto;top:50%;transform:translate(-50%,-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}
.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)}

/* ── Vitrina del establecimiento (ingreso) ── */
.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}

/* ═══════════════ Adaptación por ancho ═══════════════ */
/* ═══════════════ 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 64px}}
@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 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 64px}
  .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{.riel,.isla,.velo-riel{display:none}.app{display:block}}

/* ═══════════════ Rubria · piezas propias del producto ═══════════════ */
/* Ingreso */
.ingreso{min-height:100dvh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:20px;padding:20px}
.ingreso .vitrina-core{min-height:calc(100dvh - 52px);justify-content:space-between}
.ingreso .vitrina h2{font-size:clamp(2.6rem,3vw + .8rem,4.2rem)}
.ingreso .vitrina .lema{font-size:.95rem;color:#C9D3E0;max-width:28rem;line-height:1.55}
.ingreso .firma{display:flex;align-items:center;gap:12px;font:400 .62rem/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#A9BACD}
.ingreso .firma img{height:30px;width:auto}
.ingreso-form{align-self:center;justify-self:center;width:min(440px,100%)}
.ingreso-form .core{gap:18px;padding:34px 34px 30px}
.formulario{display:flex;flex-direction:column;gap:14px}
.formulario label{display:flex;flex-direction:column;gap:6px;font:400 .62rem/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2)}
.formulario .campo{width:100%;height:2.75rem;font-size:.95rem;text-transform:none;letter-spacing:0}
.formulario .acciones{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}
.mensaje{position:relative;font-size:.84rem;line-height:1.45;padding:10px 14px 10px 18px;border-radius:var(--r-md)}
.mensaje::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--k)}
.mensaje.err{background:var(--err-piso);color:var(--err-tinta);--k:var(--err)}
.mensaje.ok{background:var(--ok-piso);color:var(--ok-tinta);--k:var(--ok)}
.mensaje.info{background:var(--bandeja);color:var(--tinta2);--k:var(--violeta)}
.mensaje:empty{display:none}
/* Riel: escudo con iniciales, mochila oficial al pie y botones de pie */
.riel .firma-rubria img{height:14px;width:auto}
.riel-pie .acciones-pie{grid-column:1 / -1;display:flex;gap:6px;flex-wrap:wrap}
.riel-pie .acciones-pie button{font:400 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--riel-2);background:transparent;border:0;padding:8px 10px;border-radius:999px;box-shadow:0 0 0 1px var(--riel-borde)}
.riel-pie .acciones-pie button:hover{color:var(--riel-tinta);background:var(--riel-hover)}
.riel-pie .credito-riel{grid-column:1 / -1;font:400 .6rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--riel-2);text-decoration:none;opacity:.85}
.riel-pie .credito-riel:hover{color:var(--riel-tinta)}
/* Lista de comprobaciones del Inicio */
.lista-paso{display:flex;flex-direction:column;margin:0 -10px}
.paso-i{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:12px 10px;border-radius:var(--r-md);border-bottom:1px solid var(--linea)}
.paso-i:last-child{border-bottom:0}
.paso-i b{font-weight:500;font-size:.88rem}.paso-i span.d{display:block;font-size:.76rem;color:var(--tinta2);margin-top:2px}
.pie-pagina{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;margin-top:8px;font-size:.72rem;color:var(--tinta2)}
.datos-persona{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:10px 16px;margin:0;font-size:.86rem}
.datos-persona dt{font:400 .6rem/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2)}
.datos-persona dd{margin:0}
.opciones-funcion{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.opciones-funcion button{justify-content:space-between;width:100%}
/* Cajón del riel en tablet y teléfono: velo, Escape y foco atrapado (corrección del anexo 07 §8) */
.velo-riel{display:none}
@media (max-width:1100px){
  .app.riel-abierto .velo-riel{display:block;position:fixed;inset:0;z-index:29;background:rgba(19,38,73,.22);backdrop-filter:blur(2px)}
  .isla>span:not(.escudo){flex:1;font:500 1rem var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:900px){
  .ingreso{grid-template-columns:minmax(0,1fr)}
  .ingreso .vitrina-core{min-height:auto;gap:18px}
}
/* Cargador de planillas y tablas del establecimiento */
.selectores{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 14px}
.sel-col{display:flex;flex-direction:column;gap:5px;font:400 .6rem/1.35 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta2)}
.sel-col .campo{width:100%;text-transform:none;letter-spacing:0;font-family:var(--sans)}
.tabla-envoltura{overflow-x:auto;margin:0 -4px}
.tabla-envoltura .tabla{min-width:520px}
.desplegable summary{cursor:pointer;font:400 .66rem/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta2);padding:6px 0}
.desplegable[open] summary{margin-bottom:10px}
.cifras-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.cifra{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r-md);background:var(--bandeja);border:0;text-align:left;color:inherit}
button.cifra{cursor:pointer}button.cifra:hover{background:var(--hover)}
.cifra .d{font-size:.74rem;color:var(--tinta2);line-height:1.4}
.bloques{display:flex;flex-wrap:wrap;gap:6px}
.bloques span{font:400 .74rem/1 var(--mono);padding:6px 10px;border-radius:999px;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde)}
.nomina{columns:2 220px;column-gap:24px;margin:0;padding:0;list-style:none;font-size:.86rem}
.nomina li{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--linea);break-inside:avoid}
.nomina li b{font:400 .74rem/1.6 var(--mono);color:var(--tinta2);width:1.6rem;text-align:right}
/* Planificación: paneles de la ficha, casillas de criterios */
.panel{border-bottom:1px solid var(--linea)}
.panel summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:12px 2px;font:500 1.05rem/1.25 var(--serif);color:var(--tinta)}
.panel summary::-webkit-details-marker{display:none}
.panel summary::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;box-shadow:inset 0 0 0 1.4px var(--tinta3);transition:all var(--t) var(--spring)}
.panel[open] summary::before{background:var(--violeta);box-shadow:0 0 0 3px rgba(116,71,163,.18)}
.panel-cuerpo{padding:0 2px 16px;font-size:.88rem;line-height:1.55}
.grupo-casillas{border:0;margin:0;padding:12px 14px;border-radius:var(--r-md);background:var(--bandeja);display:flex;flex-direction:column;gap:6px}
.grupo-casillas legend{font:400 .62rem/1.35 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta2);padding:0;margin-bottom:6px;float:left;width:100%}
.casilla{display:flex;align-items:center;gap:10px;font:400 .84rem/1.35 var(--sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--tinta)!important;flex-direction:row!important}
.casilla input{width:1rem;height:1rem;accent-color:var(--violeta)}
.al[data-ir]{cursor:pointer}
.chip-editar{border:0;background:var(--violeta-piso);color:var(--violeta-tinta);font:500 .7rem/1 var(--sans);padding:6px 12px;border-radius:999px;cursor:pointer}
.chip-editar:hover{background:var(--violeta-luz)}
.sugerencia{margin-top:10px}
.form-campo{margin-top:6px}
.form-campo textarea.campo{width:100%}
/* Semana del curso y clase en curso */
.semana{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.dia{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:var(--r-md);background:var(--bandeja);min-height:120px}
.dia.hoy{box-shadow:inset 0 0 0 1.5px var(--violeta)}
.dia-cab{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem}
.clase-chip{display:flex;flex-direction:column;gap:2px;text-align:left;border:0;border-radius:12px;padding:8px 10px;background:var(--hoja);box-shadow:0 0 0 1px var(--bandeja-borde);cursor:pointer;color:inherit}
.clase-chip:hover{box-shadow:0 0 0 1px var(--tinta)}
.clase-chip b{font-weight:500;font-size:.8rem;line-height:1.3}
.clase-chip span{font-size:.7rem;color:var(--tinta2)}
.clase-chip.ok{box-shadow:inset 3px 0 0 var(--ok),0 0 0 1px var(--bandeja-borde)}
.asistencia{display:flex;flex-direction:column;max-height:520px;overflow:auto;margin:0 -4px}
.asis-fila{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--linea)}
.asis-fila .nombre{font-size:.86rem}
.asis-botones{display:flex;gap:4px}
.asis{width:2.2rem;height:2.2rem;border-radius:50%;border:0;background:var(--bandeja);box-shadow:0 0 0 1px var(--bandeja-borde);font:500 .78rem/1 var(--mono);color:var(--tinta2);cursor:pointer}
.asis.on.presente{background:var(--ok-vivo);color:var(--ok-tinta);box-shadow:0 0 0 1.5px var(--ok)}
.asis.on.ausente{background:var(--err-vivo);color:var(--err-tinta);box-shadow:0 0 0 1.5px var(--err)}
.asis.on.atraso{background:var(--warn-vivo);color:var(--warn-tinta);box-shadow:0 0 0 1.5px var(--warn)}
.asis[disabled]{cursor:not-allowed;opacity:.6}
@media (max-width:760px){.semana{grid-template-columns:minmax(0,1fr)}.dia{min-height:auto}}
.grilla td.marca{text-align:center;font:500 .74rem/1 var(--mono)}
.grilla td.marca.presente{color:var(--ok-tinta)}.grilla td.marca.ausente{color:var(--err-tinta);background:var(--err-piso)}.grilla td.marca.atraso{color:var(--warn-tinta);background:var(--warn-piso)}.grilla td.marca.sin{color:var(--tinta3)}
