/*
  Sistema visual PointClave del portal CNE 2027.
  Paleta tomada del degradado del logo (Imagenes/PointClave.png).
  Todas las hojas del portal usan estas variables; no repetir colores sueltos.
*/
:root {
    /* Marca */
    --pc-yellow: #FCE07A;
    --pc-orange: #F7931E;
    --pc-coral: #FF6A3D;
    --pc-pink: #FF2D6B;
    --pc-magenta: #B0237A;
    --pc-purple: #7B1A7E;
    --pc-purple-700: #5E1462;
    --pc-purple-900: #2A0A33;

    /* Degradados */
    --pc-gradient: linear-gradient(135deg, var(--pc-yellow) 0%, var(--pc-orange) 30%, var(--pc-pink) 65%, var(--pc-purple) 100%);
    --pc-gradient-hot: linear-gradient(135deg, var(--pc-orange) 0%, var(--pc-pink) 100%);
    --pc-gradient-deep: linear-gradient(160deg, var(--pc-purple-900) 0%, var(--pc-purple-700) 55%, var(--pc-magenta) 100%);

    /* Neutros (tinte púrpura) */
    --pc-bg: #F7F4FA;
    --pc-surface: #FFFFFF;
    --pc-surface-2: #FBF8FD;
    --pc-border: #E7DFEE;
    --pc-text: #1E1626;
    --pc-text-muted: #6B6176;

    /* Estados */
    --pc-success: #1F9D6B;
    --pc-warning: #F7931E;
    --pc-danger: #E0245E;
    --pc-focus: 0 0 0 3px rgba(255, 45, 107, .35);

    /* Forma y profundidad */
    --pc-radius-sm: 6px;
    --pc-radius: 12px;
    --pc-radius-lg: 20px;
    --pc-shadow-sm: 0 1px 2px rgba(42, 10, 51, .08);
    --pc-shadow: 0 8px 24px rgba(42, 10, 51, .12);
    --pc-shadow-lg: 0 24px 60px rgba(42, 10, 51, .28);

    /* Movimiento */
    --pc-ease: cubic-bezier(.22, 1, .36, 1);
    --pc-fast: 160ms;
    --pc-normal: 320ms;
    --pc-slow: 640ms;

    --pc-font: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Animaciones compartidas */
@keyframes pc-fade-up {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: none; }
}
@keyframes pc-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes pc-pop {
    0% { opacity: 0; transform: scale(.92); }
    60% { opacity: 1; transform: scale(1.02); }
    100% { transform: scale(1); }
}
@keyframes pc-gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes pc-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
@keyframes pc-shimmer {
    from { background-position: -200% 0; }
    to { background-position: 200% 0; }
}
@keyframes pc-pulse-ring {
    0% { box-shadow: 0 0 0 0 rgba(255, 45, 107, .45); }
    100% { box-shadow: 0 0 0 14px rgba(255, 45, 107, 0); }
}
@keyframes pc-spin { to { transform: rotate(360deg); } }
@keyframes pc-shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-6px); }
    40%, 80% { transform: translateX(6px); }
}

/* Utilidades */
.pc-gradient-text {
    background: var(--pc-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.pc-animate-in { animation: pc-fade-up var(--pc-slow) var(--pc-ease) both; }

/* Accesibilidad: sin movimiento si el usuario lo pidió */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
        scroll-behavior: auto !important;
    }
}
