/*
 * 社内デザインガイドライン（DADS 準拠）に合わせた画面テーマ。
 * Bootstrap 5.3 の変数・クラスを上書きする。色は design-guidelines.md §1 のパレットの HEX だけを使う。
 * トークン名（--c-*, --sp-*, --r-*, --font-*）は同 §6 のとおり。
 */

:root {
  /* color */
  --c-bg: #FFFFFF;
  --c-surface: #F2F2F2;
  --c-surface-key: #E8F1FE;
  --c-text: #1A1A1A;
  --c-text-sub: #4D4D4D;
  --c-text-muted: #666666;
  --c-border: #949494;
  --c-border-deco: #CCCCCC;
  --c-border-strong: #000000;
  --c-primary: #0017C1;
  --c-primary-dark: #000071;
  --c-primary-mid: #0031D8;
  --c-link: #0017C1;
  --c-success: #197A4B;
  --c-error: #CE0000;
  --c-warning: #927200;
  --c-warning-orange: #C74700;
  --c-focus: #FFD43D;

  /* type */
  --font-sans: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: monospace;

  /* space */
  --sp-1: 8px; --sp-2: 16px; --sp-3: 24px; --sp-4: 40px; --sp-5: 64px;

  /* radius */
  --r-s: 8px; --r-m: 16px; --r-full: 9999px;

  /* Bootstrap の変数を上記トークンに対応させる */
  --bs-font-sans-serif: var(--font-sans);
  --bs-font-monospace: var(--font-mono);
  --bs-body-font-family: var(--font-sans);
  --bs-body-font-size: 16px;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.7;
  --bs-body-color: #1A1A1A;
  --bs-body-color-rgb: 26, 26, 26;
  --bs-body-bg: #FFFFFF;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-emphasis-color: #000000;
  --bs-emphasis-color-rgb: 0, 0, 0;
  --bs-secondary-color: #4D4D4D;
  --bs-secondary-color-rgb: 77, 77, 77;
  --bs-secondary-bg: #E6E6E6;
  --bs-secondary-bg-rgb: 230, 230, 230;
  --bs-tertiary-color: #4D4D4D;
  --bs-tertiary-color-rgb: 77, 77, 77;
  --bs-tertiary-bg: #F2F2F2;
  --bs-tertiary-bg-rgb: 242, 242, 242;
  --bs-heading-color: #1A1A1A;
  --bs-border-color: #949494;
  --bs-border-color-translucent: #949494;
  --bs-border-radius: 8px;
  --bs-border-radius-sm: 8px;
  --bs-border-radius-lg: 8px;
  --bs-border-radius-pill: 9999px;
  --bs-box-shadow: none;
  --bs-box-shadow-sm: none;
  --bs-box-shadow-lg: none;
  --bs-box-shadow-inset: none;
  --bs-code-color: #1A1A1A;
  --bs-highlight-color: #1A1A1A;
  --bs-highlight-bg: #FBF5E0;
  --bs-link-color: #0017C1;
  --bs-link-color-rgb: 0, 23, 193;
  --bs-link-hover-color: #000071;
  --bs-link-hover-color-rgb: 0, 0, 113;
  --bs-focus-ring-color: #FFD43D;

  --bs-primary: #0017C1;
  --bs-primary-rgb: 0, 23, 193;
  --bs-secondary: #4D4D4D;
  --bs-secondary-rgb: 77, 77, 77;
  --bs-success: #197A4B;
  --bs-success-rgb: 25, 122, 75;
  --bs-info: #0031D8;
  --bs-info-rgb: 0, 49, 216;
  --bs-warning: #927200;
  --bs-warning-rgb: 146, 114, 0;
  --bs-danger: #CE0000;
  --bs-danger-rgb: 206, 0, 0;
  --bs-light: #F2F2F2;
  --bs-light-rgb: 242, 242, 242;
  --bs-dark: #000071;
  --bs-dark-rgb: 0, 0, 113;

  --bs-primary-text-emphasis: #000071;
  --bs-secondary-text-emphasis: #1A1A1A;
  --bs-success-text-emphasis: #1A1A1A;
  --bs-info-text-emphasis: #1A1A1A;
  --bs-warning-text-emphasis: #1A1A1A;
  --bs-danger-text-emphasis: #1A1A1A;
  --bs-light-text-emphasis: #4D4D4D;
  --bs-dark-text-emphasis: #1A1A1A;
  --bs-primary-bg-subtle: #E8F1FE;
  --bs-secondary-bg-subtle: #F2F2F2;
  --bs-success-bg-subtle: #E6F5EC;
  --bs-info-bg-subtle: #E8F1FE;
  --bs-warning-bg-subtle: #FBF5E0;
  --bs-danger-bg-subtle: #FDEEEE;
  --bs-light-bg-subtle: #F2F2F2;
  --bs-dark-bg-subtle: #E6E6E6;
  --bs-primary-border-subtle: #0017C1;
  --bs-secondary-border-subtle: #949494;
  --bs-success-border-subtle: #197A4B;
  --bs-info-border-subtle: #0031D8;
  --bs-warning-border-subtle: #927200;
  --bs-danger-border-subtle: #CE0000;
  --bs-light-border-subtle: #CCCCCC;
  --bs-dark-border-subtle: #4D4D4D;

  --bs-form-valid-color: #197A4B;
  --bs-form-valid-border-color: #197A4B;
  --bs-form-invalid-color: #CE0000;
  --bs-form-invalid-border-color: #CE0000;
}

/* ---- 基本 ---- */
body {
  letter-spacing: 0.02em;
  font-weight: 400;
}

input, select, textarea, button, optgroup {
  letter-spacing: inherit;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  --bs-heading-color: #1A1A1A;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* 見出しのサイズ（クラス名と対応を固定する）。ページ見出し 28px、節 20px、カード見出し 18px */
.h4 { font-size: 28px; line-height: 1.5; letter-spacing: 0.01em; }
.h5 { font-size: 20px; }
.h6 { font-size: 18px; line-height: 1.6; }
.fs-5 { font-size: 20px !important; }

b, strong, .fw-bold, .fw-semibold, .fw-medium { font-weight: 700 !important; }

small, .small, .form-text, .invalid-feedback, .valid-feedback {
  font-size: 14px;
  line-height: 1.5;
}

small, .small {
  /* 親が .small でも 14px を下回らないよう絶対値で指定する */
  font-size: 14px !important;
}

.form-text { color: #4D4D4D; }

code, kbd, pre, samp { font-family: var(--font-mono); font-size: 14px; letter-spacing: 0; }
code { background-color: #F2F2F2; padding: 0 4px; }

em, i, cite, address, dfn, var { font-style: normal; }
em { font-weight: 700; }

/* リンクは色＋下線。ボタン形のリンクとブランド名は除く */
a { text-decoration: underline; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }
a.btn, .navbar-brand, .page-link { text-decoration: none; }
.navbar-brand:hover { text-decoration: underline; }

/* ---- フォーカス：黄色（Yellow-300）と黒の二重構造 ---- */
:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible,
.btn:focus-visible,
.btn-check:focus-visible + .btn,
.page-link:focus-visible {
  outline: 4px solid #000000;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #FFD43D;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.form-control.is-invalid:focus,
.form-select.is-invalid:focus,
.form-check-input.is-invalid:focus,
.page-link:focus {
  border-color: #0017C1;
  box-shadow: 0 0 0 2px #FFD43D;
}

.form-control.is-invalid:focus,
.form-select.is-invalid:focus { border-color: #CE0000; }

.form-control:focus:not(:focus-visible),
.form-select:focus:not(:focus-visible) {
  outline: 0;
}

/* ---- ボタン ---- */
.btn {
  --bs-btn-padding-x: 16px;
  --bs-btn-padding-y: 8px;
  --bs-btn-font-size: 16px;
  --bs-btn-font-weight: 700;
  --bs-btn-line-height: 1.5;
  --bs-btn-border-radius: 8px;
  --bs-btn-box-shadow: none;
  --bs-btn-focus-box-shadow: 0 0 0 2px #FFD43D;
  letter-spacing: 0.02em;
}

.btn-sm {
  --bs-btn-padding-x: 12px;
  --bs-btn-padding-y: 4px;
  --bs-btn-font-size: 14px;
  --bs-btn-border-radius: 8px;
}

.btn-primary {
  --bs-btn-color: #FFFFFF;
  --bs-btn-bg: #0017C1;
  --bs-btn-border-color: #0017C1;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #0031D8;
  --bs-btn-hover-border-color: #0031D8;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #000071;
  --bs-btn-active-border-color: #000071;
  --bs-btn-disabled-color: #FFFFFF;
  --bs-btn-disabled-bg: #0017C1;
  --bs-btn-disabled-border-color: #0017C1;
}

.btn-danger {
  --bs-btn-color: #FFFFFF;
  --bs-btn-bg: #CE0000;
  --bs-btn-border-color: #CE0000;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #A90000;
  --bs-btn-hover-border-color: #A90000;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #850000;
  --bs-btn-active-border-color: #850000;
  --bs-btn-disabled-color: #FFFFFF;
  --bs-btn-disabled-bg: #CE0000;
  --bs-btn-disabled-border-color: #CE0000;
}

.btn-success {
  --bs-btn-color: #FFFFFF;
  --bs-btn-bg: #197A4B;
  --bs-btn-border-color: #197A4B;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #115A36;
  --bs-btn-hover-border-color: #115A36;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #0C472A;
  --bs-btn-active-border-color: #0C472A;
  --bs-btn-disabled-color: #FFFFFF;
  --bs-btn-disabled-bg: #197A4B;
  --bs-btn-disabled-border-color: #197A4B;
}

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-danger {
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-disabled-bg: transparent;
}

.btn-outline-primary {
  --bs-btn-color: #0017C1;
  --bs-btn-border-color: #0017C1;
  --bs-btn-hover-bg: #0031D8;
  --bs-btn-hover-border-color: #0031D8;
  --bs-btn-active-bg: #000071;
  --bs-btn-active-border-color: #000071;
  --bs-btn-disabled-color: #0017C1;
  --bs-btn-disabled-border-color: #0017C1;
}

.btn-outline-secondary {
  --bs-btn-color: #4D4D4D;
  --bs-btn-border-color: #4D4D4D;
  --bs-btn-hover-bg: #4D4D4D;
  --bs-btn-hover-border-color: #4D4D4D;
  --bs-btn-active-bg: #1A1A1A;
  --bs-btn-active-border-color: #1A1A1A;
  --bs-btn-disabled-color: #4D4D4D;
  --bs-btn-disabled-border-color: #4D4D4D;
}

.btn-outline-success {
  --bs-btn-color: #197A4B;
  --bs-btn-border-color: #197A4B;
  --bs-btn-hover-bg: #197A4B;
  --bs-btn-hover-border-color: #197A4B;
  --bs-btn-active-bg: #115A36;
  --bs-btn-active-border-color: #115A36;
  --bs-btn-disabled-color: #197A4B;
  --bs-btn-disabled-border-color: #197A4B;
}

.btn-outline-danger {
  --bs-btn-color: #CE0000;
  --bs-btn-border-color: #CE0000;
  --bs-btn-hover-bg: #CE0000;
  --bs-btn-hover-border-color: #CE0000;
  --bs-btn-active-bg: #A90000;
  --bs-btn-active-border-color: #A90000;
  --bs-btn-disabled-color: #CE0000;
  --bs-btn-disabled-border-color: #CE0000;
}

/* 濃色のヘッダー上のボタン */
.btn-outline-light {
  --bs-btn-color: #FFFFFF;
  --bs-btn-border-color: #FFFFFF;
  --bs-btn-hover-color: #000071;
  --bs-btn-hover-bg: #FFFFFF;
  --bs-btn-hover-border-color: #FFFFFF;
  --bs-btn-active-color: #000071;
  --bs-btn-active-bg: #E8F1FE;
  --bs-btn-active-border-color: #E8F1FE;
  --bs-btn-disabled-color: #FFFFFF;
  --bs-btn-disabled-border-color: #FFFFFF;
}

.btn-link {
  --bs-btn-color: #0017C1;
  --bs-btn-hover-color: #000071;
  --bs-btn-active-color: #000071;
  --bs-btn-disabled-color: #666666;
  --bs-btn-font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* ---- ヘッダー・フッター・ページ見出し ---- */
body { background-color: #FFFFFF; }

.navbar { --bs-navbar-padding-y: 16px; --bs-navbar-brand-font-size: 20px; }
.navbar-brand { font-weight: 700; }
/* ヘッダーは入力画面のカード見出しと同じ淡い面（Gray-50）。下辺は意味のある線（Gray-420） */
.site-header { background-color: var(--c-surface) !important; color: var(--c-text); border-bottom: 1px solid var(--c-border); }
.site-header .navbar-brand, .site-header .site-title { color: var(--c-text); font-size: 20px; font-weight: 700; }
.site-header .navbar-brand:hover, .site-header .navbar-brand:focus { color: var(--c-text); }

.page-heading { font-size: 28px; line-height: 1.5; letter-spacing: 0.01em; font-weight: 700; margin-bottom: 24px; }

.site-footer {
  background-color: #FFFFFF;
  border-top: 1px solid #949494;
  color: #4D4D4D;
  font-size: 14px;
  line-height: 1.5;
  padding: 16px 0;
  text-align: center;
}

/* ---- 面・カード・線 ---- */
.card {
  --bs-card-border-color: #949494;
  --bs-card-border-radius: 8px;
  --bs-card-inner-border-radius: 7px;
  --bs-card-cap-bg: #F2F2F2;
  --bs-card-cap-color: #1A1A1A;
  --bs-card-bg: #FFFFFF;
  --bs-card-cap-padding-x: 16px;
  --bs-card-cap-padding-y: 8px;
  --bs-card-spacer-x: 16px;
  --bs-card-spacer-y: 16px;
  box-shadow: none;
}

.border, .border-top, .border-bottom { border-color: #949494 !important; }
.rounded { border-radius: 8px !important; }
.bg-white { background-color: #FFFFFF !important; }
img.border { border-radius: 0; }
img { border-radius: 0; }

/* ---- お知らせ（alert） ---- */
.alert {
  --bs-alert-padding-x: 16px;
  --bs-alert-padding-y: 16px;
  --bs-alert-border-radius: 8px;
  --bs-alert-color: #1A1A1A;
  border-width: 1px;
  border-left-width: 8px;
}

.alert-success { --bs-alert-bg: #E6F5EC; --bs-alert-border-color: #197A4B; }
.alert-danger { --bs-alert-bg: #FDEEEE; --bs-alert-border-color: #CE0000; }
.alert-warning { --bs-alert-bg: #FBF5E0; --bs-alert-border-color: #927200; }
.alert-info { --bs-alert-bg: #E8F1FE; --bs-alert-border-color: #0017C1; }

/* ---- チップ（バッジ）：状態は必ずテキストで示す ---- */
.badge {
  --bs-badge-padding-x: 8px;
  --bs-badge-padding-y: 0;
  --bs-badge-font-size: 14px;
  --bs-badge-font-weight: 700;
  --bs-badge-border-radius: 9999px;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  vertical-align: baseline;
}

/* ---- フォーム ---- */
.form-label {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 8px;
}

.form-control, .form-select {
  --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%231A1A1A' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  padding: 8px 16px;
  font-size: 16px;
  line-height: 1.7;
  color: #1A1A1A;
  background-color: #FFFFFF;
  border: 1px solid #949494;
  border-radius: 8px;
  box-shadow: none;
}

.form-select { padding-right: 40px; background-position: right 16px center; background-size: 16px 12px; }

.form-control::placeholder { color: #666666; opacity: 1; }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: #F2F2F2; }

/* エラー表示：赤い太枠＋メッセージ文（色だけに頼らない） */
.form-control.is-invalid,
.form-select.is-invalid:not([multiple]):not([size]),
.form-select.is-invalid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: none;
  border: 2px solid #CE0000;
  padding: 7px 15px;
  background-image: none;
}

.form-select.is-invalid:not([multiple]):not([size]),
.form-select.is-invalid:not([multiple])[size="1"] {
  padding-right: 39px;
  background-image: var(--bs-form-select-bg-img);
}

.invalid-feedback { color: #CE0000; font-weight: 700; margin-top: 8px; }

.form-check-input { border: 1px solid #949494; box-shadow: none; }
.form-check-input:checked { background-color: #0017C1; border-color: #0017C1; }
.form-check-input.is-invalid { border-color: #CE0000; }
.form-check-input.is-invalid ~ .form-check-label { color: #CE0000; }
.form-check-label { font-weight: 400; }

.input-group-text {
  font-size: 16px;
  color: #1A1A1A;
  background-color: #F2F2F2;
  border: 1px solid #949494;
  border-radius: 8px;
}

/* ---- 表 ---- */
.table {
  --bs-table-color: #1A1A1A;
  --bs-table-bg: #FFFFFF;
  --bs-table-border-color: #949494;
  --bs-table-striped-bg: #F2F2F2;
  --bs-table-hover-bg: #E8F1FE;
  --bs-table-accent-bg: transparent;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0;
  border-radius: 0;
}

.table > :not(caption) > * > * {
  padding: 8px;
  vertical-align: top;
}

.table-sm > :not(caption) > * > * { padding: 8px; }

.table th { font-weight: 700; text-align: left; }
.table td.text-end, .table th.text-end { text-align: right; font-variant-numeric: tabular-nums; }

.table > thead > tr > * { border-bottom: 2px solid #000000; }

.table-light {
  --bs-table-color: #1A1A1A;
  --bs-table-bg: #F2F2F2;
  --bs-table-border-color: #949494;
  --bs-table-striped-bg: #F2F2F2;
  --bs-table-active-bg: #E6E6E6;
  --bs-table-hover-bg: #E6E6E6;
  color: #1A1A1A;
  border-color: #949494;
}

/* ---- ページ送り ---- */
.pagination {
  --bs-pagination-padding-x: 16px;
  --bs-pagination-padding-y: 8px;
  --bs-pagination-font-size: 16px;
  --bs-pagination-color: #0017C1;
  --bs-pagination-bg: #FFFFFF;
  --bs-pagination-border-width: 1px;
  --bs-pagination-border-color: #949494;
  --bs-pagination-border-radius: 8px;
  --bs-pagination-hover-color: #FFFFFF;
  --bs-pagination-hover-bg: #0031D8;
  --bs-pagination-hover-border-color: #0031D8;
  --bs-pagination-focus-color: #0017C1;
  --bs-pagination-focus-bg: #FFFFFF;
  --bs-pagination-focus-box-shadow: 0 0 0 2px #FFD43D;
  --bs-pagination-active-color: #FFFFFF;
  --bs-pagination-active-bg: #0017C1;
  --bs-pagination-active-border-color: #0017C1;
  --bs-pagination-disabled-color: #666666;
  --bs-pagination-disabled-bg: #F2F2F2;
  --bs-pagination-disabled-border-color: #949494;
}

.page-link { font-weight: 700; }

/* ---- エラー画面 ---- */
.error-page { text-align: center; padding: 64px 0; }
.error-page .error-code { font-size: 28px; font-weight: 700; margin-bottom: 8px; }
.error-page .error-message { font-size: 20px; margin-bottom: 24px; }

/* ====== 入力画面（ビル・区画）の共通スタイル ====== */
.form-card > .card-header {
  font-weight: 700;
  background-color: var(--c-surface);
  border-bottom: 1px solid var(--c-border);
}

.form-card .form-label {
  font-size: 16px;
}

.form-card .form-text {
  font-size: 14px;
}

/* 保存ボタンのバー。フォームの末尾で、画面下端に張り付く（枠は付けず、背景の白で下の内容を隠す） */
.form-action-bar {
  position: sticky;
  bottom: 0;
  z-index: 1020;
  margin-top: var(--sp-2);
  padding: var(--sp-2) 0;
  background-color: var(--c-bg);
}

/* 金額の表（行=費目、列=単価・総額・条件） */
.money-table {
  margin-bottom: 0;
}

.money-table thead th {
  font-size: 14px;
  white-space: nowrap;
}

.money-table tbody th {
  width: 7rem;
  font-weight: 700;
  white-space: nowrap;
  /* 入力欄の文字の高さに合わせる（上揃えのまま、行頭を揃える） */
  padding-top: 20px;
}

.money-table > :not(caption) > * > :first-child { padding-left: var(--sp-2); }
.money-table > :not(caption) > * > :last-child { padding-right: var(--sp-2); }

.money-table .input-group {
  flex-wrap: nowrap;
}

.money-table .input-group-text {
  min-width: 3.25rem;
  justify-content: center;
}

/* スマホ幅：表を 1 列に積み、各欄の上に列名を出す */
@media (max-width: 767.98px) {
  .money-table,
  .money-table tbody,
  .money-table tr,
  .money-table th,
  .money-table td {
    display: block;
    width: auto;
  }

  .money-table thead {
    display: none;
  }

  .money-table tbody tr {
    padding: var(--sp-2);
    border-bottom: 1px solid var(--c-border);
  }

  .money-table tbody tr:last-child {
    border-bottom: 0;
  }

  .money-table tbody th {
    width: auto;
    padding: 0 0 var(--sp-1);
    border: 0;
  }

  .money-table tbody td {
    padding: var(--sp-1) 0;
    border: 0;
  }

  .money-table tbody td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: 14px;
    color: var(--c-text-sub);
  }
}

/* カード直下の表は、左右の枠線を省いてカードの枠に揃える */
.form-card > .money-table > :not(caption) > * > * {
  border-inline-width: 0;
}

/* 検索ボックス：1 行に並べて余白を詰める */
.search-box { padding: var(--sp-2); }
.search-box .form-label { margin-bottom: 4px; }

/* 表の中のボタンは文字を折り返さない（列が狭いと 1 文字ずつ縦に並ぶため） */
.table .btn { white-space: nowrap; }

/* ====== 入力画面の改善（タブ・入力欄の高さ・通知・入力補助） ====== */

/* タブ：選択中は主色の下線と太字。見出しはフォームの外のパネルも含めて共通 */
.form-tabs {
  --bs-nav-tabs-border-color: var(--c-border);
  --bs-nav-tabs-border-radius: 8px;
  --bs-nav-tabs-link-hover-border-color: var(--c-border-deco) var(--c-border-deco) var(--c-border);
  --bs-nav-tabs-link-active-color: var(--c-primary);
  --bs-nav-tabs-link-active-bg: var(--c-bg);
  --bs-nav-tabs-link-active-border-color: var(--c-border) var(--c-border) var(--c-bg);
  flex-wrap: wrap;
}

.form-tabs .nav-link {
  min-height: 44px;
  color: var(--c-text);
  font-weight: 400;
  border-bottom: 4px solid transparent;
}

.form-tabs .nav-link.active {
  color: var(--c-primary);
  font-weight: 700;
  border-bottom-color: var(--c-primary);
}

/* タブの中身（フォームの中にパネルがあっても、子孫のパネルを切り替える） */
.tab-content .tab-pane { display: none; }
.tab-content .tab-pane.active { display: block; }

/* 保存バーは、フォーム内のタブ（基本情報・設備・窓口）のときだけ出す */
.tab-content:has(#tab-media.active, #tab-estates.active) .form-action-bar-wrap { display: none; }

/* 入力欄の高さを 44px 程度に揃える */
.form-card input.form-control,
.form-card .form-select,
.form-card .input-group-text,
.form-card .input-group .btn,
.form-card .btn-group .btn {
  min-height: 44px;
}

.form-card .btn-group .btn { display: inline-flex; align-items: center; justify-content: center; min-width: 72px; }

/* 保存結果の通知（ページ上部） */
.flash-notice {
  font-weight: 700;
}

.flash-notice.alert-success {
  color: var(--c-success);
  background-color: #E6F5EC;
  border-color: var(--c-success);
}

.flash-notice.alert-danger {
  color: var(--c-error);
  background-color: #FDEEEE;
  border-color: var(--c-error);
}

/* コメント欄：高さは入力に合わせて伸びる */
textarea.autogrow { field-sizing: content; min-height: 6rem; }

/* 見出しの右の操作（ビル・物件の削除など）。見出しの文字の高さに合わせる */
.page-heading-actions { padding-top: 4px; }

/* 入力欄と単位（円・坪・%など）・ボタンをつなげて 1 つの部品に見せる。つなぎ目の角は丸めず、枠線は 1 本に重ねる */
.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child),
.input-group > .input-group-text:not(:last-child),
.input-group > .btn:not(:last-child) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}
.input-group > .form-control:not(:first-child),
.input-group > .form-select:not(:first-child),
.input-group > .input-group-text:not(:first-child),
.input-group > .btn:not(:first-child) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
  margin-left: -1px;
}
.input-group > .form-control:focus,
.input-group > .form-select:focus { z-index: 3; }
