/* 경상북도 주민케어 AI — 대민 포털 화면 CSS (토큰은 base.css) */

:root {
  --util-h: 36px;
  --qm-w: 68px;
  --page-pad: 28px;
  --ring: 0 0 0 3px var(--c-primary-100);
  --grad-ai: linear-gradient(135deg, var(--svc-settle), var(--c-accent));
}
body { min-width: 320px; }
[hidden] { display: none !important; }
.h3 { font-size: var(--fs-lg); margin: 0; }
.d-block { display: block; }
.pre { white-space: pre-line; }
.w-full { width: 100%; }
.center-row { justify-content: center; }
.center-col { align-items: center; text-align: center; }
.linklike { background: none; border: 0; padding: 0; color: var(--c-primary); cursor: pointer; font: inherit; display: inline-flex; align-items: center; gap: 6px; text-align: left; }
.linklike:hover { text-decoration: underline; }
.ico { display: inline-flex; flex: 0 0 auto; line-height: 0; align-items: center; }
.ico svg { display: block; }
.container.wide { max-width: 1480px; }

/* ================================================================ 생성형 AI 고지 배너 */
.ai-banner { background: var(--c-primary-700); color: #fff; font-size: var(--fs-xs); position: relative; z-index: 60; }
.ai-banner-inner { display: flex; align-items: center; gap: 10px; min-height: 34px; padding-top: 5px; padding-bottom: 5px; }
.ai-banner-mark { flex: 0 0 auto; font-weight: 900; font-size: 11px; letter-spacing: .04em; padding: 1px 7px; border-radius: 4px; background: var(--grad-ai); }
.ai-banner-text { flex: 1 1 auto; opacity: .95; line-height: 1.45; }
.ai-banner-more { flex: 0 0 auto; background: color-mix(in srgb, #fff 14%, transparent); color: #fff; border: 1px solid color-mix(in srgb, #fff 30%, transparent); border-radius: var(--radius-pill); padding: 2px 10px; font-size: var(--fs-xs); cursor: pointer; }
.ai-banner-more:hover { background: color-mix(in srgb, #fff 24%, transparent); }

/* ================================================================ 유틸리티 바 (접근성 도구) */
.util-bar { background: var(--c-surface); border-bottom: 1px solid var(--c-line-2); font-size: var(--fs-xs); color: var(--c-muted); }
.util-inner { display: flex; align-items: center; justify-content: space-between; min-height: var(--util-h); gap: 12px; }
.util-left { display: flex; align-items: center; gap: 8px; }
.util-org { font-weight: 800; color: var(--c-ink-2); }
.util-sep { opacity: .4; }
.util-right { display: flex; align-items: center; gap: 6px; }
.util-toggle, .util-lang { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border: 1px solid var(--c-line); border-radius: var(--radius-pill); background: var(--c-surface); color: var(--c-ink-2); cursor: pointer; font-size: var(--fs-xs); font-weight: 600; }
.util-toggle:hover, .util-lang:hover { border-color: var(--c-primary); color: var(--c-primary); }
.util-toggle[aria-pressed='true'] { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.util-ico { font-weight: 900; font-size: 12px; line-height: 1; }
.util-toggle[aria-pressed='true'] .util-ico { color: #fff; }
.util-lang select { border: 0; background: transparent; font-size: var(--fs-xs); font-weight: 600; color: inherit; cursor: pointer; padding: 0; }
.util-lang select:focus { outline: none; }
.util-lang:focus-within { box-shadow: var(--ring); }

/* ================================================================ 헤더 */
header.site { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--c-surface) 94%, transparent); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--c-line); transition: box-shadow .2s; }
header.site.scrolled { box-shadow: var(--shadow); }
.header-inner { display: flex; align-items: center; gap: 24px; height: var(--header-h); }
.logo { display: flex; align-items: center; gap: 10px; color: var(--c-ink); text-decoration: none !important; flex: 0 0 auto; }
.logo-mark { width: 40px; height: 40px; flex: 0 0 auto; }
.logo-text { display: flex; flex-direction: column; line-height: 1.15; }
.logo-org { font-size: 11px; font-weight: 700; color: var(--c-muted); letter-spacing: .08em; }
.logo-name { font-size: 19px; font-weight: 800; letter-spacing: -.02em; }
.logo-name b { background: var(--grad-ai); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gnb { flex: 1 1 auto; }
.gnb ul { list-style: none; display: flex; gap: 2px; margin: 0; padding: 0; justify-content: center; }
.gnb a { display: block; padding: 0 14px; line-height: var(--header-h); font-weight: 700; color: var(--c-ink-2); font-size: var(--fs-md); position: relative; text-decoration: none; white-space: nowrap; }
.gnb a::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--c-primary); transform: scaleX(0); transition: transform .18s; }
.gnb a:hover { color: var(--c-primary); }
.gnb a:hover::after, .gnb a.active::after { transform: scaleX(1); }
.gnb a.active { color: var(--c-primary); }
.header-actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.hello { font-size: var(--fs-sm); color: var(--c-ink-2); margin-right: 4px; white-space: nowrap; }
.hamburger { display: none; }
.mobile-menu { border-top: 1px solid var(--c-line); background: var(--c-surface); box-shadow: var(--shadow-lg); max-height: calc(100vh - 100px); overflow-y: auto; }
.mobile-menu nav { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 14px 16px 18px; }
.mobile-menu nav > a { padding: 12px 14px; border-radius: var(--radius); background: var(--c-surface-2); border: 1px solid var(--c-line-2); font-weight: 700; color: var(--c-ink); }
.mobile-menu-account { grid-column: 1 / -1; display: flex; gap: 8px; justify-content: space-between; align-items: center; padding-top: 8px; border-top: 1px solid var(--c-line-2); margin-top: 4px; }
.mobile-menu-account a { font-weight: 700; }

main { display: block; min-height: 60vh; outline: none; }
.boot-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 50vh; color: var(--c-muted); }

/* ================================================================ 퀵메뉴 */
.quick-menu { position: fixed; right: 18px; top: 50%; transform: translateY(-40%); z-index: 40; display: flex; flex-direction: column; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 16px; box-shadow: var(--shadow-lg); overflow: hidden; width: var(--qm-w); }
.qm-item { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 11px 4px; font-size: 11px; font-weight: 700; color: var(--c-ink-2); background: none; border: 0; border-bottom: 1px solid var(--c-line-2); cursor: pointer; text-decoration: none !important; font-family: inherit; }
.qm-item:last-child { border-bottom: 0; }
.qm-item svg { width: 22px; height: 22px; }
.qm-item:hover { background: var(--c-primary-50); color: var(--c-primary); }
.qm-item.qm-ai { background: var(--grad-ai); color: #fff; }
.qm-item.qm-ai:hover { filter: brightness(1.08); color: #fff; }
#qm-top { display: none; }
body.show-top #qm-top { display: flex; }
@media (max-width: 1560px) { .quick-menu { right: 10px; } }
body[data-route='chat'] .quick-menu { display: none; }

/* ================================================================ 푸터 */
footer.site { margin-top: 72px; background: var(--c-ink); color: color-mix(in srgb, #fff 72%, transparent); font-size: var(--fs-sm); }
body[data-route='chat'] footer.site { margin-top: 24px; }
.footer-inner { padding-top: 32px; padding-bottom: 32px; }
.footer-top { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid color-mix(in srgb, #fff 14%, transparent); }
.footer-brand { display: flex; flex-direction: column; gap: 4px; }
.footer-brand strong { color: #fff; font-size: var(--fs-md); }
.footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
.footer-links a { color: color-mix(in srgb, #fff 82%, transparent); }
.footer-links b { color: var(--c-surface); }
.footer-bottom { padding-top: 16px; }
.footer-bottom address { font-style: normal; margin-bottom: 6px; }
.footer-bottom p { margin: 0 0 6px; }
.footer-bottom b { color: #fff; }
.footer-mock { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.copyright { font-size: var(--fs-xs); opacity: .6; }

/* ================================================================ 페이지 공통 */
.page { padding-bottom: 24px; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin: 4px 0 24px; }
.page-head-text { min-width: 0; flex: 1 1 420px; }
.page-eyebrow { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; font-size: var(--fs-sm); color: var(--c-muted); }
.page-title { font-size: var(--fs-2xl); font-weight: 800; letter-spacing: -.02em; margin: 0 0 6px; outline: none; }
.page-desc { color: var(--c-muted); margin: 0; max-width: 760px; }
.page-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.psec { margin-top: 32px; }
.psec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.psec-title { font-size: var(--fs-xl); font-weight: 800; margin: 0; display: flex; align-items: center; gap: 8px; }
.psec-sub { margin: 4px 0 0; color: var(--c-muted); font-size: var(--fs-sm); }
.psec-actions { display: flex; gap: 6px; }
.error-box { align-items: center; }
.privacy-note { display: flex; align-items: flex-start; gap: 6px; font-size: var(--fs-xs); color: var(--c-muted); margin: 12px 0 0; }
.privacy-note .ico { color: var(--c-ok); margin-top: 2px; }
.ai-disclaimer { display: flex; align-items: flex-start; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: var(--radius); background: var(--c-surface-2); border: 1px dashed var(--c-line); color: var(--c-muted); font-size: var(--fs-xs); line-height: 1.5; }
.ai-disclaimer .ico { margin-top: 1px; color: var(--c-faint); }
.form-submit { display: flex; justify-content: center; gap: 10px; margin: 20px 0 8px; flex-wrap: wrap; }
.req-mark { color: var(--c-danger); font-weight: 800; }
label.req::after, .label.req::after, th.req::after { content: ' *'; color: var(--c-danger); }
.input-sm { min-height: 34px; padding: 5px 9px; font-size: var(--fs-sm); }
.q-mark, .a-mark { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; font-size: 12px; font-weight: 900; flex: 0 0 auto; background: var(--c-primary-50); color: var(--c-primary); }
.a-mark { background: var(--c-accent-50); color: var(--c-accent); }
.card-body > .table-wrap:first-child { margin-top: 0; }
.table-wrap.flat { border: 0; border-radius: 0; }
.center-chips { justify-content: center; margin-top: 12px; }
.save-status { white-space: nowrap; }
.btn.loading { position: relative; color: transparent !important; }
.btn.loading::after { content: ''; position: absolute; width: 14px; height: 14px; border: 2px solid currentColor; border-color: var(--c-line) var(--c-line) var(--c-primary) var(--c-primary); border-radius: 50%; animation: spin .7s linear infinite; }

/* 서비스별 테마 선 */
.svc-line-settle { --svc: var(--svc-settle); --svc-bg: var(--svc-settle-bg); }
.svc-line-life { --svc: var(--svc-life); --svc-bg: var(--svc-life-bg); }
.svc-line-biz { --svc: var(--svc-biz); --svc-bg: var(--svc-biz-bg); }
.svc-line-factory { --svc: var(--svc-factory); --svc-bg: var(--svc-factory-bg); }
.svc-line-civil { --svc: var(--svc-civil); --svc-bg: var(--svc-civil-bg); }

/* ================================================================ 정책 카드 */
.pcard { position: relative; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 18px 20px 14px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--shadow-sm); transition: box-shadow .15s, border-color .15s, transform .15s; min-width: 0; }
.pcard::before { content: ''; position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; border-radius: 0 3px 3px 0; background: var(--svc, var(--c-primary)); }
.pcard:hover { box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--svc, var(--c-primary)) 35%, var(--c-line)); }
.pcard-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pcard-title { font-size: var(--fs-lg); font-weight: 800; margin: 0; line-height: 1.4; }
.pcard-title a { color: var(--c-ink); }
.pcard-title a:hover { color: var(--c-primary); }
.pcard-sum { margin: 0; color: var(--c-ink-2); font-size: var(--fs-sm); }
.pcard-meta { display: grid; grid-template-columns: 44px 1fr; gap: 3px 10px; margin: 2px 0 0; font-size: var(--fs-sm); }
.pcard-meta dt { color: var(--c-muted); font-weight: 600; }
.pcard-meta dd { margin: 0; color: var(--c-ink-2); min-width: 0; }
.pcard-elig { margin: 0; font-size: var(--fs-xs); padding: 7px 10px; border-radius: var(--radius-sm); background: var(--c-surface-2); color: var(--c-ink-2); }
.pcard-elig.v-가능 { background: var(--c-ok-bg); }
.pcard-elig.v-불확실 { background: var(--c-warn-bg); }
.pcard-elig.v-불가 { background: var(--c-danger-bg); }
.pcard-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.pcard-foot { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; border-top: 1px solid var(--c-line-2); padding-top: 10px; margin-top: 4px; }
.pcard-compare { font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink-2); }
.pcard-extra { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.link-chip { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); padding: 3px 9px; border-radius: var(--radius-pill); background: var(--c-surface-2); border: 1px solid var(--c-line); color: var(--c-ink-2); cursor: pointer; font-family: inherit; }
.link-chip:hover { border-color: var(--c-primary); color: var(--c-primary); text-decoration: none; }
.pcard.compact { padding: 14px 16px 10px; }
.pcard.compact .pcard-title { font-size: var(--fs-md); }
.pcard-list { display: grid; gap: 12px; }
.grid-2x { grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); }
.compare-table th:first-child { width: 110px; background: var(--c-surface-2); }
.compare-table td { vertical-align: top; min-width: 160px; }
.compare-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: var(--c-ink); color: #fff; box-shadow: var(--shadow-lg); animation: pop .2s; }
.compare-bar-inner { display: flex; align-items: center; gap: 12px; padding-top: 12px; padding-bottom: 12px; flex-wrap: wrap; }
.compare-bar .tag { background: color-mix(in srgb, #fff 14%, transparent); color: #fff; }
.compare-bar .btn.ghost { color: #fff; }

/* ================================================================ 자격 판정 */
.elig { border: 1px solid var(--c-line); border-radius: var(--radius-lg); overflow: hidden; background: var(--c-surface); }
.elig-head { display: flex; gap: 12px; align-items: center; padding: 14px 16px; flex-wrap: wrap; }
.elig-ok .elig-head { background: var(--c-ok-bg); }
.elig-warn .elig-head { background: var(--c-warn-bg); }
.elig-danger .elig-head { background: var(--c-danger-bg); }
.elig-head .verdict { background: var(--c-surface); font-size: var(--fs-md); padding: 5px 14px; }
.elig-title { font-weight: 800; }
.elig-sum { font-size: var(--fs-sm); color: var(--c-ink-2); }
.elig-counts { display: flex; gap: 10px; font-size: var(--fs-xs); font-weight: 700; }
.c-ok { color: var(--c-ok); } .c-danger { color: var(--c-danger); } .c-warn { color: var(--c-warn); }
.elig > .table-wrap { border: 0; border-top: 1px solid var(--c-line); border-radius: 0; }
.elig-route { margin: 12px 16px 14px; }
.crit { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; font-size: var(--fs-xs); padding: 2px 9px; border-radius: var(--radius-pill); white-space: nowrap; }
.crit-충족 { background: var(--c-ok-bg); color: var(--c-ok); }
.crit-충족::before { content: '✔'; }
.crit-미충족 { background: var(--c-danger-bg); color: var(--c-danger); }
.crit-미충족::before { content: '✕'; }
.crit-확인필요 { background: var(--c-warn-bg); color: var(--c-warn); }
.crit-확인필요::before { content: '?'; }
.elig-panel { display: flex; flex-direction: column; gap: 12px; }
.quick-form { padding: 16px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface); }

/* ================================================================ 절차·연락처·링크 */
.steps-rich > li { padding-bottom: 20px; }
.step-title { font-size: var(--fs-md); }
.step-place { display: flex; align-items: center; gap: 4px; font-size: var(--fs-sm); color: var(--c-primary); font-weight: 700; margin-top: 2px; }
.step-desc { font-size: var(--fs-sm); color: var(--c-ink-2); margin-top: 3px; }
.step-note { font-size: var(--fs-xs); color: var(--c-warn); margin-top: 3px; }
.contact-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 10px; }
.contact-card { border: 1px solid var(--c-line); border-radius: var(--radius); padding: 12px 14px; background: var(--c-surface); display: flex; flex-direction: column; gap: 3px; }
.contact-org { font-weight: 800; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.contact-dept { color: var(--c-ink-2); font-size: var(--fs-sm); }
.contact-phone { display: inline-flex; align-items: center; gap: 5px; font-weight: 800; font-size: var(--fs-md); color: var(--c-primary); margin: 2px 0; }
.link-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 10px; }
.link-card { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border-radius: var(--radius); border: 1px solid var(--c-line); background: var(--c-surface); color: var(--c-ink); text-decoration: none !important; transition: border-color .15s, box-shadow .15s; }
.link-card:hover { border-color: var(--c-primary); box-shadow: var(--shadow-sm); }
.link-name { font-weight: 800; display: flex; align-items: center; gap: 6px; }
.link-name .ico { color: var(--c-faint); }
.link-desc { font-size: var(--fs-xs); color: var(--c-muted); }

/* ================================================================ 인용·원문 뷰어 */
.cite-list { margin-top: 12px; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); overflow: hidden; }
.cite-list-head { display: flex; align-items: center; gap: 6px; font-size: var(--fs-xs); font-weight: 800; color: var(--c-ink-2); padding: 8px 12px; background: var(--c-surface-2); border-bottom: 1px solid var(--c-line-2); }
.cite-list ol { list-style: none; margin: 0; padding: 0; }
.cite-list li + li { border-top: 1px solid var(--c-line-2); }
.cite-item { display: flex; gap: 10px; width: 100%; padding: 9px 12px; background: none; border: 0; text-align: left; cursor: pointer; font-family: inherit; color: inherit; }
.cite-item:hover { background: var(--c-primary-50); }
.cite-n { flex: 0 0 auto; width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; background: var(--c-primary); color: #fff; font-size: 11px; font-weight: 800; margin-top: 2px; }
.cite-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.cite-title { font-weight: 700; font-size: var(--fs-sm); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cite-loc { font-size: var(--fs-xs); color: var(--c-primary); font-weight: 600; }
.cite-snip { font-size: var(--fs-xs); color: var(--c-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.source-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: var(--fs-sm); color: var(--c-ink-2); margin-bottom: 8px; }
.source-doc { border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface-2); padding: 8px; max-height: 60vh; overflow-y: auto; }
.source-page { background: var(--c-surface); border: 1px solid var(--c-line-2); border-radius: var(--radius-sm); padding: 10px 12px 12px; margin-bottom: 8px; box-shadow: var(--shadow-sm); }
.source-page-no { font-size: var(--fs-xs); font-weight: 800; color: var(--c-faint); margin-bottom: 4px; text-align: right; }
.chunk-loc { display: block; font-size: var(--fs-xs); color: var(--c-muted); margin-bottom: 2px; }
.chunk-text { font-size: var(--fs-sm); line-height: 1.7; white-space: pre-line; }
.chunk.hit { box-shadow: 0 0 0 2px color-mix(in srgb, var(--c-warn) 40%, transparent); }

/* ================================================================ 응답 블록 */
.blocks { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.bk { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 14px 16px; min-width: 0; }
.bk-head { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; font-weight: 800; color: var(--c-ink); flex-wrap: wrap; }
.bk-head .ico { color: var(--c-primary); }
.bk-title { font-size: var(--fs-md); }
.bk-count { margin-left: auto; font-size: var(--fs-xs); color: var(--c-muted); font-weight: 700; }
.bk-link { margin-left: auto; font-size: var(--fs-sm); font-weight: 700; }
.bk-sub { font-size: var(--fs-sm); font-weight: 800; color: var(--c-ink-2); margin-bottom: 8px; }
.blk-policies .pcard-list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.bk-interpret { background: linear-gradient(180deg, var(--c-primary-50), var(--c-surface)); border-color: var(--c-primary-100); }
.interp-chips, .interp-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.interp-chip { display: inline-flex; align-items: stretch; border-radius: var(--radius-pill); overflow: hidden; border: 1px solid var(--c-primary-100); font-size: var(--fs-sm); background: var(--c-surface); }
.interp-chip b { background: var(--c-primary-100); color: var(--c-primary-700); padding: 3px 9px; font-weight: 700; font-size: var(--fs-xs); display: flex; align-items: center; }
.interp-chip span { padding: 3px 10px; font-weight: 600; }
.interp-mapped { margin-top: 12px; }
.map-row { display: grid; grid-template-columns: minmax(120px, 180px) 1fr 110px; gap: 10px; align-items: center; padding: 6px 0; border-top: 1px dashed var(--c-line); font-size: var(--fs-sm); }
.map-name { font-weight: 700; }
.map-reason { color: var(--c-muted); font-size: var(--fs-xs); }
.map-weight { display: flex; align-items: center; gap: 6px; }
.wbar { flex: 1; height: 6px; background: var(--c-line-2); border-radius: 6px; overflow: hidden; }
.wbar > span { display: block; height: 100%; background: var(--grad-ai); }
.bk-clarify { border-color: color-mix(in srgb, var(--c-warn) 35%, var(--c-line)); background: linear-gradient(180deg, var(--c-warn-bg), var(--c-surface) 70%); }
.clarify-q { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--c-warn); color: #fff; font-weight: 900; font-size: 13px; }
.clarify-field + .clarify-field { margin-top: 10px; }
.clarify-label { font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink-2); margin-bottom: 6px; }
.bk-map { height: 320px; }
.fac-legend { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.fac-item { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-xs); padding: 3px 9px; border-radius: var(--radius-pill); border: 1px solid var(--c-line); background: var(--c-surface); color: var(--c-muted); font-family: inherit; cursor: default; }
button.fac-item { cursor: pointer; }
.fac-item.on { color: var(--c-ink); border-color: var(--c-faint); }
button.fac-item:not(.on) { opacity: .55; text-decoration: line-through; }
.fac-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: 0 0 auto; }
.structured th[scope='row'] { width: 34%; background: var(--c-surface-2); }
.row-missing td, .row-missing th { background: var(--c-danger-bg) !important; }
.verdict-card { border-radius: var(--radius-lg); padding: 16px 18px; border: 1px solid var(--c-line); background: var(--c-surface); }
.vc-ok { border-left: 5px solid var(--c-ok); }
.vc-warn { border-left: 5px solid var(--c-warn); }
.vc-danger { border-left: 5px solid var(--c-danger); }
.vc-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.vc-title { font-size: var(--fs-md); }
.vc-reasons { margin: 10px 0 0; padding-left: 1.2em; font-size: var(--fs-sm); }
.vc-reasons li { margin: 3px 0; }
.vc-laws { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-top: 10px; }
.bk-scenario { background: linear-gradient(180deg, var(--svc-settle-bg), var(--c-surface)); border-color: color-mix(in srgb, var(--svc-settle) 22%, var(--c-line)); }
.scenario { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.scenario li { display: flex; gap: 10px; align-items: flex-start; font-size: var(--fs-sm); }
.sc-no { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; background: var(--svc-settle); color: #fff; font-weight: 800; font-size: 12px; display: grid; place-items: center; }
.announce { border: 1px solid color-mix(in srgb, var(--svc-biz) 30%, var(--c-line)); border-radius: var(--radius-lg); overflow: hidden; background: var(--c-surface); }
.announce-head { padding: 14px 16px; background: var(--svc-biz-bg); }
.announce-label { font-size: var(--fs-xs); font-weight: 800; color: var(--svc-biz); letter-spacing: .04em; }
.announce-head h4 { margin: 3px 0 6px; font-size: var(--fs-md); }
.announce-head h4 a { color: var(--c-ink); }
.announce-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: var(--fs-sm); color: var(--c-ink-2); }
.announce-meta b { color: var(--c-muted); font-weight: 700; font-size: var(--fs-xs); }
.announce-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px 20px; padding: 14px 16px; font-size: var(--fs-sm); }
.announce-body ul { margin: 0; padding-left: 1.1em; }
.announce-body li { margin: 3px 0; }
.announce-sub { font-size: var(--fs-xs); font-weight: 800; color: var(--c-ink-2); margin-bottom: 4px; }
.announce-sub.ok { color: var(--c-ok); } .announce-sub.danger { color: var(--c-danger); }
.ok-list, .x-list { list-style: none; padding-left: 0 !important; margin: 0; }
.ok-list li, .x-list li { position: relative; padding-left: 20px; margin: 5px 0; }
.ok-list li::before { content: '✔'; position: absolute; left: 0; color: var(--c-ok); font-weight: 800; }
.x-list li::before { content: '✕'; position: absolute; left: 0; color: var(--c-danger); font-weight: 800; }
.bk-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.bk-chips { display: flex; flex-direction: column; gap: 6px; }
.chip.suggest { border-style: dashed; }
.chip.suggest::before { content: '↳'; color: var(--c-faint); }
.bk-doc { border-style: solid; background: var(--c-surface); }
.mini-dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 12px; font-size: var(--fs-sm); margin: 0; }
.mini-dl dt { color: var(--c-muted); font-weight: 600; }
.mini-dl dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.mini-check { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 8px 16px; }
.mini-check-g { font-size: var(--fs-xs); font-weight: 800; color: var(--c-primary); margin-bottom: 2px; }
.mini-check ul { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); }
.mini-check li { padding-left: 20px; position: relative; margin: 2px 0; }
.mini-check li::before { content: ''; position: absolute; left: 0; top: 4px; width: 13px; height: 13px; border: 1.5px solid var(--c-faint); border-radius: 3px; }
.mini-check li.done { color: var(--c-muted); text-decoration: line-through; }
.mini-check li.done::before { background: var(--c-ok); border-color: var(--c-ok); }
.bk-translate { background: var(--c-info-bg); border-color: color-mix(in srgb, var(--c-info) 25%, var(--c-line)); }
.bk-translate p { margin: 0; }
.fix-text { color: var(--c-danger); font-weight: 600; }
.bk-drawing .table tr.selected td { background: var(--c-danger-bg); }

/* 후보지 */
.cand-view { display: flex; flex-direction: column; gap: 14px; }
.rank { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--c-line-2); color: var(--c-ink-2); font-weight: 800; font-size: 12px; flex: 0 0 auto; }
.rank-1 { background: var(--c-primary); color: #fff; }
.rank-2 { background: var(--c-primary-100); color: var(--c-primary-700); }
.rank-3 { background: var(--c-accent-50); color: var(--c-accent); }
.score-cell { display: flex; align-items: center; gap: 8px; min-width: 110px; }
.scorebar { flex: 1; height: 6px; border-radius: 6px; background: var(--c-line-2); overflow: hidden; min-width: 50px; }
.scorebar > span { display: block; height: 100%; background: var(--grad-ai); border-radius: inherit; }
.cand-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 16px; }
.cand-chart, .cand-mapwrap { border: 1px solid var(--c-line); border-radius: var(--radius); padding: 12px; background: var(--c-surface); min-width: 0; }
.cand-map { height: 340px; }
.cand-reasons { display: flex; flex-direction: column; gap: 8px; }
.cand-reason { border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); }
.cand-reason summary { display: flex; align-items: center; gap: 8px; padding: 10px 14px; cursor: pointer; list-style: none; flex-wrap: wrap; }
.cand-reason summary::-webkit-details-marker { display: none; }
.cand-reason summary::after { content: '▾'; margin-left: auto; color: var(--c-faint); transition: transform .15s; }
.cand-reason[open] summary::after { transform: rotate(180deg); }
.cand-reason > :not(summary) { margin-left: 14px; margin-right: 14px; }
.cand-reason > :last-child { margin-bottom: 14px; }
.cand-reason p { font-size: var(--fs-sm); margin-bottom: 8px; }

/* 필지 */
.parcel-legend { display: flex; gap: 14px; font-size: var(--fs-sm); font-weight: 700; margin-bottom: 10px; flex-wrap: wrap; }
.parcel-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.parcel-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 14px; }
.parcel-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 480px; overflow-y: auto; padding-right: 2px; }
.parcel-item { border: 1px solid var(--c-line); border-left: 4px solid var(--c-faint); border-radius: var(--radius); padding: 10px 12px; cursor: pointer; background: var(--c-surface); transition: background .12s, box-shadow .12s; }
.parcel-item:hover { background: var(--c-surface-2); }
.parcel-item.selected { box-shadow: 0 0 0 2px var(--c-primary); background: var(--c-primary-50); }
.pv-가능 { border-left-color: var(--c-ok); }
.pv-주의 { border-left-color: var(--c-warn); }
.pv-불가 { border-left-color: var(--c-danger); }
.parcel-top { display: flex; align-items: center; gap: 8px; }
.parcel-no { width: 22px; height: 22px; border-radius: 50%; background: var(--c-ink); color: #fff; font-size: 11px; font-weight: 800; display: grid; place-items: center; flex: 0 0 auto; }
.parcel-facts { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: var(--fs-xs); color: var(--c-ink-2); margin-top: 4px; }
.parcel-facts span + span::before { content: '·'; margin-right: 10px; color: var(--c-faint); }
.parcel-reasons { margin: 6px 0 0; padding-left: 1.1em; font-size: var(--fs-xs); color: var(--c-muted); }
.parcel-map { height: 480px; }

/* 민원관리카드 */
.civil-card { border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface); overflow: hidden; box-shadow: var(--shadow-sm); }
.cc-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 16px; background: linear-gradient(135deg, var(--c-primary-700), var(--c-primary)); color: #fff; flex-wrap: wrap; }
.cc-label { font-size: var(--fs-xs); opacity: .8; font-weight: 700; letter-spacing: .06em; }
.cc-no { font-weight: 800; font-size: var(--fs-md); font-variant-numeric: tabular-nums; }
.cc-head .badge { background: color-mix(in srgb, #fff 90%, transparent); }
.cc-head .badge.outline { background: transparent; color: #fff; }
.cc-title { margin: 12px 16px 6px; font-size: var(--fs-md); }
.cc-dl { display: grid; grid-template-columns: 96px 1fr; margin: 0 16px; font-size: var(--fs-sm); border-top: 1px solid var(--c-line-2); }
.cc-dl dt, .cc-dl dd { margin: 0; padding: 7px 0; border-bottom: 1px solid var(--c-line-2); }
.cc-dl dt { color: var(--c-muted); font-weight: 700; }
.cc-dl dd { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.cc-basis { margin: 0; padding-left: 1.1em; }
.cc-foot { margin: 10px 16px 14px; font-size: var(--fs-xs); color: var(--c-muted); }

/* ================================================================ 채팅 */
.chat-page { padding-top: 12px; padding-bottom: 0; }
.chat-shell { --chat-h: 720px; display: grid; grid-template-columns: 272px minmax(0, 1fr) 320px; gap: 0; height: var(--chat-h); border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface); box-shadow: var(--shadow); overflow: hidden; position: relative; }
.chat-side { display: flex; flex-direction: column; border-right: 1px solid var(--c-line); background: var(--c-surface-2); min-height: 0; }
.cs-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 14px 10px; }
.cs-head h2 { margin: 0; font-size: var(--fs-md); }
.cs-list { flex: 1; overflow-y: auto; padding: 0 8px 8px; min-height: 0; }
.cs-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cs-item { display: flex; flex-direction: column; gap: 3px; padding: 10px 10px; border-radius: var(--radius); color: var(--c-ink); text-decoration: none !important; border: 1px solid transparent; }
.cs-item:hover { background: var(--c-surface); border-color: var(--c-line); }
.cs-item.active { background: var(--c-surface); border-color: var(--c-primary-100); box-shadow: var(--shadow-sm); }
.cs-item.active .cs-item-title { color: var(--c-primary); }
.cs-item-top { display: flex; gap: 4px; align-items: center; }
.cs-item-title { font-weight: 700; font-size: var(--fs-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cs-item-last { font-size: var(--fs-xs); color: var(--c-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cs-empty { text-align: center; padding: 24px 10px; color: var(--c-muted); font-size: var(--fs-sm); }
.cs-empty .ico { color: var(--c-faint); }
.cs-foot { padding: 10px 14px; border-top: 1px solid var(--c-line); }

.chat-main { display: flex; flex-direction: column; min-height: 0; min-width: 0; background: var(--c-surface); }
.chat-head { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--c-line); min-height: 58px; }
.ch-main { display: flex; align-items: center; gap: 10px; min-width: 0; flex-wrap: wrap; }
.ch-title { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ch-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 420px; }
.ch-badges { display: flex; gap: 4px; }
.only-mobile, .only-tablet { display: none !important; }

.chat-log { position: relative; flex: 1; overflow-y: auto; padding: 20px 22px 12px; display: flex; flex-direction: column; gap: 18px; min-height: 0; scroll-behavior: smooth; background: linear-gradient(180deg, var(--c-surface-2), var(--c-surface) 240px); outline: none; }
.chat-log:focus-visible { box-shadow: inset 0 0 0 2px var(--c-primary-100); }

.avatar { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; overflow: hidden; font-weight: 800; font-size: 14px; }
.avatar.ai { box-shadow: var(--shadow-sm); }
.avatar.me { background: var(--c-ink); color: #fff; border-radius: 50%; }
.avatar.agent { background: var(--c-accent); color: #fff; border-radius: 50%; }
.avatar.xl { width: 64px; height: 64px; border-radius: 20px; }

.chat-intro { margin: auto; max-width: 760px; width: 100%; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 12px 0 20px; }
.ci-title { font-size: var(--fs-2xl); font-weight: 800; margin: 6px 0 0; outline: none; }
.ci-sub { color: var(--c-muted); margin: 0 0 8px; max-width: 520px; }
.ci-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; width: 100%; text-align: left; }
.ci-card { display: flex; flex-direction: column; gap: 6px; padding: 14px 14px; border-radius: var(--radius-lg); border: 1px solid var(--c-line); background: var(--c-surface); cursor: pointer; font-family: inherit; color: var(--c-ink); text-align: left; transition: border-color .15s, box-shadow .15s, transform .15s; position: relative; overflow: hidden; }
.ci-card::before { content: ''; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: var(--svc); }
.ci-card:hover { border-color: var(--svc); box-shadow: var(--shadow); transform: translateY(-1px); }
.ci-card-top { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: var(--fs-sm); color: var(--svc); }
.ci-card-q { font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ci-voice { display: flex; align-items: center; gap: 10px; margin-top: 6px; flex-wrap: wrap; justify-content: center; }

.msg { display: flex; gap: 10px; align-items: flex-start; max-width: 100%; animation: msgIn .25s ease-out; }
@keyframes msgIn { from { opacity: 0; transform: translateY(6px); } }
.msg-body { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; }
.msg-meta { display: flex; align-items: center; gap: 8px; font-size: var(--fs-xs); margin-bottom: 4px; color: var(--c-ink-2); }
.mode-tag { font-size: 11px; background: var(--c-line-2); padding: 0 6px; border-radius: 4px; color: var(--c-muted); }
.msg-user { justify-content: flex-end; }
.msg-user .msg-body { align-items: flex-end; flex: 0 1 auto; max-width: min(78%, 640px); }
.msg-user .msg-bubble { background: var(--c-primary); color: #fff; border-radius: 18px 18px 4px 18px; padding: 10px 15px; white-space: pre-wrap; box-shadow: var(--shadow-sm); }
.msg-user.pending .msg-bubble { opacity: .7; }
.msg-assistant .msg-body, .msg-agent .msg-body { max-width: min(100%, 880px); }
.msg-assistant .msg-bubble, .msg-agent .msg-bubble { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: 4px 18px 18px 18px; padding: 12px 16px; box-shadow: var(--shadow-sm); }
.msg-agent .msg-bubble { background: var(--c-accent-50); border-color: color-mix(in srgb, var(--c-accent) 25%, var(--c-line)); }
.msg-md { line-height: 1.7; }
.msg-md h4 { margin-top: .6em; }
.msg-badges { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin-bottom: 6px; }
.ground-badge .ico { margin-right: 1px; }
.latency { font-size: var(--fs-xs); color: var(--c-faint); font-variant-numeric: tabular-nums; }
.latency::before { content: '⏱ '; }
.trace { margin-top: 10px; font-size: var(--fs-xs); color: var(--c-muted); }
.trace summary { cursor: pointer; display: flex; align-items: center; gap: 6px; list-style: none; flex-wrap: wrap; padding: 4px 0; }
.trace summary::-webkit-details-marker { display: none; }
.trace summary .ico { color: var(--c-ok); }
.trace-line { color: var(--c-faint); margin-left: 4px; }
.trace-list { margin: 6px 0 0; padding: 8px 12px 8px 30px; background: var(--c-surface-2); border-radius: var(--radius); border: 1px solid var(--c-line-2); }
.trace-list li { margin: 3px 0; }
.tr-step { font-weight: 700; color: var(--c-ink-2); }
.tr-ms { margin-left: 6px; font-variant-numeric: tabular-nums; color: var(--c-primary); }
.tr-detail { margin-left: 8px; }
.msg-actions { display: flex; align-items: center; gap: 2px; margin-top: 6px; }
.msg-actions .btn { color: var(--c-muted); }
.msg-actions .btn[aria-pressed='true'] { color: var(--c-primary); background: var(--c-primary-50); }
.msg-actions .btn.on { color: var(--c-primary); background: var(--c-primary-50); }
.dialect-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; font-size: var(--fs-xs); background: var(--c-warn-bg); color: var(--c-ink-2); padding: 6px 10px; border-radius: 10px; max-width: 100%; border: 1px solid color-mix(in srgb, var(--c-warn) 25%, transparent); }
.dl-tag { font-weight: 800; color: var(--c-warn); }
.dl-orig { color: var(--c-muted); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--c-muted) 50%, transparent); }
.dl-arrow { color: var(--c-warn); font-weight: 800; }
.dl-std { font-weight: 700; }
.pii-strip { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: var(--fs-xs); color: var(--c-ok); background: var(--c-ok-bg); padding: 5px 10px; border-radius: 10px; }
.msg-system { text-align: center; }
.msg-system span { display: inline-block; font-size: var(--fs-xs); color: var(--c-muted); background: var(--c-line-2); padding: 4px 12px; border-radius: var(--radius-pill); }
.pg-card { background: var(--c-surface); border: 1px solid var(--c-primary-100); border-radius: 4px 18px 18px 18px; padding: 12px 16px; box-shadow: var(--shadow-sm); max-width: 560px; }
.pg-bar { height: 4px; background: var(--c-line-2); border-radius: 4px; overflow: hidden; margin-bottom: 10px; }
.pg-bar-fill { display: block; height: 100%; width: 0; background: var(--grad-ai); transition: width .4s ease; }
.pg-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 12px; font-size: var(--fs-sm); color: var(--c-faint); }
.pg-steps li { display: flex; align-items: center; gap: 7px; transition: color .2s; }
.pg-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--c-line); flex: 0 0 auto; position: relative; transition: all .2s; }
.pg-steps li.now { color: var(--c-primary); font-weight: 700; }
.pg-steps li.now .pg-dot { border-color: var(--c-primary); border-top-color: transparent; animation: spin .7s linear infinite; }
.pg-steps li.done { color: var(--c-ink-2); }
.pg-steps li.done .pg-dot { background: var(--c-ok); border-color: var(--c-ok); }
.pg-steps li.done .pg-dot::after { content: ''; position: absolute; left: 3px; top: 0; width: 4px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.pg-hint { margin-top: 8px; }

.caption-strip { display: flex; align-items: center; gap: 10px; margin: 0 14px; padding: 10px 14px; border-radius: var(--radius); background: var(--c-ink); color: #fff; font-size: var(--fs-md); animation: pop .15s; }
.rec-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--c-danger); animation: pulse 1s infinite; flex: 0 0 auto; }
@keyframes pulse { 50% { opacity: .3; } }
.caption-label { font-size: var(--fs-xs); font-weight: 800; color: color-mix(in srgb, #fff 60%, transparent); flex: 0 0 auto; }
.caption-text { flex: 1; min-width: 0; font-weight: 600; }
.caption-text.interim { color: color-mix(in srgb, #fff 75%, transparent); }
.caption-text.interim::after { content: '▍'; animation: pulse .8s infinite; margin-left: 2px; }
.caption-strip .btn.ghost { color: #fff; }

.composer { padding: 10px 14px 12px; border-top: 1px solid var(--c-line-2); background: var(--c-surface); }
.composer-box { border: 1.5px solid var(--c-line); border-radius: 16px; background: var(--c-surface); transition: border-color .15s, box-shadow .15s; }
.composer-box:focus-within { border-color: var(--c-primary); box-shadow: var(--ring); }
.chat-input { display: block; width: 100%; border: 0; resize: none; padding: 12px 14px 4px; background: transparent; font-size: var(--fs-md); line-height: 1.55; min-height: 48px; max-height: 180px; outline: none; }
.composer-bar { display: flex; align-items: center; gap: 6px; padding: 4px 6px 6px 10px; flex-wrap: wrap; }
.svc-select-wrap { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); color: var(--c-muted); border: 1px solid var(--c-line); border-radius: var(--radius-pill); padding: 2px 4px 2px 9px; }
.svc-select { border: 0; background: transparent; font-size: var(--fs-xs); font-weight: 700; color: var(--c-ink-2); cursor: pointer; padding: 3px 2px; }
.svc-select:focus { outline: none; }
.svc-select-wrap:focus-within { box-shadow: var(--ring); }
.composer-modes { display: flex; gap: 4px; flex-wrap: wrap; }
.mode-chip { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: var(--radius-pill); background: var(--c-primary-50); color: var(--c-primary); }
.mode-chip.voice { background: var(--c-danger-bg); color: var(--c-danger); }
.char-count { font-size: var(--fs-xs); color: var(--c-faint); font-variant-numeric: tabular-nums; }
.char-count.over { color: var(--c-danger); font-weight: 800; }
.len-err { font-size: var(--fs-xs); color: var(--c-danger); font-weight: 700; }
.mic-btn { border-radius: 50%; color: var(--c-ink-2); }
.mic-btn.recording { background: var(--c-danger); color: #fff; animation: ring 1.2s infinite; }
@keyframes ring { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--c-danger) 50%, transparent); } 100% { box-shadow: 0 0 0 12px transparent; } }
.send-btn { border-radius: 50%; }
.composer-hint { margin: 6px 4px 0; font-size: 11px; color: var(--c-faint); }
.composer-hint b { color: var(--c-muted); font-weight: 700; }
.closed-bar { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px; border-top: 1px solid var(--c-line); background: var(--c-surface-2); font-size: var(--fs-sm); color: var(--c-muted); flex-wrap: wrap; }

.chat-ctx { border-left: 1px solid var(--c-line); background: var(--c-surface-2); display: flex; flex-direction: column; min-height: 0; }
.cx-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px 6px; }
.cx-head h2 { margin: 0; font-size: var(--fs-md); }
.cx-body { flex: 1; overflow-y: auto; padding: 4px 12px 14px; display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.cx-sec { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); padding: 12px 12px; }
.cx-sec h3 { font-size: var(--fs-sm); display: flex; align-items: center; gap: 6px; margin: 0 0 8px; flex-wrap: wrap; }
.cx-sec h3 .ico { color: var(--c-primary); }
.cx-hint { font-weight: 500; color: var(--c-faint); font-size: var(--fs-xs); margin-left: auto; }
.slot-list { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0 10px; margin: 0; font-size: var(--fs-sm); }
.slot-list dt { color: var(--c-muted); padding: 6px 0; border-bottom: 1px solid var(--c-line-2); font-weight: 600; }
.slot-dd { margin: 0; display: flex; align-items: center; gap: 2px; padding: 3px 0; border-bottom: 1px solid var(--c-line-2); min-width: 0; }
.slot-valwrap { flex: 1; min-width: 0; font-weight: 700; }
.slot-edit { opacity: .45; }
.slot-dd:hover .slot-edit, .slot-edit:focus { opacity: 1; }
.slot-editing { display: flex; gap: 4px; }
.cx-outputs { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cx-outputs a, .cx-outputs .linklike { display: flex; align-items: center; gap: 6px; padding: 7px 8px; border-radius: var(--radius-sm); background: var(--c-surface-2); color: var(--c-ink); font-size: var(--fs-sm); width: 100%; text-decoration: none; }
.cx-outputs a:hover, .cx-outputs .linklike:hover { background: var(--c-primary-50); text-decoration: none; }
.cx-outputs span:nth-child(2) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cx-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.cx-depts { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); display: flex; flex-direction: column; gap: 6px; }
.cx-depts li { display: flex; flex-direction: column; }
.cx-depts a { font-weight: 800; }
.cx-meta { background: transparent; border-style: dashed; }
.chat-scrim { display: none; }

/* 채팅 모달 부품 */
.handoff-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.handoff-type input { position: absolute; opacity: 0; pointer-events: none; }
.ht-box { display: flex; flex-direction: column; gap: 2px; padding: 12px; border: 1.5px solid var(--c-line); border-radius: var(--radius); cursor: pointer; height: 100%; }
.ht-box .ico { color: var(--c-accent); margin-bottom: 2px; }
.handoff-type input:checked + .ht-box { border-color: var(--c-accent); background: var(--c-accent-50); box-shadow: 0 0 0 1px var(--c-accent); }
.handoff-type input:focus-visible + .ht-box { box-shadow: var(--ring); }
.stars { display: flex; gap: 4px; justify-content: center; }
.star { background: none; border: 0; cursor: pointer; color: var(--c-line); padding: 2px; border-radius: 8px; }
.star.on { color: var(--c-warn); }
.star.on svg { fill: currentColor; }
.star-label { font-weight: 700; color: var(--c-ink-2); min-height: 1.5em; }
.voice-samples { display: flex; flex-direction: column; gap: 6px; }
.voice-sample { display: flex; align-items: center; gap: 10px; text-align: left; padding: 10px 12px; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); cursor: pointer; font-family: inherit; font-size: var(--fs-sm); color: var(--c-ink); }
.voice-sample:hover { border-color: var(--c-primary); background: var(--c-primary-50); }
.voice-sample .ico { color: var(--c-danger); }
.form-pick { display: flex; flex-direction: column; gap: 6px; }
.form-pick-item { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 12px 14px; border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); cursor: pointer; text-align: left; font-family: inherit; color: var(--c-ink); }
.form-pick-item:hover { border-color: var(--c-primary); background: var(--c-primary-50); }
.fp-name { display: flex; align-items: center; gap: 6px; font-weight: 800; }
.notice-pop-mark { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.notice-pop-mark > span { width: 44px; height: 44px; border-radius: 12px; background: var(--grad-ai); color: #fff; display: grid; place-items: center; font-weight: 900; flex: 0 0 auto; }
.notice-pop-text { white-space: pre-line; font-size: var(--fs-sm); color: var(--c-ink-2); background: var(--c-surface-2); border-radius: var(--radius); padding: 12px 14px; }
.notice-pop-list { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-direction: column; gap: 8px; font-size: var(--fs-sm); }
.notice-pop-list li { display: flex; gap: 8px; align-items: flex-start; }
.notice-pop-list .ico { color: var(--c-primary); margin-top: 2px; }

/* ================================================================ 서비스 지연 안내 */
.overload { max-width: 640px; margin: 56px auto; text-align: center; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 48px 28px; box-shadow: var(--shadow); }
.overload h1 { font-size: var(--fs-2xl); outline: none; }
.overload-art { display: flex; gap: 8px; justify-content: center; margin-bottom: 20px; }
.overload-art span { width: 14px; height: 14px; border-radius: 50%; background: var(--c-warn); animation: pulse 1.2s infinite; }
.overload-art span:nth-child(2) { animation-delay: .2s; } .overload-art span:nth-child(3) { animation-delay: .4s; }
.overload-alt { margin-top: 24px; font-size: var(--fs-sm); color: var(--c-muted); background: var(--c-surface-2); border-radius: var(--radius); padding: 12px; }
.notfound h1 { outline: none; }

/* ================================================================ 홈 */
.hero { position: relative; color: #fff; overflow: hidden; background: var(--c-primary-700); }
.hero-bg { position: absolute; inset: 0; }
.hero-bg svg { display: block; width: 100%; height: 100%; }
.hero-inner { position: relative; padding-top: 56px; padding-bottom: 60px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--radius-pill); background: color-mix(in srgb, #fff 14%, transparent); border: 1px solid color-mix(in srgb, #fff 22%, transparent); font-size: var(--fs-xs); font-weight: 700; margin-bottom: 16px; }
.hero-title { font-size: clamp(28px, 4.2vw, 46px); font-weight: 800; letter-spacing: -.03em; line-height: 1.25; margin: 0 0 12px; outline: none; }
.hero-title span { color: color-mix(in srgb, var(--c-accent) 40%, #fff); }
.hero-sub { max-width: 640px; margin: 0 auto 28px; font-size: var(--fs-md); color: color-mix(in srgb, #fff 82%, transparent); }
.hero-search { display: flex; align-items: center; gap: 6px; width: min(760px, 100%); background: var(--c-surface); border-radius: 20px; padding: 7px 7px 7px 18px; box-shadow: 0 16px 40px color-mix(in srgb, var(--c-primary-700) 50%, transparent); }
.hero-search:focus-within { box-shadow: 0 0 0 4px color-mix(in srgb, #fff 35%, transparent), 0 16px 40px color-mix(in srgb, var(--c-primary-700) 50%, transparent); }
.hero-search-ico { color: var(--c-primary); }
.hero-input { flex: 1; min-width: 0; border: 0; outline: none; font-size: var(--fs-lg); padding: 12px 6px; color: var(--c-ink); background: transparent; }
.hero-input::placeholder { color: var(--c-faint); transition: opacity .2s; }
.hero-input.ph-fade::placeholder { opacity: 0; }
.hero-btn-ai { border-radius: 14px; min-height: 50px; background: var(--c-accent-50); color: var(--c-accent); border-color: transparent; font-size: var(--fs-md); }
.hero-btn-ai:hover { background: var(--c-accent); color: #fff; }
.hero-btn { border-radius: 14px; min-height: 50px; padding: 0 26px; font-size: var(--fs-md); }
.hero-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; margin-top: 18px; }
.hero-chips-label { font-size: var(--fs-xs); color: color-mix(in srgb, #fff 70%, transparent); font-weight: 700; }
.hero-chip { font-size: var(--fs-sm); padding: 5px 12px; border-radius: var(--radius-pill); background: color-mix(in srgb, #fff 12%, transparent); color: #fff; border: 1px solid color-mix(in srgb, #fff 20%, transparent); }
.hero-chip:hover { background: color-mix(in srgb, #fff 24%, transparent); text-decoration: none; }
.home-svcs { margin-top: -28px; position: relative; }
.home-sec { margin-top: 56px; }
.home-sec-head { margin-bottom: 18px; }
.home-sec-head h2 { font-size: var(--fs-xl); font-weight: 800; margin-bottom: 4px; }
.home-sec-head p { margin: 0; }
.home-sec-head.center { text-align: center; }
.home-svcs .home-sec-head { background: var(--c-surface); border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding: 22px 24px 4px; margin-bottom: 0; border: 1px solid var(--c-line); border-bottom: 0; }
.svc-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; background: var(--c-surface); padding: 16px 24px 24px; border-radius: 0 0 var(--radius-lg) var(--radius-lg); border: 1px solid var(--c-line); border-top: 0; box-shadow: var(--shadow); }
.svc-card { --svc: var(--c-primary); --svc-bg: var(--c-primary-50); border-radius: var(--radius-lg); padding: 18px 16px 14px; border: 1px solid var(--c-line); background: var(--c-surface); display: flex; flex-direction: column; gap: 6px; transition: transform .15s, box-shadow .15s, border-color .15s; }
.svc-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: var(--svc); }
.svc-card.svc-settle { --svc: var(--svc-settle); --svc-bg: var(--svc-settle-bg); }
.svc-card.svc-life { --svc: var(--svc-life); --svc-bg: var(--svc-life-bg); }
.svc-card.svc-biz { --svc: var(--svc-biz); --svc-bg: var(--svc-biz-bg); }
.svc-card.svc-factory { --svc: var(--svc-factory); --svc-bg: var(--svc-factory-bg); }
.svc-card.svc-civil { --svc: var(--svc-civil); --svc-bg: var(--svc-civil-bg); }
.svc-card-ico { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--svc-bg); color: var(--svc); margin-bottom: 4px; }
.svc-card h3 { font-size: var(--fs-lg); margin: 0; }
.svc-card h3 a { color: var(--c-ink); }
.svc-card p { font-size: var(--fs-sm); color: var(--c-muted); flex: 1; margin: 0 0 6px; }
.svc-card-foot { display: flex; gap: 4px; flex-wrap: wrap; }
.svc-ai { background: var(--svc-bg); color: var(--svc); border-color: transparent; }
.svc-ai:hover { background: var(--svc); color: #fff; }
.hl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.home-flow { margin-top: 64px; padding: 52px 0; background: var(--c-surface); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.flow { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; counter-reset: none; }
.flow-step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 22px 12px 18px; border-radius: var(--radius-lg); background: var(--c-surface-2); border: 1px solid var(--c-line-2); }
.flow-step:not(:last-child)::after { content: ''; position: absolute; right: -10px; top: 50%; width: 8px; height: 8px; border-top: 2px solid var(--c-primary-100); border-right: 2px solid var(--c-primary-100); transform: translateY(-50%) rotate(45deg); z-index: 1; }
.flow-no { position: absolute; top: 10px; left: 12px; font-size: var(--fs-xs); font-weight: 900; color: var(--c-faint); }
.flow-ico { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--c-surface); color: var(--c-primary); box-shadow: var(--shadow); }
.flow-step b { font-size: var(--fs-md); margin-top: 4px; }
.flow-step > span:last-child { font-size: var(--fs-xs); color: var(--c-muted); }
.principle { display: flex; align-items: center; gap: 10px; justify-content: center; margin: 22px auto 0; max-width: 780px; padding: 12px 18px; border-radius: var(--radius-pill); background: var(--c-primary-50); color: var(--c-primary-700); font-size: var(--fs-sm); text-align: left; }
.home-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.home-list .card-head a { color: var(--c-muted); }
.notice-list, .faq-mini { list-style: none; margin: 0; padding: 6px 12px 10px; }
.notice-list li a, .faq-mini li a { display: flex; align-items: center; gap: 8px; padding: 10px 8px; border-bottom: 1px solid var(--c-line-2); color: var(--c-ink); min-width: 0; }
.notice-list li:last-child a, .faq-mini li:last-child a { border-bottom: 0; }
.notice-list a:hover, .faq-mini a:hover { color: var(--c-primary); text-decoration: none; background: var(--c-surface-2); }
.stats-strip { margin-top: 56px; background: linear-gradient(135deg, var(--c-primary-700), var(--c-primary)); color: #fff; }
.stats-inner { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding-top: 30px; padding-bottom: 30px; }
.stat { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.stat b { font-size: clamp(24px, 3vw, 34px); font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.stat b small { font-size: .5em; font-weight: 700; opacity: .8; margin-left: 2px; }
.stat > span { font-size: var(--fs-sm); color: color-mix(in srgb, #fff 78%, transparent); }
.about-card { display: flex; align-items: center; gap: 28px; padding: 32px; border-radius: var(--radius-lg); background: var(--c-surface); border: 1px solid var(--c-line); box-shadow: var(--shadow-sm); }
.about-text { flex: 1; }
.about-points { padding-left: 1.2em; color: var(--c-ink-2); }
.about-avatar { width: 140px; height: 140px; border-radius: 40px; flex: 0 0 auto; }

/* ================================================================ 통합검색 */
.search-top { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; }
.search-bar { display: flex; align-items: center; gap: 8px; background: var(--c-surface); border: 1.5px solid var(--c-line); border-radius: 14px; padding: 5px 5px 5px 14px; box-shadow: var(--shadow-sm); }
.search-bar:focus-within { border-color: var(--c-primary); box-shadow: var(--ring); }
.search-bar-ico { color: var(--c-primary); }
.search-bar .input { border: 0; min-height: 44px; font-size: var(--fs-md); padding: 0 4px; outline: none; }
.search-bar .input:focus { outline: none; }
.search-filters { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.search-filters .select { width: auto; min-width: 140px; min-height: 36px; font-size: var(--fs-sm); }
.ai-answer { background: var(--c-surface); border: 1px solid var(--c-primary-100); border-radius: var(--radius-lg); padding: 20px 22px; box-shadow: var(--shadow); margin-bottom: 20px; position: relative; overflow: hidden; }
.ai-answer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad-ai); }
.ai-answer-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.ai-answer-head h2 { font-size: var(--fs-lg); margin: 0; }
.ai-answer .interp-row { margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--c-line); }
.ai-answer-text { font-size: var(--fs-md); line-height: 1.75; }
.search-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; margin-top: 16px; }
.result-list { display: flex; flex-direction: column; gap: 12px; }
.search-aside { display: flex; flex-direction: column; gap: 14px; }
.accordion { display: flex; flex-direction: column; gap: 6px; }
.acc { border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); }
.acc summary { display: flex; align-items: center; gap: 8px; padding: 12px 14px; cursor: pointer; font-weight: 700; list-style: none; font-size: var(--fs-sm); }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: '+'; margin-left: auto; font-size: 18px; color: var(--c-faint); font-weight: 400; }
.acc[open] summary::after { content: '−'; }
.acc[open] summary { color: var(--c-primary); }
.acc-body { display: flex; gap: 8px; padding: 0 14px 14px; font-size: var(--fs-sm); color: var(--c-ink-2); }
.faq-similar .card-body { padding: 12px; }
.related { display: flex; flex-direction: column; gap: 8px; }
.aside-cta { background: var(--c-primary-50); border-color: var(--c-primary-100); }

/* ================================================================ 서비스 안내 */
.svc-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.svc-ov-card { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 18px 20px; }
.svc-ov-label { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: var(--fs-sm); color: var(--c-primary); margin-bottom: 6px; }
.svc-ov-card p { margin: 0; }
.provide-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 10px; }
.provide-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); font-size: var(--fs-sm); }
.provide-no { font-weight: 900; color: color-mix(in srgb, var(--c-primary) 45%, transparent); font-size: var(--fs-lg); line-height: 1.1; flex: 0 0 auto; white-space: nowrap; }
.hsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 10px; }
.hsteps li { position: relative; display: flex; flex-direction: column; gap: 3px; padding: 16px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); }
.hs-no { width: 28px; height: 28px; border-radius: 50%; background: var(--c-primary); color: #fff; font-weight: 800; display: grid; place-items: center; font-size: var(--fs-sm); margin-bottom: 4px; }
.example-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.example-chip { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border-radius: 14px; border: 1px solid var(--c-primary-100); background: var(--c-primary-50); color: var(--c-primary-700); font-family: inherit; font-size: var(--fs-sm); font-weight: 600; cursor: pointer; text-align: left; }
.example-chip:hover { background: var(--c-primary); color: #fff; }
.input-example { position: relative; background: var(--c-surface); border: 1px dashed var(--c-faint); border-radius: var(--radius); padding: 16px 18px 14px; }
.ie-label { position: absolute; top: -10px; left: 14px; background: var(--c-bg); padding: 0 6px; font-size: var(--fs-xs); font-weight: 800; color: var(--c-muted); }
.caution-list { margin: 0; padding: 14px 18px 14px 34px; background: var(--c-warn-bg); border-radius: var(--radius); color: var(--c-ink-2); font-size: var(--fs-sm); }
.caution-list li { margin: 4px 0; }
.svc-two { align-items: start; }
.svc-two > .psec { margin-top: 32px; }
.form-list { display: flex; flex-direction: column; gap: 6px; }
.form-link { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); color: var(--c-ink); }
.form-link:hover { border-color: var(--c-primary); text-decoration: none; }
.form-link .ico { color: var(--c-primary); }

/* ================================================================ 정착지원 */
.settle-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.nl-box { font-size: var(--fs-md); }
.wish-chips .chip { padding: 5px 10px; font-size: var(--fs-xs); }
.range-wrap { display: flex; align-items: center; gap: 10px; min-height: 42px; }
.range-val { font-weight: 800; color: var(--c-primary); min-width: 44px; text-align: right; }
.settle-ind .card-body { max-height: 640px; overflow-y: auto; }
.ind-groups { display: flex; flex-direction: column; gap: 8px; }
.ind-group { border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-surface); }
.ind-group summary { display: flex; align-items: center; gap: 6px; padding: 10px 12px; cursor: pointer; }
.ind-cnt { margin-left: auto; }
.ind-list { padding: 2px 12px 10px; display: flex; flex-direction: column; }
.ind-row { display: grid; grid-template-columns: minmax(0, 1fr) 120px 22px; align-items: center; gap: 10px; padding: 4px 0; font-size: var(--fs-sm); color: var(--c-muted); }
.ind-row.on { color: var(--c-ink); font-weight: 700; }
.w-val { text-align: right; font-weight: 800; color: var(--c-primary); }
.settle-result { scroll-margin-top: 90px; }
.settle-out { display: flex; flex-direction: column; gap: 16px; margin-top: 12px; }
.settle-out > .psec { margin-top: 12px; }
.result-banner { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 18px 22px; border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--svc-settle), var(--c-primary-700)); color: #fff; }
.result-banner.factory { background: linear-gradient(135deg, var(--svc-factory), var(--c-primary-700)); }
.result-banner h2 { margin: 0; font-size: var(--fs-xl); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.result-banner .btn:not(.primary) { background: color-mix(in srgb, #fff 14%, transparent); border-color: color-mix(in srgb, #fff 30%, transparent); color: #fff; }
.result-banner .btn.primary { background: var(--c-surface); color: var(--c-primary-700); border-color: var(--c-surface); }
.vc-counts { display: inline-flex; gap: 8px; font-size: var(--fs-sm); }
.region-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.region-stats { display: flex; gap: 22px; margin-top: 10px; flex-wrap: wrap; }
.region-stats div { display: flex; flex-direction: column; }
.region-stats b { font-size: var(--fs-xl); font-weight: 800; }
.region-stats span { font-size: var(--fs-xs); color: var(--c-muted); }

/* ================================================================ 생활지원 */
.nl-row { display: flex; align-items: center; gap: 8px; border: 1.5px solid var(--c-line); border-radius: 12px; padding: 4px 4px 4px 12px; }
.nl-row:focus-within { border-color: var(--c-primary); box-shadow: var(--ring); }
.nl-row .ico { color: var(--c-primary); }
.nl-row .input { border: 0; outline: none; font-size: var(--fs-md); }
.nl-row .input:focus { outline: none; }
.life-out { margin-top: 20px; display: flex; flex-direction: column; gap: 14px; }
.life-out > .psec { margin-top: 12px; }
.life-results > .tabs { padding: 0 12px; }
.life-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px 20px 0; }
.life-filters .select { width: auto; min-width: 130px; min-height: 36px; font-size: var(--fs-sm); }
.life-filters .strong { display: inline-flex; gap: 4px; align-items: center; }
.elderly { margin-top: 48px; padding: 28px; border-radius: var(--radius-lg); background: linear-gradient(180deg, var(--svc-life-bg), var(--c-surface) 180px); border: 1px solid color-mix(in srgb, var(--svc-life) 20%, var(--c-line)); scroll-margin-top: 90px; }
.elderly-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.elderly-head h2 { margin: 8px 0 4px; font-size: var(--fs-xl); }
.elderly-head p { margin: 0; }
.elderly-head .select { width: auto; min-width: 150px; }
.elderly-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.elderly .steps > li::before { background: var(--svc-life); }
.elderly .steps > li::after { background: var(--svc-life-bg); }

/* ================================================================ 소상공인 */
.biz-form-grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; }
.biz-out { margin-top: 8px; }
.biz-list { display: flex; flex-direction: column; gap: 14px; }
.ann-details, .elig-details, .qa-box { border-top: 1px dashed var(--c-line); padding-top: 8px; margin-top: 4px; }
.ann-details summary, .elig-details summary, .qa-box summary { cursor: pointer; font-size: var(--fs-sm); font-weight: 700; color: var(--c-primary); display: flex; align-items: center; gap: 6px; padding: 4px 0; }
.ann-details[open] > .announce, .elig-details[open] > .elig { margin-top: 8px; }
.qa-inner { padding: 8px 0 4px; }
.qa-answers { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.qa-item { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.qa-q { display: flex; gap: 8px; align-items: center; padding: 9px 12px; background: var(--c-surface-2); font-weight: 700; font-size: var(--fs-sm); }
.qa-a { padding: 10px 12px; font-size: var(--fs-sm); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.qa-a .cite-list { width: 100%; }
.biz-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.biz-flow > li { display: flex; gap: 12px; padding: 18px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface); align-items: flex-start; }
.biz-flow > li > div { min-width: 0; flex: 1; }
.bf-no { flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; background: var(--svc-biz); color: #fff; font-weight: 900; display: grid; place-items: center; }
.flow-forms { display: flex; flex-direction: column; gap: 6px; }
.flow-forms .form-link { padding: 9px 12px; font-size: var(--fs-sm); }

/* ================================================================ 공장설립 */
.factory-body { padding-top: 18px; }
.stepper { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; counter-reset: none; }
.stepper li { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: var(--radius); background: var(--c-surface); border: 1px solid var(--c-line); font-size: var(--fs-sm); font-weight: 700; color: var(--c-faint); }
.stepper li span { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--c-line-2); font-size: 12px; flex: 0 0 auto; }
.stepper li.now { border-color: var(--svc-factory); color: var(--svc-factory); background: var(--svc-factory-bg); }
.stepper li.now span { background: var(--svc-factory); color: #fff; }
.stepper li.done { color: var(--c-ink-2); }
.stepper li.done span { background: var(--c-ok); color: #fff; }
.fc-struct, .fc-diag { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; }
.fc-diag > .psec { margin-top: 10px; }
.fc-summary { background: var(--c-surface-2); border-radius: var(--radius); padding: 10px 12px; font-size: var(--fs-sm); }
.src-legend { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.fc-missing { border-color: color-mix(in srgb, var(--c-warn) 35%, var(--c-line)); }
.fc-missing .card-head { background: var(--c-warn-bg); }
.fc-missing h3 { display: flex; align-items: center; gap: 8px; }
.mq + .mq { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--c-line); }
.mq-q { margin-bottom: 8px; font-size: var(--fs-sm); }
.mq-input { min-width: 240px; flex: 1; max-width: 360px; }
.factory-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.parcel-panel { position: sticky; top: 90px; }
.pp .card-head h3 { font-size: var(--fs-md); }
.pp-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.fact { display: flex; flex-direction: column; background: var(--c-surface-2); border-radius: var(--radius-sm); padding: 7px 10px; min-width: 0; }
.fact span { font-size: var(--fs-xs); color: var(--c-muted); }
.fact b { font-size: var(--fs-sm); overflow-wrap: anywhere; }
.pp-extra { margin-top: 10px; }
.pp-sec { margin-top: 14px; }
.pp-sec h4 { font-size: var(--fs-sm); margin-bottom: 6px; }
.fc-checklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.fc-cgroup h4 { font-size: var(--fs-sm); color: var(--svc-factory); border-bottom: 2px solid var(--svc-factory-bg); padding-bottom: 6px; }
.fc-cgroup ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: var(--fs-sm); }
.fc-cgroup li { display: flex; gap: 8px; align-items: flex-start; }
.cbox { width: 16px; height: 16px; border: 1.5px solid var(--c-faint); border-radius: 4px; flex: 0 0 auto; margin-top: 3px; }
.dropzone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 32px 16px; border: 2px dashed var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface-2); cursor: pointer; text-align: center; transition: border-color .15s, background .15s; }
.dropzone .ico { color: var(--svc-factory); }
.dropzone:hover, .dropzone.over, .dropzone:focus-visible { border-color: var(--svc-factory); background: var(--svc-factory-bg); }
.file-info { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--radius); border: 1px solid var(--c-ok); background: var(--c-ok-bg); margin-top: 8px; }
.file-info[hidden] { display: none; }
.field .alert[hidden] { display: none; }
.dw-out { margin-top: 18px; }

/* ================================================================ 정책 상세 */
.policy-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.policy-side { position: sticky; top: 88px; }
.policy-hero { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); }
.policy-hero .page-title { margin: 4px 0 0; }
.policy-lead { font-size: var(--fs-md); color: var(--c-ink-2); margin: 0; }
.policy-toc { position: sticky; top: calc(var(--header-h) + 1px); z-index: 5; display: flex; gap: 2px; overflow-x: auto; background: color-mix(in srgb, var(--c-bg) 92%, transparent); backdrop-filter: blur(6px); padding: 10px 0; margin-top: 8px; border-bottom: 1px solid var(--c-line); scrollbar-width: none; }
.policy-toc a { flex: 0 0 auto; padding: 6px 12px; border-radius: var(--radius-pill); font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink-2); }
.policy-toc a:hover { background: var(--c-surface); text-decoration: none; color: var(--c-primary); }
.policy-main .psec { scroll-margin-top: 130px; }
.policy-overview { display: flex; flex-direction: column; gap: 12px; }
.ov-row { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); padding: 14px 16px; }
.ov-row h4, .ov-box h4 { font-size: var(--fs-sm); color: var(--c-muted); margin-bottom: 4px; }
.ov-row p { margin: 0; }
.ov-box { border-radius: var(--radius); padding: 14px 16px; font-size: var(--fs-sm); }
.ok-box { background: var(--c-ok-bg); }
.ok-box h4 { color: var(--c-ok); }
.x-box { background: var(--c-danger-bg); }
.x-box h4 { color: var(--c-danger); }
.ps-dl { display: grid; grid-template-columns: 64px 1fr; gap: 8px 10px; margin: 0 0 16px; font-size: var(--fs-sm); }
.ps-dl dt { color: var(--c-muted); font-weight: 700; }
.ps-dl dd { margin: 0; }
.ps-actions { display: flex; flex-direction: column; gap: 6px; }
.source-card { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); margin-bottom: 10px; flex-wrap: wrap; }
.source-card > .ico { color: var(--c-primary); }
.chunk-list { display: flex; flex-direction: column; gap: 6px; }
.chunk-card { display: flex; flex-direction: column; gap: 3px; padding: 10px 14px; background: var(--c-surface); border: 1px solid var(--c-line); border-left: 3px solid var(--c-primary-100); border-radius: var(--radius-sm); text-align: left; cursor: pointer; font-family: inherit; color: inherit; }
.chunk-card:hover { border-left-color: var(--c-primary); background: var(--c-primary-50); }
.chunk-card .chunk-text { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ================================================================ 체크리스트 */
.cl-wrap { max-width: 880px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.cl-title-row { display: flex; align-items: center; gap: 10px; margin: 12px 0 10px; }
.cl-title-row > .ico { color: var(--c-primary); }
.cl-title-input { flex: 1; min-width: 0; font-size: var(--fs-xl); font-weight: 800; border: 0; border-bottom: 2px dashed transparent; padding: 4px 0; background: transparent; }
.cl-title-input:hover { border-bottom-color: var(--c-line); }
.cl-title-input:focus { outline: none; border-bottom-color: var(--c-primary); }
.cl-edit-hint { color: var(--c-faint); }
.cl-progress { display: flex; align-items: center; gap: 10px; }
.cl-progress .progress { height: 10px; }
.cl-pct { font-size: var(--fs-lg); color: var(--c-primary); min-width: 48px; text-align: right; }
.cl-groups { display: flex; flex-direction: column; gap: 12px; }
.cl-group { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); overflow: hidden; }
.cl-group-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; background: var(--c-surface-2); border-bottom: 1px solid var(--c-line); }
.cl-group-head h2 { font-size: var(--fs-md); margin: 0; }
.cl-items { list-style: none; margin: 0; padding: 0; }
.cl-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--c-line-2); }
.cl-item:last-child { border-bottom: 0; }
.cl-item input { width: 22px; height: 22px; margin-top: 1px; accent-color: var(--c-ok); flex: 0 0 auto; cursor: pointer; }
.cl-item label { flex: 1; display: flex; flex-direction: column; gap: 2px; cursor: pointer; min-width: 0; }
.cl-text { font-weight: 700; }
.cl-detail { font-size: var(--fs-sm); color: var(--c-muted); }
.cl-item.done .cl-text { text-decoration: line-through; color: var(--c-muted); }
.cl-add { display: flex; gap: 8px; }
.print-head { font-size: 12px; margin-bottom: 8px; }

/* ================================================================ 서류 초안 */
.form-grid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.form-card { display: flex; flex-direction: column; gap: 6px; padding: 18px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); color: var(--c-ink); text-decoration: none !important; transition: box-shadow .15s, border-color .15s; }
.form-card:hover { border-color: var(--c-primary); box-shadow: var(--shadow); }
.form-card p { margin: 0; flex: 1; }
.form-card-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--c-primary-50); color: var(--c-primary); display: grid; place-items: center; }
.form-card-go { font-size: var(--fs-sm); font-weight: 700; color: var(--c-primary); }
.draft-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 16px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); position: sticky; top: calc(var(--header-h) + 6px); z-index: 6; box-shadow: var(--shadow-sm); }
.draft-form-name { font-size: var(--fs-md); }
.hwpx-wrap { position: relative; display: inline-flex; }
.hwpx-tip { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: var(--c-ink); color: #fff; font-size: var(--fs-xs); padding: 4px 8px; border-radius: 6px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s; }
.hwpx-wrap:hover .hwpx-tip, .hwpx-wrap:focus .hwpx-tip, .hwpx-wrap:focus-within .hwpx-tip { opacity: 1; }
.draft-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; margin-top: 16px; align-items: start; }
.draft-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 14px; margin-top: 12px; }
.draft-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.draft-field.wide { grid-column: 1 / -1; }
.draft-field > label { font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink-2); }
.df-help { font-size: var(--fs-xs); color: var(--c-muted); display: flex; flex-direction: column; gap: 3px; }
.df-example summary { cursor: pointer; color: var(--c-primary); font-weight: 700; width: max-content; }
.df-example > div { background: var(--c-surface-2); padding: 7px 10px; border-radius: var(--radius-sm); margin: 4px 0; white-space: pre-line; color: var(--c-ink-2); }
.draft-preview { position: sticky; top: calc(var(--header-h) + 80px); display: flex; flex-direction: column; gap: 10px; }
.preview-label { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: var(--fs-sm); color: var(--c-ink-2); }
.paper { position: relative; background: var(--c-surface); color: var(--c-ink); box-shadow: 0 1px 3px color-mix(in srgb, var(--c-ink) 12%, transparent), 0 12px 32px color-mix(in srgb, var(--c-ink) 12%, transparent); border-radius: 4px; padding: 7% 8%; aspect-ratio: 210 / 297; overflow-y: auto; font-family: 'Batang', 'Nanum Myeongjo', serif, var(--font); font-size: 13px; line-height: 1.7; max-height: calc(100vh - 250px); min-height: 480px; }
.paper-title { text-align: center; font-size: 20px; letter-spacing: .2em; margin: 0 0 18px; padding-bottom: 10px; border-bottom: 2px double var(--c-ink-2); font-family: inherit; }
.paper-h { font-size: 14px; font-weight: 800; margin: 14px 0 6px; font-family: var(--font); }
.paper-p { margin: 0 0 8px; white-space: pre-line; }
.paper-table { width: 100%; border-collapse: collapse; margin: 6px 0 10px; font-size: 12px; }
.paper-table th, .paper-table td { border: 1px solid var(--c-ink-2); padding: 5px 7px; vertical-align: top; text-align: left; white-space: pre-line; }
.paper-table th { background: var(--c-surface-2); width: 20%; font-weight: 700; font-family: var(--font); }
.paper-sign { margin-top: 22px; text-align: center; }
.paper-date { margin: 12px 0; }
.paper-signer { text-align: right; margin-right: 8%; }
.paper-to { font-weight: 800; font-size: 15px; margin-top: 14px; text-align: left; }
.paper-watermark { position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%) rotate(-24deg); font-size: 110px; font-weight: 900; color: color-mix(in srgb, var(--c-danger) 7%, transparent); pointer-events: none; font-family: var(--font); }
.ph-filled { background: color-mix(in srgb, var(--c-primary) 7%, transparent); border-radius: 2px; }
.ph-missing { color: var(--c-faint); font-style: italic; }
.ph-missing.req { color: var(--c-danger); background: var(--c-danger-bg); padding: 0 2px; border-radius: 2px; }
.draft-notice .alert { font-size: var(--fs-xs); }

/* ================================================================ FAQ·공지·도움말 */
.faq-top { display: flex; flex-direction: column; gap: 12px; margin: 16px 0; }
.faq-acc .acc summary { font-size: var(--fs); padding: 14px 16px; }
.faq-acc .acc-body { font-size: var(--fs); padding: 0 16px 16px; }
.notice-board { list-style: none; margin: 0; padding: 0; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); overflow: hidden; }
.notice-board li a { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--c-line-2); color: var(--c-ink); flex-wrap: wrap; }
.notice-board li:last-child a { border-bottom: 0; }
.notice-board li a:hover { background: var(--c-surface-2); text-decoration: none; }
.notice-board li.pinned a { background: var(--c-primary-50); }
.nb-title { font-weight: 700; min-width: 0; }
.nb-meta { display: flex; gap: 12px; font-size: var(--fs-xs); color: var(--c-muted); }
.pager { display: flex; gap: 4px; justify-content: center; margin-top: 16px; }
.pager a { min-width: 36px; height: 36px; display: grid; place-items: center; border-radius: var(--radius-sm); border: 1px solid var(--c-line); background: var(--c-surface); color: var(--c-ink-2); font-weight: 700; }
.pager a.active { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.notice-view { max-width: 900px; margin: 0 auto; }
.nv-head { padding: 24px 28px 16px; border-bottom: 1px solid var(--c-line); }
.nv-meta { display: flex; gap: 14px; flex-wrap: wrap; }
.nv-body { padding: 24px 28px; white-space: pre-line; line-height: 1.85; }
.nv-foot { padding: 14px 28px; border-top: 1px solid var(--c-line); display: flex; justify-content: flex-end; }
.help-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; margin-top: 18px; align-items: start; }
.help-toc { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 2px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 8px; }
.help-toc a { padding: 8px 10px; border-radius: var(--radius-sm); color: var(--c-ink-2); font-size: var(--fs-sm); font-weight: 600; }
.help-toc a:hover { background: var(--c-primary-50); color: var(--c-primary); text-decoration: none; }
.help-body { display: flex; flex-direction: column; gap: 14px; }
.help-sec { scroll-margin-top: 90px; }
.help-list { padding-left: 1.2em; margin: 0; }
.help-list li { margin: 6px 0; }
.help-flow { padding-left: 1.3em; }
.help-flow li { margin: 4px 0; }

/* ================================================================ 로그인·가입·마이페이지 */
.auth-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; max-width: 1000px; margin: 12px auto 0; align-items: start; }
.auth-card .card-body, .demo-card .card-body { padding: 28px; }
.auth-form { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.auth-links { display: flex; justify-content: space-between; gap: 10px; font-size: var(--fs-sm); color: var(--c-muted); flex-wrap: wrap; }
.demo-card { background: linear-gradient(180deg, var(--c-primary-50), var(--c-surface) 40%); }
.demo-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.persona-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.persona { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-surface); cursor: pointer; text-align: left; font-family: inherit; color: var(--c-ink); transition: border-color .15s, box-shadow .15s; }
.persona:hover { border-color: var(--c-primary); box-shadow: var(--shadow); }
.persona-emoji { font-size: 26px; width: 44px; height: 44px; display: grid; place-items: center; background: var(--c-surface-2); border-radius: 12px; flex: 0 0 auto; }
.signup { max-width: 820px; margin: 0 auto; }
.signup .psec { margin-top: 24px; }
.agree-box { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.agree-all { padding: 12px 14px; background: var(--c-surface-2); width: 100%; border-bottom: 1px solid var(--c-line); }
.agree-item { padding: 10px 14px; border-bottom: 1px solid var(--c-line-2); }
.agree-item:last-child { border-bottom: 0; }
.agree-item p { margin: 2px 0 0 26px; }
.verify-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.vm { position: relative; }
.vm input { position: absolute; opacity: 0; }
.vm > span { display: flex; align-items: center; gap: 8px; padding: 14px; border: 1.5px solid var(--c-line); border-radius: var(--radius); cursor: pointer; flex-wrap: wrap; }
.vm input:checked + span { border-color: var(--c-primary); background: var(--c-primary-50); box-shadow: 0 0 0 1px var(--c-primary); }
.vm input:focus-visible + span { box-shadow: var(--ring); }
.vm.disabled > span { opacity: .6; cursor: not-allowed; background: var(--c-surface-2); }
.code-info { margin-top: 10px; }
.demo-code { font-size: var(--fs-lg); letter-spacing: .2em; color: var(--c-primary-700); }
.my-head { display: flex; align-items: center; gap: 16px; padding: 20px 24px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius-lg); margin-bottom: 16px; flex-wrap: wrap; }
.my-head .page-title { font-size: var(--fs-xl); margin: 0; }
.my-avatar { width: 56px; height: 56px; border-radius: 50%; background: var(--grad-ai); color: #fff; display: grid; place-items: center; font-size: 22px; font-weight: 800; flex: 0 0 auto; }
.my-body { margin-top: 18px; }
.my-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.my-item { display: flex; align-items: center; gap: 10px; padding: 14px 18px; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--radius); flex-wrap: wrap; }
.my-item > .grow { display: flex; flex-direction: column; gap: 4px; min-width: 220px; }
.my-item-title { font-weight: 800; font-size: var(--fs-md); color: var(--c-ink); }
a.my-item-title:hover { color: var(--c-primary); }
.card-track { list-style: none; margin: 4px 0; padding: 0; display: flex; gap: 0; }
.card-track li { flex: 1; text-align: center; font-size: var(--fs-xs); color: var(--c-faint); padding-top: 14px; position: relative; font-weight: 700; }
.card-track li::before { content: ''; position: absolute; top: 3px; left: 0; right: 0; height: 4px; background: var(--c-line-2); }
.card-track li::after { content: ''; position: absolute; top: 0; left: calc(50% - 5px); width: 10px; height: 10px; border-radius: 50%; background: var(--c-line); }
.card-track li.on { color: var(--c-primary); }
.card-track li.on::before, .card-track li.on::after { background: var(--c-primary); }
.profile-form .psec { margin-top: 22px; }
.profile-form .psec-title { font-size: var(--fs-lg); }

/* ================================================================ 반응형 */
@media (max-width: 1280px) {
  .gnb a { padding: 0 10px; font-size: var(--fs); }
  .gnb a::after { left: 10px; right: 10px; }
  .hello { display: none; }
  .svc-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .chat-shell { grid-template-columns: 250px minmax(0, 1fr); }
  .chat-ctx { position: absolute; top: 0; right: 0; bottom: 0; width: min(340px, 88%); z-index: 20; transform: translateX(105%); transition: transform .22s ease; box-shadow: var(--shadow-lg); }
  .chat-shell.open-ctx .chat-ctx { transform: none; }
  .only-tablet { display: inline-flex !important; }
  .chat-shell.open-ctx .chat-scrim, .chat-shell.open-side .chat-scrim { display: block; position: absolute; inset: 0; background: color-mix(in srgb, var(--c-ink) 30%, transparent); z-index: 15; }
}
@media (max-width: 1100px) {
  .gnb, .header-actions { display: none; }
  .hamburger { display: inline-flex; margin-left: auto; }
  .search-grid, .policy-layout, .factory-grid, .draft-grid, .settle-grid, .biz-form-grid, .elderly-grid { grid-template-columns: minmax(0, 1fr); }
  .policy-side, .parcel-panel, .draft-preview { position: static; }
  .paper { max-height: none; }
  .hl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .flow-step::after { display: none; }
  .cand-grid, .parcel-grid { grid-template-columns: minmax(0, 1fr); }
  .biz-flow { grid-template-columns: minmax(0, 1fr); }
  .help-layout { grid-template-columns: minmax(0, 1fr); }
  .help-toc { position: static; flex-direction: row; flex-wrap: wrap; }
  .quick-menu { top: auto; bottom: 16px; transform: none; right: 12px; flex-direction: row; width: auto; border-radius: var(--radius-pill); }
  .qm-item { border-bottom: 0; border-right: 1px solid var(--c-line-2); padding: 8px 12px; }
  .qm-item span { display: none; }
  .qm-item:last-child { border-right: 0; }
}
@media (max-width: 860px) {
  .chat-shell { grid-template-columns: minmax(0, 1fr); border-radius: var(--radius); }
  .chat-side { position: absolute; top: 0; left: 0; bottom: 0; width: min(300px, 86%); z-index: 20; transform: translateX(-105%); transition: transform .22s ease; box-shadow: var(--shadow-lg); }
  .chat-shell.open-side .chat-side { transform: none; }
  .only-mobile { display: inline-flex !important; }
  .chat-log { padding: 14px 12px 10px; }
  .msg-user .msg-body { max-width: 88%; }
  .msg .avatar.ai, .msg .avatar.agent { width: 28px; height: 28px; }
  .msg-user .avatar.me { display: none; }
  .pg-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hide-sm { display: none; }
  .ch-title strong { max-width: 46vw; }
  .ch-title .muted { display: none; }
  .home-2col, .svc-overview { grid-template-columns: minmax(0, 1fr); }
  .about-card { flex-direction: column-reverse; text-align: center; padding: 24px; }
  .about-points { text-align: left; }
  .auth-grid { grid-template-columns: minmax(0, 1fr); }
  .stats-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 640px) {
  :root { --header-h: 58px; }
  .container { padding: 0 16px; }
  .util-left .util-plus, .util-left .util-sep { display: none; }
  .util-toggle span:not(.util-ico) { display: none; }
  .util-toggle { padding: 0 9px; }
  .ai-banner-text { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  .logo-name { font-size: 17px; }
  .logo-mark { width: 34px; height: 34px; }
  .page-title { font-size: var(--fs-xl); }
  .page-head { margin-bottom: 16px; }
  .page-actions .btn.lg { min-height: 44px; font-size: var(--fs-sm); }
  .hero-inner { padding-top: 36px; padding-bottom: 48px; }
  .hero-search { flex-wrap: wrap; padding: 6px; border-radius: 16px; }
  .hero-search-ico { display: none; }
  .hero-input { flex: 1 1 100%; padding: 10px 10px; font-size: var(--fs-md); }
  .hero-btn-ai, .hero-btn { flex: 1; min-height: 44px; }
  .home-svcs .home-sec-head { padding: 18px 16px 2px; }
  .svc-cards { grid-template-columns: minmax(0, 1fr); padding: 12px 12px 16px; }
  .svc-card { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .svc-card-ico { width: 44px; height: 44px; margin: 0; }
  .svc-card h3 { flex: 1; }
  .svc-card p { flex: 1 1 100%; }
  .hl-grid { grid-template-columns: minmax(0, 1fr); }
  .flow { grid-template-columns: minmax(0, 1fr); }
  .flow-step { flex-direction: row; text-align: left; padding: 12px 14px; }
  .flow-no { position: static; }
  .flow-ico { width: 40px; height: 40px; }
  .flow-step > span:last-child { flex: 1; }
  .principle { border-radius: var(--radius); }
  .chat-page .container { padding: 0 8px; }
  .chat-page { padding-top: 8px; }
  .chat-head { padding: 8px 8px; gap: 4px; }
  .chat-head .btn.sm { padding: 0 8px; }
  .composer { padding: 8px 8px 10px; }
  .composer-hint { display: none; }
  .svc-select-wrap .ico { display: none; }
  .ci-title { font-size: var(--fs-xl); }
  .map-row { grid-template-columns: minmax(0, 1fr) 90px; }
  .map-reason { grid-column: 1 / -1; grid-row: 2; }
  .draft-fields { grid-template-columns: minmax(0, 1fr); }
  .paper { padding: 22px 16px; aspect-ratio: auto; min-height: 0; font-size: 12px; }
  .paper-watermark { font-size: 64px; }
  .draft-toolbar { position: static; }
  .handoff-types, .verify-methods { grid-template-columns: minmax(0, 1fr); }
  .stepper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elderly { padding: 18px 14px; }
  .result-banner { padding: 16px; }
  .result-banner .row { width: 100%; }
  .result-banner .btn { flex: 1 1 auto; }
  .pp-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cc-dl { grid-template-columns: 80px 1fr; }
  .my-head { padding: 16px; }
  .nv-head, .nv-body, .nv-foot { padding-left: 18px; padding-right: 18px; }
  .ind-row { grid-template-columns: minmax(0, 1fr) 96px 20px; }
  .compare-bar-inner .chips { display: none; }
  .search-filters .select, .life-filters .select { flex: 1 1 calc(50% - 8px); min-width: 0; }
  .pcard { padding: 16px 16px 12px; }
  .pcard-foot .btn.ghost.sm { padding: 0 6px; }
  .bk { padding: 12px; }
  .footer-top { flex-direction: column; }
}
@media (max-width: 400px) {
  .logo-org { display: none; }
  .util-org { display: none; }
}

/* 큰 글씨 모드 보정 */
html.large .gnb a { font-size: var(--fs); padding: 0 9px; }
html.large .chat-shell { grid-template-columns: 250px minmax(0, 1fr) 300px; }
@media (max-width: 1280px) { html.large .chat-shell { grid-template-columns: 250px minmax(0, 1fr); } }
@media (max-width: 860px) { html.large .chat-shell { grid-template-columns: minmax(0, 1fr); } }
html.large .msg-md { line-height: 1.8; }
html.large .btn.sm { min-height: 38px; }
@media (max-width: 1280px) { html.large .gnb, html.large .header-actions { display: none; } html.large .hamburger { display: inline-flex; margin-left: auto; } }

/* 움직임 줄이기 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ================================================================ 인쇄 */
@media print {
  .util-bar, header.site, footer.site, .quick-menu, .ai-banner, .breadcrumb, .page-actions, .no-print, .compare-bar, .tabs, .modal-backdrop, .toast-wrap { display: none !important; }
  body { background: #fff; font-size: 12pt; }
  .container { max-width: none; padding: 0; }
  .page { padding: 0; }
  .card, .cl-group { box-shadow: none; break-inside: avoid; }
  .cl-item { break-inside: avoid; padding: 8px 12px; }
  .cl-item input { accent-color: var(--c-ink); }
  .cl-title-input { font-size: 18pt; }
  .draft-grid { display: block; margin: 0; }
  .draft-preview { position: static; }
  .draft-notice, .preview-label { display: none; }
  .paper { box-shadow: none; padding: 0; aspect-ratio: auto; max-height: none; overflow: visible; min-height: 0; }
  .paper-watermark { display: none; }
  .ph-filled { background: none; }
  .map { display: none; }
  a[href^='http']::after { content: ''; }
}

/* 후보지 표 보정 */
.cand-table th, .cand-table td:nth-child(2) { white-space: nowrap; }
.cand-table td:last-child { min-width: 220px; }
.cand-reason > .table-wrap { width: auto; }
.chat-log .pcard-tags { display: none; }
.card-head h2, .card-head h3 { display: flex; align-items: center; gap: 8px; }
.card-head h2 .ico, .card-head h3 .ico { color: var(--c-primary); }
@media (max-width: 640px) {
  .criteria thead { display: none; }
  .criteria tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 10px 12px; border-bottom: 1px solid var(--c-line-2); }
  .criteria td { padding: 0 !important; border: 0 !important; }
  .criteria td:nth-child(1) { font-weight: 800; }
  .criteria td:nth-child(4) { grid-column: 2; grid-row: 1; text-align: right; }
  .criteria td:nth-child(2) { grid-column: 1 / -1; color: var(--c-muted); }
  .criteria td:nth-child(2)::before { content: '요건 '; font-weight: 700; }
  .criteria td:nth-child(3) { grid-column: 1 / -1; }
  .criteria td:nth-child(3)::before { content: '내 정보 '; font-weight: 700; color: var(--c-muted); }
  .elig-head { padding: 12px; }
}
.more-btn { grid-column: 1 / -1; margin-top: 4px; }
.reg-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.reg-list li { padding: 9px 12px; border-bottom: 1px solid var(--c-line-2); font-size: var(--fs-sm); }
.reg-list li:last-child { border-bottom: 0; }
.reg-top { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.reg-val { font-weight: 700; color: var(--c-primary-700); text-align: right; }
.reg-note { color: var(--c-ink-2); font-size: var(--fs-xs); margin-top: 2px; }
.reg-law { color: var(--c-muted); font-size: var(--fs-xs); margin-top: 2px; }
.table-wrap, .link-card, .contact-card { position: relative; }
.draft-toolbar > .grow { min-width: 240px; }
@media (max-width: 640px) { .draft-toolbar > .grow { flex: 1 1 100%; } .draft-toolbar .btn { flex: 1 1 auto; } }
