/* ========================================================
   IDENTIDAD VISUAL EDUCORP
   Bosque, oliva, terracota y marfil
   ======================================================== */

/* Las secciones de producto comparten una misma superficie para evitar
   que cada módulo parezca pertenecer a una aplicación diferente. */
body:not(.dark-mode) {
    background-color: var(--bg-primary);
    background-image: linear-gradient(rgba(36, 89, 74, 0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(36, 89, 74, 0.025) 1px, transparent 1px);
    background-size: 32px 32px;
}

body:not(.dark-mode) .neon-nav {
    background: rgba(255, 253, 248, 0.94);
    border-bottom: 2px solid var(--color-accent);
    box-shadow: 0 4px 18px rgba(42, 44, 35, 0.08);
}

body:not(.dark-mode) .neon-nav .logo {
    color: var(--color-primary);
    letter-spacing: 0.4px;
}

body:not(.dark-mode) .neon-nav .logo span {
    color: var(--color-secondary);
    background: rgba(184, 111, 82, 0.1);
    border: 1px solid rgba(184, 111, 82, 0.25);
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 0.68rem;
    letter-spacing: 0.4px;
}

body:not(.dark-mode) .neon-nav a:hover,
body:not(.dark-mode) .neon-nav a.active {
    background: #e8f0e9;
    border-color: #bfd5c5;
    color: var(--color-primary);
}

body:not(.dark-mode) section:not(#home) {
    position: relative;
    overflow: hidden;
    margin-top: 28px;
    margin-bottom: 28px;
}

body:not(.dark-mode) section:not(#home)::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-accent), var(--color-secondary));
    opacity: 0.85;
}

body:not(.dark-mode) .controls-bar {
    background: #f8f5ed;
    border-color: #cfc4b2;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), var(--shadow-sm);
}

body:not(.dark-mode) .add-box,
body:not(.dark-mode) .schedule-container,
body:not(.dark-mode) .chat-container,
body:not(.dark-mode) .project-info-section,
body:not(.dark-mode) .info-card,
body:not(.dark-mode) .stat-card {
    background: rgba(255, 253, 248, 0.92);
    border-color: #d4c8b6;
    box-shadow: var(--shadow-md);
}

body:not(.dark-mode) .info-card,
body:not(.dark-mode) .stat-card {
    border-top: 3px solid var(--color-highlight);
}

body:not(.dark-mode) table {
    box-shadow: var(--shadow-sm);
    border-color: #cfc4b2;
}

body:not(.dark-mode) th {
    background: #e8f0e9;
    color: var(--color-primary);
    border-color: #bfd5c5;
}

body:not(.dark-mode) td {
    background: rgba(255, 253, 248, 0.8);
    border-color: #e2d8c8;
}

body:not(.dark-mode) tbody tr:nth-child(even) td {
    background: #faf7f0;
}

body:not(.dark-mode) #main-schedule-table td:first-child,
body:not(.dark-mode) #main-schedule-table th:first-child {
    background: #eee7d9;
    color: var(--color-primary);
}

body:not(.dark-mode) .subject-block {
    background: #eaf2eb;
    border-color: #c4d9c8;
    border-left-color: var(--color-primary);
}

body:not(.dark-mode) .subject-block small {
    color: var(--color-secondary);
}

body:not(.dark-mode) .chat-messages {
    background: #f1eee5;
}

body:not(.dark-mode) .chat-input-container {
    background: #f8f5ed;
    border-top-color: #d4c8b6;
}

body:not(.dark-mode) .chat-input-container .nike-btn-neon.cyan {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: var(--text-light) !important;
}

body:not(.dark-mode) .dark-mode-toggle {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: var(--text-light) !important;
}

main > section:not(#home) {
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border-light) !important;
    box-shadow: var(--shadow-md) !important;
}

main > section:not(#home) h2,
main > section:not(#home) h3,
main > section:not(#home) h4,
main > section:not(#home) h5 {
    color: var(--text-primary) !important;
    background: none !important;
    -webkit-text-fill-color: initial !important;
    text-shadow: none !important;
}

main > section:not(#home) p,
main > section:not(#home) label,
main > section:not(#home) small {
    color: var(--text-secondary) !important;
}

main > section:not(#home) .decorative-line {
    background: var(--color-accent) !important;
}

main > section:not(#home) > div[style*="repeating-linear-gradient"],
main > section:not(#home) > div[style*="radial-gradient"] {
    opacity: 0.18;
}

.company-values .value-card {
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border-light) !important;
    box-shadow: var(--shadow-sm) !important;
}

.company-values .value-icon {
    background: var(--gradient-gold) !important;
    box-shadow: none !important;
    color: var(--text-light) !important;
    width: 52px !important;
    height: 52px !important;
    line-height: 1 !important;
    overflow: visible !important;
}

.company-values .value-icon i {
    color: var(--text-light) !important;
    display: block;
    line-height: 1;
    opacity: 1 !important;
    text-shadow: none !important;
}

.company-values .value-card h3,
.company-values .value-card h4 {
    color: var(--color-primary) !important;
}

/* Variantes antiguas conservadas por compatibilidad, con la nueva identidad. */
.nike-btn-neon.lime,
.nike-btn-neon.purple,
.nike-btn-neon.indigo {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: var(--text-light) !important;
}

.nike-btn-neon.cyan,
.nike-btn-neon.teal {
    background: var(--color-highlight) !important;
    border-color: var(--color-highlight) !important;
    color: var(--text-light) !important;
}

.nike-btn-neon.magenta,
.nike-btn-neon.pink {
    background: var(--color-secondary) !important;
    border-color: var(--color-secondary) !important;
    color: var(--text-light) !important;
}

.nike-btn-neon.orange,
.nike-btn-neon.gold {
    background: var(--color-accent) !important;
    border-color: var(--color-accent) !important;
    color: var(--gray-900) !important;
}

.nike-btn-neon.lime:hover,
.nike-btn-neon.purple:hover,
.nike-btn-neon.indigo:hover,
.nike-btn-neon.cyan:hover,
.nike-btn-neon.teal:hover,
.nike-btn-neon.magenta:hover,
.nike-btn-neon.pink:hover,
.nike-btn-neon.orange:hover,
.nike-btn-neon.gold:hover {
    filter: brightness(0.92);
}

/* Recolorea iconos decorativos y acciones que todavía llegan con estilos inline. */
main > section:not(#home) i[style*="color"] {
    color: var(--color-primary) !important;
}

main > section:not(#home) button[style*="linear-gradient"] {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: var(--text-light) !important;
}

body.dark-mode main > section:not(#home) {
    background: var(--bg-secondary) !important;
    border-color: var(--border-light) !important;
}

body.dark-mode .company-values .value-card {
    background: var(--bg-secondary) !important;
    border-color: var(--border-light) !important;
}

body.dark-mode .company-values .value-icon {
    background: var(--gradient-gold) !important;
}

/* Superficies del modo oscuro: carbón neutro, sin azul marino residual. */
body.dark-mode .neon-nav,
body.dark-mode .info-card,
body.dark-mode .login-card,
body.dark-mode .contact-card,
body.dark-mode .stat-card,
body.dark-mode .news-card,
body.dark-mode .report-card,
body.dark-mode .interactive-login,
body.dark-mode .custom-modal-content,
body.dark-mode .controls-bar,
body.dark-mode .add-box,
body.dark-mode .schedule-container,
body.dark-mode .global-schedule-item,
body.dark-mode .project-info-section {
    background: #202520 !important;
    border-color: #3b463d !important;
    color: #f3eee3 !important;
}

body.dark-mode table {
    background: #1a1f1b !important;
    border-color: #374239 !important;
}

body.dark-mode th {
    background: #29312b !important;
    border-color: #465248 !important;
    color: #f3eee3 !important;
}

body.dark-mode td {
    background: #1a1f1b !important;
    border-color: #303a33 !important;
    color: #d8d0c1 !important;
}

body.dark-mode #main-schedule-table th:first-child,
body.dark-mode #main-schedule-table td:first-child {
    background: #29312b !important;
}

body.dark-mode input[type="text"],
body.dark-mode input[type="password"],
body.dark-mode input[type="email"],
body.dark-mode input[type="number"],
body.dark-mode input[type="date"],
body.dark-mode input[type="time"],
body.dark-mode textarea,
body.dark-mode select {
    background: #29312b !important;
    border-color: #465248 !important;
    color: #f3eee3 !important;
}

body.dark-mode .nike-btn-secondary,
body.dark-mode .btn-secondary,
body.dark-mode .nike-btn-neon:not(.lime):not(.cyan):not(.magenta):not(.orange):not(.purple):not(.pink):not(.teal):not(.indigo):not(.gold),
body.dark-mode .btn-action {
    background: #29312b !important;
    border-color: #526154 !important;
    color: #f3eee3 !important;
}

body.dark-mode .dark-mode-toggle {
    background: #29312b !important;
    border-color: #526154 !important;
    color: #f3eee3 !important;
}

body.dark-mode #scroll-top-btn {
    background: linear-gradient(135deg, #b86f52, #c69a4b) !important;
    color: #1e211d !important;
}

/* Chat: sustituir las superficies azul marino heredadas. */
body.dark-mode .chat-info,
body.dark-mode .chat-container,
body.dark-mode .chat-input-container {
    background: #202520 !important;
    border-color: #3b463d !important;
}

body.dark-mode .chat-messages {
    background: #191e1a !important;
}

body.dark-mode .bot-message .message-avatar {
    background: #34463a !important;
    border-color: #526154 !important;
    color: #f3eee3 !important;
}

body.dark-mode .bot-message .message-content {
    background: #202520 !important;
    border-color: #465248 !important;
    color: #f3eee3 !important;
}

body.dark-mode .user-message .message-avatar,
body.dark-mode .user-message .message-content {
    background: #3f7768 !important;
    color: #f3eee3 !important;
}

body.dark-mode .chat-input-container input {
    background: #29312b !important;
    border-color: #526154 !important;
    color: #f3eee3 !important;
}

body.dark-mode .chat-input-container input::placeholder {
    color: #b9ae9b !important;
}

body.dark-mode .chat-input-container .nike-btn-neon.cyan {
    background: #3f7768 !important;
    border-color: #6e9b83 !important;
    color: #f3eee3 !important;
}