/* ローディング画面のスタイル */
#custom-page-loading {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

/* ローディングアイコンのスタイル変更（緑色へ） */
.dot-flashing,
.dot-flashing::before,
.dot-flashing::after {
  background-color: #188a7d;
}

@keyframes dot-flashing {
  0% {
    background-color: #188a7d;
  }
  50%,
  100% {
    background-color: rgba(24, 138, 125, 0.2);
  }
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
  background-image: none !important;
}

.was-validated .form-control:valid,
.form-control.is-valid {
  background-image: none !important; /* アイコンを非表示に */
}

.was-validated select:invalid,
select.is-invalid {
  background-image: none !important;
}

.was-validated select:valid,
select.is-valid {
  background-image: none !important; /* アイコンを非表示に */
}

.snackbar-container {
  position: fixed;
  z-index: 9999;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.snackbar {
  width: 100%;
  max-width: 350px;
  background-color: #fff;
  color: #000;
  border-radius: 10px;
  padding: 14px 18px;
  font-size: 0.875rem;
  font-weight: 700;
  box-shadow: 0 12px 32px rgba(71, 88, 114, 0.12);
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: 0;
  pointer-events: auto;
}

.snackbar p {
  margin-bottom: 0;
}

.snackbar.show {
  animation: fadein 0.3s forwards;
}

.snackbar.hide {
  animation: fadeout 0.3s forwards;
}

@keyframes fadein {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeout {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-20px);
  }
}

/* セッションエリア比較のグラフ */
.p-traffic-areas__graph {
  min-width: 1080px;
  max-width: 1080px;
  min-height: 600px;
  max-height: 600px;
}

.p-traffic-areas__pro {
  display: flex;
  margin-bottom: 20px;
}

/* コンバージョンエリア比較のグラフ */
.p-conversion-areas__graph {
  min-width: 1080px;
  max-width: 1080px;
  min-height: 600px;
  max-height: 600px;
}

#custom_tooltip {
  opacity: 0;
  position: absolute;
  background: white;
  border-radius: 8px;
  padding: 12px 16px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  pointer-events: none;
  transition: opacity 0.1s ease;
  z-index: 5;
}

.tooltip-title {
  color: #666;
  font-size: 13px;
  margin-bottom: 12px;
}

.tooltip-body {
  display: flex;
  gap: 0; /* 項目間の隙間をなくす */
}

.tooltip-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 20px; /* 左右のパディングを追加 */
  position: relative; /* 疑似要素の基準点 */
}

/* 2番目の項目の左側に縦線を追加 */
.tooltip-item:nth-child(2)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: #ddd;
}

.tooltip-value {
  font-size: 24px;
  font-weight: bold;
  color: #333;
}

.tooltip-label {
  display: flex;
  align-items: center;
  font-size: 13px;
  color: #666;
  white-space: nowrap; /* ラベルが折り返さないようにする */
}

.tooltip-color-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 6px;
}

.dashboard_area_session_chart {
  width: 100px;
}

.sp-br {
  display: none;
}

@media (max-width: 430px) {
  .icon-question-sm {
    position: relative;
    top: -2px !important;
  }

  .sp-br {
    display: block;
  }
}

.impersonate-alert {
  position: fixed;
  top: 0;
  left: 0;
  height: 40px;
  width: 100%;
  z-index: 1055;
}

.impersonate-alert button {
  padding: 0.75rem 1rem !important;
}
