/* Calculator specific styles */
.result-card {
  transition: all 0.3s ease;
  border-left: 4px solid transparent;
}

.result-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.result-card.bg-success {
  border-left-color: #2ecc71;
}

.result-card.bg-info {
  border-left-color: #3498db;
}

.result-card.bg-warning {
  border-left-color: #f39c12;
}

.result-card.bg-danger {
  border-left-color: #e74c3c;
}

.result-card.bg-light {
  border-left-color: #74893e;
}

/* Form enhancements */
.form-control:focus,
.form-select:focus {
  border-color: #74893e;
  box-shadow: 0 0 0 0.25rem rgba(116, 137, 62, 0.15);
}

/* Calculator specific animations */
@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#results {
  animation: slideInUp 0.5s ease-out;
}

/* Mobile responsiveness for calculators */
@media (max-width: 768px) {
  .result-card {
    margin-bottom: 10px;
  }
  
  .card-body {
    padding: 15px;
  }
  
  .btn {
    padding: 12px 20px;
    font-size: 16px;
  }
}

/* Chart container */
canvas {
  max-height: 300px !important;
}

/* Alert enhancements */
.alert {
  border-radius: 12px;
  border: none;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.alert-info {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  color: #1565c0;
}

.alert-success {
  background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%);
  color: #2e7d32;
}

.alert-warning {
  background: linear-gradient(135deg, #fff3e0 0%, #ffcc02 100%);
  color: #ef6c00;
}

/* Input group styling */
.input-group .form-control {
  border-right: none;
}

.input-group .input-group-text {
  background-color: #f8f9fa;
  border-left: none;
  color: #6c757d;
}

/* Custom radio buttons */
.form-check-input:checked {
  background-color: #74893e;
  border-color: #74893e;
}

/* Tooltip styling */
.tooltip {
  font-size: 12px;
}

.tooltip-inner {
  background-color: #2c3e50;
  border-radius: 6px;
}

/* Loading state */
.btn.loading {
  position: relative;
  color: transparent;
}

.btn.loading::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  top: 50%;
  left: 50%;
  margin-left: -8px;
  margin-top: -8px;
  border: 2px solid #ffffff;
  border-radius: 50%;
  border-top-color: transparent;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}