/* ═══════════════════════════════════════════════════════════════
   어메이징스토어 통합회원 — "원패스(One Pass)" 디자인 시스템 (2026-07-09)
   브랜드: 허브와 동일한 네이비(#0C1F3F) + 앰버(#C8860A/#E9A83A).
   시그니처: 네이비 멤버십 패널 속 황금 노선(pass-line)이 서비스들을 잇는다.
   기존 템플릿 클래스명은 전부 보존(어드민·법무 페이지 포함) — 스킨만 교체.
   ═══════════════════════════════════════════════════════════════ */
:root {
  --navy-deep:#081326; --navy:#0C1F3F; --navy-soft:#1C3A66;
  --amber:#C8860A; --amber-bright:#E9A83A; --amber-soft:#FBF3E2;
  --bg:#F4F6F9; --card:#FFFFFF; --line:#E2E7EF;
  --ink:#17202C; --muted:#66707E;
  --brand:var(--navy);            /* 구 파랑 토큰을 쓰던 화면 호환 */
  --ok:#0A7F43; --err:#C0392B; --warn:#B45309;
  --radius:16px; --radius-sm:10px;
  --shadow:0 12px 32px rgba(12,31,63,.10);
  --shadow-sm:0 2px 8px rgba(12,31,63,.06);
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
/* display 를 지정한 요소(label 등)에서도 hidden 속성이 항상 이기게 */
[hidden] { display:none !important; }
body { margin:0; background:var(--bg); color:var(--ink); line-height:1.65;
  font-family:"Pretendard Variable", Pretendard, -apple-system, "Segoe UI",
    "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
  font-size:15px; letter-spacing:-0.011em;
  word-break:keep-all; overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.wrap { max-width:620px; margin:40px auto 0; padding:0 20px; }

h1 { font-size:30px; font-weight:800; letter-spacing:-0.028em; margin:0 0 10px;
  color:var(--navy); line-height:1.3; }
h2 { font-size:17px; font-weight:750; letter-spacing:-0.02em; margin:0 0 8px; color:var(--navy); }
.muted { color:var(--muted); font-size:13.5px; }
a { color:var(--navy-soft); text-underline-offset:2px; }
a:hover { color:var(--navy); }

/* 오버라인(눈썹) — 앰버 소제목 */
.eyebrow { display:block; font-size:12px; font-weight:700; letter-spacing:.14em;
  color:var(--amber); margin-bottom:6px; }

:focus-visible { outline:2px solid var(--amber-bright); outline-offset:2px; border-radius:4px; }

/* ── 상단 브랜드 바 ─────────────────────────────────────────── */
.topbar { background:var(--card); border-bottom:1px solid var(--line); }
.topbar-in { max-width:1040px; margin:0 auto; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand-word { font-size:19px; font-weight:800; letter-spacing:-0.01em;
  text-decoration:none; white-space:nowrap; }
.brand-word .w1 { color:#4A7FC1; }          /* Amazing — 허브 로고와 동일 체계 */
.brand-word .w2 { color:var(--amber); }      /* Store */
.brand-word .w3 { color:var(--muted); font-size:13px; font-weight:600; margin-left:8px; }
.topbar-links { display:flex; align-items:center; gap:14px; font-size:13px; }
.topbar-links a { text-decoration:none; color:var(--muted); }
.topbar-links a:hover { color:var(--navy); }
.topbar-links .btn-primary { padding:7px 14px; font-size:13px; }

/* ── 통합회원 고지(법무 5요소) ──────────────────────────────── */
.notice { background:var(--card); border:1px solid var(--line);
  border-top:3px solid var(--amber); border-radius:var(--radius);
  padding:20px; margin-bottom:20px; box-shadow:var(--shadow-sm); }
.notice-head { font-weight:800; letter-spacing:-0.01em; margin-bottom:6px; color:var(--navy); }
.notice-lead { margin:0 0 10px; font-size:14px; }
.site-list { list-style:none; padding:0; margin:10px 0; display:flex; flex-wrap:wrap; gap:8px; }
.site-list li { background:var(--bg); border:1px solid var(--line); border-radius:999px;
  padding:5px 12px; font-size:13px; }
.site-name { font-weight:700; color:var(--navy); }
.site-tag { color:var(--muted); margin-left:6px; font-size:12px; }
.notice-grid { display:grid; grid-template-columns:92px 1fr; gap:5px 12px;
  margin:12px 0; font-size:13px; padding:12px; background:var(--bg); border-radius:var(--radius-sm); }
.notice-grid dt { color:var(--muted); }
.notice-grid dd { margin:0; }

/* ── 폼 ─────────────────────────────────────────────────────── */
form { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; display:flex; flex-direction:column; gap:14px; box-shadow:var(--shadow-sm); }
label { display:flex; flex-direction:column; gap:6px; font-size:13.5px; font-weight:700; color:var(--navy); }
input[type=email], input[type=password], input[type=text] {
  padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius-sm);
  font-size:15.5px; font-weight:400; background:#FBFCFE; color:var(--ink);
  font-family:inherit; letter-spacing:normal;
  transition:border-color .15s, box-shadow .15s; }
input[type=email]:focus, input[type=password]:focus, input[type=text]:focus {
  outline:none; border-color:var(--amber-bright); box-shadow:0 0 0 3px rgba(233,168,58,.18);
  background:#fff; }
.row { display:flex; gap:8px; }
.row input { flex:1; min-width:0; }

button { cursor:pointer; border-radius:var(--radius-sm); font-size:14.5px; padding:12px 18px;
  border:1px solid transparent; font-family:inherit; letter-spacing:-0.01em;
  transition:background .15s, transform .1s; }
button:active { transform:translateY(1px); }
.btn-primary { background:var(--navy); color:#fff; font-weight:700; letter-spacing:-0.01em; }
.btn-primary:hover { background:var(--navy-soft); }
a.btn-primary, a.btn-ghost { display:inline-block; text-decoration:none; text-align:center;
  border-radius:var(--radius-sm); padding:11px 18px; font-size:14px; }
.btn-sub { background:var(--amber-soft); color:var(--amber); font-weight:700;
  border-color:#EFD9A8; }
.btn-sub:hover { background:#F6E8C6; }
.btn-ghost { background:#fff; color:var(--navy); border-color:var(--line); font-weight:600; }
.btn-ghost:hover { border-color:var(--navy-soft); }
button:disabled { opacity:.45; cursor:not-allowed; }

/* ── 동의 영역 ──────────────────────────────────────────────── */
.consent-block { border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:16px; display:flex; flex-direction:column; gap:10px; background:#FBFCFE; }
.chk { display:flex; align-items:flex-start; gap:8px; font-weight:400; flex-direction:row;
  font-size:14px; color:var(--ink); }
.chk input { margin-top:3px; accent-color:var(--navy); width:16px; height:16px; }
.chk-required span b { color:var(--err); }
/* 선택(광고 수신) 블록은 세로 스택 — 라벨이 좁게 눌려 세로쓰기 되는 것 방지 */
.chk-optional { flex-direction:column; align-items:stretch; gap:8px; }
.sep { border:none; border-top:1px dashed var(--line); margin:4px 0; width:100%; }
.opt-head b { color:var(--amber); }
.legal-copy { font-size:12.5px; color:#3C4654; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:12px; margin:6px 0; }
.legal-copy ul { padding-left:18px; margin:6px 0; }
.channels { display:flex; flex-wrap:wrap; gap:12px; }

.msg { font-size:13px; min-height:18px; margin:0; }
.msg.ok { color:var(--ok); }
.msg.err { color:var(--err); }

/* ── 카드·배지 ──────────────────────────────────────────────── */
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 20px; margin-bottom:14px; box-shadow:var(--shadow-sm); }
.card ul { padding-left:18px; margin:6px 0; }
.badge { display:inline-block; font-size:12px; padding:2px 10px; border-radius:999px;
  background:var(--bg); color:var(--ink); border:1px solid var(--line); }
.badge-warn { background:#FFF4E5; color:var(--warn); border-color:#F3DCB2; }
.badge-mute { background:var(--bg); color:var(--muted); }
.identity-row { display:flex; align-items:center; gap:10px; margin-top:8px; }

/* ═══ 시그니처: 원패스 패널 (로그인·홈) ═══════════════════════
   네이비 멤버십 패널. 황금 세로 노선(pass-line)이 "내 계정"에서 출발해
   각 서비스 정거장을 지난다 — 계정 하나로 전 서비스를 오가는 SSO 스토리. */
.auth-shell { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  max-width:1040px; margin:40px auto 0; padding:0 20px; gap:0;
  border-radius:20px; overflow:hidden; box-shadow:var(--shadow); }
.auth-shell > * { min-width:0; }
.brand-panel { background:linear-gradient(168deg, var(--navy) 0%, var(--navy-deep) 90%);
  color:#fff; padding:36px 32px; display:flex; flex-direction:column; gap:22px; }
.brand-panel .eyebrow { color:var(--amber-bright); }
.panel-title { font-size:23px; font-weight:800; letter-spacing:-0.025em; line-height:1.38; margin:0; }
.panel-title em { font-style:normal; color:var(--amber-bright); }
.panel-sub { font-size:13.5px; color:rgba(255,255,255,.62); margin:0; }
.panel-head-sm { font-size:16px; font-weight:800; letter-spacing:-0.02em; margin:0; color:#fff; }

.pass-line { list-style:none; margin:6px 0 0; padding:0 0 0 6px; position:relative; }
.pass-line::before { content:''; position:absolute; left:12px; top:10px; bottom:10px;
  width:2px; background:linear-gradient(180deg, var(--amber-bright), rgba(233,168,58,.25)); }
.pass-node { position:relative; padding:9px 0 9px 32px; }
.pass-node::before { content:''; position:absolute; left:7px; top:14px; width:12px; height:12px;
  border-radius:50%; background:var(--navy); border:2.5px solid var(--amber-bright); }
.pass-node--me::before { background:var(--amber-bright);
  box-shadow:0 0 0 4px rgba(233,168,58,.22); }
.pass-node--me .pass-name { color:var(--amber-bright); }
.pass-node--more::before { border-style:dashed; border-color:rgba(233,168,58,.55); }
.pass-name { font-weight:700; font-size:14.5px; }
.pass-tag { font-size:12px; color:rgba(255,255,255,.55); margin-left:7px; }

.auth-form-col { background:var(--card); padding:36px 34px; display:flex;
  flex-direction:column; justify-content:center; }
.auth-form-col h1 { font-size:23px; }
.auth-form-col form { border:none; box-shadow:none; padding:0; background:none; }

@media (max-width: 760px) {
  .auth-shell { grid-template-columns:1fr; margin-top:20px; }
  .brand-panel { padding:26px 24px; gap:14px; }
  .pass-line { display:flex; flex-wrap:wrap; gap:4px 14px; padding:0; }
  .pass-line::before { display:none; }
  .pass-node { padding:2px 0 2px 18px; }
  .pass-node::before { left:0; top:8px; width:9px; height:9px; border-width:2px; }
  .auth-form-col { padding:26px 22px; }
}

/* ═══ 가입 페이지 컴포넌트 (signup-visual-spec.md, 2026-07-09) ═══
   규칙: amber 는 배경·테두리·큰 장식에만, 텍스트는 navy (§0 대비 실측). */

/* 1. 스플릿 4:8 / 900px */
.auth-shell--signup { grid-template-columns:minmax(0,4fr) minmax(0,8fr); }
.auth-shell--signup .brand-panel { justify-content:space-between; }
@media (max-width:900px) {
  .auth-shell--signup { grid-template-columns:1fr; margin-top:20px; }
  .auth-shell--signup .brand-panel { padding:26px 24px; gap:14px; }
  .auth-shell--signup .auth-form-col { padding:26px 22px; }
}

/* 2. 스텝 카드 — 공지=amber 상단바, 스텝=navy 좌측바, 혜택=amber 배경 (색 어휘 분리) */
.step-card {
  display:flex; flex-direction:column; gap:14px;
  background:var(--card); border:1px solid var(--line); border-left:3px solid var(--navy-soft);
  border-radius:var(--radius-sm); padding:20px 22px; margin:0 0 20px;
  box-shadow:var(--shadow-sm); transition:border-color .15s, box-shadow .15s;
}
.step-card:last-of-type { margin-bottom:0; }
.step-card:focus-within {
  border-left-color:var(--amber-bright);
  box-shadow:var(--shadow-sm), 0 0 0 1px rgba(233,168,58,.15);
}
.step-head { display:flex; align-items:center; gap:10px; }
.step-head h2 { margin:0; }
.step-num {
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:28px; height:28px; border-radius:50%;
  background:var(--navy); border:2.5px solid var(--amber); /* 흰 배경 비텍스트 대비 3:1 확보 */
  color:#fff; font-size:13px; font-weight:800;
}
@media (max-width:900px) { .step-card { padding:16px 16px 18px; } }

/* 3. 배지 3종 */
.tag-required, .tag-optional, .tag-recommend {
  display:inline-flex; align-items:center; font-size:11.5px; font-weight:800;
  letter-spacing:-0.01em; padding:2px 8px; border-radius:999px; line-height:1.5; vertical-align:middle;
}
.tag-required { background:rgba(192,57,43,.08); color:var(--err); border:1px solid rgba(192,57,43,.22); }
.tag-optional { background:var(--bg); color:var(--muted); border:1px solid var(--line); }
.tag-recommend { background:var(--amber-soft); color:var(--navy); border:1px solid #EFD9A8; }

/* 4. 채널 선택 칩 — 네이티브 체크박스는 시각적으로만 숨김(키보드·스크린리더 유지) */
.chip {
  position:relative; display:inline-flex; align-items:center; gap:6px;
  min-height:44px; padding:0 16px; border-radius:999px; white-space:nowrap;
  background:#fff; border:1.5px solid var(--line); color:var(--ink);
  font-size:14px; font-weight:600; letter-spacing:-0.01em; cursor:pointer;
  -webkit-user-select:none; user-select:none;
  transition:background .15s, border-color .15s, color .15s;
}
.chip input {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.chip:hover { border-color:var(--navy-soft); background:var(--bg); }
.chip:active { transform:translateY(1px); }
.chip:has(input:checked), .chip.is-checked {
  background:var(--amber-soft); border-color:var(--amber); color:var(--navy); font-weight:700;
}
.chip:has(input:checked)::before, .chip.is-checked::before { content:'✓'; font-weight:900; }
.chip:has(input:focus-visible) { outline:2px solid var(--amber-bright); outline-offset:2px; }
@supports not selector(:has(a)) {
  .chip:focus-within { outline:2px solid var(--amber-bright); outline-offset:2px; }
}
.chip:has(input:disabled), .chip.is-disabled { opacity:.45; cursor:not-allowed; pointer-events:none; }
.chip .tag-recommend { margin-left:2px; }
/* 야간 등 disabled 체크행 명시 */
.chk:has(input:disabled) { opacity:.5; cursor:not-allowed; }

/* 5. 전체 동의(마스터) 강조행 — 색이 아닌 크기·굵기·구분선로 무게 */
.chk-master { align-items:center; gap:10px; padding:2px 4px 14px; margin:0 0 6px; border-bottom:1px solid var(--line); }
.chk-master input { width:20px; height:20px; margin-top:1px; accent-color:var(--navy); flex-shrink:0; }
.chk-master b { font-size:15.5px; font-weight:800; color:var(--navy); letter-spacing:-0.01em; }
.chk-master small { display:block; margin-top:3px; font-size:12.5px; line-height:1.5; font-weight:400; }
.chk-master:hover { background:var(--bg); }

/* 6. 혜택 코너(선택 광고 동의) — 옅은 앰버 카드, 내부 법정 문단은 흰 배경 유지 */
.benefit-corner { background:var(--amber-soft); border:1px solid #EFD9A8; border-radius:var(--radius-sm); padding:14px 14px 16px; }
.benefit-corner .legal-copy { background:#fff; }
.benefit-line { font-size:13.5px; font-weight:700; color:var(--navy); margin:0 0 8px; letter-spacing:-0.01em; }

/* 7. 브랜드 패널 스텝 순번·하단 캡션 */
.pass-step-num { margin-right:6px; font-size:13px; font-weight:800; color:var(--amber-bright); }
.panel-caption { font-size:13px; color:rgba(255,255,255,.55); margin:0; padding-top:16px; border-top:1px solid rgba(255,255,255,.14); }

/* 8. 필수 표시(붉은 별표) — 필수 *, 선택은 미표시 */
.req { color:var(--err); font-weight:800; margin-left:3px; font-style:normal; }
.err-inline { color:var(--err); }

/* 9. 동의 상세보기 아코디언 + 스크롤 전문 박스 */
.acc-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.acc-row .chk { flex:1; min-width:0; }
.acc-toggle {
  flex-shrink:0; display:inline-flex; align-items:center; gap:4px;
  background:none; border:none; padding:6px 8px; border-radius:var(--radius-sm);
  font-size:12.5px; color:var(--muted); cursor:pointer;
}
.acc-toggle:hover { color:var(--navy); background:var(--bg); }
.acc-arrow { display:inline-block; font-weight:800; transition:transform .15s; line-height:1; }
.acc-toggle.open .acc-arrow { transform:rotate(180deg); }
.acc-body { margin:2px 0 6px; }
.scrollbox {
  max-height:240px; overflow-y:auto; overscroll-behavior:contain;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:12px 14px; font-size:12.5px; line-height:1.6; color:#3C4654;
}
.scrollbox:focus-visible { outline:2px solid var(--amber-bright); outline-offset:2px; }
.scrollbox h1, .scrollbox h2 { font-size:14px; margin:12px 0 6px; }
.scrollbox h3, .scrollbox h4 { font-size:13px; margin:10px 0 4px; }
.scrollbox p, .scrollbox ul, .scrollbox ol { margin:6px 0; }
/* legal-body 재사용 시 카드 이중 테두리 방지 */
.scrollbox.legal-body { border:1px solid var(--line); padding:12px 14px; }

/* ═══ 마이페이지 멤버십 카드 ═════════════════════════════════ */
.member-card { background:linear-gradient(160deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:#fff; border-radius:20px; padding:24px 26px; margin-bottom:18px;
  box-shadow:var(--shadow); position:relative; overflow:hidden; }
.member-card::after { content:''; position:absolute; right:-40px; top:-40px; width:180px; height:180px;
  border-radius:50%; border:1.5px solid rgba(233,168,58,.28); pointer-events:none; }
.member-card::before { content:''; position:absolute; right:-10px; top:-70px; width:180px; height:180px;
  border-radius:50%; border:1.5px solid rgba(233,168,58,.16); pointer-events:none; }
.member-card .eyebrow { color:var(--amber-bright); margin-bottom:2px; }
.member-name { font-size:21px; font-weight:800; letter-spacing:-0.01em; }
.member-email { font-size:13px; color:rgba(255,255,255,.6); margin-top:2px; }
.member-claims { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.claim-chip { font-size:12px; padding:4px 12px; border-radius:999px;
  border:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.75); }
.claim-chip.on { background:rgba(233,168,58,.16); border-color:var(--amber-bright);
  color:var(--amber-bright); font-weight:700; }

.cards-2col { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cards-2col .card { margin-bottom:0; }
@media (max-width: 640px) { .cards-2col { grid-template-columns:1fr; } }

/* ═══ 홈(index) 히어로 ═══════════════════════════════════════ */
.home-hero { max-width:1040px; margin:48px auto 0; padding:0 20px;
  display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:36px; align-items:center; }
.home-hero h1 { font-size:34px; line-height:1.3; }
.home-hero h1 em { font-style:normal; color:var(--amber); }
.hero-lead { font-size:15.5px; color:var(--muted); max-width:44ch; }
.hero-cta { display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
.hero-panel { border-radius:20px; }
.hero-panel .brand-panel { border-radius:20px; box-shadow:var(--shadow); }
@media (max-width: 820px) {
  .home-hero { grid-template-columns:1fr; margin-top:24px; gap:22px; }
  .home-hero h1 { font-size:27px; }
}

/* ── 어드민 콘솔 (기존 구조 유지 — 토큰만 승계) ─────────────── */
.wrap-wide { max-width:960px; }
.admin-nav { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:18px;
  padding-bottom:10px; border-bottom:1px solid var(--line); font-size:14px; }
.admin-nav .inline-form { background:none; border:none; padding:0; margin-left:auto; display:inline;
  box-shadow:none; }
.inline-form { display:inline; background:none; border:none; padding:0; box-shadow:none; }
.btn-xs { padding:4px 10px; font-size:12.5px; }
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin:14px 0; }
.stat { text-align:center; } .stat b { display:block; font-size:26px; color:var(--navy); }
.stat span { color:var(--muted); font-size:13px; }
.search-form { display:flex; gap:8px; background:none; border:none; padding:0; margin-bottom:12px;
  box-shadow:none; }
.search-form input { flex:1; padding:8px 10px; border:1px solid var(--line); border-radius:8px; }
table.grid { width:100%; border-collapse:collapse; font-size:13px; }
table.grid th, table.grid td { border:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
table.grid th { background:#EEF2F8; color:var(--navy); }
.queue-item .q-head { margin-bottom:8px; }
.ver-detail { display:grid; grid-template-columns:96px 1fr; gap:2px 10px; font-size:13px; margin:8px 0; }
.ver-detail dt { color:var(--muted); } .ver-detail dd { margin:0; }
.q-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:8px; }
.reject-form input { padding:5px 8px; border:1px solid var(--line); border-radius:6px; margin-right:6px; }
.role-card { display:flex; flex-direction:column; gap:6px; }
.role-form h2 { margin-top:4px; }

/* ── 법무 페이지(처리방침·약관) ─────────────────────────────── */
.legal-page { max-width:100%; }
.legal-meta { font-size:13px; color:var(--muted); margin:6px 0; }
.legal-meta b { color:var(--ink); }
.notice-revise { background:#FFF8E6; border-color:#F0D38A; }
.legal-body { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 20px; font-size:14px; }
.legal-body h2 { font-size:17px; margin:20px 0 8px; padding-top:8px; border-top:1px solid var(--line); }
.legal-body h3 { font-size:15px; margin:14px 0 6px; }
.legal-body h4 { font-size:14px; margin:10px 0 4px; }
.legal-body p { margin:8px 0; }
.legal-body ul, .legal-body ol { padding-left:20px; margin:8px 0; }
.legal-body blockquote { margin:10px 0; padding:8px 12px; background:#F6F8FB;
  border-left:3px solid var(--amber); border-radius:4px; color:#374151; font-size:13px; }
.legal-body hr { border:none; border-top:1px solid var(--line); margin:14px 0; }
.legal-body .md-table { width:100%; border-collapse:collapse; font-size:13px; margin:10px 0; }
.legal-body .md-table th, .legal-body .md-table td { border:1px solid var(--line);
  padding:6px 8px; text-align:left; vertical-align:top; }
.legal-body .md-table th { background:#EEF2F8; }
.legal-body code { background:#EEF2F8; padding:1px 5px; border-radius:4px; font-size:12.5px; }
.legal-body .md-pre { background:#F6F8FB; padding:10px 12px; border-radius:8px; overflow:auto; }

/* ── 수신 설정 ──────────────────────────────────────────────── */
.view-full { font-size:12px; margin-left:auto; white-space:nowrap; }
.consent-row { justify-content:flex-start; }
.consent-row small { margin-left:4px; }

/* ── 푸터 ───────────────────────────────────────────────────── */
.site-footer { margin:48px auto 28px; padding:18px 20px 0; max-width:600px;
  border-top:1px solid var(--line); text-align:center; }
.site-footer p { margin:6px 0; }
.site-footer .footer-links a { margin:0 4px; color:var(--muted); }

@media (prefers-reduced-motion: reduce) {
  * { transition:none !important; animation:none !important; }
}
