/* ============================================================
   공간잇다 — 공간 대관 마켓플레이스 · 디자인 시스템 v3 (미드나잇 다크 프리미엄)
   딥 차콜 베이스 · 에메랄드 네온 액센트 · 글래스 카드 · 세리프 디스플레이
   ============================================================ */
:root {
  --bg: #f7f8fa;
  --surface: #ffffff;
  --surface-2: #f1f3f7;
  --ink: #0f172a;
  --ink-2: #334155;
  --muted: #64748b;
  --faint: #94a3b8;
  --line: #e6e9ef;
  --line-2: #eef1f5;
  --accent: #4f46e5;
  --accent-2: #6366f1;
  --accent-soft: #eef2ff;
  --dark: #0f1729;
  --gold: #d9a441;
  --ok: #059669;
  --warn: #d97706;
  --info: #2563eb;
  --radius: 18px;
  --radius-sm: 14px;
  --shadow-sm: 0 4px 16px -8px rgba(15, 23, 42, 0.12);
  --shadow: 0 16px 40px -18px rgba(15, 23, 42, 0.18);
  --shadow-lg: 0 30px 70px -28px rgba(15, 23, 42, 0.28);
  --glow: 0 0 0 1px rgba(79, 70, 229, 0.18), 0 10px 30px -10px rgba(79, 70, 229, 0.45);
  --header-h: 70px;
  --serif: "Pretendard", -apple-system, BlinkMacSystemFont, sans-serif;
  color-scheme: light;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
img, svg, video, canvas, iframe { max-width: 100%; }
html { scroll-behavior: smooth; overflow-x: clip; max-width: 100%; }
body {
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -0.005em;
  overflow-x: clip;
  max-width: 100%;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
img { max-width: 100%; display: block; }
input, select { font-family: inherit; }
em { font-style: normal; }
::selection { background: var(--accent); color: #fff; }
::placeholder { color: var(--faint); opacity: 1; }

/* ================= 버튼 ================= */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 22px; border-radius: 12px; font-size: 0.92rem; font-weight: 700; transition: all 0.2s ease; white-space: nowrap; }
.btn--primary { background: var(--ink); color: #fff; }
.btn--primary:hover { background: #000; transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.btn--light { background: #fff; color: var(--ink); }
.btn--light:hover { transform: translateY(-1px); box-shadow: var(--shadow); }
.btn--accent { background: var(--accent); color: #fff; }
.btn--accent:hover { background: #4338ca; transform: translateY(-1px); box-shadow: var(--glow); }
.btn--outline { border: 1.5px solid var(--line); color: var(--ink); }
.btn--outline:hover { border-color: var(--ink); }
.btn--sm { padding: 9px 16px; font-size: 0.85rem; }
.btn--lg { padding: 15px 30px; font-size: 1rem; }
.btn--block { width: 100%; }

/* ================= 헤더 ================= */
.header { position: sticky; top: 0; z-index: 100; background: rgba(247, 248, 250, 0.72); backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid transparent; transition: border-color 0.2s, background 0.2s; }
.header.is-scrolled { background: rgba(247, 248, 250, 0.9); border-bottom-color: var(--line); }
.header__inner { max-width: 1220px; margin: 0 auto; height: var(--header-h); padding: 0 32px; display: flex; align-items: center; gap: 22px; }
.logo { display: flex; align-items: center; gap: 9px; font-size: 1.34rem; font-weight: 700; letter-spacing: 0; font-family: var(--serif); flex-shrink: 0; white-space: nowrap; }
.logo__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.header__nav { display: flex; align-items: center; gap: 20px; margin-left: auto; }
.header__link { font-size: 0.9rem; font-weight: 600; color: var(--ink-2); transition: color 0.15s; white-space: nowrap; }
/* 사업자 등록 내비: 기본 숨김 → auth.js가 비로그인/호스트/파트너에게만 표시 (새로고침 깜빡임 방지) */
.js-host-nav { display: none; }
.header__link:hover { color: var(--accent); }
.header__sep { width: 1px; height: 18px; background: var(--line); }
.hmenu { display: none; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 42px; height: 40px; margin-left: auto; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.hmenu span { width: 18px; height: 2px; background: var(--ink); border-radius: 2px; transition: 0.2s; }
.hmenu.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.hmenu.is-open span:nth-child(2) { opacity: 0; }
.hmenu.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
/* 메뉴가 한 줄에 안 들어가는 중간 너비(≤1024)에서는 햄버거로 접기 */
@media (max-width: 1024px) {
  .header__nav { display: none; }
  .hmenu { display: flex; }
  .header__nav.is-open { display: flex; position: absolute; top: 100%; right: 12px; left: 12px; flex-direction: column; align-items: stretch; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 10px; margin-top: 6px; margin-left: 0; }
  .header__nav.is-open .header__link, .header__nav.is-open .btn { width: 100%; padding: 12px; text-align: left; }
  .header__nav.is-open .header__sep { display: none; }
  .header__nav.is-open .auth-area { flex-direction: column; align-items: stretch; gap: 8px; width: 100%; padding-top: 6px; border-top: 1px solid var(--line-2); margin-top: 4px; }
  .header__nav.is-open .auth-area .header__link { padding: 10px 12px; }
  .header__nav.is-open .auth-name { width: 100%; text-align: center; padding: 8px 12px; }
  .header__nav.is-open .bell-wrap { align-self: flex-start; }
}

/* ================= 히어로 (밝은 스플릿 + 사진 콜라주) ================= */
.hero { overflow: hidden; background: radial-gradient(900px 480px at 78% -10%, rgba(99, 102, 241, 0.10) 0%, transparent 58%), var(--bg); }
.hero__inner { max-width: 1180px; margin: 0 auto; padding: 40px 32px 40px; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 44px; align-items: center; }
.hero__eyebrow { display: inline-block; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.01em; color: var(--accent); background: var(--accent-soft); padding: 6px 13px; border-radius: 999px; }
.hero__title { font-size: 2.4rem; font-weight: 800; line-height: 1.22; letter-spacing: -0.035em; margin: 15px 0 13px; color: var(--ink); }
.hero__title em { color: var(--accent); font-style: normal; }
.hero__sub { font-size: 0.98rem; color: var(--muted); line-height: 1.65; margin-bottom: 22px; }
.hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }

/* 검색 바 */
.searchbar { display: flex; align-items: center; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 8px 8px 8px 6px; box-shadow: var(--shadow-lg); max-width: 900px; }
.searchbar__field { flex: 1; display: flex; flex-direction: column; gap: 3px; padding: 10px 16px; border-radius: 13px; transition: background 0.15s; min-width: 0; cursor: text; }
.searchbar__field:hover { background: var(--surface-2); }
.searchbar__field--sm { flex: 0 0 116px; }
.searchbar__div { width: 1px; height: 30px; background: var(--line-2); flex-shrink: 0; }
.searchbar__label { font-size: 0.7rem; font-weight: 700; color: var(--ink-2); padding-left: 26px; letter-spacing: 0.02em; }
.searchbar__input { display: flex; align-items: center; gap: 8px; }
.searchbar__input .ic { color: var(--accent); flex-shrink: 0; }
.searchbar__input input, .searchbar__input select { flex: 1; border: none; outline: none; background: none; font-size: 0.95rem; font-weight: 600; color: var(--ink); min-width: 0; }
.searchbar__input input::placeholder { color: var(--faint); font-weight: 500; }
.searchbar__go { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 14px; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; transition: background 0.15s; }
.searchbar__go:hover { background: #4338ca; }

.hero__stats { display: flex; gap: 28px; margin-top: 24px; }
.hero__stats strong { font-size: 1.35rem; font-weight: 800; display: block; line-height: 1; color: var(--ink); letter-spacing: -0.02em; }
.hero__stats span { font-size: 0.78rem; color: var(--muted); margin-top: 6px; display: block; }

/* 히어로 사진 콜라주 */
.hero__gallery { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hero__gcol { display: flex; flex-direction: column; gap: 12px; }
.hero__gcol:last-child { padding-top: 26px; }
.hero__gcol img { width: 100%; border-radius: 16px; object-fit: cover; box-shadow: var(--shadow-sm); display: block; }
.hero__gcol:first-child img:first-child { height: 168px; }
.hero__gcol:first-child img:last-child { height: 128px; }
.hero__gcol:last-child img:first-child { height: 140px; }
.hero__gcol:last-child img:last-child { height: 176px; }
.hero__chip { position: absolute; left: -12px; bottom: 20px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); border-radius: 999px; padding: 9px 15px; font-weight: 800; font-size: 0.84rem; color: var(--ink); }

/* ===== 목적 온보딩 히어로 ===== */
.hero--intent { background: radial-gradient(1000px 560px at 50% -12%, rgba(99, 102, 241, 0.12) 0%, transparent 60%), radial-gradient(700px 400px at 88% 6%, rgba(59, 130, 246, 0.07) 0%, transparent 55%), var(--bg); }
.hero--intent .hero__inner { display: block; grid-template-columns: none; max-width: 900px; margin: 0 auto; padding: 30px 24px 14px; text-align: center; }
.hero--intent .hero__eyebrow { background: linear-gradient(92deg, var(--accent), var(--accent-2)); border: 0; color: #fff; font-weight: 800; font-size: 1rem; letter-spacing: 0.01em; padding: 9px 18px; box-shadow: 0 4px 14px rgba(79, 70, 229, 0.28); }
@media (max-width: 560px) { .hero--intent .hero__eyebrow { font-size: 0.86rem; padding: 8px 15px; white-space: normal; } }
/* '공간잇다' 브랜드 강조 (그라데이션 텍스트) */
.brand-ink { font-weight: 800; white-space: nowrap; background: linear-gradient(92deg, var(--accent), var(--accent-2)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
/* 실시간 활성도 티커 */
.livebar { display: inline-flex; align-items: center; gap: 9px; margin: 0 auto 20px; padding: 7px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 999px; font-size: 0.84rem; font-weight: 600; color: var(--ink-2); box-shadow: var(--shadow-sm); }
.livebar__dot { width: 7px; height: 7px; border-radius: 50%; background: #059669; box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.2); flex-shrink: 0; animation: nowpulse 1.8s ease-in-out infinite; }
.livebar__txt { transition: opacity 0.25s; }
.livebar__txt b { color: var(--ink); font-weight: 800; }
/* 제목 옆 인라인 실시간 배지 */
.livebar--inline { display: inline-flex; vertical-align: middle; margin: 0 0 4px 10px; padding: 5px 12px; font-size: 0.78rem; box-shadow: none; }
@media (max-width: 560px) { .livebar--inline { display: flex; margin: 8px 0 0; width: fit-content; } }
.hero--intent .hero__title { font-family: var(--serif); font-weight: 700; font-size: 2.3rem; letter-spacing: -0.02em; margin: 14px auto 4px; }
.hero--intent .hero__sub { font-size: 0.98rem; margin-bottom: 20px; }
.intent { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; max-width: 760px; margin: 0 auto; }
.intent__chip { display: flex; flex-direction: column; align-items: center; gap: 7px; width: 108px; padding: 12px 8px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-sm); font-weight: 700; font-size: 0.84rem; color: var(--ink); transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s; }
.intent__chip:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--ink); }
.intent__ic { width: 42px; height: 42px; border-radius: 50%; background: var(--tint); color: var(--ink); display: flex; align-items: center; justify-content: center; }
.intent__ic .ic { width: 20px; height: 20px; stroke-width: 1.7; }
.hero__ways { margin-top: 16px; font-size: 0.9rem; color: var(--muted); }
.hero__ways a { color: var(--ink-2); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line); }
.hero__ways a:hover { color: var(--accent); text-decoration-color: var(--accent); }
.hero--intent .hero__stats { justify-content: center; margin-top: 16px; }
@media (max-width: 760px) {
  .hero--intent .hero__inner { padding: 20px 14px 6px; }
  .hero--intent .hero__title { font-size: 1.85rem; }
  .hero--intent .hero__sub { font-size: 0.9rem; margin-bottom: 10px; }
  .intent { gap: 7px; }
  .intent__chip { width: calc(33.333% - 7px); padding: 11px 6px; font-size: 0.8rem; }
  .intent__ic { width: 38px; height: 38px; }
}

/* ===== 결정 중심 3갈래 히어로 (레거시) ===== */
.hero--decide { background: radial-gradient(1100px 460px at 50% -12%, rgba(99, 102, 241, 0.11) 0%, transparent 62%), var(--bg); }
.hero--decide .hero__inner { display: block; grid-template-columns: none; max-width: 1000px; margin: 0 auto; padding: 40px 24px 34px; text-align: center; }
.hero--decide .hero__title { font-size: 2.3rem; margin: 12px auto 10px; }
.hero--decide .hero__sub { font-size: 1rem; margin-bottom: 24px; }
.hpaths__note { display: none; }
.hpaths { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; text-align: left; }
.hpath { position: relative; display: flex; flex-direction: column; gap: 7px; padding: 24px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-sm); transition: transform 0.16s, box-shadow 0.16s, border-color 0.16s; }
.hpath:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--ink); }
.hpath--hl { border-color: var(--accent); background: linear-gradient(180deg, var(--accent-soft), var(--surface) 55%); }
.hpath__badge { position: absolute; top: 15px; right: 15px; font-size: 0.68rem; font-weight: 800; color: #fff; background: var(--accent); padding: 3px 10px; border-radius: 999px; }
.hpath__ic { width: 46px; height: 46px; border-radius: 50%; background: var(--tint, var(--surface-2)); color: var(--ink, var(--accent)); display: inline-flex; align-items: center; justify-content: center; }
.hpath__ic .ic { width: 22px; height: 22px; stroke-width: 1.7; }
.hpath__t { font-size: 1.2rem; font-weight: 800; }
.hpath__d { font-size: 0.9rem; color: var(--muted); line-height: 1.55; flex: 1; }
.hpath__go { font-weight: 800; color: var(--accent); margin-top: 6px; }
.hero--decide .hero__stats { justify-content: center; margin-top: 30px; }
@media (max-width: 760px) {
  .hero--decide .hero__inner { padding: 26px 14px 22px; }
  .hero--decide .hero__title { font-size: 1.6rem; }
  .hero--decide .hero__sub { font-size: 0.9rem; margin-bottom: 18px; }
  .hpaths { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .hpath { padding: 15px 8px; align-items: center; text-align: center; gap: 5px; }
  .hpath__ic { width: 40px; height: 40px; }
  .hpath__t { font-size: 0.9rem; }
  .hpath__d, .hpath__go, .hpath__badge { display: none; }
  .hpaths__note { display: block; font-size: 0.78rem; color: var(--muted); margin-top: 12px; line-height: 1.6; }
  .hpaths__note b { color: var(--ink-2); }
  .hero--decide .hero__stats { margin-top: 18px; gap: 20px; }
  .section { padding: 24px 16px; }
  .section__title { font-size: 1.35rem; }
}

/* 라이트 배경 검색 바 (카테고리 위) */
.section--search { padding-top: 6px; padding-bottom: 16px; }
.searchbar--light { max-width: none; box-shadow: var(--shadow-sm); border: 1px solid var(--line); }
/* 통합 검색 박스 */
/* 목적 탭 + 검색박스 일체형 */
.searchwrap { max-width: 900px; margin: 0 auto; }
.intent-tabs { display: flex; justify-content: safe center; gap: 4px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding: 0 14px; touch-action: pan-x; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.intent-tabs::-webkit-scrollbar { display: none; }
.intent-tab { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; padding: 10px 16px; font-size: 0.86rem; font-weight: 700; color: var(--muted); background: var(--surface-2); border: 1px solid var(--line); border-bottom: none; border-radius: 13px 13px 0 0; white-space: nowrap; transition: color 0.15s, background 0.15s; position: relative; top: 1px; touch-action: pan-x; }
.intent-tab__ic { display: inline-flex; color: var(--ink-2); }
.intent-tab:hover { color: var(--accent); background: var(--surface); }
.intent-tab:hover .intent-tab__ic { color: var(--accent); }
.searchwrap .searchbox { max-width: none; border-radius: 4px 18px 18px 18px; position: relative; z-index: 1; }
@media (max-width: 560px) { .intent-tab { padding: 9px 13px; font-size: 0.8rem; } .searchwrap .searchbox { border-radius: 14px; } }
.searchbox { max-width: 900px; margin: 0 auto; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 13px; box-shadow: var(--shadow); display: flex; flex-direction: column; gap: 10px; }
.searchbox .searchbar { box-shadow: none; border: 1px solid var(--line); border-radius: 15px; margin: 0; }
.searchbox .ai-box { margin: 0; }
.searchbox .searchbar__go { box-shadow: none; }
/* AI 추천 강조 — 연한 인디고 배경 + 반짝임으로 스마트 기능 구분 */
.ai-box--hl { background: linear-gradient(100deg, rgba(99, 102, 241, 0.09), rgba(59, 130, 246, 0.07)); border: 1px solid rgba(79, 70, 229, 0.22); box-shadow: none; }
.ai-box--hl .ai-box__tag { color: var(--accent); font-weight: 800; white-space: nowrap; }
.ai-box__spark { display: inline-block; animation: aiSpark 2.2s ease-in-out infinite; }
@keyframes aiSpark { 0%, 100% { opacity: 0.55; transform: scale(0.9) rotate(0deg); } 50% { opacity: 1; transform: scale(1.15) rotate(12deg); } }
.ai-box--hl input::placeholder { color: rgba(79, 70, 229, 0.55); }
/* 공간+렌탈 패키지 퀵 배너 */
.qbanner { display: flex; align-items: center; gap: 13px; padding: 12px 16px; border-radius: 15px; background: linear-gradient(100deg, var(--accent), var(--accent-2)); color: #fff; transition: filter 0.15s, transform 0.15s; }
.qbanner:hover { filter: brightness(1.06); transform: translateY(-1px); }
.qbanner__ic { font-size: 1.5rem; line-height: 1; flex-shrink: 0; }
.qbanner__tx { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.qbanner__tx b { font-size: 0.96rem; font-weight: 800; }
.qbanner__tx span { font-size: 0.8rem; opacity: 0.92; }
.qbanner__go { font-weight: 800; font-size: 0.85rem; white-space: nowrap; flex-shrink: 0; }
/* 프로모션 배너 캐러셀 */
.promo { position: relative; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px -14px rgba(79,70,229,0.5); }
.promo__track { display: flex; transition: transform 0.55s cubic-bezier(0.4, 0, 0.15, 1); }
.promo__slide { position: relative; flex: 0 0 100%; display: flex; align-items: center; gap: 13px; padding: 16px 18px; min-height: 68px; color: #fff; text-decoration: none; overflow: hidden; }
.promo__slide--a { background: linear-gradient(105deg, #4f46e5, #7c6cf0 55%, #9d7bf5); }
.promo__slide--b { background: linear-gradient(105deg, #db2777, #f0577f 55%, #f7896a); }
.promo__slide--c { background: linear-gradient(105deg, #0e7490, #1597b8 55%, #34b3c4); }
.promo__deco { position: absolute; right: -6px; top: 50%; transform: translateY(-50%) rotate(-8deg); font-size: 4.4rem; opacity: 0.22; line-height: 1; pointer-events: none; }
.promo__badge { flex-shrink: 0; align-self: flex-start; margin-top: 2px; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; background: rgba(255,255,255,0.22); backdrop-filter: blur(4px); padding: 4px 9px; border-radius: 999px; }
.promo__tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; z-index: 1; }
.promo__tx b { font-size: 1rem; font-weight: 800; letter-spacing: -0.01em; }
.promo__tx span { font-size: 0.82rem; opacity: 0.95; }
.promo__tx span em { font-style: normal; font-weight: 800; background: rgba(255,255,255,0.24); padding: 1px 6px; border-radius: 6px; }
.promo__cta { flex-shrink: 0; align-self: center; font-weight: 800; font-size: 0.84rem; white-space: nowrap; background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.4); padding: 8px 14px; border-radius: 999px; z-index: 1; transition: background 0.15s; }
.promo__slide:hover .promo__cta { background: rgba(255,255,255,0.3); }
.promo__dots { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 2; }
.promo__dot { width: 6px; height: 6px; border-radius: 999px; background: rgba(255,255,255,0.5); transition: width 0.2s, background 0.2s; }
.promo__dot.is-on { width: 18px; background: #fff; }
@media (max-width: 560px) { .promo__cta { display: none; } .promo__tx b { font-size: 0.9rem; } .promo__tx span { font-size: 0.74rem; } .promo__deco { font-size: 3.4rem; } }
/* 컴팩트 섹션 헤더 */
.section__head--tight { margin: 26px 0 12px; }
.section__title--sm { font-size: 1.3rem; }
@media (max-width: 560px) { .qbanner__go { display: none; } .qbanner__tx b { font-size: 0.88rem; } .qbanner__tx span { font-size: 0.74rem; } }
.section--browse { padding-top: 14px; }
.host { margin-top: 8px; }

/* ================= 섹션 공통 ================= */
.section { max-width: 1180px; margin: 0 auto; padding: 32px 32px; }
.section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 16px; flex-wrap: wrap; }
.section__kicker { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.18em; color: var(--accent); display: block; margin-bottom: 8px; }
.section__title { font-family: inherit; font-size: 1.6rem; font-weight: 800; letter-spacing: -0.03em; color: var(--ink); }
.section__sub { font-size: 0.9rem; color: var(--muted); }

/* ================= 카테고리 ================= */
.cats { display: flex; gap: 14px; overflow-x: auto; padding: 4px 2px 12px; scrollbar-width: none; }
.cats::-webkit-scrollbar { display: none; }
.cat { flex: 0 0 auto; width: 148px; display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 0; background: none; border: none; box-shadow: none; cursor: pointer; text-align: center; }
.cat__img { position: relative; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: var(--tint); display: flex; align-items: center; justify-content: center; transition: box-shadow 0.18s, transform 0.18s; }
.cat__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cat__img .ic { color: var(--ink); position: relative; z-index: 0; }
.cat:hover .cat__img { transform: translateY(-3px); box-shadow: var(--shadow); }
@media (max-width: 560px) { .cat { width: 124px; } }
.cat:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.cat__ic { width: 38px; height: 38px; border-radius: 11px; display: flex; align-items: center; justify-content: center; transition: transform 0.22s; }
.cat:hover .cat__ic { transform: scale(1.08) rotate(-3deg); }
.cat__ic .ic { width: 19px; height: 19px; }
.cat__label { font-size: 0.78rem; font-weight: 700; color: var(--ink-2); white-space: nowrap; }

/* ================= 칩 (필터) ================= */
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { padding: 9px 16px; border-radius: 999px; font-size: 0.85rem; font-weight: 600; color: var(--muted); background: var(--surface); border: 1px solid var(--line); transition: all 0.15s; }
.chip:hover { color: var(--ink); border-color: var(--faint); }
.chip.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ================= 공간 카드 ================= */
.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px 20px; }
.sp-card { background: none; border-radius: 0; overflow: visible; display: flex; flex-direction: column; box-shadow: none; transition: transform 0.2s cubic-bezier(0.2, 0.7, 0.3, 1); cursor: pointer; }
.sp-card:hover { transform: translateY(-4px); }
.sp-card:hover .sp-card__thumb { box-shadow: var(--shadow); }
.sp-card__thumb { border-radius: 16px; position: relative; aspect-ratio: 4 / 3; overflow: hidden; transition: box-shadow 0.2s; }
.sp-card__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1); z-index: 1; }
/* 브랜드 기본 썸네일 (이미지 없음/로드 실패 시 노출) */
.sp-ph { position: absolute; inset: 0; z-index: 0; display: flex; align-items: center; justify-content: center; }
.sp-ph__mark { display: inline-flex; align-items: center; gap: 7px; font-family: var(--serif); font-size: 1.05rem; font-weight: 700; color: rgba(255, 255, 255, 0.92); letter-spacing: -0.01em; text-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); }
.sp-ph__dot { width: 9px; height: 9px; border-radius: 50%; background: rgba(255, 255, 255, 0.95); box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.28); }
.sp-ph--lg .sp-ph__mark { font-size: 1.8rem; gap: 11px; }
.sp-ph--lg .sp-ph__dot { width: 14px; height: 14px; }
.sp-card:hover .sp-card__thumb img { transform: scale(1.07); }
.sp-card__badge { position: absolute; top: 10px; left: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; font-size: 0.7rem; font-weight: 800; color: #fff; background: rgba(23, 20, 15, 0.5); backdrop-filter: blur(6px); padding: 5px 10px; border-radius: 999px; letter-spacing: 0.02em; line-height: 1; }
.sp-card__badge i { width: 6px; height: 6px; border-radius: 50%; background: #64e6a6; box-shadow: 0 0 0 3px rgba(100, 230, 166, 0.3); display: inline-block; }
/* 즉시예약 배지 — 대비 강화 */
.sp-card__badge--now { background: #059669; box-shadow: 0 4px 12px -4px rgba(5, 150, 105, 0.6); font-size: 0.74rem; padding: 6px 12px; }
.sp-card__badge--now i { background: #fff; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35); animation: nowpulse 1.8s ease-in-out infinite; }
@keyframes nowpulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
.sp-card__heart { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; color: var(--muted); transition: all 0.15s; }
.sp-card__heart:hover { color: var(--accent); transform: scale(1.1); }
.sp-card__heart.is-on { color: var(--accent); }
.sp-card__heart.is-on .ic { fill: var(--accent); }
.sp-card__body { padding: 12px 2px 2px; display: flex; flex-direction: column; gap: 4px; flex: 1; min-height: 128px; }
.sp-card__name { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.sp-card__cat { font-size: 0.72rem; font-weight: 800; color: var(--accent); letter-spacing: 0.04em; }
.sp-card__name { font-size: 1.05rem; font-weight: 800; color: var(--ink); letter-spacing: -0.02em; line-height: 1.35; }
.sp-card__meta { display: flex; align-items: center; gap: 10px; font-size: 0.82rem; color: var(--muted); flex-wrap: nowrap; }
.sp-card__meta .ic { width: 14px; height: 14px; color: var(--faint); flex-shrink: 0; }
.sp-card__meta span { display: inline-flex; align-items: center; gap: 4px; }
.sp-card__loc { flex: 1; min-width: 0; }
.sp-card__loctxt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sp-card__cap { flex-shrink: 0; }
.sp-card__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 6px 8px; margin-top: auto; padding-top: 10px; flex-wrap: wrap; }
/* 카드 태그 줄 — 높이 균일화 */
.sp-tags--row { min-height: 24px; margin-top: 7px; }
.optag--pkg { color: var(--info); background: rgba(37, 99, 235, 0.1); }
.optag--ghost { color: var(--faint); background: var(--surface-2); font-weight: 600; }
.sp-card__price { font-family: "Pretendard", sans-serif; font-size: 1.28rem; font-weight: 800; color: var(--ink); letter-spacing: -0.03em; white-space: nowrap; }
.sp-card__price span { font-size: 0.72rem; font-weight: 500; color: var(--faint); letter-spacing: 0; }
.sp-card__rating { display: inline-flex; align-items: center; gap: 4px; font-size: 0.82rem; font-weight: 700; color: var(--ink-2); flex-shrink: 0; white-space: nowrap; }
.sp-card__rating .ic { width: 14px; height: 14px; color: var(--gold); fill: var(--gold); }
.sp-card__rating em { color: var(--faint); font-weight: 500; }

/* ================= 플래그십 ================= */
.flag { max-width: 1220px; margin: 0 auto; padding: 0 32px; }
.flag__inner { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--surface); border-radius: 24px; overflow: hidden; box-shadow: var(--shadow); }
.flag__media { position: relative; min-height: 380px; overflow: hidden; }
.flag__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.flag__mediascrim { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(23,20,15,0.35), rgba(23,20,15,0) 60%); }
.flag__tag { position: absolute; top: 22px; left: 22px; z-index: 2; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.12em; color: #fff; background: var(--accent); padding: 7px 14px; border-radius: 999px; }
.flag__body { padding: 52px 50px; display: flex; flex-direction: column; justify-content: center; }
.flag__eyebrow { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.2em; color: var(--accent); }
.flag__title { font-family: var(--serif); font-size: 2.1rem; font-weight: 600; letter-spacing: -0.025em; margin: 12px 0 14px; line-height: 1.3; }
.flag__desc { font-size: 0.96rem; color: var(--muted); line-height: 1.75; margin-bottom: 26px; }
.flag__spec { display: flex; gap: 34px; margin-bottom: 30px; }
.flag__spec div strong { font-family: var(--serif); font-size: 1.3rem; font-weight: 600; display: block; }
.flag__spec div span { font-size: 0.8rem; color: var(--muted); margin-top: 2px; display: block; }

/* ================= 호스트 CTA ================= */
.host { max-width: 1220px; margin: 46px auto 0; padding: 0 32px; }
.host__inner { position: relative; overflow: hidden; background: var(--dark); color: #fff; border-radius: 26px; padding: 66px 44px; text-align: center; }
.host__inner::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 100% at 50% 0%, rgba(207, 122, 95, 0.22), transparent 60%); }
.host__eyebrow { position: relative; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.24em; color: var(--gold); }
.host__title { position: relative; font-family: var(--serif); font-size: 2.35rem; font-weight: 600; margin: 14px 0 16px; letter-spacing: -0.025em; line-height: 1.3; }
.host__sub { position: relative; color: rgba(255, 255, 255, 0.72); line-height: 1.75; margin-bottom: 32px; }
.host__actions { position: relative; display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; }
.host__note { font-size: 0.85rem; color: rgba(255, 255, 255, 0.5); }

/* ================= 푸터 ================= */
.footer { margin-top: 92px; background: var(--surface); border-top: 1px solid var(--line-2); }
.footer__inner { max-width: 1220px; margin: 0 auto; padding: 58px 32px 38px; display: grid; grid-template-columns: 1.3fr 2fr; gap: 44px; }
.logo--footer { font-size: 1.2rem; }
.footer__desc { color: var(--muted); font-size: 0.9rem; margin: 14px 0 6px; }
.footer__co { color: var(--faint); font-size: 0.82rem; }
.footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.footer__col h4 { font-size: 0.82rem; font-weight: 800; margin-bottom: 14px; letter-spacing: 0.02em; }
.footer__col a { display: block; font-size: 0.86rem; color: var(--muted); padding: 5px 0; transition: color 0.15s; }
.footer__col a:hover { color: var(--accent); }
.footer__copy { max-width: 1220px; margin: 0 auto; padding: 20px 32px; border-top: 1px solid var(--line-2); font-size: 0.8rem; color: var(--faint); }
.footer__legal { max-width: 1220px; margin: 0 auto; padding: 14px 32px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; border-top: 1px solid var(--line-2); }
.footer__legal a { font-size: 0.82rem; color: var(--muted); font-weight: 600; }
.footer__legal a:hover { color: var(--accent); }
.footer__legal a.is-strong { color: var(--ink-2); font-weight: 800; }
.footer__legal-sep { color: var(--line); font-size: 0.75rem; }
.footer__legal + .footer__biz { border-top: 0; }
.footer__biz { max-width: 1220px; margin: 0 auto; padding: 8px 32px 0; }
.footer__biz-row { margin: 1px 0; font-size: 0.75rem; color: var(--faint); line-height: 1.5; }
.footer__biz-row b { color: var(--muted); font-weight: 700; }
.footer__biz-broker { margin: 5px 0 0; font-size: 0.74rem; color: var(--faint); line-height: 1.45; word-break: keep-all; }
.footer__biz + .footer__copy { border-top: 0; padding-top: 8px; }
.footer__legal + .footer__copy { border-top: 0; padding-top: 10px; }
body[data-require="admin"] .footer__legal, body[data-require="admin"] .footer__biz { max-width: none; margin: 0; padding-left: 40px; }
/* 관리자: 푸터를 최대한 컴팩트하게 */
body[data-require="admin"] .footer { margin-top: 28px; }
body[data-require="admin"] .footer__legal { padding-top: 12px; padding-bottom: 0; gap: 3px 8px; }
body[data-require="admin"] .footer__legal a { font-size: 0.78rem; }
body[data-require="admin"] .footer__biz { padding-top: 6px; }
body[data-require="admin"] .footer__biz-row, body[data-require="admin"] .footer__biz-broker { font-size: 0.72rem; margin: 1px 0; }
body[data-require="admin"] .footer__copy { padding-top: 6px; padding-bottom: 16px; font-size: 0.74rem; }

/* ================= 토스트 ================= */
.toast { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); background: var(--ink); color: #fff; padding: 14px 24px; border-radius: 999px; font-size: 0.9rem; font-weight: 600; box-shadow: var(--shadow-lg); z-index: 300; animation: toastin 0.25s ease; }
.toast[hidden] { display: none; }
@keyframes toastin { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* ============================================================
   상세 · 예약 페이지 (space.html)
   ============================================================ */
.sp { max-width: 1180px; margin: 0 auto; padding: 26px 32px 90px; }
.sp-back { display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; font-weight: 600; color: var(--muted); margin-bottom: 18px; }
.sp-back:hover { color: var(--ink); }
.sp-gallery { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 10px; border-radius: 20px; overflow: hidden; height: 440px; margin-bottom: 30px; }
.sp-gallery__main { grid-row: 1 / 3; position: relative; overflow: hidden; }
.sp-gallery__sm { position: relative; overflow: hidden; }
.sp-gallery img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.sp-gallery__main:hover img, .sp-gallery__sm:hover img { transform: scale(1.05); }
.sp-gallery__nav { display: none; }
/* 데스크톱: 갤러리는 대표 + 보조 2장만 (나머지는 모바일 캐러셀에서 노출) */
@media (min-width: 761px) { .sp-gallery > *:nth-child(n+4) { display: none; } }
.sp-layout { display: grid; grid-template-columns: 1fr 380px; gap: 50px; align-items: start; }
.sp-layout > *, .sp-main, .book { min-width: 0; }
.sp-head__cat { font-size: 0.74rem; font-weight: 800; color: var(--accent); letter-spacing: 0.05em; }
.sp-head__title { font-family: var(--serif); font-size: 2.2rem; font-weight: 600; letter-spacing: -0.025em; margin: 8px 0 12px; }
.sp-head__meta { display: flex; align-items: center; gap: 18px; font-size: 0.9rem; color: var(--muted); flex-wrap: wrap; }
.sp-head__meta span { display: inline-flex; align-items: center; gap: 6px; }
.sp-head__meta .ic { width: 16px; height: 16px; color: var(--faint); }
.sp-head__meta .rate { color: var(--ink-2); font-weight: 700; }
.sp-head__meta .rate .ic { color: var(--gold); fill: var(--gold); }
.sp-sec { padding: 30px 0; border-top: 1px solid var(--line-2); }
.sp-sec:first-of-type { border-top: none; }
.sp-sec__title { font-size: 1.2rem; font-weight: 800; margin-bottom: 16px; letter-spacing: -0.01em; }
.sp-desc { color: var(--ink-2); line-height: 1.85; font-size: 0.96rem; }
.sp-amen { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.sp-amen li { display: flex; align-items: center; gap: 10px; font-size: 0.92rem; color: var(--ink-2); font-weight: 600; }
.sp-amen .ic { width: 18px; height: 18px; color: var(--accent); flex-shrink: 0; }
.sp-rev { display: flex; flex-direction: column; gap: 14px; }
.sp-revrow { display: flex; gap: 12px; padding: 16px; background: var(--surface-2); border-radius: 14px; }
.sp-revrow__av { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: 0.9rem; }
.sp-revrow__name { font-weight: 700; font-size: 0.9rem; }
.sp-revrow__stars { color: var(--gold); font-size: 0.78rem; margin: 2px 0 6px; }
.sp-revrow__txt { font-size: 0.9rem; color: var(--ink-2); line-height: 1.6; }
.sp-revrow__body { flex: 1; min-width: 0; }
/* 공간 상세 — 찜·공유 액션 */
.sp-head__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.sp-head__actions { display: flex; gap: 8px; flex-shrink: 0; margin-top: 4px; }
.sp-act { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border: 1.5px solid var(--line); border-radius: 11px; font-size: 0.86rem; font-weight: 700; color: var(--ink-2); background: var(--surface); transition: all 0.15s; }
.sp-act:hover { border-color: var(--ink); color: var(--ink); }
.sp-act .ic { color: var(--muted); }
.sp-act.is-on { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.sp-act.is-on .ic { color: var(--accent); fill: var(--accent); }
/* 해시태그 링크 */
.optag--link { transition: all 0.15s; }
.optag--link:hover { background: var(--accent); color: #fff; }
/* 검색 태그 배너 */
.srch-tag { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 4px 12px; border-radius: 999px; margin-right: 8px; }
.srch-tag span { font-size: 0.72rem; opacity: 0.7; }
.srch-tag:hover span { opacity: 1; }
/* 공유 시트 */
.share__sub { font-size: 0.95rem; font-weight: 700; margin: 8px 0 16px; line-height: 1.5; }
.share__sub span { display: block; font-size: 0.82rem; font-weight: 500; color: var(--muted); margin-top: 4px; }
.share__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.share__b { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px; border: 1px solid var(--line); border-radius: 13px; font-size: 0.84rem; font-weight: 700; color: var(--ink-2); background: var(--surface); transition: all 0.15s; }
.share__b:hover { border-color: var(--ink); transform: translateY(-2px); }
.share__b--kko { background: #fee500; border-color: #fee500; color: #3a2929; }
.share__b--kko:hover { background: #f5dc00; border-color: #f5dc00; }
.share__ic { font-size: 1.5rem; }
/* 포토 리뷰 */
.sp-revphotos { margin-bottom: 16px; }
.sp-revphotos__t { font-size: 0.86rem; font-weight: 800; color: var(--ink-2); margin-bottom: 8px; }
.sp-revphotos__row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.sp-revphotos__row img { width: 96px; height: 96px; flex-shrink: 0; object-fit: cover; border-radius: 12px; cursor: pointer; transition: transform 0.15s; }
.sp-revphotos__row img:hover { transform: scale(1.03); }
.sp-revrow__photos { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.sp-revrow__photos img { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; cursor: pointer; }
.sp-revreply { margin-top: 10px; padding: 11px 13px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }
.sp-revreply b { display: block; font-size: 0.8rem; font-weight: 800; color: var(--accent); margin-bottom: 3px; }
.sp-revreply span { font-size: 0.86rem; color: var(--ink-2); line-height: 1.55; }
.sp-revreply__btn { margin-top: 9px; font-size: 0.8rem; font-weight: 700; color: var(--accent); }
.sp-revreply__form { margin-top: 9px; }
.sp-revreply__form textarea { width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; font-family: inherit; font-size: 0.88rem; resize: vertical; outline: none; margin-bottom: 8px; }
.sp-revform__photos { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 10px; }
.sp-revform__ph { position: relative; }
.sp-revform__ph img { width: 60px; height: 60px; object-fit: cover; border-radius: 9px; }
.sp-revform__ph button { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: rgba(0,0,0,0.65); color: #fff; font-size: 0.62rem; }
.sp-revform__add { display: inline-block; margin: 0 10px 10px 0; font-size: 0.82rem; font-weight: 700; color: var(--accent); cursor: pointer; }
/* 지도 헤드 */
.mapp__headrow { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.sp-rel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* 예약 카드 (sticky) */
.book { position: sticky; top: calc(var(--header-h) + 22px); background: var(--surface); border: 1px solid var(--line-2); border-radius: 20px; padding: 26px; box-shadow: var(--shadow-sm); }
.book__price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 20px; }
.book__price strong { font-family: var(--serif); font-size: 1.9rem; font-weight: 600; }
.book__price span { color: var(--muted); font-size: 0.88rem; }
.book__field { margin-bottom: 12px; }
.book__label { display: block; font-size: 0.78rem; font-weight: 700; color: var(--ink-2); margin-bottom: 6px; }
.book__field input, .book__field select { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font-size: 0.92rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; transition: border-color 0.15s; }
.book__field input:focus, .book__field select:focus { border-color: var(--ink); }
.book__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.book__sum { margin: 20px 0 16px; padding-top: 16px; border-top: 1px solid var(--line-2); }
.book__sumrow { display: flex; justify-content: space-between; font-size: 0.9rem; color: var(--muted); margin-bottom: 8px; }
.book__total { display: flex; justify-content: space-between; align-items: baseline; font-weight: 800; color: var(--ink); font-size: 1.05rem; padding-top: 10px; border-top: 1px dashed var(--line); }
.book__total b { font-family: var(--serif); font-size: 1.4rem; font-weight: 600; }
.book__note { font-size: 0.78rem; color: var(--faint); text-align: center; margin-top: 12px; line-height: 1.5; }
/* #2a: 부대서비스 옵션 체크박스 */
/* #2a: 모바일 스티키 하단 견적 바 */
.bk-mobar { display: none; }
@media (max-width: 900px) {
  .bk-mobar { display: flex; align-items: center; gap: 12px; position: fixed; left: 0; right: 0; bottom: calc(56px + env(safe-area-inset-bottom, 0px)); z-index: 470; background: var(--surface); border-top: 1px solid var(--line); padding: 10px 16px; box-shadow: 0 -8px 24px -14px rgba(15,23,42,0.25); }
  .bk-mobar__l { display: flex; flex-direction: column; line-height: 1.2; }
  .bk-mobar__l b { font-size: 1.15rem; font-weight: 800; color: var(--accent); }
  .bk-mobar__l span { font-size: 0.7rem; color: var(--muted); }
  .bk-mobar .btn { margin-left: auto; flex-shrink: 0; }
  .sp-layout { padding-bottom: 80px; }
}
/* #2b: 매칭 파트너 미니 프로필 */
.sp-sec__sub { font-size: 0.88rem; color: var(--muted); margin: -4px 0 14px; }
.matchp { display: flex; flex-direction: column; gap: 8px; }
.matchp__empty { font-size: 0.9rem; color: var(--faint); }
.matchp-card { border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; background: var(--surface); }
.matchp-card__hd { display: flex; align-items: center; gap: 11px; width: 100%; padding: 12px 14px; background: none; border: 0; cursor: pointer; font: inherit; text-align: left; }
.matchp-card__ava { width: 38px; height: 38px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-weight: 800; font-size: 1.05rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.matchp-card__info { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.matchp-card__info b { font-size: 0.95rem; font-weight: 800; }
.matchp-card__info span { font-size: 0.78rem; color: var(--muted); display: flex; align-items: center; gap: 3px; flex-wrap: wrap; }
.matchp-card__chev { color: var(--faint); transition: transform 0.18s; flex-shrink: 0; }
.matchp-card.is-open .matchp-card__chev { transform: rotate(180deg); }
.matchp-card__body { padding: 0 14px 14px 63px; }
.matchp-card__items { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.matchp-chip { font-size: 0.76rem; font-weight: 600; color: var(--ink-2); background: var(--surface-2); border-radius: 6px; padding: 3px 8px; }
.matchp-card__intro { font-size: 0.85rem; color: var(--muted); line-height: 1.55; margin: 0 0 10px; }
.matchp-card__ph { display: flex; gap: 6px; margin-bottom: 10px; }
.matchp-card__ph img { width: 68px; height: 52px; object-fit: cover; border-radius: 8px; }
@media (max-width: 560px) { .matchp-card__body { padding-left: 14px; } }

/* ============================================================
   검색 결과 (search.html)
   ============================================================ */
.srch { max-width: 1220px; margin: 0 auto; padding: 34px 32px 90px; }
.srch__top { margin-bottom: 26px; }
.srch__title { font-family: var(--serif); font-size: 2rem; font-weight: 600; letter-spacing: -0.025em; }
.srch__layout { display: grid; grid-template-columns: 236px 1fr; gap: 44px; align-items: start; }
/* 검색 결과 카드: 좁게 눌리지 않게 넉넉히 */
.results .grid { grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); gap: 24px; }
.filters { position: static; }
.filters__mtoggle { display: none; }
/* 상세 필터 버튼 (검색 컨트롤 바) */
.v-morefilt { flex: 0 0 auto; padding: 12px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); font-weight: 700; font-size: 0.9rem; color: var(--ink-2); white-space: nowrap; transition: all 0.14s; }
.v-morefilt:hover, .v-morefilt.is-open { border-color: var(--accent); color: var(--accent); }
/* 상세 필터 접이식 패널 */
.filters__body { display: none; }
.filters__body.is-open { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 2px 28px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 16px; padding: 6px 22px 18px; margin-bottom: 20px; box-shadow: var(--shadow-sm); animation: rqnDown 0.24s cubic-bezier(0.2,0.8,0.2,1); }
.filters__body .filt { border-bottom: none; padding: 15px 0 4px; }
.filters__body .filt--reset { grid-column: 1 / -1; padding-top: 8px; }
.filters__body .filt--reset .btn { max-width: 280px; }
.v-filterbar .filt__chk { flex-shrink: 0; }
.filt { padding: 18px 0; border-bottom: 1px solid var(--line-2); }
.filt:first-child { padding-top: 0; }
.filt__t { display: block; font-size: 0.82rem; font-weight: 800; margin-bottom: 12px; letter-spacing: 0.01em; }
.filt__region, .filt__sel { width: 100%; padding: 10px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.9rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; }
.filt__region:focus, .filt__sel:focus { border-color: var(--ink); }
/* 필터 — 선택 칩 스타일 (커스텀) */
.filt__list { display: flex; flex-wrap: wrap; gap: 7px; }
.filt__chk { display: inline-flex; align-items: center; gap: 6px; font-size: 0.85rem; color: var(--ink-2); font-weight: 600; cursor: pointer; padding: 7px 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); transition: all 0.14s; }
.filt__chk:hover { border-color: var(--accent); color: var(--accent); }
.filt__chk input { position: absolute; opacity: 0; width: 0; height: 0; }
.filt__chk:has(input:checked) { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 4px 12px -5px rgba(79, 70, 229, 0.5); }
/* 토글(지금 예약 가능만·패키지) — iOS 스위치 */
.filt__toggle { display: flex; align-items: center; gap: 10px; font-size: 0.88rem; font-weight: 700; color: var(--ink-2); cursor: pointer; }
.filt__toggle input { appearance: none; -webkit-appearance: none; position: relative; width: 38px; height: 22px; border-radius: 999px; background: var(--line); cursor: pointer; transition: background 0.18s; flex-shrink: 0; }
.filt__toggle input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: transform 0.18s; }
.filt__toggle input:checked { background: var(--accent); }
.filt__toggle input:checked::after { transform: translateX(16px); }
.results__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; flex-wrap: wrap; }
.results__count { font-size: 1rem; color: var(--muted); }
.results__count b { font-family: var(--serif); font-size: 1.3rem; color: var(--ink); font-weight: 600; margin-right: 2px; }
.results__tools { display: flex; align-items: center; gap: 12px; }
.results__sort { display: flex; align-items: center; gap: 10px; font-size: 0.85rem; color: var(--muted); font-weight: 600; }
.results__sort .filt__sel { width: auto; padding: 9px 12px; }
.srch__empty { text-align: center; padding: 70px 20px; color: var(--faint); }
.srch__empty p { margin-bottom: 16px; }
/* 목록/지도 뷰 토글 */
.viewtoggle { display: inline-flex; background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 3px; }
.viewtoggle__b { padding: 7px 15px; border-radius: 8px; font-size: 0.85rem; font-weight: 700; color: var(--muted); }
.viewtoggle__b.is-active { background: var(--ink); color: #fff; }
/* 키워드 검색바 */
.srch-kw { display: flex; align-items: center; gap: 10px; padding: 4px 8px 4px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-sm); margin-bottom: 16px; }
.srch-kw:focus-within { border-color: var(--ink); }
.srch-kw__ic { font-size: 0.95rem; opacity: 0.7; }
.srch-kw input { flex: 1; border: none; outline: none; background: none; font-size: 0.95rem; font-weight: 600; color: var(--ink); padding: 12px 0; min-width: 0; }
.srch-kw input::placeholder { color: var(--faint); font-weight: 500; }
.srch-kw__clear { width: 30px; height: 30px; border-radius: 50%; color: var(--muted); font-size: 0.8rem; flex-shrink: 0; }
.srch-kw__clear:hover { background: var(--surface-2); }
/* 즉시예약 스위치 + 태그 슬라이더 */
/* #1a: 통합 스마트 필터 바 */
.smartbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 4px 0 14px; padding: 12px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.smartbar__g { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.smartbar__t { font-size: 0.78rem; font-weight: 800; color: var(--muted); white-space: nowrap; }
.smartbar__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.smartchip { border: 1px solid var(--line); background: var(--surface-2); color: var(--ink-2); font: inherit; font-size: 0.82rem; font-weight: 700; padding: 6px 12px; border-radius: 999px; cursor: pointer; transition: all 0.14s; white-space: nowrap; }
.smartchip:hover { border-color: var(--accent); }
.smartchip.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.smartbar__reset { margin-left: auto; border: 0; background: none; color: var(--muted); font: inherit; font-size: 0.8rem; font-weight: 700; cursor: pointer; text-decoration: underline; white-space: nowrap; }
/* #1b: 개별 vs 패키지 가격비교 배지 */
.sp-card__pkg { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 8px 0 0; padding: 7px 11px; border-radius: 9px; background: linear-gradient(90deg, var(--accent-soft), rgba(238,236,253,0.4)); border: 1px solid #ddd8fb; text-decoration: none; }
.sp-card__pkg__l { font-size: 0.76rem; font-weight: 800; color: var(--accent-ink); white-space: nowrap; }
.sp-card__pkg__p { font-size: 0.8rem; font-weight: 700; color: var(--ink); }
.sp-card__pkg__p s { color: var(--faint); font-weight: 600; margin-right: 2px; }
.sp-card__pkg__p em { font-style: normal; font-weight: 800; color: #e2402f; margin-left: 2px; }
.qbar { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.qsw { display: inline-flex; align-items: center; gap: 9px; flex-shrink: 0; font-size: 0.86rem; font-weight: 800; color: var(--muted); white-space: nowrap; }
.qsw__track { position: relative; width: 42px; height: 24px; border-radius: 999px; background: var(--line); transition: background 0.18s; }
.qsw__knob { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: transform 0.18s; }
.qsw.is-on { color: var(--ok); }
.qsw.is-on .qsw__track { background: var(--ok); }
.qsw.is-on .qsw__knob { transform: translateX(18px); }
.qtags-wrap { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent); }
.qtags-wrap::-webkit-scrollbar { display: none; }
.qtags { display: flex; gap: 7px; flex-wrap: nowrap; width: max-content; padding-right: 20px; }
.qtag { flex-shrink: 0; padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; font-size: 0.83rem; font-weight: 700; color: var(--ink-2); background: var(--surface); white-space: nowrap; transition: all 0.15s; }
.qtag:hover { border-color: var(--accent); color: var(--accent); }
.qtag.is-on { background: var(--accent); color: #fff; border-color: var(--accent); }
.qtag-lbl { flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; font-weight: 700; color: var(--faint); white-space: nowrap; padding-right: 2px; }
.qtag-lbl svg { opacity: 0.7; }
.qtag--recent { display: inline-flex; align-items: center; gap: 6px; background: var(--surface-2); border-color: var(--line-2); }
.qtag--recent .qtag__x { display: inline-flex; width: 15px; height: 15px; align-items: center; justify-content: center; border-radius: 50%; font-size: 0.62rem; color: var(--faint); background: rgba(0,0,0,0.06); }
.qtag--recent .qtag__x:hover { background: var(--accent); color: #fff; }
.qtag--clear { flex-shrink: 0; border: 0; background: transparent; color: var(--faint); font-weight: 600; font-size: 0.78rem; padding: 8px 4px; }
.qtag--clear:hover { color: var(--accent); }
.qtag-sep { flex-shrink: 0; width: 1px; align-self: center; height: 18px; background: var(--line); margin: 0 3px; }
.filt__toggle--sm { margin-top: 12px; font-size: 0.84rem; }
@media (max-width: 560px) { .qbar { flex-direction: column; align-items: stretch; gap: 10px; } .qsw { align-self: flex-start; } }
/* 지도 뷰 */
.srch-map { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--surface); }
.srch-map[hidden] { display: none; }
.srch-map__canvas { width: 100%; height: 620px; }
.srch-map__fb { padding: 18px; display: flex; flex-direction: column; gap: 8px; max-height: 640px; overflow-y: auto; }
.srch-map__note { font-size: 0.86rem; color: var(--muted); background: var(--surface-2); padding: 11px 14px; border-radius: 10px; margin-bottom: 6px; }
.smap-pin { display: inline-block; padding: 5px 11px; background: var(--ink); color: #fff; font-size: 0.8rem; font-weight: 800; border-radius: 999px; box-shadow: var(--shadow-sm); white-space: nowrap; border: 2px solid var(--surface); }
.smap-pin--now { background: #059669; }
/* ===== 관리자 콘솔 ===== */
.logo__admin { font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; color: #fff; background: var(--accent); padding: 2px 7px; border-radius: 6px; vertical-align: 2px; margin-left: 4px; }
/* 마이페이지 사업자 승인 배너 */
.mp-bizbanner { margin: 0 0 18px; padding: 14px 18px; border-radius: 12px; font-size: 0.92rem; line-height: 1.55; }
.mp-bizbanner--pending { background: rgba(217,119,6,0.12); border: 1px solid rgba(217,119,6,0.3); color: #92610f; }
.mp-bizbanner--rejected { background: rgba(220,38,38,0.09); border: 1px solid rgba(220,38,38,0.28); color: #b0332a; }
.mp-bizbanner b { font-weight: 800; }
.btn--xs { padding: 5px 10px; font-size: 0.76rem; border-radius: 8px; }
.ad-kpis { display: flex; flex-wrap: wrap; gap: 0; margin-bottom: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; box-shadow: var(--shadow-sm); }
.ad-kpi { flex: 1 1 150px; background: transparent; border: 0; border-right: 1px solid var(--line); border-radius: 0; padding: 14px 16px; display: flex; flex-direction: column; gap: 3px; box-shadow: none; min-width: 0; }
.ad-kpi:last-child { border-right: 0; }
.ad-kpi.hl { background: var(--accent-soft); }
.ad-kpi__ic { font-size: 1.1rem; }
.ad-kpi b { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.ad-kpi__l { font-size: 0.82rem; color: var(--muted); }
.ad-note { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; padding: 14px 18px; background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.25); border-radius: 12px; font-size: 0.92rem; color: var(--ink-2); line-height: 1.55; }
.ad-note > svg { flex-shrink: 0; margin-top: 2px; }
.ad-note__tx { flex: 1; min-width: 0; }
.ad-note--ok { background: rgba(5,150,105,0.08); border-color: rgba(5,150,105,0.25); }
.ad-note b { color: var(--accent); }
/* 승인 카드 */
.ad-appr { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; box-shadow: var(--shadow-sm); }
.ad-appr__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.ad-appr__name { font-size: 1.05rem; font-weight: 800; margin: 0 8px; }
.ad-appr__meta { font-size: 0.8rem; color: var(--faint); }
.ad-appr__act { display: flex; gap: 7px; flex-wrap: wrap; }
.ad-appr__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px 18px; font-size: 0.88rem; color: var(--ink-2); }
.ad-appr__grid > div span { display: inline-block; min-width: 66px; color: var(--faint); font-weight: 700; }
.ad-appr__intro { grid-column: 1 / -1; }
.ad-role { font-size: 0.7rem; font-weight: 800; padding: 3px 9px; border-radius: 999px; }
.ad-role--guest { color: var(--info); background: rgba(37,99,235,0.1); }
.ad-role--host { color: #b45309; background: rgba(217,119,6,0.12); }
.ad-role--vendor { color: var(--accent); background: var(--accent-soft); }
.ad-role--admin { color: #fff; background: var(--ink); }
/* 툴바 */
.ad-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.ad-filters { display: flex; gap: 7px; flex-wrap: wrap; }
.ad-filters .chip b { margin-left: 3px; color: inherit; opacity: 0.7; }
.ad-search { padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.9rem; min-width: 220px; background: var(--surface); color: var(--ink); outline: none; }
/* 섹션 검색바 */
.ad-srch { display: flex; align-items: center; gap: 8px; padding: 9px 13px; margin: 0 0 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.ad-srch:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.ad-srch__ic { display: inline-flex; color: var(--faint); flex-shrink: 0; }
.ad-srch__in { flex: 1; min-width: 0; border: 0; outline: none; background: none; font-size: 0.92rem; color: var(--ink); }
.ad-srch__in::placeholder { color: var(--faint); }
.ad-srch__x { flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; border: 0; background: var(--surface-2); color: var(--muted); font-size: 0.7rem; cursor: pointer; }
.ad-srch__x:hover { background: var(--line); color: var(--ink); }
.ad-search:focus { border-color: var(--ink); }
/* 테이블 */
.ad-table { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--surface); }
.ad-tr { display: grid; grid-template-columns: 80px 1.4fr 1.6fr 90px 1.5fr; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line-2); font-size: 0.88rem; }
.ad-tr:last-child { border-bottom: none; }
.ad-tr--h { background: var(--surface-2); font-size: 0.76rem; font-weight: 800; color: var(--muted); letter-spacing: 0.02em; }
.ad-tr__id b { display: block; font-weight: 700; }
.ad-tr__id em { font-style: normal; font-size: 0.78rem; color: var(--faint); }
.ad-tr__email { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-tr__act { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ad-rolesel { padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 0.78rem; background: var(--surface); color: var(--ink); }
.ad-lock { font-size: 0.78rem; font-weight: 700; color: var(--faint); }
/* 정렬 가능한 헤더 */
.ad-sort { cursor: pointer; user-select: none; display: inline-flex; align-items: center; gap: 3px; transition: color 0.12s; }
.ad-sort:hover { color: var(--accent); }
.ad-sort.is-active { color: var(--accent); font-weight: 800; }
.ad-sort__ar { font-size: 0.62rem; opacity: 0.45; line-height: 1; }
.ad-sort.is-active .ad-sort__ar { opacity: 1; }
/* 관리자 콘솔 확장 */
.ad-h3 { font-family: var(--serif); font-size: 1.15rem; font-weight: 700; margin: 20px 0 12px; }
.ad-h3__s { font-family: "Pretendard", sans-serif; font-size: 0.8rem; font-weight: 600; color: var(--muted); margin-left: 6px; }
.ad-hint { font-size: 0.82rem; color: var(--muted); margin-top: 10px; line-height: 1.6; }
.ad-hint code { background: var(--surface-2); padding: 1px 6px; border-radius: 5px; }
.ad-kpi--money b em { font-size: 0.82rem; font-weight: 600; font-style: normal; color: var(--muted); margin-left: 1px; }
.ad-kpi--money b { font-size: 1.12rem; }
.ad-tr--prod { grid-template-columns: 1.6fr 0.9fr 1fr 0.85fr 0.9fr 1.9fr; }
.ad-tr--bk { grid-template-columns: 1.15fr 1.6fr 1fr 0.95fr 0.9fr 0.8fr; }
.ad-tr--set { grid-template-columns: minmax(120px, 1.3fr) 58px 54px 94px 108px minmax(130px, 1fr) minmax(118px, 0.9fr); align-items: center; }
.ad-set-pay { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.ad-set-pay b { font-weight: 800; }
.ad-set-pay .ad-linkbtn--tax { padding: 0; font-size: 0.72rem; color: var(--accent); white-space: nowrap; }
.ad-table.ad-table--x { overflow-x: auto; overflow-y: visible; }
.ad-table--x .ad-tr--set > span { white-space: nowrap; }
.ad-table--x .ad-tr--set .ad-tr__id { overflow: hidden; text-overflow: ellipsis; }
.ad-role { white-space: nowrap; }
.ad-tr__act--nowrap { flex-wrap: nowrap; white-space: nowrap; justify-content: flex-start; }
.ad-chkcell { display: flex; align-items: center; justify-content: center; }
.ad-chk { width: 16px; height: 16px; cursor: pointer; accent-color: var(--accent); margin: 0; }
.ad-tr--set.is-sel { background: rgba(79, 70, 229, 0.07); }
/* 환불·주문 표 */
.ad-tr--ord { grid-template-columns: 0.85fr 1.35fr 0.85fr 1.6fr 1fr 0.85fr 0.75fr; align-items: center; }
.ad-tr--ord .ad-tr__id em { display: block; font-size: 0.72rem; color: var(--muted); font-weight: 600; }
.ad-table--x .ad-tr--ord > span { white-space: nowrap; }
.ad-ord__it { display: flex; flex-direction: column; gap: 2px; min-width: 0; white-space: normal !important; }
.ad-ord__it i { font-style: normal; font-size: 0.76rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; }
.ad-ord__pr { display: block; font-size: 0.72rem; color: #b45309; font-weight: 700; }
.ad-ord__when b { font-weight: 700; }
.ord-time { display: block; font-size: 0.72rem; color: #059669; font-weight: 600; margin-top: 1px; }
.ord-time--x { color: #b91c1c; }
.ad-ntpush { display: inline-flex; align-items: center; gap: 5px; font-size: 0.85rem; color: var(--muted); white-space: nowrap; }
.ad-ntpush input { accent-color: var(--accent); }
.quote-badge--refund { background: #fef2f2; color: #b91c1c; }
/* #3a: 견적요청 라이브 타이머 + 입찰 배지 */
.rfp-live { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; padding: 10px 14px; margin-bottom: 12px; border-radius: 10px; background: linear-gradient(90deg, #fff7ed, #fffaf3); border: 1px solid #fde3c4; }
.rfp-live__timer { font-size: 0.86rem; font-weight: 800; color: #b45309; }
.rfp-live__timer.is-urgent { color: #dc2626; }
.rfp-live__timer.is-over { color: var(--muted); }
.rfp-live__timer b { font-weight: 800; }
.rfp-live__bids { display: inline-flex; align-items: center; gap: 4px; font-size: 0.8rem; font-weight: 700; color: var(--ink-2); }
.rfp-live__bids b { color: var(--accent); }
.rfp-live__cmp { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--accent); background: var(--surface); color: var(--accent); font: inherit; font-size: 0.78rem; font-weight: 800; padding: 5px 11px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.rfp-live__cmp:hover { background: var(--accent-soft); }
/* #3b: 견적 1:1 비교 모달 */
.qcmp-cat { margin-top: 16px; }
.qcmp-cat__h { font-size: 0.9rem; font-weight: 800; color: var(--ink); margin-bottom: 8px; }
.qcmp-cat__h span { font-size: 0.74rem; font-weight: 600; color: var(--muted); margin-left: 4px; }
.qcmp-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; }
.qcmp-col { border: 1px solid var(--line); border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.qcmp-col.is-low { border-color: var(--accent); background: var(--accent-soft); }
.qcmp-col__nm { font-size: 0.85rem; font-weight: 800; color: var(--ink); }
.qcmp-low { font-size: 0.66rem; font-weight: 800; color: #fff; background: var(--accent); padding: 1px 6px; border-radius: 999px; }
.qcmp-col__price { font-size: 1.15rem; font-weight: 800; color: var(--accent); }
.qcmp-col__rate { font-size: 0.78rem; color: var(--muted); display: flex; align-items: center; gap: 3px; }
.qcmp-col__desc { font-size: 0.78rem; color: var(--ink-2); line-height: 1.5; flex: 1; }
.qcmp-col .btn { margin-top: 4px; }
/* 취소 정책 계산 박스(환불 모달) */
.ad-cancelbox { border: 1px solid var(--line-2); border-radius: 12px; padding: 14px 16px; background: var(--surface-2); }
.ad-cancelbox__tier { display: flex; align-items: center; gap: 6px; font-size: 0.9rem; font-weight: 800; color: var(--accent); margin-bottom: 10px; }
.ad-cancelbox__row { display: flex; justify-content: space-between; align-items: center; font-size: 0.92rem; padding: 4px 0; }
.ad-cancelbox__row b { font-weight: 800; font-size: 1.05rem; }
.ad-cancelbox__row--pen { color: #b45309; border-top: 1px dashed var(--line-2); margin-top: 4px; padding-top: 8px; }
/* 주문 취소 모달 표 색상(그리드는 .ad-pdrow 정의 뒤에서 지정) */
.ad-pdrow__rf { color: #059669; font-weight: 700; }
.ad-pdrow__pen { color: #b45309; font-weight: 700; }
/* 수수료율 관리 표 */
.ad-tr--fee { grid-template-columns: minmax(140px, 1.6fr) 84px minmax(150px, 1fr) 80px 84px 84px; cursor: pointer; }
.ad-tr--fee:hover { background: rgba(79, 70, 229, 0.05); }
.ad-fee-rate { font-size: 1rem; font-weight: 800; color: var(--accent); }
.ad-fee-rate.is-mix { color: #b45309; font-size: 0.88rem; }
.ad-fee-tag { font-style: normal; font-size: 0.68rem; font-weight: 700; padding: 1px 6px; border-radius: 999px; margin-left: 4px; }
.ad-fee-tag--cust { color: var(--accent); background: var(--accent-soft); }
.ad-fee-tag--def { color: var(--faint); background: var(--surface-2); }
@media (max-width: 860px) {
  .ad-tr--fee { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 14px 16px; }
  .ad-tr--fee > span { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0; }
  .ad-tr--fee > span[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.82rem; font-weight: 600; }
  .ad-tr--fee .ad-tr__id { padding: 0 0 2px; font-size: 1.05rem; }
}
/* 섹션 바(제목 + 우측 툴바) */
.ad-secbar { display: flex; justify-content: space-between; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin: 20px 0 12px; }
.ad-secbar__act { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ad-segtabs { display: inline-flex; background: var(--surface-2); border-radius: 9px; padding: 3px; gap: 2px; }
.ad-seg { border: 0; background: none; padding: 5px 11px; border-radius: 7px; font-size: 0.78rem; font-weight: 700; color: var(--muted); cursor: pointer; font-family: inherit; }
.ad-seg b { color: inherit; margin-left: 2px; }
.ad-seg.is-active { background: var(--surface); color: var(--accent); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }
.ad-bulkbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; background: rgba(79, 70, 229, 0.07); border: 1px solid rgba(79, 70, 229, 0.22); border-radius: 10px; margin-bottom: 10px; font-size: 0.86rem; }
/* 지표 툴팁 (?) */
.ad-tip { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; margin-left: 5px; border-radius: 50%; background: var(--surface-2); border: 1px solid var(--line); color: var(--muted); cursor: help; vertical-align: middle; }
.ad-tip i { font-style: normal; font-size: 0.62rem; font-weight: 800; line-height: 1; }
.ad-tip__bub { position: absolute; bottom: calc(100% + 9px); left: 50%; transform: translateX(-50%); width: 236px; max-width: 60vw; background: var(--ink); color: #fff; padding: 9px 11px; border-radius: 9px; font-size: 0.76rem; font-weight: 500; line-height: 1.5; text-align: left; opacity: 0; visibility: hidden; transition: opacity 0.15s; z-index: 60; box-shadow: var(--shadow-lg); pointer-events: none; }
.ad-tip__bub::after { content: ""; position: absolute; top: 100%; left: calc(50% - var(--tipShift, 0px)); transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--ink); }
.ad-tip:hover .ad-tip__bub, .ad-tip:focus .ad-tip__bub { opacity: 1; visibility: visible; }
.ad-tr--mem { grid-template-columns: 1.6fr 0.7fr 1.2fr; }
.ad-tr--u { grid-template-columns: 76px 1.4fr 1fr 84px 1.7fr; }
.ad-tr__rev { font-weight: 700; color: var(--ink-2); }
.ad-refund-done { font-size: 0.76rem; color: var(--faint); }
.ad-refund .btn { justify-content: center; }
/* 패키지 관리 */
.ad-pkgs { display: flex; flex-direction: column; gap: 8px; }
.ad-pkg { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.ad-pkg__body b { font-weight: 700; }
.ad-pkg__body span { display: block; font-size: 0.8rem; color: var(--muted); margin-top: 2px; }
.ad-pkg__act { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
/* 공지 */
.ad-notice-form { display: flex; gap: 8px; margin-bottom: 12px; }
.ad-notices { display: flex; flex-direction: column; gap: 8px; }
.ad-notice { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }
.ad-notice b { font-weight: 700; }
.ad-notice span { font-size: 0.78rem; color: var(--faint); margin-left: 8px; }
/* 문의 */
.ad-inqs { display: flex; flex-direction: column; gap: 10px; }
.ad-inq { padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.ad-inq__top { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 0.9rem; }
.ad-inq__top b { font-weight: 700; }
.ad-inq__top span { font-size: 0.78rem; color: var(--faint); }
.ad-inq__q { font-size: 0.9rem; color: var(--ink-2); line-height: 1.55; }
.ad-inq__a { font-size: 0.88rem; color: var(--accent); background: var(--accent-soft); padding: 9px 12px; border-radius: 9px; margin-top: 8px; }
.ad-inq__form { display: flex; gap: 8px; margin-top: 10px; }
/* 리뷰 모니터링 */
.ad-revs { display: flex; flex-direction: column; gap: 10px; }
.ad-rev { padding: 14px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.ad-rev.is-hidden { opacity: 0.55; }
.ad-rev__top { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; font-size: 0.9rem; }
.ad-rev__top span { color: var(--gold); font-size: 0.82rem; }
.ad-rev__txt { font-size: 0.9rem; color: var(--ink-2); line-height: 1.55; margin-bottom: 8px; }
.ad-rev__ph { display: flex; gap: 7px; margin-bottom: 8px; }
.ad-rev__ph img { width: 64px; height: 64px; object-fit: cover; border-radius: 9px; }
/* 홈 공지 배너 */
.noticebar { display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: center; padding: 9px 18px; background: var(--ink); color: #fff; font-size: 0.85rem; font-weight: 600; }
.noticebar[hidden] { display: none; }
/* 실시간 데이터 유입 토스트 */
.live-toast { position: fixed; left: 20px; bottom: 20px; z-index: 400; max-width: 340px; display: flex; align-items: center; gap: 9px; padding: 12px 16px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-left: 3px solid var(--ok); border-radius: 12px; box-shadow: var(--shadow-lg); font-size: 0.86rem; font-weight: 600; opacity: 0; transform: translateY(12px); transition: opacity 0.25s, transform 0.25s; pointer-events: none; }
.live-toast.show { opacity: 1; transform: translateY(0); }
.live-toast__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); flex-shrink: 0; animation: livePulse 1.4s ease-in-out infinite; }
@keyframes livePulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(5, 150, 105, 0.5); } 50% { box-shadow: 0 0 0 6px rgba(5, 150, 105, 0); } }
/* 마이페이지 정렬·기간 툴바 */
.mp-toolbar { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 14px; }
/* A-3: 공간 견적요청 파이프라인 3단계 */
.hpipe { display: flex; align-items: stretch; gap: 6px; margin-bottom: 12px; }
.hpipe__stage { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 14px 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); cursor: pointer; font: inherit; transition: border-color 0.14s, background 0.14s, box-shadow 0.14s; }
.hpipe__stage:hover { border-color: var(--accent); }
.hpipe__stage.is-on { border-color: var(--accent); background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent); }
.hpipe__n { font-size: 1.5rem; font-weight: 800; color: var(--ink); line-height: 1; letter-spacing: -0.02em; }
.hpipe__l { font-size: 0.8rem; font-weight: 700; color: var(--muted); }
.hpipe__stage.is-on .hpipe__n, .hpipe__stage.is-on .hpipe__l { color: var(--accent); }
.hpipe__arrow { display: flex; align-items: center; color: var(--faint); font-size: 1.1rem; font-weight: 700; }
.hpipe-sub { margin-right: auto; }
@media (max-width: 560px) { .hpipe { gap: 3px; } .hpipe__stage { padding: 11px 4px; } .hpipe__n { font-size: 1.2rem; } .hpipe__l { font-size: 0.7rem; } .hpipe__arrow { font-size: 0.85rem; } }
/* A-4: 매출 리포트(공간 단독 vs 패키지) */
.smix { border: 1px solid var(--line-2); border-radius: 12px; padding: 16px; margin-top: 16px; background: var(--surface); }
.smix__h { font-size: 0.95rem; font-weight: 800; color: var(--ink); margin-bottom: 12px; }
.smix__h span { font-size: 0.76rem; font-weight: 600; color: var(--muted); margin-left: 4px; }
.smix__bar { display: flex; height: 16px; border-radius: 999px; overflow: hidden; background: var(--surface-2); }
.smix__solo { background: var(--accent); }
.smix__pkg { background: #d9992f; }
.smix__legend { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.smix__item { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 7px; }
.smix__dot { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; align-self: center; }
.smix__dot--solo { background: var(--accent); }
.smix__dot--pkg { background: #d9992f; }
.smix__lbl { font-size: 0.82rem; font-weight: 700; color: var(--ink); }
.smix__item b { font-size: 0.95rem; font-weight: 800; }
.smix__item em { font-style: normal; font-size: 0.74rem; color: var(--muted); }
.smix__tip { margin: 12px 0 0; font-size: 0.8rem; color: var(--muted); line-height: 1.55; background: var(--surface-2); border-radius: 8px; padding: 9px 12px; }
/* B-1: 현장 진행 상태 트래커 */
.jobtrk { border: 1px solid var(--line-2); border-radius: 12px; padding: 14px 16px; margin-top: 12px; background: var(--surface-2); }
.jobtrk__h { font-size: 0.88rem; font-weight: 800; color: var(--ink); margin-bottom: 12px; }
.jobtrk__h span { font-size: 0.74rem; font-weight: 600; color: var(--muted); margin-left: 4px; }
.jobtrk__steps { display: flex; align-items: center; gap: 4px; margin-bottom: 12px; }
.jobtrk__step { display: flex; flex-direction: column; align-items: center; gap: 4px; flex-shrink: 0; }
.jobtrk__line { flex: 1; height: 2px; background: var(--line); border-radius: 2px; }
.jobtrk__dot { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.78rem; font-weight: 800; background: var(--surface); border: 1.5px solid var(--line); color: var(--muted); }
.jobtrk__l { font-size: 0.68rem; font-weight: 700; color: var(--muted); white-space: nowrap; }
.jobtrk__step.is-done .jobtrk__dot { background: var(--ok); border-color: var(--ok); color: #fff; }
.jobtrk__step.is-cur .jobtrk__dot { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 0 0 3px var(--accent-soft); }
.jobtrk__step.is-cur .jobtrk__l, .jobtrk__step.is-done .jobtrk__l { color: var(--ink); }
.jobtrk__act { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.jobtrk__wait, .jobtrk__fin { font-size: 0.78rem; color: var(--muted); font-weight: 700; }
.jobtrk__fin { color: var(--ok); }
/* 게스트용 현장 상태 칩 */
.job-chip { display: inline-flex; align-items: center; font-size: 0.74rem; font-weight: 800; padding: 3px 9px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); }
.job-chip--s3 { background: #e7f6ee; color: #067a4b; }
@media (max-width: 560px) { .jobtrk__l { font-size: 0.6rem; } .jobtrk__dot { width: 22px; height: 22px; font-size: 0.7rem; } }
/* B-2: CAPA 한도 초과 표시 */
.vq-capfull { font-size: 0.82rem; font-weight: 700; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; padding: 7px 12px; }
/* B-3: 연동 현황 */
.mg-h__s { font-size: 0.76rem; font-weight: 600; color: var(--muted); margin-left: 4px; }
.vlink-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 10px; margin-bottom: 8px; background: var(--surface); }
.vlink-row--warn { border-color: #fed7aa; background: #fff7ed; }
.vlink-row__l { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.vlink-row__l b { font-size: 0.92rem; font-weight: 800; }
.vlink-row__l span { font-size: 0.78rem; color: var(--muted); }
.vlink-row__st { flex-shrink: 0; font-size: 0.8rem; font-weight: 700; color: var(--muted); }
.vlink-st--warn { color: #b45309; }
.vlink-st--ok { color: #067a4b; }
.vlink-row__st b { color: var(--accent); }
.mp-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; background: var(--surface-2); border-radius: 10px; padding: 4px; }
.mp-seg__b { border: 0; background: none; padding: 6px 11px; border-radius: 7px; font-size: 0.8rem; font-weight: 700; color: var(--muted); cursor: pointer; font-family: inherit; white-space: nowrap; }
.mp-seg__b b { color: inherit; margin-left: 2px; font-weight: 800; }
.mp-seg__b:hover { color: var(--ink); }
.mp-seg__b.is-on { background: var(--surface); color: var(--accent); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }
.mp-daterange { display: inline-flex; align-items: center; gap: 6px; }
.mp-daterange input[type="date"] { padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--ink); font-size: 0.82rem; font-family: inherit; }
.mp-daterange.is-on input[type="date"] { border-color: var(--accent); }
.mp-daterange__t { color: var(--faint); font-weight: 700; }
.settle-toolbar { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.settle-nav { display: inline-flex; align-items: center; gap: 12px; }
.settle-nav b { font-family: var(--serif); font-size: 1.05rem; font-weight: 700; min-width: 82px; text-align: center; }
.settle-nav__b { width: 32px; height: 32px; border-radius: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.settle-nav__b:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
.settle-nav__b:disabled { opacity: 0.35; cursor: default; }
.noticebar__item { white-space: nowrap; }
/* 통계 차트 */
.ad-chart { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px 12px 4px; margin-bottom: 8px; }
.chart { width: 100%; height: auto; display: block; }
.chart-x { fill: var(--faint); font-size: 11px; font-weight: 600; }
.chart-v { fill: var(--ink); font-size: 10px; font-weight: 800; }
.ad-chart rect[data-amt] { cursor: pointer; transition: opacity 0.12s; }
.ad-chart rect[data-amt]:hover { opacity: 1 !important; }
.chart-tip { position: fixed; z-index: 700; pointer-events: none; background: var(--ink); color: #fff; font-size: 0.8rem; font-weight: 700; padding: 7px 11px; border-radius: 9px; box-shadow: var(--shadow-lg); white-space: nowrap; display: flex; gap: 6px; align-items: center; }
.chart-tip b { color: #fff; font-weight: 800; opacity: 0.75; }
.chart-tip[hidden] { display: none; }
.ad-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ad-rank { display: flex; flex-direction: column; gap: 6px; }
.ad-rankrow { display: flex; align-items: center; gap: 10px; padding: 9px 13px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; font-size: 0.9rem; }
.ad-rankrow b { flex: 1; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-rank__n { width: 22px; height: 22px; flex-shrink: 0; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-size: 0.76rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.ad-rank__v { font-size: 0.8rem; color: var(--muted); white-space: nowrap; }
/* 쿠폰·포인트 폼 */
.ad-cform { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.ad-inp { padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; font-size: 0.86rem; background: var(--surface); color: var(--ink); outline: none; flex: 1; min-width: 130px; }
.ad-inp:focus { border-color: var(--ink); }
.ad-inp--sm { flex: 0 0 auto; min-width: 96px; width: 110px; }
.ad-tr--cp { grid-template-columns: 1.2fr 0.9fr 0.9fr 0.8fr 0.7fr 0.8fr 0.9fr 1fr; }
.ad-tr--cp code { background: var(--surface-2); padding: 2px 7px; border-radius: 6px; font-size: 0.82rem; }
.ad-scope { font-size: 0.74rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.ad-bearer { font-size: 0.72rem; font-weight: 800; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.ad-bearer--platform { color: var(--accent); background: var(--accent-soft); }
.ad-bearer--provider { color: #047857; background: rgba(5,150,105,0.1); }
.ad-kpi--mkt b { color: #c0432c; }
.ad-tr--pt { grid-template-columns: 1.4fr 0.8fr 1.4fr 0.9fr 0.7fr; }
.ad-pt-pos { color: var(--ok); font-weight: 800; }
.ad-pt-neg { color: #dc2626; font-weight: 800; }
/* 시스템 설정 */
.ad-cfg { margin-bottom: 14px; }
.ad-cfg__l { display: block; font-size: 0.84rem; font-weight: 700; color: var(--ink-2); margin-bottom: 6px; }
.ad-cfg textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font-family: inherit; font-size: 0.9rem; line-height: 1.6; resize: vertical; outline: none; background: var(--surface); color: var(--ink); }
.ad-cfg textarea:focus { border-color: var(--ink); }
/* 이용 약관 관리 */
.ad-legal { border: 1px solid var(--line); border-radius: 14px; margin-bottom: 12px; background: var(--surface); overflow: hidden; }
.ad-legal__top { width: 100%; display: flex; align-items: center; gap: 8px; padding: 15px 16px; background: transparent; border: 0; cursor: pointer; text-align: left; font: inherit; color: var(--ink); }
.ad-legal__top:hover { background: var(--surface-2); }
.ad-legal__top b { font-size: 1rem; font-weight: 800; }
.ad-legal__chev { margin-left: auto; color: var(--faint); display: inline-flex; }
.ad-legal__chev svg { transform: rotate(90deg); transition: transform 0.18s; }
.ad-legal__top.is-open .ad-legal__chev svg { transform: rotate(-90deg); color: var(--accent); }
.ad-legal__body { padding: 0 16px 16px; }
.ad-legal__row { display: flex; gap: 8px; margin-bottom: 8px; }
.ad-legal__row .ad-inp { margin: 0; }
.ad-legal__row .ad-inp:first-child { flex: 1 1 auto; min-width: 0; }
.ad-legal__row .ad-inp:last-child { flex: 0 0 200px; width: 200px; max-width: 44%; }
@media (max-width: 560px) { .ad-legal__row { flex-wrap: wrap; } .ad-legal__row .ad-inp:last-child { flex: 1 1 100%; width: auto; max-width: none; } }
.ad-legal__ta { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 0.82rem; line-height: 1.6; resize: vertical; outline: none; background: var(--surface-2); color: var(--ink); }
.ad-legal__ta:focus { border-color: var(--ink); background: var(--surface); }
.ad-legal__act { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.ad-legal__act .btn { margin: 0; }
.ad-legal__act .btn--accent { margin-left: auto; }
.ad-tr--adm { grid-template-columns: 1.4fr 1.6fr 1.4fr; }
.ad-permlist { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
/* 회원 상세 정보 모달 */
.ad-info__grid { display: block; }
.ad-info__grid > div { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line-2); font-size: 0.9rem; color: var(--ink); }
.ad-info__grid > div span { flex-shrink: 0; width: 108px; color: var(--faint); font-weight: 700; }
.ad-info__grid > div b { color: var(--ink); font-weight: 800; }
.ad-info__sec { font-size: 0.82rem; font-weight: 800; color: var(--muted); margin: 18px 0 6px; }
/* 패키지 쿠폰 입력 */
.pkgm__coupon { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.pkgm__coupon input { flex: 1; min-width: 140px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.9rem; background: var(--surface); color: var(--ink); outline: none; }
.pkgm__coupon input:focus { border-color: var(--ink); }
.pkgm__couponmsg { flex: 1 1 100%; font-size: 0.82rem; font-weight: 600; }
.pkgm__couponmsg.ok { color: var(--ok); }
.pkgm__couponmsg.no { color: var(--accent); }
/* 마이페이지 포인트·쿠폰 */
.mp-points { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-bottom: 18px; padding: 13px 18px; background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.22); border-radius: 12px; font-size: 0.9rem; color: var(--ink-2); }
.mp-points b { color: var(--accent); font-weight: 800; }
.mp-points__bal { display: inline-flex; align-items: center; gap: 6px; }
.mp-cpbtn { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; font-family: inherit; font-size: 0.88rem; font-weight: 700; color: var(--accent); background: var(--surface); border: 1px solid rgba(79,70,229,0.35); border-radius: 999px; padding: 8px 14px; cursor: pointer; transition: background 0.13s, box-shadow 0.13s; }
.mp-cpbtn:hover { background: #fff; box-shadow: var(--shadow-sm); }
.mp-cpbtn b { color: var(--accent); }
.mp-cpbtn__chev { font-size: 1.1rem; line-height: 1; margin-left: -1px; }
@media (max-width: 640px) { .mp-cpbtn { margin-left: 0; width: 100%; justify-content: center; } }
/* 쿠폰 모달 */
.modal__card--narrow { max-width: 360px; }
.cpm__note { display: flex; align-items: flex-start; gap: 6px; font-size: 0.82rem; color: var(--ink-2); background: var(--accent-soft); border-radius: 10px; padding: 10px 13px; margin: 2px 0 12px; line-height: 1.45; }
/* 안내문은 반드시 하나의 span으로 감싼다 — flex 컨테이너에서 텍스트 노드와 <b>가 각각
   flex 아이템이 되면 좁은 모달에서 '결제 화/면'처럼 단어 중간이 잘려 보인다 */
.cpm__note > span { flex: 1 1 auto; min-width: 0; word-break: keep-all; }
.cpm__note svg { flex-shrink: 0; margin-top: 1px; color: var(--accent); }
.cpm__note b { color: var(--accent); font-weight: 800; }
.cpm__list { display: flex; flex-direction: column; gap: 10px; }
.cpm__item { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px dashed var(--line-2); border-radius: 12px; padding: 14px 16px; background: var(--surface-2); }
.cpm__disc { display: flex; flex-direction: column; gap: 3px; }
.cpm__disc b { font-family: var(--serif); font-size: 1.15rem; font-weight: 800; color: var(--accent); }
.cpm__code { font-size: 0.76rem; font-weight: 700; color: var(--faint); letter-spacing: 0.02em; }
.cpm__cond { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; font-size: 0.78rem; font-weight: 600; color: var(--ink-2); text-align: right; }
.cpm__cond span { color: var(--faint); }
.mp-reviewed { display: inline-flex; align-items: center; gap: 4px; font-size: 0.82rem; font-weight: 700; color: var(--gold); padding: 6px 4px; }
/* 게스트 대시보드 — 다가오는 일정 카드 */
.dash-upwrap { margin-top: 20px; }
.dash-h--main { font-size: 1.05rem; margin-bottom: 14px; }
.dash-upcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.upcard { display: flex; flex-direction: column; text-align: left; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; cursor: pointer; font-family: inherit; box-shadow: var(--shadow-sm); transition: transform 0.18s, box-shadow 0.18s; }
.upcard:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.upcard__thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.upcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
/* 사진이 없는 일정(견적 요청 등) — 빈 박스로 남지 않게 카테고리 아이콘을 중앙에 표시하고 높이를 낮춘다 */
.upcard__thumb--ico { aspect-ratio: 21/9; display: flex; align-items: center; justify-content: center; }
.upcard__ico { display: flex; color: rgba(255, 255, 255, 0.92); }
.upcard__badge { position: absolute; top: 12px; left: 12px; font-size: 0.72rem; font-weight: 800; padding: 4px 10px; border-radius: 999px; box-shadow: var(--shadow-sm); }
.upcard__dday { position: absolute; top: 12px; right: 12px; font-size: 0.72rem; font-weight: 800; color: #fff; background: rgba(16,14,30,0.62); backdrop-filter: blur(4px); padding: 4px 10px; border-radius: 999px; }
.upcard__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; }
.upcard__kicker { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.02em; color: var(--accent); }
.upcard__title { font-family: var(--serif); font-size: 1.12rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.3; }
.upcard__meta { display: flex; align-items: center; gap: 5px; font-size: 0.83rem; font-weight: 600; color: var(--ink-2); }
.upcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--line-2); }
.upcard__more { font-size: 0.82rem; font-weight: 700; color: var(--accent); }
.dash-upempty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 48px 20px; color: var(--muted); text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
.dash-upempty svg { color: var(--faint); }
.dash-upempty p { line-height: 1.5; }
@media (max-width: 860px) { .ad-2col { grid-template-columns: 1fr; } .ad-tr--cp, .ad-tr--pt, .ad-tr--adm { grid-template-columns: 1fr 1fr; } }
@media (max-width: 860px) {
  .ad-tr--prod, .ad-tr--bk { grid-template-columns: 1fr 1fr; gap: 6px 10px; }
  .ad-tr--prod .ad-tr__act, .ad-tr--bk .ad-tr__act { grid-column: 1 / -1; }
  /* 정산 표 → 라벨 카드형 */
  .ad-table.ad-table--x { overflow-x: visible; }
  .ad-tr--set, .ad-tr--ord { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 14px 16px; }
  .ad-tr--set > span, .ad-tr--ord > span { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 0; white-space: normal !important; min-width: 0; }
  .ad-tr--set > span[data-label]::before, .ad-tr--ord > span[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.82rem; font-weight: 600; flex-shrink: 0; }
  .ad-tr--ord.ad-tr--h { display: none; }
  .ad-ord__it { align-items: flex-end; }
  .ad-tr--set .ad-tr__id { padding: 0 0 2px; font-size: 1.05rem; }
  .ad-tr--set .ad-tr__id b { font-weight: 800; }
  .ad-tr--set .ad-set-role { justify-content: flex-start; padding: 0 0 9px; border-bottom: 1px solid var(--line-2); margin-bottom: 5px; }
  .ad-tr--set .ad-set-pay { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .ad-tr--set .ad-set-pay b { margin-left: auto; font-size: 1.08rem; }
  .ad-tr--set .ad-set-pay .ad-linkbtn--tax { flex-basis: 100%; justify-content: flex-end; margin-top: 5px; }
  .ad-tr--set .ad-st__wrap { flex-direction: row; align-items: center; gap: 8px; flex-wrap: wrap; }
  .ad-tr--set .ad-st__wrap::before { margin-right: auto; }
  /* 회원 목록 → 라벨 카드형 */
  .ad-tr--u { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 14px 16px; position: relative; }
  .ad-tr--u > span { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 0; white-space: normal !important; min-width: 0; }
  .ad-tr--u > span[data-label]::before { content: attr(data-label); color: var(--muted); font-size: 0.82rem; font-weight: 600; flex-shrink: 0; }
  .ad-tr--u .ad-tr__id { padding: 0 70px 8px 0; border-bottom: 1px solid var(--line-2); margin-bottom: 5px; }
  .ad-tr--u .ad-tr__id b { font-size: 1.05rem; font-weight: 800; }
  .ad-tr--u .ad-u-role { position: absolute; top: 14px; right: 16px; padding: 0; }
  .ad-tr--u .ad-tr__act { border-top: 1px solid var(--line-2); margin-top: 6px; padding-top: 10px; justify-content: flex-start; flex-wrap: wrap; gap: 7px; }
  .ad-tr--u .ad-rolesel { flex: 1 0 96px; }
}
.ad-del { color: #dc2626; border: 1px solid #fecaca; background: #fff; }
.ad-del:hover { background: #fef2f2; }
.ad-st { font-size: 0.72rem; font-weight: 800; padding: 3px 8px; border-radius: 999px; color: var(--faint); background: var(--surface-2); }
.ad-st--ok { color: var(--ok); background: rgba(5,150,105,0.1); }
.ad-st--pend { color: #b45309; background: rgba(217,119,6,0.12); }
.ad-st--info { color: var(--accent); background: var(--accent-soft); }
.ad-st--rej { color: #dc2626; background: rgba(220,38,38,0.1); }
.ad-st--req { color: #b45309; background: rgba(217,119,6,0.12); }
/* PG 자동 분리정산 — 정산 상태 셀 + 안내 + 세금계산서 조회 */
.ad-st__wrap { display: inline-flex; flex-direction: column; gap: 2px; align-items: flex-start; }
.ad-st__sub { font-size: 0.68rem; font-weight: 700; color: var(--faint); white-space: nowrap; }
.ad-linkbtn--tax { display: inline-flex; align-items: center; gap: 4px; font-size: 0.74rem; }
.ad-note--pg { background: rgba(5,150,105,0.07); border-color: rgba(5,150,105,0.28); }
.ad-note--pg b { color: #047857; }
.ad-note__s { display: block; margin-top: 4px; font-size: 0.82rem; color: var(--muted); font-weight: 600; }
.ad-taxbox { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.ad-taxbox__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 14px; font-size: 0.86rem; color: var(--ink-2); border-bottom: 1px solid var(--line-2); }
.ad-taxbox__row:last-child { border-bottom: 0; }
.ad-taxbox__row b { font-weight: 800; color: var(--ink); }
.ad-taxbox__row--tot { background: var(--surface-2); }
.ad-taxbox__no { font-family: ui-monospace, monospace; letter-spacing: 0.02em; color: var(--accent) !important; }
/* PG 자동정산 — 마이페이지 정산 패널 */
.payout-box--pg { display: flex; align-items: flex-start; gap: 8px; padding: 14px 16px; background: rgba(5,150,105,0.08); border: 1px solid rgba(5,150,105,0.28); border-radius: 12px; font-size: 0.9rem; color: var(--ink-2); line-height: 1.55; }
.payout-box--pg svg { flex-shrink: 0; margin-top: 1px; color: #047857; }
.payout-box--pg b { color: #047857; font-weight: 800; }
.settle-acct__pg { font-size: 0.72rem; font-weight: 700; color: #047857; background: rgba(5,150,105,0.1); padding: 2px 8px; border-radius: 999px; margin-left: 4px; }
.settle-split { margin-top: 14px; }
.settle-split__bar { display: flex; height: 12px; border-radius: 999px; overflow: hidden; background: var(--line-2); }
.settle-split__done { background: var(--ok); }
.settle-split__sched { background: rgba(217,119,6,0.55); }
.settle-split__lbl { display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; font-size: 0.82rem; color: var(--muted); }
.settle-split__lbl b { color: var(--ink); font-weight: 800; }
.settle-split__lbl .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; vertical-align: middle; }
.settle-split__lbl .dot--done { background: var(--ok); }
.settle-split__lbl .dot--sched { background: rgba(217,119,6,0.7); }
.ad-st--sus { color: #6b7280; background: #e5e7eb; }
/* 서류 모달 */
.ad-doc { margin-bottom: 14px; }
.ad-doc__t { font-size: 0.84rem; font-weight: 800; color: var(--ink-2); margin-bottom: 7px; }
.ad-doc__files { display: flex; flex-wrap: wrap; gap: 8px; }
.ad-doc__files img { width: 100px; height: 78px; object-fit: cover; border-radius: 9px; border: 1px solid var(--line); }
.ad-doc__file { font-size: 0.82rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 8px 12px; border-radius: 9px; }
/* 일괄 등록 */
.ad-bulk { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 22px; box-shadow: var(--shadow-sm); max-width: 720px; }
.ad-bulk__t { font-family: var(--serif); font-size: 1.2rem; font-weight: 700; margin-bottom: 8px; }
.ad-bulk__d { font-size: 0.86rem; color: var(--muted); line-height: 1.6; margin-bottom: 14px; }
.ad-bulk__d code { background: var(--surface-2); padding: 1px 6px; border-radius: 5px; font-size: 0.82rem; }
.ad-bulk textarea { width: 100%; padding: 13px 15px; border: 1px solid var(--line); border-radius: 12px; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 0.86rem; line-height: 1.6; resize: vertical; outline: none; background: var(--surface); color: var(--ink); }
.ad-bulk textarea:focus { border-color: var(--ink); }
.ad-bulk__row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 12px; flex-wrap: wrap; }
.ad-bulk__res { margin-top: 12px; font-size: 0.9rem; font-weight: 700; color: var(--ink-2); }
@media (max-width: 720px) {
  .ad-tr { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ad-tr--h { display: none; }
  .ad-tr__email { grid-column: 1 / -1; }
  .ad-tr__act { grid-column: 1 / -1; }
}

/* ============================================================
   호스트 공간 등록 (host.html)
   ============================================================ */
.hostreg { max-width: 1080px; margin: 0 auto; padding: 34px 32px 90px; }
.hostreg__head { margin-bottom: 30px; }
.hostreg__title { font-family: var(--serif); font-size: 2.1rem; font-weight: 600; letter-spacing: -0.025em; margin: 6px 0 8px; }
.hostreg__sub { color: var(--muted); font-size: 0.96rem; line-height: 1.6; word-break: keep-all; max-width: 38em; }
.hostreg__layout { display: grid; grid-template-columns: 1fr 320px; gap: 40px; align-items: start; }
.hf { background: var(--surface); border: 1px solid var(--line-2); border-radius: 20px; padding: 30px; }
.hf-field { margin-bottom: 18px; }
.hf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 520px) { .hf-row { grid-template-columns: 1fr; } }
.hf-label { display: block; font-size: 0.85rem; font-weight: 700; color: var(--ink-2); margin-bottom: 7px; }
.hf-label i { color: var(--accent); font-style: normal; }
.hf-opt { font-weight: 500; color: var(--faint); font-size: 0.78rem; }
.hf-hint { display: block; font-size: 0.78rem; color: var(--faint); margin-top: 5px; }
.hf-hint--ok { color: #047857; font-weight: 700; }
.hf-hint--err { color: #c0432c; font-weight: 700; }
.hf-hint--ok svg, .hf-hint--err svg { vertical-align: -2px; }
/* 계좌 실명인증 — 입력창 + 인증 버튼 인라인 */
.hf-verify { display: flex; gap: 8px; align-items: stretch; }
.hf-verify input { flex: 1; min-width: 0; }
.hf-verify .btn { flex: 0 0 auto; white-space: nowrap; }
.btn--dark { background: var(--ink); color: #fff; border: 1px solid var(--ink); }
.btn--dark:hover { background: #000; }
.btn--dark.is-ok { background: #047857; border-color: #047857; color: #fff; }
.hf input, .hf select, .hf textarea { width: 100%; min-width: 0; max-width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font-size: 0.92rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; transition: border-color 0.15s; }
/* iOS Safari: date/time/number 입력이 네이티브 폭으로 컨테이너를 넘치는 문제 방지 */
.hf input[type="date"], .hf input[type="time"], .hf input[type="datetime-local"], .hf input[type="month"], .hf input[type="number"] { -webkit-appearance: none; appearance: none; }
.hf input[type="date"]::-webkit-date-and-time-value { text-align: left; }
.hf input:focus, .hf select:focus, .hf textarea:focus { border-color: var(--ink); }
.hf textarea { resize: vertical; line-height: 1.6; font-weight: 500; }
.hf-checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.hf-chk { display: flex; align-items: center; gap: 10px; font-size: 0.88rem; font-weight: 600; color: var(--ink-2); cursor: pointer; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; transition: all 0.15s; text-align: left; }
.hf-chk:hover { border-color: var(--accent); }
.hf-chk input { width: auto; flex-shrink: 0; accent-color: var(--accent); }
.hf-chk:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.hf-chk > span { display: flex; align-items: center; gap: 9px; min-width: 0; word-break: keep-all; line-height: 1.35; }
.hf-chk .ic { flex-shrink: 0; width: 30px; height: 30px; padding: 6px; box-sizing: border-box; border-radius: 9px; background: var(--accent-soft); color: var(--accent); }
.hf-chk--space { font-size: 0.94rem; font-weight: 700; color: var(--ink); padding: 13px 14px; margin-bottom: 10px; }
@media (max-width: 560px) { .hf-checks { grid-template-columns: 1fr; } }
.hf-space { border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; background: var(--surface-2); }
.hf-space .hf-row { margin-bottom: 4px; }
.hf-sublabel { font-size: 0.82rem; font-weight: 800; color: var(--muted); margin: 4px 0 8px; }
/* 부대 서비스 — 카테고리별 세부 요청 */
.hf-svc { display: flex; flex-direction: column; }
.hf-svc .ic { vertical-align: -3px; color: var(--accent); }
.hf-svc__note { margin-top: 6px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; font-size: 0.84rem; font-family: inherit; }
/* 예약 진행 공간 배너 */
.rq-venue { display: flex; gap: 14px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 14px; padding: 14px; margin-bottom: 18px; }
.rq-venue[hidden] { display: none; }
/* 카테고리별 요청사항 패널 */
.rqn-title { font-size: 0.92rem; font-weight: 800; margin-bottom: 10px; }
.rqn-title span { font-size: 0.76rem; font-weight: 600; color: var(--faint); margin-left: 4px; }
.rqn-empty { display: flex; align-items: center; gap: 11px; font-size: 0.86rem; line-height: 1.6; word-break: keep-all; color: var(--muted); padding: 15px 16px; background: var(--surface-2); border: 1px dashed var(--line); border-radius: 11px; }
.rqn-empty .ic { flex-shrink: 0; color: var(--accent); }
.rqn-empty b { color: var(--ink-2); }
.rqn { border: 1px solid var(--line); border-radius: 12px; margin-bottom: 8px; overflow: hidden; animation: rqnDown 0.28s cubic-bezier(0.2,0.8,0.2,1); }
@keyframes rqnDown { from { opacity: 0; transform: translateY(-8px); max-height: 0; } to { opacity: 1; transform: none; max-height: 500px; } }
/* 견적 요청 위저드 */
.wz-bar { display: flex; align-items: center; justify-content: center; gap: 6px; max-width: 560px; margin: 0 auto 26px; }
.wz-i { display: flex; align-items: center; gap: 8px; opacity: 0.5; transition: opacity 0.2s; }
.wz-i.is-active, .wz-i.is-done { opacity: 1; }
.wz-i__n { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.82rem; font-weight: 800; background: var(--surface-2); color: var(--muted); border: 1.5px solid var(--line); transition: all 0.2s; }
.wz-i.is-active .wz-i__n { background: var(--accent); color: #fff; border-color: var(--accent); box-shadow: var(--glow); }
.wz-i.is-done .wz-i__n { background: var(--ok); color: #fff; border-color: var(--ok); }
.wz-i__l { font-size: 0.86rem; font-weight: 700; color: var(--ink-2); }
.wz-i__line { flex: 1; max-width: 44px; height: 2px; background: var(--line); }
.wz-nav { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 22px; }
.wz-nav .btn { flex: 1; }
.btn:disabled, .btn[disabled] { opacity: 0.45; cursor: not-allowed; box-shadow: none; transform: none; filter: grayscale(0.3); }
.wz-nav [data-next]:only-child, .wz-nav > span:first-child + [data-next] { flex: 0 0 auto; }
/* 예산 범위 */
.rq-budget { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rq-budget .filt__sel { flex: 1; min-width: 150px; }
.rq-budget input { flex: 1; min-width: 130px; }
.rq-flex { flex: 1 0 100%; display: flex; align-items: center; justify-content: flex-start; gap: 8px; font-size: 0.86rem; font-weight: 700; color: var(--ink-2); white-space: nowrap; cursor: pointer; margin-top: 4px; }
.rq-flex input[type="checkbox"] { width: 18px; height: 18px; min-width: 18px; flex: 0 0 18px; padding: 0; margin: 0; accent-color: var(--accent); cursor: pointer; }
.rq-flex span { flex: 0 0 auto; }
/* 드래그&드롭 업로드 */
.rq-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 26px 18px; border: 2px dashed var(--line); border-radius: 14px; background: var(--surface-2); cursor: pointer; text-align: center; transition: border-color 0.15s, background 0.15s; }
.rq-drop:hover, .rq-drop.is-over { border-color: var(--accent); background: var(--accent-soft); }
.rq-drop__ic { font-size: 1.5rem; color: var(--accent); }
.rq-drop__t { font-size: 0.9rem; font-weight: 700; }
.rq-drop__d { font-size: 0.78rem; color: var(--muted); }
#rqRefFiles { margin-top: 10px; }
/* 요약 */
.rq-review { margin: 16px 0; padding: 16px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 14px; }
.rq-review__t { display: flex; align-items: center; gap: 9px; font-size: 0.95rem; font-weight: 800; color: var(--ink); margin-bottom: 12px; }
.rq-review__ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: var(--accent-soft); color: var(--accent); }
.rq-review__list { list-style: none; display: flex; flex-direction: column; gap: 9px; font-size: 0.9rem; color: var(--ink-2); }
.rq-review__list li { display: flex; align-items: center; gap: 9px; }
.rq-review__list li .ic { flex-shrink: 0; color: var(--accent); }
.rq-review__list li span { min-width: 0; }
.rqn__head { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; background: var(--surface-2); font-weight: 800; font-size: 0.9rem; }
.rqn__ttl .ic { vertical-align: -2px; color: var(--accent); }
.rqn__chev { color: var(--faint); }
.rqn__body { padding: 12px 14px; }
.rqn__optlabel { font-size: 0.8rem; font-weight: 700; color: var(--muted); margin-bottom: 8px; }
.rqn__optlabel b { color: var(--accent); margin-left: 4px; }
.rqn__opts { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.rqn__opt { display: inline-flex; align-items: center; gap: 5px; padding: 6px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: 0.83rem; font-weight: 600; color: var(--ink-2); cursor: pointer; transition: all 0.13s; user-select: none; }
.rqn__opt:hover { border-color: var(--accent); }
.rqn__opt input { width: 15px; height: 15px; margin: 0; accent-color: var(--accent); cursor: pointer; }
.rqn__opt.is-on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 700; }
.rqn__note { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; font-family: inherit; font-size: 0.9rem; resize: vertical; }
/* ── 항목별 희망 예산 + 자동 작성 문장 (견적 요청) ── */
.rqn__bd { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin-bottom: 10px; padding: 10px 12px; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 10px; }
.rqn__bdl { font-size: 0.82rem; font-weight: 700; color: var(--ink-2); display: inline-flex; align-items: center; gap: 5px; }
.rqn__bdin { display: inline-flex; align-items: center; gap: 5px; }
.rqn__bdin input { width: 130px; padding: 7px 10px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; font-size: 0.88rem; text-align: right; background: var(--surface); }
.rqn__bdin span { font-size: 0.82rem; color: var(--muted); font-weight: 700; }
.rqn__bdest { border: 1px solid var(--line-2); background: var(--surface); color: var(--accent); border-radius: 999px; padding: 6px 11px; font-size: 0.78rem; font-weight: 800; cursor: pointer; }
.rqn__bdest:hover { border-color: var(--accent); }
.rqn__bdhint, .rqn__bdrange { font-size: 0.78rem; color: var(--muted); }
.rqn__bdrange { flex: 1 1 100%; }
.rqn__bdrange b { color: var(--accent); }
.rqn__auto { margin-bottom: 10px; padding: 10px 12px; background: var(--accent-soft); border-radius: 10px; }
.rqn__autot { display: flex; align-items: center; gap: 5px; font-size: 0.78rem; font-weight: 800; color: var(--accent); margin-bottom: 6px; }
.rqn__autot em { font-style: normal; font-weight: 700; color: var(--muted); font-size: 0.74rem; }
.rqn__autox { margin: 0; font-family: inherit; font-size: 0.82rem; line-height: 1.6; color: var(--ink-2); white-space: pre-wrap; word-break: keep-all; }
/* 파트너 견적 제출 — 회원 희망 예산 · ±10% 권장 범위 */
.q-bd { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; margin: 0 0 10px; padding: 9px 12px; background: var(--accent-soft); border-radius: 9px; font-size: 0.81rem; color: var(--ink-2); }
.q-bd__l, .q-bd__r { display: inline-flex; align-items: center; gap: 5px; }
.q-bd__l b, .q-bd__r b { color: var(--accent); font-weight: 800; }
.q-price.is-over { border-color: #f0a; box-shadow: 0 0 0 2px rgba(255, 0, 170, 0.12); }
.q-bd__warn { display: block; margin-top: 5px; font-size: 0.78rem; font-weight: 700; color: #b91c1c; }

/* ── 첨부파일 칩 + 미리보기 뷰어 ── */
.atg { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.atg__img { position: relative; width: 74px; height: 74px; padding: 0; border: 1px solid var(--line-2); border-radius: 9px; overflow: hidden; background: var(--surface-2); cursor: zoom-in; }
.atg__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.atg__zoom { position: absolute; left: 0; right: 0; bottom: 0; padding: 2px 0; font-size: 0.68rem; font-weight: 800; color: #fff; background: rgba(0, 0, 0, 0.55); opacity: 0; transition: opacity 0.15s; }
.atg__img:hover .atg__zoom { opacity: 1; }
.atg__doc { display: inline-flex; align-items: center; gap: 6px; max-width: 260px; padding: 8px 11px; border: 1px solid var(--line-2); border-radius: 9px; background: var(--surface-2); font-size: 0.82rem; font-weight: 700; color: var(--ink-2); text-decoration: none; }
.atg__doc:hover { border-color: var(--accent); color: var(--accent); }
.atg__nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.atg__sz { font-style: normal; font-weight: 600; color: var(--faint); font-size: 0.74rem; }
.atg__dl { flex-shrink: 0; font-size: 0.72rem; font-weight: 800; color: var(--accent); }
.atv { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center; }
.atv[hidden] { display: none !important; }
.atv__bd { position: absolute; inset: 0; background: rgba(12, 14, 20, 0.82); }
.atv__card { position: relative; z-index: 1; width: min(94vw, 900px); max-height: 92vh; background: var(--surface); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.atv__top { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.atv__nm { font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.atv__cnt { font-size: 0.8rem; color: var(--muted); font-weight: 700; }
.atv__dl { margin-left: auto; padding: 6px 12px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 0.8rem; font-weight: 800; text-decoration: none; }
.atv__x { border: 0; background: none; font-size: 1.05rem; color: var(--muted); cursor: pointer; padding: 2px 4px; }
.atv__stage { position: relative; display: flex; align-items: center; justify-content: center; background: #0f1115; min-height: 240px; }
.atv__img { max-width: 100%; max-height: calc(92vh - 56px); object-fit: contain; display: block; }
.atv__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.85); color: #111; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.atv__nav--prev { left: 10px; } .atv__nav--next { right: 10px; }

/* ── 파트너 단가표(자동매칭) ── */
.vr-tblwrap { overflow-x: auto; border: 1px solid var(--line-2); border-radius: 10px; }
.vr-tbl { width: 100%; border-collapse: collapse; font-size: 0.86rem; min-width: 720px; }
.vr-tbl thead th { position: sticky; top: 0; background: var(--surface-2); text-align: left; font-size: 0.76rem; font-weight: 800; color: var(--muted); padding: 9px 10px; border-bottom: 1px solid var(--line-2); white-space: nowrap; }
.vr-tbl td { padding: 6px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.vr-tbl tbody tr:last-child td { border-bottom: 0; }
.vr-tbl tbody tr:hover { background: var(--surface-2); }
.vr-tbl .vr-nm { font-weight: 700; color: var(--ink-2); min-width: 190px; }
.vr-tbl .vr-nm em { font-style: normal; font-size: 0.7rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); border-radius: 999px; padding: 2px 7px; margin-left: 4px; }
.vr-ref { display: block; font-size: 0.72rem; font-weight: 600; color: var(--faint); }
.vr-tbl input, .vr-tbl select { width: 100%; min-width: 86px; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; font: inherit; font-size: 0.84rem; background: var(--surface); }
.vr-tbl input[type="number"] { text-align: right; }
.vr-tbl .vp-tg { width: 100%; min-width: 58px; }
.vr-own { background: rgba(99, 102, 241, 0.04); }
.vr-chips { display: flex; flex-wrap: wrap; gap: 7px; }
/* 업종별 안내 문구 */
.vp-guide { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; padding: 9px 12px; background: var(--accent-soft); border-radius: 9px; font-size: 0.81rem; font-weight: 600; color: var(--ink-2); line-height: 1.5; }
.vp-guide svg { flex-shrink: 0; margin-top: 2px; color: var(--accent); }
.vp-guide > span { flex: 1 1 auto; min-width: 0; word-break: keep-all; }
/* 상품 목록 컬럼 헤더 (단가·최소수량·최소금액을 한 줄에) */
.vp-hd { display: grid; grid-template-columns: 40px minmax(120px, 1.5fr) 90px 116px 88px 116px 88px 62px 26px; gap: 8px; padding: 0 10px 6px; font-size: 0.72rem; font-weight: 800; color: var(--muted); }
@media (max-width: 860px) { .vp-hd { display: none; } }
/* 회원 화면 — 파트너 품목별 단가표 */
.vrate { margin: 12px 0; border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; }
.vrate__h { display: flex; align-items: center; gap: 6px; padding: 10px 13px; background: var(--surface-2); font-size: 0.88rem; font-weight: 800; border-bottom: 1px solid var(--line-2); }
.vrate__h span { font-size: 0.76rem; font-weight: 600; color: var(--muted); }
.vrate__tw { overflow-x: auto; }
.vrate__t { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.vrate__t th { text-align: left; font-size: 0.74rem; font-weight: 800; color: var(--muted); padding: 8px 13px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.vrate__t td { padding: 9px 13px; border-bottom: 1px solid var(--line); }
.vrate__t tbody tr:last-child td { border-bottom: 0; }
.vrate__nm { font-weight: 700; color: var(--ink-2); }
.vrate__p { white-space: nowrap; } .vrate__p b { color: var(--accent); font-weight: 800; }
.vrate__m { font-size: 0.78rem; color: var(--muted); white-space: nowrap; }
.vrate__fee, .vrate__note { margin: 0; padding: 8px 13px; font-size: 0.78rem; color: var(--muted); border-top: 1px solid var(--line); }
.vrate__note { background: var(--surface-2); }
/* 업체 카드 — 대표 품목 단가 */
.v-card__rates { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; margin: 8px 0; cursor: pointer; }
.v-rate { display: inline-flex; align-items: baseline; gap: 4px; padding: 4px 9px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--surface-2); font-size: 0.76rem; }
.v-rate em { font-style: normal; color: var(--ink-2); font-weight: 700; max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-rate b { color: var(--accent); font-weight: 800; }
.v-rate i { font-style: normal; color: var(--faint); font-size: 0.72rem; }
.v-rate--more { color: var(--muted); font-weight: 700; }
/* 요청 폼 — 규모 입력 */
.rqn__scale { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; margin-bottom: 10px; padding: 10px 12px; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 10px; }
.rqn__scl { display: flex; flex-direction: column; gap: 4px; font-size: 0.8rem; font-weight: 700; color: var(--ink-2); }
.rqn__sclin { display: inline-flex; align-items: center; gap: 5px; }
.rqn__sclin input { width: 110px; padding: 7px 10px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; font-size: 0.86rem; text-align: right; background: var(--surface); }
.rqn__sclin em { font-style: normal; font-size: 0.8rem; color: var(--muted); font-weight: 700; }
.rqn__sclhint { flex: 1 1 100%; display: flex; align-items: center; gap: 5px; font-size: 0.76rem; color: var(--muted); font-weight: 600; }

/* ── A트랙: 업체 상세에서 품목 담기 ── */
.vrate__pick { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }
.vrate__min { display: block; margin-top: 2px; font-style: normal; font-size: 0.72rem; color: var(--faint); font-weight: 600; }
.vrate__q { width: 74px; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; font: inherit; font-size: 0.84rem; text-align: right; background: var(--surface); }
.vrate__q:disabled { background: var(--surface-2); color: var(--faint); }
.vrate__sumh, .vrate__sum { text-align: right; white-space: nowrap; }
.vrate__sum { color: var(--faint); font-size: 0.84rem; }
.vrate__sum.is-on { color: var(--ink-2); }
.vrate__sum b { color: var(--accent); font-weight: 800; }
.vrate__total { padding: 10px 13px; border-top: 1px solid var(--line-2); background: var(--accent-soft); }
.vrate__tl { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 0.85rem; }
.vrate__tl b { font-weight: 800; }
.vrate__tl--sub { color: var(--muted); font-size: 0.8rem; margin-top: 3px; }
.vrate__tl--fin { margin-top: 6px; padding-top: 7px; border-top: 1px dashed var(--line-2); font-size: 0.95rem; }
.vrate__tl--fin b { color: var(--accent); font-size: 1.12rem; }
.vreq__pickhint { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; font-size: 0.8rem; color: var(--muted); font-weight: 600; }
/* 파트너 카드 — 타 카테고리는 개수만 */
.hreq-etc { font-style: normal; color: var(--faint); font-weight: 600; }
/* 예약 완료 → 견적 요청 유도 배너 */
.svcprompt { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; padding: 13px 16px; background: var(--accent-soft); border: 1px solid var(--line-2); border-radius: 12px; }
.svcprompt__ic { flex-shrink: 0; display: flex; color: var(--accent); }
.svcprompt__tx { flex: 1 1 auto; min-width: 0; font-size: 0.88rem; color: var(--ink-2); }
.svcprompt__tx em { display: block; margin-top: 2px; font-style: normal; font-size: 0.78rem; color: var(--muted); font-weight: 600; }
.svcprompt__x { flex-shrink: 0; border: 0; background: none; color: var(--muted); font-size: 0.95rem; cursor: pointer; padding: 2px 4px; }
@media (max-width: 700px) { .svcprompt { flex-wrap: wrap; } .svcprompt__tx { flex: 1 1 100%; order: 2; } }

/* ── 견적 제출: 품목 동적 테이블 (단가·수량 → 합계 자동 계산) ── */
.qt { margin: 0 0 12px; border: 1px solid var(--line-2); border-radius: 10px; overflow: hidden; }
.qt__h { display: flex; align-items: center; gap: 7px; padding: 9px 12px; background: var(--surface-2); border-bottom: 1px solid var(--line-2); font-size: 0.83rem; font-weight: 800; color: var(--ink-2); }
.qt__h span { font-size: 0.75rem; font-weight: 600; color: var(--muted); }
.qt__fill { margin-left: auto; border: 1px solid var(--line-2); background: var(--surface); color: var(--accent); border-radius: 999px; padding: 5px 10px; font-size: 0.74rem; font-weight: 800; cursor: pointer; white-space: nowrap; }
.qt__fill:hover { border-color: var(--accent); }
/* 폭이 좁아도 잘리지 않게 — 고정폭 대신 비율 컬럼(table-layout:fixed) + 전 요소 min-width:0 */
.qt, .qt__tw, .qt__foot { min-width: 0; }
.qt__tw { overflow-x: hidden; }
.qt__t { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 0.84rem; }
.qt__t th { text-align: left; font-size: 0.72rem; font-weight: 800; color: var(--muted); padding: 7px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.qt__t td { padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.qt__t tbody tr:last-child td { border-bottom: 0; }
.qt__t col.qt-c1 { width: 30px; } .qt__t col.qt-c2 { width: auto; }
.qt__t col.qt-c3 { width: 92px; } .qt__t col.qt-c4 { width: 68px; } .qt__t col.qt-c5 { width: 96px; }
.qt__ck { width: 30px; text-align: center; }
.qt__nm { min-width: 0; }
.qt__nm input { width: 100%; min-width: 0; }
.qt__nm em { display: block; margin-top: 1px; font-style: normal; font-size: 0.7rem; color: var(--faint); font-weight: 700; }
.qt__t input[type="text"], .qt__t input[type="number"] { width: 100%; min-width: 0; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 7px; font: inherit; font-size: 0.83rem; background: var(--surface); }
.qt__t input[type="number"] { text-align: right; -moz-appearance: textfield; }
.qt__t input[type="number"]::-webkit-outer-spin-button, .qt__t input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qt__amh, .qt__am { text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qt__am { color: var(--faint); font-size: 0.83rem; }
.qt__am b { color: var(--accent); font-weight: 800; }
.qt__fee td { background: rgba(99, 102, 241, 0.05); }
.qt__t tr.is-off { opacity: 0.5; }
.qt__foot { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-top: 1px solid var(--line-2); background: var(--accent-soft); }
.qt__add { border: 1px dashed var(--line-2); background: var(--surface); color: var(--muted); border-radius: 8px; padding: 5px 10px; font-size: 0.76rem; font-weight: 700; cursor: pointer; }
.qt__add:hover { border-color: var(--accent); color: var(--accent); }
.qt__sum { margin-left: auto; font-size: 0.88rem; font-weight: 700; color: var(--ink-2); }
.qt__sum b { color: var(--accent); font-size: 1.05rem; font-weight: 800; }
.qt__warn { margin: 0; padding: 7px 12px; border-top: 1px solid var(--line); font-size: 0.76rem; font-weight: 700; color: #b45309; background: #fffbeb; }

/* ── 지역 2단계 선택 (시·도 → 시·군·구) ── */
/* 회원 KPI 포커스 필터 배너 — "결제 대기만 보고 있어요 / 전체 보기" */
.memfocus { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 13px; background: var(--accent-soft); border: 1px solid var(--line-2); border-radius: 10px; }
.memfocus__t { flex: 1 1 auto; min-width: 0; display: inline-flex; align-items: center; gap: 6px; font-size: 0.84rem; color: var(--ink-2); }
.memfocus__t b { color: var(--accent); font-weight: 800; }
.memfocus__x { flex-shrink: 0; border: 1px solid var(--line-2); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 5px 11px; font-size: 0.76rem; font-weight: 800; cursor: pointer; }
.memfocus__x:hover { border-color: var(--accent); color: var(--accent); }
.dash-kpi { cursor: pointer; }

/* 필터바의 지역 2단계 (업체 목록·공간 찾기)
   검색창이 남는 폭을 다 먹어 시·군·구 셀렉트가 잘리던 문제 → 셀렉트에 고정폭을 주고 검색창을 줄인다 */
.v-region2 { display: flex; flex: 0 0 auto; gap: 6px; }
.v-region2 select {
  flex: 0 0 auto; width: 132px; min-width: 0; border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 12px; background: var(--surface); font-weight: 600; text-overflow: ellipsis;
}
.v-region2 select:last-child { width: 152px; }
.v-region2 select:disabled { color: var(--faint); background: var(--surface-2); }
@media (max-width: 860px) {
  .v-region2 { flex: 1 1 100%; }
  .v-region2 select, .v-region2 select:last-child { flex: 1 1 0; width: auto; }
}
.hf-region { display: flex; gap: 8px; }
.hf-region select { flex: 1 1 0; min-width: 0; }
.hf-region select:disabled { color: var(--faint); background: var(--surface-2); }
/* 업체 목록 — 예산 이하 필터 */
.vbud { display: inline-flex; align-items: center; gap: 4px; }
.vbud input { width: 104px; padding: 6px 9px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; font-size: 0.84rem; text-align: right; background: var(--surface); }
.vbud em { font-style: normal; font-size: 0.8rem; color: var(--muted); font-weight: 700; }
@media (max-width: 640px) { .vbud input { width: 88px; } }
/* 좁은 화면(모바일·분할 화면) — 표를 행 단위 카드로 쌓아 잘림 없이 전부 보이게 */
@media (max-width: 620px) {
  .qt__t, .qt__t tbody, .qt__t tr, .qt__t td { display: block; width: auto; }
  .qt__t colgroup, .qt__t thead { display: none; }
  .qt__t tr { position: relative; padding: 9px 10px 9px 34px; border-bottom: 1px solid var(--line); }
  .qt__t tr:last-child { border-bottom: 0; }
  .qt__t td { border: 0; padding: 3px 0; }
  .qt__t td.qt__ck { position: absolute; left: 10px; top: 12px; padding: 0; width: auto; }
  .qt__t td:nth-child(3)::before { content: "단가"; }
  .qt__t td:nth-child(4)::before { content: "수량"; }
  .qt__t td:nth-child(3), .qt__t td:nth-child(4) { display: flex; align-items: center; gap: 8px; }
  .qt__t td:nth-child(3)::before, .qt__t td:nth-child(4)::before { flex: 0 0 42px; font-size: 0.74rem; font-weight: 800; color: var(--muted); }
  .qt__t td.qt__am { text-align: left; padding-top: 5px; font-weight: 700; }
  .qt__t td.qt__am::before { content: "소계 "; font-size: 0.74rem; font-weight: 800; color: var(--muted); }
}
.vr-seg { display: flex; flex-wrap: wrap; gap: 7px; }
/* 자동 산출 견적 (파트너 견적 제출) */
.rqn__files { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.rqn-file { position: relative; display: inline-flex; align-items: center; gap: 5px; }
.rqn-file img { width: 54px; height: 42px; object-fit: cover; border-radius: 7px; border: 1px solid var(--line); }
.rqn-file button { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; font-size: 0.65rem; }
.rqn-file--doc { font-size: 0.76rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 5px 10px 5px 8px; border-radius: 999px; }
.rqn-file--doc button { position: static; width: 15px; height: 15px; margin-left: 3px; }
.rqn__add { display: inline-block; margin-top: 10px; font-size: 0.82rem; font-weight: 700; color: var(--accent); cursor: pointer; }
/* 사업자 등록 */
.hf-sec { font-family: var(--serif); font-size: 1.05rem; font-weight: 600; color: var(--ink); margin: 26px 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line-2); }
.hf-sec:first-of-type { margin-top: 6px; }
.bz-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.bz-doc { border: 1px solid var(--line); border-radius: 13px; padding: 14px; background: var(--surface); }
.bz-doc__head { display: flex; align-items: center; gap: 8px; font-size: 0.92rem; }
.bz-doc__req { font-size: 0.68rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 2px 7px; border-radius: 999px; }
.bz-doc__opt { font-size: 0.68rem; font-weight: 700; color: var(--faint); background: var(--surface-2); padding: 2px 7px; border-radius: 999px; }
/* 핵심 옵션 해시태그 */
.sp-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.sp-tags--head { margin-top: 14px; }
.optag { font-size: 0.72rem; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 3px 9px; border-radius: 8px; letter-spacing: -0.01em; }
.optag--lg { font-size: 0.82rem; padding: 5px 12px; border-radius: 10px; }
.optag--edit { display: inline-flex; align-items: center; gap: 5px; background: var(--accent); color: #fff; font-weight: 800; padding: 5px 11px; box-shadow: 0 3px 10px -4px rgba(79,70,229,0.6); }
.optag--edit button { display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,0.28); color: #fff; font-size: 0.62rem; }
.optag--edit button:hover { background: rgba(255,255,255,0.5); }
.tagin { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.tagin:focus-within { border-color: var(--ink); }
.tagin__list { display: contents; }
.tagin__input { flex: 1; min-width: 140px; border: none; outline: none; background: none; font-size: 0.9rem; font-weight: 600; color: var(--ink); }
.tagsug { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 11px; }
.tagsug__b { font-size: 0.8rem; font-weight: 700; color: var(--muted); background: var(--surface-2); border: 1px solid var(--line); padding: 7px 14px; border-radius: 999px; transition: all 0.15s; }
.tagsug__b:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }
/* 호스트 폼 — 이미지 드롭존 */
.dropzone { border: 2px dashed var(--line); border-radius: 14px; padding: 26px 18px; text-align: center; cursor: pointer; background: var(--surface-2); transition: border-color .15s, background .15s; }
.dropzone:hover, .dropzone:focus-visible, .dropzone.is-over { border-color: var(--accent); background: var(--accent-soft); outline: none; }
.dropzone__ic { font-size: 1.5rem; }
.dropzone__t { font-size: 0.9rem; font-weight: 700; color: var(--ink-2); margin-top: 4px; }
.dropzone__t b { color: var(--accent); }
.dropzone__s { font-size: 0.78rem; color: var(--faint); margin-top: 3px; }
.hf-urladd { display: flex; gap: 8px; margin-top: 10px; }
.hf-urladd input { flex: 1; min-width: 0; }
.hf-urladd .btn { flex: 0 0 auto; }
.ph-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; margin-top: 12px; }
.ph-thumb { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; border: 1px solid var(--line); cursor: grab; background: var(--surface-2); }
.ph-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.ph-thumb.is-rep { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); }
.ph-thumb.is-drag { opacity: 0.4; }
.ph-thumb__rep { position: absolute; left: 5px; bottom: 5px; font-size: 0.64rem; font-weight: 800; color: #fff; background: var(--accent); padding: 2px 7px; border-radius: 999px; }
.ph-thumb__x { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; border-radius: 50%; background: rgba(15,23,42,0.6); color: #fff; font-size: 0.66rem; display: flex; align-items: center; justify-content: center; }
.ph-thumb__x:hover { background: #e2402f; }
/* 편의시설 직접 추가 */
.amen-add { display: flex; gap: 8px; margin-top: 10px; }
.amen-add input { flex: 1; min-width: 0; padding: 10px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.9rem; font-family: inherit; outline: none; }
.amen-add input:focus { border-color: var(--ink); }
.amen-add .btn { flex: 0 0 auto; }
.hf-chk--custom { position: relative; padding-right: 30px; }
.hf-chk__x { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; border-radius: 50%; background: var(--surface-2); color: var(--muted); font-size: 0.58rem; display: inline-flex; align-items: center; justify-content: center; }
.hf-chk__x:hover { background: #e2402f; color: #fff; }
/* 가격 원 단위 · 주소 검색 */
.hf-suffix { position: relative; }
.hf-suffix__u { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 0.9rem; font-weight: 700; color: var(--muted); pointer-events: none; }
.hf-suffix input { padding-right: 34px; }
.hf-addr { display: flex; gap: 8px; }
.hf-addr input { flex: 1; min-width: 0; }
.hf-addr .btn { flex: 0 0 auto; white-space: nowrap; }
.section__more { font-size: 0.9rem; font-weight: 700; color: var(--accent); white-space: nowrap; }
.section__more:hover { text-decoration: underline; }
/* ===== 역경매 이용 가이드 모달 ===== */
.gmodal { position: fixed; inset: 0; z-index: 600; display: flex; align-items: center; justify-content: center; padding: 20px; }
.gmodal[hidden] { display: none; }
.gmodal__bd { position: absolute; inset: 0; background: rgba(15,23,42,0.5); backdrop-filter: blur(3px); }
.gmodal__card { position: relative; width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto; background: var(--surface); border-radius: 4px; padding: 30px 28px; box-shadow: var(--shadow-lg); animation: gpop 0.25s cubic-bezier(0.2,0.8,0.3,1); }
@keyframes gpop { from { opacity: 0; transform: translateY(16px) scale(0.98); } to { opacity: 1; transform: none; } }
.gmodal__x { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 9px; color: var(--muted); font-size: 1rem; background: var(--surface-2); }
.gmodal__x:hover { color: var(--ink); }
/* 회원가입 약관 동의 */
.su-agree { display: flex; align-items: flex-start; gap: 9px; margin: 4px 0 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); font-size: 0.84rem; line-height: 1.55; color: var(--ink-2); cursor: pointer; transition: border-color 0.15s; }
.su-agree input { width: 18px; height: 18px; min-width: 18px; margin-top: 1px; accent-color: var(--accent); cursor: pointer; }
.su-agree--err { border-color: #e2402f; background: rgba(226, 64, 47, 0.05); }
.su-link { display: inline; padding: 0; background: none; border: none; font: inherit; font-weight: 700; color: var(--accent); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.su-link:hover { color: var(--ink); }
/* 약관 모달 본문 */
.terms-head { margin-bottom: 16px; padding-right: 40px; }
.terms-title { font-family: var(--serif); font-size: 1.4rem; font-weight: 700; letter-spacing: -0.02em; margin: 8px 0 4px; }
/* 공간 상세 — 숨김/비공개 안내 */
.sp-unavail { max-width: 520px; margin: 60px auto; text-align: center; padding: 40px 24px; }
.sp-unavail__ic { width: 72px; height: 72px; margin: 0 auto 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--surface-2); color: var(--faint); }
.sp-unavail h1 { font-size: 1.4rem; font-weight: 800; margin: 0 0 10px; letter-spacing: -0.02em; }
.sp-unavail p { color: var(--muted); line-height: 1.65; margin: 0 0 24px; }
.sp-unavail__act { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.terms-updated { font-size: 0.78rem; color: var(--faint); font-weight: 600; }
.terms-body { font-size: 0.88rem; line-height: 1.65; color: var(--ink-2); }
.terms-body h4 { font-size: 0.92rem; font-weight: 800; color: var(--ink); margin: 18px 0 6px; }
.terms-body h4:first-child { margin-top: 0; }
.terms-body p { margin: 0 0 8px; }
.terms-body ol,
.terms-body ul { margin: 0 0 8px; padding-left: 20px; display: flex; flex-direction: column; gap: 5px; }
.terms-body ol li,
.terms-body ul li { padding-left: 2px; word-break: keep-all; }
.terms-body b { color: var(--ink); font-weight: 700; }
.terms-demo { margin-top: 14px; padding: 10px 12px; background: var(--surface-2); border-radius: 9px; font-size: 0.78rem; color: var(--faint); }
.guide__eyebrow { display: inline-block; font-size: 0.74rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 5px 12px; border-radius: 999px; }
.guide__title { font-family: var(--serif); font-size: 1.55rem; font-weight: 700; letter-spacing: -0.02em; margin: 12px 0 8px; }
.guide__lead { font-size: 0.95rem; color: var(--muted); line-height: 1.6; }
.guide__lead b { color: var(--ink); }
.guide__diagram { margin: 20px 0 8px; padding: 18px; background: var(--surface-2); border-radius: 16px; text-align: center; }
.gdia__vendors { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.gdia__v { display: inline-flex; align-items: center; gap: 7px; font-size: 0.85rem; font-weight: 800; color: var(--ink-2); background: var(--surface); border: 1.5px solid var(--line); padding: 9px 15px; border-radius: 14px; box-shadow: var(--shadow-sm); transition: transform 0.14s; }
.gdia__v:hover { transform: translateY(-2px); }
.gdia__v .ic, .gdia__v svg { width: 20px; height: 20px; }
.gdia__v--blue { border-color: rgba(79,70,229,0.4); background: rgba(79,70,229,0.07); color: var(--accent); }
.gdia__v--pink { border-color: rgba(236,72,153,0.4); background: rgba(236,72,153,0.07); color: #db2777; }
.gdia__v--yellow { border-color: rgba(234,179,8,0.45); background: rgba(234,179,8,0.10); color: #b7791f; }
.gdia__arrow { margin: 12px 0; }
.gdia__arrowtx { display: inline-flex; align-items: center; gap: 5px; font-size: 0.76rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 5px 12px; border-radius: 999px; }
.gdia__arrow::after { content: "▼"; display: block; color: var(--accent); font-size: 0.7rem; margin-top: 6px; }
.gdia__me { display: inline-flex; align-items: center; gap: 8px; font-size: 0.95rem; font-weight: 800; color: #fff; background: linear-gradient(100deg, var(--accent), var(--accent-2)); padding: 11px 22px; border-radius: 999px; box-shadow: var(--glow); }
.gdia__metrophy { font-size: 1.15rem; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25)); }
/* 스텝 아이콘 3색 로테이션 (파랑·핑크·노랑·파랑) */
.gstep--c0 .gstep__ic { background: rgba(79,70,229,0.12); color: var(--accent); }
.gstep--c1 .gstep__ic { background: rgba(236,72,153,0.12); color: #db2777; }
.gstep--c2 .gstep__ic { background: rgba(234,179,8,0.16); color: #b7791f; }
.gstep--c3 .gstep__ic { background: rgba(5,150,105,0.13); color: var(--ok); }
.gstep--c0 .gstep__n { background: var(--accent); }
.gstep--c1 .gstep__n { background: #db2777; }
.gstep--c2 .gstep__n { background: #ca8a04; }
.gstep--c3 .gstep__n { background: var(--ok); }
.guide__steps { list-style: none; margin: 20px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gstep { display: flex; flex-direction: column; gap: 6px; padding: 15px 15px 16px; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 15px; opacity: 0; transform: translateY(8px); animation: gstepin 0.4s ease forwards; animation-delay: calc(var(--i) * 0.09s + 0.1s); }
.gstep__top { display: flex; align-items: center; justify-content: space-between; }
.gstep__t { font-size: 0.98rem; font-weight: 800; margin-top: 2px; }
.gstep__d { font-size: 0.83rem; color: var(--muted); line-height: 1.5; word-break: keep-all; }
@media (max-width: 480px) { .guide__steps { grid-template-columns: 1fr; } }
@keyframes gstepin { to { opacity: 1; transform: none; } }
.gstep__n { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 0.82rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.gstep__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px; background: var(--accent-soft); color: var(--accent); display: flex; align-items: center; justify-content: center; }
.gstep__tx { display: flex; flex-direction: column; gap: 2px; padding-top: 1px; }
.gstep__tx b { font-size: 0.98rem; font-weight: 700; }
.gstep__tx span { font-size: 0.86rem; color: var(--muted); line-height: 1.5; }
.guide__why { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px; }
.gwhy { text-align: center; padding: 15px 8px; border-radius: 13px; display: flex; flex-direction: column; gap: 3px; border: 1px solid transparent; }
.gwhy--0 { background: rgba(79,70,229,0.08); border-color: rgba(79,70,229,0.18); }
.gwhy--1 { background: rgba(236,72,153,0.08); border-color: rgba(236,72,153,0.18); }
.gwhy--2 { background: rgba(234,179,8,0.10); border-color: rgba(234,179,8,0.22); }
.gwhy__e { font-size: 1.5rem; }
.gwhy__ic { display: inline-flex; align-items: center; justify-content: center; margin-bottom: 3px; }
.gwhy--0 .gwhy__ic { color: var(--accent); }
.gwhy--1 .gwhy__ic { color: #db2777; }
.gwhy--2 .gwhy__ic { color: #b7791f; }
.gdia__meic { display: inline-flex; align-items: center; }
.gwhy b { font-size: 0.86rem; font-weight: 800; }
.gwhy span { font-size: 0.72rem; color: var(--muted); line-height: 1.4; }
.guide-btn { display: inline-flex; align-items: center; gap: 7px; background: var(--accent-soft); border-color: rgba(79, 70, 229, 0.28); color: var(--accent); font-weight: 700; }
.guide-btn:hover { background: rgba(79, 70, 229, 0.14); border-color: var(--accent); }
.guide-play { flex-shrink: 0; }
.how-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
@media (max-width: 480px) {
  .gmodal__card { padding: 26px 20px; }
  /* 혜택 3종 — 아이콘+제목 한 줄 컴팩트 칩(설명은 숨겨 두 줄 내로) */
  .guide__why { grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 16px; }
  .gwhy { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: center; gap: 5px; padding: 9px 6px; text-align: center; }
  .gwhy__ic { margin-bottom: 0; }
  .gwhy__ic svg { width: 17px; height: 17px; }
  .gwhy b { font-size: 0.76rem; white-space: nowrap; }
  .gwhy span { display: none; }
}
/* ===== 패키지 기획전 ===== */
/* 매거진형 히어로 — 배경 사진 + 딤 오버레이 + 화이트 타이포 */
.pkg-hero { position: relative; background-color: #14121f; background-image: linear-gradient(180deg, rgba(16,14,30,0.58) 0%, rgba(16,14,30,0.66) 46%, rgba(16,14,30,0.90) 100%), url("https://images.unsplash.com/photo-1519671482749-fd09be7ccebf?w=1680&h=900&fit=crop&q=80"); background-size: cover; background-position: center 42%; background-repeat: no-repeat; }
.pkg-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 88px; background: linear-gradient(180deg, transparent 0%, var(--bg) 100%); pointer-events: none; z-index: 0; }
.pkg-hero__inner { position: relative; z-index: 1; max-width: 1220px; margin: 0 auto; padding: 108px 32px 82px; }
.pkg-hero .hero__eyebrow { display: inline-flex; align-items: center; gap: 7px; color: #fff; font-size: 0.92rem; font-weight: 700; letter-spacing: 0.02em; padding: 9px 18px; border-radius: 999px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.28); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 6px 22px -8px rgba(0,0,0,0.45); }
.pkg-hero__title { font-family: var(--serif); font-size: clamp(2rem, 4.6vw, 3.2rem); font-weight: 700; line-height: 1.2; letter-spacing: -0.03em; margin: 16px 0 14px; color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,0.28); }
.pkg-hero__sub { font-size: 1.05rem; color: rgba(255,255,255,0.82); max-width: 560px; line-height: 1.7; word-break: keep-all; }
.pkg-hero__sub b { color: #fff; font-weight: 700; }
.pkg-hero__stats { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 40px; }
.pkg-hstat { display: flex; align-items: center; gap: 11px; }
.pkg-hstat__ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0; background: rgba(255,255,255,0.13); border: 1px solid rgba(255,255,255,0.22); color: #fff; backdrop-filter: blur(6px); }
.pkg-hstat__tx strong { display: block; font-family: var(--serif); font-size: 1.34rem; font-weight: 800; color: #fff; line-height: 1.1; }
.pkg-hstat__tx span { font-size: 0.78rem; color: rgba(255,255,255,0.7); font-weight: 600; }
@media (max-width: 560px) { .pkg-hero__inner { padding: 84px 24px 56px; } .pkg-hero__stats { gap: 18px 26px; } }
.pkg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 30px; }
.pkg-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); transition: transform 0.2s, box-shadow 0.2s; cursor: pointer; }
.pkg-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.pkg-card__thumb { position: relative; aspect-ratio: 3/2; overflow: hidden; }
.pkg-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
/* 배지: 할인=브랜드 1점 · 나머지=모노톤 프로스트 라벨 */
.pkg-card__badge { position: absolute; top: 13px; left: 13px; font-size: 0.71rem; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); background: rgba(255,255,255,0.92); backdrop-filter: blur(6px); padding: 5px 11px; border-radius: 999px; box-shadow: 0 2px 10px -4px rgba(0,0,0,0.35); }
.pkg-card__save { position: absolute; top: 13px; right: 13px; font-size: 0.73rem; font-weight: 800; color: #fff; background: var(--accent); padding: 5px 11px; border-radius: 999px; box-shadow: 0 3px 12px -3px rgba(79,70,229,0.6); }
.pkg-card__body { padding: 26px 24px 22px; display: flex; flex-direction: column; gap: 11px; flex: 1; }
.pkg-card__theme { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.02em; color: var(--accent); }
.pkg-card__title { font-family: var(--serif); font-size: 1.26rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1.32; }
.pkg-card__sub { font-size: 0.88rem; color: var(--muted); line-height: 1.62; letter-spacing: 0.005em; }
.pkg-card__meta { display: flex; align-items: center; gap: 4px; font-size: 0.82rem; font-weight: 600; color: var(--ink-2); flex-wrap: wrap; margin-top: 2px; }
.pkg-card__meta .ic { vertical-align: -2px; }
.pkg-card__dot { color: var(--faint); margin: 0 3px; }
.pkg-card__incl { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: var(--muted); background: var(--surface-2); border-radius: 10px; padding: 11px 13px; line-height: 1.5; letter-spacing: 0.005em; }
.pkg-card__incl > svg { flex-shrink: 0; color: var(--accent); }
.pkg-card__incl b { color: var(--ink-2); font-weight: 800; }
.vinfo-items__t { display: inline-flex; align-items: center; gap: 6px; }
.vinfo-items__t svg { color: var(--accent); flex-shrink: 0; }
/* 인라인 라인 아이콘 — 텍스트 기준선 정렬 + 배지/칩 정렬 */
svg.ic { vertical-align: -0.16em; }
.sp-card__flash, .book__flash { display: inline-flex; align-items: center; gap: 2px; }
.sp-card__flash svg.ic, .book__flash svg.ic, .optag svg.ic { vertical-align: 0; }
.optag { display: inline-flex; align-items: center; gap: 4px; }
.share__ic { display: inline-flex; align-items: center; justify-content: center; }
.co-method span { display: inline-flex; align-items: center; gap: 7px; }
/* 참여 파트너 — 모노톤 아바타 칩 · 가로 스크롤 */
.pkg-card__pwrap { display: flex; flex-direction: column; gap: 9px; margin-top: 2px; }
.pkg-card__plabel { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.03em; color: var(--faint); }
.pkg-card__partners { display: flex; align-items: center; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; scroll-behavior: smooth; }
.pkg-card__partners::-webkit-scrollbar { display: none; }
.pkg-card__partners.is-dragging { cursor: grabbing; scroll-behavior: auto; user-select: none; }
.pkg-card__partners.is-dragging .pkg-partner { pointer-events: none; }
.pkg-partner { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 5px 13px 5px 5px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); color: var(--ink-2); font-size: 0.76rem; font-weight: 700; cursor: pointer; font-family: inherit; white-space: nowrap; transition: transform 0.12s, box-shadow 0.12s, border-color 0.12s; }
.pkg-partner:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); border-color: var(--ink); }
.pkg-partner__av { width: 25px; height: 25px; flex-shrink: 0; border-radius: 50%; background: var(--surface); border: 1px solid var(--line); display: inline-flex; align-items: center; justify-content: center; color: var(--ink-2); }
.pkg-partner__av svg { display: block; }
.pkg-partner__av--host { color: var(--accent); background: var(--accent-soft); border-color: transparent; }
.pkgm__partner { display: inline-flex; align-items: center; gap: 4px; }
.pkgm__partner svg { flex-shrink: 0; }
.pkg-card__cta { margin-top: 14px; font-weight: 800; }
.pkgm__partner { color: var(--ink-2); font-weight: 700; }
/* 예약·결제 금액 요약 바 */
.ad-bksum { display: flex; flex-direction: column; gap: 7px; padding: 16px; margin-top: 12px; background: var(--surface-2); border-radius: 11px; }
.ad-bksum__i { display: flex; align-items: center; justify-content: flex-start; gap: 6px; font-size: 0.84rem; color: var(--muted); font-weight: 600; }
.ad-bksum__i b { margin-left: 4px; font-family: var(--serif); font-size: 0.98rem; font-weight: 700; color: var(--ink-2); white-space: nowrap; }
/* 순매출 = 헤드라인 강조 */
.ad-bksum__i--net { padding-bottom: 9px; margin-bottom: 3px; border-bottom: 1px solid var(--line); font-size: 0.92rem; color: var(--ink-2); font-weight: 700; }
.ad-bksum__i--net b { font-size: 1.5rem; font-weight: 800; color: var(--accent); }
.ad-bksum__i--rf b { color: var(--accent); }
/* 패키지 관리 — 드래그 정렬 리스트 */
.ad-pkgcards { display: flex; flex-direction: column; gap: 10px; }
.ad-pkgcard { display: flex; align-items: stretch; gap: 12px; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; background: var(--surface); box-shadow: var(--shadow-sm); transition: box-shadow 0.15s, opacity 0.15s, transform 0.1s; }
.ad-pkgcard.is-hidden { opacity: 0.55; }
.ad-pkgcard.dragging { opacity: 0.4; box-shadow: var(--shadow-lg); border-color: var(--accent); }
.ad-pkgcard__grip { flex-shrink: 0; display: flex; align-items: center; font-size: 1.3rem; color: var(--faint); cursor: grab; user-select: none; }
.ad-pkgcard:active .ad-pkgcard__grip { cursor: grabbing; }
.ad-pkgcard__ord { flex-shrink: 0; align-self: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 0.8rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.ad-pkgcard__main { flex: 1; min-width: 0; }
.ad-pkgcard__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ad-pkgcard__title { display: block; font-size: 1.02rem; font-weight: 800; margin: 3px 0; }
.ad-pkgcard__price { font-size: 0.82rem; color: var(--muted); }
.ad-pkgcard__act { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
.ad-pkgcard__stat { display: flex; gap: 18px; margin: 12px 0; padding: 10px 0; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); font-size: 0.86rem; color: var(--muted); }
.ad-pkgcard__stat b { color: var(--ink); font-weight: 800; margin-left: 3px; }
.ad-pkgcard__partners { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.ad-pkgcard__plabel { font-size: 0.72rem; font-weight: 800; color: var(--faint); margin-right: 2px; }
.pkg-card__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 6px; }
.pkg-card__price { display: flex; flex-direction: column; }
.pkg-card__list { font-size: 0.78rem; color: var(--faint); text-decoration: line-through; }
.pkg-card__price b { font-family: var(--serif); font-size: 1.45rem; font-weight: 700; color: var(--ink); }
.pkg-card__price em { font-size: 0.9rem; font-weight: 600; font-style: normal; margin-left: 1px; }
/* 패키지 상세·결제 모달 */
.pkgm { position: relative; }
.pkgm__thumb { position: relative; height: 170px; margin: -22px -22px 16px; overflow: hidden; }
.pkgm__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pkgm .modal__x { position: absolute; top: 12px; right: 12px; z-index: 3; background: rgba(255,255,255,0.92); box-shadow: var(--shadow-sm); }
.pkgm__thumb .pkg-card__save { top: 14px; left: 14px; right: auto; }
.pkgm__title { font-family: var(--serif); font-size: 1.4rem; font-weight: 700; letter-spacing: -0.02em; margin: 4px 0 6px; }
.pkgm__sub { font-size: 0.9rem; color: var(--muted); line-height: 1.55; }
.pkgm__meta { display: flex; align-items: center; gap: 4px; font-size: 0.84rem; font-weight: 600; color: var(--ink-2); margin-top: 10px; flex-wrap: wrap; }
.pkgm__sec { font-size: 0.82rem; font-weight: 800; color: var(--muted); margin: 20px 0 10px; }
.pkgm__sec-sub { font-weight: 600; color: var(--faint); font-size: 0.92em; }
/* 패키지 제휴 공간 선택 */
.pkgm__spaces { display: flex; flex-direction: column; gap: 8px; }
.pkgm__space { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 4px; cursor: pointer; transition: border-color 0.14s, background 0.14s; }
.pkgm__space:hover { border-color: var(--muted); }
.pkgm__space input { accent-color: var(--accent); width: 17px; height: 17px; flex: 0 0 auto; }
.pkgm__space:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.pkgm__space-info { display: flex; flex-direction: column; gap: 2px; }
.pkgm__space-info b { font-size: 0.92rem; font-weight: 700; }
.pkgm__space-info span { font-size: 0.8rem; color: var(--muted); }
/* 패키지 일시 판매중지 */
.pkg-card.is-sold .pkg-card__thumb img { filter: grayscale(0.7) brightness(0.8); }
.pkg-card__soldout { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 6px; background: rgba(23, 20, 15, 0.86); color: #fff; font-size: 0.85rem; font-weight: 800; white-space: nowrap; }
.pkgm__items { list-style: none; display: flex; flex-direction: column; gap: 2px; }
.pkgm__items li { display: flex; align-items: center; gap: 11px; padding: 10px 0; border-bottom: 1px solid var(--line-2); }
.pkgm__ic { width: 34px; height: 34px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 9px; background: var(--accent-soft); color: var(--accent); }
.pkgm__it { flex: 1; display: flex; flex-direction: column; }
.pkgm__it b { font-size: 0.92rem; font-weight: 700; }
.pkgm__it span { font-size: 0.8rem; color: var(--muted); }
.pkgm__ip { font-size: 0.86rem; font-weight: 700; color: var(--ink-2); }
.pkgm__calc { background: var(--surface-2); border-radius: 12px; padding: 14px 16px; margin: 16px 0; }
.pkgm__row { display: flex; justify-content: space-between; align-items: center; font-size: 0.88rem; color: var(--ink-2); padding: 3px 0; }
.pkgm__strike { color: var(--faint); text-decoration: line-through; }
.pkgm__row--save { color: var(--accent); font-weight: 700; }
.pkgm__row--total { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 10px; font-weight: 700; }
.pkgm__row--total b { font-family: var(--serif); font-size: 1.3rem; color: var(--ink); }
.pkgm__form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.pkgm__fld { display: flex; flex-direction: column; gap: 6px; }
.pkgm__fld label { font-size: 0.8rem; font-weight: 700; color: var(--ink-2); }
.pkgm__fld input { padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.92rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; }
.pkgm__fld input:focus { border-color: var(--ink); }
.pkgm__err { color: var(--accent); font-size: 0.84rem; font-weight: 600; margin-bottom: 10px; }
.pkgm__note { font-size: 0.78rem; color: var(--faint); text-align: center; margin-top: 12px; line-height: 1.5; }
.pkgm--done { text-align: center; padding: 8px 0; }
.pkgm--done .co-done__ic { margin: 8px auto 14px; }
@media (max-width: 560px) { .pkgm__form { grid-template-columns: 1fr; } }
/* 상세 모달 항목별 요청 */
.rd-sec { font-size: 0.82rem; font-weight: 800; color: var(--muted); margin: 14px 0 8px; }
.rd-catnote { background: var(--surface-2); border-radius: 10px; padding: 11px 13px; margin-bottom: 8px; }
.rd-catnote b { font-size: 0.86rem; }
.rd-catnote b .ic { vertical-align: -2px; color: var(--accent); }
.rd-catnote p { margin: 5px 0 0; font-size: 0.9rem; line-height: 1.55; white-space: pre-wrap; }
.rd-files, .q-memreq__files { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.rd-files img, .q-memreq__files img { width: 60px; height: 46px; object-fit: cover; border-radius: 7px; border: 1px solid var(--line); }
/* 업체 견적 폼 — 회원 요청 박스 */
.q-memreq { background: rgba(59, 130, 246, 0.10); border: 1px solid rgba(59, 130, 246, 0.28); border-radius: 9px; padding: 9px 11px; margin: 8px 0; font-size: 0.85rem; color: var(--ink-2); line-height: 1.5; }
.rq-venue__thumb { width: 84px; height: 66px; border-radius: 10px; overflow: hidden; flex-shrink: 0; }
.rq-venue__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rq-venue__tag { display: inline-block; font-size: 0.7rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 2px 8px; border-radius: 999px; margin-bottom: 3px; }
.rq-venue__body b { display: block; font-size: 1.02rem; font-weight: 800; }
.rq-venue__meta { font-size: 0.84rem; color: var(--muted); margin-top: 2px; }
.rq-venue__slot { font-size: 0.84rem; color: var(--ink-2); font-weight: 700; margin-top: 3px; }
.hf-err { color: var(--accent); font-size: 0.86rem; font-weight: 600; margin-bottom: 12px; }
.hf-note { font-size: 0.78rem; color: var(--faint); text-align: center; margin-top: 14px; line-height: 1.5; }
.hf-preview { position: sticky; top: calc(var(--header-h) + 20px); }
.hf-preview__label { display: block; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em; color: var(--accent); margin-bottom: 14px; }

/* 로고 (심볼 + 워드마크) */
.logo { gap: 8px; }
.logo__mark { flex-shrink: 0; }
.logo__wm { font-family: var(--serif); font-weight: 700; letter-spacing: 0.01em; white-space: nowrap; }
.logo__wm em { color: var(--accent); font-style: normal; margin-left: 1px; }

/* 헤더 인증 영역 + 알림 종 */
.auth-area { display: flex; align-items: center; gap: 18px; margin-left: 4px; }
.header__nav > *, .auth-area > * { align-self: center; }
.bell svg { display: block; }
.auth-name { display: inline-flex; align-items: center; gap: 6px; font-size: 0.83rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); padding: 5px 12px 5px 9px; border-radius: 999px; white-space: nowrap; }
.auth-name__ic { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); }
.auth-name__ic svg { width: 13px; height: 13px; }
/* 사업장 주소 검색 */
.addr-row { display: flex; gap: 8px; }
.addr-row input { flex: 1; min-width: 0; }
.addr-row .btn { flex: 0 0 auto; white-space: nowrap; }
.addr-detail { margin-top: 8px; }
.bell-wrap { position: relative; }
/* 모바일 전용 알림 벨 (햄버거 옆) — 데스크톱에선 숨김 */
.bell-wrap--m { display: none; }
@media (max-width: 1024px) {
  .bell-wrap--m { display: flex; align-items: center; margin-left: auto; }
  .bell-wrap--m + .hmenu { margin-left: 0; }
  #nav .bell-wrap { display: none; }
  /* 모바일 벨 드롭다운: 화면 밖으로 잘리지 않게 뷰포트에 고정 */
  .bell-wrap--m .bell-dd { position: fixed; top: calc(var(--header-h) + 6px); left: 12px; right: 12px; width: auto; max-width: none; max-height: 72vh; margin-top: 0; }
}
.bell { position: relative; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--ink-2); transition: background 0.15s; }
.bell:hover { background: var(--surface-2); }
.bell__badge { position: absolute; top: 2px; right: 2px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 0.66rem; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 2px var(--bg); }
.bell-dd { position: absolute; top: 100%; right: 0; margin-top: 10px; width: 300px; max-height: 380px; overflow-y: auto; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 8px; z-index: 200; }
.bell-dd:not([hidden]) { animation: bellSlide 0.18s ease; transform-origin: top right; }
@keyframes bellSlide { from { opacity: 0; transform: translateY(-8px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
.bell-dd__t { display: flex; align-items: center; justify-content: space-between; font-weight: 800; font-size: 0.8rem; padding: 8px 10px 10px; color: var(--muted); }
.bell-dd__act { display: flex; gap: 4px; }
.bell-dd__act button { font-size: 0.72rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 3px 9px; border-radius: 999px; cursor: pointer; }
.bell-dd__act button:hover { color: var(--accent); border-color: var(--accent); }
.bell-item { display: block; padding: 11px 12px; border-radius: 10px; font-size: 0.86rem; color: var(--ink-2); line-height: 1.45; }
.bell-item:hover { background: var(--surface-2); }
.bell-item.is-unread { background: var(--accent-soft); border-left: 3px solid var(--accent); padding-left: 12px; }
.bell-item.is-unread .bell-item__t { position: relative; }
.bell-item.is-unread .bell-item__t::after { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); margin-left: 6px; vertical-align: middle; }
.bell-item time { display: block; font-size: 0.72rem; color: var(--faint); margin-top: 3px; }
.bell-empty { padding: 24px; text-align: center; color: var(--faint); font-size: 0.86rem; }

/* 예약 달력 (상세 예약 카드) */
.cal { border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.cal-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cal-top b { font-size: 0.9rem; font-weight: 800; }
.cal-nav { width: 28px; height: 28px; border-radius: 8px; font-size: 1.15rem; color: var(--ink-2); }
.cal-nav:hover:not(:disabled) { background: var(--surface-2); }
.cal-nav:disabled { color: var(--line); cursor: default; }
.cal-wd { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 4px; }
.cal-wd span { text-align: center; font-size: 0.7rem; font-weight: 700; color: var(--faint); padding: 4px 0; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-e { aspect-ratio: 1 / 0.9; }
.cal-d { aspect-ratio: 1 / 0.9; border-radius: 8px; font-size: 0.82rem; font-weight: 600; color: var(--ink-2); display: flex; align-items: center; justify-content: center; }
.cal-d:hover:not(:disabled) { background: var(--surface-2); }
.cal-d:disabled { color: var(--line-2); cursor: default; }
.cal-d.is-sel { background: var(--accent); color: #fff; font-weight: 800; }

/* 마이페이지 상태 배지 · 예약 요청 */
.mp-book__status.st-amber { color: var(--warn); background: rgba(217, 138, 31, 0.13); }
.mp-book__status.st-green { color: var(--ok); background: #dcefe4; }
.mp-book__status.st-gray { color: var(--muted); background: var(--surface-2); }
.mp-book__status.st-blue { color: var(--info); background: rgba(59, 130, 246, 0.16); }
.mp-book__status.st-red { color: var(--accent); background: var(--accent-soft); }
.mp-tab__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 0.66rem; font-weight: 800; vertical-align: middle; }
.mp-req { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 14px; margin-bottom: 12px; }
.mp-req__act { display: flex; gap: 8px; flex-shrink: 0; }

/* ============================================================
   목적별 큐레이션
   ============================================================ */
.collections { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.col { position: relative; aspect-ratio: 3 / 3.4; border-radius: 18px; overflow: hidden; display: flex; align-items: flex-end; padding: 22px; transition: transform 0.22s; }
.col:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.col__bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.6s; }
.col:hover .col__bg { transform: scale(1.07); }
.col__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(23,20,15,0.05), rgba(23,20,15,0.72)); }
.col__txt { position: relative; color: #fff; }
.col__txt b { display: block; font-family: var(--serif); font-size: 1.3rem; font-weight: 600; }
.col__txt span { font-size: 0.85rem; color: rgba(255, 255, 255, 0.82); margin-top: 3px; display: block; }

/* ============================================================
   로그인 · 회원가입
   ============================================================ */
.auth-page { max-width: 440px; margin: 0 auto; padding: 60px 24px 80px; }
/* 스플릿 인증 화면 */
.auth-body { background: var(--surface); }
.auth-split { display: grid; grid-template-columns: 4fr 6fr; min-height: 100vh; }
.auth-visual { position: relative; padding: 48px 46px; display: flex; flex-direction: column; justify-content: space-between; color: #fff; overflow: hidden; background: #1e1b4b; }
.auth-visual__bg { position: absolute; inset: 0; background: url("https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=1200&q=80&auto=format&fit=crop") center/cover; opacity: 0.42; }
.auth-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(30,26,20,0.45), rgba(30,26,20,0.86)); }
.auth-visual > * { position: relative; z-index: 1; }
.auth-visual__logo { font-family: var(--serif); font-size: 1.4rem; font-weight: 700; display: inline-flex; align-items: center; gap: 9px; color: #fff; }
.auth-visual__logo .logo__dot { background: var(--accent-2); box-shadow: 0 0 0 4px rgba(233,122,92,0.3); }
.auth-visual__copy h2 { font-family: var(--serif); font-size: 2.1rem; font-weight: 700; line-height: 1.34; letter-spacing: -0.02em; }
.auth-visual__copy p { margin-top: 14px; font-size: 1rem; line-height: 1.6; opacity: 0.86; }
.auth-visual__foot { font-size: 0.9rem; font-weight: 700; opacity: 0.9; }
.auth-main { position: relative; display: flex; align-items: center; justify-content: center; padding: 40px 24px; background: radial-gradient(680px 460px at 82% 8%, rgba(99, 102, 241, 0.10) 0%, transparent 62%), radial-gradient(520px 420px at 10% 100%, rgba(59, 130, 246, 0.06) 0%, transparent 60%), var(--bg); }
.auth-main .auth-tabs .ic { vertical-align: -3px; }
.auth-main .auth-card { width: 100%; max-width: 380px; background: none; border: none; box-shadow: none; padding: 0; }
.auth-back { display: inline-block; margin-bottom: 20px; font-size: 0.86rem; font-weight: 600; color: var(--muted); }
.auth-back:hover { color: var(--accent); }
@media (max-width: 860px) { .auth-split { grid-template-columns: 1fr; } .auth-visual { display: none; } .auth-main { min-height: 100vh; } }
.auth-card { background: var(--surface); border: 1px solid var(--line-2); border-radius: 20px; padding: 40px 34px; box-shadow: var(--shadow-sm); }
.auth-card__title { font-family: var(--serif); font-size: 1.7rem; font-weight: 600; letter-spacing: -0.02em; }
.auth-card__sub { font-size: 0.92rem; color: var(--muted); margin: 8px 0 24px; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 13px; margin-bottom: 22px; }
.auth-tab { padding: 12px; border-radius: 9px; font-size: 0.9rem; font-weight: 700; color: var(--muted); transition: all 0.15s; }
.auth-tab.is-active { background: var(--ink); color: #fff; }
/* 사업자 유형 탭 — 고급 아이콘 통일 */
.biz-tabs { gap: 8px; padding: 8px; }
.biz-tab { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-radius: 12px; text-align: left; background: var(--surface); border: 1.5px solid var(--line); color: var(--ink-2); transition: all 0.16s; }
.biz-tab__ic { flex-shrink: 0; width: 42px; height: 42px; border-radius: 11px; display: flex; align-items: center; justify-content: center; background: var(--surface-2); color: var(--muted); transition: all 0.16s; }
.biz-tab__tx { display: flex; flex-direction: column; line-height: 1.25; }
.biz-tab__tx b { font-size: 0.98rem; font-weight: 800; }
.biz-tab__tx span { font-size: 0.78rem; font-weight: 500; color: var(--faint); }
.biz-tab:hover { border-color: var(--ink-2); }
.biz-tab.is-active { background: var(--accent-soft); border-color: var(--accent); color: var(--ink); box-shadow: var(--glow); }
.biz-tab.is-active .biz-tab__ic { background: var(--accent); color: #fff; }
.biz-tab.is-active .biz-tab__tx span { color: var(--accent); }
.field { margin-bottom: 16px; }
.field__label { display: block; font-size: 0.84rem; font-weight: 700; color: var(--ink-2); margin-bottom: 7px; }
.field__hint { font-size: 0.82rem; color: var(--muted); background: var(--accent-soft); padding: 10px 13px; border-radius: 10px; margin-bottom: 14px; }
.field input { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; font-size: 0.95rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; transition: border-color 0.15s; }
.field input:focus { border-color: var(--ink); }
.auth-err { color: var(--accent); font-size: 0.86rem; font-weight: 600; margin-bottom: 12px; }
.auth-alt { text-align: center; font-size: 0.88rem; color: var(--muted); margin-top: 18px; }
.auth-alt a { color: var(--accent); font-weight: 700; }
/* 소셜 로그인 (카카오) */
.social-div { display: flex; align-items: center; gap: 12px; margin: 18px 0 14px; color: var(--faint); font-size: 0.8rem; }
.social-div::before, .social-div::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.btn--kakao { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #FEE500; color: #191600; border: 0; font-weight: 800; }
.btn--kakao:hover { background: #f5dc00; }
.btn--kakao svg { flex-shrink: 0; }
.auth-demo { text-align: center; font-size: 0.8rem; color: var(--faint); margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line-2); }
.auth-demo b { color: var(--ink-2); }
.auth-demo__link { display: inline-block; margin-top: 8px; color: var(--accent); font-weight: 700; font-size: 0.85rem; }
.auth-demo__link:hover { text-decoration: underline; }

/* ============================================================
   마이페이지
   ============================================================ */
.mp { max-width: 1120px; margin: 0 auto; padding: 34px 32px 90px; }
.mp__head { margin-bottom: 24px; }
.mp__title { font-family: var(--serif); font-size: 2rem; font-weight: 600; letter-spacing: -0.02em; margin: 6px 0 6px; }
.mp__sub { color: var(--muted); font-size: 0.92rem; }
.mp-tabs { display: flex; gap: 4px; border-bottom: 1.5px solid var(--line); margin-bottom: 26px; }
.mp-tab { position: relative; padding: 12px 18px; font-size: 0.94rem; font-weight: 700; color: var(--muted); }
.mp-tab.is-active { color: var(--ink); }
.mp-tab.is-active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1.5px; height: 2.5px; background: var(--accent); border-radius: 3px; }
/* 관리자 콘솔 — 접이식 메뉴(햄버거) */
.ad-seedbtns { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.ad-seedbtns[hidden] { display: none; }
.ad-lockbox { max-width: 440px; margin: 24px auto; text-align: center; border: 1px solid var(--line); border-radius: 16px; padding: 34px 24px; background: var(--surface); box-shadow: var(--shadow-sm); }
.ad-lockbox__ic { color: var(--accent); display: flex; justify-content: center; margin-bottom: 12px; }
.ad-lockbox__row { display: flex; gap: 8px; justify-content: center; }
.ad-lockbox__row .ad-inp { flex: 1; max-width: 220px; margin: 0; }
.ad-lockbox .hf-err { margin-top: 10px; }
.ico { vertical-align: -3px; flex-shrink: 0; }
/* ===== 관리자 좌측 드로어 사이드바 ===== */
.adx-burger { position: fixed; left: 12px; top: 11px; z-index: 330; height: 40px; padding: 0 15px 0 12px; border-radius: 999px; display: inline-flex; flex-direction: row; align-items: center; gap: 9px; background: var(--ink); box-shadow: var(--shadow); transition: background 0.15s; }
.adx-burger:hover { background: #000; }
.adx-burger__bars { display: flex; flex-direction: column; gap: 4px; }
.adx-burger__bars span { display: block; width: 18px; height: 2px; background: #fff; border-radius: 2px; transition: transform 0.22s, opacity 0.22s; }
.adx-burger__lbl { color: #fff; font-size: 0.86rem; font-weight: 700; white-space: nowrap; }
.adx-burger.is-open .adx-burger__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.adx-burger.is-open .adx-burger__bars span:nth-child(2) { opacity: 0; }
.adx-burger.is-open .adx-burger__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.adx-drawer { position: fixed; left: 0; top: var(--header-h); bottom: 0; z-index: 310; width: 262px; background: var(--surface); border-right: 1px solid var(--line); box-shadow: var(--shadow-lg); padding: 62px 14px 22px; overflow-y: auto; transform: translateX(-102%); transition: transform 0.26s cubic-bezier(0.2, 0.8, 0.2, 1); }
.adx-drawer[data-open] { transform: translateX(0); }
.adx-drawer__brand { display: flex; align-items: center; gap: 8px; font-family: var(--serif); font-size: 1rem; font-weight: 700; color: var(--ink); padding: 0 8px 12px; margin-bottom: 8px; border-bottom: 1px solid var(--line-2); }
.adx-drawer__brand .logo__dot { width: 9px; height: 9px; }
.adx-nav { display: flex; flex-direction: column; gap: 2px; }
.adx-nav__div { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.06em; color: var(--faint); text-transform: uppercase; padding: 14px 10px 5px; }
.adx-nav .mp-tab { display: flex; align-items: center; gap: 11px; width: 100%; padding: 11px 12px; border-radius: 10px; text-align: left; font-size: 0.9rem; font-weight: 600; color: var(--ink-2); }
.adx-nav .mp-tab .ico { color: var(--muted); transition: color 0.15s; }
.adx-nav .mp-tab:hover { background: var(--surface-2); color: var(--ink); }
.adx-nav .mp-tab.is-active { background: var(--accent); color: #fff; font-weight: 700; box-shadow: var(--glow); }
.adx-nav .mp-tab.is-active .ico { color: #fff; }
.adx-nav .mp-tab.is-active::after { display: none; }
.adx-nav .mp-tab__badge { margin-left: auto; }
.adx-backdrop { position: fixed; inset: 0; z-index: 300; background: rgba(15, 23, 42, 0.42); backdrop-filter: blur(2px); animation: adFade 0.2s ease; }
.adx-backdrop[hidden] { display: none; }
@keyframes adFade { from { opacity: 0; } to { opacity: 1; } }
/* KPI 아이콘(원형 강조) */
.ad-kpi__ic { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: var(--accent-soft); color: var(--accent); margin-bottom: 6px; }
.ad-kpi__ic .ico { vertical-align: 0; }
.ad-kpi--money .ad-kpi__ic { background: rgba(37, 99, 235, 0.1); color: var(--info); }
.ad-kpi.hl .ad-kpi__ic { background: var(--accent); color: #fff; }
.ad-h3 .ico { vertical-align: -3px; color: var(--accent); margin-right: 3px; }
/* 클릭 가능한 KPI 카드 */
button.ad-kpi { font-family: inherit; text-align: left; }
.ad-kpi--link { cursor: pointer; transition: background 0.14s; }
.ad-kpi--link:hover { background: var(--surface-2); }
.ad-kpi__l .ico { color: var(--faint); vertical-align: -2px; margin-left: 2px; }
.ad-kpi--link:hover .ad-kpi__l .ico { color: var(--accent); }
/* 정산 상세 링크 + 모달 */
.ad-linkbtn { display: inline-flex; align-items: center; gap: 4px; font: inherit; font-weight: 700; color: var(--accent); cursor: pointer; }
.ad-linkbtn:hover { text-decoration: underline; }
.ad-linkbtn .ico { color: currentColor; }
.ad-pdsum { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 12px 15px; background: var(--surface-2); border-radius: 11px; margin-bottom: 12px; font-size: 0.86rem; color: var(--muted); }
.ad-pdsum b { color: var(--ink); font-weight: 800; margin-left: 3px; }
.ad-pdsum__pay b { color: var(--accent); }
.modal__card.modal__card--wide { max-width: 660px; }
.ad-pdsum { flex-wrap: wrap; }
.ad-pdtable { border: 1px solid var(--line); border-radius: 11px; overflow: hidden; max-height: 54vh; overflow-y: auto; }
.ad-pdrow { display: grid; grid-template-columns: 94px minmax(0, 1fr) 92px 98px 60px; gap: 10px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--line-2); font-size: 0.85rem; }
.ad-pdrow > span { white-space: nowrap; }
.ad-pdrow > span:nth-child(3), .ad-pdrow > span:nth-child(4) { text-align: right; }
.ad-pdrow > span:nth-child(5) { text-align: center; }
.ad-pdrow:last-child { border-bottom: none; }
.ad-pdrow--h { background: var(--surface-2); font-size: 0.74rem; font-weight: 800; color: var(--muted); position: sticky; top: 0; z-index: 1; }
.ad-pdtable .ad-pdrow--ord { grid-template-columns: 0.85fr 1.5fr 0.8fr 0.8fr 0.8fr 0.7fr; gap: 8px; }
.ad-pdtable .ad-pdrow--ord > span:nth-child(3), .ad-pdtable .ad-pdrow--ord > span:nth-child(4), .ad-pdtable .ad-pdrow--ord > span:nth-child(5) { text-align: right; }
.ad-pdtable .ad-pdrow--ord .ad-pdrow__nm em { display: block; font-style: normal; font-size: 0.72rem; color: var(--accent); font-weight: 700; margin-top: 2px; white-space: normal; }
.ad-pdrow__nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-pdrow__nm em { color: var(--faint); font-style: normal; }
.ad-pdrow b { font-weight: 800; }
/* 지급 신청/상태 */
.ad-st--req { color: #b45309; background: rgba(217, 119, 6, 0.14); }
.ad-tr--set.is-req { background: rgba(217, 119, 6, 0.06); }
.ad-flash { animation: adFlash 2.6s ease; position: relative; z-index: 1; }
@keyframes adFlash { 0%, 35% { box-shadow: inset 0 0 0 2px var(--accent); background: rgba(79, 70, 229, 0.1); } 100% { box-shadow: none; } }
.payout-box { padding: 14px 16px; border-radius: 12px; font-size: 0.92rem; line-height: 1.5; }
.payout-box--done { background: rgba(5, 150, 105, 0.1); border: 1px solid rgba(5, 150, 105, 0.3); color: #067a52; }
.payout-box--req { background: rgba(217, 119, 6, 0.12); border: 1px solid rgba(217, 119, 6, 0.3); color: #92610f; }
.payout-box b { font-weight: 800; }
/* 정산 계좌 표시 */
.settle-acct { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 14px 0 4px; padding: 11px 15px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; }
.settle-acct__i { font-size: 0.88rem; font-weight: 600; color: var(--ink-2); }
.settle-acct__i b { font-weight: 800; color: var(--ink); }
.settle-acct__i code { background: var(--surface); border: 1px solid var(--line); padding: 2px 8px; border-radius: 7px; font-size: 0.84rem; margin-left: 3px; }
.settle-acct__i--none { color: #b45309; font-weight: 700; }
/* 정산 내역 목록 헤더 + 아이템 카드 */
.settle-listhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 22px 0 12px; }
.settle-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; cursor: pointer; transition: border-color 0.14s, box-shadow 0.14s, transform 0.1s; }
.settle-item:hover { border-color: var(--accent); box-shadow: 0 6px 18px -10px rgba(79, 70, 229, 0.5); transform: translateY(-1px); }
.settle-item__l { min-width: 0; }
.settle-item__r { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.settle-item__amt { font-family: var(--serif); font-size: 1.15rem; font-weight: 800; color: var(--accent); white-space: nowrap; }
.settle-item__amt em { font-size: 0.78rem; font-weight: 700; font-style: normal; margin-left: 1px; }
.settle-item__more { font-size: 0.76rem; font-weight: 700; color: var(--faint); }
.settle-item:hover .settle-item__more { color: var(--accent); }
/* 정산 내역 카드 — 한눈에 보기(거래액·수수료·입금액·상태) */
.settle-item--rich { display: block; padding: 14px 16px; margin-bottom: 10px; cursor: default; }
.settle-item--rich:hover { transform: none; border-color: var(--line-2); box-shadow: none; }
.settle-item__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.settle-item__acts .btn { flex-shrink: 0; }
@media (max-width: 480px) { .settle-item__acts { width: 100%; } .settle-item__acts .btn { flex: 1; } }
.settle-item__head { display: flex; align-items: center; justify-content: space-between; gap: 10px 12px; flex-wrap: wrap; }
.settle-item__title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.settle-item__title b { font-weight: 800; font-size: 1rem; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.settle-st { flex-shrink: 0; font-size: 0.72rem; font-weight: 800; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.settle-st.is-paid { background: #e7f6ee; color: #067a4b; }
.settle-st.is-wait { background: #fff3e0; color: #b45309; }
.settle-item__meta { font-size: 0.8rem; color: var(--muted); margin: 6px 0 10px; }
.settle-item__nums { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; border-top: 1px dashed var(--line-2); padding-top: 10px; }
.settle-num { display: flex; flex-direction: column; gap: 2px; }
.settle-num i { font-style: normal; font-size: 0.72rem; color: var(--muted); }
.settle-num b { font-weight: 800; font-size: 0.95rem; color: var(--ink); }
.settle-num--fee b { color: #b45309; }
.settle-num--pay b { color: var(--accent); font-size: 1.05rem; }
/* 정산 툴바(날짜 지정 + 정렬) */
.settle-filter { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 12px; }
.settle-range { display: flex; align-items: center; gap: 6px; color: var(--muted); flex-wrap: wrap; }
.settle-range input[type="date"] { padding: 6px 8px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; font-size: 0.82rem; color: var(--ink); background: var(--surface); min-width: 0; }
.settle-range__t { color: var(--faint); }
.mp-sort { display: inline-flex; align-items: center; gap: 4px; background: var(--surface-2); border-radius: 10px; padding: 3px; }
.mp-sort__l { font-size: 0.76rem; font-weight: 700; color: var(--muted); padding: 0 6px 0 4px; }
.mp-sort__b { display: inline-flex; align-items: center; gap: 3px; border: 0; background: transparent; font: inherit; font-size: 0.82rem; font-weight: 700; color: var(--muted); padding: 5px 10px; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.mp-sort__b.is-on { background: var(--surface); color: var(--accent); box-shadow: 0 1px 4px -1px rgba(0,0,0,0.12); }
.mp-sort__ar { font-size: 0.7rem; }
/* 필터 합계 요약 바 */
.settle-sumbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 10px; padding: 9px 14px; margin-bottom: 12px; font-size: 0.82rem; color: var(--muted); }
.settle-sumbar b { color: var(--ink); font-weight: 800; }
.settle-sumbar__wait { color: #b45309 !important; }
.settle-sumbar__pay { color: var(--accent) !important; }
@media (max-width: 560px) { .settle-filter { flex-direction: column; align-items: stretch; } .mp-sort { justify-content: space-between; } .settle-sumbar__r { width: 100%; } }
/* 정산 상세 모달 */
.settle-modal__note { grid-column: 1 / -1; }
.settle-modal__fee { color: #dc2626 !important; }
.settle-modal__total { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; padding: 14px 16px; background: var(--accent-soft); border: 1px solid rgba(79, 70, 229, 0.2); border-radius: 12px; }
/* 수수료율 설정 (회원 상세) */
.ad-feerate { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; padding: 12px 14px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; }
.ad-feerate__cur { font-size: 0.9rem; }
.ad-feerate__cur b { font-size: 1.05rem; color: var(--accent); }
.ad-feerate__cur em { font-style: normal; color: var(--faint); font-size: 0.8rem; margin-left: 3px; }
.ad-feerate__edit { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.ad-feerate__in { display: inline-flex; align-items: center; gap: 4px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 4px 10px; }
.ad-feerate__in input { width: 64px; border: 0; outline: none; background: transparent; font-size: 0.95rem; font-weight: 700; text-align: right; color: var(--ink); }
.ad-feerate__in span { color: var(--muted); font-weight: 700; }
/* 패키지 카드 수수료율 버튼 */
.ad-pkgfee { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 0.82rem; background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; cursor: pointer; }
.ad-pkgfee:hover { border-color: var(--accent); color: var(--accent); }
.ad-pkgfee b { color: var(--ink); font-weight: 800; }
/* 정산 표 — 적용 수수료율 배지 */
.ad-set-rate { font-style: normal; font-size: 0.72rem; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 1px 6px; border-radius: 999px; margin-left: 4px; }
.ad-set-rate--mix { color: #b45309; background: rgba(217, 119, 6, 0.14); }
.ad-pdrate { font-style: normal; font-size: 0.7rem; font-weight: 700; color: var(--accent); margin-left: 4px; }
/* 수수료율 이력 편집기 */
.fee-rules { display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; }
.fee-rule { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); }
.fee-rule__from { font-size: 0.86rem; color: var(--muted); }
.fee-rule__pct { margin-left: auto; font-size: 1rem; font-weight: 800; color: var(--accent); }
.fee-add { display: flex; align-items: flex-end; gap: 10px; padding: 12px 14px; background: var(--accent-soft); border: 1px solid rgba(79, 70, 229, 0.2); border-radius: 10px; flex-wrap: wrap; }
.fee-add__f { display: flex; flex-direction: column; gap: 4px; }
.fee-add__f label { font-size: 0.74rem; font-weight: 700; color: var(--muted); }
.fee-add__f input { padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 0.9rem; background: var(--surface); color: var(--ink); }
.fee-add__f input[type="number"] { width: 92px; text-align: right; font-weight: 700; }
.fee-add .btn { margin-left: auto; }
.settle-modal__docs { display: flex; gap: 8px; margin-top: 14px; }
.settle-modal__docs .btn { flex: 1; }
/* 결제 영수증 (카드 매출전표) */
.rcpt { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin-top: 6px; }
.rcpt__brand { display: flex; align-items: center; gap: 7px; padding: 12px 16px; background: var(--ink); color: #fff; font-weight: 800; font-size: 0.95rem; }
.rcpt__brand span { margin-left: auto; font-weight: 600; font-size: 0.72rem; opacity: 0.7; }
.rcpt__rows { padding: 8px 16px; }
.rcpt__r { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px dashed var(--line-2); font-size: 0.86rem; }
.rcpt__r:last-child { border-bottom: 0; }
.rcpt__r > span { color: var(--muted); flex-shrink: 0; }
.rcpt__r > b { text-align: right; font-weight: 700; }
.rcpt__calc { padding: 12px 16px; background: var(--surface-2); border-top: 1px solid var(--line); }
.rcpt__c { display: flex; justify-content: space-between; font-size: 0.86rem; color: var(--muted); padding: 3px 0; }
.rcpt__c--total { margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--ink); font-size: 1rem; }
.rcpt__c--total b { font-weight: 800; color: var(--accent); }
.rcpt__foot { padding: 11px 16px; font-size: 0.74rem; color: var(--faint); background: var(--surface-2); border-top: 1px dashed var(--line); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.settle-modal__total span { font-size: 0.88rem; font-weight: 700; color: var(--ink-2); }
.settle-modal__total b { font-family: var(--serif); font-size: 1.35rem; font-weight: 800; color: var(--accent); }
/* 역경매·견적 관리 */
.ad-tr--rfp { grid-template-columns: 1fr 1.15fr 1fr 0.7fr 1.1fr 0.8fr 1.35fr; }
.ad-tr--rfp em { font-style: normal; font-size: 0.76rem; }
.ad-rfp__amt { display: flex; flex-direction: column; line-height: 1.25; }
.ad-rfp__amt b { font-weight: 800; color: var(--ink); font-size: 0.9rem; }
.ad-rfp__amt em { color: var(--faint); font-size: 0.72rem; }
.ad-rfp__none { color: var(--faint); font-size: 0.82rem; }
.ad-rfp__cats { font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-rfp__catblk { margin-bottom: 14px; }
.ad-rfp__catt { font-size: 0.82rem; font-weight: 800; color: var(--ink-2); margin-bottom: 6px; }
.ad-rfp__bid { display: flex; align-items: center; gap: 10px; padding: 9px 13px; background: var(--surface-2); border-radius: 9px; margin-bottom: 5px; font-size: 0.86rem; }
.ad-rfp__bid > span:first-child { flex: 1; font-weight: 700; }
.ad-rfp__bid b { font-weight: 800; }
@media (max-width: 860px) { .ad-tr--rfp { grid-template-columns: 1fr 1fr; } .ad-tr--rfp .ad-rfp__cats, .ad-tr--rfp .ad-rfp__amt, .ad-tr--rfp .ad-tr__act { grid-column: 1 / -1; } .ad-rfp__amt { flex-direction: row; gap: 6px; align-items: baseline; } }

/* 예약·결제 기간 필터 */
.ad-period { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.ad-period__presets { display: flex; flex-wrap: wrap; gap: 6px; }
.chip--sm { padding: 5px 12px; font-size: 0.8rem; }
.ad-period__range { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ad-period__range input[type="date"] { padding: 7px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--ink); font-size: 0.85rem; font-family: inherit; }
.ad-period__tilde { color: var(--faint); font-weight: 700; }
.ad-period__lbl { margin-left: 4px; color: var(--muted); font-size: 0.82rem; }
.ad-period__lbl b { color: var(--accent); font-weight: 800; }
.ad-bksum__i--net b { color: var(--accent); }

/* 회원별 매출 아코디언 */
.ad-tr--click { cursor: pointer; transition: background 0.14s; }
.ad-tr--click:hover { background: var(--surface-2); }
.ad-tr--click.is-open { background: var(--surface-2); }
.ad-mem__rk { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 5px; margin-right: 7px; border-radius: 6px; background: var(--accent-weak, rgba(79,70,229,0.1)); color: var(--accent); font-size: 0.74rem; font-weight: 800; }
.ad-mem__amt { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ad-mem__chev { display: inline-flex; color: var(--faint); transition: transform 0.18s; }
.ad-tr--click.is-open .ad-mem__chev { transform: rotate(180deg); color: var(--accent); }
.ad-memdet { background: var(--surface-2); border-radius: 10px; margin: 2px 0 8px; padding: 4px 6px; overflow-x: auto; }
.ad-memdet__row { display: grid; grid-template-columns: 34px 96px 84px minmax(0, 1fr) 110px; gap: 8px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--line-2); font-size: 0.84rem; }
.ad-memdet__row:last-child { border-bottom: none; }
.ad-memdet__row--h { font-size: 0.72rem; font-weight: 800; color: var(--muted); }
.ad-memdet__row > span:last-child { text-align: right; }
.ad-memdet__n { color: var(--faint); font-weight: 700; }
.ad-memdet__nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ad-memdet__amt b { font-weight: 800; }
.ad-memdet__empty { padding: 14px; text-align: center; color: var(--faint); font-size: 0.85rem; }
.ad-mtag { display: inline-block; padding: 2px 8px; border-radius: 20px; font-size: 0.72rem; font-weight: 700; }
.ad-mtag--host { background: rgba(37,99,235,0.12); color: #2563eb; }
.ad-mtag--vendor { background: rgba(217,119,6,0.14); color: #b45309; }
.ad-mtag--pkg { background: rgba(5,150,105,0.13); color: #059669; }
@media (max-width: 680px) { .ad-memdet__row { grid-template-columns: 24px 82px minmax(0, 1fr) 88px; gap: 6px; font-size: 0.8rem; } .ad-memdet__row > span:nth-child(3), .ad-memdet__row--h > span:nth-child(3) { display: none; } }
@media (max-width: 680px) { .modal__card--wide { max-width: 100%; } .ad-pdrow { grid-template-columns: 72px minmax(0, 1fr) 84px 54px; gap: 6px; font-size: 0.8rem; padding: 9px 11px; } .ad-pdrow > span:nth-child(4), .ad-pdrow--h > span:nth-child(4) { display: none; }
  .ad-pdtable .ad-pdrow--ord { display: flex; flex-wrap: wrap; gap: 4px 10px; }
  .ad-pdtable .ad-pdrow--ord > span { display: flex; }
  .ad-pdtable .ad-pdrow--ord > span:nth-child(4), .ad-pdtable .ad-pdrow--ord > span:nth-child(5) { display: flex !important; }
  .ad-pdtable .ad-pdrow--ord > span:nth-child(2) { flex-basis: 100%; }
  .ad-pdtable .ad-pdrow--ord.ad-pdrow--h { display: none; }
  .ad-pdtable .ad-pdrow--ord .ad-pdrow__rf::before { content: "환불 "; color: var(--muted); font-weight: 600; }
  .ad-pdtable .ad-pdrow--ord .ad-pdrow__pen::before { content: "위약금 "; color: var(--muted); font-weight: 600; }
}
body[data-require="admin"] .mp { padding-left: 20px; }
/* 관리자 헤더: 로고를 가운데 컨테이너가 아닌 화면 맨 왼쪽에 붙여 사이드바와 정렬 통일 */
body[data-require="admin"] .header__inner { max-width: none; margin: 0; padding-left: 24px; }
/* 모바일: 관리 메뉴 버거를 헤더 좌측에 배치 → 로고를 오른쪽으로 밀어 자리 확보 */
@media (max-width: 860px) { body[data-require="admin"] .header__inner { padding-left: 116px; } }
@media (max-width: 400px) { body[data-require="admin"] .header__inner { padding-left: 54px; } .adx-burger__lbl { display: none; } .adx-burger { padding: 0 11px; } }
/* 데스크톱: 사이드바 상시 고정(도킹) — 햄버거·백드롭 숨김 */
@media (min-width: 861px) {
  .adx-burger { display: none; }
  .adx-backdrop { display: none !important; }
  .adx-drawer { transform: none; box-shadow: none; padding-top: 22px; }
  body[data-require="admin"] .mp { margin-left: 262px; padding-left: 40px; }
  body[data-require="admin"] .footer { margin-left: 262px; }
  body[data-require="admin"] .footer__copy { max-width: none; margin: 0; padding-left: 40px; text-align: left; }
}
@media (max-width: 600px) { .adx-drawer { width: 84vw; } }
.mp-empty { text-align: center; padding: 60px 20px; color: var(--faint); }
.mp-book { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 20px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 14px; margin-bottom: 12px; cursor: pointer; transition: border-color 0.15s; }
.mp-book:hover { border-color: var(--line); }
.mp-book__name { font-weight: 800; font-size: 1rem; }
.mp-book__meta { font-size: 0.85rem; color: var(--muted); margin-top: 4px; }
.mp-book__right { text-align: right; flex-shrink: 0; }
.mp-book__status { display: inline-block; font-size: 0.72rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 4px 10px; border-radius: 999px; }
.mp-book__price { display: block; font-family: var(--serif); font-size: 1.15rem; font-weight: 600; margin-top: 6px; }

/* 알림 드롭다운 텍스트 줄바꿈(반응형) */
.bell-dd { width: min(340px, calc(100vw - 28px)); }
.bell-item { display: flex; flex-direction: column; }
.bell-item__txt { display: block; word-break: keep-all; line-height: 1.45; }
.bell-item__t { display: block; font-weight: 800; font-size: 0.86rem; word-break: keep-all; line-height: 1.35; }
.bell-item__s { display: block; font-size: 0.8rem; color: var(--muted); margin-top: 2px; word-break: keep-all; line-height: 1.4; }

/* 채팅 안읽음 배지 · 반짝임 */
.chat-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 4px; margin-left: 5px; border-radius: 999px; background: #e2402f; color: #fff; font-size: 0.64rem; font-weight: 800; }
.mp-bk.has-unread { border-color: #e2402f; box-shadow: 0 0 0 3px rgba(226, 64, 47, 0.14); animation: bkGlow 1.6s ease-in-out infinite; }
@keyframes bkGlow { 0%, 100% { box-shadow: 0 0 0 3px rgba(226, 64, 47, 0.12); } 50% { box-shadow: 0 0 0 5px rgba(226, 64, 47, 0.22); } }
.mp-bk.has-unread [data-chat] { background: #e2402f; color: #fff; }

/* 버튼 변형 */
.btn--soft { background: var(--surface-2); color: var(--ink-2); }
.btn--soft:hover { background: var(--line-2); }
.btn--danger { color: #dc2626; border: 1px solid #fecaca; background: #fff; }
.btn--danger:hover { background: #fef2f2; }

/* 예약 카드(액션 포함) */
.mp-bk { background: var(--surface); border: 1px solid var(--line-2); border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; }
.mp-bk__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mp-bk__info { cursor: pointer; min-width: 0; }
.mp-bk__act { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-2); }

/* 후기 작성 */
.sp-revlogin { font-size: 0.9rem; color: var(--muted); margin-bottom: 14px; }
.sp-revlogin a { color: var(--accent); font-weight: 700; }
.sp-revform { margin: 12px 0 18px; padding: 16px; background: var(--surface-2); border-radius: 12px; }
.sp-revstars { display: flex; gap: 4px; margin-bottom: 10px; }
.sp-revstars button { font-size: 1.5rem; color: var(--line); line-height: 1; }
.sp-revstars button.on { color: var(--gold); }
.sp-revform textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.92rem; font-family: inherit; resize: vertical; outline: none; margin-bottom: 10px; }
.sp-revform textarea:focus { border-color: var(--ink); }
#revToggle { margin-bottom: 4px; }

/* 모달 */
.modal { position: fixed; inset: 0; z-index: 400; display: flex; align-items: center; justify-content: center; padding: 20px; }
.modal[hidden] { display: none; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(23,20,15,0.5); backdrop-filter: blur(2px); }
.modal__card { position: relative; width: 100%; max-width: 420px; background: var(--surface); border-radius: 4px; padding: 22px; box-shadow: var(--shadow-lg); max-height: 86vh; overflow-y: auto; }
.modal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.modal__head b { font-size: 1.1rem; font-weight: 800; }
.modal__x { width: 30px; height: 30px; border-radius: 8px; color: var(--muted); font-size: 1rem; }
.modal__x:hover { background: var(--surface-2); }
.modal__sub { color: var(--muted); font-size: 0.88rem; margin-bottom: 14px; }
.modal__note { font-size: 0.78rem; color: var(--faint); margin-top: 12px; line-height: 1.5; }

/* 채팅 */
.chat { height: 300px; overflow-y: auto; background: var(--surface-2); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.chat-empty { margin: auto; color: var(--faint); font-size: 0.88rem; }
.chat-msg { max-width: 82%; align-self: flex-start; }
.chat-msg.mine { align-self: flex-end; text-align: right; }
.chat-msg__n { display: block; font-size: 0.7rem; color: var(--faint); margin-bottom: 3px; }
.chat-msg__b { display: inline-block; padding: 9px 13px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); font-size: 0.9rem; line-height: 1.4; text-align: left; word-break: keep-all; }
.chat-msg.mine .chat-msg__b { background: var(--accent); color: #fff; border-color: var(--accent); }
.chat-msg time { display: block; font-size: 0.66rem; color: var(--faint); margin-top: 3px; }
.chat-input { display: flex; gap: 8px; }
.chat-input input { flex: 1; padding: 11px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: 0.92rem; outline: none; }
.chat-input input:focus { border-color: var(--ink); }

/* 반짝할인 배지·할인가 */
.sp-card__flash { position: absolute; bottom: 12px; left: 12px; font-size: 0.72rem; font-weight: 800; color: #fff; background: #e2402f; padding: 5px 10px; border-radius: 999px; box-shadow: 0 2px 8px rgba(226,64,47,0.4); }
.sp-old { color: var(--faint); text-decoration: line-through; font-size: 0.8rem; font-weight: 600; font-family: "Pretendard", sans-serif; }
.book__old { color: var(--faint); text-decoration: line-through; font-size: 0.95rem; font-weight: 600; margin-right: 6px; }
.book__flash { display: inline-flex; align-items: center; gap: 2px; margin-left: 8px; font-size: 0.72rem; font-weight: 800; color: #fff; background: #e2402f; padding: 3px 8px; border-radius: 999px; vertical-align: middle; }
.book__coupon { margin-top: 4px; }
.book__couponrow { display: flex; gap: 8px; }
.book__couponrow input { flex: 1; }
.book__couponmsg { display: block; font-size: 0.78rem; margin-top: 6px; }
.book__couponmsg.ok { color: var(--ok); }
.book__couponmsg.no { color: var(--accent); }
.book__disc span:last-child { color: var(--accent); font-weight: 700; }

/* 일정 변경 표시 */
.mp-bk__change { margin: 10px 0 0; padding: 10px 12px; background: rgba(217, 138, 31, 0.13); border-radius: 10px; font-size: 0.84rem; color: var(--ink-2); line-height: 1.55; }
.mp-bk__change s { color: var(--faint); }
.mp-bk__change b { color: var(--accent); }

/* 마이페이지 제목행 · 할인관리 */
.mp__titlerow { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
@media (max-width: 640px) {
  .mp__titlerow { flex-direction: column; align-items: stretch; gap: 12px; }
  .mp__title { margin-bottom: 0; }
  .mp__hactions { width: 100%; }
  .mp__hactions .btn { flex: 1; }
}
.disc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 18px; }
.disc-card { border: 1px solid var(--line-2); border-radius: 14px; padding: 18px; background: var(--surface); }
.disc-card__t { font-size: 1rem; font-weight: 800; margin-bottom: 12px; }
.disc-card input { width: 100%; padding: 10px 13px; border: 1px solid var(--line); border-radius: 10px; font-size: 0.92rem; margin-bottom: 10px; outline: none; background: var(--surface); }
.disc-card input:focus { border-color: var(--ink); }
.disc-card .book__row { gap: 10px; }

/* 예약 카드 부가 정보 */
.mp-bk__right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.mp-dday { font-size: 0.72rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 3px 9px; border-radius: 999px; }
.mp-bk__sub { font-size: 0.82rem; color: var(--muted); margin-top: 8px; }
.mp-bk__sub b { color: var(--ink-2); }
/* 호스트 예약 요청 카드 — 금액 강조 + 정보 그룹 + 요청사항 박스 */
.bk-host__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.bk-host__ttl { min-width: 0; }
.bk-host__kicker { display: inline-block; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.04em; color: var(--accent); background: var(--accent-soft); padding: 2px 8px; border-radius: 6px; margin-bottom: 5px; }
.bk-host .mp-book__name { font-size: 1.08rem; }
.bk-host__guest { display: inline-flex; align-items: center; gap: 5px; font-size: 0.92rem; color: var(--ink-2); font-weight: 600; margin-top: 6px; }
.bk-host__guest .ic { color: var(--muted); }
.bk-host__guest b { font-weight: 800; color: var(--ink); }
.bk-host__manner { color: var(--faint); font-weight: 600; }
.bk-host__amt { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; text-align: right; padding: 8px 14px; background: var(--accent-soft); border: 1px solid rgba(79, 70, 229, 0.16); border-radius: 12px; }
.bk-host__amt-l { font-size: 0.7rem; font-weight: 700; color: var(--accent); opacity: 0.85; }
.bk-host__amt-v { font-family: var(--serif); font-size: 1.4rem; font-weight: 800; color: var(--accent); line-height: 1.15; white-space: nowrap; }
.bk-host__amt-v em { font-size: 0.82rem; font-weight: 700; font-style: normal; margin-left: 1px; }
.bk-host__settle { font-size: 0.7rem; color: var(--muted); margin-top: 2px; white-space: nowrap; }
.bk-host__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 14px; }
.bk-chip { display: inline-flex; align-items: center; gap: 7px; font-size: 0.88rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); padding: 7px 13px; border-radius: 9px; }
.bk-chip .ic { color: var(--muted); }
.bk-chip--tel { color: var(--accent); background: var(--accent-soft); font-weight: 800; }
.bk-host__st { margin-left: auto; }
.bk-req { margin-top: 14px; padding: 16px 18px; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 12px; }
.bk-req__t { display: block; font-size: 0.76rem; font-weight: 800; color: var(--faint); margin-bottom: 8px; letter-spacing: 0.03em; }
.bk-req__x { font-size: 0.95rem; line-height: 1.75; color: var(--ink-2); letter-spacing: 0.015em; margin: 0; }
@media (max-width: 520px) { .bk-host__top { flex-direction: column; } .bk-host__amt { align-self: stretch; flex-direction: row; align-items: center; justify-content: space-between; } .bk-host__settle { margin-top: 0; } }
.mp-bk__policy { font-size: 0.78rem; color: var(--faint); margin-top: 8px; }
.cal-d.is-block { text-decoration: line-through; color: var(--line) !important; }
.cal-d.is-partial { position: relative; }
.cal-d.is-partial::after { content: ""; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: #e2402f; }

/* 결제 확인 모달 */
.cf { background: var(--surface-2); border-radius: 12px; padding: 16px 18px; margin-bottom: 12px; }
.cf-row { display: flex; justify-content: space-between; gap: 12px; font-size: 0.9rem; color: var(--muted); margin-bottom: 9px; }
.cf-row b { color: var(--ink); font-weight: 700; text-align: right; }
.cf-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 12px; border-top: 1px dashed var(--line); font-weight: 800; color: var(--ink); }
.cf-total b { font-family: var(--serif); font-size: 1.35rem; font-weight: 600; }
.cf-total--dep { border-top-style: dotted; }
.cf-total--dep span em { font-style: normal; font-size: 0.72rem; color: var(--accent); font-weight: 700; margin-left: 4px; }
.cf-total--dep b { font-size: 1.1rem; color: var(--ink-2); }
.cf-depnote { display: flex; gap: 7px; align-items: flex-start; font-size: 0.8rem; color: var(--ink-2); background: var(--accent-soft, #eef0fe); border-radius: 9px; padding: 10px 12px; margin: 10px 0 14px; line-height: 1.5; }
.cf-depnote span { color: var(--faint); }
.cf-depnote svg { flex-shrink: 0; margin-top: 2px; color: var(--accent); }
.cf-policy { font-size: 0.8rem; color: var(--muted); background: rgba(217, 138, 31, 0.13); border-radius: 9px; padding: 9px 12px; margin-bottom: 14px; }
/* 게스트 예약카드 보증금 라인 */
.mp-bk__dep { display: flex; align-items: center; gap: 6px; font-size: 0.8rem; color: var(--ink-2); margin-top: 8px; padding: 7px 10px; border-radius: 8px; background: var(--surface-2); }
.mp-bk__dep svg { color: var(--accent); flex-shrink: 0; }
.mp-bk__dep--refunded { color: var(--good, #1f9d63); }
.mp-bk__dep--deducted { color: #b45309; }
/* 관리자 보증금(예수금) 목록 */
.ad-deps { display: flex; flex-direction: column; gap: 8px; }
.ad-dep { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 14px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.ad-dep__nm b { font-size: 0.94rem; }
.ad-dep__nm em { display: block; font-style: normal; font-size: 0.8rem; color: var(--muted); }
.ad-dep__amt { font-weight: 800; font-variant-numeric: tabular-nums; }
.ad-dep__st { font-size: 0.76rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.ad-dep__st--held { background: var(--accent-soft, #eef0fe); color: var(--accent); }
.ad-dep__st--refunded { background: rgba(31,157,99,.14); color: #1f9d63; }
.ad-dep__st--deducted { background: rgba(180,83,9,.14); color: #b45309; }
.ad-dep__act { font-size: 0.78rem; color: var(--muted); white-space: nowrap; }
@media (max-width: 640px) { .ad-dep { grid-template-columns: 1fr auto; grid-auto-rows: auto; } .ad-dep__st, .ad-dep__act { grid-column: span 1; } }

/* 이용권 · QR */
.ticket { text-align: center; padding: 8px 0; }
.qr { display: grid; width: 156px; height: 156px; margin: 6px auto 14px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 10px; gap: 1px; }
.qr span { background: transparent; }
.qr span.on { background: var(--ink); border-radius: 1px; }
.ticket__code { font-family: monospace; font-weight: 800; letter-spacing: 0.14em; font-size: 1.05rem; color: var(--ink); }
.ticket__info { font-size: 0.92rem; color: var(--ink-2); line-height: 1.6; margin: 12px 0; }
.ticket__info b { font-weight: 800; }
.ticket__note { font-size: 0.8rem; color: var(--faint); }

/* 정산 대시보드 */
.settle-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; background: var(--surface); border: 1px solid var(--line-2); border-radius: 10px; overflow: hidden; box-shadow: var(--shadow-sm); }
.settle-kpi { background: transparent; border: 0; border-right: 1px solid var(--line-2); border-radius: 0; padding: 13px 14px; text-align: left; display: flex; flex-direction: column; gap: 3px; }
.settle-kpi:last-child { border-right: 0; }
.settle-kpi strong { display: block; font-family: inherit; font-size: 1.2rem; font-weight: 800; color: var(--ink); line-height: 1.05; letter-spacing: -0.02em; }
.settle-kpi span { display: block; font-size: 0.76rem; color: var(--muted); }
.settle-kpi--hl { background: var(--accent-soft); }
.settle-kpi--hl strong { color: var(--accent); }
.settle-kpi--hl span { color: var(--accent); font-weight: 700; }
@media (max-width: 760px) {
  .settle-kpi:nth-child(2) { border-right: 0; }
  .settle-kpi:nth-child(1), .settle-kpi:nth-child(2) { border-bottom: 1px solid var(--line-2); }
}

/* 내 등록 공간 수정/삭제 */
.mine-wrap { display: flex; flex-direction: column; position: relative; }
.mine-wrap.is-hidden .sp-card { opacity: 0.55; filter: grayscale(0.4); }
.mine-hidden-tag { position: absolute; top: 10px; left: 10px; z-index: 3; display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 6px; background: rgba(23, 20, 15, 0.82); color: #fff; font-size: 0.72rem; font-weight: 700; }
.mine-act { display: flex; gap: 8px; margin-top: 10px; }
.mine-act .btn { flex: 1; }
/* 노출/숨김 토글 스위치 (카드 우측 상단) */
.mine-toggle { position: absolute; top: 10px; right: 10px; z-index: 3; display: inline-flex; align-items: center; gap: 7px; background: rgba(255, 255, 255, 0.95); border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px 4px 11px; cursor: pointer; font: inherit; font-size: 0.74rem; font-weight: 800; color: var(--muted); box-shadow: 0 2px 8px -3px rgba(0, 0, 0, 0.3); transition: color 0.14s; }
.mine-toggle__lbl { line-height: 1; }
.mine-toggle .switch { position: relative; width: 32px; height: 18px; border-radius: 999px; background: #cbd2dc; transition: background 0.16s; flex-shrink: 0; }
.mine-toggle .switch i { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: left 0.16s; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35); }
.mine-toggle.is-on { color: var(--accent); }
.mine-toggle.is-on .switch { background: var(--accent); }
.mine-toggle.is-on .switch i { left: 16px; }
.mine-toggle:hover { border-color: var(--accent); }

/* 견적요청 리드타임 안내 */
.rq-notice { background: rgba(217, 138, 31, 0.13); border: 1px solid rgba(217, 138, 31, 0.30); border-radius: 12px; padding: 14px 18px; font-size: 0.9rem; color: var(--ink-2); line-height: 1.6; margin-bottom: 20px; }
.rq-notice b { color: var(--accent); }
.rq-notice--flow { padding: 16px 18px; }
.rq-flow__title { font-weight: 800; font-size: 0.98rem; color: var(--ink); margin-bottom: 12px; }
.rq-flow { list-style: none; counter-reset: rqf; display: grid; gap: 10px; margin: 0; padding: 0; }
.rq-flow li { counter-increment: rqf; position: relative; padding-left: 34px; }
.rq-flow li::before { content: counter(rqf); position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 800; font-size: 0.8rem; display: flex; align-items: center; justify-content: center; }
.rq-flow li b { display: block; color: var(--ink); font-size: 0.92rem; margin-bottom: 1px; }
.rq-flow li span { font-size: 0.84rem; color: var(--muted); }
.rq-flow li span b { display: inline; color: var(--accent); font-size: inherit; }
.rq-flow__note { margin: 12px 0 0; padding-top: 11px; border-top: 1px dashed #e0cf9f; font-size: 0.82rem; color: var(--ink-2); }

/* 원스톱 · 역경매 소개 */
.how-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
.how-step { background: var(--surface); border: 1px solid var(--line-2); border-radius: 16px; padding: 22px; box-shadow: var(--shadow-sm); }
.how-step .how-step__n { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1.05rem; font-weight: 800; line-height: 1; margin-bottom: 12px; box-shadow: 0 4px 12px -3px rgba(79,70,229,0.5); }
.how-step b { display: block; font-size: 1.05rem; font-weight: 800; margin-bottom: 4px; }
.how-step span { font-size: 0.88rem; color: var(--muted); line-height: 1.5; }
.how-svc { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.how-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 9px 15px; font-size: 0.9rem; font-weight: 700; }
.how-chip .ic { width: 18px; height: 18px; }

/* 부대 서비스 마켓 카드 */
.svc-grid { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; padding: 2px 2px 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; }
.svc-grid::-webkit-scrollbar { display: none; }
.svc-grid.is-drag { cursor: grabbing; user-select: none; scroll-behavior: auto; }
.svc-grid .svc-card { flex: 0 0 246px; scroll-snap-align: start; -webkit-user-drag: none; user-select: none; }
.svc-grid.is-drag .svc-card { pointer-events: none; }
.guide-play { vertical-align: -4px; margin-right: 4px; }
.guide-btn { display: inline-flex; align-items: center; }
.svc-card { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 13px 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 13px; text-decoration: none; color: inherit; transition: transform 0.14s, box-shadow 0.14s, border-color 0.14s; }
.svc-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); border-color: var(--ink); }
.svc-card__ic { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--tint); color: var(--ink); }
.svc-card__ic .ic { width: 20px; height: 20px; }
.svc-card__body { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.svc-card__t { font-weight: 800; font-size: 0.92rem; }
.svc-card__d { font-size: 0.78rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 460px) { .svc-grid .svc-card { flex-basis: 78vw; } }

/* 역경매 견적 비교 */
.rfp-quotes { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.rfp-cat { margin-bottom: 6px; }
.rfp-cat__h { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: 0.9rem; margin: 12px 0 8px; }
.rfp-cat__h .ic { color: var(--accent); }
.rfp-cat__cnt { margin-left: auto; font-size: 0.76rem; font-weight: 800; color: #fff; background: var(--accent); padding: 2px 10px; border-radius: 999px; }
.rfp-empty { font-size: 0.85rem; color: var(--faint); padding: 6px 0 8px; }
.rfp-cat .quote-row { margin-bottom: 6px; }
.quote-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: var(--surface-2); border-radius: 11px; border: 1px solid transparent; }
.quote-row.is-sel { border-color: var(--ok); background: rgba(18, 161, 80, 0.16); }
.quote-row__l b { font-weight: 800; }
.quote-cat { font-size: 0.74rem; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 2px 8px; border-radius: 999px; margin-left: 4px; }
.quote-desc { font-size: 0.84rem; color: var(--muted); margin-top: 4px; }
.quote-row__r { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.quote-price { font-weight: 800; font-size: 1rem; }
.quote-badge { font-size: 0.76rem; font-weight: 800; color: var(--ok); }
.rfp-cat__done { margin-left: auto; font-size: 0.74rem; font-weight: 800; color: var(--ok); background: rgba(18, 161, 80, 0.16); padding: 2px 10px; border-radius: 999px; }
.rfp-cat__done + .rfp-cat__cnt { margin-left: 6px; }
.quote-low { font-size: 0.68rem; font-weight: 800; color: #fff; background: var(--ok); padding: 2px 7px; border-radius: 999px; margin-left: 7px; vertical-align: 2px; }
/* 예산 비교 바 */
.rfp-budget { margin-top: 12px; padding: 14px 16px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; }
.rfp-budget.is-over { border-color: rgba(242, 119, 95, 0.45); background: rgba(242, 119, 95, 0.09); }
.rfp-budget__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
.rfp-budget__lbl { display: inline-flex; align-items: center; gap: 5px; font-size: 0.86rem; font-weight: 700; color: var(--ink-2); }
.rfp-budget__lbl svg { color: var(--accent); }
.rfp-budget__pct { font-family: var(--serif); font-size: 1.2rem; font-weight: 800; color: var(--accent); line-height: 1; }
.rfp-budget.is-over .rfp-budget__pct { color: #c0432c; }
.rfp-budget__bar { height: 11px; border-radius: 999px; background: var(--line-2); overflow: hidden; }
.rfp-budget__bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); border-radius: 999px; transition: width 0.4s ease; min-width: 3px; }
.rfp-budget.is-over .rfp-budget__bar i { background: linear-gradient(90deg, #e2402f, #d9583f); }
.rfp-budget__foot { display: flex; justify-content: space-between; gap: 10px; margin-top: 9px; font-size: 0.82rem; color: var(--muted); }
.rfp-budget__foot b { color: var(--ink); font-weight: 800; }
.rfp-budget__note { display: flex; align-items: center; gap: 4px; margin-top: 6px; font-size: 0.8rem; font-weight: 700; color: var(--muted); }
.rfp-budget.is-over .rfp-budget__note { color: #c0432c; }
.rfp-budget.is-over .rfp-budget__note svg { color: #c0432c; }
/* RFP 선택 유도 헤드카피 */
.rfp-cta-copy { display: flex; align-items: center; gap: 7px; margin: 12px 0; padding: 12px 15px; background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.16); border-radius: 11px; font-size: 0.92rem; font-weight: 700; color: var(--ink); line-height: 1.4; }
.rfp-cta-copy svg { color: var(--accent); flex-shrink: 0; }
/* 업체: 내가 낸 견적 목록 (카테고리별) */
.vq-list { display: grid; gap: 7px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.vq-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; background: var(--surface-2); border-radius: 10px; }
.vq-row__cat { font-weight: 800; font-size: 0.88rem; }
.vq-row__price { font-weight: 800; }
.vq-row__st { font-size: 0.78rem; font-weight: 700; color: var(--gold, #b0851f); }
.vq-row__disc { font-size: 0.72rem; font-weight: 800; color: #fff; background: var(--ok); padding: 1px 7px; border-radius: 999px; }
.vq-row__act { margin-left: auto; display: flex; gap: 6px; }
/* 공간 견적 표시(회원) */
.quote-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; margin-top: 4px; }
.quote-by { font-size: 0.8rem; color: var(--muted); }
.quote-disc { font-size: 0.74rem; font-weight: 800; color: var(--ok); background: rgba(18, 161, 80, 0.16); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
/* 공간 견적 폼(호스트) */
.q-orig { font-size: 0.86rem; color: var(--ink-2); margin: -4px 0 12px; }
.q-orig b { font-weight: 800; }
.q-orig span { color: var(--faint); font-size: 0.8rem; }
.q-disc-live { min-height: 4px; margin: -4px 0 12px; }
.q-disc-badge { display: inline-block; font-size: 0.8rem; font-weight: 800; color: #fff; background: var(--ok); padding: 4px 11px; border-radius: 999px; }
.q-disc-none { font-size: 0.8rem; font-weight: 700; color: #c0432c; }
.mp-bk__info--click { cursor: pointer; }
.mp-bk__info--click:hover .mp-book__name { color: var(--accent); }
/* 견적 요청 상세 모달 */
.rd-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.rd-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 0.8rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 5px 11px; border-radius: 999px; }
.rd-chip .ic { color: var(--accent); }
.rd-rows { display: grid; gap: 1px; background: var(--line-2); border-radius: 12px; overflow: hidden; border: 1px solid var(--line); }
.rd-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 14px; background: var(--surface); font-size: 0.9rem; }
.rd-row span { color: var(--muted); }
.rd-row b { font-weight: 800; color: var(--ink); text-align: right; }
.rd-note { margin-top: 12px; padding: 12px 14px; background: var(--surface-2); border-radius: 11px; }
.rd-note b { font-size: 0.82rem; color: var(--muted); font-weight: 800; }
.rd-note p { margin: 5px 0 0; font-size: 0.92rem; line-height: 1.6; color: var(--ink); white-space: pre-wrap; }
.rd-note--empty { color: var(--faint); font-size: 0.86rem; }
/* 공간 견적 폼 — 요청 요약 */
.sq-req { font-size: 0.84rem; color: var(--ink-2); background: var(--accent-soft); border-radius: 10px; padding: 10px 12px; margin: -4px 0 14px; line-height: 1.6; }
.sq-req b { font-weight: 800; }
.sq-req__detail { display: block; color: var(--muted); font-style: italic; margin-top: 3px; }
.sq-req__more { background: none; border: none; color: var(--accent); font-weight: 800; font-size: 0.8rem; cursor: pointer; padding: 2px 0 0; text-decoration: underline; }
/* 견적요청 카드 접기/펼치기 */
.rfp-card__head { cursor: pointer; }
.rfp-card .mp-bk__right { display: flex; align-items: center; gap: 10px; }
.rfp-card__chev { font-size: 0.85rem; color: var(--faint); transition: transform 0.2s; }
.rfp-card.is-collapsed .rfp-card__chev { transform: rotate(-90deg); }
.rfp-card.is-collapsed .rfp-card__body { display: none; }
.rfp-card__head:hover .mp-book__name { color: var(--accent); }
/* 선택/확정 상태 */
.quote-row.is-pick { border-color: var(--accent); background: var(--accent-soft); }
.quote-row.is-dim { opacity: 0.5; }
.quote-picked { font-size: 0.78rem; font-weight: 800; color: var(--accent); }
.rfp-cat__confirm { margin-left: auto; }
.quote-name--link { cursor: pointer; }
.quote-name--link:hover { color: var(--accent); }
.quote-name__see { font-size: 0.72rem; color: var(--accent); font-weight: 700; }
/* 벤더: 확정된 이용 공간 배너 */
.vq-space { margin-top: 10px; padding: 11px 13px; background: rgba(59, 130, 246, 0.10); border: 1px solid rgba(59, 130, 246, 0.28); border-radius: 11px; font-size: 0.88rem; color: var(--ink); }
.vq-space b { font-weight: 800; }
.vq-space__sub { font-size: 0.8rem; color: var(--muted); margin-top: 3px; }
.vq-space--wait { background: var(--surface-2); border-color: var(--line); color: var(--muted); font-size: 0.82rem; }
/* 공간 상세 정보 모달 */
.si-thumb { height: 180px; border-radius: 12px; overflow: hidden; margin-bottom: 12px; }
.si-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.si-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.si-price { font-weight: 800; font-size: 1.05rem; }
.si-price em { font-size: 0.8rem; font-weight: 500; color: var(--muted); font-style: normal; }
.si-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.si-tags span { font-size: 0.78rem; font-weight: 600; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 4px 10px; border-radius: 999px; }
/* 견적 비교 요약 (feature 3) */
.rfp-compare { margin-top: 12px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.rfp-compare__h { font-weight: 800; font-size: 0.9rem; padding: 10px 14px; background: var(--surface-2); border-bottom: 1px solid var(--line); }
.rfp-cmp { width: 100%; border-collapse: collapse; font-size: 0.86rem; table-layout: fixed; }
.rfp-cmp th, .rfp-cmp td { padding: 8px 12px; text-align: right; border-bottom: 1px solid var(--line-2); white-space: nowrap; }
.rfp-cmp th:first-child, .rfp-cmp td:first-child { text-align: left; font-weight: 700; white-space: normal; word-break: keep-all; width: 38%; }
.rfp-cmp th:last-child, .rfp-cmp td:last-child { width: 15%; }
@media (max-width: 560px) { .rfp-cmp { font-size: 0.8rem; } .rfp-cmp th, .rfp-cmp td { padding: 7px 8px; } }
.rfp-cmp thead th { color: var(--muted); font-weight: 700; font-size: 0.78rem; }
.rfp-cmp tbody tr:last-child td { border-bottom: none; }
.rfp-compare__foot { padding: 10px 14px; background: var(--surface-2); font-size: 0.86rem; color: var(--ink-2); }
.rfp-compare__foot b { font-weight: 800; color: var(--ink); }
/* 마감 임박 배너 (feature 2) */
.rfp-dl { margin-top: 12px; padding: 11px 14px; background: rgba(217, 138, 31, 0.12); border: 1px solid rgba(217, 138, 31, 0.35); border-radius: 11px; font-size: 0.86rem; color: #92610f; }
.rfp-dl b { font-weight: 800; }
/* 신뢰 지표 · 추천 배지 */
.quote-row__name { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.quote-trust { display: inline-block; font-size: 0.76rem; font-weight: 700; color: var(--gold, #b0851f); margin-top: 3px; }
.quote-rec { font-size: 0.68rem; font-weight: 800; color: #fff; background: var(--accent); padding: 2px 7px; border-radius: 999px; }
/* 공간 견적 시간 충돌 경고 (feature 4) */
.sq-conflict { margin: -4px 0 12px; padding: 10px 12px; background: rgba(220, 38, 38, 0.08); border: 1px solid rgba(220, 38, 38, 0.25); border-radius: 10px; font-size: 0.82rem; font-weight: 700; color: #c0392b; }
/* 첨부(사진·파일) */
.att-input { width: 100%; font-size: 0.82rem; }
.att-prev { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.att-prev img { width: 60px; height: 46px; object-fit: cover; border-radius: 7px; border: 1px solid var(--line); }
.att-file { font-size: 0.76rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 3px 9px; border-radius: 999px; }
.qfiles { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
/* 견적 사진 미리보기(캐러셀 진입) */
.qphotos { position: relative; margin-top: 8px; width: 120px; cursor: zoom-in; }
.qphotos__img { width: 120px; height: 82px; object-fit: cover; border-radius: 9px; border: 1px solid var(--line); display: block; }
.qphotos__cnt { position: absolute; right: 5px; bottom: 5px; font-size: 0.68rem; font-weight: 800; color: #fff; background: rgba(0,0,0,0.6); padding: 1px 7px; border-radius: 999px; }
/* 라이트박스 (<>) */
.lb { position: relative; text-align: center; }
.lb__img { display: block; max-width: 100%; max-height: 66vh; width: auto; margin: 0 auto; object-fit: contain; border-radius: 10px; background: #111; }
.lb__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: none; background: rgba(0,0,0,0.55); font-size: 1.4rem; line-height: 1; cursor: pointer; color: #fff; z-index: 2; }
.lb__prev { left: 8px; } .lb__next { right: 8px; }
.lb__nav:disabled { opacity: 0.25; cursor: default; }
.modal__card { overflow-x: hidden; }
/* 업체 찾기 */
/* 업체 찾기 — 검색·지역·가로 필터 */
.v-controls { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.v-controls .srch-kw { flex: 1 1 240px; min-width: 200px; margin-bottom: 0; }
.v-region { flex: 0 0 auto; width: 168px; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--surface); font-weight: 600; }
.v-filterbar { overflow-x: auto; scrollbar-width: none; margin-bottom: 20px; -webkit-overflow-scrolling: touch; -webkit-mask-image: linear-gradient(90deg, #000 94%, transparent); mask-image: linear-gradient(90deg, #000 94%, transparent); }
.v-filterbar::-webkit-scrollbar { display: none; }
.v-filterbar .chips { flex-wrap: nowrap; width: max-content; padding-right: 24px; }
.v-filterbar .chip { flex-shrink: 0; }
@media (max-width: 560px) { .v-region { width: 100%; } }
.v-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.v-card { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 2px 10px -4px rgba(15,23,42,0.08); transition: transform 0.16s, box-shadow 0.16s; }
.v-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -20px rgba(15,23,42,0.28); }
.v-card__thumb { position: relative; aspect-ratio: 16 / 9; overflow: hidden; cursor: pointer; background: var(--surface-2); }
.v-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s cubic-bezier(0.2,0.7,0.3,1); }
.v-card:hover .v-card__thumb img { transform: scale(1.05); }
.v-card__rate { position: absolute; top: 10px; right: 10px; display: inline-flex; align-items: center; font-size: 0.73rem; font-weight: 700; color: #fff; background: rgba(15,23,42,0.42); backdrop-filter: blur(6px) saturate(160%); padding: 4px 9px; border-radius: 999px; box-shadow: 0 2px 8px -3px rgba(0,0,0,0.3); }
.v-card__rate--new { background: linear-gradient(100deg, var(--accent), var(--accent-2)); letter-spacing: 0.03em; }
/* 결과 수 + 정렬 헤더 */
.v-listhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.v-count { font-size: 0.95rem; color: var(--muted); }
.v-count b { font-family: var(--serif); font-size: 1.25rem; color: var(--ink); font-weight: 600; margin-right: 2px; }
/* 빈 화면 (검색 결과 없음) */
.empty-state { text-align: center; padding: 64px 20px; color: var(--muted); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.empty-state__ic { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--surface-2); color: var(--faint); margin-bottom: 8px; }
.empty-state b { font-size: 1.05rem; font-weight: 800; color: var(--ink); }
.empty-state p { font-size: 0.9rem; color: var(--muted); margin-bottom: 14px; }
.v-card__body { padding: 15px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.v-card__name { font-size: 1.04rem; font-weight: 800; cursor: pointer; }
.v-card__name:hover { color: var(--accent); }
.v-card__blurb { font-size: 0.85rem; color: var(--muted); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.55em; }
.v-tags { display: flex; flex-wrap: wrap; gap: 5px; }
/* 맞춤 업체 카드 — 대표 렌탈 품목 칩 (한눈에 인지) */
.v-card__items { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 2px 0 2px; cursor: pointer; }
.v-card__itemcap { display: inline-flex; align-items: center; gap: 4px; font-size: 0.72rem; font-weight: 800; color: var(--accent); }
.v-card__itemcap .ic { color: var(--accent); }
.v-item { font-size: 0.75rem; font-weight: 700; color: var(--ink-2); background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.16); padding: 3px 9px; border-radius: 7px; white-space: nowrap; }
.v-item--more { color: var(--accent); background: var(--surface); }
.vinfo-items__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.v-tag { display: inline-flex; align-items: center; gap: 4px; font-size: 0.74rem; font-weight: 700; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); padding: 3px 9px; border-radius: 999px; }
.v-tag .ic { color: var(--accent); }
.v-card__cta { margin-top: auto; }
.v-card__links { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 9px; }
.v-link { font-size: 0.82rem; font-weight: 600; color: var(--muted); }
.v-link:hover { color: var(--accent); text-decoration: underline; }
.v-link__sep { color: var(--line); }
@media (max-width: 900px) { .v-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .v-grid { grid-template-columns: 1fr; } }
/* 업체 후기 모달 */
.vrev-summary { display: flex; gap: 16px; align-items: center; padding: 14px; background: var(--surface-2); border-radius: 12px; margin-bottom: 14px; }
.vrev-score { text-align: center; flex-shrink: 0; }
.vrev-score strong { display: block; font-size: 2rem; font-weight: 800; color: var(--gold, #b0851f); line-height: 1; }
.vrev-score span { font-size: 0.76rem; color: var(--muted); }
.vrev-bars { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.vrev-bar { display: flex; align-items: center; gap: 7px; font-size: 0.74rem; color: var(--muted); }
.vrev-bar span { width: 22px; }
.vrev-bar i { flex: 1; height: 6px; background: var(--line-2); border-radius: 999px; overflow: hidden; }
.vrev-bar i b { display: block; height: 100%; background: var(--gold, #b0851f); }
.vrev-bar em { width: 20px; text-align: right; font-style: normal; }
.vrev-list { display: flex; flex-direction: column; gap: 12px; max-height: 46vh; overflow-y: auto; }
.vrev-row { display: flex; gap: 10px; }
.vrev-av { width: 34px; height: 34px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; }
.vrev-nm { font-weight: 700; font-size: 0.9rem; }
.vrev-nm em { color: var(--gold, #b0851f); font-style: normal; font-size: 0.8rem; margin-left: 4px; }
.vrev-tx { font-size: 0.86rem; color: var(--ink-2); line-height: 1.5; margin-top: 2px; }
/* 업체 상세 모달 */
.vinfo-thumb { height: 170px; border-radius: 12px; overflow: hidden; margin-bottom: 12px; }
.vinfo-thumb img { width: 100%; height: 100%; object-fit: cover; }
.vinfo-intro { font-size: 0.9rem; color: var(--ink-2); line-height: 1.6; margin: 0 0 12px; }
/* 업체 모달 — 사진 캐러셀 */
.vmg { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; touch-action: pan-x; overscroll-behavior-x: contain; border-radius: 14px; aspect-ratio: 16 / 10; background: var(--surface-2); }
.vmg::-webkit-scrollbar { display: none; }
.vmg__slide { flex: 0 0 100%; scroll-snap-align: center; }
.vmg__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vmg--multi .vmg__slide { position: relative; }
/* 업체 모달 — 참고가 */
.vinfo-price { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-size: 0.92rem; color: var(--ink-2); background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.16); border-radius: 11px; padding: 11px 14px; margin-bottom: 12px; }
.vinfo-price b { font-size: 1.1rem; font-weight: 800; color: var(--accent); }
.vinfo-price span { font-size: 0.78rem; color: var(--muted); }
/* 업체 모달 — 견적 요청 폼 */
.vreq { border: 1px solid var(--accent); background: linear-gradient(180deg, var(--accent-soft), var(--surface) 55%); border-radius: 14px; padding: 15px 16px; margin: 4px 0 16px; }
.vreq__head { font-size: 0.95rem; font-weight: 800; color: var(--ink); margin-bottom: 12px; }
.vreq__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vreq__f { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; }
.vreq__f > span { font-size: 0.78rem; font-weight: 700; color: var(--ink-2); }
.vreq__f input, .vreq__f textarea { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; font-family: inherit; font-size: 0.9rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; }
.vreq__f input:focus, .vreq__f textarea:focus { border-color: var(--accent); }
.vreq__label { font-size: 0.78rem; font-weight: 700; color: var(--ink-2); margin-bottom: 7px; }
.vreq__label span { color: var(--faint); font-weight: 500; }
.vreq__items { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.vreq__item { display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: 0.8rem; font-weight: 600; color: var(--ink-2); cursor: pointer; }
.vreq__item input { width: 14px; height: 14px; margin: 0; accent-color: var(--accent); }
.vreq__item:has(input:checked) { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 700; }
.vreq__err { color: #e2402f; font-size: 0.82rem; font-weight: 600; margin: 0 0 10px; }
.vreq__notice { font-size: 0.86rem; color: var(--muted); }
.vreq__notice a { color: var(--accent); font-weight: 700; }
@media (max-width: 480px) { .vreq__row { grid-template-columns: 1fr; } }
/* 맞춤 업체 카드 — 대여 시작가 */
.v-card__from { font-size: 0.82rem; color: var(--muted); margin-top: 2px; }
.v-card__from b { color: var(--accent); font-weight: 800; }
.vinfo-items { background: var(--surface-2); border-radius: 11px; padding: 12px 14px; margin-bottom: 14px; }
.vinfo-items b { font-size: 0.82rem; color: var(--muted); font-weight: 800; }
.vinfo-items ul { margin: 7px 0 0; padding-left: 18px; }
.vinfo-items li { font-size: 0.88rem; color: var(--ink); line-height: 1.7; }
/* 업체 정보 편집 — 사진 */
.biz-photos { display: flex; flex-wrap: wrap; gap: 8px; }
.biz-photo { position: relative; width: 92px; height: 70px; border-radius: 9px; overflow: hidden; border: 1px solid var(--line); }
.biz-photo img { width: 100%; height: 100%; object-fit: cover; }
.biz-photo__x { position: absolute; top: 3px; right: 3px; width: 20px; height: 20px; border-radius: 50%; border: none; background: rgba(0,0,0,0.6); color: #fff; font-size: 0.7rem; cursor: pointer; }
/* 직접 요청 배지 */
.rq-direct { font-size: 0.72rem; font-weight: 800; color: #fff; background: var(--accent); padding: 2px 8px; border-radius: 999px; vertical-align: 1px; }
/* 공간 상세 sticky 섹션 내비 */
.sp-nav { position: sticky; top: var(--header-h); z-index: 50; display: flex; gap: 2px; background: rgba(247,248,250,0.92); backdrop-filter: saturate(180%) blur(10px); border-bottom: 1px solid var(--line); padding: 3px 0; margin: 12px 0 22px; overflow-x: auto; scrollbar-width: none; }
.sp-nav::-webkit-scrollbar { display: none; }
.sp-nav a { padding: 11px 15px; font-size: 0.9rem; font-weight: 700; color: var(--muted); white-space: nowrap; border-bottom: 2px solid transparent; transition: color 0.15s; }
.sp-nav a:hover { color: var(--ink); }
.sp-nav a.is-active { color: var(--accent); border-bottom-color: var(--accent); }
.sp-sec { scroll-margin-top: calc(var(--header-h) + 60px); }
/* 견적요청 하위탭 · 액션 */
.rfp-actions { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
/* 기간 필터 바 */
.lf { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; padding: 10px 12px; background: var(--surface-2); border-radius: 11px; }
.lf__t { font-size: 0.82rem; font-weight: 800; color: var(--muted); }
.lf__d { padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; font-family: inherit; font-size: 0.86rem; background: var(--surface); }
.lf__sep { color: var(--faint); }
.rfp-subtabs { display: flex; gap: 8px; margin-bottom: 16px; border-bottom: 2px solid var(--line); }
.rfp-subtab { background: none; border: none; padding: 10px 4px; margin-bottom: -2px; font-size: 0.94rem; font-weight: 700; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; display: inline-flex; align-items: center; gap: 6px; }
.rfp-subtab.is-active { color: var(--ink); border-bottom-color: var(--accent); }
.rfp-subtab__n { font-size: 0.74rem; font-weight: 800; color: #fff; background: var(--faint); border-radius: 999px; padding: 1px 8px; min-width: 20px; text-align: center; }
.rfp-subtab.is-active .rfp-subtab__n { background: var(--accent); }
/* 견적 그룹 헤더(공간/서비스) */
.rfp-group { margin-top: 12px; }
.rfp-group:first-child { margin-top: 6px; }
.rfp-group__h { width: 100%; display: flex; align-items: center; gap: 7px; font-size: 0.84rem; font-weight: 800; color: var(--ink-2); padding: 9px 11px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; text-align: left; }
.rfp-group__h:hover { border-color: var(--accent); }
.rfp-group__h svg { color: var(--accent); }
.rfp-group__cnt { font-size: 0.72rem; font-weight: 800; color: var(--faint); background: var(--surface); border-radius: 999px; padding: 1px 8px; }
.rfp-group__chev { margin-left: auto; color: var(--faint); display: inline-flex; }
.rfp-group__chev svg { color: var(--faint); transform: rotate(90deg); transition: transform 0.18s; }
.rfp-group__h.is-off .rfp-group__chev svg { transform: rotate(0deg); }
.rfp-group__body { padding-top: 4px; }
/* 직접요청 예산·견적 라인 */
.rfp-dline { font-size: 0.9rem; color: var(--ink-2); margin-top: 10px; padding: 10px 13px; background: var(--surface-2); border-radius: 10px; }
.rfp-dline b { font-weight: 800; color: var(--ink); }
/* 벤더 들어온요청 섹션 헤더 */
.vreq-sec { display: flex; align-items: baseline; gap: 8px; margin: 18px 0 10px; }
.vreq-sec:first-child { margin-top: 4px; }
.vreq-sec b { font-size: 1rem; font-weight: 800; }
.vreq-sec span { font-size: 0.74rem; font-weight: 800; color: #fff; background: var(--accent); border-radius: 999px; padding: 1px 8px; }
.vreq-sec em { font-size: 0.8rem; color: var(--muted); font-style: normal; }
/* 핵심 플로우 스텝 인디케이터 */
.steps { display: flex; align-items: flex-start; margin: 4px 0 14px; }
.step { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; position: relative; }
.step::before { content: ""; position: absolute; top: 13px; left: -50%; width: 100%; height: 2px; background: var(--line); z-index: 0; }
.step:first-child::before { display: none; }
.step.is-done::before, .step.is-cur::before { background: var(--accent); }
.step__dot { position: relative; z-index: 1; width: 26px; height: 26px; border-radius: 50%; background: var(--surface-2); border: 2px solid var(--line); color: var(--faint); display: flex; align-items: center; justify-content: center; font-size: 0.78rem; font-weight: 800; }
.step.is-done .step__dot { background: var(--accent); border-color: var(--accent); color: #fff; }
.step.is-cur .step__dot { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.step__l { font-size: 0.74rem; font-weight: 700; color: var(--faint); }
.step.is-done .step__l, .step.is-cur .step__l { color: var(--ink-2); }
.steps--lg { max-width: 520px; margin: 8px auto 26px; }
.steps--lg .step__dot { width: 32px; height: 32px; font-size: 0.9rem; }
.steps--lg .step::before { top: 16px; }
.steps--lg .step__l { font-size: 0.82rem; }
.pay-done { font-size: 0.82rem; font-weight: 800; color: var(--ok); }
/* 결제 페이지 */
.checkout { max-width: 1040px; margin: 0 auto; padding: calc(var(--header-h) + 28px) 20px 60px; }
.checkout__title { font-family: var(--serif); font-size: 1.7rem; margin: 0 0 4px; }
.checkout__sub { color: var(--muted); margin: 0 0 20px; }
.co-grid { display: grid; grid-template-columns: 1.3fr 1.05fr; gap: 22px; align-items: start; }
.co-h { font-size: 1rem; font-weight: 800; margin: 0 0 12px; }
.co-order, .co-pay { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 20px; }
.co-line { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line-2); }
.co-line b { font-weight: 700; }
.co-line span { display: block; font-size: 0.82rem; color: var(--muted); margin-top: 2px; }
.co-line em { font-weight: 800; font-style: normal; }
/* #4a: 투명 통합 세부 영수증 */
.co-receipt { border: 1px dashed var(--line); border-radius: 12px; padding: 12px 14px; background: var(--surface-2); }
.co-receipt__h { font-size: 0.78rem; font-weight: 800; color: var(--muted); margin-bottom: 8px; display: flex; align-items: center; gap: 5px; }
.co-receipt__row { display: flex; justify-content: space-between; gap: 10px; font-size: 0.88rem; padding: 4px 0; color: var(--ink-2); }
.co-receipt__row em { font-style: normal; color: var(--muted); font-size: 0.82rem; }
.co-receipt__row b { font-weight: 700; white-space: nowrap; }
.co-receipt__sum { display: flex; justify-content: space-between; font-size: 0.82rem; color: var(--muted); border-top: 1px solid var(--line); margin-top: 6px; padding-top: 7px; }
.co-receipt__sum b { color: var(--ink); font-weight: 800; }
.co-receipt__empty { font-size: 0.84rem; color: var(--faint); margin: 0; }
/* #4b: D-Day 환불 정책 타임라인 */
.co-refund { margin-top: 14px; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.co-refund__h { display: flex; align-items: center; gap: 5px; font-size: 0.82rem; font-weight: 800; color: var(--ink); margin-bottom: 10px; }
.co-refund__h span { margin-left: auto; font-size: 0.74rem; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 2px 8px; border-radius: 999px; }
.co-refund__tl { display: flex; gap: 4px; }
.co-refund__step { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 7px 2px; border-radius: 8px; background: var(--surface-2); border: 1px solid transparent; }
.co-refund__step b { font-size: 0.9rem; font-weight: 800; color: var(--muted); }
.co-refund__step span { font-size: 0.64rem; font-weight: 700; color: var(--faint); }
.co-refund__step.is-past { opacity: 0.5; }
.co-refund__step.is-now { background: var(--accent-soft); border-color: var(--accent); }
.co-refund__step.is-now b { color: var(--accent); }
.co-refund__step.is-now span { color: var(--accent-ink); }
.co-refund__now { margin: 10px 0 0; font-size: 0.82rem; color: var(--ink-2); }
.co-refund__now b { color: var(--accent); font-weight: 800; }
.co-refund__now a { color: var(--muted); font-size: 0.76rem; margin-left: 4px; }
.co-sum { margin-top: 14px; }
.co-sum__row { display: flex; justify-content: space-between; font-size: 0.9rem; color: var(--ink-2); margin-bottom: 6px; }
.co-sum__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 12px; margin-top: 6px; border-top: 2px solid var(--line); }
.co-sum__total b { font-size: 1.3rem; font-weight: 800; color: var(--accent); }
.co-budget { margin-top: 12px; font-size: 0.84rem; color: var(--muted); }
.co-method { display: flex; align-items: center; gap: 10px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; margin-bottom: 8px; cursor: pointer; font-weight: 700; }
.co-method:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.co-method input { accent-color: var(--accent); }
.co-note { font-size: 0.78rem; color: var(--faint); line-height: 1.6; margin-top: 12px; }
.co-done { text-align: center; padding: 40px 20px; }
.co-done__ic { width: 64px; height: 64px; border-radius: 50%; background: var(--ok); color: #fff; font-size: 2rem; display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; }
.co-done h1 { font-size: 1.4rem; margin: 0 0 8px; }
.co-done p { color: var(--muted); margin: 0 0 22px; }
.co-help { font-size: 0.86rem; color: var(--ink-2); background: var(--accent-soft); border-radius: 10px; padding: 10px 14px; margin: 0 0 16px; }
.co-help b { color: var(--accent); font-weight: 800; }
.co-cnt { font-size: 0.76rem; font-weight: 700; color: var(--muted); margin-left: 6px; }
.co-item { display: flex; align-items: center; gap: 11px; padding: 13px 4px; border-bottom: 1px solid var(--line-2); cursor: pointer; }
.co-item input { position: absolute; opacity: 0; pointer-events: none; }
.co-item__box { width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--line); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: all 0.15s; }
.co-item input:checked + .co-item__box { background: var(--accent); border-color: var(--accent); }
.co-item input:checked + .co-item__box::after { content: "✓"; color: #fff; font-size: 0.8rem; font-weight: 800; }
.co-item.is-paid { cursor: default; opacity: 0.72; }
.co-item.is-paid input:checked + .co-item__box { background: var(--ok); border-color: var(--ok); }
.co-item__info { flex: 1; min-width: 0; }
.co-item__info b { font-weight: 700; display: block; }
.co-item__info span { font-size: 0.82rem; color: var(--muted); }
.co-item__price { font-weight: 800; font-style: normal; flex-shrink: 0; }
.co-paid { font-size: 0.72rem; color: var(--ok); font-weight: 800; }
@media (max-width: 860px) { .co-grid { grid-template-columns: 1fr; } }
/* 플로팅 채팅 위젯 */
.cw { position: fixed; right: 20px; bottom: 20px; z-index: 500; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.cw__bubble { width: 56px; height: 56px; border-radius: 50%; border: none; background: var(--accent); color: #fff; box-shadow: 0 8px 24px rgba(24,23,15,0.22); cursor: pointer; display: flex; align-items: center; justify-content: center; position: relative; transition: transform 0.15s; }
.cw__bubble:hover { transform: scale(1.06); }
@keyframes cwbounce { 0%, 100% { transform: translateY(0); } 30% { transform: translateY(-7px); } 60% { transform: translateY(-2px); } }
.cw__bubble.cw--alert { animation: cwbounce 1s ease-in-out infinite; }
/* 채팅 숨기기 버튼 + 접힘 핸들 */
.cw__min { position: absolute; top: -4px; left: -4px; width: 20px; height: 20px; border-radius: 50%; background: var(--surface); color: var(--muted); border: 1px solid var(--line); font-size: 0.6rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(24,23,15,0.15); opacity: 0; cursor: pointer; transition: opacity 0.15s, color 0.15s; }
.cw__min:hover { color: var(--ink); }
.cw__bubble:hover .cw__min { opacity: 1; }
.cw--collapsed .cw__bubble, .cw--collapsed .cw__panel { display: none; }
.cw__handle { position: relative; display: none; align-items: center; justify-content: center; width: 32px; height: 54px; padding: 0; border: none; border-radius: 15px 0 0 15px; background: var(--accent); color: #fff; box-shadow: -5px 6px 18px rgba(24,23,15,0.24); cursor: pointer; margin-right: -16px; transition: width 0.15s; }
.cw__handle:hover { width: 38px; }
.cw--collapsed .cw__handle { display: flex; }
.cw__handle svg { width: 20px; height: 20px; }
.cw__hdot { position: absolute; top: 7px; left: 6px; width: 9px; height: 9px; border-radius: 50%; background: #e2402f; border: 1.5px solid var(--accent); }
@keyframes cwshake { 0%, 100% { transform: translateX(0); } 15% { transform: translateX(-4px); } 30% { transform: translateX(4px); } 45% { transform: translateX(-3px); } 60% { transform: translateX(3px); } 75% { transform: translateX(-2px); } }
.cw__bubble.cw--shake, .cw__handle.cw--shake { animation: cwshake 0.5s ease-in-out; }
/* 홈 3갈래 진입 */
.paths__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.path-card { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 26px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; text-decoration: none; color: inherit; transition: transform 0.16s, box-shadow 0.16s, border-color 0.16s; overflow: hidden; }
.path-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(24,23,15,0.1); border-color: var(--ink); }
.path-card--hl { border-color: var(--accent); background: linear-gradient(180deg, var(--accent-soft), var(--surface) 60%); }
.path-card__badge { position: absolute; top: 16px; right: 16px; font-size: 0.7rem; font-weight: 800; color: #fff; background: var(--accent); padding: 3px 10px; border-radius: 999px; }
.path-card__ic { font-size: 2.1rem; }
.path-card__t { font-size: 1.2rem; font-weight: 800; }
.path-card__d { font-size: 0.9rem; color: var(--muted); line-height: 1.6; flex: 1; }
.path-card__d b { color: var(--ink-2); }
.path-card__cta { font-weight: 800; color: var(--accent); margin-top: 4px; }
@media (max-width: 820px) { .paths__grid { grid-template-columns: 1fr; } }
/* 대시보드 */
.dash-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; box-shadow: var(--shadow-sm); }
.dash-kpi { background: transparent; border: 0; border-right: 1px solid var(--line); border-radius: 0; padding: 13px 16px; text-align: left; font-family: inherit; cursor: pointer; transition: background 0.14s; display: flex; flex-direction: column; gap: 3px; position: relative; box-shadow: none; }
.dash-kpi:last-child { border-right: 0; }
.dash-kpi:hover { background: var(--surface-2); transform: none; }
.dash-kpi strong { display: block; font-size: 1.25rem; font-weight: 800; color: var(--ink); line-height: 1.05; letter-spacing: -0.02em; }
.dash-kpi span { font-size: 0.78rem; color: var(--muted); }
.dash-kpi--alert::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #dc2626; }
.dash-kpi--alert { background: rgba(220, 38, 38, 0.035); }
.dash-kpi--alert strong { color: #dc2626; }
.dash-kpi--alert span { color: #dc2626; font-weight: 700; }
@media (max-width: 820px) {
  .dash-kpi:nth-child(2) { border-right: 0; }
  .dash-kpi:nth-child(1), .dash-kpi:nth-child(2) { border-bottom: 1px solid var(--line); }
}
/* 퀵 액션 배너(CTA) */
.dash-cta { display: flex; align-items: center; justify-content: space-between; gap: 14px 18px; width: 100%; margin: -6px 0 18px; padding: 15px 20px; border: 1px solid rgba(79, 70, 229, 0.2); background: rgba(79, 70, 229, 0.06); border-radius: 13px; cursor: pointer; font-family: inherit; text-align: left; transition: transform 0.14s, box-shadow 0.14s; }
.dash-cta:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.dash-cta__t { font-size: 0.92rem; font-weight: 600; color: var(--ink); }
.dash-cta__t b { color: var(--accent); font-weight: 800; font-size: 1.05rem; margin: 0 2px; }
.dash-cta__b { flex-shrink: 0; font-size: 0.85rem; font-weight: 800; color: var(--accent); background: var(--surface); border: 1px solid rgba(79, 70, 229, 0.35); padding: 9px 16px; border-radius: 9px; white-space: nowrap; }
.dash-cta:hover .dash-cta__b { background: var(--accent); color: #fff; }
.dash-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; align-items: start; }
.dash-cal { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.dcal-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; font-weight: 800; }
.dcal-top button { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--line); background: var(--surface); cursor: pointer; font-size: 1.1rem; }
.dcal-wd { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-bottom: 4px; }
.dcal-wd span { text-align: center; font-size: 0.74rem; color: var(--faint); font-weight: 700; padding: 4px 0; }
.dcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.dcal-e { aspect-ratio: 1; }
.dcal-d { position: relative; aspect-ratio: 1; border: 1px solid transparent; border-radius: 9px; background: none; cursor: pointer; font-size: 0.86rem; font-weight: 600; color: var(--ink-2); display: flex; align-items: center; justify-content: center; }
.dcal-d:hover { background: var(--surface-2); }
.dcal-d.is-today { background: rgba(79, 70, 229, 0.12); border-color: var(--accent); color: var(--accent); font-weight: 800; }
.dcal-d.is-sel { background: var(--accent); color: #fff; }
.dcal-d.has-ev { font-weight: 800; color: var(--ink); }
.dcal-dot { position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); width: 6px; height: 6px; border-radius: 50%; background: var(--faint); }
.dcal-dot.ok { background: var(--ok); }
.dcal-dot.amber { background: #d9992f; }
.dcal-d.is-sel .dcal-dot { background: #fff; }
.dcal-d.is-blocked { background: repeating-linear-gradient(45deg, rgba(220,38,38,0.07), rgba(220,38,38,0.07) 4px, transparent 4px, transparent 8px); color: #b91c1c; }
.dcal-blk { position: absolute; top: 2px; right: 3px; font-size: 0.62rem; line-height: 1; }
.dcal-tip { margin: 10px 2px 0; font-size: 0.76rem; color: var(--muted); }
/* A-1: 날짜 관리 모달 */
.daymg-sec { margin-top: 16px; }
.daymg-sec:first-of-type { margin-top: 6px; }
.daymg-sec__h { font-size: 0.9rem; font-weight: 800; color: var(--ink); margin-bottom: 8px; }
.daymg-hint { font-size: 0.78rem; color: var(--muted); margin: 0 0 10px; line-height: 1.5; }
.daymg-past { background: #fff7ed; color: #b45309; font-size: 0.8rem; padding: 8px 12px; border-radius: 8px; margin: 0 0 8px; }
.daymg-none { font-size: 0.84rem; color: var(--muted); padding: 6px 0; }
.daymg-evs { display: flex; flex-direction: column; gap: 6px; }
.daymg-ev { display: flex; flex-direction: column; gap: 1px; background: var(--surface-2); border-radius: 8px; padding: 8px 12px; }
.daymg-ev b { font-size: 0.88rem; font-weight: 700; }
.daymg-ev span { font-size: 0.76rem; color: var(--muted); }
.daymg-sp { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line-2); }
.daymg-sp:last-child { border-bottom: 0; }
.daymg-sp__l { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.daymg-sp__l b { font-size: 0.9rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.daymg-sp__l em { font-style: normal; font-size: 0.72rem; color: var(--muted); }
.daymg-deal-on { color: #c0432c !important; font-weight: 700; }
.daymg-tgl { flex-shrink: 0; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font: inherit; font-size: 0.8rem; font-weight: 700; padding: 6px 12px; border-radius: 999px; cursor: pointer; transition: background 0.14s, color 0.14s, border-color 0.14s; }
.daymg-tgl:hover { border-color: var(--accent); }
.daymg-tgl.is-off { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.daymg-tgl:disabled { opacity: 0.5; cursor: not-allowed; }
.daymg-sp.is-hidden { opacity: 0.72; }
.daymg-sp.is-hidden .daymg-sp__l b { color: var(--muted); }
.daymg-hiddenbadge { flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; font-size: 0.78rem; font-weight: 800; color: #6b7280; background: #eef1f5; border: 1px solid var(--line-2); border-radius: 999px; padding: 6px 12px; white-space: nowrap; }
.daymg-deal { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.daymg-deal input { width: 120px; padding: 7px 10px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; }
.daymg-link { border: 0; background: none; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; padding: 0; text-decoration: underline; }

/* ── 파트너 상품 관리 (품목 목록) ── */
.vp-newphoto { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.vp-thumb { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; border: 1px solid var(--line-2); }
.vp-list { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.vp-row { display: grid; grid-template-columns: 40px minmax(120px, 1.6fr) 92px 122px 92px 92px 64px 28px; align-items: center; gap: 8px; background: var(--soft, #f4f5f7); border: 1px solid var(--line-2); border-radius: 10px; padding: 8px 10px; }
.vp-row.is-off { opacity: 0.62; }
.vp-ph { width: 40px; height: 40px; border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--surface); border: 1px solid var(--line-2); flex-shrink: 0; }
.vp-ph img { width: 100%; height: 100%; object-fit: cover; }
.vp-ph b { font-size: 0.95rem; font-weight: 800; color: var(--muted); }
.vp-row .vp-f, .vp-row .mg-unitfield input { width: 100%; padding: 7px 9px; border: 1px solid var(--line-2); border-radius: 8px; font: inherit; font-size: 0.86rem; background: var(--surface); }
.vp-row .mg-unitfield { display: flex; align-items: center; gap: 4px; }
.vp-tg { border: 1px solid var(--line-2); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 6px 0; font-size: 0.76rem; font-weight: 800; cursor: pointer; }
.vp-tg.is-on { background: #eef2ff; border-color: #c7d2fe; color: var(--accent); }
@media (max-width: 860px) {
  .vp-row { display: flex; flex-wrap: wrap; gap: 6px 8px; }
  .vp-row .vp-f--name { flex: 1 1 calc(100% - 56px); }
  .vp-row select.vp-f { flex: 0 0 86px; }
  .vp-row .mg-unitfield { flex: 1 1 88px; }
  .vp-row .vp-tg { flex: 0 0 62px; padding: 6px 8px; }
}
.dash-side { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; }
.dash-h { font-size: 0.95rem; font-weight: 800; margin: 0 0 12px; }
.dash-up { display: flex; flex-direction: column; gap: 4px; }
.dash-ev { display: flex; gap: 10px; align-items: flex-start; padding: 9px 8px; border-radius: 10px; cursor: pointer; transition: background 0.13s; }
.dash-ev:hover { background: var(--surface-2); }
.dash-ev.is-open { background: var(--surface-2); }
.dash-ev__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--faint); margin-top: 6px; flex-shrink: 0; }
.dash-ev__dot.ok { background: var(--ok); }
.dash-ev__dot.amber { background: #d9992f; }
.dash-ev__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.dash-ev b { display: block; font-size: 0.9rem; font-weight: 700; }
.dash-ev span { font-size: 0.8rem; color: var(--muted); }
.dash-ev__meta { font-size: 0.8rem !important; color: var(--ink-2) !important; font-weight: 600; }
.dash-ev__more { font-size: 0.72rem !important; color: var(--accent) !important; font-weight: 700; margin-top: 2px; }
/* 일정 카드 상단 뱃지 + 상태 */
.dash-ev__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 3px; }
.dash-ev__badge { font-size: 0.8rem !important; font-weight: 800 !important; color: var(--ink) !important; background: var(--surface-2); padding: 3px 9px; border-radius: 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 62%; }
.dash-st { flex-shrink: 0; font-size: 0.72rem !important; font-weight: 800; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.dash-st--green { color: #047857; background: rgba(5, 150, 105, 0.13); }
.dash-st--blue { color: #2563eb; background: rgba(37, 99, 235, 0.12); }
.dash-st--amber { color: #b45309; background: rgba(217, 119, 6, 0.14); }
.dash-st--gray { color: var(--muted); background: var(--surface-2); }
/* 일정에서 이동 시 대상 카드 하이라이트 */
.mp-flash { animation: mpFlash 2.2s ease; }
@keyframes mpFlash { 0%, 30% { box-shadow: 0 0 0 3px var(--accent), 0 8px 24px -8px rgba(79, 70, 229, 0.5); border-color: var(--accent); } 100% { box-shadow: none; } }
/* 일정 상세 모달 */
.ev-modal__top { display: flex; align-items: center; gap: 10px; margin: 4px 0 14px; }
.ev-modal__time { font-size: 0.85rem; font-weight: 700; color: var(--ink-2); }
.ev-modal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.ev-modal__grid > div { display: flex; flex-direction: column; gap: 2px; }
.ev-modal__grid > div:nth-last-child(-n+1) { grid-column: 1 / -1; }
.ev-modal__grid > div.ev-modal__full { grid-column: 1 / -1; }
.ev-modal__grid span { font-size: 0.74rem; color: var(--faint); }
.ev-modal__grid b { font-size: 0.9rem; font-weight: 700; color: var(--ink); }
.dash-ev__det { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin: 8px 0 4px; padding: 10px 12px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 9px; }
.dash-ev__det > div { display: flex; flex-direction: column; gap: 1px; }
.dash-ev__det > div:last-of-type { grid-column: 1 / -1; }
.dash-ev__det span { font-size: 0.7rem !important; color: var(--faint) !important; }
.dash-ev__det b { font-size: 0.82rem; font-weight: 700; color: var(--ink); }
.dash-ev__det .btn { grid-column: 1 / -1; justify-self: start; margin-top: 2px; }
@media (max-width: 820px) { .dash-kpis { grid-template-columns: repeat(2, 1fr); } .dash-grid { grid-template-columns: 1fr; } }
.cw__badge { position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #e2402f; color: #fff; font-size: 0.72rem; font-weight: 800; display: flex; align-items: center; justify-content: center; border: 2px solid var(--surface); }
.cw__panel { width: 340px; max-width: calc(100vw - 40px); height: 460px; max-height: calc(100vh - 120px); background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 16px 44px rgba(24,23,15,0.2); display: flex; flex-direction: column; overflow: hidden; }
.cw__panel[hidden] { display: none; }
.cw__head { display: flex; align-items: center; gap: 8px; padding: 13px 15px; border-bottom: 1px solid var(--line); font-weight: 800; }
.cw__head b { flex: 1; }
.cw__x, .cw__back { background: none; border: none; font-size: 1.1rem; cursor: pointer; color: var(--muted); padding: 0 4px; }
.cw__back { font-size: 1.5rem; line-height: 1; }
.cw__body { flex: 1; overflow-y: auto; }
.cw__thread { display: block; width: 100%; text-align: left; background: none; border: none; border-bottom: 1px solid var(--line-2); padding: 12px 15px; cursor: pointer; }
.cw__thread:hover { background: var(--surface-2); }
.cw__thtop { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cw__thtop b { font-weight: 700; font-size: 0.92rem; }
.cw__un { font-size: 0.7rem; font-weight: 800; color: #fff; background: #e2402f; border-radius: 999px; padding: 1px 7px; }
.cw__last { display: block; font-size: 0.82rem; color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cw__empty { padding: 30px 20px; text-align: center; color: var(--muted); font-size: 0.86rem; line-height: 1.6; }
.cw__msgs { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.cw__msg { max-width: 78%; align-self: flex-start; background: var(--surface-2); border-radius: 12px; padding: 8px 11px; }
.cw__msg.mine { align-self: flex-end; background: var(--accent-soft); }
.cw__msg span { display: block; font-size: 0.88rem; line-height: 1.4; }
.cw__msg time { font-size: 0.66rem; color: var(--faint); }
.cw__form { display: flex; gap: 7px; padding: 11px; border-top: 1px solid var(--line); }
.cw__form input { flex: 1; padding: 9px 12px; border: 1px solid var(--line); border-radius: 999px; font-family: inherit; font-size: 0.88rem; }
@media (max-width: 560px) { .cw { right: 14px; bottom: 14px; } .cw__bubble { width: 52px; height: 52px; } .cw__min { opacity: 1; width: 22px; height: 22px; font-size: 0.66rem; } }
/* 다중 카테고리 견적 폼 */
.q-cats { display: grid; gap: 10px; margin-bottom: 4px; }
.q-cat { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.q-cat:has(.q-cat__chk:not(:checked)) { opacity: 0.5; }
.q-cat__pick { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 0.92rem; cursor: pointer; margin-bottom: 8px; }
.q-cat__pick .ic, .q-cat .book__label .ic { vertical-align: -3px; color: var(--accent); }
.q-cat__pick input { width: auto; accent-color: var(--accent); }
.q-flow-note { background: var(--accent-soft); border-radius: 10px; padding: 11px 13px; font-size: 0.82rem; line-height: 1.6; color: var(--ink-2); margin: 10px 0 14px; }
.q-flow-note b { color: var(--accent); font-weight: 800; }
.rfp-guide { background: rgba(59, 130, 246, 0.10); border: 1px solid rgba(59, 130, 246, 0.28); border-radius: 11px; padding: 11px 13px; font-size: 0.82rem; line-height: 1.6; color: var(--ink-2); margin-top: 10px; }
.rfp-guide b { color: #2f6d8a; font-weight: 800; }

/* 3분할 인증 탭 · 마이페이지 헤더 액션 */
.auth-tabs--3 { grid-template-columns: repeat(3, 1fr); }
.auth-tabs--3 .auth-tab { padding: 11px 4px; font-size: 0.86rem; }
.mp__hactions { display: flex; gap: 8px; }

/* AI 한 줄 추천 */
.ai-box { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 8px 8px 8px 16px; box-shadow: var(--shadow-sm); margin-bottom: 22px; }
.ai-box__tag { font-size: 0.82rem; font-weight: 800; color: var(--accent); white-space: nowrap; }
.ai-box input { flex: 1; border: none; outline: none; background: none; font-size: 0.95rem; font-weight: 600; color: var(--ink); min-width: 0; padding: 9px 4px; }
.ai-box input::placeholder { color: var(--faint); font-weight: 500; }
.ai-box .btn { flex-shrink: 0; }

/* N빵 더치페이 */
.split-top { display: flex; gap: 12px; margin: 6px 0 16px; }
.split-top > div { flex: 1; background: var(--surface-2); border-radius: 12px; padding: 14px; text-align: center; }
.split-top b { display: block; font-family: var(--serif); font-size: 1.4rem; font-weight: 600; color: var(--ink); }
.split-top span { font-size: 0.78rem; color: var(--muted); }
.split-per { font-family: var(--serif); font-size: 1.3rem; font-weight: 600; color: var(--accent); }
.split-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.split-p { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 11px; cursor: pointer; }
.split-p input { position: absolute; opacity: 0; width: 0; height: 0; }
.split-p__box { width: 20px; height: 20px; border: 1.5px solid var(--line); border-radius: 6px; flex-shrink: 0; position: relative; }
.split-p input:checked + .split-p__box { background: var(--ok); border-color: var(--ok); }
.split-p input:checked + .split-p__box::after { content: "✓"; color: #fff; font-size: 0.72rem; font-weight: 800; position: absolute; top: -1px; left: 4px; }
.split-p > span:last-of-type { flex: 1; font-weight: 600; }
.split-p em { color: var(--muted); font-weight: 700; font-size: 0.9rem; }

/* 상세 위치 */
.sp-loc__addr { display: flex; align-items: center; gap: 8px; font-size: 0.95rem; color: var(--ink-2); font-weight: 600; margin-bottom: 14px; }
.sp-loc__addr .ic { color: var(--accent); }

/* 지도 페이지 */
.mapp { max-width: 1120px; margin: 0 auto; padding: 26px 24px 80px; }
.mapp__head { margin-bottom: 18px; }
.mapp__title { font-family: var(--serif); font-size: 2rem; font-weight: 600; letter-spacing: -0.02em; margin: 6px 0 6px; }
.mapp__sub { color: var(--muted); font-size: 0.92rem; line-height: 1.6; }
.mapp__canvas { width: 100%; height: 460px; border-radius: 16px; border: 1px solid var(--line-2); overflow: hidden; background: var(--surface-2); }
.mapp__fallback { margin-top: 10px; }
.mapf-group { margin-bottom: 22px; }
.mapf-group__t { font-size: 1.05rem; font-weight: 800; margin-bottom: 12px; }
.mapf-group__t span { color: var(--accent); font-size: 0.9rem; margin-left: 4px; }
.mapf-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.mapf-item { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--line-2); border-radius: 12px; padding: 12px 14px; }
.mapf-item__main { flex: 1; min-width: 0; cursor: pointer; }
.mapf-item__main b { display: block; font-weight: 700; font-size: 0.95rem; }
.mapf-item__main span { display: block; font-size: 0.82rem; color: var(--muted); margin-top: 2px; }
.mapf-item__pin { width: 38px; height: 38px; border-radius: 10px; background: var(--surface-2); display: flex; align-items: center; justify-content: center; color: var(--accent); flex-shrink: 0; }
.mapf-item__pin:hover { background: var(--accent-soft); }

/* 문의 텍스트영역 */
.book__field textarea, #iqText { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-family: inherit; font-size: 0.92rem; resize: vertical; outline: none; background: var(--surface); line-height: 1.5; }
.book__field textarea:focus, #iqText:focus { border-color: var(--ink); }

/* 공간 관리 */
.mg-h { font-size: 1.05rem; font-weight: 800; margin: 26px 0 12px; padding-top: 20px; border-top: 1px solid var(--line-2); }
.mg-check { display: flex; align-items: center; gap: 9px; font-size: 0.92rem; font-weight: 600; color: var(--ink-2); margin-bottom: 14px; cursor: pointer; }
.mg-check input { width: 17px; height: 17px; accent-color: var(--accent); }
/* 자동 수락 — 제목 + 설명 카드형 */
.mg-check--auto { align-items: flex-start; gap: 11px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); transition: border-color .15s, background .15s; }
.mg-check--auto:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.mg-check--auto input { margin-top: 2px; }
.mg-check__body { display: flex; flex-direction: column; gap: 3px; }
.mg-check__body b { font-size: 0.95rem; font-weight: 800; color: var(--ink); }
.mg-check__body em { font-size: 0.8rem; font-weight: 500; font-style: normal; color: var(--muted); line-height: 1.5; }
#stAutoMsgWrap { margin-top: 4px; }
#stAutoMsg { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-family: inherit; font-size: 0.9rem; line-height: 1.6; resize: vertical; outline: none; background: var(--surface); }
#stAutoMsg:focus { border-color: var(--accent); }
/* 공간 상세 — 청소 보증금 안내 */
.sp-deposit { display: flex; flex-direction: column; gap: 3px; margin-top: 12px; padding: 12px 14px; background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.18); border-radius: 11px; }
.sp-deposit b { font-size: 0.92rem; color: var(--ink); }
.sp-deposit span { font-size: 0.82rem; color: var(--muted); line-height: 1.5; }

/* ── 파트너 이용 주의사항 (항목형: 이용규칙·유의사항·환불/책임) ── */
.pnotes { display: flex; flex-direction: column; gap: 12px; }
.pnotes__title { display: block; font-size: 0.95rem; font-weight: 800; color: var(--ink); margin-bottom: 2px; }
.pnotes__grp { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line, #ece7dc); background: var(--card-2, #faf8f3); border-left-width: 3px; }
.pnotes__grp--rules { border-left-color: #4f46e5; }
.pnotes__grp--caution { border-left-color: #d97706; }
.pnotes__grp--refund { border-left-color: #0891b2; }
.pnotes__h { display: flex; align-items: center; gap: 7px; font-size: 0.9rem; font-weight: 800; color: var(--ink); }
.pnotes__h .ic { flex: none; }
.pnotes__grp--rules .pnotes__h .ic { color: #4f46e5; }
.pnotes__grp--caution .pnotes__h .ic { color: #d97706; }
.pnotes__grp--refund .pnotes__h .ic { color: #0891b2; }
.pnotes__ic { font-size: 0.95rem; line-height: 1; }
.hf-sublabel .ic, .book__label--sub .ic { flex: none; }
.hf-sublabel--rules .ic, .book__label--rules .ic { color: #4f46e5; }
.hf-sublabel--caution .ic, .book__label--caution .ic { color: #d97706; }
.hf-sublabel--refund .ic, .book__label--refund .ic { color: #0891b2; }
.pnotes__list { margin: 8px 0 0; padding-left: 4px; list-style: none; display: flex; flex-direction: column; gap: 5px; }
.pnotes__list li { position: relative; padding-left: 15px; font-size: 0.86rem; color: var(--muted); line-height: 1.5; }
.pnotes__list li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: 0.4; }
.pnotes--compact .pnotes__grp { padding: 9px 11px; border-radius: 9px; }
.pnotes--compact .pnotes__list li { font-size: 0.82rem; }

/* 등록폼(호스트/업체) 주의사항 입력 */
.hf-notes { margin-top: 6px; padding-top: 16px; border-top: 1px dashed var(--line, #e5e0d4); }
.hf-sublabel, .book__label--sub { display: flex; align-items: center; gap: 6px; font-size: 0.85rem; font-weight: 700; color: var(--ink-2, #55506a); margin: 4px 0 5px; }
.pnotes-edit textarea + .book__label--sub { margin-top: 12px; }

/* 체크아웃 결제 전 주의사항 요약 */
.co-notes { margin-top: 12px; border: 1px solid var(--line, #ece7dc); border-radius: 12px; overflow: hidden; }
.co-notes__h { display: flex; align-items: center; gap: 6px; padding: 10px 13px; font-size: 0.84rem; font-weight: 800; color: var(--ink); background: var(--card-2, #faf8f3); }
.co-notes__h span { margin-left: auto; font-size: 0.72rem; font-weight: 700; color: var(--accent); }
.co-notes__it { border-top: 1px solid var(--line, #ece7dc); }
.co-notes__it > summary { list-style: none; cursor: pointer; padding: 10px 13px; display: flex; align-items: center; gap: 8px; font-size: 0.86rem; }
.co-notes__it > summary::-webkit-details-marker { display: none; }
.co-notes__it > summary::after { content: "▾"; margin-left: auto; color: var(--faint, #b3ab99); transition: transform 0.2s; }
.co-notes__it[open] > summary::after { transform: rotate(180deg); }
.co-notes__it > summary b { font-weight: 800; color: var(--ink); }
.co-notes__it > summary span { font-size: 0.74rem; color: var(--muted); background: var(--chip, #f0ece2); padding: 1px 7px; border-radius: 20px; }
.co-notes__it .pnotes { padding: 0 13px 12px; }

/* 파트너 연락처 잠금 태그 */
.v-tag--lock { color: var(--faint) !important; background: var(--surface-2) !important; }
.blk-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.blk-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: 6px 8px 6px 13px; font-size: 0.84rem; font-weight: 600; }
.blk-chip button { width: 18px; height: 18px; border-radius: 50%; background: var(--line); color: var(--ink); font-size: 0.7rem; }
.blk-chip button:hover { background: var(--accent); color: #fff; }
/* 공간 관리 개편 */
.mg-sec { border: 1px solid var(--line); border-radius: 16px; padding: 18px 18px 16px; margin-bottom: 16px; background: var(--surface); box-shadow: var(--shadow-sm); }
.mg-sec .mg-h { margin: 0 0 4px; padding-top: 0; border-top: none; }
.mg-sec__head { margin-bottom: 14px; }
.mg-sec__desc { font-size: 0.83rem; color: var(--muted); }
.mg-subhead { display: flex; align-items: center; gap: 7px; font-size: 0.92rem; font-weight: 800; color: var(--ink); margin: 0 0 12px; }
.mg-subhead span { font-size: 0.78rem; font-weight: 600; color: var(--muted); }
.mg-sec .mg-h { display: inline-flex; align-items: center; gap: 8px; }
.mg-hic { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 9px; background: var(--accent-soft); color: var(--accent); flex-shrink: 0; }
.mg-hic--red { background: rgba(226, 64, 47, 0.12); color: #e2402f; }
.mg-hic .mgic { display: block; }
.book__label .mgic { color: var(--muted); vertical-align: -2px; margin-right: 2px; }
.promo-tab .mgic { opacity: 0.85; }
.promo-tab--flash.is-on .mgic { color: #d4a017; opacity: 1; }
.promo-tab--coupon.is-on .mgic { color: #64748b; opacity: 1; }
.mg-divider { height: 1px; background: var(--line-2); margin: 20px 0 16px; }
/* 예약 운영: 달력(좌) + 예약 규칙(우) 2단 */
.mg-opsgrid { display: grid; grid-template-columns: minmax(0, 400px) 1fr; gap: 22px 28px; align-items: start; }
.mg-opscol--rules { border-left: 1px solid var(--line-2); padding-left: 26px; }
.mg-opscol--rules .book__field { margin-bottom: 12px; }
.mg-opscol--rules .mg-sec__foot { justify-content: flex-start; border-top: none; padding-top: 4px; margin-top: 4px; }
@media (max-width: 820px) { .mg-opsgrid { grid-template-columns: 1fr; } .mg-opscol--rules { border-left: none; padding-left: 0; border-top: 1px solid var(--line-2); padding-top: 18px; } }
.mg-sec__foot { display: flex; justify-content: flex-end; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line-2); }
/* 검색형 공간 선택 카드 */
.mgsel { position: relative; }
.mgsel__cur { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 14px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); cursor: pointer; text-align: left; transition: border-color 0.14s; }
.mgsel__cur:hover { border-color: var(--accent); }
.mgsel__thumb { width: 48px; height: 40px; border-radius: 9px; overflow: hidden; flex-shrink: 0; background: var(--surface-2); display: flex; align-items: center; justify-content: center; }
.mgsel__thumb img { width: 100%; height: 100%; object-fit: cover; }
.mgsel__ph { font-family: var(--serif); font-weight: 800; color: var(--muted); }
.mgsel__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mgsel__info b { font-size: 0.95rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mgsel__info em { display: inline-flex; align-items: center; gap: 3px; font-style: normal; font-size: 0.78rem; color: var(--faint); }
.mgsel__chev { color: var(--faint); font-size: 0.9rem; flex-shrink: 0; }
.mgsel__pop { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 40; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 8px; max-height: 320px; overflow-y: auto; }
.mgsel__pop[hidden] { display: none; }
.mgsel__search { width: 100%; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; font-size: 0.88rem; margin-bottom: 6px; outline: none; background: var(--surface); }
.mgsel__search:focus { border-color: var(--accent); }
.mgsel__item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 8px 10px; border-radius: 10px; background: none; cursor: pointer; text-align: left; }
.mgsel__item:hover { background: var(--surface-2); }
.mgsel__item.is-on { background: var(--accent-soft); }
.mgsel__empty { padding: 16px; text-align: center; color: var(--faint); font-size: 0.85rem; }
/* 차단 달력 */
.mgcal-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.mgcal-top b { font-family: var(--serif); font-size: 1.02rem; font-weight: 700; }
.mgcal-top button { width: 32px; height: 32px; border-radius: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: 1.05rem; cursor: pointer; }
.mgcal-top button:hover { border-color: var(--accent); color: var(--accent); }
.mgcal-wd { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }
.mgcal-wd span { text-align: center; font-size: 0.72rem; font-weight: 700; color: var(--faint); }
.mgcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.mgcal-e { aspect-ratio: 1; }
.mgcal-d { aspect-ratio: 1; border: 1px solid transparent; border-radius: 9px; background: var(--surface-2); cursor: pointer; font-size: 0.85rem; font-weight: 600; color: var(--ink-2); display: flex; align-items: center; justify-content: center; transition: background 0.12s, transform 0.1s; }
.mgcal-d:hover:not(:disabled) { background: rgba(226, 64, 47, 0.12); transform: translateY(-1px); }
.mgcal-d.is-today { border-color: var(--accent); color: var(--accent); font-weight: 800; }
.mgcal-d.is-blocked { background: #e2402f; color: #fff; border-color: #e2402f; }
.mgcal-d.is-past { opacity: 0.32; cursor: default; }
.mgcal-hint { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; color: var(--muted); margin-top: 10px; }
.mgcal-legend { width: 12px; height: 12px; border-radius: 4px; background: linear-gradient(135deg, #ef4444, #e2402f); flex-shrink: 0; }
.mgcal-legend--p { background: none; border: 1.5px solid #e2402f; position: relative; }
.mgcal-legend--p::after { content: ""; position: absolute; inset: 0; margin: auto; width: 4px; height: 4px; border-radius: 50%; background: #e2402f; }
.mgcal-d.is-partial { border-color: #e2402f; color: var(--ink); position: relative; }
.mgcal-d.is-partial::after { content: ""; position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: #e2402f; }
.mgcal-d.is-sel { outline: 2px solid var(--accent); outline-offset: 1px; }
/* 시간대 차단 편집기 */
.mg-blkslots:empty { display: none; }
.blk-edit { margin-top: 12px; border: 1px solid var(--line); border-radius: 10px; padding: 14px; background: var(--surface-2); }
.blk-edit__hd { display: flex; align-items: center; font-size: 0.92rem; margin-bottom: 10px; }
.blk-edit__hd b { margin-right: 4px; }
.blk-edit__x { margin-left: auto; width: 24px; height: 24px; border-radius: 6px; color: var(--muted); background: transparent; }
.blk-edit__x:hover { background: var(--line-2); }
.blk-allday { display: flex; align-items: center; gap: 8px; font-size: 0.88rem; cursor: pointer; padding: 8px 0; }
.blk-allday input { width: 16px; height: 16px; accent-color: #e2402f; }
.blk-slots-hd { font-size: 0.78rem; font-weight: 700; color: var(--muted); margin: 10px 0 8px; }
.blk-slots-hd span { font-weight: 500; color: var(--faint); }
.blk-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 6px; }
.blk-slot { padding: 7px 4px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); font-size: 0.76rem; font-weight: 600; color: var(--ink-2); cursor: pointer; transition: all 0.12s; }
.blk-slot:hover:not(:disabled) { border-color: #e2402f; }
.blk-slot.is-off { background: #e2402f; border-color: #e2402f; color: #fff; text-decoration: line-through; }
.blk-slot:disabled { opacity: 0.4; cursor: not-allowed; }
/* 컴팩트·고급 달력 */
.mgcal { max-width: 400px; }
.mgcal-top b { color: var(--accent); }
.mgcal-wd { gap: 3px; margin-bottom: 3px; }
.mgcal-grid { gap: 3px; }
.mgcal-d { border-radius: 8px; font-size: 0.8rem; }
.mgcal-d.is-blocked { background: linear-gradient(135deg, #f0603f, #e2402f); border-color: #e2402f; box-shadow: 0 2px 6px -2px rgba(226, 64, 47, 0.5); }
/* 할인·프로모션 탭 카드 (금·은 포인트) */
.promo-tabs { display: flex; gap: 6px; padding: 5px; background: var(--surface-2); border-radius: 12px; margin-bottom: 14px; }
.promo-tab { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px; border-radius: 9px; background: none; border: 0; font-family: inherit; font-size: 0.9rem; font-weight: 800; color: var(--muted); cursor: pointer; transition: background 0.14s, color 0.14s, box-shadow 0.14s; }
.promo-tab .ic { opacity: 0.8; }
.promo-tab--flash.is-on { background: linear-gradient(135deg, #fffaf0, #fdf1d6); color: #b7791f; box-shadow: 0 2px 8px -3px rgba(202, 138, 4, 0.4); }
.promo-tab--flash.is-on .ic { color: #d4a017; opacity: 1; }
.promo-tab--coupon.is-on { background: linear-gradient(135deg, #f8fafc, #eef2f6); color: #475569; box-shadow: 0 2px 8px -3px rgba(100, 116, 139, 0.35); }
.promo-hint { font-size: 0.83rem; color: var(--muted); margin: 0 0 12px; line-height: 1.55; }
.promo-body[hidden] { display: none; }
.promo-body--flash .mg-sec__foot .btn { background: linear-gradient(100deg, #ca8a04, #eab308); border: 0; }
.promo-body--coupon .mg-sec__foot .btn { background: linear-gradient(100deg, #64748b, #94a3b8); border: 0; }
/* 단위 Suffix 입력 필드 */
.mg-unitfield { position: relative; display: flex; align-items: center; }
.mg-unitfield input { width: 100%; padding-right: 44px; }
.mg-unit { position: absolute; right: 12px; font-size: 0.85rem; font-weight: 700; color: var(--faint); pointer-events: none; }
/* 예약 설정 아이콘 */
.mg-check .mg-lic { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; flex-shrink: 0; }
.mg-lic--gold { background: rgba(234, 179, 8, 0.15); color: #ca8a04; }
.book__label .ic { color: var(--muted); vertical-align: -2px; margin-right: 2px; }
.mg-sec { box-shadow: 0 2px 10px -6px rgba(15, 23, 42, 0.12); }
/* 청소 버퍼 등 툴팁 */
.mg-tip { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; margin-left: 3px; border-radius: 50%; background: var(--surface-2); border: 1px solid var(--line); color: var(--muted); font-size: 0.62rem; font-weight: 800; cursor: help; vertical-align: middle; }
.mg-tip::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); width: 220px; max-width: 60vw; background: var(--ink); color: #fff; padding: 9px 11px; border-radius: 9px; font-size: 0.74rem; font-weight: 500; line-height: 1.5; text-align: left; opacity: 0; visibility: hidden; transition: opacity 0.15s; z-index: 60; box-shadow: var(--shadow-lg); }
.mg-tip:hover::after, .mg-tip:focus::after { opacity: 1; visibility: visible; }
/* 공간 견적요청 카드 강조 */
/* 호스트 공간 견적요청 카드 */
.hreq-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.hreq-info { min-width: 0; }
.hreq-info__row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; }
.req-ago { display: inline-flex; align-items: center; gap: 3px; font-size: 0.88rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); padding: 3px 11px; border-radius: 999px; white-space: nowrap; }
.req-ago b { font-weight: 900; }
.req-ago--urgent { color: #dc2626; background: rgba(220, 38, 38, 0.1); animation: reqPulse 1.6s ease-in-out infinite; }
@keyframes reqPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.25); } 50% { box-shadow: 0 0 0 5px rgba(220, 38, 38, 0); } }
.req-ago--closed { color: var(--muted); background: var(--surface-2); }
.req-ago--none { color: var(--faint); background: var(--surface-2); font-weight: 700; }
.hreq-right { flex-shrink: 0; display: flex; flex-direction: row; align-items: center; gap: 10px; }
.hreq-budget { display: flex; flex-direction: column; align-items: flex-end; text-align: right; padding: 8px 14px; background: var(--accent-soft); border: 1px solid rgba(79, 70, 229, 0.16); border-radius: 12px; }
.hreq-budget__l { font-size: 0.68rem; font-weight: 800; color: var(--accent); opacity: 0.85; letter-spacing: 0.02em; }
.hreq-budget__v { font-family: var(--serif); font-size: 1.35rem; font-weight: 800; color: var(--accent); line-height: 1.15; white-space: nowrap; }
.hreq-budget__v em { font-size: 0.8rem; font-weight: 700; font-style: normal; margin-left: 1px; }
.hreq-budget__v--none { font-size: 1.05rem; color: var(--muted); }
.hreq-budget--none { background: var(--surface-2); border-color: var(--line); }
.hreq-purpose { display: flex; align-items: baseline; gap: 8px; margin-top: 12px; padding: 11px 14px; background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 11px; }
.hreq-purpose__t { flex-shrink: 0; font-size: 0.76rem; font-weight: 800; color: var(--accent); }
.hreq-purpose__x { font-size: 0.9rem; line-height: 1.55; color: var(--ink-2); }
.mp-bk__act--right { display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.hreq-cta { font-weight: 800; box-shadow: 0 4px 12px -4px rgba(79, 70, 229, 0.5); }
.hreq-done { color: #7c3aed !important; background: rgba(124, 58, 237, 0.1) !important; border-color: rgba(124, 58, 237, 0.28) !important; }
.mp-seg--status { margin-right: auto; }
@media (max-width: 520px) { .hreq-top { flex-direction: column; } .hreq-right { flex-direction: row; align-self: stretch; justify-content: space-between; align-items: center; } }
/* 기간 날짜 필터 인풋 정돈 */
.mp-daterange input[type="date"] { min-height: 38px; box-sizing: border-box; color: var(--ink-2); }
.mp-daterange input[type="date"]:focus { border-color: var(--accent); }

/* ================= 반응형 ================= */
@media (max-width: 1024px) {
  .cats { grid-template-columns: repeat(5, 1fr); }
  .grid { grid-template-columns: repeat(3, 1fr); }
  .hero__inner { grid-template-columns: 1fr; gap: 30px; }
  .hero__title { font-size: 2.6rem; }
  .hero__gallery { max-width: 560px; }
  .flag__inner { grid-template-columns: 1fr; }
  .flag__media { min-height: 260px; }
  .sp-layout { grid-template-columns: 1fr; gap: 30px; }
  .book { position: static; }
  .sp-rel { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .header__inner { padding: 0 18px; }
  .header__nav { display: none; }
  .hmenu { display: flex; }
  .header__nav.is-open { display: flex; position: absolute; top: 100%; right: 12px; left: 12px; flex-direction: column; align-items: stretch; gap: 2px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 10px; margin-top: 6px; }
  .header__nav.is-open .header__link, .header__nav.is-open .btn { width: 100%; padding: 12px; text-align: left; }
  .header__nav.is-open .header__sep { display: none; }
  .header__nav.is-open .auth-area { flex-direction: column; align-items: stretch; gap: 8px; width: 100%; padding-top: 6px; border-top: 1px solid var(--line-2); margin-top: 4px; }
  .header__nav.is-open .auth-area .header__link { padding: 10px 12px; }
  .header__nav.is-open .auth-name { width: 100%; text-align: center; padding: 8px 12px; }
  .header__nav.is-open .bell-wrap { align-self: flex-start; }
  .header__sep { display: none; }
  .hero__inner { padding: 40px 20px 40px; gap: 26px; }
  .hero__title { font-size: 2.15rem; }
  .hero__br { display: none; }
  .hero__gallery img { height: 150px !important; }
  .hero__gcol:last-child { padding-top: 20px; }
  .hero__chip { display: none; }
  .searchbar { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px; }
  .searchbar__div { display: none; }
  .searchbar__field, .searchbar__field--sm { flex: 1 1 auto; position: relative; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); padding: 9px 14px; }
  .searchbar__field:hover { background: var(--surface); }
  .searchbar__field::after { content: "›"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%) rotate(90deg); color: var(--faint); font-size: 1rem; font-weight: 700; pointer-events: none; }
  .searchbar__field:has(input[type="date"])::after, .searchbar__field:has(input[type="number"])::after { display: none; }
  .searchbar__go { width: 100%; height: 50px; margin-top: 6px; }
  .hero__stats { gap: 30px; }
  .section { padding: 14px 18px; }
  .grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .sp-card__body { padding: 15px 6px 8px; }
  .sp-card__name { font-size: 1.02rem; }
  .sp-card__meta { font-size: 0.83rem; }
  .cats { grid-template-columns: repeat(3, 1fr); }
  .flag, .host { padding: 0 20px; }
  .flag__body { padding: 34px 26px; }
  .host__inner { padding: 46px 26px; }
  .host__title { font-size: 1.85rem; }
  .footer__inner { grid-template-columns: 1fr; gap: 28px; }
  .sp { padding: 20px 18px 70px; }
  /* 모바일 갤러리: 1장씩 스와이프 캐러셀 (잘림 없이 전체 노출) */
  .sp-gallery { display: flex; grid-template-columns: none; grid-template-rows: none; height: auto; aspect-ratio: 4 / 3; max-height: 62vh; gap: 0; border-radius: 16px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; background: var(--surface-2); }
  .sp-gallery::-webkit-scrollbar { display: none; }
  .sp-gallery__main, .sp-gallery__sm { display: block; flex: 0 0 100%; width: 100%; height: 100%; grid-row: auto; scroll-snap-align: center; }
  .sp-gallery img { object-fit: contain; }
  .sp-gallery__nav { display: flex; justify-content: center; gap: 7px; margin: 12px 0 -8px; }
  .sp-gallery__dot { width: 8px; height: 8px; border-radius: 999px; background: var(--line); transition: width 0.2s, background 0.2s; }
  .sp-gallery__dot.is-on { width: 22px; background: var(--accent); }
  .sp-head__title { font-size: 1.7rem; }
  .sp-rel { grid-template-columns: 1fr; }
  /* 검색 */
  .srch { padding: 24px 18px 70px; }
  .filters__body.is-open { grid-template-columns: 1fr; gap: 0; padding: 4px 18px 16px; }
  /* 호스트 등록 */
  .hostreg { padding: 24px 16px 70px; }
  .hf { padding: 20px 16px; }
  .hostreg__layout { grid-template-columns: 1fr; gap: 24px; }
  .hf-preview { position: static; }
  .hf { padding: 22px; }
  .collections { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .mp { padding: 24px 18px 70px; }
  .mp-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; white-space: nowrap; touch-action: pan-x; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
  .mp-tabs::-webkit-scrollbar { display: none; }
  .mp-tabs .mp-tab { flex-shrink: 0; touch-action: pan-x; }
  .auth-area { gap: 10px; }
  .bell-dd { width: calc(100vw - 32px); right: -8px; }
  .mp-req { flex-direction: column; align-items: stretch; }
  .disc-grid { grid-template-columns: 1fr; }
  .settle-kpis { grid-template-columns: repeat(2, 1fr); }
  .mapf-list { grid-template-columns: 1fr; }
  .mapp__canvas { height: 340px; }
  .ai-box { flex-wrap: wrap; padding: 12px; }
  .ai-box__tag { order: 1; }
  .ai-box input { order: 2; flex: 1 1 100%; padding: 6px 4px; }
  .ai-box .btn { order: 3; width: 100%; }
  .split-top b { font-size: 1.2rem; }
  .how-steps { grid-template-columns: 1fr; }
  .quote-row { flex-direction: column; align-items: stretch; }
  .quote-row__r { justify-content: flex-end; }
}
@media (max-width: 460px) {
  .cats { grid-template-columns: repeat(3, 1fr); }
  .grid { grid-template-columns: repeat(2, 1fr); gap: 14px 10px; }
  .sp-card__body { min-height: 112px; padding: 10px 2px 2px; }
  .sp-card__name { font-size: 0.95rem; }
  .sp-card__meta { font-size: 0.76rem; gap: 6px; }
  .sp-card__price { font-size: 1rem; }
  .sp-tags--row { min-height: 20px; }
  .srch { padding: 20px 14px 70px; }
  .hero__title { font-size: 1.95rem; }
  .sp-amen { grid-template-columns: 1fr; }
  .qnow { width: 100%; justify-content: center; }
  .srch-map__canvas { height: 460px; }
}
/* 모바일 공간 목록: 한 줄에 1개 (라인 460 .results .grid auto-fill 재정의) */
@media (max-width: 640px) {
  .results .grid { grid-template-columns: 1fr; gap: 14px; }
}

/* ===== Phase 4/5 대개편: 카드·배지 표준화 + 모바일 ===== */
/* 카드 그림자·호버 일관화 */
.mp-bk, .co-order, .co-pay, .dash-cal, .dash-side, .rfp-compare { box-shadow: var(--shadow-sm); }
.v-card, .svc-card { box-shadow: var(--shadow-sm); }

/* 모바일 하단 내비게이션 */
.mnav { display: none; }
@media (max-width: 760px) {
  .mnav { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 480; background: rgba(255,255,255,0.92); backdrop-filter: saturate(180%) blur(14px); border-top: 1px solid var(--line); padding: 7px 4px calc(7px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -8px 24px -14px rgba(15,23,42,0.18); }
  .mnav__i { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 0.66rem; font-weight: 700; color: var(--faint); padding: 4px 0; transition: color 0.15s; }
  .mnav__i .ic { width: 23px; height: 23px; stroke-width: 1.7; }
  .mnav__i.is-active { color: var(--accent); }
  .mnav__i.is-active::before { content: ""; position: absolute; top: -7px; width: 26px; height: 3px; border-radius: 0 0 3px 3px; background: var(--accent); }
  body { padding-bottom: 64px; }
  .cw { bottom: 78px; right: 14px; }
  .footer { margin-bottom: 0; }
}

/* 모바일: 모달을 하단 시트로 */
@media (max-width: 560px) {
  .modal { align-items: flex-end; padding: 0; }
  .modal__card { max-width: 100%; width: 100%; border-radius: 4px 4px 0 0; max-height: 90vh; padding: 20px 18px calc(20px + env(safe-area-inset-bottom, 0px)); animation: sheetup 0.22s ease; }
  @keyframes sheetup { from { transform: translateY(30px); opacity: 0.6; } to { transform: translateY(0); opacity: 1; } }
  .cw__panel { width: calc(100vw - 24px); height: 66vh; }
  .dash-kpis { grid-template-columns: repeat(2, 1fr); }
}

/* ===== 이용 안내 (help.html) ===== */
.help { max-width: 940px; margin: 0 auto; padding: 34px 24px 90px; }
.help__head { margin-bottom: 22px; }
.help__title { font-family: var(--serif); font-size: 2.1rem; font-weight: 600; letter-spacing: -0.025em; margin: 6px 0 8px; }
.help__sub { color: var(--muted); font-size: 0.96rem; line-height: 1.6; word-break: keep-all; max-width: 44em; }
.help-tabs { display: flex; gap: 4px; border-bottom: 1.5px solid var(--line); margin-bottom: 26px; overflow-x: auto; scrollbar-width: none; touch-action: pan-x; }
.help-tabs::-webkit-scrollbar { display: none; }
.help-tab { position: relative; padding: 13px 18px; font-size: 0.96rem; font-weight: 700; color: var(--muted); white-space: nowrap; flex-shrink: 0; touch-action: pan-x; }
.help-tab.is-active { color: var(--ink); }
.help-tab.is-active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1.5px; height: 2.5px; background: var(--accent); border-radius: 3px; }
.help-sec { animation: rqnDown 0.24s cubic-bezier(0.2,0.8,0.2,1); }
.help-intro { margin-bottom: 26px; }
.help-h2 { font-family: var(--serif); font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 10px; }
.help-h3 { font-size: 1.08rem; font-weight: 800; margin: 26px 0 13px; }
.help-lead { font-size: 0.98rem; color: var(--ink-2); line-height: 1.75; word-break: keep-all; }
.help-lead b { color: var(--accent); }
.help-p { font-size: 0.94rem; color: var(--ink-2); line-height: 1.7; word-break: keep-all; }
.help-p b { color: var(--ink); }
/* 이용 경로 카드 */
.hway-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.hway { display: flex; flex-direction: column; gap: 7px; padding: 20px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-sm); text-align: left; }
.hway__ic { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); margin-bottom: 2px; }
.hway__t { font-size: 1.02rem; font-weight: 800; }
.hway__d { font-size: 0.88rem; color: var(--muted); line-height: 1.6; word-break: keep-all; flex: 1; }
.hway__cta { font-size: 0.88rem; font-weight: 800; color: var(--accent); margin-top: 2px; }
.hway__cta:hover { text-decoration: underline; }
/* 3단계 */
.hstep-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.hstep { display: flex; flex-direction: column; gap: 5px; padding: 18px 16px; background: var(--surface-2); border-radius: 14px; }
.hstep__n { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 800; font-size: 0.95rem; margin-bottom: 4px; }
.hstep b { font-size: 0.98rem; font-weight: 800; }
.hstep__d { font-size: 0.86rem; color: var(--muted); line-height: 1.55; word-break: keep-all; }
/* 안내 노트 */
.help-note { margin-top: 26px; padding: 18px 20px; border: 1px solid rgba(79,70,229,0.2); background: rgba(79,70,229,0.06); border-radius: 14px; }
.help-note > b { display: inline-flex; align-items: center; gap: 6px; font-size: 0.98rem; }
.help-note p { font-size: 0.9rem; color: var(--ink-2); line-height: 1.7; margin: 8px 0 0; word-break: keep-all; }
.help-note p b { color: var(--accent); }
.help-note__cta { display: flex; gap: 8px; margin-top: 14px; }
/* 예약 흐름 (번호 스텝 리스트) */
.hflow { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 0 0 8px; }
.hflow li { display: flex; gap: 13px; align-items: flex-start; padding: 15px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 13px; }
.hflow__n { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-weight: 800; font-size: 0.85rem; }
.hflow b { font-size: 0.96rem; font-weight: 800; }
.hflow p { font-size: 0.88rem; color: var(--muted); line-height: 1.6; margin: 3px 0 0; word-break: keep-all; }
.hflow p b { color: var(--ink-2); }
/* 안내 카드 그리드 */
.help-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 8px; }
.help-card { padding: 16px 17px; background: var(--surface); border: 1px solid var(--line); border-radius: 13px; }
.help-card > b { display: inline-flex; align-items: center; gap: 7px; font-size: 0.95rem; font-weight: 800; }
.help-card > b .ic { color: var(--accent); }
.help-card p { font-size: 0.87rem; color: var(--muted); line-height: 1.65; margin: 7px 0 0; word-break: keep-all; }
.help-card p b { color: var(--ink-2); }
/* FAQ */
.faq-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.faq-chip { padding: 8px 15px; border-radius: 999px; font-size: 0.85rem; font-weight: 700; color: var(--muted); background: var(--surface); border: 1px solid var(--line); transition: all 0.15s; }
.faq-chip:hover { border-color: var(--accent); color: var(--accent); }
.faq-chip.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.faq-list { display: flex; flex-direction: column; gap: 8px; }
.faq-item { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); overflow: hidden; }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px; cursor: pointer; list-style: none; font-weight: 700; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-q { flex: 1; font-size: 0.94rem; color: var(--ink); }
.faq-cat { flex-shrink: 0; font-size: 0.72rem; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 3px 9px; border-radius: 999px; }
.faq-item[open] summary { border-bottom: 1px solid var(--line-2); }
.faq-a { padding: 14px 17px; font-size: 0.9rem; color: var(--ink-2); line-height: 1.75; word-break: keep-all; }
/* 1:1 문의 */
.hinq { margin-top: 28px; border: 1px solid var(--accent); border-radius: 16px; background: linear-gradient(180deg, var(--accent-soft), var(--surface) 45%); padding: 22px 20px; }
.hinq__head b { display: inline-flex; align-items: center; gap: 7px; font-size: 1.05rem; font-weight: 800; }
.hinq__head p { font-size: 0.88rem; color: var(--muted); line-height: 1.6; margin: 7px 0 16px; word-break: keep-all; }
.hinq__f { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.hinq__f > span { font-size: 0.82rem; font-weight: 700; color: var(--ink-2); }
.hinq__f > span em { color: var(--faint); font-weight: 500; font-style: normal; }
.hinq__f input, .hinq__f select, .hinq__f textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-family: inherit; font-size: 0.92rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; }
.hinq__f textarea { font-weight: 500; line-height: 1.6; resize: vertical; }
.hinq__f input:focus, .hinq__f select:focus, .hinq__f textarea:focus { border-color: var(--accent); }
.hinq__err { color: #e2402f; font-size: 0.84rem; font-weight: 600; margin: 0 0 10px; }
.hinq__hint { font-size: 0.8rem; color: var(--muted); text-align: center; margin-top: 11px; }
.hinq__hint a { color: var(--accent); font-weight: 700; }
@media (max-width: 640px) {
  .help { padding: 24px 16px 80px; }
  .hway-grid, .help-cards { grid-template-columns: 1fr; }
  .hstep-grid { grid-template-columns: 1fr; }
  .faq-item summary { gap: 8px; }
  .faq-q { flex: 1; }
}

/* ===== 최근 본/찜 플로팅 퀵메뉴 ===== */
.qm { position: fixed; left: 20px; bottom: 20px; z-index: 490; }
.qm__fab { position: relative; width: 52px; height: 52px; border-radius: 50%; background: var(--surface); color: var(--accent); border: 1px solid var(--line); box-shadow: 0 8px 24px rgba(24,23,15,0.18); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.2s ease, opacity 0.2s ease; touch-action: pan-y; }
.qm__fab:hover { transform: scale(1.06); }
/* 스와이프 숨김 상태 — FAB는 왼쪽으로 사라지고, 얇은 손잡이만 남음 */
.qm__handle { display: none; position: absolute; left: 0; bottom: 4px; width: 16px; height: 44px; border: 1px solid var(--line); border-left: 0; border-radius: 0 12px 12px 0; background: var(--surface); color: var(--accent); align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(24,23,15,0.15); padding: 0; overflow: hidden; }
.qm__handle svg { width: 13px; height: 13px; opacity: 0.85; }
.qm--hidden .qm__fab { transform: translateX(-140%); opacity: 0; pointer-events: none; }
.qm--hidden .qm__count { opacity: 0; }
.qm--hidden .qm__handle { display: flex; }
/* 숨기기(×) 버튼 — 채팅 위젯과 동일 UX */
.qm__min { position: absolute; top: -6px; left: -6px; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 0.7rem; display: none; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,0.3); cursor: pointer; }
.qm__fab:hover .qm__min { display: flex; }
@media (max-width: 1024px) { .qm__min { display: flex; } }
.qm--hidden .qm__min { display: none; }
.qm__count { position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: #e2402f; color: #fff; font-size: 0.72rem; font-weight: 800; display: flex; align-items: center; justify-content: center; border: 2px solid var(--surface); }
.qm__panel { position: absolute; left: 0; bottom: 62px; width: 320px; max-width: calc(100vw - 40px); max-height: 62vh; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 16px 44px rgba(24,23,15,0.2); display: flex; flex-direction: column; overflow: hidden; animation: qmpop 0.2s ease; }
@keyframes qmpop { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.qm__panel[hidden] { display: none; }
.qm__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.qm__tabs { display: flex; gap: 4px; }
.qm__tab { padding: 7px 12px; border-radius: 9px; font-size: 0.85rem; font-weight: 700; color: var(--muted); }
.qm__tab b { color: var(--faint); margin-left: 3px; }
.qm__tab.is-on { background: var(--accent-soft); color: var(--accent); }
.qm__tab.is-on b { color: var(--accent); }
.qm__x { width: 28px; height: 28px; border-radius: 8px; color: var(--muted); font-size: 0.9rem; }
.qm__x:hover { background: var(--surface-2); }
.qm__body { flex: 1; overflow-y: auto; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.qm__empty { padding: 34px 20px; text-align: center; color: var(--muted); font-size: 0.86rem; line-height: 1.6; }
.qm-card { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 11px; cursor: pointer; transition: background 0.13s; }
.qm-card:hover { background: var(--surface-2); }
.qm-card__thumb { flex-shrink: 0; width: 54px; height: 44px; border-radius: 9px; overflow: hidden; }
.qm-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.qm-card__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.qm-card__body b { font-size: 0.88rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qm-card__meta { font-size: 0.76rem; color: var(--muted); }
.qm-card__heart { flex-shrink: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; color: var(--line); }
.qm-card__heart svg { width: 18px; height: 18px; }
.qm-card__heart.is-on { color: #e2402f; }
@media (max-width: 760px) { .qm { bottom: 78px; left: 14px; } }

/* ===== 공간 비교견적 ===== */
.sp-card__thumb { position: relative; }
.sp-cmp { position: absolute; right: 8px; bottom: 8px; z-index: 2; font-size: 0.74rem; font-weight: 800; color: var(--ink); background: rgba(255,255,255,0.92); backdrop-filter: blur(4px); border: 1px solid rgba(0,0,0,0.06); padding: 5px 10px; border-radius: 999px; box-shadow: 0 2px 8px -3px rgba(0,0,0,0.25); transition: all 0.14s; }
.sp-cmp:hover { background: #fff; }
.sp-cmp.is-on { background: var(--accent); color: #fff; border-color: var(--accent); }
/* 하단 비교 바 */
.cmpbar { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 495; display: flex; align-items: center; gap: 16px; padding: 10px 12px 10px 20px; background: var(--ink); color: #fff; border-radius: 999px; box-shadow: 0 12px 34px -10px rgba(0,0,0,0.5); animation: qmpop 0.2s ease; }
.cmpbar__n { font-size: 0.9rem; font-weight: 800; white-space: nowrap; }
.cmpbar__b { display: flex; gap: 8px; }
.cmpbar .btn--soft { background: rgba(255,255,255,0.16); color: #fff; border: none; }
.cmpbar .btn--soft:hover { background: rgba(255,255,255,0.28); }
@media (max-width: 760px) { .cmpbar { bottom: 84px; width: calc(100vw - 28px); justify-content: space-between; } }
/* 비교 모달 */
.cmp-controls { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.cmp-ctl { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 96px; }
.cmp-ctl > span { font-size: 0.76rem; font-weight: 700; color: var(--ink-2); }
.cmp-ctl input, .cmp-ctl select { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; font-family: inherit; font-size: 0.88rem; font-weight: 600; color: var(--ink); background: var(--surface); outline: none; }
.cmp-ctl input:focus, .cmp-ctl select:focus { border-color: var(--accent); }
.cmp-table { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.cmp-row { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 10px 12px; padding: 12px 14px; border-bottom: 1px solid var(--line-2); }
.cmp-row:last-child { border-bottom: none; }
.cmp-row--h { background: var(--surface-2); font-size: 0.76rem; font-weight: 800; color: var(--muted); padding: 9px 14px; }
.cmp-row.is-min { background: rgba(79,70,229,0.05); }
.cmp-nm { display: flex; flex-direction: column; gap: 2px; font-size: 0.92rem; font-weight: 700; min-width: 0; }
.cmp-nm small { font-size: 0.74rem; font-weight: 500; color: var(--muted); }
.cmp-best { align-self: flex-start; font-size: 0.66rem; font-weight: 800; color: #fff; background: var(--accent); padding: 2px 7px; border-radius: 999px; margin-bottom: 2px; }
.cmp-unit { font-size: 0.85rem; font-weight: 700; color: var(--ink-2); white-space: nowrap; text-align: right; }
.cmp-unit i { display: block; font-style: normal; font-size: 0.68rem; font-weight: 800; color: #e2402f; }
.cmp-unit i svg.ic { vertical-align: -0.12em; }
.cmp-tot { white-space: nowrap; text-align: right; }
.cmp-tot b { font-family: var(--serif); font-size: 1.15rem; font-weight: 700; }
.cmp-row.is-min .cmp-tot b { color: var(--accent); }
.cmp-act { white-space: nowrap; }
.cmp-x { font-size: 0.78rem; color: var(--faint); font-style: normal; }
.cmp-note { font-size: 0.76rem; color: var(--faint); line-height: 1.55; margin-top: 12px; }
/* 비교 요약 */
.cmp-summary { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; margin-bottom: 12px; background: var(--accent-soft); border: 1px solid rgba(79,70,229,0.18); border-radius: 12px; }
.cmp-summary__ic { font-size: 1.1rem; line-height: 1.3; }
.cmp-summary p { font-size: 0.9rem; color: var(--ink-2); line-height: 1.55; margin: 0; }
.cmp-summary p b { color: var(--accent); font-weight: 800; }
.cmp-summary__sub { display: block; font-size: 0.78rem; color: var(--muted); margin-top: 3px; }
/* 준비 물품 해시태그 */
.cmp-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.cmp-tags em { font-style: normal; font-size: 0.7rem; font-weight: 700; color: var(--accent); background: var(--accent-soft); padding: 2px 7px; border-radius: 6px; }
@media (max-width: 560px) {
  .cmp-row { grid-template-columns: 1fr auto; grid-auto-flow: row; }
  .cmp-row--h { display: none; }
  .cmp-unit { grid-column: 1; text-align: left; }
  .cmp-tot { grid-column: 2; }
  .cmp-act { grid-column: 1 / -1; }
  .cmp-act .btn { width: 100%; }
}

/* ===== 개인정보 제3자 제공 동의 ===== */
.co-consent { display: flex; align-items: flex-start; gap: 9px; margin: 12px 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); font-size: 0.83rem; line-height: 1.55; color: var(--ink-2); cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.co-consent input { width: 18px; height: 18px; min-width: 18px; margin-top: 1px; accent-color: var(--accent); cursor: pointer; }
.co-consent b { color: var(--accent); font-weight: 800; }
.co-consent a { color: var(--accent); font-weight: 700; text-decoration: underline; }
.co-consent--err { border-color: #e2402f; background: rgba(226,64,47,0.06); animation: mpFlash 0.4s ease; }
/* 결제 동의 그룹 (전체 동의 + 개별 필수) */
.co-agree { margin: 12px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); overflow: hidden; }
.co-agree__all { display: flex; align-items: center; gap: 9px; padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 0.9rem; font-weight: 700; color: var(--ink); cursor: pointer; background: var(--surface); }
.co-agree__it { display: flex; align-items: flex-start; gap: 9px; padding: 11px 14px; border-top: 1px solid var(--line-2); font-size: 0.82rem; line-height: 1.55; color: var(--ink-2); cursor: pointer; word-break: keep-all; }
.co-agree__all span, .co-agree__it span { word-break: keep-all; }
.co-agree input { width: 18px; height: 18px; min-width: 18px; margin-top: 1px; accent-color: var(--accent); cursor: pointer; }
.co-agree__all input { margin-top: 0; }
.co-agree b { color: var(--accent); font-weight: 800; }
.co-agree__all b { color: var(--ink); }
.co-agree a { color: var(--accent); font-weight: 700; text-decoration: underline; }
.co-broker { display: flex; align-items: flex-start; gap: 6px; padding: 10px 14px; margin: 0; border-top: 1px solid var(--line-2); background: var(--surface); font-size: 0.76rem; line-height: 1.5; color: var(--muted); word-break: keep-all; }
.co-broker svg { flex-shrink: 0; margin-top: 1px; color: var(--faint); }
/* 관리자 접근 로그 */
.ad-audit { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin-top: 10px; }
.ad-audit__row { display: grid; grid-template-columns: 150px 1fr 120px; gap: 10px; padding: 9px 14px; font-size: 0.82rem; border-bottom: 1px solid var(--line-2); align-items: center; }
.ad-audit__row:last-child { border-bottom: none; }
.ad-audit__row--h { background: var(--surface-2); font-weight: 800; color: var(--muted); font-size: 0.76rem; }
.ad-audit__act { display: inline-flex; align-items: center; gap: 5px; }
.ad-audit__tag { font-size: 0.7rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; }
.ad-audit__tag--view { color: var(--accent); background: var(--accent-soft); }
.ad-audit__tag--edit { color: #b45309; background: rgba(217,119,6,0.14); }
.ad-audit__tag--export { color: #db2777; background: rgba(219,39,119,0.12); }
.ad-audit__t { color: var(--faint); font-size: 0.76rem; text-align: right; }
@media (max-width: 560px) { .ad-audit__row { grid-template-columns: 1fr auto; } .ad-audit__row > span:nth-child(1) { grid-column: 1 / -1; } }

/* 회원 탈퇴 (개인정보 파기) */
.pf-danger { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line-2); }
.pf-withdraw { font-size: 0.85rem; font-weight: 700; color: #e2402f; text-decoration: underline; text-underline-offset: 2px; }
.pf-withdraw:hover { color: #b91c1c; }
.pf-danger span { display: block; font-size: 0.76rem; color: var(--faint); line-height: 1.55; margin-top: 8px; word-break: keep-all; }

/* 제3자 제공 동의 상세 표 */
.consent-tb { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.consent-tb th, .consent-tb td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--line-2); vertical-align: top; line-height: 1.55; word-break: keep-all; }
.consent-tb th { width: 34%; font-weight: 800; color: var(--ink-2); background: var(--surface-2); white-space: nowrap; }
.consent-tb td { color: var(--ink-2); }
.consent-tb td b, .consent-tb th b { color: var(--accent); }
.consent-tb tr:last-child th, .consent-tb tr:last-child td { border-bottom: none; }

/* ===== 보안·동의 UI ===== */
.field__hint { display: block; font-size: 0.76rem; color: var(--faint); margin-top: 6px; line-height: 1.5; }
.field__hint--ok { color: var(--ok); }
.field__hint--no { color: #e2402f; }
.su-agree--opt { background: var(--surface); }
.su-req { color: #e2402f; }
.su-opt { color: var(--muted); }
/* 마케팅 수신 토글 (마이페이지) */
.mkt-toggle { display: flex; align-items: center; gap: 12px; margin: 4px 0 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); cursor: pointer; }
.mkt-toggle__tx { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.mkt-toggle__tx b { font-size: 0.9rem; font-weight: 700; }
.mkt-toggle__tx em { font-size: 0.78rem; font-style: normal; color: var(--muted); }
.mkt-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.mkt-toggle__sw { position: relative; flex-shrink: 0; width: 44px; height: 25px; border-radius: 999px; background: var(--line); transition: background 0.18s; }
.mkt-toggle__sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: transform 0.18s; }
.mkt-toggle input:checked + .mkt-toggle__sw { background: var(--accent); }
.mkt-toggle input:checked + .mkt-toggle__sw::after { transform: translateX(19px); }

/* ===== 사업자 등록 — 가입 유형(다중) + 서류 드롭존 ===== */
.biz-roles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 6px; }
.biz-role { display: flex; align-items: center; gap: 11px; padding: 14px 15px; border: 1.5px solid var(--line); border-radius: 13px; background: var(--surface); cursor: pointer; transition: border-color .15s, background .15s; }
.biz-role:hover { border-color: var(--accent); }
.biz-role input { width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--accent); }
.biz-role__ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 11px; background: var(--surface-2); color: var(--ink-2); flex-shrink: 0; }
.biz-role__tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.biz-role__tx b { font-size: 0.95rem; font-weight: 800; }
.biz-role__tx span { font-size: 0.78rem; color: var(--muted); }
.biz-role:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
.biz-role:has(input:checked) .biz-role__ic { background: var(--accent); color: #fff; }
.dropzone--sm { padding: 16px 14px; margin-top: 6px; }
.dropzone--sm .dropzone__ic { font-size: 1.2rem; }
.dropzone--sm .dropzone__t { font-size: 0.85rem; }
.bz-doc { margin-bottom: 14px; }
.bz-doc__head { display: flex; align-items: center; gap: 8px; font-size: 0.9rem; margin-bottom: 2px; }
.bz-doc__req { font-size: 0.68rem; font-weight: 800; color: #e2402f; background: rgba(226,64,47,0.1); padding: 2px 7px; border-radius: 999px; }
.bz-doc__opt { font-size: 0.68rem; font-weight: 700; color: var(--muted); background: var(--surface-2); padding: 2px 7px; border-radius: 999px; }
@media (max-width: 560px) { .biz-roles { grid-template-columns: 1fr; } }

/* ===== 쿠폰 — 호스트 발급 유형 세그 + 게스트 적용 박스 ===== */
.seg2 { display: flex; gap: 8px; flex-wrap: wrap; }
.seg2__o { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; font-size: 0.85rem; font-weight: 700; color: var(--muted); cursor: pointer; white-space: nowrap; transition: all 0.14s; }
.seg2__o span { white-space: nowrap; }
.seg2__o input { width: 15px; height: 15px; margin: 0; flex-shrink: 0; accent-color: var(--accent); }
.seg2__o:hover { border-color: var(--accent); }
.seg2__o:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.rq-couponbox { border: 1px solid var(--line); border-radius: 12px; padding: 14px 15px; margin: 4px 0 14px; background: var(--surface-2); }
.rqcp__h { font-size: 0.92rem; font-weight: 800; margin-bottom: 10px; }
.rqcp__h span { font-size: 0.76rem; font-weight: 500; color: var(--faint); margin-left: 6px; }
.rqcp__f { display: flex; flex-direction: column; gap: 5px; margin-bottom: 9px; }
.rqcp__f > span { font-size: 0.78rem; font-weight: 700; color: var(--ink-2); }
.rqcp__f select { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; font-family: inherit; font-size: 0.88rem; font-weight: 600; background: var(--surface); outline: none; }
.rqcp__code { display: flex; gap: 8px; }
.rqcp__code input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; font-family: inherit; font-size: 0.88rem; outline: none; background: var(--surface); }
.rqcp__code input:focus { border-color: var(--accent); }
.rqcp__msg { font-size: 0.82rem; font-weight: 600; margin: 8px 0 0; min-height: 1em; }
.rqcp__msg.ok { color: var(--ok); }
.rqcp__msg.no { color: #e2402f; }
.book__couponnote { font-size: 0.82rem; color: var(--muted); background: var(--surface-2); border-radius: 9px; padding: 9px 12px; margin: 4px 0 12px; }
.book__couponnote b { color: var(--accent); }

/* 요금: 예약 방식 토글 · 패키지 선택 · 평일/주말 표기 */
.book__modes { display: flex; gap: 6px; margin: 0 0 12px; }
.book__mode { flex: 1; padding: 9px 0; border: 1px solid var(--line); background: #fff; border-radius: 9px; font-weight: 700; font-size: 0.9rem; color: var(--muted); cursor: pointer; transition: all 0.15s; }
.book__mode.is-on { border-color: var(--accent); color: var(--accent); background: var(--accent-soft, #eef0ff); }
.book__pkgs { display: flex; flex-direction: column; gap: 8px; }
.book__pkg { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; font-size: 0.9rem; flex-wrap: nowrap; }
.book__pkg:has(input:checked) { border-color: var(--accent); background: var(--accent-soft, #eef0ff); }
.book__pkg input { accent-color: var(--accent); flex: 0 0 auto; width: auto; margin: 0; }
.book__pkg__l { flex: 1 1 auto; min-width: 0; white-space: normal; word-break: keep-all; text-align: left; }
.book__pkg b { flex: 0 0 auto; white-space: nowrap; margin-left: auto; }
.book__pkg__l em { font-style: normal; color: var(--muted); font-size: 0.82em; margin-left: 4px; }
.book__pkg b { font-weight: 800; }
.book__wk { font-size: 0.82rem; color: var(--muted); font-weight: 600; }
.sp-card__wk { font-size: 0.78rem; color: var(--muted); font-weight: 600; }

/* 마이페이지 대시보드 — 월별 매출 그래프 */
.dash-rev { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; margin: 14px 0; }
.dash-rev__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.dash-rev__head .dash-h { margin: 0; }
.dash-rev__tot { font-size: 1.15rem; font-weight: 800; color: var(--accent); }
.dash-rev__bars { display: flex; align-items: flex-end; gap: 8px; height: 150px; border-bottom: 2px solid var(--line); padding-bottom: 2px; }
.dash-rev__col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; }
.dash-rev__val { font-size: 0.66rem; color: var(--muted); font-weight: 700; margin-bottom: 3px; white-space: nowrap; }
.dash-rev__bar { width: 62%; min-height: 2px; background: linear-gradient(180deg, #a5b4fc, var(--accent)); border-radius: 5px 5px 0 0; transition: height 0.4s; }
.dash-rev__bar[data-peak] { background: linear-gradient(180deg, #6366f1, var(--accent)); }
.dash-rev__lbl { font-size: 0.7rem; color: var(--muted); margin-top: 5px; text-align: center; display: flex; flex-direction: column; }
.dash-rev__lbl em { font-style: normal; font-size: 0.62rem; color: var(--faint); }
@media (max-width: 560px) { .dash-rev__bars { height: 120px; gap: 4px; } .dash-rev__val { font-size: 0.58rem; } }

/* 마이페이지 세로 사이드바 — admin 스타일(맨 왼쪽 전체높이 고정 도킹) */
.mp-body { display: flex; gap: 24px; align-items: flex-start; }
.mp-body .mp-tabs { flex: 0 0 210px; flex-direction: column; align-items: stretch; gap: 4px; border-bottom: none; margin-bottom: 0; }
.mp-body .mp-tab { padding: 11px 14px; border-radius: 10px; text-align: left; font-size: 0.92rem; font-weight: 600; color: var(--ink-2); display: flex; align-items: center; }
/* 역할별 메뉴 숨김 보장 — display 선언이 [hidden]의 기본 display:none을 덮어써서
   파트너 계정에 호스트 메뉴(내 등록 공간·공간 관리 등)가 노출되던 문제 방지 */
.mp-tab[hidden], .mp-tabs__div[hidden], .mp-tabs__title[hidden] { display: none !important; }
/* ?req=<id> 딥링크로 이동한 견적요청 카드 강조 (알림·배지 → 해당 요청 바로 찾기) */
.mp-bk.is-focus { animation: reqFocus 2.4s ease-out; }
@keyframes reqFocus {
  0%, 60% { box-shadow: 0 0 0 3px var(--accent); border-color: var(--accent); }
  100% { box-shadow: 0 0 0 0 transparent; }
}
.mp-body .mp-tab:hover { background: var(--surface-2); color: var(--ink); }
.mp-body .mp-tab.is-active { background: var(--accent); color: #fff; font-weight: 700; box-shadow: var(--glow); }
.mp-body .mp-tab.is-active::after { display: none; }
.mp-body .mp-tab__badge { margin-left: auto; }
.mp-body .mp-tab.is-active .mp-tab__badge { background: #fff; color: var(--accent); }
.mp-main { flex: 1; min-width: 0; max-width: 1040px; }
/* 데스크톱: 사이드바를 화면 맨 왼쪽에 전체 높이로 고정, 콘텐츠는 넓게 */
@media (min-width: 861px) {
  .mp-body .mp-tabs { position: fixed; left: 0; top: var(--header-h, 64px); bottom: 0; width: 234px; z-index: 40; background: var(--surface); border-right: 1px solid var(--line); border-radius: 0; padding: 22px 14px; overflow-y: auto; margin: 0; }
  .mp-body { display: block; }
  .mp:has(.mp-body) { max-width: none; margin: 0; padding-left: 274px; padding-right: 46px; }
  /* 로고를 화면 맨 왼쪽으로(사이드바와 정렬) — 마이페이지 한정 */
  body:has(.mp-body) .header__inner { max-width: none; margin: 0; padding-left: 24px; }
}
/* 모바일·태블릿: 상단 가로 스크롤 메뉴 */
@media (max-width: 860px) {
  .mp-body { flex-direction: column; gap: 14px; }
  .mp-body .mp-tabs { flex: none; width: 100%; flex-direction: row; overflow-x: auto; overflow-y: hidden; white-space: nowrap; scrollbar-width: none; border: 1px solid var(--line); border-radius: 12px; padding: 6px; background: var(--surface); }
  .mp-body .mp-tabs::-webkit-scrollbar { display: none; }
  .mp-body .mp-tab { flex-shrink: 0; }
}
/* 사이드바 타이틀·아이콘·섹션 구분 (admin 느낌) */
.mp-body .mp-tab { gap: 10px; }
.mp-body .mp-tab .ic { flex: 0 0 auto; color: var(--muted); transition: color 0.15s; }
.mp-body .mp-tab.is-active .ic { color: #fff; }
.mp-tabs__title { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; color: var(--faint); text-transform: uppercase; padding: 2px 10px 12px; display: none; }
.mp-tabs__div { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.05em; color: var(--faint); text-transform: uppercase; padding: 13px 10px 4px; }
@media (min-width: 861px) { .mp-tabs__title { display: block; } }
@media (max-width: 860px) { .mp-tabs__title, .mp-tabs__div { display: none; } }
/* 요금 설정 입력 (컴팩트 인라인 — 화면 비례 맞춤) */
.mg-band { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.mg-band > select, .mg-band > input { width: auto; flex: 0 0 auto; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 0.9rem; background: #fff; }
.mg-band select { min-width: 92px; }
.mg-band input[type="number"] { width: 84px; }
.mg-band input[type="text"] { flex: 1 1 150px; min-width: 130px; max-width: 260px; }
.mg-band .mg-unitfield { flex: 0 0 auto; width: auto; margin: 0; }
.mg-band .mg-unitfield input { width: 76px; }
.mg-band__t { color: var(--muted); padding: 0 2px; }
.mg-pkgrow { display: flex; align-items: center; gap: 10px; background: var(--surface-2); border-radius: 9px; padding: 8px 12px; font-size: 0.88rem; }
.mg-pkgrow b { font-weight: 700; }
.mg-pkgrow span { color: var(--muted); flex: 1; }
.mg-pkgrow__x { color: var(--faint); font-weight: 700; }
.mg-sec__desc { margin-left: 8px; }

/* 공간 관리: 콘텐츠 전체 폭 제한(오른쪽 빈 공간 제거) */
#discWrap { max-width: 1000px; }
/* 공간 관리: 입력 가로폭 컴팩트화 + 좌측 정렬 */
.mg-sec .book__row { display: flex; flex-wrap: wrap; gap: 12px 14px; }
.mg-sec .book__row > .book__field { flex: 0 0 auto; width: 190px; margin-bottom: 0; }
.mg-sec .book__field > .mg-unitfield { max-width: 190px; }
.mg-sec .book__field > input[type="date"] { max-width: 190px; }
.mg-opscol--rules .book__field > .mg-unitfield { max-width: 120px; }
/* 저장 버튼 왼쪽 끝으로 */
.mg-sec .mg-sec__foot { justify-content: flex-start; }
/* 즉시 예약 자동 수락 박스: 문구 끝까지만 */
.mg-check--auto { max-width: 520px; }
/* 반짝할인 · 쿠폰 발급 탭: 반 사이즈 */
.promo-tabs { max-width: 460px; }
/* 시간대 할인 · 패키지 시간 드롭다운 */
.mg-hsel { min-width: 100px !important; max-width: 122px; }
.mg-band > select, .mg-band > input { padding: 8px 9px; }
.mg-band .mg-unitfield { max-width: none; }
.mg-band .mg-unitfield--pct input { width: 90px; padding-right: 26px; }
.mg-band .mg-unitfield--pct .mg-unit { right: 9px; }
.mg-band .mg-unitfield--won input { width: 120px; padding-right: 26px; }
.mg-band .mg-unitfield--won .mg-unit { right: 9px; }
/* 시간대 할인 스케줄러 목록 */
.mg-schedule { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; max-width: 560px; }
.mg-schedule__empty { font-size: 0.82rem; color: var(--faint); background: var(--surface-2); border: 1px dashed var(--line); border-radius: 10px; padding: 11px 13px; }
.mg-sch-row { display: flex; align-items: center; gap: 10px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; font-size: 0.88rem; }
.mg-sch-tag { flex: 0 0 auto; font-size: 0.72rem; font-weight: 800; padding: 3px 9px; border-radius: 999px; background: #eef2ff; color: #4f46e5; }
.mg-sch-tag--weekday { background: #ecfdf5; color: #059669; }
.mg-sch-tag--weekend { background: #fff1f2; color: #e11d48; }
.mg-sch-time { flex: 1; font-weight: 700; color: var(--ink); }
.mg-sch-pct { flex: 0 0 auto; font-weight: 800; color: #ca8a04; }
.mg-sch-x { flex: 0 0 auto; color: var(--faint); font-weight: 700; width: 22px; height: 22px; border-radius: 6px; }
.mg-sch-x:hover { background: #fee2e2; color: #dc2626; }
/* 검색 카드: 시간대 할인 뱃지 */
.sp-card__band { display: inline-flex; align-items: center; gap: 3px; margin: 6px 0 2px; font-size: 0.74rem; font-weight: 800; color: #b45309; background: #fffbeb; border: 1px solid #fde68a; border-radius: 999px; padding: 3px 9px; }
.sp-card__band .ic { color: #d97706; }
/* 호스트 폼: 이용 가능 시간 드롭다운 (한 줄·컴팩트) */
.hf-hours { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; max-width: 460px; }
.hf-hsel { width: auto !important; min-width: 0; flex: 1 1 100px; max-width: 128px; }
.hf-hours > span { color: var(--muted); flex: 0 0 auto; }
.hf-hours #hOpen24 { flex: 0 0 auto; white-space: nowrap; }
/* 예약 위젯: hidden 속성이 명시적 display(grid/flex/inline-block)에 무시되지 않도록 강제 */
.book [hidden] { display: none !important; }
/* 예약 위젯: 이용시간 범위 + 시간대 할인 안내 */
.book__range { margin: -2px 0 8px; font-size: 0.82rem; font-weight: 800; color: var(--accent); background: var(--accent-soft); border-radius: 8px; padding: 6px 11px; display: inline-block; }
.book__bands { margin: 0 0 10px; font-size: 0.78rem; color: var(--muted); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; line-height: 1.5; }
.book__bands .ic { color: #d97706; flex: 0 0 auto; }
.book__bands b { color: var(--ink-2); font-weight: 700; }
.book__bands__no { color: #dc2626; font-weight: 700; }
.book__bands__ok { color: #059669; font-weight: 700; }
@media (max-width: 560px) {
  .mg-sec .book__row > .book__field { width: calc(50% - 7px); }
  .mg-sec .book__field > .mg-unitfield, .mg-sec .book__field > input[type="date"], .mg-opscol--rules .book__field > .mg-unitfield { max-width: none; }
  .mg-band > select, .mg-band > input, .mg-hsel { flex: 1 1 46%; min-width: 0 !important; max-width: none; }
}
/* 내 후기 — 공간별 필터 칩 */
.myrev-head { font-size: 0.95rem; margin-bottom: 12px; }
.myrev-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.myrev-chip { padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: 0.85rem; font-weight: 600; color: var(--ink-2); background: #fff; }
.myrev-chip.is-on { background: var(--accent); color: #fff; border-color: var(--accent); }
.myrev-chip em { font-style: normal; opacity: 0.7; margin-left: 3px; }
