/* =====================
   Medimee for Partners
   Design System
   ===================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* フォント */
.fi-body {
  font-family: 'Inter', -apple-system, 'Hiragino Sans', sans-serif !important;
  font-size: 13px !important;
  background: #F7F7F7 !important;
}

/* ── サイドバー ── */
.fi-sidebar {
  border-right: 1px solid #E6E6E6 !important;
  background: #FFFFFF !important;
}

/* サイドバーナビ */
.fi-sidebar-nav {
  padding: 10px !important;
}
.fi-sidebar-item-btn {
  font-size: 13px !important;
  font-weight: 500 !important;
  border-radius: 5px !important;
  padding: 7px 10px !important;
  color: #666666 !important;
  margin-bottom: 1px !important;
}
.fi-sidebar-item-btn:hover {
  background: #F7F7F7 !important;
  color: #1A1A1A !important;
}
/* アクティブ項目（li.fi-active > a.fi-sidebar-item-btn） */
.fi-sidebar-item.fi-active .fi-sidebar-item-btn {
  background: #EEF2E6 !important;
  color: #8FA058 !important;
  font-weight: 600 !important;
}
.fi-sidebar-item.fi-active .fi-sidebar-item-label {
  color: #8FA058 !important;
  font-weight: 600 !important;
}

/* サイドバーアイコン・グループドット非表示 */
.fi-sidebar-item-icon,
.fi-sidebar-item-grouped-border {
  display: none !important;
}
/* ナビテキストの左位置をブランドロゴと揃える */
.fi-sidebar-item-btn {
  padding-left: 20px !important;
}
.fi-sidebar-item-label {
  padding-left: 0 !important;
}

/* セクションラベル */
.fi-sidebar-group-btn {
  padding: 10px 10px 5px 20px !important;
}
.fi-sidebar-group-label {
  font-size: 10px !important;
  font-weight: 600 !important;
  color: #888888 !important;
  letter-spacing: 0.6px !important;
  text-transform: uppercase !important;
}

/* サイドバーグループの折りたたみボタン非表示 */
.fi-sidebar-group-collapse-btn {
  display: none !important;
}

/* ── トップバー（Filamentデフォルト非表示、カスタムヘッダー使用） ── */
.fi-topbar-ctn {
  display: none !important;
}

/* ── メインコンテンツ ── */
.fi-main-ctn {
  padding: 24px 0 !important;
}
.fi-main {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.fi-header {
  padding-block: 0 !important;
}
.fi-breadcrumbs {
  display: none;
}
.fi-header-has-breadcrumbs .fi-header-actions-ctn {
  margin-top: 0;
}
.fi-page-header-main-ctn {
  padding-block: 0 !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
  row-gap: calc(var(--spacing) * 2);
}
.fi-page-content {
  row-gap: calc(var(--spacing) * 2);
}

/* ── ページヘッダー ── */
.fi-header-heading {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #1A1A1A !important;
  letter-spacing: -0.4px !important;
}
.fi-header-subheading {
  font-size: 13px !important;
  color: #666666 !important;
  margin-top: 3px !important;
  margin-bottom: 8px;
}

/* ── テーブル ── */
.fi-ta {
  background: #FFFFFF !important;
  border: 1px solid #E6E6E6 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}
.fi-ta-header-cell {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #888888 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  padding: 9px 16px !important;
  background: #FAFAFA !important;
}
/* テーブルセル */
.fi-ta-text:not(.fi-inline) {
  padding: 14px 20px !important;
}
.fi-ta-cell {
  font-size: 13px !important;
  vertical-align: middle !important;
}
.fi-ta-row {
  min-height: 101px !important;
}
.fi-ta-row td {
  font-size: 13px !important;
  color: #4D4D4D !important;
  border-bottom: 1px solid #F7F7F7 !important;
  vertical-align: middle !important;
  padding-block: 0;
}

/* アクションボタン列の幅を固定 */
.fi-ta-cell:has(.fi-ta-actions) {
  width: 100px !important;
  min-width: 100px !important;
}
.fi-ta-cell:has(.fi-ta-actions) .fi-ta-actions {
  padding-block: calc(var(--spacing) * 3) !important;
}
.fi-ta-row:hover td {
  background: #F7F7F7 !important;
}
.fi-ta-row:last-child td {
  border-bottom: none !important;
}

/* ── ボタン ── */
.fi-btn-primary,
.fi-color-primary.fi-btn {
  background: #A1B46A !important;
  border-color: #A1B46A !important;
  color: white !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border-radius: 5px !important;
  padding: 6px 12px !important;
  font-family: 'Inter', sans-serif !important;
}
.fi-btn-primary:hover,
.fi-color-primary.fi-btn:hover {
  background: #8FA058 !important;
  border-color: #8FA058 !important;
}
/* Filament v5のボタンテキスト色上書き */
.fi-color-primary.fi-btn span,
.fi-color-primary.fi-btn,
.fi-color-danger.fi-btn span,
.fi-color-danger.fi-btn {
  color: white !important;
}

/* ── バッジ ── */
.fi-badge {
  font-size: 11px !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
  padding: 2px 8px !important;
}

/* ── カード・セクション ── */
.fi-section {
  border: 1px solid #E6E6E6 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}
.fi-section-content {
  padding: 20px 24px !important;
}
.fi-section-header {
  padding: 14px 20px !important;
  border-bottom: 1px solid #E6E6E6 !important;
}
.fi-section-header-heading {
  font-size: 14px !important;
  font-weight: 700 !important;
}

/* ── ページネーション ── */
.fi-pagination {
  padding: 12px 20px !important;
  font-size: 12px !important;
  color: #888888 !important;
  border-top: 1px solid #E6E6E6 !important;
}

/* ── ログインページ ── */
.fi-simple-main {
  max-width: 420px !important;
}

/* ── サイドバーブランドロゴのデフォルトアイコン非表示 ── */
.fi-sidebar-header {
  display: none !important;
}
/* サイドバーフッター（Filamentデフォルトのユーザーメニューを非表示） */
.fi-sidebar-footer {
  border-top: none !important;
  padding: 0 !important;
}
.fi-sidebar-footer > .fi-dropdown {
  display: none !important;
}

/* ── テーブル列の折り返し制御 ── */
.fi-ta-cell {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
/* 希望日時・施術コースは折り返しOK */
.fi-ta-col-preferred_date_1 .fi-ta-cell,
.fi-ta-col-course_name .fi-ta-cell {
  white-space: normal !important;
}

/* ── 予約管理：未対応行ハイライト ── */
.reservation-urgent td {
  background: #FFFBEB !important;
}
.reservation-urgent:hover td {
  background: #FEF9C3 !important;
}

/* ── ステータスバッジ色調整 ── */
.fi-badge[style*="warning"], [data-color="warning"] .fi-badge {
  background: #FEF3C7 !important;
  color: #92400E !important;
}

/* ── ナビゲーションバッジ ── */
.fi-sidebar-item-badge {
  font-size: 10px !important;
  font-weight: 700 !important;
  min-width: 18px !important;
  height: 18px !important;
  border-radius: 9px !important;
  padding: 0 5px !important;
}

/* ── タブ左詰め ── */
.fi-tabs {
  justify-content: flex-start !important;
  margin-inline: 0 auto !important;
  width: fit-content !important;
}

/* ── タブ アクティブ（Medimeeグリーン） ── */
.fi-tabs-item.fi-active,
.fi-tabs-item[aria-selected="true"] {
  background-color: #A1B46A !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  border-color: #A1B46A !important;
}
.fi-tabs-item.fi-active .fi-tabs-item-label,
.fi-tabs-item[aria-selected="true"] .fi-tabs-item-label {
  color: #ffffff !important;
}
.fi-tabs-item.fi-active .fi-badge,
.fi-tabs-item[aria-selected="true"] .fi-badge {
  background: rgba(255,255,255,0.25) !important;
  color: #ffffff !important;
}

/* ── ページネーション アクティブ ── */
.fi-pagination-item.fi-active .fi-pagination-item-btn {
  background-color: #A1B46A !important;
  border-color: #A1B46A !important;
  color: #ffffff !important;
}
.fi-pagination-item.fi-active .fi-pagination-item-label {
  color: #ffffff !important;
}

/* ── 請求書：集計中行ハイライト ── */
.invoice-processing td {
  background: #FFF8F0 !important;
}
.invoice-processing:hover td {
  background: #FFF0DC !important;
}

/* ── 請求予定額カード緑テーマ ── */
.invoice-highlight-card {
  background: #F7F9F3 !important;
  border: 1px solid #A1B46A !important;
}
.invoice-highlight-card * {
  color: #8FA058 !important;
}

/* ── フォーム入力フィールド ── */
.fi-input {
  background: #F7F7F7 !important;
  border-color: #E6E6E6 !important;
  font-size: 13px !important;
}
.fi-input:focus {
  border-color: #A1B46A !important;
  background: #fff !important;
}

/* ── ボタン全般 ── */
.fi-btn {
  font-size: 12px !important;
}

/* ── サマリーボックス ── */
.summary-box-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.summary-box-card { background: #fff; border: 1px solid #E6E6E6; border-radius: 8px; padding: 14px 18px; }
.summary-box-label { font-size: 12px; color: #888; font-weight: 500; margin-bottom: 6px; }
.summary-box-val { font-size: 20px; font-weight: 700; letter-spacing: -.5px; color: #1A1A1A; }
.summary-box-sub { font-size: 12px; color: #888; margin-top: 2px; }

/* ── 共通ボタン ── */
.adm-btn {
  padding: 6px 12px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all .12s;
  border: 1px solid #E6E6E6;
  background: #fff;
  color: #4D4D4D;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.adm-btn:hover { background: #F7F7F7; }
.adm-btn.primary { background: #A1B46A; color: white; border-color: #A1B46A; }
.adm-btn.primary:hover { background: #8FA058; }
.adm-btn.sm { padding: 4px 10px; font-size: 11px; }

/* ── スタッフ招待アラート ── */
.staff-invite-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 13px;
  color: #166534;
  margin-bottom: 16px;
}

/* ── スタッフ管理の削除/取り消しボタン ── */
.staff-action-btn {
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 500;
  border: 1px solid #E6E6E6;
  background: white;
  color: #666;
}
.staff-action-btn:hover {
  border-color: #FFCDD2;
  color: #FF3F3F;
  background: #FFF5F5;
}

/* ══════════════════════════════════
   モバイル対応
   ══════════════════════════════════ */

/* --- タブレット (768px以下) --- */
@media (max-width: 768px) {
  /* カスタムtopbar */
  .fi-main-ctn [style*="height:52px"] {
    padding: 0 16px;
    margin: -16px 0 16px 0;
  }

  /* ページヘッダー */
  .fi-page-header-main-ctn {
    padding-left: 16px;
    padding-right: 16px;
  }

  /* メトリクスカード 2カラム */
  .summary-box-row {
    grid-template-columns: repeat(2, 1fr);
  }

  /* セクションコンテンツ */
  .fi-section-content {
    padding: 16px;
  }

  /* テーブル横スクロール */
  .fi-ta {
    overflow-x: auto;
  }
  .fi-ta table {
    min-width: 700px;
  }

  /* テーブル行高さ縮小 */
  .fi-ta-row {
    min-height: auto;
  }

  /* フィルタータブ横スクロール */
  .adm-filter-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
    max-width: 100%;
  }
  .adm-filter-tab {
    white-space: nowrap;
    flex-shrink: 0;
  }

  /* チャット */
  .chat-shell {
    flex-direction: column;
    height: auto;
  }
  .conv-list {
    width: 100%;
    max-height: 300px;
    border-right: none;
    border-bottom: 1px solid #E6E6E6;
  }
  .chat-panel {
    min-height: 400px;
  }
}

/* --- スマートフォン (480px以下) --- */
@media (max-width: 480px) {
  /* メトリクスカード 1カラム */
  .summary-box-row {
    grid-template-columns: 1fr;
  }

  /* ページヘッダー */
  .fi-header-heading {
    font-size: 18px;
  }

  /* テーブルセルパディング縮小 */
  .fi-ta-header-cell {
    padding: 8px 10px;
  }
  .fi-ta-text:not(.fi-inline) {
    padding: 10px 12px;
  }

  /* ボタン */
  .adm-btn {
    padding: 5px 10px;
    font-size: 11px;
  }

  /* ログインページ */
  .fi-simple-main {
    max-width: 100%;
    padding: 16px;
  }
}

/* ── フィルタータブ（Admin共通） ── */
.adm-filter-tabs {
  display: flex;
  gap: 2px;
  background: #fff;
  border: 1px solid #E6E6E6;
  border-radius: 6px;
  padding: 3px;
  width: fit-content;
  margin-bottom: 16px;
}
.adm-filter-tab {
  padding: 5px 14px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  color: #666;
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
  transition: all .1s;
}
.adm-filter-tab.active {
  background: #A1B46A;
  color: white;
  font-weight: 600;
}
