/* DentalCore - Estilos modernizados y suaves */

:root {
    --primary: #4A90E2;
    --primary-light: #E3F2FD;
    --primary-dark: #1565C0;
    --secondary: #7B68EE;
    --success: #26A69A;
    --warning: #FFA726;
    --danger: #EF5350;
    --info: #29B6F6;
    --light: #F8F9FA;
    --dark: #263238;
    --text: #37474F;
    --border: #ECEFF1;
}

html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

body {
    background-color: var(--light);
    color: var(--text);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* ============= NAVBAR ============= */
.main-header.navbar-white {
    background: white;
    border-bottom: 1px solid var(--border);
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* ============= SIDEBAR ============= */
.main-sidebar.sidebar-dark-primary {
    background: #F0F4F8;
}

.sidebar-dark-primary .brand-link {
    background: white;
    border-bottom: 1px solid #E0E7F1;
    color: #0D47A1;
    font-weight: 700;
}

.sidebar-dark-primary .nav-link {
    color: #263238;
    border-left: 3px solid transparent;
    transition: all 0.3s ease;
    font-weight: 500;
}

    .sidebar-dark-primary .nav-link i {
        color: #455A64;
    }

    .sidebar-dark-primary .nav-link:hover,
    .sidebar-dark-primary .nav-link.active {
        background: #B3C5D6;
        border-left-color: #4A90E2;
        color: #0D47A1 !important;
    }

        .sidebar-dark-primary .nav-link:hover i,
        .sidebar-dark-primary .nav-link.active i {
            color: #0D47A1;
        }

        .sidebar-dark-primary .nav-link:hover p,
        .sidebar-dark-primary .nav-link.active p {
            color: #0D47A1 !important;
        }

.sidebar-dark-primary .nav-header {
    color: #37474F;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.sidebar-dark-primary .user-panel {
    border-bottom: 1px solid #E0E7F1;
}

    .sidebar-dark-primary .user-panel a {
        color: #263238;
        font-weight: 600;
    }

    .sidebar-dark-primary .user-panel i {
        color: #455A64;
    }

/* Forzar colores oscuros en textos */
.sidebar-dark-primary .nav-link p {
    color: #263238 !important;
}

.sidebar-dark-primary .nav-item .nav-link {
    color: #263238 !important;
}

    .sidebar-dark-primary .nav-item .nav-link:not(.active) {
        color: #37474F !important;
    }

    .sidebar-dark-primary .nav-item .nav-link.active {
        color: #0D47A1 !important;
    }

/* ============= CARDS ============= */
.card {
    border: none;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: box-shadow 0.3s ease;
    margin-bottom: 20px;
}

    .card:hover {
        box-shadow: 0 4px 16px rgba(0,0,0,0.12);
    }

.card-header {
    background: white;
    border-bottom: 1px solid var(--border);
    padding: 1rem 1.5rem;
}

.card-body {
    padding: 1.5rem;
}

/* ============= SMALL BOXES (KPIs) ============= */
.small-box {
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border: none;
    overflow: hidden;
    transition: all 0.3s ease;
}

    .small-box:hover {
        transform: translateY(-4px);
        box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    }

    .small-box .inner {
        padding: 20px;
    }

    .small-box .small-box-footer {
        background: rgba(0,0,0,0.05);
        color: var(--text);
        padding: 10px 15px;
    }

    .small-box h3 {
        font-size: 2rem;
        font-weight: 700;
        margin: 0;
    }

    .small-box p {
        font-size: 0.9rem;
        margin: 5px 0 0 0;
        opacity: 0.9;
    }

/* Colores para small-boxes - SIN GRADIENTES */
.bg-info {
    background: #5DADE2 !important;
    color: white !important;
}

.bg-success {
    background: #58D68D !important;
    color: white !important;
}

.bg-warning {
    background: #F8B739 !important;
    color: white !important;
}

.bg-danger {
    background: #FF6B6B !important;
    color: white !important;
}

/* ============= BOTONES ============= */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--primary);
}

.btn-primary {
    background-color: var(--primary);
    border-color: var(--primary);
    border-radius: 6px;
}

    .btn-primary:hover {
        background-color: var(--primary-dark);
        border-color: var(--primary-dark);
    }

/* ============= TABLAS ============= */
.table th {
    background-color: var(--light);
    font-weight: 600;
    color: var(--text);
    border-color: var(--border);
}

.table tbody tr:hover {
    background-color: var(--primary-light);
}

/* ============= VALIDACIONES ============= */
.field-validation-error {
    color: var(--danger);
    font-size: 0.875rem;
}

.input-validation-error {
    border-color: var(--danger) !important;
}

/* ============= FORM CONTROLS ============= */
.form-control {
    border: 1px solid var(--border);
    border-radius: 6px;
}

    .form-control:focus {
        border-color: var(--primary);
        box-shadow: 0 0 0 3px var(--primary-light);
    }

/* ============= CONTENT HEADER ============= */
.content-header h1 {
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 10px;
}

/* ============= FOOTER ============= */
.main-footer {
    background: white;
    border-top: 1px solid var(--border);
    color: var(--text);
}

/* Forzar colores en brand y user panel */
.brand-link {
    color: #0D47A1 !important;
}

    .brand-link span {
        color: #0D47A1 !important;
    }

.user-panel .info a {
    color: #263238 !important;
}

.sidebar-dark-primary .brand-link {
    color: #0D47A1 !important;
}

    .sidebar-dark-primary .brand-link span {
        color: #0D47A1 !important;
    }

.sidebar-dark-primary .user-panel .info {
    color: #263238 !important;
}

    .sidebar-dark-primary .user-panel .info a {
        color: #263238 !important;
    }

.sidebar-dark-primary .user-panel .image i {
    color: #455A64 !important;
}
