/* Layout: sticky footer */
html, body {
  height: 100%;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1 0 auto;
}

footer {
  margin-top: auto;
}

/* Page background */
body {
    background-color: #f8f9fb;
    font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
    color: #222;
  }
  
/* Card container */
.card {
  border: none;
  border-radius: 1rem;
  background: #ffffff;
  box-shadow: 0 4px 20px rgba(0, 47, 108, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 26px rgba(0, 47, 108, 0.12);
}

/* Headings */
h2.text-primary {
  font-weight: 700;
  color: #002F6C !important;
  letter-spacing: 0.5px;
}

/* Labels */
.form-label {
  color: #002F6C;
  font-weight: 600;
  margin-bottom: 0.3rem;
}

/* Inputs & selects */
.form-control,
.form-select {
  border-radius: 0.6rem;
  border: 1px solid #ced4da;
  transition: border-color 0.25s, box-shadow 0.25s;
}

.form-control:focus,
.form-select:focus {
  border-color: #5BC2E7;
  box-shadow: 0 0 0 0.25rem rgba(91, 194, 231, 0.25);
}

/* Submit button */
.btn-primary {
  background: linear-gradient(90deg, #002F6C, #0056A3);
  border: none;
  font-weight: 600;
  border-radius: 0.6rem;
  transition: background 0.3s, transform 0.15s ease-in-out;
}

.display-4 {
  letter-spacing: 0.3px;
}

.btn-primary:hover {
  background: linear-gradient(90deg, #0047A3, #5BC2E7);
  transform: translateY(-1px);
}

/* Spacing adjustments */
.mb-3,
.mt-3,
.mt-4 {
  margin-bottom: 1.2rem !important;
}

/* Elegant inline days — clickable toggle chips */
.form-check-inline {
  margin-right: 0.5rem;
}

.form-check-input {
  display: none; 
}

.form-check-label {
  background-color: #ffffff;
  border: 1.5px solid #5BC2E7;
  color: #002F6C;
  border-radius: 30px;
  padding: 0.4rem 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s ease-in-out;
}

.form-check-input:checked + .form-check-label {
  background-color: #5BC2E7;
  color: white;
  border-color: #5BC2E7;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(91, 194, 231, 0.3);
}

.form-check-label:hover {
  background-color: #e9f8fc;
  border-color: #5BC2E7;
}

/* Help text */
.form-text {
  color: #6c757d;
  font-style: italic;
  font-size: 0.9rem;
  margin-top: 0.4rem;
}

/* Responsive tweaks */
@media (max-width: 768px) {
  .card {
  padding: 1.5rem;
  }

  .btn-primary {
    width: 100%;
  }
}
/* Keep all day chips on one line and fit neatly in card */
.day-row {
  flex-wrap: nowrap;
  justify-content: center;
  gap: 0.4rem;             
  margin-top: 0.25rem;
}

.day-chip {
  flex: 0 1 auto;
}

.form-check-label {
  min-width: 52px;         
  padding: 0.25rem 0.6rem; 
  border-radius: 1.5rem;
  font-size: 0.95rem;
  line-height: 1.2;
  white-space: nowrap;
}

.form-check-input:checked + .form-check-label {
  background-color: #5BC2E7;
  color: #fff;
  border-color: #5BC2E7;
  box-shadow: 0 0 6px rgba(91, 194, 231, 0.4);
}

/* Loading spinner */
.loading-spinner {
  display: inline-block;
  width: 40px;
  height: 40px;
  border: 4px solid #ccc;
  border-top-color: #5BC2E7; /* matches your accent color */
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin: 1rem auto;
}

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

.error-banner {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  margin-bottom: 1rem;
  font-weight: 500;
  position: relative;
}

.error-banner .close-btn {
  position: absolute;
  top: 0.5rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #721c24;
  cursor: pointer;
}
