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

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

/* ライト配色固定。
   partners テーマは全面ライトデザイン（白カード・薄灰入力欄）を !important で
   強制しているため、ダークモードは未対応。color-scheme を light に固定することで、
   iOS Safari がダークモード時に input のテキスト色を自動で白くして
   「白文字 × 白背景」で見えなくなる問題（サインイン/パスワードリセット）を防ぐ。 */
:root {
  color-scheme: light;
}

/* フォント */
.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-layout）の背景を白に統一。
   従来はグレー背景(#F7F7F7)に白カードが浮く構成だったが、SP では白カードが
   全幅になり上部にグレーの帯だけが残って不自然だった。背景を白にすることで
   PC/SP 共通の 1 ルールでグレー帯を解消する（メディアクエリでの分岐は作らない）。
   カード自体の角丸・影は残るため PC ではカード感を維持できる。 */
.fi-simple-layout {
  background: #FFFFFF !important;
}
.fi-simple-main {
  max-width: 420px !important;
}
/* ログインボタン: design-reference/partners/01-login.html (.btn-submit padding:11px font-size:13px) に揃える */
.fi-simple-main .fi-btn-primary,
.fi-simple-main .fi-color-primary.fi-btn {
  padding: 11px !important;
  font-size: 13px !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;
  /* テキスト色を明示。未指定だと iOS ダークモードで白文字になり背景と同化する。
     color だけだと iOS が input の文字に -webkit-text-fill-color を優先する
     ケースがあるため、両方固定する。 */
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}
.fi-input:focus {
  border-color: #A1B46A !important;
  background: #fff !important;
  color: #1A1A1A !important;
  -webkit-text-fill-color: #1A1A1A !important;
}
/* オートフィル時に入力文字が白くならないよう text-fill-color を固定（iOS Safari 対策） */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-text-fill-color: #1A1A1A !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;
}

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

/* ── SP: カスタムハンバーガーメニュー ──
   Filament 既定の SP サイドバートグル（.fi-layout-sidebar-toggle-btn-ctn）が、
   カスタムヘッダーの外側にグレー枠で出てしまうため、コンテナごと完全に非表示にする。
   代わりに PAGE_START の renderHook で出している自前ヘッダー内の .partners-mobile-menu-btn
   で sidebar drawer を開閉する。
   PC では元々 .fi-layout-sidebar-toggle-btn-ctn に lg:fi-hidden が付いて非表示なので
   この CSS で PC の見た目は変化しない。 */
.fi-layout-sidebar-toggle-btn-ctn {
  display: none !important;
}
@media (max-width: 1024px) {
  /* PAGE_START 内のカスタムハンバーガーを SP のみ表示 */
  .partners-mobile-menu-btn {
    display: inline-flex !important;
  }
}

/* --- タブレット (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;
}

/* --- Invoice 詳細モーダル（パートナー）SP 最適化 --- */
.inv-detail { max-width: 100%; box-sizing: border-box; overflow-x: hidden; }
.inv-detail *, .inv-detail *::before, .inv-detail *::after { box-sizing: border-box; }
.inv-detail table { width: 100%; }

@media (max-width: 600px) {
  /* メタ情報を 1 カラムに */
  .inv-detail-meta { grid-template-columns: 1fr !important; }
  /* 合計金額ボックスを縦積みに（横はみ出し防止） */
  .inv-detail-total { flex-direction: column !important; align-items: flex-start !important; gap: 10px; padding: 14px 16px !important; }
  .inv-detail-total > div:last-child { text-align: left !important; }
  /* 内訳テーブルはセル幅を固定して右端の金額が切れないように */
  .inv-detail table { table-layout: fixed; }
  .inv-detail td, .inv-detail th { word-break: break-word; padding-left: 8px !important; padding-right: 8px !important; }
  /* 予約内訳の行：名前と金額が窮屈なら折り返す */
  .inv-detail-appt { flex-wrap: wrap; gap: 4px 8px; }
}
