        /* ============================================ */
        /* CALCULADORA ENERGÉTICA - DISEÑO TECNOLÓGICO */
        /* ============================================ */
        
        body {
            font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
            color: #f8f9fa;
            min-height: 100vh;
            position: relative;
            overflow-x: hidden;
            background: #1a1d23;
        }
        
        /* Fondo Tecnológico con Cuadrícula */
        body::before {
            content: '';
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(135deg, #1a1d23 0%, #2d3748 50%, #1a202c 100%);
            z-index: -3;
        }
        
        body::after {
            content: '';
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: 
                linear-gradient(rgba(0, 212, 255, 0.08) 1px, transparent 1px),
                linear-gradient(90deg, rgba(0, 212, 255, 0.08) 1px, transparent 1px),
                radial-gradient(circle at 20% 30%, rgba(0, 212, 255, 0.1) 1px, transparent 1px),
                radial-gradient(circle at 80% 70%, rgba(23, 162, 184, 0.08) 1px, transparent 1px);
            background-size: 60px 60px, 60px 60px, 120px 120px, 100px 100px;
            animation: gridFloat 25s linear infinite;
            opacity: 0.6;
            z-index: -2;
        }
        
        @keyframes gridFloat {
            0% { transform: translate(0, 0); }
            100% { transform: translate(60px, 60px); }
        }
        
        /* Overlay de resplandor tecnológico */
        .tech-glow-bg {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: 
                radial-gradient(ellipse at top left, rgba(0, 212, 255, 0.08) 0%, transparent 50%),
                radial-gradient(ellipse at bottom right, rgba(23, 162, 184, 0.06) 0%, transparent 50%);
            z-index: -1;
            animation: glowPulse 8s ease-in-out infinite;
        }
        
        @keyframes glowPulse {
            0%, 100% { opacity: 0.5; }
            50% { opacity: 1; }
        }
        
        /* Overlay tecnológico de fondo */
        .tech-glow-bg {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0;
            background: radial-gradient(circle at 20% 50%, rgba(0, 212, 255, 0.08) 0%, transparent 50%),
                        radial-gradient(circle at 80% 80%, rgba(23, 162, 184, 0.08) 0%, transparent 50%);
            animation: techGlowMove 20s ease-in-out infinite;
        }
        
        @keyframes techGlowMove {
            0%, 100% {
                opacity: 0.6;
                filter: blur(60px);
            }
            50% {
                opacity: 0.9;
                filter: blur(80px);
            }
        }
        
        .main-container {
            max-width: 1000px;
            margin: 0 auto;
            background: rgba(255, 255, 255, 0.05);
            backdrop-filter: blur(20px);
            border: 1px solid rgba(0, 212, 255, 0.2);
            padding: 32px 24px;
            border-radius: 24px;
            box-shadow: 
                0 20px 60px rgba(0, 0, 0, 0.5),
                0 0 40px rgba(0, 212, 255, 0.1);
            position: relative;
            overflow: hidden;
        }
        
        .main-container::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, transparent, #00d4ff, #17a2b8, #00d4ff, transparent);
            animation: containerShine 4s ease-in-out infinite;
        }
        
        @keyframes containerShine {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 1; box-shadow: 0 0 20px rgba(0, 212, 255, 0.6); }
        }
        h2, h3, h4 {
            font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
            font-weight: 700;
            letter-spacing: 1px;
        }
        
        h2 {
            font-size: 2.2rem;
            background: linear-gradient(135deg, #00d4ff 0%, #17a2b8 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            margin-bottom: 1.2rem;
            text-shadow: 0 0 30px rgba(0, 212, 255, 0.3);
            filter: drop-shadow(0 2px 10px rgba(0, 212, 255, 0.4));
            position: relative;
            z-index: 2;
        }
        
        h3 {
            font-size: 1.5rem;
            color: #00d4ff;
            text-shadow: 0 0 20px rgba(0, 212, 255, 0.4);
        }
        
        h4 {
            font-size: 1.2rem;
            color: #17a2b8;
            text-shadow: 0 0 15px rgba(23, 162, 184, 0.4);
        }
        .form-label {
            font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
            font-weight: 500;
            color: rgba(255, 255, 255, 0.9);
            font-size: 1.08rem;
            position: relative;
            z-index: 2;
        }
        
        .form-control, .form-select {
            font-family: 'Lora', 'Georgia', serif;
            font-size: 1.08rem;
            border-radius: 12px;
            border: 1px solid rgba(0, 212, 255, 0.3);
            background: rgba(255, 255, 255, 0.05);
            backdrop-filter: blur(10px);
            color: rgba(255, 255, 255, 0.95);
            padding: 0.75rem 1rem;
            transition: all 0.3s ease;
            position: relative;
            z-index: 2;
        }
        
        .form-control:focus, .form-select:focus {
            background: rgba(255, 255, 255, 0.08);
            border-color: #00d4ff;
            box-shadow: 0 0 20px rgba(0, 212, 255, 0.3);
            color: rgba(255, 255, 255, 0.95);
        }
        
        .form-control::placeholder {
            color: rgba(255, 255, 255, 0.5);
        }
        
        .form-select option {
            background: #1a1d23;
            color: rgba(255, 255, 255, 0.95);
        }
        .btn-primary, .btn-success {
            font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
            font-weight: 700;
            font-size: 1.1rem;
            border-radius: 50px;
            padding: 12px 36px;
            border: none;
            position: relative;
            overflow: hidden;
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            z-index: 2;
        }
        
        .btn-primary {
            background: linear-gradient(135deg, #00d4ff 0%, #17a2b8 100%);
            color: #fff;
            box-shadow: 0 10px 30px rgba(0, 212, 255, 0.4);
        }
        
        .btn-primary:hover {
            transform: translateY(-3px) scale(1.05);
            box-shadow: 0 15px 40px rgba(0, 212, 255, 0.6);
            color: #fff;
            background: linear-gradient(135deg, #17a2b8 0%, #00d4ff 100%);
        }
        
        .btn-primary::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 0;
            height: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.3);
            transform: translate(-50%, -50%);
            transition: width 0.6s, height 0.6s;
        }
        
        .btn-primary:hover::before {
            width: 300px;
            height: 300px;
        }
        
        .btn-success {
            background: linear-gradient(135deg, #00d4ff 0%, #17a2b8 100%);
            color: #fff;
            box-shadow: 0 10px 30px rgba(23, 162, 184, 0.4);
        }
        
        .btn-success:hover {
            transform: translateY(-3px) scale(1.05);
            box-shadow: 0 15px 40px rgba(23, 162, 184, 0.6);
            color: #fff;
            background: linear-gradient(135deg, #17a2b8 0%, #00d4ff 100%);
        }
        
        .btn-success::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 0;
            height: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.3);
            transform: translate(-50%, -50%);
            transition: width 0.6s, height 0.6s;
        }
        
        .btn-success:hover::before {
            width: 300px;
            height: 300px;
        }
        .result-label {
            font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
            font-size: 1.1rem;
            font-weight: 700;
            color: #00d4ff;
            text-shadow: 0 0 10px rgba(0, 212, 255, 0.4);
        }
        
        .result-value {
            font-family: 'Lora', 'Georgia', serif;
            font-size: 1.15rem;
            color: #17a2b8;
            text-shadow: 0 0 10px rgba(23, 162, 184, 0.4);
        }
        
        .text-info, .text-primary {
            font-family: 'Lora', 'Georgia', serif;
            font-size: 1.1rem;
            color: rgba(255, 255, 255, 0.85) !important;
        }
        
        /* Cards de Resultados Mejoradas */
        .alert {
            background: rgba(0, 212, 255, 0.1);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(0, 212, 255, 0.3);
            border-radius: 16px;
            color: rgba(255, 255, 255, 0.9);
            padding: 1.5rem;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            position: relative;
            z-index: 2;
        }
        
        .alert-info {
            background: rgba(0, 212, 255, 0.1);
            border-color: rgba(0, 212, 255, 0.3);
        }
        
        .alert-success {
            background: rgba(23, 162, 184, 0.1);
            border-color: rgba(23, 162, 184, 0.3);
        }
        
        .alert::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg, transparent, #00d4ff, transparent);
            animation: alertShine 3s ease-in-out infinite;
        }
        
        @keyframes alertShine {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 1; }
        }
        
        /* Clases de color personalizadas */
        .text-success {
            color: #17a2b8 !important;
            text-shadow: 0 0 10px rgba(23, 162, 184, 0.3);
        }
        
        h2.text-primary, h3.text-primary, h4.text-primary {
            background: linear-gradient(135deg, #00d4ff 0%, #17a2b8 100%) !important;
            -webkit-background-clip: text !important;
            -webkit-text-fill-color: transparent !important;
            background-clip: text !important;
            filter: drop-shadow(0 2px 10px rgba(0, 212, 255, 0.4));
        }
        
        .sugerencia {
            font-family: 'Lora', 'Georgia', serif;
            font-size: 1.08rem;
            background: rgba(23, 162, 184, 0.15);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(23, 162, 184, 0.3);
            border-radius: 12px;
            padding: 12px 18px;
            margin-top: 1rem;
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
            color: rgba(255, 255, 255, 0.9);
            position: relative;
            z-index: 2;
        }
        
        .img-fluid {
            border-radius: 12px;
            box-shadow: 0 10px 30px rgba(0, 212, 255, 0.3);
            border: 2px solid rgba(0, 212, 255, 0.2);
            transition: all 0.3s ease;
        }
        
        .img-fluid:hover {
            transform: scale(1.05);
            box-shadow: 0 15px 40px rgba(0, 212, 255, 0.5);
        }
        .icon-animated {
            animation: bounceIn 1.2s;
        }
        @keyframes bounceIn {
            0% { transform: scale(0.7);}
            60% { transform: scale(1.1);}
            80% { transform: scale(0.95);}
            100% { transform: scale(1);}
        }
        
        /* Responsive Design */
        @media (max-width: 768px) {
            body::before {
                background-size: 40px 40px;
            }
            
            .main-container {
                padding: 24px 16px;
                border-radius: 16px;
            }
            
            h2 {
                font-size: 1.6rem;
            }
            
            h3 {
                font-size: 1.3rem;
            }
            
            h4 {
                font-size: 1.1rem;
            }
            
            .btn-primary, .btn-success {
                font-size: 1rem;
                padding: 10px 28px;
            }
            
            .form-control, .form-select {
                font-size: 1rem;
            }
            
            .img-fluid {
                max-width: 80px !important;
            }
        }
        
        @media (max-width: 480px) {
            .main-container {
                padding: 20px 12px;
            }
            
            h2 {
                font-size: 1.4rem;
            }
            
            .btn-primary, .btn-success {
                padding: 8px 24px;
            }
        }
        
        /* ============================================ */
        /* EFECTO DE CARGA ELECTRÓNICO */
        /* ============================================ */
        
        .electronic-loader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, #0a0e12 0%, #1a1d23 50%, #0f1216 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
            animation: loaderFadeOut 0.8s ease 2.5s forwards;
        }
        
        @keyframes loaderFadeOut {
            0% { opacity: 1; visibility: visible; }
            100% { opacity: 0; visibility: hidden; }
        }
        
        .loader-content {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 2rem;
        }
        
        /* Círculo de Escaneo */
        .scan-circle {
            width: 200px;
            height: 200px;
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            animation: circleRotate 3s linear infinite;
        }
        
        @keyframes circleRotate {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        
        .scan-line {
            position: absolute;
            width: 100%;
            height: 2px;
            background: linear-gradient(90deg, transparent, #00d4ff, transparent);
            box-shadow: 0 0 20px rgba(0, 212, 255, 0.8);
            animation: scanPulse 1.5s ease-in-out infinite;
        }
        
        .scan-line-2 {
            transform: rotate(90deg);
            animation-delay: 0.75s;
        }
        
        @keyframes scanPulse {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 1; }
        }
        
        .pulse-ring {
            position: absolute;
            width: 100%;
            height: 100%;
            border: 2px solid #00d4ff;
            border-radius: 50%;
            animation: pulseExpand 2s ease-out infinite;
        }
        
        .pulse-ring-2 {
            animation-delay: 0.6s;
        }
        
        .pulse-ring-3 {
            animation-delay: 1.2s;
        }
        
        @keyframes pulseExpand {
            0% {
                transform: scale(0.8);
                opacity: 1;
            }
            100% {
                transform: scale(1.5);
                opacity: 0;
            }
        }
        
        .loader-icon {
            font-size: 4rem;
            color: #00d4ff;
            z-index: 2;
            animation: iconGlow 1s ease-in-out infinite alternate;
            filter: drop-shadow(0 0 20px rgba(0, 212, 255, 0.8));
        }
        
        @keyframes iconGlow {
            0% { 
                color: #00d4ff;
                filter: drop-shadow(0 0 20px rgba(0, 212, 255, 0.8));
            }
            100% { 
                color: #17a2b8;
                filter: drop-shadow(0 0 30px rgba(23, 162, 184, 1));
            }
        }
        
        /* Texto de Carga */
        .loading-text {
            display: flex;
            gap: 0.3rem;
            font-size: 1.2rem;
            font-weight: 700;
            letter-spacing: 0.1rem;
        }
        
        .loading-letter {
            color: #00d4ff;
            animation: letterWave 1.5s ease-in-out infinite;
            text-shadow: 0 0 10px rgba(0, 212, 255, 0.8);
        }
        
        .loading-letter:nth-child(1) { animation-delay: 0s; }
        .loading-letter:nth-child(2) { animation-delay: 0.1s; }
        .loading-letter:nth-child(3) { animation-delay: 0.2s; }
        .loading-letter:nth-child(4) { animation-delay: 0.3s; }
        .loading-letter:nth-child(5) { animation-delay: 0.4s; }
        .loading-letter:nth-child(6) { animation-delay: 0.5s; }
        .loading-letter:nth-child(7) { animation-delay: 0.6s; }
        .loading-letter:nth-child(8) { animation-delay: 0.7s; }
        .loading-letter:nth-child(9) { animation-delay: 0.8s; }
        .loading-letter:nth-child(10) { animation-delay: 0.9s; }
        .loading-letter:nth-child(11) { animation-delay: 1s; }
        .loading-letter:nth-child(12) { animation-delay: 1.1s; }
        .loading-letter:nth-child(13) { animation-delay: 1.2s; }
        .loading-letter:nth-child(14) { animation-delay: 1.3s; }
        .loading-letter:nth-child(15) { animation-delay: 1.4s; }
        .loading-letter:nth-child(16) { animation-delay: 1.5s; }
        
        @keyframes letterWave {
            0%, 100% { 
                transform: translateY(0px);
                opacity: 0.6;
            }
            50% { 
                transform: translateY(-10px);
                opacity: 1;
            }
        }
        
        /* Partículas Flotantes */
        .particle {
            position: absolute;
            width: 4px;
            height: 4px;
            background: #00d4ff;
            border-radius: 50%;
            box-shadow: 0 0 10px rgba(0, 212, 255, 0.8);
            animation: particleFloat 3s ease-in-out infinite;
        }
        
        .particle:nth-child(1) { 
            top: 20%; 
            left: 10%;
            animation-delay: 0s;
        }
        .particle:nth-child(2) { 
            top: 60%; 
            left: 20%;
            animation-delay: 0.5s;
        }
        .particle:nth-child(3) { 
            top: 40%; 
            right: 15%;
            animation-delay: 1s;
        }
        .particle:nth-child(4) { 
            bottom: 30%; 
            right: 25%;
            animation-delay: 1.5s;
        }
        .particle:nth-child(5) { 
            top: 80%; 
            left: 30%;
            animation-delay: 2s;
        }
        .particle:nth-child(6) { 
            top: 15%; 
            right: 35%;
            animation-delay: 0.3s;
        }
        .particle:nth-child(7) { 
            bottom: 20%; 
            left: 40%;
            animation-delay: 1.2s;
        }
        .particle:nth-child(8) { 
            top: 50%; 
            right: 10%;
            animation-delay: 1.8s;
        }
        
        @keyframes particleFloat {
            0%, 100% { 
                transform: translateY(0px) scale(1);
                opacity: 0.3;
            }
            50% { 
                transform: translateY(-30px) scale(1.5);
                opacity: 1;
            }
        }
        
        /* Código de Matriz */
        .matrix-code {
            position: absolute;
            font-family: 'Courier New', monospace;
            font-size: 1rem;
            color: #00d4ff;
            opacity: 0.4;
            animation: matrixFall 4s linear infinite;
        }
        
        .matrix-code {
            top: -10%;
            left: 15%;
        }
        
        .matrix-code-2 {
            top: -10%;
            right: 20%;
            animation-delay: 1s;
        }
        
        .matrix-code-3 {
            top: -10%;
            left: 50%;
            animation-delay: 2s;
        }
        
        @keyframes matrixFall {
            0% { 
                transform: translateY(0);
                opacity: 0;
            }
            10% { 
                opacity: 0.4;
            }
            90% { 
                opacity: 0.4;
            }
            100% { 
                transform: translateY(100vh);
                opacity: 0;
            }
        }
