/* Custom styles for mobile-first design */
body {
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
}

.date-row {
  border-bottom: 1px solid #dee2e6;
  padding: 1rem 0;
}

.date-display {
  font-weight: bold;
  margin-bottom: 0.5rem;
}

.saturday {
  color: #0066cc;
}

.sunday, .holiday {
  color: #dc3545;
}

.add-shift-btn {
  background: none;
  border: 2px solid #007bff;
  color: #007bff;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  font-size: 24px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s;
}

.add-shift-btn:hover, .add-shift-btn:focus {
  background: #007bff;
  color: white;
}

.add-shift-btn:disabled {
  border-color: #6c757d;
  color: #6c757d;
  cursor: not-allowed;
}

.shift-form {
  background: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  padding: 1rem;
  margin-top: 0.5rem;
}

.existing-shift {
  background: #e7f3ff;
  border: 1px solid #b3d9ff;
  border-radius: 0.375rem;
  padding: 0.5rem;
  margin-top: 0.25rem;
  margin-right: 0;
  width: calc(100% - 2px);
  font-size: 0.9rem;
}

/* Custom time input styling - bypasses Bootstrap completely */
.custom-time-input {
  display: flex;
  align-items: center;
  gap: 8px;
}

.custom-time-select {
  /* Reset all styles */
  all: initial;
  font-family: inherit;
  
  /* Custom styling */
  width: 70px;
  height: 38px;
  padding: 6px 8px;
  border: 1px solid #ced4da;
  border-radius: 0.375rem;
  background-color: #fff;
  color: #212529;
  font-size: 1rem;
  line-height: 1.5;
  
  /* Focus state */
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.custom-time-select:focus {
  border-color: #86b7fe;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.custom-time-separator {
  font-weight: bold;
  color: #6c757d;
  user-select: none;
}

/* Mobile optimizations */
@media (max-width: 768px) {
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  
  .btn {
    min-height: 44px;
  }
  
  .form-control, .form-select {
    min-height: 44px;
  }
  
  /* Mobile time input adjustments */
  .custom-time-select {
    width: 65px;
    height: 44px;
    font-size: 16px; /* Prevents zoom on iOS */
  }
  
  /* Mobile navbar adjustments */
  .navbar-text {
    margin-bottom: 0.5rem;
  }
  
  .navbar-text span {
    display: inline-block;
  }
  
  /* Mobile shift display width extension */
  .existing-shift {
    width: calc(100% - 4px);
  }
}

/* Button text centering fixes */
.btn {
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Responsive title sizing */
@media (max-width: 991px) {
  .responsive-title {
    font-size: 1rem !important;
  }
}
