﻿/** * Copyright (c) 2026 DNA Genics, S.L. All rights reserved.
 * 
 * DnaGenics Design System 2025 - Master Import File
 * Earth-Amber Cinematic Palette - Premium Cinematic Theme
 * 
 * Based on ProductSharedModernOrigins aesthetic with
 * warm amber/gold accents, earth tones, and warm cream backgrounds.
 * 
 * Import order is important for proper cascade.
 */

/* ========================================
   CORE DESIGN SYSTEM IMPORTS
   ======================================== */

/* 1. Variables - CSS Custom Properties (Earth-Amber Palette) */
@import url('./dnagenics-variables.css');

/* 2. Base - HTML element styles, typography, global resets */
@import url('./dnagenics-base.css');

/* 3. Components - UI components (cards, buttons, forms, tables) */
@import url('./dnagenics-components.css');

/* 4. Layout - Page structure, sidebar, navbar, grid */
@import url('./dnagenics-layout.css');

/* 5. Utilities - Helper classes, animations, spacing */
@import url('./dnagenics-utilities.css');

/* ========================================
   LEGACY COMPATIBILITY LAYER
   Maps old class names to new design system
   ======================================== */

/* Legacy Color Classes - Map to Amber Gold Palette */

/* Gold to Amber Gold Mappings */
.text-dng-gold,
.text-gold {
    color: var(--dng-coral) !important;
}

.text-gold-dark {
    color: var(--dng-coral-dark) !important;
}

.bg-dng-gold,
.bg-gold {
    background-color: var(--dng-coral) !important;
}

.bg-gold-subtle,
.bg-dng-gold-subtle {
    background-color: var(--dng-coral-subtle) !important;
}

.border-gold,
.border-dng-gold {
    border-color: var(--dng-coral) !important;
}

/* Legacy DnaGenics Classes */
.dnagenics-section-title {
    font-family: var(--dng-font-serif);
    font-size: var(--dng-text-3xl);
    font-weight: var(--dng-font-semibold);
    color: var(--dng-charcoal);
    letter-spacing: var(--dng-tracking-tight);
}

.dnagenics-subtitle {
    font-size: var(--dng-text-lg);
    color: var(--dng-text-muted);
    line-height: var(--dng-leading-relaxed);
}

/* Legacy Card Classes */
.card-dnagenics {
    background-color: var(--dng-warm-white);
    border: 1px solid var(--dng-border-light);
    border-radius: var(--dng-radius-lg);
    box-shadow: var(--dng-shadow-soft);
}

.card-dnagenics .card-header {
    background: var(--dng-white);
    border-bottom: 2px solid var(--dng-border-coral);
    padding: 1.25rem 1.5rem;
}

.card-dnagenics .card-header h4,
.card-dnagenics .card-header h5 {
    font-family: var(--dng-font-serif);
    color: var(--dng-charcoal);
    font-weight: var(--dng-font-semibold);
    margin-bottom: 0;
}

/* Legacy Gradient Classes */
.bg-gradient-dnagenics-primary {
    background: linear-gradient(135deg, var(--dng-coral) 0%, var(--dng-coral-dark) 100%) !important;
}

.bg-gradient-dnagenics-secondary {
    background: linear-gradient(135deg, var(--dng-teal) 0%, var(--dng-teal-dark) 100%) !important;
}

/* Legacy Shadow Classes */
.shadow-dnagenics-light {
    box-shadow: var(--dng-shadow-soft) !important;
}

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

.shadow-dnagenics-heavy {
    box-shadow: var(--dng-shadow-lg) !important;
}

/* Legacy Icon Circle Classes - Map to Coral */
.dng-icon-circle-gold {
    background: linear-gradient(135deg, var(--dng-coral) 0%, var(--dng-coral-dark) 100%);
}

/* Legacy Button Classes */
.btn-dnagenics-primary {
    color: var(--dng-earth-deep);
    background: linear-gradient(135deg, var(--dng-coral) 0%, var(--dng-coral-light) 100%);
    border-color: var(--dng-coral);
    box-shadow: var(--dng-shadow-coral);
}

.btn-dnagenics-primary:hover {
    color: var(--dng-earth-deep);
    background: linear-gradient(135deg, var(--dng-coral-light) 0%, var(--dng-coral) 100%);
    border-color: var(--dng-coral);
    box-shadow: 0 12px 40px rgba(201, 169, 98, 0.35);
    transform: translateY(-2px);
}

.btn-dnagenics-primary:focus {
    box-shadow: 0 0 0 4px var(--dng-coral-glow);
}

.btn-dnagenics-secondary {
    color: var(--dng-white);
    background-color: var(--dng-teal);
    border-color: var(--dng-teal);
}

.btn-dnagenics-secondary:hover {
    color: var(--dng-white);
    background-color: var(--dng-teal-dark);
    border-color: var(--dng-teal-dark);
    box-shadow: var(--dng-shadow-teal-sm);
}

/* ========================================
   DATATABLES CUSTOM STYLING
   Earth-Amber Cinematic Palette
   ======================================== */

/* DataTables Container */
.dataTables_wrapper {
    font-family: var(--dng-font-sans);
}

/* DataTables Header */
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin-bottom: var(--dng-space-4);
}

.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
    font-family: var(--dng-font-sans);
    border: 1px solid var(--dng-gray-300);
    border-radius: var(--dng-radius-sm);
    padding: var(--dng-space-2) var(--dng-space-3);
    background-color: var(--dng-white);
    transition: border-color var(--dng-transition-fast), box-shadow var(--dng-transition-fast);
}

.dataTables_wrapper .dataTables_length select:focus,
.dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--dng-coral);
    outline: 0;
    box-shadow: var(--dng-shadow-focus);
}

/* DataTables Table */
table.dataTable {
    border-collapse: collapse !important;
    width: 100% !important;
}

table.dataTable thead th {
    font-family: var(--dng-font-sans);
    font-weight: var(--dng-font-semibold);
    font-size: var(--dng-text-sm);
    color: var(--dng-charcoal);
    text-transform: uppercase;
    letter-spacing: var(--dng-tracking-wide);
    background-color: var(--dng-cream-dark);
    border-bottom: 2px solid var(--dng-border-coral) !important;
    padding: var(--dng-space-3) var(--dng-space-4);
}

/* Cinematic DataTables Header (Earth gradient) */
table.dataTable.cinematic thead th {
    background: linear-gradient(180deg, var(--dng-earth-dark) 0%, var(--dng-earth-deep) 100%) !important;
    color: #f4d98a !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

table.dataTable thead th:focus {
    outline: none;
}

table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
    opacity: 0.5;
}

table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:after {
    opacity: 1;
    color: var(--dng-coral);
}

table.dataTable tbody td {
    padding: var(--dng-space-3) var(--dng-space-4);
    border-bottom: 1px solid var(--dng-border-light);
    vertical-align: middle;
}

table.dataTable tbody tr:hover {
    background-color: var(--dng-coral-subtle) !important;
}

table.dataTable.stripe tbody tr.odd,
table.dataTable.display tbody tr.odd {
    background-color: var(--dng-cream);
}

table.dataTable.stripe tbody tr.even,
table.dataTable.display tbody tr.even {
    background-color: var(--dng-white);
}

/* DataTables Pagination - Cinematic Style (matching G25Explorer) */
.dataTables_wrapper .dataTables_paginate {
    margin-top: var(--dng-space-4, 1.5rem);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.25rem;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0;
    margin: 0;
    border: 1px solid var(--dbc-gray-200, #e4e2dc) !important;
    border-radius: var(--dbc-radius-md, 10px) !important;
    background: var(--dbc-white, #ffffff) !important;
    color: var(--dbc-text-body, #4a473f) !important;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none !important;
    transition: all var(--dbc-transition-fast, 0.15s cubic-bezier(0.4, 0, 0.2, 1));
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover:not(.disabled):not(.current) {
    background: var(--dbc-amber-subtle, rgba(201, 169, 98, 0.12)) !important;
    border-color: var(--dbc-amber, #c9a962) !important;
    color: var(--dbc-amber-dark, #a0854e) !important;
    text-decoration: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--dbc-amber, #c9a962) !important;
    border-color: var(--dbc-amber, #c9a962) !important;
    color: var(--dbc-white, #ffffff) !important;
    font-weight: 500;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--dbc-amber-light, #d4b974) !important;
    border-color: var(--dbc-amber-light, #d4b974) !important;
    color: var(--dbc-white, #ffffff) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    background: var(--dbc-white, #ffffff) !important;
    border-color: var(--dbc-gray-200, #e4e2dc) !important;
    color: var(--dbc-text-body, #4a473f) !important;
}

/* DataTables Info */
.dataTables_wrapper .dataTables_info {
    font-size: var(--dng-text-sm);
    color: var(--dng-text-muted);
    padding-top: var(--dng-space-4);
}

/* ========================================
   SPECIAL PAGE LAYOUTS
   ======================================== */

/* Dashboard Statistics */
.dng-stat-card {
    background: var(--dng-warm-white);
    border: 1px solid var(--dng-border-light);
    border-radius: var(--dng-radius-lg);
    padding: var(--dng-space-6);
    box-shadow: var(--dng-shadow-soft);
    transition: transform var(--dng-transition-fast), box-shadow var(--dng-transition-fast);
}

.dng-stat-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--dng-shadow-md);
}

.dng-stat-card-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--dng-radius-md);
    margin-bottom: var(--dng-space-4);
}

.dng-stat-card-icon.coral {
    background-color: var(--dng-coral-subtle);
    color: var(--dng-coral);
}

.dng-stat-card-icon.teal {
    background-color: var(--dng-teal-subtle);
    color: var(--dng-teal);
}

.dng-stat-card-icon.amber {
    background-color: var(--dng-amber-subtle);
    color: var(--dng-amber);
}

.dng-stat-card-icon.success {
    background-color: var(--dng-success-subtle);
    color: var(--dng-success);
}

.dng-stat-value {
    font-family: var(--dng-font-serif);
    font-size: var(--dng-text-3xl);
    font-weight: var(--dng-font-bold);
    color: var(--dng-charcoal);
    margin-bottom: var(--dng-space-1);
}

.dng-stat-label {
    font-size: var(--dng-text-sm);
    color: var(--dng-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--dng-tracking-wide);
}

/* Empty State */
.dng-empty-state {
    text-align: center;
    padding: var(--dng-space-12) var(--dng-space-6);
}

.dng-empty-state-icon {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--dng-radius-full);
    background-color: var(--dng-coral-subtle);
    margin: 0 auto var(--dng-space-6);
}

.dng-empty-state-icon i {
    font-size: 2rem;
    color: var(--dng-coral);
}

.dng-empty-state-title {
    font-family: var(--dng-font-serif);
    font-size: var(--dng-text-xl);
    font-weight: var(--dng-font-semibold);
    color: var(--dng-charcoal);
    margin-bottom: var(--dng-space-2);
}

.dng-empty-state-description {
    font-size: var(--dng-text-base);
    color: var(--dng-text-muted);
    max-width: 400px;
    margin: 0 auto var(--dng-space-6);
}

/* Loading Overlay */
.dng-loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(250, 249, 247, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--dng-z-overlay);
}

.dng-loading-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid var(--dng-coral-subtle);
    border-top-color: var(--dng-coral);
    border-radius: var(--dng-radius-full);
    animation: dng-spin 0.8s linear infinite;
}

/* ========================================
   CINEMATIC CATEGORY CONTAINERS
   ======================================== */

.dbc-category {
    background: var(--dng-white);
    border: 1px solid var(--dng-border-light);
    border-radius: var(--dng-radius-lg);
    padding: var(--dng-space-6);
    margin-bottom: var(--dng-space-6);
    transition: all var(--dng-transition);
}

.dbc-category:hover {
    box-shadow: var(--dng-shadow-soft);
}

.dbc-category-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--dng-space-4);
    padding-bottom: var(--dng-space-3);
    border-bottom: 1px solid var(--dng-gray-100);
}

.dbc-category-title-wrap {
    display: flex;
    align-items: center;
    gap: var(--dng-space-3);
}

.dbc-category-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--dng-coral-subtle);
    color: var(--dng-coral);
    border-radius: var(--dng-radius-sm);
    font-size: 1rem;
}

.dbc-category-title {
    font-family: var(--dng-font-serif);
    font-size: var(--dng-text-xl);
    font-weight: var(--dng-font-semibold);
    color: var(--dng-charcoal);
    margin: 0;
}

.dbc-category-count {
    font-size: var(--dng-text-sm);
    color: var(--dng-text-muted);
    background: var(--dng-gray-100);
    padding: 0.25rem 0.75rem;
    border-radius: var(--dng-radius-sm);
}

/* ========================================
   RESPONSIVE ADJUSTMENTS
   ======================================== */

@media (max-width: 768px) {
    .dng-stat-card {
        padding: var(--dng-space-4);
    }
    
    .dng-stat-value {
        font-size: var(--dng-text-2xl);
    }
    
    .dng-empty-state {
        padding: var(--dng-space-8) var(--dng-space-4);
    }
    
    .dng-empty-state-icon {
        width: 64px;
        height: 64px;
    }
    
    .dng-empty-state-icon i {
        font-size: 1.5rem;
    }
}

/* ========================================
   Z-INDEX MANAGEMENT FOR MODALS
   Ensures modals display properly over all content
   ======================================== */

.modal {
    z-index: var(--dng-z-modal) !important;
}

.modal-backdrop {
    z-index: var(--dng-z-overlay) !important;
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
    .sidebar,
    .topbar,
    .scroll-to-top,
    .btn,
    .alert,
    .dataTables_length,
    .dataTables_filter,
    .dataTables_paginate,
    .dataTables_info {
        display: none !important;
    }
    
    #content-wrapper {
        margin-left: 0 !important;
        background-color: white !important;
    }
    
    .card,
    .card-dnagenics,
    .dng-card,
    .dng-form-card {
        box-shadow: none !important;
        border: 1px solid #ddd !important;
    }
    
    body {
        background-color: white !important;
    }
}
