/* =====================================================================
   krds-compat-debc.css — DEBC 전용 KRDS 호환 보강 레이어 (ROADMAP R6)
   ---------------------------------------------------------------------
   왜 별도 파일인가
    · `krds-compat.css` 는 선례 프로젝트(cms-admin-boot)에서 그대로 가져온 원본이다.
      나중에 선례가 갱신될 때 diff 로 대조할 수 있도록 **원본을 손대지 않고** 이 파일에서 보강한다.
    · 선례는 템플릿을 KRDS 네이티브 마크업(krds-btn·tbl·krds-panel)으로 이미 전환했기 때문에
      `.table`·`.card`·`.badge`·`.btn-outline-*` 같은 부트스트랩 컴포넌트 정의를 **삭제**했다.
      DEBC 는 아직 전환 전(템플릿의 KRDS 네이티브 클래스 사용 0건)이라 그 자리를 이 파일이 채운다.

   로드 순서(레이아웃 head)
     krds_tokens.css(공식 토큰) → krds-compat.css → **이 파일** → krds.css
     → common.css → debc.css → renewal.css → (관리자) admin.css
   즉 이 파일은 "구조/컴포넌트 기본형"만 담당하고, DEBC 고유 스킨은 뒤의 파일이 덮어쓴다.

   값의 출처
    · 색: KRDS 공식 토큰(`--krds-color-light-*`)에서 파생한 `--k-*` 별칭만 쓴다(하드코딩 금지).
    · 형태(패딩·라운드·행높이): 기존 172개 템플릿이 부트스트랩 기하에 맞춰 작성돼 있어
      **레이아웃이 깨지지 않을 만큼의 기하**는 유지한다(= 회귀 0 이 R6 의 완료조건).
   ===================================================================== */

/* ── 1. KRDS 공식 토큰 → 호환 레이어 별칭 재바인딩 ─────────────────────
   krds-compat.css 의 `--k-*` 는 hex 하드코딩이다. 공식 토큰 파일을 로드하므로
   여기서 토큰 참조로 다시 묶는다(값은 동일 — KRDS primary-50 = #256EF4).
   이렇게 해야 KRDS 토큰이 갱신될 때 호환 레이어도 함께 따라간다.
   토큰 파일이 어떤 이유로든 로드되지 않아도 화면이 무너지지 않도록 **fallback 에 같은 값의 hex**
   를 둔다(var() 가 미정의면 선언 전체가 무효가 되어 버튼 배경이 사라진다). */
:root{
  --k-primary:        var(--krds-color-light-primary-50, #256EF4);
  --k-primary-hover:  var(--krds-color-light-primary-60, #0B50D0);
  --k-primary-active: var(--krds-color-light-primary-70, #083891);
  --k-primary-light:  var(--krds-color-light-primary-10, #D8E5FD);
  --k-primary-bg:     var(--krds-color-light-primary-5,  #ECF2FE);
  --k-g0:  var(--krds-color-light-gray-0,  #FFFFFF);
  --k-g5:  var(--krds-color-light-gray-5,  #F4F5F6);
  --k-g10: var(--krds-color-light-gray-10, #E6E8EA);
  --k-g20: var(--krds-color-light-gray-20, #CDD1D5);
  --k-g40: var(--krds-color-light-gray-40, #8A949E);
  --k-g60: var(--krds-color-light-gray-60, #58616A);
  --k-g80: var(--krds-color-light-gray-80, #33363D);
  --k-g90: var(--krds-color-light-gray-90, #1E2124);
  --k-success: var(--krds-color-light-success-50, #228738);
  --k-danger:  var(--krds-color-light-danger-50,  #DE3412);
  --k-warning: var(--krds-color-light-warning-40, #C78500);
  --k-info:    var(--krds-color-light-information-50, #0B78CB);

  /* 보조(서브틀) 색 — 배지·알림 배경용 */
  --k-success-bg: var(--krds-color-light-success-5, #EAF6EC);
  --k-danger-bg:  var(--krds-color-light-danger-5,  #FDEFEC);
  --k-warning-bg: var(--krds-color-light-warning-5, #FFF3DB);
  --k-info-bg:    var(--krds-color-light-information-5, #E7F4FE);
  --k-secondary:  var(--krds-color-light-gray-60, #58616A);

  --k-radius-sm: var(--krds-radius-xsmall1, .2rem);

  /* 서체: R6 은 "Bootstrap 제거"가 범위다. KRDS 표준서체(Pretendard GOV)로 바꾸면 전 화면의
     글자 폭·줄바꿈이 함께 바뀌어 프레임워크 교체로 인한 회귀와 구분할 수 없다.
     krds-compat.css 의 기본값("Pretendard GOV" 우선)을 기존 DEBC 스택으로 고정한다.
     — 특히 팝업 5종은 debc.css 를 로드하지 않아 이 값이 그대로 body 서체가 된다
       (고정하지 않으면 팝업만 다른 서체가 되고 폰트 파일도 불필요하게 내려간다).
     전환 시에는 이 한 줄만 원래대로 되돌리면 된다(폰트는 /krds/resources/fonts 에 로컬 동봉). */
  --k-font:'Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',system-ui,-apple-system,sans-serif;
}

/* ── 2. 리부트 패리티 ────────────────────────────────────────────────
   krds-compat.css 의 기본 리셋에는 부트스트랩 reboot 중 아래 항목이 빠져 있다.
   빠지면 "클래스가 안 붙은" 요소(폼 컨트롤·표·목록)가 브라우저 기본형으로 돌아가
   글꼴이 13px Arial 이 되거나 표 테두리가 벌어진다. 시각적 회귀의 주범이라 복원한다. */
/* 기본 행간: KRDS 공식 값은 **1.5** 다
   (`krds/resources/css/common/common.css` 의 `--krds-line-height-base: 1.5`).
   krds-compat 은 1.6 이라 전 화면의 세로 리듬이 2~3% 늘어난다 — 공식 값으로 되돌린다. */
body{ line-height:1.5; }
button,input,optgroup,select,textarea{ margin:0; font-family:inherit; font-size:inherit; line-height:inherit; }
button,[type="button"],[type="reset"],[type="submit"]{ -webkit-appearance:button; }
button:not(:disabled),[type="button"]:not(:disabled),[type="submit"]:not(:disabled){ cursor:pointer; }
textarea{ resize:vertical; }
label{ display:inline-block; }
fieldset{ min-width:0; padding:0; margin:0; border:0; }
legend{ float:left; width:100%; padding:0; margin-bottom:.5rem; line-height:inherit; }
table{ caption-side:bottom; border-collapse:collapse; }
th{ text-align:inherit; }
caption{ padding:.5rem 0; color:var(--k-g60); text-align:left; }
/* 목록 들여쓰기: krds-compat 은 `ul,ol{margin:0;padding:0}` 로 눌러 버린다.
   본문(게시글·CMS)의 글머리표가 사라지므로 문서 기본형을 되돌린다.
   컴포넌트(rnw-*·adm-*·list-group)는 각자 list-style:none 을 선언하므로 영향 없다. */
ul,ol{ margin-top:0; margin-bottom:1rem; padding-left:2rem; }
/* 링크 밑줄: KRDS·KWCAG 모두 본문 링크의 밑줄을 요구한다(색상만으로 구분 금지).
   컴포넌트 링크는 뒤 파일에서 text-decoration:none 을 선언한다. */
a{ text-decoration:underline; }

/* ── 3. 타이포 스케일 ────────────────────────────────────────────────
   krds-compat 은 h1~h6 의 크기를 정의하지 않아 브라우저 기본(h5=0.83em)으로 쪼그라든다.
   레거시 화면이 `<h1 class="h4">` 처럼 크기 클래스를 쓰므로 요소/유틸 양쪽을 정의한다.
   h1~h4 는 좁은 화면에서 단계적으로 줄어드는 반응형 스케일을 쓴다 —
   KRDS 도 PC/모바일 폰트 크기를 분리(`--krds-pc-font-size-*` / `--krds-mobile-font-size-*`)한다.
   (고정값으로 두면 760px 메인 히어로 제목이 28px→32px 로 커져 기존 시안과 어긋난다.) */
h1,.h1{ font-size:calc(1.375rem + 1.5vw); }
h2,.h2{ font-size:calc(1.325rem + .9vw); }
h3,.h3{ font-size:calc(1.3rem + .6vw); }
h4,.h4{ font-size:calc(1.275rem + .3vw); }
h5,.h5{ font-size:1.25rem; }
h6,.h6{ font-size:1rem; }
@media (min-width:1200px){
  h1,.h1{ font-size:2.5rem; }
  h2,.h2{ font-size:2rem; }
  h3,.h3{ font-size:1.75rem; }
  h4,.h4{ font-size:1.5rem; }
}
.h1,.h2,.h3,.h4,.h5,.h6{ margin-top:0; margin-bottom:.5rem; font-weight:700; line-height:1.25; }

/* ── 4. 컨테이너 반응형 폭 ───────────────────────────────────────────
   krds-compat 은 `.container{max-width:1140px}` 고정이라 576~1199px 구간이 기존과 달라진다.
   (renewal.css 가 1400px↑ 를 1600px 로 다시 덮으므로 그 위는 그대로다.) */
@media (min-width: 576px){ .container{ max-width:540px; } }
@media (min-width: 768px){ .container{ max-width:720px; } }
@media (min-width: 992px){ .container{ max-width:960px; } }
@media (min-width:1200px){ .container{ max-width:1140px; } }
@media (min-width:1400px){ .container{ max-width:1320px; } }

/* ── 4-1. 열의 기본 폭 (모바일 회귀 방지 — 실측으로 발견) ────────────
   부트스트랩은 `.row > *` 에 `width:100%` 를 깔아 두어, `col-md-4` 같은 열이
   **브레이크포인트 아래에서는 전폭**이 된다. krds-compat 에는 이 규칙이 없어
   760px 화면에서 메인 "자주 찾는 서비스" 패널이 내용 폭(263px)으로 쪼그라들었다.
   `:where()` 로 특정도 0 을 만들어 뒤따르는 `.col-*` 폭 지정이 항상 이기게 한다
   (그냥 `.row>*` 로 쓰면 krds-compat 의 `.col-4` 등을 덮어써 데스크톱이 깨진다). */
:where(.row) > *{ flex-shrink:0; width:100%; max-width:100%; }

/* ── 5. 그리드 거터 정정 ─────────────────────────────────────────────
   krds-compat 의 `.g-*` 는 4방향 음수마진이라 행 위·아래로도 여백을 먹어
   앞뒤 요소와 겹친다. 가로=열 간격 / 세로=행 간격 의미로 되돌린다. */
.g-0{ margin-right:0; margin-left:0; margin-top:0; }
.g-0>*{ padding-right:0; padding-left:0; margin-top:0; }
.g-1{ margin-right:-.125rem; margin-left:-.125rem; margin-top:-.25rem; margin-bottom:0; }
.g-1>*{ padding-right:.125rem; padding-left:.125rem; padding-top:0; padding-bottom:0; margin-top:.25rem; }
.g-2{ margin-right:-.25rem; margin-left:-.25rem; margin-top:-.5rem; margin-bottom:0; }
.g-2>*{ padding-right:.25rem; padding-left:.25rem; padding-top:0; padding-bottom:0; margin-top:.5rem; }
.g-3{ margin-right:-.5rem; margin-left:-.5rem; margin-top:-1rem; margin-bottom:0; }
.g-3>*{ padding-right:.5rem; padding-left:.5rem; padding-top:0; padding-bottom:0; margin-top:1rem; }
.g-4{ margin-right:-.75rem; margin-left:-.75rem; margin-top:-1.5rem; margin-bottom:0; }
.g-4>*{ padding-right:.75rem; padding-left:.75rem; padding-top:0; padding-bottom:0; margin-top:1.5rem; }
.g-5{ margin-right:-1.5rem; margin-left:-1.5rem; margin-top:-3rem; margin-bottom:0; }
.g-5>*{ padding-right:1.5rem; padding-left:1.5rem; padding-top:0; padding-bottom:0; margin-top:3rem; }
.row-cols-2>*{ flex:0 0 auto; width:50%; }

/* ── 6. 표 ───────────────────────────────────────────────────────────
   `.table` 58건 · `.table-light` 103건 · `.table-hover` 26건 · `.table-bordered` 15건. */
.table{ width:100%; margin-bottom:1rem; vertical-align:top; color:inherit; border-color:var(--k-g10); }
.table > :not(caption) > * > *{ padding:.5rem; border-bottom:1px solid var(--k-g10); }
.table > thead{ vertical-align:bottom; }
.table > tbody{ vertical-align:inherit; }
.table-sm > :not(caption) > * > *{ padding:.25rem; }
/* 헤더/라벨 셀 강조 — KRDS gray-5 배경 */
.table-light,
.table > .table-light > tr > *,
.table th.table-light,
.table td.table-light{ background-color:var(--k-g5); color:var(--k-g90); }
.table-hover > tbody > tr:hover > *{ background-color:var(--k-primary-bg); }
.table-bordered > :not(caption) > *{ border-width:1px 0; }
.table-bordered > :not(caption) > * > *{ border:1px solid var(--k-g10); }
.align-middle{ vertical-align:middle !important; }

/* ── 7. 카드 ─────────────────────────────────────────────────────────
   `.card` 46건 · `.card-body` 44건. debc.css 가 보더/라운드를 다시 지정하므로
   여기서는 구조(세로 플렉스·패딩)만 잡는다. */
.card{ position:relative; display:flex; flex-direction:column; min-width:0; word-wrap:break-word;
  background-color:var(--k-g0); background-clip:border-box;
  border:1px solid var(--k-g10); border-radius:var(--k-radius); }
.card-body{ flex:1 1 auto; padding:1rem; }
.card-header{ padding:.75rem 1rem; margin-bottom:0; background-color:var(--k-g5); border-bottom:1px solid var(--k-g10); }
.card-footer{ padding:.75rem 1rem; background-color:var(--k-g5); border-top:1px solid var(--k-g10); }
.card-title{ margin-bottom:.5rem; }
.card-text:last-child{ margin-bottom:0; }
.card > .list-group{ border-top:inherit; border-bottom:inherit; }

/* ── 8. 버튼 변형 ────────────────────────────────────────────────────
   기본형(.btn/.btn-primary)은 krds-compat 에 있다. 나머지 변형만 KRDS 톤으로 정의한다.
   `.btn-outline-secondary` 100건(목록·취소 버튼) · `.btn-sm` 93건. */
.btn-secondary{ background:var(--k-g60); border-color:var(--k-g60); color:#fff; }
.btn-secondary:hover,.btn-secondary:focus{ background:var(--k-g80); border-color:var(--k-g80); color:#fff; }
.btn-success{ background:var(--k-success); border-color:var(--k-success); color:#fff; }
.btn-success:hover,.btn-success:focus{ background:var(--krds-color-light-success-60); border-color:var(--krds-color-light-success-60); color:#fff; }
.btn-danger{ background:var(--k-danger); border-color:var(--k-danger); color:#fff; }
.btn-danger:hover,.btn-danger:focus{ background:var(--krds-color-light-danger-60); border-color:var(--krds-color-light-danger-60); color:#fff; }
.btn-warning{ background:var(--k-warning); border-color:var(--k-warning); color:#fff; }
.btn-warning:hover,.btn-warning:focus{ background:var(--krds-color-light-warning-50); border-color:var(--krds-color-light-warning-50); color:#fff; }
.btn-info{ background:var(--k-info); border-color:var(--k-info); color:#fff; }
.btn-info:hover,.btn-info:focus{ background:var(--krds-color-light-information-60); border-color:var(--krds-color-light-information-60); color:#fff; }
.btn-light{ background:var(--k-g5); border-color:var(--k-g10); color:var(--k-g90); }
.btn-light:hover{ background:var(--k-g10); color:var(--k-g90); }
.btn-link{ background:none; border-color:transparent; color:var(--k-primary); text-decoration:underline; }

.btn-outline-primary{ background:transparent; border-color:var(--k-primary); color:var(--k-primary); }
.btn-outline-primary:hover,.btn-outline-primary:focus{ background:var(--k-primary); border-color:var(--k-primary); color:#fff; }
.btn-outline-secondary{ background:transparent; border-color:var(--k-g20); color:var(--k-g80); }
.btn-outline-secondary:hover,.btn-outline-secondary:focus{ background:var(--k-g5); border-color:var(--k-g40); color:var(--k-g90); }
.btn-outline-success{ background:transparent; border-color:var(--k-success); color:var(--k-success); }
.btn-outline-success:hover,.btn-outline-success:focus{ background:var(--k-success); border-color:var(--k-success); color:#fff; }
.btn-outline-danger{ background:transparent; border-color:var(--k-danger); color:var(--k-danger); }
.btn-outline-danger:hover,.btn-outline-danger:focus{ background:var(--k-danger); border-color:var(--k-danger); color:#fff; }
.btn-outline-info{ background:transparent; border-color:var(--k-info); color:var(--k-info); }
.btn-outline-info:hover,.btn-outline-info:focus{ background:var(--k-info); border-color:var(--k-info); color:#fff; }
.btn-outline-warning{ background:transparent; border-color:var(--k-warning); color:var(--k-warning); }
.btn-outline-warning:hover,.btn-outline-warning:focus{ background:var(--k-warning); border-color:var(--k-warning); color:#fff; }
.btn-outline-dark{ background:transparent; border-color:var(--k-g80); color:var(--k-g80); }
.btn-outline-dark:hover,.btn-outline-dark:focus{ background:var(--k-g80); border-color:var(--k-g80); color:#fff; }

.btn-sm{ padding:.25rem .5rem; font-size:.875rem; border-radius:var(--k-radius-sm); }
.btn-lg{ padding:.5rem 1rem; font-size:1.25rem; border-radius:var(--k-radius-lg); }

/* ── 9. 폼 컨트롤 ────────────────────────────────────────────────────
   `.form-control` 245건 · `.form-select` 58건 — 기본형이 없으면 전 입력폼이 브라우저 기본으로 돌아간다. */
.form-control{ display:block; width:100%; padding:.375rem .75rem; font-family:inherit; font-size:1rem;
  font-weight:400; line-height:1.5; color:var(--k-g90); background-color:var(--k-g0); background-clip:padding-box;
  border:1px solid var(--k-g20); border-radius:var(--k-radius); appearance:none;
  transition:border-color .15s ease-in-out, box-shadow .15s ease-in-out; }
.form-control:focus{ border-color:var(--k-primary); outline:0; box-shadow:0 0 0 3px var(--k-primary-light); }
.form-control::placeholder{ color:var(--k-g40); opacity:1; }
/* readonly 는 배경을 바꾸지 않는다 — 기존 화면(게시판 마스터의 "템플릿 정보" 등)이
   readonly 입력을 흰 배경으로 노출해 왔고, disabled 와 시각적으로 구분되어야 한다. */
.form-control:disabled{ background-color:var(--k-g5); }
textarea.form-control{ min-height:calc(1.5em + .75rem + 2px); }

/* 화살표는 인라인 data-uri(외부 요청 0 — 폐쇄망 원칙). stroke 색 = KRDS gray-80 #33363d */
.form-select{ display:block; width:100%; padding:.375rem 2.25rem .375rem .75rem; font-family:inherit;
  font-size:1rem; font-weight:400; line-height:1.5; color:var(--k-g90);
  background-color:var(--k-g0);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2333363d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat; background-position:right .75rem center; background-size:16px 12px;
  border:1px solid var(--k-g20); border-radius:var(--k-radius); appearance:none; }
.form-select:focus{ border-color:var(--k-primary); outline:0; box-shadow:0 0 0 3px var(--k-primary-light); }
.form-select:disabled{ background-color:var(--k-g5); }

.form-control-sm{ padding:.25rem .5rem; font-size:.875rem; border-radius:var(--k-radius-sm); }
.form-select-sm{ padding:.25rem 2rem .25rem .5rem; font-size:.875rem; border-radius:var(--k-radius-sm); }
.form-control-plaintext{ display:block; width:100%; padding:.375rem 0; margin-bottom:0; line-height:1.5;
  color:var(--k-g90); background-color:transparent; border:solid transparent; border-width:1px 0; }
.form-label{ margin-bottom:.5rem; }
.col-form-label{ padding-top:calc(.375rem + 1px); padding-bottom:calc(.375rem + 1px); margin-bottom:0;
  font-size:inherit; line-height:1.5; }
.form-text{ margin-top:.25rem; font-size:.875em; color:var(--k-g60); }

/* 체크박스·라디오 — krds-compat 은 배치(padding-left)만 잡는다. 모양을 KRDS 톤으로 정의한다. */
.form-check-input{ flex-shrink:0; width:1em; height:1em; margin-top:.25em; vertical-align:top;
  appearance:none; background-color:var(--k-g0); background-repeat:no-repeat; background-position:center;
  background-size:contain; border:1px solid var(--k-g40); print-color-adjust:exact; }
.form-check-input[type="checkbox"]{ border-radius:.25em; }
.form-check-input[type="radio"]{ border-radius:50%; }
.form-check-input:checked{ background-color:var(--k-primary); border-color:var(--k-primary); }
.form-check-input[type="checkbox"]:checked{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
.form-check-input[type="radio"]:checked{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); }
.form-check-input:focus{ border-color:var(--k-primary); outline:0; box-shadow:0 0 0 3px var(--k-primary-light); }
.form-check-input:disabled{ opacity:.5; }
.form-check-label{ cursor:pointer; }
.form-check-inline{ display:inline-block; margin-right:1rem; }

/* ── 10. 배지 ────────────────────────────────────────────────────────
   `.badge` 24건 — 사용여부(사용/미사용)·상태 표시에 쓰인다. */
.badge{ display:inline-block; padding:.35em .65em; font-size:.75em; font-weight:700; line-height:1;
  color:#fff; text-align:center; white-space:nowrap; vertical-align:baseline; border-radius:var(--k-radius-sm); }
.badge:empty{ display:none; }
.bg-secondary{ background-color:var(--k-secondary) !important; color:#fff; }
.bg-success{ background-color:var(--k-success) !important; color:#fff; }
.bg-danger{ background-color:var(--k-danger) !important; color:#fff; }
.bg-warning{ background-color:var(--k-warning) !important; color:#fff; }
.bg-info{ background-color:var(--k-info) !important; color:#fff; }
.text-bg-light{ background-color:var(--k-g5) !important; color:var(--k-g90) !important; }

/* ── 11. 알림 보강 ───────────────────────────────────────────────────*/
.alert-secondary{ background:var(--k-g5); border-color:var(--k-g10); color:var(--k-g80); }
.alert-light{ background:var(--k-g0); border-color:var(--k-g10); color:var(--k-g80); }
.alert-link{ font-weight:700; color:inherit; }

/* ── 12. 리스트 그룹 ─────────────────────────────────────────────────
   `.list-group-item` 39건(행정달력 휴일목록·설문 좌측메뉴 등). */
.list-group{ display:flex; flex-direction:column; padding-left:0; margin-bottom:0; border-radius:var(--k-radius); }
.list-group-item{ position:relative; display:block; padding:.5rem 1rem; color:var(--k-g90);
  text-decoration:none; background-color:var(--k-g0); border:1px solid var(--k-g10); }
.list-group-item:first-child{ border-top-left-radius:inherit; border-top-right-radius:inherit; }
.list-group-item:last-child{ border-bottom-left-radius:inherit; border-bottom-right-radius:inherit; }
.list-group-item + .list-group-item{ border-top-width:0; }
.list-group-item.active{ z-index:2; color:#fff; background-color:var(--k-primary); border-color:var(--k-primary); }
.list-group-item.disabled,.list-group-item:disabled{ color:var(--k-g40); background-color:var(--k-g0); pointer-events:none; }
.list-group-item-action{ width:100%; color:var(--k-g80); text-align:inherit; }
.list-group-item-action:hover,.list-group-item-action:focus{ z-index:1; color:var(--k-g90);
  text-decoration:none; background-color:var(--k-g5); }
.list-group-flush{ border-radius:0; }
.list-group-flush > .list-group-item{ border-width:0 0 1px; }
.list-group-flush > .list-group-item:last-child{ border-bottom-width:0; }

/* ── 12-1. 브레드크럼(레거시 화면 136곳) ─────────────────────────────
   krds-compat 은 회색 박스형(배경+보더)이다. 기존 DEBC 화면은 부트스트랩5 기본형인
   **평문 + 구분자**였고, 관리자/사용자 신규 화면(.adm-crumb·.rnw-crumbbar)도 평문이다.
   박스형으로 바뀌면 레거시 화면만 톤이 튀므로 평문으로 되돌린다(KRDS 브레드크럼도 평문형). */
.breadcrumb{ padding:0; background:transparent; border:0; border-radius:0; }

/* ── 13. 유틸리티 보강 ───────────────────────────────────────────────*/
.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within){
  position:absolute !important; width:1px !important; height:1px !important; padding:0 !important;
  margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important;
  white-space:nowrap !important; border:0 !important; }
.vstack{ display:flex; flex:1 1 auto; flex-direction:column; align-self:stretch; }
.hstack{ display:flex; flex-direction:row; align-items:center; align-self:stretch; }
.img-fluid{ max-width:100% !important; height:auto !important; }
.border-danger{ border-color:var(--k-danger) !important; }
.fw-bolder{ font-weight:800 !important; }
.text-body{ color:var(--k-g90) !important; }
.text-secondary{ color:var(--k-g60) !important; }
.p-5{ padding:3rem !important; }

@media (min-width:992px){
  .col-lg-9{ flex:0 0 auto; width:75%; }
  .row-cols-lg-4>*{ flex:0 0 auto; width:25%; }
  .d-lg-block{ display:block !important; }
  .d-lg-none{ display:none !important; }
  .d-lg-flex{ display:flex !important; }
}

/* ── 14. 후속 과제(R6 범위 밖 — 기록) ────────────────────────────────
   ① KRDS 표준 서체(Pretendard GOV) 전환 — 위 `--k-font` 참조.
   ② 아이콘: 템플릿 340곳이 Bootstrap Icons(`bi bi-*`)를 쓴다. 아이콘 폰트는 프레임워크와
      별개라 R6 에서 유지했다(선례 프로젝트도 동일). KRDS svg 아이콘 대체는 별도 과제.
   ③ KRDS 네이티브 마크업 전환(krds-btn·tbl·krds-panel·krds-pagination) — 이 호환 레이어를
      걷어내는 작업. 공식 컴포넌트 CSS 는 `/krds/resources/cdn/krds.min.css` 에 이미 동봉돼 있다. */
