/* ====== Dark Mode ====== */
.dark {
    color-scheme: dark;
}

.dark body {
    background-color: #0f172a !important;
    color: #cbd5e1;
}

.dark header {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark main {
    background-color: #0f172a !important;
}

.dark footer {
    background-color: #0f172a !important;
}

.dark footer a {
    color: #fbbf24;
}

.dark .bg-white {
    background-color: #1e293b !important;
}

.dark .bg-gray-50 {
    background-color: #0f172a !important;
}

.dark .bg-gray-50\/50 {
    background-color: rgba(15, 23, 42, 0.5) !important;
}

.dark .bg-gray-100 {
    background-color: #0f172a !important;
}

.dark .text-gray-900 { color: #f1f5f9 !important; }
.dark .text-gray-800 { color: #e2e8f0 !important; }
.dark .text-gray-700 { color: #cbd5e1 !important; }
.dark .text-gray-600 { color: #b0bec5 !important; }
.dark .text-gray-500 { color: #b0bec5 !important; }
.dark .text-gray-400 { color: #64748b !important; }

.dark .border-gray-100 { border-color: #1e293b !important; }
.dark .border-gray-200 { border-color: #334155 !important; }
.dark .border-gray-300 { border-color: #475569 !important; }

.dark .shadow-sm,
.dark .shadow,
.dark .shadow-xl,
.dark .shadow-lg {
    box-shadow: 0 1px 3px 0 rgba(0,0,0,0.5), 0 1px 2px -1px rgba(0,0,0,0.5) !important;
}

.dark .divide-gray-100 > * + *,
.dark .divide-gray-200 > * + * {
    border-color: #334155 !important;
}

.dark table thead {
    background-color: #0f172a !important;
}

.dark table thead th {
    color: #64748b !important;
    border-color: #334155 !important;
}

.dark table tbody tr {
    border-color: #334155 !important;
}

.dark table tbody tr:hover {
    background-color: #162032 !important;
}

.dark table tbody td {
    color: #cbd5e1 !important;
}

.dark input,
.dark select,
.dark textarea {
    background-color: #0f172a !important;
    border-color: #475569 !important;
    color: #e2e8f0 !important;
}

.dark input::placeholder,
.dark textarea::placeholder {
    color: #64748b !important;
}

.dark input:focus,
.dark select:focus,
.dark textarea:focus {
    border-color: #0072c6 !important;
    box-shadow: 0 0 0 3px rgba(0, 114, 198, 0.2) !important;
}

.dark .hover\:bg-gray-50:hover { background-color: #162032 !important; }
.dark .hover\:bg-gray-100:hover { background-color: #1e293b !important; }

.dark .bg-gray-200 { background-color: #334155 !important; }
.dark .bg-gray-300 { background-color: #475569 !important; }
.dark .hover\:bg-gray-200:hover { background-color: #334155 !important; }
.dark .hover\:bg-gray-300:hover { background-color: #475569 !important; }

.dark .hover\:bg-blue-50:hover { background-color: rgba(0, 114, 198, 0.15) !important; }
.dark .hover\:bg-blue-100:hover { background-color: rgba(0, 114, 198, 0.25) !important; }
.dark .hover\:bg-emerald-50:hover,
.dark .hover\:bg-emerald-50\/50:hover { background-color: rgba(16, 185, 129, 0.1) !important; }
.dark .hover\:bg-teal-50:hover,
.dark .hover\:bg-teal-50\/50:hover { background-color: rgba(20, 184, 166, 0.1) !important; }
.dark .hover\:bg-indigo-50:hover,
.dark .hover\:bg-indigo-50\/50:hover { background-color: rgba(99, 102, 241, 0.1) !important; }
.dark .hover\:bg-purple-50:hover,
.dark .hover\:bg-purple-50\/50:hover { background-color: rgba(168, 85, 247, 0.1) !important; }
.dark .hover\:bg-rose-50:hover,
.dark .hover\:bg-rose-50\/50:hover { background-color: rgba(244, 63, 94, 0.1) !important; }
.dark .hover\:bg-sky-50:hover,
.dark .hover\:bg-sky-50\/50:hover { background-color: rgba(14, 165, 233, 0.1) !important; }
.dark .hover\:bg-violet-50:hover,
.dark .hover\:bg-violet-50\/50:hover { background-color: rgba(139, 92, 246, 0.1) !important; }
.dark .hover\:bg-amber-50:hover,
.dark .hover\:bg-amber-50\/50:hover { background-color: rgba(245, 158, 11, 0.1) !important; }
.dark .hover\:bg-orange-50:hover,
.dark .hover\:bg-orange-50\/50:hover { background-color: rgba(249, 115, 22, 0.1) !important; }
.dark .hover\:bg-red-50:hover { background-color: rgba(239, 68, 68, 0.1) !important; }

.dark #user-menu-dropdown,
.dark #portal-user-menu-dropdown {
    background-color: #1e293b !important;
    border-color: #334155 !important;
}

.dark #user-menu-dropdown .border-t,
.dark #portal-user-menu-dropdown .border-t {
    border-color: #334155 !important;
}

.dark #user-menu-dropdown a,
.dark #user-menu-dropdown button,
.dark #portal-user-menu-dropdown a,
.dark #portal-user-menu-dropdown button {
    color: #cbd5e1 !important;
}

.dark #user-menu-dropdown a:hover,
.dark #portal-user-menu-dropdown a:hover {
    background-color: #162032 !important;
}

.dark .modal-backdrop {
    background-color: rgba(0, 0, 0, 0.8);
}

.dark .alert-success {
    background: linear-gradient(to right, rgba(16, 185, 129, 0.15), rgba(5, 150, 105, 0.15));
}

.dark .alert-error {
    background: linear-gradient(to right, rgba(239, 68, 68, 0.15), rgba(220, 38, 38, 0.15));
}

.dark .alert-warning {
    background: linear-gradient(to right, rgba(245, 158, 11, 0.15), rgba(217, 119, 6, 0.15));
}

.dark .alert-info {
    background: linear-gradient(to right, rgba(59, 130, 246, 0.15), rgba(37, 99, 235, 0.15));
}

.dark .card-grid-item:hover {
    border-color: #334155;
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.4), 0 10px 10px -5px rgba(0,0,0,0.3);
}

/* ====== Semantic Color Cards (portal pages) ====== */

/* Green — speaker cards */
.dark .bg-green-50 { background-color: rgba(16, 185, 129, 0.1) !important; }
.dark .bg-green-50\/40 { background-color: rgba(16, 185, 129, 0.08) !important; }
.dark .bg-green-100 { background-color: rgba(16, 185, 129, 0.18) !important; }
.dark .text-green-500 { color: #34d399 !important; }
.dark .text-green-600 { color: #34d399 !important; }
.dark .text-green-700 { color: #34d399 !important; }
.dark .text-green-800 { color: #6ee7b7 !important; }
.dark .text-green-900 { color: #a7f3d0 !important; }
.dark .border-green-200 { border-color: rgba(16, 185, 129, 0.3) !important; }
.dark .border-green-400 { border-color: rgba(16, 185, 129, 0.5) !important; }
.dark .hover\:bg-green-50:hover { background-color: rgba(16, 185, 129, 0.14) !important; }
.dark .hover\:border-green-400:hover { border-color: rgba(16, 185, 129, 0.6) !important; }

/* Emerald — volunteer cards */
.dark .bg-emerald-50 { background-color: rgba(16, 185, 129, 0.1) !important; }
.dark .bg-emerald-50\/40 { background-color: rgba(16, 185, 129, 0.08) !important; }
.dark .bg-emerald-100 { background-color: rgba(16, 185, 129, 0.18) !important; }
.dark .text-emerald-500 { color: #34d399 !important; }
.dark .text-emerald-600 { color: #34d399 !important; }
.dark .text-emerald-700 { color: #34d399 !important; }
.dark .border-emerald-200 { border-color: rgba(16, 185, 129, 0.3) !important; }
.dark .border-emerald-400 { border-color: rgba(16, 185, 129, 0.5) !important; }
.dark .hover\:bg-emerald-50:hover { background-color: rgba(16, 185, 129, 0.14) !important; }
.dark .hover\:border-emerald-400:hover { border-color: rgba(16, 185, 129, 0.6) !important; }

/* Teal — pre-approved cards */
.dark .bg-teal-50 { background-color: rgba(20, 184, 166, 0.1) !important; }
.dark .bg-teal-100 { background-color: rgba(20, 184, 166, 0.18) !important; }
.dark .text-teal-600 { color: #2dd4bf !important; }
.dark .text-teal-700 { color: #2dd4bf !important; }
.dark .border-teal-400 { border-color: rgba(20, 184, 166, 0.5) !important; }

/* Blue — in review / invite cards */
.dark .bg-blue-50 { background-color: rgba(59, 130, 246, 0.1) !important; }
.dark .bg-blue-100 { background-color: rgba(59, 130, 246, 0.18) !important; }
.dark .text-blue-600 { color: #60a5fa !important; }
.dark .text-blue-700 { color: #60a5fa !important; }
.dark .text-blue-800 { color: #93c5fd !important; }
.dark .border-blue-400 { border-color: rgba(59, 130, 246, 0.5) !important; }

/* Red — rejected / error cards */
.dark .bg-red-50 { background-color: rgba(239, 68, 68, 0.1) !important; }
.dark .bg-red-100 { background-color: rgba(239, 68, 68, 0.18) !important; }
.dark .text-red-600 { color: #f87171 !important; }
.dark .text-red-700 { color: #f87171 !important; }
.dark .border-red-200 { border-color: rgba(239, 68, 68, 0.3) !important; }
.dark .border-red-400 { border-color: rgba(239, 68, 68, 0.5) !important; }

/* Yellow — submitted cards */
.dark .bg-yellow-50 { background-color: rgba(234, 179, 8, 0.1) !important; }
.dark .bg-yellow-100 { background-color: rgba(234, 179, 8, 0.18) !important; }
.dark .text-yellow-700 { color: #fbbf24 !important; }
.dark .border-yellow-400 { border-color: rgba(234, 179, 8, 0.5) !important; }

/* Purple — coordinator cards */
.dark .bg-purple-50 { background-color: rgba(168, 85, 247, 0.1) !important; }
.dark .bg-purple-50\/40 { background-color: rgba(168, 85, 247, 0.08) !important; }
.dark .bg-purple-100 { background-color: rgba(168, 85, 247, 0.18) !important; }
.dark .text-purple-500 { color: #c084fc !important; }
.dark .text-purple-600 { color: #c084fc !important; }
.dark .text-purple-700 { color: #c084fc !important; }
.dark .border-purple-200 { border-color: rgba(168, 85, 247, 0.3) !important; }
.dark .border-purple-400 { border-color: rgba(168, 85, 247, 0.5) !important; }
.dark .hover\:bg-purple-50:hover { background-color: rgba(168, 85, 247, 0.14) !important; }
.dark .hover\:border-purple-400:hover { border-color: rgba(168, 85, 247, 0.6) !important; }

/* Amber — warning / incomplete profile cards */
.dark .bg-amber-50 { background-color: rgba(245, 158, 11, 0.1) !important; }
.dark .bg-amber-100 { background-color: rgba(245, 158, 11, 0.18) !important; }
.dark .text-amber-500 { color: #fbbf24 !important; }
.dark .text-amber-600 { color: #fbbf24 !important; }
.dark .text-amber-700 { color: #fcd34d !important; }
.dark .text-amber-800 { color: #fde68a !important; }
.dark .text-amber-900 { color: #fef3c7 !important; }
.dark .border-amber-100 { border-color: rgba(245, 158, 11, 0.2) !important; }
.dark .border-amber-200 { border-color: rgba(245, 158, 11, 0.35) !important; }
/* ====== End Semantic Color Cards ====== */

/* Blue borders (used in section headers migrated from purple) */
.dark .border-blue-100 { border-color: #1e293b !important; }
.dark .border-blue-200 { border-color: #334155 !important; }
.dark .divide-blue-100 > * + * { border-color: #1e293b !important; }

/* Event-branded utility classes (.cf-*) used in CFP / CFC / CFV submission pages */
.dark .cf-btn { background-color: #005a9e !important; }
.dark .cf-btn:hover { background-color: #004880 !important; }
.dark .cf-text { color: #60a5fa !important; }
.dark .cf-bg-light,
.dark .cf-icon-bg { background-color: rgba(96, 165, 250, 0.1) !important; }
.dark .cf-info-box { background-color: rgba(96, 165, 250, 0.08) !important; border-color: rgba(96, 165, 250, 0.2) !important; }
.dark .cf-info-text { color: #93c5fd !important; }
.dark .cf-tag { background-color: rgba(96, 165, 250, 0.1) !important; color: #93c5fd !important; border-color: rgba(96, 165, 250, 0.2) !important; }

/* ===== Public pages: arbitrary background/text color overrides ===== */
/* bg-[#f8fbff] — info feature cards on "Sobre" section */
.dark .bg-\[\#f8fbff\] { background-color: #162032 !important; }

/* bg-[#e8f0fe] — date chips and contact icon containers */
.dark .bg-\[\#e8f0fe\] { background-color: rgba(0, 114, 198, 0.2) !important; }
.dark .text-\[\#0072c6\] { color: #60a5fa !important; }
.dark .hover\:bg-\[\#e8f0fe\]:hover { background-color: rgba(0, 114, 198, 0.25) !important; }

/* bg-[#f5f5f5] — Edições Anteriores section */
.dark .bg-\[\#f5f5f5\] { background-color: #0f172a !important; }

/* bg-[#f0f7ff] — ContactSection icon containers */
.dark .bg-\[\#f0f7ff\] { background-color: #162032 !important; }

/* Section backgrounds (by ID) — override gradients and white */
.dark #proximas-edicoes { background: linear-gradient(to bottom, #1e293b, #162032) !important; }
.dark #proximos-meetups { background-color: #162032 !important; }
.dark #sobre { background-color: #1e293b !important; }
.dark #galeria { background-color: #1e293b !important; }
.dark #contato { background: linear-gradient(135deg, #162032 0%, #1a2540 100%) !important; }
.dark #edicoes-anteriores { background-color: #0f172a !important; }

/* Gallery carousel navigation buttons */
.dark #gallery-prev,
.dark #gallery-next {
    background-color: #1e293b !important;
    border-color: #334155 !important;
    color: #60a5fa !important;
}

/* Hero "Conheça o MVP Conf" button — keep legible against blue gradient */
.dark .hero-primary-btn {
    background-color: rgba(255, 255, 255, 0.92) !important;
    color: #0055a5 !important;
}
.dark .hero-primary-btn:hover {
    background-color: #dbeafe !important;
    color: #003f80 !important;
}

/* Indigo — meetup type badges */
.dark .bg-indigo-100 { background-color: rgba(99, 102, 241, 0.18) !important; }
.dark .text-indigo-700 { color: #a5b4fc !important; }

/* Card hover elevation on public pages */
.dark .card-hover:hover {
    box-shadow: 0 20px 25px -5px rgba(0,0,0,0.6), 0 8px 10px -6px rgba(0,0,0,0.4) !important;
}
/* ===== End public pages overrides ===== */

.dark-mode-toggle {
    transition: all 0.3s ease;
}

#portal-dark-mode-toggle:hover,
#dark-mode-toggle:hover {
    transform: rotate(20deg);
}
/* ====== End Dark Mode ====== */
