﻿/* ================================================================
   ESTILOS PARA EL SISTEMA DE HORARIOS - IES SERRANIA
   Versión: 2.0
   Última actualización: [FECHA]
   ================================================================ */

/* ================== TABLA DE CONTENIDOS ================== */
/*
1. VARIABLES CSS Y UTILIDADES
2. ESTILOS BASE DE HORARIOS
3. TABLAS Y CELDAS DE HORARIO
4. LAYOUT PRINCIPAL (GRID/FLEXBOX)
5. SIDEBAR Y FORMULARIOS
6. COMPONENTES DE IMPORTACIÓN
7. ELEMENTOS INTERACTIVOS (BOTONES, MODALES)
8. ESTADOS Y ANIMACIONES
9. COMPONENTES DE RETROALIMENTACIÓN
10. RESPONSIVE DESIGN
11. UTILIDADES Y HELPERS
*/

/* ================== 1. VARIABLES CSS Y UTILIDADES ================== */
:root {
    /* Colores principales */
    --color-primary: #007bff;
    --color-primary-dark: #0056b3;
    --color-success: #28a745;
    --color-success-dark: #218838;
    --color-info: #17a2b8;
    --color-warning: #ffc107;
    --color-danger: #dc3545;
    /* Colores de fondo */
    --bg-light: #f8f9fa;
    --bg-light-hover: #e9ecef;
    --bg-white: #ffffff;
    /* Espaciado */
    --spacing-xs: 0.125rem;
    --spacing-sm: 0.25rem;
    --spacing-md: 0.5rem;
    --spacing-lg: 1rem;
    --spacing-xl: 2rem;
    /* Bordes y radios */
    --border-radius: 4px;
    --border-radius-lg: 8px;
    --border-radius-xl: 15px;
    /* Sombras */
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.1);
    --shadow-md: 0 4px 15px rgba(0,0,0,0.1);
    --shadow-lg: 0 8px 25px rgba(0,0,0,0.15);
    /* Transiciones */
    --transition-fast: all 0.2s ease;
    --transition-normal: all 0.3s ease;
}

/* ================== 2. ESTILOS BASE DE HORARIOS ================== */
.horarios-container {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #333;
}

/* Layout principal con especificidad */
body .container-fluid.container-horarios {
    max-width: 100% !important;
    padding-left: var(--spacing-sm) !important;
    padding-right: var(--spacing-sm) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

    body .container-fluid.container-horarios .row {
        display: flex !important;
        flex-wrap: wrap !important;
        margin-left: calc(var(--spacing-xs) * -1) !important;
        margin-right: calc(var(--spacing-xs) * -1) !important;
    }

/* ================== 3. TABLAS Y CELDAS DE HORARIO ================== */
.horario-tabla {
    table-layout: fixed;
    width: 100%;
}

    .horario-tabla th {
        background-color: var(--bg-light);
        font-weight: 600;
        text-align: center;
    }

    .horario-tabla td {
        height: 80px;
        padding: 5px;
        vertical-align: middle;
    }

/* Tabla mejorada para gestión */
.horario-tabla-mejorada {
    font-size: 0.8rem !important;
    table-layout: fixed !important;
    width: 100% !important;
}

    .horario-tabla-mejorada td {
        vertical-align: middle !important;
        min-height: 70px !important;
        padding: var(--spacing-sm) !important;
        width: 16.66% !important;
        position: relative !important;
        overflow: hidden !important;
    }

    .horario-tabla-mejorada th {
        font-weight: 600 !important;
        text-transform: uppercase !important;
        font-size: 0.75rem !important;
        letter-spacing: 0.5px !important;
        padding: 0.4rem var(--spacing-sm) !important;
    }

/* Celdas del horario - versión unificada */
.horario-celda {
    background-color: var(--bg-light) !important;
    border-radius: var(--border-radius) !important;
    height: 100% !important;
    padding: var(--spacing-sm) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    min-height: 65px !important;
    position: relative !important;
    transition: var(--transition-fast) !important;
}

    .horario-celda:hover {
        background-color: var(--bg-light-hover) !important;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
        transform: translateY(-1px) !important;
    }

    .horario-celda .asignatura {
        font-weight: 600;
        font-size: 0.9rem;
        margin-bottom: 2px;
    }

    .horario-celda .profesor {
        font-size: 0.8rem;
        color: #6c757d;
    }

    .horario-celda .grupo {
        font-size: 0.8rem;
        color: #6c757d;
    }

    .horario-celda .aula {
        font-size: 0.75rem;
        position: absolute;
        bottom: 5px;
        right: 5px;
        background: var(--bg-light-hover);
        padding: 1px 5px;
        border-radius: 3px;
    }

/* Estados especiales de celdas */
.recreo {
    background-color: #e2f0fb;
}

.celda-vacia {
    background: repeating-linear-gradient( 45deg, var(--bg-light), var(--bg-light) 10px, #f1f3f5 10px, #f1f3f5 20px );
    opacity: 0.7;
}

/* ================== 4. LAYOUT PRINCIPAL (GRID/FLEXBOX) ================== */
body .container-fluid.container-horarios .horario-main {
    flex: 0 0 auto !important;
    width: 83% !important;
    max-width: 83% !important;
    padding-left: var(--spacing-xs) !important;
    padding-right: var(--spacing-xs) !important;
}

body .container-fluid.container-horarios .horario-sidebar {
    flex: 0 0 auto !important;
    width: 17% !important;
    max-width: 17% !important;
    padding-left: var(--spacing-xs) !important;
    padding-right: var(--spacing-xs) !important;
}

/* ================== 5. SIDEBAR Y FORMULARIOS ================== */
.horario-sidebar .card {
    margin-bottom: var(--spacing-md) !important;
}

.horario-sidebar .card-header {
    padding: 0.4rem 0.6rem !important;
    font-size: 0.85rem !important;
}

.horario-sidebar .card-body {
    padding: 0.4rem !important;
}

.horario-sidebar .btn-sm {
    font-size: 0.7rem !important;
    padding: var(--spacing-sm) 0.4rem !important;
}

.horario-sidebar .form-select {
    font-size: 0.8rem !important;
    padding: var(--spacing-sm) var(--spacing-md) !important;
}

.horario-sidebar .form-label {
    font-size: 0.75rem !important;
    margin-bottom: var(--spacing-sm) !important;
}

.horario-sidebar .input-group-text {
    padding: var(--spacing-sm) 0.4rem !important;
    font-size: 0.8rem !important;
}

/* ================== 6. COMPONENTES DE IMPORTACIÓN ================== */
.import-container {
    background: linear-gradient(135deg, var(--bg-light) 0%, var(--bg-light-hover) 100%);
    min-height: calc(100vh - 200px);
    padding: 20px 0;
}

/* Área de carga unificada */
.upload-area,
.drop-zone,
#dropZone {
    background: var(--bg-white);
    border: 3px dashed var(--color-success);
    border-radius: var(--border-radius-xl);
    padding: 40px;
    margin-bottom: 30px;
    text-align: center;
    cursor: pointer !important;
    transition: var(--transition-normal);
    box-shadow: var(--shadow-md);
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    position: relative;
}

    .upload-area:hover,
    .drop-zone:hover,
    #dropZone:hover {
        border-color: var(--color-success-dark);
        background: #f8fff8;
        transform: translateY(-2px);
        box-shadow: 0 15px 35px rgba(0,0,0,0.3);
    }

    .upload-area.dragover,
    .drop-zone.dragover,
    #dropZone.dragover {
        border-color: var(--color-success-dark);
        background: #f0fff0;
        transform: scale(1.02);
    }

/* Ocultar input de archivo correctamente */
.file-input,
#MainContent_fileInput {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    z-index: -1 !important;
}

/* ================== 7. ELEMENTOS INTERACTIVOS ================== */
/* Componentes destacados */
.asignatura-destacada {
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    /*color: #1a365d !important;*/
    /*background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%) !important;*/
    border-radius: var(--border-radius) !important;
    padding: var(--spacing-sm) 0.4rem !important;
    border-left: 3px solid #1976d2 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1) !important;
    margin-bottom: 0.15rem !important;
    box-shadow: var(--shadow-sm) !important;
}

.grupo-compacto {
    font-size: 0.7rem !important;
    padding: 0.1rem var(--spacing-sm) !important;
    margin: 0.1rem 0 !important;
    line-height: 1.1 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    border-radius: 3px !important;
    display: inline-block !important;
}

/* Leyenda */
.leyenda-item {
    background-color: var(--bg-light) !important;
    border: 1px solid #dee2e6 !important;
    border-radius: var(--border-radius) !important;
    transition: var(--transition-fast) !important;
}

    .leyenda-item:hover {
        background-color: var(--bg-light-hover) !important;
        box-shadow: var(--shadow-sm) !important;
    }

/* Botones de acción */
.btn-action {
    border-radius: 25px;
    padding: 12px 30px;
    font-weight: 600;
    letter-spacing: 0.5px;
    transition: var(--transition-normal);
    position: relative;
    overflow: hidden;
}

    .btn-action:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(0,0,0,0.2);
    }

    .btn-action:active {
        transform: translateY(0);
    }

    .btn-action:disabled {
        opacity: 0.6;
        transform: none;
        box-shadow: none;
    }

/* ================== 8. ESTADOS Y ANIMACIONES ================== */
/* Loading overlay */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    backdrop-filter: blur(2px);
}

.loading-content {
    background: var(--bg-white);
    padding: 30px;
    border-radius: var(--border-radius-xl);
    box-shadow: var(--shadow-lg);
    text-align: center;
    border: 1px solid var(--bg-light-hover);
}

    .loading-content .spinner-border {
        width: 3rem;
        height: 3rem;
    }

    .loading-content p {
        margin-top: 15px;
        font-weight: 500;
        color: #6c757d;
    }

/* Animaciones */
@keyframes pulse {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 0.7;
    }

    100% {
        opacity: 1;
    }
}

@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    75% {
        transform: translateX(5px);
    }
}

@keyframes bounce {
    0%, 20%, 53%, 80%, 100% {
        transform: translate3d(0,0,0);
    }

    40%, 43% {
        transform: translate3d(0,-15px,0);
    }

    70% {
        transform: translate3d(0,-7px,0);
    }

    90% {
        transform: translate3d(0,-2px,0);
    }
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes countUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Estados especiales */
.processing {
    pointer-events: none;
    opacity: 0.7;
}

.success-state {
    border-color: var(--color-success) !important;
    background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%) !important;
}

.error-state {
    border-color: var(--color-danger) !important;
    background: linear-gradient(135deg, #f8d7da 0%, #f1b0b7 100%) !important;
}

.warning-state {
    border-color: var(--color-warning) !important;
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%) !important;
}

/* ================== 9. COMPONENTES DE RETROALIMENTACIÓN ================== */
/* Notificaciones */
.notification {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1050;
    max-width: 400px;
    animation: slideInRight 0.3s ease;
}

/* Modales */
.modal-asignatura {
    z-index: 1060;
}

    .modal-asignatura .modal-content {
        border-radius: var(--border-radius-xl);
        border: none;
        box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    }

    .modal-asignatura .modal-header {
        background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
        color: white;
        border-radius: var(--border-radius-xl) var(--border-radius-xl) 0 0;
        border-bottom: none;
    }

/* ================== 10. RESPONSIVE DESIGN ================== */
@media (max-width: 1400px) {
    body .container-fluid.container-horarios .horario-main {
        width: 80% !important;
        max-width: 80% !important;
    }

    body .container-fluid.container-horarios .horario-sidebar {
        width: 20% !important;
        max-width: 20% !important;
    }
}

@media (max-width: 1200px) {
    body .container-fluid.container-horarios .horario-main {
        width: 75% !important;
        max-width: 75% !important;
    }

    body .container-fluid.container-horarios .horario-sidebar {
        width: 25% !important;
        max-width: 25% !important;
    }
}

@media (max-width: 992px) {
    body .container-fluid.container-horarios .horario-main,
    body .container-fluid.container-horarios .horario-sidebar {
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 768px) {
    .horario-tabla-mejorada {
        font-size: 0.7rem !important;
    }

    .asignatura-destacada {
        font-size: 0.8rem !important;
    }

    .grupo-compacto {
        font-size: 0.55rem !important;
    }

    .upload-area,
    .drop-zone,
    #dropZone {
        padding: 20px;
    }

    .btn-action {
        padding: 10px 20px;
        font-size: 0.9rem;
    }
}

@media (max-width: 576px) {
    .import-container {
        padding: 10px 0;
    }

    .upload-area,
    .drop-zone,
    #dropZone {
        padding: 15px;
        margin-bottom: 20px;
    }
}

/* ================== 11. UTILIDADES Y HELPERS ================== */
.text-gradient {
    color: var(--color-primary);
    font-weight: 600;
    text-shadow: 1px 1px 2px rgba(0,123,255,0.3);
}

.shadow-soft {
    box-shadow: var(--shadow-sm) !important;
}

.shadow-medium {
    box-shadow: var(--shadow-md) !important;
}

.shadow-strong {
    box-shadow: var(--shadow-lg) !important;
}

.border-gradient {
    border: 2px solid;
    border-image: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)) 1;
}

/* Clases de animación */
.pulse {
    animation: pulse 2s infinite;
}

.shake {
    animation: shake 0.5s ease-in-out;
}

.bounce {
    animation: bounce 1s ease-in-out;
}

/* Helpers de espaciado */
.m-xs {
    margin: var(--spacing-xs) !important;
}

.m-sm {
    margin: var(--spacing-sm) !important;
}

.m-md {
    margin: var(--spacing-md) !important;
}

.m-lg {
    margin: var(--spacing-lg) !important;
}

.p-xs {
    padding: var(--spacing-xs) !important;
}

.p-sm {
    padding: var(--spacing-sm) !important;
}

.p-md {
    padding: var(--spacing-md) !important;
}

.p-lg {
    padding: var(--spacing-lg) !important;

}

/* ================== 12. COLORES DE ASIGNATURAS ================== */

/* === MATEMÁTICAS === */
.MAT {
    background: linear-gradient(135deg, #1E90FF 0%, #63B8FF 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.MAC {
    background: linear-gradient(135deg, #4682B4 0%, #6CA6CD 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.MAP {
    background: linear-gradient(135deg, #104E8B 0%, #3A75B0 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.MCS {
    background: linear-gradient(135deg, #5F9EA0 0%, #7FB3C1 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.MAA {
    background: linear-gradient(135deg, #6495ED 0%, #8AB6F2 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.MAB {
    background: linear-gradient(135deg, #87CEFA 0%, #B0E0FF 100%);
    color: #000;
}

.TMAT {
    background: linear-gradient(135deg, #B0C4DE 0%, #D6E0F0 100%);
    color: #000;
}

.REFMAT {
    background: linear-gradient(135deg, #ADD8E6 0%, #D0ECFF 100%);
    color: #000;
}

.PYINT1 {
    background: linear-gradient(135deg, #4169E1 0%, #6A8DF1 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

/* === CIENCIAS === */
.FyQ {
    background: linear-gradient(135deg, #228B22 0%, #4CAF50 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.FIS {
    background: linear-gradient(135deg, #006400 0%, #228B22 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.QUI {
    background: linear-gradient(135deg, #32CD32 0%, #66FF66 100%);
    color: black;
}

.BIO {
    background: linear-gradient(135deg, #2E8B57 0%, #4DBD8B 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.ByG {
    background: linear-gradient(135deg, #3CB371 0%, #6FD8A3 100%);
    color: black;
}

.CTMA {
    background: linear-gradient(135deg, #66CDAA 0%, #99E6D0 100%);
    color: black;
}

.CULCIE {
    background: linear-gradient(135deg, #7FFFD4 0%, #B2FFF0 100%);
    color: black;
}

.MC {
    background: linear-gradient(135deg, #20B2AA 0%, #4DD6C9 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.CAAP {
    background: linear-gradient(135deg, #8FBC8F 0%, #B2DDB2 100%);
    color: black;
}

.AST {
    background: linear-gradient(135deg, #556B2F 0%, #789D4C 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.EST {
    background: linear-gradient(135deg, #9ACD32 0%, #C0F060 100%);
    color: black;
}

.ELNIA {
    background: linear-gradient(135deg, #00FA9A 0%, #66FFC2 100%);
    color: black;
}

.GLG {
    background: linear-gradient(135deg, #90EE90 0%, #C0FFC0 100%);
    color: black;
}

.BGCA {
    background: linear-gradient(135deg, #98FB98 0%, #CCFFCC 100%);
    color: black;
}

.PYINT2 {
    background: linear-gradient(135deg, #00FF7F 0%, #66FFB2 100%);
    color: black;
}
/* === LENGUA Y LITERATURA === */
.LCL {
    background: linear-gradient(135deg, #800080 0%, #A64CA6 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.LITU {
    background: linear-gradient(135deg, #9932CC 0%, #BA55D3 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.AMPLyL {
    background: linear-gradient(135deg, #BA55D3 0%, #DDA0DD 100%);
    color: black;
}
/* === IDIOMAS EXTRANJEROS === */
.ING {
    background: linear-gradient(135deg, #3CB371 0%, #66D8A3 100%);
    color: black;
}

.FR1 {
    background: linear-gradient(135deg, #2E8B57 0%, #4DBD8B 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.FR2 {
    background: linear-gradient(135deg, #66CDAA 0%, #99E6D0 100%);
    color: black;
}

.ENGSKI {
    background: linear-gradient(135deg, #20B2AA 0%, #4DD6C9 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.EyCOLE {
    background: linear-gradient(135deg, #40E0D0 0%, #80F0E0 100%);
    color: black;
}
/* === LENGUAS CLÁSICAS === */
.LAT {
    background: linear-gradient(135deg, #B8860B 0%, #DAA520 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.GRI {
    background: linear-gradient(135deg, #8B4513 0%, #A0522D 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}
/* === EDUCACIÓN ARTÍSTICA === */
.EPVA {
    background: linear-gradient(135deg, #FF69B4 0%, #FF85C1 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.EPV {
    background: linear-gradient(135deg, #FFB6C1 0%, #FFD1DC 100%);
    color: black;
}

.MUS {
    background: linear-gradient(135deg, #DB7093 0%, #F080A1 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.DIB {
    background: linear-gradient(135deg, #FFC0CB 0%, #FFDDEE 100%);
    color: black;
}

.HMD {
    background: linear-gradient(135deg, #FF1493 0%, #FF6EB4 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.EAR {
    background: linear-gradient(135deg, #FF83FA 0%, #FFB3FD 100%);
    color: black;
}
/* === EDUCACIÓN FÍSICA Y SALUD === */
.EF {
    background: linear-gradient(135deg, #DC143C 0%, #FF4F6F 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.AFSS {
    background: linear-gradient(135deg, #B22222 0%, #D94A4A 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.AMPEF {
    background: linear-gradient(135deg, #CD5C5C 0%, #E88A8A 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}
/* === VALORES Y RELIGIÓN === */
.REL {
    background: linear-gradient(135deg, #FF7F50 0%, #FFA07A 100%);
    color: black;
}

.VE {
    background: linear-gradient(135deg, #FFA07A 0%, #FFC1A6 100%);
    color: black;
}

.VCE {
    background: linear-gradient(135deg, #FF6347 0%, #FF8C69 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.ECDH {
    background: linear-gradient(135deg, #FF4500 0%, #FF7F50 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.PTEV {
    background: linear-gradient(135deg, #FF8C69 0%, #FFB6A6 100%);
    color: black;
}
/* === TECNOLOGÍA E INFORMÁTICA === */
.TEC {
    background: linear-gradient(135deg, #A9A9A9 0%, #C0C0C0 100%);
    color: black;
}

.TAP {
    background: linear-gradient(135deg, #808080 0%, #A0A0A0 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.TIN {
    background: linear-gradient(135deg, #696969 0%, #909090 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.TICO {
    background: linear-gradient(135deg, #D3D3D3 0%, #E8E8E8 100%);
    color: black;
}

.TICO1 {
    background: linear-gradient(135deg, #C0C0C0 0%, #DCDCDC 100%);
    color: black;
}

.TICO2 {
    background: linear-gradient(135deg, #B0C4DE 0%, #D6E0F0 100%);
    color: black;
}

.TIYC {
    background: linear-gradient(135deg, #778899 0%, #A0B0C0 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.REDLO {
    background: linear-gradient(135deg, #708090 0%, #A0AAB0 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.SIOPM {
    background: linear-gradient(135deg, #2F4F4F 0%, #4F6F6F 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.SIOPR {
    background: linear-gradient(135deg, #1C1C1C 0%, #3C3C3C 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(255,255,255,0.2);
}

.SERRE {
    background: linear-gradient(135deg, #A9A9A9 0%, #C0C0C0 100%);
    color: black;
}

.GTIC {
    background: linear-gradient(135deg, #808080 0%, #A0A0A0 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.CyR {
    background: linear-gradient(135deg, #696969 0%, #909090 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.CDPC {
    background: linear-gradient(135deg, #DCDCDC 0%, #F0F0F0 100%);
    color: black;
}

.TECI {
    background: linear-gradient(135deg, #BEBEBE 0%, #D8D8D8 100%);
    color: black;
}

.DIG {
    background: linear-gradient(135deg, #E0E0E0 0%, #F5F5F5 100%);
    color: black;
}
/* === ASIGNATURAS DESTACADAS === */

/* GUARDIA – máxima prioridad */
.GUAR {
    background: linear-gradient(135deg, #FF0000 0%, #FF6347 100%);
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

/* GBIBLIO – prioridad media */
.GBIBLIO {
    background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
    color: black;
    font-weight: bold;
}

/* G+55 – prioridad baja */
.G55 {
    background: linear-gradient(135deg, #00CED1 0%, #40E0D0 100%);
    color: black;
    font-weight: bold;
}

/* === CIENCIAS SOCIALES === */
.GeH {
    background: linear-gradient(135deg, #CD853F 0%, #DEB887 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.HMC {
    background: linear-gradient(135deg, #D2691E 0%, #F4A460 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.HES {
    background: linear-gradient(135deg, #A0522D 0%, #BC6F3F 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.HAR {
    background: linear-gradient(135deg, #8B4513 0%, #A0522D 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.GEO {
    background: linear-gradient(135deg, #DAA520 0%, #FFD700 100%);
    color: black;
}

/* === FILOSOFÍA === */
.FIL {
    background: linear-gradient(135deg, #483D8B 0%, #6A5ACD 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.HFI {
    background: linear-gradient(135deg, #4B0082 0%, #6A0DAD 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

/* === ECONOMÍA === */
.ECO {
    background: linear-gradient(135deg, #2E8B57 0%, #3CB371 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.ECE {
    background: linear-gradient(135deg, #228B22 0%, #32CD32 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

/* === FORMACIÓN PROFESIONAL === */
.FOL {
    background: linear-gradient(135deg, #4682B4 0%, #5F9EA0 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.EINEM {
    background: linear-gradient(135deg, #6495ED 0%, #87CEEB 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

/* === TUTORÍAS Y ORIENTACIÓN === */
.TUTORÍA {
    background: linear-gradient(135deg, #FF8C00 0%, #FFA500 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.ORI {
    background: linear-gradient(135deg, #FF7F50 0%, #FF6347 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

/* === CARGOS DIRECTIVOS === */
.ED {
    background: linear-gradient(135deg, #8B0000 0%, #DC143C 100%);
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.6);
}

.ETCP {
    background: linear-gradient(135deg, #B22222 0%, #CD5C5C 100%);
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.JD {
    background: linear-gradient(135deg, #A0522D 0%, #D2691E 100%);
    color: white;
    font-weight: bold;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

/* === ATENCIÓN EDUCATIVA === */
.ATEDU {
    background: linear-gradient(135deg, #9370DB 0%, #BA55D3 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

/* === FORMACIÓN PROFESIONAL ESPECÍFICA === */
.IPEGB {
    background: linear-gradient(135deg, #4169E1 0%, #6495ED 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.IPGM {
    background: linear-gradient(135deg, #1E90FF 0%, #87CEEB 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.TAD {
    background: linear-gradient(135deg, #FFB6C1 0%, #FFC0CB 100%);
    color: black;
}

.SASP {
    background: linear-gradient(135deg, #32CD32 0%, #90EE90 100%);
    color: black;
}

.MMSCI {
    background: linear-gradient(135deg, #708090 0%, #A9A9A9 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.RTO3 {
    background: linear-gradient(135deg, #CD853F 0%, #DEB887 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.IMRTD {
    background: linear-gradient(135deg, #2F4F4F 0%, #696969 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

.APLWE {
    background: linear-gradient(135deg, #4682B4 0%, #87CEEB 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.SFCT {
    background: linear-gradient(135deg, #FF4500 0%, #FF6347 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}

.ELAM {
    background: linear-gradient(135deg, #DAA520 0%, #FFD700 100%);
    color: black;
    font-weight: bold;
}

.CDUAL {
    background: linear-gradient(135deg, #8A2BE2 0%, #9370DB 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

/* === TECNOLOGÍA Y DIGITALIZACIÓN === */
.TYD {
    background: linear-gradient(135deg, #556B2F 0%, #6B8E23 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}
/* === ANATOMÍA Y CIENCIAS APLICADAS === */
.ANAP {
    background: linear-gradient(135deg, #FF6347 0%, #FF7F50 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.ACCAAII {
    background: linear-gradient(135deg, #20B2AA 0%, #48CAE4 100%);
    color: white;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
}

.ACT {
    background: linear-gradient(135deg, #FF8C69 0%, #FFA07A 100%);
    color: black;
}

/* === ASIGNATURAS POR DEFECTO === */
.asignatura-default {
    background: linear-gradient(135deg, #B0C4DE 0%, #D3D3D3 100%);
    color: #333;
}

/* Estilos para asignaturas sin grupo */
.color-asignatura-sin-grupo {
    background-color: #ecf0f1 !important;
    color: #2c3e50 !important;
    border: 2px dashed #bdc3c7 !important;
}

