@charset "UTF-8";
/* ============================================================
   配色上書き（GD-0002）: 管理テーマの青系 → ライム基調
   追加オーバーライドはここに集約。css/index で app.min.css・mp-custom.css の後に読込。
   design-tokens.css の後に読み込むこと（var(--lime) 等を使用するため）。
   ※ dompdf 帳票テンプレ（office/estimate/pdf・office/invoice/pdf）は
     css/index 非経由のため影響を受けない。
   ============================================================ */

/* プライマリボタン: 青(#037fca) → ライム。文字は黒(--ink)。 */
.btn-primary,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle{
  background-color:var(--lime);
  border-color:var(--lime);
  color:var(--lime-text);
  box-shadow:none;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus{
  background-color:var(--lime);
  border-color:var(--lime);
  color:var(--lime-text);
  filter:brightness(.97);
  box-shadow:0 0 0 .2rem var(--lime-line);
}

/* 危険系ボタン/バッジ: mp-custom の #f65462 → トークン --danger */
.btn-danger,
.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle{
  background-color:#fff;
  border-color:var(--danger);
  color:var(--danger);
}
.btn-danger:hover{ background-color:var(--sun-bg); border-color:var(--danger); color:var(--danger); filter:none; }
.btn-danger:focus,.btn-danger.focus{ box-shadow:0 0 0 .2rem rgba(193,90,90,.25); }
.badge-danger{ background-color:var(--danger); }

/* フォーム: フォーカスリングを青→ライムへ */
.form-control:focus,
.custom-select:focus{
  border-color:var(--lime);
  box-shadow:0 0 0 .2rem var(--lime-soft);
}

/* nav-pills アクティブ: 近似ライム #d0de32 → 正 --lime */
.nav-pills .nav-item.show .nav-link,
.nav-pills .nav-link.active{
  background:var(--lime);
  color:var(--lime-text);
}

/* ============================================================
   外装（サイドバー/トップバー）クリーム化 — モック #132 準拠
   現状は歯科テーマ由来のダーク(#212527/#141618)。GD-0002 のクリーム系へ。
   ※ design-overrides は mp-custom の後に読込むため、同一セレクタで後勝ち。
     元定義が !important の箇所は !important で上書きする。
   ============================================================ */

/* サイドバー本体・ロゴ帯: 濃色 → クリーム＋右境界 */
.left-sidenav{
  background-color:var(--cream);
  border-right:2px solid var(--cream-line);
}
.topbar .topbar-left,
.enlarge-menu .topbar .topbar-left{
  background-color:var(--cream);
}

/* トップバー: 濃色 → 白＋下境界（#132） */
.navbar-custom{
  background:#fff;
  border-bottom:2px solid #EDEDE9;
}

/* メニュー項目: 文字 --cream-ink、アイコンも同色（active以外） */
.left-sidenav-menu li > a{ color:var(--cream-ink); }
.left-sidenav-menu li > a i{ color:var(--cream-ink); }
.left-sidenav-menu li > a span i{ color:var(--cream-ink); }
.left-sidenav-menu li ul li > a{ color:var(--cream-ink); }

/* ホバー: 青文字 → 微グレー背景＋濃文字（#132: rgba(32,31,32,.05)） */
.left-sidenav-menu li > a:hover,
.left-sidenav-menu li > a:hover i,
.left-sidenav-menu .text-muted{
  color:var(--ink) !important;
}
.left-sidenav-menu li > a:hover{ background:rgba(32,31,32,.05); border-radius:13px; }
.left-sidenav-menu li ul li > a:hover{ color:var(--ink); background:rgba(32,31,32,.05); border-radius:10px; }

/* アクティブ項目: 濃色地 → ライム地＋黒文字＋ライム影（#132 .nav-item.active） */
.left-sidenav-menu li.mm-active > a{
  background:var(--lime);
  color:var(--lime-text);
  border-radius:13px;
  box-shadow:0 6px 14px -6px rgba(206,220,0,.9);
}
.left-sidenav-menu li.mm-active > a i,
.left-sidenav-menu li.mm-active .nav-item.active a.nav-link.active,
.left-sidenav-menu li.mm-active .nav-item.active a.nav-link.active i{
  color:var(--lime-text);
}

/* トップバー上のアイコン/ハンバーガー: 白地に合わせ濃色へ */
.navbar-custom .nav-link{ color:var(--cream-ink); }
.button-menu-mobile{ color:var(--ink) !important; }
.notification-list .noti-icon{ color:var(--cream-ink); }
.navbar-custom .topbar-nav li.show .nav-link{ background:var(--cream); color:var(--ink); }
.navbar-custom .topbar-nav .text-muted{ color:var(--cream-ink) !important; }

/* トップバーのドロップダウン: ダーク → 白パネル＋濃文字 */
.dropdown-menu{ background-color:#fff; box-shadow:0 8px 26px rgba(40,40,30,.12); }
.dropdown-item,
.dropdown-menu .dropdown-item-text,
.dropdown-menu .dropdown-item .media h6,
.dropdown-menu .text-muted{ color:var(--cream-ink); }
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus,
.dropdown-menu .dropdown-item:hover .media h6,
.navbar-custom .topbar-nav .dropdown-item:hover i{
  background-color:var(--lime-soft);
  color:var(--ink);
}
.dropdown-divider{ border-top:1px solid var(--cream-line); }

/* パンくず: 青リンク → 濃文字（#132 crumb は素のink） */
.breadcrumb-item a{ color:var(--ink); }
.breadcrumb-item.active{ color:var(--cream-mute); }

/* ============================================================
   カード: 旧 Bootstrap .card を #132 クリームサイドバー版モック調へ。
   全画面共通で適用し、既存の"浮いた"カードを新デザインに揃える。
   （新規画面は <x-ds.card> 部品、既存画面はこの上書きで自動追従）
   ============================================================ */
.card{
  background:#fff;
  border:2px solid var(--border-soft);
  border-radius:20px;
  box-shadow:none;
}
.card > .card-header{
  background:#fff;
  border-bottom:2px solid #F3F3F0;
  padding:20px 26px;
}
.card > .card-header:first-child{
  border-top-left-radius:18px;
  border-top-right-radius:18px;
}
.card-header h1,.card-header h2,.card-header h3,.card-header h4,.card-header h5,.card-header h6{
  font-weight:800;
  color:var(--ink);
  margin-bottom:0;
}
.card > .card-body{ padding:26px; }
.card > .card-footer{
  background:#FAFAF8;
  border-top:2px solid #F3F3F0;
}
.card > .card-body:last-child,
.card > .card-footer:last-child{
  border-bottom-left-radius:18px;
  border-bottom-right-radius:18px;
}

/* ============================================================
   コンテンツ内テーブル共通: カード内のデータ表を #135 モック調へ統一。
   .dr-list / .table-striped 等を個別に書かず「カード内テーブル」を一括対象化。
   ※ シフト/給与の固定ヘッダ表(.fix_table / .sticky_table)は除外
     （table.dr-list.fix_table のような複合クラスも安全に除外される）。
   ============================================================ */
.card table:not(.fix_table):not(.sticky_table){ width:100%; border-collapse:collapse; margin-bottom:0; }
.card table:not(.fix_table):not(.sticky_table) thead th{
  text-align:left; font-size:12px; font-weight:800; color:#8A8A87;
  padding:14px 18px; background:#FAFAF8; border-top:none; border-bottom:2px solid #F0F0EC;
  white-space:nowrap;
}
.card table:not(.fix_table):not(.sticky_table) tbody td{
  padding:13px 18px; font-size:14px; font-weight:500; color:var(--ink);
  border-top:none; border-bottom:1px solid #F2F2EE; vertical-align:middle;
}
.card table:not(.fix_table):not(.sticky_table) tbody tr:last-child td{ border-bottom:none; }
.card table:not(.fix_table):not(.sticky_table) tbody tr{ background-color:transparent; }
.card table:not(.fix_table):not(.sticky_table) tbody tr:hover td{ background:#FCFDF4; }
.card table:not(.fix_table):not(.sticky_table) tbody tr.bg-light td{ background:#F7F7F4; color:#A6A6A2; }
.card table:not(.fix_table):not(.sticky_table) tbody tr.bg-light:hover td{ background:#F4F4F0; }
.card table:not(.fix_table):not(.sticky_table) .name{ font-weight:700; color:var(--ink); margin-bottom:0; }
.card table:not(.fix_table):not(.sticky_table) .kana{ font-size:12px; color:#9A9A97; margin-bottom:0; }

/* ============================================================
   ボタン色ハーモナイズ: 緑(success)/青(info)/青枠(outline) の"浮き"解消。
   ライムは差し色として primary のみ。success/info は白ゴーストへ。
   ============================================================ */
.btn-success,.btn-info,
.btn-success:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled):active,
.show>.btn-success.dropdown-toggle,.show>.btn-info.dropdown-toggle{
  background-color:#fff; border-color:#E0E0DC; color:#5F5F5C; box-shadow:none;
}
.btn-success:hover,.btn-info:hover{ background-color:#F4F4F0; border-color:#D3D3CE; color:#5F5F5C; }
.btn-success:focus,.btn-success.focus,.btn-info:focus,.btn-info.focus{ box-shadow:0 0 0 .2rem var(--lime-line); }
.badge-success,.badge-info{ background-color:var(--lime); color:var(--lime-text); }

/* アウトライン(詳細等): 青 → ライム枠 */
.btn-outline-primary{ color:var(--lime-ink); border-color:var(--lime); background-color:#fff; }
.btn-outline-primary:hover,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.show>.btn-outline-primary.dropdown-toggle{ background-color:var(--lime-soft); border-color:var(--lime); color:var(--lime-ink); }
.btn-outline-primary:focus,.btn-outline-primary.focus{ box-shadow:0 0 0 .2rem var(--lime-line); }

/* ============================================================
   未カバーの bootstrap ボタンも ds パレットへ
   （secondary=確定/戻る等, gray, dark=無効表示, warning=差戻, outline-*）
   原色(シアン/黄/紺/青灰)のまま残るのを防ぐ。
   ============================================================ */
.btn.btn-secondary,.btn.btn-gray,.btn.btn-dark,
.btn.btn-secondary:not(:disabled):not(.disabled):active,
.btn.btn-gray:not(:disabled):not(.disabled):active,
.btn.btn-dark:not(:disabled):not(.disabled):active{
  background-color:#6E6E6A; border-color:#6E6E6A; color:#fff !important; box-shadow:none;
}
.btn.btn-secondary:hover,.btn.btn-gray:hover,.btn.btn-dark:hover{ background-color:#5F5F5C; border-color:#5F5F5C; color:#fff !important; }
.btn.btn-secondary:focus,.btn.btn-gray:focus,.btn.btn-dark:focus{ box-shadow:0 0 0 .2rem rgba(122,122,122,.35); }

.btn.btn-warning,.btn.btn-warning:not(:disabled):not(.disabled):active{
  background-color:#E0A44A; border-color:#E0A44A; color:#fff !important; box-shadow:none;
}
.btn.btn-warning:hover{ background-color:#D3963C; border-color:#D3963C; color:#fff !important; }
.btn.btn-warning:focus{ box-shadow:0 0 0 .2rem rgba(224,164,74,.4); }

.btn-outline-secondary{ color:var(--gray); border-color:#D3D3CE; background-color:#fff; }
.btn-outline-secondary:hover,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{ background-color:#F4F4F0; border-color:#C9C9C3; color:var(--ink); }
.btn-outline-danger{ color:var(--danger); border-color:var(--danger); background-color:#fff; }
.btn-outline-danger:hover,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{ background-color:var(--danger); border-color:var(--danger); color:#fff; }
.badge-secondary,.badge-warning{ background-color:#6E6E6A; color:#fff; }

/* ============================================================
   ds ボタン形状(角丸・太字・余白)を bootstrap .btn にも適用。
   色だけでなく ds-btn と同じ丸み/太字にする。
   ============================================================ */
.btn{ border-radius:var(--radius-lg); font-weight:800; border-width:2px; transition:.15s; }
.btn:not(.btn-sm):not(.btn-lg):not(.btn-circle){ padding:.5rem 1.25rem; }
.btn-sm{ border-radius:var(--radius-sm); }
.btn-circle{ border-radius:50% !important; padding:0 !important; }
/* ゴースト danger は赤字（モックの削除ボタン準拠。基底 .btn の文字色に勝たせる） */
.btn.btn-danger,.btn.btn-danger:hover,.btn.btn-danger:focus{ color:var(--danger) !important; }
.btn.btn-outline-danger{ color:var(--danger) !important; }
/* 行削除の円形×ボタンは塗り赤＋白アイコンを維持（ゴースト化で×が白地に白=不可視になるのを防ぐ）。
   ラベル付き danger はゴースト、アイコン単体の円ボタンは塗り赤、と使い分け。 */
.btn-danger.btn-circle,.btn.btn-danger.btn-circle{ background-color:var(--danger) !important; border-color:var(--danger) !important; color:#fff !important; }
.btn-danger.btn-circle:hover{ filter:brightness(1.06); }

/* ============================================================
   追補: ボタン間延び補正・月/日付ネイティブ入力・ファイル選択のds化
   ============================================================ */
/* .btn の line-height を正規化（絶対値継承で縦に間延びするのを防ぐ） */
.btn{ line-height:1.5; }
.btn-sm{ line-height:1.4; }

/* 月/日付の native ピッカー（ds-input未指定のもの）を ds 風に */
input[type="month"]:not(.ds-input):not([readonly]),
input[type="date"]:not(.ds-input):not([readonly]){
  height:44px !important; padding:0 14px; border:2px solid var(--border); border-radius:12px;
  background:#fff; font-family:var(--font-base); font-size:15px; font-weight:600; color:var(--ink);
  outline:none; vertical-align:middle;
}
input[type="month"]:not(.ds-input):focus,
input[type="date"]:not(.ds-input):focus{ border-color:var(--lime); box-shadow:0 0 0 3px var(--lime-soft); }

/* ファイル選択: ds枠＋ネイティブ選択ボタンをライム化 */
input[type="file"].ds-input{ height:auto; padding:9px 12px; font-weight:600; line-height:1.5; cursor:pointer; }
input[type="file"].ds-input::file-selector-button,
input[type="file"].ds-input::-webkit-file-upload-button{
  margin-right:12px; padding:8px 16px; border:none; border-radius:9px;
  background:var(--lime); color:var(--lime-text); font-family:var(--font-base); font-weight:800; font-size:13px; cursor:pointer;
}
input[type="file"].ds-input:hover::file-selector-button,
input[type="file"].ds-input:hover::-webkit-file-upload-button{ filter:brightness(.97); }

/* ---- .ds-input の要素取り違えを吸収（#17557） ----
   .ds-input は本来テキスト入力専用で height:54px / padding:0 16px / width:100% を持つ。
   刷新の過程で textarea・checkbox・radio にも一律で付けられており、そのままでは寸法が壊れる。
   Blade 側 103 箇所を書き換える代わりに、上の input[type="file"] と同じ方式でここで吸収する。 */

/* textarea: 高さ固定と上下padding 0 を解除し rows を効かせる（自動伸縮はしない）。
   既存の rows は 2 が大半で実用に足りないため、下限を 4 行ぶんに引き上げる。
   4行 = 16px × 1.7 × 4 = 108.8px、これに上下padding 24px と枠 4px を足して 137px。
   上下padding は 14px だと初期表示で 2 行しか見えなかったため 12px に詰める。 */
textarea.ds-input{
  height:auto; min-height:137px; padding:12px 16px; line-height:1.7; resize:vertical;
}

/* checkbox / radio: 幅100%・高さ54px・枠が効いて巨大な四角になるため寸法を戻す。
   ネイティブ既定(13px)も ds 標準の 19px も一覧グリッド内では押しにくかったため 28px にする。
   利用者のリテラシーに配慮して操作対象を大きく取る方針（顧客要望）。 */
input[type="checkbox"].ds-input,
input[type="radio"].ds-input{
  width:28px; height:28px; min-width:28px; padding:0; border:none; border-radius:0; background:none;
  accent-color:var(--lime-ink); cursor:pointer; vertical-align:middle;
}
input[type="checkbox"].ds-input:focus,
input[type="radio"].ds-input:focus{ border:none; box-shadow:none; outline:2px solid var(--lime); outline-offset:1px; }
input[type="checkbox"].ds-input:disabled,
input[type="radio"].ds-input:disabled{ cursor:not-allowed; }

/* select: 本来は .ds-select だが、これは .ds-select-wrap + <i> のラッパー前提の実装。
   ラッパー無しで .ds-input が付いた select が 155 箇所あり、標準の三角矢印のままになる。
   <i> の代わりに背景画像でシェブロンを描き、ラッパー不要で .ds-select と同じ見た目にする。
   ※データURI 内では CSS 変数を使えないため、シェブロンの色のみ --lime-ink の実値(#9CAA00)を直書き。 */
select.ds-input{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding-right:44px; cursor:pointer; background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%239CAA00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:13px 9px;
}
select.ds-input::-ms-expand{ display:none; }
select.ds-input:disabled{ cursor:not-allowed; opacity:.65; }
