/* Gestor Contabilidade - estilos extras */
@media (max-width: 768px) {
    header nav { flex-wrap: wrap; gap: 0.5rem; }
}

/* Portal: feedback flash */
.portal-alert-enter {
    animation: portal-fade-slide 0.35s ease-out both;
}

@keyframes portal-fade-slide {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Botão com loading (portal) */
.portal-btn-loading {
    cursor: wait;
    opacity: 0.92;
}

.portal-btn-spinner {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    margin-right: 0.5rem;
    vertical-align: middle;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 9999px;
    animation: portal-spin 0.65s linear infinite;
}

button.portal-btn-loading.bg-white .portal-btn-spinner,
button.portal-btn-loading.border-gray-300 .portal-btn-spinner {
    border-color: rgba(37, 99, 235, 0.25);
    border-top-color: #2563eb;
}

@keyframes portal-spin {
    to { transform: rotate(360deg); }
}

/* Cards do dashboard — hover suave */
.portal-card-metric {
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.portal-card-metric:hover {
    box-shadow: 0 4px 14px -4px rgba(15, 23, 42, 0.12);
    transform: translateY(-1px);
}

/* Shell de página do portal (alinhado à dashboard) */
.portal-shell {
    box-shadow: 0 1px 3px 0 rgb(15 23 42 / 0.06);
}
