/* ================================================
   Shop画面固有レスポンシブCSS
   ================================================ */

/* CSS変数（メディアクエリ外で定義し、PC/SP問わず参照可能にする） */
:root {
  --sp-footer-height: 120px; /* フッター最大2行×ボタン最大4つを想定 */
}

@media (max-width: 767.98px) {

  /* ----- 固定フッター（詳細表示画面のみ。フォーム画面では使用禁止） ----- */
  .sp-fixed-footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--background-card);
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    padding: var(--spacing-sm);
    padding-bottom: calc(var(--spacing-sm) + env(safe-area-inset-bottom));
    z-index: 1030;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
  }

  .sp-fixed-footer .footer-row {
    display: flex;
    gap: var(--spacing-xs);
  }

  .sp-fixed-footer .footer-row .btn {
    flex: 1;
    min-height: 44px;
    font-size: var(--font-size-xs);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* モーダル表示中はSP固定フッターを非表示 */
  body.modal-open .sp-fixed-footer {
    display: none;
  }

  /* フッター高さ分のコンテンツ余白 */
  .has-sp-fixed-footer {
    padding-bottom: var(--sp-footer-height);
  }

  /* ----- ステップインジケーター ----- */
  .step-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-sm) 0;
    flex-wrap: wrap;
  }

  .step-indicator .step {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--text-light);
    font-size: 0.75rem;
  }

  .step-indicator .step.active {
    color: var(--primary-color);
    font-weight: 600;
  }

  .step-indicator .step.completed {
    color: var(--success-color);
  }

  .step-indicator .step-number {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 600;
    background: var(--border-color);
    color: var(--text-light);
  }

  .step-indicator .step.active .step-number {
    background: var(--primary-color);
    color: var(--text-white);
  }

  .step-indicator .step.completed .step-number {
    background: var(--success-color);
    color: var(--text-white);
  }

  .step-indicator .step-label {
    display: none;
  }

  .step-indicator .step-connector {
    width: 12px;
    height: 2px;
    background: var(--border-color);
    flex-grow: 0;
    margin: 0;
  }

  .step-indicator .step-connector.completed {
    background: var(--success-color);
  }

  /* ----- 代理決済フォーム 縦並び ----- */
  .card-register .row.align-items-start {
    flex-direction: column;
    margin-bottom: 0;
  }

  .card-register .row.align-items-start + .row.align-items-start {
    border-top: 1px solid var(--border-light);
    padding-top: var(--spacing-sm);
  }

  .card-register .row.align-items-start .col-md-3,
  .card-register .row.align-items-start .col-md-6 {
    width: 100%;
    max-width: 100%;
    flex: none;
  }

  .card-register .labels {
    margin-bottom: 2px;
    background: transparent;
    padding: var(--spacing-xs) calc(var(--bs-gutter-x, 1.5rem) * 0.5) 0;
    color: var(--text-light);
    font-size: var(--font-size-xs);
    font-weight: 600;
  }

  /* ----- モーダル フルスクリーン ----- */
  /* Bootstrap標準 modal-fullscreen-md-down を使用（カスタムクラス不要） */

  /* モーダル内ボタン: 縦並び・フル幅 */
  .modal-body .text-end {
    text-align: center !important;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  .modal-body .text-end .btn {
    width: 100%;
    margin: 0 !important;
  }

  /* モーダル内確認リスト: ラベルを上、値を下に */
  .modal-body .list-unstyled li {
    display: flex;
    flex-wrap: wrap;
    padding: var(--spacing-xs) 0;
    border-bottom: 1px solid var(--border-light);
  }

  .modal-body .list-unstyled li:last-child {
    border-bottom: none;
  }

  /* ----- ダッシュボード info-box ----- */
  .info-box {
    flex-direction: column;
    text-align: center;
  }

  .info-box .info-box-icon {
    width: 100%;
    border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
  }

  /* ----- CSV関連非表示 ----- */
  /* Bootstrapユーティリティ d-none d-md-block を使用（カスタムクラス不要） */

  /* ----- 検索フォーム レスポンシブ ----- */
  .card-search .row.align-items-center {
    flex-direction: column;
    align-items: stretch !important;
  }

  .card-search .row.align-items-center .col-4,
  .card-search .row.align-items-center .col-8,
  .card-search .row.align-items-center .col-md-2,
  .card-search .row.align-items-center .col-md-10 {
    width: 100%;
    max-width: 100%;
    flex: none;
  }

  .card-search .row.align-items-center .col-4,
  .card-search .row.align-items-center .col-md-2 {
    margin-bottom: var(--spacing-xs);
  }

  .card-search .col-md-6 {
    margin-bottom: var(--spacing-md);
  }

  /* 検索・登録ボタン: PC用min-width解除してフル幅に */
  .card-search .btn,
  .card-register .btn {
    min-width: 0;
    width: 100%;
  }

}

/* ----- ステータスバッジ（PC/SP共通） ----- */
.status-badge {
  display: inline-block;
  padding: 0.25em 0.75em;
  border-radius: 20px;
  font-size: var(--font-size-sm);
  font-weight: 500;
}

.status-badge.status-pending {
  background: #fff3cd;
  color: #856404;
}

.status-badge.status-completed {
  background: #d4edda;
  color: #155724;
}

.status-badge.status-rejected {
  background: #f8d7da;
  color: #721c24;
}

.status-badge.status-requesting {
  background: #cce5ff;
  color: #004085;
}

.status-badge.status-processing {
  background: #cce5ff;
  color: #004085;
}

/* PC表示ではステップインジケーターと固定フッターを非表示 */
@media (min-width: 768px) {
  .step-indicator {
    display: none;
  }

  .sp-fixed-footer {
    display: none;
  }
}
