@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap');

:root {
    --ccv-navy: #0d2d5e;
    --ccv-blue: #1a4a8e;
    --ccv-blue-light: #4a90c8;
    --ccv-cyan: #22d3ee;
    --ccv-glow: rgba(26, 74, 142, 0.35);
    --ccv-font-tech: 'Space Mono', ui-monospace, 'SFMono-Regular', Consolas, monospace;
}

/* ===== Home / Inicio: hero de bienvenida + accesos rápidos ===== */
.ccv-home-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.75rem 3rem;
    border-radius: 1.75rem;
    background: linear-gradient(135deg, var(--ccv-navy) 0%, var(--ccv-blue) 55%, var(--ccv-blue-light) 100%);
    box-shadow: 0 24px 48px -24px rgba(13, 45, 94, 0.55);
}

.ccv-home-hero-blob {
    position: absolute;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.08);
    pointer-events: none;
}

.ccv-home-hero-blob-1 {
    width: 22rem;
    height: 22rem;
    top: -8rem;
    inset-inline-end: -6rem;
}

.ccv-home-hero-blob-2 {
    width: 16rem;
    height: 16rem;
    bottom: -7rem;
    inset-inline-end: 8rem;
    background: rgba(34, 211, 238, 0.1);
}

.ccv-home-hero-main {
    position: relative;
    z-index: 1;
    max-width: 34rem;
}

.ccv-home-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 0.75rem;
}

.ccv-home-hero-dot {
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 9999px;
    background: var(--ccv-cyan);
    box-shadow: 0 0 0 4px rgba(34, 211, 238, 0.25);
}

.ccv-home-hero-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.15;
    margin: 0;
}

.ccv-home-hero-subtitle {
    font-size: 2.25rem;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.45);
    line-height: 1.15;
    margin: 0 0 1rem;
}

.ccv-home-hero-text {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.9375rem;
    line-height: 1.6;
    margin: 0 0 1.75rem;
}

.ccv-home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ccv-home-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1.25rem;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.ccv-home-btn-light {
    background: #ffffff;
    color: var(--ccv-navy);
    box-shadow: 0 10px 22px -10px rgba(0, 0, 0, 0.35);
}

.ccv-home-btn-light:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 26px -8px rgba(0, 0, 0, 0.4);
}

.ccv-home-btn-outline {
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(4px);
}

.ccv-home-btn-outline:hover {
    background: rgba(255, 255, 255, 0.22);
    transform: translateY(-2px);
}

.ccv-home-hero-side {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    flex-shrink: 0;
}

.ccv-home-hero-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6.5rem;
    height: 6.5rem;
    border-radius: 9999px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.3);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.06);
}

.ccv-home-hero-stats {
    display: flex;
    gap: 0.5rem;
}

.ccv-home-hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.6rem 0.85rem;
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    min-width: 4.5rem;
}

.ccv-home-hero-stat-value {
    font-size: 1.25rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.1;
}

.ccv-home-hero-stat-label {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.7);
}

.ccv-home-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 1.75rem;
}

.ccv-home-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.35rem 1.5rem;
    border-radius: 1.25rem;
    background: #ffffff;
    box-shadow: 0 12px 28px -20px rgba(13, 45, 94, 0.4), inset 0 0 0 1px rgba(26, 74, 142, 0.08);
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.dark .ccv-home-card {
    background: rgba(255, 255, 255, 0.04);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.ccv-home-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 32px -18px rgba(13, 45, 94, 0.45);
}

.ccv-home-card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.9rem;
    color: #ffffff;
    flex-shrink: 0;
}

.ccv-home-card-success .ccv-home-card-icon {
    background: linear-gradient(135deg, #22c55e, #4ade80);
}

.ccv-home-card-warning .ccv-home-card-icon {
    background: linear-gradient(135deg, #ea580c, #fb923c);
}

.ccv-home-card-danger .ccv-home-card-icon {
    background: linear-gradient(135deg, #c0392b, #f87171);
}

.ccv-home-card-primary .ccv-home-card-icon {
    background: linear-gradient(135deg, var(--ccv-blue), var(--ccv-cyan));
}

.ccv-home-card-value {
    display: block;
    font-size: 1.375rem;
    font-weight: 800;
    color: #0f172a;
}

.dark .ccv-home-card-value {
    color: #ffffff;
}

.ccv-home-card-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #64748b;
}

.dark .ccv-home-card-label {
    color: #94a3b8;
}

/* ===== Inicio: actividad reciente + reloj (para no dejar la parte de
   abajo vacía) ===== */
.ccv-home-bottom-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 1.25rem;
    margin-top: 1.25rem;
    align-items: stretch;
}

.ccv-home-panel {
    background: #ffffff;
    border-radius: 1.25rem;
    box-shadow: 0 12px 28px -20px rgba(13, 45, 94, 0.4), inset 0 0 0 1px rgba(26, 74, 142, 0.08);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
}

.dark .ccv-home-panel {
    background: rgba(255, 255, 255, 0.04);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.ccv-home-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.ccv-home-panel-title {
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0;
}

.dark .ccv-home-panel-title {
    color: #ffffff;
}

.ccv-home-panel-subtitle {
    font-size: 0.8125rem;
    color: #64748b;
    margin: 0.15rem 0 0;
}

.dark .ccv-home-panel-subtitle {
    color: #94a3b8;
}

.ccv-home-panel-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--ccv-blue), var(--ccv-cyan));
    color: #ffffff;
}

.ccv-home-activity-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ccv-home-activity-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.65rem 0.5rem;
    border-radius: 0.85rem;
    text-decoration: none;
    transition: background 0.15s ease;
}

.ccv-home-activity-item:hover {
    background: rgba(26, 74, 142, 0.06);
}

.dark .ccv-home-activity-item:hover {
    background: rgba(255, 255, 255, 0.05);
}

.ccv-home-activity-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    flex-shrink: 0;
    background: rgba(26, 74, 142, 0.08);
    color: var(--ccv-blue);
}

.dark .ccv-home-activity-icon {
    background: rgba(255, 255, 255, 0.08);
    color: var(--ccv-cyan);
}

.ccv-home-activity-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.ccv-home-activity-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dark .ccv-home-activity-title {
    color: #ffffff;
}

.ccv-home-activity-meta {
    font-size: 0.75rem;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dark .ccv-home-activity-meta {
    color: #94a3b8;
}

.ccv-home-activity-time {
    font-size: 0.75rem;
    font-weight: 600;
    color: #94a3b8;
    flex-shrink: 0;
    white-space: nowrap;
}

.ccv-home-activity-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2.5rem 1rem;
    color: #94a3b8;
    font-size: 0.875rem;
    text-align: center;
}

.ccv-home-clock {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.35rem;
    padding: 1.75rem;
    border-radius: 1.25rem;
    background: linear-gradient(160deg, var(--ccv-navy) 0%, var(--ccv-blue) 100%);
    box-shadow: 0 18px 36px -20px rgba(13, 45, 94, 0.55);
}

.ccv-home-clock-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.6);
}

.ccv-home-clock-date {
    font-size: 1rem;
    font-weight: 700;
    color: #ffffff;
    text-transform: capitalize;
}

.ccv-home-clock-time {
    font-size: 2.25rem;
    font-weight: 800;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
    margin-top: 0.5rem;
}

.ccv-home-clock-year {
    font-size: 0.8125rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 1024px) {
    .ccv-home-hero {
        flex-direction: column;
        align-items: flex-start;
        padding: 2rem;
    }

    .ccv-home-hero-side {
        flex-direction: row;
        align-self: stretch;
        justify-content: space-between;
    }

    .ccv-home-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ccv-home-bottom-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== Tarjetas de estadísticas reutilizables (widgets de encabezado en
   Roles/Usuarios): mismo lenguaje visual que las tarjetas de accesos
   rápidos de Inicio, pero pensadas para ir arriba de una tabla. ===== */
.ccv-stat-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

.ccv-stat-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.4rem;
    border-radius: 1.25rem;
    background: #ffffff;
    box-shadow: 0 12px 28px -20px rgba(13, 45, 94, 0.4), inset 0 0 0 1px rgba(26, 74, 142, 0.08);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.dark .ccv-stat-card {
    background: rgba(255, 255, 255, 0.04);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.ccv-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 32px -18px rgba(13, 45, 94, 0.45);
}

.ccv-stat-card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.9rem;
    color: #ffffff;
    flex-shrink: 0;
}

.ccv-stat-card-primary .ccv-stat-card-icon {
    background: linear-gradient(135deg, var(--ccv-blue), var(--ccv-cyan));
}

.ccv-stat-card-success .ccv-stat-card-icon {
    background: linear-gradient(135deg, #22c55e, #4ade80);
}

.ccv-stat-card-warning .ccv-stat-card-icon {
    background: linear-gradient(135deg, #ea580c, #fb923c);
}

.ccv-stat-card-dark .ccv-stat-card-icon {
    background: linear-gradient(135deg, var(--ccv-navy), #334155);
}

.ccv-stat-card-value {
    display: block;
    font-size: 1.375rem;
    font-weight: 800;
    color: #0f172a;
}

.dark .ccv-stat-card-value {
    color: #ffffff;
}

.ccv-stat-card-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #64748b;
}

.dark .ccv-stat-card-label {
    color: #94a3b8;
}

@media (max-width: 1024px) {
    .ccv-stat-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ===== Sidebar: panel de marca institucional ===== */
.fi-sidebar {
    background: linear-gradient(190deg, var(--ccv-navy) 0%, var(--ccv-blue) 75%) !important;
    border-inline-end: none !important;
}

.fi-sidebar-header {
    background: transparent !important;
    box-shadow: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.fi-sidebar-header .fi-logo {
    background: #ffffff;
    padding: 0.4rem 0.75rem;
    border-radius: 0.65rem;
}

.fi-sidebar-nav-groups > * + * {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 1.25rem;
}

.fi-sidebar-group-label {
    color: rgba(255, 255, 255, 0.55) !important;
}

.fi-sidebar-item-button {
    color: rgba(255, 255, 255, 0.88);
}

.fi-sidebar-item-button:hover,
.fi-sidebar-item-button:focus-visible {
    background: rgba(255, 255, 255, 0.1) !important;
}

.fi-sidebar-item-icon {
    color: rgba(255, 255, 255, 0.6) !important;
}

.fi-sidebar-item-label {
    color: rgba(255, 255, 255, 0.88) !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-button {
    background: rgba(255, 255, 255, 0.16) !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-icon,
.fi-sidebar-item.fi-active .fi-sidebar-item-label {
    color: #ffffff !important;
}

.fi-sidebar-item-grouped-border > div {
    background: rgba(255, 255, 255, 0.35) !important;
}

/* ===== Oculta las pestañas de estado (Todos/Abiertos/Reabiertos/Cerrados)
   en la página de Expedientes: son redundantes ahora que las mismas vistas
   viven en el sidebar. El filtrado por activeTab sigue funcionando
   (ListExpedientes::getTabs() no se tocó), solo se oculta la barra visual. ===== */
.ccv-hide-resource-tabs .fi-tabs {
    display: none;
}

/* ===== Vistas de Expedientes en el sidebar: cada item con el color de su
   estado, igual que las tarjetas de estadísticas del listado ===== */
[data-group-label="Expedientes"] .fi-sidebar-group-items > .fi-sidebar-item:nth-child(1) .fi-sidebar-item-icon {
    color: var(--ccv-cyan) !important;
}

[data-group-label="Expedientes"] .fi-sidebar-group-items > .fi-sidebar-item:nth-child(2) .fi-sidebar-item-icon {
    color: #4ade80 !important;
}

[data-group-label="Expedientes"] .fi-sidebar-group-items > .fi-sidebar-item:nth-child(3) .fi-sidebar-item-icon {
    color: #fb923c !important;
}

[data-group-label="Expedientes"] .fi-sidebar-group-items > .fi-sidebar-item:nth-child(4) .fi-sidebar-item-icon {
    color: #f87171 !important;
}

[data-group-label="Expedientes"] .fi-sidebar-item.fi-active .fi-sidebar-item-icon {
    color: #ffffff !important;
}

[data-group-label="Expedientes"] .fi-sidebar-item:nth-child(1).fi-active .fi-sidebar-item-button {
    background: linear-gradient(90deg, rgba(34, 211, 238, 0.28), rgba(34, 211, 238, 0.06)) !important;
    box-shadow: inset 3px 0 0 var(--ccv-cyan);
}

[data-group-label="Expedientes"] .fi-sidebar-item:nth-child(2).fi-active .fi-sidebar-item-button {
    background: linear-gradient(90deg, rgba(74, 222, 128, 0.28), rgba(74, 222, 128, 0.06)) !important;
    box-shadow: inset 3px 0 0 #4ade80;
}

[data-group-label="Expedientes"] .fi-sidebar-item:nth-child(3).fi-active .fi-sidebar-item-button {
    background: linear-gradient(90deg, rgba(251, 146, 60, 0.28), rgba(251, 146, 60, 0.06)) !important;
    box-shadow: inset 3px 0 0 #fb923c;
}

[data-group-label="Expedientes"] .fi-sidebar-item:nth-child(4).fi-active .fi-sidebar-item-button {
    background: linear-gradient(90deg, rgba(248, 113, 113, 0.28), rgba(248, 113, 113, 0.06)) !important;
    box-shadow: inset 3px 0 0 #f87171;
}

/* ===== Paginación "tech": nada de lista de números — solo un par de
   botones Anterior/Siguiente en píldora con flecha e icono, más el resumen
   de resultados al centro. Aplica a cualquier tabla del panel (Expedientes,
   Roles, futuras). La lista numerada por defecto de Filament se oculta por
   completo (`.fi-pagination-items`). ===== */
.fi-pagination {
    padding: 0.25rem 0;
}

.fi-pagination-items {
    display: none !important;
}

.fi-pagination-overview {
    font-weight: 600;
}

.fi-pagination-records-per-page-select .fi-input-wrp {
    border-radius: 9999px !important;
}

.fi-pagination-previous-btn,
.fi-pagination-next-btn {
    display: inline-flex !important;
    position: relative;
    border-radius: 9999px !important;
    padding-inline: 1.35rem !important;
    font-weight: 700 !important;
    background: #ffffff !important;
    color: var(--ccv-navy) !important;
    box-shadow: 0 6px 16px -9px rgba(13, 45, 94, 0.4), inset 0 0 0 1px rgba(26, 74, 142, 0.16) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.dark .fi-pagination-previous-btn,
.dark .fi-pagination-next-btn {
    background: rgba(255, 255, 255, 0.06) !important;
    color: #e2e8f0 !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14) !important;
}

.fi-pagination-previous-btn:hover,
.fi-pagination-next-btn:hover {
    background: linear-gradient(135deg, var(--ccv-blue), var(--ccv-cyan)) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 22px -8px var(--ccv-glow) !important;
}

.fi-pagination-previous-btn::before {
    content: '';
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-inline-start: 2px solid currentColor;
    border-block-start: 2px solid currentColor;
    transform: rotate(-45deg);
    margin-inline-end: 0.35rem;
}

.fi-pagination-next-btn::after {
    content: '';
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-inline-end: 2px solid currentColor;
    border-block-start: 2px solid currentColor;
    transform: rotate(45deg);
    margin-inline-start: 0.35rem;
}

/* ===== Botón de cerrar sesión anclado al pie del sidebar ===== */
.ccv-sidebar-logout-ctn {
    padding: 1rem 1.5rem 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ccv-sidebar-logout-ctn form {
    width: 100%;
}

.ccv-sidebar-logout-btn {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.6rem 0.9rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.ccv-sidebar-logout-btn:hover {
    background: linear-gradient(135deg, #c0392b, #e57373);
    border-color: transparent;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 10px 20px -8px rgba(192, 57, 43, 0.55);
}

.ccv-sidebar-logout-icon {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
}

/* ===== Topbar: acento institucional ===== */
.fi-topbar > nav {
    border-bottom: 3px solid var(--ccv-blue);
}

/* ===== Detalles generales ===== */
.fi-sidebar-open-btn,
.fi-topbar-open-sidebar-btn {
    color: var(--ccv-blue);
}

/* ===== Login institucional ===== */
.ccv-login-page {
    display: flex;
    min-height: 100vh;
    width: 100%;
    font-family: var(--font-family);
}

.ccv-login-hero {
    display: none;
    position: relative;
    flex: 1 1 50%;
    flex-direction: column;
    justify-content: space-between;
    padding: 3rem;
    overflow: hidden;
    background: radial-gradient(circle at 15% 20%, var(--ccv-blue) 0%, var(--ccv-navy) 55%, #08203f 100%);
}

.ccv-login-blob {
    position: absolute;
    border-radius: 9999px;
    filter: blur(70px);
    opacity: 0.35;
    pointer-events: none;
}

.ccv-login-logo-chip {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-self: flex-start;
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 0.5rem 0.85rem;
}

.ccv-login-logo-chip img {
    height: 2.5rem;
    width: auto;
    display: block;
}

.ccv-login-copy {
    position: relative;
    z-index: 1;
}

.ccv-login-copy h1 {
    color: #ffffff;
    font-size: 2.25rem;
    line-height: 1.15;
    font-weight: 700;
    margin: 0 0 1.25rem;
}

.ccv-login-copy p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1rem;
    max-width: 28rem;
    margin: 0 0 1.75rem;
}

.ccv-login-features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ccv-login-features li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.875rem;
}

.ccv-login-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    height: 2.25rem;
    width: 2.25rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
}

.ccv-login-feature-icon svg {
    height: 1.15rem;
    width: 1.15rem;
}

.ccv-login-footer {
    position: relative;
    z-index: 1;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.75rem;
}

.ccv-login-form-side {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    padding: 2rem 1.5rem;
}

.ccv-login-card {
    width: 100%;
    max-width: 24rem;
    background: #ffffff;
    border-radius: 1.25rem;
    padding: 2.5rem 2.25rem;
    box-shadow: 0 25px 65px -20px rgba(13, 45, 94, 0.4);
}

.ccv-login-card-logo {
    display: flex;
    justify-content: center;
    margin-bottom: 1.75rem;
}

.ccv-login-card-logo img {
    height: 3.5rem;
    width: auto;
}

.ccv-login-card-heading {
    text-align: center;
    margin-bottom: 2rem;
}

.ccv-login-card-heading h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.35rem;
}

.ccv-login-card-heading p {
    font-size: 0.875rem;
    color: #64748b;
    margin: 0;
}

.ccv-login-card-footer {
    text-align: center;
    color: #94a3b8;
    font-size: 0.75rem;
    margin-top: 2rem;
}

.ccv-login-submit .fi-btn,
.ccv-gradient-btn .fi-btn {
    width: 100%;
    justify-content: center;
    background: linear-gradient(90deg, var(--ccv-blue) 0%, var(--ccv-blue-light) 100%) !important;
    border: none !important;
    box-shadow: 0 12px 25px -8px rgba(26, 74, 142, 0.55) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ccv-login-submit .fi-btn:hover,
.ccv-gradient-btn .fi-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px -8px rgba(26, 74, 142, 0.65) !important;
}

@media (min-width: 1024px) {
    .ccv-login-hero {
        display: flex;
    }

    .ccv-login-card-logo {
        display: none;
    }
}

/* ===== Login: forzar apariencia clara aunque el modo oscuro haya quedado
   activo de una sesión anterior (localStorage persiste entre páginas). El
   login es una pieza de marca fija, no se diseñó una variante oscura, así
   que si el usuario cerró sesión con el modo oscuro puesto, sin esto las
   etiquetas y bordes de los campos quedan en blanco-sobre-blanco
   (invisibles) porque Filament les aplica sus clases dark: por defecto. ===== */
.dark .ccv-login-page .fi-fo-field-wrp-label span,
.dark .ccv-login-page label {
    color: #0f172a !important;
}

.dark .ccv-login-page .fi-input {
    color: #0f172a !important;
}

.dark .ccv-login-page .fi-input-wrp {
    background: #ffffff !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05), inset 0 0 0 1px rgba(15, 23, 42, 0.1) !important;
}

.dark .ccv-login-page .fi-input-wrp-suffix {
    border-color: rgba(15, 23, 42, 0.1) !important;
}

.dark .ccv-login-page .fi-checkbox-input {
    background: #ffffff !important;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.1) !important;
}

/* ===== Formulario público de Hoja de Control ===== */
.ccv-form-page {
    min-height: 100vh;
    background: #f1f5f9;
}

.ccv-top-bar {
    background: var(--ccv-navy);
    height: 4px;
}

.ccv-header-wrap {
    max-width: 64rem;
    margin: 24px auto 0;
    padding: 0 1.5rem;
}

.ccv-header-box {
    background: #ffffff;
    border: 1px solid #333333;
    display: grid;
    grid-template-columns: 150px 1fr 165px;
    overflow: hidden;
    min-height: 90px;
}

.ccv-header-logo {
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #333333;
}

.ccv-header-logo img {
    height: 70px;
    width: auto;
}

.ccv-header-titulo {
    padding: 14px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-right: 1px solid #333333;
    background: #ffffff;
}

.ccv-header-titulo h1 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--ccv-navy);
    text-transform: uppercase;
    letter-spacing: .5px;
    line-height: 1.5;
}

.ccv-header-meta {
    display: flex;
    flex-direction: column;
}

.ccv-header-meta-fila {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 12px;
    border-bottom: 1px solid #333333;
    font-size: 11.5px;
    color: var(--ccv-navy);
    gap: 8px;
    flex: 1;
}

.ccv-header-meta-fila:last-child {
    border-bottom: none;
}

.ccv-header-meta-fila span:first-child {
    font-weight: 700;
}

@media (max-width: 640px) {
    .ccv-header-box {
        grid-template-columns: 1fr;
    }

    .ccv-header-logo {
        border-right: none;
        border-bottom: 1px solid #333333;
    }

    .ccv-header-titulo {
        border-right: none;
        border-bottom: 1px solid #333333;
    }
}

.ccv-form-container {
    max-width: 64rem;
    margin: 0 auto;
    padding: 0.75rem 1.5rem 4rem;
}

.ccv-form-card {
    background: #ffffff;
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: 0 20px 50px -25px rgba(13, 45, 94, 0.35);
}

.ccv-form-actions {
    margin-top: 1.5rem;
    display: flex;
    justify-content: flex-end;
}

.ccv-form-actions .fi-btn {
    padding-left: 2rem;
    padding-right: 2rem;
}

.ccv-form-footer {
    text-align: center;
    color: #94a3b8;
    font-size: 0.75rem;
    padding-bottom: 2rem;
}

/* ===== Bloque de identificación con líneas tipo hoja de cálculo ===== */
.ccv-doc-table {
    border: 1px solid var(--ccv-blue);
    border-radius: 10px;
    box-shadow: 0 4px 16px -8px rgba(13, 45, 94, .25);
    margin: 1.5rem 0;
}

.ccv-doc-table .fi-fo-component-ctn {
    gap: 0 !important;
}

.ccv-doc-table .fi-fo-field-wrp {
    padding: 0;
}

.ccv-doc-table .fi-fo-component-ctn > div + div .fi-fo-field-wrp {
    border-top: 1px solid var(--ccv-blue);
}

.ccv-doc-table .fi-fo-component-ctn > div:nth-child(odd) .fi-fo-field-wrp {
    background: #f7fafc;
}

.ccv-doc-table .fi-fo-component-ctn > div:first-child .fi-fo-field-wrp {
    border-top-left-radius: 9px;
    border-top-right-radius: 9px;
}

.ccv-doc-table .fi-fo-component-ctn > div:last-child .fi-fo-field-wrp {
    border-bottom-left-radius: 9px;
    border-bottom-right-radius: 9px;
}

.ccv-doc-table .fi-fo-field-wrp > div {
    display: grid !important;
    grid-template-columns: 30% 1fr !important;
    gap: 0 !important;
    align-items: stretch !important;
}

.ccv-doc-table .fi-fo-field-wrp > div > div:first-child {
    grid-column: 1 / 2 !important;
    grid-row: 1 !important;
    background: transparent;
    padding: 0.75rem 1.25rem;
    margin: 0;
    display: flex;
    align-items: center;
}

.ccv-doc-table .fi-fo-field-wrp label {
    color: var(--ccv-navy);
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.35;
}

.ccv-doc-table .fi-fo-field-wrp > div > div:last-child {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    padding: 0.6rem 1.25rem;
    margin: 0;
    display: flex;
    align-items: center;
    border-inline-start: 1px solid var(--ccv-blue);
}

.ccv-doc-table .fi-input-wrp,
.ccv-doc-table .choices {
    border: 1px solid #94a3b8 !important;
    box-shadow: none !important;
    background: #ffffff !important;
    border-radius: 0.25rem !important;
}

/* =====================================================================
   Panel admin — capa "tech": glassmorphism, gradientes, glow, micro-motion
   ===================================================================== */

/* Fondo con textura de puntos sutil para dar profundidad al lienzo */
.fi-main {
    background-image: radial-gradient(circle, rgba(26, 74, 142, 0.08) 1px, transparent 1px);
    background-size: 22px 22px;
}

.dark .fi-main {
    background-image: radial-gradient(circle, rgba(74, 144, 200, 0.09) 1px, transparent 1px);
}

/* Scrollbar a la medida */
* {
    scrollbar-color: var(--ccv-blue-light) transparent;
    scrollbar-width: thin;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--ccv-blue-light), var(--ccv-blue));
    border-radius: 9999px;
}

/* ===== Topbar con efecto vidrio ===== */
.fi-topbar > nav {
    background: rgba(255, 255, 255, 0.72) !important;
    backdrop-filter: blur(14px) saturate(160%);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
    border-bottom: 1px solid rgba(26, 74, 142, 0.12);
    box-shadow: 0 1px 0 var(--ccv-blue), 0 10px 30px -20px rgba(13, 45, 94, 0.4);
}

.dark .fi-topbar > nav {
    background: rgba(15, 23, 42, 0.72) !important;
    border-bottom: 1px solid rgba(74, 144, 200, 0.18);
}

/* ===== Sidebar: brillo detrás del logo + item activo con acento luminoso ===== */
.fi-sidebar-header {
    position: relative;
}

.fi-sidebar-header::after {
    content: '';
    position: absolute;
    inset: -20% -10% auto -10%;
    height: 140px;
    background: radial-gradient(circle, rgba(34, 211, 238, 0.25) 0%, transparent 70%);
    pointer-events: none;
    filter: blur(10px);
}

.fi-sidebar-item.fi-active .fi-sidebar-item-button {
    position: relative;
    background: linear-gradient(90deg, rgba(34, 211, 238, 0.22) 0%, rgba(255, 255, 255, 0.08) 100%) !important;
    box-shadow: inset 3px 0 0 0 var(--ccv-cyan);
}

.fi-sidebar-item.fi-active .fi-sidebar-item-icon {
    color: var(--ccv-cyan) !important;
    filter: drop-shadow(0 0 6px rgba(34, 211, 238, 0.6));
}

.fi-sidebar-item-button {
    border-radius: 0.6rem;
    transition: transform 0.15s ease, background 0.15s ease;
}

.fi-sidebar-item-button:hover {
    transform: translateX(2px);
}

/* ===== Tarjetas de estadísticas: gradiente, ícono flotante y glow al pasar el mouse ===== */
.fi-wi-stats-overview-stats-ctn {
    gap: 1.25rem !important;
}

.fi-wi-stats-overview-stat {
    position: relative;
    overflow: hidden;
    border: none !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 12px 30px -18px rgba(13, 45, 94, 0.45), inset 0 0 0 1px rgba(26, 74, 142, 0.08) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fi-wi-stats-overview-stat:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px -16px rgba(13, 45, 94, 0.5), inset 0 0 0 1px rgba(26, 74, 142, 0.12) !important;
}

.fi-wi-stats-overview-stat::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--ccv-blue), var(--ccv-cyan));
}

.fi-wi-stats-overview-stat::after {
    content: '';
    position: absolute;
    top: -30px;
    right: -30px;
    height: 100px;
    width: 100px;
    border-radius: 9999px;
    background: radial-gradient(circle, rgba(26, 74, 142, 0.12) 0%, transparent 70%);
}

.fi-wi-stats-overview-stat-value {
    background: linear-gradient(90deg, var(--ccv-navy), var(--ccv-blue-light));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 2rem !important;
}

.dark .fi-wi-stats-overview-stat-value {
    background: linear-gradient(90deg, #ffffff, var(--ccv-cyan));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.fi-wi-stats-overview-stat-icon {
    height: 2.25rem !important;
    width: 2.25rem !important;
    padding: 0.5rem;
    border-radius: 9999px;
    background: linear-gradient(135deg, var(--ccv-blue), var(--ccv-blue-light));
    color: #ffffff !important;
    box-shadow: 0 6px 16px -6px var(--ccv-glow);
}

/* Segunda tarjeta (Abiertos) en tono verde, tercera (Cerrados) en rojo, cuarta (Reabiertos) en naranja */
.fi-wi-stats-overview-stat:nth-child(2)::before {
    background: linear-gradient(90deg, #15803d, #4ade80);
}

.fi-wi-stats-overview-stat:nth-child(2) .fi-wi-stats-overview-stat-icon {
    background: linear-gradient(135deg, #15803d, #4ade80);
    box-shadow: 0 6px 16px -6px rgba(21, 128, 61, 0.5);
}

.fi-wi-stats-overview-stat:nth-child(3)::before {
    background: linear-gradient(90deg, #b91c1c, #f87171);
}

.fi-wi-stats-overview-stat:nth-child(3) .fi-wi-stats-overview-stat-icon {
    background: linear-gradient(135deg, #b91c1c, #f87171);
    box-shadow: 0 6px 16px -6px rgba(185, 28, 28, 0.5);
}

.fi-wi-stats-overview-stat:nth-child(4)::before {
    background: linear-gradient(90deg, #c2410c, #fb923c);
}

.fi-wi-stats-overview-stat:nth-child(4) .fi-wi-stats-overview-stat-icon {
    background: linear-gradient(135deg, #c2410c, #fb923c);
    box-shadow: 0 6px 16px -6px rgba(194, 65, 12, 0.5);
}

/* ===== Pestañas (Tabs) tipo "pill" con gradiente activo ===== */
.fi-tabs {
    gap: 0.35rem !important;
    padding: 0.35rem !important;
    background: rgba(26, 74, 142, 0.06);
    border-radius: 9999px !important;
    width: fit-content;
}

.dark .fi-tabs {
    background: rgba(255, 255, 255, 0.06);
}

.fi-tabs-item {
    border-radius: 9999px !important;
}

.fi-tabs-item.fi-active {
    background: linear-gradient(90deg, var(--ccv-blue) 0%, var(--ccv-blue-light) 100%) !important;
    box-shadow: 0 8px 18px -8px var(--ccv-glow);
}

.fi-tabs-item.fi-active .fi-tabs-item-label {
    color: #ffffff !important;
}

.fi-tabs-item.fi-active .fi-tabs-item-icon {
    color: #ffffff !important;
}

.fi-tabs-item.fi-active .fi-badge {
    background: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

/* ===== Secciones: acento superior + elevación al interactuar =====
   Nota: SIN overflow:hidden en el contenedor — cortaba los popups
   (calendario del DatePicker, listas de los Select) que se abren dentro
   de la sección. El acento superior se redondea con su propio radio en
   vez de depender del recorte del padre. ===== */
.fi-section {
    border: none !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 10px 28px -20px rgba(13, 45, 94, 0.35), inset 0 0 0 1px rgba(26, 74, 142, 0.08) !important;
    position: relative;
    transition: box-shadow 0.2s ease;
}

.fi-section::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    border-radius: 1.25rem 1.25rem 0 0;
    background: linear-gradient(90deg, var(--ccv-blue), var(--ccv-cyan));
    opacity: 0.85;
}

.fi-section:focus-within {
    box-shadow: 0 14px 32px -18px rgba(13, 45, 94, 0.45), inset 0 0 0 1px rgba(26, 74, 142, 0.14) !important;
}

.fi-section-header-icon {
    background: linear-gradient(135deg, var(--ccv-blue), var(--ccv-blue-light)) !important;
    color: #ffffff !important;
    box-shadow: 0 6px 16px -6px var(--ccv-glow);
}

/* ===== Tabla: tarjeta contenedora + fila con acento lateral al pasar el mouse =====
   Nota: SIN overflow:hidden — cortaba los desplegables de filtros/columnas
   y el calendario de los filtros de fecha. Las esquinas superiores se
   redondean directamente en la fila de encabezado. ===== */
.fi-ta-ctn {
    border: none !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 12px 32px -22px rgba(13, 45, 94, 0.4), inset 0 0 0 1px rgba(26, 74, 142, 0.08) !important;
}

.fi-ta-ctn > table > thead > tr:first-child > *:first-child,
.fi-ta-ctn .fi-ta-header-cell:first-child {
    border-top-left-radius: 1.25rem;
}

.fi-ta-ctn > table > thead > tr:first-child > *:last-child,
.fi-ta-ctn .fi-ta-header-cell:last-child {
    border-top-right-radius: 1.25rem;
}

.fi-ta-header-cell {
    background: rgba(26, 74, 142, 0.05);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.7rem !important;
}

.dark .fi-ta-header-cell {
    background: rgba(255, 255, 255, 0.04);
}

/* Nota: el selector original apuntaba a .fi-ta-record, una clase que
   Filament solo usa en el layout de "content grid" (tarjetas) — ninguna
   tabla de este panel lo usa, así que este acento nunca se pintaba.
   La fila real de una tabla normal es <tr class="fi-ta-row">.

   Importante: el acento NO se pone como ::before del propio <tr> —
   un pseudo-elemento generado directamente sobre una fila de tabla
   descuadra el ancho de columnas en Chrome (el thead y el tbody dejan
   de compartir el mismo cálculo de columnas). Por eso se pone sobre la
   primera <td>, igual que la franja de estado de Expedientes de más
   abajo. */
.fi-ta-row {
    transition: background 0.15s ease;
}

.fi-ta-row > td.fi-ta-cell:first-child {
    position: relative;
}

.fi-ta-row > td.fi-ta-cell:first-child::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: linear-gradient(180deg, var(--ccv-blue), var(--ccv-cyan));
    opacity: 0;
    transition: opacity 0.15s ease;
}

.fi-ta-row:hover > td.fi-ta-cell:first-child::before {
    opacity: 1;
}

.dark .fi-ta-row:hover > td.fi-ta-cell:first-child::before {
    box-shadow: 0 0 8px var(--ccv-cyan);
}

.fi-ta-row:hover {
    background: rgba(26, 74, 142, 0.045) !important;
}

.dark .fi-ta-row:hover {
    background: rgba(74, 144, 200, 0.08) !important;
}

/* ===== Badges con leve resplandor de color ===== */
.fi-badge {
    border-radius: 9999px !important;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.02);
}

/* ===== Botones: píldora redondeada en vez del rectángulo casi recto por
   defecto de Filament (rounded-lg), para que combine con el resto del
   panel (badges, paginación, tarjetas de Inicio) ===== */
.fi-btn {
    border-radius: 9999px !important;
    padding-inline: 1.1rem !important;
    font-weight: 700 !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.fi-btn:hover {
    transform: translateY(-1px);
}

.fi-btn-color-gray {
    box-shadow: 0 6px 14px -8px rgba(15, 23, 42, 0.35) !important;
}

/* ===== Botones primarios con gradiente y elevación ===== */
.fi-btn-color-primary {
    background: linear-gradient(90deg, var(--ccv-blue) 0%, var(--ccv-blue-light) 100%) !important;
    border: none !important;
    box-shadow: 0 10px 22px -10px var(--ccv-glow) !important;
}

.fi-btn-color-primary:hover {
    box-shadow: 0 14px 26px -8px var(--ccv-glow) !important;
}

.fi-btn-color-danger {
    background: linear-gradient(90deg, #c0392b 0%, #e57373 100%) !important;
    border: none !important;
    box-shadow: 0 10px 22px -10px rgba(192, 57, 43, 0.5) !important;
}

.fi-btn-color-danger:hover {
    box-shadow: 0 14px 26px -8px rgba(192, 57, 43, 0.6) !important;
}

.fi-btn-color-warning {
    background: linear-gradient(90deg, #ea580c 0%, #fb923c 100%) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: 0 10px 22px -10px rgba(234, 88, 12, 0.5) !important;
}

.fi-btn-color-warning:hover {
    box-shadow: 0 14px 26px -8px rgba(234, 88, 12, 0.6) !important;
}

/* ===== Acciones de fila (PDF/Editar/Eliminar/Asignar Rol/Cambiar Estado):
   estilo "anillo delineado" — transparente con borde y ícono del color de
   la acción en reposo, se rellena de color sólido con sombra al pasar el
   mouse. Reemplaza el link con icono+texto por defecto de Filament (ese
   formato ocupaba demasiado ancho horizontal y forzaba scroll en las
   tablas). Aplica a cualquier tabla del panel (Expedientes, Roles,
   Usuarios). ===== */
.fi-ta-actions {
    gap: 0.4rem !important;
}

.fi-ta-actions .fi-icon-btn {
    width: 2.1rem !important;
    height: 2.1rem !important;
    margin: 0 !important;
    border-radius: 9999px !important;
    background: transparent !important;
    border: 1.5px solid currentColor !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.fi-ta-actions .fi-icon-btn-icon {
    width: 1rem !important;
    height: 1rem !important;
}

.fi-ta-actions .fi-icon-btn:hover {
    color: #fff !important;
    transform: translateY(-2px);
}

.fi-ta-actions .fi-icon-btn.fi-color-gray {
    color: #64748b !important;
}

.fi-ta-actions .fi-icon-btn.fi-color-gray:hover {
    background: #64748b !important;
    box-shadow: 0 8px 18px -6px rgba(100, 116, 139, 0.55);
}

.fi-ta-actions .fi-icon-btn.fi-color-primary {
    color: var(--ccv-blue) !important;
}

.fi-ta-actions .fi-icon-btn.fi-color-primary:hover {
    background: var(--ccv-blue) !important;
    box-shadow: 0 8px 18px -6px var(--ccv-glow);
}

.fi-ta-actions .fi-icon-btn.fi-color-danger {
    color: #c0392b !important;
}

.fi-ta-actions .fi-icon-btn.fi-color-danger:hover {
    background: #c0392b !important;
    box-shadow: 0 8px 18px -6px rgba(192, 57, 43, 0.55);
}

.fi-ta-actions .fi-icon-btn.fi-color-warning {
    color: #ea580c !important;
}

.fi-ta-actions .fi-icon-btn.fi-color-warning:hover {
    background: #ea580c !important;
    box-shadow: 0 8px 18px -6px rgba(234, 88, 12, 0.55);
}

.dark .fi-ta-actions .fi-icon-btn.fi-color-gray {
    color: #94a3b8 !important;
}

/* ===== Tabla de Expedientes más compacta para que quepa sin scroll
   horizontal: menos padding por celda y columnas de badge/fecha más
   angostas ===== */
.fi-ta-cell {
    padding-inline: 0.3rem !important;
}

.fi-ta-header-cell {
    padding-inline: 0.3rem !important;
}

.fi-ta-actions-cell > div {
    padding-inline: 0.3rem !important;
}

.fi-ta-cell .fi-badge {
    font-size: 0.7rem !important;
    padding-inline: 0.5rem !important;
}

/* ===== Corrección de contraste en modo oscuro: encabezado del repetidor
   de documentos (paquete awcodes/filament-table-repeater no trae CSS
   propio compilado con soporte dark, así que se sobreescribe aquí) ===== */
.dark .table-repeater-header-column {
    background: rgba(15, 23, 42, 0.75) !important;
    color: #cbd5e1 !important;
}

.dark .table-repeater-header {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

/* =====================================================================
   Dirección "Sala de Control": refuerzo terminal/control-room sobre la
   capa tech existente. Solo modo oscuro — en claro el panel se queda
   con la identidad institucional de siempre.
   ===================================================================== */

/* Encabezados de tabla y etiquetas de stats con tipografía técnica */
.dark thead th.fi-ta-header-cell,
.dark .fi-wi-stats-overview-stat-label {
    font-family: var(--ccv-font-tech);
    letter-spacing: 0.04em;
}

/* Celdas de datos "de código" (matrícula, NIT/cédula, fecha) en mono —
   posiciones fijas de columna en la tabla de Expedientes: 1=matrícula,
   3=NIT/cédula, 6=fecha de elaboración */
.dark td.fi-ta-cell:nth-child(1),
.dark td.fi-ta-cell:nth-child(3),
.dark td.fi-ta-cell:nth-child(6) {
    font-family: var(--ccv-font-tech);
    font-variant-numeric: tabular-nums;
}

/* Badges: de "pastilla sólida" a "readout" con borde + glow del propio color */
.dark .fi-badge {
    background: transparent !important;
    border: 1px solid currentColor;
    box-shadow: 0 0 10px -3px currentColor;
    font-family: var(--ccv-font-tech);
    letter-spacing: 0.02em;
}

/* Franja de estado a la izquierda de cada fila de Expedientes, como un
   indicador de estado en una consola de monitoreo */
.dark tr.fi-ta-row.ccv-row-abierto > td.fi-ta-cell:first-child,
.dark tr.fi-ta-row.ccv-row-cerrado > td.fi-ta-cell:first-child,
.dark tr.fi-ta-row.ccv-row-reabierto > td.fi-ta-cell:first-child {
    position: relative;
}

.dark tr.fi-ta-row.ccv-row-abierto > td.fi-ta-cell:first-child::before,
.dark tr.fi-ta-row.ccv-row-cerrado > td.fi-ta-cell:first-child::before,
.dark tr.fi-ta-row.ccv-row-reabierto > td.fi-ta-cell:first-child::before {
    content: '';
    position: absolute;
    inset-inline-start: 0;
    top: 0.45rem;
    bottom: 0.45rem;
    width: 3px;
    border-radius: 2px;
    opacity: 1;
}

.dark tr.fi-ta-row.ccv-row-abierto > td.fi-ta-cell:first-child::before {
    background: #34d399;
    box-shadow: 0 0 8px #34d399;
}

.dark tr.fi-ta-row.ccv-row-cerrado > td.fi-ta-cell:first-child::before {
    background: #f87171;
    box-shadow: 0 0 8px #f87171;
}

.dark tr.fi-ta-row.ccv-row-reabierto > td.fi-ta-cell:first-child::before {
    background: #fbbf24;
    box-shadow: 0 0 8px #fbbf24;
}

/* Campos de formulario: anillo de foco con glow cian, como un campo de
   terminal que se "activa" — reemplaza el foco azul institucional plano
   solo en modo oscuro (en claro se deja el foco de marca de siempre) */
.dark .fi-input-wrp:focus-within {
    box-shadow: 0 0 0 1px var(--ccv-cyan), 0 0 14px -2px var(--ccv-cyan) !important;
}

/* Botones de acción de fila: además del relleno sólido al pasar el
   mouse, un glow hacia afuera del mismo color en modo oscuro */
.dark .fi-ta-actions .fi-icon-btn:hover {
    box-shadow: 0 0 16px -3px currentColor, 0 8px 18px -6px rgba(0, 0, 0, 0.5) !important;
}

/* Pestañas activas: refuerzo de glow en modo oscuro */
.dark .fi-tabs-item.fi-active {
    box-shadow: 0 0 18px -4px var(--ccv-cyan), 0 8px 18px -8px var(--ccv-glow) !important;
}

/* Encabezado del repetidor de documentos: mismo lenguaje "de código" que
   los encabezados de tabla del resto del panel */
.dark .table-repeater-header-column {
    font-family: var(--ccv-font-tech);
    letter-spacing: 0.04em;
}

/* Estado vacío de una tabla: aro con glow en vez de círculo gris plano */
.dark .fi-ta-empty-state-icon-ctn {
    box-shadow: 0 0 0 1px rgba(34, 211, 238, 0.25), 0 0 24px -6px var(--ccv-cyan);
}

/* ===== Inicio: el reloj en vivo como un "readout" digital y las
   tarjetas de acceso rápido con el mismo glow del resto del panel ===== */
.dark .ccv-home-clock-time {
    font-family: var(--ccv-font-tech);
    text-shadow: 0 0 18px rgba(34, 211, 238, 0.55);
}

.dark .ccv-home-clock-date,
.dark .ccv-home-clock-label,
.dark .ccv-home-clock-year {
    font-family: var(--ccv-font-tech);
}

.dark .ccv-home-card:hover {
    box-shadow: 0 0 0 1px rgba(34, 211, 238, 0.3), 0 18px 32px -18px rgba(0, 0, 0, 0.6) !important;
}

.dark .ccv-home-activity-time {
    font-family: var(--ccv-font-tech);
    font-size: 0.7rem;
}

/* ===== Ocultar el botón "Reiniciar" del panel de filtros (tablas de
   Expedientes/Usuarios) — pedido explícito del usuario ===== */
.fi-ta-filters [wire\:click="resetTableFiltersForm"] {
    display: none !important;
}
