/*
 * 물리적 저장 경로: /src/main/webapp/resources/krds/css/rlms-compat.css
 *
 * RLMS 가 사용하는 추가 클래스를 KRDS 톤으로 정의.
 * (실제 KRDS 에 없는 클래스: krds-form/krds-table/tbl-list/tbl-detail/
 *   krds-card/krds-alert/krds-select/search-form/page-header/btn-area/empty-row 등)
 *
 * KRDS 디자인 토큰과 일치하도록 색상/폰트/간격 사용.
 */

/* ───────── 전체 레이아웃 (admin/front 공통) ───────── */
/* KRDS 코어의 html,body{height:100%} 무효화 — body 가 뷰포트 높이로 잠기면 글자 크기
   설정(body zoom)과 결합 시 Chrome 이 스크롤 상한을 실제 콘텐츠보다 짧게 계산해
   페이지 하단이 도달 불가가 된다(줌 배율만큼 하단 유실). 문서 스크롤로 단일화. */
html, body { height: auto; min-height: 100%; }
body { margin: 0; padding: 0; }

/* RLMS 단순 상단 헤더 (KRDS 의 복잡한 헤더 대체) */
.rlms-header {
  display: flex;
  align-items: stretch;
  height: 60px;
  padding: 0 24px;
  background: #fff;
  border-bottom: 1px solid #d1d3d8;
  position: relative;
  z-index: 100;
}
.rlms-header-brand {
  display: flex;
  align-items: center;
  font-size: 1.15em;
  font-weight: 700;
  color: #1f3974;
  text-decoration: none;
  white-space: nowrap;
  margin-right: 24px;
}
.rlms-header-brand:hover { color: #163265; }
.rlms-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;       /* GNB 와 actions 사이 자동 여백 */
}

/* ───────── 상단 GNB (메가 메뉴) ───────── */
.rlms-gnb {
  display: flex;
  align-items: stretch;
  flex: 0 1 auto;
}
.rlms-gnb-list {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}
.rlms-gnb-item {
  position: static;        /* 메가 패널이 헤더(.rlms-header) 기준 전체폭으로 펼쳐지도록 */
  display: flex;
  align-items: stretch;
}
.rlms-gnb-link {
  display: flex;
  align-items: center;
  padding: 0 20px;
  color: #333;
  text-decoration: none;
  font-size: 0.98em;
  font-weight: 500;
  height: 60px;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
}
.rlms-gnb-item:hover .rlms-gnb-link,
.rlms-gnb-item:focus-within .rlms-gnb-link {
  color: #1f3974;
  border-bottom-color: #1f3974;
  background: #f8f9fc;
}

/* 메가 메뉴 — KRDS 스타일 전체폭 패널 (헤더 바로 아래) */
.rlms-gnb-mega {
  position: absolute;
  top: 60px;            /* 헤더 높이 */
  left: 0;
  right: 0;             /* 전체폭 (헤더 기준; .rlms-gnb-item 은 static) */
  background: #fff;
  border-top: 2px solid #1f3974;
  border-bottom: 1px solid #d1d3d8;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
  /* 좌측 시작점 = GNB(대메뉴) 시작 위치. --rlms-gnb-left 는 mgr.jsp 스크립트가 계산해 헤더에 주입 */
  padding: 26px 32px 30px var(--rlms-gnb-left, 32px);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.15s, transform 0.15s, visibility 0.15s;
  z-index: 90;
}
.rlms-gnb-item:hover .rlms-gnb-mega,
.rlms-gnb-item:focus-within .rlms-gnb-mega {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}
/* 패널 제목 = 상위 메뉴명 */
.rlms-gnb-mega-tit {
  margin: 0 0 16px;
  padding: 0 0 14px;
  max-width: 860px;
  border-bottom: 1px solid #eef0f4;
  font-size: 1.3em;
  font-weight: 700;
  color: #1f1f1f;
}
/* 다단 그리드 — 열 우선 흐름(KRDS 와 동일). 3열은 max-width 로 결정 */
.rlms-gnb-mega-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 860px;
  column-width: 240px;
  column-gap: 44px;
}
.rlms-gnb-mega-grid > li {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 2px;
}
.rlms-gnb-mega-grid > li > a {
  position: relative;
  display: block;
  padding: 8px 12px 8px 18px;
  color: #333;
  text-decoration: none;
  font-size: 0.97em;
  border-radius: 4px;
}
.rlms-gnb-mega-grid > li > a::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-top: -2px;
  border-radius: 50%;
  background: #1f3974;
}
.rlms-gnb-mega-grid > li > a:hover {
  background: #eef2fb;
  color: #1f3974;
  font-weight: 500;
}
/* 3단계 하위(예: 로그관리 > 시스템/접속/웹/사용로그) — 셀 안 들여쓰기 */
.rlms-gnb-mega .rlms-gnb-submenu {
  list-style: none;
  margin: 0 0 8px;
  padding: 2px 0 4px 18px;
}
.rlms-gnb-mega .rlms-gnb-submenu li a {
  display: block;
  padding: 5px 12px;
  color: #5a6473;
  text-decoration: none;
  font-size: 0.9em;
  border-radius: 4px;
}
.rlms-gnb-mega .rlms-gnb-submenu li a:hover {
  background: #f3f6fd;
  color: #1f3974;
}
.rlms-header-actions .rlms-user-name {
  font-size: 0.95em;
  color: #333;
}
.rlms-header-actions .rlms-link {
  font-size: 0.95em;
  color: #1f3974;
  text-decoration: none;
  padding: 4px 10px;
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  background: #fff;
}
.rlms-header-actions .rlms-link:hover {
  background: #f0f2f5;
  border-color: #1f3974;
}

/* ───────── 승인 워크플로 알림 배지 (관리자 헤더) ───────── */
.rlms-header-actions .rlms-notif {
  display: inline-flex; align-items: center; gap: 5px;
  height: 30px; padding: 0 11px; margin-right: 2px;
  border: 1px solid #e0a800; background: #fff7e0; color: #8a6100;
  border-radius: 16px; font-size: 0.9em; font-weight: 600;
  text-decoration: none; white-space: nowrap; line-height: 1;
}
.rlms-header-actions .rlms-notif:hover { background: #ffeeba; border-color: #c79100; }
.rlms-header-actions .rlms-notif .rlms-notif-ico { font-size: 1.05em; }
.rlms-header-actions .rlms-notif-deny {
  border-color: #d98b84; background: #fdeceb; color: #b0392b;
}
.rlms-header-actions .rlms-notif-deny:hover { background: #f9d9d6; border-color: #c0392b; }
.rlms-notif-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
  background: #c0392b; color: #fff; font-size: 11px; font-weight: 700; line-height: 1;
}

/* 외부 원문 참조(법제처 등) 목록 표식 — 제목이 외부 새 창 링크임을 표시 */
.ext-ico { color: #1f6fd6; font-weight: 700; font-size: 0.9em; }

/* ───────── 글자 크기 설정 (KRDS 접근성) ───────── */
.rlms-ds-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-family: inherit;
}
.rlms-ds-trigger .rlms-ds-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 1px solid currentColor;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
.rlms-ds-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.rlms-ds-overlay[hidden] { display: none; }
.rlms-ds-modal {
  width: 420px;
  max-width: calc(calc(100vw / var(--rlms-zoom, 1)) - 32px);
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
  overflow: hidden;
}
.rlms-ds-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid #eef0f4;
}
.rlms-ds-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #1f1f1f;
}
.rlms-ds-close {
  border: 0;
  background: none;
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  color: #5a6473;
  padding: 4px;
}
.rlms-ds-body { padding: 20px 22px; }
.rlms-ds-sub {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  color: #4b5565;
}
.rlms-ds-opts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.rlms-ds-opts label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border: 1px solid #e1e6f3;
  border-radius: 6px;
  cursor: pointer;
  font-size: 15px;
  color: #333;
}
.rlms-ds-opts label:hover {
  background: #f7f9fe;
  border-color: #b9c6ec;
}
.rlms-ds-opts input {
  width: 18px;
  height: 18px;
  accent-color: #1f3974;
}
.rlms-ds-foot {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 22px 20px;
}
.rlms-ds-btn {
  padding: 9px 18px;
  border-radius: 6px;
  border: 1px solid #c4c6cd;
  background: #fff;
  color: #333;
  font-size: 14px;
  cursor: pointer;
}
.rlms-ds-btn:hover { background: #f0f2f5; }
.rlms-ds-btn-primary {
  background: #1f3974;
  border-color: #1f3974;
  color: #fff;
}
.rlms-ds-btn-primary:hover { background: #163265; }

/* 관리자 레이아웃 — header 아래에 wrap (flex 가로 분할) */
.rlms-admin-wrap {
  display: flex;
  min-height: calc(calc(100vh / var(--rlms-zoom, 1)) - 60px);
}
.rlms-admin-lnb {
  flex: 0 0 240px;
  background: #f5f5f7;
  border-right: 1px solid #d1d3d8;
  padding: 16px 0;
}
.rlms-admin-main {
  flex: 1 1 auto;
  padding: 24px 32px;
  background: #fff;
  min-width: 0;       /* flex item 의 너비 폭주 방지 */
  /* max-width 없음 — 화면 100% 사용 */
}
.rlms-admin-main h1 { color: #1f3974; }

/* LNB */
.rlms-admin-lnb .lnb-tit {
  padding: 14px 16px 8px;
  margin: 0;
  font-size: 0.95em;
  font-weight: 700;
  color: #1f3974;
  border-bottom: 1px solid #d1d3d8;
  text-transform: uppercase;
}
.rlms-admin-lnb .lnb-list {
  list-style: none;
  padding: 0;
  margin: 4px 0 12px;
}
.rlms-admin-lnb .lnb-list li a {
  display: block;
  padding: 8px 20px;
  color: #333;
  text-decoration: none;
  font-size: 0.95em;
}
.rlms-admin-lnb .lnb-list li a:hover,
.rlms-admin-lnb .lnb-list li a.active {
  background: #e8edf9;
  color: #1f3974;
  font-weight: 500;
}

/* KRDS left navigation */
.rlms-admin-lnb.krds-lnb {
  flex: 0 0 260px;
  padding: 24px 16px;
  background: #f8f9fc;
  border-right: 1px solid #d1d3d8;
  box-sizing: border-box;
}
.rlms-admin-lnb.krds-lnb .lnb-tit {
  margin: 0 0 12px;
  padding: 0 4px 12px;
  border-bottom: 2px solid #1f3974;
  color: #1f3974;
  font-size: 1.08em;
  font-weight: 700;
  line-height: 1.4;
  text-transform: none;
}
.rlms-admin-lnb.krds-lnb .lnb-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
}
.rlms-admin-lnb.krds-lnb .lnb-list li a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: #333;
  font-size: 0.96em;
  font-weight: 500;
  line-height: 1.35;
  text-decoration: none;
  box-sizing: border-box;
}
.rlms-admin-lnb.krds-lnb .lnb-list li a:hover {
  background: #fff;
  border-color: #c4c6cd;
  color: #1f3974;
}
.rlms-admin-lnb.krds-lnb .lnb-list li a.active,
.rlms-admin-lnb.krds-lnb .lnb-list li a[aria-current="page"] {
  background: #e8edf9;
  border-color: #c5d0e8;
  color: #1f3974;
  font-weight: 700;
}
@media (max-width: 768px) {
  .rlms-admin-lnb.krds-lnb {
    padding: 8px 12px;
    overflow-x: auto;
    white-space: nowrap;
  }
  .rlms-admin-lnb.krds-lnb .lnb-tit {
    display: inline-block;
    margin: 0 8px 0 0;
    padding: 8px 4px;
    border-bottom: none;
    font-size: 0.9em;
    vertical-align: middle;
  }
  .rlms-admin-lnb.krds-lnb .lnb-list {
    display: inline-flex;
    flex-direction: row;
    gap: 6px;
    vertical-align: middle;
  }
  .rlms-admin-lnb.krds-lnb .lnb-list li a {
    min-height: 36px;
    padding: 7px 10px;
    font-size: 0.86em;
  }
}

/* 사용자(front) 레이아웃 */
.rlms-front-gnb {
  background: #1f3974;
  color: #fff;
  padding: 12px 24px;
  display: flex;
  gap: 38px; /* 메뉴 간격 — 촘촘하다는 피드백으로 16→28→38 (2026-07-08) */
  align-items: center;
  flex-wrap: wrap;
}
.rlms-front-gnb a { color: #fff; text-decoration: none; font-weight: 500; }
.rlms-front-gnb a:hover { text-decoration: underline; }
.rlms-front-gnb .gnb-spacer { flex: 1; }
/* GNB 마이페이지 드롭다운 — 호버/포커스 오픈(JS 불요). 메뉴판 링크는 흰색 GNB 링크색을 덮는다. */
.rlms-gnb-drop { position: relative; display: inline-block; }
.rlms-gnb-drop-btn { background: none; border: 0; color: #fff; font: inherit; font-weight: 500; cursor: pointer; padding: 0; }
.rlms-gnb-drop-btn:hover { text-decoration: underline; }
.rlms-gnb-caret { font-size: 10px; }
.rlms-gnb-drop-menu { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  min-width: 160px; background: #fff; border: 1px solid #d1d3d8; border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,.15); padding: 6px 0; z-index: 1000; }
.rlms-gnb-drop:hover .rlms-gnb-drop-menu,
.rlms-gnb-drop:focus-within .rlms-gnb-drop-menu { display: block; }
.rlms-front-gnb .rlms-gnb-drop-menu a { display: block; padding: 8px 16px; color: #333; font-size: 14px; white-space: nowrap; }
.rlms-front-gnb .rlms-gnb-drop-menu a:hover { background: #f4f6fb; text-decoration: none; }
/* 본문 100% 사용 (max-width 없음). 좌측 패딩은 규정분류 드로어 책갈피 핸들(고정, 좌측 가장자리) 자리 확보. */
.rlms-front-main {
  padding: 24px 24px 24px 60px;
  margin: 0 auto;
}
.rlms-front-quicksch {
  background: #f5f5f7;
  padding: 12px 24px;
  display: flex;
  gap: 8px;
  border-bottom: 1px solid #d1d3d8;
}
.rlms-front-quicksch input[type="text"] {
  flex: 1;
  height: 40px;              /* 전역 small(40/14) 통일 (2026-07-24) */
  box-sizing: border-box;
  padding: 0 10px;
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  font-size: 14px;
}
.rlms-front-quicksch .krds-btn { height: 40px; font-size: 14px; padding: 0 16px; }

/* plain 레이아웃 (로그인/에러) */
.rlms-plain-wrap {
  min-height: calc(calc(100vh / var(--rlms-zoom, 1)) - 60px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: #f5f5f7;
}
.rlms-plain-card {
  background: #fff;
  padding: 32px;
  min-width: 360px;
  max-width: 480px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  border-radius: 8px;
}
.rlms-plain-brand {
  text-align: center;
  margin-bottom: 24px;
  color: #1f3974;
  font-size: 1.3em;
  font-weight: bold;
}

/* ───────── 페이지 헤더 ───────── */
.page-header {
  padding: 16px 0 12px;
  margin-bottom: 24px;
  border-bottom: 2px solid #1f3974;
}
.page-header h1 {
  margin: 0;
  font-size: 1.6em;
  color: #1f3974;
}
.page-header .page-desc {
  margin: 6px 0 0;
  color: #555;
  font-size: 0.95em;
}

/* ───────── 폼 ───────── */
.krds-form {
  margin: 0 0 16px;
}
.krds-form .form-group {
  margin-bottom: 12px;
}
.krds-form .form-group.inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.krds-form .form-label {
  display: inline-block;
  min-width: 80px;
  font-weight: 500;
  color: #333;
}
.krds-form .form-label.required::after {
  content: " *";
  color: #c0392b;
}
.krds-form .form-conts {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
}
.krds-form .krds-input {
  padding: 6px 10px;
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  font-size: 0.95em;
}
.krds-form .krds-input.sm {
  padding: 4px 8px;
  font-size: 0.9em;
}
.krds-form .krds-select,
.krds-form .krds-form-select {
  padding: 6px 10px;
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  background: #fff;
}

/* 검색 폼 */
.search-form {
  padding: 16px 20px;
  background: #f5f5f7;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  margin-bottom: 16px;
}
.search-form .form-group.inline {
  display: flex !important;
  flex-direction: row !important;    /* KRDS column → row 강제 */
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px 16px !important;          /* 검색항목별 여백 (2026-07-22) */
  /* max-width 제거 — 화면 100% 사용 */
}
/* 검색조건별 시각 구분 — 라벨 앞 여백으로 항목 그룹 분리 */
.search-form .form-group.inline > .form-label:not(:first-child) { margin-left: 6px; }
/* KRDS 의 .form-group .form-label { width:100% } override */
.search-form .form-group.inline > .form-label {
  width: auto !important;
  min-width: 0 !important;
  margin: 0 4px 0 0;
  font-size: 0.95em;
  font-weight: 500;
  color: #333;
}
/* KRDS 의 .form-group .form-conts { flex-direction: column; width: 100% } override */
.search-form .form-group.inline > .form-conts {
  width: auto !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
}
.search-form .krds-input,
.search-form .krds-select,
.search-form .krds-form-select,
.search-form select {
  width: auto;
  min-width: 140px;
  padding: 6px 10px;
}
.search-form .krds-input[type="text"]:not(.sm) {
  min-width: 240px;
}
.search-form .krds-btn {
  margin-left: 4px;
}
/* 컨트롤 높이 정합 — 검색폼 = 전역 표준과 동일한 small(40px/14px) (2026-07-24 통일).
   셀렉트는 네이티브 외형 대신 KRDS 톤 커스텀 화살표(▾). */
.search-form .krds-input,
.search-form .krds-select,
.search-form .krds-form-select,
.search-form select {
  height: 40px !important;
  box-sizing: border-box !important;
  border-radius: 6px !important;
  font-size: 14px !important;
}
/* 셀렉트 화살표/외형은 위 "KRDS 입력 크기·상태 체계"(전역)에서 통일 — 검색바 중복 제거(등록폼과 동일 화살표) */
.search-form .krds-input[type="text"] {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.search-form .krds-btn {
  height: 40px !important;
  font-size: 14px !important;
  padding: 0 16px !important;
}

/* ═══════════ KRDS 입력 크기·상태 체계 (2026-07-22, 2026-07-24 small 통일) — 규정·송무·게시판·관리자·front 공통 ═══════════
   기본 = small(높이 40/폰트 14) — 화면군별로 40/48 섞이던 것을 .small 로 전역 통일(2026-07-24 지시).
   .medium(48) / .large(56) opt-in, .sm/.small = 기본과 동일(하위호환 별칭). textarea 는 자동 높이.
   상태 = .is-error / .is-success (래퍼 또는 직접 클래스). */
input.krds-input,
.krds-select,
.krds-form-select,
select.krds-input {
  height: 40px !important;
  box-sizing: border-box !important;
  border: 1px solid #c4c6cd;
  border-radius: 6px !important;
  font-size: 14px !important;
  background-color: #fff;
}
input.krds-input { padding: 0 12px !important; }
.krds-select,
.krds-form-select,
.krds-form select,
select.krds-input {
  -webkit-appearance: none !important;
  appearance: none !important;
  padding: 0 32px 0 12px !important;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23555' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 11px !important;
}
textarea.krds-input {
  min-height: 96px;
  padding: 10px 12px !important;
  border: 1px solid #c4c6cd;
  border-radius: 6px !important;
  font-size: 14px !important;
  box-sizing: border-box !important;
}
/* 크기 변형 */
input.krds-input.small, .krds-select.small, input.krds-input.sm, .krds-select.sm { height: 40px !important; font-size: 14px !important; }
input.krds-input.medium, .krds-select.medium { height: 48px !important; font-size: 15px !important; }
input.krds-input.large, .krds-select.large { height: 56px !important; font-size: 16px !important; }
/* 포커스 링 */
input.krds-input:focus, .krds-select:focus, select.krds-input:focus, textarea.krds-input:focus {
  outline: none !important;
  border-color: #2f6bd8 !important;
  box-shadow: 0 0 0 2px rgba(47, 107, 216, .15) !important;
}
/* 상태: 에러 */
.is-error .krds-input, .is-error .krds-select, .krds-input.is-error, .krds-select.is-error { border-color: #e0384d !important; }
.is-error .krds-input:focus, .is-error .krds-select:focus, .krds-input.is-error:focus, .krds-select.is-error:focus { box-shadow: 0 0 0 2px rgba(224, 56, 77, .18) !important; }
/* 상태: 성공 */
.is-success .krds-input, .is-success .krds-select, .krds-input.is-success, .krds-select.is-success { border-color: #1a7f37 !important; }
.is-success .krds-input:focus, .is-success .krds-select:focus, .krds-input.is-success:focus, .krds-select.is-success:focus { box-shadow: 0 0 0 2px rgba(26, 127, 55, .18) !important; }

/* ───────── 송무(law) 공통 표준 (2026-07-22 디자인 정리) ───────── */
/* 총건수 */
.law-total { font-size: 15px; color: #333; margin: 12px 0 6px; }
.law-total strong { color: #1f3974; font-weight: 700; font-size: 17px; }
/* 부가 텍스트(셀 보조·외 N건 등) */
.law-cell-sub { color: #888; font-size: 12px; }
/* 검색폼 정본 = 라벨 위·4열 그리드 (doc 패턴). input/select 는 셀 100%(240 min-width 무력화) */
.law-search-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 16px; align-items: end; }
.law-search-grid .full { grid-column: 1 / -1; }
.law-search-grid > div > label { display: block; font-size: 13px; color: #444; margin-bottom: 4px; font-weight: 500; }
.law-search-grid .krds-input,
.law-search-grid .krds-select,
.law-search-grid input,
.law-search-grid select { width: 100% !important; min-width: 0 !important; box-sizing: border-box; }
.law-search-actions { margin-top: 14px; display: flex; gap: 8px; justify-content: center; }
/* 목록 상단 툴바 (총건수 ↔ 우측 액션버튼) */
.law-list-head { display: flex; justify-content: space-between; align-items: center; margin: 14px 0 4px; }
.law-list-head .law-actions { display: flex; gap: 8px; }
/* 상태 뱃지 */
.law-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 12px; }
.law-badge.wait { background: #eef0f3; color: #555; }
.law-badge.appr { background: #e6f4ea; color: #1a7f37; }
.law-badge.rjct { background: #fdecec; color: #c5303a; }
/* 목록 행 액션 칩 버튼 — promWorkList .pwl-btn 동일 규격(12px/3px 10px), a·button 겸용 (2026-07-27) */
.law-chip-btn { display: inline-block; font-size: 12px; padding: 3px 10px; border-radius: 6px; border: 1px solid #c2cee0;
                background: #fff; color: #1f3974; cursor: pointer; line-height: 1.5; white-space: nowrap;
                text-decoration: none; text-align: center; vertical-align: middle; }
.law-chip-btn:hover { background: #eef4fe; color: #1f3974; }
.law-chip-btn.approve { background: #256ef4; border-color: #256ef4; color: #fff; }
.law-chip-btn.approve:hover { background: #1b5cd8; }
.law-chip-btn.reject { background: #fff; border-color: #e03131; color: #c92a2a; }
.law-chip-btn.reject:hover { background: #ffe3e3; }
/* 검색바 v2 (2026-07-27) — 폼 flex 해제(그리드 전폭), 날짜·셀렉트 폭 캡 해제(셀 100% 균일),
   기간=한 셀(.law-date-range), 검색버튼=그리드 마지막 셀 우하단(.law-search-btns) */
form.search-form:has(.law-search-grid) { display: block; }
.search-form .law-search-grid .krds-input,
.search-form .law-search-grid .krds-select,
.search-form .law-search-grid input,
.search-form .law-search-grid select { width: 100% !important; min-width: 0 !important; max-width: none !important; }
.law-date-range { display: flex; align-items: center; gap: 6px; }
.law-date-range .sep { flex: 0 0 auto; color: #8a94a6; }
.law-search-btns { display: flex; gap: 8px; justify-content: flex-end; align-items: flex-end; }
@media (max-width: 900px) { .law-search-btns { grid-column: 1 / -1; justify-content: center; } }
@media (max-width: 900px) { .law-search-grid { grid-template-columns: repeat(2, 1fr); } }

/* ───────── 카드 ───────── */
.krds-card {
  padding: 16px 20px;
  background: #fff;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  margin-bottom: 16px;
}
.krds-card .card-tit {
  margin: 0 0 12px;
  font-size: 1.1em;
  color: #1f3974;
}
.krds-card.add-section {
  background: #f8f9fc;
  border-color: #c5d0e8;
}

/* ───────── 알림 ───────── */
.krds-alert {
  padding: 10px 14px;
  border-radius: 4px;
  margin: 12px 0;
  border: 1px solid;
}
.krds-alert.success {
  background: #e6ffe6;
  border-color: #1e7e34;
  color: #1e7e34;
}
.krds-alert.info {
  background: #e8edf9;
  border-color: #2874a6;
  color: #1f3974;
}
.krds-alert.warn {
  background: #fff7d6;
  border-color: #d68910;
  color: #856404;
}
.krds-alert.danger {
  background: #ffe6e6;
  border-color: #c0392b;
  color: #c0392b;
}

/* ───────── 테이블 (100% 폭 + KRDS override) ───────── */
.krds-table,
.krds-table-wrap > table,
table.tbl-list,
table.tbl-detail {
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff;
  margin: 12px 0;
  table-layout: auto;
}
.krds-table thead th,
table.tbl-list thead th,
table.tbl-detail thead th {
  padding: 12px 10px !important;
  background: #f0f2f5 !important;
  border: none !important;
  border-top: 2px solid #1f3974 !important;
  border-bottom: 1px solid #d1d3d8 !important;
  color: #1f3974 !important;
  font-weight: 600 !important;
  text-align: center !important;
  font-size: 0.95em;
}
.krds-table tbody td,
table.tbl-list tbody td,
table.tbl-detail tbody td {
  padding: 10px 10px !important;
  border: none !important;
  border-bottom: 1px solid #e0e2e6 !important;
  vertical-align: middle !important;
  text-align: center;
  font-size: 0.93em;
}
/* 게시글 상세 본문 — 좌측 정렬 기본(리치텍스트 자체 정렬 style/태그는 그대로 존중). 이미지는 폭 제한. */
.krds-table.tbl-detail td.bbs-detail-content {
  text-align: left;
  vertical-align: top !important;
  line-height: 1.7;
  word-break: break-word;
}
.bbs-detail-content img { max-width: 100%; height: auto; }
/* 첫 열(체크박스/번호) 가운데, 제목 좌측 정렬 */
table.tbl-list tbody td:nth-child(3) {
  text-align: left;
}
table.tbl-list tbody tr:hover {
  background: #fafbfd;
}
table.tbl-detail tbody th {
  padding: 10px 12px !important;
  background: #f8f9fc !important;
  border: none !important;
  border-bottom: 1px solid #e0e2e6 !important;
  text-align: left !important;
  width: 18%;
  color: #333;
  font-weight: 500;
}
.empty-row {
  text-align: center !important;
  padding: 32px !important;
  color: #888;
}

/* ───────── 규정 본문 내 컨텐츠 표 (CKEditor HTML형식조문/별표 등) — 셀 여백 ─────────
   본문 래퍼 .prov-body(HTML조문은 prov-html-body 가 prov-body 동시 보유) 기준.
   관리자 미리보기(.pv-body)·사용자 전문뷰어(.lawview-body) 둘 다 이 div 를 통과하므로
   공통 rlms-compat.css 한 곳으로 미리보기·사용자 화면에 동시 적용된다(#7).
   작성자 인라인 스타일이 있으면 우선되도록 !important 는 쓰지 않는다. */
.prov-body table { border-collapse: collapse; margin: 8px 0; }
.prov-body table td,
.prov-body table th { padding: 6px 10px; border: 1px solid #cbd2dd; vertical-align: top; }
.prov-body table th { background: #f4f6fa; }

/* ───────── 버튼 영역 ───────── */
.btn-area {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 16px 0;
}
.btn-area.right { justify-content: flex-end; }
.btn-area.center { justify-content: center; }
.btn-area.left { justify-content: flex-start; }

/* 버튼 보강 (KRDS 의 .krds-btn 위에 추가) */
.krds-btn.danger {
  background-color: var(--krds-light-color-element-danger);
  border-color: var(--krds-light-color-border-danger);
  color: var(--krds-light-color-text-inverse-static);
}
.krds-btn.danger:hover {
  background-color: var(--krds-color-light-danger-60);
  border-color: var(--krds-color-light-danger-60);
}
.krds-btn.danger:active,
.krds-btn.danger:focus {
  background-color: var(--krds-color-light-danger-70);
  border-color: var(--krds-color-light-danger-70);
}

/* KRDS form/table helpers */
.krds-table.tbl-list td.left,
.krds-table.tbl-detail td.left {
  text-align: left !important;
}
.krds-form table.tbl-detail .krds-input {
  width: min(100%, 520px);
  box-sizing: border-box;
}
.krds-form table.tbl-detail textarea.krds-input {
  width: 100%;
  max-width: 100%;
  min-height: 160px;
  resize: vertical;
}
.krds-form table.tbl-detail .error {
  display: block;
  margin-top: 6px;
  color: var(--krds-light-color-text-danger);
  font-size: 0.9em;
}
.krds-form table.tbl-detail label.required::after {
  content: " *";
  color: var(--krds-light-color-text-danger);
}

/* 폼 입력/셀렉트 톤은 위 "KRDS 입력 크기·상태 체계"(medium 기본)에서 전역 통일 */

/* ───────── 합계 표시 ───────── */
.list-total {
  margin: 12px 0;
  color: #555;
}
.list-total strong { color: #1f3974; font-size: 1.05em; }

/* ───────── 페이지네이션 컨테이너 ───────── */
.krds-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 24px 0;
  gap: 4px;
  font-size: 0.95em;
}
/* eGov ImagePaginationRenderer 가 출력한 텍스트 페이징 정돈 */
.krds-pagination a,
.krds-pagination strong,
.krds-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid #d1d3d8;
  border-radius: 4px;
  background: #fff;
  color: #333;
  text-decoration: none;
}
.krds-pagination a:hover {
  background: #e8edf9;
  border-color: #1f3974;
  color: #1f3974;
}
.krds-pagination strong {
  background: #1f3974;
  color: #fff;
  border-color: #1f3974;
  font-weight: 600;
}
/* eGov 이미지가 안 떠서 alt 텍스트만 보이는 케이스 정리 */
.krds-pagination img {
  vertical-align: middle;
}

/* ───────── 체크박스 인라인 ───────── */
.krds-check {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ═══════════════════════════════════════════════════════════
   반응형 — 모바일/태블릿
═══════════════════════════════════════════════════════════ */

/* 태블릿 이하 (1024px) */
@media (max-width: 1024px) {
  .rlms-admin-lnb { flex: 0 0 180px; }
  .rlms-admin-main { padding: 16px; }
}

/* 모바일 (768px 이하) — LNB 가 위쪽 가로 메뉴로 */
@media (max-width: 768px) {
  .rlms-header {
    /* 두 줄로 감길 때(브랜드/액션+버거) 세로 0 패딩이면 아랫줄이 통합검색 바에 붙는다(2026-08-04) */
    padding: 8px 12px;
    height: auto;
    min-height: 50px;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
  }
  .rlms-header-brand { font-size: 0.95em; }
  .rlms-header-actions { gap: 6px; }
  .rlms-header-actions .rlms-user-name { font-size: 0.85em; }
  .rlms-header-actions .rlms-link {
    font-size: 0.85em;
    padding: 3px 8px;
  }

  /* 본문 wrap: 세로 배치 */
  .rlms-admin-wrap {
    flex-direction: column;
    min-height: auto;
  }
  .rlms-admin-lnb {
    flex: 0 0 auto;
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #d1d3d8;
    padding: 8px 0;
    overflow-x: auto;
    white-space: nowrap;
  }
  .rlms-admin-lnb .lnb-tit {
    display: inline-block;
    border: none;
    padding: 8px 12px 4px;
    font-size: 0.85em;
  }
  .rlms-admin-lnb .lnb-list {
    display: inline-flex;
    margin: 0;
  }
  .rlms-admin-lnb .lnb-list li a {
    padding: 4px 10px;
    font-size: 0.85em;
  }
  .rlms-admin-main { padding: 12px; }

  /* 카드 그리드는 JSP 의 auto-fit 이 자동 처리 */

  /* 페이지 헤더 */
  .page-header h1 { font-size: 1.3em; }

  /* front GNB 줄바꿈 */
  .rlms-front-gnb {
    padding: 8px 12px;
    gap: 8px;
    font-size: 0.9em;
  }

  /* 검색 폼 세로 정렬 */
  .krds-form .form-group.inline {
    flex-direction: column;
    align-items: stretch;
  }
  .krds-form .form-conts { width: 100%; }
  .krds-form .krds-input,
  .krds-form .krds-select,
  .krds-form .krds-form-select { width: 100%; }

  /* 테이블 가로 스크롤 */
  .krds-table,
  table.tbl-list,
  table.tbl-detail {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}

/* 작은 모바일 (480px 이하) */
@media (max-width: 480px) {
  .rlms-header-brand { font-size: 0.85em; }
  .rlms-plain-card { min-width: auto; width: 100%; padding: 20px; }
  .rlms-front-quicksch { flex-wrap: wrap; }
}

/* ═══════════════════════════════════════════════════════════
   초광폭 (2K+ ~ 2560px) — 본문 여백 + 카드 자동 확장
═══════════════════════════════════════════════════════════ */
@media (min-width: 1600px) {
  .rlms-admin-main { padding: 32px 48px; }
  .rlms-admin-lnb { flex: 0 0 260px; }
}

/* 규정 편집 (CKEditor) 같이 본문 전체를 쓰는 화면용 — 추가 클래스 */
.rlms-fullwidth { max-width: none !important; }
.rlms-fullwidth + .rlms-admin-main { max-width: none !important; }

/* ═══════════════════════════════════════════════════════════
   규정 편집 IDE (3-pane: 좌측 트리 + 중앙 본문 + 우측 관련자료)
═══════════════════════════════════════════════════════════ */
.rlms-ide-wrap {
  position: fixed;          /* 부모 main 의 padding 영향 X */
  top: 60px;                /* 헤더 높이 */
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  gap: 0;
}

/* 좌측 트리 */
.rlms-ide-left {
  flex: 0 0 320px;
  background: #f8f9fc;
  border-right: 1px solid #d1d3d8;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.rlms-ide-left .ide-actions-tit {
  padding: 10px 16px;
  background: #1f3974;
  color: #fff;
  font-weight: 600;
  font-size: 14px;          /* 좌측 영역 헤더 — 본문 13px 보다 살짝 큼 */
  letter-spacing: 0.5px;
}
.rlms-ide-left .ide-actions {
  padding: 6px 0;
  border-bottom: 1px solid #d1d3d8;
  background: #fff;
}
.rlms-ide-left .ide-action {
  display: block;
  padding: 7px 16px;
  color: #333;
  text-decoration: none;
  font-size: 13px;            /* 일반 KRDS 본문 기준 — 화면 간 통일 */
  line-height: 1.4;
}
.rlms-ide-left .ide-action::before {
  content: '· ';
  color: #888;
}
.rlms-ide-left .ide-action:hover {
  background: #e8edf9;
  color: #1f3974;
  font-weight: 500;
}
.rlms-ide-left .ide-sub-actions {
  margin: -2px 0 4px;
  padding: 0 0 2px;
  background: #f8f9fc;
}
.rlms-ide-left .ide-action.ide-action-child {
  padding-left: 30px;
  font-size: 12.5px;
  color: #4b5565;
}
.rlms-ide-left .ide-action.ide-action-child::before {
  content: '- ';
  color: #9aa3b2;
}
.rlms-ide-left .ide-action.active,
.rlms-ide-left .ide-action.ide-action-child.active {
  background: #dfe8fb;
  color: #1f3974;
  font-weight: 600;
}
/* 트리 검색창 (보강 2) */
.rlms-ide-left .ide-tree-search {
  position: relative;
  padding: 8px 10px;
  border-bottom: 1px solid #d1d3d8;
  background: #fff;
}
.rlms-ide-left .ide-tree-search input {
  width: 100%;
  padding: 6px 28px 6px 10px;
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  font-size: 0.9em;
  box-sizing: border-box;
}
.rlms-ide-left .ide-tree-search input:focus {
  outline: none;
  border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31, 57, 116, 0.15);
}
.rlms-ide-left .ide-tree-search button {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: transparent;
  font-size: 1.1em;
  color: #888;
  cursor: pointer;
  line-height: 1;
}
.rlms-ide-left .ide-tree-search button:hover { color: #1f3974; }

.rlms-ide-left .ide-tabs {
  display: flex;
  border-bottom: 1px solid #d1d3d8;
}
.rlms-ide-left .ide-tab {
  flex: 1;
  padding: 10px;
  border: none;
  background: #eef1f5;
  color: #555;
  cursor: pointer;
  border-right: 1px solid #d1d3d8;
  font-size: 13px;
}
.rlms-ide-left .ide-tab:last-child { border-right: none; }
.rlms-ide-left .ide-tab.active {
  background: #fff;
  color: #1f3974;
  font-weight: 600;
  border-bottom: 2px solid #1f3974;
}
.rlms-ide-left .ide-tree-pane {
  flex: 1 1 auto;
  overflow: auto;
  padding: 8px 0;
  display: none;
  font-size: 13px;           /* jsTree 기본 11px 을 본문 톤으로 통일 */
}
.rlms-ide-left .ide-tree-pane.active { display: block; }
/* jsTree 내부 노드 폰트 — 일반 본문 톤으로 통일 */
.rlms-ide-left .jstree-default .jstree-anchor {
  font-size: 13px;
  line-height: 22px;
}
.rlms-ide-left .jstree-default .jstree-node,
.rlms-ide-left .jstree-default .jstree-icon {
  line-height: 22px;
}

/* 중앙 본문 */
.rlms-ide-main {
  flex: 1 1 auto;
  min-width: 0;
  overflow: auto;
  padding: 0;
  background: #fff;
  display: flex;
  flex-direction: column;
}

/* 노드 컨텍스트 액션 바 (본문 상단 고정) */
.rlms-ide-main .ide-action-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  background: #f8f9fc;
  border-bottom: 1px solid #d1d3d8;
  flex: 0 0 auto;
}
.rlms-ide-main .ide-action-bar-label {
  font-weight: 600;
  color: #1f3974;
  font-size: 0.95em;
}
.rlms-ide-main .ide-action-bar-buttons {
  display: inline-flex;
  gap: 6px;
  margin-left: auto;
}
.rlms-ide-main .ide-action-bar-buttons .krds-btn {
  padding: 5px 12px;
  font-size: 0.88em;
  background: #fff;
  border: 1px solid #1f3974;
  color: #1f3974;
  border-radius: 4px;
  cursor: pointer;
}
.rlms-ide-main .ide-action-bar-buttons .krds-btn:hover {
  background: #1f3974;
  color: #fff;
}

/* 중앙 본문 내부 padding 은 각 pane 에 직접 */
.rlms-ide-main #idePlaceholder,
.rlms-ide-main .ide-context-pane {
  padding: 24px;
  flex: 1 1 auto;
  overflow: auto;
}

/* ── 조항 편집 폼 ── */
.rlms-ide-main .ide-prov-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding-bottom: 10px;
  margin-bottom: 16px;
  border-bottom: 2px solid #1f3974;
}
.rlms-ide-main .ide-prov-head h2 { margin: 0; color: #1f3974; font-size: 1.3em; }
.rlms-ide-main .ide-prov-status { font-size: 0.85em; padding: 2px 8px; border-radius: 3px; }
.rlms-ide-main .ide-prov-status.exist { background: #e8edf9; color: #1f3974; }
.rlms-ide-main .ide-prov-status.new   { background: #fff7d6; color: #856404; }

.rlms-ide-main .ide-form-row { margin-bottom: 14px; }
/* 인라인 행은 라벨/입력칸 상단 기준 정렬 — 한쪽 칼럼에만 도움말(hint)이 붙어도
   입력칸 위치가 어긋나지 않도록 flex-start 로 맞춘다 (이전 flex-end 는 hint 만큼 밀림). */
.rlms-ide-main .ide-form-row.inline { display: flex; gap: 16px; align-items: flex-start; }
.rlms-ide-main .ide-form-col { flex: 1 1 auto; }
.rlms-ide-main .ide-form-col.narrow { flex: 0 0 200px; }
/* 라벨 없는 체크박스/라디오 칼럼 — 빈 라벨 스페이서로 라벨행을 비워두고,
   본문은 입력칸 높이(krds small)만큼 세로 중앙 정렬해 옆 입력칸과 높이를 맞춘다. */
.rlms-ide-main .ide-form-col .ide-col-spacer {
  display: block; visibility: hidden; user-select: none;
}
.rlms-ide-main .ide-form-checkcol .ide-check-line {
  display: flex; align-items: center; flex-wrap: wrap;
  min-height: var(--krds-size-height-6, 4rem);
}
/* HTML형식조문 선택 시 노출되는 "관련파일 바로열람" 체크 — 한 줄 유지 (두 줄 줄바꿈 방지) */
.rlms-ide-main #idePromRelFileViewWrap { flex: 0 0 auto; white-space: nowrap; }
.rlms-ide-main #idePromRelFileViewWrap label { white-space: nowrap; }
/* 규정형식 select 폭 고정 — 두번째 요소(스타일 select / 관련파일 체크)가 바뀌어도
   첫 select(규정형식)는 항상 컨테이너의 절반 폭을 유지해 크기가 변하지 않도록 한다. */
.rlms-ide-main #idePromProvFlag,
.rlms-ide-main #idePromProvStyleCd,
.rlms-ide-main #idePromProvFileNo { flex: 0 0 calc(50% - 4px); }
.rlms-ide-main .ide-form-row label,
.rlms-ide-main .ide-form-col label {
  display: block;
  font-weight: 600;
  color: #1f3974;
  margin-bottom: 5px;
  font-size: 0.95em;
}
/* KRDS input 4요소 (component_09_03) — 별표(required) / 라벨 힌트 / 도움말(form-hint) 표준 룩 */
.rlms-ide-main label .required { color: #d4351c; font-weight: 700; margin-left: 2px; }
.rlms-ide-main label .hint { font-weight: 400; color: #8a8f99; font-size: 0.88em; margin-left: 4px; }
.rlms-ide-main .ide-form-hint,
.rlms-ide-main .form-hint-information,
.rlms-ide-main .form-hint-invalid,
.rlms-ide-main .form-hint-success {
  display: block; margin-top: 4px; font-size: 0.82em; line-height: 1.5; font-weight: 400;
}
.rlms-ide-main .ide-form-hint,
.rlms-ide-main .form-hint-information { color: #5f6368; }
.rlms-ide-main .form-hint-information::before { content: "\2139"; margin-right: 4px; color: #2563eb; }
.rlms-ide-main .form-hint-invalid { color: #d4351c; }
.rlms-ide-main .form-hint-invalid::before { content: "\26A0"; margin-right: 4px; }
.rlms-ide-main .form-hint-success { color: #00833e; }
.rlms-ide-main .form-hint-success::before { content: "\2713"; margin-right: 4px; }
.rlms-ide-main .ide-form-input {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  font-size: 0.95em;
  box-sizing: border-box;
}
.rlms-ide-main .ide-form-input:focus {
  outline: none;
  border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31, 57, 116, 0.15);
}
.rlms-ide-main textarea.ide-form-input { resize: vertical; }

/* 규정 IDE 폼 입력 — KRDS .krds-input.small 표준 적용 (component_09_03) + IDE 레이아웃 보강.
   .krds-input.small 은 height 고정이라 textarea 는 height:auto 예외 처리. */
.rlms-ide-main .krds-input { width: 100%; box-sizing: border-box; }
.rlms-ide-main textarea.krds-input { height: auto; min-height: 80px; resize: vertical; padding: 7px 10px; line-height: 1.5; }
.rlms-ide-main select.krds-input { padding-right: 1.8rem; }

/* 법령 본문 탭 (개정이유/주요내용/부칙/서문) */
.rlms-ide-main .ide-pbody-tabs {
  display: flex;
  gap: 2px;
  margin-bottom: 6px;
}
.rlms-ide-main .ide-pbtab {
  padding: 6px 14px;
  border: 1px solid #d1d3d8;
  border-bottom: none;
  background: #eef1f5;
  color: #555;
  cursor: pointer;
  font-size: 0.9em;
  border-radius: 4px 4px 0 0;
}
.rlms-ide-main .ide-pbtab.active {
  background: #fff;
  color: #1f3974;
  font-weight: 600;
  border-bottom: 2px solid #1f3974;
  margin-bottom: -1px;
}
.rlms-ide-main .ide-pbody {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #c4c6cd;
  border-radius: 0 4px 4px 4px;
  font-size: 0.9em;
  box-sizing: border-box;
  resize: vertical;
}
.rlms-ide-main .ide-form-actions {
  margin-top: 18px;
  display: flex;
  gap: 8px;
}
.rlms-ide-main .ide-form-actions .krds-btn {
  padding: 7px 18px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.95em;
}
.rlms-ide-main .ide-form-actions .krds-btn.primary {
  background: #1f3974; color: #fff; border: 1px solid #1f3974;
}
.rlms-ide-main .ide-form-actions .krds-btn.primary:hover { background: #163265; }
.rlms-ide-main .ide-form-actions .krds-btn:not(.primary) {
  background: #fff; color: #333; border: 1px solid #c4c6cd;
}
.rlms-ide-main .ide-form-actions .krds-btn:not(.primary):hover { background: #f0f2f5; }
.rlms-ide-main .ide-placeholder {
  text-align: center;
  padding: 80px 24px;
  color: #777;
}
.rlms-ide-main .ide-placeholder h2 {
  color: #1f3974;
  margin: 0 0 16px;
}
.rlms-ide-main .ide-help-list {
  list-style: none;
  padding: 0;
  margin: 24px auto;
  max-width: 560px;
  text-align: left;
}
.rlms-ide-main .ide-help-list li {
  padding: 8px 0;
  border-bottom: 1px dashed #d1d3d8;
}
.rlms-ide-main .ide-context-info {
  padding: 16px;
  background: #f8f9fc;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
}
.rlms-ide-main .ide-context-info h2 { color: #1f3974; margin-top: 0; }

/* 우측 관련자료 */
.rlms-ide-right {
  flex: 0 0 260px;
  background: #1f3974;
  color: #fff;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.rlms-ide-right .ide-related-tit {
  margin: 0;
  padding: 14px 16px;
  background: #163265;
  font-size: 14px;          /* 우측 헤더 — 본문 13px 보다 살짝 큼 */
  font-weight: 600;
}
.rlms-ide-right .ide-related-head { display: flex; flex-direction: column; }
/* ── 카테고리 필터 (레거시 우측 패널 전체보기 드롭다운) ── */
.rlms-ide-right .ide-related-filter {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 12px;
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.15);
}
.rlms-ide-right .ide-related-filter label {
  font-size: 11px; color: rgba(255,255,255,0.62);
  font-weight: 600; flex: 0 0 auto;
}
.rlms-ide-right .ide-related-filter select {
  flex: 1 1 auto; min-width: 0;
  padding: 4px 8px;
  background: #fff; color: #1f3974;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 3px;
  font-size: 12px;
  cursor: pointer;
}
/* 필터 적용 — data-filter 가 'all' 외엔 매칭 안 되는 kind 행만 숨김.
   빈 그룹은 JS (ideFilterRelKind) 가 toggle */
.rlms-ide-right .ide-related-list[data-filter]:not([data-filter="all"]) .ide-rel-item { display: none; }
.rlms-ide-right .ide-related-list[data-filter="file"]  .ide-rel-item.kind-file,
.rlms-ide-right .ide-related-list[data-filter="orgn"]  .ide-rel-item.kind-orgn,
.rlms-ide-right .ide-related-list[data-filter="word"]  .ide-rel-item.kind-word,
.rlms-ide-right .ide-related-list[data-filter="html"]  .ide-rel-item.kind-html,
.rlms-ide-right .ide-related-list[data-filter="image"] .ide-rel-item.kind-image,
.rlms-ide-right .ide-related-list[data-filter="url"]   .ide-rel-item.kind-url,
.rlms-ide-right .ide-related-list[data-filter="dmn"]   .ide-rel-item.kind-dmn { display: flex; }
.rlms-ide-right .ide-cate-mgr-btn {
  display: block; width: 100%;
  margin: 0; padding: 7px 16px;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.62);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.rlms-ide-right .ide-cate-mgr-btn::before {
  content: "\2699\00A0";          /* ⚙ — 관리 성격 암시, 작게 */
  opacity: 0.7;
}
.rlms-ide-right .ide-cate-mgr-btn:hover {
  background: rgba(255,255,255,0.06);
  color: #fff;
}
.rlms-ide-right .ide-related-actions {
  list-style: none;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(255,255,255,0.15);
}
.rlms-ide-right .ide-related-actions li a {
  display: block;
  padding: 10px 16px;
  color: #fff;
  text-decoration: none;
  font-size: 13px;          /* 일반 본문 톤과 동일 — 통일 우선 */
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.rlms-ide-right .ide-related-actions li a:hover {
  background: rgba(255,255,255,0.1);
  font-weight: 500;
}
.rlms-ide-right .ide-related-list {
  flex: 1 1 auto;
  overflow: auto;
  padding: 12px;
}
.rlms-ide-right .ide-related-list .empty {
  text-align: center;
  color: rgba(255,255,255,0.7);
  font-size: 0.9em;
  margin: 32px 0;
}
.rlms-ide-right .ide-attach-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rlms-ide-right .ide-attach-list li {
  padding: 7px 8px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  font-size: 0.88em;
  line-height: 1.4;
}
.rlms-ide-right .ide-attach-list li a {
  color: #fff;
  text-decoration: none;
}
.rlms-ide-right .ide-attach-list li a:hover { text-decoration: underline; }
.rlms-ide-right .ide-attach-list .ext { color: rgba(255,255,255,0.6); font-size: 0.85em; }
.rlms-ide-right .ide-attach-list .cat { color: #a9c3ef; font-size: 0.8em; }

/* jsTree 정돈 (KRDS 톤) — 2단계 이후 사용 */
.rlms-ide-left .jstree-default {
  font-size: 0.92em;
}
.rlms-ide-left .jstree-default .jstree-clicked {
  background: #e8edf9;
  color: #1f3974;
  font-weight: 500;
}

/* 정적 트리 (1단계 — jsTree 없이 순수 HTML/CSS) */
.rlms-ide-left .ide-tree,
.rlms-ide-left .ide-tree ul {
  list-style: none;
  padding-left: 16px;
  margin: 0;
}
.rlms-ide-left .ide-tree { padding-left: 8px; font-size: 0.92em; }
.rlms-ide-left .ide-tree li { padding: 2px 0; }
.rlms-ide-left .ide-tree-folder {
  cursor: pointer;
  padding: 2px 4px;
  display: inline-block;
  color: #1f3974;
}
.rlms-ide-left .ide-tree-folder::before {
  content: '▸';
  display: inline-block;
  width: 14px;
  color: #555;
}
.rlms-ide-left .ide-tree-folder.ide-tree-open::before { content: '▾'; }
.rlms-ide-left .ide-tree-folder:hover {
  background: #e8edf9;
  color: #1f3974;
}
.rlms-ide-left .ide-tree-leaf {
  display: inline-block;
  padding: 2px 4px;
  color: #333;
  text-decoration: none;
}
.rlms-ide-left .ide-tree-leaf::before { content: '· '; color: #888; }
.rlms-ide-left .ide-tree-leaf:hover {
  background: #e8edf9;
  color: #1f3974;
}

/* ── 별표/별지서식 트리 노드 상태 표시 (레거시 tree_document_* 동등) ── */
/* 이전 회차에서 상속된 행: 회색 + 이탤릭 (직접 만들지 않았다는 시각 신호) */
.jstree-anchor.tree_document_provius { color: #888; font-style: italic; }
/* SDISP_YN='N' 숨김 행: 취소선 + 더 흐림 */
.jstree-anchor.tree_document_display { color: #b00; text-decoration: line-through; opacity: 0.7; }

/* ── 우측 패널: 관련자료 카테고리 그룹화 (레거시 식 TB_REL_VRSN + TB_REL_VRSN_CATE) ── */
.rlms-ide-right .ide-rel-group { margin: 0 0 18px 0; }
.rlms-ide-right .ide-rel-cate-title {
  font-size: 14px; font-weight: 700;
  color: #ffffff;
  margin: 0 0 6px 0; padding: 7px 10px;
  background: #1f3974;
  border-radius: 4px 4px 0 0;
  letter-spacing: 0.3px;
  display: flex; align-items: center; gap: 6px;
}
.rlms-ide-right .ide-rel-cate-title .cnt {
  color: #cdd6e8; font-weight: 600; font-size: 12px;
  background: rgba(255,255,255,0.18);
  padding: 1px 8px; border-radius: 10px;
}
.rlms-ide-right .ide-rel-cate-title.is-empty-cate {
  background: #888; color: #fff;
}
.rlms-ide-right .ide-rel-cate-title.is-empty-cate::before {
  content: '⚐ '; opacity: 0.8;
}
.rlms-ide-right .ide-rel-items { list-style: none; margin: 0; padding: 0 6px; }
.rlms-ide-right .ide-rel-item {
  display: flex; align-items: center; gap: 6px;
  padding: 5px 6px; border-radius: 3px;
  font-size: 13px; line-height: 1.45;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.rlms-ide-right .ide-rel-item:last-child { border-bottom: none; }
.rlms-ide-right .ide-rel-item:hover { background: rgba(255, 255, 255, 0.08); }
.rlms-ide-right .ide-rel-item a { color: #fff; text-decoration: none; flex: 1;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rlms-ide-right .ide-rel-item a:hover { color: #ffd966; text-decoration: underline; }
.rlms-ide-right .ide-rel-icon { font-size: 15px; flex: 0 0 20px; text-align: center; color: #cfd9f0; }
.rlms-ide-right .ide-rel-kind { font-size: 11px; color: #cfd9f0;
  background: rgba(255, 255, 255, 0.12); padding: 2px 6px; border-radius: 10px; flex: 0 0 auto;
  font-weight: 600;
}
/* 상속(이전 회차) 자료 배지 — 이 회차에서는 보기/인용만, 삭제 버튼 미노출 */
.rlms-ide-right .ide-rel-inherit { font-size: 11px; color: #2b2f3a;
  background: #e8b84b; padding: 2px 6px; border-radius: 10px; flex: 0 0 auto;
  font-weight: 700;
}
.rlms-ide-right .ide-rel-item.is-inherited a { color: #e6ecf7; }
/* kind 별 강조 (선택) */
.rlms-ide-right .ide-rel-item.kind-url   a:hover { color: #9fc5ff; }
.rlms-ide-right .ide-rel-item.kind-image .ide-rel-icon { color: #f5b942; }
/* 우측 항목 복사(📋) + 삭제(×) 버튼 — hover 시 강조. 레거시 의 icon_copy.gif / icon_delete.gif 대응 */
.rlms-ide-right .ide-rel-copy,
.rlms-ide-right .ide-rel-del {
  flex: 0 0 auto;
  width: 22px; height: 22px;
  padding: 0; margin-left: 2px;
  background: transparent;
  border: 1px solid transparent;
  color: rgba(255,255,255,0.4);
  border-radius: 3px;
  font-size: 14px; line-height: 1;
  cursor: pointer;
  opacity: 0;
  transition: opacity .12s, color .12s, background .12s;
}
.rlms-ide-right .ide-rel-del { font-size: 16px; }
.rlms-ide-right .ide-rel-item:hover .ide-rel-copy,
.rlms-ide-right .ide-rel-item:hover .ide-rel-del { opacity: 1; }
.rlms-ide-right .ide-rel-copy:hover {
  background: rgba(52,152,219,0.7); border-color: #3498db; color: #fff;
}
.rlms-ide-right .ide-rel-del:hover {
  background: rgba(192,57,43,0.7); border-color: #c0392b; color: #fff;
}
/* 우측 미니 토스트 — KRDS 풀 토스트보다 가벼움, 우측 패널 작업 피드백용 */
.ide-toast {
  position: fixed;
  right: 28px; bottom: 28px;
  max-width: 360px;
  padding: 12px 18px;
  background: rgba(15, 25, 50, 0.92);
  color: #fff;
  font-size: 13px;
  line-height: 1.5;
  border-radius: 6px;
  box-shadow: 0 4px 18px rgba(0,0,0,0.25);
  white-space: pre-wrap;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .16s, transform .16s;
  z-index: 99999;
}
.ide-toast.show { opacity: 1; transform: translateY(0); }

/* ── 중앙: 회차 본문 일괄 편집기 (레거시 "버전관리용조문편집") ── */
.rlms-ide-main #ideContextProvBulk { padding: 16px 20px; }
.rlms-ide-main .ide-bulk-toolbar {
  display: flex; align-items: center; gap: 6px;
  margin: 8px 0 6px 0;
  padding-bottom: 8px; border-bottom: 1px solid #e0e6f0;
}
.rlms-ide-main .ide-bulk-toolbar .ide-bulk-meta {
  margin-left: auto; color: #555; font-size: 12px;
}
.rlms-ide-main .ide-bulk-toolbar .ide-bulk-meta #ideBulkRowCnt {
  color: #1f3974; font-weight: 700;
}
.rlms-ide-main .ide-bulk-help {
  background: #fffbe6; border: 1px solid #ffd666;
  color: #614500; padding: 8px 10px; border-radius: 4px;
  font-size: 12px; margin-bottom: 8px;
}
.rlms-ide-main .ide-bulk-body {
  width: 100%; box-sizing: border-box;
  height: calc(calc(100vh / var(--rlms-zoom, 1)) - 320px); min-height: 360px;
  /* 한글 폰트(D2Coding/맑은고딕)를 앞에 — 원숫자 ①②③ 가 라틴 모노스페이스의
     반각 작은 글리프 대신 전각으로 제대로 렌더되도록 (레거시 사규 항기호 가독성) */
  font-family: 'D2Coding','Malgun Gothic','맑은 고딕','Cascadia Mono','Consolas',monospace;
  font-size: 14px; line-height: 1.75;
  border: 1px solid #c5d0e3; border-radius: 4px;
  padding: 12px; resize: vertical;
  white-space: pre; tab-size: 2;
}

/* 단건 조 편집 textarea — 일괄과 동일 톤 */
.rlms-ide-main #ideProvContents {
  width: 100%; box-sizing: border-box;
  /* 한글 폰트(D2Coding/맑은고딕)를 앞에 — 원숫자 ①②③ 가 라틴 모노스페이스의
     반각 작은 글리프 대신 전각으로 제대로 렌더되도록 (레거시 사규 항기호 가독성) */
  font-family: 'D2Coding','Malgun Gothic','맑은 고딕','Cascadia Mono','Consolas',monospace;
  font-size: 14px; line-height: 1.75;
  border: 1px solid #c5d0e3; border-radius: 4px;
  padding: 12px; resize: vertical;
  white-space: pre-wrap; tab-size: 2;
}
.rlms-ide-main #ideProvContents:focus {
  outline: none; border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31,57,116,0.15);
}

/* 본문 위 특수문자 팔레트 — 클릭→커서 위치 삽입 */
.ide-charpalette {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin: 6px 0 8px;
  padding: 6px 8px;
  background: #f7f8fa;
  border: 1px solid #e3e6ec;
  border-radius: 5px;
}
.ide-charpalette .ide-cp-grp {
  display: inline-flex; flex-wrap: wrap; gap: 2px;
  padding-right: 8px;
  border-right: 1px solid #d6dbe8;
}
.ide-charpalette .ide-cp-grp:last-child { border-right: none; padding-right: 0; }
.ide-charpalette button {
  min-width: 26px; height: 26px;
  padding: 0 6px;
  background: #fff;
  border: 1px solid #d3d6dd;
  border-radius: 3px;
  font-family: 'Malgun Gothic','Apple SD Gothic Neo',sans-serif;
  font-size: 13px; line-height: 24px;
  color: #1f3974;
  cursor: pointer;
  transition: background .12s, border-color .12s;
}
.ide-charpalette button:hover {
  background: #eef2fb; border-color: #1f3974;
}
.ide-charpalette button:active {
  background: #1f3974; color: #fff;
}

/* 일괄 편집기 추가 컨트롤 (항기호 토글 / 이전개정작업내용) */
.rlms-ide-main .ide-bulk-toggle {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 13px; color: #333;
  padding: 4px 8px; background: #fff; border: 1px solid #c5d0e3;
  border-radius: 4px; cursor: pointer;
}
/* 조문 펼침/개요 상태표시형 토글 버튼 — 라벨이 수행할 동작을 표시 */
.rlms-ide-main .ide-bulk-outline-btn {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; color: #1f3974; font-weight: 500;
  padding: 5px 12px; background: #fff; border: 1px solid #c5d0e3;
  border-radius: 4px; cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
}
.rlms-ide-main .ide-bulk-outline-btn::before {
  content: '\25BC';            /* ▼ 전체 펼침 가능 상태 (기본) */
  font-size: 10px; opacity: 0.7;
}
.rlms-ide-main .ide-bulk-outline-btn:hover {
  background: #eef2fb; border-color: #1f3974;
}
/* "문서에서 가져오기" 버튼 — 액션성 강조(녹색) */
.rlms-ide-main .ide-bulk-import-btn {
  display: inline-flex; align-items: center;
  font-size: 13px; color: #1d7a47; font-weight: 600;
  padding: 5px 12px; background: #eafbf1;
  border: 1px solid #9bd9b6; border-radius: 4px; cursor: pointer;
  transition: background .12s, border-color .12s;
}
.rlms-ide-main .ide-bulk-import-btn:hover { background: #d4f4e1; border-color: #1d7a47; }
/* 개요 모드(접힘) 활성 — 채워진 강조 + 아이콘을 ▶ 로 (펼칠 수 있음 암시) */
.rlms-ide-main .ide-bulk-outline-btn.is-outline {
  background: #1f3974; border-color: #1f3974; color: #fff;
}
.rlms-ide-main .ide-bulk-outline-btn.is-outline::before {
  content: '\25B6';            /* ▶ 접힌 상태 */
  opacity: 0.9;
}
.rlms-ide-main .ide-bulk-history {
  padding: 4px 8px; border: 1px solid #c5d0e3; border-radius: 4px;
  font-size: 13px; background: #f5f5f7; min-width: 180px;
}
.rlms-ide-main .ide-bulk-history:disabled { color: #999; }

/* 날짜 필드 + 보조 버튼 (연혁등록/연혁수정 폼) */
.rlms-ide-main .ide-date-cell {
  display: flex; align-items: center; gap: 4px;
}
.rlms-ide-main .ide-date-cell .ide-date {
  flex: 1 1 auto; min-width: 130px;
}

/* 소관부서 셀 + 선택 모달 */
.rlms-ide-main .ide-buseo-cell {
  display: flex; align-items: center; gap: 4px;
}
.rlms-ide-main .ide-buseo-cell .ide-form-input { flex: 1 1 auto; min-width: 100px; }

/* ── 체크박스/라디오 전역 복원 ───────────────────────────────────
   KRDS component.css 는 input[type=radio/checkbox] "전역" 을 1×1px sr-only 로 클리핑(전부 !important)하고
   .krds-form-check 래퍼의 label::before/::after 가 커스텀 박스를 그리는 마크업을 기대한다.
   → 래퍼 없이 쓰는 일반(bare) 체크박스/라디오가 화면에서 전부 사라지는 원인.
   여기서 전역을 네이티브 외형으로 복원하고, 바로 아래에서 KRDS 래퍼(.krds-form-check) 안의 input 만
   다시 sr-only 로 숨겨 KRDS 커스텀 렌더 화면(로그인 등)은 그대로 보존한다.
   (rlms-compat.css 가 KRDS 뒤에 로드되므로 동일 셀렉터의 !important 는 여기가 이긴다) */
/* html 프리픽스 = 특이성 (0,1,2) — KRDS 원본 (0,1,1)과 !important 동률일 때 로드순서 무관하게 승리 */
html input[type=radio],
html input[type=checkbox] {
  -webkit-appearance: auto !important;
  -moz-appearance: auto !important;
  appearance: auto !important;
  position: static !important;
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  margin: 0 4px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  accent-color: #1f3974;
  vertical-align: middle !important;
  cursor: pointer;
}
html input[type=radio]    { border-radius: 50% !important; }
html input[type=checkbox] { border-radius: 3px !important; }

/* ── 셀렉트 전역 복원 — common.css select{appearance:none} 되이김.
   KRDS 화살표는 .krds-form-select 배경이미지 전제인데 JSP 사용 0건 → 전 화면 드롭다운이
   ▼ 화살표 없는 평평한 박스로 보이던 문제. */
html select {
  -webkit-appearance: auto !important;
  -moz-appearance: auto !important;
  appearance: auto !important;
}
/* KRDS 정식 셀렉트 마크업 도입 대비 재차단 (자체 배경이미지 화살표 사용) */
.krds-form-select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

/* ── hr 전역 복원 — common.css 가 hr 을 sr-only 클리핑(스크린리더 전용 취급) → 구분선 소실.
   RLMS 는 KRDS 표준 헤더/푸터 템플릿(숨김 hr 의도처)을 안 쓰므로 전역 복원 안전. */
html hr {
  position: static !important;
  width: auto !important;
  height: 0 !important;
  margin: 12px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-top: 1px solid #d1d3d8 !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: visible !important;
  white-space: normal !important;
}

/* KRDS 정식 마크업(숨긴 input + label 이 ::before 로 그림) 은 원래 패턴 유지 — input 재숨김.
   form-check 외에 같은 패턴인 form-chip / form-toggle-switch 도 이중렌더 방지를 위해 커버.
   (form-toggle-switch 는 2026-07-31 규정 뷰어 상단 바에서 실제 사용 시작 — 선커버가 그대로 맞았다) */
.krds-form-check input[type=radio],
.krds-form-check input[type=checkbox],
.krds-form-chip input[type=radio],
.krds-form-chip input[type=checkbox],
.krds-form-toggle-switch input[type=checkbox] {
  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;
}

/* ── ide-native-input — KRDS 커스텀 라디오/체크박스 reset 완전 무력화. (전역 복원 이전의 옵트인 잔존 — 유지)
   KRDS 가 input[type=radio/checkbox] 를 hidden + label::before 로 그리는 패턴 차단. */
input.ide-native-input,
.rlms-ide-main input.ide-native-input,
.rlms-ide-wrap input.ide-native-input {
  -webkit-appearance: auto !important;
  -moz-appearance: auto !important;
  appearance: auto !important;
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  margin: 0 4px 0 0 !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  clip: auto !important;
  clip-path: none !important;
  overflow: visible !important;
  pointer-events: auto !important;
  vertical-align: middle !important;
  background: #fff !important;
  border: 1px solid #888 !important;
  box-shadow: none !important;
  transform: none !important;
}
input.ide-native-input[type="radio"] { border-radius: 50% !important; }
input.ide-native-input[type="checkbox"] { border-radius: 3px !important; }
/* KRDS 가 label::before 로 가짜 라디오/체크박스 그리는 패턴 차단 */
.rlms-ide-main .ide-form-check::before,
.rlms-ide-main .ide-form-check::after {
  content: none !important;
}

/* ── 폼 체크박스 / 라디오 — KRDS reset 으로 가려진 input 강제 표시 ───── */
.rlms-ide-main .ide-form-check {
  display: inline-flex !important;
  align-items: center;
  gap: 5px;
  margin: 0 12px 0 0;
  font-size: 0.95em;
  cursor: pointer;
  white-space: nowrap;
}
.rlms-ide-main .ide-form-check input[type="radio"],
.rlms-ide-main .ide-form-check input[type="checkbox"] {
  -webkit-appearance: auto !important;
  -moz-appearance: auto !important;
  appearance: auto !important;
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #888 !important;
  vertical-align: middle;
  cursor: pointer;
  box-shadow: none !important;
}
.rlms-ide-main .ide-form-check input[type="radio"] { border-radius: 50% !important; }
.rlms-ide-main .ide-form-check input[type="checkbox"] { border-radius: 3px !important; }

/* ── 폼 보조 버튼 — KRDS sm 사이즈로 정리 (작은 액션) ─────
   날짜 셀(오늘/리셋/제·개정일자/시행일), 소관부서 셀(선택/지움) 등.
   cell 컨텍스트로 매칭 — sm 클래스 유무 무관 일관 적용. */
.rlms-ide-main .ide-date-cell .krds-btn,
.rlms-ide-main .ide-buseo-cell .krds-btn {
  padding: 0 10px !important;
  font-size: 12px !important;
  min-width: auto !important;
  min-height: 0 !important;
  height: 30px !important;
  line-height: 1 !important;
  white-space: nowrap;
  border-radius: 4px;
  box-sizing: border-box;
}

/* 일괄편집 toolbar / 메인 액션(저장/취소/수정하기) — 기본 사이즈 */
.rlms-ide-main .ide-bulk-toolbar .krds-btn,
.rlms-ide-main .ide-form-actions .krds-btn {
  padding: 0 14px !important;
  font-size: 13px !important;
  min-height: 0 !important;
  height: 34px !important;
  line-height: 1 !important;
}

/* 헤더 액션 버튼 (분류이동/삭제 등) — 보조 버튼과 동일 사이즈 */
.rlms-ide-main .ide-prov-head .krds-btn {
  padding: 0 12px !important;
  font-size: 12px !important;
  min-height: 0 !important;
  min-width: auto !important;
  height: 30px !important;
  line-height: 1 !important;
  white-space: nowrap;
}

/* ── 우측 패널: 자동링크 제외범위 박스 (F3) ───────────── */
.rlms-ide-right .ide-excl-box {
  margin: 12px 8px 8px 8px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 4px;
}
.rlms-ide-right .ide-excl-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 8px;
}
.rlms-ide-right .ide-excl-tit {
  margin: 0; font-size: 13px; font-weight: 600; color: #fff;
}
.rlms-ide-right .ide-btn-edit-excl {
  height: 26px !important; padding: 0 10px !important; font-size: 12px !important;
  background: #fff !important; color: #1f3974 !important; border: 1px solid #cfd9f0 !important;
}
.rlms-ide-right .ide-btn-edit-excl:hover {
  background: #ffd966 !important; color: #1f3974 !important;
}
.rlms-ide-right .ide-excl-list {
  list-style: none; margin: 0; padding: 0;
  max-height: 160px; overflow: auto;
  font-size: 12px;
}
.rlms-ide-right .ide-excl-list li {
  padding: 4px 0; border-bottom: 1px dashed rgba(255,255,255,0.15);
  color: #e7ecf5;
}
.rlms-ide-right .ide-excl-list li:last-child { border-bottom: none; }
.rlms-ide-right .ide-excl-list .empty { color: #aab8d8; font-style: italic; }
.rlms-ide-right .ide-excl-kind {
  font-size: 10px; padding: 1px 5px; border-radius: 8px;
  background: rgba(255,255,255,0.15); color: #cfd9f0; margin-right: 4px;
}
.rlms-ide-right .ide-excl-name { color: #fff; }

/* 모달 안 jsTree — 폰트 사이즈 1pt 작게 (분류이동 모달 등) */
.ide-modal-tree .jstree-anchor,
.ide-modal-tree .jstree-node {
  font-size: 13px;
}

/* 모달 액션 버튼 — 작게 통일 (이동하기/취소 등) */
.ide-modal .ide-modal-actions .krds-btn {
  padding: 0 14px !important;
  font-size: 13px !important;
  min-height: 0 !important;
  min-width: auto !important;
  height: 32px !important;
  line-height: 1 !important;
  margin-left: 6px;
}

/* 취소/보조 버튼 — 흰 배경 + 검은 테두리(outline) */
.krds-btn.ide-btn-cancel {
  background: #fff !important;
  color: #333 !important;
  border: 1px solid #888 !important;
  box-shadow: none !important;
}
.krds-btn.ide-btn-cancel:hover {
  background: #f4f4f4 !important;
  border-color: #555 !important;
}

/* 공통 모달 */
.ide-modal {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center;
  z-index: 9999;
}
.ide-modal-box {
  background: #fff; border-radius: 8px;
  width: 520px; max-width: calc(90vw / var(--rlms-zoom, 1)); max-height: calc(80vh / var(--rlms-zoom, 1));
  display: flex; flex-direction: column;
  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
}
.ide-modal-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 1px solid #d1d3d8;
}
.ide-modal-head h3 { margin: 0; font-size: 16px; color: #1f3974; }
.ide-modal-close {
  background: none; border: none; font-size: 24px; line-height: 1;
  color: #666; cursor: pointer; padding: 0 4px;
}
.ide-modal-close:hover { color: #c0392b; }
.ide-modal-body { padding: 18px 20px; overflow-y: auto; }

/* 모달 내부 폼 (.rlms-ide-main 스코프가 닿지 않으므로 모달 전용 정의) */
.ide-modal .ide-form-row { margin-bottom: 16px; }
.ide-modal .ide-form-row:last-of-type { margin-bottom: 0; }
.ide-modal .ide-form-row label {
  display: block;
  font-weight: 600;
  color: #1f3974;
  margin-bottom: 6px;
  font-size: 0.9em;
}
.ide-modal .ide-form-row .hint { font-weight: 400; color: #8a8f99; font-size: 0.85em; }
.ide-modal .ide-form-row .req  { color: #c0392b; }
.ide-modal .ide-form-input {
  width: 100%;
  padding: 8px 11px;
  border: 1px solid #c4c6cd;
  border-radius: 5px;
  font-size: 0.92em;
  box-sizing: border-box;
  background: #fff;
}
.ide-modal .ide-form-input:focus {
  outline: none;
  border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31,57,116,0.15);
}
.ide-modal input.ide-form-input[type="file"] { padding: 7px 10px; cursor: pointer; }
.ide-modal .ide-form-input:disabled { background: #f3f4f6; color: #9aa0a8; cursor: not-allowed; }

/* 파일 등록 모달 — 종류 탭 (2026-07-30 파일 업로드 3개 입구 통합) */
.ide-file-tabs {
  display: flex;
  gap: 4px;
  margin: 0 0 14px;
  border-bottom: 1px solid #dde5f2;
}
.ide-file-tabs .ide-file-tab {
  border: 1px solid transparent;
  border-bottom: 0;
  background: none;
  color: #5a6b85;
  font-size: 0.9em;
  padding: 8px 16px;
  border-radius: 6px 6px 0 0;
  cursor: pointer;
  margin-bottom: -1px;
}
.ide-file-tabs .ide-file-tab:hover { background: #f2f6fd; color: #1f3974; }
.ide-file-tabs .ide-file-tab.active {
  background: #fff;
  border-color: #dde5f2;
  border-bottom: 1px solid #fff;
  color: #1f3974;
  font-weight: 700;
}
/* 관련자료 메뉴 — 통합 항목의 부제(어떤 종류를 포함하는지) */
.rlms-ide-right .ide-related-actions li a .ide-ra-sub { color: #8b99ad; font-size: 0.86em; font-weight: 400; }

/* 컨텍스트 칩 (회차/조항 안내) */
.ide-file-ctx {
  display: inline-block;
  margin-bottom: 14px;
  padding: 4px 12px;
  background: #eef2fb;
  color: #1f3974;
  border-radius: 12px;
  font-size: 0.82em;
  font-weight: 600;
}

/* 선택 파일 목록 프리뷰 */
/* KRDS file-upload (component_09_04) — 규정 IDE 모달 적용. rlms-compat.css 가 KRDS 뒤 로드라 모달 톤으로 보강.
   ※ 드롭존 클래스는 KRDS 표준 `.file-upload` 가 아니라 `.ide-file-drop` 으로 의도적으로 다르게 둔다.
     krds.min.js 의 krds_fileUpload.init() 가 `.file-upload` 마다 `querySelector("button").addEventListener(...)`
     를 무가드로 호출하는데, 이 드롭존엔 버튼이 없어(투명 input 오버레이 패턴) null.addEventListener 콘솔
     에러가 매 페이지로드마다 떴다. 드래그앤드롭·클릭선택은 promEditor 자체 JS(#ideFileDrop/#ideFileInput)가
     전담하므로 KRDS init 이 이 엘리먼트를 잡지 못하게 클래스명을 분리. `.file-upload` 로 되돌리지 말 것. */
.krds-file-upload { width: 100%; }
.krds-file-upload .ide-file-drop {
  position: relative; display: flex; align-items: center; justify-content: center;
  min-height: 60px; padding: 16px; margin-top: 4px;
  border: 2px dashed #c4c6cd; border-radius: 6px; text-align: center; cursor: pointer;
  transition: border-color .2s, background .2s;
}
.krds-file-upload .ide-file-drop.active { border-color: #1f3974; background: #eef2fb; }
/* 투명 input 으로 드롭존 전체를 덮어 "어디를 눌러도 파일선택" 이 되게 함.
   KRDS component.css 는 [type=file] 을 1×1px sr-only 로 클리핑(전부 !important) — 그대로 두면
   input 이 1px 로 줄어 드롭존/"파일 선택" 클릭이 무반응이 됨 → !important 로 되이김. */
.krds-file-upload .ide-file-drop input[type=file] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  clip: auto !important;
  overflow: visible !important;
  opacity: 0;
  cursor: pointer;
}
.krds-file-upload .ide-file-drop .txt { font-size: 0.92em; color: #555; }
.krds-file-upload .ide-file-drop .txt strong { color: #1f3974; }
.krds-file-upload .file-list .total { font-size: 0.82em; color: #6b7280; margin: 8px 0 2px; }
.krds-file-upload .upload-list { list-style: none; margin: 6px 0 0; padding: 0; }
.krds-file-upload .upload-list > li {
  margin-top: 4px; padding: 5px 10px;
  background: #f7f8fa; border: 1px solid #e6e8ec; border-radius: 4px;
}
.krds-file-upload .upload-list .file-info { display: flex; align-items: center; gap: 8px; }
.krds-file-upload .upload-list .file-name {
  flex: 1 1 auto; color: #222; word-break: break-all; font-size: 0.85em;
}
.krds-file-upload .upload-list .file-name .fs { color: #8a8f99; margin-left: 8px; }
.krds-file-upload .upload-list .btn-wrap { flex: 0 0 auto; }
.krds-file-upload .upload-list .upload-delete-btn {
  position: static; border: 1px solid #d0d3d9; background: #fff; color: #b91c1c;
  border-radius: 4px; padding: 2px 8px; font-size: 0.8em; cursor: pointer;
}
.krds-file-upload .upload-list .upload-delete-btn:hover { background: #fde8e8; border-color: #f0b4b4; }
.krds-file-upload .upload-list .ide-file-thumb {
  flex: 0 0 auto; width: 36px; height: 36px; object-fit: cover;
  border: 1px solid #d3d6dd; border-radius: 3px; background: #fff;
}
.ide-file-notice {
  margin-top: 8px;
  padding: 8px 12px;
  background: #fff7d6;
  color: #856404;
  border: 1px solid #f0e0a0;
  border-radius: 4px;
  font-size: 0.82em; line-height: 1.5;
}

/* 액션 영역 + 진행 표시 */
.ide-modal .ide-modal-actions {
  display: flex; align-items: center; gap: 8px;
  margin-top: 20px; padding-top: 14px;
  border-top: 1px solid #eceef2;
}
.ide-modal .ide-modal-actions .ide-file-progress {
  flex: 1 1 auto; color: #1f3974; font-size: 0.82em;
}

/* 넓은 모달 (카테고리 관리 등) */
.ide-modal-box--wide { width: 680px; }

/* ── promEditor 인라인 스타일 정리 (2026-06-11) ─────────────────────
   JSP 의 style="" 어트리뷰트를 클래스로 이전. display:none 같은
   JS 토글 상태값만 인라인 잔존. */

/* 모달 박스 폭 변형 (규정분류이동/유효성검사/제외범위/규정연계) */
.ide-modal-box--w680 { min-width: 680px; max-width: 880px; }
.ide-modal-box--w720 { min-width: 720px; max-width: 880px; }
.ide-modal-box--w760 { min-width: 760px; max-width: 920px; }
.ide-modal-box--w980 { width: 980px; max-height: calc(88vh / var(--rlms-zoom, 1)); }

/* 모달 안내문 — 표 위 설명 한 줄 / 하단 회색 힌트 문단 */
.ide-modal .ide-modal-desc { margin: 0 0 8px; color: #555; }
.ide-modal .ide-modal-desc.small { margin-bottom: 6px; font-size: 12px; color: #666; }
.ide-modal p.hint { margin: 10px 0 0; color: #8a8f99; }

/* 모달 안 2칼럼 폼 행 (별표등록/HTML조항등록 — 번호+가지번호) */
.ide-modal .ide-form-row.cols { display: flex; gap: 12px; }
.ide-modal .ide-form-row.cols > div { flex: 1; }

/* 모달 안 좌(트리)/우(정보) 2분할 (분류이동/제외범위) */
.ide-split-layout { display: flex; gap: 16px; align-items: flex-start; }
.ide-split-main { flex: 1 1 auto; min-width: 300px; }
.ide-split-side { flex: 0 0 320px; }
.ide-split-sec { margin-bottom: 14px; }
.ide-split-tit { font-weight: 600; margin-bottom: 6px; }
.ide-excl-layout .ide-split-main { min-width: 340px; }
.ide-excl-layout .ide-split-side { flex-basis: 340px; }

/* 모달 트리 박스 (jsTree 컨테이너 외곽) */
.ide-modal .ide-modal-tree { height: 420px; overflow: auto; border: 1px solid #ccc; padding: 6px; background: #fff; }
.ide-modal .ide-modal-tree--short { height: 380px; }

/* 모달 액션 줄 — 트리 바로 아래 등 좁은 간격 변형 */
.ide-modal .ide-modal-actions.tight { margin-top: 8px; }

/* 모달 정보표 (이동전/이동후) */
.ide-modal-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ide-modal-table th, .ide-modal-table td { border: 1px solid #ddd; padding: 6px 8px; }
.ide-modal-table th { text-align: left; background: #f4f7fd; width: 80px; }

/* 조문 유효성검사 결과표 */
.ide-validate-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.ide-validate-tbl th, .ide-validate-tbl td { border: 1px solid #ddd; padding: 6px 8px; }
.ide-validate-tbl thead tr { background: #f4f7fd; }
.ide-validate-tbl th.col-no { width: 110px; }
/* 유효성 결과 행 클릭 이동 — 위치 라벨(조·항) + 행번호 2단 표기 */
.ide-validate-tbl tr.v-jump { cursor: pointer; }
.ide-validate-tbl tr.v-jump:hover td { background: #eef3fb; }
.ide-validate-tbl .v-where { display: block; font-weight: 700; color: #1f3974; }
.ide-validate-tbl .v-lineno { display: block; font-size: 11px; color: #8a93a5; text-decoration: underline; }
.ide-validate-tbl th.col-chk, .ide-validate-tbl th.col-fix { width: 180px; }
.ide-validate-tbl td.center { text-align: center; }
.ide-validate-tbl td.status { text-align: center; padding: 14px; color: #888; }
.ide-validate-tbl td.status.ok { color: #1f9d55; }
.ide-validate-tbl td.problem { color: #c0392b; }
.ide-validate-tbl td.fix { color: #555; }
.ide-validate-summary { text-align: right; margin: 10px 0 0; font-weight: 600; color: #1f3974; }

/* 인용링크 제외범위 모달 — 컨텍스트 문구/제외 목록/목록 행 */
.ide-excl-ctx { margin-bottom: 8px; font-size: 13px; color: #555; }
.ide-excl-modal-list { list-style: none; padding: 6px; margin: 0; border: 1px solid #ccc; height: 420px; overflow: auto; background: #fff; }
.ide-excl-modal-list .empty { color: #888; }
.ide-excl-modal-list .empty.fail { color: #f88; }
.rlms-ide-right .ide-excl-list .empty.fail { color: #f88; }
.ide-excl-modal-item { display: flex; align-items: center; gap: 6px; padding: 4px 6px; border-bottom: 1px solid #eee; }
.ide-excl-modal-item .ide-excl-kind { font-size: 11px; color: #666; background: #eef; padding: 1px 6px; border-radius: 8px; }
.ide-excl-modal-item .ide-excl-name { flex: 1; font-size: 13px; }
.ide-excl-modal-item .ide-excl-new { color: #f96; font-style: normal; font-size: 11px; }

/* 미니 버튼 — 목록 행 안 [제외] 등 (모달 액션 32px 보다 한 단계 작게) */
.krds-btn.ide-btn-mini { height: 24px !important; min-height: 0 !important; padding: 0 8px !important; font-size: 11px !important; line-height: 1 !important; }

/* 문서에서 가져오기 — 추출 미리보기 textarea */
.ide-doc-import-preview { width: 100%; height: 340px; font-family: 'D2Coding','Malgun Gothic',monospace; font-size: 13px; line-height: 1.7; border: 1px solid #c5d0e3; border-radius: 4px; padding: 10px; resize: vertical; }

/* ── 연혁 일괄 수정 모달 (레거시 multipleUpdate) ───────────────────────── */
.ide-multi-ctx { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: #1f3974; }
.ide-multi-tbl-wrap { max-height: calc(56vh / var(--rlms-zoom, 1)); overflow: auto; border: 1px solid #cdd6e6; border-radius: 4px; }
.ide-multi-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ide-multi-tbl thead th {
  position: sticky; top: 0; z-index: 2;
  background: #eef2fb; color: #1f3974; font-weight: 600;
  border: 1px solid #cdd6e6; padding: 5px 6px; text-align: center; white-space: nowrap;
}
.ide-multi-tbl tbody td { border: 1px solid #e1e6ef; padding: 4px 6px; vertical-align: middle; }
.ide-multi-tbl td.col-lawno { text-align: center; width: 64px; white-space: nowrap; }
.ide-multi-tbl td.col-gj    { width: 150px; }
.ide-multi-tbl td.col-num   { width: 150px; }
.ide-multi-tbl th.col-date, .ide-multi-tbl td.col-date { width: 130px; }
.ide-multi-tbl td.col-hide, .ide-multi-tbl td.col-view, .ide-multi-tbl td.col-del { text-align: center; width: 52px; }
.ide-multi-tbl tbody tr.is-current td { background: #f7faff; }
.ide-multi-tbl input[type="text"],
.ide-multi-tbl input[type="number"],
.ide-multi-tbl input[type="date"],
.ide-multi-tbl select { width: 100%; box-sizing: border-box; height: 28px; padding: 2px 6px; font-size: 12.5px; border: 1px solid #c5d0e3; border-radius: 3px; background: #fff; }
.ide-multi-tbl .ide-multi-lawno { width: 52px; text-align: center; }
.ide-multi-tbl .ide-multi-hide { width: auto; height: auto; }
.ide-multi-cur-badge { display: block; margin-top: 2px; font-size: 10px; color: #1f9d55; font-weight: 700; }
.ide-multi-tbl td.status { text-align: center; padding: 18px; color: #888; }
.ide-multi-tbl .krds-btn { height: 24px !important; min-height: 0 !important; padding: 0 8px !important; font-size: 11px !important; line-height: 1 !important; }
.ide-multi-actions { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.ide-multi-actions .ide-multi-spacer { flex: 1; }
.ide-multi-actions .ide-multi-delall { margin-right: auto; }

/* HTML 표 첨부 모달 — CKEditor 대체 전 원본 textarea */
#ideHtmlBody { width: 100%; }

/* 규정연계/URL연계 staging 표 — 칼럼 폭 (JS 렌더 문자열에서 이전) */
.ide-dmn-stage-tbl th.col-kind { width: 60px; }
.ide-dmn-stage-tbl .col-cur { width: 90px; text-align: center; }
.ide-lnk-stage-tbl th.col-cate { width: 120px; }
.ide-lnk-stage-tbl th.col-title { width: 30%; }

/* 좌측 트리 — 연혁목차 빈 안내 문단 */
.ide-tree-hint { padding: 16px; color: #888; }

/* ── IDE 좌측 '작업중(draft)' 패널 — 미승인 draft 재발견 목록 ───────────
   분류 트리는 현행만 실으므로 편집중/승인요청/승인반려 draft 는 이 패널이 유일한 IDE 내 진입점. */
.rlms-ide-left .ide-draft-cnt {
  display: inline-block; min-width: 16px; padding: 0 5px; margin-left: 2px;
  border-radius: 9px; background: #e03131; color: #fff;
  font-size: 11px; line-height: 16px; text-align: center; vertical-align: 1px;
}
.rlms-ide-left .ide-draft-desc { padding: 12px 12px 4px; font-size: 12px; line-height: 1.5; }
.rlms-ide-left .ide-draft-list { display: flex; flex-direction: column; gap: 6px; padding: 8px 10px 14px; }
.rlms-ide-left .ide-draft-item {
  display: flex; flex-direction: column; gap: 3px; padding: 9px 11px;
  border: 1px solid #dfe3ec; border-radius: 8px; background: #fff;
  text-align: left; cursor: pointer; font: inherit;
}
.rlms-ide-left .ide-draft-item:hover { border-color: #2a5cb8; background: #f5f8ff; }
.rlms-ide-left .ide-draft-status {
  align-self: flex-start; padding: 1px 8px; border-radius: 10px;
  font-size: 11px; font-weight: 700; line-height: 16px;
}
.rlms-ide-left .ide-draft-status.s-edit { background: #fff3d6; color: #8a6100; }
.rlms-ide-left .ide-draft-status.s-req  { background: #e1ecff; color: #1f4fa5; }
.rlms-ide-left .ide-draft-status.s-rej  { background: #ffe3e3; color: #a52a2a; }
.rlms-ide-left .ide-draft-title { font-size: 13px; font-weight: 700; color: #222; word-break: break-all; }
.rlms-ide-left .ide-draft-meta  { font-size: 11px; color: #888; }

/* ── IDE — 회차 작업 드롭다운 ([회차 작업 ▾] — 승인요청/수정권한/조문입력/분류이동/삭제 통합) ── */
.rlms-ide-main .ide-prom-actions { margin-left: auto; position: relative; }
.rlms-ide-main .ide-actmenu {
  display: none; position: absolute; right: 0; top: calc(100% + 4px);
  min-width: 170px; padding: 6px; z-index: 60;
  background: #fff; border: 1px solid #c9d6e8; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
}
.rlms-ide-main .ide-actmenu.open { display: block; }
.rlms-ide-main .ide-actmenu button {
  display: block; width: 100%; padding: 8px 12px;
  border: 0; background: none; border-radius: 6px;
  text-align: left; font-size: 13.5px; color: #1d2433; cursor: pointer;
}
.rlms-ide-main .ide-actmenu button:hover { background: #eef4fe; }
.rlms-ide-main .ide-actmenu button.danger { color: #c92a2a; }
.rlms-ide-main .ide-actmenu button.danger:hover { background: #ffe3e3; }

/* ── IDE — 승인/수정권한 반려 상태·사유 카드 ─────────────────────────── */
.ide-prov-status.rejected { background: #ffe3e3; color: #a52a2a; }
.ide-reject-box {
  margin: 0 0 14px; padding: 12px 14px;
  border: 1px solid #f1c0c0; background: #fff5f5; border-radius: 8px;
  color: #7a2626; font-size: 13.5px;
}
.ide-reject-box b { display: block; margin-bottom: 6px; color: #a52a2a; }
.ide-reject-box .ide-reject-reason { white-space: pre-wrap; color: #5c3333; line-height: 1.6; }

/* ── 외부 원문 참조 카드 (법제처 등 SURL 규정) — 공용 정본.
   provisionList/promPreview 는 자체 인라인 CSS(동일 룩), promDetail 등 mgr 화면은 여기 것 사용. */
.lv-extref{margin:14px 0 18px;padding:16px 18px;border:1px solid #cdd9ef;background:#f4f8ff;border-radius:10px;}
.lv-extref .lv-extref-tit{font-weight:700;color:#1f3974;margin-bottom:6px;font-size:15px;}
.lv-extref .lv-extref-desc{margin:0 0 12px;color:#555;font-size:13.5px;line-height:1.6;}
.lv-extref .lv-extref-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 18px;background:#1f3974;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;}
.lv-extref .lv-extref-btn:hover{background:#163063;color:#fff;}

/* 중앙 노드정보 패널 — 힌트/액션 영역 */
.ide-ctx-hint { color: #777; }
.ide-ctx-actions { margin-top: 14px; }

/* 메타폼 — 연혁번호(30%)/분류(70%) 칼럼 비율 */
.rlms-ide-main .ide-form-col.w30 { flex: 0 0 calc(30% - 8px); }
.rlms-ide-main .ide-form-col.w70 { flex: 0 0 calc(70% - 8px); }

/* 메타폼 — 체크라인 라벨/간격, 규정형식 동적 셀, 개정분기 카드 자리 */
.rlms-ide-main .ide-check-line .ide-check-lbl { margin-right: 8px; font-size: 0.95em; }
.rlms-ide-main .ide-check-line .ide-form-check { margin-right: 10px; }
.rlms-ide-main .ide-check-line .ide-form-check:last-child { margin-right: 0; }
/* 체크/라디오 그룹은 KRDS 공식 래퍼(krds-check-area: flex+gap)가 간격 담당 — 별도 룰 불필요 */
.rlms-ide-main .ide-flag-cell { display: flex; gap: 8px; }
#idePromRelFileViewWrap { align-items: center; }
.rlms-ide-main #ideDocuBranchBox { margin: 6px 0; }

/* 카테고리 — 새 항목 추가 패널 */
.ide-cate-add {
  border: 1px solid #e3e6ec;
  background: #f9fafc;
  border-radius: 6px;
  padding: 14px 16px;
  margin-bottom: 16px;
}
.ide-cate-add-title {
  font-weight: 700; color: #1f3974; font-size: 0.88em;
  margin-bottom: 10px;
}
.ide-cate-add-grid {
  display: flex; gap: 12px; align-items: flex-end;
}
.ide-cate-fld { display: flex; flex-direction: column; flex: 0 0 auto; }
.ide-cate-fld.grow { flex: 1 1 auto; }
.ide-cate-fld label {
  font-size: 0.78em; font-weight: 600; color: #5a6273; margin-bottom: 5px;
}
.ide-cate-fld .ide-form-input { font-size: 0.88em; }
.ide-cate-fld input[type="number"].ide-form-input { width: 90px; }
.ide-cate-fld select.ide-form-input { width: 130px; }
.ide-cate-add-btn { white-space: nowrap; height: 36px; }

/* 카테고리 — 목록 테이블 */
.ide-cate-list { max-height: calc(46vh / var(--rlms-zoom, 1)); overflow-y: auto; }
.ide-cate-list .empty { color: #8a8f99; text-align: center; padding: 28px 0; font-size: 0.9em; }
.ide-cate-tbl {
  width: 100%; border-collapse: separate; border-spacing: 0;
  font-size: 0.86em;
}
.ide-cate-tbl thead th {
  position: sticky; top: 0;
  background: #eef2fb; color: #1f3974;
  font-weight: 700; text-align: left;
  padding: 9px 10px;
  border-bottom: 1px solid #d6dbe8;
}
.ide-cate-tbl tbody td {
  padding: 7px 10px;
  border-bottom: 1px solid #eef0f4;
  vertical-align: middle;
}
.ide-cate-tbl tbody tr:hover td { background: #f7f9fd; }
.ide-cate-tbl .col-seq  { width: 56px;  text-align: center; color: #6b7280; }
.ide-cate-tbl .col-cnt  { width: 70px;  text-align: center; }
.ide-cate-tbl .col-orgn { width: 140px; }
.ide-cate-tbl .col-act  { width: 64px;  text-align: center; }
.ide-cate-tbl .ide-cate-inp {
  width: 100%; padding: 5px 8px;
  border: 1px solid #d3d6dd; border-radius: 4px;
  font-size: 0.95em; box-sizing: border-box; background: #fff;
}
.ide-cate-tbl .ide-cate-inp:focus {
  outline: none; border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31,57,116,0.13);
}
.ide-cate-badge {
  display: inline-block; min-width: 24px;
  padding: 2px 8px; border-radius: 10px;
  background: #eceff5; color: #4a5468;
  font-weight: 600; font-size: 0.95em;
}
.ide-cate-del {
  border: 1px solid #e0c3c3; background: #fff; color: #b3413a;
  padding: 4px 10px; border-radius: 4px;
  font-size: 0.92em; cursor: pointer;
}
.ide-cate-del:hover { background: #fbeeee; border-color: #c0392b; color: #c0392b; }

/* B4 — 규정 연계 모달: 좌 트리 + 우 staging 두 컬럼 */
.ide-dmn-split { display: flex; gap: 14px; align-items: stretch; }
.ide-dmn-left, .ide-dmn-right {
  flex: 1 1 0; min-width: 0;
  border: 1px solid #e3e6ec; border-radius: 6px;
  background: #fff; display: flex; flex-direction: column;
}
.ide-dmn-left-head, .ide-dmn-right-head {
  padding: 8px 12px;
  background: #eef2fb; color: #1f3974;
  font-weight: 700; font-size: 0.88em;
  border-bottom: 1px solid #d6dbe8;
  display: flex; align-items: center; gap: 8px;
}
.ide-dmn-left-head .hint, .ide-dmn-right-head .hint { font-weight: 400; color: #5a6273; font-size: 0.92em; }
.ide-dmn-tree {
  flex: 1 1 auto;
  max-height: calc(44vh / var(--rlms-zoom, 1)); min-height: 240px;
  overflow: auto; padding: 6px 8px;
  font-size: 0.88em;
}
.ide-dmn-left-foot {
  padding: 8px 12px;
  border-top: 1px solid #eceef2;
  text-align: right;
}
.ide-dmn-list {
  flex: 1 1 auto;
  max-height: calc(44vh / var(--rlms-zoom, 1)); min-height: 240px;
  overflow: auto;
  padding: 0;
}
.ide-dmn-list .empty { color: #8a8f99; text-align: center; padding: 28px 0; font-size: 0.9em; }
.ide-dmn-stage-tbl thead th { position: sticky; top: 0; }

/* B4 — 3-pane picker (레거시 원형 재현) */
.ide-dmn-picker { display: flex; flex-direction: column; }
.ide-dmn-picker-help {
  padding: 8px 12px;
  background: #fff7d6; color: #856404;
  border-bottom: 1px solid #f0e0a0;
  font-size: 0.82em; line-height: 1.5;
}
.ide-dmn-picker-help .hint { color: #8a7a3a; }
.ide-dmn-picker-section {
  border-bottom: 1px solid #eceef2;
  padding: 8px 10px;
  max-height: calc(22vh / var(--rlms-zoom, 1)); overflow: auto;
}
.ide-dmn-picker-section:last-child { border-bottom: none; }
.ide-dmn-picker-title {
  font-size: 0.82em; font-weight: 700; color: #c0392b;
  margin-bottom: 6px;
}
.ide-dmn-picker-laws .empty,
.ide-dmn-picker-provs .empty { color: #8a8f99; font-size: 0.85em; padding: 8px 0; text-align: center; }

.ide-dmn-pick-tbl {
  width: 100%; border-collapse: separate; border-spacing: 0;
  font-size: 0.85em;
}
.ide-dmn-pick-tbl thead th {
  position: static;                       /* .ide-cate-tbl 의 sticky 상속 무력화 */
  background: #eef2fb; color: #1f3974; font-weight: 700; text-align: left;
  padding: 6px 10px; border-bottom: 1px solid #d6dbe8;
}
.ide-dmn-pick-tbl tbody td { padding: 5px 10px; border-bottom: 1px solid #f1f3f7; }
.ide-dmn-pick-tbl tbody tr:hover td { background: #f7f9fd; }
.ide-dmn-pick-tbl .col-pick {
  width: 56px; text-align: center; white-space: nowrap;
}
.ide-dmn-pick-tbl .ide-dmn-pick-cb { vertical-align: middle; cursor: pointer; }
.ide-dmn-prov-sec { margin-bottom: 10px; }
.ide-dmn-prov-sec:last-child { margin-bottom: 0; }
.ide-dmn-prov-sec-head {
  font-size: 0.82em; font-weight: 700; color: #1f3974;
  padding: 4px 8px; background: #f3f5fa;
  border-radius: 3px; margin-bottom: 4px;
}

/* 액션 바: 연계할 컨텐츠 목록 헤더 + [추가하기][저장하기] */
.ide-dmn-actbar {
  display: flex; align-items: center; gap: 8px;
  margin: 14px 0 8px;
  padding: 8px 12px;
  background: #fbeeee; border: 1px solid #f0d6d6; border-radius: 5px;
}
.ide-dmn-actbar-title {
  flex: 1 1 auto;
  font-weight: 700; color: #c0392b; font-size: 0.88em;
}
/* 액션바 버튼([+ 추가하기]/[저장하기]/[+ 행 추가]) — 모달 액션 줄과 동일한 small(32px) */
.ide-dmn-actbar .krds-btn,
.ide-lnk-actbar .krds-btn {
  padding: 0 14px !important;
  font-size: 13px !important;
  min-height: 0 !important;
  min-width: auto !important;
  height: 32px !important;
  line-height: 1 !important;
}

/* B7 — URL 연계 모달 액션바 + 목록 */
.ide-lnk-actbar {
  display: flex; align-items: center; gap: 8px;
  margin: 6px 0 10px;
  padding: 6px 10px;
  background: #f7f8fa; border: 1px solid #e3e6ec; border-radius: 5px;
}
.ide-lnk-actbar-title {
  flex: 1 1 auto;
  font-weight: 700; color: #1f3974; font-size: 0.88em;
}
.ide-lnk-list { max-height: calc(50vh / var(--rlms-zoom, 1)); overflow-y: auto; }
.ide-lnk-list .empty { color: #8a8f99; text-align: center; padding: 28px 0; font-size: 0.9em; }
.ide-lnk-stage-tbl input.ide-cate-inp { font-size: 0.9em; }

/* 단계 C — 관련자료 항목 상세 모달 */
.ide-rel-detail-body { max-height: calc(60vh / var(--rlms-zoom, 1)); overflow: auto; }
.ide-rel-detail-list { list-style: none; margin: 0; padding: 0; }
.ide-rel-detail-list > li {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; margin-bottom: 6px;
  background: #f7f8fa; border: 1px solid #e6e8ec; border-radius: 4px;
  font-size: 0.9em;
}
.ide-rel-detail-list > li:hover { background: #eef2fb; border-color: #c5d0e3; }
.ide-rel-detail-icon { flex: 0 0 auto; font-size: 1.4em; }
.ide-rel-detail-name { flex: 1 1 auto; color: #1f3974; font-weight: 600; word-break: break-all; }
.ide-rel-detail-meta { flex: 0 0 auto; color: #8a8f99; font-size: 0.86em; }
.ide-rel-detail-dl {
  flex: 0 0 auto; padding: 5px 12px;
  font-size: 0.85em; text-decoration: none;
}
.ide-rel-detail-del { flex: 0 0 auto; margin-left: 6px; }

/* 이미지 카드 안 [다운로드][삭제] 가로 배치 */
.ide-rel-detail-imgactions {
  display: flex; gap: 6px; align-items: center;
}
.ide-rel-detail-imgactions .ide-rel-detail-dl { flex: 1 1 auto; text-align: center; }

/* HTML 표 카드 — 제목 + 삭제 가로 배치 */
.ide-rel-detail-htmltit {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px;
}

/* 이미지 그리드 */
.ide-rel-detail-imgwrap {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px;
}
.ide-rel-detail-imgcard {
  display: flex; flex-direction: column; gap: 8px;
  background: #fff; border: 1px solid #e3e6ec; border-radius: 5px;
  padding: 10px;
}
.ide-rel-detail-imgcard img {
  width: 100%; height: 160px; object-fit: contain;
  background: #f3f5fa; border: 1px solid #eceef2; border-radius: 3px;
}
.ide-rel-detail-imgcap {
  font-size: 0.85em; color: #1f3974; font-weight: 600; word-break: break-all;
}

/* HTML 표 */
.ide-rel-detail-html { margin-bottom: 16px; }
.ide-rel-detail-htmltit {
  font-weight: 700; color: #1f3974; font-size: 0.95em;
  margin-bottom: 6px;
}
.ide-rel-detail-htmlbody {
  border: 1px solid #e3e6ec; border-radius: 4px;
  padding: 12px; background: #fff; overflow: auto;
}
.ide-rel-detail-htmlbody table { border-collapse: collapse; }
.ide-rel-detail-htmlbody table, .ide-rel-detail-htmlbody th, .ide-rel-detail-htmlbody td {
  border: 1px solid #c4c6cd;
}
.ide-rel-detail-htmlbody th, .ide-rel-detail-htmlbody td { padding: 6px 10px; }
/* 콘텐츠 영역 표 복원 — common.css table{table-layout:fixed; min-width:100%} 가 사용자 작성 HTML 표
   (B3 관련자료 뷰어, BBS 본문 td.cnt)와 BBS 상세 첨부목록을 균등폭/전폭으로 찌그러뜨리던 문제. */
.ide-rel-detail-htmlbody table,
body td.cnt table {
  table-layout: auto !important;
  min-width: 0 !important;
  width: auto !important;
}
body #egov_file_view_table {
  table-layout: auto;
  min-width: 0;
}

/* 관련자료 WORD 자체변환 — 상세 모달 본문 인라인 미리보기 (.docx/.hwpx 추출 HTML) */
.ide-rel-word-item { display: block; padding: 10px 0; border-bottom: 1px solid #eef0f4; }
.ide-rel-word-item:last-child { border-bottom: 0; }
.ide-rel-word-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.ide-rel-word-head .ide-rel-detail-dl { margin-left: auto; }
.ide-rel-word-body {
  max-height: 460px; overflow: auto;
  border: 1px solid #e3e6ec; border-radius: 4px; padding: 14px 16px; background: #fff;
  font-size: 0.92em; line-height: 1.7; color: #222;
}
.ide-rel-word-body p { margin: 0 0 0.6em; white-space: pre-wrap; word-break: break-word; }
.ide-rel-word-body p:last-child { margin-bottom: 0; }
.ide-rel-word-noconv { color: #6b7280; font-size: 0.88em; padding: 8px 10px; background: #f7f8fa; border-radius: 4px; }

.ide-modal-search {
  display: flex; gap: 6px; margin-bottom: 12px;
}
.ide-modal-search input[type="text"] {
  flex: 1 1 auto; padding: 6px 10px;
  border: 1px solid #c4c6cd; border-radius: 4px;
}
.ide-modal-list { max-height: calc(50vh / var(--rlms-zoom, 1)); overflow-y: auto; }
.ide-modal-list .empty { color: #888; text-align: center; padding: 24px 0; }
.ide-modal-list .ide-buseo-list { list-style: none; padding: 0; margin: 0; }
.ide-modal-list .ide-buseo-list li { border-bottom: 1px solid #eef0f4; }
.ide-modal-list .ide-buseo-list li a {
  display: block; padding: 8px 10px; color: #222; text-decoration: none;
}
.ide-modal-list .ide-buseo-list li a:hover { background: #eef2fb; color: #1f3974; }
.ide-modal-list .ide-buseo-list .fn { color: #888; font-size: 11px; margin-left: 6px; }

/* 좌측 액션 메뉴 — 위험 액션(삭제 등) */
.rlms-ide-left .ide-action.ide-action-danger {
  color: #b03030;
  border-top: 1px solid #e5e7ed;
  margin-top: 4px;
}
.rlms-ide-left .ide-action.ide-action-danger:hover {
  background: #fdecec; color: #8a1a1a;
}
.rlms-ide-left .ide-action.ide-action-danger::before {
  content: '⚠ ';
}

/* 좌측 액션 메뉴 — 주요 액션(파랑 강조) — legacy(기존 호환) */
.rlms-ide-left .ide-action.ide-action-primary {
  background: #1f3974;
  color: #fff;
  font-weight: 600;
  border-bottom: 1px solid #1f3974;
  margin-bottom: 4px;
}
.rlms-ide-left .ide-action.ide-action-primary:hover {
  background: #163265;
  color: #fff;
}
.rlms-ide-left .ide-action.ide-action-primary::before {
  content: '';   /* default · 제거 */
}

/* ────────────────────────────────────────────────
 * prom 모드 액션 패널 (컴팩트 — 좌측 트리에 공간 양보)
 *   · 본문 일괄 편집: 좌측 트리 [조문] 클릭 시 자동 진입 (별도 버튼 없음)
 *   · 빈 회차 삭제: 중앙 메타 폼 상단 toolbar (.ide-prov-head 의 .ide-btn-danger)
 * ──────────────────────────────────────────────── */

.rlms-ide-left .ide-actions.ide-actions-prom {
  padding: 0 0 4px;
}

/* 액션 그룹 (편집 / 보기·검증 / 결재·이력) */
.rlms-ide-left .ide-actions-group {
  padding: 2px 0 4px;
  border-top: 1px solid #eef0f4;
}
.rlms-ide-left .ide-actions-group:first-of-type {
  border-top: none;
}
.rlms-ide-left .ide-actions-group-label {
  margin: 0;
  padding: 8px 16px 3px;
  font-size: 11px;            /* 보조 라벨 — 본문 13px 대비 작게 */
  font-weight: 700;
  color: #8a8f9c;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
/* prom 그룹 내 액션 — 일반 톤(13px)과 동일. 통일 우선 */
.rlms-ide-left .ide-actions-prom .ide-action {
  padding: 7px 16px;
  font-size: 13px;
  line-height: 1.4;
}

/* ── 중앙 메타 폼 상단 "빈 회차 삭제" 작은 빨강 버튼 ── */
.rlms-ide-main .ide-prov-head .ide-btn-danger {
  margin-left: auto;              /* 우측 끝 정렬 */
  background: #fff;
  color: #b03030;
  border: 1px solid #d9a7a7;
  font-size: 0.82em;
  padding: 3px 10px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.rlms-ide-main .ide-prov-head .ide-btn-danger:hover {
  background: #fdecec;
  color: #8a1a1a;
  border-color: #c87878;
}

/* ════════════════════════════════════════════════════════════════
 * eGov 표준 JSP 호환 매핑 — 옛 .board / .search_box / .board_list /
 * .pagination / .btn_* 클래스들을 KRDS 톤(navy #1f3974)으로 통일.
 *
 * 대상: /WEB-INF/jsp/egovframework/com/** 의 219개 JSP
 * 방식: JSP 무수정 — 페이지가 끌어오는 com.css 보다 cascade 후순위라
 *      필요한 곳엔 !important 로 강제 override.
 *
 * KRDS 토큰:
 *   primary navy  #1f3974
 *   accent blue   #2a4a8f (hover)
 *   light tint    #e8edf9
 *   border        #d1d3d8
 *   bg tint       #f5f7fb
 *   danger        #b03030
 *   text          #222 / #555 / #888
 * ════════════════════════════════════════════════════════════════ */

/* ── 컨테이너 (.board) — 옛 width:730px 고정 해제 ── */
body .board {
  position: relative !important;
  width: auto !important;
  max-width: none !important;
  padding: 20px 24px !important;
  background: #fff;
  box-sizing: border-box;
}
body .board > h1,
body .board > h2 {
  color: #1f3974 !important;
  font-size: 1.45em !important;
  font-weight: 700 !important;
  margin: 0 0 16px !important;
  padding: 0 0 10px !important;
  background: none !important;       /* 옛 tit_icon.png 제거 */
  border-bottom: 2px solid #1f3974;
  letter-spacing: -0.2px;
}
body .board > h2 {
  font-size: 1.15em !important;
  border-bottom-width: 1px;
  border-bottom-color: #d1d3d8;
  margin-top: 24px !important;
}
body .board h3 {
  color: #1f3974;
  font-size: 1.0em;
  font-weight: 600;
  margin: 24px 0 10px;
}
body .board h3 b { color: #2a4a8f; }

/* ── 검색 박스 (.search_box) — KRDS 톤 ── */
body .search_box {
  position: relative !important;
  margin: 0 0 12px !important;
  padding: 12px 14px !important;
  border: 1px solid #d1d3d8 !important;
  border-top: 2px solid #1f3974 !important;
  background: #f5f7fb !important;
  border-radius: 4px;
}
body .search_box ul {
  margin: 0; padding: 0;
  list-style: none;
  font-size: 0;
  text-align: right !important;
}
body .search_box ul li {
  display: inline-block !important;
  margin-left: 6px !important;
  font-size: 13px !important;
  vertical-align: middle !important;
}
body .search_box ul li > div,
body .search_box ul li > label {
  color: #1f3974 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 28px !important;
  height: auto !important;
}
body .search_box select,
body .search_box input[type=text],
body .search_box input.s_input,
body .search_box input.s_input2 {
  height: 40px !important;   /* 전역 small(40/14) 통일 (2026-07-24) */
  padding: 0 10px !important;
  border: 1px solid #c4c6cd !important;
  border-radius: 4px !important;
  background: #fff !important;
  font-size: 14px !important;
  box-sizing: border-box;
  vertical-align: middle;
}
body .search_box input.s_input,
body .search_box input.s_input2 {
  min-width: 180px;
}
body .search_box select:focus,
body .search_box input[type=text]:focus,
body .search_box input.s_input:focus {
  outline: none;
  border-color: #1f3974 !important;
  box-shadow: 0 0 0 2px rgba(31, 57, 116, 0.15);
}

/* ── 검색 박스 내부 버튼 (.s_btn, .s_submit, .btn_b 등) ── */
body .search_box input.s_btn,
body .search_box input.s_submit,
body .search_box button.s_btn {
  height: 40px !important;   /* 검색행 입력(40px)과 정렬 (2026-07-24) */
  padding: 0 14px !important;
  border: none !important;
  background: #1f3974 !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  vertical-align: middle;
  transition: background 0.12s;
}
body .search_box input.s_btn:hover,
body .search_box input.s_submit:hover,
body .search_box button.s_btn:hover {
  background: #2a4a8f !important;
}
/* ── eGov bare 버튼/서밋 복원 — common.css 가 button/input[type=submit|button] 을
   투명·무테두리로 reset(옛 button.css 는 DEPRECATED 로 비워져 복구경로 부재) →
   메뉴목록 [저장], 사용자관리 [조회/탈퇴], 선택 팝업 등 egov 표준화면 버튼이 평문 텍스트로 보이던 문제.
   전역 button 복원은 .krds-btn 과 충돌하므로 금지 — 옛 마크업 패턴(span.button, btn_*) 스코프 매핑만. */
body span.button input[type=submit],
body span.button input[type=button],
body span.button button,
body input.btn_login,
body input.btn_03,
body input.s_btn {
  display: inline-block;
  height: 36px;              /* 관리자 표준 액션버튼(36px)과 정렬 (2026-07-24) */
  padding: 0 14px !important;
  border: 1px solid #1f3974 !important;
  border-radius: 4px;
  background: #1f3974 !important;
  color: #fff !important;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
body span.button input[type=submit]:hover,
body span.button input[type=button]:hover,
body span.button button:hover,
body input.btn_login:hover,
body input.btn_03:hover,
body input.s_btn:hover {
  background: #2a4a8f !important;
}
/* '글제목=링크' 패턴 — span.link 안 submit 은 navy 링크 룩 */
body span.link input[type=submit] {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  color: #1f3974 !important;
  cursor: pointer;
  text-align: left;
}
body span.link input[type=submit]:hover { text-decoration: underline; }

body .search_box span.s_btn,
body .search_box span.btn_b {
  display: inline-block !important;
  height: auto !important;
  padding: 0 !important;
  background: #1f3974 !important;
  border-radius: 4px !important;
  vertical-align: middle !important;
  font-size: 0 !important;
  transition: background 0.12s;
}
body .search_box span.s_btn:hover,
body .search_box span.btn_b:hover {
  background: #2a4a8f !important;
}
body .search_box span.s_btn a,
body .search_box span.btn_b a {
  display: inline-block !important;
  padding: 7px 14px !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
}

/* ── 일반 액션 버튼 (.btn_b / .btn_s / .btn_l) ── */
body .btn_b,
body .btn_s,
body .btn_l {
  display: inline-block !important;
  padding: 0 !important;
  background: #1f3974 !important;
  border: none !important;
  border-radius: 4px !important;
  vertical-align: middle !important;
  cursor: pointer !important;
  transition: background 0.12s;
}
body .btn_b:hover,
body .btn_s:hover,
body .btn_l:hover {
  background: #2a4a8f !important;
}
body .btn_b a,
body .btn_s a,
body .btn_l a,
body .btn_b input,
body .btn_s input,
body .btn_l input {
  display: inline-block !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
}
body .btn_s a, body .btn_s input { padding: 5px 10px !important; font-size: 12px !important; }
body .btn_b a, body .btn_b input { padding: 7px 14px !important; }
body .btn_l a, body .btn_l input { padding: 9px 20px !important; font-size: 14px !important; }

/* 보조 변종 — btn_style1..4 (기존 옛 룩이 강하게 들어가 있어 KRDS 톤으로 리셋) */
body .btn_style1,
body .btn_style2,
body .btn_style3,
body .btn_style3c,
body .btn_style4 {
  display: inline-block !important;
  padding: 6px 12px !important;
  border-radius: 4px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  background: #1f3974 !important;
  border: none !important;
  cursor: pointer;
}
body .btn_style2 {
  background: #fff !important;
  color: #1f3974 !important;
  border: 1px solid #1f3974 !important;
}
body .btn_style1:hover, body .btn_style3:hover,
body .btn_style3c:hover, body .btn_style4:hover {
  background: #2a4a8f !important;
  opacity: 1 !important;
}
body .btn_style2:hover { background: #e8edf9 !important; }
body .btn_style1 a, body .btn_style3 a, body .btn_style4 a {
  color: #fff !important; font-size: 13px !important; font-weight: 600 !important;
  text-decoration: none !important;
}
body .btn_style2 a { color: #1f3974 !important; font-size: 13px !important; }

/* ── 목록 테이블 (.board_list) ── */
body .board_list {
  width: 100% !important;
  table-layout: fixed;
  border-collapse: separate !important;
  border-spacing: 0;
  border-top: 2px solid #1f3974 !important;
  margin: 0 0 14px;
  font-size: 13px;
}
body .board_list caption { display: none; }
body .board_list thead th,
body .board_list th {
  padding: 10px 8px !important;
  background: #f0f3fa !important;
  color: #1f3974 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-align: center !important;
  border-bottom: 1px solid #c8cfdd !important;
  border-right: 1px solid #e2e5ec;
}
body .board_list thead th:last-child,
body .board_list th:last-child { border-right: none; }
body .board_list th.board_th_link {
  cursor: pointer;
}
body .board_list th.board_th_link:hover { background: #e8edf9 !important; }
body .board_list tbody td,
body .board_list td {
  padding: 9px 8px !important;
  border-bottom: 1px solid #eef0f4 !important;
  color: #333 !important;
  font-size: 13px !important;
  text-align: center;
  word-break: break-all;
}
body .board_list tbody tr:hover td,
body .board_list tbody.ov tr:hover td {
  background: #f5f7fb !important;
}
body .board_list td.left,
body .board_list td.lt_text,
body .board_list .left { text-align: left !important; }
body .board_list td.title,
body .board_list td.title_left {
  text-align: left !important;
}
body .board_list td a {
  color: #1f3974;
  text-decoration: none;
  font-weight: 500;
}
body .board_list td a:hover {
  color: #2a4a8f;
  text-decoration: underline;
}
body .board_list .w,
body .board_list .no { color: #888; }

/* ── 등록/상세 폼 테이블 (.board_view / .t_form / .t_view) ── */
body .board_view,
body table.t_form,
body table.t_view {
  width: 100% !important;
  table-layout: fixed;
  border-collapse: separate !important;
  border-spacing: 0;
  border-top: 2px solid #1f3974;
  margin: 0 0 14px;
  font-size: 13px;
}
body .board_view th,
body table.t_form th,
body table.t_view th {
  padding: 10px 12px !important;
  background: #f0f3fa !important;
  color: #1f3974 !important;
  font-weight: 600 !important;
  text-align: left !important;
  border-bottom: 1px solid #eef0f4 !important;
  width: 160px;
}
body .board_view td,
body table.t_form td,
body table.t_view td {
  padding: 9px 12px !important;
  border-bottom: 1px solid #eef0f4 !important;
  color: #333;
}

/* 일반 input/select/textarea in form area — KRDS 톤 */
body .board input[type=text]:not(.s_input):not(.s_input2),
body .board input[type=password],
body .board input[type=email],
body .board input[type=tel],
body .board input[type=number],
body .board input[type=url],
body .board input[type=search],
body .board input[type=date],
body .board select,
body .board textarea {
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 13px;
  box-sizing: border-box;
  background: #fff;
}
body .board input[type=text]:not(.s_input):not(.s_input2):focus,
body .board input[type=password]:focus,
body .board input[type=email]:focus,
body .board select:focus,
body .board textarea:focus {
  outline: none;
  border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31, 57, 116, 0.15);
}
body .board textarea { min-height: 80px; }

/* 필수 마커 (.required / .pilsu) — 색상만 입힘.
   ::before '*' 자동 prefix 는 제거: 표준 JSP 들이 이미 <span class="pilsu">*</span> 처럼
   별표 자체를 들고 있어 중복 표시("**")됨. */
body .required,
body .pilsu {
  color: #b03030 !important;
  font-weight: 700;
}

/* ── 페이지네이션 (.pagination) ── */
body .pagination {
  margin: 18px 0 8px !important;
  text-align: center !important;
}
body .pagination ul {
  display: inline-flex;
  gap: 4px;
  list-style: none;
  margin: 0; padding: 0;
}
body .pagination ul li {
  display: inline-block;
}
body .pagination a,
body .pagination strong,
body .pagination .page_num {
  display: inline-block;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  line-height: 30px;
  border: 1px solid #d1d3d8;
  border-radius: 4px;
  color: #333;
  text-decoration: none;
  font-size: 13px;
  background: #fff;
  text-align: center;
  vertical-align: middle;
}
body .pagination a:hover {
  background: #e8edf9;
  border-color: #1f3974;
  color: #1f3974;
}
body .pagination strong,
body .pagination .on,
body .pagination .cur {
  background: #1f3974;
  color: #fff;
  border-color: #1f3974;
  font-weight: 700;
}
/* eGov ui:pagination 이 내는 image type 페이징 — img 그대로 두되 wrap 정렬만 */
body .pagination img {
  vertical-align: middle;
  margin: 0 1px;
}

/* ── 데이터 없음 메시지 / 0건 row ── */
body .board_list .ic_none,
body .board_list .no_data,
body .board_list tr td[colspan] {
  color: #888;
  font-style: italic;
  padding: 24px 8px !important;
}

/* ── 부가 텍스트 / 안내 ── */
body .board .lt_text { color: #555; }
body .board .top_title_strong,
body .board .left_title_strong {
  color: #1f3974;
  font-weight: 700;
}

/* ── 검색 결과 카운트 표시 (자주 보이는 .cnt) ── */
body .cnt {
  color: #1f3974;
  font-weight: 700;
}

/* ── 노스크립트 경고 박스 ── */
body .noScriptTitle {
  display: block;
  padding: 8px 12px;
  margin: 0 0 10px;
  background: #fff3cd;
  color: #856404;
  border: 1px solid #ffe69c;
  border-radius: 4px;
  font-size: 13px;
}

/* ── 폼 요소 줄 정렬 보조 (.check / .select / .vtop) ── */
body .check,
body .select { vertical-align: middle; }
body .vtop { vertical-align: top !important; }

/* ── 옛 com.css 가 .board 안에서 폰트 11~12px 로 떨어지는 케이스 정상화 ── */
body .board,
body .board td,
body .board th,
body .board li,
body .board label,
body .board input,
body .board select,
body .board textarea {
  font-family: 'Pretendard GOV', 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ════════════════════════════════════════════════════════════════
 * eGov 표준 BBS / 댓글 / 템플릿 — 추가 매핑
 *   대상: /WEB-INF/jsp/egovframework/com/cop/{bbs,cmt,com,tpl} (40여 JSP)
 *   공통 매핑(.board / .search_box / .board_list / .pagination / .btn_*)에
 *   더해 BBS 특유 클래스(.wTable, .wTableFrm, .paging, .btn, .reply 등)를 보강.
 * ════════════════════════════════════════════════════════════════ */

/* ── 글 상세 / 등록 폼 테이블 (.wTable / .wTableFrm) — board_view 와 동일 톤 ── */
body .wTableFrm {
  margin: 0 0 14px;
}
body table.wTable {
  width: 100% !important;
  table-layout: fixed;
  border-collapse: separate !important;
  border-spacing: 0;
  border-top: 2px solid #1f3974;
  font-size: 13px;
}
body table.wTable caption { display: none; }
body table.wTable th {
  padding: 10px 12px !important;
  background: #f0f3fa !important;
  color: #1f3974 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: left !important;
  border-bottom: 1px solid #eef0f4 !important;
  width: 150px;
  vertical-align: middle;
}
body table.wTable th.vtop { vertical-align: top !important; padding-top: 12px !important; }
body table.wTable td {
  padding: 9px 12px !important;
  border-bottom: 1px solid #eef0f4 !important;
  color: #333 !important;
  font-size: 13px !important;
  vertical-align: middle;
}
body table.wTable td.left,
body table.wTable td.text_left { text-align: left !important; }
body table.wTable td.nopd { padding: 0 !important; }
body table.wTable td.cnt {
  padding: 14px 12px !important;
  line-height: 1.7;
  color: #333;
  background: #fff;
}
body table.wTable input[type=text],
body table.wTable input[type=password],
body table.wTable input[type=email],
body table.wTable input[type=tel],
body table.wTable input[type=number],
body table.wTable input[type=date],
body table.wTable select,
body table.wTable textarea {
  border: 1px solid #c4c6cd;
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 13px;
  box-sizing: border-box;
  background: #fff;
}
body table.wTable input[type=text]:focus,
body table.wTable select:focus,
body table.wTable textarea:focus {
  outline: none;
  border-color: #1f3974;
  box-shadow: 0 0 0 2px rgba(31, 57, 116, 0.15);
}
body table.wTable textarea { min-height: 120px; }

/* board_list.top_line — 글 상세 위 정보 테이블에서 위 보더 강조 변종 */
body .board_list.top_line {
  border-top: 2px solid #1f3974 !important;
}

/* ── 페이지네이션 다른 이름 (.paging) — .pagination 과 동일 처리 ── */
body .paging {
  margin: 18px 0 8px !important;
  text-align: center !important;
}
body .paging ul {
  display: inline-flex;
  gap: 4px;
  list-style: none;
  margin: 0; padding: 0;
}
body .paging a,
body .paging strong {
  display: inline-block;
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  line-height: 30px;
  border: 1px solid #d1d3d8;
  border-radius: 4px;
  color: #333;
  text-decoration: none;
  font-size: 13px;
  background: #fff;
  text-align: center;
  vertical-align: middle;
}
body .paging a:hover {
  background: #e8edf9;
  border-color: #1f3974;
  color: #1f3974;
}
body .paging strong,
body .paging .on,
body .paging .cur {
  background: #1f3974;
  color: #fff;
  border-color: #1f3974;
  font-weight: 700;
}
body .paging img { vertical-align: middle; margin: 0 1px; }

/* ── 화면 하단 액션 버튼 모음 (.btn 컨테이너 — div) ── */
body div.btn,
body div.bottom {
  margin: 14px 0 8px;
  text-align: right;
  padding-top: 10px;
  border-top: 1px solid #eef0f4;
}
body div.btn > *,
body div.bottom > * {
  margin-left: 4px;
  vertical-align: middle;
}
/* 화면 상단 액션 영역 (.top) — .btn 과 비슷한 정렬 */
body div.top {
  margin: 0 0 10px;
  text-align: right;
}
body div.top > * {
  margin-left: 4px;
  vertical-align: middle;
}

/* ── 화면 안 input[type=submit].s_submit (글 등록/수정 등) ── */
body input.s_submit {
  height: 32px;
  padding: 0 14px;
  border: none !important;
  background: #1f3974 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  margin-left: 4px;
  vertical-align: middle;
  transition: background 0.12s;
}
body input.s_submit:hover { background: #2a4a8f !important; }
/* 보조 변종 — "취소" 같은 secondary 의도가 있으면 클래스 추가가 없어서
   외관상 모두 primary 로 가나, 위험은 없음 (저장/취소 둘 다 명시적 버튼) */

/* ── 답글 / 댓글 영역 (.reply) ── */
body div.reply {
  margin: 14px 0;
  padding: 12px 14px;
  background: #f5f7fb;
  border: 1px solid #e2e5ec;
  border-left: 3px solid #1f3974;
  border-radius: 4px;
}
body div.reply .top,
body div.reply .bottom {
  border: none;
  margin: 0;
  padding: 0;
}
body div.reply .top {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
body div.reply p.txt {
  margin: 6px 0;
  color: #333;
  font-size: 13px;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-all;
}

/* span.bar — 댓글 액션 사이 구분자 */
body span.bar {
  display: inline-block;
  margin: 0 4px;
  color: #c4c6cd;
  font-size: 12px;
  vertical-align: middle;
}

/* .date — 작성일 표시 */
body span.date {
  color: #888;
  font-size: 12px;
  margin-left: 4px;
  vertical-align: middle;
}

/* .nopd — no padding */
body .nopd { padding: 0 !important; }

/* .txt — 단순 텍스트 단락 */
body p.txt {
  margin: 6px 0;
  color: #333;
  font-size: 13px;
  line-height: 1.6;
}

/* required_text — 필수입력 안내 문구 */
body .required_text {
  color: #b03030;
  font-size: 12px;
  font-weight: 600;
}
body .required_text::before { content: '※ '; }

/* ── 첨부파일 박스 (.egov_file_box) ── */
body .egov_file_box {
  margin: 8px 0;
  padding: 10px 12px;
  background: #fafbfd;
  border: 1px dashed #c4c6cd;
  border-radius: 4px;
  font-size: 13px;
}
body .egov_file_box input[type=file] {
  font-size: 13px;
}
body .egov_file_box ul {
  margin: 6px 0 0; padding: 0;
  list-style: none;
}
body .egov_file_box ul li {
  padding: 4px 6px;
  border-top: 1px solid #eef0f4;
  font-size: 13px;
}
body .egov_file_box ul li:first-child { border-top: none; }

/* ── 글 상세 본문 영역 (.post / .post_title / .post_opt) — 블로그형 ── */
body .post {
  margin: 14px 0;
  padding: 0;
}
body .post_title {
  margin: 0 0 8px;
  padding: 10px 12px;
  background: #f0f3fa;
  color: #1f3974;
  font-size: 1.05em;
  font-weight: 700;
  border-radius: 4px;
}
body .post_opt {
  margin: 4px 0 10px;
  color: #888;
  font-size: 12px;
}
body .post_opt span {
  margin-right: 12px;
}
body .blog_title {
  color: #1f3974;
  font-size: 1.0em;
  font-weight: 700;
  margin: 8px 0;
}

/* ── tbl_list — 또 다른 list 변종 (1회만 등장) ── */
body table.tbl_list {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border-top: 2px solid #1f3974;
  font-size: 13px;
}
body table.tbl_list th {
  padding: 10px 8px !important;
  background: #f0f3fa !important;
  color: #1f3974 !important;
  font-weight: 700 !important;
  text-align: center !important;
  border-bottom: 1px solid #c8cfdd;
}
body table.tbl_list td {
  padding: 9px 8px !important;
  border-bottom: 1px solid #eef0f4 !important;
  text-align: center;
  font-size: 13px;
}
body table.tbl_list td.left { text-align: left !important; }

/* ── 표준 BBS 모달 팝업 (cop/com/EgovModalPopupFrame.jsp) — body 자체에 패딩 ── */
body.modal-popup,
.rlms-admin-main .modal-frame {
  background: #fff;
}

/* ════════════════════════════════════════════════════════════════
 * sym/mnu — 메뉴 생성·관리 / 사이트맵 / 즐겨찾기 보강
 *   17개 JSP. 공통 매핑 자동 적용 외 추가 변종:
 *     .tree (트리), .vat (vertical-align-top),
 *     .readOnlyClass (readonly input), .check2 (체크박스 변종),
 *     .table-line / .table-search / .table-register
 * ════════════════════════════════════════════════════════════════ */

/* 트리(메뉴 트리 / 사이트맵) — 옛 .tree (인라인 ul 트리) */
body .tree,
body ul.tree {
  list-style: none;
  margin: 0; padding: 8px 0;
  font-size: 13px;
  background: #fafbfd;
  border: 1px solid #d1d3d8;
  border-radius: 4px;
}
body .tree ul {
  list-style: none;
  padding-left: 18px;
  margin: 0;
}
body .tree li {
  padding: 3px 8px;
  line-height: 1.6;
  border-bottom: 1px dotted #eef0f4;
}
body .tree li:last-child { border-bottom: none; }
body .tree a {
  color: #1f3974;
  text-decoration: none;
}
body .tree a:hover {
  text-decoration: underline;
  color: #2a4a8f;
}
body .tree .selected,
body .tree .active {
  background: #e8edf9;
  font-weight: 600;
}

/* readonly input — 회색 배경 */
body input.readOnlyClass,
body input[readonly] {
  background: #f0f1f4 !important;
  color: #555 !important;
  cursor: not-allowed;
}

/* 체크박스/라디오 변종 (.check2) — 정렬 보조 */
body .check2 {
  vertical-align: middle;
  margin-right: 4px;
}
body .check2 + label {
  vertical-align: middle;
  margin-right: 10px;
  font-size: 13px;
  cursor: pointer;
}

/* vertical-align: top */
body .vat,
body td.vat,
body th.vat { vertical-align: top !important; }

/* .table-line / .table-search / .table-register — board_list / search_box / wTable 변종 */
body table.table-line {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border-top: 2px solid #1f3974;
  font-size: 13px;
  margin: 0 0 14px;
}
body table.table-line th {
  padding: 10px 8px !important;
  background: #f0f3fa !important;
  color: #1f3974 !important;
  font-weight: 700 !important;
  text-align: center !important;
  border-bottom: 1px solid #c8cfdd;
}
body table.table-line td {
  padding: 9px 8px !important;
  border-bottom: 1px solid #eef0f4 !important;
  font-size: 13px;
  text-align: center;
}
body table.table-line td.left { text-align: left !important; }

body div.table-search {
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid #d1d3d8;
  border-top: 2px solid #1f3974;
  background: #f5f7fb;
  border-radius: 4px;
}

body table.table-register {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border-top: 2px solid #1f3974;
  font-size: 13px;
  margin: 0 0 14px;
}
body table.table-register th {
  padding: 10px 12px !important;
  background: #f0f3fa !important;
  color: #1f3974 !important;
  font-weight: 600 !important;
  text-align: left !important;
  border-bottom: 1px solid #eef0f4 !important;
  width: 160px;
}
body table.table-register td {
  padding: 9px 12px !important;
  border-bottom: 1px solid #eef0f4 !important;
  color: #333;
  font-size: 13px;
}

/* 메뉴관리 특유 .s_input2 (검색 보조 input) — .s_input 과 동일 */
body .search_box input.s_input2 {
  height: 40px !important;   /* 전역 small(40/14) 통일 (2026-07-24) */
  padding: 0 10px !important;
  border: 1px solid #c4c6cd !important;
  border-radius: 4px !important;
  background: #fff !important;
  font-size: 14px !important;
  min-width: 180px;
  box-sizing: border-box;
}

/* btn01 / btn02 — 메뉴관리 일부 화면 — KRDS 톤 강제 */
body .btn01,
body .btn02 {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 4px;
  background: #1f3974;
  color: #fff !important;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
}
body .btn02 {
  background: #fff;
  color: #1f3974 !important;
  border: 1px solid #1f3974;
}
body .btn01:hover { background: #2a4a8f; }
body .btn02:hover { background: #e8edf9; }

/* lt_text3 — 작은 안내 텍스트 */
body .lt_text3 {
  color: #888;
  font-size: 12px;
}

/* ────────────────────────────────────────────────
 * popup decorator (popup.jsp) — 팝업/iframe 본문 톤
 *   헤더 없음, 패딩 + 배경만. 부모 창과 톤 통일.
 * ──────────────────────────────────────────────── */
body.rlms-popup-body {
  background: #fff;
  margin: 0;
  padding: 0;
  font-size: 13px;
  color: #333;
}
.rlms-popup-main {
  padding: 16px 20px;
  min-height: calc(100vh / var(--rlms-zoom, 1));
  box-sizing: border-box;
}
/* 팝업 안의 .board 는 max-width 풀고 자연스럽게 */
body.rlms-popup-body .board {
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
}
body.rlms-popup-body .board > h1 {
  font-size: 1.2em !important;
  margin-bottom: 12px !important;
}

/* ════════════════════════════════════════════════════════════════
 * sym/prm — 프로그램관리 / 변경요청 / 변경이력 보강
 *   추가 변종: .tit02 (section sub-title), .mb20 (margin-bottom)
 * ════════════════════════════════════════════════════════════════ */
body .tit02 {
  margin: 18px 0 8px;
  padding: 6px 0 6px 8px;
  color: #1f3974;
  font-size: 1.0em;
  font-weight: 700;
  border-left: 3px solid #1f3974;
  background: #f5f7fb;
}
body .mb20 { margin-bottom: 20px; }
body .mb10 { margin-bottom: 10px; }
body .mt20 { margin-top: 20px; }
body .mt10 { margin-top: 10px; }

/* 부가 — 등록폼에서 자주 보이는 .link 클래스 (텍스트 링크) */
body .link a {
  color: #1f3974;
  text-decoration: none;
  font-weight: 500;
}
body .link a:hover {
  color: #2a4a8f;
  text-decoration: underline;
}

/* System management pages: program, menu list, menu creation, common code */
body .program-manage-list {
  width: 100%;
  min-width: 0;
}

body .program-manage-list .page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
  padding: 0 0 14px;
  border-bottom: 1px solid #d8dde8;
}

body .program-manage-list .page-header h1 {
  margin: 0;
  color: #1f3974;
  font-size: 24px;
  line-height: 1.35;
}

body .program-search.search-form {
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  background: #fff;
}

body .program-search .form-group.inline {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

body .program-search .form-conts {
  flex: 1 1 320px;
  min-width: 220px;
}

body .program-search .form-label {
  color: #333d4b;
  font-size: 13px;
  font-weight: 700;
}

body .program-search .krds-input {
  width: 100%;
  height: 40px;
}

body .program-table .check2 {
  width: 16px;
  height: 16px;
  accent-color: #1d56bc;
}

body .program-table th,
body .program-table td {
  padding-left: 14px !important;
  padding-right: 14px !important;
  vertical-align: middle;
  word-break: break-word;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

body .program-table th:first-child,
body .program-table td:first-child {
  padding-left: 8px !important;
  padding-right: 8px !important;
  text-align: center;
}

body .program-table th:last-child,
body .program-table td:last-child {
  text-align: left !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: break-word;
}

body .program-table td a {
  color: #1f3974;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body .program-form-page {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

body .program-form-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  background: #fff;
}

body .program-form-kicker {
  display: block;
  margin-bottom: 4px;
  color: #52617a;
  font-size: 13px;
  font-weight: 600;
}

body .program-form-head h1 {
  margin: 0;
  color: #1f3974;
  font-size: 24px;
  line-height: 1.35;
}

body .program-form-state {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 4px;
  background: #e8edf9;
  color: #1f3974;
  font-size: 13px;
  font-weight: 700;
}

body .program-form-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  min-height: 560px;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

body .program-form-main {
  min-height: 560px;
  border-right: 1px solid #d1d3d8;
}

body .program-form-main .ide-context-pane {
  padding: 24px;
}

body .program-form-main .ide-prov-head {
  align-items: center;
  flex-wrap: wrap;
}

body .program-form-main .ide-prov-head h2 {
  font-size: 21px;
}

body .program-form-main .ide-form-row {
  margin-bottom: 18px;
}

body .program-form-main .krds-input {
  max-width: 100%;
}

body .program-form-main textarea.program-textarea {
  min-height: 220px;
}

body .program-form-main .ide-form-actions {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid #e1e5ee;
  flex-wrap: wrap;
}

body .program-form-main .form-hint-invalid,
body .program-form-main .error {
  display: block;
  margin-top: 6px;
  color: #d4351c;
  font-size: 13px;
}

body .program-form-side {
  min-height: 560px;
  background: #243048;
  color: #fff;
}

body .program-side-title {
  margin: 0;
  padding: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  color: #fff;
  font-size: 16px;
}

body .program-side-block {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.15);
}

body .program-side-label {
  display: block;
  margin-bottom: 7px;
  color: rgba(255,255,255,0.74);
  font-size: 12px;
  font-weight: 700;
}

body .program-side-text,
body .program-side-value {
  margin: 0;
  color: rgba(255,255,255,0.86);
  font-size: 13px;
  line-height: 1.6;
  word-break: break-word;
}

body .program-side-value {
  color: #fff;
  font-weight: 700;
}

body .menu-creat-table td {
  vertical-align: middle;
}

body .menu-creat-table td:nth-child(3) {
  text-align: left;
  word-break: keep-all;
}

body .menu-creat-table .krds-btn.small {
  min-width: 82px;
  height: 32px;
  padding: 0 12px;
  text-decoration: none;
}

body .menu-creat-main .ide-form-row {
  max-width: 420px;
}

body .menu-creat-tree {
  min-height: 480px;
  max-height: 620px;
  margin-top: 12px;
  padding: 14px;
  overflow: auto;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  background: #f8fafc;
}

body .menu-creat-tree #ideMenuTree {
  min-height: 450px;
}

body .menu-creat-tree .jstree-default .jstree-anchor {
  min-height: 28px;
  line-height: 28px;
  color: #243048;
  font-size: 14px;
}

body .menu-creat-tree .jstree-default .jstree-clicked {
  border-radius: 4px;
  background: #e8edf9;
  color: #1f3974;
  box-shadow: none;
}

body .menu-creat-tree .jstree-default .jstree-hovered {
  border-radius: 4px;
  background: #eef3fb;
  box-shadow: none;
}

body .cmmn-code-search .cmmn-code-search-select {
  flex: 0 0 190px;
  min-width: 170px;
}

body .cmmn-code-table {
  width: 100%;
  table-layout: fixed;
}

body .cmmn-code-table th,
body .cmmn-code-table td {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body .cmmn-code-table td:nth-child(2),
body .cmmn-code-table td:nth-child(4) {
  text-align: left;
  word-break: break-word;
}

body .cmmn-code-main .ide-form-row {
  margin-bottom: 18px;
}

body .cmmn-code-main .krds-select.small {
  width: min(100%, 360px);
  height: 40px;
}

body .cmmn-code-main .cmmn-code-textarea {
  min-height: 220px;
}

body .cmmn-code-static {
  min-height: 40px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #d1d3d8;
  border-radius: 4px;
  background: #f8fafc;
  color: #243048;
  font-size: 14px;
  line-height: 1.55;
  word-break: break-word;
}

body .cmmn-code-description {
  min-height: 120px;
}

body .menu-list-page {
  min-width: 0;
}

body .menu-list-shell {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 0;
  min-height: 640px;
  overflow: hidden;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  background: #fff;
}

body .menu-list-left {
  min-width: 0;
  border-right: 1px solid #d1d3d8;
  background: #f8fafc;
}

body .menu-list-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 16px;
  border-bottom: 1px solid #d1d3d8;
  background: #fff;
}

body .menu-list-panel-head h2 {
  margin: 0;
  color: #1f3974;
  font-size: 17px;
}

body .menu-list-tree {
  height: 580px;
  padding: 14px;
  overflow: auto;
}

body .menu-list-tree #ideMenuTree {
  min-height: 540px;
}

body .menu-list-tree .jstree-default .jstree-anchor {
  min-height: 28px;
  line-height: 28px;
  color: #243048;
  font-size: 14px;
}

body .menu-list-tree .jstree-default .jstree-clicked {
  border-radius: 4px;
  background: #e8edf9;
  color: #1f3974;
  box-shadow: none;
}

body .menu-list-tree .jstree-default .jstree-hovered {
  border-radius: 4px;
  background: #eef3fb;
  box-shadow: none;
}

body .menu-list-main {
  min-height: 640px;
  border-right: 0;
}

body .menu-list-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
}

body .menu-list-form-grid .ide-form-row {
  min-width: 0;
  margin-bottom: 18px;
}

body .menu-list-wide {
  grid-column: 1 / -1;
}

body .menu-list-input-action {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

body .menu-list-input-action .krds-input {
  flex: 1 1 auto;
  min-width: 0;
}

body .menu-list-input-action .krds-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

body .menu-list-main .krds-input.numeric {
  max-width: 140px;
}

body .menu-list-textarea {
  min-height: 170px;
}

/* ── UL 기반 메뉴 트리 (RlmsMenuTree) — jstree 대체, HTML5 드래그 순서/이동 ── */
.rlms-ide-left .rmt-list { list-style: none; margin: 0; padding: 0; }
.rlms-ide-left .rmt-list .rmt-list { padding-left: 16px; }
.rlms-ide-left .rmt-node { position: relative; }
.rlms-ide-left .rmt-node.rmt-collapsed > .rmt-list { display: none; }
.rlms-ide-left .rmt-row {
  display: flex; align-items: center; gap: 4px;
  padding: 3px 6px; border-radius: 4px; cursor: pointer;
  font-size: 13px; color: #243048; user-select: none;
}
.rlms-ide-left .rmt-row:hover { background: #eef3fb; }
.rlms-ide-left .rmt-row.rmt-selected { background: #e8edf9; color: #1f3974; font-weight: 600; }
.rlms-ide-left .rmt-row.rmt-match { background: #fff7d6; }
.rlms-ide-left .rmt-toggle {
  flex: 0 0 14px; width: 14px; text-align: center; color: #888; font-size: 10px; line-height: 1;
}
.rlms-ide-left .rmt-toggle::before { content: '\25BE'; }                                   /* ▾ 펼침 */
.rlms-ide-left .rmt-node.rmt-collapsed > .rmt-row .rmt-toggle::before { content: '\25B8'; } /* ▸ 접힘 */
.rlms-ide-left .rmt-toggle.rmt-leaf::before { content: '\00B7'; color: #c4c6cd; }          /* · 리프 */
.rlms-ide-left .rmt-label { flex: 1 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rlms-ide-left .rmt-id { color: #8a8f99; font-size: 11px; }
.rlms-ide-left .rmt-node.rmt-dragging > .rmt-row { opacity: 0.45; }
.rlms-ide-left .rmt-row.rmt-drop-into { background: #d6e4ff; outline: 1px dashed #1f3974; }
.rlms-ide-left .rmt-row.rmt-drop-before { box-shadow: inset 0 2px 0 #1f3974; }
.rlms-ide-left .rmt-row.rmt-drop-after { box-shadow: inset 0 -2px 0 #1f3974; }
.rlms-ide-left .rmt-loading, .rlms-ide-left .rmt-empty, .rlms-ide-left .rmt-error {
  padding: 12px; color: #888; font-size: 13px;
}
.rlms-ide-left .rmt-error { color: #b03030; }

/* ── 메뉴생성관리 — 사용자/관리자 구분 탭 ── */
body .menu-creat-tabs { display: flex; gap: 4px; margin: 14px 0 0; border-bottom: 2px solid #1f3974; }
body .menu-creat-tabs .mct-tab {
  flex: 0 0 auto; padding: 8px 18px; border: 1px solid #d1d3d8; border-bottom: none;
  background: #eef1f5; color: #555; cursor: pointer; font-size: 13px;
  border-radius: 6px 6px 0 0;
}
body .menu-creat-tabs .mct-tab.active { background: #1f3974; color: #fff; font-weight: 600; border-color: #1f3974; }

/* 메뉴관리 — '메뉴 새로고침(사용자 적용)' 액션 강조 (드래그/등록은 DB 저장, 이 버튼이 실제 적용) */
.rlms-ide-left .ide-action.ide-action-apply { color: #1f3974; font-weight: 600; }
.rlms-ide-left .ide-action.ide-action-apply:hover { background: #d6e4ff; color: #16306a; }

body .ide-prov-status.ready {
  background: #eef3fb;
  color: #1f3974;
  border-color: #b8c6e6;
}

/* 저장 진행 중 — 기존 '저장 중' 은 회색 소문자라 눈에 안 띄어 두 번 눌린 사고가 보고됨
   (고객 테스트 2026-07-22). 진행 상태를 색+굵기+깜박임으로 분명히 드러낸다. */
body .ide-prov-status.saving {
  background: #1f3974;
  color: #ffffff;
  border-color: #1f3974;
  font-weight: 700;
  animation: rlms-status-pulse 1s ease-in-out infinite;
}
@keyframes rlms-status-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }
@media (prefers-reduced-motion: reduce) {
  body .ide-prov-status.saving { animation: none; }
}

body #modalFileNm .modal-dialog,
body #modalUpperMenuId .modal-dialog {
  width: min(720px, calc(calc(100vw / var(--rlms-zoom, 1)) - 40px));
}

body #modalFileNm .modal-conts,
body #modalUpperMenuId .modal-conts {
  max-height: min(calc(68vh / var(--rlms-zoom, 1)), 640px);
  overflow: auto;
}

body #modalFileNm .board {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}

body #modalFileNm .search_box {
  width: 100% !important;
  box-sizing: border-box;
}

body #modalFileNm .search_box ul,
body #modalFileNm .search_box li {
  margin: 0;
  padding: 0;
  list-style: none;
}

body #modalFileNm .search_box li {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

body #modalFileNm .s_input2 {
  flex: 1 1 260px;
  min-width: 180px;
}

body #modalFileNm .board_list {
  width: 100% !important;
  table-layout: auto;
}

body #modalFileNm .board_list th,
body #modalFileNm .board_list td {
  white-space: normal !important;
  word-break: break-word;
}

body .menu-select-modal {
  min-height: 420px;
}

body .menu-select-tree {
  min-height: 420px;
  padding: 8px;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  background: #fff;
  overflow: auto;
}

@media (max-width: 1024px) {
  body .program-form-shell {
    grid-template-columns: 1fr;
  }

  body .program-form-main {
    border-right: 0;
    border-bottom: 1px solid #d1d3d8;
  }

  body .program-form-side {
    min-height: 0;
  }

  body .menu-list-shell {
    grid-template-columns: 1fr;
  }

  body .menu-list-left {
    border-right: 0;
    border-bottom: 1px solid #d1d3d8;
  }

  body .menu-list-tree {
    height: 360px;
  }
}

@media (max-width: 768px) {
  body .program-form-head {
    align-items: flex-start;
    flex-direction: column;
  }

  body .program-form-state {
    align-self: flex-start;
  }

  body .program-form-main .ide-context-pane {
    padding: 18px;
  }

  body .program-search .form-conts,
  body .program-search .krds-input,
  body .program-search .krds-btn {
    width: 100%;
  }

  body .menu-creat-tree {
    min-height: 360px;
    max-height: 480px;
  }

  body .cmmn-code-search .cmmn-code-search-select {
    flex-basis: 100%;
  }

  body .menu-list-form-grid {
    grid-template-columns: 1fr;
  }

  body .menu-list-input-action {
    align-items: stretch;
    flex-direction: column;
  }

  body .menu-list-input-action .krds-btn {
    width: 100%;
  }
}

body .rlms-admin-main > .board,
body .rlms-admin-main > form > .board,
body .rlms-admin-main > #border {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  background: #fff !important;
}

body .rlms-admin-main > #border > table {
  width: 100% !important;
  border-collapse: collapse !important;
}

body .rlms-admin-main > #border > table > tbody > tr > td {
  display: block;
  width: 100% !important;
  padding: 0 !important;
}

body .rlms-admin-main #main {
  width: 100% !important;
}

body .rlms-admin-main .board > h1 {
  display: flex;
  align-items: center;
  min-height: 42px;
  margin: 0 0 18px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid #d8dde8 !important;
  color: #1f3974 !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

body .rlms-admin-main .wTableFrm {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
}

body .rlms-admin-main .wTableFrm > h2 {
  display: flex;
  align-items: center;
  min-height: 42px;
  margin: 0 0 18px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid #d8dde8 !important;
  background: none !important;
  color: #1f3974 !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

body .rlms-admin-main .search_box {
  margin-bottom: 18px !important;
  padding: 16px !important;
  border: 1px solid #d1d3d8 !important;
  border-top: 1px solid #d1d3d8 !important;
  border-radius: 6px !important;
  background: #fff !important;
}

body .rlms-admin-main .search_box ul {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 10px;
  text-align: left !important;
}

body .rlms-admin-main .search_box ul li {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
  width: 100%;
}

body .rlms-admin-main .search_box label {
  min-width: 90px;
  color: #333d4b !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

body .rlms-admin-main .search_box input[type=text],
body .rlms-admin-main .search_box input.s_input,
body .rlms-admin-main .search_box input.s_input2,
body .rlms-admin-main .search_box select {
  height: 40px !important;
  min-width: 220px;
  padding: 0 12px !important;
  border: 1px solid #b8c0cc !important;
  border-radius: 4px !important;
  font-size: 14px !important;
}

body .rlms-admin-main .search_box input.s_btn,
body .rlms-admin-main .search_box input.s_submit,
body .rlms-admin-main .search_box button.s_btn,
body .rlms-admin-main .search_box span.btn_b a,
body .rlms-admin-main .search_box span.s_btn a {
  min-height: 40px !important;
  padding: 0 16px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
  line-height: 40px !important;
}

body .rlms-admin-main .search_box input[type=button].s_btn {
  background: #4b5563 !important;
  border-color: #4b5563 !important;
}

body .rlms-admin-main .board_list,
body .rlms-admin-main table.wTable,
body .rlms-admin-main .board_view,
body .rlms-admin-main table.table-register {
  border-top: 2px solid #1f3974 !important;
  border-bottom: 1px solid #d1d3d8 !important;
  font-size: 14px !important;
}

body .rlms-admin-main .board_list th,
body .rlms-admin-main .board_list td,
body .rlms-admin-main table.wTable th,
body .rlms-admin-main table.wTable td,
body .rlms-admin-main .board_view th,
body .rlms-admin-main .board_view td,
body .rlms-admin-main table.table-register th,
body .rlms-admin-main table.table-register td {
  height: 42px;
  padding: 10px 12px !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}

body .rlms-admin-main .board_list th,
body .rlms-admin-main table.wTable th,
body .rlms-admin-main .board_view th,
body .rlms-admin-main table.table-register th {
  background: #f4f6fb !important;
  color: #1f3974 !important;
  font-weight: 700 !important;
}

body .rlms-admin-main table.wTable input[type=text],
body .rlms-admin-main table.wTable input[type=password],
body .rlms-admin-main table.wTable select,
body .rlms-admin-main table.wTable textarea,
body .rlms-admin-main .board_view input[type=text],
body .rlms-admin-main .board_view select,
body .rlms-admin-main .board_view textarea {
  width: auto;
  max-width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid #b8c0cc;
  border-radius: 4px;
  font-size: 14px;
  box-sizing: border-box;
}

body .rlms-admin-main table.wTable textarea,
body .rlms-admin-main .board_view textarea {
  width: 100%;
  min-height: 120px;
  padding-top: 10px;
}

body .rlms-admin-main .tree {
  width: 100% !important;
  min-height: 560px;
  border: 1px solid #d1d3d8 !important;
  border-radius: 6px;
  background: #fff;
  box-sizing: border-box;
}

body .rlms-admin-main #main > table.menu-list-layout {
  width: 100% !important;
  border-collapse: separate;
  border-spacing: 0;
}

body .rlms-admin-main #main > table.menu-list-layout > tbody > tr {
  display: grid;
  grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
  gap: 18px;
}

body .rlms-admin-main #main > table.menu-list-layout > tbody > tr > td {
  width: auto !important;
}

body .rlms-admin-main .btn {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px !important;
  padding-top: 16px;
  border-top: 1px solid #e1e5ee;
  text-align: right !important;
}

body .rlms-admin-main .btn input.s_submit,
body .rlms-admin-main .btn input.s_btn,
body .rlms-admin-main .btn input[type=submit],
body .rlms-admin-main .btn input[type=button] {
  min-height: 36px !important;
  padding: 0 14px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #1f3974 !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 36px !important;
  cursor: pointer !important;
}

body .rlms-admin-main .btn input.s_submit:hover,
body .rlms-admin-main .btn input.s_btn:hover,
body .rlms-admin-main .btn input[type=submit]:hover,
body .rlms-admin-main .btn input[type=button]:hover {
  background: #2a4a8f !important;
}

body .rlms-admin-main table.wTable input[readonly],
body .rlms-admin-main table.wTable input[readonly=true] {
  background: #f7f8fb !important;
  color: #4b5563 !important;
}

body .rlms-admin-main .btn_s,
body .rlms-admin-main .btn_b,
body .rlms-admin-main a.btn_s,
body .rlms-admin-main a.btn_b,
body .rlms-admin-main .btn02 {
  min-height: 36px;
  border-radius: 4px !important;
  text-decoration: none !important;
}

body .rlms-admin-main .btn_s a,
body .rlms-admin-main .btn_b a,
body .rlms-admin-main a.btn_s,
body .rlms-admin-main a.btn_b,
body .rlms-admin-main .btn02 {
  min-height: 36px;
  padding: 0 14px !important;
  line-height: 36px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #fff !important;
}

body .rlms-admin-main .bbs-skin-hint {
  margin: 6px 0 0;
  color: #667085;
  font-size: 13px;
  line-height: 1.45;
}

body .rlms-admin-main .bbs-extra-field-cell {
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

body .rlms-admin-main .bbs-extra-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  width: 100%;
}

body .rlms-admin-main .bbs-extra-field-item label,
body .rlms-admin-main .bbs-extra-field-item strong {
  display: block;
  margin-bottom: 4px;
  color: #344054;
  font-size: 13px;
  font-weight: 700;
}

body .rlms-admin-main .bbs-extra-field-item input {
  width: 100%;
  max-width: 100%;
  height: 36px;
  box-sizing: border-box;
}

body .rlms-admin-main .bbs-extra-field-grid-view .bbs-extra-field-item {
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #e4e7ec;
  border-radius: 4px;
  background: #f9fafb;
  box-sizing: border-box;
}

body .rlms-admin-main .bbs-extra-field-grid-view .bbs-extra-field-item span {
  color: #101828;
  line-height: 1.45;
  word-break: break-all;
}

@media (max-width: 960px) {
  body .rlms-admin-main #main > table.menu-list-layout > tbody > tr {
    grid-template-columns: 1fr;
  }

  body .rlms-admin-main .search_box ul li {
    align-items: stretch;
    flex-direction: column;
  }

  body .rlms-admin-main .search_box input[type=text],
  body .rlms-admin-main .search_box input.s_input,
  body .rlms-admin-main .search_box input.s_input2,
  body .rlms-admin-main .search_box select,
  body .rlms-admin-main .search_box input.s_btn,
  body .rlms-admin-main .search_box input.s_submit,
  body .rlms-admin-main .search_box span.btn_b,
  body .rlms-admin-main .search_box span.btn_b a {
    width: 100% !important;
  }

  body .rlms-admin-main .bbs-extra-field-grid {
    grid-template-columns: 1fr;
  }
}

/* ──────────────────────────────────────────────────────────────
   법령질의 모듈 — 목록 / 등록·수정 / 상세 공통 IDE 카드 룩 (규정 IDE 톤)
   page 래퍼 + head(kicker+제목+액션) + 카드(.lawquest-card 또는 폼의 .rlms-ide-main)
   ────────────────────────────────────────────────────────────── */
body .lawquest-page { max-width: 1100px; margin: 0 auto; }
body .lawquest-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 12px; margin-bottom: 16px; flex-wrap: wrap;
}
body .lawquest-head .kicker {
  display: block; margin-bottom: 4px; color: #6b7280;
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
}
body .lawquest-head h1 { margin: 0; color: #1f3974; font-size: 22px; }
body .lawquest-head .lq-head-actions { display: flex; gap: 8px; align-items: center; }
body .lawquest-head .state {
  padding: 5px 10px; border-radius: 4px;
  background: #fff7d6; color: #856404; font-size: 12px; font-weight: 700;
}
/* 카드 — 목록/상세(.lawquest-card) 와 폼(.rlms-ide-main) 동일 룩 */
body .lawquest-page .rlms-ide-main,
body .lawquest-card { background: #fff; border: 1px solid #d1d3d8; border-radius: 6px; }
body .lawquest-card { padding: 22px 24px; }
body .lawquest-card .search-form { margin: 0 0 16px; }
body .lawquest-card .list-total { margin: 0 0 10px; color: #444; }
body .lawquest-card .list-total strong { color: #1f3974; }
body .lawquest-card .krds-table { margin: 0; }
body .lawquest-card .krds-pagination { margin-top: 16px; }
/* 상세 본문 섹션 */
body .lawquest-card .lq-section { margin-top: 18px; }
body .lawquest-card .lq-section > .lq-label { display: block; margin-bottom: 6px; color: #1f3974; font-weight: 700; font-size: 14px; }
body .lawquest-card .lq-con { white-space: pre-wrap; word-break: break-all; min-height: 60px; padding: 10px 12px; background: #f7f8fa; border: 1px solid #e6e8ec; border-radius: 4px; line-height: 1.6; }
body .lawquest-card .lq-files a { display: inline-block; margin-right: 12px; }
/* 폼(2단 입력) */
body .lawquest-form-main .krds-input,
body .lawquest-form-main .krds-select { max-width: 100%; }
body .lawquest-form-main .ide-form-row.cols { display: flex; gap: 16px; }
body .lawquest-form-main .ide-form-row.cols > .col { flex: 1; min-width: 0; }
body .lawquest-form-main .ide-form-row.cols > .col label { display: block; }
body .lawquest-form-main .lq-exist { list-style: none; margin: 0 0 10px; padding: 0; }
body .lawquest-form-main .lq-exist > li {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 8px; border: 1px solid #e6e8ec; border-radius: 4px;
  background: #f7f8fa; margin-bottom: 6px;
}
body .lawquest-form-main .lq-exist .fn { flex: 1; min-width: 0; }
body .lawquest-form-main .lq-ro {
  white-space: pre-wrap; word-break: break-all; min-height: 60px; padding: 8px;
  background: #f7f8fa; border: 1px solid #e6e8ec; border-radius: 4px; line-height: 1.6;
}

/* 검색폼(fulltext 5종) 공포일 날짜 입력 — 기본 폭이 너무 넓어 보기 안 좋음 → 폭 제한 (2026-06-18) */
body .search-form input[type="date"] { max-width: 150px; }
/* System management list search */
body .rlms-ide-main .search-form,
body .rlms-admin-main .search-form,
body .program-manage-list .search-form {
  margin: 0 0 18px !important;
  padding: 16px !important;
  border: 1px solid #d8dde8 !important;
  border-radius: 6px !important;
  background: #f7f9fc !important;
  box-sizing: border-box !important;
}

body .rlms-ide-main .search-form .form-group.inline,
body .rlms-admin-main .search-form .form-group.inline,
body .program-manage-list .search-form .form-group.inline {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
}

body .rlms-ide-main .search-form .form-conts,
body .rlms-admin-main .search-form .form-conts,
body .program-manage-list .search-form .form-conts {
  display: flex !important;
  flex: 0 1 260px !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 180px !important;
}

body .rlms-ide-main .search-form .form-conts.keyword,
body .rlms-admin-main .search-form .form-conts.keyword,
body .program-manage-list .search-form .form-conts.keyword {
  flex: 1 1 320px !important;
}

body .rlms-ide-main .search-form .form-label,
body .rlms-admin-main .search-form .form-label,
body .program-manage-list .search-form .form-label {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  color: #333d4b !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

body .rlms-ide-main .search-form .krds-input,
body .rlms-ide-main .search-form .krds-select,
body .rlms-ide-main .search-form .krds-form-select,
body .rlms-ide-main .search-form select,
body .rlms-admin-main .search-form .krds-input,
body .rlms-admin-main .search-form .krds-select,
body .rlms-admin-main .search-form .krds-form-select,
body .rlms-admin-main .search-form select,
body .program-manage-list .search-form .krds-input,
body .program-manage-list .search-form .krds-select,
body .program-manage-list .search-form .krds-form-select,
body .program-manage-list .search-form select {
  width: 100% !important;
  min-width: 0 !important;
  height: 40px !important;
  border: 1px solid #b8c0cc !important;
  border-radius: 4px !important;
  background-color: #fff !important;
  box-sizing: border-box !important;
  color: #1d1d1d !important;
  font-size: 14px !important;
}

body .rlms-ide-main .search-form .krds-btn,
body .rlms-ide-main .search-form a.krds-btn,
body .rlms-admin-main .search-form .krds-btn,
body .rlms-admin-main .search-form a.krds-btn,
body .program-manage-list .search-form .krds-btn,
body .program-manage-list .search-form a.krds-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 72px !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body .rlms-ide-main .search-form .user-actions,
body .rlms-ide-main .search-form .author-actions,
body .rlms-ide-main .search-form .role-actions,
body .rlms-ide-main .search-form .author-role-actions,
body .rlms-admin-main .search-form .user-actions,
body .rlms-admin-main .search-form .author-actions,
body .rlms-admin-main .search-form .role-actions,
body .rlms-admin-main .search-form .author-role-actions,
body .program-manage-list .search-form .user-actions,
body .program-manage-list .search-form .author-actions,
body .program-manage-list .search-form .role-actions,
body .program-manage-list .search-form .author-role-actions {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-left: auto !important;
}

body .rlms-admin-main .search_box {
  background: #f7f9fc !important;
  border-color: #d8dde8 !important;
}

@media (max-width: 768px) {
  body .rlms-ide-main .search-form .form-conts,
  body .rlms-admin-main .search-form .form-conts,
  body .program-manage-list .search-form .form-conts,
  body .rlms-ide-main .search-form .krds-input,
  body .rlms-ide-main .search-form .krds-select,
  body .rlms-ide-main .search-form select,
  body .rlms-admin-main .search-form .krds-input,
  body .rlms-admin-main .search-form .krds-select,
  body .rlms-admin-main .search-form select,
  body .program-manage-list .search-form .krds-input,
  body .program-manage-list .search-form .krds-select,
  body .program-manage-list .search-form select {
    width: 100% !important;
  }

  body .rlms-ide-main .search-form .user-actions,
  body .rlms-ide-main .search-form .author-actions,
  body .rlms-ide-main .search-form .role-actions,
  body .rlms-ide-main .search-form .author-role-actions,
  body .rlms-admin-main .search-form .user-actions,
  body .rlms-admin-main .search-form .author-actions,
  body .rlms-admin-main .search-form .role-actions,
  body .rlms-admin-main .search-form .author-role-actions,
  body .program-manage-list .search-form .user-actions,
  body .program-manage-list .search-form .author-actions,
  body .program-manage-list .search-form .role-actions,
  body .program-manage-list .search-form .author-role-actions {
    width: 100% !important;
    margin-left: 0 !important;
  }
}
body .rlms-ide-main .search_box,
body .program-manage-list .search_box {
  margin-bottom: 18px !important;
  padding: 16px !important;
  border: 1px solid #d8dde8 !important;
  border-top: 1px solid #d8dde8 !important;
  border-radius: 6px !important;
  background: #f7f9fc !important;
}

body .rlms-ide-main .search_box ul,
body .program-manage-list .search_box ul {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  text-align: left !important;
}

body .rlms-ide-main .search_box ul li,
body .program-manage-list .search_box ul li {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}

body .rlms-ide-main .search_box label,
body .rlms-ide-main .search_box ul li > div,
body .program-manage-list .search_box label,
body .program-manage-list .search_box ul li > div {
  color: #333d4b !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

body .rlms-ide-main .search_box input[type=text],
body .rlms-ide-main .search_box input.s_input,
body .rlms-ide-main .search_box input.s_input2,
body .rlms-ide-main .search_box select,
body .program-manage-list .search_box input[type=text],
body .program-manage-list .search_box input.s_input,
body .program-manage-list .search_box input.s_input2,
body .program-manage-list .search_box select {
  height: 40px !important;
  min-width: 220px !important;
  padding: 0 12px !important;
  border: 1px solid #b8c0cc !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
}

body .rlms-ide-main .search_box input.s_btn,
body .rlms-ide-main .search_box input.s_submit,
body .rlms-ide-main .search_box button.s_btn,
body .rlms-ide-main .search_box span.btn_b a,
body .rlms-ide-main .search_box span.s_btn a,
body .program-manage-list .search_box input.s_btn,
body .program-manage-list .search_box input.s_submit,
body .program-manage-list .search_box button.s_btn,
body .program-manage-list .search_box span.btn_b a,
body .program-manage-list .search_box span.s_btn a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 0 16px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 40px !important;
}
/* System management search: match board master list */
body .rlms-ide-main .search-form,
body .rlms-admin-main .search-form,
body .program-manage-list .search-form {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 0 24px !important;
  padding: 16px !important;
  border: 1px solid #d8dde8 !important;
  border-radius: 0 !important;
  background: #f7f9fc !important;
  box-sizing: border-box !important;
}

body .rlms-ide-main .search-form .form-group.inline,
body .rlms-admin-main .search-form .form-group.inline,
body .program-manage-list .search-form .form-group.inline {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px 16px !important;
  width: 100% !important;
}

body .rlms-ide-main .search-form .form-conts,
body .rlms-admin-main .search-form .form-conts,
body .program-manage-list .search-form .form-conts {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0 !important;
  min-width: 0 !important;
}

body .rlms-ide-main .search-form .form-conts.keyword,
body .rlms-admin-main .search-form .form-conts.keyword,
body .program-manage-list .search-form .form-conts.keyword {
  flex: 0 0 auto !important;
}

body .rlms-ide-main .search-form .form-label,
body .rlms-admin-main .search-form .form-label,
body .program-manage-list .search-form .form-label {
  position: absolute !important;
  overflow: hidden !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

body .rlms-ide-main .search-form .krds-input,
body .rlms-ide-main .search-form .krds-select,
body .rlms-ide-main .search-form .krds-form-select,
body .rlms-ide-main .search-form select,
body .rlms-admin-main .search-form .krds-input,
body .rlms-admin-main .search-form .krds-select,
body .rlms-admin-main .search-form .krds-form-select,
body .rlms-admin-main .search-form select,
body .program-manage-list .search-form .krds-input,
body .program-manage-list .search-form .krds-select,
body .program-manage-list .search-form .krds-form-select,
body .program-manage-list .search-form select {
  width: auto !important;
  height: 40px !important;
  padding: 0 10px !important;
  border: 1px solid #c8ced8 !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  box-sizing: border-box !important;
  color: #1d1d1d !important;
  font-size: 14px !important;
}

body .rlms-ide-main .search-form select,
body .rlms-ide-main .search-form .krds-select,
body .rlms-ide-main .search-form .krds-form-select,
body .rlms-admin-main .search-form select,
body .rlms-admin-main .search-form .krds-select,
body .rlms-admin-main .search-form .krds-form-select,
body .program-manage-list .search-form select,
body .program-manage-list .search-form .krds-select,
body .program-manage-list .search-form .krds-form-select {
  min-width: 150px !important;
}

body .rlms-ide-main .search-form input[type="text"],
body .rlms-ide-main .search-form .krds-input[type="text"],
body .rlms-admin-main .search-form input[type="text"],
body .rlms-admin-main .search-form .krds-input[type="text"],
body .program-manage-list .search-form input[type="text"],
body .program-manage-list .search-form .krds-input[type="text"] {
  min-width: 260px !important;
}

body .rlms-ide-main .search-form .krds-btn,
body .rlms-ide-main .search-form a.krds-btn,
body .rlms-admin-main .search-form .krds-btn,
body .rlms-admin-main .search-form a.krds-btn,
body .program-manage-list .search-form .krds-btn,
body .program-manage-list .search-form a.krds-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #246beb !important;
  color: #fff !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

body .rlms-ide-main .search-form .krds-btn:hover,
body .rlms-ide-main .search-form a.krds-btn:hover,
body .rlms-admin-main .search-form .krds-btn:hover,
body .rlms-admin-main .search-form a.krds-btn:hover,
body .program-manage-list .search-form .krds-btn:hover,
body .program-manage-list .search-form a.krds-btn:hover {
  background: #1d56bd !important;
  color: #fff !important;
  text-decoration: none !important;
}

body .rlms-ide-main .search-form .user-actions,
body .rlms-ide-main .search-form .author-actions,
body .rlms-ide-main .search-form .role-actions,
body .rlms-ide-main .search-form .author-role-actions,
body .rlms-admin-main .search-form .user-actions,
body .rlms-admin-main .search-form .author-actions,
body .rlms-admin-main .search-form .role-actions,
body .rlms-admin-main .search-form .author-role-actions,
body .program-manage-list .search-form .user-actions,
body .program-manage-list .search-form .author-actions,
body .program-manage-list .search-form .role-actions,
body .program-manage-list .search-form .author-role-actions {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-left: 0 !important;
}

body .rlms-ide-main .search_box,
body .rlms-admin-main .search_box,
body .program-manage-list .search_box {
  margin: 0 0 24px !important;
  padding: 16px !important;
  border: 1px solid #d8dde8 !important;
  border-top: 1px solid #d8dde8 !important;
  border-radius: 0 !important;
  background: #f7f9fc !important;
  box-sizing: border-box !important;
}

body .rlms-ide-main .search_box ul,
body .rlms-admin-main .search_box ul,
body .program-manage-list .search_box ul {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px 16px !important;
  text-align: left !important;
}

body .rlms-ide-main .search_box select,
body .rlms-ide-main .search_box input[type="text"],
body .rlms-ide-main .search_box input.s_input,
body .rlms-ide-main .search_box input.s_input2,
body .rlms-admin-main .search_box select,
body .rlms-admin-main .search_box input[type="text"],
body .rlms-admin-main .search_box input.s_input,
body .rlms-admin-main .search_box input.s_input2,
body .program-manage-list .search_box select,
body .program-manage-list .search_box input[type="text"],
body .program-manage-list .search_box input.s_input,
body .program-manage-list .search_box input.s_input2 {
  height: 40px !important;
  padding: 0 10px !important;
  border: 1px solid #c8ced8 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-sizing: border-box !important;
}

body .rlms-ide-main .search_box select,
body .rlms-admin-main .search_box select,
body .program-manage-list .search_box select {
  min-width: 150px !important;
}

body .rlms-ide-main .search_box input[type="text"],
body .rlms-ide-main .search_box input.s_input,
body .rlms-ide-main .search_box input.s_input2,
body .rlms-admin-main .search_box input[type="text"],
body .rlms-admin-main .search_box input.s_input,
body .rlms-admin-main .search_box input.s_input2,
body .program-manage-list .search_box input[type="text"],
body .program-manage-list .search_box input.s_input,
body .program-manage-list .search_box input.s_input2 {
  min-width: 260px !important;
}

body .rlms-ide-main .search_box input.s_btn,
body .rlms-ide-main .search_box input.s_submit,
body .rlms-ide-main .search_box button.s_btn,
body .rlms-ide-main .search_box span.btn_b a,
body .rlms-ide-main .search_box span.s_btn a,
body .rlms-admin-main .search_box input.s_btn,
body .rlms-admin-main .search_box input.s_submit,
body .rlms-admin-main .search_box button.s_btn,
body .rlms-admin-main .search_box span.btn_b a,
body .rlms-admin-main .search_box span.s_btn a,
body .program-manage-list .search_box input.s_btn,
body .program-manage-list .search_box input.s_submit,
body .program-manage-list .search_box button.s_btn,
body .program-manage-list .search_box span.btn_b a,
body .program-manage-list .search_box span.s_btn a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #246beb !important;
  color: #fff !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 40px !important;
}

@media (max-width: 640px) {
  body .rlms-ide-main .search-form,
  body .rlms-admin-main .search-form,
  body .program-manage-list .search-form,
  body .rlms-ide-main .search-form .form-group.inline,
  body .rlms-admin-main .search-form .form-group.inline,
  body .program-manage-list .search-form .form-group.inline {
    align-items: stretch !important;
  }

  body .rlms-ide-main .search-form .form-conts,
  body .rlms-admin-main .search-form .form-conts,
  body .program-manage-list .search-form .form-conts,
  body .rlms-ide-main .search-form .krds-input,
  body .rlms-ide-main .search-form .krds-select,
  body .rlms-ide-main .search-form select,
  body .rlms-ide-main .search-form .krds-btn,
  body .rlms-admin-main .search-form .krds-input,
  body .rlms-admin-main .search-form .krds-select,
  body .rlms-admin-main .search-form select,
  body .rlms-admin-main .search-form .krds-btn,
  body .program-manage-list .search-form .krds-input,
  body .program-manage-list .search-form .krds-select,
  body .program-manage-list .search-form select,
  body .program-manage-list .search-form .krds-btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}
/* System management search single row alignment */
body .rlms-ide-main .search-form,
body .rlms-admin-main .search-form,
body .program-manage-list .search-form {
  overflow-x: auto !important;
}

body .rlms-ide-main .search-form .form-group.inline,
body .rlms-admin-main .search-form .form-group.inline,
body .program-manage-list .search-form .form-group.inline {
  flex-wrap: nowrap !important;
  align-items: center !important;
  width: auto !important;
  min-width: max-content !important;
}

body .rlms-ide-main .search-form .form-conts,
body .rlms-admin-main .search-form .form-conts,
body .program-manage-list .search-form .form-conts {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
}

body .rlms-ide-main .search-form select,
body .rlms-ide-main .search-form .krds-select,
body .rlms-ide-main .search-form .krds-form-select,
body .rlms-admin-main .search-form select,
body .rlms-admin-main .search-form .krds-select,
body .rlms-admin-main .search-form .krds-form-select,
body .program-manage-list .search-form select,
body .program-manage-list .search-form .krds-select,
body .program-manage-list .search-form .krds-form-select {
  flex: 0 0 150px !important;
  width: 150px !important;
  min-width: 150px !important;
  max-width: 150px !important;
  height: 40px !important;
  padding: 0 30px 0 10px !important;
  line-height: 40px !important;
}

body .rlms-ide-main .search-form input[type="text"],
body .rlms-ide-main .search-form .krds-input[type="text"],
body .rlms-admin-main .search-form input[type="text"],
body .rlms-admin-main .search-form .krds-input[type="text"],
body .program-manage-list .search-form input[type="text"],
body .program-manage-list .search-form .krds-input[type="text"] {
  flex: 0 0 260px !important;
  width: 260px !important;
  min-width: 260px !important;
  max-width: 260px !important;
}

body .rlms-ide-main .search-form .krds-btn,
body .rlms-ide-main .search-form a.krds-btn,
body .rlms-admin-main .search-form .krds-btn,
body .rlms-admin-main .search-form a.krds-btn,
body .program-manage-list .search-form .krds-btn,
body .program-manage-list .search-form a.krds-btn {
  flex: 0 0 auto !important;
}

body .rlms-ide-main .search-form .user-actions,
body .rlms-ide-main .search-form .author-actions,
body .rlms-ide-main .search-form .role-actions,
body .rlms-ide-main .search-form .author-role-actions,
body .rlms-admin-main .search-form .user-actions,
body .rlms-admin-main .search-form .author-actions,
body .rlms-admin-main .search-form .role-actions,
body .rlms-admin-main .search-form .author-role-actions,
body .program-manage-list .search-form .user-actions,
body .program-manage-list .search-form .author-actions,
body .program-manage-list .search-form .role-actions,
body .program-manage-list .search-form .author-role-actions {
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  width: auto !important;
  margin-left: 0 !important;
}

body .rlms-ide-main .search_box,
body .rlms-admin-main .search_box,
body .program-manage-list .search_box {
  overflow-x: auto !important;
}

body .rlms-ide-main .search_box ul,
body .rlms-admin-main .search_box ul,
body .program-manage-list .search_box ul {
  flex-wrap: nowrap !important;
  min-width: max-content !important;
}

body .rlms-ide-main .search_box select,
body .rlms-admin-main .search_box select,
body .program-manage-list .search_box select {
  width: 150px !important;
  min-width: 150px !important;
  max-width: 150px !important;
}

body .rlms-ide-main .search_box input[type="text"],
body .rlms-ide-main .search_box input.s_input,
body .rlms-ide-main .search_box input.s_input2,
body .rlms-admin-main .search_box input[type="text"],
body .rlms-admin-main .search_box input.s_input,
body .rlms-admin-main .search_box input.s_input2,
body .program-manage-list .search_box input[type="text"],
body .program-manage-list .search_box input.s_input,
body .program-manage-list .search_box input.s_input2 {
  width: 260px !important;
  min-width: 260px !important;
  max-width: 260px !important;
}
/* Legacy board search boxes used by system log/member/dept-author lists */
body .board > .search_box {
  display: block !important;
  overflow-x: auto !important;
  margin: 0 0 24px !important;
  padding: 16px !important;
  border: 1px solid #d8dde8 !important;
  border-top: 1px solid #d8dde8 !important;
  border-radius: 0 !important;
  background: #f7f9fc !important;
  box-sizing: border-box !important;
}

body .board > .search_box ul {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px 16px !important;
  min-width: max-content !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

body .board > .search_box ul li {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 8px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #1d1d1d !important;
  font-size: 14px !important;
  line-height: 40px !important;
  white-space: nowrap !important;
}

body .board > .search_box ul li > div {
  display: inline-flex !important;
  align-items: center !important;
  height: 40px !important;
  margin: 0 !important;
  color: #1d1d1d !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 40px !important;
}

body .board > .search_box ul li > div:empty {
  display: none !important;
}

body .board > .search_box select,
body .board > .search_box input[type="text"],
body .board > .search_box input.s_input,
body .board > .search_box input.s_input2 {
  height: 40px !important;
  padding: 0 10px !important;
  border: 1px solid #c8ced8 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  color: #1d1d1d !important;
  font-size: 14px !important;
  line-height: 40px !important;
  vertical-align: middle !important;
}

body .board > .search_box select {
  width: 150px !important;
  min-width: 150px !important;
  max-width: 150px !important;
}

body .board > .search_box input.s_input,
body .board > .search_box input.s_input2 {
  width: 260px !important;
  min-width: 260px !important;
  max-width: 260px !important;
}

body .board > .search_box input[type="text"]:not(.s_input):not(.s_input2) {
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;
}

body .board > .search_box input[name="deptCode"] {
  width: 180px !important;
  min-width: 180px !important;
  max-width: 180px !important;
}

body .board > .search_box input[name="deptNm"] {
  width: 160px !important;
  min-width: 160px !important;
  max-width: 160px !important;
}

body .board > .search_box input.s_btn,
body .board > .search_box input.s_submit,
body .board > .search_box button.s_btn,
body .board > .search_box span.btn_b a,
body .board > .search_box span.s_btn a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #246beb !important;
  color: #fff !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 40px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body .board > .search_box span.btn_b,
body .board > .search_box span.s_btn {
  display: inline-flex !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: #246beb !important;
  vertical-align: middle !important;
}

@media (max-width: 640px) {
  body .board > .search_box {
    padding: 16px !important;
  }
}

/* ═══════════════════════════════════════════════════════════
   KRDS LNB — 관리자 좌측 메뉴 (krds.go.kr 서비스패턴 스타일, 2026-07-08)
   제목 + 아코디언 그룹(셰브론) + '·' 하위항목. rlms-lnb-* 전용 클래스 —
   IDE(editor.do) 좌측 패널(ide-actions)과 분리(그쪽 스타일 불변).
═══════════════════════════════════════════════════════════ */
.rlms-lnb {
  flex: 0 0 236px;
  padding: 20px 20px 32px 28px;
  background: #fff;
  border-right: 1px solid #e4e6ea;
}
.rlms-lnb-tit {
  margin: 0;
  padding: 6px 2px 16px;
  font-size: 21px;
  font-weight: 700;
  color: #1e2124;
  border-bottom: 2px solid #1e2124;
}
.rlms-lnb-list { list-style: none; margin: 0; padding: 0; }
.rlms-lnb-item { border-bottom: 1px solid #d8dae0; }
.rlms-lnb-btn {
  position: relative;
  display: block;
  width: 100%;
  padding: 13px 30px 13px 4px;
  border: none;
  background: none;
  text-align: left;
  font-size: 15px;
  font-weight: 600;
  color: #33363d;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
}
.rlms-lnb-btn:hover { color: #0b50a0; }
.rlms-lnb-btn[aria-expanded]::after {
  content: '';
  position: absolute;
  right: 10px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-right: 1.6px solid #55575c;
  border-bottom: 1.6px solid #55575c;
  transform: translateY(-70%) rotate(45deg);
  transition: transform .15s ease;
}
.rlms-lnb-btn[aria-expanded="true"]::after { transform: translateY(-30%) rotate(225deg); }
.rlms-lnb-btn.rlms-lnb-leaf.active { color: #0b50a0; }
.rlms-lnb-sub { list-style: none; margin: 0 0 12px; padding: 0; }
.rlms-lnb-link {
  position: relative;
  display: block;
  padding: 8px 8px 8px 20px;
  font-size: 15px;             /* 메뉴 항목 가독성 — 그룹 버튼(15px)과 동급 (2026-07-24) */
  color: #464950;
  text-decoration: none;
  border-radius: 6px;
  line-height: 1.5;
}
.rlms-lnb-link::before {
  content: '\00B7';
  position: absolute;
  left: 9px;
  font-weight: 700;
}
.rlms-lnb-link:hover { background: #f2f4f8; color: #1e2124; }
.rlms-lnb-link.active { background: #eef1f5; color: #101828; font-weight: 700; }

/* 모바일 — 세로 스택(rlms-admin-wrap column 전환과 동행) */
@media (max-width: 768px) {
  .rlms-lnb {
    flex-basis: auto;
    border-right: none;
    border-bottom: 1px solid #e4e6ea;
    padding: 12px 16px 16px;
  }
}

/* ═════════ 게시판 템플릿 엔진 공통 (LIST/GALLERY/FAQ/QNA/GUEST/MAGAZINE) ═════════
   2026-07 템플릿 재설계 PHASE 2 — 엔진 JSP 는 인라인 스타일 없이 이 클래스들만 사용한다.
   색은 KRDS 네이비 #1f3974 계열. 배지/버튼/입력은 실 KRDS(krds-badge/krds-btn/krds-input). */

/* 목록 상단 바 — 합계(list-total) + 우측 버튼(list-btns) */
.list-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 8px 0 4px;
}
.list-top .list-total { margin: 0; }
.list-btns { display: inline-flex; align-items: center; gap: 6px; }

/* 목록 제목 셀 링크 */
.krds-table.tbl-list td.al a,
.bbs-strong { color: #1d1d1d; text-decoration: none; }
.krds-table.tbl-list td.al a:hover { color: #1f3974; text-decoration: underline; }

/* 목록 표 링크 항목 구분(네이비·밑줄, 링크임을 명확히) — 송무·관리자 목록 공통.
   버튼(.krds-btn)·게시판 제목(bbs-strong)·삭제제목은 제외. 관리자 '아이디' 링크는 자체 굵게 유지. (2026-07-22) */
.krds-table.tbl-list td > a:not(.krds-btn):not(.law-chip-btn):not(.bbs-strong):not(.bbs-deleted-title) {
  color: #1f3974;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.krds-table.tbl-list td > a:not(.krds-btn):not(.law-chip-btn):not(.bbs-strong):not(.bbs-deleted-title):hover { color: #12203f; }
.bbs-strong { font-weight: 700; }
/* 브랜드 로고 이미지 — 관리자 > 브랜드설정에서 이미지 모드로 올린 로고(2026-07-31).
   비율은 유지하고 헤더 높이에 맞춰 줄인다. 로그인 화면(plain)은 조금 크게. */
.rlms-brand-img { max-height: 30px; max-width: 300px; width: auto; display: inline-block; vertical-align: middle; }
.rlms-plain-brand .rlms-brand-img { max-height: 48px; max-width: 340px; }
.bbs-cmt { color: #1f3974; font-weight: 600; }
/* 등록일 칸 — 'YYYY-MM-DD HH:MM'(16자)이 두 줄로 접히던 것 방지(2026-07-31).
   목록 표는 table-layout:auto 라 nowrap 만 주면 열 폭이 내용에 맞춰 스스로 늘어난다 —
   글자크기(zoom) 설정을 바꿔도 따라오므로 colgroup % 를 손으로 맞추지 않는다. */
.krds-table.tbl-list td.bbs-date { white-space: nowrap; }
.bbs-reply-indent { color: #98a2b3; }
.bbs-secret { color: #667085; }

/* 삭제(톰스톤) 제목 — 원본 대신 고정 문구, 취소선 */
.bbs-deleted-title { color: #98a2b3 !important; text-decoration: line-through; }

/* ── 갤러리형(GALLERY) 카드 그리드 ── */
.bbs-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 20px;
  margin: 12px 0 8px;
}
.bbs-gallery-card { border: 1px solid #d1d3d8; border-radius: 6px; overflow: hidden; background: #fff; }
.bbs-gallery-card > a { display: block; color: inherit; text-decoration: none; }
.bbs-gallery-card > a:hover .bbs-gallery-title { color: #1f3974; }
.bbs-gallery-thumb { position: relative; aspect-ratio: 4 / 3; background: #eef1f5; overflow: hidden; }
.bbs-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbs-gallery-empty-thumb {
  height: 100%; display: flex; align-items: center; justify-content: center;
  color: #98a2b3; font-weight: 600; font-size: 0.9em; letter-spacing: 0.03em;
}
.bbs-gallery-body { padding: 14px; }
.bbs-gallery-title {
  display: block; margin: 0 0 8px; font-size: 1em; line-height: 1.45;
  color: #1d1d1d; font-weight: 700; word-break: break-word;
}
.bbs-gallery-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #667085; font-size: 0.85em; }

/* ── FAQ형(FAQ) 아코디언 (네이티브 details) ── */
.bbs-faq-list { border-top: 2px solid #1f3974; }
.bbs-faq-item { border-bottom: 1px solid #e0e2e6; background: #fff; }
.bbs-faq-item > summary {
  display: flex; align-items: center; gap: 14px; padding: 16px 8px; cursor: pointer; list-style: none;
}
.bbs-faq-item > summary::-webkit-details-marker { display: none; }
.bbs-faq-q {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%;
  background: #1f3974; color: #fff; font-weight: 800; flex: 0 0 auto;
}
.bbs-faq-title { flex: 1; min-width: 0; color: #1d1d1d; font-size: 1.02em; font-weight: 700; line-height: 1.45; }
.bbs-faq-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #667085; font-size: 0.85em; }
.bbs-faq-panel { padding: 0 8px 18px 52px; color: #444; line-height: 1.7; }
.bbs-faq-panel p { margin: 0 0 12px; }

/* ── Q&A형(QNA) 카드 목록 ── */
.bbs-qna-list { display: grid; gap: 12px; margin: 12px 0 8px; }
.bbs-qna-card { border: 1px solid #d1d3d8; border-radius: 6px; background: #fff; }
.bbs-qna-card > a { display: block; padding: 16px 18px; color: inherit; text-decoration: none; }
.bbs-qna-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.bbs-qna-title { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: #1d1d1d; font-size: 1.02em; font-weight: 700; line-height: 1.45; }
.bbs-qna-symbol {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: #1f3974; color: #fff; font-weight: 800; flex: 0 0 auto;
}
.bbs-qna-summary { margin: 0; color: #667085; line-height: 1.6; font-size: 0.92em; }
.bbs-qna-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #667085; font-size: 0.85em; margin-top: 10px; }

/* ── 방명록형(GUEST) ── */
.bbs-guest-list { margin: 12px 0; padding: 0; list-style: none; border-top: 2px solid #1f3974; }
.bbs-guest-item { border-bottom: 1px solid #e0e2e6; padding: 16px 4px; }
.bbs-guest-top { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.bbs-guest-writer { font-weight: 700; color: #1f3974; }
.bbs-guest-date { color: #98a2b3; font-size: 0.88em; }
.bbs-guest-body { margin: 0 0 8px; color: #333; line-height: 1.7; word-break: break-word; }
.bbs-guest-actions { display: flex; gap: 6px; }
.bbs-guest-empty { padding: 32px; text-align: center; color: #888; border-bottom: 1px solid #e0e2e6; }
.bbs-guest-write { margin-top: 20px; }
.bbs-guest-write .form-label { display: block; margin-bottom: 6px; font-weight: 600; color: #333; }
.bbs-guest-write textarea.krds-input { width: 100%; box-sizing: border-box; min-height: 110px; resize: vertical; }

/* ── 웹진/앨범형(MAGAZINE) ── */
.bbs-mgz-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 12px 0 8px; }
.bbs-mgz-card { border: 1px solid #d1d3d8; border-radius: 8px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.bbs-mgz-card > a { display: flex; flex-direction: column; flex: 1; color: inherit; text-decoration: none; }
.bbs-mgz-card > a:hover .bbs-mgz-title { color: #1f3974; }
.bbs-mgz-thumb { position: relative; aspect-ratio: 16 / 9; background: #eef1f5; overflow: hidden; }
.bbs-mgz-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbs-mgz-empty-thumb {
  height: 100%; display: flex; align-items: center; justify-content: center;
  color: #98a2b3; font-weight: 600; font-size: 0.9em; letter-spacing: 0.04em;
  background: linear-gradient(135deg, #eef1f5 0%, #e2e7ef 100%);
}
.bbs-mgz-body { display: flex; flex-direction: column; gap: 8px; padding: 18px; flex: 1; }
.bbs-mgz-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; font-size: 1.15em; line-height: 1.45; color: #1d1d1d; font-weight: 700; word-break: break-word; }
.bbs-mgz-excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0; color: #667085; font-size: 0.9em; line-height: 1.65; word-break: break-word; }
.bbs-mgz-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: auto; padding-top: 10px; color: #667085; font-size: 0.85em; }
.bbs-mgz-meta .bbs-cmt { color: #1f3974; font-weight: 600; }
.bbs-mgz-card--featured { grid-column: 1 / -1; }
.bbs-mgz-card--featured > a { flex-direction: row; }
.bbs-mgz-card--featured .bbs-mgz-thumb { flex: 0 0 55%; }
.bbs-mgz-card--featured .bbs-mgz-body { justify-content: center; padding: 24px 28px; }
.bbs-mgz-card--featured .bbs-mgz-title { font-size: 1.5em; -webkit-line-clamp: 3; }
.bbs-mgz-card--featured .bbs-mgz-excerpt { -webkit-line-clamp: 4; }

/* 웹진 상세(히어로 + 아티클) */
.bbs-mgzd-header { padding: 0 0 18px; border-bottom: 2px solid #1f3974; }
.bbs-mgzd-board { margin: 0 0 8px; color: #1f3974; font-size: 0.9em; font-weight: 700; letter-spacing: 0.02em; }
.bbs-mgzd-header h1 { margin: 0; font-size: 1.8em; line-height: 1.35; color: #1d1d1d; font-weight: 700; word-break: break-word; }
.bbs-mgzd-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 12px; color: #667085; font-size: 0.9em; }
.bbs-mgzd-hero { margin: 24px 0 0; border-radius: 8px; overflow: hidden; background: #eef1f5; }
.bbs-mgzd-hero img { display: block; width: 100%; max-height: 480px; object-fit: cover; }
.bbs-mgzd-content { padding: 28px 0; font-size: 1.02em; line-height: 1.75; color: #2b3442; word-break: break-word; }
.bbs-mgzd-content img { max-width: 100%; height: auto; }
.bbs-mgzd-files { margin: 0 0 20px; padding: 16px; border: 1px solid #d1d3d8; border-radius: 8px; background: #f5f5f7; }
.bbs-mgzd-files h2 { margin: 0 0 10px; font-size: 0.98em; color: #1f3974; }
.bbs-mgzd-period { margin: 0 0 20px; color: #667085; font-size: 0.9em; }
.bbs-mgzd-extra { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 20px; }
.bbs-mgzd-extra p { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 8px; margin: 0; padding: 10px 12px; border: 1px solid #e0e2e6; border-radius: 6px; background: #f5f5f7; }
.bbs-mgzd-extra strong { color: #1f3974; font-size: 0.9em; }
.bbs-mgzd-extra span { color: #1d1d1d; word-break: break-word; }
/* 사진 앨범 — 메인 이미지 + 썸네일 스트립 */
.bbs-mgzd-album { margin: 24px 0 8px; }
.bbs-mgzd-album-main { position: relative; background: #0e1116; border-radius: 8px; overflow: hidden; text-align: center; }
.bbs-mgzd-album-img { display: block; width: 100%; max-height: 560px; object-fit: contain; background: #0e1116; }
.bbs-mgzd-album-counter { position: absolute; right: 12px; bottom: 10px; padding: 2px 10px; border-radius: 12px; background: rgba(0,0,0,0.55); color: #fff; font-size: 0.82em; }
.bbs-mgzd-album-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.bbs-mgzd-thumb { flex: 0 0 auto; width: 72px; height: 54px; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; background: #eef1f5; cursor: pointer; }
.bbs-mgzd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbs-mgzd-thumb.active { border-color: #1f3974; }
/* 이전/다음 글 네비 */
.bbs-mgzd-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 24px 0 8px; }
.bbs-mgzd-nav-item { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid #d8dde8; border-radius: 8px; background: #fbfcff; text-decoration: none; min-width: 0; }
a.bbs-mgzd-nav-item:hover { background: #eef2fe; border-color: #cdd8ef; }
.bbs-mgzd-nav-item.next { text-align: right; }
.bbs-mgzd-nav-item.disabled { background: #f5f6f8; }
.bbs-mgzd-nav-dir { color: #1f3974; font-size: 0.82em; font-weight: 700; }
.bbs-mgzd-nav-item.disabled .bbs-mgzd-nav-dir { color: #98a2b3; }
.bbs-mgzd-nav-title { color: #1d1d1d; font-size: 0.95em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbs-mgzd-nav-item.disabled .bbs-mgzd-nav-title { color: #98a2b3; }

/* ── 타임라인형(TIMELINE) — 날짜별 세로 흐름 ── */
.bbs-tl { position: relative; margin: 12px 0 8px; }
.bbs-tl::before { content: ""; position: absolute; left: 110px; top: 0; bottom: 0; width: 2px; background: #d8dde8; }
.bbs-tl-item { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 24px; padding: 0 0 18px 0; }
.bbs-tl-date { text-align: right; color: #667085; font-size: 0.85em; padding-top: 14px; white-space: nowrap; }
.bbs-tl-card { position: relative; border: 1px solid #d1d3d8; border-radius: 8px; background: #fff; padding: 14px 18px; }
.bbs-tl-card::before { content: ""; position: absolute; left: -19px; top: 18px; width: 12px; height: 12px; border-radius: 50%; background: #1f3974; border: 2px solid #fff; box-shadow: 0 0 0 2px #d8dde8; }
.bbs-tl-notice .bbs-tl-card::before { background: #d63d4a; box-shadow: 0 0 0 2px #f3c1bb; }
.bbs-tl-title { display: inline; color: #1d1d1d; font-size: 1.02em; font-weight: 700; line-height: 1.45; text-decoration: none; word-break: break-word; }
a.bbs-tl-title:hover { color: #1f3974; text-decoration: underline; }
.bbs-tl-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 8px 0 0; color: #667085; font-size: 0.9em; line-height: 1.6; word-break: break-word; }
.bbs-tl-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; color: #667085; font-size: 0.85em; }

/* ── 캘린더형(CALENDAR) — 월간 달력 ── */
.bbs-cal-note { color: #98a2b3; font-size: 0.85em; font-weight: normal; }
.bbs-cal-help { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 12px; padding: 10px 14px; border: 1px solid #cdd8ef; border-radius: 6px; background: #eef2fe; color: #33456b; font-size: 0.9em; line-height: 1.6; }
.bbs-cal-help strong { color: #1f3974; }
.bbs-cal-help-ico { flex: 0 0 auto; }
.bbs-cal-wrap { margin: 12px 0 8px; }
.bbs-cal-head { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 0 0 12px; }
.bbs-cal-head .krds-btn { min-width: 40px; }
.bbs-cal-title { min-width: 140px; text-align: center; color: #1f3974; font-size: 1.2em; font-weight: 700; }
.bbs-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: #d8dde8; border: 1px solid #d8dde8; border-radius: 8px; overflow: hidden; }
.bbs-cal-wd { background: #f0f2f5; color: #47516a; font-weight: 700; text-align: center; padding: 10px 0; font-size: 0.9em; }
.bbs-cal-wd.sun { color: #d63d4a; }
.bbs-cal-wd.sat { color: #2f6feb; }
.bbs-cal-cell { background: #fff; min-height: 96px; padding: 6px; }
.bbs-cal-cell.bbs-cal-empty { background: #fafbfd; }
.bbs-cal-cell.bbs-cal-today { background: #eef2fe; }
.bbs-cal-day { color: #47516a; font-size: 0.85em; font-weight: 700; margin-bottom: 4px; }
.bbs-cal-cell.sun .bbs-cal-day { color: #d63d4a; }
.bbs-cal-cell.sat .bbs-cal-day { color: #2f6feb; }
.bbs-cal-ev { display: block; margin: 2px 0; padding: 2px 6px; border-radius: 4px; background: #e8edf9; color: #1f3974; font-size: 0.82em; line-height: 1.35; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.bbs-cal-ev:hover { background: #1f3974; color: #fff; }
.bbs-cal-ev.notice { background: #fdecea; color: #b42318; }
.bbs-cal-ev.deleted { background: #f2f3f5; color: #98a2b3; text-decoration: line-through; }
.bbs-cal-ev.secret { background: #f2f3f5; color: #667085; }

/* ── 연혁형(HISTORY) — 연도별 연혁 ── */
.bbs-hist-wrap { margin: 12px 0 8px; }
.bbs-hist-year { display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 20px 0; border-top: 1px solid #e1e4ea; }
.bbs-hist-year:first-child { border-top: 0; }
.bbs-hist-y { margin: 0; color: #1f3974; font-size: 1.7em; font-weight: 800; line-height: 1.2; }
.bbs-hist-items { list-style: none; margin: 0; padding: 0; }
.bbs-hist-item { display: flex; align-items: baseline; gap: 14px; padding: 6px 0; }
.bbs-hist-month { flex: 0 0 auto; min-width: 44px; color: #667085; font-weight: 700; font-size: 0.95em; }
.bbs-hist-body { flex: 1 1 auto; line-height: 1.6; word-break: break-word; }
.bbs-hist-title { color: #1d1d1d; text-decoration: none; }
a.bbs-hist-title:hover { color: #1f3974; text-decoration: underline; }
.bbs-hist-range { color: #8a94a8; font-size: 0.85em; }

/* ── 공지 강조형(NOTICEHL) — 상단 공지 카드 ── */
.bbs-nh-hl { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; margin: 0 0 18px; }
.bbs-nh-card { display: block; padding: 14px 16px; border: 1px solid #cdd8ef; border-left: 4px solid #d63d4a; border-radius: 8px; background: #fbfcff; text-decoration: none; }
.bbs-nh-card:hover { background: #eef2fe; }
.bbs-nh-card-title { display: block; margin: 6px 0 4px; color: #1d1d1d; font-weight: 700; line-height: 1.45; word-break: break-word; }
.bbs-nh-card:hover .bbs-nh-card-title { color: #1f3974; }
.bbs-nh-card-meta { display: block; color: #667085; font-size: 0.83em; }

/* ── 탭 분류형(TAB) / 자료실 필터 — 공용 탭 네비 ── */
.bbs-tab-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; border-bottom: 2px solid #e1e4ea; padding-bottom: 0; }
.bbs-tab-btn { appearance: none; display: inline-block; border: 1px solid transparent; border-bottom: none; background: transparent; padding: 9px 16px; margin-bottom: -2px; border-radius: 8px 8px 0 0; color: #47516a; font-size: 0.95em; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; }
.bbs-tab-btn:hover { background: #f0f2f5; color: #1f3974; text-decoration: none; }
.bbs-tab-btn.active { border-color: #e1e4ea; border-bottom: 2px solid #fff; background: #fff; color: #1f3974; }

/* ── 자료실형(ARCHIVE) ── */
.bbs-arch-title { color: #1d1d1d; text-decoration: none; font-weight: 600; }
a.bbs-arch-title:hover { color: #1f3974; text-decoration: underline; }
.bbs-arch-excerpt { display: block; margin-top: 4px; color: #8a94a8; font-size: 0.85em; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbs-arch-period { color: #47516a; font-size: 0.9em; white-space: nowrap; }
.bbs-arch-nolimit { color: #98a2b3; }
.bbs-arch-file { text-align: center; font-size: 1.1em; }

/* ── 갤러리형 상세(GALLERY DETAIL) — 첨부 이미지 갤러리/슬라이드 ── */
.bbs-gd-gallery { margin: 4px 0 14px; }
.bbs-gd-single { margin: 0; text-align: center; }
.bbs-gd-single img, .bbs-gd-slide img { max-width: 100%; max-height: 540px; border-radius: 8px; display: block; margin: 0 auto; }
.bbs-gd-cap { margin-top: 6px; color: #667085; font-size: 0.85em; text-align: center; word-break: break-word; }
.bbs-gd-slider { position: relative; }
.bbs-gd-track { text-align: center; }
.bbs-gd-slide { margin: 0; }
.bbs-gd-nav { position: absolute; top: 42%; transform: translateY(-50%); z-index: 2; width: 42px; height: 42px; border: none; border-radius: 50%; background: rgba(31,57,116,0.55); color: #fff; font-size: 1.1em; line-height: 1; cursor: pointer; }
.bbs-gd-nav:hover { background: rgba(31,57,116,0.85); }
.bbs-gd-nav.prev { left: 8px; }
.bbs-gd-nav.next { right: 8px; }
.bbs-gd-counter { margin-top: 8px; text-align: center; color: #47516a; font-size: 0.9em; }
.bbs-gd-dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.bbs-gd-dot { width: 9px; height: 9px; padding: 0; border: none; border-radius: 50%; background: #cbd2e0; cursor: pointer; }
.bbs-gd-dot.active { background: #1f3974; }

/* 첨부파일 다운로드 목록(공통 조각 EgovFileList.jsp) — 파일명 링크에 KRDS 링크색 부여(리셋으로 색이 사라지던 것 복원). */
#egov_file_view_table a { color: #1f3974; text-decoration: none; }
#egov_file_view_table a:hover { color: #1f3974; text-decoration: underline; }
#egov_file_view_table td { line-height: 1.9; font-size: 0.93em; }

/* ── 자료실형 상세(ARCHIVE DETAIL) — 파일별 다운로드 수 목록(ul/li) ── */
.bbs-arcd-list { list-style: none; margin: 2px 0; padding: 0; border-top: 2px solid #e1e4ea; }
.bbs-arcd-list li { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-bottom: 1px solid #eceef2; }
.bbs-arcd-head { color: #47516a; font-weight: 700; font-size: 0.85em; background: #f8f9fc; }
.bbs-arcd-c-name, .bbs-arcd-file { flex: 1 1 auto; min-width: 0; }
.bbs-arcd-c-size, .bbs-arcd-size { flex: 0 0 22%; text-align: right; color: #667085; font-size: 0.85em; white-space: nowrap; }
.bbs-arcd-c-cnt, .bbs-arcd-cnt { flex: 0 0 18%; text-align: right; color: #47516a; font-size: 0.88em; white-space: nowrap; }
.bbs-arcd-file { display: flex; align-items: center; gap: 6px; color: #1f3974; text-decoration: none; }
.bbs-arcd-file:hover .bbs-arcd-name { text-decoration: underline; }
.bbs-arcd-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbs-arcd-ext { flex: 0 0 auto; padding: 1px 6px; border-radius: 3px; background: #e8edf9; color: #1f3974; font-size: 0.72em; font-weight: 700; }
.bbs-arcd-cnt strong { color: #1f3974; font-size: 1.1em; }

@media (max-width: 768px) {
  .bbs-arcd-c-size, .bbs-arcd-size { flex-basis: 28%; }
  .bbs-arcd-c-cnt, .bbs-arcd-cnt { flex-basis: 22%; }
}

@media (max-width: 768px) {
  .bbs-mgz-grid { grid-template-columns: 1fr; }
  .bbs-mgz-card--featured > a { flex-direction: column; }
  .bbs-mgz-card--featured .bbs-mgz-thumb { flex: none; }
  .bbs-mgzd-extra { grid-template-columns: 1fr; }
  .bbs-mgzd-extra p { grid-template-columns: 1fr; }
  .bbs-mgzd-nav { grid-template-columns: 1fr; }
  .bbs-mgzd-thumb { width: 60px; height: 45px; }
  .bbs-faq-panel { padding-left: 8px; }
  .bbs-tl::before { left: 6px; }
  .bbs-tl-item { grid-template-columns: 1fr; gap: 4px; padding-left: 22px; }
  .bbs-tl-date { text-align: left; padding-top: 0; }
  .bbs-cal-cell { min-height: 64px; padding: 3px; }
  .bbs-cal-ev { font-size: 0.72em; padding: 1px 3px; }
  .bbs-hist-year { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }
  .bbs-nh-hl { grid-template-columns: 1fr; }
  .bbs-tab-nav { gap: 2px; }
  .bbs-tab-btn { padding: 8px 12px; font-size: 0.88em; }
}

/* ═══════════ 송무 검색바 v2 보강 (2026-07-27) ═══════════
   송무 목록은 관리자 레이아웃(.rlms-admin-main) 안에서 렌더되는데, 관리자 검색폼 공통 규칙이
   .search-form 을 flex 로 강제하고 셀렉트를 150px 로 고정(!important)한다.
   .law-search-grid 를 쓰는 검색폼만 그리드 전폭·셀 100% 로 재정의 — 파일 끝 배치로 우선순위 확보. */
body .rlms-admin-main .search-form:has(.law-search-grid),
body .rlms-ide-main .search-form:has(.law-search-grid) { display: block !important; }
body .rlms-admin-main .search-form .law-search-grid .krds-input,
body .rlms-admin-main .search-form .law-search-grid .krds-select,
body .rlms-admin-main .search-form .law-search-grid input,
body .rlms-admin-main .search-form .law-search-grid select,
body .rlms-ide-main .search-form .law-search-grid .krds-input,
body .rlms-ide-main .search-form .law-search-grid .krds-select,
body .rlms-ide-main .search-form .law-search-grid input,
body .rlms-ide-main .search-form .law-search-grid select { width: 100% !important; min-width: 0 !important; max-width: none !important; }

/* ═══════════ RegNex 사용자(front) 반응형 v2 (2026-08-04) ═══════════
   제품 원칙: 규정관리 반응형 = 사용자(front) 화면만 — 관리자 화면은 대상 아님(제품 3분할 로드맵).
   LexPortal 8/4 전 화면 반응형에서 검증된 기법 이식(tbl-detail 세로 스택·페이지네이션 wrap,
   ≤1024 햄버거+전체메뉴 드로어 — LexPortal 과 동일 룩, front 는 GNB(.rlms-front-gnb)를 대체).
   파일 말미 배치 = 동특이성 후순위 승리로 위쪽(1070행대 모바일 표 규칙 등)을 이긴다.
   ⛔vh/vw 를 쓸 땐 반드시 calc(Nvh / var(--rlms-zoom, 1)) — 글자크기 zoom 래퍼 함정.
   ※ 드로어 높이는 vh 대신 top/bottom 고정 — zoom 래퍼의 vh 함정 회피. */

/* 햄버거 버튼 — 데스크톱에선 숨김(≤1024 에서 display 부여). LexPortal 동일 룩 */
.rlms-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 40px;
  height: 40px;
  margin-left: 4px;
  padding: 8px 9px;
  border: 1px solid #d1d3d8;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  align-self: center;
  flex-shrink: 0;
  box-sizing: border-box;
}
.rlms-burger span {
  display: block;
  height: 2px;
  background: #33363d;
  border-radius: 1px;
}

/* 전체메뉴 드로어 — 우측 슬라이드 패널 + 반투명 배경 (front.jsp 렌더, LexPortal mgr 와 동일 클래스) */
.rlms-mnav { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1210; }
.rlms-mnav[hidden] { display: none; }
.rlms-mnav-backdrop { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(16, 24, 40, 0.45); border: 0; padding: 0; cursor: default; }
.rlms-mnav-panel {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: min(320px, 86%);
  display: flex;
  flex-direction: column;
  background: #fff;
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.18);
}
.rlms-mnav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px 12px 18px;
  border-bottom: 1px solid #e4e6ea;
}
.rlms-mnav-tit { font-size: 16px; font-weight: 700; color: #1e2124; }
.rlms-mnav-close {
  width: 38px; height: 38px;
  border: none; background: none;
  font-size: 24px; line-height: 1;
  color: #55575c; cursor: pointer;
}
.rlms-mnav-body { flex: 1 1 auto; overflow-y: auto; padding: 6px 0 28px; }
/* 사용자 홈 — 드로어 최상단 진입점(LexPortal '대시보드' 대응) */
.rlms-mnav-home {
  display: block;
  margin: 10px 16px 12px;
  padding: 11px 14px;
  border-radius: 8px;
  background: #1f3974;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
}
.rlms-mnav-home:hover { background: #163265; color: #fff; }
.rlms-mnav-link,
.rlms-mnav-grp > summary {
  display: block;
  padding: 13px 18px;
  border-bottom: 1px solid #eef0f4;
  color: #33363d;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
}
.rlms-mnav-link:hover, .rlms-mnav-grp > summary:hover { color: #0b50a0; }
.rlms-mnav-grp > summary { position: relative; list-style: none; padding-right: 40px; }
.rlms-mnav-grp > summary::-webkit-details-marker { display: none; }
.rlms-mnav-grp > summary::after {
  content: '';
  position: absolute;
  right: 20px; top: 50%;
  width: 7px; height: 7px;
  border-right: 1.6px solid #55575c;
  border-bottom: 1.6px solid #55575c;
  transform: translateY(-70%) rotate(45deg);
  transition: transform .15s ease;
}
.rlms-mnav-grp[open] > summary::after { transform: translateY(-30%) rotate(225deg); }
.rlms-mnav-grp > ul { list-style: none; margin: 0; padding: 4px 0 10px; background: #f8f9fc; border-bottom: 1px solid #eef0f4; }
.rlms-mnav-grp a {
  display: block;
  padding: 9px 18px 9px 30px;
  color: #464950;
  font-size: 14.5px;
  text-decoration: none;
}
.rlms-mnav-grp a:hover { background: #eef1f5; color: #101828; }
/* 3단 폴더 대비(현 front 메뉴는 2단) — 라벨 + 그 하위 링크 */
.rlms-mnav-sub-tit {
  margin: 0;
  padding: 10px 18px 3px 28px;
  color: #7a8090;
  font-size: 12.5px;
  font-weight: 700;
}
.rlms-mnav-grp ul ul { list-style: none; margin: 0; padding: 0; }
.rlms-mnav-grp ul ul a { padding-left: 40px; }
/* PC 버전 보기 — 드로어 최하단 보조 버튼(viewport 1280 강제, front.jsp rlmsSetPcView) */
.rlms-mnav-pcview {
  display: block;
  width: calc(100% - 32px);
  margin: 16px 16px 0;
  padding: 10px 12px;
  border: 1px solid #d1d3d8;
  border-radius: 8px;
  background: #f7f8fa;
  color: #464950;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
}
.rlms-mnav-pcview:hover { background: #eef1f5; color: #101828; }
body.rlms-mnav-open { overflow: hidden; }
@media print { .rlms-mnav, .rlms-burger { display: none !important; } }

/* GNB 드롭다운 터치 대응(≥1025 터치 태블릿) — front.jsp 토글 JS 가 .open 부여, 바깥 탭=닫힘 */
.rlms-front-gnb .rlms-gnb-drop.open .rlms-gnb-drop-menu { display: block; }

/* ≤1024 — 태블릿: GNB 숨김 → 햄버거+전체메뉴 드로어 체제(LexPortal 대칭) */
@media (max-width: 1024px) {
  .rlms-front-gnb { display: none; }
  .rlms-burger { display: inline-flex; }
  .rlms-front-main { padding: 20px 16px 20px 56px; } /* 좌 56px = 규정분류 드로어 책갈피 핸들 자리 */
}

/* ≤768 — 모바일 본편 */
@media (max-width: 768px) {
  /* 드로어 핸들이 하단 알약 FAB 로 내려간다(rlms-prom-nav.js @media) — 좌측 예약 폭 해제.
     하단 여백 72px = FAB 가 본문 마지막 줄·버튼을 가리지 않게. */
  .rlms-front-main { padding: 14px 12px 72px; }

  .rlms-front-quicksch { padding: 10px 12px; }

  /* 관리자모드 진입 링크 — 관리자 화면은 반응형 미대상이라 폰에서 무용 → 숨김.
     [PC 버전 보기](viewport 1280 강제) 시엔 미디어쿼리 밖이 되어 자동 재노출. */
  .rlms-header-actions .rlms-admin-link { display: none; }

  /* 상세 표(tbl-detail) — 위쪽 768 규칙의 '통째 가로 스크롤' 대신 세로 스택(LexPortal 기법).
     게시글 상세·내 계정 등 th/td 표가 대상. width !important = 셀 인라인 width 무력화. */
  table.tbl-detail { white-space: normal; }
  table.tbl-detail colgroup { display: none; }
  table.tbl-detail tbody, table.tbl-detail tr, table.tbl-detail th, table.tbl-detail td {
    display: block; width: 100% !important; box-sizing: border-box;
  }
  /* 스택 라벨 컴팩트(행 리듬 47px 과대 교정) — 기본 규칙(839·862행)이 padding/border 에
     !important 라 동일 셀렉터 미러+!important 로만 이긴다. 라벨(th)-값(td)은 한 덩어리로 붙이고
     행 구분은 td 의 기존 하단 보더가 담당. */
  table.tbl-detail th, table.tbl-detail tbody th {
    border-bottom: 0 !important;
    padding: 8px 12px 2px !important;
    font-size: 14px;
  }
  table.tbl-detail td, table.tbl-detail tbody td {
    border-top: 0;
    text-align: left !important;
    padding: 2px 12px 10px !important;
  }
  table.tbl-detail img { max-width: 100%; height: auto; }
  /* 값이 빈 행(게시판 여분필드 미입력 등) — 스택에선 라벨만 덜렁 남는 노이즈 → 행째 숨김.
     :empty+:has 셀렉터 특이성이 위 display:block 을 이긴다(데스크톱 표에선 미적용 — 미디어 내). */
  table.tbl-detail th:has(+ td:empty) { display: none; }
  table.tbl-detail td:empty { display: none; }

  /* 상세 하단 버튼 영역(수정/삭제/답글/목록) — nowrap flex 라 좁으면 밀림 → 줄바꿈 허용 */
  .btn-area { flex-wrap: wrap; }

  /* 페이지네이션 — nowrap 이 페이지 링크 많을 때 화면 폭을 밀어내는 함정(LexPortal 실증) */
  .krds-pagination { flex-wrap: wrap; }
  body .pagination ul { flex-wrap: wrap; justify-content: center; }

  /* 검색폼 '한 줄 강제' 해제 — 605행대 전역 .search-form 규칙(row/auto/flex:0 0 auto 전부 !important)이
     front 검색폼(규정검색·즐겨찾기·메모·게시판 등)에도 걸린다. 동일 셀렉터 미러+파일 말미로만 이긴다.
     (.form-conts 의 인라인 display:flex 는 유지 — 폭·수축만 !important 로 재정의) */
  .search-form .form-group.inline {
    align-items: stretch !important;
    gap: 8px 12px !important;
  }
  .search-form .form-group.inline > .form-conts {
    width: 100% !important;
    flex: 1 1 100% !important;
    flex-wrap: wrap !important;
    min-width: 0 !important;
  }
  .search-form .krds-input,
  .search-form .krds-select,
  .search-form .krds-form-select,
  .search-form select {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  /* 내 계정(.mya-row, uss/umt/my 3화면 공통 패턴) — 라벨 130px 고정 + 입력 인라인 width(300px 등)가
     좁은 화면에서 넘침 → 라벨/입력 세로 스택. !important = 인라인 width/margin 무력화 (2026-08-04 UI 조정) */
  .mya-card { padding: 18px 16px; }
  .mya-row { flex-wrap: wrap; row-gap: 6px; }
  .mya-row > label.form-label, .mya-row > .form-label { width: 100%; flex: 0 0 100%; }
  /* 라벨+짧은 고정값(아이디·이름·현재 접속 IP)은 굳이 안 쪼갬 — 한 줄 유지 */
  .mya-row > .form-label:has(+ .mya-static),
  .mya-row > .form-label:has(+ .mya-cur-ip) { width: auto; flex: 0 1 auto; }
  .mya-row .form-conts { width: 100%; min-width: 0; flex: 1 1 100%; flex-wrap: wrap; row-gap: 8px; }
  .mya-row .form-conts .krds-input { width: 100% !important; max-width: none; }
  /* 입력 옆 보조 버튼('현재 IP 입력' 등) — 인라인 margin 제거 후 전폭 다음 줄 */
  .mya-row .form-conts .krds-btn { width: 100%; margin-left: 0 !important; }
  /* 액션(저장/변경) — 모바일 전폭 버튼(KRDS 모바일 관행) */
  .mya-actions { margin-top: 12px; }
  .mya-actions .krds-btn { width: 100%; }
}

/* ≤560 — 소형: 헤더 사용자명 숨김(줄수 절약, LexPortal ≤640 대칭) */
@media (max-width: 560px) {
  .rlms-header-actions .rlms-user-name { display: none; }
}
