/* 썸트리 모바일 층 (2026-11-06) — app.css 뒤에 읽혀 휴대폰 화면만 따로 정리한다.
   원칙: 웹 화면을 줄여 보여 주지 않는다. 휴대폰에서는 줄이고·숨기고·쌓는다.
   구간: ≤760 휴대폰·작은 태블릿 / ≤400 일반 휴대폰(360~400) / ≤340 작은 휴대폰(320)
   글자 단계(휴대폰): 36 · 28 · 24 · 20 · 18 · 16(본문) · 14(보조). 본문은 16 아래로 내리지 않는다(40~70대 이용자). */

@media (max-width: 760px) {
  :root { --fs-display: 36px; --fs-3xl: 28px; --fs-2xl: 24px; --fs-xl: 20px; --gutter: 20px; --section: 48px; }

  /* ---------- 머리글: 첫 줄(로고·계정)은 스크롤하면 올라가고 메뉴 줄만 위에 남는다 ---------- */
  .gnb { top: -56px; }
  .gnb .wrap { height: auto; flex-wrap: wrap; padding-top: 0; gap: 0 var(--s-3); }
  .logo { height: 56px; }
  .logo svg { height: 17px; }
  .logo small { display: none; }
  .gnb .util { margin-left: auto; height: 56px; gap: var(--s-1); }
  .gnb .util > .btn.primary, .gnb .util .util-link { display: none; }
  .gnb .util .util-acct > a, .gnb .util .util-acct > a + a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--s-2); font-size: var(--fs-xs); color: var(--ink-2); }
  .gnb .util .util-acct > a + a { color: var(--brand); font-weight: var(--fw-b); }
  .gnb nav { order: 3; display: flex; flex: 0 0 auto; flex-basis: calc(100% + 2 * var(--gutter)); grid-template-columns: none; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--s-2); height: 48px; gap: 0;
    overflow-x: auto; overflow-y: hidden; scrollbar-width: none; border-top: 1px solid var(--line-2);
    -webkit-mask-image: linear-gradient(90deg, #000 86%, transparent); mask-image: linear-gradient(90deg, #000 86%, transparent); }
  .gnb nav::-webkit-scrollbar { display: none; }
  .gnb nav a { flex: none; justify-content: center; min-height: 48px; padding: 0 var(--s-3); font-size: var(--fs-s); }
  .gnb nav a[aria-current="page"]::after { left: var(--s-3); right: var(--s-3); }
  .um-btn { min-height: 44px; }
  .um-pop { position: fixed; left: var(--s-4); right: var(--s-4); top: 60px; width: auto; }

  /* ---------- 페이지 머리 ---------- */
  .pagehead .wrap { padding-top: var(--s-5); padding-bottom: var(--s-5); }
  .pagehead h1 { font-size: var(--fs-2xl); line-height: 1.3; }
  .pagehead p { font-size: var(--fs-xs); line-height: 1.6; }
  .crumb { font-size: var(--fs-xs); }
  .ph-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3) var(--s-4); width: auto; max-width: none; margin-top: var(--s-4); }
  .ph-kpis div, .ph-kpis div:first-child { padding: 0; border: 0 !important; }
  .ph-kpis b { font-size: var(--fs-xl); line-height: 1.3; }

  /* ---------- 구역 제목·패널 ---------- */
  .sec-h h2, .sx-h h2 { font-size: var(--fs-xl); line-height: 1.35; }
  .sec-h p { font-size: var(--fs-xs); }
  .panel-h { padding: var(--s-3) var(--s-4); min-height: 56px; }
  .panel-h h3 { font-size: var(--fs-l); line-height: 1.4; }
  .mg-copy h1, .md-hi h1, .gate h2 { font-size: var(--fs-2xl); line-height: 1.3; }
  .panel.pad { padding: var(--s-5) var(--s-4); }

  /* ---------- 로그인·가입 카드: 휴대폰에서는 테두리 상자 없이 화면을 쓴다 ---------- */
  .auth { padding: var(--s-5) 0 var(--s-7); background: var(--surface); min-height: 0; }
  .auth-card { border: 0; border-radius: 0; box-shadow: none; padding: var(--s-2) var(--gutter) var(--s-5); }
  .auth-h { font-size: var(--fs-2xl); }
  .auth-h.sm { font-size: var(--fs-xl); }
}

@media (max-width: 400px) {
  :root { --gutter: 16px; }
  .gnb nav a { padding: 0 10px; }
  .gnb nav a[aria-current="page"]::after { left: 10px; right: 10px; }
}

@media (max-width: 340px) {
  :root { --fs-display: 28px; --fs-3xl: 24px; --fs-2xl: 22px; --gutter: 12px; }
  .logo svg { height: 15px; }
  .gnb .util .util-acct > a { padding: 0 6px; }
}

/* ---------- 기간 선택(첫 화면 구역들): 접힌 한 줄 요약 → 누르면 날짜 칸 ---------- */
@media (max-width: 760px) {
  .hrange { display: grid; width: 100%; gap: var(--s-2); }
  .hr-sum { display: flex; align-items: center; gap: var(--s-2); width: 100%; min-height: 48px; padding: 0 var(--s-4); border: 1px solid var(--line-strong, #c9d2c4); border-radius: var(--r-s); background: var(--surface); font: inherit; font-size: var(--fs-s); color: var(--ink); cursor: pointer; text-align: left; }
  .hr-sum .lc { color: var(--brand); flex: none; }
  .hr-sum span { flex: 1; font-weight: var(--fw-b); font-variant-numeric: tabular-nums; }
  .hr-sum em { font-style: normal; font-size: var(--fs-xs); color: var(--brand); font-weight: var(--fw-b); }
  .hr-sum em::after { content: " ▾"; }
  .hrange.open .hr-sum em::after { content: " ▴"; }
  .hr-in { display: none; }
  .hrange.open .hr-in { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--s-2); }
  .hrange.open .hr-in input[type="date"] { width: 100%; min-width: 0; min-height: 48px; font-size: var(--fs-s); padding: 0 var(--s-2); }
  .hrange.open .hr-in .btn { grid-column: 1 / -1; min-height: 48px; font-size: var(--fs-s); }
  .sec-range { width: 100%; }
}

/* ---------- 메뉴별 조회 기간: 빠른 버튼 한 줄 + [직접 입력] ---------- */
@media (max-width: 760px) {
  .period { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-2); padding: var(--s-3); }
  .period .pl { display: none; }
  .period .seg { width: 100%; display: flex; flex-wrap: nowrap; }
  .period .seg button { flex: 1; min-width: 0; padding: 0 var(--s-2); font-size: var(--fs-xs); }
  .period .p-custom { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--s-3); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface); font: inherit; font-size: var(--fs-xs); font-weight: var(--fw-b); color: var(--ink-2); cursor: pointer; white-space: nowrap; }
  .period.open .p-custom { border-color: var(--brand); color: var(--brand); background: var(--brand-50); }
  .period .range, .period .pnote { display: none; }
  .period.open .range { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--s-2); }
  .period.open .range input[type=date] { width: 100%; min-width: 0; padding: 0 var(--s-2); }
  .period.open .range .btn { grid-column: 1 / -1; }
  .period.open .pnote { grid-column: 1 / -1; display: block; margin: 0; }

  /* 첫 화면 히어로: 보기 범위 버튼 + 기간 요약을 한 줄로 */
  .statblock .row1 { display: flex; flex-wrap: nowrap; gap: var(--s-2); align-items: stretch; }
  .statblock .row1 .sc-pick { flex: none; height: 48px; }
  .statblock .row1 .hrange { flex: 1 1 auto; min-width: 0; width: auto; }
  .statblock .row1 .hrange.open { position: relative; }
  .statblock .row1 .hrange.open .hr-in { position: absolute; z-index: 5; right: 0; top: calc(100% + 8px); width: min(calc(100vw - 2 * var(--gutter)), 360px); padding: var(--s-3); border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); box-shadow: var(--shadow-l); }

  /* 공고 상세 첫 칸들(추정가격·마감·개찰·참가 자격): 2칸씩 */
  .facts-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts-row > div { padding: var(--s-4); }
  .facts-row > div + div { border-left: 0; }
  .facts-row > div:nth-child(even) { border-left: 1px solid var(--line-2); }
  .facts-row > div:nth-child(n+3) { border-top: 1px solid var(--line-2); }
  .facts-row b { font-size: var(--fs-l); }
}

/* 보정: app.css의 예전 3칸 격자(.hrange) 규칙을 덮고, 빠른 기간 버튼은 한 줄을 다 쓴다 */
@media (max-width: 760px) {
  .hrange { grid-template-columns: minmax(0, 1fr); }
  .hrange .hr-sum span { color: var(--ink); font-size: var(--fs-s); white-space: nowrap; }
  .hrange .hr-in > span { color: var(--ink-3); font-size: var(--fs-xs); }
  .period { grid-template-columns: minmax(0, 1fr); }
  .period .p-custom { justify-self: end; min-height: 40px; border: 0; background: none; padding: 0 var(--s-1); color: var(--brand); }
  .period .p-custom::after { content: " ▾"; }
  .period.open .p-custom { background: none; }
  .period.open .p-custom::after { content: " ▴"; }
  .period .seg button { padding: 0 4px; }
}
@media (max-width: 760px) { .hr-sum em { white-space: nowrap; } }
@media (max-width: 400px) {
  .statblock .row1 .hr-sum { padding: 0 var(--s-3); gap: 6px; }
  .statblock .row1 .hr-sum em { display: none; }
  .statblock .row1 .hr-sum::after { content: "▾"; font-size: var(--fs-xs); color: var(--brand); }
  .statblock .row1 .hrange.open .hr-sum::after { content: "▴"; }
}

/* ---------- 휴대폰 그래프: 가로 막대 목록(charts.js hlist) ---------- */
.mbars { list-style: none; margin: 0; padding: var(--s-2) 0; display: grid; gap: 2px; }
.mbars li > a, .mbars li:not(:has(a)) { display: grid; grid-template-columns: minmax(72px, 32%) minmax(0, 1fr) auto; align-items: center; gap: var(--s-3); min-height: 44px; padding: 0 var(--s-1); color: var(--ink); text-decoration: none; }
.mbars .k { font-size: var(--fs-s); color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mbars .t { height: 10px; border-radius: 5px; background: var(--line-2); overflow: hidden; }
.mbars .t i { display: block; height: 100%; border-radius: 5px; background: var(--leaf); }
.mbars b { font-size: var(--fs-s); font-variant-numeric: tabular-nums; }
.mbars li.hl .k, .mbars li.hl b { color: var(--brand); font-weight: var(--fw-b); }
.mbars li.hl .t i { background: var(--brand); }
.mbars li > a:hover { background: var(--surface-2); border-radius: var(--r-s); }

/* ===== 2차(검수 반영): 머리글 — 1023px 이하는 두 줄, 메뉴는 숨김 없이 모두 보이게 ===== */
@media (max-width: 1023px) {
  .gnb { top: -56px; }
  .gnb .wrap { height: auto; flex-wrap: wrap; padding-top: 0; gap: 0 var(--s-3); }
  .logo { height: 56px; }
  .logo svg { height: 18px; }
  .logo small { display: none; }
  .gnb .util { margin-left: auto; height: 56px; gap: var(--s-1); }
  .gnb .util > .btn.primary, .gnb .util .util-link { display: none; }
  .gnb nav { order: 3; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); flex: 0 0 auto; flex-basis: calc(100% + 2 * var(--gutter)); margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--s-2); height: 48px; gap: 0; overflow: visible; border-top: 1px solid var(--line-2); -webkit-mask-image: none; mask-image: none; }
  .gnb nav a { justify-content: center; min-height: 48px; padding: 0 4px; font-size: var(--fs-s); }
  .gnb nav a[aria-current="page"]::after { left: 8px; right: 8px; }
}
@media (max-width: 760px) {
  .gnb nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .gnb nav a[data-tab="mine"] { display: none; }
  .util-mine { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--s-2); font-size: var(--fs-xs); font-weight: var(--fw-b); color: var(--brand); text-decoration: none; }
  .util-mine[aria-current] { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
}
@media (max-width: 400px) { .gnb .util .util-acct > a + a { display: none; } }
@media (max-width: 340px) { .gnb nav a { font-size: var(--fs-xs); } .logo svg { height: 15px; } }

/* ===== 표 → 카드형 (app.js cardTables가 칸마다 data-l 이름표를 붙인다) ===== */
@media (max-width: 760px) {
  .tbl-wrap { overflow: visible; }
  table.tbl.mcard, .tbl.mcard tbody { display: block; width: 100%; }
  .tbl.mcard thead { display: none; }
  .tbl.mcard tr { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px var(--s-4); padding: var(--s-4); border-bottom: 1px solid var(--line-2); }
  .tbl.mcard tr:last-child { border-bottom: 0; }
  .tbl.mcard td { display: block; padding: 0; border: 0; background: none !important; box-shadow: none !important; text-align: left; max-width: none; white-space: normal; }
  .tbl.mcard td.rank { flex: none; min-width: 32px; }
  .tbl.mcard td.t-main { flex: 1 1 calc(100% - 52px); min-width: 0; font-size: var(--fs-s); }
  .tbl.mcard td:not(.t-main):not(.rank) { font-size: var(--fs-xs); color: var(--ink-2); }
  .tbl.mcard td:not(.t-main):not(.rank)[data-l]::before { content: attr(data-l); margin-right: 6px; color: var(--ink-3); font-weight: var(--fw-r); }
  .tbl.mcard td:empty { display: none; }
  .tbl.mcard td.hide-m { display: block; }   /* 카드에서는 PC용으로 숨기던 칸도 이름표와 함께 보여 준다 */
  .tbl.mcard td .sub { display: block; margin-top: 2px; }
  .tbl.mcard td .show-m { display: none !important; }   /* 카드에서는 이름표 칸으로 이미 보인다 */
}

/* ===== 2차 공통 보정 (모바일 검수 반영) ===== */
@media (max-width: 760px) {
  /* 글자 단계: 기존 7단계(14·16·18·22·28·36·56) 안에서만 — 휴대폰은 36·28·22·18·16·14 */
  :root { --fs-2xl: 22px; --fs-xl: 18px; }
  /* 설명 문장은 16px(출처·기간·배지 등만 14px) */
  .pagehead p, .sec-h p, .viz-note, .cov-why p, .steps p, .mf p { font-size: var(--fs-s); line-height: 1.65; }
  /* 입력칸 16px: 아이폰에서 누를 때 화면이 확대되지 않게 */
  .period input[type=date], .hrange input[type="date"], select, .input, .md-sort, .af-i { font-size: var(--fs-s) !important; }
  /* 누르는 영역 44px 이상 */
  .period .seg button, .period .p-custom { min-height: 44px; }
  .tlink { display: inline-flex; align-items: center; min-height: 44px; }
  .tbl a.nm, .tbl a.corp, .tbl a.sp-a, a.tel { display: inline-flex; align-items: center; min-height: 44px; }
  .ft-tel, .ft-mail, .ft-legal a { display: inline-flex; align-items: center; min-height: 44px; }
  .crumb a { padding: 10px 4px 10px 0; }
  /* 쪽 번호: 휴대폰은 '‹ 이전 · 3 / 13 · 다음 ›' 한 줄 */
  .pager .pg-n, .pager .pg-gap { display: none; }
  .pager .pg-of { display: inline-flex; }
  /* 개찰 결과 금액이 말줄임되지 않게 */
  .rs-grid b { white-space: normal; font-size: var(--fs-s); word-break: keep-all; }
  /* 매물 상세: 본문 열이 표 최소 폭에 끌려 넘치지 않게 */
  .aside-first > * { min-width: 0; width: 100%; }
  /* 맞춤관리 탭·내 정보 메뉴: 잘리지 않게 */
  .md-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; }
  .md-tabs a { justify-content: center; text-align: center; white-space: normal; }
  .acct-nav nav { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; }
  /* 가입 화면: 하단 고정 버튼이 입력칸을 가리지 않게 */
  html { scroll-padding-bottom: 104px; }
  /* 맞춤관리 소개(비회원): 휴대폰 목업 높이 제한 */
  .mg-phone, .mg-visual { max-height: 460px; overflow: hidden; }
  /* 사진 확대: 바탕을 더 어둡게 */
  .lb { background: rgba(0, 0, 0, .92); }
}
.pager .pg-of { display: none; align-items: center; min-height: 44px; padding: 0 var(--s-3); font-weight: var(--fw-b); font-variant-numeric: tabular-nums; }
@media (max-width: 340px) {
  :root { --gutter: 16px; --fs-3xl: 22px; }
  .statblock .row1 .hrange.open .hr-in, .hrange.open .hr-in { grid-template-columns: minmax(0, 1fr); }
  .hrange.open .hr-in > span { display: none; }
}

/* 공고 상세 설계 수목: 휴대폰은 10행만, [모두 보기]로 펼침 */
.tmore { display: none; }
@media (max-width: 760px) {
  .tclip tbody tr:nth-child(n+11) { display: none; }
  .tmore { display: flex; margin: 0; border-radius: 0 0 var(--r) var(--r); border-left: 0; border-right: 0; border-bottom: 0; min-height: 52px; }
}

/* ===== 첫 화면·매물 길이 줄이기 (≤480) ===== */
@media (max-width: 480px) {
  /* 매물 카드: 사진 왼쪽(104px) 가로형 — 한 화면에 3~4장 */
  .cards { grid-template-columns: minmax(0, 1fr); gap: var(--s-2); }
  .lst { flex-direction: row; min-height: 112px; }
  .lst .ph { flex: none; width: 104px; aspect-ratio: auto; }
  .lst .ph.none svg.tree, .lst .ph.none svg.tree.cc { width: 36px; height: 36px; }
  .lst .ph.none span { font-size: var(--fs-xs); }
  .lst .bd { padding: var(--s-3) var(--s-4); min-width: 0; }
  .lst .sp { font-size: var(--fs-s); }
  .lst .tel { padding-top: var(--s-2); }
  /* 첫 화면 매물은 등록 안내 + 4장만(전체는 '매물' 메뉴에서) */
  .home-cards > :nth-child(n+6) { display: none; }
  /* 장점 카드 6장: 2열 타일, 설명·아이콘은 숨김 */
  .sx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); }
  .sx { padding: var(--s-4); gap: var(--s-1); }
  .sx-ic, .sx-d { display: none; }
  .sx-k { font-size: var(--fs-xs); }
  .sx-v b { font-size: var(--fs-2xl); }
  .sx-go { font-size: var(--fs-xs); }
}
/* 수목수요 반영 현황 설명: 휴대폰은 접어 둔다 */
.cov-why summary { cursor: pointer; list-style: none; }
.cov-why summary::-webkit-details-marker { display: none; }
@media (max-width: 760px) { .cov-why summary::after { content: " 펼치기 ▾"; color: var(--brand); font-size: var(--fs-xs); font-weight: var(--fw-b); } .cov-why[open] summary::after { content: " 접기 ▴"; } }

/* ===== 목록 화면 위쪽(보기 범위) 높이 줄이기 ===== */
@media (max-width: 760px) {
  .scope { padding: var(--s-3); gap: var(--s-2); }
  .scope .sc-k { display: none; }
  .scope .sc-pick, .scope .sc-tg > span, .scope .sc-base { min-height: 44px; height: 44px; }
  .scope .sc-base { font-size: var(--fs-xs); }
  .scope .sc-hint { font-size: var(--fs-xs); }
  .wrap.sec.first > .period + .scope, .wrap.sec.first > .scope { margin-top: var(--s-2); }
}

/* =====================================================================
   모바일 3차 (2026-11-06 사용자 피드백): "웹 정보를 그대로 넣어 길고 조잡하다"
   → 위쪽은 얇게, 조건은 아래에서 올라오는 창(시트)으로, 카드는 짧게, 바닥글은 접어서.
   벤치마킹: 사람인·잡코리아·당근·네이버 부동산 모바일(검색 고정 + 필터 시트 + 짧은 카드 + 접힌 사업자 정보)
   ===================================================================== */
@media (max-width: 760px) {
  /* ---------- 머리글: 첫 줄 52px(로고 · 검색 · 로그인), 둘째 줄 메뉴 탭(옆으로 밀림, 6개 모두) ---------- */
  .gnb { top: -52px; background: rgba(255, 255, 255, .97); }
  .logo { height: 52px; }
  .logo svg { height: 16px; }
  .gnb .util { height: 52px; gap: 2px; }
  .util-mine { display: none !important; }
  .util-search { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--ink); }
  .gnb .util .util-acct > a + a { display: none; }
  .gnb .util .util-acct > a { font-size: var(--fs-xs); color: var(--ink-2); padding: 0 var(--s-2); }
  .gnb nav { display: flex; grid-template-columns: none; height: 46px; padding: 0 var(--s-1); overflow-x: auto; overflow-y: hidden; scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
  .gnb nav::-webkit-scrollbar { display: none; }
  .gnb nav a, .gnb nav a[data-tab="mine"] { display: inline-flex; flex: none; min-height: 46px; padding: 0 14px; font-size: var(--fs-s); }
  .gnb nav a[aria-current="page"]::after { left: 14px; right: 14px; height: 3px; }

  /* ---------- 첫 화면 위쪽: 배경 사진 없이 단정하게 ---------- */
  .hero::before, .hero::after { display: none; }
  .hero { padding: var(--s-5) 0 var(--s-6); background: linear-gradient(180deg, #f1f5ea 0%, var(--paper) 100%); }
  .hero .eyebrow { min-height: 28px; padding: 0 var(--s-3); font-size: var(--fs-xs); }
  .hero h1, .hero.v3 h1 { margin-top: var(--s-3); font-size: var(--fs-xl); line-height: 1.45; }
  .hero .statblock .row1 { margin-top: var(--s-4); }
  .headline { margin-top: var(--s-1); gap: var(--s-2); }
  .headline b { font-size: var(--fs-3xl); }
  .headline b small { font-size: var(--fs-l); }

  /* ---------- 페이지 머리: 사진·이동 경로 없이 제목 + 숫자 띠(옆으로 밀림) ---------- */
  .pagehead::before, .pagehead::after { display: none; }
  .pagehead { background: #f1f5ea; }
  .pagehead .wrap { padding-top: var(--s-4); padding-bottom: var(--s-4); }
  .pagehead .crumb { display: none; }
  .pagehead h1 { margin: 0; font-size: var(--fs-2xl); line-height: 1.35; }
  .pagehead p { margin-top: var(--s-1); font-size: var(--fs-xs); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .ph-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2); margin-top: var(--s-3); }   /* 옆으로 넘기지 않고 2열로 다 보이게 */
  .ph-kpis::-webkit-scrollbar { display: none; }
  .ph-kpis div, .ph-kpis div:first-child { min-width: 0; padding: var(--s-2) var(--s-3) !important; border: 1px solid var(--line) !important; border-radius: var(--r-s); background: rgba(255, 255, 255, .8); }
  .ph-kpis span { font-size: var(--fs-xs); line-height: 1.4; }
  .ph-kpis b { font-size: var(--fs-l); line-height: 1.3; }

  /* ---------- 기간 · 보기 범위: 상자 없이 얇은 두 줄 ---------- */
  .wrap.sec.first { margin-top: var(--s-4); }
  .period { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-2); padding: 0; border: 0; background: none; box-shadow: none; }
  .period .seg { padding: 3px; }
  .period .seg button { min-height: 40px; font-size: var(--fs-xs); }
  .period .p-custom { justify-self: stretch; min-height: 46px; padding: 0 var(--s-3); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface); color: var(--ink-2); }
  .period .p-custom::after { content: none; }
  .period.open .p-custom { border-color: var(--brand); color: var(--brand); background: var(--brand-50); }
  .scope { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-top: var(--s-2); padding: 0; border: 0; background: none; gap: var(--s-2); }
  .scope::-webkit-scrollbar { display: none; }
  .scope > * { flex: none; }
  .scope .sc-pick, .scope .sc-tg > span, .scope .sc-base { min-height: 40px; height: 40px; font-size: var(--fs-xs); }
  .scope .sc-pick b { font-size: var(--fs-s); }
  .scope .sc-base.unset { display: none; }
  .scope .sc-hint { display: none; }

  /* ---------- 검색은 늘 보이고, 조건은 [조건] 버튼 → 아래에서 올라오는 창 ---------- */
  .filters { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-2); align-items: start; padding: 0; border: 0; background: none; box-shadow: none; overflow: visible; }
  .filters .search-field { padding: 0; border: 0; }
  .filters .search-field p { display: none; }
  .filters .search-field .input { height: 48px; }
  .fdet > summary { display: inline-flex; align-items: center; gap: 6px; min-height: 48px; padding: 0 var(--s-4); border: 1px solid var(--line-strong); border-radius: var(--r-s); background: var(--surface); font-size: var(--fs-xs); font-weight: var(--fw-b); white-space: nowrap; }
  .fdet > summary > span { display: none; }
  .fdet > summary::before { content: ""; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143123' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12M20 18h0'/%3E%3Ccircle cx='16' cy='6' r='2'/%3E%3Ccircle cx='10' cy='12' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat; }
  .fdet[open]::before { content: ""; position: fixed; inset: 0; z-index: 89; background: rgba(20, 30, 25, .45); }
  .fdet[open] > .fsheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; max-height: 80vh; overflow-y: auto; overscroll-behavior: contain; background: var(--surface); border-radius: 18px 18px 0 0; box-shadow: 0 -12px 40px rgba(0, 0, 0, .2); padding-bottom: env(safe-area-inset-bottom); }
  .fs-h { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: var(--s-2) var(--s-2) var(--s-2) var(--s-5); background: var(--surface); border-bottom: 1px solid var(--line-2); }
  .fs-h b { font-size: var(--fs-l); }
  .fs-x { width: 48px; height: 48px; border: 0; background: none; font-size: var(--fs-l); color: var(--ink-2); cursor: pointer; }
  .fsheet h4 { padding: var(--s-4) var(--s-5) var(--s-2); }
  .fsheet .opts { padding: 0 var(--s-5) var(--s-4); }
  .fsheet .chip { min-height: 40px; font-size: var(--fs-xs); }
  .fs-f { position: sticky; bottom: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--s-2); padding: var(--s-3) var(--s-5); background: var(--surface); border-top: 1px solid var(--line-2); }
  .fs-f .btn { min-height: 52px; }
  body:has(.fdet[open]) { overflow: hidden; }
  /* 건수·정렬 한 줄 */
  .listbar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); margin: var(--s-3) 0 var(--s-2); flex-wrap: nowrap; }
  .listbar .lb-t, .listbar > span:first-child { font-size: var(--fs-xs); min-width: 0; }
  .listbar .md-sort { width: auto; min-width: 0; height: 40px; padding: 0 28px 0 var(--s-2); font-size: var(--fs-xs) !important; }
  .listbar .btn.sm { display: none; }

  /* ---------- 표 카드: 이름표는 숫자 칸만, 날짜는 위 작은 글씨, 보조 칸은 숨기고 이름 아래 한 줄 요약 ---------- */
  .tbl.mcard tr { padding: var(--s-3) var(--s-4); gap: 2px var(--s-3); }
  .tbl.mcard td.hide-m { display: none; }
  .tbl.mcard td .show-m { display: inline !important; }
  .tbl.mcard td.c { order: -1; flex: 0 0 100%; font-size: var(--fs-xs); color: var(--ink-3); }
  .tbl.mcard td.c::before, .tbl.mcard td:not(.n)::before { content: none !important; }
  .tbl.mcard td:not(.t-main):not(.rank):not(.n):not(.c) { flex: 0 0 100%; font-size: var(--fs-xs); }
  .tbl.mcard td.n { font-size: var(--fs-xs); }
  .tbl.mcard td .sub { font-size: var(--fs-xs); color: var(--ink-3); line-height: 1.5; }
  .tbl.mcard td.t-main a.nm, .tbl.mcard td.t-main .nm { min-height: 0; font-size: var(--fs-s); font-weight: var(--fw-b); line-height: 1.45; }

  /* ---------- 첫 화면: 지역 목록·최근 낙찰은 몇 개만 ---------- */
  .mapcard .mbars li:nth-child(n+7) { display: none; }
  .hw-recent .tbl tbody tr:nth-child(n+6) { display: none; }

  /* ---------- 바닥글: 짧게(로고+전화 한 줄, 약관 한 줄, 사업자 정보 접기) ---------- */
  footer.ft { padding: var(--s-5) 0 var(--s-6); }
  .ft-top { flex-direction: row; align-items: center; justify-content: space-between; gap: var(--s-3); padding-bottom: var(--s-3); }
  .ft-brand { flex: 1 1 auto; }
  .ft-brand p, .ft-cs1 > span, .ft-cs2 { display: none; }
  .ft-logo svg { height: 16px; }
  .ft-cs { justify-items: end; text-align: right; }
  .ft-tel { font-size: var(--fs-l); min-height: 40px; }
  .ft-bottom { gap: var(--s-1); padding-top: var(--s-2); }
  .ft-legal { gap: 0 var(--s-4); }
  .ft-legal a { min-height: 40px; font-size: var(--fs-xs); }
  .ft-co { display: grid; gap: 2px; padding-bottom: var(--s-2); }
  .ft-end { display: flex; flex-wrap: wrap; gap: 0 var(--s-3); margin-top: var(--s-1); font-size: var(--fs-xs); }
}
@media (min-width: 761px) and (max-width: 1024px) { .filters .search-field { border-bottom: 1px solid var(--line-2); } }
@media (max-width: 760px) {
  .ph-kpis { flex-wrap: nowrap; }
  .tbl.mcard td.rank { flex: 0 0 auto; width: auto; padding: 0; }
  .tbl.mcard td.t-main { flex: 1 1 0; }
  .listbar .lb-sc { display: none; }
  .listbar .lb-t .muted { font-size: var(--fs-xs) !important; }
  /* 첫 화면 '소규모 업체' 카드: 가로 한 줄(설명 · 숫자) */
  .opp { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); padding: var(--s-4); }
  .opp .k { font-size: var(--fs-s); }
  .opp .s { font-size: var(--fs-xs); }
  .opp .m, .opp .go { display: none; }
  .opp .v { flex: none; text-align: right; }
  .opp .v b { font-size: var(--fs-3xl); }
  .hotline { padding: var(--s-3) var(--s-4); }
}
/* 낙찰현황 조건(공종·금액): PC는 그대로 펼침, 휴대폰은 [조건 설정] 버튼 → 시트 */
.wfil .fdet > summary { display: none; }
@media (max-width: 760px) {
  .wfil { margin-top: var(--s-2); }
  .wfil .fdet > summary { display: inline-flex; }
  .wfil .qrow { display: block; padding: 0; border: 0; background: none; }
  .wfil .qg { display: block; }
  .wfil .qg-k { display: block; padding: var(--s-4) var(--s-5) var(--s-2); }
  .wfil .qg .opts { padding: 0 var(--s-5) var(--s-3); }
}
@media (min-width: 761px) and (max-width: 1024px) { .wfil .fdet > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 var(--s-4); margin-top: var(--s-3); border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); font-weight: var(--fw-b); cursor: pointer; } }
@media (max-width: 760px) {
  /* 수목매물 '인증 농원' 안내: 얇은 한 줄 띠 */
  .cards > .slot { display: flex; flex-direction: row; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); min-height: 0; }
  .cards > .slot .badge { display: none; }
  .cards > .slot b { flex: 1; font-size: var(--fs-xs); line-height: 1.5; }
  .cards > .slot b br { display: none; }
  .cards > .slot p { display: none; }
  .cards > .slot .btn { flex: none; min-height: 40px; }
  /* 매물 상세 출처·게시 이름표가 꺾이지 않게 */
  .lc-meta dt { white-space: nowrap; }
}
@media (max-width: 760px) {
  /* 카드 제목 칸이 줄어들며 옆 칸과 겹치지 않게(규격처럼 줄바꿈 없는 칸 포함) */
  .tbl.mcard td.t-main { flex: 1 1 auto; min-width: 45%; white-space: normal; }
  .tbl.mcard td.spec { white-space: normal; max-width: none; }
}
@media (max-width: 760px) {
  /* 검색 + 조건 설정 줄: 스크롤해도 메뉴 줄 아래에 붙어 있다 */
  .filters { position: sticky; top: 46px; z-index: 25; margin: 0 calc(-1 * var(--gutter)); padding: var(--s-2) var(--gutter); background: rgba(253, 253, 246, .97); }
  .achips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-top: var(--s-2); }
  .achips::-webkit-scrollbar { display: none; }
  .achip { flex: none; }
  /* 건수: 숫자를 크게 */
  .listbar .lb-t b, .listbar > span:first-child > b { font-size: var(--fs-s); color: var(--brand); }
  /* 맨 위로 */
  .totop:not([hidden]) { display: grid; place-items: center; position: fixed; right: 28px; bottom: calc(108px + env(safe-area-inset-bottom)); z-index: 40; width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink); box-shadow: 0 6px 18px rgba(0, 0, 0, .15); cursor: pointer; }
}
@media (max-width: 760px) { .filters:has(.fdet[open]), .wfil:has(.fdet[open]) { z-index: 95; position: relative; } .filters:has(.fdet[open]) { position: sticky; } }

/* =====================================================================
   모바일 5차 (2026-11-06 사용자 피드백)
   - 메뉴: 간격을 넓히고, 오른쪽 끝 [∨](전체 메뉴) + 흐림으로 '더 있음'을 보여 준다. 처음 몇 번은 살짝 밀었다 돌아온다.
   - 바닥글: 약 절반(로고·전화 / 약관·사업자 정보▾ / 출처·저작권)
   - 첫 화면: '최근 낙찰' 숨김, 마감 임박·최근 등록 공고는 4건
   ===================================================================== */
@media (max-width: 760px) {
  /* ---------- 메뉴 줄 ---------- */
  .gnb nav { padding: 0 52px 0 var(--s-1); -webkit-mask-image: none; mask-image: none; }
  .gnb nav a, .gnb nav a[data-tab="mine"] { padding: 0 18px; }
  .gnb nav a[aria-current="page"]::after { left: 18px; right: 18px; }
  .gnb-all { position: absolute; right: 0; bottom: 0; z-index: 2; display: grid; place-items: center; width: 52px; height: 46px; padding: 0; border: 0; background: #fff; color: var(--ink); cursor: pointer; }
  .gnb-all::before { content: ""; position: absolute; top: 0; bottom: 0; right: 100%; width: 40px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff 85%); pointer-events: none; }
  .gnb-all > span { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--line-strong); border-radius: var(--r-full); background: #fff; transition: transform .2s, border-color .2s; }
  .gnb-open .gnb-all > span { transform: rotate(180deg); border-color: var(--brand); color: var(--brand); }
  .gnb-all.hint > span { animation: gnbPulse 1.1s ease-out 2; }
  @keyframes gnbPulse { 0% { box-shadow: 0 0 0 0 rgba(4, 84, 70, .45); } 100% { box-shadow: 0 0 0 10px rgba(4, 84, 70, 0); } }
  /* 전체 메뉴 판: 메뉴 줄 바로 아래, 3칸 격자 */
  .gnb-panel:not([hidden]) { display: block; position: absolute; left: 0; right: 0; top: 100%; z-index: 3; max-height: calc(100vh - 110px); overflow-y: auto; padding: var(--s-4) var(--gutter) var(--s-2); background: var(--surface); border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line); box-shadow: 0 18px 36px rgba(20, 30, 25, .16); }
  .gp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-2); }
  .gp-i { display: grid; justify-items: center; gap: 6px; padding: var(--s-3) 2px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); text-decoration: none; }
  .gp-i b { font-size: var(--fs-s); font-weight: var(--fw-b); white-space: nowrap; }
  .gp-i[aria-current] { border-color: var(--brand); background: var(--brand-50); }
  .gp-i[aria-current] b { color: var(--brand); }
  .gp-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #fff; box-shadow: var(--tile-shadow); }
  .gp-sub { display: flex; justify-content: space-between; gap: var(--s-3); margin-top: var(--s-3); border-top: 1px solid var(--line-2); }
  .gp-sub a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--fs-xs); color: var(--ink-2); text-decoration: none; }
  body.gnb-open::after { content: ""; position: fixed; inset: 0; z-index: 29; background: rgba(20, 30, 25, .4); }

  /* ---------- 바닥글: 세 줄 ---------- */
  footer.ft { padding: var(--s-3) 0 calc(var(--s-5) + env(safe-area-inset-bottom)); }
  .ft-top { padding-bottom: 0; border-bottom: 0; }
  .ft-logo svg { height: 15px; }
  .ft-tel { font-size: var(--fs-s); min-height: 44px; }
  .ft-bottom { gap: 0; padding-top: 0; }
  .ft-legal { gap: 0 var(--s-4); align-items: center; }
  .ft-legal a { min-height: 44px; font-size: var(--fs-xs); }
  .ft-legal .ft-mkt { display: none; }
  .ft-biz-t { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 0; border: 0; background: none; font: inherit; font-size: var(--fs-xs); color: var(--ink-2); cursor: pointer; }
  .ft-biz-t::after { content: "▾"; }
  .ft.biz-open .ft-biz-t::after { content: "▴"; }
  .ft-co { display: none; }
  .ft.biz-open .ft-co { display: block; margin: 0 0 var(--s-2); line-height: 1.65; }
  .ft.biz-open .ft-co div, .ft.biz-open .ft-co dt, .ft.biz-open .ft-co dd { display: inline; }
  .ft.biz-open .ft-co dt { margin-right: 4px; }
  .ft.biz-open .ft-co div:not(:last-child)::after { content: " · "; color: var(--ink-3); }
  .ft-end { display: grid; gap: 0; margin-top: 0; line-height: 1.6; }

  /* ---------- 첫 화면 ---------- */
  .hw-recent { display: none; }
  .hw-side { border-top: 0; }
  .home-soon .nrows > li:nth-child(n+5), .home-new .recent > li:nth-child(n+5) { display: none; }
}
@media (max-width: 340px) {
  .gnb nav a, .gnb nav a[data-tab="mine"] { padding: 0 14px; }
  .gnb nav a[aria-current="page"]::after { left: 14px; right: 14px; }
  .ft-legal { gap: 0 var(--s-3); }
}
/* 5차: 공고 카드 3줄(마감일·태그·금액 / 제목 / 기관) — 태그가 넘치면 한 줄에 들어가는 것만 */
@media (max-width: 760px) {
  .nrow, .nrows.compact .nrow { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "d tags amt" "t t t" "s s s" "date date date"; gap: 6px var(--s-2); padding: var(--s-3) var(--s-4); align-items: center; }
  .nr-main { display: contents; }
  .nr-tags { grid-area: tags; flex-wrap: wrap; gap: 4px; max-height: 28px; overflow: hidden; min-width: 0; }
  .nr-t, .nrows.compact .nr-t { grid-area: t; font-size: var(--fs-s); line-height: 1.45; }
  .nr-s { grid-area: s; }
  .nr-amt { align-self: center; }
  .nr-amt b, .nrows.compact .nr-amt b { font-size: var(--fs-s); line-height: 1.4; }
  .ft.biz-open .ft-co div:not(:last-child) dd { white-space: nowrap; }
}
@media (max-width: 760px) {
  /* 투찰 마감·개찰 줄: 묶음 단위로만 줄바꿈 */
  .nr-date { flex-wrap: wrap; gap: 0 var(--s-2); line-height: 1.5; }
  .nr-date small, .nr-date b { white-space: nowrap; line-height: 1.5; }
  /* 건수 줄: '/ 전체 N건'이 따로 떨어지지 않게 */
  .listbar .lb-t .muted { white-space: nowrap; }
}
@media (max-width: 340px) { .listbar .lb-all { display: none; } }   /* 좁은 휴대폰: '진행 중 N건'만 */

/* =====================================================================
   모바일 6차: 낙찰 카드 4줄 · 낙찰현황 검색 고정 · 순위 5위 · 분포 접기 · 공고 상세 입찰 정보 접기
   ===================================================================== */
@media (max-width: 760px) {
  /* 낙찰 카드: [개찰일 ……… 낙찰금액] / 공고명(2줄) / 기관·지역·공종(1줄) / 낙찰 업체 · 낙찰률 · 참여 */
  .tbl.mcard tr.wr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "d a" "t t" "c c"; gap: 4px var(--s-3); align-items: baseline; }
  .tbl.mcard tr.wr td.w-d { grid-area: d; }
  .tbl.mcard tr.wr td.w-a { grid-area: a; text-align: right; font-size: var(--fs-s); font-weight: var(--fw-num); color: var(--ink); white-space: nowrap; }
  .tbl.mcard tr.wr td.w-a::before { font-size: var(--fs-xs); font-weight: var(--fw-r); }
  .tbl.mcard tr.wr td.w-t { grid-area: t; }
  .tbl.mcard tr.wr td.w-t .nm { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .tbl.mcard tr.wr td.w-t .sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tbl.mcard tr.wr td.w-c { grid-area: c; line-height: 1.55; }
  .tbl.mcard tr.wr td.w-c a.corp { display: inline; min-height: 0; padding: 8px 0; font-weight: var(--fw-b); color: var(--brand); }
  .tbl.mcard tr.wr td.w-c .sub { display: inline; margin: 0; }
  .tbl.mcard tr.wr .w-wa { display: none; }
  .tbl.mcard td.only-m { display: block; }

  /* 낙찰현황: 검색칸 + [조건 설정] 한 줄, 목록 위에 붙어 있게 */
  .wfil { position: sticky; top: 46px; z-index: 25; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-2); align-items: start; margin: var(--s-2) calc(-1 * var(--gutter)) 0; padding: var(--s-2) var(--gutter); background: rgba(253, 253, 246, .97); }
  .wq { display: flex; align-items: center; gap: var(--s-2); height: 48px; padding: 0 var(--s-3); border: 1px solid var(--line-strong); border-radius: var(--r-s); background: var(--surface); color: var(--ink-3); }
  .wq .input { flex: 1; min-width: 0; height: 46px; padding: 0; border: 0; background: none; box-shadow: none; }
  .wq .input:focus { outline: none; }
  .wq:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-50); }
  .wfil .fdet > summary { margin: 0; }
  .mini-q { display: none; }
  #wlist { scroll-margin-top: 112px; }
  /* 업체 순위: 5위까지 · 이름 옆에 건수 */
  .rankp:not(.all) .tbl tbody tr:nth-child(n+6) { display: none; }
  .rankp .tbl.mcard td.t-main { flex: 1 1 0; min-width: 0; }
  .rankp .tbl.mcard td.n { margin-left: auto; text-align: right; }
  .btn.m-more { display: flex; justify-content: center; gap: 6px; width: auto; align-self: stretch; justify-self: stretch; margin: 0 var(--s-4) var(--s-4); min-height: 48px; }
  /* 분포 3개 접기 */
  .m-fold { margin-top: var(--s-4); }
  .m-fold > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 var(--s-4); border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); font-size: var(--fs-s); font-weight: var(--fw-b); color: var(--ink-2); cursor: pointer; list-style: none; }
  .m-fold > summary::-webkit-details-marker { display: none; }
  .m-fold > summary::after { content: "▾"; color: var(--ink-3); }
  .m-fold[open] > summary::after { content: "▴"; }
  .m-fold > .cols { margin-top: var(--s-3) !important; }

  /* 공고 상세: 입찰 정보는 금액만 먼저 */
  .bip:not(.all) .bi-col:first-child .bi-g + .bi-g, .bip:not(.all) .bi-col + .bi-col { display: none; }
  .bip.all .m-more { display: none; }
  .bi-g { padding: var(--s-4); }
  .bi-g h4 { margin-bottom: var(--s-3); }
  .bi-r { grid-template-columns: 96px minmax(0, 1fr); gap: var(--s-3); }
  .bi-r + .bi-r { margin-top: var(--s-3); }
  /* 이 발주기관의 최근 낙찰: 3건 */
  .m3 .tbl tbody tr:nth-child(n+4) { display: none; }
}
@media (max-width: 760px) {
  .wrap.sec.wbody { margin-top: 0; }
  .wbody > .wfil { margin-top: 0; margin-bottom: var(--s-3); }
  .wbody > .achips { margin: 0 0 var(--s-3); }
  /* 순위 카드: '낙찰 N건'은 오른쪽 위, 설명 줄은 카드 폭 전체 */
  .rankp .tbl.mcard tr { position: relative; }
  .rankp .tbl.mcard td.n { position: absolute; top: calc(var(--s-3) + 6px); right: var(--s-4); }
  .rankp .tbl.mcard td.t-main .nm { padding-right: 72px; }
}
/* 수목 상세 규격 표: 휴대폰도 한 줄 표(순위·규격·설계 수량·반영 공고), 10개까지 + 모두 보기(고른 규격은 늘 보임) */
@media (max-width: 760px) {
  .spec-pick { width: 100%; }
  .spec-pick th, .spec-pick td { padding: 10px 6px !important; font-size: var(--fs-xs); white-space: nowrap; }
  .spec-pick th:first-child, .spec-pick td:first-child { width: 40px; padding-left: var(--s-4) !important; text-align: center; }
  .spec-pick th:last-child, .spec-pick td:last-child { padding-right: var(--s-4) !important; }
  .spec-pick td.spec { white-space: normal; }
  .spec-pick .sp-a { display: inline; min-height: 0; font-size: var(--fs-s); }
  .spec-pick td .rank b, .spec-pick td.rank b { width: 26px; height: 26px; font-size: var(--fs-xs); }
  .specp:not(.all) .spec-pick tbody tr:nth-child(n+11):not(.on) { display: none; }
}
/* 수목수요 목록: [순위] 수종 ……… 설계 수량 / 지역 ……… 보유 농원 (2줄) */
@media (max-width: 760px) {
  .tbl.mcard.ttbl tr { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; grid-template-areas: "r m q" "r m f"; gap: 2px var(--s-3); align-items: center; }
  .tbl.mcard.ttbl td.rank { grid-area: r; }
  .tbl.mcard.ttbl td.t-main { grid-area: m; }
  .tbl.mcard.ttbl td:nth-child(4) { grid-area: q; justify-self: end; text-align: right; }
  .tbl.mcard.ttbl td:nth-child(6) { grid-area: f; justify-self: end; text-align: right; }
  .tbl.mcard.ttbl td .have.pill { min-height: 32px; padding: 0 var(--s-3); }
}
/* 맞춤관리(로그인): 숫자 상자 4개가 곧 탭 — 작게 2×2, 아래 탭 줄은 숨김. 공고 카드는 [태그 … ★↗] / 제목 / 기관 / 금액 · 마감, 10건 + 더 보기 */
@media (max-width: 760px) {
  .msums { gap: var(--s-2); margin-top: var(--s-4); }
  .msum { gap: 0; padding: var(--s-2) var(--s-3); }
  .msum small { font-size: var(--fs-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .msum b { font-size: var(--fs-2xl); }
  .md-tabs { display: none; }
  .md-bar { justify-content: flex-end; border-bottom: 0; margin-top: var(--s-2); }
  .mrow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "tags tags act" "t t t" "s s s" "why why why" "b sm sm"; gap: 4px var(--s-2); align-items: center; padding: var(--s-3) var(--s-1); }
  .mr-main, .mr-side { display: contents; }
  .mr-tags { grid-area: tags; }
  .mr-t { grid-area: t; font-size: var(--fs-s); line-height: 1.45; }
  .mr-s { grid-area: s; }
  .mr-why { grid-area: why; }
  .mr-side > b { grid-area: b; font-size: var(--fs-s); }
  .mr-side > small { grid-area: sm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mr-act { grid-area: act; margin: 0; }
  .mrows:not(.all) > li:nth-child(n+11) { display: none; }
}
/* 입찰분석 도넛: 휴대폰은 그래프(작게) 옆에 범례 */
@media (max-width: 760px) {
  .donut, .c-3 .donut, .c-8-4 > :last-child .donut { grid-template-columns: 112px minmax(0, 1fr); justify-items: stretch; gap: var(--s-3); }
  .donut svg { width: 112px; height: 112px; }
  .donut .legend-list { width: auto; }
}
@media (max-width: 760px) {
  /* 도넛 범례: [■ 수의계약] / [753건 · 80%] 두 줄 — 이름이 글자 단위로 끊기지 않게 */
  .donut .legend-list { gap: var(--s-2); }
  .donut .legend-list li { grid-template-columns: 12px auto minmax(0, 1fr); grid-template-areas: "i s s" ". b e"; gap: 0 var(--s-2); min-height: 0; }
  .donut .legend-list i { grid-area: i; }
  .donut .legend-list span { grid-area: s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .donut .legend-list b { grid-area: b; }
  .donut .legend-list em { grid-area: e; text-align: left; }
  /* 규격 표: 한 줄 44px */
  .tbl.spec-pick a.sp-a { display: inline; min-height: 0; }
  .tbl.spec-pick td.rank b { width: 26px; height: 26px; min-width: 0; font-size: var(--fs-xs); }
}
/* 맞춤관리(로그인 전): 숫자 3개는 한 줄, 휴대폰 예시 그림은 낮게 */
@media (max-width: 760px) {
  .mg-stats .wrap { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding-block: var(--s-4); }
  .mg-stat { padding: 0 var(--s-1); text-align: center; }
  .mg-stat + .mg-stat { border-top: 0; padding-top: 0; border-left: 1px solid var(--line); }
  .mg-stat b { font-size: var(--fs-2xl); }
  .mg-stat span { font-size: var(--fs-xs); line-height: 1.45; word-break: keep-all; }
  .mg-src { margin-top: var(--s-3); }
  .mg-phone, .mg-visual { max-height: 340px; -webkit-mask-image: linear-gradient(180deg, #000 80%, transparent); mask-image: linear-gradient(180deg, #000 80%, transparent); }
}
/* 매물 등록 유도 카드: 휴대폰은 한 줄 전체 — [아이콘] 제목/설명, 아래 가운데 버튼 */
@media (max-width: 760px) {
  .cards > .pro-slot, .pro-slot { grid-column: 1 / -1; display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "ic b" "ic p" "cta cta"; align-items: center; gap: 2px var(--s-3); min-height: 0; padding: var(--s-4); text-align: left; }
  .pro-slot .badge { display: none; }
  .ps-ic { grid-area: ic; width: 56px; height: 56px; margin: 0; }
  .ps-ic svg.cc { width: 30px; height: 30px; }
  .ps-plus { width: 24px; height: 24px; right: -4px; bottom: -4px; border-width: 2px; }
  .ps-plus svg { width: 14px; height: 14px; }
  .pro-slot b { grid-area: b; align-self: end; font-size: var(--fs-s); text-wrap: pretty; }
  .pro-slot p { grid-area: p; align-self: start; text-wrap: pretty; }
  .ps-cta { grid-area: cta; margin-top: var(--s-3); min-height: 48px; }
}
/* 입찰분석 개편 — 휴대폰 */
@media (max-width: 760px) {
  .lens { padding: var(--s-3); }
  .lens-h { margin-bottom: var(--s-2); }
  .lens-tabs { gap: var(--s-2); }
  .lens-t { min-height: 72px; padding: var(--s-2); justify-items: center; text-align: center; }
  .lens-t b { font-size: var(--fs-s); word-break: keep-all; }
  .lens-near { margin-top: var(--s-2); }
  .lens-near small { display: none; }
  .st-brief { gap: var(--s-4); margin-top: var(--s-4); }
  .brief { padding: var(--s-4); }
  .brief-h h2 { font-size: var(--fs-l); }
  .brief-l li { grid-template-columns: 36px minmax(0, 1fr); gap: var(--s-2) var(--s-3); padding: var(--s-3) 0; }
  .bf-ic { width: 36px; height: 36px; border-radius: 10px; }
  .bf-ic svg { width: 20px; height: 20px; }
  .brief-l p { font-size: var(--fs-xs); line-height: 1.65; }
  .bf-go { display: none; }
  .cmpx-t th, .cmpx-t td { padding: 10px 6px !important; font-size: var(--fs-xs); }
  .cmpx-t th:first-child { padding-left: var(--s-4) !important; white-space: normal; }
  .cmpx-t th:last-child, .cmpx-t td:last-child { padding-right: var(--s-4) !important; }
  .cmpx-t th[scope="row"] small, .cmpx-t thead small { display: none; }
  .cmpx-t td { white-space: nowrap; }
  .empty-cmp { padding: var(--s-4); }
  .empty-cmp b { font-size: var(--fs-s); }
  .ch-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: var(--s-5) calc(-1 * var(--gutter)) 0; padding: var(--s-2) var(--gutter); border: 0; border-radius: 0; background: none; }
  .ch-nav::-webkit-scrollbar { display: none; }
  .ch-nav button { flex: none; }
  .st-ch, .ch-h { scroll-margin-top: 110px; }
  .ch-h { gap: var(--s-3); margin-bottom: var(--s-3); flex-wrap: wrap; }
  .ch-no { width: 32px; height: 32px; font-size: var(--fs-s); }
  .ch-t h2 { font-size: var(--fs-xl); }
  .ch-t p { font-size: var(--fs-xs); line-height: 1.65; }
  .ch-h > .link { margin-left: 44px; align-self: auto; }
  .tyx th, .tyx td { padding: 10px 6px !important; font-size: var(--fs-xs); }
  .tyx th:first-child { padding-left: var(--s-4) !important; white-space: normal; }
  .tyx th:last-child, .tyx td:last-child { padding-right: var(--s-4) !important; }
  .tyx th:nth-child(4), .tyx td:nth-child(4) { display: none; }   /* 수의계약 칸은 휴대폰에서 생략(장 머리 문장에 있음) */
  .okp-b { padding: var(--s-4); }
  .okp-big b { font-size: var(--fs-2xl); }
  .nbx th, .nbx td { padding: 10px 6px !important; font-size: var(--fs-xs); }
  .nbx th:first-child { padding-left: var(--s-4) !important; }
  .nbx th:last-child, .nbx td:last-child { padding-right: var(--s-4) !important; }
  .nbx th a { display: inline; min-height: 0; }
  .wtop { padding: var(--s-1) var(--s-4); }
  .st-fold > summary { display: flex; }
  .st-next h2 { font-size: var(--fs-l); }
  .nx-grid { gap: var(--s-2); }
  .nx-grid a { padding: var(--s-3); }
  .nx-grid span { width: 40px; height: 40px; }
  .nx-grid span svg { width: 24px; height: 24px; }
}
@media (max-width: 760px) {
  .st-ch:not(.all) .m-sub { display: none; }
  .st-ch:not(.all) .rank-bars li:nth-child(n+6), .st-ch:not(.all) .st-geo .mbars li:nth-child(n+7) { display: none; }
  .st-ch .st-month, .st-ch .okp { order: -1; }
  .btn.m-more.st-more { margin: var(--s-3) 0 0; }
}
@media (max-width: 760px) {
  /* 지역 탭: 작은 설명은 숨기고 이름 · 건수만 */
  .lens-t { min-height: 60px; gap: 0; }
  .lens-t small { display: none; }
  /* 지역 비교표: [항목 이름] 윗줄, 그 아래 지역별 값 나란히 */
  .cmpx-t, .cmpx-t thead, .cmpx-t tbody { display: block; width: 100%; }
  .cmpx-t tr { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
  .cmpx-t thead th:first-child { display: none; }
  .cmpx-t thead th.n { padding: 10px 4px !important; text-align: center; font-size: var(--fs-xs); white-space: normal; }
  .cmpx-t tbody th[scope="row"] { grid-column: 1 / -1; padding: 10px var(--s-4) 0 !important; border-bottom: 0; font-size: var(--fs-xs); color: var(--ink-3); background: none; }
  .cmpx-t tbody td.n { padding: 2px 4px 10px !important; text-align: center; font-size: var(--fs-s); }
  .cmpx-t tbody td.n:last-child { padding-right: 4px !important; }
}
@media (max-width: 760px) {
  .cmpx-t tr.m-x, .brief-l li.m-x { display: none; }
  /* 분석 화면 막대 목록: 줄 간격을 좁게 */
  .st-ch .mbars { padding: var(--s-1) 0; }
  .st-ch .mbars li > a, .st-ch .mbars li:not(:has(a)) { min-height: 36px; padding-top: 2px; padding-bottom: 2px; }
  .st-ch .mbars .k { font-size: var(--fs-xs); }
  .st-ch:not(.all) .nbx tbody tr:nth-child(n+6) { display: none; }
  .okp-b { gap: var(--s-2); }
  .okp-l li { padding: 6px 0; }
  .wtop li { padding: 6px 0; }
}
@media (max-width: 760px) { .lens-t .lt-x { display: none; } }

/* =====================================================================
   매물 등록 · 수정 · 내 매물 관리 (2026-11-06, listing.js)
   ===================================================================== */
.rg-wrap { max-width: 820px; }
.rg { display: grid; gap: var(--s-4); padding-bottom: 104px; }
.rg-restore { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-4); padding: var(--s-3) var(--s-4); border-radius: var(--r-s); background: var(--brand-50); color: var(--brand); font-size: var(--fs-xs); font-weight: var(--fw-b); }
.rg-restore .tlink { margin-left: auto; }
.rg-s { padding: var(--s-5) var(--s-6) var(--s-4); border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); scroll-margin-top: 120px; transition: border-color .15s; }
.rg-s.bad { border-color: var(--danger, #c0392b); box-shadow: 0 0 0 3px rgba(192, 57, 43, .08); }
.rg-h { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-4); }
.rg-h h2 { margin: 0; font-size: var(--fs-l); }
.rg-no { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--brand); color: #fff; font-size: var(--fs-xs); font-weight: var(--fw-num); }
.rg-h em { font-style: normal; font-size: var(--fs-xs); font-weight: var(--fw-b); padding: 2px var(--s-2); border-radius: var(--r-xs); }
.rg-h em.req { color: #b4332a; background: #fdecea; }
.rg-h em.opt { color: var(--ink-3); background: var(--surface-2); }
.rg-h small { flex-basis: 100%; margin-left: 36px; font-size: var(--fs-xs); color: var(--ink-3); }
.rg-err { margin: var(--s-2) 0 0; min-height: 0; font-size: var(--fs-xs); font-weight: var(--fw-b); color: #b4332a; }
.rg-err:empty { display: none; }

/* 1. 구분 */
.rg-cat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); }
.rg-c { position: relative; display: grid; justify-items: center; gap: 2px; padding: var(--s-5) var(--s-3); border: 2px solid var(--line); border-radius: var(--r); background: var(--surface); color: var(--ink); font: inherit; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.rg-c:hover { border-color: var(--brand); }
.rg-ci { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: var(--s-2); border-radius: 16px; background: #fff; box-shadow: var(--tile-shadow); }
.rg-c b { font-size: var(--fs-xl); }
.rg-c small { font-size: var(--fs-xs); color: var(--ink-2); }
.rg-c small.ex { color: var(--ink-3); }
.rg-ck { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--line); color: transparent; }
.rg-c.on { border-color: var(--brand); background: var(--brand-50); }
.rg-c.on .rg-ck { border-color: var(--brand); background: var(--brand); color: #fff; }

/* 2. 사진 */
.rg-ph { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s-2); }
.rg-t, .rg-add, .rg-busy { position: relative; aspect-ratio: 1; border-radius: var(--r-s); overflow: hidden; }
.rg-t img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rg-rep { position: absolute; left: 6px; top: 6px; padding: 2px 8px; border-radius: var(--r-full); background: var(--brand); color: #fff; font-size: var(--fs-xs); font-weight: var(--fw-b); }
.rg-mk { position: absolute; left: 6px; bottom: 6px; min-height: 28px; padding: 0 8px; border: 0; border-radius: var(--r-full); background: rgba(0, 0, 0, .55); color: #fff; font: inherit; font-size: var(--fs-xs); cursor: pointer; }
.rg-x { position: absolute; right: 4px; top: 4px; display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .6); color: #fff; cursor: pointer; }
.rg-add { display: grid; place-content: center; justify-items: center; gap: 2px; border: 2px dashed var(--line-strong); background: var(--surface-2); color: var(--ink-2); font: inherit; cursor: pointer; }
.rg-add:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-50); }
.rg-add b { font-size: var(--fs-s); }
.rg-add small { font-size: var(--fs-xs); color: var(--ink-3); }
.rg-busy { display: grid; place-content: center; justify-items: center; gap: 4px; background: var(--brand-50); color: var(--brand); font-size: var(--fs-xs); text-align: center; padding: var(--s-2); }

/* 3·5. 제목·내용 */
.rg-in { position: relative; }
.rg-in .af-i { padding-right: 72px; }
.rg-cnt { position: absolute; right: 14px; bottom: 16px; font-size: var(--fs-xs); color: var(--ink-3); pointer-events: none; }
.rg-ta { height: auto; min-height: 150px; padding: var(--s-3) var(--s-4) 32px; line-height: 1.6; resize: vertical; }
.rg-in .rg-ta { padding-right: var(--s-4); }

/* 4. 보유 수목 */
.rg-ih, .rg-it { display: grid; grid-template-columns: 28px minmax(0, 1.3fr) minmax(0, 1.2fr) minmax(0, .8fr) 56px; gap: var(--s-2); align-items: center; }
.rg-ih { margin-bottom: var(--s-1); font-size: var(--fs-xs); font-weight: var(--fw-b); color: var(--ink-3); }
.rg-it + .rg-it { margin-top: var(--s-2); }
.rg-in-no { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--surface-2); font-size: var(--fs-xs); font-weight: var(--fw-b); color: var(--ink-2); }
.rg-f { display: grid; gap: 4px; min-width: 0; }
.rg-f > span:first-child { font-size: var(--fs-xs); font-weight: var(--fw-b); color: var(--ink-2); }
.rg-it .rg-f > span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.rg-it .af-i, .rg-sel .af-i { height: 52px; padding: 0 var(--s-3); font-size: var(--fs-s); }
.rg-u { position: relative; display: block; }
.rg-u .af-i { padding-right: 36px; text-align: right; }
.rg-u em { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: var(--fs-s); color: var(--ink-3); }
.rg-minus { display: grid; place-items: center; height: 52px; border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface); color: var(--ink-2); font: inherit; cursor: pointer; }
.rg-minus span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.rg-minus:hover:not(:disabled) { border-color: #b4332a; color: #b4332a; }
.rg-minus:disabled { opacity: .35; cursor: default; }
.rg-plus { display: flex; align-items: center; justify-content: center; gap: var(--s-2); width: 100%; min-height: 52px; margin-top: var(--s-3); border: 2px dashed var(--brand); border-radius: var(--r-s); background: var(--brand-50); color: var(--brand); font: inherit; font-size: var(--fs-s); font-weight: var(--fw-b); cursor: pointer; }
.rg-plus span { font-size: var(--fs-xl); line-height: 1; }
.rg-plus:hover { background: #e2f5dc; }
.rg-max { margin: var(--s-3) 0 0; font-size: var(--fs-xs); color: var(--ink-3); }

/* 판매자 정보 */
.rg-seller { background: var(--surface-2); }
.rg-seller .rg-no { background: var(--ink-2); }
.rg-sel { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1fr); gap: var(--s-3); }
.rg-help { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--s-2); margin: 0; font-size: var(--fs-xs); color: var(--ink-3); }
.rg-help a { color: var(--brand); font-weight: var(--fw-b); }

/* 아래 고정 버튼 */
.rg-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; padding: var(--s-3) var(--gutter) calc(var(--s-3) + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(20, 30, 25, .08); }
.rg-bar-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--s-3); max-width: 820px; margin: 0 auto; }
.rg-bar .btn { min-height: 56px; font-size: var(--fs-l); }
body:has(.rg-bar) .totop { display: none !important; }
body:has(.rg-bar) footer.ft { padding-bottom: 110px; }

/* 목록 카드: 회원 매물 */
.lst .ph { position: relative; }
.ph-tag { position: absolute; left: 10px; top: 10px; padding: 2px 10px; border-radius: var(--r-full); background: rgba(255, 255, 255, .92); color: var(--brand); font-size: var(--fs-xs); font-weight: var(--fw-b); }
.lst-u { border-color: rgba(150, 98, 10, .35); }
.lst .farm .badge { vertical-align: 1px; }

/* 상세: 내 매물 막대 */
.own-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-5); padding: var(--s-3) var(--s-4); border: 1px solid var(--brand); border-radius: var(--r); background: var(--brand-50); }
.own-bar > span:first-child { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); }
.own-bar b { color: var(--brand); }
.own-bar small { font-size: var(--fs-xs); color: var(--ink-3); }
.own-a { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.ml-del { color: #b4332a; }
.ml-del:hover { border-color: #b4332a; background: #fdecea; }

/* 내 매물 관리 */
.ml { list-style: none; margin: 0; padding: 0; }
.ml li { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: var(--s-4); align-items: center; padding: var(--s-4) var(--s-5); border-top: 1px solid var(--line-2); }
.ml-ph { display: block; width: 88px; height: 88px; border-radius: var(--r-s); background: var(--surface-2) center / cover no-repeat; }
.ml-t { display: flex; align-items: center; gap: var(--s-2); min-width: 0; }
.ml-t a { font-size: var(--fs-s); font-weight: var(--fw-b); color: var(--ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ml-t a:hover { color: var(--brand); text-decoration: underline; }
.ml-b p { margin: 4px 0 2px; font-size: var(--fs-xs); color: var(--ink-2); }
.ml-b small { font-size: var(--fs-xs); color: var(--ink-3); }
.ml-a { display: flex; gap: var(--s-2); }
.ml-n { font-style: normal; color: var(--brand); }
.ml-empty { display: grid; justify-items: center; gap: var(--s-2); padding: var(--s-8, 48px) var(--s-5); text-align: center; }
.ml-empty b { font-size: var(--fs-l); }
.ml-empty p { margin: 0 0 var(--s-3); font-size: var(--fs-xs); color: var(--ink-2); }
.ml-empty .btn { gap: var(--s-2); }

@media (max-width: 760px) {
  .rg { gap: var(--s-3); padding-bottom: 96px; }
  .rg-s { padding: var(--s-4); }
  .rg-h small { margin-left: 0; }
  .rg-c { padding: var(--s-4) var(--s-2); }
  .rg-ci { width: 52px; height: 52px; }
  .rg-c b { font-size: var(--fs-l); }
  .rg-c small.ex { display: none; }
  .rg-ph { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rg-ih { display: none; }
  /* 수목 한 줄: [번호] 수종 (빼기) / 규격 · 재고 */
  .rg-it { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 52px; grid-template-areas: "sp sp mn" "spc qty qty"; gap: var(--s-2); padding: var(--s-3); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface-2); }
  .rg-it .rg-in-no { display: none; }
  .rg-it .rg-f.sp { grid-area: sp; } .rg-it .rg-f.spc { grid-area: spc; } .rg-it .rg-f.qty { grid-area: qty; } .rg-it .rg-minus { grid-area: mn; align-self: end; }
  .rg-it .rg-f > span:first-child { position: static; width: auto; height: auto; clip: auto; }
  .rg-sel { grid-template-columns: minmax(0, 1fr); }
  .rg-bar .btn { min-height: 52px; font-size: var(--fs-s); }
  .ml li { grid-template-columns: 72px minmax(0, 1fr); gap: var(--s-2) var(--s-3); padding: var(--s-3) var(--s-4); }
  .ml-ph { width: 72px; height: 72px; }
  .ml-a { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ml-a .btn { min-height: 44px; }
  .own-bar { margin-top: var(--s-3); }
  .own-a { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* 매물 등록 보완: 빼기는 '−' 기호, 안내 메시지는 아래 고정 버튼 위로, 구분 배지 */
.rg-minus span { position: static; width: auto; height: auto; clip: auto; font-size: 28px; font-weight: var(--fw-m); line-height: 1; }
body:has(.rg-bar) .toast { bottom: calc(96px + env(safe-area-inset-bottom)); }
.cat-b { flex: none; display: inline-flex; align-items: center; min-height: 24px; padding: 0 var(--s-2); border-radius: var(--r-xs); background: var(--brand-50); color: var(--brand); font-size: var(--fs-xs); font-weight: var(--fw-b); }
.cat-b.s { background: #fdf5e4; color: var(--gold); }

/* 휴대폰 검수 2차 (2026-11-09) */
@media (max-width: 760px) {
  .ch-h > .link { margin-left: 44px; flex-basis: calc(100% - 44px); max-width: calc(100% - 44px); }                      /* 장 머리 링크는 본문 아래 줄로 */
  .ch-t { flex-basis: calc(100% - 44px); }
  .ch-nav { flex-wrap: wrap; overflow: visible; }                             /* 입찰분석 바로가기 칩: 잘리지 않게 줄바꿈 */
  .gnb nav { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }   /* 메뉴 줄 오른쪽이 더 있다는 표시 */
  body:has(.pro-sticky) .ft { padding-bottom: 96px; }                         /* 요금 화면 고정 버튼이 바닥글을 가리지 않게 */
  .src-kv dd { word-break: break-all; }
}

/* 카카오톡 상담 단추: 휴대폰에서는 조금 작게, '맨 위로' 단추는 그 위에 */
@media (max-width: 760px) {
  .kk-float { right: 16px; bottom: calc(20px + env(safe-area-inset-bottom)); width: 72px; height: 72px; }
  .kk-float span { font-size: 13px; }
  body:has(.mg-sticky.show) .kk-float, body:has(.rg-bar) .kk-float { bottom: calc(96px + env(safe-area-inset-bottom)); }
  body:has(.mg-sticky.show) .totop, body:has(.rg-bar) .totop { bottom: calc(180px + env(safe-area-inset-bottom)); }
}

/* 2026-11-10 점검: 휴대폰 첫 화면 길이 줄이기·누르는 곳 키우기 */
@media (max-width: 760px) {
  .tb-list li:nth-child(n+4) { display: none; }            /* 나무 순위는 교목·관목 3위까지(전체는 '자세히 보기') */
  .sx-grid .sx:nth-child(n+5) { display: none; }           /* 소개 카드 4장 */
  .hw-side h3:nth-of-type(2), .hw-side .hbars { display: none; }   /* 낙찰 요약: 숫자와 순위만 */
  .home-cards > :nth-child(n+5) { display: none; }         /* 매물 3건 */
  .btn.sm, .chip, .period .seg button, .seg-tabs a, .seg a { min-height: 44px; }
  .um-bal { font-size: 12px; }
  .kk-float span { font-size: 14px; }
  .home-me { margin-bottom: var(--s-4); }
}
