        :root { --primary: #2563eb; --dark: #1e293b; --bg: #f8fafc; --white: #ffffff; }
        body { font-family: 'Segoe UI', sans-serif; margin: 0; display: flex; background-color: var(--bg); height: 100vh; overflow: hidden; }

        /* Sidebar */
        .sidebar { width: 260px; background-color: var(--dark); color: white; display: flex; flex-direction: column; }
        .sidebar-header { padding: 20px; text-align: center; border-bottom: 1px solid #334155; }
        .nav-abas { flex-grow: 1; padding: 10px 0; }
        .aba-link { padding: 15px 25px; cursor: pointer; display: flex; align-items: center; transition: 0.2s; color: #cbd5e1; font-weight: 500; }
        .aba-link:hover { background-color: #334155; color: white; }
        .aba-link.ativa { background-color: var(--primary); color: white; border-left: 4px solid #fff; }
        #link-global, #link-horarios { display: none; }
        .btn-sair { padding: 15px 25px; background-color: #ef4444; color: white; border: none; cursor: pointer; font-weight: bold; margin-top: auto; }

        /* Área Principal */
        .main { flex-grow: 1; display: flex; flex-direction: column; overflow-y: auto; }
        .topo { padding: 15px 30px; background: white; box-shadow: 0 2px 4px rgba(0,0,0,0.05); display: flex; justify-content: space-between; align-items: center; }
        .conteudo-aba { padding: 30px; display: none; }
        .conteudo-aba.ativa { display: block; animation: fadeIn 0.3s; }

        /* Componentes de UI */
        .card { background: white; padding: 25px; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); margin-bottom: 20px; }
        .campo { margin-bottom: 15px; }
        label { display: block; font-weight: bold; margin-bottom: 8px; color: #475569; }
        select, input { width: 100%; padding: 12px; border: 1px solid #cbd5e1; border-radius: 8px; box-sizing: border-box; }
        .btn-confirmar { width: 100%; padding: 15px; background: #10b981; color: white; border: none; border-radius: 8px; font-weight: bold; cursor: pointer; }
        
        /* Estilo Disciplinas */
        .lista-disciplinas-container { display: flex; flex-direction: column; gap: 8px; margin: 15px 0 25px 0; }
        .item-disciplina { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 10px; cursor: pointer; transition: 0.2s; }
        .item-disciplina:hover:not(.bloqueado) { border-color: var(--primary); background: #f1f5f9; transform: translateX(5px); }
        .item-disciplina.bloqueado { opacity: 0.6; cursor: not-allowed; background: #f8fafc; }

        /* Status Badges */
        .status-badge { padding: 4px 8px; border-radius: 4px; font-size: 11px; font-weight: bold; text-transform: uppercase; margin-left: 10px; }
        .status-pendente { background: #fef3c7; color: #92400e; }
        .status-aprovado { background: #d1fae5; color: #065f46; }
        .status-rejeitado { background: #fee2e2; color: #991b1b; }
        .status-solicitado_exclusao { background: #ffedd5; color: #9a3412; }

        /* Slot de horários */
        .slot-horario {
            padding: 12px;
            border: 2px solid #e2e8f0;
            border-radius: 8px;
            cursor: pointer;
            text-align: center;
            transition: 0.2s;
            background: white;
        }
        .slot-horario:hover { border-color: var(--primary); background: #eff6ff; }
        .slot-horario.selecionado { border-color: var(--primary); background: var(--primary); color: white; font-weight: bold; }

        .msg-erro { 
            background: #fee2e2; 
            color: #991b1b; 
            border: 1px solid #f87171; 
        }
        .msg-info { 
            background: #e0f2fe; 
            color: #0369a1; 
            border: 1px solid #7dd3fc; 
        }

        .slot-meu-pendente { 
            border-color: #a855f7 !important; 
            background: #f3e8ff !important; /* Roxo bem clarinho */
            cursor: not-allowed; 
        }
        .texto-roxo { color: #7e22ce; font-weight: bold; font-size: 11px; }

        .slot-agendado { 
            border-color: #a855f7 !important; /* Roxo */
            background: #f3e8ff !important;    /* Roxo Claro */
            cursor: not-allowed;
            opacity: 1 !important;
        }
        .texto-roxo { color: #7e22ce; font-weight: bold; font-size: 11px; }

        /* Estado: Seleção atual (O que você está clicando agora) */
        .slot-horario.selecionado { 
            border-color: #10b981 !important; 
            background: #10b981 !important; 
            color: white !important; 
        }

        /* Estado: Recusado pelo tutor */
        .slot-recusado { 
            border-color: #ef4444 !important; 
            background: #fef2f2 !important; 
            cursor: not-allowed; 
        }

        .texto-vermelho { color: #b91c1c; font-weight: bold; font-size: 11px; }

        /* Container das seções de Disciplinas */
        .secao-disciplinas { margin-bottom: 30px; }
        .secao-titulo { font-size: 16px; font-weight: bold; color: var(--dark); margin-bottom: 15px; display: flex; align-items: center; gap: 10px; }

        /* Grid de matérias aprovadas (Visual limpo) */
        .grid-aprovadas { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
        .card-aprovada { background: #f0fdf4; border: 1px solid #bbf7d0; padding: 10px; border-radius: 8px; text-align: center; color: #166534; font-weight: 600; font-size: 13px; }

        /* Lista de solicitação (Checkboxes modernos) */
        .lista-solicitar { display: flex; flex-direction: column; gap: 8px; }
        .card-checkbox {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 15px;
            background: #fff;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            margin-bottom: 8px;
            transition: 0.3s;
        }
        .card-checkbox:hover {
            border-color: var(--primary);
            background: #f8fafc;
            box-shadow: 0 4px 12px rgba(0,0,0,0.05);
        }
        .card-checkbox input[type="checkbox"] {
            width: 22px;
            height: 22px;
            cursor: pointer;
        }
        /* Histórico (Visual discreto) */
        .item-historico { display: flex; justify-content: space-between; padding: 10px; border-bottom: 1px solid #f1f5f9; font-size: 13px; }
        
        .calendar-grid {
            display: grid;
            grid-template-columns: 80px repeat(5, 1fr); /* Horas + 5 dias */
            border: 1px solid #e2e8f0;
            background: #fff;
            border-radius: 8px;
        }

        .calendar-header {
            background: var(--dark);
            color: white;
            padding: 10px;
            text-align: center;
            font-weight: bold;
            font-size: 14px;
            border: 0.5px solid #334155;
        }

        .time-label {
            background: #f8fafc;
            font-size: 11px;
            font-weight: bold;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 0.5px solid #e2e8f0;
            color: #64748b;
        }

        .slot-calendario {
            height: 30px;
            border: 0.5px solid #f1f5f9;
            transition: 0.2s;
        }

        .slot-vazio { background-color: #f8fafc; }
        .slot-aprovado { background-color: #10b981; border-color: #059669; }
        .slot-pendente { background-color: #fbbf24; border-color: #d97706; }
        .slot-calendario:hover { filter: brightness(0.95); cursor: help; }

        .gaveta-participantes {
            margin-top: 12px;
            padding: 12px;
            background: #f1f5f9;
            border-radius: 8px;
            display: none;
            border: 1px solid #e2e8f0;
        }
        .btn-ver-grupo {
            background: #e2e8f0;
            border: none;
            color: #475569;
            font-size: 12px;
            font-weight: bold;
            cursor: pointer;
            padding: 6px 12px;
            margin-top: 10px;
            border-radius: 6px;
        }

        .btn-admin {
            display: none; /* Será alterado pelo JS */
            padding: 15px 25px;
            background-color: #334155;
            color: #cbd5e1;
            text-decoration: none;
            font-weight: 500;
            font-size: 14px;
            border-top: 1px solid #1e293b;
            box-sizing: border-box;
            transition: 0.2s;
            cursor: pointer;

            /* --- ADICIONE ESTAS LINHAS PARA CENTRALIZAR --- */
            align-items: center;
            justify-content: center;
            gap: 10px; /* Espaço entre o ícone e o texto */
        }
        .btn-admin:hover {
            background-color: #475569;
            color: white;
        }

        /* Estrelas de Avaliação */
        .rating-container { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 5px; margin: 10px 0 20px 0; }
        .rating-container input { display: none; }
        .rating-container label { font-size: 30px; color: #cbd5e1; cursor: pointer; transition: 0.2s; }
        .rating-container label:hover, .rating-container label:hover ~ label,
        .rating-container input:checked ~ label { color: #f59e0b; }

        .aviso-anonimo { background: #fff7ed; color: #9a3412; border: 1px solid #ffedd5; padding: 12px; border-radius: 8px; font-size: 13px; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }

        ul { list-style: none; padding: 0; margin: 15px 0; }
        li { background: #f1f5f9; padding: 10px; border-radius: 8px; margin-bottom: 5px; display: flex; justify-content: space-between; font-size: 14px; align-items: center; }

        @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
        /* Configurações para Celular */
        @media (max-width: 768px) {
            body { flex-direction: column; }

            .sidebar {
                position: fixed;
                left: 0;
                top: 0;
                bottom: 0;
                height: 100%;
                z-index: 999;
                transform: translateX(-100%); /* Esconde o menu para a esquerda */
                transition: 0.3s ease;
                box-shadow: 5px 0 15px rgba(0,0,0,0.2);
            }

            /* Classe que o JS vai adicionar para mostrar o menu */
            .sidebar.aberta-mobile {
                transform: translateX(0);
            }

            #btn-menu-mobile {
                display: block !important; /* Mostra o botão no mobile */
            }

            .main { width: 100%; }
            
            .topo { padding: 15px 20px; }
            
            .conteudo-aba { padding: 15px; }

            /* Ajuste para os cards não ficarem apertados */
            .card { padding: 15px; }
        }