:root { --tinta:#1a1d22; --gris:#6b7280; --linea:#e2e5ea; --azul:#13519C; --ambar:#E07B00; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;
       color:var(--tinta); background:#f6f7f9; }
header { display:flex; justify-content:space-between; align-items:center;
         padding:12px 20px; background:#fff; border-bottom:1px solid var(--linea); }
.marca { font-weight:700; color:var(--azul); text-decoration:none; }
main { max-width:820px; margin:0 auto; padding:24px 20px 80px; }
h1 { font-size:1.5rem; margin:0 0 4px; }
h2 { font-size:1.1rem; margin:32px 0 10px; }
a { color:var(--azul); }
.tarjeta { background:#fff; border:1px solid var(--linea); border-radius:10px; padding:24px; }
.angosta { max-width:380px; margin:60px auto; }
label { display:block; margin-bottom:14px; font-size:.9rem; color:var(--gris); }
input, textarea, select { width:100%; padding:10px; margin-top:4px; font:inherit;
        border:1px solid var(--linea); border-radius:6px; background:#fff; }
button { padding:10px 20px; font:inherit; font-weight:600; color:#fff;
         background:var(--azul); border:0; border-radius:6px; cursor:pointer; }
button:disabled { background:var(--gris); cursor:wait; }
.aviso { background:#fff8ee; border-left:3px solid var(--ambar);
         padding:10px 14px; font-size:.88rem; color:#7a4a00; border-radius:0 6px 6px 0; }
.ayuda { margin-top:14px; font-size:.85rem; color:var(--gris); }
.lista { list-style:none; padding:0; }
.lista li { background:#fff; border:1px solid var(--linea); border-radius:8px;
            padding:14px 16px; margin-bottom:10px; }
.lista small { color:var(--gris); display:block; font-size:.8rem; }
#conversacion { margin:20px 0; }
.msg { padding:12px 16px; border-radius:10px; margin-bottom:10px; white-space:pre-wrap; }
.msg.alumno { background:var(--azul); color:#fff; margin-left:15%; }
.msg.bot { background:#fff; border:1px solid var(--linea); margin-right:8%; }
.msg.esperando { color:var(--gris); font-style:italic; }
.msg.error { background:#fdecec; border:1px solid #f5b5b5; color:#a11; }
.fuentes { margin-top:10px; padding-top:8px; border-top:1px solid #f5b5b5;
           font-size:.78rem; color:var(--gris); }
#form { display:flex; gap:10px; align-items:flex-end; }
table { width:100%; border-collapse:collapse; background:#fff; font-size:.9rem; }
th, td { padding:9px 12px; text-align:left; border-bottom:1px solid var(--linea); }
th { background:#f0f2f5; text-transform:uppercase; color:var(--gris); font-size:.78rem; }
form.subir { display:flex; gap:6px; align-items:center; }
form.subir input { width:auto; margin:0; }
.consulta { background:#fff; border:1px solid var(--linea); border-radius:8px;
            padding:12px 16px; margin-bottom:10px; }
.consulta .meta { font-size:.75rem; color:var(--gris); margin-bottom:6px; }
.consulta .p { font-weight:600; }
.consulta .r { font-size:.9rem; color:#3a4048; margin-top:4px; }
.alerta { color:#b91c1c; font-weight:700; }
.error { color:#b91c1c; font-size:.9rem; }
code { background:#f0f2f5; padding:2px 6px; border-radius:4px; font-size:.85em; }
.cursada-bloque { margin-bottom:28px; }
.categoria-bloque { padding:14px 0; border-bottom:1px solid var(--linea); }
.categoria-bloque:last-child { border-bottom:0; }
.lista.compacta li { padding:8px 12px; margin-bottom:6px; font-size:.85rem; }


/* --- Agregado 2026-09-03: botones de eliminar documento y de aprobar/rechazar
   inscripciones en el panel docente --- */
.eliminar-doc {
  display: inline;
  margin-left: .5rem;
}
.boton-eliminar,
.boton-aprobar {
  font-size: .75rem;
  padding: .15rem .5rem;
  border-radius: 4px;
  border: 1px solid transparent;
  cursor: pointer;
}
.boton-eliminar {
  background: #fff0f0;
  border-color: #e0b4b4;
  color: #a12b2b;
}
.boton-eliminar:hover {
  background: #f8d7d7;
}
.boton-aprobar {
  background: #eefaf0;
  border-color: #a9d6b5;
  color: #1e6b32;
  margin-right: .25rem;
}
.boton-aprobar:hover {
  background: #d7f0de;
}

/* Bienvenida y recorrido del chat (2026-10-06) */
.bienvenida { background:#fff; border:1px solid var(--linea); border-radius:10px; padding:14px 18px; margin:14px 0; }
.bienvenida .saludo { margin:0 0 8px; font-size:1.05rem; }
.bienvenida summary { cursor:pointer; color:var(--azul); font-weight:600; }
.recorrido { display:grid; gap:10px; margin-top:12px; }
.recorrido .paso { display:flex; flex-direction:column; gap:4px; }
.sugerencia { align-self:flex-start; text-align:left; background:#eef4fb; color:var(--azul); border:1px solid #c9dbf0;
  border-radius:16px; padding:6px 12px; cursor:pointer; font-size:.9rem; }
.sugerencia:hover { background:#dfeaf8; }

/* Planilla de notas e informes (2026-10-06) */
.tabla-notas { border-collapse: collapse; width: 100%; max-width: 640px; margin: .5rem 0 1rem; }
.tabla-notas th, .tabla-notas td { border: 1px solid #d6dbe4; padding: .45rem .6rem; text-align: left; vertical-align: top; }
.tabla-notas th { background: #f3f5f9; font-weight: 600; width: 45%; }

/* Panel docente en 4 páginas (2026-10-06) */
.aviso-pendientes { border: 2px solid #e0a800; background: #fff8e1; }
.grilla-paneles { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin-top: 1rem; }
.tarjeta-panel { display: flex; flex-direction: column; gap: .35rem; padding: 1.4rem; background: #fff;
  border: 1px solid #d6dbe4; border-radius: 12px; text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
.tarjeta-panel:hover { box-shadow: 0 4px 14px rgba(20,60,120,.15); transform: translateY(-2px); }
.tarjeta-panel .icono { font-size: 2rem; }
.tarjeta-panel strong { font-size: 1.15rem; color: #134e9c; }
.grilla-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; margin: 1rem 0; }
.grilla-numeros .numero { background: #fff; border: 1px solid #d6dbe4; border-radius: 10px; padding: 1rem; display: flex; flex-direction: column; }
.grilla-numeros .numero strong { font-size: 1.7rem; color: #134e9c; }
details.categoria-bloque > summary, details.consulta > summary { cursor: pointer; }
details.consulta { border-bottom: 1px solid #e5e8ee; padding: .5rem 0; }
