/* ===================================================================
   FitMaster - Style Guide v8.5 (Revisão de Temas e Correções)
   =================================================================== */

/* --- 1. FONTES E VARIÁVEIS GLOBAIS --- */
:root {
    --font-primary: 'Inter', sans-serif;
    --font-pink-headings: 'Poppins', sans-serif;
    --font-skull-headings: 'Bebas Neue', sans-serif;
    --border-radius-sm: 0.5rem;
    --border-radius-md: 0.75rem;
    --navbar-height: 60px; 
}

/* ===================================================================
   DEFINIÇÃO DOS TEMAS DE CORES
   =================================================================== */

/* --- 1. TEMA PADRÃO: FitMaster Dark (Baseado na Logo) --- */
[data-bs-theme="dark"] {
    --bs-primary: #F97316;
    --bs-primary-rgb: 249, 115, 22;
    --bs-primary-text-emphasis: #1E293B; /* Texto escuro (alto contraste) para botões laranja */
    
    /* Paleta Dark (Estilo GitHub/Pro) */
    --bs-body-bg: #0D1117;
    --color-surface: #161B22;
    --bs-body-color: #f0f6fc;
    --bs-body-emphasis-color: #f0f6fc;
    --bs-secondary-color: #8b949e;
    --color-text-secondary: #8b949e;
    --bs-border-color: #30363d;
    --bs-border-color-translucent: rgba(240, 246, 252, 0.1);
    --bs-body-secondary-bg: #161b22;
    --bs-body-tertiary-bg: #21262d;
    --shadow-color: rgba(0, 0, 0, 0.3);

    /* Cores de Feedback (Vibrantes no escuro) */
    --bs-success: #22C55E;
    --bs-success-rgb: 34, 197, 94;
    --bs-success-text-emphasis: #FFFFFF;
    --bs-danger: #EF4444;
    --bs-warning: #EAB308;
    --bs-info: #3B82F6;
    --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.15);
}

/* --- 2. TEMA PADRÃO: FitMaster Light (Baseado na Logo) --- */
[data-bs-theme="light"] {
    /* Cores da Logo: Laranja como primário para consistência */
    --bs-primary: #F97316;
    --bs-primary-rgb: 249, 115, 22;
    --bs-primary-text-emphasis: #FFFFFF; /* Texto branco para botões laranja */

    /* Paleta Light (Limpa e Moderna) */
    --bs-body-bg: #FFFFFF;
    --color-surface: #F8FAFC; /* Um cinza muito sutil para cards */
    --bs-body-color: #1E293B; /* Um cinza-azulado escuro, mais suave que preto */
    --bs-body-emphasis-color: #0F172A;
    --bs-secondary-color: #64748B;
    --color-text-secondary: #64748B;
    --bs-border-color: #E2E8F0;
    --bs-border-color-translucent: rgba(0, 0, 0, 0.1);
    --bs-body-secondary-bg: #F1F5F9;
    --bs-body-tertiary-bg: #E2E8F0;
    --shadow-color: rgba(0, 0, 0, 0.1);

    /* Cores de Feedback (Saturadas para o claro) */
    --bs-success: #16A34A;
    --bs-success-rgb: 22, 163, 74;
    --bs-success-text-emphasis: #FFFFFF;
    --bs-danger: #DC2626;
    --bs-warning: #D97706;
    --bs-info: #2563EB;
    --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.1);
}

/* --- 3. TEMA PREMIUM: Sakura Night (Pink) --- */
/* Conceito: Uma paleta escura, rica e elegante. Menos "hot pink" e mais "premium". */
[data-bs-theme="pink"] {
    --bs-primary: #EC4899; /* Rosa Vibrante (Tailwind Pink 500) */
    --bs-primary-rgb: 236, 72, 153;
    --bs-primary-text-emphasis: #FFFFFF;
    
    /* Paleta "Sakura Night" */
    --bs-body-bg: #2A0E22; /* Fundo púrpura muito escuro */
    --color-surface: #4A193B; /* Superfície (cards) em tom magenta escuro */
    --bs-body-color: #FAD7ED; /* Texto rosa muito claro */
    --bs-body-emphasis-color: #FCE7F3;
    --bs-secondary-color: #D996B6; /* Rosa pálido para texto secundário */
    --color-text-secondary: #D996B6;
    --bs-border-color: #70295A; /* Borda em tom de vinho */
    --bs-border-color-translucent: rgba(252, 231, 243, 0.2);
    --bs-body-secondary-bg: #4A193B;
    --bs-body-tertiary-bg: #5f214d;
    --shadow-color: rgba(0, 0, 0, 0.4);

    /* Cores de Feedback (Harmônicas) */
    --bs-success: #84CC16; /* Verde-limão */
    --bs-success-rgb: 132, 204, 22;
    --bs-success-text-emphasis: #1F2937;
    --bs-danger: #F43F5E; /* Vermelho-rosado */
    --bs-warning: #F59E0B; /* Âmbar */
    --bs-info: #38BDF8; /* Azul-celeste */
    --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.15);
}

/* --- 4. TEMA PREMIUM: Skullfire (Skull) --- */
/* Conceito: "Máximo esforço". Preto verdadeiro, cinzas monocromáticos, 
   e uma paleta de "fogo" (vermelho, laranja, dourado) para destaque. */
[data-bs-theme="skull"] { /* Renomeei de 'skull' para 'skullfire' para refletir o tema */
    --bs-primary: #DE2A1B; /* Vermelho "Hellfire" profundo e agressivo */
    --bs-primary-rgb: 222, 42, 27;
    --bs-primary-text-emphasis: #FFFFFF;

    /* Paleta Monocromática "Cinzas" */
    --bs-body-bg: #000000; /* Preto verdadeiro */
    --color-surface: #111111; /* Superfície (cards) quase preta */
    --bs-body-color: #F5F5F5; /* Branco suave (menos cansativo) */
    --bs-body-emphasis-color: #FFFFFF;
    --bs-secondary-color: #A3A3A3; /* Cinza médio (neutro) */
    --color-text-secondary: #A3A3A3;
    --bs-border-color: #333333; /* Borda cinza escura */
    --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
    --bs-body-secondary-bg: #111111;
    --bs-body-tertiary-bg: #222222;
    --shadow-color: rgba(0, 0, 0, 0.6);

    /* Paleta de Feedback "Fogo" */
    --bs-success: #FBBF24; /* Dourado "Tesouro" */
    --bs-success-rgb: 251, 191, 36;
    --bs-success-text-emphasis: #111111;
    --bs-danger: var(--bs-primary); /* Perigo é o próprio "Hellfire" */
    --bs-warning: #F97316; /* Alerta usa o laranja "brasa" (nosso brand color) */
    --bs-info: #737373; /* Info é um cinza "fumaça" neutro */
    --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.15);
}
/* --- 3. ESTILOS DE BASE --- */
html, body { height: 100%; }
body {
    font-family: var(--font-primary);
    background: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
    background-attachment: fixed;
}
main {padding-bottom: 2rem;}
h1, h2, h3 { font-weight: 700; }
.card { background-color: var(--color-surface) !important; border: 1px solid var(--bs-border-color) !important; box-shadow: 0 4px 15px var(--shadow-color); backdrop-filter: blur(10px); }
.card-header {
    background-color: var(--bs-body-tertiary-bg); /* [REVISADO] Adicionado estilo base */
    border-bottom: 1px solid var(--bs-border-color);
}
.form-control, .form-select { background-color: var(--bs-body-bg) !important; color: var(--bs-body-color) !important; border: 1px solid var(--bs-border-color) !important; }
.form-control::placeholder { color: var(--color-text-secondary); opacity: 0.7; }
.btn-primary { background-color: var(--bs-primary) !important; border-color: var(--bs-primary) !important; color: var(--bs-primary-text-emphasis) !important; }
.text-primary { color: var(--bs-primary) !important; }
.text-muted { color: var(--color-text-secondary) !important; }
.text-body-emphasis { color: var(--bs-body-emphasis-color) !important; }
.table { --bs-table-color: var(--bs-body-color); --bs-table-hover-color: var(--bs-body-color) !important; --bs-table-hover-bg: rgba(var(--bs-primary-rgb), 0.1); --bs-table-border-color: var(--bs-border-color); }
.list-group-item { background-color: transparent; border-color: var(--bs-border-color); color: var(--bs-body-color);}
.dropdown-menu { background-color: var(--color-surface); border: 1px solid var(--bs-border-color); }
.dropdown-item:hover, .dropdown-item:focus { background-color: rgba(var(--bs-primary-rgb), 0.15); color: var(--bs-body-emphasis-color); }
.modal-content { background-color: var(--color-surface); border: 1px solid var(--bs-border-color); }
.modal-header { border-bottom: 1px solid var(--bs-border-color); } /* [REVISADO] Adicionado estilo base */
.modal-footer { border-top: 1px solid var(--bs-border-color); } /* [REVISADO] Adicionado estilo base */

/* [CORRIGIDO] Regra do tema light (removido .dieta-alimentos-content que era conflituoso) */
[data-bs-theme="light"] .list-group-item, 
[data-bs-theme="light"] .card-header, 
[data-bs-theme="light"] .modal-content { 
    background-color: var(--color-surface) !important; 
    color: var(--bs-body-color) !important; 
}
/* Esta regra (em .refeicao-alimentos-display) já cuida do fundo no tema light */
/* [data-bs-theme="light"] .dieta-alimentos-content { ... } */


/* --- 4. LAYOUTS --- */

/* --- 4.1 Layout ADMIN (MODIFICADO PARA TOP-NAV) --- */
body.admin-layout {
    /* [NOVO] Adiciona padding no topo para a navbar fixa */
    padding-top: var(--navbar-height); 
}

.main-content {
    flex-grow: 1;
}

/* [REMOVIDO] Bloco .admin-navbar-top .navbar-collapse que estava duplicado e global, 
quebrando o layout do desktop. A regra correta está dentro da 
media query @media (max-width: 991.98px)
*/
.admin-navbar-top {
    background-color: var(--color-surface);
    border-bottom: 1px solid var(--bs-border-color);
    height: var(--navbar-height);
}

/* [NOVO] Estilo para os links da navbar de topo */
.admin-navbar-top .navbar-nav .nav-link {
    color: var(--color-text-secondary);
    font-weight: 500;
    padding: 0.5rem 0.75rem;
    border-radius: var(--border-radius-sm);
}
.admin-navbar-top .navbar-nav .nav-link:hover {
    color: var(--bs-body-emphasis-color);
    background-color: rgba(var(--bs-primary-rgb), 0.05);
}
.admin-navbar-top .navbar-nav .nav-link.active {
    background-color: var(--bs-primary);
    color: var(--bs-primary-text-emphasis) !important;
    font-weight: 600;
}

/* [NOVO] Dropdown de usuário na navbar de topo */
.admin-navbar-top .dropdown-menu {
    margin-top: 0.75rem !important; /* Adiciona espaço */
}

/* [REMOVIDO] Todos os estilos antigos de .admin-page, .sidebar, .main-content-wrapper, .admin-navbar-mobile */

.admin-alunos-table {
    font-size: 0.9rem; 
}
.admin-alunos-table th {
    font-weight: 600; 
    white-space: nowrap;
}
.admin-alunos-table .student-name {
    font-weight: 600; 
}
.admin-alunos-table .badge {
    padding: 0.3em 0.6em; 
    font-size: 0.75rem; 
}
.admin-alunos-table .d-inline-flex.gap-2 .btn {
    padding: 0.25rem 0.6rem; 
    font-size: 0.8rem; 
    border-width: 1px; 
    margin: 0 !important;
}
@media (max-width: 767.98px) {
    .admin-alunos-table {
        font-size: 0.85rem; 
    }
    .admin-alunos-table td, .admin-alunos-table th {
        padding: 0.7rem 0.5rem; 
    }
     .admin-alunos-table .d-inline-flex.gap-2 {
        gap: 0.3rem !important; 
    }
    .admin-alunos-table .d-inline-flex.gap-2 .btn {
        padding: 0.2rem 0.5rem;
        font-size: 0.75rem;
    }
}
.main-content > .container-fluid {
    padding-top: 1.5rem; 
    padding-bottom: 1.5rem;
}

/* [MODIFICADO] Media query para o novo layout */
@media (min-width: 992px) {
    /* [NOVO] Ajusta o padding do container principal em telas grandes */
     .main-content > .container-fluid {
        padding-left: 2rem; 
        padding-right: 2rem;
    }
}
@media (max-width: 991.98px) {
    /* [NOVO] Ajusta o padding do container principal em telas pequenas */
     .main-content > .container-fluid {
        padding-left: 1rem;
        padding-right: 1rem;
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
    .accordion-header .btn-outline-danger {
        display: none;
    }
    
    /* [NOVO] Estiliza o menu colapsado no mobile */
.admin-navbar-top .navbar-collapse {
        /* [MODIFICADO] Posição absoluta para flutuar sobre o conteúdo */
        position: absolute;
        top: var(--navbar-height); /* Alinha abaixo da navbar */
        left: 0;
        right: 0;
        z-index: 1020; /* Garante que fique acima do main-content */
        
        /* Estilos de fundo e borda */
        padding: 0.5rem 1rem 1rem 1rem;
        background-color: var(--color-surface);
        border-top: 1px solid var(--bs-border-color);
        border-bottom: 1px solid var(--bs-border-color);
        box-shadow: 0 0.5rem 1rem var(--shadow-color);
        border-bottom-left-radius: var(--border-radius-sm);
        border-bottom-right-radius: var(--border-radius-sm);

        /* Estilos de rolagem */
        max-height: 70vh;
        overflow-y: auto;
    }
    
    .admin-navbar-top .navbar-nav .nav-link {
        padding: 0.75rem 1rem;
    }
    .admin-navbar-top .navbar-nav .nav-link.active {
        /* Já está bom, mas garante que o ícone também fique bom */
        color: var(--bs-primary-text-emphasis) !important;
    }
    .admin-navbar-top .navbar-nav .nav-link i {
        /* Garante que os ícones tenham a cor do link */
        color: inherit;
        opacity: 0.7;
    }
    .admin-navbar-top .navbar-nav .nav-link.active i {
        opacity: 1;
    }
}
/* [NOVO - CORREÇÃO] Garante que o dropdown de perfil flutue no mobile */
.admin-navbar-top .navbar-nav .nav-item.dropdown {
    position: relative;
}
.admin-navbar-top .navbar-nav .dropdown-menu {
    position: absolute;
}
/* --- 4.2 Layout ALUNO --- */
.aluno-body { 
    padding-top: var(--navbar-height);
}

/* NAVBAR DE TOPO (Aluno) */
.navbar .nav-link { font-weight: 500; color: var(--bs-body-color); opacity: 0.7; transition: all 0.2s ease; padding-left: 0.75rem; padding-right: 0.75rem; }
.navbar .nav-link:not(.active):hover { opacity: 1; color: var(--bs-primary); }
.navbar .nav-link.active { color: var(--bs-primary) !important; opacity: 1; font-family: var(--font-pink-headings, var(--bs-font-sans-serif)); font-weight: 700; text-shadow: 0 0 8px var(--bs-primary); }
.navbar .navbar-icons-group .nav-link { font-size: 1.1rem; opacity: 0.7; padding-left: 0.5rem; padding-right: 0.5rem;} 
.navbar .navbar-icons-group .nav-link:hover { opacity: 1; color: var(--bs-primary); }
[data-bs-theme="dark"] .navbar-toggler-icon, [data-bs-theme="pink"] .navbar-toggler-icon, [data-bs-theme="skull"] .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
[data-bs-theme="light"] .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }


@media (max-width: 991.98px) {
  #alunoNavbarCollapse.navbar-collapse { 
    padding: 1rem;
    background-color: var(--bs-body-secondary-bg);
    border-top: 1px solid var(--bs-border-color);
    margin-top: 0.5rem;
    border-radius: 0.5rem;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1029;
    box-shadow: 0 0.5rem 1rem var(--shadow-color);
  }
  #alunoNavbarCollapse .nav-link.active { 
    background-color: var(--bs-primary);
    color: var(--bs-primary-text-emphasis, #fff) !important;
    text-shadow: none;
    border-radius: 0.375rem;
  }
  .navbar-icons-group .nav-item { margin-left: 0.25rem;} 
  .navbar-icons-group .nav-link { padding-left: 0.4rem; padding-right: 0.4rem;}
}

/* --- 5. COMPONENTES GLOBAIS --- */
.btn-outline-primary { --bs-btn-color: var(--bs-primary); --bs-btn-border-color: var(--bs-primary); --bs-btn-hover-bg: var(--bs-primary); --bs-btn-hover-border-color: var(--bs-primary); --bs-btn-hover-color: var(--bs-primary-text-emphasis); }
.btn-outline-info { --bs-btn-color: var(--bs-info); --bs-btn-border-color: var(--bs-info); --bs-btn-hover-bg: var(--bs-info); --bs-btn-hover-border-color: var(--bs-info); --bs-btn-hover-color: #000; }
.btn-outline-warning { --bs-btn-color: var(--bs-warning); --bs-btn-border-color: var(--bs-warning); --bs-btn-hover-bg: var(--bs-warning); --bs-btn-hover-border-color: var(--bs-warning); --bs-btn-hover-color: #000; }
.btn-outline-danger { --bs-btn-color: var(--bs-danger); --bs-btn-border-color: var(--bs-danger); --bs-btn-hover-bg: var(--bs-danger); --bs-btn-hover-border-color: var(--bs-danger); --bs-btn-hover-color: #fff; }
.btn-outline-secondary { --bs-btn-color: var(--bs-secondary-color); --bs-btn-border-color: var(--bs-secondary-color); --bs-btn-hover-bg: var(--bs-secondary-color); --bs-btn-hover-border-color: var(--bs-secondary-color); --bs-btn-hover-color: var(--bs-body-bg); }


/* --- 6. COMPONENTES ESPECÍFICOS DA APLICAÇÃO --- */

/* Badge de Notificação (Sino) */
.notification-badge {
    position: absolute;
    top: 2px;
    right: 0px;
    font-size: 0.65em;
    font-weight: 700;
    padding: 0.3em 0.5em;
    min-width: 1.8em; 
    line-height: 1.2;
    transform: translate(50%, -50%);
}

/* Dropdown de Notificações (Desktop) */
.dropdown-menu-notifications {
    min-width: 380px;
    max-height: 400px;
    overflow-y: auto;
    position: absolute !important;
    z-index: 1050; 
}

/* Dropdown de Notificações (Mobile) */
@media (max-width: 991.98px) { 
        .navbar-icons-group .nav-item.dropdown {
        position: static;
    }
    .dropdown-menu-notifications {
        padding: 1rem;
        background-color: var(--bs-body-secondary-bg);
        border-top: 1px solid var(--bs-border-color);
        margin-top: 0.5rem !important;
        border-radius: 0.5rem;
        position: absolute !important;
        top: 100%; 
        left: 0;
        right: 0;
        z-index: 1029;
        box-shadow: 0 0.5rem 1rem var(--shadow-color);
        width: auto;
        min-width: unset;
        max-width: unset;
        border: none;
    }
}

/* Estilos de CADA item da notificação */
.dropdown-item-notification {
    white-space: normal;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}
.dropdown-item-notification:last-child {
     border-bottom: none;
}
.dropdown-item-notification.unread {
    background-color: var(--bs-primary-bg-subtle); /* [REVISADO] Usa variável do Bootstrap */
    font-weight: 500;
}
.notification-time {
     font-size: 0.8em;
     color: var(--bs-secondary-color);
}
.notification-icon {
     width: 30px;
}
.notification-icon .text-muted {
     color: var(--bs-secondary-color) !important; /* [REVISADO] Garante que ícones padrão usem cor do tema */
}


/* ============================================== */
/* --- 9.1 LISTA DE EXERCÍCIOS (Treino Aluno) --- */
/* ============================================== */
.exercise-checkbox-label {
    display: inline-flex;
    align-items: center;      /* Alinha o checkbox verticalmente no centro */
    justify-content: center;  /* Alinha o checkbox horizontalmente no centro */
    padding: 15px 10px;
    cursor: pointer;
    margin: 0; 
}

.exercise-checkbox-label .exercise-checkbox {
    margin: 0;
}

.exercise-checkbox {
    position: absolute;
    top: 0.75rem;
    left: 1rem;
    width: 1.25em;
    height: 1.25em;
    z-index: 10;
    margin: 0; /* Remove margem padrão, se houver */
    vertical-align: middle; /* Alinha o checkbox verticalmente */   cursor: pointer; /* [NOVO] Garante que o cursor seja de ponteiro sobre o check */
}

/* [ATUALIZADO] O <label> agora é um <div>, cursor 'default' */
.exercise-item {
    display: flex;
    align-items: flex-start; /* Alinha os itens ao topo */   padding: 0.75rem 1rem;
    padding-left: 3rem; 
    padding-top: 15px; /* Mantém o padding superior que estava no label antigo */
    margin-bottom: 0.75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--border-radius-md);
    cursor: default; /* [ATUALIZADO] Não é mais clicável como um todo */
    background-color: var(--color-surface);
    transition: all 0.2s ease-in-out;
    position: relative; 
}
.exercise-item:hover {
    border-color: var(--bs-primary);
}
.exercise-item.completed {
    background-color: rgba(var(--bs-success-rgb), 0.1);
    opacity: 0.7;
    border-color: var(--bs-success);
}
.exercise-item.completed .exercise-name {
    text-decoration: line-through;
    color: var(--color-text-secondary);
}

.exercise-info {
    flex-grow: 1; 
    margin: 0 0.5rem; 
    text-align: center; 
}
.exercise-name {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}

.exercise-details {
    display: flex;
    justify-content: center; 
    gap: 1rem; 
    align-items: center;
    width: 100%;
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: var(--color-text-secondary);
}
.exercise-details i {
    color: var(--bs-primary);
}
.exercise-list.disabled .exercise-item {
    cursor: not-allowed;
    opacity: 0.6;
    pointer-events: none;
}
.exercise-list.disabled .exercise-checkbox {
    pointer-events: all; /* Garante que o check AINDA possa ser clicado */
    cursor: not-allowed;
}


.exercise-gif-preview img,
.exercise-gif-preview video {
    width: 45px;
    height: 45px;
    object-fit: cover;
    border-radius: var(--border-radius-sm);
    border: 1px solid var(--bs-border-color-translucent);
    cursor: pointer;
    transition: transform 0.2s ease;
    flex-shrink: 0; 
}
.exercise-gif-preview img:hover,
.exercise-gif-preview video:hover {
    transform: scale(1.1);
}

/* ================================================= */
/* --- [NOVO] Estilos para Minimizar Exercício --- */
/* ================================================= */
.exercise-item.minimized {
    /* Alinha o checkbox e o .exercise-info (com o nome) verticalmente */
    align-items: center;
    
    /* Reduz o padding vertical para um visual compacto, sobrescrevendo o pt-4 */
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
}

.exercise-item.minimized .exercise-details,
.exercise-item.minimized .exercise-gif-preview {
    display: none; /* Esconde detalhes (séries/reps) e a mídia */
}

.exercise-item.minimized .exercise-info .exercise-name {
    margin-bottom: 0; /* Remove a margem inferior do nome */
}
/* --- Fim dos Estilos de Minimização --- */


/* BOTÃO CONCLUIR TREINO */
.complete-training-wrapper { max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out; margin-top: 1rem; }
.complete-training-wrapper.visible { max-height: 100px; opacity: 1; }
.complete-training-wrapper #completeTrainingBtn { background-color: var(--bs-success); color: var(--bs-success-text-emphasis, #fff); font-weight: bold; border: none; width: 100%; box-shadow: 0 4px 15px rgba(var(--bs-success-rgb), 0.3); transition: all 0.2s ease; }
.complete-training-wrapper #completeTrainingBtn:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(var(--bs-success-rgb), 0.4); }

/* UPLOAD DE ARQUIVO */
.custom-file-upload { border: 2px dashed var(--bs-border-color); border-radius: var(--border-radius-md); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; cursor: pointer; text-align: center; transition: all 0.2s ease-in-out; background-color: rgba(var(--bs-body-color-rgb), 0.02); }
.custom-file-upload:hover { border-color: var(--bs-primary); background-color: rgba(var(--bs-primary-rgb), 0.1); }
.custom-file-upload i { font-size: 2rem; color: var(--color-text-secondary); margin-bottom: 0.5rem; }
.custom-file-upload .file-name { font-size: 0.8rem; color: var(--bs-success); margin-top: 0.5rem; font-weight: 500; display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
input[type="file"].custom-upload { display: none; }

/* CALENDÁRIO SEMANAL (Check-in) */
.week-calendar { display: flex; justify-content: space-between; list-style: none; padding: 0; margin: 0; }
.week-calendar .day { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 0.5rem; background-color: var(--bs-body-secondary-bg); color: var(--bs-body-emphasis-color); font-weight: bold; font-size: 1.1rem; line-height: 1.1; transition: all 0.2s ease-in-out; }
.week-calendar .day span { display: inline-block; font-size: 0.7rem; line-height: 1; min-height: 0.75rem; }
.week-calendar .day.today { background-color: var(--bs-primary); color: var(--bs-primary-text-emphasis); transform: scale(1.1); box-shadow: 0 0 12px var(--bs-primary); }
/* [REMOVIDO] Regra antiga ::before */
/* .week-calendar .day.completed span::before { ... } */
/* .week-calendar .day.today.completed span::before { ... } */

/* [NOVO] Estilo para o SVG do check no calendário AO VIVO */
.week-calendar .day.completed span {
    display: flex; /* Alinha o SVG */
    justify-content: center;
    align-items: center;
}
.week-calendar .day .week-day-check-svg {
    width: 10px;
    height: 10px;
    fill: var(--bs-success); /* Cor verde padrão */
}
.week-calendar .day.today.completed .week-day-check-svg {
    fill: var(--bs-primary-text-emphasis); /* Cor do texto do 'today' */
}


/* CRONÔMETRO */
.stopwatch-fixed { opacity: 0; visibility: hidden; transform: translateY(-20px); transition: all 0.3s ease-in-out; position: fixed; top: calc(var(--navbar-height) + 15px); right: 15px; z-index: 1020; background-color: var(--bs-body-secondary-bg); color: var(--bs-body-emphasis-color); padding: 0.5rem 1rem; border-radius: 0.5rem; font-weight: 500; border: 2px solid var(--bs-primary); box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.stopwatch-fixed.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.stopwatch-fixed #stopwatch-display { font-weight: 700; margin-left: 0.5rem; font-family: 'monospace'; }

/* BOTÃO FLUTUANTE INICIAR */
.fab-start-workout { position: fixed; bottom: 20px; right: 20px; z-index: 1040; border-radius: 50px; padding: 0.75rem 1.1rem; background-color: var(--bs-primary); color: var(--bs-primary-text-emphasis); box-shadow: 0 4px 15px rgba(0,0,0,0.3); display: flex; align-items: center; gap: 10px; text-decoration: none; transition: all 0.2s ease-in-out; }
.fab-start-workout:hover { transform: scale(1.05); box-shadow: 0 6px 20px var(--bs-primary); color: var(--bs-primary-text-emphasis); }
.fab-start-workout .fab-icon i { font-size: 1.3rem; line-height: 1; }
.fab-start-workout .fab-text { display: flex; flex-direction: column; line-height: 1.1; text-align: left; }
.fab-start-workout .fab-text span { font-size: 0.7rem; font-weight: 400; text-transform: uppercase; opacity: 0.9; }
.fab-start-workout .fab-text strong { font-size: 1rem; font-weight: 700; }
@keyframes shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); } 20%, 40%, 60%, 80% { transform: translateX(5px); } }
.shake-animation { animation: shake 0.5s ease-in-out 1; }

/* CARD DE ITEM (Dieta / Avaliação) */
.item-card { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1.25rem; margin-bottom: 0.75rem; border: 1px solid var(--bs-border-color); border-radius: var(--border-radius-md); cursor: pointer; background-color: var(--color-surface); transition: all 0.2s ease-in-out; text-decoration: none; }
.item-card:hover { border-color: var(--bs-primary); }
.item-card.completed { background-color: rgba(var(--bs-success-rgb), 0.1); opacity: 0.7; border-color: var(--bs-success); }
.item-card.completed .item-name { text-decoration: line-through; color: var(--color-text-secondary); }
.item-info { flex-grow: 1; margin-right: 1rem; }
.item-name { font-size: 1rem; font-weight: 700; margin: 0; text-align: left; }
.item-details { display: flex; align-items: center; width: auto; font-size: 0.8rem; color: var(--color-text-secondary); text-align: right; margin: 0; }
.dieta-alimentos-content { background-color: rgba(var(--bs-body-color-rgb), 0.05); padding: 0.75rem; border-radius: var(--border-radius-sm); white-space: pre-wrap; font-size: 0.9rem; margin-top: 0.75rem !important; }
.item-card.highlight { border-color: var(--bs-primary); box-shadow: 0 0 15px rgba(var(--bs-primary-rgb), 0.4); transform: scale(1.02); }

/* --- 7. MODIFICAÇÕES DE TEMA (Theme Overrides) --- */
[data-bs-theme="pink"] h1, [data-bs-theme="pink"] h2, [data-bs-theme="pink"] h3 { font-family: var(--font-pink-headings); text-shadow: 0 0 8px rgba(var(--bs-primary-rgb), 0.5); }
[data-bs-theme="pink"] .sidebar .nav-link.active { box-shadow: 0 0 10px var(--bs-primary); }
[data-bs-theme="pink"] .progress-bar { background-color: var(--bs-primary); box-shadow: 0 0 10px var(--bs-primary); }
[data-bs-theme="pink"] .exercise-checkbox:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    box-shadow: 0 0 10px var(--bs-primary);
    --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='#1f2937' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
[data-bs-theme="pink"] .complete-training-wrapper .btn { background-color: var(--bs-primary) !important; border-color: var(--bs-primary) !important; box-shadow: 0 0 10px var(--bs-primary); }
[data-bs-theme="pink"] .week-calendar .day.today { border-color: var(--bs-primary); box-shadow: 0 0 10px var(--bs-primary); }
[data-bs-theme="pink"] .week-calendar .day.completed { background-color: var(--bs-primary); }
/* [ATUALIZADO] Cor do SVG no tema Pink */
[data-bs-theme="pink"] .week-calendar .day.completed .week-day-check-svg { 
    fill: var(--bs-success-text-emphasis); /* Check verde-limão sobre fundo rosa */
}
[data-bs-theme="pink"] .week-calendar .day.today.completed .week-day-check-svg { 
    fill: var(--bs-primary-text-emphasis); 
}


[data-bs-theme="skull"] h1, [data-bs-theme="skull"] h2, [data-bs-theme="skull"] h3 { font-family: var(--font-skull-headings); letter-spacing: 2px; text-shadow: 0 0 10px rgba(var(--bs-primary-rgb), 0.6); }
[data-bs-theme="skull"] .card, [data-bs-theme="skull"] .btn, [data-bs-theme="skull"] .form-control, [data-bs-theme="skull"] .modal-content { border-radius: 0 !important; border-width: 2px; }
[data-bs-theme="skull"] .sidebar .nav-link.active { background: transparent !important; border-left: 4px solid var(--bs-primary); color: var(--bs-primary) !important; opacity: 1 !important; }
[data-bs-theme="skull"] .progress-bar { background: linear-gradient(90deg, var(--bs-danger), var(--bs-primary), var(--bs-warning)); background-size: 200% 200%; animation: fireEffect 2s linear infinite; }
@keyframes fireEffect { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }

/* [CORRIGIDO] Estilo do check para o tema Skull */
[data-bs-theme="skull"] .exercise-checkbox {
    border-radius: 0;
}
[data-bs-theme="skull"] .exercise-checkbox:checked {
    border-color: var(--bs-primary);
    background-color: transparent;
    box-shadow: 0 0 8px var(--bs-primary);
    /* [NOVO] SVG com a cor primária do tema Skull (#FF4500) */
    --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23DE2A1B' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
/* [REMOVIDO] Regra ::before morta */
/* [data-bs-theme="skull"] .exercise-checkbox:checked::before { ... } */

[data-bs-theme="skull"] .complete-training-wrapper .btn { background: linear-gradient(90deg, var(--bs-danger), var(--bs-primary), var(--bs-warning)); background-size: 200% 200%; animation: fireEffect 2s linear infinite; }
[data-bs-theme="skull"] .week-calendar .day.today { border-color: var(--bs-primary); }
[data-bs-theme="skull"] .week-calendar .day.completed { background-color: var(--bs-primary); }
/* [ATUALIZADO] Cor do SVG no tema Skull */
[data-bs-theme="skull"] .week-calendar .day.completed .week-day-check-svg { 
    fill: var(--bs-success-text-emphasis); /* Check verde-limão sobre fundo laranja */
}
[data-bs-theme="skull"] .week-calendar .day.today.completed .week-day-check-svg { 
    fill: var(--bs-primary-text-emphasis); 
}
[data-bs-theme="skull"] .stopwatch-fixed { font-family: var(--font-skull-headings); letter-spacing: 2px; }

.btn-success {
    background-color: var(--bs-success) !important;
    border-color: var(--bs-success) !important;
    color: var(--bs-success-text-emphasis) !important;
}

/* --- 8. HELPER PARA HTML2CANVAS --- */
.html2canvas-render-friendly,
.html2canvas-render-friendly * {
  background-image: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
  background-color: var(--bs-body-bg, #0D1117) !important;
}
.html2canvas-render-friendly .card,
.html2canvas-render-friendly .modal-content {
    background-color: var(--color-surface, #161B22) !important;
}
.html2canvas-render-friendly {
    color: var(--bs-body-emphasis-color, #f0f6fc) !important;
}
.html2canvas-render-friendly .text-primary,
.html2canvas-render-friendly .share-header .logo-area,
.html2canvas-render-friendly .share-training-title,
.html2canvas-render-friendly .share-footer .share-time,
.html2canvas-render-friendly .share-footer .share-time i {
    color: var(--bs-primary, #0d6efd) !important;
}
.html2canvas-render-friendly .text-success,
.html2canvas-render-friendly .exercise-check-icon {
    color: var(--bs-success, #198754) !important;
}
.html2canvas-render-friendly .text-info,
.html2canvas-render-friendly .obs-icon {
     color: var(--bs-info, #0dcaf0) !important;
}

/* [ATUALIZADO] Regra do html2canvas para o NOVO span e SVG */
.html2canvas-render-friendly .share-week-calendar .day .share-day-check-badge {
     background-color: var(--bs-success, #198754) !important;
     color: #FFFFFF !important; /* Garante que o SVG seja branco */
}
.html2canvas-render-friendly .share-week-calendar .day .share-day-check-badge svg {
     fill: #FFFFFF !important; /* Força o preenchimento do SVG */
}

.html2canvas-render-friendly .share-week-calendar .day.today {
     border-color: var(--bs-primary, #0d6efd) !important;
     color: var(--bs-primary, #0d6efd) !important;
}

/* --- 9. ESTILOS ESPECÍFICOS DE PÁGINA --- */
/* ============================================== */
/* Estilo da Caixa de Status (Perfil do Aluno)  */
/* ============================================== */
.status-info-box {
    padding: 1rem;
    border-radius: var(--border-radius-md);
    text-align: center;
    border-width: 2px;
    border-style: solid;
    font-size: 0.9rem;
}
.status-info-box.inactive {
    background-color: rgba(var(--bs-warning-rgb), 0.1); 
    border-color: var(--bs-warning); 
    color: var(--bs-warning); 
    font-weight: 500;
}
.status-info-box.inactive i {
    margin-right: 0.5rem; 
}
.status-info-box.active {
    background-color: rgba(var(--bs-success-rgb), 0.1); 
    border-color: var(--bs-success); 
    color: var(--bs-body-color); 
}
.status-info-box.active .status-title {
    font-weight: 600;
    color: var(--bs-success); 
    margin-bottom: 0.5rem;
    font-size: 1rem;
}
.status-info-box.active .status-title i {
     margin-right: 0.3rem;
}
.status-info-box.active .status-detail {
    font-weight: 500;
    color: var(--bs-body-emphasis-color); 
    margin-bottom: 0.25rem;
    word-break: break-word; 
}
.status-info-box.active .status-date {
    font-size: 0.8rem;
    color: var(--bs-secondary-color); 
}
@media (max-width: 767.98px) { 
  .card-body .row .col-md-8 {
    text-align: center;
  }
  .card-body .row .col-md-4 {
    width: 100%;
    margin-top: 1rem; 
  }
  .status-info-box {
    text-align: center;
  }
  .card-body .row .col-md-8 .btn {
       width: 100%;
  }
}
/* ============================================== */
/* Estilo do Accordion (Página Treinos Aluno)   */
/* ============================================== */
.accordion {
    --bs-accordion-border-width: 0;
    --bs-accordion-inner-border-radius: var(--border-radius-md); 
    --bs-accordion-border-radius: var(--border-radius-md);
}
.accordion-item {
    background-color: var(--color-surface); 
    border: 1px solid var(--bs-border-color); 
    margin-bottom: 1rem; 
    border-radius: var(--border-radius-md) !important; 
    overflow: hidden; 
}
.accordion-header .accordion-button {
    background-color: transparent; 
    color: var(--bs-body-emphasis-color); 
    font-weight: 600;
    box-shadow: none !important; 
    padding: 1rem 1.25rem;
}
.accordion-header .btn-outline-danger {
    position: absolute;
    right: 3.5rem; 
    top: 50%;
    transform: translateY(-50%);
    padding: 0.25rem 0.5rem; 
    font-size: 0.8rem;
}
.accordion-header .accordion-button:not(.collapsed) {
    background-color: rgba(var(--bs-primary-rgb), 0.1); 
    color: var(--bs-primary); 
    box-shadow: inset 0 -1px 0 var(--bs-border-color) !important; /* [REVISADO] Adicionado !important */
}
.accordion-header .accordion-button::after {
    display: none;
}
.accordion-header .accordion-button .collapse-indicator {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--bs-secondary-color); 
    margin-left: auto; 
    display: flex;
    align-items: center;
}
.accordion-header .accordion-button .collapse-indicator .collapse-text {
    margin-right: 0.5rem;
}
.accordion-body {
    padding: 1.25rem;
    background-color: var(--bs-body-bg); 
}
.accordion-body.p-0 {
    padding: 0 !important;
}
.accordion-body .list-group-flush .list-group-item {
     background-color: transparent;
     border-bottom: 1px solid var(--bs-border-color-translucent);
}
.accordion-body .list-group-flush .list-group-item:last-child {
    border-bottom: none;
}
.accordion-body .table {
    margin-bottom: 0; 
    font-size: 0.85rem; 
    color: var(--bs-body-color);
}
.accordion-body .table-responsive.border {
    border-color: var(--bs-border-color) !important;
}
.accordion-body .table thead {
    background-color: var(--bs-body-tertiary-bg); 
    color: var(--bs-body-emphasis-color);
    border-bottom: 2px solid var(--bs-border-color);
}
.accordion-body .table .exercise-table-name {
    font-weight: 600;
    color: var(--bs-body-emphasis-color);
}
.accordion-body .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--bs-body-secondary-bg); 
    color: var(--bs-body-color);
}
.accordion-body .table-hover > tbody > tr:hover > * {
     background-color: rgba(var(--bs-primary-rgb), 0.1);
     color: var(--bs-body-emphasis-color);
}
.accordion-body .table th {
    font-weight: 600;
    white-space: nowrap;
}
.accordion-body .table td {
    vertical-align: middle;
}
.accordion-body .table .btn-sm {
     padding: 0.2rem 0.4rem;
     font-size: 0.75rem;
}
.add-exercise-form .form-control-sm {
    font-size: 0.85rem; 
}
.add-exercise-form .btn-sm {
    font-size: 0.85rem; 
}
.conclude-treino-btn {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: var(--bs-primary-text-emphasis) !important;
    opacity: 0.9; 
}
.conclude-treino-btn:hover {
    opacity: 1; 
}
@media (max-width: 991.98px) { 
  .accordion-button .collapse-indicator {
    display: none !important;
  }
  .accordion-button::after {
    display: inline-block !important; 
    margin-left: auto; 
  }
}
@media (min-width: 992px) { 
      .accordion-button::after {
         display: none !important; 
      }
    .accordion-button .collapse-indicator {
         display: flex !important;
      }
}
/* ============================================== */
/* Estilo Página Visualizar Avaliação (Aluno)   */
/* ============================================== */
.page-header { display: none; } 
.measurements-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1.5rem;
}
.measurements-grid .imc-item {
    grid-column: 1 / -1;
    border-top: 1px solid var(--bs-border-color-translucent);
    margin-top: 0.75rem;
    padding-top: 0.75rem;
}
.measurements-grid .measurement-item:last-child {
    border-bottom: none;
}
.measurement-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--bs-border-color-translucent);
    font-size: 0.95rem;
}
.measurement-item:last-child {
    border-bottom: none; 
}
.measurements-grid .measurement-item:nth-last-child(-n+2) {
    border-bottom: none;
}
.measurement-item strong {
    color: var(--bs-secondary-color); 
    margin-right: 0.5rem;
}
.measurement-item span {
    font-weight: 500;
    color: var(--bs-body-emphasis-color);
    text-align: right;
}
.measurement-item.placeholder {
    visibility: hidden;
    border-bottom: none; 
}
.measurements-grid .col-span-2 {
    grid-column: 1 / -1; 
    border-bottom: none !important;
    padding-top: 0.5rem;
     text-align: center;
}
/* ============================================== */
/* CSS FINAL: Carrossel de Fotos Avaliação        */
/* ============================================== */
/* ============================================== */
/* CSS FINAL: Carrossel de Fotos Avaliação        */
/* (Corrigido para IDs dinâmicos)               */
/* ============================================== */

/* * CORREÇÃO: Usamos o ID do Acordeão PAI para aplicar
 * o estilo a TODOS os carrosséis dentro dele.
*/
#accordionAvaliacoes .carousel-inner,
#accordionAvaliacoesAdmin .carousel-inner {
  aspect-ratio: 3 / 4; 
  max-height: 60vh; /* <-- A caixa não passa desta altura */
  background-color: var(--bs-tertiary-bg); 
  border-radius: var(--border-radius-md); 
  overflow: hidden; 
}

/* 2. Esta regra força a IMAGEM a caber dentro da caixa, sem cortar */
#accordionAvaliacoes .carousel-item,
#accordionAvaliacoesAdmin .carousel-item {
  object-fit: contain; /* <-- É ISSO QUE FAZ A MÁGICA */
  height: 100%;
  width: 100%;
}

#accordionAvaliacoes .carousel-item img,
#accordionAvaliacoesAdmin .carousel-item img {
  
  /* Faz a imagem ocupar 100% do espaço do slide */
  width: 100%;
  height: 100%;
  
  /* A MÁGICA: Agora sim, dizemos para a IMAGEM se ajustar */
  object-fit: contain; 
}


/* O restante do CSS também precisa seguir a mesma lógica */
#accordionAvaliacoes .carousel-caption,
#accordionAvaliacoesAdmin .carousel-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  background-color: rgba(var(--bs-primary-rgb), 0.7); 
  color: var(--bs-primary-text-emphasis); 
  padding: 0.5rem 1rem;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
  text-shadow: none;
  transform: none;
  border-radius: 0;
}

#accordionAvaliacoes .carousel-caption p,
#accordionAvaliacoesAdmin .carousel-caption p {
    margin-bottom: 0;
}

#accordionAvaliacoes .carousel-control-prev-icon,
#accordionAvaliacoes .carousel-control-next-icon,
#accordionAvaliacoesAdmin .carousel-control-prev-icon,
#accordionAvaliacoesAdmin .carousel-control-next-icon {
  filter: brightness(0) invert(1) sepia(1) saturate(5) hue-rotate(190deg);
  background-size: 100%, 100%;
  opacity: 0.7; 
  transition: opacity 0.2s ease;
}

#accordionAvaliacoes .carousel-control-prev:hover .carousel-control-prev-icon, 
#accordionAvaliacoes .carousel-control-next:hover .carousel-control-next-icon,
#accordionAvaliacoesAdmin .carousel-control-prev:hover .carousel-control-prev-icon,
#accordionAvaliacoesAdmin .carousel-control-next:hover .carousel-control-next-icon {
    opacity: 1; 
}

#accordionAvaliacoes .carousel-indicators,
#accordionAvaliacoesAdmin .carousel-indicators {
    bottom: -15px; 
    margin-bottom: 0; 
    transition: bottom 0.3s ease-in-out;
}

#accordionAvaliacoes .carousel-indicators [data-bs-target],
#accordionAvaliacoesAdmin .carousel-indicators [data-bs-target] {
  background-color: var(--bs-primary); 
  opacity: 0.4; 
  height: 5px; 
  width: 25px; 
  border: none;
  margin: 0 4px;
  border-radius: 2px; 
}

#accordionAvaliacoes .carousel-indicators .active,
#accordionAvaliacoesAdmin .carousel-indicators .active {
  opacity: 1; 
}
@media (max-width: 575.98px) {
    .measurements-grid {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        gap: 0.5rem 1rem;
    }
    .measurement-item {
        font-size: 0.9rem;
    }
    .exercise-item {
        /* Reduz o padding vertical no mobile */
        padding-top: 10px;
        padding-bottom: 10px;
        /* Reduz o padding esquerdo para dar mais espaço */
        padding-left: 2.75rem; 
    }

    /* Reposiciona o checkbox de acordo com o novo padding */
    .exercise-checkbox {
        top: 10px; 
        left: 0.75rem;
    }

    .exercise-name {
        font-size: 0.9rem; /* Reduz a fonte do nome (de 1rem) */
    }

    .exercise-details {
        font-size: 0.75rem; /* Reduz a fonte dos detalhes (de 0.8rem) */
        gap: 0.5rem;      /* Reduz o espaço entre "série/rep" e "obs" */
    }

    /* Também reduzimos a mídia para ganhar mais espaço para o nome */
    .exercise-gif-preview img,
    .exercise-gif-preview video {
        width: 40px;
        height: 40px;
    }

    /* Ajusta o alinhamento do item minimizado no mobile */
    .exercise-item.minimized {
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }
}
/* ============================================== */
/* Estilo do Header do Treino (A, B, C...)        */
/* ============================================== */
.treino-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;  
    height: 40px;     
    padding: 0.25rem 0.5rem;
    font-size: 1.1rem;
    font-weight: 700; 
    line-height: 1;
    text-align: center;
    background-color: var(--bs-primary);
    color: var(--bs-primary-text-emphasis);
    border-radius: var(--border-radius-md);
    box-shadow: 0 2px 4px var(--shadow-color); 
}
.treino-title {
    font-size: 1.05rem; 
    font-weight: 600;   
    color: var(--bs-body-emphasis-color); 
    margin-left: 0.5rem; 
}
/* ============================================== */
/* Estilo Display Alimentos (Detalhes Dieta)        */
/* ============================================== */
.refeicao-alimentos-display {
    white-space: pre-wrap;
    padding: 0.75rem;
    background-color: var(--bs-body-secondary-bg);
    color: var(--bs-body-color);
    border-radius: var(--border-radius-sm);
    border: 1px solid var(--bs-border-color-translucent);
    font-size: 0.9rem;
    line-height: 1.6;
}
[data-bs-theme="light"] .refeicao-alimentos-display {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
/* ============================================== */
/* Estilo Página Minha Dieta (Aluno) - Accordion  */
/* ============================================== */
.aluno-content-container {
    max-width: 900px;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-bottom: 4rem;
}
.plan-title {
    font-weight: 700;
    color: var(--bs-primary);
    text-shadow: 0 0 12px rgba(var(--bs-primary-rgb), 0.5);
}
.plan-observations {
    background-color: var(--color-surface);
    border: 1px solid var(--bs-border-color);
    border-left: 4px solid var(--bs-primary);
    padding: 1.25rem;
    border-radius: var(--border-radius-md);
    margin-bottom: 2.5rem;
    box-shadow: 0 4px 15px var(--shadow-color);
}
.plan-observations p {
    margin: 0;
    color: var(--bs-body-color);
    opacity: 0.9;
    font-style: italic;
    white-space: pre-wrap; 
}
.plan-observations i {
    color: var(--bs-primary);
    opacity: 0.8;
}
.accordion-item.highlight {
    border-color: var(--bs-primary) !important;
    box-shadow: 0 0 20px rgba(var(--bs-primary-rgb), 0.5);
}
.accordion-item.highlight .accordion-button {
    color: var(--bs-primary);
}
.accordion-item.highlight .accordion-button:not(.collapsed) {
     box-shadow: inset 0 -2px 0 var(--bs-border-color);
}
.refeicao-horario {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 60px; 
    height: 40px;
    padding: 0.25rem 0.75rem;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    background-color: var(--bs-primary);
    color: var(--bs-primary-text-emphasis);
    border-radius: var(--border-radius-sm); 
    box-shadow: 0 2px 4px var(--shadow-color);
}
.refeicao-nome {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--bs-body-emphasis-color);
    margin-left: 0.75rem; 
}
.accordion-button:not(.collapsed) .refeicao-nome {
     color: var(--bs-primary);
}
.accordion-item.highlight .accordion-button.collapsed .refeicao-nome {
    color: var(--bs-primary); 
}
#dietaAlunoAccordion .accordion-body h6 {
    margin-bottom: 0.5rem; 
}
.refeicao-alimentos-display {
    white-space: pre-wrap;
    padding: 0.75rem 1.25rem;
    background-color: var(--bs-body-secondary-bg);
    color: var(--bs-body-color);
    border-radius: var(--border-radius-sm);
    border: 1px solid var(--bs-border-color-translucent);
    font-size: 0.9rem;
    line-height: 1.6;
}
[data-bs-theme="light"] .refeicao-alimentos-display {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
/* ============================================== */
/* --- 9. ESTILOS PÁGINA CARREIRA (ATUALIZADO COM CHECK) --- */
/* ============================================== */
.filtro-header-wrapper {
    display: flex;
    flex-wrap: wrap; 
    justify-content: space-between;
    align-items: center;
    gap: 1rem; 
    margin-bottom: 1.5rem;
}
.filtro-header-wrapper .form-label {
    display: none;
}
.filtro-form-inline {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
}
@media (max-width: 767.98px) {
    .filtro-header-wrapper {
        flex-direction: column; 
        align-items: stretch;
    }
    .filtro-form-inline {
        flex-direction: column; 
    }
    .filtro-form-inline .btn {
        width: 100%; 
    }
}
.calendario-wrapper {
    background-color: var(--color-surface);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--border-radius-md);
    box-shadow: 0 4px 15px var(--shadow-color);
    overflow: hidden;
}
.calendario-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    padding: 1rem;
}
.calendario-header {
    font-weight: bold;
    text-align: center;
    padding: 0.5rem;
    background-color: var(--bs-body-secondary-bg);
    border-radius: var(--border-radius-sm);
    font-size: 0.8rem;
    color: var(--bs-body-emphasis-color);
}
.calendario-dia {
    min-height: 70px; /* Era 75px */
    padding: 0.25rem; 
    background-color: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--border-radius-sm);
    font-size: 0.9rem;
    position: relative; 
    color: var(--bs-body-emphasis-color);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.calendario-dia.vazio {
    background-color: var(--bs-body-tertiary-bg);
    opacity: 0.7;
    border-color: var(--bs-border-color-translucent);
}
.calendario-dia .numero-dia {
    font-weight: bold;
    font-size: 0.8rem;
    opacity: 0.8;
    align-self: flex-start;
}
.calendario-dia .check-treino-top-right {
    position: absolute;
    top: 5px; 
    right: 5px; 
    font-size: 1.1rem; 
    color: var(--bs-success); 
    z-index: 2; 
}
.calendario-dia-detalhes {
    font-size: 0.6rem; /* Era 0.7rem */
    font-weight: 500;
    line-height: 1.2;
    text-align: left;
    width: 100%;
    margin-top: 0.25rem; 
    align-self: flex-end; 
}
.calendario-dia-detalhes .detalhe-item {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.calendario-dia-detalhes .detalhe-item i {
    font-size: 0.6rem;
    min-width: 10px;
}
.calendario-dia-detalhes .detalhe-item .text-info {
    color: var(--bs-info) !important;
}
.calendario-dia-detalhes .detalhe-item .text-success {
    color: var(--bs-success) !important;
}
.semana-grid .calendario-dia {
    min-height: 90px;
    align-items: center;
    justify-content: center;
    gap: 5px;
}
 .semana-grid .numero-dia {
    font-size: 1rem;
    opacity: 1;
    align-self: center;
    margin-top: 0;
}
  .semana-grid .calendario-dia-detalhes {
    text-align: left;
    align-self: flex-end; 
   }
  .semana-grid .calendario-dia-detalhes .detalhe-item {
    justify-content: flex-start; 
   }
  .semana-grid .calendario-dia .check-treino-top-right {
     top: 5px;
     right: 5px;
   }
.stat-card {
    background-color: var(--color-surface);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--border-radius-md);
    padding: 1.25rem;
    text-align: center;
    box-shadow: 0 4px 15px var(--shadow-color);
    height: 100%;
}
.stat-card-icon { font-size: 2rem; margin-bottom: 0.75rem; color: var(--bs-primary); }
.stat-card-title { font-size: 0.85rem; font-weight: 600; color: var(--bs-secondary-color); margin-bottom: 0.5rem; text-transform: uppercase; line-height: 1.2; }
.stat-card-value { font-size: 1.75rem; font-weight: 700; color: var(--bs-body-emphasis-color); }
.stat-card-value small { font-size: 1rem; font-weight: 400; color: var(--bs-secondary-color); }

/* ============================================== */
/* --- 10. AJUSTES MOBILE (PÁGINA CARREIRA) --- */
/* ============================================== */
@media (max-width: 575.98px) {
    .calendario-grid {
        gap: 3px;
        padding: 0.5rem;
    }
    .calendario-dia {
        min-height: 75px;
        padding: 0.3rem;
    }
    .calendario-dia .numero-dia {
        font-size: 0.75rem;
    }
    .check-treino-top-right {
        font-size: 1rem;
        top: 3px;
        right: 3px;
    }
    .calendario-dia-detalhes {
        font-size: 0.7rem;
        line-height: 1.3;
    }
    .calendario-dia-detalhes .detalhe-item i {
        font-size: 0.65rem;
    }
    .semana-grid .calendario-dia-detalhes {
        text-align: left;
        align-self: flex-end; 
    }
    .semana-grid .calendario-dia-detalhes .detalhe-item {
        justify-content: flex-start; 
    }
}
/* ============================================== */
/* Estilos para Cards Desabilitados (Aluno Inativo) */
/* ============================================== */
.acesso-restrito-container {
    background-color: rgba(var(--bs-warning-rgb), 0.15); 
    color: var(--bs-warning); 
    padding: 1.5rem; 
    margin: 1.5rem 0; 
    border-radius: var(--border-radius-md); 
    border: 1px solid rgba(var(--bs-warning-rgb), 0.3); 
    border-left: 5px solid var(--bs-warning); 
    position: relative; 
    text-align: center; 
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.acesso-restrito-container .icone-atencao {
    position: absolute;
    top: 1rem; 
    right: 1rem; 
    font-size: 1.8rem; 
    color: var(--bs-warning); 
    line-height: 1;
}
.acesso-restrito-container .titulo-restrito {
    font-size: 1.5rem; 
    margin-top: 0;
    margin-bottom: 0.75rem; 
    color: var(--bs-body-emphasis-color); 
}
.acesso-restrito-container .paragrafo-restrito {
    font-size: 1rem; 
    line-height: 1.6; 
    margin-bottom: 0;
    color: var(--bs-body-color); 
    opacity: 0.9;
}
@media (max-width: 768px) {
    .acesso-restrito-container {
        padding: 1rem;
        margin: 1rem 0;
    }
    .acesso-restrito-container .icone-atencao {
        font-size: 1.5rem;
        top: 0.75rem;
        right: 0.75rem;
    }
    .acesso-restrito-container .titulo-restrito {
        font-size: 1.3rem;
    }
    .acesso-restrito-container .paragrafo-restrito {
        font-size: 0.95rem;
    }
}
.lock-icon {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 1.5rem; 
  color: var(--bs-warning); 
  z-index: 10; 
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.col-6 .lock-icon {
    font-size: 1.2rem;
    top: 0.8rem;
    right: 0.8rem;
}
.disabled-card:hover {
    border-color: var(--bs-border-color) !important; 
    transform: none !important; 
    box-shadow: 0 4px 15px var(--shadow-color) !important; 
}

/* ===================================================================
   11. ESTILOS DO NOVO DASHBOARD (COMPATÍVEL COM TEMA)
   =================================================================== */

/* --- 11.1 Cards de estatísticas rápidas --- */
.stat-card-dashboard {
    background-color: var(--color-surface);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--border-radius-md); /* 0.75rem do seu tema */
    padding: 1.25rem; /* 20px (baseado no seu .stat-card) */
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px var(--shadow-color);
}
.stat-card-dashboard:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 16px var(--shadow-color);
}
.stat-card-dashboard .icon {
    font-size: 2.5rem;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff; /* A cor do ícone é definida pelo .bg-* (ex: bg-info) */
}
.stat-card-dashboard .info .title {
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    font-weight: 600;
    margin-bottom: 2px;
    text-transform: uppercase;
}
.stat-card-dashboard .info .value {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--bs-body-emphasis-color);
}
.stat-card-dashboard .info .value small {
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text-secondary);
}
.stat-card-dashboard a.details-link {
    font-size: 0.85rem;
    text-decoration: none;
    font-weight: 600;
}

/* --- 11.2 Calendário Geral --- */
.calendario-geral-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
}
.calendario-header {
    text-align: center;
    font-weight: 700;
    color: var(--color-text-secondary);
    font-size: 0.85rem;
    padding-bottom: 10px;
}
.calendario-dia-geral {
    position: relative;
    width: 100%;
    padding-top: 100%; /* Mantém a proporção quadrada */
    background-color: var(--bs-body-secondary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--border-radius-sm); /* 0.5rem do seu tema */
    font-size: 0.9rem;
}
.calendario-dia-geral.vazio {
    background-color: transparent;
    border: 1px solid var(--bs-border-color-translucent);
}
.calendario-dia-geral .numero-dia {
    position: absolute;
    top: 8px;
    left: 8px;
    font-weight: 600;
    color: var(--color-text-secondary);
}
.calendario-dia-geral.treinou {
    background-color: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary);
    cursor: pointer;
    transition: all 0.2s ease;
}
.calendario-dia-geral.treinou:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.2);
    transform: scale(1.05);
    z-index: 10;
    box-shadow: 0 4px 12px rgba(var(--bs-primary-rgb), 0.2);
}
.calendario-dia-geral.treinou .numero-dia {
    color: var(--bs-primary);
}
.frequencia-info {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding-top: 10px; /* Espaço para o número do dia */
}
.frequencia-info i {
    font-size: 1.5rem;
    color: var(--bs-primary);
}
.frequencia-info span {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--bs-primary);
}
/* Responsividade do Calendário */
@media (max-width: 768px) {
    .frequencia-info i { font-size: 1rem; }
    .frequencia-info span { font-size: 0.9rem; }
    .calendario-dia-geral .numero-dia { font-size: 0.8rem; top: 5px; left: 5px;}
}

/* --- 11.3 Lista de Expirações --- */
.expiracao-item {
    transition: background-color 0.2s ease;
}
.expiracao-item:hover {
    /* Bootstrap 5.3 já lida com o hover de .list-group-item-action, mas podemos garantir */
    background-color: var(--bs-body-secondary-bg);
}
