/* 
 * forms.css
 * Styles for form elements and calculator components
 */

.form-group { 
    margin-bottom: 20px; 
}

label { 
    display: block; 
    font-weight: bold; 
    color: #003366; 
    margin-bottom: 8px;
    font-size: 16px;
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select { 
    width: 100%; 
    padding: 12px; 
    border: 1px solid #ced4da; 
    border-radius: 4px; 
    font-size: 16px; 
    transition: border-color 0.3s;
    box-sizing: border-box;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
    border-color: #003366;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 51, 102, 0.1);
}

.button-group {
    margin-top: 25px;
    display: flex;
    gap: 10px;
}

button { 
    padding: 12px 20px; 
    cursor: pointer; 
    font-size: 16px; 
    border: none;
    border-radius: 4px;
    font-weight: bold;
    transition: all 0.3s;
}

.btn-calculate { 
    background-color: #ff6600; 
    color: white; 
    flex: 1;
}

.btn-calculate:hover {
    background-color: #e65c00;
}

.btn-reset { 
    background-color: #6c757d; 
    color: white; 
    flex: 0.5;
}

.btn-reset:hover {
    background-color: #5a6268;
}

/* Results styling */
.results { 
    margin-top: 30px; 
    padding: 20px; 
    border: 1px solid #c3e6cb; 
    display: none; 
    background: #f1f8ff; 
    border-radius: 8px; 
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    animation: fadeIn 0.5s;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.explanation {
    margin-top: 30px;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
    border-left: 4px solid #003366;
}

.explanation h3 {
    margin-top: 0;
    color: #003366;
    font-size: 20px;
}

.result-value {
    font-size: 24px;
    color: #003366;
    font-weight: bold;
    text-align: center;
    margin: 15px 0;
}

.result-details {
    border-top: 1px solid #dee2e6;
    padding-top: 15px;
    margin-top: 15px;
}

/* Form validation */
.form-error {
    color: #dc3545;
    font-size: 14px;
    margin-top: 5px;
    display: none;
}

input.error,
textarea.error,
select.error {
    border-color: #dc3545;
}

input.error:focus,
textarea.error:focus,
select.error:focus {
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .main-container {
        padding: 20px;
        margin: 15px;
    }
    
    input[type="number"],
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="password"],
    textarea,
    select {
        padding: 10px;
    }
}

@media (max-width: 576px) {
    .button-group {
        flex-direction: column;
    }
    
    .btn-calculate,
    .btn-reset {
        width: 100%;
    }
}

/* For print */
@media print {
    input[type="text"],
    input[type="email"],
    input[type="number"],
    input[type="tel"],
    input[type="url"],
    input[type="password"],
    textarea,
    select {
        border: 1px solid #ccc;
    }
    
    .button-group {
        display: none;
    }
    
    .results {
        display: block !important;
        border: 1px solid #000;
        background: none;
        box-shadow: none;
    }
}