/* ========================================
   献金等入力システム - 共通テーマ（藍×白 / モダン刷新）
   Bootstrap 5.3 の上に重ねて全画面の見た目を一新する。
   ======================================== */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

:root {
  --brand:        #3b4ea8;   /* 藍 */
  --brand-strong: #2f3f88;
  --brand-soft:   #eef1fb;
  --brand-ring:   rgba(59, 78, 168, .22);
  --ink:          #1f2430;
  --muted:        #6b7280;
  --line:         #e7e9f1;
  --bg:           #f4f6fb;
  --surface:      #ffffff;
  --shadow-sm:    0 1px 2px rgba(16, 24, 40, .05);
  --shadow:       0 6px 22px rgba(31, 42, 80, .08);

  /* Bootstrap 変数の上書き */
  --bs-primary: #3b4ea8;
  --bs-primary-rgb: 59, 78, 168;
  --bs-link-color: #3b4ea8;
  --bs-link-hover-color: #2f3f88;
  --bs-body-bg: #f4f6fb;
  --bs-body-color: #1f2430;
  --bs-border-color: #e7e9f1;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ===== ヘッダー / ナビ ===== */
.navbar.bg-primary {
  background: linear-gradient(100deg, #2f3f88 0%, #3b4ea8 55%, #4a5fc0 100%) !important;
  box-shadow: 0 2px 14px rgba(31, 42, 80, .18);
  padding-top: .55rem;
  padding-bottom: .55rem;
}
.navbar .navbar-brand {
  font-weight: 700;
  letter-spacing: .02em;
}
.navbar .nav-link {
  border-radius: 9px;
  padding: .4rem .85rem !important;
  margin: 0 .1rem;
  color: rgba(255, 255, 255, .82) !important;
  font-weight: 500;
  transition: background-color .15s, color .15s;
}
.navbar .nav-link:hover {
  background: rgba(255, 255, 255, .14);
  color: #fff !important;
}
.navbar .nav-link.active {
  background: rgba(255, 255, 255, .22);
  color: #fff !important;
}

/* ===== カード ===== */
.card {
  border: none;
  border-radius: 14px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.card-header {
  border-bottom: 1px solid var(--line);
  border-top-left-radius: 14px !important;
  border-top-right-radius: 14px !important;
  font-weight: 600;
  background: #fbfcfe;
}
.card-header.bg-primary {
  background: linear-gradient(100deg, #34448f, #3b4ea8) !important;
  border-bottom: none;
}

/* ===== ボタン ===== */
.btn {
  border-radius: 10px;
  font-weight: 600;
  padding: .5rem 1.05rem;
  transition: background-color .15s, box-shadow .15s, transform .05s;
}
.btn:active { transform: translateY(1px); }
.btn-sm { border-radius: 8px; padding: .32rem .72rem; }
.btn-lg { border-radius: 12px; }

.btn-primary {
  --bs-btn-bg: var(--brand);
  --bs-btn-border-color: var(--brand);
  --bs-btn-hover-bg: var(--brand-strong);
  --bs-btn-hover-border-color: var(--brand-strong);
  --bs-btn-active-bg: var(--brand-strong);
  --bs-btn-active-border-color: var(--brand-strong);
  box-shadow: 0 2px 9px rgba(59, 78, 168, .28);
}
.btn-primary:hover { box-shadow: 0 5px 16px rgba(59, 78, 168, .34); }

.btn-success {
  --bs-btn-bg: #1f9d63;
  --bs-btn-border-color: #1f9d63;
  --bs-btn-hover-bg: #198754;
  --bs-btn-hover-border-color: #198754;
  --bs-btn-active-bg: #198754;
  box-shadow: 0 2px 9px rgba(31, 157, 99, .26);
}
.btn-success:hover { box-shadow: 0 5px 16px rgba(31, 157, 99, .32); }

.btn-outline-primary {
  --bs-btn-color: var(--brand);
  --bs-btn-border-color: #c7cdec;
  --bs-btn-hover-bg: var(--brand);
  --bs-btn-hover-border-color: var(--brand);
  --bs-btn-active-bg: var(--brand-strong);
  --bs-btn-active-border-color: var(--brand-strong);
}
.btn-outline-secondary {
  --bs-btn-color: #4b5563;
  --bs-btn-border-color: #d3d7e0;
  --bs-btn-hover-bg: #f1f3f9;
  --bs-btn-hover-color: #1f2430;
  --bs-btn-hover-border-color: #c4c9d6;
  --bs-btn-active-bg: #e9ecf4;
}

/* ヘッダー内の btn-light（伝票/領収書/ログアウト） */
.navbar .btn-light {
  --bs-btn-bg: rgba(255, 255, 255, .92);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: #fff;
  font-weight: 600;
  color: var(--brand-strong);
}

/* ===== フォーム ===== */
.form-control,
.form-select {
  border-radius: 9px;
  border-color: #d8dce8;
  background: #fff;
  color: var(--ink);
}
.form-control::placeholder { color: #9aa1b1; }
.form-control:focus,
.form-select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 .2rem var(--brand-ring);
}
.form-control-sm,
.form-select-sm { border-radius: 8px; }
.form-label,
.form-label-sm { font-weight: 600; color: #566074; }
.form-control.bg-light { background: #f3f5fb !important; }

/* セグメント（入金元 区分） */
.btn-check:checked + .btn-outline-primary {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, .12);
}

/* ===== テーブル ===== */
.table { --bs-table-hover-bg: var(--brand-soft); }
.table thead th,
.table > thead > tr > th,
.table-light th,
.table-light > :not(caption) > * > * {
  background: #f3f5fb;
  color: #566074;
  font-weight: 600;
  border-bottom: 1px solid var(--line);
}
.table > :not(caption) > * > * { border-color: #eef0f6; }
#journalTableBody tr.table-active { --bs-table-accent-bg: var(--brand-soft); }

/* ===== ドロップダウン ===== */
.dropdown-menu {
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
  padding: .3rem;
}
.dropdown-item { border-radius: 8px; padding: .4rem .6rem; }
.dropdown-item.active,
.dropdown-item:active {
  background: var(--brand);
  color: #fff;
}
.dropdown-header { color: var(--brand-strong); font-weight: 700; }

/* ===== バッジ ===== */
.badge { font-weight: 600; border-radius: 7px; letter-spacing: .01em; }

/* ===== スクロールバー（モダン化） ===== */
* { scrollbar-width: thin; scrollbar-color: #c3c9da transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: #cdd3e3; border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-thumb:hover { background: #b3bbd2; background-clip: content-box; }

/* ステータスバッジ（仕訳管理） */
.mode-view  { background: #6b7280 !important; }
.mode-edit  { background: #e08a1e !important; }
.mode-new   { background: #1f9d63 !important; }
