/*
 * Panel del expositor.
 * Letra generosa, botones de al menos 48 px, contraste AA, foco visible y
 * diseño que funciona desde 360 px. El color principal sale de Campus → Apariencia.
 */

:root {
    --cvp-fondo: #f1f5f9;
    --cvp-superficie: #ffffff;
    --cvp-texto: #0f172a;
    --cvp-suave: #475569;
    --cvp-borde: #cbd5e1;
    --cvp-primario: #1d4ed8;
    --cvp-primario-hover: #1e3a8a;
    --cvp-peligro: #b91c1c;
    --cvp-ok: #166534;
    --cvp-ok-fondo: #dcfce7;
    --cvp-error-fondo: #fee2e2;
    --cvp-radio: 10px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Lo oculto queda oculto aunque una clase le dé otro display. */
.cvp-cuerpo [hidden] {
    display: none !important;
}

.cvp-cuerpo {
    margin: 0;
    background: var(--cvp-fondo);
    color: var(--cvp-texto);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 1.125rem;
    line-height: 1.55;
}

.cvp-cuerpo a {
    color: var(--cvp-primario);
}

.cvp-cuerpo :focus-visible {
    outline: 3px solid var(--cvp-primario);
    outline-offset: 2px;
}

.cvp-oculto,
.cvp-cuerpo .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}

.cvp-saltar {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 10;
    padding: 0.75em 1em;
    background: var(--cvp-superficie);
}

.cvp-saltar:focus {
    left: 1em;
}

/* --- Cabecera y navegación --- */

.cvp-cabecera {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5em 1em;
    padding: 0.75em 16px;
    background: var(--cvp-superficie);
    border-bottom: 1px solid var(--cvp-borde);
}

.cvp-marca {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    color: var(--cvp-texto) !important;
    font-weight: 700;
    text-decoration: none;
}

.cvp-marca__logo {
    display: block;
    max-height: 48px;
    max-width: 180px;
    width: auto;
}

.cvp-cabecera__seccion {
    color: var(--cvp-suave);
}

.cvp-cabecera__usuario {
    display: flex;
    align-items: center;
    gap: 1em;
    margin-left: auto;
}

.cvp-nav {
    background: var(--cvp-superficie);
    border-bottom: 1px solid var(--cvp-borde);
}

.cvp-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0 0.25em;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.cvp-nav a {
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 0 0.9em;
    border-bottom: 4px solid transparent;
    color: var(--cvp-texto) !important;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.cvp-nav a:hover {
    border-bottom-color: var(--cvp-borde);
}

.cvp-nav a[aria-current="page"] {
    border-bottom-color: var(--cvp-primario);
    color: var(--cvp-primario) !important;
}

/* --- Contenido --- */

.cvp-principal {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.25em 16px 3em;
}

.cvp-principal--ancho {
    max-width: 1500px;
    padding-left: 0;
    padding-right: 0;
}

.cvp-titulo {
    margin: 0.25em 0 0.5em;
    font-size: 1.75rem;
    line-height: 1.25;
}

.cvp-seccion {
    margin: 1.5em 0;
    padding: 1.25em;
    background: var(--cvp-superficie);
    border: 1px solid var(--cvp-borde);
    border-radius: var(--cvp-radio);
}

.cvp-seccion h2 {
    margin: 0 0 0.5em;
    font-size: 1.3rem;
}

.cvp-ayuda,
.cvp-resumen {
    color: var(--cvp-suave);
}

.cvp-aviso {
    padding: 0.75em 1em;
    background: var(--cvp-superficie);
    border-left: 4px solid var(--cvp-primario);
    border-radius: 4px;
}

.cvp-vacio {
    padding: 1.5em;
    background: var(--cvp-superficie);
    border: 1px dashed var(--cvp-borde);
    border-radius: var(--cvp-radio);
}

.cvp-vacio p {
    margin: 0 0 0.5em;
}

.cvp-enlace {
    font-weight: 600;
}

/* --- Botones --- */

.cvp-boton,
.cvp-cuerpo .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.55em 1.2em;
    border: 2px solid transparent;
    border-radius: var(--cvp-radio);
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

.cvp-boton:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.cvp-boton--primario {
    background: var(--cvp-primario);
    color: #fff !important;
}

.cvp-boton--primario:hover:not(:disabled) {
    background: var(--cvp-primario-hover);
}

.cvp-boton--secundario,
.cvp-cuerpo .button {
    background: var(--cvp-superficie);
    border-color: var(--cvp-primario);
    color: var(--cvp-primario) !important;
}

.cvp-boton--secundario:hover,
.cvp-cuerpo .button:hover {
    background: var(--cvp-fondo);
}

.cvp-boton--peligro {
    background: var(--cvp-superficie);
    border-color: var(--cvp-peligro);
    color: var(--cvp-peligro) !important;
}

.cvp-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75em;
}

/* --- Mensajes --- */

.cvp-mensaje:empty {
    display: none;
}

.cvp-mensaje {
    padding: 0.6em 0.9em;
    border-radius: 6px;
}

.cvp-mensaje--ok {
    background: var(--cvp-ok-fondo);
    color: var(--cvp-ok);
    font-weight: 600;
}

.cvp-mensaje--error {
    background: var(--cvp-error-fondo);
    color: var(--cvp-peligro);
    font-weight: 600;
}

/* --- Tarjetas de actividades --- */

.cvp-tarjetas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
    gap: 1em;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cvp-tarjeta {
    display: flex;
    flex-direction: column;
    padding: 1.25em;
    background: var(--cvp-superficie);
    border: 1px solid var(--cvp-borde);
    border-radius: var(--cvp-radio);
}

.cvp-tarjeta__titulo {
    margin: 0.25em 0 0.5em;
    font-size: 1.3rem;
    line-height: 1.3;
}

.cvp-tarjeta__dato {
    margin: 0 0 0.35em;
    color: var(--cvp-suave);
}

.cvp-tarjeta__acciones {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6em;
    margin-top: auto;
    padding-top: 1em;
}

.cvp-etiquetas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5em;
    margin: 0;
}

.cvp-etiqueta {
    display: inline-block;
    padding: 0.15em 0.6em;
    background: var(--cvp-fondo);
    border: 1px solid var(--cvp-borde);
    border-radius: 999px;
    font-size: 0.95rem;
    font-weight: 600;
}

.cvp-etiqueta--borrador {
    border-style: dashed;
}

.cvp-etiqueta--publicada {
    background: var(--cvp-ok-fondo);
    border-color: var(--cvp-ok);
    color: var(--cvp-ok);
}

/* --- Listas --- */

.cvp-lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cvp-lista__item {
    margin-bottom: 0.75em;
    background: var(--cvp-superficie);
    border: 1px solid var(--cvp-borde);
    border-radius: var(--cvp-radio);
}

.cvp-lista__enlace {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5em;
    padding: 1em 1.25em;
    color: var(--cvp-texto) !important;
    text-decoration: none;
}

.cvp-lista__enlace:hover strong {
    text-decoration: underline;
}

.cvp-lista__item--estudio {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
    padding: 1em 1.25em;
}

.cvp-lista-encuentros li {
    margin-bottom: 0.35em;
}

/* --- Tabla de inscriptos --- */

.cvp-tabla-contenedor {
    overflow-x: auto;
    background: var(--cvp-superficie);
    border: 1px solid var(--cvp-borde);
    border-radius: var(--cvp-radio);
}

.cvp-tabla {
    width: 100%;
    border-collapse: collapse;
}

.cvp-tabla th,
.cvp-tabla td {
    padding: 0.7em 1em;
    border-bottom: 1px solid var(--cvp-borde);
    text-align: left;
    vertical-align: top;
}

.cvp-tabla tbody tr:last-child td {
    border-bottom: 0;
}

.cvp-tabla th {
    background: var(--cvp-fondo);
}

/* --- Formularios --- */

.cvp-campo {
    display: flex;
    flex-direction: column;
    gap: 0.3em;
    margin-bottom: 1em;
    font-weight: 600;
}

.cvp-campo small {
    color: var(--cvp-suave);
    font-weight: 400;
}

.cvp-campo input,
.cvp-campo select,
.cvp-campo textarea {
    min-height: 48px;
    padding: 0.5em 0.7em;
    border: 2px solid var(--cvp-borde);
    border-radius: 8px;
    background: var(--cvp-superficie);
    color: var(--cvp-texto);
    font: inherit;
    font-weight: 400;
}

.cvp-campo input[type="file"] {
    padding: 0.6em;
}

.cvp-campo--ancho {
    max-width: 640px;
}

.cvp-encuentros__lista {
    margin: 0 0 1em;
    padding: 0;
    list-style: none;
}

.cvp-encuentro {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
    align-items: end;
    gap: 0 1em;
    margin-bottom: 1em;
    padding: 1em;
    background: var(--cvp-fondo);
    border-radius: var(--cvp-radio);
}

.cvp-encuentro .cvp-campo--ancho {
    grid-column: 1 / -1;
}

.cvp-encuentro__quitar {
    margin-bottom: 1em;
    justify-self: start;
}

/* --- Editor de la descripción --- */

.cvp-editor {
    margin-bottom: 1em;
    border: 2px solid var(--cvp-borde);
    border-radius: 8px;
    background: var(--cvp-superficie);
}

.cvp-editor:focus-within {
    border-color: var(--cvp-primario);
}

.cvp-editor__barra {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4em;
    padding: 0.5em;
    border-bottom: 1px solid var(--cvp-borde);
    background: var(--cvp-fondo);
}

.cvp-editor__boton {
    min-width: 48px;
    min-height: 44px;
    padding: 0.3em 0.8em;
    border: 1px solid var(--cvp-borde);
    border-radius: 6px;
    background: var(--cvp-superficie);
    color: var(--cvp-texto);
    font: inherit;
    cursor: pointer;
}

.cvp-editor__texto {
    min-height: 14em;
    max-height: 60vh;
    overflow-y: auto;
    padding: 0.75em 1em;
}

.cvp-editor__texto:focus {
    outline: none;
}

.cvp-lectura {
    padding: 0.75em 1em;
    background: var(--cvp-fondo);
    border-radius: 8px;
}

/* --- Perfil --- */

.cvp-foto__imagen {
    display: block;
    width: 160px;
    height: 160px;
    margin-bottom: 1em;
    border-radius: 50%;
    object-fit: cover;
}

/* --- Acceso denegado --- */

.cvp-denegado {
    max-width: 560px;
    margin: 3em auto;
    padding: 2em;
    background: var(--cvp-superficie);
    border: 1px solid var(--cvp-borde);
    border-radius: var(--cvp-radio);
    text-align: center;
}

/* --- Estudio dentro del panel --- */

.cvp-estudio > p,
.cvp-estudio > h1 {
    padding: 0 16px;
}

.cvp-estudio > h1 {
    margin: 0.25em 0;
    font-size: 1.6rem;
}

.cvp-estudio .description {
    color: var(--cvp-suave);
}

.cvp-estudio > .description {
    padding: 0 16px;
}

@media (max-width: 600px) {
    .cvp-cabecera__usuario {
        margin-left: 0;
        width: 100%;
        justify-content: space-between;
    }

    .cvp-titulo {
        font-size: 1.5rem;
    }

    .cvp-nav ul {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .cvp-nav a {
        justify-content: center;
    }

    .cvp-tarjeta__acciones .cvp-boton {
        flex: 1 1 100%;
    }
}
