/* EGS TeK · Panel de administración (web) — Libro de Identidad Visual.
   Desktop-first (no optimizado para móvil, por diseño del board). */
*{box-sizing:border-box}
:root{
  --green:#0d5651;--green-2:#2e6e69;--aqua:#2BC4B2;--bg:#EDEFEA;--surface:#fff;
  --ink:#16323B;--muted:#5b6b6e;--line:#dbe8e4;--radius:14px;--shadow:0 4px 16px rgba(13,86,81,.08);
  --rojo:#ba1a1a;--rojo-bg:#fdecec;
  --accent:var(--green-2);   /* faltaba: los estilos con var(--accent) (asistente, interruptores) caían a gris */
}
html,body{margin:0;height:100%}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
.hidden,[hidden]{display:none !important}
button{font:inherit;cursor:pointer}
a{color:var(--aqua);text-decoration:none}
a:hover{text-decoration:underline}

/* ── Login / sin acceso ── */
.admin-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.ag-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);max-width:380px;width:100%;padding:28px 26px;text-align:center}
.ag-brand{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:20px;color:var(--green)}
.ag-brand small{display:block;font-family:'Inter';font-weight:500;font-size:12px;color:var(--muted);margin-top:2px}
.ag-card h1{font-size:18px;margin:16px 0 4px}
.ag-card p{font-size:13.5px;color:var(--muted);margin:0 0 16px;line-height:1.5}
.ag-card input{width:100%;font:inherit;font-size:15px;border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin:7px 0;background:var(--bg);color:var(--ink)}
.ag-card input:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px rgba(43,196,178,.16)}
.ag-row{display:flex;align-items:center;justify-content:space-between;margin:4px 2px 10px;font-size:12.5px;color:var(--muted)}
.ag-row label{display:flex;align-items:center;gap:6px;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;font-weight:600;font-size:14px;padding:11px 16px}
.btn--primary{background:var(--aqua);color:#063b35;width:100%;box-shadow:0 4px 12px rgba(43,196,178,.3)}
.btn--primary:hover{box-shadow:0 6px 16px rgba(43,196,178,.42)}
.btn--primary:disabled{opacity:.6;cursor:default;box-shadow:none}
.btn--ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
.btn--ghost:hover{border-color:#bcddd6}
.btn--sm{padding:7px 12px;font-size:13px;border-radius:9px}
.btn--danger{background:var(--rojo-bg);color:var(--rojo);border:1px solid #f3c0c0}
.ag-or{font-size:12px;color:var(--muted);margin:12px 0}
.ag-msg{font-size:13px;margin:10px 0 0;min-height:18px}
.ag-msg.err{color:var(--rojo)}
.ag-msg.ok{color:var(--green)}

/* ── Shell ── */
.admin-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.admin-topbar{display:none}
.side-backdrop{display:none}
.admin-side{background:#0e2a2c;color:#dfeeeb;display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh}
.as-brand{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:18px;color:#fff;padding:6px 8px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.as-brand small{display:block;font-weight:500;font-size:11px;color:#8fb6b0;margin-top:2px;font-family:'Inter'}
.as-nav{flex:1;margin-top:12px;display:flex;flex-direction:column;gap:3px;overflow:auto}
.as-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:0;color:#cfe3df;border-radius:10px;padding:11px 12px;font-size:14px;font-weight:500;transition:background .12s,color .12s}
.as-item .ic{width:20px;display:inline-grid;place-items:center;flex-shrink:0}
.as-item .ic svg{width:18px;height:18px;fill:currentColor;stroke:none}
.as-item:hover{background:rgba(255,255,255,.06);color:#fff}
.as-item.is-on{background:var(--aqua);color:#06302b;font-weight:700}
.as-item .soon{margin-left:auto;font-size:9.5px;background:rgba(255,255,255,.12);color:#bfe0db;padding:2px 6px;border-radius:6px;letter-spacing:.3px}
.as-item.is-on .soon{background:rgba(0,0,0,.14);color:#06302b}
.as-user{border-top:1px solid rgba(255,255,255,.08);padding-top:12px;margin-top:8px;display:flex;align-items:center;gap:9px}
.as-user .who{flex:1;min-width:0;font-size:12px;line-height:1.3}
.as-user .who b{display:block;color:#fff;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-user .who .rol{color:#8fb6b0}

.admin-main{padding:30px 34px;max-width:1100px;overflow:auto}
.am-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:2px solid var(--line);padding-bottom:14px;margin-bottom:22px}
.am-head h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;margin:0;color:var(--green)}
.am-head p{margin:4px 0 0;font-size:13.5px;color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px;margin-bottom:18px}
.card h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;margin:0 0 4px;color:var(--ink)}
.card .sub{font-size:13px;color:var(--muted);margin:0 0 14px}
.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.acct-block{border:1px solid var(--line);border-radius:10px;margin:6px 0 12px;background:var(--surface-2,rgba(0,0,0,.02))}
.acct-block>summary{cursor:pointer;padding:11px 14px;font-weight:600;list-style:none;user-select:none}
.acct-block>summary::-webkit-details-marker{display:none}
.acct-block>summary::after{content:'▾';float:right;opacity:.55;transition:transform .2s}
.acct-block[open]>summary::after{transform:rotate(180deg)}
.acct-block .acct-body{padding:4px 14px 14px}
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#2bc4b2;vertical-align:middle;margin-left:6px;box-shadow:0 0 0 0 rgba(43,196,178,.6);animation:livePulse 1.6s infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(43,196,178,.55)}70%{box-shadow:0 0 0 8px rgba(43,196,178,0)}100%{box-shadow:0 0 0 0 rgba(43,196,178,0)}}
.field{display:flex;flex-direction:column;gap:5px}
.form-row .field{flex:1;min-width:180px}
.form-row label{font-size:12px;font-weight:600;color:var(--muted)}
.form-row input,.form-row select{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg);color:var(--ink)}
.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px rgba(43,196,178,.16)}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
table.tbl th,table.tbl td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
table.tbl th{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}
table.tbl tr:last-child td{border-bottom:0}
table.tbl tr.an-edicion td{background:#f3fbf9;color:var(--muted);font-size:13px}
table.tbl tr.an-edicion td:first-child{padding-left:26px}
.pill{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px}
.pill.superadmin{background:#e4f3f0;color:#0d5651}
.pill.admin_contenido{background:#fff3e0;color:#9a5b00}
.pill.alumno{background:#eef1f0;color:#5b6b6e}
.empty{color:var(--muted);font-size:13.5px;padding:8px 0}
.note{font-size:12.5px;color:var(--muted);background:#f4f9f7;border:1px solid var(--line);border-left:3px solid var(--aqua);border-radius:9px;padding:10px 12px;margin-top:6px;line-height:1.5}
.note:empty{display:none}   /* un aviso vacío no pinta nada (antes quedaba una píldora hueca) */
/* Placeholder de módulos en construcción */
.soon-box{text-align:center;padding:42px 20px;color:var(--muted)}
.soon-box .ic{display:block;margin-bottom:10px}
.soon-box .ic svg{width:38px;height:38px;fill:currentColor;stroke:none;opacity:.55}
.soon-box h3{font-family:'Plus Jakarta Sans',sans-serif;color:var(--ink);margin:0 0 6px;font-size:18px}
.soon-box .items{display:inline-block;margin-top:8px;font-size:12.5px;background:#eef3f1;border-radius:8px;padding:6px 12px}
.am-toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#0e2a2c;color:#fff;padding:11px 18px;border-radius:11px;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:50}
/* Diplomas · zona de arrastre */
.dp-drop{border:2px dashed #bcd8d2;border-radius:13px;background:#f7faf9;padding:26px 18px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.dp-drop:hover{border-color:var(--aqua);background:#f0f8f6}
.dp-drop.over{border-color:var(--aqua);background:#e7f6f2}
.dp-drop .ic{display:block;margin-bottom:6px}
.dp-drop .ic svg{width:30px;height:30px}
.dp-drop p{margin:0;font-size:14px;color:var(--muted)}
.dp-drop p b{color:var(--ink)}
/* Galería de fotos (admin) */
.ft-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.ft-thumb{position:relative;aspect-ratio:1;border-radius:11px;overflow:hidden;border:1px solid var(--line);background:var(--bg)}
.ft-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ft-thumb.draft{opacity:.85}
.ft-badge{position:absolute;top:6px;left:6px;font-size:10px;font-weight:700;background:#fff3e0;color:#9a5b00;padding:2px 7px;border-radius:6px}
/* Diplomas · cola de revisión */
.rev-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.rev-item:last-child{border-bottom:0}
.rev-info{font-size:14px}
.rev-info b{color:var(--ink)}
.rev-info .rev-curso{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.rev-act{display:flex;gap:8px;align-items:center}
.rev-email{font:inherit;font-size:13.5px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:var(--bg);min-width:210px}
.rev-email:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px rgba(43,196,178,.16)}
/* Analytics · filtros, sub-nav y KPIs */
.an-filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.an-filters .field{display:flex;flex-direction:column;gap:5px}
.an-filters label{font-size:12px;font-weight:600;color:var(--muted)}
.an-filters input,.an-filters select{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:var(--bg);color:var(--ink)}
.an-filters input:focus,.an-filters select:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px rgba(43,196,178,.16)}
.an-subnav{display:inline-flex;gap:3px;flex-wrap:wrap;margin:0 0 16px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}
.an-tab{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);background:transparent;border:0;border-radius:999px;padding:8px 15px}
.an-tab:hover{color:var(--ink)}
.an-tab.is-on{color:#fff;background:var(--green)}
.an-tab .soon{font-size:9.5px;background:rgba(0,0,0,.1);color:inherit;padding:1px 6px;border-radius:6px;opacity:.7}
.an-tab.is-on .soon{background:rgba(255,255,255,.2)}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px;display:flex;flex-direction:column;gap:3px}
.kpi-n{font-family:'JetBrains Mono',monospace;font-size:28px;font-weight:600;color:var(--green);line-height:1}
.kpi-l{font-size:13px;font-weight:600;color:var(--ink);margin-top:6px}
.kpi-h{font-size:11.5px;color:var(--muted);line-height:1.35}
.kpi.ok{border-color:#9ed8c7;background:linear-gradient(180deg,#f0faf7,#fff)}
.kpi.ok .kpi-n{color:#1b8a5a}
.kpi.ko{border-color:#f0c5c5;background:linear-gradient(180deg,#fdf3f3,#fff)}
.kpi.ko .kpi-n{color:#ba1a1a}
/* Mapa de calor de sesiones (7×24) */
.heat{display:flex;flex-direction:column;gap:3px;overflow-x:auto}
.heat-row{display:grid;grid-template-columns:34px repeat(24,1fr);gap:3px;align-items:center;min-width:520px}
.heat-day{font-size:11px;color:var(--muted);text-align:right;padding-right:4px}
.heat-h{font-size:9.5px;color:var(--muted);text-align:center}
.heat-c{height:16px;border-radius:3px;background:rgba(13,86,81,0)}
.heat-head .heat-c{height:auto}

/* ─── Previsión (beta) · TimesFM 2.5 ─────────────────────────────── */
.fc-beta{background:#f3fbf9;border-left:3px solid #2BC4B2}
.fc-badge{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:10px;vertical-align:middle}
.fc-badge.fc-tfm{background:#16323B;color:#fff}
.fc-badge.fc-base{background:#e7eeec;color:#5b6b6e}
.fc-card .fc-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.fc-headline{font-size:22px;font-weight:800;color:#0d5651;text-align:right;line-height:1.05}
.fc-headline .fc-h-sub,.fc-h-sub{display:block;font-size:10.5px;font-weight:500;color:#8a9a9d}
.fc-svg{display:block;margin:6px 0 2px;overflow:visible}
.fc-legend{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:2px 0 0}
.fc-k{display:inline-block;width:16px;height:0;border-top-width:2px;border-top-style:solid;margin-right:2px}
.fc-k-hist{border-top-color:#0d5651}
.fc-k-fc{border-top-color:#2BC4B2;border-top-style:dashed}
.fc-k-band{height:9px;border:0;background:#2BC4B2;opacity:.14;border-radius:2px}
.fc-horas{display:flex;align-items:flex-end;gap:2px;height:60px;margin-top:6px}
.fc-hcol{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px}
.fc-hbar{width:100%;background:#57A09A;border-radius:2px 2px 0 0}
.fc-hbar.pico{background:#2BC4B2}
.fc-hcol span{font-size:8px;color:#8a9a9d;line-height:1}

/* Inicio · torre de control (panel simple, Jesús 09-jul) */
.in-tarea{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1.5px solid #e3b25e;background:#fdf8ee;border-radius:12px;margin-bottom:10px;font-size:14px}
.in-tarea:last-child{margin-bottom:0}
.in-ok{color:#0d7a5f;font-weight:700;font-size:15px;padding:6px 2px}
.in-auto{list-style:none;padding:0;margin:0}
.in-auto li{position:relative;padding:7px 0 7px 26px;font-size:13.5px;color:#3d5a52;border-bottom:1px solid #eef3f1}
.in-auto li:last-child{border-bottom:0}
/* El engranaje tipográfico pasa a viñeta dibujada: los emojis los pinta cada sistema a su manera. */
.in-auto li::before{content:"";position:absolute;left:4px;top:.55em;width:6px;height:6px;border-radius:50%;background:#57A09A}
.in-tarea .btn{width:auto;flex:0 0 auto;padding-left:18px;padding-right:18px}
.as-item .pend{margin-left:auto;background:#e8b04b;color:#3d2c07;font-size:10.5px;font-weight:800;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.as-item.is-on .pend{background:#06302b;color:#9fe8dd}
.dp-fold summary{cursor:pointer;list-style:none;display:flex;align-items:baseline}
.dp-fold summary::before{content:"▸";margin-right:8px;color:#57A09A;transition:transform .15s}
.dp-fold[open] summary::before{transform:rotate(90deg)}

/* Documentación · rejilla visual de cursos (15-jul, sustituye al desplegable) */
.dc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.dc-tile{display:flex;gap:11px;align-items:center;text-align:left;background:#fff;border:1.5px solid #d7e5e2;border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,transform .15s,background .15s}
.dc-tile:hover{border-color:#57A09A;transform:translateY(-1px)}
.dc-tile.is-on{border-color:#57A09A;background:#eef7f5;box-shadow:0 0 0 2px rgba(87,160,154,.18)}
.dc-tile__acr{flex:0 0 auto;width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#57A09A,#2BC4B2);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.02em;line-height:1.1;padding:0 2px;text-align:center}
.dc-tile__b{min-width:0}
.dc-tile__b b{display:block;font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-tile__b span{font-size:11.5px;color:#5c7a76}


/* Feed editorial · cola semanal y publicados VISUALES (16-jul) */
.fq-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}
.fq-row:last-child{border-bottom:0}
.fq-n{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:#eef7f5;color:#0d5651;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12.5px}
.fq-n--pub{background:#d4edda;color:#155724}
.fq-b{flex:1;min-width:0}
.fq-b b{display:block;font-size:13.5px;line-height:1.3}
.fq-when{flex:0 0 auto;color:var(--muted);font-size:12.5px;white-space:nowrap}
.fq-act{flex:0 0 auto;display:flex;gap:6px}

/* Catálogo VISUAL + Roles VISUAL + Asistente de contenido (20-jul) */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.cat-item{display:flex;gap:12px;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px;transition:border-color .15s}
.cat-item.off{opacity:.62}
.cat-item:hover{border-color:var(--accent)}
.cat-thumb{flex:0 0 auto;width:74px;height:56px;border-radius:9px;background-size:cover;background-position:center;background-color:#eef4f2;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:11px;letter-spacing:.02em;text-align:center;overflow:hidden}
.cat-thumb.ph{background:linear-gradient(135deg,var(--accent),var(--aqua))}
.cat-body{flex:1;min-width:0}
.cat-body b{display:block;font-size:13.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-body .p{font-size:12.5px;color:#15803d;font-weight:700}
.cat-actions{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
/* interruptor Activo/Oculto */
.sw{position:relative;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:11.5px;color:var(--muted);user-select:none}
.sw input{position:absolute;opacity:0;width:0;height:0}
.sw .track{width:34px;height:19px;border-radius:19px;background:#cfd8d5;transition:.15s;flex:0 0 auto;position:relative}
.sw .track::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:.15s}
.sw input:checked + .track{background:var(--accent)}
.sw input:checked + .track::after{transform:translateX(15px)}
.cat-mini{display:flex;gap:6px}
.cat-mini button{background:none;border:0;padding:2px 4px;font:inherit;font-size:12px;cursor:pointer;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.cat-mini button.del{color:#b42318}

.team-grid{display:flex;flex-direction:column;gap:8px}
.team-row{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px}
.team-av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px}
.team-b{flex:1;min-width:0}
.team-b b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-b .role{font-size:12px;color:var(--muted)}
.rolepill{font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:20px}
.rolepill.superadmin{background:#d9f2ec;color:#0d5651}
.rolepill.admin_contenido{background:#fdeccd;color:#8a5a0b}

/* Asistente flotante para profesores (solo en el panel admin) */
#asis-fab{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--green),var(--aqua));color:#fff;border:0;border-radius:26px;padding:12px 18px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 4px 12px rgba(43,196,178,.3);transition:box-shadow .15s ease,transform .15s ease}
#asis-fab:hover{box-shadow:0 6px 16px rgba(43,196,178,.42);transform:translateY(-1px)}
#asis-panel{position:fixed;right:20px;bottom:20px;z-index:71;width:min(420px,calc(100vw - 40px));height:min(560px,calc(100vh - 40px));background:var(--surface,#fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px rgba(20,50,59,.25);display:flex;flex-direction:column;overflow:hidden}
#asis-panel[hidden]{display:none}
.asis-head{background:linear-gradient(120deg,#16323B,#1d4a52);color:#fff;padding:13px 16px;display:flex;align-items:center;justify-content:space-between}
.asis-head b{font-size:14.5px}
.asis-head span{font-size:11.5px;color:#9fd9d1;display:block}
.asis-head button{background:rgba(255,255,255,.16);border:0;color:#fff;width:28px;height:28px;border-radius:8px;font-size:16px;cursor:pointer}
.asis-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#f5f8f7}
.asis-msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.4}
.asis-msg.bot{background:#fff;border:1px solid var(--line);align-self:flex-start}
.asis-msg.me{background:var(--accent);color:#fff;align-self:flex-end}
.asis-res{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12.5px}
.asis-res h4{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:0 0 5px}
.asis-res .r{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-top:1px solid #eef3f1}
.asis-res .r:first-of-type{border-top:0}
.asis-res .r b{font-size:12.5px;font-weight:600}
.asis-res .r small{color:var(--muted)}
.asis-chip{display:inline-block;background:#eef7f5;color:#0d5651;border:0;border-radius:16px;padding:5px 11px;font:inherit;font-size:12px;cursor:pointer;margin:2px 3px 0 0}
.asis-foot{padding:10px;border-top:1px solid var(--line);display:flex;gap:8px;background:var(--surface,#fff)}
.asis-foot input{flex:1;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:inherit;font-size:13px}
.asis-foot button{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:0 14px;font-size:16px;cursor:pointer}

/* ── Feed editorial: interfaz visual en 3 pasos ── */
.fe-card{max-width:760px}
.fe-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.fe-step{display:flex;align-items:center;gap:10px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:12.5px;line-height:1.3;color:var(--muted)}
.fe-step em{font-style:normal;color:var(--muted);opacity:.85}
.fe-step__n{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--green),var(--aqua))}
.fe-drop{padding:34px 20px;margin-bottom:16px;border-width:2px}
.fe-drop .ic{margin-bottom:8px;display:block}
.fe-drop .ic svg{width:34px;height:34px}
.fe-adv summary{cursor:pointer;font-weight:600}
.fe-actions{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px;margin-top:16px}
.fe-go{flex-direction:column;align-items:stretch;gap:2px;padding:12px 14px;text-align:center;height:auto;line-height:1.25}
.fe-go__t{font-weight:700;font-size:14px}
.fe-go__s{font-size:11px;font-weight:500;opacity:.82}
.fe-go.btn--primary .fe-go__s{color:#0a3f39}
@media (max-width:640px){.fe-steps{grid-template-columns:1fr}.fe-actions{grid-template-columns:1fr}}

/* ── Barra de progreso del alumno en su ficha ── */
.pbar{height:8px;border-radius:6px;background:#e6efec;overflow:hidden;margin-bottom:3px}
.pbar__fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--green),var(--aqua));transition:width .3s}
.pbar__fill.is-done{background:linear-gradient(90deg,#1a8f68,#2BC4B2)}
.pbar__fill.is-low{background:linear-gradient(90deg,#c0522b,#e0863f)}
.pbar__lbl{font-size:11.5px;color:var(--muted)}

/* ── Botón «Salir» de la barra lateral: sobre fondo oscuro el .btn--ghost quedaba invisible ── */
.as-user .btn{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);color:#eaf6f3;font-weight:600;padding:7px 14px;border-radius:9px;transition:background .15s,border-color .15s,color .15s}
.as-user .btn:hover{background:var(--aqua);border-color:var(--aqua);color:#06302b}
.as-user .btn:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}

/* ── Asistente con acciones: tarjeta de formulario dentro del chat ── */
.asis-form{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:12.5px}
.asis-form h4{margin:0 0 8px;font-size:12.5px;color:var(--green)}
.asis-form label{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin:7px 0 3px}
.asis-form select,.asis-form input[type=text],.asis-form input[type=url]{width:100%;font:inherit;font-size:12.5px;border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:var(--bg);color:var(--ink)}
.asis-form input[type=file]{width:100%;font-size:11.5px;margin-top:2px}
.asis-form .chk{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:12px;color:var(--ink)}
.asis-form .go{margin-top:10px;width:100%;background:linear-gradient(135deg,var(--green),var(--aqua));color:#fff;border:0;border-radius:9px;padding:9px;font-weight:700;font-size:12.5px;cursor:pointer}
.asis-form .go:disabled{opacity:.6;cursor:default}
.asis-form .hint{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.45}
.asis-foot .clip{background:none;border:1px solid var(--line);color:var(--muted);border-radius:9px;padding:0 10px;font-size:15px;cursor:pointer}
.asis-foot .clip:hover{border-color:var(--accent);color:var(--accent)}

/* ── Móvil (≤920px): barra lateral como cajón desplegable + panel a ancho completo ── */
@media (max-width:920px){
  .admin-shell{display:block}
  /* Barra superior fija con hamburguesa (respeta el notch del iPhone) */
  .admin-topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;
    background:#0e2a2c;color:#fff;padding:calc(10px + env(safe-area-inset-top)) 14px 10px}
  .tb-burger{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#eaf6f3;
    border-radius:10px;width:40px;height:40px;font-size:19px;line-height:1;cursor:pointer;flex-shrink:0}
  .tb-burger:active{background:var(--aqua);color:#06302b}
  .tb-brand{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:16px}
  .tb-brand small{font-weight:500;font-size:11px;color:#8fb6b0;margin-left:6px;font-family:'Inter'}
  /* La barra lateral pasa a cajón: oculta fuera de pantalla, se desliza al abrir */
  .admin-side{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:min(280px,84vw);z-index:60;
    transform:translateX(-105%);transition:transform .22s ease;box-shadow:6px 0 28px rgba(0,0,0,.35);
    padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:calc(14px + env(safe-area-inset-bottom))}
  .admin-side.is-open{transform:none}
  .side-backdrop{display:block;position:fixed;inset:0;z-index:50;background:rgba(6,20,22,.55)}
  .side-backdrop[hidden]{display:none}
  /* Contenido a todo el ancho, con padding compacto */
  .admin-main{padding:16px 14px calc(28px + env(safe-area-inset-bottom));max-width:none}
  .card{padding:16px 14px;overflow-x:auto}          /* tablas anchas scrollean dentro de su tarjeta */
  .fq-row{flex-wrap:wrap}
  .fq-row .fq-act{width:100%;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
  .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
}

/* Informes diarios (21-ago) */
.inf-item{border:1px solid var(--line,#d8e0dd);border-radius:12px;padding:10px 14px;margin-bottom:8px;background:var(--surface,#fff)}
.inf-item>summary{cursor:pointer;font-size:14px;list-style:none}
.inf-item>summary::-webkit-details-marker{display:none}
.inf-item>summary::before{content:'▸ ';color:var(--accent,#1BA897)}
.inf-item[open]>summary::before{content:'▾ '}


/* ── Iconografía (sprite en línea de admin.html) ──────────────────────────
   Los iconos propios de EGS son sólidos (caja 1024); los símbolos de interfaz
   van en trazo (caja 24). Ambos heredan currentColor. */
.egs-sprite{position:absolute;width:0;height:0;overflow:hidden}
.i{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.17em;flex-shrink:0}
#nav-toggle .i{width:22px;height:22px;vertical-align:middle}

/* ── Móvil (09-sep-2026): el panel se usa embebido en EGStrategy desde el teléfono ──
   Las tablas NUNCA se cortan: se desplazan de lado dentro de su tarjeta. Formularios apilados. */
@media (max-width: 760px) {
  .admin-main{padding:16px 12px}
  .card{padding:16px 12px}
  .card table.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  table.tbl th,table.tbl td{padding:8px 8px;font-size:13px}
  .am-head h1{font-size:22px}
  .form-row{flex-direction:column}
  .form-row .field{max-width:none !important;width:100%}
  .form-row .field input,.form-row .field select,.form-row .field textarea{width:100%;box-sizing:border-box}
  .form-row .btn{max-width:none !important;width:100%}
}

/* ── Kit para redes (19-oct-2026 · kit-redes.js) ── */
.kit .sub { margin-top: 0; }
.kit__bloque { border-top: 1px solid #eef2f0; padding: 16px 0 6px; }
.kit__bloque h3 { margin: 0 0 10px; font-size: 16px; }
.kit__fila { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kit__fila select { flex: 1 1 260px; min-width: 0; max-width: 100%; }
.kit__fila label { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.kit__fila input[type="text"] { width: 64px; }
.kit__nota { font-size: 12.5px; margin: 6px 0 0; }
.kit__res { margin-top: 12px; }
.kit__previas { display: flex; flex-wrap: wrap; gap: 14px; }
.kit__previas figure { margin: 0; width: min(240px, 100%); }
.kit__previas img { width: 100%; height: auto; border-radius: 10px; border: 1px solid #e4ecec; display: block; }
.kit__previas figcaption { margin-top: 6px; }
.kit__texto { display: block; margin: 12px 0 6px; font-size: 13px; font-weight: 600; }
.kit__texto textarea { display: block; width: 100%; max-width: 640px; margin-top: 4px; font: 13px/1.45 Inter, system-ui, sans-serif; resize: vertical; }
.kit__video { width: min(270px, 100%); border-radius: 12px; border: 1px solid #e4ecec; background: #000; }

/* ── Agente IA «Campus EGS» e Incidencias (21-oct-2026 · agente-campus.js) ──
   Prefijos .agc- (chat) e .inc- (incidencias): .ag- ya lo usa la pantalla de acceso. */
.agc .am-head .btn--primary,.agc-form .btn--primary,.inc .btn--primary{width:auto}
.agc-linea{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin:-8px 0 14px}
.agc-layout{display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:14px;align-items:start}
.agc-layout>.card{margin-bottom:0}
.agc-lista h2{margin-bottom:10px}
.agc-convs{display:flex;flex-direction:column;gap:6px;max-height:min(64vh,620px);overflow-y:auto}
.agc-conv{display:block;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:11px;padding:9px 11px;color:var(--ink)}
.agc-conv:hover{border-color:#bcddd6}
.agc-conv.is-on{border-color:var(--green-2);background:#eef7f5}
.agc-conv b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agc-conv span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.agc-conv small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.agc-hilo{display:flex;flex-direction:column;min-width:0}
.agc-hilo-head{padding-bottom:10px;border-bottom:1px solid var(--line)}
.agc-hilo-head h2{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agc-msgs{height:min(54vh,560px);overflow-y:auto;padding:14px 2px;display:flex;flex-direction:column;gap:12px}
.agc-msg{max-width:min(84%,680px);display:flex;flex-direction:column;gap:3px}
.agc-msg.yo{align-self:flex-end;align-items:flex-end}
.agc-msg.agente{align-self:flex-start}
.agc-burbuja{padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;overflow-wrap:anywhere;min-width:0;max-width:100%}
.agc-msg.yo .agc-burbuja{background:var(--green);color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}
.agc-msg.agente .agc-burbuja{background:#f4f9f7;color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:4px}
.agc-msg.agente.err .agc-burbuja{background:#fff8ea;border-color:#ecd49a}
.agc-burbuja p{margin:0 0 8px}
.agc-burbuja p:last-child{margin-bottom:0}
.agc-burbuja ul,.agc-burbuja ol{margin:4px 0 8px;padding-left:20px}
.agc-burbuja li{margin:2px 0}
.agc-burbuja code{font-family:'JetBrains Mono',monospace;font-size:12.5px;background:rgba(13,86,81,.08);padding:1px 5px;border-radius:5px}
.agc-burbuja pre{background:#0e2a2c;color:#e6f2ef;padding:10px 12px;border-radius:9px;overflow-x:auto;margin:6px 0;white-space:pre}
.agc-burbuja pre code{background:none;padding:0;color:inherit}
.agc-tabla{overflow-x:auto;margin:6px 0;max-width:100%}
.agc-tabla table.tbl{font-size:13px;background:var(--surface);white-space:nowrap}
.agc-tabla table.tbl th,.agc-tabla table.tbl td{padding:6px 9px}
.agc-meta{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.agc-meta .live-dot{margin-left:2px}
.agc-aviso{color:#8a5a0b;font-weight:600}
.agc-err{color:var(--rojo);font-weight:600}
.agc-burbuja p.agc-err{margin-bottom:6px}
.agc-vacio{margin:auto;text-align:center;color:var(--muted);font-size:13.5px;max-width:440px;padding:0 10px}
.agc-vacio p{margin:0 0 6px}
.agc-vacio b{color:var(--ink)}
.agc-chips{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0 8px}
.agc-chips .asis-chip{margin:0;text-align:left}
.agc-form textarea,.inc textarea{width:100%;font:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg);color:var(--ink);resize:vertical;min-height:78px}
.agc-form textarea:focus,.inc textarea:focus{outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px rgba(43,196,178,.16)}
.agc-form-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:12px;color:var(--muted)}

.inc-filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between}
.inc-filtros .an-subnav{margin-bottom:0}
.inc-filtros+.sub{margin:12px 0 10px}
.inc-lista{display:flex;flex-direction:column;gap:8px}
.inc-item{display:block;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-left:5px solid #b8c4c1;border-radius:12px;padding:11px 14px;color:var(--ink)}
.inc-item:hover{box-shadow:var(--shadow)}
.inc-item>b{display:block;font-size:14.5px;line-height:1.3}
.inc-item.p-critica{border-left-color:#ba1a1a}
.inc-item.p-alta{border-left-color:#e2620f}
.inc-item.p-media{border-left-color:#e0a43b}
.inc-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.inc-b{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#eef1f0;color:#5b6b6e}
.inc-prio.critica{background:#fdecec;color:#ba1a1a}
.inc-prio.alta{background:#ffedd5;color:#9a3412}
.inc-prio.media{background:#fef3c7;color:#854d0e}
.inc-est.abierta{background:#e0f2fe;color:#075985}
.inc-est.en_curso{background:#e4f3f0;color:#0d5651}
.inc-est.resuelta{background:#dcfce7;color:#166534}
.inc-meta{display:block;font-size:12px;color:var(--muted);margin-top:6px}
.inc-det h3{font-size:14px;margin:18px 0 8px}
.inc-det-cab h2{margin:14px 0 2px;font-size:18px}
.inc-det-cab code{font-family:'JetBrains Mono',monospace;font-size:11.5px}
.inc-desc{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;background:#f7faf9;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.inc .form-row+.form-row{margin-top:10px}
.inc-botones{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.inc-hist{list-style:none;padding:0;margin:0}
.inc-hist li{padding:8px 0;border-bottom:1px solid #eef3f1;font-size:13.5px;overflow-wrap:anywhere}
.inc-hist li:last-child{border-bottom:0}
.inc-hist small{display:block;color:var(--muted);font-size:11.5px;margin-bottom:2px}
.rolepill.agente,.pill.agente{background:#e7eefb;color:#2b4a8a}
@media (max-width:920px){
  .agc-layout{grid-template-columns:1fr}           /* móvil: la lista y el hilo se apilan */
  .agc-convs{max-height:210px}
  .agc-msgs{height:58vh}
  .agc-msg{max-width:94%}
  .agc .am-head{flex-wrap:wrap;align-items:flex-start}
  .inc .am-head{flex-wrap:wrap;align-items:flex-start}
}

/* Docencia · cómo funciona (28-oct-2026) */
.doc-como summary{cursor:pointer;font-size:14px}
.doc-pasos{margin-top:8px;padding-left:0}
.doc-pasos li{list-style:none}
/* Docencia · encuestas (28-oct-2026) */
.doc-preg{margin:8px 0 10px;font-size:13.5px}
.doc-op{display:flex;align-items:center;gap:8px;margin:2px 0}
.doc-barra{display:inline-block;width:120px;height:8px;border-radius:4px;background:var(--line,#dfe8e6);overflow:hidden;vertical-align:middle}
.doc-barra span{display:block;height:100%;background:var(--brand,#2e6e69)}

/* ── Gamificación de casos (28-oct-2026): editor de casos ramificados ── */
.cg-nodo{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0;background:var(--surface)}
.cg-nodo--decision{border-left:4px solid var(--aqua)}
.cg-nodo--final{border-left:4px solid var(--green);background:#f6faf9}
.cg-nodo__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.cg-nodo__titulo{flex:1;min-width:200px;font:inherit;font-weight:600;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--bg);color:var(--ink)}
.cg-nodo__tools{margin-left:auto;display:flex;gap:4px}
.cg-nodo textarea,.cg-nodo input[type=text],.cg-nodo input[type=url],.cg-nodo input[type=number],.cg-nodo select{width:100%;font:inherit;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--bg);color:var(--ink)}
.cg-nodo details{margin:6px 0 10px}
.cg-consts{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:6px}
.cg-consts .field{margin:0}
.cg-ops{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.cg-op{display:grid;grid-template-columns:minmax(160px,2fr) minmax(150px,1.3fr) 60px 70px minmax(160px,2fr) 36px;gap:6px;align-items:center}
.cg-op--head{font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.02em}
.cg-op input[type=checkbox]{width:18px;height:18px;justify-self:center}
.cg-errores{background:var(--rojo-bg);border:1px solid #f3c0c0;color:var(--rojo);border-radius:10px;padding:10px 14px;font-size:13.5px}
.cg-errores ul{margin:6px 0 0 18px;padding:0}
.cg-ia-tipos{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:4px}
.cg-ia-tipos label{display:flex;align-items:center;gap:6px;font-weight:400;margin:0}
.cg-ia-aviso{background:#fff6d9;border:1px solid #e8cf7a;color:#5c4300;border-radius:10px;padding:10px 14px;font-size:13.5px;margin-bottom:12px}
.cg-ia-aviso ul{margin:6px 0 0 18px;padding:0}
.cg-prev h2{margin:0 0 8px}
.cg-prev__bar{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin:6px 0 10px;color:var(--ink)}
.cg-prev__img{max-width:100%;max-height:260px;border-radius:12px;display:block;margin:8px 0}
.cg-prev .caso-escenario{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;line-height:1.55;margin:8px 0}
.cg-prev .caso-consts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.cg-prev .caso-const{display:flex;flex-direction:column;align-items:center;min-width:76px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:6px 8px}
.cg-prev .caso-const__lbl{font-size:11px;color:var(--muted)}
.cg-prev .caso-const__val{font-family:ui-monospace,monospace;font-size:13px;font-weight:600}
.cg-prev .caso-paso h3{font-size:15px;margin:8px 0}
.cg-prev .caso-ops{display:flex;flex-direction:column;gap:8px}
.cg-prev .caso-op{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;color:var(--ink);cursor:pointer}
.cg-prev .caso-op.is-correct{border-color:#2E9E6B;background:rgba(46,158,107,.10)}
.cg-prev .caso-op.is-wrong{border-color:#C1272D;background:rgba(193,39,45,.08)}
.cg-prev .caso-fb{border-radius:12px;padding:10px 12px;margin:10px 0;font-size:14px;line-height:1.5}
.cg-prev .caso-fb--ok{background:rgba(46,158,107,.10);border:1px solid rgba(46,158,107,.4)}
.cg-prev .caso-fb--no{background:rgba(214,158,46,.08);border:1px solid rgba(214,158,46,.45)}
.cg-prev .caso-result{font-size:15px;margin:10px 0}
.cg-res-nodo{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}
.cg-bar{display:grid;grid-template-columns:minmax(140px,2fr) minmax(120px,3fr) 40px;gap:8px;align-items:center;font-size:13px;margin-top:6px}
.cg-bar__track{height:10px;background:var(--bg);border-radius:999px;overflow:hidden;border:1px solid var(--line)}
.cg-bar__fill{display:block;height:100%;background:#d9a441}
.cg-bar__fill.is-ok{background:#2E9E6B}
.cg-bar__n{text-align:right;color:var(--muted)}
/* Gamificación de casos · pantallas de Genially (tarjetas ABCDE, VF, rosco, chat) */
.cg-nodo--info{border-left:4px solid #6c7a89}
.cg-nodo--vf,.cg-nodo--rosco{border-left:4px solid #d9a441}
.cg-op--tarjetas{grid-template-columns:70px minmax(140px,1fr) minmax(200px,2.5fr) 36px}
.cg-op--afirmaciones{grid-template-columns:minmax(200px,2.5fr) 130px minmax(160px,2fr) 36px}
.cg-op--palabras{grid-template-columns:56px minmax(180px,2.5fr) minmax(120px,1.2fr) minmax(140px,1.5fr) 36px}
.cg-op--mensajes{grid-template-columns:170px minmax(200px,3fr) 36px}
.cg-vf-check{display:flex;align-items:center;gap:6px;font-size:13px}
.cg-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0}
.cg-tarjeta{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--green);color:#fff;font:inherit;cursor:pointer;min-height:84px}
.cg-tarjeta__et{font-size:26px;font-weight:800;line-height:1}
.cg-tarjeta__t{font-size:12px;opacity:.9}
.cg-tarjeta__x{font-size:13px;background:rgba(255,255,255,.15);border-radius:8px;padding:6px 8px;margin-top:4px;white-space:pre-wrap}
.cg-tarjeta.is-open{background:var(--green-2)}
.cg-vf__fila{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0}
.cg-vf__btns{display:flex;gap:6px}
.cg-vf__b{padding:6px 12px!important}
.cg-vf__b.is-sel{border-color:var(--aqua);background:rgba(43,196,178,.14)}
.cg-vf__fila.is-ok{border-color:#2E9E6B;background:rgba(46,158,107,.08)}
.cg-vf__fila.is-ko{border-color:#C1272D;background:rgba(193,39,45,.06)}
.cg-vf__fb{flex-basis:100%;font-size:12.5px;color:var(--muted)}
.cg-rosco__fila{display:grid;grid-template-columns:44px 1fr minmax(160px,220px);gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin:6px 0}
.cg-rosco__letra{width:36px;height:36px;border-radius:50%;background:var(--green);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.cg-rosco__in{font:inherit;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--bg)}
.cg-rosco__fila.is-ok .cg-rosco__letra{background:#2E9E6B}
.cg-rosco__fila.is-ko .cg-rosco__letra{background:#C1272D}
.cg-chat{display:flex;flex-direction:column;gap:8px;margin:8px 0;background:#eef3f1;border-radius:14px;padding:12px}
.cg-chat__m{max-width:85%;border-radius:12px;padding:8px 12px;font-size:14px;line-height:1.45;background:#fff;border:1px solid var(--line);align-self:flex-start}
.cg-chat__m--paciente{align-self:flex-end;background:#dff5e9;border-color:#bfe7d2}
.cg-chat__m--sistema{align-self:center;background:transparent;border:0;color:var(--muted);font-style:italic}
.cg-chat__de{display:block;font-size:11.5px;font-weight:700;color:#c14d2a;margin-bottom:2px}
.cg-chat__m--paciente .cg-chat__de{color:#1f7a4c}
.caso-ops--chat{align-items:flex-end}
.caso-ops--chat .caso-op{max-width:85%;border-radius:12px 12px 2px 12px;background:#dff5e9;border-color:#bfe7d2}

/* ── Docencia · seguimiento de alumnos (28-oct-2026, grabaciones de Evolcampus) ── */
.doc-alerta{color:var(--rojo)}
.seg-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.seg-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.seg-chip b{font-family:'JetBrains Mono',monospace;font-weight:600;margin-left:2px}
.seg-chip:hover{border-color:var(--green-2)}
.seg-chip.is-on{background:var(--green);border-color:var(--green);color:#fff}
.seg-tabla td{vertical-align:middle}
.seg-tabla tr.seg-nunca td:first-child,.seg-tabla tr.seg-inactivo td:first-child{box-shadow:inset 3px 0 0 var(--rojo)}
.seg-tabla tr.seg-completado td:first-child{box-shadow:inset 3px 0 0 #1b8a5a}
.pill.seg-nunca,.pill.seg-inactivo{background:var(--rojo-bg);color:var(--rojo)}
.pill.seg-sin_empezar{background:#fff3e0;color:#9a5b00}
.pill.seg-en_curso{background:#e4f3f0;color:#0d5651}
.pill.seg-completado{background:#dff5ea;color:#145c3b}
.am-scroll{overflow:auto;max-width:100%}

/* ── Docencia · consultas de alumnos (audio de la revisión, 28-oct-2026) ── */
.cons-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 8px;background:var(--surface)}
.cons-item.is-resp{background:var(--bg)}
.cons-head{font-size:13px;margin-bottom:4px}
.cons-txt{white-space:pre-wrap;font-size:13.5px;line-height:1.45}
.cons-resp{display:grid;gap:6px;margin-top:8px}
.cons-resp textarea{width:100%;font:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;resize:vertical}
.cons-resp .btn{justify-self:start}
.cons-rta{margin-top:8px;padding:8px 10px;border-left:3px solid var(--aqua);font-size:13.5px;white-space:pre-wrap}

.cg-check{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:6px 0 0}
.cg-check input{margin-top:3px}

/* Tablas de Docencia (am-table): mismo aspecto que table.tbl, con los botones de acción a su tamaño */
table.am-table{width:100%;border-collapse:collapse;font-size:14px}
table.am-table th,table.am-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
table.am-table th{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}
table.am-table tr:last-child td{border-bottom:0}
table.am-table td .btn{width:auto;white-space:nowrap;margin:2px 0 2px 4px}
@media (max-width:900px){.card table.am-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}}
