/* ==========================================================================
   Academic Integrity Gate
   Mandatory, one-time acknowledgement shown before the app becomes usable.
   ========================================================================== */

.integrity-overlay {
    z-index: 10001; /* above everything, including the loading overlay (10000) */
}

.integrity-modal {
    max-width: 480px;
    height: auto;
    max-height: 90vh;
}

.integrity-body {
    gap: 14px;
}

.integrity-body p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--text-secondary);
}

.integrity-body p:first-child {
    color: var(--text-primary);
}

.integrity-footer {
    flex-wrap: wrap;
}

.integrity-agree-btn {
    background-color: var(--accent);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 10px 20px;
    font-family: 'Outfit', sans-serif;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-fast);
    white-space: nowrap;
}

.integrity-agree-btn:hover {
    background-color: var(--accent-hover);
}

.integrity-agree-btn:active {
    transform: scale(0.98);
}

/* Block interaction with everything underneath while the gate is up */
body.integrity-locked #app-root,
body.integrity-locked #loading-overlay {
    filter: blur(6px);
    pointer-events: none;
    user-select: none;
}

@media (max-width: 560px) {
    .integrity-modal {
        width: 92%;
        max-width: none;
    }

    .integrity-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .integrity-agree-btn {
        width: 100%;
        text-align: center;
    }
}
