[x-cloak] { display: none !important; }

/* ===== Scrollbars ===== */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: #334155;
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: #475569;
}

.hide-scroll::-webkit-scrollbar { display: none; }
.hide-scroll { -ms-overflow-style: none; scrollbar-width: none; }

/* ===== Base ===== */
body { font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; }

input[type="checkbox"] { accent-color: var(--tc-accent, #eab308); }

/* ===== Glass ===== */
.glass-card {
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    transition: all 0.4s ease;
}

/* ===== Animaciones (estilo Tu Código Rápido) ===== */
@keyframes pulse-green { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.status-dot { animation: pulse-green 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

@keyframes shine { 0% { background-position: 200% center; } 100% { background-position: -200% center; } }
.auto-shine {
    background: linear-gradient(120deg, #94a3b8 35%, #ffffff 50%, #94a3b8 65%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: shine 3s linear infinite;
}

@keyframes gradient-move { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.animate-gradient-text { background-size: 200% auto; animation: gradient-move 3s ease-in-out infinite; }

@keyframes rock-3d {
    0%   { transform: perspective(500px) rotateX(15deg) rotateY(-20deg); }
    50%  { transform: perspective(500px) rotateX(-15deg) rotateY(20deg); }
    100% { transform: perspective(500px) rotateX(15deg) rotateY(-20deg); }
}
.animate-3d-logo { animation: rock-3d 5s ease-in-out infinite; transform-style: preserve-3d; }

@keyframes logo-breath { 0%, 100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.04); filter: brightness(1.2); } }
.animate-logo-breath { animation: logo-breath 4s ease-in-out infinite; }

@keyframes orb-float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.1); }
}
.animate-orb { animation: orb-float 8s ease-in-out infinite; }

@keyframes slide-up-fade { 0% { opacity: 0; transform: translateY(15px); } 100% { opacity: 1; transform: translateY(0); } }
.animate-delay-1 { animation: slide-up-fade 0.5s ease forwards 0.1s; }
.animate-delay-2 { animation: slide-up-fade 0.5s ease forwards 0.25s; }
.animate-delay-3 { animation: slide-up-fade 0.5s ease forwards 0.4s; }
.animate-delay-4 { animation: slide-up-fade 0.5s ease forwards 0.55s; }

@keyframes smoke-reveal {
    0% { opacity: 0; filter: blur(20px); transform: translateY(30px) scale(1.2) skewX(15deg); letter-spacing: 15px; }
    50% { opacity: 0.6; filter: blur(6px); transform: translateY(10px) scale(1.05) skewX(-5deg); letter-spacing: 8px; }
    100% { opacity: 1; filter: blur(0); transform: translateY(0) scale(1) skewX(0deg); letter-spacing: normal; }
}
.animate-smoke-reveal { animation: smoke-reveal 1.6s cubic-bezier(0.1, 0.9, 0.2, 1) forwards; }

@keyframes rocket-vibrate {
    0%, 100% { transform: translate(0, 0) rotate(45deg); }
    25% { transform: translate(-2px, 2px) rotate(45deg); }
    50% { transform: translate(2px, -2px) rotate(45deg); }
    75% { transform: translate(-2px, -2px) rotate(45deg); }
}
.rocket-shake { animation: rocket-vibrate 0.1s linear infinite; }

@keyframes rocket-launch {
    0% { transform: translateY(0) rotate(45deg); opacity: 1; }
    20% { transform: translateY(10px) rotate(45deg); }
    100% { transform: translate(60px, -400px) rotate(45deg) scale(1.5); opacity: 0; }
}
.rocket-fly { animation: rocket-launch 0.9s cubic-bezier(0.5, -0.2, 0.2, 1) forwards; pointer-events: none; }

/* ===== Tema por tenant (variables --tc-*) ===== */
.dark body { background-color: var(--tc-bg, #05070B); color: var(--tc-text, #e5e7eb); }
.dark .bg-white, .dark .bg-white\/90, .dark .bg-white\/80 { background-color: var(--tc-card, #0D1117); }
.dark .bg-gray-50 { background-color: var(--tc-card, #161B22); }
.dark aside.glass-card { background-color: var(--tc-card, #0D1117); }

.sidebar-active { border-left: 3px solid var(--tc-accent, #eab308); }
.dark .sidebar-active { background: linear-gradient(90deg, color-mix(in srgb, var(--tc-accent, #eab308) 15%, transparent) 0%, transparent 100%); color: var(--tc-text, #ffffff); }
.light .sidebar-active { background: linear-gradient(90deg, color-mix(in srgb, var(--tc-accent, #eab308) 10%, transparent) 0%, transparent 100%); }


@keyframes text-glow-breath {
    0%, 100% { filter: drop-shadow(0 0 4px rgba(234, 179, 8, 0.4)); opacity: 0.9; }
    50% { filter: drop-shadow(0 0 12px rgba(234, 179, 8, 0.8)); opacity: 1; }
}
.animate-admin-glow { animation: text-glow-breath 3s ease-in-out infinite; }

/* ==================================================================
   MODO OSCURO GLOBAL (.dark on <html>)
   Remapea las clases heredadas de las vistas (bg-white, dark-*, primary-*)
   a glass oscuro con acento amarillo estilo ejemplo 2.
   ================================================================== */
.dark { color-scheme: dark; }
.dark body { background-color: #05070B; color: #e5e7eb; }
.dark .bg-white { background-color: #0D1117; }
.dark .bg-gray-50 { background-color: #161B22; }
.dark .bg-gray-100 { background-color: #1C2128; }
.dark .bg-dark-50 { background-color: #161B22; }
.dark .bg-dark-100 { background-color: #1C2128; }
.dark .bg-dark-50\/50 { background-color: rgba(22, 27, 34, 0.5); }
.dark .bg-primary-50 { background-color: color-mix(in srgb, var(--tc-accent, #eab308) 12%, transparent); }
.dark .bg-primary-50\/50 { background-color: color-mix(in srgb, var(--tc-accent, #eab308) 10%, transparent); }
.dark .bg-primary-100 { background-color: color-mix(in srgb, var(--tc-accent, #eab308) 20%, transparent); }
.dark .bg-primary-600 { background-color: var(--tc-accent, #eab308); }
.dark .bg-primary-600\/5 { background-color: color-mix(in srgb, var(--tc-accent, #eab308) 5%, transparent); }
.dark .bg-yellow-100 { background-color: color-mix(in srgb, var(--tc-accent, #eab308) 20%, transparent); }
.dark .bg-red-100 { background-color: rgba(239, 68, 68, 0.15); }
.dark .bg-green-100 { background-color: rgba(34, 197, 94, 0.15); }
.dark .bg-blue-100 { background-color: rgba(59, 130, 246, 0.15); }
.dark .bg-purple-100 { background-color: rgba(168, 85, 247, 0.15); }
.dark .bg-indigo-100 { background-color: rgba(99, 102, 241, 0.15); }

.dark .text-dark-900 { color: #f1f5f9; }
.dark .text-dark-800 { color: #e2e8f0; }
.dark .text-dark-700 { color: #cbd5e1; }
.dark .text-dark-600 { color: #94a3b8; }
.dark .text-dark-500 { color: #94a3b8; }
.dark .text-dark-400 { color: #64748b; }
.dark .text-dark-300 { color: #94a3b8; }
.dark .text-gray-500 { color: #94a3b8; }
.dark .text-gray-400 { color: #64748b; }
.dark .text-gray-700 { color: #cbd5e1; }
.dark .text-gray-800 { color: #e2e8f0; }
.dark .text-primary-600 { color: var(--tc-accent, #eab308); }
.dark .text-primary-700 { color: color-mix(in srgb, var(--tc-accent, #eab308) 85%, white); }
.dark .text-primary-100 { color: color-mix(in srgb, var(--tc-accent, #eab308) 60%, white); }
.dark .text-green-700 { color: #4ade80; }
.dark .text-yellow-700 { color: #facc15; }
.dark .text-yellow-800 { color: #fde047; }
.dark .text-red-700 { color: #f87171; }
.dark .text-blue-700 { color: #93c5fd; }
.dark .text-purple-700 { color: #d8b4fe; }
.dark .text-indigo-700 { color: #a5b4fc; }

.dark .border-dark-100 { border-color: #1e293b; }
.dark .border-dark-200 { border-color: #1e293b; }
.dark .border-dark-300 { border-color: #334155; }
.dark .border-dark-800 { border-color: #1e293b; }
.dark .border-gray-200 { border-color: #1e293b; }
.dark .border-gray-300 { border-color: #334155; }
.dark .border-gray-600 { border-color: #475569; }
.dark .border-primary-500 { border-color: var(--tc-accent, #eab308); }
.dark .divide-dark-100 > :not([hidden]) ~ :not([hidden]) { border-top-color: #1e293b; }
.dark .divide-dark-200 > :not([hidden]) ~ :not([hidden]) { border-top-color: #1e293b; }

.dark .hover\:bg-dark-50:hover { background-color: #161B22; }
.dark .hover\:bg-dark-100:hover { background-color: #1C2128; }
.dark .hover\:bg-dark-200:hover { background-color: #262c34; }
.dark .hover\:bg-gray-50:hover { background-color: rgba(22, 27, 34, 0.4); }
.dark .hover\:bg-gray-100:hover { background-color: #1C2128; }
.dark .hover\:bg-gray-200:hover { background-color: #262c34; }
.dark .hover\:bg-primary-700:hover { background-color: color-mix(in srgb, var(--tc-accent, #eab308) 80%, black); }
.dark .hover\:text-primary-600:hover { color: var(--tc-accent, #eab308); }
.dark .hover\:text-primary-700:hover { color: color-mix(in srgb, var(--tc-accent, #eab308) 85%, white); }
.dark .hover\:text-red-600:hover { color: #f87171; }

.dark .focus\:ring-primary-500:focus { --tw-ring-color: color-mix(in srgb, var(--tc-accent, #eab308) 60%, transparent); }
.dark .focus\:border-primary-500:focus { border-color: var(--tc-accent, #eab308); }
.dark .focus\:border-gray-400:focus { border-color: #64748b; }

.dark .from-primary-600 { --tw-gradient-from: var(--tc-accent, #eab308); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-via, color-mix(in srgb, var(--tc-accent, #eab308) 50%, transparent)), var(--tw-gradient-to, transparent); }
.dark .to-primary-800 { --tw-gradient-to: color-mix(in srgb, var(--tc-accent, #eab308) 70%, black); }

/* ===== Remapeo .dark adicional: tablas y restos heredados (texto/bordes/dividers/opacidades) ===== */
.dark .text-gray-300 { color: #cbd5e1; }
.dark .text-gray-600 { color: #94a3b8; }
.dark .text-gray-900 { color: #f1f5f9; }
.dark .border-gray-100 { border-color: #1e293b; }
.dark .divide-gray-100 > :not([hidden]) ~ :not([hidden]) { border-top-color: #1e293b; }
.dark .divide-gray-200 > :not([hidden]) ~ :not([hidden]) { border-top-color: #2a3240; }
.dark .bg-gray-50\/40 { background-color: rgba(22, 27, 34, 0.4); }
.dark .bg-gray-50\/50 { background-color: rgba(22, 27, 34, 0.5); }
.dark .bg-gray-50\/80 { background-color: rgba(22, 27, 34, 0.8); }
.dark .bg-white\/80 { background-color: rgba(13, 17, 23, 0.8); }
.dark .hover\:bg-gray-50\/50:hover { background-color: rgba(22, 27, 34, 0.5); }
.dark .hover\:bg-gray-50\/80:hover { background-color: rgba(22, 27, 34, 0.8); }
.dark .hover\:text-gray-200:hover { color: #e2e8f0; }

/* ===== Micro animaciones utilitarias ===== */
.animate-spin-slow { animation: spin 5s linear infinite; }
@keyframes float-y {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}
.animate-float { animation: float-y 3s ease-in-out infinite; }

/* ===== Selector de plataforma de la landing (tema por pestaña) ===== */
.tab-inactive { color: #9ca3af; background-color: transparent; border: 1px solid transparent; }
.tab-inactive:hover { color: #ffffff; background-color: rgba(31, 41, 55, 0.5); }
.accent-btn { background-color: var(--accent, #f3f4f6); color: var(--accent-text, #05070b); border-color: var(--accent, #f3f4f6); box-shadow: 0 0 20px var(--accent-soft, rgba(255, 255, 255, 0.08)); }
.accent-btn:hover { filter: brightness(1.12); }
.accent-title { background-image: linear-gradient(90deg, #ffffff, var(--accent, #f3f4f6), #111827); }
.accent-glow { background-color: var(--accent-soft, rgba(255, 255, 255, 0.06)); }

/* ===== Selectores: mismo visual que el tema (lista y control oscuros) ===== */
.dark select {
    color-scheme: dark;
    appearance: none;
    -webkit-appearance: none;
    background-color: #0D1117;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1em;
    padding-right: 2.25rem;
    color: #e5e7eb;
    border-color: #334155;
}
.dark select:hover { border-color: #475569; }
.dark select option {
    background-color: #161B22;
    color: #e5e7eb;
}

/* ===== Dropdown personalizado appSelect (Alpine) ===== */
.app-select {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    background-color: rgba(17, 24, 39, 0.6);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(75, 85, 99, 0.5);
    border-radius: 0.75rem;
    padding: 0.6rem 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #e5e7eb;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}
.app-select:hover,
.app-select.app-select-open {
    border-color: #64748b;
    background-color: rgba(22, 27, 34, 0.7);
}
.app-select-pill {
    border-radius: 9999px;
    padding: 0.7rem 1.25rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.app-select-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.app-select-chevron {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    color: #94a3b8;
    transition: transform 0.2s ease;
}
.app-select-menu {
    position: absolute;
    z-index: 60;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 16rem;
    overflow-y: auto;
    background-color: #0D1117;
    border: 1px solid #30363d;
    border-radius: 0.9rem;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.6);
    padding: 0.35rem;
}
.app-select-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.8rem;
    border-radius: 0.6rem;
    font-size: 0.875rem;
    color: #cbd5e1;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.app-select-option:hover { background-color: #161B22; color: #ffffff; }
.app-select-option-active,
.app-select-option-active:hover {
    background-color: color-mix(in srgb, var(--tc-accent, #eab308) 12%, transparent);
    color: var(--tc-accent, #fbbf24);
    font-weight: 600;
}
.app-select-check {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}