/*
 * CINCIN 테마 — Spike 템플릿 위에 한 겹.
 *
 * `assets/css/styles.css` **뒤에** 실어야 합니다(두 레이아웃의 <head> 참고).
 * 템플릿 파일은 손대지 않습니다 — 갱신할 때 통째로 갈아 끼울 수 있어야 합니다.
 *
 * 왜:
 *  1) 관리 화면이 아직 **템플릿 파랑(#0085db)** 이었습니다. 앱 아이콘 · 웹 파비콘 ·
 *     관리 로고를 브랜드 분홍으로 맞춰 놓고(#163 · #164 · #165) 화면은 파랑이라,
 *     같은 서비스로 보이지 않았습니다.
 *  2) 색 대비가 규격에 못 미쳤습니다. 브라우저에서 잰 값입니다:
 *
 *       파란 단추 위 흰 글자      3.90   (AA 4.5 미달)
 *       .text-muted (흰 바탕)     2.81   ← rgba(112,122,130,.75) 라 더 연해짐
 *       본문 #707A82              4.38
 *       danger  #FB977D           2.14
 *       success #4BD08B           1.96
 *       warning #F8C076           1.64
 *       secondary #46CAEB         1.93
 *
 * 고르는 규칙: **흰색 대비 4.5 이상**인 값만 씁니다. 그러면 한 값으로 두 쓰임이 다 됩니다 —
 * 흰 바탕의 글자색으로도, 흰 글자를 이는 채움색으로도. (둘 다 흰색과의 대비를 보는 것이라
 * 조건이 같습니다.) 값은 시안 `app.css` 의 토큰에서 가져왔습니다.
 *
 * 어두운 테마는 **글자 쓰임만 따로** 둡니다. 위 값들은 어두운 바탕 위 글자로는 2.5~3.5 라
 * 미달이지만, 채움색으로는 그대로 써도 됩니다(흰 글자와의 대비는 바탕과 무관).
 */

/* ──────────────────────────────────────────────────────────────────────────
 * 1. 테마 색 — 템플릿이 색 테마를 꽂는 자리와 같은 꼴로.
 *    두 레이아웃의 <html data-color-theme="CINCIN_Theme"> 와 짝입니다.
 * ────────────────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"][data-color-theme="CINCIN_Theme"]:root,
[data-bs-theme="light"][data-color-theme="CINCIN_Theme"]:root {
  /* 브랜드 분홍. 시안 --color-primary-ink. 흰색 대비 4.98 */
  --bs-primary: #c23b7d;
  --bs-primary-rgb: 194, 59, 125;
  --bs-light-primary: rgba(194, 59, 125, 0.1);
  --bs-primary-bg-subtle: rgba(194, 59, 125, 0.1);

  /* 보조. 시안 --color-accent-ink. 흰색 대비 6.15 */
  --bs-secondary: #6d3ee0;
  --bs-secondary-rgb: 109, 62, 224;
  --bs-light-secondary: rgba(109, 62, 224, 0.1);
  --bs-secondary-bg-subtle: rgba(109, 62, 224, 0.1);
}

/* 템플릿은 채운 단추 색을 테마별로 **하드코딩**합니다(변수를 안 봅니다).
   그래서 같은 자리에 우리 것을 둡니다. */
[data-bs-theme="dark"][data-color-theme="CINCIN_Theme"]:root .btn-primary,
[data-bs-theme="light"][data-color-theme="CINCIN_Theme"]:root .btn-primary {
  --bs-btn-bg: #c23b7d;
  --bs-btn-border-color: #c23b7d;
  --bs-btn-hover-bg: #a83069;
  --bs-btn-hover-border-color: #a83069;
  --bs-btn-active-bg: #8f2958;
  --bs-btn-active-border-color: #8f2958;
  --bs-btn-disabled-bg: #c23b7d;
  --bs-btn-disabled-border-color: #c23b7d;
}

[data-bs-theme="dark"][data-color-theme="CINCIN_Theme"]:root .btn-secondary,
[data-bs-theme="light"][data-color-theme="CINCIN_Theme"]:root .btn-secondary {
  --bs-btn-bg: #6d3ee0;
  --bs-btn-border-color: #6d3ee0;
  --bs-btn-hover-bg: #5c31c4;
  --bs-btn-hover-border-color: #5c31c4;
  --bs-btn-active-bg: #4e29a6;
  --bs-btn-active-border-color: #4e29a6;
  --bs-btn-disabled-bg: #6d3ee0;
  --bs-btn-disabled-border-color: #6d3ee0;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 2. 갈래 색 — 전부 흰색 대비 4.5 이상으로.
 *    템플릿 값은 파스텔이라 글자로도 채움으로도 못 썼습니다.
 * ────────────────────────────────────────────────────────────────────────── */
:root,
[data-bs-theme="light"] {
  --bs-success: #15803d; /* 시안 --color-online · 5.02 */
  --bs-success-rgb: 21, 128, 61;
  --bs-success-bg-subtle: rgba(21, 128, 61, 0.1);
  --bs-light-success: rgba(21, 128, 61, 0.1);

  --bs-danger: #dc2626; /* 시안 --color-destructive · 4.83 */
  --bs-danger-rgb: 220, 38, 38;
  --bs-danger-bg-subtle: rgba(220, 38, 38, 0.1);
  --bs-light-danger: rgba(220, 38, 38, 0.1);

  --bs-warning: #a16207; /* 앱 waitInk · 4.92 */
  --bs-warning-rgb: 161, 98, 7;
  --bs-warning-bg-subtle: rgba(161, 98, 7, 0.1);
  --bs-light-warning: rgba(161, 98, 7, 0.1);

  --bs-info: #0b6478; /* 6.76 */
  --bs-info-rgb: 11, 100, 120;
  --bs-info-bg-subtle: rgba(11, 100, 120, 0.1);
  --bs-light-info: rgba(11, 100, 120, 0.1);

  /* 본문. 템플릿의 차가운 회색 계열을 지키되 읽히는 선까지 — 4.38 → 6.03 */
  --bs-body-color: #5a646e;
  --bs-body-color-rgb: 90, 100, 110;

  /* 보조 글자. 템플릿은 본문색에 알파 .75 를 걸어 2.81 이었습니다 — 알파를 걷고
     본문보다 한 단계만 연한 **단색**으로. 4.90.
     `.text-muted` 가 이 변수를 그대로 씁니다. */
  --bs-secondary-color: #68727b;
  --bs-tertiary-color: #7d8791;

  /* 초점 테두리도 브랜드색으로 — 파랑이 남아 있었습니다 */
  --bs-focus-ring-color: rgba(194, 59, 125, 0.3);
  --bs-link-hover-color: #c23b7d;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 3. 어두운 테마 — **글자로 쓰는 자리만** 밝은 짝으로.
 *    채움색(단추·배지)은 위 값 그대로 둡니다: 흰 글자와의 대비는 페이지 바탕과
 *    무관해서, 밝은 테마와 같은 색이라야 두 테마의 단추가 같아 보입니다.
 *    아래 값은 어두운 바탕(#111C2D) 위에서 5.8~9.0 입니다.
 * ────────────────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] {
  /* 본문을 여기서 **다시** 정합니다. 위 `:root` 값은 밝은 바탕을 전제한 어두운 회색이라
     어두운 테마로 새면 2.84 가 됩니다. 덧붙여 템플릿 원래값(#707A82)도 어두운 바탕에서
     3.91 로 이미 미달이었습니다 — 여기서 같이 고칩니다. #AEB8C2 는 8.50. */
  --bs-body-color: #aeb8c2;
  --bs-body-color-rgb: 174, 184, 194;
  --bs-secondary-color: #9aa4ad; /* 6.75 — 본문보다 한 단계 흐리게 */
  --bs-tertiary-color: #7d8791;
  --bs-focus-ring-color: rgba(240, 127, 176, 0.35);
  --bs-link-hover-color: #f07fb0;
}

[data-bs-theme="dark"] .text-primary {
  color: #f07fb0 !important;
}
[data-bs-theme="dark"] .text-secondary {
  color: #b69bf5 !important;
}
[data-bs-theme="dark"] .text-success {
  color: #5cc98a !important;
}
[data-bs-theme="dark"] .text-danger {
  color: #f58272 !important;
}
[data-bs-theme="dark"] .text-warning {
  color: #e8b44a !important;
}
[data-bs-theme="dark"] .text-info {
  color: #5eb8d8 !important;
}

/* 테두리만 있는 단추도 글자가 곧 색입니다 — 어두운 테마에서는 밝은 짝으로. */
[data-bs-theme="dark"] .btn-outline-primary {
  --bs-btn-color: #f07fb0;
  --bs-btn-border-color: #f07fb0;
  --bs-btn-hover-bg: #c23b7d;
  --bs-btn-hover-border-color: #c23b7d;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 4. 템플릿이 파랑을 하드코딩한 부품들.
 *    전부 부트스트랩 부품 변수를 박아 둔 자리라, 같은 변수를 다시 정합니다.
 * ────────────────────────────────────────────────────────────────────────── */
.btn-outline-primary {
  --bs-btn-color: #c23b7d;
  --bs-btn-border-color: #c23b7d;
  --bs-btn-hover-bg: #c23b7d;
  --bs-btn-hover-border-color: #c23b7d;
  --bs-btn-active-bg: #a83069;
  --bs-btn-active-border-color: #a83069;
  --bs-btn-disabled-color: #c23b7d;
  --bs-btn-disabled-border-color: #c23b7d;
}

.nav-pills {
  --bs-nav-pills-link-active-bg: #c23b7d;
}

.nav-tabs {
  --bs-nav-tabs-link-active-color: #c23b7d;
  --bs-nav-tabs-link-active-border-color: #c23b7d;
}

.list-group {
  --bs-list-group-active-bg: #c23b7d;
  --bs-list-group-active-border-color: #c23b7d;
  --bs-list-group-action-active-bg: rgba(194, 59, 125, 0.1);
}

.pagination {
  --bs-pagination-active-bg: #c23b7d;
  --bs-pagination-active-border-color: #c23b7d;
  --bs-pagination-hover-color: #c23b7d;
  --bs-pagination-focus-color: #c23b7d;
}

.progress,
.progress-stacked {
  --bs-progress-bar-bg: #c23b7d;
}

/* 고른 체크상자 · 라디오 · 슬라이더 손잡이 */
.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
  background-color: #c23b7d;
  border-color: #c23b7d;
}
.form-range::-webkit-slider-thumb {
  background-color: #c23b7d;
}
.form-range::-moz-range-thumb {
  background-color: #c23b7d;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 5. 배지 · 안내박스.
 *    AdminLayout 의 인라인 <style> 에 있던 것을 여기로 모았습니다 — 색을 정하는
 *    자리가 둘이면 어느 쪽이 맞는지 물을 기준이 없어집니다.
 *
 *    **채운 배지는 이제 덧댈 것이 없습니다.** 옛 팔레트에서는 흰 글자가
 *    bg-success 위 1.96 · bg-danger 위 2.14 였는데, 위에서 갈래 색을 바꾸며
 *    4.83~6.76 이 되었습니다. 그때 쓰던 덧댐(배지만 어둡게)은 지웁니다 —
 *    특히 `.badge.bg-primary` 를 파랑으로 못 박아 두고 있어서, 남기면 배지만
 *    파랗게 남습니다.
 *
 *    **옅은 배지(`bg-*-subtle`)는 아직 모자랍니다.** 바탕이 그 색의 10% 라
 *    글자를 같은 색으로 두면 4.14~4.39 입니다. 글자만 한 단계 진하게 해
 *    5.2~5.8 로 올립니다. 배지는 10px 로 쓰이는 자리가 많아 더 필요합니다.
 * ────────────────────────────────────────────────────────────────────────── */
.badge.bg-primary-subtle { color: #a83069 !important; }   /* 5.54 */
.badge.bg-secondary-subtle { color: #6d3ee0 !important; } /* 5.30 */
.badge.bg-success-subtle { color: #0f6b32 !important; }   /* 5.79 */
.badge.bg-danger-subtle { color: #c01f1f !important; }    /* 5.20 */
.badge.bg-warning-subtle { color: #8a5406 !important; }   /* 5.50 */
.badge.bg-info-subtle { color: #0b6478 !important; }      /* 5.81 */
/* 옅은 회색 배지는 보조 이름표라 먹까지 내리지 않고, 읽히는 선까지만. */
.badge.bg-light-subtle { color: #4a5568 !important; }

/*
 * 안내박스는 바탕만 갈래별로 옅게 칠하고 글자는 무채색 보조색으로 두어 3.87~4.26
 * 이었습니다(`alert-light` 는 1.10 으로 사실상 안 보였습니다). 갈래는 바탕이 말하고
 * 있으니 글자는 읽히게만 둡니다 — 먹으로 되돌립니다. 새 팔레트에서 10.6 이상입니다.
 */
.alert { color: #2a3547; }

/* 어두운 테마에서는 같은 먹이 바탕에 묻힙니다. */
[data-bs-theme="dark"] .alert { color: #e3e7ec; }

/* ──────────────────────────────────────────────────────────────────────────
 * 6. 색을 직접 박아 둔 나머지 자리들.
 *    위의 변수만으로는 안 바뀌는 곳입니다 — 대시보드에서 재고 찾은 것들입니다.
 * ────────────────────────────────────────────────────────────────────────── */

/* 카드 부제는 옛 본문색(#707A82)을 그대로 박아 두어 4.38 이었습니다.
   보조 글자 변수로 돌려 4.90. */
.card-subtitle {
  color: var(--bs-secondary-color) !important;
}

/* 차트 범례는 그래프 라이브러리가 #7C8FAC 로 그립니다 — 3.29.
   「들어온 예약 / 이용완료」처럼 그래프를 읽는 데 필요한 글자입니다. */
.apexcharts-legend-text,
.apexcharts-xaxis-label,
.apexcharts-yaxis-label {
  fill: #68727b !important;
  color: #68727b !important;
}

/* 지표 숫자에 쓰는 남보라 — 4.35 라 한 뼘 모자랍니다. 같은 색조로 진하게, 6.13. */
.text-indigo {
  color: #6f46cc !important;
}

/*
 * 옅은 바탕 위의 같은 색 글자.
 *
 * `bg-*-subtle` 는 그 색의 10% 라 흰색보다 살짝 어둡습니다. 글자를 같은 색으로 두면
 * 4.14~4.39 로 조금씩 모자랍니다(얼굴칸의 머리글자 · 이름표가 이 짝입니다).
 * 배지에 쓴 것과 같은, 한 단계 진한 값으로 5.2~5.8 까지 올립니다.
 */
.bg-primary-subtle.text-primary,
.bg-primary-subtle .text-primary { color: #a83069 !important; }
.bg-success-subtle.text-success,
.bg-success-subtle .text-success { color: #0f6b32 !important; }
.bg-danger-subtle.text-danger,
.bg-danger-subtle .text-danger { color: #c01f1f !important; }
.bg-warning-subtle.text-warning,
.bg-warning-subtle .text-warning { color: #8a5406 !important; }

/* 어두운 테마에서는 위 셋이 반대로 묻힙니다 — 3 절의 밝은 짝을 그대로 씁니다. */
[data-bs-theme="dark"] .card-subtitle { color: var(--bs-secondary-color) !important; }
[data-bs-theme="dark"] .text-indigo { color: #b69bf5 !important; }
[data-bs-theme="dark"] .apexcharts-legend-text,
[data-bs-theme="dark"] .apexcharts-xaxis-label,
[data-bs-theme="dark"] .apexcharts-yaxis-label {
  fill: #9aa4ad !important;
  color: #9aa4ad !important;
}
[data-bs-theme="dark"] .bg-primary-subtle.text-primary,
[data-bs-theme="dark"] .bg-primary-subtle .text-primary { color: #f07fb0 !important; }
[data-bs-theme="dark"] .bg-success-subtle.text-success,
[data-bs-theme="dark"] .bg-success-subtle .text-success { color: #5cc98a !important; }
[data-bs-theme="dark"] .bg-danger-subtle.text-danger,
[data-bs-theme="dark"] .bg-danger-subtle .text-danger { color: #f58272 !important; }
[data-bs-theme="dark"] .bg-warning-subtle.text-warning,
[data-bs-theme="dark"] .bg-warning-subtle .text-warning { color: #e8b44a !important; }

/* ──────────────────────────────────────────────────────────────────────────
 * 7. 나머지 갈래 단추.
 *    `.btn-*` · `.btn-outline-*` 는 갈래마다 색을 **직접 박아** 둡니다(변수를 안 봅니다).
 *    4 절에서 primary 만 고쳤더니 회원 명부의 쪽 넘김 단추가 옛 청록(1.93)으로
 *    남아 있었습니다 — 나머지 넷도 같이 맞춥니다.
 *    채움은 흰 글자 기준 4.83~6.76, 테두리는 흰 바탕 글자 기준 같은 값입니다.
 *    hover 는 12%, active 는 24% 어둡게 — 갈래마다 같은 규칙으로 냈습니다.
 * ────────────────────────────────────────────────────────────────────────── */

/* 나머지 갈래 단추 — 템플릿이 파스텔을 박아 둔 자리. 채움은 흰 글자 기준 4.8~6.8 */

.btn-success {
  --bs-btn-bg: #15803d;
  --bs-btn-border-color: #15803d;
  --bs-btn-hover-bg: #127136;
  --bs-btn-hover-border-color: #127136;
  --bs-btn-active-bg: #10612e;
  --bs-btn-active-border-color: #10612e;
  --bs-btn-disabled-bg: #15803d;
  --bs-btn-disabled-border-color: #15803d;
}

.btn-outline-success {
  --bs-btn-color: #15803d;
  --bs-btn-border-color: #15803d;
  --bs-btn-hover-bg: #15803d;
  --bs-btn-hover-border-color: #15803d;
  --bs-btn-active-bg: #10612e;
  --bs-btn-active-border-color: #10612e;
  --bs-btn-disabled-color: #15803d;
  --bs-btn-disabled-border-color: #15803d;
}

.btn-danger {
  --bs-btn-bg: #dc2626;
  --bs-btn-border-color: #dc2626;
  --bs-btn-hover-bg: #c42020;
  --bs-btn-hover-border-color: #c42020;
  --bs-btn-active-bg: #a91b1b;
  --bs-btn-active-border-color: #a91b1b;
  --bs-btn-disabled-bg: #dc2626;
  --bs-btn-disabled-border-color: #dc2626;
}

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

.btn-warning {
  --bs-btn-bg: #a16207;
  --bs-btn-border-color: #a16207;
  --bs-btn-hover-bg: #8e5606;
  --bs-btn-hover-border-color: #8e5606;
  --bs-btn-active-bg: #7a4a05;
  --bs-btn-active-border-color: #7a4a05;
  --bs-btn-disabled-bg: #a16207;
  --bs-btn-disabled-border-color: #a16207;
}

.btn-outline-warning {
  --bs-btn-color: #a16207;
  --bs-btn-border-color: #a16207;
  --bs-btn-hover-bg: #a16207;
  --bs-btn-hover-border-color: #a16207;
  --bs-btn-active-bg: #7a4a05;
  --bs-btn-active-border-color: #7a4a05;
  --bs-btn-disabled-color: #a16207;
  --bs-btn-disabled-border-color: #a16207;
}

.btn-info {
  --bs-btn-bg: #0b6478;
  --bs-btn-border-color: #0b6478;
  --bs-btn-hover-bg: #0a586a;
  --bs-btn-hover-border-color: #0a586a;
  --bs-btn-active-bg: #084c5b;
  --bs-btn-active-border-color: #084c5b;
  --bs-btn-disabled-bg: #0b6478;
  --bs-btn-disabled-border-color: #0b6478;
}

.btn-outline-info {
  --bs-btn-color: #0b6478;
  --bs-btn-border-color: #0b6478;
  --bs-btn-hover-bg: #0b6478;
  --bs-btn-hover-border-color: #0b6478;
  --bs-btn-active-bg: #084c5b;
  --bs-btn-active-border-color: #084c5b;
  --bs-btn-disabled-color: #0b6478;
  --bs-btn-disabled-border-color: #0b6478;
}

.btn-outline-secondary {
  --bs-btn-color: #6d3ee0;
  --bs-btn-border-color: #6d3ee0;
  --bs-btn-hover-bg: #6d3ee0;
  --bs-btn-hover-border-color: #6d3ee0;
  --bs-btn-active-bg: #4e29a6;
  --bs-btn-active-border-color: #4e29a6;
  --bs-btn-disabled-color: #6d3ee0;
  --bs-btn-disabled-border-color: #6d3ee0;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 8. 어두운 테마에서 남은 자리.
 *    5·6 절의 덧댐은 **밝은 바탕을 전제한 진한 색**이라, 어두운 테마에서는 그대로
 *    묻힙니다(2.36~3.36). 같은 자리에 3 절의 밝은 짝을 물립니다.
 * ────────────────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .badge.bg-primary-subtle { color: #f07fb0 !important; }   /* 6.34 */
[data-bs-theme="dark"] .badge.bg-secondary-subtle { color: #b69bf5 !important; } /* 6.83 */
[data-bs-theme="dark"] .badge.bg-success-subtle { color: #5cc98a !important; }   /* 7.58 */
[data-bs-theme="dark"] .badge.bg-danger-subtle { color: #f58272 !important; }    /* 6.44 */
[data-bs-theme="dark"] .badge.bg-warning-subtle { color: #e8b44a !important; }   /* 8.30 */
[data-bs-theme="dark"] .badge.bg-info-subtle { color: #5eb8d8 !important; }      /* 7.08 */
[data-bs-theme="dark"] .badge.bg-light-subtle { color: #c6cdd5 !important; }

[data-bs-theme="dark"] .bg-info-subtle.text-info,
[data-bs-theme="dark"] .bg-info-subtle .text-info { color: #5eb8d8 !important; }
[data-bs-theme="dark"] .bg-secondary-subtle.text-secondary,
[data-bs-theme="dark"] .bg-secondary-subtle .text-secondary { color: #b69bf5 !important; }


/* ──────────────────────────────────────────────────────────────────────────
 * 9. 어두운 테마 — 글자가 곧 색인 나머지 부품들.
 *    `.link-*` · 테두리 단추 · 켠 메뉴 이름표는 전부 갈래색을 **글자**로 씁니다.
 *    밝은 테마용 진한 값이 어두운 바탕에서 2.78~3.54 라, 3 절의 밝은 짝으로 바꿉니다.
 *    (테두리와 채움은 그대로 둡니다 — 어두운 바탕에서도 형태는 보입니다.)
 * ────────────────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .link-primary {
  color: #f07fb0 !important;
  --bs-link-color-rgb: initial;
}
[data-bs-theme="dark"] .link-secondary {
  color: #b69bf5 !important;
  --bs-link-color-rgb: initial;
}
[data-bs-theme="dark"] .link-success {
  color: #5cc98a !important;
  --bs-link-color-rgb: initial;
}
[data-bs-theme="dark"] .link-danger {
  color: #f58272 !important;
  --bs-link-color-rgb: initial;
}
[data-bs-theme="dark"] .link-warning {
  color: #e8b44a !important;
  --bs-link-color-rgb: initial;
}
[data-bs-theme="dark"] .link-info {
  color: #5eb8d8 !important;
  --bs-link-color-rgb: initial;
}
[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: #b69bf5;
  --bs-btn-border-color: #b69bf5;
  --bs-btn-hover-bg: #6d3ee0;
  --bs-btn-hover-border-color: #6d3ee0;
}
[data-bs-theme="dark"] .btn-outline-success {
  --bs-btn-color: #5cc98a;
  --bs-btn-border-color: #5cc98a;
  --bs-btn-hover-bg: #15803d;
  --bs-btn-hover-border-color: #15803d;
}
[data-bs-theme="dark"] .btn-outline-danger {
  --bs-btn-color: #f58272;
  --bs-btn-border-color: #f58272;
  --bs-btn-hover-bg: #dc2626;
  --bs-btn-hover-border-color: #dc2626;
}
[data-bs-theme="dark"] .btn-outline-warning {
  --bs-btn-color: #e8b44a;
  --bs-btn-border-color: #e8b44a;
  --bs-btn-hover-bg: #a16207;
  --bs-btn-hover-border-color: #a16207;
}
[data-bs-theme="dark"] .btn-outline-info {
  --bs-btn-color: #5eb8d8;
  --bs-btn-border-color: #5eb8d8;
  --bs-btn-hover-bg: #0b6478;
  --bs-btn-hover-border-color: #0b6478;
}
/* 켠 메뉴 이름표 — 갈래마다 다른 색 그룹을 씁니다. */
[data-bs-theme="dark"] .primary-hover-bg:hover .aside-icon,
[data-bs-theme="dark"] .primary-hover-bg:hover .hide-menu,
[data-bs-theme="dark"] .sidebar-item .primary-hover-bg.active .aside-icon,
[data-bs-theme="dark"] .sidebar-item .primary-hover-bg.active .hide-menu,
[data-bs-theme="dark"] .sidebar-item.selected .primary-hover-bg .aside-icon,
[data-bs-theme="dark"] .sidebar-item.selected .primary-hover-bg .hide-menu {
  color: #f07fb0 !important;
}

[data-bs-theme="dark"] .secondary-hover-bg:hover .aside-icon,
[data-bs-theme="dark"] .secondary-hover-bg:hover .hide-menu,
[data-bs-theme="dark"] .sidebar-item .secondary-hover-bg.active .aside-icon,
[data-bs-theme="dark"] .sidebar-item .secondary-hover-bg.active .hide-menu,
[data-bs-theme="dark"] .sidebar-item.selected .secondary-hover-bg .aside-icon,
[data-bs-theme="dark"] .sidebar-item.selected .secondary-hover-bg .hide-menu {
  color: #b69bf5 !important;
}

[data-bs-theme="dark"] .success-hover-bg:hover .aside-icon,
[data-bs-theme="dark"] .success-hover-bg:hover .hide-menu,
[data-bs-theme="dark"] .sidebar-item .success-hover-bg.active .aside-icon,
[data-bs-theme="dark"] .sidebar-item .success-hover-bg.active .hide-menu,
[data-bs-theme="dark"] .sidebar-item.selected .success-hover-bg .aside-icon,
[data-bs-theme="dark"] .sidebar-item.selected .success-hover-bg .hide-menu {
  color: #5cc98a !important;
}

[data-bs-theme="dark"] .danger-hover-bg:hover .aside-icon,
[data-bs-theme="dark"] .danger-hover-bg:hover .hide-menu,
[data-bs-theme="dark"] .sidebar-item .danger-hover-bg.active .aside-icon,
[data-bs-theme="dark"] .sidebar-item .danger-hover-bg.active .hide-menu,
[data-bs-theme="dark"] .sidebar-item.selected .danger-hover-bg .aside-icon,
[data-bs-theme="dark"] .sidebar-item.selected .danger-hover-bg .hide-menu {
  color: #f58272 !important;
}

[data-bs-theme="dark"] .warning-hover-bg:hover .aside-icon,
[data-bs-theme="dark"] .warning-hover-bg:hover .hide-menu,
[data-bs-theme="dark"] .sidebar-item .warning-hover-bg.active .aside-icon,
[data-bs-theme="dark"] .sidebar-item .warning-hover-bg.active .hide-menu,
[data-bs-theme="dark"] .sidebar-item.selected .warning-hover-bg .aside-icon,
[data-bs-theme="dark"] .sidebar-item.selected .warning-hover-bg .hide-menu {
  color: #e8b44a !important;
}

[data-bs-theme="dark"] .info-hover-bg:hover .aside-icon,
[data-bs-theme="dark"] .info-hover-bg:hover .hide-menu,
[data-bs-theme="dark"] .sidebar-item .info-hover-bg.active .aside-icon,
[data-bs-theme="dark"] .sidebar-item .info-hover-bg.active .hide-menu,
[data-bs-theme="dark"] .sidebar-item.selected .info-hover-bg .aside-icon,
[data-bs-theme="dark"] .sidebar-item.selected .info-hover-bg .hide-menu {
  color: #5eb8d8 !important;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 10. 어두운 테마의 **비활성** 테두리 단추.
 *
 *     규격은 비활성 부품의 대비를 따지지 않습니다(WCAG 1.4.3 예외). 그런데 이 화면들에서
 *     비활성 테두리 단추는 **누를 수 없는 단추가 아니라 지금 값을 알려 주는 라벨**로
 *     쓰입니다 — 회원 명부의 「1 / 7」(지금 쪽), 정산의 「2026년 9월」(지금 달).
 *     읽어야 하는 글자라 2.78 로 둘 수 없습니다.
 * ────────────────────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .btn-outline-primary {
  --bs-btn-disabled-color: #f07fb0;
  --bs-btn-disabled-border-color: #f07fb0;
}
[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-disabled-color: #b69bf5;
  --bs-btn-disabled-border-color: #b69bf5;
}
[data-bs-theme="dark"] .btn-outline-success {
  --bs-btn-disabled-color: #5cc98a;
  --bs-btn-disabled-border-color: #5cc98a;
}
[data-bs-theme="dark"] .btn-outline-danger {
  --bs-btn-disabled-color: #f58272;
  --bs-btn-disabled-border-color: #f58272;
}
[data-bs-theme="dark"] .btn-outline-warning {
  --bs-btn-disabled-color: #e8b44a;
  --bs-btn-disabled-border-color: #e8b44a;
}
[data-bs-theme="dark"] .btn-outline-info {
  --bs-btn-disabled-color: #5eb8d8;
  --bs-btn-disabled-border-color: #5eb8d8;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 11. 키보드로 쓸 때 — **지금 어디에 있는지 보이게.**
 *
 *     브라우저에서 재 보니 글상자는 초점을 받아도 **아무것도 바뀌지 않았습니다** —
 *     테두리색 · 그림자 · 외곽선이 모두 그대로였습니다. 템플릿이 `.form-control:focus`
 *     등에 `outline: 0` 을 걸고 대신 줄 표시를 두지 않았기 때문입니다
 *     (`.form-check-input:focus` 는 `box-shadow: unset` 까지).
 *     나머지 요소도 브라우저 기본 테두리(1px auto)만 나왔습니다.
 *
 *     외곽선(outline)으로 그립니다 — 그림자와 달리 `overflow: hidden` 인 조상에
 *     잘리지 않고, 표 안의 단추에서도 온전히 보입니다. 2px 를 2px 띄워 그려
 *     **단추 자신의 색과 섞이지 않게** 합니다(분홍 단추 위의 분홍 테두리는 안 보입니다 —
 *     띄운 자리는 페이지 바탕이라 4.98 로 읽힙니다).
 *
 *     `:focus-visible` 이라 마우스로 누를 때는 나오지 않습니다. 다만 글상자는
 *     마우스로 눌러도 규격상 `:focus-visible` 에 들어가, 「지금 치는 칸」 표시도 같이 됩니다.
 * ────────────────────────────────────────────────────────────────────────── */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.btn:focus-visible,
.nav-link:focus-visible,
.page-link:focus-visible,
.dropdown-item:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible,
.form-range:focus-visible {
  outline: 2px solid #c23b7d;
  outline-offset: 2px;
}

[data-bs-theme="dark"] a:focus-visible,
[data-bs-theme="dark"] button:focus-visible,
[data-bs-theme="dark"] summary:focus-visible,
[data-bs-theme="dark"] [role="button"]:focus-visible,
[data-bs-theme="dark"] [tabindex]:not([tabindex="-1"]):focus-visible,
[data-bs-theme="dark"] .btn:focus-visible,
[data-bs-theme="dark"] .nav-link:focus-visible,
[data-bs-theme="dark"] .page-link:focus-visible,
[data-bs-theme="dark"] .dropdown-item:focus-visible,
[data-bs-theme="dark"] .form-control:focus-visible,
[data-bs-theme="dark"] .form-select:focus-visible,
[data-bs-theme="dark"] .form-check-input:focus-visible,
[data-bs-theme="dark"] .form-range:focus-visible {
  outline-color: #f07fb0; /* 어두운 바탕에서 6.82 */
}

/* 본문으로 건너뛰기 — 평소에는 화면 밖, 초점을 받으면 왼쪽 위에.
   `display:none` 으로 숨기면 초점을 못 받아 아무 소용이 없습니다. */
.cincin-skip {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2000;
  transform: translateY(-120%);
  background: #c23b7d;
  color: #fff;
  padding: 10px 16px;
  border-radius: 0 0 8px 0;
  font-weight: 600;
  text-decoration: none;
}
.cincin-skip:focus {
  transform: translateY(0);
}
/* 건너뛴 자리에 초점이 갔을 때 페이지 전체가 테두리를 두르지 않게 */
#cincin-main:focus {
  outline: none;
}

/* ──────────────────────────────────────────────────────────────────────────
 * 12. 표의 숫자는 자릿수를 맞춰 세로로 줄이 서게.
 *
 *     돈 칸은 이미 오른쪽 정렬이었지만(정산의 「판매가」 · 「수수료」), 글꼴이 숫자마다
 *     폭이 달라 자릿수가 어긋났습니다. `tabular-nums` 로 폭을 고정하면 금액을 위아래로
 *     훑을 때 자리가 맞습니다. 손님 앱도 값에 같은 규칙을 씁니다(`T.price` 의 tabular).
 *     표 전체에 겁니다 — 날짜 · 건수 · 번호도 같은 이유로 줄이 서야 합니다.
 * ────────────────────────────────────────────────────────────────────────── */
.table,
table {
  font-variant-numeric: tabular-nums;
}
