/* ==========================================================================
   請求書タブ（管理画面 #tab-seikyu）専用CSS。
   2026-09-22: 請求書タブ統合（SEIKYU-TAB-2026-09-22.md）。元は /seikyu の独立ページ用の
   seikyu.css だったものから、請求書タブ固有のセレクタを含むルールだけを残した。
   body / .btn* / .toolbar / .form-field / .data-table / .modal-* / .toast / .center-notice* /
   .confirm-* / .login-* / .app-header* / .tab-panel / .edit-lock-warn* などの共通部品は
   admin.css 側の定義に任せる（ここには置かない。二重定義で admin.css 側と食い違う事故を避ける）。
   見た目の微調整が必要になったときは #tab-seikyu / #invNewModal / #daichoModal 配下にスコープして書く。
   ========================================================================== */

/* 名義バッジ（マイ・スター／マイ・スター三井住友／パートマイスター） */
.badge {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}
.badge-mystar { background: #e5e7eb; color: #374151; }
.badge-mystar2 { background: #dbeafe; color: #1e40af; }
/* 2026-09-15: 'mystar3'（埼玉・三井住友）追加。mystar2（仙台）と同系統の青だが色違いにして見分ける */
.badge-mystar3 { background: #c7d2fe; color: #3730a3; }
.badge-part { background: #ffedd5; color: #9a3412; }

/* 2026-09-22: 名義・部署対応（SEIKYU-MEIGI-2026-09-22.md）。一覧の部署・区分表示（取引先名の後ろに添える） */
.inv-label { color: var(--color-text-muted); font-size: 0.85em; }

/* 一覧テーブルの数値列（.data-table と組み合わせる複合ルールのみ残す） */
.data-table .col-num, .data-table td.col-num { text-align: right; }
th.col-num { text-align: right; }

/* 請求書 編集ビュー */
.edit-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 16px;
}
.edit-header-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px 16px;
}

.field-static {
  padding: 8px 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text);
}

/* 数字入力は右寄せ */
.num-input, input[type="number"] { text-align: right; }

/* 明細表 */
.line-table { min-width: 920px; }
.line-table th, .line-table td { white-space: normal; }
.line-table tbody tr { cursor: default; }
.line-table tbody tr:hover { background: transparent; }
.line-table input {
  padding: 5px 7px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: 13px;
  width: 100%;
}
.line-table input:focus { outline: none; border-color: var(--color-primary); }
.line-table td.col-num, .line-table th.col-num { text-align: right; }
.line-table .col-handle { width: 20px; }
.line-table .idx-cell { width: 20px; text-align: center; color: var(--color-text-muted); font-size: 12px; }
.line-table .col-op { width: 100px; }
.line-table .col-daicho { width: 68px; text-align: center; }
.line-table .col-staff { min-width: 140px; }
.line-table td.money-cell {
  text-align: right;
  font-weight: 700;
  white-space: nowrap;
}
.line-table .line-op-btn {
  background: none;
  border: none;
  color: var(--color-text-muted);
  font-size: 14px;
  padding: 2px 4px;
}
.line-table .line-op-btn:hover { color: var(--color-primary); }
.line-table .line-op-btn.op-danger:hover { color: var(--color-danger); }
.line-table tr.line-kind-free { background: #fafbfc; }

/* 台帳ボタン（明細行）。台帳データがある行は色を変えて目印にする */
.daicho-line-btn {
  padding: 4px 8px;
  font-size: 12px;
  border-radius: 4px;
  border: 1px solid var(--color-border);
  background: #fff;
  color: var(--color-text-muted);
  white-space: nowrap;
}
.daicho-line-btn:hover { border-color: var(--color-primary); color: var(--color-primary); }
.daicho-line-btn.has-daicho {
  border-color: var(--color-success);
  color: var(--color-success);
  background: #eafaf0;
  font-weight: 700;
}

/* ---------- 派遣先管理台帳 モーダル（2026-09-15） ---------- */
.daicho-modal-staff { font-size: 13px; font-weight: 400; color: var(--color-text-muted); }

/* 企業マスタからの読込（2026-09-15追加。担当D） */
.daicho-load-from-company {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  background: #f7f9fc;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 8px 10px;
  margin-top: 10px;
}
.daicho-load-label { font-size: 12px; font-weight: 600; color: var(--color-text-muted); flex-shrink: 0; }
.daicho-load-select { padding: 6px 8px; border: 1px solid var(--color-border); border-radius: 6px; font-size: 13px; max-width: 240px; }
.daicho-section { margin-top: 18px; }
.daicho-section:first-of-type { margin-top: 8px; }
.daicho-section h3 {
  margin: 16px 0 8px;
  font-size: 13px;
  color: var(--color-text);
  border-left: 3px solid var(--color-primary);
  padding-left: 8px;
}
.daicho-section h3:first-child { margin-top: 0; }
.daicho-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px 14px;
  margin-bottom: 6px;
}
.daicho-grid-3 { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
/* 2026-09-25: 派遣者氏名等（性別・責任の程度・保険3種）は1段5列（ユーザー指示の並び）。狭い画面は従来の折返し */
.daicho-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 700px) { .daicho-grid-5 { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); } }
.daicho-kinmu-rows { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.daicho-kinmu-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.daicho-kinmu-label { width: 78px; font-size: 12px; color: var(--color-text-muted); flex-shrink: 0; }
.daicho-kinmu-input {
  width: 90px;
  padding: 5px 7px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: 13px;
  text-align: center;
}
.daicho-kinmu-input:focus { outline: none; border-color: var(--color-primary); }

.daicho-days-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}
.daicho-counters { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--color-text-muted); }
.daicho-counters b { color: var(--color-text); }
.daicho-days-scroll { max-height: 420px; overflow-y: auto; }
.daicho-days-table { min-width: 760px; }
.daicho-days-table th, .daicho-days-table td { white-space: nowrap; padding: 4px 6px; font-size: 12px; }
.daicho-days-table input {
  padding: 3px 5px;
  font-size: 12px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  width: 60px;
  text-align: center;
}
.daicho-days-table input:focus { outline: none; border-color: var(--color-primary); }
.daicho-days-table input[data-field="biko"] { width: 90px; text-align: left; }
.daicho-calc-cell { text-align: center; color: var(--color-text-muted); }
.daicho-days-total td { font-weight: 700; background: #f7f9fc; text-align: center; }
.daicho-days-total td:first-child { text-align: right; padding-right: 10px; }

/* 単価詳細サブ行（自動計算値・上書き入力）。.rate-subrow は line-table 専用の行なので、
   固有セレクタ一覧には載っていないが、明細行の下に挟むサブ行の背景・罫線に必要なため残す */
tr.rate-subrow td {
  border-top: none;
  border-bottom: 1px solid var(--color-border);
  background: #f7f9fc;
  padding: 4px 10px 8px;
}
.rate-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.rate-field {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--color-text-muted);
}
.rate-field .rate-auto-value { color: var(--color-text-muted); white-space: nowrap; }
.rate-field input {
  width: 90px;
  padding: 3px 6px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  font-size: 12px;
  text-align: right;
}
.rate-field input:focus { outline: none; border-color: var(--color-primary); }
.rate-field input::placeholder { color: #b8bfc9; }

.line-add-row { margin-top: 10px; }

/* 集計 */
.totals-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.totals-box { display: flex; flex-direction: column; gap: 8px; }
.totals-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 14px;
  padding: 4px 0;
}
.totals-row-main {
  font-size: 17px;
  font-weight: 700;
  border-top: 1px solid var(--color-border);
  padding-top: 10px;
  margin-top: 4px;
}
.totals-value { font-weight: 700; }
@media (max-width: 700px) {
  .totals-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .edit-card { padding: 12px; }
}

/* 2026-09-25: 編集画面の「← 一覧へ戻る」を強めに（ユーザー指示）。
   印刷プレビューの「← 請求書作成に戻る」（seikyu-print.css .btn-back）と同じ見た目＝白地・青枠・青の太字 */
#invBackBtn {
  background: #fff;
  border: 1px solid #1c64f2;
  color: #1c64f2;
  font-weight: bold;
  font-size: 14px;
  padding: 7px 14px;
  border-radius: 4px;
}
#invBackBtn:hover:not(:disabled) { background: #eff6ff; }

/* 2026-09-25: 台帳の「＋ 就業時間を追加」ボタン（下の休憩時間と間隔をあける） */
.daicho-kinmu-add { margin: -2px 0 14px; }

/* 2026-09-30: 台帳の 業務内容（3列分）＋派遣料金 の行 */
.daicho-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.daicho-span-3 { grid-column: span 3; }
@media (max-width: 700px) { .daicho-grid-4 { grid-template-columns: 1fr; } .daicho-span-3 { grid-column: auto; } }

/* 2026-10-02: 明細表の列名「日数（休日出勤）」「時間数（休日出勤）」の2行目は小さめに */
.line-table th .th-sub { font-size: 10px; font-weight: 500; color: var(--color-text-muted); white-space: nowrap; }

/* 2026-10-02: 勤怠表の受信箱（請求書一覧の下） */
.kintai-inbox-card { margin-top: 24px; padding: 14px 16px 16px; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; }
.kintai-inbox-head h3 { margin: 0 0 4px; font-size: 15px; display: flex; align-items: center; gap: 10px; }
.kintai-inbox-head .hint-text { margin: 0 0 10px; }
.kintai-inbox-count { font-size: 12px; font-weight: 600; color: var(--color-text-muted); }
.kintai-inbox-count.has-items { color: #fff; background: #d9480f; padding: 2px 9px; border-radius: 999px; }
.kintai-upload-row { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.kintai-upload-row .form-field { margin: 0; min-width: 160px; }
.kintai-upload-row .kintai-note-field { flex: 1 1 220px; }
.kintai-upload-row .kintai-btn-field { min-width: 0; }
/* 2026-10-07: ドロップ欄を広く（高さ 110px 以上）し、クリックでも選べるようにした */
.kintai-drop-zone { margin-top: 10px; min-height: 200px; padding: 32px 16px; border: 2px dashed #b9c4d4; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; color: var(--color-text-muted); background: #fafbfd; cursor: pointer; }
.kintai-drop-zone .kintai-drop-main { font-size: 17px; font-weight: 600; color: var(--color-text); }
.kintai-drop-zone .kintai-drop-sub { font-size: 12px; }
.kintai-drop-zone:hover { border-color: #8fa3c2; background: #f3f6fb; }
.kintai-drop-zone.is-over { border-color: var(--color-primary); background: #e8f0fe; color: var(--color-primary); }
.kintai-drop-zone.is-over .kintai-drop-main { color: var(--color-primary); }

.kintai-list-toolbar { display: flex; gap: 14px; margin: 12px 0 6px; font-size: 13px; }
.kintai-list-toolbar label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.kintai-table { min-width: 0; }
.kintai-table .kintai-size { font-size: 11px; color: var(--color-text-muted); }
.kintai-table .kintai-ops { white-space: nowrap; text-align: right; }
.kintai-file-link { font-weight: 600; }

/* 2026-10-02: 勤怠表・就業時間の書き方の案内（記入例の placeholder の代わり） */
.daicho-days-hint { margin: 6px 0 8px; font-size: 12px; line-height: 1.6; }

/* 2026-10-02: 明細行の時間数の下の金額と、氏名の下の単価（自動）表示。単価の手入力サブ行は廃止 */
.line-table .line-sub-amount { margin-top: 3px; font-size: 11.5px; color: var(--color-text-muted); white-space: nowrap; text-align: right; }
.line-table .line-rates-info { margin-top: 3px; font-size: 11px; color: var(--color-text-muted); white-space: nowrap; }
.line-table .line-rate-manual { margin-left: 3px; padding: 0 4px; border-radius: 3px; background: #fff3cd; color: #8a5a00; font-size: 10px; }
.line-table td { vertical-align: top; }

/* 2026-10-06: 請求書一覧／勤怠表の受信箱の切り替え */
.inv-view-switch { display: inline-flex; gap: 0; margin-bottom: 14px; border: 1px solid var(--color-border); border-radius: 999px; padding: 3px; background: #f1f3f7; }
.inv-view-btn { border: none; background: transparent; padding: 7px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--color-text-muted); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.inv-view-btn.is-active { background: #fff; color: var(--color-primary); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.inv-view-count { display: none; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: #d9480f; color: #fff; font-size: 11px; font-weight: 700; line-height: 20px; text-align: center; }
.inv-view-count.has-items { display: inline-block; }
#kintaiInboxView .kintai-inbox-card { margin-top: 0; }
