/* ============================================
   COMPONENTES ESPECÍFICOS - Estilo Retro Gamer
   ============================================ */

/* ---- Tabla de Niveles - Dificultad Animada ---- */
.diff-badge {
    position: relative;
    overflow: hidden;
}

.diff-badge::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(
        45deg,
        transparent 40%,
        rgba(255,255,255,0.05) 50%,
        transparent 60%
    );
    animation: shimmer 3s linear infinite;
}

@keyframes shimmer {
    0% { transform: translateX(-100%) rotate(45deg); }
    100% { transform: translateX(100%) rotate(45deg); }
}

/* ---- Vida Bar con Efecto Neon ---- */
.life-bar-track {
    position: relative;
}

.life-bar-track::after {
    content: '';
    position: absolute;
    inset: -2px;
    border: 2px solid rgba(255,255,255,0.03);
    pointer-events: none;
}

/* ---- Scanline en Tablas ---- */
.table-retro tbody tr {
    position: relative;
}

.table-retro tbody tr::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(0, 240, 255, 0.05), 
        transparent
    );
}

/* ---- Pulsing Dots en Sidebar ---- */
.sidebar-footer .pixel-dots {
    display: inline-block;
    animation: dot-blink 1s steps(2) infinite;
}

@keyframes dot-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.2; }
}

/* ---- Botón Nuevo con Efecto ---- */
.btn-retro-primary .btn-icon {
    display: inline-block;
    animation: rotate-icon 4s linear infinite;
}

@keyframes rotate-icon {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ---- Estado Hover en Cards ---- */
.stat-card {
    cursor: default;
}

.stat-card .stat-number {
    transition: var(--transition);
}

.stat-card:hover .stat-number {
    transform: scale(1.05);
}

/* ---- Filtros - Select Personalizado ---- */
.filter-panel select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2300f0ff' stroke-width='2' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/* ---- Celdas con Tiempo ---- */
.time-cell {
    font-family: var(--pixel-font);
    font-size: 10px;
    color: var(--neon-yellow);
}

/* ---- Badge de Registros ---- */
.registro-badge {
    font-family: var(--pixel-font);
    font-size: 8px;
    padding: 2px 12px;
    background: rgba(0, 240, 255, 0.06);
    border: 2px solid rgba(0, 240, 255, 0.1);
    color: var(--neon-blue);
    display: inline-block;
}

/* ---- Loading Skeleton ---- */
.skeleton {
    background: linear-gradient(90deg, 
        var(--dark-panel) 25%, 
        rgba(0, 240, 255, 0.02) 50%, 
        var(--dark-panel) 75%
    );
    background-size: 200% 100%;
    animation: skeleton-load 1.5s ease-in-out infinite;
}

@keyframes skeleton-load {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ---- Tooltip Retro ---- */
.tooltip-retro {
    position: relative;
}

.tooltip-retro::before {
    content: attr(data-tip);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    background: var(--dark-panel);
    border: 2px solid var(--neon-blue);
    padding: 4px 12px;
    font-family: var(--pixel-font);
    font-size: 7px;
    color: #fff;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: var(--transition);
}

.tooltip-retro:hover::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ---- Tabla de Usuarios - Botones de Acción ---- */
.action-group {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.btn-retro-sm {
    font-size: 7px;
    padding: 4px 10px;
}

/* ---- Modal de Eliminación ---- */
.modal-retro-danger .modal-content {
    border-color: #ff0040;
    box-shadow: 0 0 60px rgba(255, 0, 64, 0.08);
}

.modal-retro-danger .modal-header {
    border-bottom-color: rgba(255, 0, 64, 0.2);
}

/* ---- Chart Containers ---- */
.chart-box canvas {
    image-rendering: pixelated;
}

/* ---- Responsive Ajustes ---- */
@media (max-width: 768px) {
    .action-group {
        flex-direction: column;
        gap: 4px;
    }
    .btn-retro-sm {
        width: 100%;
        justify-content: center;
    }
    .life-bar-track {
        width: 80px;
    }
    .card-retro-body {
        padding: 12px;
        overflow-x: auto;
    }
}