.ac-shell{margin:24px 0 32px;background:#fff;border:1px solid #e2d8bd;border-radius:22px;overflow:hidden;box-shadow:0 8px 28px rgba(18,63,120,.06)}
.ac-title{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:24px 28px;background:linear-gradient(110deg,#f3f8fd,#fbf7ec);border-bottom:1px solid #e5dcc4}
.ac-title small,.ac-student-head small{font-weight:900;letter-spacing:.12em;color:#9b7000}
.ac-title h2{font-size:28px;margin:5px 0;color:#083c78}.ac-title p{margin:0;color:#64748b;font-size:15px;line-height:1.45}
.ac-scale{min-width:360px;max-width:480px;display:flex;flex-direction:column;justify-content:center;border:1px solid #d6c58d;border-radius:16px;padding:15px 18px;background:#fffaf0;color:#173b67}.ac-scale span{font-size:12px;line-height:1.45;margin-top:5px}
.ac-tabs{display:flex;gap:10px;padding:20px 28px 4px}.ac-tabs button{min-width:118px;border:1px solid #cbd8e5;background:#f4f7fa;border-radius:12px;padding:11px 20px;font-weight:900;color:#234a75;cursor:pointer}.ac-tabs button.active{background:#123f78;color:#fff;border-color:#123f78}
.ac-filters{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:16px 18px;padding:18px 28px 22px;align-items:end}.ac-filters label{min-width:0;font-size:10px;font-weight:900;letter-spacing:.07em;color:#57708a}.ac-filters label.wide{grid-column:span 2}.ac-filters select{display:block;width:100%;min-height:48px;margin-top:7px;border:1px solid #cbd8e5;border-radius:12px;padding:0 14px;background:#fff;font-size:14px;font-weight:800;color:#123f78}.ac-refresh{grid-column:4;justify-self:end;min-width:150px;border:0;border-radius:12px;padding:13px 20px;background:#f6cf3c;color:#0b376d;font-weight:900;cursor:pointer}
.ac-body{padding:0 28px 28px}.ac-metrics{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px;margin-bottom:20px}.ac-metrics article{min-height:94px;border:1px solid #dbe4ec;border-radius:16px;padding:18px 20px;background:#fbfdff}.ac-metrics small{display:block;font-size:10px;font-weight:900;color:#6d7f90;letter-spacing:.03em}.ac-metrics strong{display:block;font-size:30px;color:#083c78;margin:6px 0 4px}.ac-metrics span{font-size:12px;color:#718096}
.ac-table-wrap{overflow:auto;border:1px solid #dbe4ec;border-radius:16px;max-height:620px;background:#fff;scrollbar-gutter:stable}.ac-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.ac-table th{position:sticky;top:0;z-index:2;background:#123f78;color:#fff;padding:14px 14px;min-width:155px;font-size:11px;line-height:1.25;text-align:center;vertical-align:middle}.ac-table th span{display:block;font-weight:600;max-width:180px;margin:5px auto 0;line-height:1.25}.ac-table td{min-height:54px;padding:14px 14px;border-top:1px solid #e7edf3;text-align:center;background:#fff;vertical-align:middle;font-size:13px}.ac-table tbody tr:nth-child(even) td{background:#fbfcfe}.ac-table tbody tr:hover td{background:#f4f8fc}.ac-table .student{position:sticky;left:0;z-index:1;min-width:285px;max-width:320px;text-align:left;background:#fff}.ac-table tbody tr:nth-child(even) td.student{background:#fbfcfe}.ac-table tbody tr:hover td.student{background:#f4f8fc}.ac-table th.student{z-index:3;background:#123f78}.ac-table td.student b{display:block;font-size:14px;line-height:1.3;color:#092f61}.ac-table td.student small{display:block;color:#8b5c00;margin-top:4px}
.ac-grade{display:inline-block;min-width:56px;padding:7px 10px;border-radius:999px;font-size:13px;font-weight:900}.ac-grade.superior,.ac-performance.superior{background:#d9f4e7;color:#08795f}.ac-grade.alto,.ac-performance.alto{background:#e2efff;color:#155c9d}.ac-grade.basico,.ac-performance.basico{background:#fff0b9;color:#8b6500}.ac-grade.bajo,.ac-performance.bajo{background:#ffe0dc;color:#a6332b}.ac-grade.none,.ac-performance.none{background:#eef2f5;color:#718096}.ac-performance{display:inline-block;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900}.partial{display:block;font-size:10px;color:#7d8791;margin-top:5px}.ac-empty,.ac-error{padding:40px;text-align:center;border-radius:16px;background:#f4f7fa;color:#526779}.ac-error{background:#fff1ef;color:#9f3128}
.ac-student-head{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 22px;margin-bottom:18px;border:1px solid #dbe4ec;border-radius:16px;background:#f8fbfd}.ac-student-head h3{font-size:25px;margin:5px 0;color:#083c78}.ac-student-head p{margin:0;color:#697b8f}.ac-student-head>div:last-child{text-align:right;min-width:180px}.ac-student-head strong{display:block;font-size:32px;color:#083c78;margin:5px 0}.ac-student-table th{min-width:135px}
@media(max-width:1350px){.ac-filters{grid-template-columns:repeat(2,minmax(220px,1fr))}.ac-filters label.wide{grid-column:span 2}.ac-refresh{grid-column:2}}
@media(max-width:1000px){.ac-title{flex-direction:column;align-items:flex-start}.ac-scale{min-width:0;width:100%;max-width:none}.ac-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.ac-title,.ac-tabs,.ac-filters,.ac-body{padding-left:16px;padding-right:16px}.ac-filters,.ac-metrics{grid-template-columns:1fr}.ac-filters label.wide,.ac-refresh{grid-column:auto}.ac-refresh{width:100%;justify-self:stretch}.ac-tabs{overflow:auto}.ac-student-head{align-items:flex-start;flex-direction:column}.ac-student-head>div:last-child{text-align:left}.ac-table .student{min-width:235px}.ac-table th{min-width:135px}}

/* FIX 2026-10-19: mantener fija la columna ESTUDIANTE dentro del scroll horizontal */
.ac-table-wrap{
  position:relative !important;
  overflow:auto !important;
  isolation:isolate !important;
}
.ac-table{
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.ac-table th.student,
.ac-table td.student{
  position:sticky !important;
  left:0 !important;
  width:300px !important;
  min-width:300px !important;
  max-width:300px !important;
  box-sizing:border-box !important;
}
.ac-table th.student{
  z-index:20 !important;
  background:#123f78 !important;
  box-shadow:8px 0 12px -10px rgba(0,0,0,.5) !important;
}
.ac-table td.student{
  z-index:10 !important;
  background:#fff !important;
  box-shadow:8px 0 12px -10px rgba(9,47,97,.35) !important;
}
.ac-table tbody tr:nth-child(even) td.student{
  background:#fbfcfe !important;
}
.ac-table tbody tr:hover td.student{
  background:#f4f8fc !important;
}
@media(max-width:700px){
  .ac-table th.student,
  .ac-table td.student{
    width:240px !important;
    min-width:240px !important;
    max-width:240px !important;
  }
}

/* FIX DEFINITIVO: la tabla debe desplazarse dentro de su propio contenedor,
   no desplazar toda la página. Así position:sticky puede fijar ESTUDIANTE. */
#view-consolidado,
#academic-consolidated,
.ac-shell,
.ac-body { min-width:0 !important; max-width:100% !important; }
#view-consolidado { overflow-x:hidden !important; }
.ac-table-wrap {
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow-x:auto !important;
  overflow-y:auto !important;
  position:relative !important;
  -webkit-overflow-scrolling:touch;
  contain:layout paint;
}
.ac-table {
  width:max-content !important;
  min-width:100% !important;
  max-width:none !important;
  table-layout:auto !important;
}
.ac-table th.student,
.ac-table td.student {
  position:-webkit-sticky !important;
  position:sticky !important;
  left:0 !important;
}
.ac-table th.student {
  z-index:30 !important;
  background:#123f78 !important;
}
.ac-table td.student {
  z-index:20 !important;
  background:#fff !important;
  box-shadow:6px 0 10px -8px rgba(9,47,97,.65) !important;
}
.ac-table tbody tr:nth-child(even) td.student { background:#fbfcfe !important; }
.ac-table tbody tr:hover td.student { background:#f4f8fc !important; }


/* 2026-10-19 - columna ESTUDIANTE realmente fija por panel independiente.
   No depende de position:sticky: nombres y calificaciones son paneles hermanos. */
#view-consolidado,
#academic-consolidated,
#view-consolidado .ac-shell,
#view-consolidado .ac-body{
  min-width:0 !important;
  max-width:100% !important;
  overflow-x:hidden !important;
}
.ac-split-table{
  display:grid !important;
  grid-template-columns:300px minmax(0,1fr) !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  border:1px solid #dbe4ec;
  border-radius:16px;
  overflow:hidden !important;
  background:#fff;
}
.ac-fixed-pane{
  width:300px !important;
  min-width:300px !important;
  max-width:300px !important;
  overflow:hidden !important;
  position:relative;
  z-index:5;
  background:#fff;
  box-shadow:8px 0 14px -12px rgba(9,47,97,.7);
}
.ac-data-pane{
  min-width:0 !important;
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  position:relative;
  z-index:1;
  scrollbar-gutter:stable;
}
.ac-fixed-table,
.ac-data-table{
  border-collapse:collapse !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
  margin:0 !important;
}
.ac-fixed-table{width:300px !important;}
.ac-data-table{width:max-content !important;min-width:100% !important;}
.ac-fixed-table thead th,
.ac-data-table thead th{
  height:72px !important;
  box-sizing:border-box !important;
  background:#123f78 !important;
  color:#fff !important;
  padding:10px 12px !important;
  font-size:11px !important;
  line-height:1.2 !important;
  vertical-align:middle !important;
}
.ac-fixed-table thead th{
  width:300px !important;
  text-align:left !important;
  padding-left:18px !important;
}
.ac-data-table thead th{
  width:165px !important;
  min-width:165px !important;
  text-align:center !important;
}
.ac-data-table thead th span{
  display:block;
  margin-top:5px;
  font-weight:600;
  line-height:1.2;
}
.ac-fixed-table tbody tr,
.ac-data-table tbody tr{
  height:58px !important;
}
.ac-fixed-table tbody td,
.ac-data-table tbody td{
  height:58px !important;
  box-sizing:border-box !important;
  border-top:1px solid #e7edf3 !important;
  background:#fff;
  vertical-align:middle !important;
}
.ac-fixed-table tbody td{
  width:300px !important;
  padding:10px 18px !important;
  text-align:left !important;
  overflow:hidden;
}
.ac-fixed-table tbody td b{
  display:block;
  color:#092f61;
  font-size:14px;
  line-height:1.25;
  white-space:normal;
}
.ac-fixed-table tbody td small{
  display:block;
  margin-top:3px;
  color:#8b5c00;
  font-size:10px;
}
.ac-data-table tbody td{
  width:165px !important;
  min-width:165px !important;
  padding:10px 12px !important;
  text-align:center !important;
}
.ac-fixed-table tbody tr:nth-child(even) td,
.ac-data-table tbody tr:nth-child(even) td{background:#fbfcfe;}
.ac-fixed-table tbody tr:hover td,
.ac-data-table tbody tr:hover td{background:#f4f8fc;}
@media(max-width:900px){
  .ac-split-table{grid-template-columns:230px minmax(0,1fr) !important;}
  .ac-fixed-pane,.ac-fixed-table{width:230px !important;min-width:230px !important;max-width:230px !important;}
  .ac-fixed-table thead th,.ac-fixed-table tbody td{width:230px !important;}
}
