/* 
 * Enhanced Mobile Calculator Styles
 * Optimized touch interaction for health calculators
 */

/* Calculator Mobile Enhancements */
@media (max-width: 768px) {
    
    /* Improved Calculator Forms */
    .calculator-form {
        padding: 20px !important;
        border-radius: 16px !important;
        background: #FFFFFF !important;
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    }
    
    .form-group {
        margin-bottom: 20px !important;
        position: relative !important;
    }
    
    .form-label {
        display: block !important;
        margin-bottom: 8px !important;
        font-weight: 600 !important;
        font-size: 16px !important;
        color: #374151 !important;
    }
    
    /* Enhanced Input Fields */
    .form-input, .form-select {
        width: 100% !important;
        padding: 16px 20px !important;
        border: 2px solid #E5E7EB !important;
        border-radius: 12px !important;
        font-size: 18px !important; /* Prevents iOS zoom */
        background: #FFFFFF !important;
        transition: all 0.2s ease !important;
        -webkit-appearance: none !important;
        -moz-appearance: textfield !important;
        appearance: none !important;
        box-sizing: border-box !important;
    }
    
    .form-input:focus, .form-select:focus {
        outline: none !important;
        border-color: #3B82F6 !important;
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
        background: #FAFBFF !important;
    }
    
    /* Custom Select Arrow */
    .form-select {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e") !important;
        background-repeat: no-repeat !important;
        background-position: right 16px center !important;
        background-size: 20px !important;
        padding-right: 50px !important;
    }
    
    /* Number Input Spinners (Hide for cleaner look) */
    .form-input[type="number"]::-webkit-outer-spin-button,
    .form-input[type="number"]::-webkit-inner-spin-button {
        -webkit-appearance: none !important;
        margin: 0 !important;
    }
    
    /* Enhanced Buttons */
    .calculator-button, .btn-calculate {
        width: 100% !important;
        padding: 18px 24px !important;
        background: linear-gradient(135deg, #3B82F6, #1D4ED8) !important;
        color: white !important;
        border: none !important;
        border-radius: 14px !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        cursor: pointer !important;
        transition: all 0.2s ease !important;
        box-shadow: 0 4px 14px rgba(59, 130, 246, 0.4) !important;
        min-height: 56px !important; /* WCAG touch target */
        margin-top: 16px !important;
        position: relative !important;
        overflow: hidden !important;
    }
    
    .calculator-button:active, .btn-calculate:active {
        transform: translateY(2px) scale(0.98) !important;
        box-shadow: 0 2px 8px rgba(59, 130, 246, 0.4) !important;
    }
    
    .calculator-button:hover, .btn-calculate:hover {
        background: linear-gradient(135deg, #2563EB, #1E40AF) !important;
        box-shadow: 0 6px 20px rgba(59, 130, 246, 0.5) !important;
    }
    
    /* Button Press Animation */
    .calculator-button::before, .btn-calculate::before {
        content: '';
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 0 !important;
        height: 0 !important;
        background: rgba(255, 255, 255, 0.3) !important;
        border-radius: 50% !important;
        transition: all 0.3s ease !important;
        transform: translate(-50%, -50%) !important;
    }
    
    .calculator-button:active::before, .btn-calculate:active::before {
        width: 300px !important;
        height: 300px !important;
    }
}

/* Result Display Mobile Enhancement */
@media (max-width: 768px) {
    
    .result-display, .calculator-result {
        margin-top: 24px !important;
        padding: 24px 20px !important;
        background: linear-gradient(135deg, #F0FDF4, #ECFDF5) !important;
        border: 2px solid #10B981 !important;
        border-radius: 16px !important;
        animation: fadeInScale 0.4s ease-out !important;
    }
    
    @keyframes fadeInScale {
        0% {
            opacity: 0;
            transform: scale(0.9) translateY(20px);
        }
        100% {
            opacity: 1;
            transform: scale(1) translateY(0);
        }
    }
    
    .result-value {
        font-size: 28px !important;
        font-weight: 800 !important;
        color: #059669 !important;
        margin-bottom: 12px !important;
        display: block !important;
    }
    
    .result-category {
        font-size: 18px !important;
        font-weight: 600 !important;
        margin-bottom: 16px !important;
        color: #065F46 !important;
    }
    
    .result-interpretation {
        font-size: 16px !important;
        line-height: 1.6 !important;
        color: #374151 !important;
    }
    
    .result-advice {
        margin-top: 16px !important;
        padding: 16px !important;
        background: rgba(255, 255, 255, 0.7) !important;
        border-radius: 12px !important;
        border-left: 4px solid #10B981 !important;
    }
}

/* Emergency Calculator Styles */
@media (max-width: 768px) {
    
    .emergency-calculator {
        background: linear-gradient(135deg, #FEF2F2, #FEE2E2) !important;
        border: 2px solid #F87171 !important;
    }
    
    .emergency-calculator .calculator-button {
        background: linear-gradient(135deg, #DC2626, #B91C1C) !important;
        box-shadow: 0 4px 14px rgba(220, 38, 38, 0.4) !important;
    }
    
    .emergency-calculator .calculator-button:hover {
        background: linear-gradient(135deg, #B91C1C, #991B1B) !important;
    }
    
    .emergency-result {
        background: linear-gradient(135deg, #FEF2F2, #FEE2E2) !important;
        border: 2px solid #DC2626 !important;
        color: #7F1D1D !important;
    }
}

/* Input Validation and Feedback */
@media (max-width: 768px) {
    
    .form-input.invalid, .form-select.invalid {
        border-color: #EF4444 !important;
        box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
        animation: shake 0.5s ease-in-out !important;
    }
    
    @keyframes shake {
        0%, 20%, 40%, 60%, 80% {
            transform: translateX(0);
        }
        10%, 30%, 50%, 70% {
            transform: translateX(-5px);
        }
        90% {
            transform: translateX(5px);
        }
    }
    
    .form-input.valid, .form-select.valid {
        border-color: #10B981 !important;
        box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1) !important;
    }
    
    .error-message {
        color: #DC2626 !important;
        font-size: 14px !important;
        margin-top: 8px !important;
        padding: 8px 12px !important;
        background: #FEE2E2 !important;
        border-radius: 8px !important;
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
    }
    
    .success-message {
        color: #059669 !important;
        font-size: 14px !important;
        margin-top: 8px !important;
        padding: 8px 12px !important;
        background: #D1FAE5 !important;
        border-radius: 8px !important;
    }
}

/* Loading States for Calculators */
@media (max-width: 768px) {
    
    .calculator-button.loading {
        pointer-events: none !important;
        opacity: 0.7 !important;
    }
    
    .calculator-button.loading::after {
        content: '' !important;
        position: absolute !important;
        width: 20px !important;
        height: 20px !important;
        border: 2px solid transparent !important;
        border-top: 2px solid currentColor !important;
        border-radius: 50% !important;
        animation: spin 1s linear infinite !important;
        margin-left: 10px !important;
    }
    
    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
}

/* Accessibility Improvements */
@media (max-width: 768px) {
    
    /* Focus indicators */
    .calculator-button:focus, .form-input:focus, .form-select:focus {
        outline: 3px solid #3B82F6 !important;
        outline-offset: 2px !important;
    }
    
    /* High contrast mode support */
    @media (prefers-contrast: high) {
        .calculator-button {
            border: 2px solid currentColor !important;
        }
        
        .form-input, .form-select {
            border-width: 3px !important;
        }
    }
    
    /* Reduced motion support */
    @media (prefers-reduced-motion: reduce) {
        .calculator-button, .form-input, .result-display {
            animation: none !important;
            transition: none !important;
        }
    }
}