@charset "UTF-8";
@reference "app/assets/stylesheets/application.tailwind.css";
/* line 2, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar table {
  -webkit-border-horizontal-spacing: 0px;
  -webkit-border-vertical-spacing: 0px;
  background-color: rgba(0, 0, 0, 0);
  border: 1px solid #dddddd;
  border-collapse: collapse;
  box-sizing: border-box;
  max-width: 100%;
  width: 100%;
}

/* line 13, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar tr {
  border-collapse: collapse;
}

/* line 17, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar th {
  padding: 6px;
  border-bottom: 2px solid #dddddd;
  border-collapse: collapse;
  border-left: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
  border-top: 0px none #333333;
  box-sizing: border-box;
  text-align: left;
}

/* line 28, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar td {
  padding: 6px;
  vertical-align: top;
  width: 14%;
  border: 1px solid #ddd;
  border-top-color: #dddddd;
  border-top-style: solid;
  border-top-width: 1px;
  border-right-color: #dddddd;
  border-right-style: solid;
  border-right-width: 1px;
  border-bottom-color: #dddddd;
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-left-color: #dddddd;
  border-left-style: solid;
  border-left-width: 1px;
}

/* line 48, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar .calendar-heading nav {
  display: inline-block;
}

/* line 52, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar .day {
  height: 80px;
}

/* line 64, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar .today {
  background: #FFFFC0;
}

/* line 73, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar .prev-month {
  background: #DDD;
}

/* line 76, ../../../usr/local/bundle/ruby/3.1.0/gems/simple_calendar-3.0.2/app/assets/stylesheets/simple_calendar.scss */
.simple-calendar .next-month {
  background: #DDD;
}

/* line 4, app/assets/stylesheets/custom_style.scss */
:root {
  --dark: #1f87f0;
  --light: #87e8f7;
}

/* line 9, app/assets/stylesheets/custom_style.scss */
.hoge {
  background: var(--light);
}

/* line 13, app/assets/stylesheets/custom_style.scss */
h1 {
  color: var(--dark);
  font-size: x-large;
}

/* line 18, app/assets/stylesheets/custom_style.scss */
table {
  border: 0px solid black;
  @apply bg-red-400;
}

/* line 23, app/assets/stylesheets/custom_style.scss */
div:has(table) {
  border: 1px;
}

/* 送付先情報マトリクス表示用スタイル */
/* wrapper には overflow を持たせない。overflow を持つ要素は sticky の祖先 scroll container になり、
   `overflow-x: auto; overflow-y: visible` のような片寄せ指定は CSS仕様で visible 側が auto に補正されて
   sticky が window スクロールに追従しなくなるため */
/* line 31, app/assets/stylesheets/custom_style.scss */
.recipient-matrix {
  font-size: 0.9rem;
}

/* line 34, app/assets/stylesheets/custom_style.scss */
.recipient-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 10;
}

/* line 40, app/assets/stylesheets/custom_style.scss */
.recipient-matrix .template-header,
.recipient-matrix .send-type-header {
  background-color: #f8f9fa;
  font-weight: bold;
  text-align: center;
  vertical-align: middle;
  padding: 0.75rem;
}

/* line 49, app/assets/stylesheets/custom_style.scss */
.recipient-matrix .template-name {
  background-color: #f8f9fa;
  font-weight: bold;
  padding: 0.75rem;
  white-space: nowrap;
}

/* line 56, app/assets/stylesheets/custom_style.scss */
.recipient-matrix .matrix-cell {
  text-align: center;
  vertical-align: middle;
  padding: 0.5rem;
  min-width: 120px;
}

/* line 62, app/assets/stylesheets/custom_style.scss */
.recipient-matrix .matrix-cell .form-check-input {
  cursor: pointer;
  width: 1.2rem;
  height: 1.2rem;
}

/* line 68, app/assets/stylesheets/custom_style.scss */
.recipient-matrix .matrix-cell .badge {
  font-size: 0.75rem;
  margin-left: 0.25rem;
}

/* line 74, app/assets/stylesheets/custom_style.scss */
.recipient-matrix .matrix-cell.unavailable {
  background-color: #f8f9fa;
}

/* 送付先情報詳細フォーム */
/* line 80, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper {
  margin-top: 2rem;
}

/* line 83, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}

/* line 88, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .text-muted {
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

/* line 93, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form {
  border: 1px solid #dee2e6;
  transition: all 0.3s ease;
}

/* line 97, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form:hover {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* line 101, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form.border-danger {
  border: 2px solid #dc3545;
}

/* line 104, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form.border-danger .card-header {
  border-bottom-color: #dc3545;
}

/* line 109, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form .card-header {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #dee2e6;
}

/* line 114, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form .form-label {
  font-weight: 600;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
}

/* line 120, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form .form-control:disabled {
  background-color: #e9ecef;
  cursor: not-allowed;
}

/* line 125, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form textarea.form-control {
  border: 1px solid #000;
}

/* line 129, app/assets/stylesheets/custom_style.scss */
.address_form_wrapper .address_form .invalid-feedback {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #dc3545;
}

/* 統計サマリーカード（横5列グリッド） issue_8854 */
/* line 139, app/assets/stylesheets/custom_style.scss */
.summary-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

/* 月次集計詳細（#11997）: タブ・集計サマリパネル */
/* line 147, app/assets/stylesheets/custom_style.scss */
.mc_tabs {
  display: flex;
  gap: 0.25rem;
  border-bottom: 1px solid #e5e7eb;
  margin: 1rem 0;
}

/* line 154, app/assets/stylesheets/custom_style.scss */
.mc_tab {
  padding: 0.5rem 1rem;
  background: #f8fafc;
  color: #64748b;
  border: 1px solid transparent;
  border-bottom: none;
  border-radius: 6px 6px 0 0;
  cursor: pointer;
  font-size: 0.875rem;
}

/* line 165, app/assets/stylesheets/custom_style.scss */
.mc_tab.is-active {
  background: #fff;
  color: #111827;
  font-weight: 600;
  border-color: #e5e7eb;
  border-bottom: 2px solid #2563eb;
}

/* 請求書詳細（#11998）: 請求ヘッダの項目名と値を同一行に表示 */
/* line 174, app/assets/stylesheets/custom_style.scss */
.invoice_header_kv {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  column-gap: 1rem;
  row-gap: 0.5rem;
  align-items: start;
  margin-top: 0.5rem;
}

/* line 183, app/assets/stylesheets/custom_style.scss */
.invoice_header_kv dt {
  color: #374151;
  font-weight: 600;
  white-space: nowrap;
}

/* line 189, app/assets/stylesheets/custom_style.scss */
.invoice_header_kv dd {
  color: #111827;
  min-width: 0;
  overflow-wrap: anywhere;
}

/* line 196, app/assets/stylesheets/custom_style.scss */
.mc_table_caption {
  margin: 1rem 0 0.4rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #374151;
}

/* line 204, app/assets/stylesheets/custom_style.scss */
.mc_subnav_between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0.75rem 0;
  font-size: 0.8rem;
  color: #64748b;
}

/* line 213, app/assets/stylesheets/custom_style.scss */
.mc_alert_warning {
  display: flex;
  gap: 0.5rem;
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 0.75rem;
  font-size: 0.875rem;
}

/* line 225, app/assets/stylesheets/custom_style.scss */
.mc_alert_icon {
  flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #fff;
  background: #f59e0b;
  border-radius: 50%;
}

/* 送付漏れチェックの注釈（mock kp-note の黄色枠） */
/* line 239, app/assets/stylesheets/custom_style.scss */
.mc_note_box {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin: 0.75rem 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #92400e;
}

/* 初回集計 / 再集計 判定カード領域（検索欄の下・タブの上。レイアウト確認用ダミー。#11997 journal #64595） */
/* line 251, app/assets/stylesheets/custom_style.scss */
.mc_mode_notice {
  margin: 1rem 0 1.5rem;
  padding: 0.75rem 1rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

/* card_container 内の各カードに左アクセントを付け、初回集計/再集計を視覚的に区別しやすくする */
/* line 260, app/assets/stylesheets/custom_style.scss */
.mc_mode_card {
  border-left: 3px solid #2563eb;
}

/* 初回集計＝新規（青）/ 再集計＝既存差分（橙）でアクセント色を分け、判定結果を一目で区別できるようにする */
/* line 265, app/assets/stylesheets/custom_style.scss */
.mc_mode_card_initial {
  border-left-color: #2563eb;
}

/* line 269, app/assets/stylesheets/custom_style.scss */
.mc_mode_card_recalculation {
  border-left-color: #f59e0b;
}

/* 再集計カードの件数は note より目立つ通常サイズで表示する（journal #64717） */
/* line 274, app/assets/stylesheets/custom_style.scss */
.mc_mode_count {
  margin: 0.25rem 0;
  font-size: 1rem;
  font-weight: 600;
  color: #111827;
}

/* 再集計カード: 件数表示と「一覧で確認」導線を同一行（真横）に並べる（journal #65635 / #65720 / #65735）。
   .card_container の子孫 div には daisyUI card-body（flex-direction: column）が
   `.card_container div div` の高 specificity で当たり、件数とボタンが縦積みになっていた（review #65735 指摘1）。
   .mc_mode_card 配下で specificity を上げ、横並び（row）・件数直後にボタンを保つ。 */
/* line 285, app/assets/stylesheets/custom_style.scss */
.mc_mode_card .mc_mode_count_row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0.25rem 0;
  /* 長い件数文言は内部で折り返してよいが、ボタンは縮めず件数の真横に保つ（縦に落とさない）。 */
}

/* line 294, app/assets/stylesheets/custom_style.scss */
.mc_mode_card .mc_mode_count_row .mc_mode_count {
  min-width: 0;
}

/* line 298, app/assets/stylesheets/custom_style.scss */
.mc_mode_card .mc_mode_count_row .btn_show {
  flex: 0 0 auto;
}

/* 比較特殊 show（journal #65632）: セクション見出しを目立たせ、横に関連ボタンを並べる */
/* line 304, app/assets/stylesheets/custom_style.scss */
.mc_compare_section_header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.25rem 0 0.5rem;
}

/* line 311, app/assets/stylesheets/custom_style.scss */
.mc_compare_section_header h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
}

/* 比較テーブル（比較特殊 show の検査依頼比較 / 価格比較。共通構造・共通CSS。journal #65632 / #65792）。
   normal_table は sticky 先頭/末尾列を白背景で塗り table-zebra の縞を打ち消すため、3列の小さな比較表では
   末尾の「新」列だけ縞が効かず（旧は中央列で縞が残る）、table-auto で旧/新の幅も内容依存でズレていた。
   ここでは当該列の sticky を解除し、項目列は内容幅、旧/新は等幅・同じ縞模様にし、変更セルは行全体ではなく
   旧/新の両セルを強調する（review #65792）。normal_table の sticky 由来 th/td 規則（specificity 0,2,1）を
   確実に上書きするため `table.mc_compare_table` で起点の specificity を上げる。 */
/* line 325, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table {
  table-layout: fixed;
  /* 項目列: 内容幅・常に白。強調対象にしない。 */
  /* 旧 / 新: 等幅（table-layout: fixed で項目列以外を均等割り）。sticky 白背景を解除し、
     両列に同じ縞模様を効かせる（末尾列だけ縞が消えないようにする）。 */
  /* 変更ありのカラムは旧 / 新の両セルを強調（項目列は対象外）。ゼブラ・hover より優先する。
     縞（#fff / #f3f4f6）と明確に区別できるよう、薄すぎない濃いめの amber にする（owner 指示 #65792）。 */
  /* ヘッダの項目 / 旧 / 新を同じ見た目に揃える（normal_table の th:last-child=#aaa を打ち消す）。 */
}

/* line 329, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table .mc_compare_label_cell {
  width: 9rem;
  white-space: nowrap;
}

/* line 333, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table td.mc_compare_label_cell {
  position: static;
  background: #fff;
}

/* line 340, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table td.mc_compare_value_cell {
  position: static;
  white-space: normal;
}

/* line 344, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table tbody tr:nth-child(odd) td.mc_compare_value_cell {
  background: #fff;
}

/* line 347, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table tbody tr:nth-child(even) td.mc_compare_value_cell {
  background: #f3f4f6;
}

/* line 353, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table td.mc_compare_value_cell.mc_diff_changed {
  background: #fde68a !important;
  /* amber-200 */
  font-weight: 600;
}

/* line 359, app/assets/stylesheets/custom_style.scss */
table.mc_compare_table th.mc_compare_label_cell,
table.mc_compare_table th.mc_compare_value_cell {
  position: static;
  background: #1f87f0;
}

/* 再集計カードの操作ボタン行。左寄せで内容幅のボタン（btn_show btn_compact）を横並びにし、折り返す
   （journal #64729 / #64730）。ボタン外観は共通 btn_show + btn_compact に寄せ、独自 .mc_mode_link は廃止。 */
/* line 368, app/assets/stylesheets/custom_style.scss */
.mc_mode_actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

/* 再集計 差分明細（#11997 journal #64608）。差分種別バッジ色と変更セル強調。 */
/* line 377, app/assets/stylesheets/custom_style.scss */
.mc_diff_kind {
  font-weight: 600;
  white-space: nowrap;
}

/* line 382, app/assets/stylesheets/custom_style.scss */
.mc_diff_kind_added {
  color: #047857;
  /* 追加: 緑 */
}

/* line 386, app/assets/stylesheets/custom_style.scss */
.mc_diff_kind_content_changed,
.mc_diff_kind_price_changed {
  color: #b45309;
  /* 内容変更 / 単価変更: 橙 */
}

/* line 391, app/assets/stylesheets/custom_style.scss */
.mc_diff_kind_removed {
  color: #b91c1c;
  /* 除外: 赤 */
}

/* line 395, app/assets/stylesheets/custom_style.scss */
.mc_diff_kind_unchanged {
  color: #64748b;
  /* 変更なし: 灰 */
}

/* 変更セル強調（内容変更 / 単価変更で変わったセル）。比較特殊 show の比較表（table.mc_compare_table）と
   同じ濃いめ amber に揃える（差分明細タブと比較表で差分色を一致させる。owner 指示 #65792）。 */
/* line 401, app/assets/stylesheets/custom_style.scss */
.mc_diff_changed {
  background: #fde68a;
  /* amber-200 */
  font-weight: 600;
}

/* 差分明細タブの「理由/変更項目」カラム（journal #65823）。差分種別セル内併記を廃止し独立カラム化した。
   原因文言は長くなり得るため、normal_table の td:nowrap（specificity 0,1,1）を確実に解除して折り返し可・
   上限幅にする（.mc_diff_table 起点で specificity を上げる）。 */
/* line 409, app/assets/stylesheets/custom_style.scss */
.mc_diff_table td.mc_diff_reason_cell {
  white-space: normal;
  min-width: 10rem;
  max-width: 18rem;
}

/* 月次集計詳細の請求対象外フラグ（journal #67390 / #67399 / #67419）。請求対象外の明細行はグレーアウトして
   区別し、「請求対象外」カラムに状態バッジ + 理由を表示する。未除外行は理由入力画面への導線を出す。
   行は集計から外れても監査のため残す。 */
/* line 418, app/assets/stylesheets/custom_style.scss */
tr.mc_row_excluded td {
  background: #f3f4f6;
  color: #9ca3af;
}

/* line 423, app/assets/stylesheets/custom_style.scss */
.mc_billing_badge_excluded {
  display: inline-block;
  margin-right: 0.4rem;
  padding: 0 0.4rem;
  border-radius: 0.25rem;
  background: #fee2e2;
  color: #b91c1c;
  font-weight: bold;
  white-space: nowrap;
}

/* line 434, app/assets/stylesheets/custom_style.scss */
.mc_billing_reason {
  color: #6b7280;
  word-break: break-all;
}

/* 請求対象状態の変更画面（edit_billing_target） */
/* line 440, app/assets/stylesheets/custom_style.scss */
.mc_exclude_summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1.5rem;
}

/* line 446, app/assets/stylesheets/custom_style.scss */
.mc_exclude_summary dt {
  color: #6b7280;
  font-size: 0.85rem;
}

/* line 451, app/assets/stylesheets/custom_style.scss */
.mc_exclude_summary dd {
  font-weight: 600;
}

/* line 455, app/assets/stylesheets/custom_style.scss */
.mc_exclude_field {
  margin-top: 1rem;
}

/* line 459, app/assets/stylesheets/custom_style.scss */
.mc_exclude_field .mc_exclude_field_label {
  font-weight: 600;
  margin-right: 0.5rem;
}

/* line 464, app/assets/stylesheets/custom_style.scss */
.mc_exclude_field label {
  margin-right: 1rem;
}

/* line 468, app/assets/stylesheets/custom_style.scss */
.mc_exclude_reason {
  margin-top: 1rem;
}

/* line 472, app/assets/stylesheets/custom_style.scss */
.mc_exclude_reason textarea {
  width: 100%;
}

/* line 476, app/assets/stylesheets/custom_style.scss */
.mc_exclude_actions {
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
}
