.habit-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.calendar-day {
  min-height: 80px;
}

.calendar-day:hover {
  background-color: #f3f4f6;
}

.modal {
  display: none;
}

.modal.active {
  display: flex;
}

.tab-btn.active {
  border-color: #3b82f6;
  color: #3b82f6;
}

.habit-item {
  cursor: pointer;
  transition: all 0.2s;
}

.habit-item:hover {
  transform: translateX(4px);
}

.habit-item:active {
  transform: scale(0.98);
}

.sortable-ghost {
  opacity: 0.4;
  background-color: #e0f2fe !important;
}

.sortable-chosen {
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.sortable-drag {
  opacity: 1;
}

.drag-handle {
  cursor: grab;
  touch-action: none;
}

.drag-handle:active {
  cursor: grabbing;
}

.habit-manage-item {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.habit-manage-item:hover {
  background-color: #f9fafb;
}

.login-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* トースト通知 */
.toast {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  font-size: 14px;
  transform: translateX(120%);
  transition: transform 0.3s ease;
  max-width: 320px;
}

.toast.show {
  transform: translateX(0);
}

.toast-success {
  background-color: #10b981;
  color: white;
}

.toast-error {
  background-color: #ef4444;
  color: white;
}

.toast-info {
  background-color: #3b82f6;
  color: white;
}
