/* 한국자동차성능점검인협동조합 — 관리 화면(성능점검·연장보증 시스템)용 D 디자인 보정 (2026-11-11)
 * /new/hsh-theme.css, /new/d/legacy.css 뒤에 불러온다.
 * 관리 화면은 표·입력칸이 빽빽한 업무 화면이므로:
 *   - 크기·간격은 기존(압축 배치 adminui.js 포함) 그대로 둔다. 색·선·모서리·글꼴만 D 로 맞춘다.
 *   - 버튼 색은 동작 구분이므로 색상은 유지하고 평평하게만 다듬는다(초록·하늘·주황·빨강).
 *   - 칸 색으로 뜻을 구분하던 곳(노랑·청록)은 서로 다른 색으로 구분을 유지한다.
 * adminui.js 는 html.adm-compact … !important 로 크기를 정한다. 모서리만은 여기서 한 단계 더 높은 우선순위로 각지게 한다.
 */
:root { --d-line: #8a8f98; }
/* 글꼴: hsh-theme.css 를 쓰지 않는 화면(ewh)에서도 같은 글꼴이 되게 (아이콘 글꼴 제외) */
html body, body :not(.glyphicon):not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not([class^="icon-"]):not([class*=" icon-"]):not(.caret) { font-family: var(--hsh-font) !important; }
html body { font-size: 14px; line-height: 1.5; }
h1, .h1 { font-size: 24px; line-height: 1.25; }
h2, .h2 { font-size: 20px; line-height: 1.3; }
h3, .h3 { font-size: 18px; }
h4, .h4 { font-size: 16px; }
p, li, dd, dt, td, th { font-size: 14px; }
hr, hr[style*="green" i], hr[style*="red" i], hr[style*="gray" i] { margin: 14px 0 !important; background: var(--d-rule) !important; }

/* ── 메뉴 줄: 얇게 */
.navbar.navbar-inverse { min-height: 48px; }
.navbar > .container, .navbar > .container-fluid { min-height: 46px; }
.navbar .navbar-brand img { width: 36px !important; height: 36px !important; }
.navbar .navbar-brand a::after { font-size: 15px; }
.navbar-inverse .navbar-nav > li > a,
.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus,
.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {
  margin: 0 0 0 20px !important; padding: 12px 0 !important; font-size: 14px; }
.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { box-shadow: inset 0 -2px 0 var(--d-ink) !important; }
.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .open > a { box-shadow: inset 0 -2px 0 var(--d-blue) !important; }
@media (max-width: 767px) {
  .navbar-inverse .navbar-nav > li > a, .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .open > a { margin: 0 !important; font-size: 16px; font-weight: 700; padding: 11px 0 !important; }
}

/* ── 제목 상자 */
.jumbotron, .container .jumbotron, .container-fluid .jumbotron,
.jumbotron[style*="background" i], .container .jumbotron.bg-info, .container .jumbotron.bg-success {
  margin: 0; padding: 36px 0 28px !important; border-top: 0 !important; }   /* 메뉴 줄 밑줄 바로 아래라 윗선을 또 긋지 않는다 */
.jumbotron h2, .jumbotron .h2 { font-size: 28px !important; margin: 0 0 12px; }
/* 제목 아래 안내 문장: 제목처럼 굵게 두지 않는다 */
.jumbotron h4, .jumbotron .h4 { max-width: 62em; margin: 0 auto; font-size: 15px; font-weight: 400; line-height: 1.7; letter-spacing: 0; color: var(--d-sub); }
/* 화면 맨 아래 저작권 줄: 본문과 같은 폭의 가는 선 + 작은 글씨 */
.container > .row > center > hr { margin: 8px 15px 16px !important; background: var(--d-rule) !important; }
.container > .row > center > p { font-size: 13px; color: var(--d-sub); }
.jumbotron, .container .jumbotron { position: static !important; top: auto !important; }   /* 원래 45px 아래로 밀려 있어 여백을 줄이면 아래 줄과 겹친다 */
.jumbotron h1, .jumbotron .h1 { font-size: 24px !important; margin-bottom: 6px; }
.jumbotron p, .jumbotron .lead { font-size: 14px !important; }
.jumbotron center, .jumbotron .text-center, .well > center { text-align: center !important; }   /* 관리 화면 제목은 기존처럼 가운데 */
.jumbotron, .jumbotron > center { text-align: center; }
body > .container > .alert { border-left: 0; border-top: 2px solid var(--d-ink); background: var(--d-mist); }

/* ── 입력칸: 기존 크기, 회색 테두리 */
.form-control { min-height: 0; padding: 6px 10px; font-size: 14px; border-color: var(--d-line) !important; }
.input-lg, .form-control.input-lg { min-height: 0; padding: 9px 12px; font-size: 15px; }
.input-sm, .form-control.input-sm { min-height: 0; padding: 4px 8px; font-size: 13px; }
input[type=text], input[type=number], input[type=date], input[type=password], input[type=email], input[type=tel], select, textarea { border: 1px solid var(--d-line); background-color: #fff; }
.form-control:focus, input:focus, select:focus, textarea:focus { border-color: var(--d-blue) !important; outline: 2px solid var(--d-blue) !important; outline-offset: 0; }
.form-control[readonly], .form-control[disabled], input[readonly], input[disabled] { background-color: var(--d-mist); }
label, .control-label { font-size: 13px; }
.input-group-addon { border-color: var(--d-line); }

/* ── 모서리: 압축 배치(4px 고정)보다 우선해서 각지게 */
html.adm-compact body input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),
html.adm-compact body select, html.adm-compact body textarea, html.adm-compact body .btn,
html.adm-compact body button:not(.navbar-toggle):not(.close), html.adm-compact body > .well { border-radius: 0 !important; }

/* ── 버튼: 동작 구분 색은 유지, 평평하게 */
.btn { padding: 6px 12px; font-size: 14px; }
.btn-lg, .btn-group-lg > .btn { padding: 10px 16px; font-size: 16px; }
.btn-sm, .btn-xs { padding: 4px 9px; font-size: 13px; }
.btn-primary, .btn-primary:focus { background-color: #0b3fd9 !important; border-color: #0b3fd9 !important; color: #fff !important; }
.btn-primary:hover, .btn-primary:active { background-color: #082c9a !important; border-color: #082c9a !important; color: #fff !important; }
.btn-success, .btn-success:focus { background-color: #17784a !important; border-color: #17784a !important; color: #fff !important; }
.btn-success:hover, .btn-success:active, .btn-success.active { background-color: #0f5a37 !important; border-color: #0f5a37 !important; color: #fff !important; }
.btn-info, .btn-info:focus { background-color: #1f7396 !important; border-color: #1f7396 !important; color: #fff !important; }
.btn-info:hover, .btn-info:active, .btn-info.active { background-color: #175872 !important; border-color: #175872 !important; color: #fff !important; }
.btn-warning, .btn-warning:focus { background-color: #c47600 !important; border-color: #c47600 !important; color: #fff !important; }
.btn-warning:hover, .btn-warning:active { background-color: #9a5c00 !important; border-color: #9a5c00 !important; color: #fff !important; }
.btn-danger, .btn-danger:focus { background-color: #c8201a !important; border-color: #c8201a !important; color: #fff !important; }
.btn-danger:hover, .btn-danger:active { background-color: #9d1813 !important; border-color: #9d1813 !important; color: #fff !important; }
.btn-default, .btn-secondary, .btn-default:focus, .btn-secondary:focus { background-color: #fff !important; border-color: var(--d-line) !important; color: var(--d-ink) !important; }
.btn-default:hover, .btn-secondary:hover, .btn-default:active, .btn-secondary:active { background-color: var(--d-mist) !important; border-color: var(--d-ink) !important; color: var(--d-ink) !important; }
.bo_fixed .btn { border-radius: 0 !important; }

/* ── 표 */
html body #ipe_table th { background-color: var(--d-mist) !important; border-bottom: 1px solid var(--d-ink); }
.table > thead > tr > th { border-bottom: 1px solid var(--d-ink); }

/* ── 뜻이 있는 색은 구분을 유지: 노랑 칸 → 옅은 파랑, 청록 칸 → 옅은 회색, 강조 라벨·요약 줄 */
[style*="#fffbd4" i], [style*="#faf8e3" i] { background-color: #e7edfd !important; }
[style*="#D6EEEE" i] { background-color: #f1f2f4 !important; }
[style*="border:solid 1px green" i], [style*="border: solid 1px green" i] { border-color: var(--d-line) !important; }
.mandatory { background-color: #0b3fd9 !important; }
[style*="SlateBlue" i][style*="background" i] { background-color: var(--d-ink) !important; }

/* ── 팝업창 제목: 관리 화면 크기로 */
.modal-title { font-size: 20px; }
.well { padding: 14px; }

/* ── 성능점검시스템 첫 화면(/ipe/index.php) — 메인 시안과 같은 머리 구역 (2026-11-13) */
.iph { padding-top: 28px; padding-bottom: 72px; }
.iph-meta { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; font-weight: 600; color: var(--d-ink); }
.iph h1.iph-h { margin: 36px 0 48px !important; font-size: clamp(34px, 5.6vw, 76px) !important; font-weight: 800 !important; letter-spacing: -0.04em; line-height: 1.06 !important; color: var(--d-ink); text-align: left; }
.iph h1.iph-h span { display: block; }
.iph h1.iph-h .b { color: var(--d-blue); }
.iph-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 28px; }
.iph-pic { grid-column: 1 / 9; margin: 0; }
.iph-pic img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.iph-txt { grid-column: 9 / 13; border-top: 2px solid var(--d-ink); padding-top: 18px; display: flex; flex-direction: column; }
.iph-one { font-size: 22px !important; font-weight: 800; letter-spacing: -0.03em; line-height: 1.35; margin: 0 0 16px; color: var(--d-ink); }
.iph-sub { font-size: 15px !important; line-height: 1.75; color: var(--d-sub); margin: 0; }
.iph-list { list-style: none; margin: auto 0 0; padding: 28px 0 0; }
.iph-list li { display: flex; align-items: baseline; gap: 16px; padding: 13px 0; border-top: 1px solid var(--d-ink); font-size: 15px; font-weight: 600; color: var(--d-ink); }
.iph-list li:last-child { border-bottom: 1px solid var(--d-ink); }
.iph-list b { font-weight: 600; font-size: 13px; color: var(--d-blue); min-width: 22px; }
@media (max-width: 991px) {
  .iph-pic, .iph-txt { grid-column: 1 / -1; }
  .iph-list { margin-top: 0; }
}
@media (max-width: 600px) {
  .iph { padding-top: 18px; padding-bottom: 44px; }
  .iph-meta { font-size: 12px; }
  .iph h1.iph-h { margin: 24px 0 28px !important; }
  .iph-one { font-size: 19px !important; }
}

/* ── 연장보증 바닥글·약관 창 — 메인 시안과 같은 선·글자 (2026-11-13, ewh) */
.dft { margin-top: 56px; padding-bottom: 28px; }
.dft-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; border-top: 2px solid var(--d-ink); padding: 22px 0 18px; }
.dft-brand { display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 800; letter-spacing: -0.02em; color: var(--d-ink); }
.dft-brand small { display: block; font-size: 12px; font-weight: 500; color: var(--d-sub); letter-spacing: 0; }
.dft-call { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; font-size: 13px; color: var(--d-sub); }
.dft-call strong { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; color: var(--d-ink); }
.dft-info { display: flex; flex-wrap: wrap; gap: 4px 20px; border-top: 1px solid var(--d-ink); padding: 14px 0; font-size: 13px; color: var(--d-sub); }
.dft-links { display: flex; gap: 20px; padding: 0 0 14px; }
.dft-links a, .dft-links a:link, .dft-links a:visited { font-size: 13px; font-weight: 700; color: var(--d-ink) !important; background: transparent !important; border: 0 !important; text-decoration: underline; text-underline-offset: 3px; }
.dft-links a:hover, .dft-links a:focus { color: var(--d-blue) !important; background: transparent !important; outline: 0; }
.dft-links a:focus-visible { outline: 2px solid var(--d-blue); outline-offset: 3px; }
.dft-copy { border-top: 1px solid var(--d-rule); padding-top: 12px; font-size: 12px; color: var(--d-sub); }
.dft .modal-body { max-height: 70vh; overflow-y: auto; padding: 20px 24px; }
.dft .modal-body pre { white-space: pre-wrap; word-break: keep-all; overflow-wrap: anywhere; border: 0; border-radius: 0; background: #fff; padding: 0; margin: 0; font-family: inherit !important; font-size: 14px; line-height: 1.75; color: var(--d-ink); }
.dft .modal-title { font-size: 22px !important; }
@media (max-width: 600px) {
  .dft-call strong { font-size: 22px; }
  .dft .modal-body { padding: 14px 14px; }
}

/* 연장보증 서비스 안내서 창과 여는 버튼 (2026-11-13) */
.dft .modal-body.dft-guide { padding: 0; max-height: none; overflow: hidden; }
.dft-guide iframe { display: block; width: 100%; height: 70vh; border: 0; }
.iph-btn { margin: 22px 0 0; }
.iph-btn a, .iph-btn a:link, .iph-btn a:visited { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 16px; border: 1px solid var(--d-ink) !important; background: #fff !important; color: var(--d-ink) !important; font-size: 15px; font-weight: 700; text-decoration: none; }
.iph-btn a:hover, .iph-btn a:focus { background: var(--d-ink) !important; color: #fff !important; text-decoration: none; outline: 0; }

/* ── 창(모달): 화면 가운데에, 움직임 없이 바로 표시 (2026-11-13, 로그인·비밀번호·약관·안내서 공통) */
.modal.fade, .modal.fade .modal-dialog, .modal-backdrop.fade { -webkit-transition: none !important; transition: none !important; }
.modal.fade .modal-dialog, .modal.in .modal-dialog { -webkit-transform: none !important; transform: none !important; }
.modal.in { display: flex !important; overflow-y: auto; }
.modal > .modal-dialog { margin: auto !important; width: calc(100% - 20px) !important; max-width: 600px; }
.modal > .modal-dialog.modal-sm { max-width: 300px; }
.modal > .modal-dialog.modal-lg, .modal > .modal-dialog:has(> .modal-dialog) { max-width: 900px; }
.modal-dialog > .modal-dialog { width: 100% !important; max-width: none; margin: 0 !important; }
.modal > .modal-dialog { padding: 10px 0; min-height: 0 !important; }   /* 머리말의 휴대폰용 min-height(화면 높이)가 있으면 가운데로 오지 않는다 */
/* 창을 닫은 뒤 메뉴 링크에 남던 파란 상자 → 다른 메뉴와 같은 밑줄 표시로 */
.navbar a:focus, .navbar a:focus-visible { outline: 0 !important; }
.navbar .navbar-nav > li > a:focus-visible { box-shadow: inset 0 -2px 0 var(--d-ink) !important; }

/* ── 로그인·비밀번호 변경 창 — 메인 시안의 선·글자 (2026-11-13, ipe·ew·ewh 공통) */
#ModalLoginForm > .modal-dialog, #passwdup > .modal-dialog { max-width: 440px; }
#ModalLoginForm .modal-content, #passwdup .modal-content { position: relative; padding: 38px 36px 30px; border: 2px solid var(--d-ink) !important; }
#ModalLoginForm .modal-header, #passwdup .modal-header { border: 0 !important; padding: 0 0 24px; background: transparent; }
#ModalLoginForm .modal-header::before, #passwdup .modal-header::before { content: "한국자동차성능점검인협동조합"; display: block; margin-bottom: 12px; font-size: 12px; font-weight: 600; color: var(--d-ink); }
#ModalLoginForm .modal-title, #passwdup .modal-title { font-size: 34px !important; font-weight: 800; letter-spacing: -0.04em; line-height: 1.1; margin: 0; }
#ModalLoginForm .modal-body, #passwdup .modal-body { padding: 0; border-top: 2px solid var(--d-ink); padding-top: 22px; max-height: none; overflow: visible; }
#ModalLoginForm .form-group, #passwdup .form-group { margin: 0 0 16px; }
#ModalLoginForm .control-label, #passwdup .control-label { display: block; margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--d-ink); }
#ModalLoginForm .form-control, #passwdup .form-control { width: 100% !important; height: 50px !important; padding: 0 14px !important; font-size: 16px !important; border: 1px solid var(--d-ink) !important; background: #fff; box-shadow: none !important; }
#ModalLoginForm .form-control::placeholder, #passwdup .form-control::placeholder { color: #9aa0a8; }
#ModalLoginForm .form-group:last-child, #passwdup .form-group:last-child { margin: 24px 0 0; }
#ModalLoginForm button[type="submit"], #passwdup button[type="submit"] { display: block; width: 100%; height: 52px; padding: 0 16px; font-size: 16px; font-weight: 700; letter-spacing: -0.01em; background-color: var(--d-ink) !important; border: 1px solid var(--d-ink) !important; color: #fff !important; }
#ModalLoginForm button[type="submit"]:hover, #ModalLoginForm button[type="submit"]:focus, #passwdup button[type="submit"]:hover, #passwdup button[type="submit"]:focus { background-color: var(--d-blue) !important; border-color: var(--d-blue) !important; }
#ModalLoginForm .form-group a, #ModalLoginForm .form-group a:link, #ModalLoginForm .form-group a:visited { display: block; margin-top: 16px; text-align: center; font-size: 13px; font-weight: 600; color: var(--d-sub) !important; background: transparent !important; border: 0 !important; text-decoration: underline; text-underline-offset: 3px; }
#ModalLoginForm .form-group a:hover, #ModalLoginForm .form-group a:focus { color: var(--d-blue) !important; outline: 0; }
/* 닫기: 아래 줄 대신 오른쪽 위의 × */
#ModalLoginForm .modal-footer, #passwdup .modal-footer { position: absolute; top: 12px; right: 12px; margin: 0; padding: 0; border: 0 !important; background: transparent; }
#ModalLoginForm .modal-footer .btn, #passwdup .modal-footer .btn { width: 40px; height: 40px; padding: 0; border: 0 !important; background: transparent !important; font-size: 0 !important; line-height: 1; color: var(--d-ink) !important; }
#ModalLoginForm .modal-footer .btn::before, #passwdup .modal-footer .btn::before { content: "\00d7"; font-size: 30px; font-weight: 300; line-height: 40px; }
#ModalLoginForm .modal-footer .btn:hover, #passwdup .modal-footer .btn:hover { color: var(--d-blue) !important; }
@media (max-width: 480px) {
  #ModalLoginForm .modal-content, #passwdup .modal-content { padding: 30px 22px 24px; }
  #ModalLoginForm .modal-title, #passwdup .modal-title { font-size: 28px !important; }
}

/* 로그인·비밀번호 변경 창 안의 알림과 잘못 입력한 칸 (auth.js) */
.auth-msg { display: none; margin: 0 0 14px; padding: 11px 13px; border: 1px solid var(--d-red); border-left-width: 4px; background: #fff; color: var(--d-red); font-size: 13.5px; font-weight: 600; line-height: 1.5; }
.auth-msg.ok { border-color: var(--d-blue); color: var(--d-blue); }
#ModalLoginForm .form-control.auth-bad, #passwdup .form-control.auth-bad { border-color: var(--d-red) !important; outline: 2px solid var(--d-red) !important; outline-offset: 0; }

/* ── 목록 화면(압축 배치): 메뉴 줄과 제목을 조회 조건·표와 같은 폭으로 (2026-11-13)
   그전에는 메뉴·제목만 가운데 1170px 상자 안에 있고 조회 조건과 표는 화면 전체 폭이라 왼쪽 끝이 어긋났다.
   조회 조건 줄(.adm-srow)이 있는 목록 화면에만 적용한다. 신규입력 같은 입력 화면은 가운데 1170px 그대로. */
html.adm-compact:has(.adm-srow) body > .container { width: 100% !important; max-width: none !important; padding-left: 12px !important; padding-right: 12px !important; }
/* 메뉴 줄은 모든 화면에서 같은 자리(화면 전체 폭, 좌우 12px) — 목록 화면만 넓히면 페이지를 옮길 때 로고·메뉴가 좌우로 움직인다 (2026-11-13) */
@media (min-width: 768px) {
  nav.navbar > .container { width: 100% !important; max-width: none !important; padding-left: 12px !important; padding-right: 12px !important; }
  nav.navbar .navbar-header { margin-left: 0 !important; margin-right: 0 !important; }
  nav.navbar .navbar-brand, html.adm-compact nav.navbar.navbar .navbar-brand { padding-left: 0 !important; margin-left: 0 !important; }   /* adminui.js 의 12px 보다 우선 */
  nav.navbar .navbar-collapse { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
  nav.navbar .navbar-right { margin-right: 0 !important; }
}
/* 메뉴 줄 아래 선 바로 밑에 제목 상자(.alert)의 윗선이 또 있어 두 줄로 보이던 것 → 윗선 제거 */
html.adm-compact .alert, html.adm-compact .alert-info { border-top: 0 !important; }
/* 표도 제목 띠·조회 조건과 같은 좌우 여백(12px) 안에 둔다 — 그전에는 표만 화면 끝에 붙어 있었다 */
html.adm-compact:has(.adm-srow) form:has(> .row table.table) { padding-left: 12px !important; padding-right: 12px !important; }

/* ── 상사등록·딜러등록(변경 포함) 입력칸 정렬 (2026-11-13) — form#firm: firmReg·firmReg_change·dealer·dealer_change
   이름표 폭을 같게 하고 입력칸을 칸 끝까지 채운다. 이름표가 없던 오른쪽 칸에는 화면에서만 이름표를 붙인다(마크업·전송값은 그대로). */
form#firm { margin-top: 16px; }
form#firm > .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; margin: 0; }
form#firm > .row::before, form#firm > .row::after { display: none; }
form#firm > .row > [class*="col-"] { width: auto; float: none; padding: 0; }
form#firm > center > .row { margin: 6px 0 0; }
form#firm > center > .row > [class*="col-"] { padding: 0; }
form#firm .form-group { display: grid !important; grid-template-columns: 76px minmax(0, 1fr); column-gap: 10px; row-gap: 8px; align-items: center; margin: 0 0 12px; }
form#firm .form-group > label, form#firm .form-group::before { grid-column: 1; margin: 0; font-size: 13px; font-weight: 700; color: var(--d-ink); white-space: nowrap; }
form#firm .form-group > .form-control, form#firm .form-group > select.form-control { grid-column: 2; width: 100% !important; max-width: none !important; height: 40px !important; font-size: 14px !important; }
form#firm .form-group:has(> #sample4_postcode)::before { content: "우편번호"; }
form#firm .form-group:has(> #sample4_roadAddress)::before { content: "주소"; align-self: start; padding-top: 10px; }
form#firm .form-group:has(> #CUST_TYPE)::before { content: "사업자"; }
form#firm .form-group:has(> #asso_union)::before { content: "매매조합"; }
form#firm .form-group:has(> #dealcust)::before { content: "매매상사"; }
/* 우편번호 + 찾기 버튼, 구분 + 사업자등록번호: 한 줄에 둘 */
form#firm .form-group:has(> #sample4_postcode) { grid-template-columns: 76px minmax(0, 1fr) auto; }
form#firm .form-group:has(> #sample4_postcode) > .btn { grid-column: 3; height: 40px; padding: 0 16px; }
form#firm .form-group:has(> #CUST_TYPE) { grid-template-columns: 76px 150px minmax(0, 1fr); }
form#firm .form-group:has(> #CUST_TYPE) > #IDEN_NO { grid-column: 3; }
/* 등록 버튼 줄 (이름표 칸 없이 전체 폭) */
form#firm > center .form-group { display: block !important; margin: 0; }
form#firm > center .btn-block { height: 46px; font-size: 15px; font-weight: 700; }
@media (max-width: 991px) {
  form#firm > .row { grid-template-columns: minmax(0, 1fr); }
}

/* ── 선택(포커스) 표시 일괄 정리 (2026-11-13): 굵은 파란 테두리(2~3px, 바깥으로 튀어나옴) 대신
   입력칸은 테두리 색만 파랗게, 버튼·링크는 가는 선 한 줄. 관리 화면(ipe·ew·ewh) 공통. */
.form-control:focus, input:focus, select:focus, textarea:focus,
.form-control:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  border-color: var(--d-ink) !important; outline: 0 !important; outline-offset: 0 !important; box-shadow: none !important;   /* 2026-11-14 파란색 → 검정(평소 연회색보다 진하게) */
}
input[type="checkbox"]:focus, input[type="radio"]:focus,
input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible { outline: 1px solid var(--d-blue) !important; outline-offset: 1px !important; }
a:focus-visible, button:focus-visible, .btn:focus-visible, [tabindex]:focus-visible, summary:focus-visible { outline: 1px solid var(--d-blue) !important; outline-offset: 1px !important; box-shadow: none !important; }
.btn:focus, .btn:active:focus, button:focus { outline: 0 !important; box-shadow: none !important; }
.btn:focus-visible, button:focus-visible { outline: 1px solid var(--d-blue) !important; }
.navbar a:focus, .navbar a:focus-visible, .navbar-toggle:focus { outline: 0 !important; }
#ModalLoginForm .form-control.auth-bad, #passwdup .form-control.auth-bad { border-color: var(--d-red) !important; outline: 0 !important; box-shadow: inset 0 0 0 1px var(--d-red) !important; }
/* 로고(조합 홈페이지 링크)에 마우스를 올려도 밑줄·배경·선 없음 (2026-11-13) */
.navbar .navbar-brand a:hover, .navbar .navbar-brand a:focus { text-decoration: none !important; background: none !important; border: 0 !important; }

/* ── 휴대폰용 성능지 입력(newreg_smart 등, form#inspection4.form-inline) (2026-11-13)
   칸 크기는 원래대로 둔다(16px·44px 로 키운 것은 사용자 요청으로 되돌림). 화면 옆으로 넘치는 것만 막는다.
   누를 때 화면이 확대되는 것은 newreg_smart.php 의 viewport 설정(maximum-scale=1)으로 막는다. */
@media (max-width: 767px) {
  html:has(form#inspection4.form-inline), html:has(form#inspection4.form-inline) body { overflow-x: hidden; }
}
