/* =====================================================
   CabralCare — Utilities & Animations
   Responsabilidade: scrollbar, animações, classes
   utilitárias e regras responsivas adicionais.
   ===================================================== */

/* =====================================================
   SCROLLBAR
   ===================================================== */

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background-color: var(--color-border);
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
    background-color: var(--color-text-tertiary);
}

/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
}


/* =====================================================
   ANIMATIONS & KEYFRAMES
   ===================================================== */

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-12px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Animate page content on load */
.main-content>.container-fluid {
    animation: fadeInUp 0.4s ease-out;
}


/* =====================================================
   UTILITIES
   ===================================================== */

/* --- UI/Interaction --- */
.cursor-pointer {
    cursor: pointer;
}

.select-none {
    user-select: none;
    -webkit-user-select: none;
}

/* --- Typography Utilities --- */
.text-body-secondary,
.text-muted {
    color: var(--color-text-secondary) !important;
}

.text-body-tertiary {
    color: var(--color-text-tertiary) !important;
}

.text-body,
.text-body-emphasis {
    color: var(--color-text) !important;
}

.text-primary {
    color: var(--color-primary) !important;
}

/* Padrão para navegação e menus */
.nav-text-uppercase {
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    font-size: var(--font-size-xs);
}

/* --- Backgrounds --- */
.bg-body {
    background-color: var(--color-bg) !important;
}

.bg-body-tertiary {
    background-color: var(--color-bg) !important;
}

.bg-body-secondary {
    background-color: var(--color-surface) !important;
}

.bg-light {
    background-color: var(--color-surface-hover) !important;
}

.bg-surface {
    background-color: var(--color-surface) !important;
}

/* --- Misc --- */
.spinner-border.text-primary {
    color: var(--color-primary) !important;
}

.glass {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.4);
}

.table td[colspan] {
    color: var(--color-text-tertiary);
    font-size: var(--font-size-sm);
}

.border-top {
    border-color: var(--color-border) !important;
}

.tooltip {
    font-family: var(--font-family);
    font-size: var(--font-size-xs);
}
