/* 문의하기: 버튼·모달·폼·관리자. 사이트 톤 (남색 #0b1d33 ~ 청록, 녹색 #3ddc84) */
:root { --hlbi-navy:#0b1d33; --hlbi-teal:#0f6b78; --hlbi-green:#3ddc84; --hlbi-ink:#16202b; --hlbi-line:#c9d6e2; --hlbi-err:#b42318; --hlbi-bg:#f4f8fb; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --hlbi-bg:#0e1a29; --hlbi-ink:#e8f1f8; --hlbi-line:#2d4358; --hlbi-err:#ff8a80; } }
:root[data-theme="dark"] { --hlbi-bg:#0e1a29; --hlbi-ink:#e8f1f8; --hlbi-line:#2d4358; --hlbi-err:#ff8a80; }

/* 상단·푸터 버튼 */
.hlb-inquiry-btn { display:inline-flex; align-items:center; gap:.4em; padding:.35em .9em; border-radius:999px; background:linear-gradient(90deg,var(--hlbi-navy),var(--hlbi-teal)); color:#fff !important; font-weight:700; text-decoration:none; box-shadow:0 0 0 2px var(--hlbi-green) inset; white-space:nowrap; line-height:1.4; }
.hlb-inquiry-btn:hover, .hlb-inquiry-btn:focus-visible { background:var(--hlbi-green); color:var(--hlbi-navy) !important; outline:none; }
/* 10-29: 테마 .hlb-topbar-links a(:hover) 가 이겨서 hover 때 남색 배경에 남색 글자가 되던 것 수정 — 같은 이상 특이도로 다시 지정 */
.hlb-topbar-links a.hlb-inquiry-btn, a.hlb-inquiry-btn { padding:6px 14px; border-radius:999px; background:linear-gradient(90deg,var(--hlbi-navy),var(--hlbi-teal)); color:#fff !important; transition:background-color .15s, box-shadow .15s, transform .15s; }
.hlb-topbar-links a.hlb-inquiry-btn:hover, .hlb-topbar-links a.hlb-inquiry-btn:focus-visible, a.hlb-inquiry-btn:hover, a.hlb-inquiry-btn:focus-visible { background:linear-gradient(90deg,var(--hlbi-teal),#14919f); color:#fff !important; box-shadow:0 0 0 2px var(--hlbi-green) inset, 0 0 10px rgba(61,220,132,.45); transform:translateY(-1px); text-decoration:none; }
.hlb-topbar-links a.hlb-inquiry-btn:focus-visible, a.hlb-inquiry-btn:focus-visible { outline:2px solid #fff; outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { a.hlb-inquiry-btn, .hlb-topbar-links a.hlb-inquiry-btn { transition:none; } a.hlb-inquiry-btn:hover { transform:none; } }
.hlb-inquiry-btn-foot { display:inline-block; margin-top:.4em; }
.hlb-topbar-links .hlb-inquiry-btn { margin-right:.3em; }

/* 모달 */
/* 10-29: 배경 흐림·스크롤 잠금 */
html.hlbi-lock-html { overflow:hidden; }
body.hlbi-lock { overflow:hidden; position:fixed; left:0; right:0; width:100%; }
.hlbi-modal { overscroll-behavior:contain; }
.hlbi-dialog { overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) { .hlbi-modal { background:rgba(5,14,26,.5); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); } }
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) { .hlbi-modal { background:rgba(5,14,26,.82); } }
.hlbi-modal { position:fixed; inset:0; z-index:100000; display:none; align-items:center; justify-content:center; background:rgba(5,14,26,.66); padding:16px; box-sizing:border-box; }
.hlbi-modal.is-open { display:flex; }
.hlbi-dialog { position:relative; width:100%; max-width:640px; max-height:calc(100vh - 32px); overflow:auto; background:var(--hlbi-bg); color:var(--hlbi-ink); border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,.45); border-top:6px solid var(--hlbi-green); box-sizing:border-box; padding:22px 22px 18px; }
.hlbi-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.hlbi-dialog-title { margin:0; font-size:1.25rem; color:var(--hlbi-navy); }
.hlbi-dialog-close { border:0; background:transparent; font-size:1.6rem; line-height:1; cursor:pointer; color:var(--hlbi-ink); padding:4px 8px; border-radius:8px; }
.hlbi-dialog-close:focus-visible { outline:3px solid var(--hlbi-green); }
.hlbi-dialog-body .hlbi-form { margin:0; }
@media (max-width:600px) {
  .hlbi-modal { padding:0; }
  .hlbi-dialog { max-width:none; width:100vw; height:100vh; max-height:none; border-radius:0; border-top:0; padding:16px 16px 28px; }
}

/* 폼 */
.hlbi-wrap { max-width:760px; margin:0 auto; padding:0 16px; box-sizing:border-box; }
.hlbi-page { padding:28px 0 60px; color:var(--hlbi-ink); }
.hlbi-page-title { color:var(--hlbi-navy); font-size:1.7rem; margin:0 0 6px; }
.hlbi-lead { margin:0 0 18px; }
.hlbi-form .hlbi-row { margin:0 0 14px; }
.hlbi-label { display:block; font-weight:700; margin:0 0 6px; }
.hlbi-req { color:var(--hlbi-err); font-weight:600; font-size:.85em; }
.hlbi-opt { color:#5b6b7a; font-weight:400; font-size:.85em; }
.hlbi-input { width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid var(--hlbi-line); border-radius:8px; background:#fff; color:var(--hlbi-ink); font-size:1rem; font-family:inherit; }
.hlbi-dialog .hlbi-input, .hlbi-page .hlbi-input { background:#fff; color:#16202b; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hlbi-input { background:#13233a; color:#e8f1f8; } }
.hlbi-input:focus-visible, .hlbi-btn:focus-visible, .hlbi-check input:focus-visible { outline:3px solid var(--hlbi-green); outline-offset:2px; }
.hlbi-input[aria-invalid="true"] { border-color:var(--hlbi-err); box-shadow:0 0 0 1px var(--hlbi-err) inset; }
.hlbi-textarea { resize:vertical; min-height:120px; }
.hlbi-count { text-align:right; font-size:.85rem; margin:4px 0 0; color:#5b6b7a; }
.hlbi-err { color:var(--hlbi-err); font-weight:600; margin:6px 0 0; font-size:.92rem; }
.hlbi-alert:empty { display:none; }
.hlbi-alert { color:var(--hlbi-err); font-weight:700; margin:0 0 12px; padding:10px 12px; border-radius:8px; border:1px solid var(--hlbi-err); }
.hlbi-alert:empty { border:0; padding:0; margin:0; }
.hlbi-check { display:flex; gap:8px; align-items:flex-start; cursor:pointer; font-weight:600; }
.hlbi-check input { margin-top:4px; width:18px; height:18px; flex:0 0 18px; }
.hlbi-agree-text { font-size:.88rem; color:#4a5a6a; margin:8px 0 0; line-height:1.55; }
.hlbi-agree-text a { color:var(--hlbi-teal); }
.hlbi-hp { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.hlbi-actions { margin-top:16px; }
.hlbi-btn { display:inline-block; padding:12px 26px; border:0; border-radius:999px; background:var(--hlbi-green); color:var(--hlbi-navy); font-weight:800; font-size:1rem; cursor:pointer; text-decoration:none; }
.hlbi-btn:hover { filter:brightness(1.05); }
.hlbi-btn[disabled] { opacity:.6; cursor:wait; }
.hlbi-btn-sub { background:var(--hlbi-navy); color:#fff; }
.hlbi-done { border:2px solid var(--hlbi-green); border-radius:12px; padding:18px; background:rgba(61,220,132,.12); }
.hlbi-done-title { margin:0 0 6px; color:var(--hlbi-navy); font-size:1.2rem; }
.hlbi-notice { border:1px solid var(--hlbi-line); border-radius:10px; padding:14px; background:rgba(15,107,120,.08); }
.hlbi-notice-ok { border:1px solid var(--hlbi-green); border-radius:8px; padding:10px 12px; background:rgba(61,220,132,.12); }
.hlbi-sr-only { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* 관리자 */
.hlbi-admin h1 { color:var(--hlbi-navy); font-size:1.5rem; }
.hlbi-badges { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.hlbi-badge { display:inline-block; padding:5px 12px; border-radius:999px; background:var(--hlbi-navy); color:#fff; text-decoration:none; font-size:.9rem; font-weight:600; }
.hlbi-badge-received { background:#b45309; } .hlbi-badge-progress { background:var(--hlbi-teal); } .hlbi-badge-done { background:#15803d; } .hlbi-badge-rejected, .hlbi-badge-canceled { background:#6b7280; }
.hlbi-filter { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:flex-end; margin:10px 0 14px; }
.hlbi-filter .hlbi-label { margin:0; font-size:.9rem; }
.hlbi-filter .hlbi-input { width:auto; min-width:120px; }
.hlbi-table-wrap { overflow-x:auto; }
.hlbi-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.hlbi-table th, .hlbi-table td { border-bottom:1px solid var(--hlbi-line); padding:8px 6px; text-align:left; vertical-align:top; }
.hlbi-table tr.hlbi-deleted td { opacity:.55; }
.hlbi-status { display:inline-block; padding:2px 8px; border-radius:6px; font-weight:700; font-size:.85rem; background:#e5e7eb; color:#111; }
.hlbi-status-received { background:#fde68a; } .hlbi-status-progress { background:#bae6fd; } .hlbi-status-done { background:#bbf7d0; } .hlbi-status-rejected, .hlbi-status-canceled { background:#e5e7eb; }
.hlbi-pager { margin-top:12px; }
.hlbi-pager a { padding:3px 8px; margin-right:4px; }
.hlbi-dl { display:grid; grid-template-columns:max-content 1fr; gap:6px 14px; }
.hlbi-dl dt { font-weight:700; }
.hlbi-dl dd { margin:0; word-break:break-all; }
.hlbi-content { white-space:normal; border:1px solid var(--hlbi-line); border-radius:8px; padding:12px; background:#fff; color:#16202b; word-break:break-word; }
.hlbi-admin-del { margin-top:14px; }

/* 좁은 화면 */
@media (max-width:380px) {
  .hlbi-page-title { font-size:1.4rem; }
  .hlbi-btn { width:100%; }
  .hlbi-filter .hlbi-input { width:100%; }
}
