/*
 * BIO5 관리자 화면 전용 UI 레이어
 * - 기존 sub_main.css / style.css 위에 로드되는 최종 override
 * - 기존 기능/레이아웃 클래스는 유지하고 시각 체계만 정리
 * - 2026-09-29
 */

.bio5-admin {
  --bio5-brand: #0f766e;
  --bio5-brand-dark: #0f3d3e;
  --bio5-brand-soft: #ecfdf8;
  --bio5-success: #16a34a;
  --bio5-warning: #f59e0b;
  --bio5-danger: #dc2626;
  --bio5-blue: #2563eb;
  --bio5-ink: #172033;
  --bio5-muted: #667085;
  --bio5-line: #dbe3ea;
  --bio5-line-strong: #c8d3dd;
  --bio5-panel: #ffffff;
  --bio5-surface: #f6f8fb;
  --bio5-head: #f1f5f8;
  --bio5-radius: 12px;
  --bio5-shadow: 0 8px 24px rgba(15, 61, 62, .07);
  --bio5-control-h: 34px;
  background: var(--bio5-surface);
  color: var(--bio5-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Malgun Gothic", sans-serif;
}

.bio5-admin #humanWrap {
  min-width: 1180px;
  background: var(--bio5-surface);
}

.bio5-admin .box_cont {
  padding: 7px 8px;
  margin: 0;
}

/* ---------- 공통 상단 선택바 ---------- */
.bio5-admin .select_top {
  min-height: 46px;
  height: auto;
  margin: 0 0 7px;
  padding: 6px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  line-height: normal;
  border: 1px solid rgba(15, 61, 62, .18);
  border-radius: var(--bio5-radius);
  background: linear-gradient(135deg, #0f4f4a 0%, #17746c 54%, #0f5c4a 100%) !important;
  box-shadow: 0 5px 16px rgba(15, 61, 62, .11);
}

.bio5-admin .select_top select,
.bio5-admin .select_top input[type="text"],
.bio5-admin .select_top input[type="search"] {
  min-width: 118px;
  height: var(--bio5-control-h);
  margin: 0;
  padding: 0 10px;
  color: #1f2937;
  background-color: #fff !important;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 8px;
  outline: none;
  box-shadow: 0 1px 2px rgba(15,23,42,.07);
}

.bio5-admin .select_top select:focus,
.bio5-admin .select_top input:focus {
  border-color: #7dd3c7;
  box-shadow: 0 0 0 3px rgba(45,212,191,.18);
}

.bio5-admin .admin-left-link,
.bio5-admin .admin-right-link {
  top: 50%;
}

.bio5-admin .admin-left-link a,
.bio5-admin .admin-right-link a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 8px;
  color: #fff !important;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 7px;
  background: rgba(255,255,255,.10);
}

.bio5-admin .admin-left-link a:hover,
.bio5-admin .admin-right-link a:hover {
  background: rgba(255,255,255,.18);
}

/* ---------- 관리자 메인 메뉴 ---------- */
.bio5-admin .box_menu9,
.bio5-admin .box_menu10 {
  height: auto !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
}

.bio5-admin .box_menu9 > ul,
.bio5-admin .box_menu10 > ul {
  display: flex;
  align-items: stretch;
  gap: 6px;
  width: 100%;
  margin: 0;
  padding: 0;
}

.bio5-admin .box_menu9 > ul > li,
.bio5-admin .box_menu10 > ul > li,
.bio5-admin .box_menu9 > ul > li.last,
.bio5-admin .box_menu10 > ul > li.last {
  float: none !important;
  display: flex !important;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 0;
  height: 36px !important;
  margin: 0 !important;
  padding: 0 7px;
  line-height: 1.15 !important;
  color: #334155;
  background: #edf3f6;
  border: 1px solid #c9d8e2;
  border-radius: 9px !important;
  box-shadow: none;
  font-size: 14px !important;
  font-weight: 650;
  white-space: nowrap;
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.bio5-admin .box_menu9 > ul > li:hover,
.bio5-admin .box_menu10 > ul > li:hover {
  color: var(--bio5-brand-dark);
  background: #e4f3ef;
  border-color: #9bc9bf;
  box-shadow: 0 3px 10px rgba(15,118,110,.09);
}

.bio5-admin .box_menu9 > ul > li.tab-active,
.bio5-admin .box_menu10 > ul > li.tab-active {
  color: #fff !important;
  background: var(--bio5-brand) !important;
  border-color: var(--bio5-brand) !important;
  box-shadow: 0 4px 12px rgba(15,118,110,.20) !important;
}

/* 하위메뉴는 부모 메뉴와 hover 영역이 끊기지 않도록 바로 맞닿게 배치한다.
   시각적 여백은 padding-top으로 만들고, 실제 마우스 이동 경로에는 빈 틈을 두지 않는다. */
.bio5-admin .box_menu10 > ul > li.has-sub {
  position: relative;
}

.bio5-admin .box_menu10 > ul > li.has-sub > .sub-menu {
  top: calc(100% - 1px);
  left: 0;
  width: 100%;
  min-width: 100%;
  box-sizing: border-box;
  padding: 7px 5px 5px;
  border: 1px solid var(--bio5-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15,23,42,.15);
  z-index: 10080;
}

/* 기존 sub_main.css의 hover 규칙을 명시적으로 보강.
   focus-within도 같이 유지해 키보드/클릭 이동 중에도 닫히지 않게 한다. */
.bio5-admin .box_menu10 > ul > li.has-sub:hover > .sub-menu,
.bio5-admin .box_menu10 > ul > li.has-sub:focus-within > .sub-menu {
  display: block;
}

.bio5-admin .box_menu10 .sub-menu li {
  min-height: 32px !important;
  height: 32px !important;
  margin: 0 0 4px !important;
  padding: 0 10px !important;
  border: 0 !important;
  border-radius: 7px !important;
  line-height: 32px !important;
  font-size: 14px !important;
  color: #334155 !important;
  background: transparent !important;
}
.bio5-admin .box_menu10 .sub-menu li:last-child { margin-bottom: 0 !important; }
.bio5-admin .box_menu10 .sub-menu li:hover {
  color: var(--bio5-brand-dark) !important;
  background: var(--bio5-brand-soft) !important;
}

/* ---------- 필터 / 검색바 ---------- */
.bio5-admin .catList {
  width: 100%;
  min-height: 48px;
  height: auto;
  margin: 0;
  padding: 8px 10px !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end !important;
  gap: 7px;
  color: #334155;
  text-align: right;
  background: var(--bio5-panel);
  border: 1px solid var(--bio5-line);
  border-radius: var(--bio5-radius);
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
}

.bio5-admin .catList select,
.bio5-admin .catList input[type="text"],
.bio5-admin .catList input[type="search"],
.bio5-admin .catList input[type="date"],
.bio5-admin .catList input[type="tel"],
.bio5-admin .catList input[type="number"] {
  height: var(--bio5-control-h) !important;
  margin: 0 !important;
  padding: 0 9px !important;
  color: #1f2937;
  background-color: #fff !important;
  border: 1px solid var(--bio5-line-strong) !important;
  border-radius: 8px !important;
  outline: none;
  font-size: 13px;
}

.bio5-admin .catList select:focus,
.bio5-admin .catList input:focus {
  border-color: #65b7a7 !important;
  box-shadow: 0 0 0 3px rgba(15,118,110,.10);
}

.bio5-admin .catList input[type="button"],
.bio5-admin .catList button,
.bio5-admin .serch_btn01,
.bio5-admin .btn01,
.bio5-admin .btn02,
.bio5-admin .btn04,
.bio5-admin .modibtn {
  height: var(--bio5-control-h) !important;
  min-width: 68px;
  margin: 0 !important;
  padding: 0 12px !important;
  color: #fff !important;
  background: var(--bio5-brand) !important;
  border: 1px solid var(--bio5-brand) !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(15,118,110,.14);
}

.bio5-admin .catList input[type="button"]:hover,
.bio5-admin .catList button:hover,
.bio5-admin .serch_btn01:hover,
.bio5-admin .modibtn:hover {
  filter: brightness(.96);
}

/* ---------- 검색바 정렬 / 셀렉트 복원 ----------
 * 기존 BIO5는 catList를 우측 정렬하는 구조다.
 * 관리자 전용 CSS가 flex-start 및 background 단축속성으로 이를 덮으면서
 * 검색조건이 좌측으로 몰리고 select 화살표가 사라졌던 부분을 복원한다.
 */
.bio5-admin .catList > .catNotice,
.bio5-admin .catList > span[style*="float:left"],
.bio5-admin .catList > span[style*="float: left"] {
  float: none !important;
  margin-left: 8px !important;
  margin-right: auto !important;
  text-align: left !important;
  flex: 0 1 auto;
}

.bio5-admin .catList > form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  margin-left: auto;
}

/* select 공통 화살표를 관리자 화면에서 명시적으로 유지 */
.bio5-admin .select_top select,
.bio5-admin .catList select,
.bio5-admin .bio5-field select {
  padding-right: 34px !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='9' viewBox='0 0 14 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 2L7 7L12 2' fill='none' stroke='%230f766e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 11px center !important;
  background-size: 14px 9px !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

.bio5-admin .catList select {
  min-width: 96px;
  max-width: 230px;
}

.bio5-admin .catList img[align="absmiddle"] {
  width: 22px;
  height: 22px;
  object-fit: contain;
  vertical-align: middle;
  opacity: .78;
}

/* 검색바 안의 설명문은 좌측, 조작부는 우측이라는 시각적 규칙을 유지 */
.bio5-admin .catList .catNotice + select,
.bio5-admin .catList .catNotice + form {
  margin-left: auto;
}

.bio5-admin .data-filter-checks {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.bio5-admin .filter-check {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: var(--bio5-control-h);
  padding: 0 10px;
  border: 1px solid var(--bio5-line-strong);
  border-radius: 8px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.bio5-admin .filter-check input { width: 14px; height: 14px; margin: 0; }
.bio5-admin .manual-filter { color: #b42318; border-color: #f1b7b3; background: #fff8f7; }
.bio5-admin .offline-filter { color: #315b93; border-color: #b9cee8; background: #f6f9fe; }
.bio5-admin .manual-filter:has(input:checked) { background: #feeceb; border-color: #e76d66; }
.bio5-admin .offline-filter:has(input:checked) { background: #eaf3ff; border-color: #7198c9; }

/* ---------- BIO5 신규 툴바 ---------- */
.bio5-admin .bio5-page-heading {
  margin: 0 0 8px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--bio5-line);
  border-radius: var(--bio5-radius);
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
}
.bio5-admin .bio5-page-title { margin: 0; color: #162334; font-size: 20px; font-weight: 800; letter-spacing: -.4px; }
.bio5-admin .bio5-page-desc { margin-top: 2px; color: var(--bio5-muted); font-size: 12px; }
.bio5-admin .bio5-page-actions { display:flex; align-items:center; gap:6px; }

.bio5-admin .bio5-filter-panel {
  margin: 0 0 8px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--bio5-line);
  border-radius: var(--bio5-radius);
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
}
.bio5-admin .bio5-filter-row {
  display: flex;
  align-items: flex-end;
  gap: 7px;
  width: 100%;
}
.bio5-admin .bio5-filter-row + .bio5-filter-row {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #edf1f5;
}
.bio5-admin .bio5-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 105px;
}
.bio5-admin .bio5-field label,
.bio5-admin .bio5-field-title {
  color: #526173;
  font-size: 11px;
  font-weight: 750;
  line-height: 1;
  text-align: center;
}
.bio5-admin .bio5-field select,
.bio5-admin .bio5-field input[type="text"] {
  height: 34px !important;
  padding: 0 9px !important;
  border: 1px solid var(--bio5-line-strong) !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #1f2937 !important;
  font-size: 13px !important;
  outline: none;
}
.bio5-admin .bio5-field select:focus,
.bio5-admin .bio5-field input:focus { border-color: #65b7a7 !important; box-shadow: 0 0 0 3px rgba(15,118,110,.10); }
.bio5-admin .bio5-field-region { min-width: 145px; }
.bio5-admin .bio5-field-name { min-width: 105px; max-width: 125px; }
.bio5-admin .bio5-field-date { min-width: 220px; }
.bio5-admin .bio5-date-range { display:flex; align-items:center; gap:5px; }
.bio5-admin .bio5-date-range input { width: 98px !important; }
.bio5-admin .bio5-date-range .bio5-date-sep { color:#94a3b8; font-size:12px; }
.bio5-admin .bio5-date-range img,
.bio5-admin .bio5-field img.bio5-calendar-icon { width:22px; height:22px; object-fit:contain; opacity:.72; }
.bio5-admin .bio5-status-wrap { display:flex; align-items:center; gap:6px; min-height:34px; }
.bio5-admin .bio5-row-spacer { flex:1 1 auto; }
.bio5-admin .bio5-action-group { display:flex; align-items:flex-end; gap:6px; }

/* 일일통계: 조회 조건과 행정서류 발급을 같은 한 줄에 정렬 */
.bio5-admin .bio5-primary-row {
  flex-wrap: nowrap;
  align-items: flex-end;
}
.bio5-admin .bio5-primary-row .bio5-row-spacer {
  min-width: 10px;
}
.bio5-admin .bio5-issue-tools {
  margin-left: auto;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  flex: 0 0 auto;
}
.bio5-admin .bio5-issue-date { min-width: 96px; }
.bio5-admin .bio5-issue-date input { width: 96px !important; }
.bio5-admin .bio5-issue-select { min-width: 190px; }
.bio5-admin .bio5-issue-select select { min-width: 190px; }
.bio5-admin .bio5-detail-row {
  justify-content: flex-start;
}
.bio5-admin .bio5-btn {
  height: 34px;
  padding: 0 13px;
  border: 1px solid var(--bio5-brand);
  border-radius: 8px;
  color: #fff;
  background: var(--bio5-brand);
  font-size: 13px;
  font-weight: 750;
  cursor:pointer;
}
.bio5-admin .bio5-btn:hover { filter:brightness(.96); }
.bio5-admin .bio5-btn.secondary { color:#334155; background:#fff; border-color:var(--bio5-line-strong); box-shadow:none; }
.bio5-admin .bio5-btn.dark { background:#334155; border-color:#334155; }
.bio5-admin .bio5-btn.warn { color:#854d0e; background:#fef3c7; border-color:#f4cf65; }
.bio5-admin .bio5-btn.danger { background:#b42318; border-color:#b42318; }

.bio5-admin .bio5-results-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin: 0 0 7px;
  padding: 0 2px;
}
.bio5-admin .bio5-results-title { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:800; color:#243244; }
.bio5-admin .bio5-count-badge { min-width:38px; padding:3px 9px; text-align:center; color:#0f766e; background:#e8f7f2; border-radius:999px; font-size:12px; font-weight:800; }
.bio5-admin .bio5-results-note { color:#7c8a9a; font-size:11px; }

/* ---------- 표 ---------- */
.bio5-admin .sp_list,
.bio5-admin .sp_list2,
.bio5-admin .sp_listx {
  padding: 0 !important;
  overflow-x: auto;
  background: #fff;
  border: 1px solid var(--bio5-line);
  border-radius: 10px;
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
}

.bio5-admin .sp_list table,
.bio5-admin .sp_list2 table,
.bio5-admin .sp_listx table,
.bio5-admin .form table,
.bio5-admin .kw-capture-table {
  margin: 0 !important;
  border: 0 !important;
  background: #fff;
}

.bio5-admin .sp_list th,
.bio5-admin .sp_list2 th,
.bio5-admin .sp_listx th,
.bio5-admin .form th,
.bio5-admin .kw-capture-table th {
  height: 34px;
  padding: 5px 6px !important;
  color: #344054 !important;
  background: #f2f6f8 !important;
  border-color: #d8e1e8 !important;
  border-top: 0 !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  letter-spacing: -.2px;
  text-align: center;
}

.bio5-admin .sp_list td,
.bio5-admin .sp_list2 td,
.bio5-admin .sp_listx td,
.bio5-admin .form td,
.bio5-admin .kw-capture-table td {
  padding: 6px 7px !important;
  color: #475467;
  background: #fff;
  border-color: #e2e8ee !important;
  font-size: 12px !important;
  line-height: 1.45;
}

.bio5-admin .kw-capture-table tr.pointer:hover td,
.bio5-admin .kw-capture-table tr.bio5-row-hover td,
.bio5-admin .sp_list tr.pointer:hover > td,
.bio5-admin .form tr.pointer:hover > td {
  background: #faf3b6 !important;
}

.bio5-admin .capture-photo-cell {
  text-align: center;
  vertical-align: middle;
  padding: 5px 6px !important;
}

/* 포획사진: 한 줄 4장, 최대 2줄(8장) */
.bio5-admin .capture-thumb-grid {
  display: grid;
  grid-template-columns: repeat(4, 42px);
  grid-auto-rows: 50px;
  justify-content: center;
  align-items: start;
  gap: 4px;
  width: max-content;
  max-width: 180px;
  margin: 0 auto;
}
.bio5-admin .capture-thumb {
  display: block;
  width: 42px;
  height: 50px;
  overflow: hidden;
  border: 1px solid #d8e1e8;
  border-radius: 6px;
  background: #f8fafc;
  box-sizing: border-box;
}
.bio5-admin .capture-thumb img,
.bio5-admin .capture-thumb img.ani-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 5px;
  transform: none !important;
}

/* 사진 마우스 오버 확대 미리보기: 커서를 가로채지 않아 떨림 방지 */
/* body class에 의존하지 않는다. 구형 #preview {position:absolute}보다 항상 우선 적용 */
#preview.bio5-photo-preview {
  position: fixed !important;
  z-index: 999999 !important;
  display: none;
  pointer-events: none !important;
  padding: 0;
  margin: 0 !important;
  background: rgba(17, 24, 39, .96);
  border: 0.5px solid rgba(255,255,255,.20);
  border-radius: 7px;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .22);
  color: #fff;
  line-height: 1.35;
  transform: none !important;
}
#preview.bio5-photo-preview img {
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: min(520px, 42vw) !important;
  max-height: 56vh !important;
  object-fit: contain !important;
  border-radius: 6px;
}
#preview.bio5-photo-preview .bio5-preview-caption {
  max-width: 520px;
  padding: 6px 3px 1px;
  font-size: 12px;
  color: #f8fafc;
  white-space: normal;
}
.bio5-admin .pnum_cell { gap:4px; padding:4px 2px; }
.bio5-admin .pnum_text { font-weight:700; color:#334155; }
.bio5-admin .capture-photo-diff { margin-top:4px; color:#b42318; font-size:11px; line-height:1.25; white-space:normal; }

/* ---------- 페이지네이션 / 목록 하단 ---------- */
/*
 * style.css의 구형 페이징은 <a><span>...</span></a> 구조를 사용한다.
 * a와 span에 동시에 테두리를 주면 번호가 이중 테두리처럼 보이므로
 * 바깥 a만 버튼으로 꾸미고 내부 span은 완전히 투명하게 둔다.
 */
.bio5-admin .paging {
  display:flex !important;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:5px;
  clear:both;
  width:100%;
  height:auto !important;
  min-height:30px;
  overflow:visible !important;
  margin:7px 0 0 !important;
  padding:7px 0 24px !important;
  box-sizing:border-box;
  line-height:1;
}
.bio5-admin .paging > a,
.bio5-admin .paging > strong,
.bio5-admin .paging > span {
  box-sizing:border-box;
  min-width:30px;
  height:30px !important;
  min-height:30px;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  margin:0 !important;
  padding:0 8px !important;
  border:1px solid #d8e1e8 !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#475569 !important;
  font-size:12px !important;
  font-weight:600;
  line-height:28px !important;
  vertical-align:middle !important;
  text-decoration:none !important;
  overflow:hidden;
}

/* 구형 페이징의 내부 span에는 별도 박스를 만들지 않는다. */
.bio5-admin .paging > a > span,
.bio5-admin .paging > strong > span,
.bio5-admin .paging > span > span {
  display:block !important;
  box-sizing:border-box;
  min-width:0 !important;
  min-height:0 !important;
  width:auto;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  color:inherit !important;
  font:inherit !important;
  line-height:inherit !important;
}

/* 첫/이전/다음/끝 화살표는 기존 이미지 아이콘을 유지한다. */
.bio5-admin .paging > a.arrow {
  width:30px;
  padding:0 !important;
}
.bio5-admin .paging > a.arrow > span {
  width:28px !important;
  height:28px !important;
  text-indent:-9999px !important;
  background-repeat:no-repeat !important;
  background-position:center center !important;
}

.bio5-admin .paging > a:hover {
  border-color:#9eb7c5 !important;
  background:#f8fbfc !important;
}
.bio5-admin .paging > a.current,
.bio5-admin .paging > a.current:hover,
.bio5-admin .paging > strong,
.bio5-admin .paging > .on {
  color:#fff !important;
  background:var(--bio5-brand) !important;
  border-color:var(--bio5-brand) !important;
}
.bio5-admin .paging > a.current > span { color:#fff !important; }

/* ---------- 지도 / 목록 ---------- */
.bio5-admin .bio5-map-data-layout {
  display: block;
  width: 100%;
}
.bio5-admin .bio5-map-data-layout.map-open {
  display:grid;
  /* 지도는 충분히 보이되 목록 폭을 우선 확보한다.
     기존 minmax(420px, 3fr)는 420px 최소폭에 fr 여유폭까지 더해져
     실제로는 지도가 예상보다 크게 잡힐 수 있었다. */
  grid-template-columns: clamp(360px, 27vw, 500px) minmax(0, 1fr);
  gap:8px;
  align-items:start;
}
.bio5-admin .bio5-map-panel {
  display:none;
  position:sticky;
  top:8px;
  overflow:hidden;
  border:1px solid var(--bio5-line);
  border-radius:10px;
  background:#fff;
  box-shadow:var(--bio5-shadow);
}
.bio5-admin .bio5-map-data-layout.map-open .bio5-map-panel { display:block; }
.bio5-admin .bio5-map-panel .map_area { width:100% !important; height:460px !important; }
.bio5-admin .bio5-data-panel { min-width:0; width:100%; overflow:hidden; }
.bio5-admin .bio5-data-panel .sp_list,
.bio5-admin .bio5-data-panel .sp_list2,
.bio5-admin .bio5-data-panel .sp_listx {
  width:100%;
  max-width:100%;
  overflow-x:auto;
  box-sizing:border-box;
}
/* 지도 동시보기에서는 관리(수정) 열이 화면 밖으로 밀리지 않도록
   표를 고정 레이아웃으로 맞추고, 고정 성격의 열 폭을 명시한다. */
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table {
  width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
}
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(1) { width:34px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(2) { width:58px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(3) { width:120px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(6) { width:188px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(7) { width:58px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(8) { width:58px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(9) { width:44px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table col:nth-child(10) { width:76px !important; }
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table th,
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table td {
  overflow-wrap:anywhere;
  word-break:break-word;
}
.bio5-admin .bio5-map-data-layout.map-open .kw-capture-table .modibtn {
  min-width:56px !important;
  padding-left:8px !important;
  padding-right:8px !important;
}
.bio5-admin .bio5-map-data-layout:not(.map-open) .bio5-data-panel { width:100%; }
.bio5-admin .hAddr {
  left:8px;
  top:8px;
  max-width:calc(100% - 70px);
  padding:6px 8px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:7px;
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 8px rgba(15,23,42,.08);
}
.bio5-admin .hAddr .title { font-size:11px; color:#526173; }
.bio5-admin #centerAddr { font-size:12px; color:#1f2937; }

/* 기존 left2/right2 화면도 정돈 */
.bio5-admin div.left2 { padding-right:6px; }
.bio5-admin div.right2 { padding-left:2px; color:#475467; }
.bio5-admin .map_wrap { border-radius:10px; overflow:hidden; }

/* ---------- 팝업 ---------- */
.bio5-admin .popup_layer,
.bio5-admin .popup_layer2 {
  background: rgba(15,23,42,.08);
  backdrop-filter: none;
}
.bio5-admin .popup_box,
.bio5-admin .popup_box2 {
  border-radius:14px;
  box-shadow:0 22px 58px rgba(15,23,42,.24);
}

/* ---------- 상태 / 로딩 ---------- */
.bio5-admin .bio5-loading {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:130px;
  color:#64748b;
  font-size:12px;
  background:#fff;
  border:1px solid var(--bio5-line);
  border-radius:10px;
}
.bio5-admin .bio5-loading::before {
  content:"";
  width:16px;
  height:16px;
  margin-right:8px;
  border:2px solid #cddbd7;
  border-top-color:var(--bio5-brand);
  border-radius:50%;
  animation:bio5Spin .7s linear infinite;
}
@keyframes bio5Spin { to { transform:rotate(360deg); } }

/* ---------- 체크박스 ---------- */
.bio5-admin input[type="checkbox"] {
  accent-color: var(--bio5-brand);
}

/* ---------- 화면 폭별 보정 ---------- */
@media (max-width: 1450px) {
  .bio5-admin .box_menu9 > ul > li,
  .bio5-admin .box_menu10 > ul > li { font-size:12px; padding:0 4px; }
  .bio5-admin .bio5-filter-row { flex-wrap:wrap; }
  .bio5-admin .bio5-primary-row { flex-wrap:wrap; }
  .bio5-admin .bio5-issue-tools { margin-left:0; }
  .bio5-admin .bio5-map-data-layout.map-open { grid-template-columns: clamp(340px, 27vw, 400px) minmax(0, 1fr); }
}

@media (max-width: 1220px) {
  .bio5-admin #humanWrap { min-width: 1050px; }
  .bio5-admin .box_menu9 > ul,
  .bio5-admin .box_menu10 > ul { gap:4px; }
  .bio5-admin .box_menu9 > ul > li,
  .bio5-admin .box_menu10 > ul > li { font-size:11px; }
}

.bio5-admin .bio5-list-actions {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:7px;
  margin-top:8px;
  padding:8px 0 5px;
}

.bio5-admin .bio5-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none !important;
  box-sizing:border-box;
  white-space:nowrap;
}

/* 관리자 화면에서는 스크롤 위치가 보이도록 복원 */
html:has(body.bio5-admin),
body.bio5-admin {
  scrollbar-width: thin;
  scrollbar-color: #b9c8cf #f3f6f8;
}
body.bio5-admin::-webkit-scrollbar { display:block; width:10px; height:10px; }
body.bio5-admin::-webkit-scrollbar-track { background:#f3f6f8; }
body.bio5-admin::-webkit-scrollbar-thumb { background:#b9c8cf; border-radius:10px; border:2px solid #f3f6f8; }

/* ========================================================================== 
   v7 - 관리자 상단 프레임 통일
   - 일일통계만 별도 헤더를 쓰고 나머지 화면은 예전 녹색 select_top을 쓰던 불일치 제거
   - 모든 BIO5 메인 화면: [흰색 페이지 헤더/선택영역] -> [공통 메뉴] -> [검색바]
   ========================================================================== */

/* 기존 녹색 상단 선택바를 일일통계의 흰색 헤더 카드와 같은 계열로 통일 */
.bio5-admin .select_top {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 62px !important;
  height: auto !important;
  margin: 0 0 8px !important;
  padding: 8px 14px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  color: var(--bio5-ink) !important;
  text-align: right !important;
  line-height: 1.2 !important;
  border: 1px solid var(--bio5-line) !important;
  border-radius: var(--bio5-radius) !important;
  background: #fff !important;
  box-shadow: 0 3px 12px rgba(15,23,42,.035) !important;
}

/* 현재 활성 메뉴명을 상단 카드 왼쪽 제목으로 자동 표시 */
.bio5-admin .box_cont:has(#menuSell0.tab-active) > .select_top::before { content: "FAQ"; }
.bio5-admin .box_cont:has(#menuSell1.tab-active) > .select_top::before { content: "문서 관리"; }
.bio5-admin .box_cont:has(#menuSell2.tab-active) > .select_top::before { content: "앱메시지관리"; }
.bio5-admin .box_cont:has(#menuSell3.tab-active) > .select_top::before { content: "동선확인"; }
.bio5-admin .box_cont:has(#menuSell4.tab-active) > .select_top::before { content: "기관 관리"; }
.bio5-admin .box_cont:has(#menuSell5.tab-active) > .select_top::before { content: "사용자관리"; }
.bio5-admin .box_cont:has(#menuSell6.tab-active) > .select_top::before { content: "전국현황"; }
.bio5-admin .box_cont:has(#menuSell7.tab-active) > .select_top::before { content: "통계그래프"; }
.bio5-admin .box_cont:has(#menuSell8.tab-active) > .select_top::before { content: "연도별통계"; }
.bio5-admin .box_cont:has(#menuSell9.tab-active) > .select_top::before { content: "일일통계"; }

.bio5-admin .select_top::before {
  margin-right: auto;
  padding-right: 18px;
  color: #162334;
  font-size: 18px !important;
  font-weight: 800;
  letter-spacing: -.35px;
  white-space: nowrap;
  text-align: left;
}

/* 구형 select_top 안에서 녹색 배경을 전제로 지정했던 글자색/float 제거 */
.bio5-admin .select_top .admin-left-link,
.bio5-admin .select_top .admin-right-link,
.bio5-admin .select_top > span {
  position: static !important;
  float: none !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.bio5-admin .select_top > span[style*="color:yellow"],
.bio5-admin .select_top > span[style*="color: yellow"],
.bio5-admin .select_top > span[style*="color:#"],
.bio5-admin .select_top font,
.bio5-admin .select_top b {
  color: #334155 !important;
}
.bio5-admin .select_top .admin-left-link a,
.bio5-admin .select_top .admin-right-link a {
  color: var(--bio5-brand-dark) !important;
  border-color: var(--bio5-line-strong) !important;
  background: #fff !important;
}

/* 상단 카드의 셀렉트/버튼도 검색바와 같은 높이와 형태로 통일 */
.bio5-admin .select_top select,
.bio5-admin .select_top input[type="text"],
.bio5-admin .select_top input[type="search"] {
  height: var(--bio5-control-h) !important;
  min-width: 150px !important;
  margin: 0 !important;
  border: 1px solid var(--bio5-line-strong) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}
.bio5-admin .select_top input[type="button"],
.bio5-admin .select_top button {
  height: var(--bio5-control-h) !important;
  margin: 0 !important;
  padding: 0 12px !important;
  border-radius: 8px !important;
}

/* 일일통계의 별도 헤더도 동일 규격에 맞춤 */
.bio5-admin .bio5-page-heading {
  min-height: 62px !important;
  margin: 0 0 8px !important;
  padding: 8px 14px !important;
  border: 1px solid var(--bio5-line) !important;
  border-radius: var(--bio5-radius) !important;
  background: #fff !important;
  box-shadow: 0 3px 12px rgba(15,23,42,.035) !important;
}

/* 공통 메뉴는 모든 페이지에서 정확히 동일한 간격을 사용 */
.bio5-admin .bio5-common-menu {
  width: 100% !important;
  margin: 0 0 8px !important;
}

/* 좁아질 때 제목은 왼쪽에 남고 선택 도구만 자연스럽게 줄바꿈 */
@media (max-width: 1450px) {
  .bio5-admin .select_top::before { flex: 0 0 100%; padding-bottom: 2px; }
  .bio5-admin .select_top { justify-content: flex-end !important; }
}

/* ========================================================================== 
   v10 - 삭제데이터 / 수렵금지구역 관리 전용 정리
   - 구형 float/고정폭 레이아웃을 공통 관리자 UI와 분리
   - 두 보조 관리화면도 일일통계와 같은 상단 프레임/메뉴를 사용
   ========================================================================== */
.bio5-admin .bio5-utility-page {
  padding: 6px !important;
}

.bio5-admin .bio5-utility-filter-panel {
  padding: 9px 12px !important;
}

.bio5-admin .bio5-utility-filter-row {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.bio5-admin .bio5-utility-data {
  width: 100%;
  min-width: 0;
  clear: both;
}

/* 삭제데이터 관리 */
.bio5-admin .bio5-deldata-list-tools {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  margin: 0 0 7px;
}

.bio5-admin .bio5-deldata-list-tools select,
.bio5-admin .bio5-range-list-tools select {
  height: 34px !important;
  min-width: 170px;
  padding: 0 34px 0 10px !important;
  border: 1px solid var(--bio5-line-strong) !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #1f2937 !important;
  font-size: 12px !important;
  outline: none;
}

.bio5-admin .bio5-deldata-list {
  width: 100%;
}

.bio5-admin .bio5-deldata-list table {
  width: 100% !important;
  min-width: 1220px;
  table-layout: fixed !important;
}

.bio5-admin .bio5-deldata-photo-cell {
  padding: 5px !important;
  text-align: center !important;
  vertical-align: middle !important;
}

.bio5-admin .bio5-deldata-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 42px);
  grid-auto-rows: 50px;
  justify-content: center;
  gap: 4px;
  width: max-content;
  max-width: 180px;
  margin: 0 auto;
}

.bio5-admin .bio5-deldata-photo-grid .ani-image {
  display: block;
  width: 42px !important;
  height: 50px !important;
  margin: 0 !important;
  object-fit: cover;
  border: 1px solid #d8e1e8;
  border-radius: 6px;
  background: #f4f7f9;
  transform-origin: center center;
}

/* 수렵금지구역 관리 */
.bio5-admin .bio5-range-layout {
  display: grid;
  grid-template-columns: clamp(430px, 31vw, 540px) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  margin-bottom: 10px;
}

.bio5-admin .bio5-range-map-card,
.bio5-admin .bio5-range-data-card,
.bio5-admin .bio5-range-register-card {
  position: relative;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--bio5-line);
  border-radius: 10px;
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
}

.bio5-admin .bio5-range-map-card {
  overflow: hidden;
}

.bio5-admin .bio5-range-map {
  width: 100% !important;
  height: 520px !important;
  min-height: 520px;
}

.bio5-admin .bio5-range-address {
  left: 8px !important;
  top: 8px !important;
  max-width: calc(100% - 80px);
  padding: 7px 9px !important;
  border: 1px solid rgba(203,213,225,.8);
  border-radius: 8px !important;
  box-shadow: 0 3px 10px rgba(15,23,42,.08);
}

.bio5-admin .bio5-range-data-card {
  padding: 8px;
  overflow: hidden;
}

.bio5-admin .bio5-range-list-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-height: 34px;
  margin: 0 0 7px;
}

.bio5-admin .bio5-range-list-tools select:first-child {
  min-width: 105px;
}

.bio5-admin .bio5-range-list-tools select:last-child {
  min-width: 190px;
}

.bio5-admin .bio5-range-list {
  width: 100%;
}

.bio5-admin .bio5-range-list table {
  width: 100% !important;
  min-width: 720px;
  table-layout: fixed !important;
}

.bio5-admin .bio5-range-register-card {
  margin-top: 10px;
  padding: 12px;
}

.bio5-admin .bio5-card-title {
  margin-bottom: 10px;
  color: #243244;
  font-size: 14px;
  font-weight: 800;
}

.bio5-admin .bio5-range-register-grid {
  display: grid;
  grid-template-columns: minmax(170px, 1.2fr) minmax(130px, .9fr) minmax(130px, .9fr) minmax(110px, .7fr) minmax(240px, 2fr) auto;
  gap: 8px;
  align-items: end;
}

.bio5-admin .bio5-range-register-grid .bio5-field {
  min-width: 0;
}

.bio5-admin .bio5-range-register-grid .bio5-field select,
.bio5-admin .bio5-range-register-grid .bio5-field input[type="text"] {
  width: 100% !important;
  box-sizing: border-box;
}

.bio5-admin .bio5-range-register-action {
  display: flex;
  align-items: flex-end;
}

.bio5-admin .bio5-range-register-action .bio5-btn {
  min-width: 72px;
}

.bio5-admin .bio5-required {
  color: #d92d20;
}

@media (max-width: 1450px) {
  .bio5-admin .bio5-range-layout {
    grid-template-columns: 400px minmax(0, 1fr);
  }
  .bio5-admin .bio5-range-register-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
  .bio5-admin .bio5-range-note-field {
    grid-column: span 2;
  }
  .bio5-admin .bio5-range-register-action {
    justify-content: flex-end;
  }
}

/* ==========================================================================
   2026-09-29 일일통계 상단 셀렉트 폭 / 화살표 영역 최종 보정
   - 선택 글자가 잘리지 않도록 각 컨트롤 폭을 명시
   - 기존 하단의 padding shorthand가 select 화살표 영역을 덮지 않도록 최종 우선순위에서 재지정
   ========================================================================== */

/* 일일통계 select 공통: 화살표 공간 확보 */
.bio5-admin .bio5-day-page .bio5-field select {
  box-sizing: border-box !important;
  padding: 0 34px 0 10px !important;
  background-position: right 10px center !important;
  white-space: nowrap !important;
  text-overflow: clip;
}

/* 상단 1차 조회조건 */
.bio5-admin .bio5-day-page #setjibu {
  width: 130px !important;
  min-width: 130px !important;
}

.bio5-admin .bio5-day-page #selectRegion {
  width: 140px !important;
  min-width: 140px !important;
}

.bio5-admin .bio5-day-page #setList {
  width: 135px !important;
  min-width: 135px !important;
}

.bio5-admin .bio5-day-page #arrayAny {
  width: 125px !important;
  min-width: 125px !important;
}

/* 상세 필터 */
.bio5-admin .bio5-day-page #ApplyType {
  width: 120px !important;
  min-width: 120px !important;
}

.bio5-admin .bio5-day-page #BasType {
  width: 125px !important;
  min-width: 125px !important;
}

.bio5-admin .bio5-day-page #Process {
  width: 125px !important;
  min-width: 125px !important;
}

.bio5-admin .bio5-day-page #asfstate {
  width: 135px !important;
  min-width: 135px !important;
}

/* 행정서류 */
.bio5-admin .bio5-day-page #issueprint {
  width: 200px !important;
  min-width: 200px !important;
}

/* 부모 필드도 select 폭보다 작아지지 않게 유지 */
.bio5-admin .bio5-day-page #setjibu,
.bio5-admin .bio5-day-page #selectRegion,
.bio5-admin .bio5-day-page #setList,
.bio5-admin .bio5-day-page #arrayAny,
.bio5-admin .bio5-day-page #ApplyType,
.bio5-admin .bio5-day-page #BasType,
.bio5-admin .bio5-day-page #Process,
.bio5-admin .bio5-day-page #asfstate,
.bio5-admin .bio5-day-page #issueprint {
  flex-shrink: 0;
}

/* 1450px 이하에서는 기존 줄바꿈 정책을 유지하면서 너무 넓은 폭만 조금 줄임 */
@media (max-width: 1450px) {
  .bio5-admin .bio5-day-page #setjibu {
    width: 130px !important;
    min-width: 130px !important;
  }

  .bio5-admin .bio5-day-page #selectRegion {
    width: 155px !important;
    min-width: 155px !important;
  }

  .bio5-admin .bio5-day-page #setList {
    width: 138px !important;
    min-width: 138px !important;
  }

  .bio5-admin .bio5-day-page #arrayAny {
    width: 118px !important;
    min-width: 118px !important;
  }

  .bio5-admin .bio5-day-page #issueprint {
    width: 185px !important;
    min-width: 185px !important;
  }
}

/* 앱메시지 카드: 구형 sub_main.css의 section 전역규칙 무효화 */
.push-workspace section.push-panel {
    display: block !important;
    border-collapse: separate !important;

    width: auto !important;
    min-width: 0 !important;

    padding: 14px 16px 16px !important;
    box-sizing: border-box !important;

    border: 1px solid var(--bio2-line) !important;
    border-radius: 14px !important;
    background: #fff !important;
}

/* =========================================================
   BIO5 테이블 글자 크기 12px 통일
   ========================================================= */

.bio5-admin .sp_list table th,
.bio5-admin .sp_list table td,
.bio5-admin .sp_list2 table th,
.bio5-admin .sp_list2 table td,
.bio5-admin .sp_listx table th,
.bio5-admin .sp_listx table td,
.bio5-admin .form table th,
.bio5-admin .form table td,
.bio5-admin .kw-capture-table th,
.bio5-admin .kw-capture-table td,
.bio5-admin .bio5-deldata-list table th,
.bio5-admin .bio5-deldata-list table td,
.bio5-admin .bio5-range-list table th,
.bio5-admin .bio5-range-list table td {
    font-size: 13px !important;
}

/* 테이블 셀 안에 별도 태그로 감싸진 글자도 13px 유지 */
.bio5-admin .sp_list td a,
.bio5-admin .sp_list td span,
.bio5-admin .sp_list td font,
.bio5-admin .sp_list2 td a,
.bio5-admin .sp_list2 td span,
.bio5-admin .sp_list2 td font,
.bio5-admin .sp_listx td a,
.bio5-admin .sp_listx td span,
.bio5-admin .sp_listx td font,
.bio5-admin .form td a,
.bio5-admin .form td span,
.bio5-admin .form td font,
.bio5-admin .kw-capture-table td a,
.bio5-admin .kw-capture-table td span,
.bio5-admin .kw-capture-table td font {
    font-size: 13px !important;
}

.bio5-admin .sp_list td span.offline_chk,
.bio5-admin .form td span.offline_chk,
.bio5-admin .kw-capture-table td span.offline_chk {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    border-radius: 10px !important;
    color: #b91c1c !important;
    font-size: 11px !important;
    line-height: 11px !important;
}