/* Registro por colegio: cascada de colegio, docente con código de adopción, estudiante pendiente y «Mis cursos» */
.reg-full { grid-column: 1 / -1; }
.reg-grid label[hidden] { display: none; }
.reg-grid select:disabled { opacity: .55; }

/* Docente */
.doc-colegio { margin: 0 0 4px; font: 700 1.45rem/1.15 "Fraunces", Georgia, serif; color: #1c2433; }
.doc-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; border-radius: 16px; background: #f1eee4; }
.doc-tab { padding: 10px; border: 0; border-radius: 12px; background: none; font: 700 .95rem "Montserrat", sans-serif; color: #5a6274; cursor: pointer; }
.doc-tab.is-on { background: #fff; color: #1c2433; box-shadow: 0 4px 10px -6px rgba(0, 0, 0, .35); }
form.reg-grid[hidden] { display: none; }

/* Estudiante pendiente */
.gate-user { align-self: flex-end; }
.pend-cover { position: relative; flex: none; }
.pend-cover img { width: 86px; display: block; border-radius: 4px 10px 10px 4px; filter: grayscale(.7) brightness(.8); box-shadow: 0 12px 24px -12px rgba(0, 0, 0, .5); }
.pend-cover span { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2rem; }
.pend-note { color: #b26a00; }
.pend-cursos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.pend-curso {
  display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 2px solid #e2dccb; border-radius: 16px;
  background: #fff; text-align: left; cursor: pointer; font-family: "Montserrat", sans-serif; transition: border-color .15s, transform .15s;
}
.pend-curso b { font: 800 1.35rem/1 "Baloo 2", sans-serif; color: #1c2433; }
.pend-curso small { color: #5a6274; font-weight: 600; }
.pend-curso:hover { transform: translateY(-2px); border-color: #ffb703; }
.pend-curso.is-on { border-color: #fb8500; background: #fff4e0; box-shadow: 0 0 0 3px rgba(251, 133, 0, .25); }
.pend-confirma[hidden] { display: none; }
.pend-confirma { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 18px; background: #fff4e0; animation: gate-in .4s ease; }
.pend-botones { display: flex; flex-direction: column; gap: 6px; }

/* Pestañas de la biblioteca del docente */
.shelf-tabs { display: inline-flex; gap: 6px; margin-bottom: 18px; padding: 5px; border-radius: 999px; background: rgba(255, 255, 255, .12); }
.shelf-tabs[hidden] { display: none; }
.shelf-tab { padding: 9px 18px; border-radius: 999px; color: #fff; font: 700 .95rem "Montserrat", sans-serif; text-decoration: none; }
.shelf-tab.is-on { background: #fff; color: #1c2433; }
#vista-libros[hidden], #vista-cursos[hidden], .vivo-link[hidden] { display: none; }

/* Mis cursos */
.cur-acciones { margin: 0 0 18px; }
.cur-acciones .big-btn { font-size: 1.05rem; padding: 12px 18px; }
.cur-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.cur-card { padding: 18px; border-radius: 20px; background: #fffdf7; color: #1c2433; box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .6); }
.cur-card header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cur-card h3 { margin: 0; font: 800 1.6rem/1 "Baloo 2", sans-serif; }
.cur-card .user-out { background: #f1eee4; }
.cur-libros-mini { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 6px; }
.cur-libro { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 10px 4px 4px; border-radius: 10px; background: #f1eee4; font: 600 .8rem "Montserrat", sans-serif; color: #1c2433; }
.cur-libro img { width: 24px; height: 34px; object-fit: cover; border-radius: 3px; }
.cur-n { margin: 8px 0 4px; font: 700 .85rem "Montserrat", sans-serif; color: #5a6274; }
.cur-est { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.cur-est li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-top: 1px solid #eee7d6; }
.cur-est li > span { display: flex; flex-direction: column; min-width: 0; }
.cur-est b { font: 700 .9rem "Montserrat", sans-serif; }
.cur-est small { color: #6b7385; font-size: .76rem; overflow: hidden; text-overflow: ellipsis; }
.cur-est .link-btn { font-size: .78rem; color: #c0392b; }
.cur-est select { padding: 7px 10px; border: 0; border-radius: 10px; background: #fff1d6; font: 700 .82rem "Montserrat", sans-serif; }
.cur-sin { font-style: italic; }
.cur-h { margin: 34px 0 4px; font: 800 1.5rem/1.1 "Baloo 2", sans-serif; }
.cur-ayuda { margin: 0 0 12px; opacity: .85; font-size: .9rem; }
.cur-vacio { padding: 16px; border-radius: 16px; background: rgba(255, 255, 255, .1); }
.cur-pend { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.cur-pend-g, .cur-adop-g { padding: 14px 16px; border-radius: 18px; background: #fffdf7; color: #1c2433; }
.cur-pend-g h4, .cur-adop-g h4 { margin: 0 0 4px; font: 800 1.15rem "Baloo 2", sans-serif; }
.cur-adop { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.cur-adop-g .cur-libros-mini { margin: 6px 0 0; }

.cur-dialog { width: min(620px, 94vw); max-height: 90vh; padding: 22px; border: 0; border-radius: 24px; background: #fffdf7; color: #1c2433; }
.cur-dialog::backdrop { background: rgba(10, 16, 32, .6); backdrop-filter: blur(3px); }
.cur-dialog h2 { margin: 0 0 14px; font: 800 1.6rem "Baloo 2", sans-serif; }
.cur-dialog .cur-ayuda { margin-top: 14px; }
.cur-libros { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.cur-libro-op { display: flex; align-items: center; gap: 10px; padding: 8px; border: 2px solid #e2dccb; border-radius: 14px; cursor: pointer; font: 700 .88rem "Montserrat", sans-serif; }
.cur-libro-op:has(input:checked) { border-color: #fb8500; background: #fff4e0; }
.cur-libro-op img { width: 34px; height: 48px; object-fit: cover; border-radius: 3px; }
.cur-libro-op span { display: flex; flex-direction: column; }
.cur-libro-op small { color: #6b7385; font-weight: 600; font-size: .74rem; }
.cur-libro-op input { width: 18px; height: 18px; accent-color: #fb8500; }
.cur-dialog-pie { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.cur-dialog-pie .big-btn { font-size: 1.05rem; padding: 12px 18px; }
.cur-borrar { margin-right: auto; color: #c0392b; }
@media (max-width: 560px) { .cur-lista, .cur-pend { grid-template-columns: 1fr; } }
.cur-pend-otros { margin-top: 10px; }

/* Selección múltiple en «Mis cursos» */
.cur-todos { display: flex; align-items: center; gap: 8px; margin: 6px 0 2px; font: 700 .8rem "Montserrat", sans-serif; color: #5a6274; cursor: pointer; }
.cur-check { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; cursor: pointer; }
.cur-check > span { display: flex; flex-direction: column; min-width: 0; }
.cur-todos input, .cur-check input { flex: none; width: 18px; height: 18px; accent-color: #fb8500; cursor: pointer; }
.cur-est li.is-sel { background: #fff4e0; margin: 0 -8px; padding-left: 8px; padding-right: 8px; border-radius: 10px; }
.cur-barra {
  position: sticky; top: 8px; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0;
  padding: 8px 10px; border-radius: 12px; background: #1c2433; color: #fff; font: 700 .82rem "Montserrat", sans-serif;
  animation: gate-in .25s ease;
}
.cur-barra[hidden] { display: none; }
.cur-barra [data-cuenta] { margin-right: auto; }
.cur-barra select { padding: 6px 8px; border: 0; border-radius: 8px; font: 700 .82rem "Montserrat", sans-serif; }
.cur-accion { padding: 7px 12px; border: 0; border-radius: 8px; background: linear-gradient(180deg, #ffb703, #fb8500); color: #1c1300; font: 800 .82rem "Montserrat", sans-serif; cursor: pointer; }
.cur-accion.peligro { background: #e35d4f; color: #fff; }
.cur-accion:disabled { opacity: .6; cursor: progress; }
.cur-sin { margin: 2px 0 6px; padding: 8px 10px; border-radius: 10px; background: #fff1d6; color: #8a5a00; font-size: .8rem; font-style: normal; font-weight: 600; line-height: 1.35; }
.cur-check > span small { display: block; white-space: normal; overflow-wrap: anywhere; }

/* Progreso del curso (docente) */
.cur-head-btns { display: flex; gap: 6px; }
.cur-prog { text-decoration: none; background: #fff1d6 !important; }
#vista-progreso[hidden] { display: none; }
.prg-volver {
  display: inline-flex; align-items: center; gap: 8px; margin: 2px 0 14px; padding: 12px 22px 12px 16px;
  border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; background: rgba(10, 14, 24, .45); backdrop-filter: blur(6px);
  color: #fff; font: 700 1.05rem/1 "Montserrat", sans-serif; text-decoration: none; cursor: pointer;
  transition: background .15s, transform .15s;
}
.prg-volver:hover { background: rgba(10, 14, 24, .7); transform: translateX(-2px); }
.prg-volver:focus-visible { outline: 3px solid #ffd166; outline-offset: 3px; }
.prg-libros { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.prg-libro { padding: 8px 14px; border-radius: 999px; background: rgba(255, 255, 255, .12); color: #fff; font: 700 .88rem "Montserrat", sans-serif; text-decoration: none; }
.prg-libro.is-on { background: #fff; color: #1c2433; }
.prg-libro.is-off { opacity: .45; cursor: default; }
.prg-resumen { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 18px; }
.prg-card { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 18px; background: #fffdf7; color: #1c2433; }
.prg-card > span { font: 700 .76rem "Montserrat", sans-serif; color: #6b7385; }
.prg-card > b { font: 800 1.9rem/1 "Baloo 2", sans-serif; }
.prg-dist { grid-column: span 2; }
.prg-dist div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.prg-dist small { color: #6b7385; font-weight: 600; }
.prg-nivel { display: inline-block; width: max-content; padding: 2px 9px; border-radius: 999px; background: var(--n); color: #fff; font: 800 .72rem "Montserrat", sans-serif; font-style: normal; white-space: nowrap; }
.prg-barra { display: block; height: 7px; margin: 4px 0 2px; border-radius: 99px; background: #ece6d6; overflow: hidden; }
.prg-barra > i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #ffb703, #fb8500); }
.prg-wrap { overflow-x: auto; border-radius: 18px; background: #fffdf7; }
.prg-wrap table { width: 100%; border-collapse: collapse; color: #1c2433; font: 500 .86rem "Montserrat", sans-serif; }
.prg-wrap th { position: sticky; top: 0; padding: 12px 10px; background: #f3eee0; text-align: left; font-size: .74rem; color: #5a6274; white-space: nowrap; }
.prg-wrap td { padding: 10px; border-top: 1px solid #eee7d6; vertical-align: top; }
.prg-wrap td small { display: block; color: #6b7385; font-size: .74rem; }
.prg-wrap tbody tr { cursor: pointer; }
.prg-wrap tbody tr:hover, .prg-wrap tbody tr:focus { background: #fff4e0; outline: none; }
.prg-wrap tfoot td { background: #f8f4e8; border-top: 2px solid #e2dccb; }
.prg-wrap td:nth-child(2) { min-width: 120px; }
.prg-av { font-weight: 800; }
.prg-pct { font-weight: 800; color: var(--n); }
.prg-comp { display: inline-flex; align-items: center; gap: 5px; }
.prg-comp::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--c); }
.prg-ord { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
.prg-ord.is-on { color: #1c2433; }
.prg-sin { color: #b26a00; font-weight: 700; font-size: .78rem; }
.prg-nota { margin-top: 12px; opacity: .8; font-size: .8rem; }
@media (max-width: 560px) { .prg-dist { grid-column: auto; } }
/* Activar como independiente (sin curso) */
.pend-indep { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px dashed rgba(0, 0, 0, .15); }
.pend-indep .pend-confirma { width: 100%; text-align: center; }
.pend-indep .pend-botones { align-items: center; }
