/* =====================================================================
   CERPLAS · panel de administración (dashboard)
   Mismo estilo que la portada nueva: azul UNAP, oro y granate,
   EB Garamond (títulos) + Libre Franklin (texto), íconos de línea.
   Se carga DESPUÉS de cerplas.css.
   ===================================================================== */
:root {
  --az-950: #040a18; --az-900: #06112a; --az-800: #0f2a5c; --az-700: #1b3b72; --az-600: #264b8c;
  --az-500: #3560ab; --az-400: #557cc6; --az-300: #83a2dc; --az-200: #b2c7eb; --az-100: #d8e3f5; --az-50: #eef3fb;
  --or-100: #f5e9cf; --or-200: #ecd5a3; --or-300: #dfba70; --or-400: #cc9d47; --or-500: #b3812f; --or-600: #956a25;
  --rojo-600: #7d1625; --rojo-500: #9b1c2c; --rojo-400: #b8323f;
  --texto: #1d2b4a; --tenue: #4e5f80; --apagado: #7c8aa6;
  --linea: rgba(15, 42, 92, .10); --linea-2: rgba(15, 42, 92, .20);
  --fondo: #f6f7fb;
  --f: "Libre Franklin", system-ui, sans-serif;
  --serif: "EB Garamond", Garamond, Georgia, serif;
  --cp-azul: var(--az-800); --cp-ocre: var(--or-500); --cp-titulo: var(--az-800); --cp-texto: var(--texto);
  --cp-fuente: var(--f); --cp-fuente-titulo: var(--serif);
}
body.cp-admin { font: 400 15px/1.6 var(--f); color: var(--texto); min-height: 100vh;
  background: radial-gradient(900px 600px at 10% -5%, rgba(178, 199, 235, .45), transparent 60%), radial-gradient(700px 500px at 100% 100%, rgba(236, 213, 163, .35), transparent 60%), var(--fondo); }
body.cp-admin a { color: var(--az-700); }
.cp-admin h1, .cp-admin h2, .cp-admin h3 { font-family: var(--serif); color: var(--az-800); }

/* ---------- Íconos de línea ---------- */
.ico-l { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 3.4; stroke-linecap: square; stroke-linejoin: miter; overflow: visible; }
.ico-l .ac { stroke: var(--rojo-500); }
.ico-l circle, .ico-l rect[rx] { stroke-linejoin: round; }

/* ---------- Marca ---------- */
.cpa-marca { display: flex; align-items: center; gap: .7rem; text-decoration: none; }
.cpa-marca img { width: 34px; }
.cpa-marca .escudo { width: 38px; }
.cpa-marca .logo-ap { filter: brightness(0) saturate(100%) invert(13%) sepia(62%) saturate(2600%) hue-rotate(212deg) brightness(92%) contrast(98%); }
.cpa-marca .sep { width: 1px; height: 30px; background: var(--linea-2); }
.cpa-marca b { display: block; font: 600 1.15rem/1 var(--serif); letter-spacing: .16em; color: var(--az-800); }
.cpa-marca small { display: block; margin-top: .3rem; font: 600 .58rem var(--f); letter-spacing: .2em; text-transform: uppercase; color: var(--rojo-500); }

/* ---------- Ingreso ---------- */
.cpa-login { min-height: 100vh; display: grid; place-items: center; padding: 2rem 1rem; border-top: 3px solid var(--rojo-500); }
.cpa-login-caja { width: min(440px, 100%); padding: 2.2rem 2rem 1.8rem; border-radius: 20px; background: #fff; border: 1px solid var(--linea); box-shadow: 0 40px 80px -50px rgba(15, 42, 92, .55); }
.cpa-login-caja .cpa-marca { justify-content: center; margin-bottom: 1.6rem; }
.cpa-login-caja h1 { font-size: 1.55rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; text-align: center; margin-bottom: 1.4rem; }

/* ---------- Estructura del dashboard ---------- */
.cpa-app { display: grid; grid-template-columns: 260px minmax(0, 1fr); min-height: 100vh; border-top: 3px solid var(--rojo-500); }
.cpa-lateral { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 1.6rem; padding: 1.6rem 1.1rem; background: rgba(255, 255, 255, .78); backdrop-filter: blur(10px); border-right: 1px solid var(--linea); }
.cpa-lateral .cpa-marca { padding: 0 .5rem; }
.cpa-sec { margin: 0 .6rem .4rem; font: 600 .62rem var(--f); letter-spacing: .2em; text-transform: uppercase; color: var(--apagado); }
.cpa-nav { display: flex; flex-direction: column; gap: .25rem; }
.cpa-nav .nav-link { display: flex; align-items: center; gap: .8rem; width: 100%; padding: .7rem .8rem; border: 1px solid transparent; border-radius: 12px; background: none; color: var(--tenue); font: 500 .9rem var(--f); text-align: left; transition: .2s; }
.cpa-nav .nav-link .ico { display: grid; place-items: center; flex: none; width: 38px; height: 38px; padding: 8px; border-radius: 10px; background: #fff; border: 1px solid var(--linea); color: var(--az-800); transition: .2s; }
.cpa-nav .nav-link:hover { color: var(--az-800); background: var(--az-50); }
.cpa-nav .nav-link.active { color: var(--az-800); font-weight: 600; background: #fff; border-color: var(--linea-2); box-shadow: 0 10px 24px -18px rgba(15, 42, 92, .6); }
.cpa-nav .nav-link.active .ico { background: linear-gradient(135deg, var(--az-500), var(--az-800)); border-color: transparent; color: #fff; }
.cpa-nav .nav-link.active .ico .ac { stroke: var(--or-300); }
.cpa-lateral-pie { margin-top: auto; padding: 1rem .6rem 0; border-top: 1px solid var(--linea); font-size: .8rem; color: var(--apagado); }
.cpa-lateral-pie a { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--az-700); text-decoration: none; }

.cpa-main { min-width: 0; padding: 1.4rem 2rem 3rem; }
.cpa-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; }
.cpa-top .etq { font: 600 .66rem var(--f); letter-spacing: .2em; text-transform: uppercase; color: var(--tenue); }
.cpa-top .etq::before { content: ""; display: inline-block; width: 22px; height: 2px; margin-right: .7rem; vertical-align: middle; background: var(--rojo-400); }
.cpa-top h1 { margin: .35rem 0 0; font-size: clamp(1.7rem, 2.6vw, 2.3rem); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.cpa-usuario { display: flex; align-items: center; gap: .7rem; padding: .35rem .4rem .35rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--linea); }
.cpa-usuario span { font-size: .82rem; color: var(--tenue); }

/* ---------- Tarjetas de resumen ---------- */
.cpa-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.8rem; }
.cpa-stat { position: relative; display: flex; align-items: center; gap: 1rem; padding: 1.15rem 1.2rem; border-radius: 16px; background: #fff; border: 1px solid var(--linea); box-shadow: 0 20px 40px -36px rgba(15, 42, 92, .6); overflow: hidden; }
.cpa-stat::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--az-500); }
.cpa-stat.oro::after { background: var(--or-400); }
.cpa-stat.rojo::after { background: var(--rojo-500); }
.cpa-stat .ico { flex: none; width: 46px; height: 46px; padding: 10px; border-radius: 12px; background: var(--az-50); color: var(--az-800); }
.cpa-stat b { display: block; font: 500 2rem/1 var(--serif); color: var(--az-800); }
.cpa-stat span { display: block; margin-top: .3rem; font: 600 .62rem var(--f); letter-spacing: .16em; text-transform: uppercase; color: var(--tenue); }

/* ---------- Tarjetas de contenido ---------- */
.cpa-tarjeta { border-radius: 18px; background: #fff; border: 1px solid var(--linea); box-shadow: 0 30px 60px -48px rgba(15, 42, 92, .55); }
.cpa-tarjeta-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; padding: 1.2rem 1.4rem; border-bottom: 1px solid var(--linea); }
.cpa-tarjeta-cab h2 { margin: 0; font-size: 1.35rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.cpa-tarjeta-cab p { margin: .15rem 0 0; font-size: .84rem; color: var(--tenue); }
.cpa-tarjeta-cuerpo { padding: 1.2rem 1.4rem; }
.cpa-nota { margin: 1rem 0 0; font-size: .82rem; color: var(--tenue); }

/* Tablas */
.cp-admin .table { margin: 0; font-size: .9rem; color: var(--texto); --bs-table-hover-bg: #faf6ec; }
.cp-admin .table thead th, .cp-admin .table-light th { background: #f2f5fb !important; color: var(--tenue); font: 600 .64rem var(--f); letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid var(--linea-2); padding: .85rem .9rem; }
.cp-admin .table td { padding: .85rem .9rem; border-color: var(--linea); }
.cp-admin .table tbody tr { transition: box-shadow .2s; }
.cp-admin .table-hover tbody tr:hover { box-shadow: inset 3px 0 0 var(--rojo-400); }
.cp-admin .table td.fw-semibold { font-family: var(--serif); font-size: 1.04rem; color: var(--az-800); }
.cp-admin code { color: var(--rojo-500); }

/* Botones (mismo estilo que la portada) */
.cp-admin .btn { border-radius: 10px; font: 600 .8rem var(--f); letter-spacing: .04em; }
.cp-admin .btn-cp { border: 0; color: #fff; background: linear-gradient(135deg, var(--az-500) 0%, var(--az-700) 55%, var(--az-800) 100%); box-shadow: 0 14px 28px -16px rgba(15, 42, 92, .85), inset 0 1px 0 rgba(255, 255, 255, .22); }
.cp-admin .btn-cp:hover, .cp-admin .btn-cp:focus { color: #fff; background: linear-gradient(135deg, var(--az-400) 0%, var(--az-600) 55%, var(--az-800) 100%); transform: translateY(-1px); }
.cp-admin .btn-cp-ocre { border: 0; color: #fff; background: linear-gradient(135deg, var(--or-300), var(--or-500) 60%, var(--or-600)); box-shadow: 0 12px 24px -14px rgba(179, 129, 47, .9); }
.cp-admin .btn-cp-ocre:hover { color: #fff; filter: brightness(1.06); }
.cp-admin .btn-outline-cp { color: var(--az-800); border: 1.5px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, var(--az-300), var(--or-300), var(--rojo-400)) border-box; }
.cp-admin .btn-outline-cp:hover, .cp-admin .btn-outline-cp.active { color: var(--az-800); background: linear-gradient(#fbf8f1, #fbf8f1) padding-box, linear-gradient(135deg, var(--az-500), var(--or-400), var(--rojo-500)) border-box; }
.cp-admin .btn-sm { padding: .4rem .75rem; }
.cp-admin .btn-outline-secondary { border-color: var(--linea-2); color: var(--tenue); }
.cp-admin .btn-outline-light { border-color: var(--linea-2); color: var(--az-800); }
.cp-admin .btn-outline-light:hover { background: var(--az-50); color: var(--az-800); }

/* Formularios */
.cp-admin .form-control, .cp-admin .form-select { border-radius: 10px; border-color: var(--linea-2); color: var(--texto); }
.cp-admin .form-control:focus, .cp-admin .form-select:focus { border-color: var(--or-400); box-shadow: 0 0 0 3px rgba(223, 186, 112, .25); }
.cp-admin .form-label { font: 600 .66rem var(--f); letter-spacing: .14em; text-transform: uppercase; color: var(--tenue); }
.cp-admin .form-check-input:checked { background-color: var(--az-700); border-color: var(--az-700); }

/* Etiquetas de estado */
.cp-admin .cp-badge { font-size: .62rem; letter-spacing: .12em; }

/* Ventana de curso */
.cp-admin .modal-content { border: 0; border-radius: 18px; border-top: 3px solid var(--rojo-500); }
.cp-admin .modal-header { border-color: var(--linea); }
.cp-admin .modal-title { font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.cp-admin .modal-footer { border-color: var(--linea); }

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) { .cpa-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .cpa-app { grid-template-columns: minmax(0, 1fr); }
  .cpa-lateral, .cpa-lateral > div { min-width: 0; }
  .cpa-lateral { position: static; height: auto; gap: 1rem; padding: 1rem; border-right: 0; border-bottom: 1px solid var(--linea); }
  .cpa-sec, .cpa-lateral-pie { display: none; }
  .cpa-nav { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; padding-bottom: .2rem; }
  .cpa-nav .nav-link { width: auto; white-space: nowrap; }
  .cpa-main { padding: 1.2rem 1rem 2.5rem; }
  .cpa-top { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 520px) { .cpa-stats { grid-template-columns: 1fr 1fr; gap: .7rem; } .cpa-stat { padding: .9rem; gap: .7rem; } .cpa-stat .ico { width: 38px; height: 38px; padding: 8px; } .cpa-stat b { font-size: 1.6rem; } }

/* ---------- Sesión y avisos (fuera de las vistas) ---------- */
.cpa-sesion { position: fixed; top: 16px; right: 22px; z-index: 30; display: flex; align-items: center; gap: .7rem; padding: .3rem .35rem .3rem .9rem; border-radius: 999px; background: rgba(255, 255, 255, .92); border: 1px solid var(--linea); box-shadow: 0 10px 24px -18px rgba(15, 42, 92, .6); }
.cpa-sesion span { font-size: .8rem; color: var(--tenue); }
.cpa-aviso { position: relative; z-index: 25; width: min(720px, calc(100% - 32px)); margin: 0 auto; }
.cpa-aviso:not(:empty) { padding-top: 76px; }
@media (max-width: 860px) {
  .cpa-sesion { position: absolute; top: 14px; right: 12px; }
  .cpa-sesion span { display: none; }
}
.cpa-login-caja .btn-cp { padding: .8rem 1rem; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }
.cpa-login-caja .btn-link { color: var(--az-700); font-size: .82rem; }

/* =====================================================================
   RESUMEN CON MEDIDOR CIRCULAR
   ===================================================================== */
.cpa-resumen { margin-bottom: 1.8rem; padding: 1.2rem 1.4rem 1.4rem; border-radius: 22px; background: linear-gradient(160deg, #ffffff, #f3f6fc); border: 1px solid var(--linea); box-shadow: 0 30px 60px -46px rgba(15, 42, 92, .6); }
.cpa-res-cab { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .4rem; }
.cpa-res-cab .etq { font: 600 .66rem var(--f); letter-spacing: .2em; text-transform: uppercase; color: var(--az-800); }
.cpa-res-cab .etq::before { content: ""; display: inline-block; width: 22px; height: 2px; margin-right: .7rem; vertical-align: middle; background: var(--rojo-400); }
.cpa-res-fecha { font-size: .74rem; color: var(--apagado); }
.cpa-res-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 260px minmax(0, 1fr); align-items: center; gap: 1.6rem; }
.cpa-res-col { display: grid; gap: 1rem; }
.cpa-res-col.der .cpa-dato { flex-direction: row-reverse; text-align: right; }
.cpa-dato { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; border-radius: 16px; background: #fff; border: 1px solid var(--linea); }
.cpa-dato .ico { flex: none; width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--az-50); color: var(--az-800); }
.cpa-dato.oro .ico { background: var(--or-100); }
.cpa-dato.rojo .ico { background: #f8e6e8; }
.cpa-dato b { display: block; font: 500 1.9rem/1 var(--serif); color: var(--az-800); }
.cpa-dato span { display: block; margin-top: .3rem; font: 600 .6rem var(--f); letter-spacing: .16em; text-transform: uppercase; color: var(--tenue); }
.cpa-dato.oro b::after, .cpa-dato.rojo b::after { content: ""; display: inline-block; width: 9px; height: 9px; margin-left: .5rem; border-radius: 50%; vertical-align: middle; background: var(--az-500); }
.cpa-res-col.der .cpa-dato b::after { margin: 0 .5rem 0 0; }
.cpa-res-col.der .cpa-dato b { display: flex; flex-direction: row-reverse; align-items: center; justify-content: flex-start; }
.cpa-dato.rojo b::after { background: var(--rojo-500); }

.cpa-dial { position: relative; width: 260px; aspect-ratio: 1; margin: 0 auto; }
.cpa-dial svg { width: 100%; height: 100%; display: block; filter: drop-shadow(0 18px 30px rgba(15, 42, 92, .18)); }
.cpa-dial svg circle[id^="arco"] { stroke-linecap: butt; transition: stroke-dasharray 1.1s cubic-bezier(.65, 0, .35, 1), stroke-dashoffset 1.1s cubic-bezier(.65, 0, .35, 1); }
#dialMarcas line { stroke: var(--az-100); stroke-width: 2; stroke-linecap: round; transition: stroke .4s; }
#dialMarcas line.v { stroke: var(--az-500); }
#dialMarcas line.a { stroke: var(--rojo-400); }
.cpa-dial-centro { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; color: #fff; pointer-events: none; }
.cpa-dial-centro b { font: 500 2.6rem/1 var(--serif); letter-spacing: .02em; }
.cpa-dial-centro span { margin-top: .35rem; font: 600 .55rem/1.4 var(--f); letter-spacing: .18em; text-transform: uppercase; color: var(--az-200); }
.cpa-dial-centro small { margin-top: .45rem; font: 600 .7rem var(--f); color: var(--or-300); }

@media (max-width: 1100px) {
  .cpa-res-cuerpo { grid-template-columns: 1fr 1fr; }
  .cpa-dial { grid-column: 1 / -1; grid-row: 1; }
}
@media (max-width: 520px) {
  .cpa-resumen { padding: 1rem; }
  .cpa-res-cuerpo { gap: .8rem; }
  .cpa-res-col.der .cpa-dato { flex-direction: row; text-align: left; }
  .cpa-res-col.der .cpa-dato b { flex-direction: row; }
  .cpa-res-col.der .cpa-dato b::after { margin: 0 0 0 .5rem; }
  .cpa-dato { padding: .8rem; gap: .6rem; }
  .cpa-dato .ico { width: 36px; height: 36px; padding: 7px; }
  .cpa-dato b { font-size: 1.5rem; }
  .cpa-dial { width: 220px; }
}
.cpa-res-col, .cpa-dato, .cpa-dato > div { min-width: 0; }
@media (max-width: 520px) {
  .cpa-res-cab { flex-direction: column; align-items: flex-start; gap: .2rem; }
  .cpa-dato span { letter-spacing: .08em; font-size: .56rem; }
  .cpa-dato .ico { width: 32px; height: 32px; padding: 6px; }
}

/* ---------- Resumen dentro de la barra lateral ---------- */
.cpa-app { grid-template-columns: 300px minmax(0, 1fr); }
.cpa-lateral { overflow-y: auto; gap: 1.2rem; scrollbar-width: thin; }
.cpa-lateral .cpa-resumen { margin: 0; padding: 1rem .9rem 1rem; border-radius: 18px; box-shadow: 0 20px 40px -34px rgba(15, 42, 92, .6); }
.cpa-lateral .cpa-res-cab { flex-direction: column; align-items: flex-start; gap: .15rem; margin-bottom: .6rem; }
.cpa-lateral .cpa-res-cab .etq { font-size: .58rem; letter-spacing: .16em; }
.cpa-lateral .cpa-res-cab .etq::before { width: 16px; margin-right: .5rem; }
.cpa-lateral .cpa-res-fecha { font-size: .66rem; padding-left: calc(16px + .5rem); }
.cpa-lateral .cpa-res-cuerpo { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.cpa-lateral .cpa-dial { grid-column: 1 / -1; grid-row: 1; width: 190px; margin: 0 auto .4rem; }
.cpa-lateral .cpa-res-col { display: contents; }
.cpa-lateral .cpa-dato, .cpa-lateral .cpa-res-col.der .cpa-dato { flex-direction: column; align-items: flex-start; text-align: left; gap: .45rem; padding: .7rem .75rem; border-radius: 12px; }
.cpa-lateral .cpa-dato .ico { width: 30px; height: 30px; padding: 6px; border-radius: 8px; }
.cpa-lateral .cpa-dato b, .cpa-lateral .cpa-res-col.der .cpa-dato b { display: flex; flex-direction: row; align-items: center; font-size: 1.45rem; }
.cpa-lateral .cpa-res-col.der .cpa-dato b::after { margin: 0 0 0 .4rem; }
.cpa-lateral .cpa-dato.oro b::after, .cpa-lateral .cpa-dato.rojo b::after { width: 7px; height: 7px; }
.cpa-lateral .cpa-dato span { font-size: .5rem; letter-spacing: .12em; margin-top: .15rem; }
.cpa-lateral .cpa-dial-centro b { font-size: 2rem; }
.cpa-lateral .cpa-dial-centro span { font-size: .46rem; letter-spacing: .14em; }
.cpa-lateral .cpa-dial-centro small { font-size: .6rem; margin-top: .3rem; }
@media (max-width: 860px) {
  .cpa-app { grid-template-columns: minmax(0, 1fr); }
  .cpa-lateral { overflow: visible; }
  .cpa-lateral .cpa-dial { width: 200px; }
}

/* Barra de emisión con calidad de participación */
.cpa-emitir { display: grid; gap: .7rem; padding: 1rem 1.1rem; }
.cpa-emitir-fila { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.cpa-emitir-fila .form-select { min-width: 170px; }
.cpa-emitir-ayuda { margin: 0; font-size: .78rem; color: var(--tenue); }
.cp-admin #tablaInscritos .form-select { min-width: 132px; }
