/* Inna FAB — acceso persistente de ayuda (iteración V3-inna).
 * Solo capa de presentación. Reutiliza las variables de campus.css.
 * Reglas de convivencia:
 * - z-index 150: por encima de la bottom-nav (100), por debajo del drawer (200).
 * - En páginas con bottom-nav móvil (<1024px) el botón sube por encima de ella
 *   (.inna-fab--above-nav) para no tapar la navegación ni los controles.
 * - El panel nunca cubre toda la pantalla: ancho máx. 360 px y alto máx. 70vh
 *   con scroll propio; en móvil se ancla a la esquina con margen de 16 px.
 */

.inna-fab {
    position: fixed;
    right: var(--space-3, 1rem);
    bottom: var(--space-3, 1rem);
    z-index: 150;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2, 0.5rem);
}

/* Botón compacto con rótulo visible: Inna nunca aparece sin texto (A-03). */
.inna-fab__toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    min-height: 44px;
    min-width: 44px;
    padding: 6px 14px 6px 6px;
    border: 1px solid var(--color-border, #d9d2c5);
    border-radius: 999px;
    background: var(--color-white, #fff);
    color: var(--color-institutional, #4a3f30);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.16);
}

.inna-fab__toggle img {
    border-radius: 50%;
    display: block;
}

.inna-fab__toggle:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}

.inna-fab__toggle:focus-visible,
.inna-fab__close:focus-visible,
.inna-fab__option:focus-visible,
.inna-fab__guided > summary:focus-visible {
    outline: 3px solid var(--color-focus, #2b6cb0);
    outline-offset: 2px;
}

.inna-fab__panel {
    width: min(360px, calc(100vw - 2 * var(--space-3, 1rem)));
    max-height: 70vh;
    overflow-y: auto;
    background: var(--color-white, #fff);
    border: 1px solid var(--color-border, #d9d2c5);
    border-radius: var(--radius-lg, 16px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
    padding: var(--space-3, 1rem);
}

.inna-fab__head {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2, 0.5rem);
}

.inna-fab__head img {
    border-radius: 50%;
    flex: 0 0 auto;
}

.inna-fab__role {
    margin: 0;
    font-size: var(--text-sm, 0.875rem);
    font-weight: 600;
    color: var(--color-institutional, #4a3f30);
}

.inna-fab__tagline {
    margin: 0;
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #6b6257);
}

.inna-fab__close {
    margin-left: auto;
    flex: 0 0 auto;
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    border-radius: 8px;
    color: var(--color-text-secondary, #6b6257);
    cursor: pointer;
}

.inna-fab__question {
    margin: var(--space-3, 1rem) 0 var(--space-2, 0.5rem);
    font-weight: 600;
}

.inna-fab__options {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2, 0.5rem);
}

.inna-fab__option {
    display: block;
    padding: var(--space-2, 0.5rem) var(--space-3, 1rem);
    border: 1px solid var(--color-border, #d9d2c5);
    border-radius: var(--radius-md, 10px);
    background: var(--color-surface, #fbf8f2);
    color: inherit;
    text-decoration: none;
}

a.inna-fab__option:hover {
    border-color: var(--color-institutional, #4a3f30);
    text-decoration: none;
}

.inna-fab__option-title {
    display: block;
    font-weight: 600;
}

.inna-fab__option-hint {
    display: block;
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text-secondary, #6b6257);
    margin-top: 2px;
}

/* Opción guiada (details): el summary replica el aspecto de las otras opciones. */
.inna-fab__guided {
    padding: 0;
}

.inna-fab__guided > summary {
    display: block;
    padding: var(--space-2, 0.5rem) var(--space-3, 1rem);
    cursor: pointer;
    list-style: none;
}

.inna-fab__guided > summary::-webkit-details-marker {
    display: none;
}

.inna-fab__guided > summary::after {
    content: "▸";
    float: right;
    color: var(--color-text-secondary, #6b6257);
}

.inna-fab__guided[open] > summary::after {
    content: "▾";
}

.inna-fab__answers {
    padding: 0 var(--space-3, 1rem) var(--space-2, 0.5rem);
}

.inna-fab__more {
    font-size: var(--text-sm, 0.875rem);
    margin-bottom: 0;
}

/* Respuestas guiadas: acordeón compacto que reutiliza la clase .inna-faq
 * (misma apariencia que el bloque verificado del resumen). */
.inna-fab .inna-faq {
    margin-bottom: var(--space-2, 0.5rem);
}

.inna-fab .inna-faq summary {
    font-weight: 600;
    cursor: pointer;
}

.inna-fab .inna-faq p {
    font-size: var(--text-sm, 0.875rem);
    margin: var(--space-1, 0.25rem) 0 var(--space-2, 0.5rem);
}

/* Con bottom-nav móvil visible, el FAB sube por encima de la barra (64 px). */
@media (max-width: 1023px) {
    .inna-fab--above-nav {
        bottom: calc(var(--bottom-nav-height, 64px) + var(--space-2, 0.5rem));
    }
}

@media (max-width: 480px) {
    .inna-fab {
        right: var(--space-2, 0.5rem);
        bottom: var(--space-2, 0.5rem);
    }

    .inna-fab--above-nav {
        bottom: calc(var(--bottom-nav-height, 64px) + var(--space-2, 0.5rem));
    }

    .inna-fab__panel {
        max-height: 60vh;
    }
}

@media (prefers-reduced-motion: reduce) {
    .inna-fab__toggle,
    .inna-fab__panel {
        transition: none;
    }
}
