:root {
    /*  Cores Globais do Projeto - Baseadas na Logo "Iniciação à Vida Cristã"  */
    /* Amarelo Ouro (Símbolo Principal - Sol / Hóstia da Logo) */
    --template1: #F5B819;
    --template2: #E0A008;
    --template3: #C88E00;

    /* Variáveis Globais de Tema e Bootstrap */
    --primary-bg-color: var(--template1);
    --primary-bg-hover: var(--template2);
    --primary-bg-border: var(--template1);
    --primary02: rgba(245, 184, 25, 0.15);
    --primary05: rgba(245, 184, 25, 0.4);
    --primary-transparentcolor: rgba(245, 184, 25, 0.12);
    --transparent-body: #F5B819;

    /* Palette inspirada na Logo da Catequese */
    --logo-gold: #F5B819;        /* Amarelo Sol / Hóstia */
    --logo-dark: #14161B;        /* Preto Grafite Cruz Central */
    --logo-red: #E53935;         /* Vermelho Chama do Espírito Santo */
    --logo-blue: #0088FF;        /* Azul Ondas do Batismo */
    --logo-brown: #B75529;       /* Marrom Pão Eucarístico */
    
    /* Design Tokens de Modernidade */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 6px 20px rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.09);
    --transition-fast: all 0.2s ease-in-out;
}

/* Reset de Scrollbar Elegante */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.03);
}
::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--logo-gold);
}

.field-icon {
  float: right;
  margin-left: -25px;
  margin-top: -25px;
  position: relative;
  z-index: 2;
  margin-right: 8px;
  cursor: pointer;
}

#mensagem-recuperar {
  color: var(--template1) !important;
  font-size: 13px;
}

/* Inputs & Form Controls Modernos */
.form-control, .select2-selection__rendered {
    border-radius: var(--radius-md) !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    font-weight: 500;
    transition: var(--transition-fast);
}

.form-control:focus, .select2-container--open .select2-selection--single {
    border-color: var(--logo-gold) !important;
    box-shadow: 0 0 0 3px rgba(245, 184, 25, 0.2) !important;
}

.select2-selection__rendered {
    line-height: 35px !important;
}

.select2-container .select2-selection--single {
    height: 40px !important;
    border-radius: var(--radius-md) !important;
}

.select2-selection__arrow {
    height: 38px !important;
}

hr.separador {
  border: none;
  border-top: 1px dashed rgba(0, 0, 0, 0.12);
  margin: 1.5rem 0;
}

.text-verde {
  color: #10B981 !important;
}

.ocultar {
  display: none;
}

.textareag {
    width: 100%;
    max-width: 1000px;
    height: 550px;
    border-radius: var(--radius-md);
}

/* Estrutura do Layout - Sidebar & Header Minimalistas */
@media (min-width: 992px) {
    .app-sidebar, 
    .sidebar-mini .app-sidebar,
    .main-sidebar-header,
    .app-sidebar .side-header {
        width: 270px !important;
    }

    .main-content.app-content {
        margin-left: 270px !important;
    }

    .main-header {
        left: 270px !important;
        width: calc(100% - 270px) !important;
    }
}

.main-header {
    background-color: var(--logo-dark) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
    z-index: 1000 !important;
}

.main-sidemenu,
.app-sidebar,
.main-sidebar-header {
    background-color: var(--logo-dark) !important;
}

.main-sidebar-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* Menu Lateral Limpo & Elegante */
.side-menu__label {
    font-size: 13.5px !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

.side-menu .slide .side-menu__item {
    border-radius: var(--radius-md) !important;
    margin: 3px 6px !important;
    padding: 10px 12px !important;
    transition: var(--transition-fast) !important;
}

.side-menu .slide .side-menu__item:hover {
    background-color: rgba(245, 184, 25, 0.12) !important;
    transform: translateX(3px);
}

.slide-menu {
    border-left: 3px solid var(--logo-red) !important;
    background-color: var(--logo-dark) !important;
    color: #ffffff;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
}

.side-menu__item a {
    background-color: transparent !important;
    color: #ffffff;
}

.side-menu__item:hover .side-menu__icon,
.side-menu__item:hover .side-menu__label,
.side-menu__item:hover .angle {
    color: var(--template1) !important;
    fill: var(--template1) !important;
}

.slide-item.active,
.slide-item:hover,
.slide-item:focus {
    text-decoration: none;
    color: var(--template1) !important;
}

.app-sidebar .side-item.side-item-category {
    color: var(--template1) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    opacity: 0.85;
}

.slide-item .app-sidebar .slide-menu .slide-item:before:hover {
    color: var(--template1) !important;
}

.slide.is-expanded .slide-menu a:hover:before {
   color: var(--template1) !important;
}

.slide:hover .side-menu__label,
.slide:hover .angle {
    color: #ffffff !important;
    fill: #ffffff !important;
}

.header-icon-svgs {
    color: #ffffff;
    fill: #ffffff;
}

.font-size-11 {
    font-size: 11px !important;
}

#calendar {
    max-width: 1320px;
    margin: 0 auto;
}

/* Cards do Dashboard Limpos & Modernos */
.card, .sales-card {
    border: 1px solid rgba(0, 0, 0, 0.05) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-sm) !important;
    transition: var(--transition-fast) !important;
    background: #ffffff !important;
}

.card:hover, .sales-card:hover {
    box-shadow: var(--shadow-md) !important;
    transform: translateY(-2px);
}

.circle-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: var(--radius-md) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: var(--transition-fast) !important;
}

/* Botões Primários Limpos & Elegantes */
.btn {
    border-radius: var(--radius-md) !important;
    font-weight: 500 !important;
    padding: 0.5rem 1.25rem !important;
    transition: var(--transition-fast) !important;
}

.btn-primary {
    background-color: var(--template1) !important;
    border-color: var(--template1) !important;
    color: #14161B !important;
    font-weight: 600 !important;
    box-shadow: 0 3px 10px rgba(245, 184, 25, 0.25) !important;
}

.btn-primary:hover, 
.btn-primary:focus, 
.btn-primary:active {
    background-color: var(--template2) !important;
    border-color: var(--template2) !important;
    color: #14161B !important;
    transform: translateY(-1px);
    box-shadow: 0 5px 14px rgba(245, 184, 25, 0.35) !important;
}

.btn-outline-primary {
    color: var(--template1) !important;
    border-color: var(--template1) !important;
}

.btn-outline-primary:hover {
    background-color: var(--template1) !important;
    color: #14161B !important;
}

.bg-primary {
    background-color: var(--template1) !important;
    color: #14161B !important;
}

.text-primary {
    color: #D49000 !important;
}

.badge {
    border-radius: var(--radius-sm) !important;
    padding: 0.35em 0.65em !important;
    font-weight: 600 !important;
}

.badge-primary {
    background-color: var(--template1) !important;
    color: #14161B !important;
}

/* Ícones e Destaques dos Cards no Dashboard */
.iconBgSusses {
    background: rgba(245, 184, 25, 0.15) !important;
    color: var(--logo-gold) !important;
}

.iconSusses {
    color: #D49000 !important;
}

.iconBgDanger {
    background: rgba(229, 57, 53, 0.15) !important;
    color: var(--logo-red) !important;
}

.iconDanger {
    color: var(--logo-red) !important;
}

.iconBgRoxo {
    background: rgba(183, 85, 41, 0.15) !important;
    color: var(--logo-brown) !important;
}

.iconBgAzul {
    background: rgba(0, 136, 255, 0.15) !important;
    color: var(--logo-blue) !important;
}

.iconyellow {
    background: rgba(245, 184, 25, 0.18) !important;
    color: var(--logo-gold) !important;
}

/* FullCalendar Modernizado */
.fc {
    font-family: inherit !important;
}

.fc .fc-button-primary {
    background-color: var(--template1) !important;
    border-color: var(--template1) !important;
    color: #14161B !important;
    border-radius: var(--radius-md) !important;
    font-weight: 600 !important;
    box-shadow: var(--shadow-sm) !important;
}

.fc .fc-button-primary:hover, 
.fc .fc-button-primary:active {
    background-color: var(--template2) !important;
    border-color: var(--template2) !important;
    color: #14161B !important;
}

.fc-h-event, .fc-v-event {
    background-color: var(--template1) !important;
    border-color: var(--template2) !important;
    color: #14161B !important;
    border-radius: var(--radius-sm) !important;
    padding: 2px 6px !important;
}

/* Modais & Tabelas Modernas */
.modal-content {
    border-radius: var(--radius-lg) !important;
    border: none !important;
    box-shadow: var(--shadow-lg) !important;
}

.table th {
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom-width: 1px !important;
}

.table-hover tbody tr:hover {
    background-color: rgba(245, 184, 25, 0.04) !important;
}

/* Garantia de Abertura do Dropdown do Perfil */
.main-profile-menu {
    position: relative !important;
}

.main-profile-menu .profile-user {
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
}

.main-profile-menu .dropdown-menu {
    position: absolute !important;
    z-index: 999999 !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18) !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    background: #ffffff !important;
    min-width: 200px !important;
}

.main-profile-menu.show .dropdown-menu,
.main-profile-menu .dropdown-menu.show {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    top: 55px !important;
    right: 15px !important;
    left: auto !important;
}