/* 
 * CSS Completo para Plugin Moris Pilates Horarios
 * Diseño moderno con paleta rosa-café y bordes redondeados
 * Archivo: assets/style.css
 */

/* === ESTILOS PRINCIPALES === */
.moris-schedule {
    max-width: 100% !important;
    margin: 20px 0 !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    background: #f5f5f5 !important;
    padding: 25px !important;
    border-radius: 20px !important;
    box-shadow: none !important;
    border: none !important;
}

.moris-schedule-wrapper .moris-schedule:not(:first-child) {
    margin-top: 50px !important;
}

/* === ENCABEZADO === */
.schedule-header {
    text-align: center !important;
    margin-bottom: 35px !important;
    padding-bottom: 25px !important;
    border-bottom: none !important;
    background: transparent !important;
}

.schedule-header h3 {
    margin: 0 !important;
    font-size: 2em !important;
    font-weight: 400 !important;
    color: #333 !important;
    letter-spacing: 0.5px !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
}

.schedule-updated {
    font-size: 0.9em !important;
    color: #666 !important;
    font-weight: 300 !important;
    margin-top: 10px !important;
}

/* === CONTENEDOR DE TABLA === */
.schedule-table-container {
    background: transparent !important;
    overflow-x: auto !important;
    padding: 10px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
}

/* === TABLA PRINCIPAL === */
.schedule-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 12px 8px !important;
    min-width: 700px !important;
    background: transparent !important;
    border: none !important;
}

.schedule-table thead {
    background: transparent !important;
}

.schedule-table th {
    padding: 15px 12px !important;
    text-align: center !important;
    font-weight: 600 !important;
    color: #333 !important;
    border: none !important;
    font-size: 0.9em !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.schedule-table th:first-child {
    text-align: center !important;
    color: #333 !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    width: 120px !important;
    background: #e8e8e8 !important;
    border-radius: 25px !important;
    writing-mode: vertical-rl !important;
    text-orientation: mixed !important;
    min-height: 80px !important;
    vertical-align: middle !important;
}

.schedule-table td {
    padding: 0 !important;
    border: none !important;
    vertical-align: middle !important;
    background: transparent !important;
    text-align: center !important;
}

.schedule-table td:first-child {
    padding: 12px !important;
    text-align: center !important;
    vertical-align: middle !important;
    background: #e8e8e8 !important;
    border-radius: 25px !important;
    color: #333 !important;
    font-weight: 500 !important;
    font-size: 0.85em !important;
    min-height: 50px !important;
    border: none !important;
    box-shadow: none !important;
}

/* === CELDAS DE HORARIO === */
.time-slot {
    font-weight: 500 !important;
    color: #333 !important;
    font-size: 0.85em !important;
    line-height: 1.2 !important;
    background: #e8e8e8 !important;
    border-radius: 25px !important;
    padding: 12px !important;
    white-space: nowrap !important;
    display: block !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

/* === CELDAS DE CLASES === */
.class-cell {
    padding: 6px !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
}

.class-info {
    padding: 15px 20px !important;
    border-radius: 25px !important;
    background: #4e3e3a !important;
    color: white !important;
    transition: all 0.3s ease !important;
    min-height: 50px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    text-align: center !important;
    margin: 0 !important;
    cursor: pointer !important;
    font-weight: 500 !important;
    border: none !important;
    box-shadow: none !important;
}

.class-info:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 25px rgba(78, 62, 58, 0.3) !important;
}

.class-name {
    font-weight: 600 !important;
    color: white !important;
    font-size: 0.9em !important;
    line-height: 1.2 !important;
    margin-bottom: 3px !important;
    text-align: center !important;
}

.instructor {
    font-size: 0.8em !important;
    color: rgba(255, 255, 255, 0.8) !important;
    font-weight: 400 !important;
    text-align: center !important;
    margin-top: 2px !important;
    font-style: normal !important;
}

.no-class {
    display: none !important;
}

/* === PALETA DE COLORES ROSA-CAFÉ === */

/* Body Pump - Beige rosado */
.class-info[data-class*="pump"],
.class-info[data-class*="body"] {
    background: #f4c2a1 !important;
}
.class-info[data-class*="pump"]:hover,
.class-info[data-class*="body"]:hover {
    box-shadow: 0 8px 25px rgba(244, 194, 161, 0.4) !important;
}

/* Circuit Training - Rosa salmón */
.class-info[data-class*="circuit"] {
    background: #e8a087 !important;
}
.class-info[data-class*="circuit"]:hover {
    box-shadow: 0 8px 25px rgba(232, 160, 135, 0.4) !important;
}

/* GRIT - Terracota */
.class-info[data-class*="grit"] {
    background: #c8756d !important;
}
.class-info[data-class*="grit"]:hover {
    box-shadow: 0 8px 25px rgba(200, 117, 109, 0.4) !important;
}

/* Zumba - Café rojizo */
.class-info[data-class*="zumba"] {
    background: #a8655e !important;
}
.class-info[data-class*="zumba"]:hover {
    box-shadow: 0 8px 25px rgba(168, 101, 94, 0.4) !important;
}

/* Core - Café medio */
.class-info[data-class*="core"] {
    background: #9d6b53 !important;
}
.class-info[data-class*="core"]:hover {
    box-shadow: 0 8px 25px rgba(157, 107, 83, 0.4) !important;
}

/* Pilates - Rosa polvo */
.class-info[data-class*="pilates"] {
    background: #f0b5a8 !important;
}
.class-info[data-class*="pilates"]:hover {
    box-shadow: 0 8px 25px rgba(240, 181, 168, 0.4) !important;
}

/* Dance - Rosa desaturado */
.class-info[data-class*="dance"] {
    background: #d89a94 !important;
}
.class-info[data-class*="dance"]:hover {
    box-shadow: 0 8px 25px rgba(216, 154, 148, 0.4) !important;
}

/* Balance - Melocotón */
.class-info[data-class*="balance"] {
    background: #edbaa7 !important;
}
.class-info[data-class*="balance"]:hover {
    box-shadow: 0 8px 25px rgba(237, 186, 167, 0.4) !important;
}

/* Reformer - Coral apagado */
.class-info[data-class*="reformer"] {
    background: #c47c71 !important;
}
.class-info[data-class*="reformer"]:hover {
    box-shadow: 0 8px 25px rgba(196, 124, 113, 0.4) !important;
}

/* YM - Durazno claro */
.class-info[data-class*="ym"] {
    background: #f2c2a7 !important;
}
.class-info[data-class*="ym"]:hover {
    box-shadow: 0 8px 25px rgba(242, 194, 167, 0.4) !important;
}

/* Wall Unit - Café rosado */
.class-info[data-class*="wall"] {
    background: #b8796f !important;
}
.class-info[data-class*="wall"]:hover {
    box-shadow: 0 8px 25px rgba(184, 121, 111, 0.4) !important;
}

/* Booty Build - Rosa empolvado */
.class-info[data-class*="booty"] {
    background: #e09b8f !important;
}
.class-info[data-class*="booty"]:hover {
    box-shadow: 0 8px 25px rgba(224, 155, 143, 0.4) !important;
}

/* Power Jump - Rosa tierra */
.class-info[data-class*="power"] {
    background: #d18b7f !important;
}
.class-info[data-class*="power"]:hover {
    box-shadow: 0 8px 25px rgba(209, 139, 127, 0.4) !important;
}

/* === FOOTER === */
.schedule-footer {
    margin-top: 30px !important;
    text-align: center !important;
    color: #666 !important;
    font-weight: 400 !important;
    font-size: 0.9em !important;
}

/* === NOTIFICACIONES === */
.moris-schedule-notice {
    padding: 25px !important;
    background: #fff !important;
    border-radius: 20px !important;
    color: #333 !important;
    text-align: center !important;
    font-weight: 400 !important;
    margin: 20px 0 !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
    border: none !important;
}

.moris-schedule-notice a {
    color: #4e3e3a !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

.moris-schedule-notice a:hover {
    text-decoration: underline !important;
}

.moris-update-notice {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 15px 20px !important;
    background: #fff !important;
    border-radius: 25px !important;
    margin-bottom: 25px !important;
    font-size: 14px !important;
    color: #333 !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1) !important;
    border: none !important;
}

.refresh-schedule-btn {
    background: #4e3e3a !important;
    color: white !important;
    border: none !important;
    padding: 8px 16px !important;
    border-radius: 20px !important;
    cursor: pointer !important;
    font-size: 12px !important;
    margin-left: 12px !important;
    transition: all 0.3s ease !important;
    font-weight: 500 !important;
}

.refresh-schedule-btn:hover {
    background: #3a2e2a !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(78, 62, 58, 0.3) !important;
}

.dismiss-notice {
    background: #f0f0f0 !important;
    border: none !important;
    font-size: 14px !important;
    cursor: pointer !important;
    color: #333 !important;
    margin-left: 10px !important;
    padding: 6px 10px !important;
    border-radius: 15px !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
}

.dismiss-notice:hover {
    background: #e0e0e0 !important;
}

.moris-message {
    padding: 15px 20px !important;
    border-radius: 20px !important;
    margin-bottom: 20px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    border: none !important;
}

.moris-success {
    background: #e8f5e8 !important;
    color: #2e7d32 !important;
}

.moris-error {
    background: #ffebee !important;
    color: #c62828 !important;
}

/* === BÚSQUEDA === */
.schedule-search-container {
    display: flex !important;
    margin-bottom: 30px !important;
    max-width: 350px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.schedule-search {
    flex-grow: 1 !important;
    padding: 12px 20px !important;
    border: none !important;
    border-radius: 25px 0 0 25px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    background: #fff !important;
    color: #333 !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
}

.schedule-search:focus {
    outline: none !important;
    box-shadow: 0 4px 20px rgba(78, 62, 58, 0.2) !important;
}

.clear-search {
    background: #fff !important;
    border: none !important;
    border-radius: 0 25px 25px 0 !important;
    padding: 12px 20px !important;
    cursor: pointer !important;
    color: #333 !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
}

.clear-search:hover {
    background: #f5f5f5 !important;
}

/* === TOOLTIP === */
.schedule-tooltip {
    position: absolute !important;
    background: #333 !important;
    color: white !important;
    padding: 10px 15px !important;
    border-radius: 15px !important;
    font-size: 12px !important;
    z-index: 1000 !important;
    box-shadow: 0 8px 25px rgba(0,0,0,0.2) !important;
    max-width: 200px !important;
    text-align: center !important;
    line-height: 1.4 !important;
    font-weight: 400 !important;
}

/* === INDICADOR DE CARGA === */
.schedule-loading {
    text-align: center !important;
    padding: 40px !important;
    color: #333 !important;
    font-weight: 400 !important;
    background: #fff !important;
    border-radius: 20px !important;
    margin: 20px 0 !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
}

.schedule-loading::after {
    content: "⏳" !important;
    display: block !important;
    font-size: 2.5em !important;
    margin-top: 15px !important;
    animation: bounce 1.5s infinite !important;
}

@keyframes bounce {
    0%, 100% { 
        transform: translateY(0);
    }
    50% { 
        transform: translateY(-10px);
    }
}

/* === VISTA COMPACTA === */
.moris-schedule.compact {
    padding: 20px !important;
    border-radius: 15px !important;
}

.moris-schedule.compact .schedule-table {
    border-spacing: 8px 6px !important;
}

.moris-schedule.compact .class-info {
    padding: 12px 16px !important;
    min-height: 40px !important;
    border-radius: 20px !important;
}

.moris-schedule.compact .class-name {
    font-size: 0.8em !important;
}

.moris-schedule.compact .instructor {
    font-size: 0.7em !important;
}

.moris-schedule.compact .schedule-header h3 {
    font-size: 1.6em !important;
}

.moris-schedule.compact .time-slot {
    font-size: 0.8em !important;
    border-radius: 20px !important;
}

/* === RESPONSIVE DESIGN === */

/* Tablets */
@media screen and (max-width: 768px) {
    .moris-schedule {
        padding: 20px !important;
        border-radius: 15px !important;
    }
    
    .schedule-header h3 {
        font-size: 1.6em !important;
    }
    
    .schedule-table {
        border-spacing: 8px 6px !important;
        min-width: 600px !important;
    }
    
    .schedule-table th,
    .schedule-table td:first-child {
        padding: 10px !important;
        font-size: 0.85em !important;
        border-radius: 20px !important;
    }
    
    .class-info {
        padding: 12px 16px !important;
        min-height: 45px !important;
        border-radius: 20px !important;
    }
    
    .class-name {
        font-size: 0.85em !important;
    }
    
    .instructor {
        font-size: 0.75em !important;
    }
    
    .time-slot {
        font-size: 0.8em !important;
        border-radius: 20px !important;
    }
}

/* Móviles */
@media screen and (max-width: 480px) {
    .moris-schedule {
        margin: 15px 0 !important;
        padding: 15px !important;
        border-radius: 12px !important;
    }
    
    .schedule-table {
        min-width: 500px !important;
        border-spacing: 6px 4px !important;
    }
    
    .schedule-table th,
    .schedule-table td:first-child {
        padding: 8px !important;
        font-size: 0.8em !important;
        border-radius: 15px !important;
    }
    
    .class-info {
        padding: 10px 12px !important;
        min-height: 35px !important;
        border-radius: 15px !important;
    }
    
    .class-name {
        font-size: 0.8em !important;
        line-height: 1.1 !important;
    }
    
    .instructor {
        font-size: 0.7em !important;
    }
    
    .time-slot {
        font-size: 0.75em !important;
        border-radius: 15px !important;
    }
    
    .schedule-search-container {
        max-width: 280px !important;
    }
}

/* === ANIMACIONES === */
.class-info {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.class-info:active {
    transform: translateY(-1px) !important;
}

/* === PRINT STYLES === */
@media print {
    .moris-schedule {
        background: white !important;
        padding: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    
    .schedule-header,
    .schedule-footer,
    .schedule-search-container,
    .moris-update-notice {
        display: none !important;
    }
    
    .schedule-table {
        border-spacing: 2px !important;
    }
    
    .schedule-table th,
    .schedule-table td {
        padding: 8px !important;
        font-size: 10px !important;
        border-radius: 0 !important;
        background: white !important;
        color: black !important;
        border: 1px solid #333 !important;
    }
    
    .class-info {
        background: white !important;
        color: black !important;
        border: 1px solid #333 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    
    .class-name {
        font-weight: 700 !important;
        color: black !important;
    }
    
    .instructor {
        color: #666 !important;
        font-size: 8px !important;
    }
}

/* === ACCESIBILIDAD === */
.schedule-table:focus-within {
    outline: 2px solid #c47c71 !important;
    outline-offset: 2px !important;
}

.class-info:focus {
    outline: 2px solid #c47c71 !important;
    outline-offset: 1px !important;
}

/* Modo de alto contraste */
@media (prefers-contrast: high) {
    .schedule-table th,
    .schedule-table td {
        border: 1px solid #000 !important;
    }
    
    .class-name {
        font-weight: 700 !important;
    }
    
    .time-slot {
        border: 2px solid #000 !important;
    }
}

/* === FINAL DEL ARCHIVO === */