/*
 * Tema NEXVIA -- acentos ligeros sobre el CSS que Filament ya trae
 * compilado. Solo usa clases reales de Filament (fi-*) y variables que
 * el propio panel ya define (--primary-*), nunca utilidades sueltas de
 * Tailwind -- este proyecto no tiene build de Vite/Tailwind, así que
 * cualquier clase que Filament no haya compilado no pinta nada.
 */

/* ---------- Sidebar ---------- */
/* `background-image`, nunca el shorthand `background` -- Filament ya trae
   su propio `background-color` sólido (necesario en el menú móvil, que es
   un overlay encima del contenido de la página). El shorthand lo pisaría
   con "transparent" y dejaría el menú móvil traslúcido e ilegible. */
.fi-sidebar {
    background-image: linear-gradient(180deg, color-mix(in srgb, var(--primary-500) 7%, transparent) 0%, transparent 320px);
}

.fi-sidebar-header {
    border-bottom: 1px solid color-mix(in srgb, var(--primary-500) 16%, transparent);
}

.fi-sidebar-group-label {
    letter-spacing: .08em;
}

.fi-sidebar-item-btn {
    border-radius: .625rem;
    transition: background-color .15s ease, transform .12s ease, box-shadow .15s ease;
}

.fi-sidebar-item-btn:hover {
    background-color: color-mix(in srgb, var(--primary-500) 10%, transparent);
    transform: translateX(2px);
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background-image: linear-gradient(90deg, color-mix(in srgb, var(--primary-500) 20%, transparent) 0%, color-mix(in srgb, var(--primary-500) 6%, transparent) 100%);
    box-shadow: inset 3px 0 0 0 var(--primary-500);
    font-weight: 600;
}

/* ---------- Tablas ---------- */
.fi-ta-ctn {
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);
}

.fi-ta-header-cell {
    background-color: color-mix(in srgb, var(--primary-500) 5%, transparent);
}

.fi-ta-row {
    transition: background-color .12s ease;
}

.fi-ta-row:hover {
    background-color: color-mix(in srgb, var(--primary-500) 6%, transparent) !important;
}

/* ---------- Botones ---------- */
.fi-btn {
    transition: transform .12s ease, box-shadow .12s ease;
}

.fi-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px -2px color-mix(in srgb, var(--primary-600) 45%, transparent);
}

.fi-btn:active {
    transform: translateY(0);
}

/* ---------- Ajustes en modo oscuro (el panel admin usa dark por defecto) ---------- */
:where(.dark) .fi-ta-row:hover {
    background-color: color-mix(in srgb, var(--primary-500) 14%, transparent) !important;
}

:where(.dark) .fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background-image: linear-gradient(90deg, color-mix(in srgb, var(--primary-500) 26%, transparent) 0%, color-mix(in srgb, var(--primary-500) 8%, transparent) 100%);
}

:where(.dark) .fi-ta-header-cell {
    background-color: color-mix(in srgb, var(--primary-500) 10%, transparent);
}

/* Barra de progreso de las transiciones SPA (wire:navigate) -- que se note
   el color de marca en vez del azul genérico del navegador. */
#livewire-navigate-progress-bar {
    background: var(--primary-500) !important;
    height: 3px !important;
}

/* ---------- Fondo de las pantallas de login (admin y portal) ---------- */
/* .fi-simple-layout es el wrapper de login/registro/recuperar-contraseña.
   No tenía background propio (se confirmó antes de tocarlo), así que el
   shorthand `background` aquí es seguro -- no pisa nada. La tarjeta del
   formulario (.fi-simple-main) ya trae su propio fondo sólido, así que el
   texto sigue perfectamente legible encima de este fondo. El SVG lleva
   su animación adentro (<animate> de SMIL), así que sigue en movimiento
   aunque se use como imagen de fondo pura, sin JS ni Tailwind de por medio. */
.fi-simple-layout {
    background: #0B2036 url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4MDAgODAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBzbGljZSI+CiAgPGRlZnM+CiAgICA8cmFkaWFsR3JhZGllbnQgaWQ9ImcxIiBjeD0iMjAlIiBjeT0iMTUlIiByPSI2MCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMTIzYTVjIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzBCMjAzNiIvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0iZ2xvdyIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNTAlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzJFRDE5QyIgc3RvcC1vcGFjaXR5PSIwLjU1Ii8+CiAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJFRDE5QyIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICA8L3JhZGlhbEdyYWRpZW50PgogIDwvZGVmcz4KCiAgPHJlY3Qgd2lkdGg9IjgwMCIgaGVpZ2h0PSI4MDAiIGZpbGw9InVybCgjZzEpIi8+CgogIDxnIHN0cm9rZT0iIzJFRDE5QyIgc3Ryb2tlLW9wYWNpdHk9IjAuMjIiIHN0cm9rZS13aWR0aD0iMS40IiBmaWxsPSJub25lIj4KICAgIDxwYXRoIGQ9Ik0xMjAgNjIwIEwyODAgNDgwIEw0MzAgNTYwIEw2MjAgNDIwIEw3MDAgMjAwIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLW9wYWNpdHkiIHZhbHVlcz0iMC4xOzAuMzI7MC4xIiBkdXI9IjdzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9wYXRoPgogICAgPHBhdGggZD0iTTgwIDE4MCBMMjQwIDI2MCBMNDMwIDU2MCI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZS1vcGFjaXR5IiB2YWx1ZXM9IjAuMjg7MC4wODswLjI4IiBkdXI9IjlzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9wYXRoPgogICAgPHBhdGggZD0iTTYyMCA0MjAgTDU2MCA2NDAgTDM0MCA3MDAiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgdmFsdWVzPSIwLjA4OzAuMjY7MC4wOCIgZHVyPSI4cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcGF0aD4KICAgIDxwYXRoIGQ9Ik0yODAgNDgwIEwxMjAgNjIwIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ic3Ryb2tlLW9wYWNpdHkiIHZhbHVlcz0iMC4zOzAuMDU7MC4zIiBkdXI9IjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9wYXRoPgogIDwvZz4KCiAgPGcgZmlsbD0iIzJFRDE5QyI+CiAgICA8Y2lyY2xlIGN4PSIxMjAiIGN5PSI2MjAiIHI9IjUiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiB2YWx1ZXM9IjQ7Nzs0IiBkdXI9IjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuNTU7MTswLjU1IiBkdXI9IjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIyODAiIGN5PSI0ODAiIHI9IjQiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiB2YWx1ZXM9IjM7NjszIiBkdXI9IjYuNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIHZhbHVlcz0iMC41OzAuOTU7MC41IiBkdXI9IjYuNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjQzMCIgY3k9IjU2MCIgcj0iNiI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIHZhbHVlcz0iNTs5OzUiIGR1cj0iNy41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgdmFsdWVzPSIwLjY7MTswLjYiIGR1cj0iNy41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNjIwIiBjeT0iNDIwIiByPSI1Ij4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIgdmFsdWVzPSI0Ozc7NCIgZHVyPSI1LjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuNTU7MTswLjU1IiBkdXI9IjUuNXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjcwMCIgY3k9IjIwMCIgcj0iNCI+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIHZhbHVlcz0iMzs2OzMiIGR1cj0iNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIHZhbHVlcz0iMC41OzAuOTswLjUiIGR1cj0iNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjgwIiBjeT0iMTgwIiByPSI0Ij4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIgdmFsdWVzPSIzOzY7MyIgZHVyPSI4cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgdmFsdWVzPSIwLjQ1OzAuOTswLjQ1IiBkdXI9IjhzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIyNDAiIGN5PSIyNjAiIHI9IjMiPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiB2YWx1ZXM9IjI7NTsyIiBkdXI9IjdzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuNDswLjg1OzAuNCIgZHVyPSI3cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNTYwIiBjeT0iNjQwIiByPSI0Ij4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIgdmFsdWVzPSIzOzY7MyIgZHVyPSI2LjhzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuNDU7MC45OzAuNDUiIGR1cj0iNi44cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iMzQwIiBjeT0iNzAwIiByPSIzIj4KICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIgdmFsdWVzPSIyOzU7MiIgZHVyPSI1LjhzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiB2YWx1ZXM9IjAuNDswLjg1OzAuNCIgZHVyPSI1LjhzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9jaXJjbGU+CiAgPC9nPgoKICA8Y2lyY2xlIGN4PSI2MjAiIGN5PSI0MjAiIHI9IjE0MCIgZmlsbD0idXJsKCNnbG93KSI+CiAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiB2YWx1ZXM9IjEyMDsxNzA7MTIwIiBkdXI9IjEwcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICA8L2NpcmNsZT4KICA8Y2lyY2xlIGN4PSIxODAiIGN5PSIyMDAiIHI9IjExMCIgZmlsbD0idXJsKCNnbG93KSIgb3BhY2l0eT0iMC42Ij4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIHZhbHVlcz0iOTA7MTMwOzkwIiBkdXI9IjEycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICA8L2NpcmNsZT4KPC9zdmc+Cg==") center / cover no-repeat;
}
