/* =================================================================
   결혼준비라운지 — Board Edition (2026-09-23 3차 시안 4안 '결혼준비라운지 보드')
   데스크의 3열과 글 밀도를 그대로 두고 낡아 보이던 요소만 바꿨다.
   남색 통띠 머리 → 흰 머리띠(700px 이상에서 상단 고정),
   탁한 남색 강조 → 선명한 코발트, 따뜻한 회백 → 차가운 회청,
   모서리 4~6px → 6~10px, 줄 위 호버에 옅은 코발트 판.
   3열 구성과 모바일에서 보이는 항목은 하나도 빼지 않는다.

   이 파일 한 개가 soomter-maison.css / soomter-topics.css /
   soomter-forest.css 세 겹을 대체한다. 네 번째 덮어쓰기 층이 아니다.

   토큰 이름은 maison 시절 이름을 그대로 유지한다. soomter-board.css,
   soomter-community.css, soomter-topic-board.css 와 일부 페이지의 인라인
   스타일이 var(--line) 같은 이름으로 이 값을 읽어가기 때문이다.
   이름을 바꾸면 댓글·반응 UI가 색을 잃는다.
   ================================================================= */

:root{
  /* 바탕과 면 */
  --paper:#f7f8fb;          /* 페이지 바탕 */
  --paper-2:#fafbfe;        /* 옅은 면 */
  --paper-deep:#eef0f6;     /* 표 머리, 안내 상자, 탭 바탕 */
  --card:#ffffff;           /* 패널 */

  /* 글자 */
  --ink:#0b0c12;
  --ink-2:#4a5164;
  --ink-3:#767e93;

  /* 선 */
  --line:#e8eaf1;
  --line-2:#d3d8e4;

  /* 강조 — 이름은 gold 이지만 보드의 강조는 코발트다.
     이름을 바꾸면 soomter-board.css 등이 읽어가는 값이 끊긴다. */
  --gold:#2f54eb;
  --gold-2:#7089f5;
  --gold-3:#2f54eb;
  --gold-grad:linear-gradient(#2f54eb,#2f54eb);
  --gold-text:linear-gradient(#2f54eb,#2f54eb);
  --terra:#e5484d;          /* 답변 없는 글, 경고, 삭제 */
  --terra-d:#c3363b;

  /* 보드 자체 이름 */
  --brand:#2f54eb;
  --brand-d:#1e3fc4;
  --brand-tint:#2f54eb12;
  --hot:#e5484d;
  --hot-tint:#e5484d12;
  --ok:#118d57;

  /* 옛 파스텔 토큰 — 참조가 남아 있어 값만 차가운 쪽으로 둔다. */
  --plum:#6c5ce0; --rose:#c14b6b; --sage:#4f7f6a; --sky:#2f6fc4;

  /* 모서리 — 보드는 데스크보다 살짝 키운다 */
  --r-s:6px; --r-m:10px; --r-l:10px; --r-xl:12px;

  /* 그림자 — 면을 띄우지 않고 가장자리만 또렷하게 한다 */
  --shadow-s:0 1px 2px rgba(12,18,40,.05);
  --shadow-m:0 1px 3px rgba(12,18,40,.07);
  --shadow-l:0 8px 24px -10px rgba(12,18,40,.22);
  --shadow-gold:none;

  --ease:cubic-bezier(.2,.7,.3,1);
  --label-spacing:.08em;

  --sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;
  --serif:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",sans-serif;

  /* 마스코트 SVG(svg-defs.php)가 읽는 값 */
  --mascot-body:#eaeefb; --mascot-line:#2f54eb; --mascot-blush:#d8a08f;

  /* 본문 폭. 광고 윙이 calc(50% ± 540px) 로 이 값에 맞춰 붙는다. */
  --max:1040px;

  /* 옛 st-* 토큰 */
  --st-ink:#0b0c12; --st-muted:#767e93; --st-line:#e8eaf1; --st-green:#2f54eb;

  /* 머리띠 높이 — 상단 고정 시 스크롤 여백과 우측 레일이 같이 읽는다. */
  --hd-h:54px;
}

/* ── 바탕 ─────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:15px;line-height:1.62;
  overflow-wrap:anywhere;min-width:0;
}
body :is(h1,h2,h3,h4,h5){font-family:var(--sans);font-style:normal;letter-spacing:-.02em;line-height:1.4;margin:0}
body :is(h1,h2){font-weight:700}
body :is(h3,h4,h5){font-weight:600}
p{margin:0}
a{color:inherit;text-decoration:none}
a:hover{color:var(--brand)}
img{max-width:100%}
:is(button,input,textarea,select){font-family:inherit}
:is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select){font-size:16px;max-width:100%}
:is(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--paper-deep);padding:1px 5px;border-radius:3px}
hr{border:0;border-top:1px solid var(--line)}

.wrap{width:calc(100% - 32px);max-width:var(--max);margin-inline:auto}

/* maison 시절의 등장 애니메이션·장식은 쓰지 않는다. 내용은 처음부터 보인다. */
.reveal{opacity:1!important;transform:none!important;transition:none!important}
:is(.spotlight,.cursor-halo,.tb-masthead,.issue-tag)::before,
:is(.spotlight,.cursor-halo,.tb-masthead,.issue-tag)::after{display:none!important}
.tb-masthead,.cursor-halo{display:none!important}

.st-skip{position:absolute;left:14px;top:-80px;z-index:200;background:var(--brand);color:#fff;padding:10px 16px;border-radius:var(--r-s)}
.st-skip:focus{top:10px}

/* ── 공통 머리띠 ───────────────────────────────────────────── */
/* 통째로 칠한 남색 띠를 없애고 흰 머리띠 + 1px 선으로 바꾼다.
   화면 맨 위의 무거운 띠 하나가 사라지는 것이 이번 개편의 핵심이다. */
.st-header{background:var(--card);color:var(--ink);border-bottom:1px solid var(--line);position:relative;z-index:30}
.st-header-inner{display:flex;align-items:center;gap:16px;min-height:var(--hd-h);padding-block:8px}
/* 로고는 어두운 외곽선을 가진 크림색 마스코트다. 흰 머리띠 위에서는
   원래 색 그대로 읽히므로 데스크 시절의 흰 칩을 걷어낸다. */
.st-brand{flex:0 0 auto;display:flex;align-items:center;padding:0}
.st-brand img{width:92px;height:33px;display:block;object-fit:contain}
.st-primary-nav{display:none;align-items:center;gap:18px;flex:1;min-width:0}
.st-primary-nav a{font-size:13.5px;font-weight:500;color:var(--ink-2);white-space:nowrap;padding-block:4px}
.st-primary-nav a:hover{color:var(--brand)}
.st-primary-nav a[aria-current=page]{color:var(--brand);font-weight:700;box-shadow:inset 0 -2px 0 var(--brand)}
.st-account{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-3)}
.st-account a:hover{color:var(--brand)}
.st-account .st-signup{background:var(--brand);border:1px solid var(--brand);color:#fff;border-radius:var(--r-s);padding:5px 11px;font-weight:600}
.st-account .st-signup:hover{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
.st-account details{position:relative}
.st-account summary{cursor:pointer;padding:8px 6px;min-height:36px;display:flex;align-items:center;list-style:none}
.st-account summary::-webkit-details-marker{display:none}
.st-account-panel{position:absolute;right:0;top:100%;width:158px;background:var(--card);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-m);padding:5px;box-shadow:var(--shadow-l);z-index:35}
.st-account-panel a{display:block;padding:8px 10px;border-radius:var(--r-s);font-size:13.5px}
.st-account-panel a:hover{background:var(--paper-deep)}

/* ── 공통 바닥 ─────────────────────────────────────────────── */
.st-footer{background:var(--card);border-top:1px solid var(--line);margin-top:26px;padding:22px 0}
.st-footer-inner{display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap}
.st-footer img{width:84px;height:auto;opacity:.9}
.st-footer p{margin:4px 0;color:var(--ink-3);font-size:12.5px}
.st-footer nav{font-size:12.5px;display:flex;gap:14px;flex-wrap:wrap;color:var(--ink-2)}
.st-mobile-nav{display:none}

/* =================================================================
   메인 — 이번달 BEST → 질문 입력 → 3열
   새 컴포넌트는 sd-* 이름을 쓴다.
   ================================================================= */
.sd-main{padding:12px 0 6px}
.sd-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m)}
.sd-panel-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line)}
.sd-panel-hd h2{font-size:13px;font-weight:700;letter-spacing:-.01em}
.sd-panel-hd a,.sd-panel-hd em{font-size:11.5px;color:var(--ink-3);font-style:normal}

/* 이번달 BEST — 라디오 + :checked 로 전환한다. JS 없이도 동작한다. */
.sd-best{margin-bottom:12px}
.sd-best-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line)}
.sd-best-title{font-size:13px;font-weight:700;display:flex;align-items:baseline;gap:6px}
.sd-best-title b{color:var(--brand)}
.sd-best-title span{font-size:11px;font-weight:400;color:var(--ink-3);font-variant-numeric:tabular-nums}
.sd-best-switch{margin-left:auto;display:flex;gap:2px;background:var(--paper-deep);border-radius:var(--r-s);padding:2px}
.sd-best input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.sd-best-switch label{font-size:12px;padding:5px 11px;min-height:30px;display:inline-flex;align-items:center;cursor:pointer;color:var(--ink-2);background:transparent;border-radius:4px}
.sd-best-switch label:hover{color:var(--ink)}
.sd-best-pane{display:none}
.sd-best-pane[data-pane]{padding:2px 0}
#sd-best-up:checked~.sd-best-top .sd-best-switch label[for=sd-best-up],
#sd-best-cm:checked~.sd-best-top .sd-best-switch label[for=sd-best-cm]{background:var(--card);color:var(--brand);font-weight:700;box-shadow:var(--shadow-s)}
#sd-best-up:checked~.sd-best-body [data-pane=up]{display:block}
#sd-best-cm:checked~.sd-best-body [data-pane=cm]{display:block}
.sd-best-list{display:grid}
.sd-rank{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:4px 9px;padding:8px 12px;border-bottom:1px solid var(--line)}
.sd-rank:last-child{border-bottom:0}
.sd-rank:hover{background:var(--brand-tint)}
.sd-rank-no{font-size:12px;font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:center}
.sd-rank:nth-child(-n+3) .sd-rank-no{color:var(--brand)}
.sd-rank-t{font-size:13.5px;font-weight:500;line-height:1.45;min-width:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.sd-rank-n{font-size:12px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums;white-space:nowrap}
.sd-rank-m{grid-column:2/-1;font-size:11px;color:var(--ink-3);display:flex;gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.sd-rank-m .sd-b{color:var(--brand)}
.sd-best-empty{padding:18px 12px;font-size:12.5px;color:var(--ink-3);text-align:center;line-height:1.7}
.sd-best-empty a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}

/* 질문 입력 */
.sd-ask{padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:9px;margin-bottom:12px;min-width:0}
.sd-ask>*{min-width:0;max-width:100%}
.sd-ask h2{font-size:17px;font-weight:700;letter-spacing:-.02em;white-space:normal;overflow-wrap:anywhere}
.sd-ask-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;width:100%;min-width:0;margin:0}
.sd-ask-input{width:100%;min-width:0;box-sizing:border-box;border:1.5px solid var(--brand);border-radius:var(--r-s);padding:9px 11px;font-size:16px;line-height:1.5;color:var(--ink);background:var(--card)}
.sd-ask-input::placeholder{color:var(--ink-3)}
.sd-ask-btn{flex:0 0 auto;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:var(--r-s);padding:9px 14px;font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap;min-height:40px}
.sd-ask-btn:hover{background:var(--brand-d)}
.sd-ask-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--ink-3)}
.sd-ask-tags a{background:var(--paper-deep);border-radius:var(--r-s);padding:3px 9px;color:var(--ink-2)}
.sd-ask-tags a:hover{background:var(--brand-tint);color:var(--brand)}
.sd-ask-note{font-size:11.5px;color:var(--ink-3)}
.sd-ask-note a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}

/* 3열 */
.sd-cols{display:grid;gap:12px;align-items:start}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sd-rail{display:grid;gap:12px;align-content:start;min-width:0}
.sd-center{min-width:0}

/* 좌측 주제 레일 */
.sd-tlist{display:grid}
.sd-tlist a{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink)}
.sd-tlist a:last-child{border-bottom:0}
.sd-tlist a:hover{background:var(--brand-tint);color:var(--brand)}
.sd-tlist i{font-style:normal;width:3px;height:14px;border-radius:2px;background:var(--line-2);flex:0 0 auto}
.sd-tlist a.is-fav i{background:var(--brand)}
.sd-tlist a.is-fav b{font-weight:700}
.sd-tlist b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-tlist em{margin-left:auto;flex:0 0 auto;white-space:nowrap;font-style:normal;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.sd-tlist a.sd-tlist-all b{color:var(--ink-3)}

/* 중앙 목록 */
.sd-tabs{display:flex;gap:2px;background:var(--paper-deep);border:0;border-radius:var(--r-m);padding:3px;margin-bottom:8px;overflow-x:auto;scrollbar-width:thin}
.sd-tabs a{flex:0 0 auto;font-size:12.5px;padding:7px 12px;color:var(--ink-3);white-space:nowrap;border-radius:var(--r-s)}
.sd-tabs a:hover{color:var(--ink)}
.sd-tabs a[aria-current=true]{color:var(--brand);font-weight:700;background:var(--card);box-shadow:var(--shadow-s)}
.sd-plist{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m)}
.sd-prow{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;padding:8px 12px;border-bottom:1px solid var(--line);align-items:center}
.sd-prow:last-child{border-bottom:0}
.sd-prow:hover{background:var(--brand-tint)}
.sd-badge{font-size:10.5px;color:var(--ink-2);background:var(--paper-deep);border-radius:var(--r-s);padding:2px 7px;font-weight:600;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.sd-prow-t .sd-wait{font-style:normal;color:var(--hot);font-weight:700;font-size:11px;margin-left:6px;background:var(--hot-tint);border-radius:3px;padding:1px 6px;white-space:nowrap}
.sd-prow-t{margin:0;font-size:14px;font-weight:500;line-height:1.5;min-width:0}
.sd-prow-t em{font-style:normal;color:var(--hot);font-weight:700;font-size:12px;margin-left:5px;font-variant-numeric:tabular-nums}
.sd-prow-m{grid-column:2;font-size:11px;color:var(--ink-3);display:flex;gap:9px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.sd-empty{padding:30px 14px;text-align:center;color:var(--ink-3);font-size:13px;line-height:1.8}
.sd-more{display:block;text-align:center;padding:10px;font-size:12.5px;color:var(--ink-3);border-top:1px solid var(--line)}
.sd-more:hover{color:var(--brand);background:var(--brand-tint)}

/* 우측 매거진 레일 */
.sd-mrow{display:grid;grid-template-columns:52px 1fr;gap:9px;padding:8px 12px;border-bottom:1px solid var(--line);align-items:center}
.sd-mrow:last-child{border-bottom:0}
.sd-mrow:hover{background:var(--brand-tint)}
.sd-mrow img{width:52px;height:52px;object-fit:cover;border-radius:var(--r-s);display:block;background:var(--paper-deep)}
.sd-mrow .sd-mph{width:52px;height:52px;border-radius:var(--r-s);background:var(--paper-deep);display:grid;place-items:center;font-size:10px;color:var(--ink-3);font-weight:700}
.sd-mrow h3{font-size:12.5px;font-weight:500;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sd-mrow .sd-mm{font-size:10.5px;color:var(--ink-3);margin-top:3px;display:block}
.sd-stat{display:grid}
.sd-stat div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
.sd-stat div:last-child{border-bottom:0}
.sd-stat b{color:var(--brand);font-weight:700;font-variant-numeric:tabular-nums}

/* 매거진과 같은 레일 너비: 모바일에서도 양쪽 가장자리를 맞춘다. */
.sd-visit-counter{width:100%;min-width:0;margin:0;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m)}
.sd-visit-counter h2{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--ink-2)}
.sd-visit-counter dl{margin:0}
.sd-visit-counter dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:3px 0;font-size:12px;line-height:1.5}
.sd-visit-counter dt{color:var(--ink-2);flex-shrink:0}
.sd-visit-counter dd{margin:0;color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.sd-visit-counter dd span{margin-left:3px;font-size:11px;font-weight:400;color:var(--ink-2)}
.sd-visit-counter .is-today dd{color:var(--brand)}
.sd-visit-counter p{margin:6px 0 0;font-size:11px;color:var(--ink-2)}

/* =================================================================
   광고 — 슬롯 계약(home_left / home_right / home_mobile /
   board_bottom / magazine_bottom)은 그대로 유지한다.
   윙은 본문 1040px 밖 양쪽에 1440px 이상에서만 붙는다.
   ================================================================= */
.st-ad-region[hidden]{display:none!important}
.st-ad-region{margin:12px 0 0}
.sd-main>.st-ad-region{margin:0 0 12px}
/* 액자 테두리를 지우고 소재를 옅은 판 위에 앉힌다. 라벨과 전환 단추는
   판의 윗줄에 두고 소재 위로 겹치지 않는다. 배너 64장 중 일부는 문구가
   들어간 소재여서 겹치면 글자가 가려진다. */
.st-ad-slot:not(.st-ad-native){background:var(--paper-deep);border-radius:var(--r-m);padding:6px 7px 7px}
.st-ad-label{display:inline-block;width:max-content;background:var(--card);border:1px solid var(--line);border-radius:999px;color:var(--ink-3);font-size:10px;font-weight:700;letter-spacing:.06em;padding:1px 8px;margin:0 0 5px}
.st-ad-slot a{display:block;border:0;border-radius:var(--r-s);overflow:hidden;background:var(--card)}
.st-ad-slot picture{display:block}
.st-ad-slot img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain}
.st-ad-home_left,.st-ad-home_right{display:none}
.st-ad-home_mobile{max-width:720px;margin-inline:auto}
.st-ad-home_mobile img{max-height:200px}
/* 게시판·매거진 하단 */
.board-page .st-ad-region,.art-wrap .st-ad-region,.mag-wrap .st-ad-region{margin-top:16px}

/* =================================================================
   빵가루 / 알림
   ================================================================= */
.crumb{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.crumb a:hover{color:var(--brand)}
.crumb-sep{color:var(--line-2)}
.crumb-current{color:var(--ink-2)}

.bd-alert,.auth-alert{border:1px solid var(--line-2);border-left-width:3px;border-radius:var(--r-s);padding:10px 13px;font-size:13.5px;margin:0 0 12px;background:var(--card);color:var(--ink-2)}
.bd-alert.ok,.auth-alert.ok{border-left-color:var(--ok);background:#118d570d}
.bd-alert.err,.auth-alert.err{border-left-color:var(--terra);background:var(--hot-tint)}
.bd-alert b,.auth-alert b{color:var(--ink)}

/* =================================================================
   게시판 목록 · 글 상세 · 글쓰기 (bd-* / bv-* / bw-*)
   ================================================================= */
.board-page,.mag-wrap,.art-wrap,.my-wrap,.auth-wrap{padding:14px 0 10px}
.bd-page{padding-top:0}

.bd-head,.tb-head,.tb-board-head,.mag-head,.my-hero,.tb-write-head{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  padding:14px 15px;margin:0 0 12px;display:grid;gap:6px;text-align:left;box-shadow:none;max-width:none
}
.bd-head{grid-template-columns:1fr auto;align-items:end}
.bd-head-copy{display:grid;gap:5px;min-width:0}
.bd-head-actions{display:flex;gap:6px;flex-wrap:wrap}
:is(.bd-head,.tb-head,.tb-board-head,.mag-head,.my-hero) :is(h1,.bd-title,.mag-title,.tb-write-title){font-size:19px;font-weight:700;letter-spacing:-.025em;line-height:1.35;color:var(--ink)}
:is(.bd-kicker,.tb-kicker,.mag-kicker,.my-kicker,.auth-kicker,.legal-kicker){font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--brand);text-transform:uppercase;font-family:var(--sans)}
:is(.bd-lead,.tb-lead,.tb-board-desc,.mag-lead,.tb-write-sub){font-size:13px;color:var(--ink-2);line-height:1.65;max-width:70ch}
.mag-title em{font-style:normal;color:var(--brand)}

/* 탭 */
.bd-tabs,.mag-tabs{display:flex;align-items:stretch;background:var(--card);border:1px solid var(--line);border-bottom:0;border-radius:var(--r-m) var(--r-m) 0 0;overflow-x:auto;scrollbar-width:thin;margin:0;gap:0;white-space:nowrap}
.bd-tab,.mag-tab{flex:0 0 auto;font-size:12.5px;padding:10px 13px;color:var(--ink-3);border-bottom:2px solid transparent;background:transparent;border-radius:0}
.bd-tab:hover,.mag-tab:hover{color:var(--ink)}
.bd-tab.is-active,.mag-tab.on{color:var(--brand);font-weight:700;border-bottom-color:var(--brand)}
.mag-tab-n{opacity:.65;font-size:11px;margin-left:3px;font-variant-numeric:tabular-nums}
.bd-total{margin-left:auto;flex:0 0 auto;align-self:center;padding:0 13px;font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* 목록 */
.bd-list{display:grid;background:var(--card);border:1px solid var(--line);border-radius:0 0 var(--r-m) var(--r-m)}
.tb-page .bd-list,.board-page .bd-list:first-of-type{border-radius:var(--r-m)}
.bd-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 13px;border-bottom:1px solid var(--line);background:transparent}
.bd-item:last-child{border-bottom:0}
.bd-item:hover{background:var(--paper-2)}
.bd-item-link{position:absolute;inset:0;z-index:1}
.bd-item-main{min-width:0;display:grid;gap:4px}
.bd-item-top{display:flex;gap:6px;flex-wrap:wrap}
.bd-badge{font-size:10.5px;font-weight:700;color:var(--brand);background:var(--brand-tint);border-radius:3px;padding:2px 6px}
.bd-badge--review{color:var(--ok);background:#1d6b4f14}
.bd-item-title{font-size:15px;font-weight:600;letter-spacing:-.015em;line-height:1.45;color:var(--ink);margin:0;position:relative;z-index:2;pointer-events:none}
.bd-item-excerpt{font-size:13px;color:var(--ink-2);line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bd-item-meta{display:flex;gap:9px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.bd-author{display:inline-flex;align-items:center;gap:5px}
.bd-grade{font-style:normal;font-size:10.5px;color:var(--ink-3);background:var(--paper-deep);border-radius:3px;padding:1px 5px}
.bd-grade--admin{color:var(--brand);background:var(--brand-tint);font-weight:700}
.bd-item-thumb{position:relative;z-index:2;pointer-events:none;max-width:76px}
.bd-item-thumb img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:var(--r-s);background:var(--paper-deep)}
.bd-empty{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:30px 16px;text-align:center;display:grid;gap:6px}
.bd-empty-title{font-size:14.5px;font-weight:700;color:var(--ink)}
.bd-empty-sub{font-size:13px;color:var(--ink-3)}
.bd-empty-sub a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}

/* 페이저 */
.bd-pager{display:flex;justify-content:center;align-items:center;gap:4px;margin:12px 0 0;font-variant-numeric:tabular-nums}
.bd-page{min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-s);background:var(--card);padding:0 8px}
.bd-page:hover{border-color:var(--line-2);color:var(--brand)}
.bd-page.is-current{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.bd-page--arrow{color:var(--ink-3)}

/* 버튼 */
:is(.bd-write-btn,.tb-write-btn,.tb-follow-btn,.auth-submit,.my-submit,.bw-submit,.tb-submit,.art-cta-btn,.save-button,.sd-ask-btn){
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:var(--r-s);
  min-height:38px;padding:8px 14px;font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:none;
  font-family:inherit;text-align:center
}
:is(.bd-write-btn,.tb-write-btn,.tb-follow-btn,.auth-submit,.my-submit,.tb-submit,.art-cta-btn,.save-button):hover{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
:is(.bd-write-btn--ghost,.tb-cancel){background:var(--card);color:var(--ink-2);border:1px solid var(--line-2);display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 14px;font-size:13.5px;font-weight:600;border-radius:var(--r-s)}
:is(.bd-write-btn--ghost,.tb-cancel):hover{background:var(--paper-deep);color:var(--ink)}
:is(.tb-follow-btn.is-joined,.save-button.on){background:var(--paper-deep);color:var(--brand);border-color:var(--line-2)}
:is(.tb-follow-btn.is-joined,.save-button.on):hover{background:var(--line);color:var(--brand)}
.auth-submit,.my-submit{width:100%}

/* 글 상세 */
.board-view>.wrap,.board-write>.wrap{max-width:860px}
.bv-article{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:18px}
.bv-head{border-bottom:1px solid var(--line);padding-bottom:13px;display:grid;gap:8px}
.bv-head-top{display:flex;gap:6px;flex-wrap:wrap}
.bv-title{font-size:21px;font-weight:700;letter-spacing:-.025em;line-height:1.4;color:var(--ink);margin:0}
.bv-meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.bv-dot{color:var(--line-2)}
.bv-body{font-size:16px;line-height:1.85;color:var(--ink);padding:16px 0;overflow-wrap:anywhere}
.bv-body p{margin:0 0 14px}
.bv-body :is(img){max-width:100%;height:auto;border-radius:var(--r-m);display:block;margin:14px auto}
.bv-body pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper-deep);padding:12px;border-radius:var(--r-s)}
.bv-body :is(ul,ol){margin:0 0 14px;padding-left:22px}
.bv-tools{display:flex;gap:6px;flex-wrap:wrap;padding-top:13px;border-top:1px solid var(--line)}
.bv-tool-btn{font-size:12.5px;color:var(--ink-2);background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-s);padding:6px 11px;min-height:34px;cursor:pointer;font-family:inherit}
.bv-tool-btn:hover{background:var(--paper-deep);color:var(--ink)}
.bv-tool-danger{color:var(--terra);border-color:#e5484d4d}
.bv-tool-danger:hover{background:var(--hot-tint);color:var(--terra-d)}
.bv-related{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:14px;margin-top:12px}
.bv-related-title{font-size:12.5px;font-weight:700;color:var(--ink);margin:0 0 9px}
.bv-related-list{display:grid}
.bv-related-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.bv-related-item:last-child{border-bottom:0}
.bv-related-item b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bv-related-item:hover b{color:var(--brand)}

/* 글쓰기 */
.bw-form,.tb-form{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;display:grid;gap:16px}
.bw-field,.tb-field{display:grid;gap:6px;min-width:0}
.bw-label,.tb-label{font-size:12.5px;font-weight:700;color:var(--ink)}
.bw-req{color:var(--terra);font-style:normal}
.bw-opt{font-style:normal;font-weight:400;font-size:11.5px;color:var(--ink-3)}
:is(.bw-input,.bw-textarea,.tb-input,.tb-textarea,.tb-select,.auth-input,.my-input,.my-textarea,.request-form input,.request-form textarea,.checkin-form select,.st-mag-filter select){
  border:1px solid var(--line-2);background:var(--card);border-radius:var(--r-s);
  padding:9px 11px;color:var(--ink);width:100%;font-size:16px
}
:is(.bw-input,.bw-textarea,.tb-input,.tb-textarea,.tb-select,.auth-input,.request-form input,.request-form textarea):focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 2px var(--brand-tint)}
:is(.bw-textarea,.tb-textarea){min-height:220px;line-height:1.7;resize:vertical}
.bw-hint,.tb-hint{font-size:11.5px;color:var(--ink-3);line-height:1.6}
.bw-hint b,.tb-hint b{color:var(--ink-2)}
.bw-cat-row{display:flex;gap:6px;flex-wrap:wrap}
.bw-cat{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:var(--r-s);padding:7px 11px;font-size:13px;cursor:pointer;background:var(--card);min-height:36px}
.bw-cat:has(input:checked){border-color:var(--brand);background:var(--brand-tint);color:var(--brand);font-weight:700}
.bw-cat input{accent-color:var(--brand)}
.bw-pick-btn{justify-self:start;background:var(--card);color:var(--ink-2);border:1px solid var(--line-2);border-radius:var(--r-s);padding:8px 13px;font-size:13px;cursor:pointer;min-height:36px;font-family:inherit}
.bw-pick-btn:hover{background:var(--paper-deep)}
.bw-images{display:flex;gap:8px;flex-wrap:wrap}
.bw-rules{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;font-size:12.5px;color:var(--ink-2);line-height:1.7}
.bw-rules b{display:block;color:var(--ink);margin-bottom:5px;font-size:12.5px}
.bw-rules ul{margin:0;padding-left:18px;display:grid;gap:4px}
.bw-actions,.tb-form-actions,.bw-gate-actions{display:flex;gap:7px;flex-wrap:wrap}
.tb-form-actions{justify-content:flex-end}
.bw-gate{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:22px;display:grid;gap:10px;text-align:left}
.bw-gate h1{font-size:20px;font-weight:700;letter-spacing:-.025em;line-height:1.4}
.bw-gate-lead{font-size:13.5px;color:var(--ink-2);line-height:1.7}
.bw-gate-status{background:var(--paper-deep);border-radius:var(--r-s);padding:11px 13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.bw-gate-status em{font-style:normal;color:var(--ink-3);font-size:11.5px}
.bw-gate-memo{width:100%;margin:4px 0 0;font-size:12.5px;color:var(--ink-2)}
.bw-gate-pill,.mb-pill,.mb-hidden-pill,.tb-joined-tag,.tb-tag,.tb-mgr-tag{display:inline-block;font-size:10.5px;font-weight:700;border-radius:3px;padding:2px 7px;background:var(--paper-deep);color:var(--ink-2);white-space:nowrap}
.bw-gate-pill--new,.mb-pill--new{background:var(--brand-tint);color:var(--brand)}
.bw-gate-pill--rejected,.mb-pill--rejected{background:var(--hot-tint);color:var(--terra)}
.mb-pill--on{background:#1d6b4f14;color:var(--ok)}
.mb-hidden-pill{background:var(--hot-tint);color:var(--terra)}

/* =================================================================
   주제 게시판 (tb-*)
   ================================================================= */
/* soomter-topic-board.css 가 자기 토큰을 하드코딩하므로 여기서 다시 잡는다. */
.tb-page{--tb-gold:var(--brand);--tb-ink:var(--ink);--tb-sub:var(--ink-3);--tb-line:var(--line);--tb-bg:var(--card)}
.tb-section-title{font-size:13px;font-weight:700;color:var(--ink);margin:14px 0 8px}
.tb-grid{display:grid;grid-template-columns:1fr;gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.tb-card{position:relative;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 13px;display:grid;gap:5px;min-width:0;box-shadow:none;transform:none}
.tb-card:last-child{border-bottom:0}
.tb-card:hover{background:var(--paper-2);transform:none;box-shadow:none;border-color:var(--line)}
.tb-card-link{position:absolute;inset:0;z-index:1}
.tb-card-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap;position:relative;z-index:2;pointer-events:none}
.tb-card-name{font-size:15.5px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0}
.tb-card-desc{font-size:12.5px;color:var(--ink-2);line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tb-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;position:relative;z-index:2;margin-top:2px}
.tb-card-stats{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;pointer-events:none}
.tb-card-stats b{color:var(--ink-2);font-weight:700}
.tb-card-foot .tb-follow-btn{min-height:32px;padding:5px 12px;font-size:12px}
.tb-joined-tag{background:var(--brand-tint);color:var(--brand)}
.tb-board-head-main{display:grid;gap:7px;min-width:0}
.tb-board-meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.tb-board-meta b{color:var(--ink-2);font-weight:700}
.tb-mgr-tag{background:var(--brand-tint);color:var(--brand)}
.tb-board-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:2px}
.tb-write-hint{font-size:12px;color:var(--ink-3)}
.tb-write-hint a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.tb-tag{background:var(--brand-tint);color:var(--brand);margin-right:5px}

/* =================================================================
   매거진 목록 · 상세 (mag-* / art-*)
   ================================================================= */
.st-mag-filter{margin:0 0 12px}
.st-mag-filter label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12.5px;color:var(--ink-2)}
.st-mag-filter select{max-width:260px;width:auto}
.st-mag-filter button{background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:var(--r-s);padding:8px 13px;font-size:13px;font-weight:700;min-height:36px;cursor:pointer;font-family:inherit}
.st-mag-filter button:hover{background:var(--brand-d)}

.mag-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}
.mag-card{display:grid;grid-template-columns:104px 1fr;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;position:relative;transform:none;box-shadow:none}
.mag-card:hover{border-color:var(--line-2);transform:none;box-shadow:var(--shadow-s)}
.mag-card-cover{width:100%;height:100%;min-height:86px;object-fit:cover;display:block;background-color:var(--paper-deep);aspect-ratio:auto}
.mag-card-body{padding:11px 13px;display:grid;gap:4px;align-content:center;min-width:0}
.mag-card-cat{font-size:10.5px;letter-spacing:.06em;color:var(--brand);font-weight:700}
.mag-card-title{font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0;line-height:1.4}
.mag-card-sum{font-size:12.5px;color:var(--ink-2);margin:0;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mag-card-date{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.mag-card-ph{display:grid;place-items:center;background:var(--paper-deep);color:var(--ink-3);font-size:11px;font-weight:700;letter-spacing:.04em;min-height:86px}
.mag-empty{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);text-align:center;color:var(--ink-3);padding:36px 16px;font-size:13px}

.art-wrap>.art,.art-related,.art-back-wrap{max-width:760px;margin-inline:auto}
.art{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:20px}
.art-head{display:grid;gap:8px;text-align:left;margin:0 0 16px;background:none;min-height:0;border-radius:0;box-shadow:none;overflow:visible;padding:0}
.art-head.has-cover{position:static;display:grid;padding:0;background:none;box-shadow:none;min-height:0;border-radius:0}
.art-head-cover-img{position:static;order:4;width:100%;height:auto;max-height:420px;object-fit:cover;border-radius:var(--r-m);margin-top:12px;display:block;background:var(--paper-deep)}
.art-head-cover-overlay{display:none}
.art-head.has-cover :is(.art-cat,.art-title,.art-meta){color:inherit;text-shadow:none;margin:0}
.art-cat{display:inline-block;justify-self:start;font-size:11px;letter-spacing:.06em;color:var(--brand);font-weight:700;margin:0}
.art-head.has-cover .art-cat{color:var(--brand)}
.art-title{font-family:var(--sans);font-size:23px;font-weight:700;letter-spacing:-.025em;line-height:1.4;color:var(--ink);margin:0}
.art-head.has-cover .art-title{color:var(--ink)}
.art-meta{font-size:11.5px;color:var(--ink-3);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.art-head.has-cover .art-meta{color:var(--ink-3)}
.art-dot{margin:0;color:var(--line-2)}
.article-save-box{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--paper-deep);border-radius:var(--r-s);padding:10px 13px;font-size:12.5px;color:var(--ink-2);margin:0 0 16px}
.article-save-box .save-button{min-height:34px;padding:6px 12px;font-size:12.5px}
.art-summary{background:var(--paper-deep);border:0;border-left:3px solid var(--brand);border-radius:0 var(--r-s) var(--r-s) 0;color:var(--ink-2);font-size:14.5px;line-height:1.75;padding:13px 15px;margin:0 0 20px;font-weight:400}
.art-body{font-size:16px;line-height:1.9;color:var(--ink)}
.art-body h2{font-family:var(--sans);font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:30px 0 11px}
.art-body h3{font-size:16.5px;font-weight:600;color:var(--ink);margin:22px 0 9px}
.art-body p{margin:0 0 16px}
.art-body :is(ul,ol){margin:0 0 16px;padding-left:22px}
.art-body li{margin:0 0 7px}
.art-body a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.art-body img{max-width:100%;height:auto;border-radius:var(--r-m);margin:16px auto;display:block}
.art-body figure{margin:22px 0}
.art-body figcaption{margin-top:7px;text-align:center;color:var(--ink-3);font-size:12px}
.art-body blockquote{margin:18px 0;padding:12px 16px;background:var(--paper-deep);border-left:3px solid var(--line-2);border-radius:0 var(--r-s) var(--r-s) 0;color:var(--ink-2)}
.art-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
.art-cta{margin:28px 0 0;padding:16px;background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-m);display:grid;gap:9px;justify-items:start;text-align:left;box-shadow:none}
.art-cta-label{font-size:12.5px;color:var(--ink-2);margin:0;letter-spacing:0}
.art-cta-btn{font-size:13.5px;padding:9px 16px;max-width:100%;white-space:normal}
.art-related{padding-top:22px;margin-top:26px;border-top:1px solid var(--line)}
.art-related-title{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--ink);margin:0 0 10px}
.art-related-list{list-style:none;padding:0;margin:0;display:grid}
.art-related-list li{border-bottom:1px solid var(--line)}
.art-related-list li:last-child{border-bottom:0}
.art-related-list a{display:block;padding:8px 0;font-size:14px;color:var(--ink-2)}
.art-related-list a:hover{color:var(--brand)}
.art-back-wrap{margin-top:20px;text-align:center}
.art-back-link{font-size:12.5px;color:var(--ink-3)}
.art-back-link:hover{color:var(--brand)}

/* =================================================================
   로그인 · 가입 (auth-*)
   ================================================================= */
.auth-wrap{max-width:480px;padding-top:26px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:24px;display:grid;gap:11px;box-shadow:none}
.auth-title{font-size:21px;font-weight:700;letter-spacing:-.025em;color:var(--ink);margin:0}
.auth-lead{font-size:13px;color:var(--ink-2);margin:0}
.auth-form{display:grid;gap:13px;margin-top:4px}
.auth-field{display:grid;gap:5px}
.auth-field label{font-size:12.5px;font-weight:600;color:var(--ink)}
.auth-help,.auth-match{font-size:11.5px;color:var(--ink-3)}
.auth-match.ok{color:var(--ok)}
.auth-match.bad{color:var(--terra)}
.auth-mini-links{display:flex;gap:8px;justify-content:center;font-size:12.5px;color:var(--ink-3);margin-top:2px}
.auth-mini-links a{color:var(--ink-2)}
.auth-mini-links a:hover{color:var(--brand)}
.auth-switch{font-size:12.5px;color:var(--ink-3);text-align:center;margin:0;padding-top:11px;border-top:1px solid var(--line)}
.auth-switch a{color:var(--brand);font-weight:700}
.captcha-row,.captcha-field{display:grid;gap:6px}
.captcha-question{font-weight:700;font-size:13px}

/* =================================================================
   마이결혼준비라운지 (my-* / mb-* / 기타)
   ================================================================= */
.my-wrap{max-width:var(--max)}
.my-hero{grid-template-columns:1fr;gap:12px}
.my-hero-copy{display:grid;gap:6px}
.my-hero h1{font-size:19px}
.my-hero p{font-size:13px;color:var(--ink-2)}
.my-level-card{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-s);padding:13px;display:grid;gap:8px;color:var(--ink)}
.my-level-top{display:flex;align-items:center;gap:9px}
.my-level-emoji{font-size:20px}
.my-level-top b{font-size:13.5px;font-weight:700;display:block}
.my-level-top span{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.my-progress{height:5px;background:var(--line);border-radius:99px;overflow:hidden}
.my-progress span{display:block;height:100%;background:var(--brand);border-radius:99px}
.my-progress-copy{font-size:11.5px;color:var(--ink-3);margin:0}
.my-visit{border-radius:var(--r-m)!important;box-shadow:none!important;background:var(--card)!important;border:1px solid var(--line)!important}
.my-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:0 0 12px}
.my-grid>*{min-width:0}
.my-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:14px 15px;display:grid;gap:9px;align-content:start;box-shadow:none}
.my-card-head{display:grid;gap:4px}
.my-card-head strong{font-size:14.5px;font-weight:700}
.my-card-copy,.my-mini-copy{font-size:12.5px;color:var(--ink-3);margin:0}
.my-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-bottom:9px;border-bottom:1px solid var(--line)}
.my-section-title h2{font-size:14.5px;font-weight:700}
.my-section-title a{font-size:11.5px;color:var(--ink-3)}
.my-section-title a:hover{color:var(--brand)}
.stamp-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.stamp-day{display:grid;gap:3px;justify-items:center;padding:6px 2px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--card);font-size:10.5px;color:var(--ink-3)}
.stamp-day b{font-size:13px;color:var(--line-2)}
.stamp-day.on{background:var(--brand-tint);border-color:#2f54eb54}
.stamp-day.on b{color:var(--brand)}
.stamp-day.today{border-color:var(--brand)}
.checkin-form{display:flex;gap:6px;flex-wrap:wrap}
.checkin-form select{flex:1;min-width:150px}
.checkin-form button{background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:var(--r-s);padding:8px 13px;font-size:13px;font-weight:700;cursor:pointer;min-height:38px;font-family:inherit}
.checkin-form button:disabled{background:var(--paper-deep);border-color:var(--line-2);color:var(--ink-3);cursor:default}
.stat-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.stat-row:last-of-type{border-bottom:0}
.stat-row b{color:var(--brand);font-weight:700;font-variant-numeric:tabular-nums}
.mission-list{list-style:none;margin:0;padding:0;display:grid}
.mission-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.mission-list li:last-child{border-bottom:0}
.mission-list li b{font-size:11.5px;color:var(--ink-3);font-weight:700}
.mission-list li.done{color:var(--ink-3)}
.mission-list li.done b{color:var(--ok)}
.empty-soft{background:var(--paper-deep);border-radius:var(--r-s);padding:16px;font-size:12.5px;color:var(--ink-3);text-align:center;box-shadow:none;border:0}
.saved-list,.suggest-list{display:grid}
.saved-item,.suggest-item{display:block;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink-2)}
.saved-item:last-child,.suggest-item:last-child{border-bottom:0}
.saved-item:hover,.suggest-item:hover{color:var(--brand)}
.suggest-item b{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}
.suggest-item em{display:block;font-style:normal;font-size:11.5px;color:var(--ink-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mag-saved-list{display:grid}
.mag-saved-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.mag-saved-item:last-child{border-bottom:0}
.mag-saved-item a{display:grid;gap:2px;min-width:0}
.mag-saved-item span{font-size:10.5px;color:var(--brand);font-weight:700}
.mag-saved-item b{font-size:13.5px;font-weight:600;color:var(--ink)}
.mag-saved-item em{font-style:normal;font-size:11.5px;color:var(--ink-3)}
.mini-remove{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-s);padding:5px 10px;font-size:11.5px;color:var(--ink-3);cursor:pointer;min-height:30px;font-family:inherit}
.mini-remove:hover{color:var(--terra);border-color:#e5484d4d}
.request-form{display:grid;gap:10px}
.request-form label{display:grid;gap:5px}
.request-form label span{font-size:12.5px;font-weight:600;color:var(--ink)}
.request-form textarea{min-height:90px;line-height:1.65;resize:vertical}
.request-form button{justify-self:start;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:var(--r-s);padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;min-height:38px;font-family:inherit}
.request-form button:hover{background:var(--brand-d)}
.request-history,.activity-box,.mb-posts{display:grid;gap:7px;padding-top:11px;border-top:1px solid var(--line)}
:is(.request-history,.activity-box,.mb-posts)>strong{font-size:12.5px;color:var(--ink)}
.request-entry{display:grid;gap:5px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.request-entry:last-child{border-bottom:0}
.request-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.request-row span{font-size:10.5px;font-weight:700;background:var(--paper-deep);border-radius:3px;padding:2px 7px;color:var(--ink-2)}
.request-row b{font-weight:600;color:var(--ink)}
.request-row em{font-style:normal;margin-left:auto;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.request-reply{background:var(--paper-deep);border-radius:var(--r-s);padding:9px 11px;display:grid;gap:4px}
.request-reply-label{font-size:10.5px;font-weight:700;color:var(--brand)}
.request-reply p{font-size:12.5px;color:var(--ink-2);margin:0;line-height:1.65}
.activity-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--ink-2);padding:5px 0;border-bottom:1px solid var(--line)}
.activity-row:last-child{border-bottom:0}
.activity-row em{font-style:normal;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.my-board{margin:0 0 12px}
.mb-status{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);line-height:1.65}
.mb-actions{display:flex;gap:7px;flex-wrap:wrap}
.mb-post-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line)}
.mb-post-row:last-child{border-bottom:0}
.mb-post-row a{color:var(--ink-2);min-width:0}
.mb-post-row a:hover{color:var(--brand)}
.mb-post-row em{font-style:normal;margin-left:auto;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* =================================================================
   약관 · 개인정보 (legal-*)
   terms.php / privacy.php 의 인라인 스타일보다 뒤에 오므로
   데스크 값으로 덮는다.
   ================================================================= */
.legal-wrap{max-width:820px;margin-inline:auto;padding:20px 16px 40px}
.legal-title{font-size:23px;font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.legal-meta{font-size:12px;color:var(--ink-3);margin-bottom:16px}
.legal-doc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:20px 22px;box-shadow:none}
.legal-doc h2{font-size:15.5px;font-weight:700;color:var(--ink);letter-spacing:-.015em;margin:22px 0 8px}
.legal-doc p,.legal-doc li{color:var(--ink-2);font-size:14px;line-height:1.75}
.legal-doc strong{color:var(--ink);font-weight:700}
.legal-doc .note{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;font-size:13px;color:var(--ink-2)}
.legal-summary{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px}
.legal-summary h3{font-size:14px;font-weight:700;color:var(--ink);margin:0 0 6px}
.legal-summary p{font-size:13px}
.legal-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;overflow-wrap:anywhere}
.legal-table th,.legal-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;color:var(--ink-2);vertical-align:top;line-height:1.6}
.legal-table th{background:var(--paper-deep);color:var(--ink);font-weight:700;white-space:normal}
.legal-back{margin-top:20px;text-align:center;font-size:13px}
.legal-back a{color:var(--brand);font-weight:700}

/* 가입 동의 상자 */
.auth-consent{border-radius:var(--r-s)!important;background:var(--paper-deep)!important;border-color:var(--line)!important}
.auth-consent a,.auth-consent .req{color:var(--brand)!important}
.auth-consent input[type=checkbox]{accent-color:var(--brand)}

/* =================================================================
   댓글·반응 층 (sc-*) — soomter-community.css 를 그대로 쓰고
   모서리와 그림자만 데스크에 맞춘다. 색은 위의 토큰을 따라온다.
   ================================================================= */
:is(.sc-comments,.sc-reactions,.sc-composer-locked,.sc-comment,.sc-btn,.sc-composer-input,.sc-vote,.sc-react,.sc-chip){box-shadow:none!important}
.sc-comments,.sc-reactions{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);margin-top:12px;padding:14px}
.sc-comments-title{font-size:13px;font-weight:700}
.sc-comments-notice{font-size:11.5px;color:var(--ink-3)}
.sc-captcha{flex-wrap:wrap;max-width:100%;gap:7px}
.sc-captcha input{min-width:0;max-width:100%}
.sc-captcha img{max-width:100%}
:is(.sc-btn,.sc-composer-input,.sc-reply-input,.sc-edit-input,.sc-captcha-a){border-radius:var(--r-s)}
.sc-btn-solid{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}
.sc-btn-solid:hover{background:var(--brand-d);border-color:var(--brand-d)}
.captcha-img{border:1px solid var(--line-2);border-radius:var(--r-s);background:#fff}
.captcha-reload{border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--paper-deep);color:var(--brand);cursor:pointer}
.captcha-reload:hover{color:var(--brand-d)}

/* 카페 시절 리뷰 묶음 (cbr-*) — 남아 있는 경우에만 쓰인다 */
.cbr-list{display:grid;gap:8px}
.cbr-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:12px}
.cbr-title{font-size:14px;font-weight:600;color:var(--ink)}
.cbr-meta{font-size:11.5px;color:var(--ink-3)}
.cbr-empty{background:var(--paper-deep);border-radius:var(--r-s);padding:14px;font-size:12.5px;color:var(--ink-3);text-align:center}
.cbr-cta,.cbr-more{font-size:12.5px;color:var(--brand)}

/* 옛 st-* 홈 컴포넌트 — topic.php 등에서 아직 쓰인다 */
.st-main{padding:14px 0 8px}
.st-section{display:grid;gap:10px;margin-bottom:14px}
.st-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--brand);text-transform:uppercase}
.st-main h1{font-size:21px;font-weight:700;letter-spacing:-.025em}
.st-topic-grid{display:grid;grid-template-columns:1fr;gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.st-topic-card{display:grid;gap:4px;padding:12px 13px;border-bottom:1px solid var(--line)}
.st-topic-card:last-child{border-bottom:0}
.st-topic-card:hover{background:var(--paper-2)}
.st-topic-card h2,.st-topic-card h3{font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.st-topic-card p{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.st-topic-card span{font-size:11.5px;color:var(--brand);font-weight:700}
.st-topic-symbol,.st-topic-number{display:none}
.st-empty{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:26px;text-align:center;color:var(--ink-3);font-size:13px}
.st-button{display:inline-flex;align-items:center;gap:7px;background:var(--brand);color:#fff;border-radius:var(--r-s);min-height:38px;padding:8px 14px;font-size:13.5px;font-weight:700}
.st-button:hover{background:var(--brand-d);color:#fff}

/* =================================================================
   반응형
   ================================================================= */
@media (min-width:700px){
  /* 흰 머리띠는 700px 이상에서만 상단에 고정한다. 699px 이하는 하단 고정
     메뉴가 이미 화면을 쓰고 있어 위아래 두 줄을 동시에 물리지 않는다. */
  .st-header{position:sticky;top:0;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.5) blur(12px);backdrop-filter:saturate(1.5) blur(12px)}
  /* 댓글 앵커(#comment-…)로 들어올 때 머리띠 밑에 숨지 않게 한다. */
  html{scroll-padding-top:calc(var(--hd-h) + 14px)}
  .st-primary-nav{display:flex}
  .sd-ask h2{font-size:19px}
  .bd-item{grid-template-columns:1fr auto;align-items:center}
  .sd-prow{grid-template-columns:auto 1fr auto;align-items:center}
  .sd-prow-m{grid-column:3;justify-content:flex-end}
  .sd-rank{grid-template-columns:22px 1fr auto auto;gap:9px}
  .sd-rank-m{grid-column:auto;justify-content:flex-end}
  .mag-grid{grid-template-columns:1fr 1fr}
  .my-hero{grid-template-columns:1.4fr 1fr;align-items:center}
  .my-grid.top-grid{grid-template-columns:repeat(3,1fr)}
  .my-grid.content-grid,.my-grid.lower-grid{grid-template-columns:1fr 1fr}
  .tb-grid{grid-template-columns:1fr 1fr}
  .tb-card{border-right:1px solid var(--line)}
  .tb-card:nth-child(2n){border-right:0}
  .art-title{font-size:27px}
  .bv-title{font-size:24px}
  .legal-title{font-size:27px}
}
@media (min-width:1000px){
  .sd-cols{grid-template-columns:176px minmax(0,1fr) 192px;gap:16px}
  .mag-grid{grid-template-columns:repeat(3,1fr)}
  .tb-grid{grid-template-columns:repeat(3,1fr)}
  .tb-card:nth-child(2n){border-right:1px solid var(--line)}
  .tb-card:nth-child(3n){border-right:0}
  /* 우측 레일은 스크롤을 따라간다. 광고가 체류 중 계속 보인다.
     머리띠가 고정이므로 그 높이만큼 내려서 밑으로 파고들지 않게 한다. */
  .sd-cols>.sd-rail-r{position:sticky;top:calc(var(--hd-h) + 12px)}
}
@media (max-width:999px){
  /* 좁은 폭에서는 글 목록을 먼저 보여주고 주제·매거진을 아래로 내린다.
     1000px 이상에서는 이 규칙 자체가 적용되지 않으므로 3열 순서가 그대로다. */
  .sd-cols>.sd-center{order:1}
  .sd-cols>.sd-rail-l{order:2}
  .sd-cols>.sd-rail-r{order:3}
}
@media (max-width:1439px){
  /* 좁은 폭에서는 윙을 감추고 본문 흐름의 가로 배너만 남긴다. */
  .st-ad-home_left,.st-ad-home_right{display:none}
}
@media (min-width:1440px){
  /* 윙: 본문(1040px) 밖 양쪽. 화면을 따라 고정된다. */
  .sd-main>.st-ad-region{margin:0}
  .st-ad-home_mobile{display:none}
  .st-ad-home_left,.st-ad-home_right{display:block;position:fixed;top:70px;width:150px;z-index:10}
  .st-ad-home_left{right:calc(50% + 540px)}
  .st-ad-home_right{left:calc(50% + 540px)}
  .st-ad-home_left img,.st-ad-home_right img{max-height:calc(100dvh - 110px);width:100%;object-fit:contain}
  [data-ad-kind=home]{margin:0}
}
@media (max-width:699px){
  body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  .wrap{width:calc(100% - 24px)}
  .st-header-inner{gap:10px;min-height:48px}
  .st-brand{padding:0}
  .st-brand img{width:80px;height:29px}
  .st-account{font-size:12px;gap:7px}
  .sd-ask{padding:12px}
  .sd-ask h2{font-size:16px}
  .sd-ask-form{grid-template-columns:minmax(0,1fr)}
  .sd-ask-input,.sd-ask-btn{width:100%;min-width:0;max-width:100%;min-height:44px;box-sizing:border-box}
  .sd-ask-btn{white-space:normal;overflow-wrap:anywhere}
  .sd-rank{padding:9px 12px}
  /* 배지 칸을 고정해 제목 시작선을 맞춘다. */
  .sd-prow{padding:10px 12px;grid-template-columns:96px minmax(0,1fr)}
  .sd-prow-t{font-size:14.5px}
  .sd-badge{max-width:100%}
  .bd-item{padding:12px}
  .bd-item-title{font-size:15px}
  .bd-item-thumb{max-width:64px;align-self:start}
  .bd-head{grid-template-columns:1fr}
  .bv-article,.bw-form,.tb-form,.art,.auth-card{padding:15px 14px}
  .bv-title{font-size:19px}
  .art-title{font-size:20px}
  .bv-body,.art-body{font-size:15.5px}
  .mag-card{grid-template-columns:84px 1fr}
  .legal-doc{padding:16px 15px}
  .legal-title{font-size:21px}
  .my-grid{gap:10px}
  .stamp-week{gap:3px}
  .request-row em,.mb-post-row em,.activity-row em{margin-left:0}
  .st-footer{margin-top:18px;padding:16px 0}
  .st-footer nav a{padding-block:6px}
  /* 하단 고정 메뉴 — 한 손으로 주제를 옮겨 다닐 수 있게 남긴다. */
  .st-mobile-nav{
    display:flex;align-items:center;justify-content:space-around;
    position:fixed;bottom:0;left:0;right:0;z-index:40;
    background:var(--card);border-top:1px solid var(--line);
    padding:3px 6px calc(3px + env(safe-area-inset-bottom));gap:3px
  }
  .st-mobile-nav a{min-height:48px;min-width:44px;flex:1;text-align:center;font-size:10.5px;color:var(--ink-3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
  .st-mobile-nav span{font-size:16px;line-height:1.1}
  .st-mobile-nav a[aria-current=page]{color:var(--brand);font-weight:700}
}
@media (max-width:389px){
  .sd-badge{max-width:88px}
  .bd-item-thumb{max-width:56px}
  .mag-card{grid-template-columns:1fr}
  .mag-card-cover,.mag-card-ph{aspect-ratio:16/9;min-height:0;height:auto}
  .st-account .st-signup{padding:4px 8px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media print{
  .st-header,.st-footer,.st-mobile-nav,.st-ad-region,.bv-tools,.sd-ask{display:none!important}
  body{background:#fff}
}

/* =================================================================
   soomter-topic-board.css 와의 우선순위 정리
   그 파일은 desk.css 보다 먼저 실려서 대부분 여기서 덮이지만,
   아래 세 선택자는 특이도가 높아 따로 잡아 준다.
   ================================================================= */
.tb-page .tb-board-actions .tb-follow-btn{font-size:13.5px;padding:8px 14px;border-radius:var(--r-s)}
.tb-page .tb-follow-btn.is-joined{background:var(--paper-deep);color:var(--brand);border-color:var(--line-2)}
.tb-page .tb-follow-btn.is-joined:hover{background:var(--hot-tint);color:var(--terra);border-color:#e5484d4d}
.tb-page .tb-board-head .tb-board-desc{margin:0;color:var(--ink-2);font-size:13px;line-height:1.65}
.tb-page .tb-card-link{border-radius:0}

/* 아이디·비밀번호 찾기 화면의 잔여 요소 */
.captcha-input{border:1px solid var(--line-2);background:var(--card);border-radius:var(--r-s);padding:9px 11px;width:100%;color:var(--ink)}
.captcha-input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 2px var(--brand-tint)}
.found-list{display:grid;gap:6px;background:var(--paper-deep);border-radius:var(--r-s);padding:12px 14px;font-size:13.5px;color:var(--ink-2);margin:0}
.found-list b{color:var(--ink);font-weight:700}
