<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Calcolatore di Portata</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Arial', sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 20px;
        }

        .container {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            border-radius: 20px;
            box-shadow: 0 25px 45px rgba(0, 0, 0, 0.1);
            padding: 40px;
            max-width: 500px;
            width: 100%;
            transform: translateY(0);
            transition: transform 0.3s ease;
        }

        .container:hover {
            transform: translateY(-5px);
        }

        h1 {
            text-align: center;
            color: #333;
            margin-bottom: 30px;
            font-size: 2.2em;
            font-weight: 300;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        .input-group {
            margin-bottom: 25px;
            position: relative;
        }

        label {
            display: block;
            margin-bottom: 8px;
            color: #555;
            font-weight: 600;
            font-size: 1.1em;
        }

        input {
            width: 100%;
            padding: 15px 20px;
            border: 2px solid #e0e0e0;
            border-radius: 12px;
            font-size: 1.1em;
            transition: all 0.3s ease;
            background: rgba(255, 255, 255, 0.8);
        }

        input:focus {
            outline: none;
            border-color: #667eea;
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
            transform: scale(1.02);
        }

        .time-inputs {
            display: flex;
            gap: 15px;
        }

        .time-inputs .input-group {
            flex: 1;
            margin-bottom: 0;
        }

        .calculate-btn {
            width: 100%;
            padding: 18px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            border-radius: 12px;
            font-size: 1.3em;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-top: 20px;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .calculate-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 15px 30px rgba(102, 126, 234, 0.4);
        }

        .calculate-btn:active {
            transform: translateY(0);
        }

        .result {
            margin-top: 30px;
            padding: 25px;
            background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
            border-radius: 12px;
            text-align: center;
            color: white;
            font-size: 1.4em;
            font-weight: 600;
            box-shadow: 0 10px 25px rgba(17, 153, 142, 0.3);
            transform: scale(0.95);
            opacity: 0;
            transition: all 0.3s ease;
        }

        .result.show {
            transform: scale(1);
            opacity: 1;
        }

        .formula {
            margin-top: 20px;
            padding: 20px;
            background: rgba(0, 0, 0, 0.05);
            border-radius: 12px;
            text-align: center;
            color: #666;
            font-style: italic;
            border-left: 4px solid #667eea;
        }

        .error {
            background: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%);
            color: white;
        }

        @media (max-width: 600px) {
            .container {
                padding: 25px;
                margin: 10px;
            }

            h1 {
                font-size: 1.8em;
            }

            .time-inputs {
                flex-direction: column;
                gap: 10px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>📊 Calcolatore di Portata</h1>
        
        <div class="input-group">
            <label for="p1">Valore P1:</label>
            <input type="number" id="p1" step="any" placeholder="Inserisci P1">
        </div>

        <div class="input-group">
            <label for="p2">Valore P2:</label>
            <input type="number" id="p2" step="any" placeholder="Inserisci P2">
        </div>

        <div class="input-group">
            <label for="litri">Litri:</label>
            <input type="number" id="litri" step="any" placeholder="Inserisci litri">
        </div>

        <div class="input-group">
            <label>Tempo:</label>
            <div class="time-inputs">
                <div class="input-group">
                    <label for="minuti">Minuti:</label>
                    <input type="number" id="minuti" min="0" placeholder="0">
                </div>
                <div class="input-group">
                    <label for="secondi">Secondi:</label>
                    <input type="number" id="secondi" min="0" max="59" placeholder="0">
                </div>
            </div>
        </div>

        <button class="calculate-btn" onclick="calcolaPortata()">
            ⚡ Calcola Portata
        </button>

        <div class="formula">
            <strong>Formula:</strong> Portata = (Litri × (P2 - P1)) / Tempo × 60
        </div>

        <div id="result" class="result"></div>
    </div>

    <script>
        function calcolaPortata() {
            // Ottieni i valori dai campi input
            const p1 = parseFloat(document.getElementById('p1').value);
            const p2 = parseFloat(document.getElementById('p2').value);
            const litri = parseFloat(document.getElementById('litri').value);
            const minuti = parseInt(document.getElementById('minuti').value) || 0;
            const secondi = parseInt(document.getElementById('secondi').value) || 0;

            const resultDiv = document.getElementById('result');
            
            // Validazione input
            if (isNaN(p1) || isNaN(p2) || isNaN(litri)) {
                resultDiv.innerHTML = '❌ Inserisci tutti i valori numerici richiesti!';
                resultDiv.className = 'result error show';
                return;
            }

            // Calcola il tempo totale in secondi
            const tempoTotaleSecondi = (minuti * 60) + secondi;
            
            if (tempoTotaleSecondi <= 0) {
                resultDiv.innerHTML = '❌ Il tempo deve essere maggiore di zero!';
                resultDiv.className = 'result error show';
                return;
            }

            // Calcola la portata: (litri × (p2-p1)) / tempo * 60
            const portata = (litri * (p2 - p1)) / tempoTotaleSecondi * 60;
            
            // Mostra il risultato
            resultDiv.innerHTML = `
                <div style="margin-bottom: 15px;">
                    <strong>🎯 Portata Calcolata:</strong>
                </div>
                <div style="font-size: 1.6em; margin-bottom: 10px;">
                    ${portata.toFixed(4)} litri/minuto
                </div>
                <div style="font-size: 0.9em; opacity: 0.8;">
                    Calcolo: (${litri} × (${p2} - ${p1})) / ${tempoTotaleSecondi}s × 60
                </div>
            `;
            resultDiv.className = 'result show';
        }

        // Aggiungi event listener per il tasto Enter
        document.addEventListener('keypress', function(e) {
            if (e.key === 'Enter') {
                calcolaPortata();
            }
        });

        // Aggiungi animazioni sui campi input
        document.querySelectorAll('input').forEach(input => {
            input.addEventListener('input', function() {
                if (this.value) {
                    this.style.borderColor = '#38ef7d';
                } else {
                    this.style.borderColor = '#e0e0e0';
                }
            });
        });
    </script>
</body>
</html>