:root { --bg: #f5f7fb; --card: #fff; --ink: #172033; --muted: #667085; --primary: #263d66; --accent: #e8eef8; --danger: #a61b1b; --ok: #176b3a; }
* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--bg); color: var(--ink); }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
nav, .topbar { background: var(--primary); color: white; padding: .7rem 1rem; display: flex; gap: 1rem; align-items: center; flex-wrap: nowrap; }
nav a { color: white; font-weight: 600; }
nav .brand { font-weight: 800; margin-right: .8rem; white-space: nowrap; }
.nav-left { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.nav-right { margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: .45rem; flex-wrap: wrap; }
.logged-user { display: inline-block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: .32rem .6rem; border-radius: 999px; background: rgba(255,255,255,.12); font-weight: 800; }
.nav-pill { display: inline-block; padding: .32rem .58rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.10); color: white; font-weight: 800; white-space: nowrap; }
.nav-pill:hover { background: rgba(255,255,255,.20); text-decoration: none; }
.nav-pill-light { background: rgba(255,255,255,.18); }
main { max-width: 1180px; margin: 1.5rem auto; padding: 0 1rem; }
.card { background: var(--card); border-radius: 14px; padding: 1rem; box-shadow: 0 6px 22px rgba(23,32,51,.07); margin-bottom: 1rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; }
.stats { font-size: 1.8rem; font-weight: 800; }
.muted { color: var(--muted); }
.badge { display: inline-block; padding: .2rem .55rem; border-radius: 999px; background: var(--accent); font-size: .83rem; font-weight: 700; }
.badge.ok { background: #e4f7eb; color: var(--ok); }
.badge.danger { background: #ffe7e7; color: var(--danger); }
table { width: 100%; border-collapse: collapse; background: white; }
th, td { padding: .65rem; border-bottom: 1px solid #edf0f5; text-align: left; vertical-align: top; }
th { background: #f0f3f9; }
label { display: block; font-weight: 700; margin: .65rem 0 .25rem; }
input, select, textarea { width: 100%; padding: .62rem; border: 1px solid #ccd3df; border-radius: 10px; font: inherit; }
textarea { min-height: 110px; }
button, .button { display: inline-block; border: 0; border-radius: 10px; padding: .55rem .85rem; background: var(--primary); color: white; font-weight: 700; cursor: pointer; margin: .15rem .1rem; }
.button.secondary, button.secondary { background: #667085; }
.button.danger, button.danger { background: var(--danger); }
.button.ok, button.ok { background: var(--ok); }
.inline { display: inline; }
.inline button { width: auto; }
.flash { padding: .7rem 1rem; border-radius: 12px; margin: .5rem 0; background: #edf7ff; }
.flash.success { background: #e4f7eb; }
.flash.danger { background: #ffe7e7; }
.flash.warning { background: #fff7df; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 980px) {
  nav, .topbar { display: block; }
  nav a { display: inline-block; margin: .25rem .35rem .25rem 0; }
  .nav-left { display: block; }
  .nav-right { margin-left: 0; margin-top: .55rem; justify-content: flex-start; }
  .logged-user { max-width: min(320px, calc(100vw - 2rem)); }
}
@media (max-width: 760px) { .two { grid-template-columns: 1fr; } }
.small { font-size: .9rem; }
hr { border: 0; border-top: 1px solid #e5e9f0; margin: 1rem 0; }

/* v16: tablas administrativas anchas sin desbordar la pantalla */
main { max-width: min(1600px, calc(100vw - 2rem)); }
.card-wide { overflow: hidden; }
.table-scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
}
.table-scroll table {
  margin: 0;
}
.admin-evaluation-table {
  font-size: .92rem;
  line-height: 1.22;
  table-layout: fixed;
  min-width: 1180px;
}
.admin-evaluation-table th,
.admin-evaluation-table td {
  padding: .52rem .55rem;
  overflow-wrap: anywhere;
  word-break: normal;
}
.admin-registrations-table th:nth-child(1),
.admin-registrations-table td:nth-child(1) { width: 130px; }
.admin-registrations-table th:nth-child(2),
.admin-registrations-table td:nth-child(2) { width: 175px; }
.admin-registrations-table th:nth-child(3),
.admin-registrations-table td:nth-child(3) { width: 255px; }
.admin-registrations-table th:nth-child(4),
.admin-registrations-table td:nth-child(4) { width: 150px; }
.admin-registrations-table th:nth-child(5),
.admin-registrations-table td:nth-child(5) { width: 95px; }
.admin-registrations-table th:nth-child(6),
.admin-registrations-table td:nth-child(6) { width: 145px; }
.admin-registrations-table th:nth-child(7),
.admin-registrations-table td:nth-child(7) { width: 180px; }
.admin-registrations-table th:nth-child(8),
.admin-registrations-table td:nth-child(8) { width: 140px; }
.admin-registrations-table th:nth-child(9),
.admin-registrations-table td:nth-child(9) { width: 85px; }
.admin-recorded-table th:nth-child(1),
.admin-recorded-table td:nth-child(1) { width: 135px; }
.admin-recorded-table th:nth-child(2),
.admin-recorded-table td:nth-child(2) { width: 210px; }
.admin-recorded-table th:nth-child(3),
.admin-recorded-table td:nth-child(3) { width: 95px; }
.admin-recorded-table th:nth-child(4),
.admin-recorded-table td:nth-child(4) { width: 190px; }
.admin-recorded-table th:nth-child(5),
.admin-recorded-table td:nth-child(5) { width: 210px; }
.admin-recorded-table th:nth-child(6),
.admin-recorded-table td:nth-child(6) { width: 120px; }
.admin-recorded-table th:nth-child(7),
.admin-recorded-table td:nth-child(7) { width: 80px; }
.admin-recorded-table th:nth-child(8),
.admin-recorded-table td:nth-child(8) { width: 135px; }
.admin-recorded-table th:nth-child(9),
.admin-recorded-table td:nth-child(9) { width: 105px; }
.cell-nowrap { white-space: nowrap; overflow-wrap: normal; }
.cell-title { overflow-wrap: break-word; hyphens: auto; }
.cell-person { overflow-wrap: break-word; }
.badge.warn { background: #eef3ff; color: #263d66; }
@media (max-width: 980px) {
  main { max-width: 100%; }
  .admin-evaluation-table { min-width: 1050px; }
}

/* v19: selector de rol activo y edición de roles múltiples */
.role-switch-form { margin: 0; display: inline-flex; align-items: center; }
.role-switch-form select {
  width: auto;
  min-width: 145px;
  padding: .32rem 1.8rem .32rem .6rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.45);
  background: rgba(255,255,255,.12);
  color: white;
  font-weight: 800;
}
.role-switch-form option { color: var(--ink); background: white; }
.active-role-badge {
  display: inline-block;
  padding: .32rem .6rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  color: white;
  font-weight: 800;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.role-checks { display: flex; gap: .55rem .85rem; flex-wrap: wrap; margin: .25rem 0 .55rem; }
.check-inline { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; margin: 0; }
.check-inline input { width: auto; }
.role-checks-compact { margin: 0; }
.compact-role-form { margin: 0; }
.users-table { min-width: 980px; }
.users-table select { min-width: 150px; }
.small-button { padding: .42rem .65rem; font-size: .9rem; }
.role-active-row { display: flex; gap: .45rem; align-items: center; flex-wrap: wrap; margin-top: .45rem; }
.role-active-row select { width: auto; }

/* v20: menú compacto de usuario a la derecha */
.nav-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .45rem;
  flex-wrap: nowrap;
  position: relative;
}
.user-menu {
  position: relative;
  display: inline-block;
}
.user-menu-summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  max-width: 390px;
  padding: .36rem .55rem .36rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.24);
  color: white;
  cursor: pointer;
  user-select: none;
  font-weight: 800;
  line-height: 1;
}
.user-menu-summary:hover,
.user-menu[open] .user-menu-summary {
  background: rgba(255,255,255,.20);
  text-decoration: none;
}
.user-menu-summary::-webkit-details-marker { display: none; }
.user-menu-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 220px;
}
.user-menu-role-chip {
  display: inline-flex;
  align-items: center;
  max-width: 145px;
  padding: .22rem .5rem;
  border-radius: 999px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.26);
  font-size: .88rem;
  white-space: nowrap;
}
.user-menu-caret {
  font-size: .9rem;
  opacity: .9;
}
.user-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + .55rem);
  min-width: 285px;
  max-width: min(360px, calc(100vw - 2rem));
  padding: .75rem;
  border-radius: 14px;
  background: white;
  color: var(--ink);
  box-shadow: 0 16px 38px rgba(23,32,51,.24);
  z-index: 1000;
}
.user-menu-header {
  padding: .25rem .25rem .65rem;
  border-bottom: 1px solid #e8edf5;
  margin-bottom: .65rem;
}
.user-menu-header strong,
.user-menu-header span {
  display: block;
}
.user-menu-header span {
  color: var(--muted);
  font-size: .92rem;
  margin-top: .15rem;
  overflow-wrap: anywhere;
}
.user-menu-role-form {
  margin: 0 0 .6rem;
}
.user-menu-role-form label {
  margin: 0 0 .3rem;
  color: var(--muted);
  font-size: .9rem;
}
.user-menu-role-form select {
  width: 100%;
  color: var(--ink);
  background: white;
  border: 1px solid #ccd3df;
  border-radius: 10px;
  padding: .55rem .65rem;
  font-weight: 700;
}
.user-menu-role-static {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  margin-bottom: .6rem;
  color: var(--muted);
}
.user-menu-role-static strong {
  color: var(--ink);
}
.user-menu-separator {
  height: 1px;
  background: #e8edf5;
  margin: .55rem 0;
}
.user-menu-link {
  display: block;
  padding: .58rem .65rem;
  border-radius: 10px;
  color: var(--ink);
  font-weight: 750;
}
.user-menu-link:hover {
  background: #f2f5fa;
  color: var(--primary);
  text-decoration: none;
}
.user-menu-link-danger {
  color: var(--danger);
}
@media (max-width: 980px) {
  .nav-right { justify-content: flex-start; flex-wrap: nowrap; }
  .user-menu-panel { position: static; margin-top: .55rem; max-width: 100%; }
  .user-menu-name { max-width: min(190px, calc(100vw - 12rem)); }
}

/* v22: panel principal contextual por rol activo */
.dashboard-scope { margin-top: -.65rem; margin-bottom: 1.2rem; }
.dashboard-stats-grid .dashboard-stat-card { min-height: 104px; }
.dashboard-main-grid { align-items: start; }
.task-list { display: grid; gap: .65rem; }
.task-item {
  display: grid;
  grid-template-columns: 54px 1fr auto;
  gap: .8rem;
  align-items: center;
  padding: .72rem;
  border: 1px solid #e8edf5;
  border-radius: 12px;
  background: #fbfcff;
}
.task-count {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: var(--accent);
  color: var(--primary);
  font-weight: 900;
  font-size: 1.25rem;
}
.task-title { font-weight: 850; margin-bottom: .12rem; }
.task-action { white-space: nowrap; }
.quick-links { display: flex; flex-wrap: wrap; gap: .35rem; }
@media (max-width: 760px) {
  .task-item { grid-template-columns: 44px 1fr; }
  .task-action { grid-column: 1 / -1; }
  .task-action .button { width: 100%; text-align: center; }
}

/* v27: columna compacta de Matrícula de Honor en vista administrativa */
.mh-combo-head,
.mh-combo-cell {
  text-align: center;
}
.mh-subgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(34px, 1fr));
  gap: .25rem;
  align-items: center;
  justify-items: center;
  min-width: 126px;
}
.mh-subgrid-head {
  margin-top: .25rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}
.mh-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 28px;
  border-radius: 8px;
  font-weight: 900;
  line-height: 1;
}
.mh-yes {
  color: var(--ok);
  background: #e4f7eb;
}
.mh-no {
  color: var(--muted);
}
.mh-final-form {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mh-final-form input[type="checkbox"] {
  width: 18px;
  height: 18px;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
.admin-registrations-table th:nth-child(9),
.admin-registrations-table td:nth-child(9) { width: 150px; }

.dashboard-messages-card .message-list {
  display: grid;
  gap: 14px;
}

.message-item {
  border: 1px solid #edf0f5;
  border-radius: 14px;
  padding: 14px 16px;
  background: #fbfcff;
}

.message-item h3 {
  margin: 0 0 8px 0;
  font-size: 1rem;
}

.message-item p {
  margin: 0 0 6px 0;
  white-space: pre-wrap;
}

/* v34: cabeceras de evaluaciones administrativas más limpias, con scroll horizontal */
.admin-registrations-table-wide {
  table-layout: fixed;
  min-width: 1720px;
}

.admin-registrations-table-wide th {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
  vertical-align: bottom;
}

.admin-registrations-table-wide th:nth-child(1),
.admin-registrations-table-wide td:nth-child(1) { width: 125px; }
.admin-registrations-table-wide th:nth-child(2),
.admin-registrations-table-wide td:nth-child(2) { width: 180px; }
.admin-registrations-table-wide th:nth-child(3),
.admin-registrations-table-wide td:nth-child(3) { width: 310px; }
.admin-registrations-table-wide th:nth-child(4),
.admin-registrations-table-wide td:nth-child(4) { width: 185px; }
.admin-registrations-table-wide th:nth-child(5),
.admin-registrations-table-wide td:nth-child(5) { width: 95px; }
.admin-registrations-table-wide th:nth-child(6),
.admin-registrations-table-wide td:nth-child(6) { width: 170px; }
.admin-registrations-table-wide th:nth-child(7),
.admin-registrations-table-wide td:nth-child(7) { width: 145px; }
.admin-registrations-table-wide th:nth-child(8),
.admin-registrations-table-wide td:nth-child(8) { width: 195px; }
.admin-registrations-table-wide th:nth-child(9),
.admin-registrations-table-wide td:nth-child(9) { width: 150px; }
.admin-registrations-table-wide th:nth-child(10),
.admin-registrations-table-wide td:nth-child(10) { width: 170px; }
.admin-registrations-table-wide th:nth-child(11),
.admin-registrations-table-wide td:nth-child(11) { width: 90px; }

.admin-registrations-table-wide .cell-center,
.admin-registrations-table-wide .mh-combo-head,
.admin-registrations-table-wide .mh-combo-cell {
  text-align: center;
}

.admin-registrations-table-wide .mh-combo-head > div:first-child {
  font-size: 1rem;
  font-weight: 800;
  margin-bottom: .2rem;
}

.admin-registrations-table-wide .mh-subgrid {
  min-width: 138px;
  grid-template-columns: repeat(3, minmax(36px, 1fr));
  gap: .35rem;
}

.admin-registrations-table-wide .mh-subgrid-head {
  margin-top: 0;
  font-size: .76rem;
  color: var(--muted);
}

.admin-registrations-table-wide .mh-subgrid-head span {
  white-space: nowrap;
}

.admin-registrations-table-wide .inline-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  margin: 0;
  font-weight: 700;
}

.admin-registrations-table-wide .inline-check input {
  width: auto;
  margin: 0;
}

.admin-registrations-table-wide td:nth-child(9),
.admin-registrations-table-wide td:nth-child(10),
.admin-registrations-table-wide td:nth-child(11) {
  vertical-align: middle;
}

@media (max-width: 980px) {
  .admin-registrations-table-wide {
    min-width: 1600px;
  }
}


/* v35: evaluación administrativa compacta y columnas seleccionables */
.admin-eval-filter-form {
  display: grid;
  grid-template-columns: minmax(220px, 340px) 1fr auto auto auto;
  gap: .7rem;
  align-items: end;
}
.admin-eval-filter-form label { margin-top: 0; }
.column-selector {
  border: 1px solid #e2e7f0;
  border-radius: 12px;
  padding: .55rem .7rem;
  background: #fbfcff;
}
.column-selector summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--primary);
}
.column-selector-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .9rem;
  margin-top: .65rem;
}
.admin-evaluations-compact-table {
  min-width: 1320px;
}
.admin-evaluations-compact-table th,
.admin-evaluations-compact-table td {
  overflow-wrap: normal;
}
.admin-evaluations-compact-table .eval-combo-head,
.admin-evaluations-compact-table .eval-combo-cell,
.admin-evaluations-compact-table .mh-combo-head,
.admin-evaluations-compact-table .mh-combo-cell,
.admin-evaluations-compact-table .cell-center {
  text-align: center;
}
.eval-subgrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(42px, 1fr));
  gap: .35rem;
  align-items: center;
  justify-items: center;
  min-width: 150px;
}
.eval-subgrid-head {
  margin-top: .25rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}
.eval-final-score {
  font-weight: 900;
}
.summary-report-inline-form {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  flex-wrap: wrap;
  margin: .25rem .2rem;
}
.summary-report-inline-form .check-inline {
  font-weight: 700;
  background: #f6f8fc;
  border: 1px solid #e2e7f0;
  border-radius: 999px;
  padding: .28rem .55rem;
}
@media (max-width: 980px) {
  .admin-eval-filter-form {
    grid-template-columns: 1fr;
  }
  .admin-evaluations-compact-table {
    min-width: 1250px;
  }
}


/* v36: edición por convocatoria, selector de informe bajo botón y columna de acciones */
.summary-report-picker {
  display: inline-block;
  position: relative;
  margin: .15rem .1rem;
  vertical-align: middle;
}
.summary-report-picker > summary {
  list-style: none;
  cursor: pointer;
}
.summary-report-picker > summary::-webkit-details-marker {
  display: none;
}
.summary-report-picker[open] > summary {
  filter: brightness(0.95);
}
.summary-report-options {
  margin-top: .55rem;
  min-width: 280px;
  max-width: min(420px, calc(100vw - 2rem));
  padding: .75rem;
  border: 1px solid #e2e7f0;
  border-radius: 14px;
  background: white;
  box-shadow: 0 12px 30px rgba(23,32,51,.16);
  z-index: 20;
}
.summary-report-options .check-inline {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: .35rem 0;
}
.summary-report-options .check-inline input {
  width: auto;
}
.inline-details .summary-report-options {
  position: absolute;
}
.admin-eval-filter-form .summary-report-picker .summary-report-options {
  position: absolute;
}
.call-edit-settings-form,
.inline-form {
  gap: .6rem;
  align-items: center;
  flex-wrap: wrap;
}
.col-actions,
.cell-actions {
  min-width: 170px;
}
.cell-actions a {
  display: inline-block;
  margin: .08rem 0;
  white-space: nowrap;
}
.admin-evaluations-compact-table {
  min-width: 1420px;
}
.admin-registrations-table-wide th:nth-child(11),
.admin-registrations-table-wide td:nth-child(11) {
  width: 175px;
}
@media (max-width: 980px) {
  .summary-report-picker {
    display: block;
    margin: .4rem 0;
  }
  .inline-details .summary-report-options,
  .admin-eval-filter-form .summary-report-picker .summary-report-options {
    position: static;
    box-shadow: none;
  }
}

/* v40: vista tabular conjunta de evaluación de tribunal */
.tribunal-matrix-scroll {
  max-height: 72vh;
  overflow: auto;
  border: 1px solid #e2e7f0;
  border-radius: 14px;
}
.tribunal-matrix-table {
  min-width: 1050px;
  border-collapse: separate;
  border-spacing: 0;
}
.tribunal-matrix-table th,
.tribunal-matrix-table td {
  vertical-align: top;
  border-bottom: 1px solid #e8edf5;
  border-right: 1px solid #eef2f7;
}
.tribunal-matrix-table thead th {
  position: sticky;
  top: 0;
  z-index: 4;
  background: #f6f8fc;
}
.matrix-sticky {
  position: sticky;
  left: 0;
  z-index: 3;
  background: white;
  min-width: 310px;
  max-width: 380px;
}
.tribunal-matrix-table thead .matrix-sticky {
  z-index: 5;
  background: #f6f8fc;
}
.matrix-criterion-head {
  width: 320px;
}
.matrix-tfm-head {
  min-width: 230px;
  max-width: 260px;
}
.matrix-turn {
  font-size: 1rem;
  font-weight: 900;
  color: var(--primary);
}
.matrix-student {
  font-weight: 800;
  margin-top: .15rem;
}
.matrix-title {
  margin-top: .15rem;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.matrix-meta {
  margin-top: .4rem;
  display: flex;
  gap: .35rem;
  flex-wrap: wrap;
  align-items: center;
}
.matrix-section-row td {
  background: #edf2fb;
  color: #1f2a44;
  font-weight: 900;
}
.matrix-section-row .matrix-sticky {
  max-width: none;
}
.matrix-criterion-cell {
  font-size: .92rem;
  line-height: 1.3;
}
.matrix-score-cell input {
  width: 100%;
  min-width: 95px;
}
.matrix-score-cell textarea {
  width: 100%;
  min-height: 58px;
  margin-top: .4rem;
  resize: vertical;
  font-size: .86rem;
}
.matrix-global-comments {
  min-height: 96px !important;
}
.matrix-locked-cell {
  background: #f8fafc;
}
.matrix-locked-cell input,
.matrix-locked-cell textarea {
  color: #667085;
  background: #f1f4f9;
}
.matrix-total-row td {
  background: #f6f8fc;
  font-weight: 900;
}
.matrix-total-cell {
  text-align: center;
  vertical-align: middle !important;
}
.matrix-actions {
  margin-top: 1rem;
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  align-items: center;
}
@media (max-width: 980px) {
  .matrix-sticky {
    min-width: 250px;
  }
  .matrix-tfm-head {
    min-width: 210px;
  }
}

/* v41: accesos desde evaluaciones e iconos de información en la vista tabular */
.info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  margin-left: .35rem;
  border-radius: 999px;
  border: 1px solid #9aa8bd;
  color: #475467;
  background: #fff;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
  cursor: help;
  vertical-align: middle;
}
.info-icon:hover,
.info-icon:focus {
  background: #eef4ff;
  border-color: var(--primary);
  color: var(--primary);
  outline: none;
}
.matrix-tfm-head {
  min-width: 170px;
  max-width: 190px;
  text-align: center;
}
.matrix-turn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .2rem;
}
.matrix-meta {
  justify-content: center;
}
@media (max-width: 980px) {
  .matrix-tfm-head {
    min-width: 165px;
  }
}

/* v42: vista tabular compacta de evaluación */
.tribunal-matrix-compact-scroll {
  max-height: 76vh;
}
.tribunal-matrix-compact-table {
  min-width: 760px;
  table-layout: fixed;
}
.tribunal-matrix-compact-table th,
.tribunal-matrix-compact-table td {
  padding: .55rem .6rem;
}
.tribunal-matrix-compact-table .matrix-sticky {
  min-width: 235px;
  max-width: 300px;
  width: 260px;
}
.tribunal-matrix-compact-table .matrix-criterion-head {
  width: 260px;
}
.tribunal-matrix-compact-table .matrix-tfm-head,
.tribunal-matrix-compact-table .matrix-tfm-head-compact {
  min-width: 170px;
  max-width: 210px;
  width: 185px;
  text-align: center;
  vertical-align: middle;
}
.matrix-tfm-head-compact {
  white-space: nowrap;
}
.matrix-turn-compact-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .32rem;
  width: 100%;
  min-width: 0;
}
.matrix-student-short-label {
  display: inline-block;
  min-width: 0;
  max-width: 118px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 850;
  color: #1f2a44;
  font-size: .86rem;
  line-height: 1.1;
}
.matrix-turn-label {
  display: inline-block;
  font-weight: 900;
  color: var(--primary);
  font-size: .98rem;
}
.matrix-info-icon {
  flex: 0 0 auto;
}
.matrix-section-row-compact td,
.matrix-section-row-compact .matrix-sticky {
  padding: .42rem .6rem;
  background: #edf2fb;
  color: #1f2a44;
  font-weight: 900;
  line-height: 1.15;
  max-width: none;
}
.matrix-section-title-cell {
  white-space: nowrap;
}
.matrix-criterion-cell-compact {
  font-size: .9rem;
  line-height: 1.2;
  vertical-align: middle !important;
}
.matrix-criterion-cell-compact strong {
  display: inline;
}
.matrix-score-cell-compact {
  padding: .45rem .55rem !important;
  vertical-align: middle !important;
}
.matrix-score-cell-compact input {
  width: 100%;
  min-width: 78px;
  padding: .48rem .55rem;
  text-align: center;
}
.matrix-score-cell-compact textarea {
  width: 100%;
  min-height: 38px;
  margin-top: .3rem;
  padding: .45rem .55rem;
  resize: vertical;
  font-size: .82rem;
}
.matrix-global-comments-compact {
  min-height: 58px !important;
}
.matrix-total-row-compact td {
  padding-top: .55rem;
  padding-bottom: .55rem;
}
@media (max-width: 980px) {
  .tribunal-matrix-compact-table .matrix-sticky {
    min-width: 210px;
    width: 230px;
  }
  .tribunal-matrix-compact-table .matrix-tfm-head,
  .tribunal-matrix-compact-table .matrix-tfm-head-compact {
    min-width: 150px;
    width: 160px;
  }
}

/* v43: tooltip visible para los iconos de información de la vista tabular */
.matrix-floating-tooltip {
  position: fixed;
  z-index: 99999;
  max-width: min(460px, calc(100vw - 24px));
  padding: .65rem .75rem;
  border-radius: 10px;
  border: 1px solid #d0d7e2;
  background: #101828;
  color: #fff;
  box-shadow: 0 14px 34px rgba(16, 24, 40, .22);
  font-size: .86rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: pre-line;
  pointer-events: none;
}
.js-tooltip {
  user-select: none;
}


/* v44: cabeceras compactas con turno + alumno/a abreviado */
@media (max-width: 980px) {
  .matrix-student-short-label {
    max-width: 92px;
  }
}

/* v45: selección final de informe favorable MH dentro de evaluación */
.evaluation-result-card {
  background: #fbfcff;
}
.honors-choice,
.matrix-honors-choice {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 800;
  margin: .35rem 0;
}
.honors-choice input,
.matrix-honors-choice input {
  width: auto;
  min-width: 18px;
  min-height: 18px;
  padding: 0;
}
.honors-choice input:disabled + span,
.matrix-honors-choice input:disabled + span {
  color: var(--muted);
}
.matrix-honors-row td {
  background: #fbfcff;
}
.matrix-honors-cell {
  text-align: center;
}
.matrix-honors-note {
  margin-top: .15rem;
  line-height: 1.15;
}

.conditional-new-field {
  margin-top: .65rem;
  padding: .8rem;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  background: #f8fafc;
}
.conditional-new-field[hidden] {
  display: none !important;
}

/* v61: estados de asignación en borrador */
.badge.warning { background: #fff7df; color: #8a5a00; }
.subtle-card { background: #f8fafc; border: 1px solid #e5e9f0; }

/* v77: alineación de checkboxes en formularios */
.inline-check {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .5rem;
  width: auto;
  margin: .65rem 0 .25rem;
  font-weight: 800;
}

.inline-check input[type="checkbox"] {
  width: auto;
  min-width: auto;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

.compact-card .inline-check {
  margin-top: 0;
}

/* BEGIN v93c proposals filter layout */
.proposal-filters-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.proposal-filters-search {
  width: 100%;
}

.proposal-filters-search input[type="text"] {
  width: 100%;
}

.proposal-filters-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
  align-items: start;
}

.proposal-filters-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-self: start;
}

.proposal-filters-actions .button,
.proposal-filters-actions button {
  width: 100%;
}

@media (max-width: 900px) {
  .proposal-filters-grid {
    grid-template-columns: 1fr;
  }
}
/* END v93c proposals filter layout */
