/* ─────────────────────────────────────────────────────────────────────────────
   ClassExpress - Theme Variables
   Verde agua para botones principales
   ───────────────────────────────────────────────────────────────────────────── */
:root {
  /* Siempre modo oscuro */
  --bg-primary: #1a1a1a;
  --bg-secondary: #2d2d2d;
  --bg-tertiary: #3d3d3d;
  --text-primary: #68ddbd;
  --text-secondary: #adb5bd;
  --border-color: #495057;
  --card-bg: #2d2d2d;
  --navbar-bg: #1a1a1a;
  --navbar-text: #68ddbd;
  --input-bg: #2d2d2d;
  --input-border: #495057;
  
  /* Verde agua para botones principales */
  --primary-color: #20c997;
  --primary-hover: #1aa179;
  --primary-text: #ffffff;
  
  /* Secondary colors */
  --success-color: #28a745;
  --danger-color: #dc3545;
  --warning-color: #ffc107;
  --info-color: #17a2b8;
}

/* ─────────────────────────────────────────────────────────────────────────────
   Base Styles
   ───────────────────────────────────────────────────────────────────────────── */
body {
  background-color: var(--bg-primary) !important;
  color: var(--text-primary) !important;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Navbar */
.navbar {
  background-color: var(--navbar-bg) !important;
  border-bottom: 1px solid var(--border-color);
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.navbar-dark .nav-link {
  color: var(--navbar-text) !important;
}

.navbar-dark .navbar-brand {
  color: var(--navbar-text) !important;
}

/* Cards */
.card {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.card-header {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.card-body {
  color: var(--text-primary) !important;
}

/* Forms */
.form-control, .form-select {
  background-color: var(--input-bg) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.form-control::placeholder {
  color: var(--text-secondary) !important;
}

/* Tables */
.table {
  color: var(--text-primary) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: var(--bg-secondary) !important;
}

/* Badges */
.badge {
  color: var(--primary-text) !important;
}

/* Buttons */
.btn-primary {
  background-color: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
  color: var(--primary-text) !important;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.btn-primary:hover {
  background-color: var(--primary-hover) !important;
  border-color: var(--primary-hover) !important;
}

.btn-success {
  background-color: var(--success-color) !important;
  border-color: var(--success-color) !important;
}

.btn-danger {
  background-color: var(--danger-color) !important;
  border-color: var(--danger-color) !important;
}

.btn-warning {
  background-color: var(--warning-color) !important;
  border-color: var(--warning-color) !important;
  color: #212529 !important;
}

.btn-info {
  background-color: var(--info-color) !important;
  border-color: var(--info-color) !important;
}

.btn-outline-secondary {
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.btn-outline-secondary:hover {
  background-color: var(--bg-secondary) !important;
}

/* Links */
a {
  color: var(--primary-color) !important;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--primary-hover) !important;
}

/* Text utilities */
.text-muted {
  color: var(--text-secondary) !important;
}

.text-white {
  color: var(--text-primary) !important;
}

/* Background utilities */
.bg-dark {
  background-color: var(--bg-secondary) !important;
}

.bg-black {
  background-color: var(--bg-tertiary) !important;
}

.bg-white {
  background-color: var(--card-bg) !important;
}

.bg-light {
  background-color: var(--bg-tertiary) !important;
}

/* Border utilities */
.border-secondary,
.border-dark,
.border-black {
  border-color: var(--border-color) !important;
}

/* Text color utilities */
.text-dark,
.text-black,
.text-body {
  color: var(--text-primary) !important;
}

/* Button dark */
.btn-dark {
  background-color: var(--bg-tertiary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.btn-dark:hover {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.btn-outline-dark {
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.btn-outline-dark:hover {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Dropdown */
.dropdown-menu {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

.dropdown-item {
  color: var(--text-primary) !important;
}

.dropdown-item:hover {
  background-color: var(--bg-secondary) !important;
}

/* Modal */
.modal-content {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

.modal-header, .modal-body, .modal-footer {
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

/* Alert */
.alert {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

/* Tab */
.nav-tabs .nav-link {
  color: var(--text-secondary) !important;
  border-color: var(--border-color) !important;
}

.nav-tabs .nav-link.active {
  color: var(--primary-color) !important;
  background-color: var(--card-bg) !important;
  border-color: var(--primary-color) !important;
}

.tab-content {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

/* List group */
.list-group-item {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.list-group-item:hover {
  background-color: var(--bg-secondary) !important;
}

/* Existing styles */
.title-white {
  color: var(--text-primary);
  font-size: 3rem;
  font-weight: bold;
  text-shadow: 
    -1px -1px 0 var(--bg-tertiary),  
     1px -1px 0 var(--bg-tertiary),
    -1px  1px 0 var(--bg-tertiary),  
     1px  1px 0 var(--bg-tertiary);
}

.text-white {
  color: var(--text-primary);
}
.rating-container {
  background-color: var(--bg-primary);
  padding: 20px;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.mt-10 {
  margin-top: 10em;
}

.rate {
    border-bottom-right-radius: 12px;
    border-bottom-left-radius: 12px
}

.rating {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center
}

.rating>input {
    display: none
}

.rating>label {
    position: relative;
    width: 1em;
    font-size: 100px;
    font-weight: 300;
    color: #FFD600;
    cursor: pointer
}

.rating>label::before {
    content: "\2605";
    position: absolute;
    opacity: 0
}

.rating>label:hover:before,
.rating>label:hover~label:before {
    opacity: 1 !important
}

.rating>input:checked~label:before {
    opacity: 1
}

.rating:hover>input:checked~label:before {
    opacity: 0.4
}

.buttons {
    top: 36px;
    position: relative
}

.big-caption {
    font-size: 1.5em;
    font-weight: bold;
}

#input-busqueda::placeholder {
    color: #ffffff !important;
    opacity: 1 !important; /* Evita que el navegador le aplique transparencia */
}


        /* Estilo ultra compacto para el marco físico */
        .marco-fotografico {
            background-color: var(--bg-secondary);
            border: 8px solid var(--border-color);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5), inset 0 0 10px rgba(0,0,0,0.6);
            border-radius: 4px;
            padding: 12px;
            margin: 0 auto;
            max-width: 100%;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .marco-fotografico:hover {
            transform: translateY(-5px);
            box-shadow: 0 12px 25px rgba(13, 110, 253, 0.3), inset 0 0 10px rgba(0,0,0,0.6); /* Destello sutil azul */
        }

        /* Contenedor de la imagen */
        .contenedor-imagen {
            border: 2px solid var(--border-color);
            overflow: hidden;
            background-color: var(--bg-primary);
            border-radius: 2px;
        }

        /* Estrellas escaladas para ser más pequeñas */
        .contenedor-estrellas {
            position: relative;
            display: inline-block;
            font-size: 1rem;
            color: var(--text-secondary); 
        }

        .estrellas-activas {
            position: absolute;
            top: 0;
            left: 0;
            white-space: nowrap;
            overflow: hidden;
            color: #ffc107; 
        }
        
        .text-dorado {
            color: #FFD700; /* Color dorado */
            font-weight: bold;
        }

.account-settings .user-profile {
    text-align: center;
}
.account-settings .user-profile .user-avatar {
    margin: 0 0 1rem 0;
}
.account-settings .user-profile .user-avatar img {
    width: 90px;
    height: 90px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    border-radius: 100px;
}
.account-settings .user-profile h5.user-name {
    margin: 0 0 0.5rem 0;
}
.account-settings .user-profile h6.user-email {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-secondary);
}
.account-settings .about {
    text-align: center;
}
.account-settings .about h5 {
    margin: 0 0 15px 0;
    color: var(--primary-color);
}
.account-settings .about p {
    font-size: 0.825rem;
}
.form-control {
    border: 1px solid var(--border-color);
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    border-radius: 2px;
    font-size: .825rem;
    background: var(--input-bg);
    color: var(--text-primary);
}

.card {
    background: var(--card-bg);
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    border: 0;
    margin-bottom: 1rem;
}

.form-check-input:checked {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
}

.form-check-input-s {
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
    border: 3px solid var(--border-color) !important;
    border-radius: 6px;
    padding: 12px 16px;
    display: inline-block;
}

 .main-layout {
            height: calc(100vh - 56px);
        }

        /* Distribución exacta: 80% Aula / 20% Chat */
        @media (min-width: 992px) {
            .classroom-section {
                width: 80% !important;
                flex: 0 0 80% !important;
            }
            .chat-section {
                width: 20% !important;
                flex: 0 0 20% !important;
            }
        }

        .bg-classexpress-dark {
            background-color: var(--bg-secondary);
        }
        .bg-classexpress-chat {
            background-color: var(--bg-primary);
        }
        .border-grey {
            border-color: var(--border-color) !important;
        }

        /* Ajuste para que todo el texto dentro del chat use el color del tema */
        .chat-container {
            overflow-y: auto;
            word-break: break-word;
            color: var(--text-primary) !important;
        }
        
        .chat-container strong {
            color: var(--text-primary) !important;
        }

        .btn-disabled-status {
            background-color: #dc3545 !important;
            border-color: #dc3545 !important;
            color: #ffffff !important;
        }
        .btn-active-hand {
            background-color: #ffc107 !important;
            border-color: #ffc107 !important;
            color: #000000 !important;
        }
        .btn-classexpress {
            background-color: var(--card-bg);
            color: var(--text-primary);
            border: 1px solid var(--border-color);
            font-weight: 500;
        }
        .btn-classexpress:hover {
            background-color: var(--bg-secondary);
            color: var(--text-primary);
            border-color: var(--border-color);
        }