/* [새 사이트] 테마 CSS — 구해줘쌤즈 구조 기준, 자체 작성. 색은 :root 변수 + 팔레트 3안. 빌드 도구 없이 이 파일 하나. */
:root {
  --sw-primary: #2563eb; --sw-primary-dark: #1d4ed8; --sw-primary-soft: #e8efff; --sw-accent: #f59e0b; --sw-accent-soft: #fff3c4;
  --sw-text: #1f2937; --sw-muted: #6b7280; --sw-line: #e5e7eb; --sw-line-dark: #cbd5e1; --sw-bg: #f4f5f9; --sw-card: #fff; --sw-danger: #dc2626; --sw-dark: #111827;
  --sw-radius: 14px; --sw-wrap: 1312px; --sw-wrap-side: 1672px;   /* 내용 폭 1280px(+여백 32) — 구해줘쌤즈와 같음. 양옆 배너가 있는 화면은 160px×2 + 간격을 더해 1672px */ --sw-shadow: 0 1px 2px rgba(17,24,39,.05); --sw-shadow-hover: 0 10px 24px rgba(17,24,39,.10);
}
body.sw-palette-a { --sw-primary: #2563eb; --sw-primary-dark: #1d4ed8; --sw-primary-soft: #e8efff; --sw-accent: #f59e0b; }
body.sw-palette-b { --sw-primary: #0f9d8a; --sw-primary-dark: #0b7d6e; --sw-primary-soft: #e3f6f2; --sw-accent: #f97316; }
body.sw-palette-c { --sw-primary: #7c3aed; --sw-primary-dark: #6d28d9; --sw-primary-soft: #f1e9ff; --sw-accent: #f43f5e; }

/* ---------- 그누보드 기본 CSS(css/default.css)의 고정 폭 해제 — 휴대폰에서 가로로 넘치는 원인 ---------- */
#hd, #wrapper, #ft { min-width: 0; }
#container_wr, #ft_wr, #ft_copy, #hd_pop, #hd_wrapper { width: auto; }
#container { float: none; width: auto; min-height: 0; margin: 0; height: auto; }
#container:after, #container_wr:after { display: none; }

/* ---------- 기본 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--sw-bg); color: var(--sw-text); font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif; font-weight: 500; font-size: 15px; line-height: 1.55; word-break: keep-all; overflow-wrap: anywhere; overflow-x: hidden; }
body.sw-noscroll { overflow: hidden; }
h1, h2, h3, h4 { font-weight: 700; letter-spacing: -0.2px; margin: 0; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font-family: inherit; font-weight: 500; color: inherit; font-size: inherit; }
button { cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
.sw-wrap { max-width: var(--sw-wrap); margin: 0 auto; padding: 0 16px; min-width: 0; }
.sound_only, #skip_to_container a { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
#hd_login_msg, #hd_pop:empty { display: none; }
#hd_pop h2 { position: absolute; left: -9999px; }
:focus-visible { outline: 3px solid var(--sw-primary-soft); outline-offset: 1px; }

/* ---------- 버튼 ---------- */
.sw-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 18px; border-radius: 10px; border: 1px solid var(--sw-line-dark); background: #fff; color: var(--sw-text); font-size: 15px; font-weight: 600; line-height: 1.2; cursor: pointer; white-space: nowrap; text-align: center; transition: background .12s, border-color .12s, transform .08s, box-shadow .12s; box-shadow: var(--sw-shadow); }
.sw-btn:hover { background: #f8fafc; border-color: #9ca3af; }
.sw-btn:active { transform: translateY(1px); }
.sw-btn-primary { background: var(--sw-primary); border-color: var(--sw-primary); color: #fff; box-shadow: 0 2px 6px rgba(37,99,235,.25); }
.sw-btn-primary:hover { background: var(--sw-primary-dark); border-color: var(--sw-primary-dark); }
.sw-btn-dark { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
.sw-btn-dark:hover { background: #000; }
.sw-btn-accent { background: var(--sw-accent-soft); border-color: #fde68a; color: #8a5a00; }
.sw-btn-outline { border-color: var(--sw-line-dark); }
.sw-btn-danger { color: var(--sw-danger); border-color: #fecaca; }
.sw-btn-danger:hover { background: #fef2f2; }
.sw-btn-sm { min-height: 36px; padding: 0 12px; font-size: 14px; border-radius: 8px; }
.sw-btn-lg { min-height: 52px; font-size: 16px; padding: 0 26px; border-radius: 12px; }
.sw-btn-block { display: flex; width: 100%; }
.sw-btn[disabled] { opacity: .5; cursor: default; }
.sw-pill { display: inline-flex; align-items: center; gap: 4px; padding: 7px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap; }
.sw-pill-accent { background: var(--sw-accent-soft); color: #8a5a00; }
.sw-pill-accent:hover { background: #ffe999; }

/* ---------- 상단 (로고줄 + 메뉴줄) ---------- */
#sw-hd { background: #fff; position: sticky; top: 0; z-index: 60; box-shadow: 0 1px 0 var(--sw-line); }
.sw-hd-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 64px; }
.sw-logo { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.sw-logo > img { height: 42px; width: auto; }
/* 캐릭터 배지 (둥근 네모 = "스퀘어" 모티프) */
.sw-logo-badge { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 14px; background: linear-gradient(140deg, #2563eb, #1e3a8a); box-shadow: 0 4px 10px rgba(30,58,138,.28), inset 0 1px 0 rgba(255,255,255,.25); display: inline-flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.sw-logo-badge::after { content: ""; position: absolute; right: -10px; top: -14px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.12); }
.sw-logo-mascot { width: 40px; height: 40px; flex: 0 0 40px; position: relative; z-index: 1; filter: drop-shadow(0 1px 1px rgba(0,0,0,.15)); }
.sw-logo-wm { display: flex; flex-direction: column; line-height: 1.02; }
.sw-logo-name { font-size: 23px; font-weight: 800; letter-spacing: -0.8px; color: var(--sw-dark); white-space: nowrap; }
.sw-logo-name em { font-style: normal; color: var(--sw-primary); }
.sw-logo-tag { font-size: 11px; font-weight: 600; color: var(--sw-muted); letter-spacing: -0.2px; margin-top: 2px; white-space: nowrap; }
.sw-mascot-sm { width: 30px; height: 30px; margin: -6px 2px -6px -6px; }
.sw-mascot-lg { width: 120px; height: 120px; display: block; margin: 0 auto 10px; }
.sw-hd-right { display: flex; align-items: center; gap: 8px; }
.sw-hd-user { display: inline-flex; align-items: center; gap: 5px; font-size: 14px; font-weight: 600; color: var(--sw-text); padding: 8px 10px; border-radius: 8px; white-space: nowrap; }
.sw-hd-user:hover { background: var(--sw-bg); }
.sw-hd-user.is-admin { color: var(--sw-primary-dark); }
.sw-hd-user.is-ads { color: #fff; background: linear-gradient(135deg, #2563eb, #7c3aed); }
.sw-hd-user.is-ads:hover, .sw-hd-user.is-ads.on { background: linear-gradient(135deg, #1d4ed8, #6d28d9); }
.sw-util-link.is-ads { color: var(--sw-primary); }
.sw-menu-btn { width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; font-size: 22px; color: var(--sw-dark); display: inline-flex; align-items: center; justify-content: center; }
.sw-menu-btn:hover { background: var(--sw-bg); }
.sw-hd-nav { border-top: 1px solid var(--sw-line); }
.sw-hd-nav-in { display: flex; align-items: center; gap: 12px; height: 50px; }
.sw-gnb-wrap { flex: 1; min-width: 0; position: relative; display: flex; align-items: center; }
.sw-gnb { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; position: relative; scroll-behavior: smooth; }
/* 메뉴가 넘칠 때 누르는 화살표 (JS 가 보이기/숨기기) */
.sw-gnb-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--sw-line); background: #fff; color: var(--sw-text); font-size: 16px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 8px rgba(17,24,39,.12); z-index: 2; padding: 0; }
.sw-gnb-arrow[hidden] { display: none; }
.sw-gnb-arrow.is-next { right: 0; } .sw-gnb-arrow.is-prev { left: 0; }
.sw-gnb-arrow:active { background: var(--sw-bg); }
.sw-gnb::-webkit-scrollbar { display: none; }
/* 휴대폰: 메뉴가 더 있으면 양끝을 흐리게 (잘린 게 아니라 넘길 수 있다는 표시) — JS 가 has-more / has-prev 를 켠다 */
.sw-gnb.has-more { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); }
.sw-gnb.has-prev { -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px); mask-image: linear-gradient(90deg, transparent, #000 32px); }
.sw-gnb.has-prev.has-more { -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 40px), transparent); }
.sw-gnb ul { display: flex; gap: 2px; }
.sw-gnb li a { display: block; padding: 10px 13px; font-size: 15px; font-weight: 700; color: var(--sw-text); border-radius: 8px; white-space: nowrap; }
.sw-gnb li a:hover { background: var(--sw-bg); }
.sw-gnb li.on a { color: var(--sw-primary); }
.sw-hd-util { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.sw-util-link { font-size: 14px; color: var(--sw-text); font-weight: 600; white-space: nowrap; }
.sw-util-link:hover { color: var(--sw-primary); }

/* 전체 메뉴 서랍 */
.sw-drawer { position: fixed; inset: 0; z-index: 100; }
.sw-drawer-bg { position: absolute; inset: 0; background: rgba(17,24,39,.45); }
.sw-drawer-panel { position: absolute; right: 0; top: 0; bottom: 0; width: min(340px, 86vw); background: #fff; overflow-y: auto; box-shadow: -8px 0 30px rgba(0,0,0,.15); animation: sw-slide .18s ease-out; }
@keyframes sw-slide { from { transform: translateX(30px); opacity: .6; } to { transform: none; opacity: 1; } }
.sw-drawer-head { display: flex; align-items: center; gap: 10px; padding: 14px 12px 14px 16px; background: linear-gradient(135deg, #0f172a, #1e3a8a); color: #fff; }
.sw-drawer-me { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; color: #fff; }
.sw-drawer-avatar { flex: none; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 2px rgba(255,255,255,.35); }
.sw-drawer-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-drawer-me-text { display: flex; flex-direction: column; min-width: 0; }
.sw-drawer-me-text b { font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-drawer-me-text small { color: #cbd5e1; font-size: 12px; }
.sw-drawer-guest { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sw-drawer-guest b { font-size: 15px; } .sw-drawer-guest small { color: #cbd5e1; font-size: 12px; }
.sw-drawer-close { flex: none; width: 36px; height: 36px; border: 0; background: rgba(255,255,255,.12); color: #fff; font-size: 18px; border-radius: 10px; cursor: pointer; }
.sw-drawer-close:hover { background: rgba(255,255,255,.22); }
.sw-drawer-quick { display: grid; grid-template-columns: repeat(4, 1fr); background: #1e293b; }
.sw-drawer-quick a { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 4px 10px; color: #e2e8f0; font-size: 12px; }
.sw-drawer-quick a i { font-size: 20px; color: #fde68a; }
.sw-drawer-quick a b { position: absolute; top: 6px; left: calc(50% + 6px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #ef4444; color: #fff; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; }
.sw-drawer-quick a:hover { background: rgba(255,255,255,.06); }
.sw-drawer-auth { display: flex; gap: 8px; padding: 12px 12px 4px; }
.sw-drawer-auth .sw-btn { flex: 1; height: 44px; }
.sw-drawer-cta { display: flex; gap: 8px; padding: 12px 12px 4px; flex-wrap: wrap; }
.sw-drawer-cta a { flex: 1 1 45%; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 44px; border-radius: 12px; font-weight: 700; font-size: 14px; background: var(--sw-bg); border: 1px solid var(--sw-line); color: var(--sw-text); }
.sw-drawer-cta a.is-primary { background: var(--sw-primary); border-color: var(--sw-primary); color: #fff; }
.sw-drawer-cta a.is-ads { background: #0f172a; border-color: #0f172a; color: #fde68a; }
.sw-drawer-sec { padding: 14px 16px 6px; }
.sw-drawer-sec small { font-size: 12px; font-weight: 700; color: var(--sw-muted); letter-spacing: .04em; }
.sw-drawer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 0 12px; }
.sw-drawer-grid a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 4px 10px; border-radius: 12px; background: var(--sw-bg); font-size: 13px; font-weight: 700; color: var(--sw-text); text-align: center; line-height: 1.2; }
.sw-drawer-grid a i { font-size: 20px; color: var(--sw-primary); }
.sw-drawer-grid a:hover { background: var(--sw-primary-soft); }
.sw-drawer-grid a.on { background: var(--sw-primary); color: #fff; } .sw-drawer-grid a.on i { color: #fff; }
.sw-drawer-grid a.is-accent { background: #fef3c7; color: #92400e; } .sw-drawer-grid a.is-accent i { color: #b45309; }
.sw-drawer-list { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 8px; padding: 0 12px; }
.sw-drawer-list li a { display: flex; align-items: center; gap: 8px; padding: 10px 8px; font-size: 14px; font-weight: 600; color: var(--sw-text); border-radius: 10px; }
.sw-drawer-list li a i { width: 18px; text-align: center; color: var(--sw-muted); }
.sw-drawer-list li a:hover { background: var(--sw-bg); }
.sw-drawer-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 14px 12px 20px; margin-top: 8px; border-top: 1px solid var(--sw-line); }
.sw-drawer-logout { margin-left: auto; font-size: 13px; color: var(--sw-muted); display: inline-flex; align-items: center; gap: 6px; padding: 8px; }
.sw-drawer-logout:hover { color: var(--sw-text); }

/* 관리자 ⚙ (화면 설정 모달) */
.sw-gear { width: 28px; height: 28px; border-radius: 50%; border: 1px dashed var(--sw-line-dark); background: #fff; color: var(--sw-muted); font-size: 13px; display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; margin-left: 2px; }
.sw-gear:hover { color: var(--sw-primary-dark); border-color: var(--sw-primary); }

/* 관리자 모달 (게시판 관리) */
.sw-admin-btn { border-style: dashed; color: var(--sw-muted); }
.sw-admin-btn:hover { color: var(--sw-primary-dark); border-color: var(--sw-primary); }
.sw-modal { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 16px; }
.sw-modal[hidden], .sw-drawer[hidden], [hidden] { display: none !important; }
.sw-modal-bg { position: absolute; inset: 0; background: rgba(17,24,39,.55); }
.sw-modal-box { position: relative; width: min(820px, 100%); height: min(88vh, 760px); background: #fff; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,.3); animation: sw-pop .16s ease-out; }
@keyframes sw-pop { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
.sw-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--sw-line); font-size: 15px; }
.sw-modal-close { width: 36px; height: 36px; border: 0; background: transparent; font-size: 18px; border-radius: 8px; }
.sw-modal-close:hover { background: var(--sw-bg); }
.sw-modal-box iframe { flex: 1; width: 100%; border: 0; }

/* 운영 모드 띠 */
.sw-mode-bar { background: var(--sw-primary-soft); color: var(--sw-primary-dark); font-size: 13px; font-weight: 700; text-align: center; padding: 8px 16px; }
.sw-mode-bar.is-maint { background: #fef3c7; color: #92400e; }

/* ---------- 띠광고 (옆으로 흐름) ---------- */
.sw-ticker { position: relative; color: #fff; overflow: hidden; height: 64px; background: #0f172a radial-gradient(rgba(255,255,255,.16) 1px, transparent 1.6px) 0 0 / 14px 14px; box-shadow: inset 0 -1px 0 rgba(255,255,255,.08); }
.sw-ticker::before, .sw-ticker::after { content: ""; position: absolute; top: 0; bottom: 0; width: 60px; z-index: 2; pointer-events: none; }
.sw-ticker::before { left: 0; background: linear-gradient(90deg, #0f172a, rgba(15,23,42,0)); }
.sw-ticker::after { right: 0; background: linear-gradient(270deg, #0f172a, rgba(15,23,42,0)); }
.sw-ticker-track { display: flex; align-items: center; gap: 36px; height: 64px; padding: 0 20px; width: max-content; animation: sw-ticker calc(var(--sw-ticker-n, 12) * 5s) linear infinite; }
.sw-ticker:hover .sw-ticker-track { animation-play-state: paused; }
@keyframes sw-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.sw-ticker-item { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.sw-ticker-thumb { width: 42px; height: 42px; border-radius: 50%; overflow: hidden; background: #374151; flex: 0 0 42px; border: 2px solid rgba(255,255,255,.25); }
.sw-ticker-thumb img, .sw-ticker-thumb .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; }
.sw-ticker-thumb .sw-shop-ini { width: 100% !important; height: 100% !important; font-size: 14px !important; display: flex; }   /* 머리글자 배지는 테두리 원을 꽉 채운다 */
.sw-bb-avatar .sw-shop-ini { width: 100% !important; height: 100% !important; display: flex; }
.sw-ticker-text b { display: block; font-size: 16px; font-weight: 800; color: #fde68a; letter-spacing: -0.2px; }
.sw-ticker-text small { color: #cbd5e1; font-size: 12px; font-weight: 600; }

/* ---------- 레이아웃 ---------- */
.sw-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 20px; padding-bottom: 48px; }
.sw-layout.has-side { grid-template-columns: 160px minmax(0, 1fr) 160px; max-width: var(--sw-wrap-side); }   /* 옆 배너는 1280 내용 바깥에 붙는다 (구해줘쌤즈 방식) */
.sw-side { display: flex; flex-direction: column; gap: 10px; position: sticky; top: 124px; align-self: start; }
.sw-banner { position: relative; flex: 0 0 auto; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--sw-line); box-shadow: var(--sw-shadow); }
.sw-banner img { display: block; width: 100%; }
.sw-banner-ad { position: absolute; left: 8px; top: 8px; font-size: 10px; font-weight: 800; padding: 2px 6px; border-radius: 4px; background: rgba(0,0,0,.55); color: #fff; z-index: 1; }
/* 배너가 없을 때 상단노출 구인 글로 자동 생성되는 세로 카드 */
.sw-banner.is-auto { display: flex; flex-direction: column; justify-content: flex-end; height: 300px; color: #fff; background: linear-gradient(170deg, hsl(var(--h), 62%, 48%), hsl(calc(var(--h) + 40), 70%, 30%)); border: 0; }
.sw-banner.is-auto::before { content: ""; position: absolute; width: 150px; height: 150px; border-radius: 50%; left: -40px; top: 20px; background: rgba(255,255,255,.14); }
.sw-banner.is-auto.has-img { justify-content: space-between; background: #111827; }
.sw-banner.is-auto img { position: relative; z-index: 1; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; margin-top: 32px; border-radius: 8px; }
.sw-banner.is-auto .sw-banner-ad { z-index: 2; }
.sw-banner.is-auto.has-img::before { display: none; }
.sw-banner.is-auto.has-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, hsla(var(--h), 60%, 45%, .35), rgba(0,0,0,.4)); }
.sw-banner.is-auto .sw-banner-ad { background: #facc15; color: #111; }
.sw-banner-auto-text { position: relative; z-index: 1; padding: 10px 12px 14px; text-shadow: 0 2px 8px rgba(0,0,0,.35); }
.sw-banner-auto-text b { display: block; font-size: 18px; font-weight: 900; letter-spacing: -0.5px; line-height: 1.2; }
.sw-banner-auto-text em { display: block; font-style: normal; font-size: 14px; font-weight: 800; color: #fde68a; margin-top: 5px; }
.sw-banner-auto-text small { display: block; font-size: 11px; font-weight: 600; opacity: .9; margin-top: 4px; }
.sw-banner.is-auto:hover { transform: translateY(-2px); box-shadow: var(--sw-shadow-hover); }
.sw-banner.is-ask { display: flex; align-items: center; justify-content: center; gap: 6px; height: 44px; font-size: 12px; font-weight: 700; color: var(--sw-muted); border: 1px dashed var(--sw-line-dark); }
.sw-banner.is-ask:hover { color: var(--sw-primary-dark); border-color: var(--sw-primary); }
.sw-main { min-width: 0; }
.sw-page-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.sw-page-head.is-view { margin-bottom: 10px; }
.sw-page-title { font-size: 24px; font-weight: 800; letter-spacing: -0.4px; }
.sw-crumb ol { display: flex; flex-wrap: wrap; font-size: 13px; color: var(--sw-muted); }
.sw-crumb li + li::before { content: "›"; margin: 0 6px; color: var(--sw-line-dark); }

/* 스크롤 배너 (휴대폰에서 좌우 배너 대신) */
.sw-scroll-banners { display: none; margin-bottom: 18px; }
.sw-section-title-sm { font-size: 15px; font-weight: 800; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.sw-section-title-sm i { color: var(--sw-accent); }
.sw-scroll-track { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
.sw-scroll-track::-webkit-scrollbar { display: none; }
.sw-scroll-track .sw-banner { flex: 0 0 140px; scroll-snap-align: start; }
.sw-scroll-track .sw-banner img { height: 180px; object-fit: cover; }

/* ---------- 검색 박스 ---------- */
.sw-search-box { background: var(--sw-card); border: 2px solid var(--sw-dark); border-radius: 18px; padding: 18px 20px 12px; margin-bottom: 26px; min-width: 0; box-shadow: var(--sw-shadow); }
.sw-finder-row { display: flex; gap: 10px; align-items: center; }
.sw-finder-input { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 18px; border: 1px solid var(--sw-line-dark); border-radius: 999px; background: #fff; transition: border-color .12s, box-shadow .12s; }
.sw-finder-input:focus-within { border-color: var(--sw-primary); box-shadow: 0 0 0 3px var(--sw-primary-soft); }
.sw-finder-input i { color: var(--sw-muted); font-size: 16px; }
.sw-finder-input input { flex: 1; border: 0; background: transparent; font-size: 16px; min-width: 0; height: 100%; }
.sw-finder-input input:focus { outline: none; }
.sw-finder-input input::placeholder { color: #9ca3af; }
.sw-finder-reset { flex: 0 0 48px; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--sw-line-dark); border-radius: 50%; color: var(--sw-muted); background: #fff; }
.sw-finder-reset:hover { background: var(--sw-bg); }
.sw-finder-all { border-radius: 999px; min-height: 48px; padding: 0 22px; border-color: var(--sw-dark); font-weight: 700; }
.sw-finder-tabs { display: flex; gap: 8px; margin: 14px 0 6px; flex-wrap: wrap; }
.sw-finder-tabs button { height: 36px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--sw-line-dark); background: #fff; font-weight: 700; font-size: 14px; color: var(--sw-muted); }
.sw-finder-tabs button:hover { background: var(--sw-bg); }
.sw-finder-tabs button.on { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
.sw-chip-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-top: 1px solid var(--sw-line); min-width: 0; }
.sw-chip-row:first-child { border-top: 0; }
.sw-chip-label { flex: 0 0 84px; font-weight: 800; font-size: 14px; border-left: 3px solid var(--sw-primary); padding-left: 8px; line-height: 1.2; }
.sw-chip-list { display: flex; flex-wrap: nowrap; gap: 2px; min-width: 0; flex: 1 1 auto; overflow: hidden; align-items: center; }
.sw-chip-row.is-open .sw-chip-list { flex-wrap: wrap; overflow: visible; }
.sw-chip { position: relative; display: inline-flex; align-items: center; gap: 4px; min-height: 38px; padding: 0 12px; border-radius: 8px; border: 1px solid transparent; font-size: 14px; font-weight: 600; color: var(--sw-text); cursor: pointer; background: transparent; white-space: nowrap; user-select: none; transition: background .1s; }
.sw-chip + .sw-chip::before { content: ""; position: absolute; left: -2px; top: 11px; bottom: 11px; width: 1px; background: var(--sw-line); }
.sw-chip:hover { background: var(--sw-bg); }
.sw-chip.on { background: var(--sw-primary-soft); border-color: var(--sw-primary); color: var(--sw-primary-dark); font-weight: 700; }
.sw-chip.on::before, .sw-chip.on + .sw-chip::before { display: none; }
.sw-chip input { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
.sw-chip small { color: var(--sw-muted); font-weight: 500; font-size: 12px; }
.sw-chip-sm { min-height: 28px; font-size: 13px; padding: 0 9px; }
.sw-chip-more { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--sw-line-dark); background: #fff; color: var(--sw-muted); font-size: 12px; display: inline-flex; align-items: center; justify-content: center; }
.sw-chip-more:hover { background: var(--sw-bg); color: var(--sw-text); }
.sw-finder-selected { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 0 2px; border-top: 1px solid var(--sw-line); font-size: 13px; color: var(--sw-muted); }
.sw-finder-selected-label { font-weight: 700; color: var(--sw-text); margin-right: 2px; }
.sw-finder-clear { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--sw-muted); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 섹션 ---------- */
.sw-section { margin-bottom: 34px; min-width: 0; }
.sw-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.sw-section-head h2 { font-size: 20px; font-weight: 800; display: flex; align-items: center; gap: 8px; letter-spacing: -0.3px; }
.sw-h-icon { color: var(--sw-primary); font-size: 18px; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: var(--sw-primary-soft); }
.sw-badge-top, .sw-badge-sign { font-size: 11px; font-weight: 800; padding: 3px 7px; border-radius: 6px; color: #fff; background: var(--sw-dark); letter-spacing: 0; }
.sw-badge-sign { background: var(--sw-accent); }
.sw-more { font-size: 13px; color: var(--sw-muted); font-weight: 700; display: inline-flex; align-items: center; gap: 3px; padding: 6px 12px; border-radius: 999px; background: var(--sw-bg); transition: background .14s, color .14s; }
.sw-more:hover { color: var(--sw-primary-dark); background: var(--sw-primary-soft); }
.sw-more i { transition: transform .14s; }
.sw-more:hover i { transform: translateX(2px); }
.sw-count { color: var(--sw-primary); }
.sw-grid-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.sw-grid-2 > div { min-width: 0; }
.sw-empty, .sw-empty-start { background: var(--sw-card); border: 1px dashed var(--sw-line-dark); border-radius: var(--sw-radius); padding: 44px 16px; text-align: center; color: var(--sw-muted); }
.sw-empty-start h2 { margin: 0 0 8px; color: var(--sw-text); font-size: 20px; }
.sw-empty-start p { margin: 0 0 16px; }
.sw-note { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 10px; padding: 12px 14px; font-size: 14px; color: var(--sw-muted); margin: 0; }
.sw-alert { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; border-radius: 10px; padding: 10px 14px; font-size: 14px; margin-bottom: 14px; }

/* ---------- 카드 (탑광고·간판광고·목록) ---------- */
.sw-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.sw-cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sw-card { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 14px; overflow: hidden; min-width: 0; transition: transform .18s, box-shadow .18s, border-color .18s; box-shadow: var(--sw-shadow); }
.sw-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(17,24,39,.12); border-color: #d1d5db; }
.sw-card:hover .sw-card-thumb img, .sw-card:hover .sw-card-thumb .sw-thumb-text { transform: scale(1.04); }
.sw-card.is-top { border: 2px solid #f5c542; }
.sw-card.is-top:hover { border-color: #eab308; }
.sw-card-thumb { display: block; position: relative; aspect-ratio: 16 / 10; background: #e5e7eb; overflow: hidden; }
.sw-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.sw-card-thumb .sw-thumb-text { transition: transform .35s ease; }
.sw-card-thumb::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 36%; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.18)); pointer-events: none; }
.sw-card-top { position: absolute; right: 0; top: 10px; background: linear-gradient(90deg, #f59e0b, #fbbf24); color: #1f2937; font-size: 10px; font-weight: 900; letter-spacing: .5px; padding: 3px 8px 3px 10px; border-radius: 6px 0 0 6px; box-shadow: 0 2px 6px rgba(0,0,0,.2); z-index: 1; }
.sw-lb { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 800; color: #fff; backdrop-filter: blur(4px); box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.sw-lb.is-urgent { background: rgba(239,68,68,.92); }
.sw-lb.is-pay { background: rgba(16,185,129,.92); }
.sw-lb.is-hot { background: rgba(17,24,39,.7); color: #fde68a; }
.sw-thumb-text { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 100%; height: 100%; color: #fff; text-align: center; padding: 10px; overflow: hidden; position: relative; background: linear-gradient(135deg, hsl(var(--h), 62%, 46%), hsl(calc(var(--h) + 40), 70%, 34%)); }
.sw-thumb-text::before { content: ""; position: absolute; width: 140%; height: 140%; left: -20%; top: -70%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.22), transparent 55%); }
.sw-thumb-text b { position: relative; font-size: clamp(16px, 2.2vw, 24px); font-weight: 900; letter-spacing: -0.5px; text-shadow: 0 2px 8px rgba(0,0,0,.25); line-height: 1.2; }
.sw-thumb-text small { position: relative; font-size: 12px; font-weight: 600; opacity: .9; }
.sw-thumb-text.is-small { padding: 2px; }
.sw-thumb-text.is-small b { font-size: 10px; font-weight: 800; letter-spacing: 0; text-shadow: none; }
.sw-card-body { padding: 11px 13px 13px; min-width: 0; }
.sw-card-shop { font-size: 12px; color: var(--sw-muted); font-weight: 600; display: flex; align-items: center; gap: 6px; margin-bottom: 7px; min-width: 0; }
.sw-card-logo { width: 22px; height: 22px; border-radius: 50%; overflow: hidden; flex: 0 0 22px; border: 1px solid var(--sw-line); background: #fff; }
.sw-card-logo img, .sw-card-logo .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; padding: 0; }
.sw-card-logo .sw-thumb-text b { font-size: 7px; letter-spacing: 0; }
.sw-card-shop-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; min-width: 0; }
.sw-card-badges { position: absolute; left: 10px; top: 10px; display: flex; gap: 5px; z-index: 1; }
.sw-card-title { display: block; font-size: 15px; font-weight: 700; line-height: 1.4; min-width: 0; color: var(--sw-dark); letter-spacing: -0.2px; }
.sw-card-title span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.sw-card-title:hover span { color: var(--sw-primary-dark); }
.sw-card-title.is-hl span { background: linear-gradient(transparent 60%, #fef08a 60%); display: inline; -webkit-line-clamp: unset; }
.sw-card-title.is-hl { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; }
.sw-card-meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; color: var(--sw-muted); margin-top: 9px; min-width: 0; }
.sw-card-region { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; min-width: 0; }
.sw-card-region i { color: var(--sw-line-dark); margin-right: 2px; }
.sw-card-pay { flex: 0 1 auto; max-width: 72%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; font-weight: 800; color: var(--sw-primary-dark); background: var(--sw-primary-soft); padding: 4px 8px; border-radius: 999px; }
.sw-card-region { flex: 1 1 28%; }
.sw-card-cat { flex: 0 0 auto; font-size: 11px; font-weight: 600; color: var(--sw-muted); background: var(--sw-bg); padding: 4px 8px; border-radius: 999px; }
.sw-badge { flex: 0 0 auto; display: inline-block; font-size: 11px; font-weight: 800; padding: 2px 6px; border-radius: 5px; color: #fff; line-height: 1.5; vertical-align: middle; letter-spacing: 0; }
.sw-badge-urgent { background: #ef4444; }
.sw-badge-hot { background: #f97316; }
.sw-badge-pay { background: #10b981; }
.sw-badge-notice { background: var(--sw-primary); }
.sw-badge-verified { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 700; color: #047857; background: #ecfdf5; padding: 2px 6px; border-radius: 5px; white-space: nowrap; flex: 0 0 auto; }

/* ---------- 지역 링크 ---------- */
.sw-region-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(146px, 1fr)); gap: 10px; list-style: none; padding: 0; margin: 0; }
.sw-region-grid a { display: flex; align-items: center; gap: 8px; padding: 14px 15px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 12px; box-shadow: var(--sw-shadow); transition: transform .14s, box-shadow .14s, border-color .14s; }
.sw-region-grid a:hover { transform: translateY(-2px); box-shadow: var(--sw-shadow-hover); border-color: var(--sw-primary); }
.sw-region-grid a > i { color: var(--sw-primary); font-size: 15px; }
.sw-region-name { font-weight: 700; font-size: 15px; flex: 1; min-width: 0; color: var(--sw-text); }
.sw-region-cnt { flex: 0 0 auto; font-size: 12px; font-weight: 800; color: var(--sw-primary-dark); background: var(--sw-primary-soft); padding: 3px 9px; border-radius: 999px; }

/* ---------- 페이지 번호 ---------- */
.sw-paging, .pg_wrap { display: flex; justify-content: center; gap: 6px; margin-top: 22px; flex-wrap: wrap; }
.pg_wrap .pg { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.sw-paging a, .pg_wrap .pg_page, .pg_wrap .pg_current { min-width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--sw-line); border-radius: 10px; background: #fff; font-weight: 700; font-size: 14px; padding: 0 10px; color: var(--sw-text); box-shadow: var(--sw-shadow); }
.sw-paging a:hover, .pg_wrap .pg_page:hover { border-color: var(--sw-primary); color: var(--sw-primary-dark); }
.sw-paging a.on, .pg_wrap .pg_current { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
.pg_wrap .pg_start, .pg_wrap .pg_prev, .pg_wrap .pg_next, .pg_wrap .pg_end { font-size: 0; }
.pg_wrap .pg_start::before { content: "«"; font-size: 14px; } .pg_wrap .pg_prev::before { content: "‹"; font-size: 14px; } .pg_wrap .pg_next::before { content: "›"; font-size: 14px; } .pg_wrap .pg_end::before { content: "»"; font-size: 14px; }

/* ---------- 최신글 ---------- */
.sw-latest { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 12px; padding: 12px 16px; margin-bottom: 12px; box-shadow: var(--sw-shadow); }
.sw-latest-title { margin: 0 0 6px; font-size: 15px; font-weight: 800; }
.sw-latest li { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid var(--sw-line); font-size: 14px; min-width: 0; align-items: center; }
.sw-latest-subject { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; font-weight: 600; overflow: hidden; }
.sw-latest-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-latest-subject:hover .sw-latest-txt { color: var(--sw-primary-dark); }
.sw-latest-cate { flex: 0 0 auto; display: inline-block; font-size: 11px; font-weight: 700; color: var(--sw-primary-dark); background: var(--sw-primary-soft); padding: 2px 7px; border-radius: 6px; }
.sw-latest-cmt { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 2px; color: #b45309; background: #fef3c7; font-weight: 800; font-size: 11px; padding: 1px 6px; border-radius: 999px; }
.sw-latest-new { color: #ef4444; font-size: 11px; font-weight: 800; margin-left: 3px; }
.sw-latest-meta { flex: 0 0 auto; color: var(--sw-muted); font-size: 12px; white-space: nowrap; }
.sw-latest-empty { color: var(--sw-muted); }

/* ---------- 목록 (커뮤니티) ---------- */
.sw-list { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 12px 18px 18px; box-shadow: var(--sw-shadow); }
.sw-cate { padding-bottom: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.sw-cate a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--sw-line-dark); font-size: 14px; font-weight: 600; background: #fff; }
.sw-cate a#bo_cate_on, .sw-cate a.on { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
.sw-list-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0 10px; border-bottom: 2px solid var(--sw-dark); flex-wrap: wrap; }
.sw-list-total { font-size: 14px; color: var(--sw-muted); }
.sw-list-total b { color: var(--sw-text); }
.sw-list-tools { display: flex; gap: 6px; align-items: center; margin-left: auto; }
.sw-list-item { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--sw-line); min-width: 0; }
.sw-list-item.is-notice { background: #fafbff; }
.sw-list-chk { flex: 0 0 auto; width: 18px; height: 18px; margin: 0 0 0 4px; }
.sw-list-link { flex: 1; min-width: 0; display: block; padding: 13px 4px; }
.sw-list-link:hover .sw-list-subject { color: var(--sw-primary-dark); }
.sw-list-subject { display: block; font-size: 15px; font-weight: 600; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-list-cate { color: var(--sw-muted); font-weight: 500; margin-right: 2px; }
.sw-list-meta { display: block; margin-top: 3px; font-size: 12px; color: var(--sw-muted); }
.sw-list-search { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; padding-top: 12px; }
.sw-list-search select, .sw-list-search input { height: 40px; border: 1px solid var(--sw-line-dark); border-radius: 8px; padding: 0 10px; font-size: 14px; background: #fff; }
.sw-list-search input { flex: 1; min-width: 140px; }
.sw-paging-wrap { margin-top: 10px; }
.sw-seek-cards .sw-card-body { padding: 14px; }
.sw-seek-cards .sw-card-title { margin-bottom: 8px; }
.sw-seek-cards .sw-card-title span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* ---------- 커뮤니티 카드형 목록 ---------- */
.sw-clist { padding: 18px 20px 20px; }
.sw-clist-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.sw-clist-name { font-size: 20px; font-weight: 800; letter-spacing: -0.3px; }
.sw-clist-name small { font-size: 14px; color: var(--sw-primary); font-weight: 700; margin-left: 4px; }
.sw-clist-intro p { margin: 4px 0 0; font-size: 13px; color: var(--sw-muted); line-height: 1.5; }
.sw-clist-write { flex: 0 0 auto; }
.sw-clist-tools { display: flex; align-items: center; gap: 8px; padding: 10px 0; border-top: 1px solid var(--sw-line); border-bottom: 2px solid var(--sw-dark); flex-wrap: wrap; }
.sw-sort { display: inline-flex; background: var(--sw-bg); border-radius: 999px; padding: 3px; }
.sw-sort a { padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--sw-muted); }
.sw-sort a.on { background: #fff; color: var(--sw-dark); box-shadow: var(--sw-shadow); }
.sw-clist-search { margin-left: auto; display: flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; border: 1px solid var(--sw-line-dark); border-radius: 999px; background: #fff; min-width: 180px; }
.sw-clist-search i { color: var(--sw-muted); font-size: 13px; }
.sw-clist-search input { border: 0; background: transparent; font-size: 14px; width: 120px; min-width: 0; height: 100%; }
.sw-clist-search input:focus { outline: none; }
.sw-clist-clear { color: var(--sw-muted); }
.sw-clist-item { display: flex; align-items: flex-start; gap: 12px; padding: 14px 4px; border-bottom: 1px solid var(--sw-line); min-width: 0; }
.sw-clist-item.is-notice { background: #fafbff; margin: 0 -4px; padding: 14px 8px; }
.sw-clist-item .sw-list-chk { margin-top: 12px; }
.sw-avatar { --s: 36px; width: var(--s); height: var(--s); border-radius: 50%; background: var(--sw-primary-soft); color: var(--sw-primary); display: inline-flex; align-items: center; justify-content: center; font-size: calc(var(--s) * .45); overflow: hidden; flex: 0 0 var(--s); }
.sw-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-avatar.is-anon { background: #eef0f4; color: var(--sw-muted); }
.sw-clist-link { flex: 1; min-width: 0; display: block; }
.sw-clist-head { display: flex; align-items: center; gap: 6px; min-width: 0; flex-wrap: wrap; }
.sw-clist-cate { font-size: 12px; font-weight: 700; color: var(--sw-primary-dark); background: var(--sw-primary-soft); padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.sw-clist-subject { font-size: 16px; font-weight: 700; line-height: 1.4; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.sw-clist-link:hover .sw-clist-subject { color: var(--sw-primary-dark); }
.sw-clist-cmt { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; font-weight: 800; color: var(--sw-primary); white-space: nowrap; }
.sw-clist-preview { display: block; margin-top: 4px; font-size: 14px; color: var(--sw-muted); line-height: 1.5; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.sw-clist-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 6px; font-size: 12px; color: var(--sw-muted); }
.sw-clist-meta b { color: var(--sw-text); font-weight: 600; }
.sw-clist-thumb { flex: 0 0 96px; width: 96px; height: 72px; border-radius: 10px; overflow: hidden; background: var(--sw-bg); }
.sw-clist-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sw-clist-ad { display: flex; gap: 10px; align-items: stretch; padding: 10px; margin: 4px 0; background: var(--sw-bg); border-radius: 12px; min-width: 0; }
.sw-clist-ad-label { flex: 0 0 auto; align-self: flex-start; font-size: 10px; font-weight: 800; color: #fff; background: #9ca3af; padding: 2px 6px; border-radius: 4px; }
.sw-clist-ad-item { flex: 1; min-width: 0; display: flex; gap: 10px; align-items: center; background: #fff; border: 1px solid var(--sw-line); border-radius: 10px; padding: 8px; }
.sw-clist-ad-item:hover { border-color: var(--sw-primary); }
.sw-clist-ad-thumb { flex: 0 0 84px; width: 84px; height: 54px; border-radius: 8px; overflow: hidden; }
.sw-clist-ad-thumb img, .sw-clist-ad-thumb .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; }
.sw-clist-ad-thumb .sw-thumb-text b { font-size: 12px; }
.sw-clist-ad-text { min-width: 0; }
.sw-clist-ad-text b { display: block; font-size: 13px; color: var(--sw-primary-dark); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-clist-ad-text span { display: block; font-size: 13px; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-clist-ad-text small { display: block; font-size: 11px; color: var(--sw-muted); }
.sw-clist-selbar { display: flex; gap: 6px; padding: 10px 0; }
.sw-fab { display: none; position: fixed; right: 16px; bottom: 76px; width: 56px; height: 56px; border-radius: 50%; background: var(--sw-primary); color: #fff; font-size: 20px; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(37,99,235,.4); z-index: 45; }

/* ---------- 글 보기 ---------- */
.sw-post-cate-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.sw-post-board { font-size: 13px; font-weight: 700; color: var(--sw-muted); }
.sw-post-board:hover { color: var(--sw-primary-dark); }
.sw-post-author { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.sw-post-author-text { flex: 1; min-width: 0; }
.sw-post-author-text b { display: block; font-size: 14px; }
.sw-post-author-text small { display: block; font-size: 12px; color: var(--sw-muted); }
.sw-post-stats { display: flex; gap: 12px; font-size: 13px; color: var(--sw-muted); white-space: nowrap; }
.sw-post-react { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin: 18px 0; position: relative; }
.sw-post-react .sw-btn { min-width: 108px; height: 46px; border-radius: 999px; font-weight: 700; }
.sw-react-btn { border-color: var(--sw-line-dark); }
.sw-react-btn.on, #good_button.on { background: #fef2f2; border-color: #fecaca; color: #dc2626; }
.sw-react-btn.on i, #good_button.on i { color: #dc2626; }
.sw-react-btn strong, .sw-post-react .sw-btn strong { color: var(--sw-primary-dark); margin-left: 2px; }
.sw-post-content { min-height: 90px; }
.sw-react-msg { position: absolute; top: -26px; left: 50%; transform: translateX(-50%); font-size: 12px; color: var(--sw-primary-dark); display: none; white-space: nowrap; }
.sw-board { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 22px 24px; min-width: 0; box-shadow: var(--sw-shadow); }
.sw-post-head, .sw-job-head { padding-bottom: 14px; border-bottom: 1px solid var(--sw-line); margin-bottom: 18px; }
.sw-post-title, .sw-job-title { font-size: 24px; font-weight: 800; margin: 4px 0 10px; line-height: 1.35; letter-spacing: -0.4px; }
.sw-job-title .sw-badge { font-size: 12px; vertical-align: 4px; }
.sw-job-shop { font-size: 15px; font-weight: 700; color: var(--sw-primary-dark); display: flex; align-items: center; gap: 6px; }
.sw-post-meta, .sw-job-sub { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--sw-muted); font-weight: 500; }
.sw-post-meta img { width: 22px; height: 22px; border-radius: 50%; vertical-align: middle; }
.sw-job-images { display: grid; gap: 10px; margin-bottom: 18px; }
.sw-job-images img, #bo_v_img img { max-width: 100%; height: auto; border-radius: 12px; display: block; }
.sw-job-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; background: var(--sw-bg); border-radius: 12px; padding: 16px 18px; margin: 0 0 16px; font-size: 14px; }
.sw-job-facts div { display: flex; gap: 10px; min-width: 0; }
.sw-job-facts dt { flex: 0 0 76px; color: var(--sw-muted); font-weight: 500; }
.sw-job-facts dd { margin: 0; font-weight: 700; min-width: 0; }
.sw-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.sw-tag { font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 6px; background: var(--sw-bg); color: var(--sw-muted); white-space: nowrap; }
.sw-tag:hover { background: var(--sw-primary-soft); color: var(--sw-primary-dark); }
.sw-tag.is-cat { background: var(--sw-primary-soft); color: var(--sw-primary-dark); }
.sw-job-tags { margin-bottom: 20px; }
.sw-job-content, .sw-post-content { font-size: 15px; line-height: 1.8; margin-bottom: 22px; }
.sw-post-content img { max-width: 100%; height: auto; }
.sw-job-sec { border: 1px solid var(--sw-line); border-radius: 12px; padding: 14px 18px; margin-bottom: 12px; }
.sw-job-sec h3 { margin: 0 0 8px; font-size: 15px; font-weight: 800; color: var(--sw-primary-dark); display: flex; align-items: center; gap: 7px; }
.sw-job-sec h3::before { content: ""; width: 4px; height: 15px; border-radius: 2px; background: var(--sw-primary); }
.sw-job-sec p { margin: 0; }
.sw-tel { color: var(--sw-primary-dark); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.sw-job-contact-btn { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.sw-job-report { font-size: 13px; color: var(--sw-muted); background: var(--sw-bg); border-radius: 10px; padding: 10px 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 16px; }
.sw-job-links { margin-bottom: 18px; }
.sw-job-actions, .sw-form-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; padding-top: 18px; border-top: 1px solid var(--sw-line); }
.sw-post-good { margin-bottom: 16px; text-align: center; }
.sw-post-nav { margin: 0 0 16px; border-top: 1px solid var(--sw-line); }
.sw-post-nav li { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--sw-line); font-size: 14px; min-width: 0; }
.sw-post-nav li span { flex: 0 0 40px; color: var(--sw-muted); }
.sw-post-nav li a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.sw-anon { color: var(--sw-muted); font-weight: 600; }

/* 댓글 */
.sw-comments { margin-top: 26px; }
.sw-cm-title { font-size: 16px; font-weight: 800; margin: 0 0 6px; }
.sw-cm-title b { color: var(--sw-primary); }
.sw-cm { display: flex; gap: 10px; padding: 14px 0; border-top: 1px solid var(--sw-line); }
.sw-cm.is-reply { border-top: 0; padding-top: 4px; }
.sw-cm.is-reply::before { content: "\f148"; font-family: FontAwesome; color: var(--sw-line-dark); margin: 2px 2px 0 -6px; font-size: 12px; transform: scaleX(-1); }
.sw-cm-avatar { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; background: var(--sw-bg); display: inline-flex; align-items: center; justify-content: center; color: var(--sw-muted); }
.sw-cm-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-cm-main { flex: 1; min-width: 0; }
.sw-cm-head { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; color: var(--sw-muted); margin-bottom: 3px; align-items: center; }
.sw-cm-who b { color: var(--sw-text); font-size: 13.5px; margin-right: 5px; }
.sw-cm-who time { color: #9ca3af; }
.sw-cm-act a { margin-left: 8px; font-weight: 600; color: var(--sw-muted); }
.sw-cm-act a:hover { color: var(--sw-primary-dark); } .sw-cm-act a.is-danger:hover { color: #dc2626; }
.sw-cm-body { font-size: 14.5px; line-height: 1.6; color: var(--sw-text); word-break: break-word; }
.sw-cm-blocked, .sw-cm-empty { color: var(--sw-muted); font-size: 14px; padding: 16px 0; }
.sw-cm-empty { color: var(--sw-muted); font-size: 14px; }
.sw-cm-write { margin-top: 12px; }
.sw-cm-write textarea { width: 100%; min-height: 92px; border: 1px solid var(--sw-line-dark); border-radius: 10px; padding: 12px 14px; font-size: 15px; resize: vertical; }
.sw-cm-write textarea:focus { outline: none; border-color: var(--sw-primary); box-shadow: 0 0 0 3px var(--sw-primary-soft); }
.sw-cm-write-foot { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.sw-cm-write-foot .sw-chip { border-color: var(--sw-line); }
.sw-cm-write-foot .sw-btn { margin-left: auto; }
.sw-cm-write-foot .frm_input { height: 36px; border: 1px solid var(--sw-line-dark); border-radius: 8px; padding: 0 10px; }

/* ---------- 글쓰기 폼 (자체) ---------- */
.sw-form-note { font-size: 13px; color: #374151; background: #fffbeb; border: 1px solid #fde68a; padding: 11px 14px; border-radius: 10px; margin-bottom: 12px; line-height: 1.6; }
.sw-form-note.is-info { background: var(--sw-bg); border-color: var(--sw-line); color: var(--sw-muted); }
.sw-form-sec { margin-top: 24px; padding-bottom: 8px; border-bottom: 2px solid var(--sw-dark); font-size: 17px; font-weight: 800; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sw-form-sec small { font-weight: 500; color: var(--sw-muted); font-size: 13px; }
.sw-form-row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--sw-line); }
.sw-form-row > label, .sw-form-row > .sw-form-label { font-weight: 700; padding-top: 12px; font-size: 15px; }
.sw-form-row > label small, .sw-form-label small { display: block; font-weight: 500; color: var(--sw-muted); font-size: 12px; margin-top: 2px; }
.sw-req { color: var(--sw-danger); font-weight: 700; }
.sw-form-row .frm_input, .sw-form-row select, .sw-form-row input[type=text], .sw-form-row input[type=date], .sw-form-row input[type=password], .sw-form-row input[type=number], .sw-form-row input[type=tel] { height: 48px; border: 1px solid var(--sw-line-dark); border-radius: 10px; padding: 0 14px; font-size: 15px; width: 100%; max-width: 480px; background: #fff; transition: border-color .12s, box-shadow .12s; }
.sw-form-row select { padding-right: 36px; appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 14px center; }
.sw-form-row input:focus, .sw-form-row select:focus, .sw-ta:focus, .sw-field input:focus { outline: none; border-color: var(--sw-primary); box-shadow: 0 0 0 3px var(--sw-primary-soft); }
.sw-form-inline { display: flex; gap: 8px; flex-wrap: wrap; }
.sw-form-inline select { max-width: 230px; flex: 1 1 160px; }
.sw-ta { width: 100%; max-width: 100%; min-height: 120px; border: 1px solid var(--sw-line-dark); border-radius: 10px; padding: 12px 14px; font-size: 15px; line-height: 1.65; resize: vertical; background: #fff; display: block; transition: border-color .12s, box-shadow .12s; }
.sw-ta::placeholder { color: #9ca3af; }
.sw-form-help { margin: 6px 0 0; font-size: 12px; color: var(--sw-muted); line-height: 1.5; }
.sw-form-count { font-size: 12px; color: var(--sw-muted); text-align: right; margin: 4px 0 0; }
.sw-form-row input[type=file] { font-size: 14px; max-width: 100%; padding: 8px 0; }
.sw-file-del { display: block; margin-top: 6px; font-size: 13px; color: var(--sw-muted); }
.sw-form-row .sw-chip-list { flex-wrap: wrap; overflow: visible; gap: 6px; padding-top: 4px; }
.sw-form-row .sw-chip { border-color: var(--sw-line); }
.sw-form-row .sw-chip::before { display: none; }
#btn_autosave, #autosave_pop { display: none; }
.sw-form-sticky { position: sticky; bottom: 0; background: rgba(255,255,255,.96); margin: 0 -24px -22px; padding: 14px 24px; border-radius: 0 0 var(--sw-radius) var(--sw-radius); backdrop-filter: blur(4px); z-index: 5; }

/* ---------- 회원 (로그인·가입) ---------- */
.sw-auth { max-width: 460px; margin: 10px auto 30px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 18px; padding: 30px 26px; box-shadow: var(--sw-shadow); }
.sw-auth-wide { max-width: 680px; }
.sw-auth-title { font-size: 24px; font-weight: 800; margin: 0 0 6px; text-align: center; letter-spacing: -0.4px; }
.sw-auth-sub { text-align: center; color: var(--sw-muted); font-size: 14px; margin: 0 0 22px; line-height: 1.6; }
.sw-steps { display: flex; justify-content: center; gap: 6px; margin-bottom: 22px; font-size: 13px; color: var(--sw-muted); flex-wrap: wrap; }
.sw-steps span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--sw-bg); font-weight: 600; }
.sw-steps span.on { background: var(--sw-dark); color: #fff; }
.sw-steps span.done { background: var(--sw-primary-soft); color: var(--sw-primary-dark); }
.sw-type-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 8px; }
.sw-type-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 118px; grid-template-areas: "text art" "btn btn"; gap: 6px 10px; align-items: center; border: 2px solid var(--sw-line); border-radius: 18px; padding: 18px 18px 16px; background: #fff; transition: border-color .12s, box-shadow .12s, transform .12s; }
.sw-type-card:hover { transform: translateY(-2px); box-shadow: var(--sw-shadow-hover); border-color: var(--sw-line-dark); }
.sw-type-card-text { grid-area: text; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sw-type-card-text b small { font-weight: 600; color: var(--sw-muted); font-size: 13px; min-height: 0; }
.sw-type-card-art { grid-area: art; display: flex; justify-content: flex-end; }
.sw-type-card-art img { width: 118px; height: 118px; }
.sw-type-card .sw-type-btn { grid-area: btn; }
.sw-type-card input { position: absolute; opacity: 0; width: 0; height: 0; }
.sw-type-icon { width: 54px; height: 54px; border-radius: 16px; background: var(--sw-primary-soft); color: var(--sw-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 24px; margin-bottom: 4px; }
.sw-type-card.is-shop .sw-type-icon { background: var(--sw-accent-soft); color: #b45309; }
.sw-type-card b { font-size: 17px; font-weight: 800; }
.sw-type-card small { font-size: 13px; color: var(--sw-muted); line-height: 1.55; min-height: 2.6em; }
.sw-type-btn { margin-top: 8px; }
.sw-type-card.is-worker .sw-type-btn { background: var(--sw-accent-soft); border-color: #fde68a; color: #7c4a00; }
.sw-type-card.is-shop .sw-type-btn { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
/* 가입 인증 모달 */
.sw-cert-modal .sw-modal-box { width: min(420px, 100%); height: auto; max-height: 92vh; overflow-y: auto; padding: 34px 26px 24px; border-radius: 22px; box-shadow: 0 24px 70px rgba(15,23,42,.35); }
.sw-modal-x { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--sw-bg); color: var(--sw-muted); font-size: 16px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; z-index: 2; transition: background .12s, color .12s; }
.sw-modal-x:hover { background: var(--sw-line); color: var(--sw-text); }
.sw-cert-head { text-align: center; margin-bottom: 18px; padding: 0 10px; }
.sw-cert-head h3 { margin: 0 0 8px; font-size: 21px; line-height: 1.35; font-weight: 800; letter-spacing: -.02em; }
.sw-cert-head p { margin: 0; color: var(--sw-muted); font-size: 14px; }
.sw-cert-tabs { display: flex; background: var(--sw-bg); border-radius: 12px; padding: 4px; margin-bottom: 10px; }
.sw-cert-tabs.is-single { display: none; }   /* 이메일 하나뿐이면 탭을 숨긴다 */
.sw-cert-tabs button { flex: 1; height: 40px; border: 0; background: transparent; border-radius: 9px; font-weight: 700; font-size: 14px; color: var(--sw-muted); cursor: pointer; }
.sw-cert-tabs button.on { background: #fff; color: var(--sw-text); box-shadow: 0 1px 4px rgba(17,24,39,.12); }
.sw-cert-label { display: block; font-size: 13px; font-weight: 700; color: var(--sw-muted); margin: 0 0 6px 2px; }
.sw-cert-row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.sw-cert-row .frm_input { flex: 1; min-width: 0; height: 48px; border-radius: 12px; font-size: 16px; }
.sw-cert-row .sw-btn { flex: none; height: 48px; padding: 0 14px; border-radius: 12px; white-space: nowrap; }
.sw-cert-row .frm_input.is-ok { border-color: #16a34a; background: #f0fdf4; }
.sw-cert-timer { flex: none; min-width: 44px; text-align: center; font-size: 14px; font-weight: 700; color: #dc2626; }
.sw-cert-msg { margin: 2px 0 8px; font-size: 13px; padding: 10px 12px; border-radius: 10px; }
.sw-cert-msg.ok { background: #f0fdf4; color: #166534; } .sw-cert-msg.err { background: #fef2f2; color: #991b1b; }
.sw-cert-real-box { display: flex; gap: 12px; align-items: center; background: var(--sw-bg); border-radius: 14px; padding: 14px; margin-bottom: 10px; }
.sw-cert-real-box > i { font-size: 30px; color: var(--sw-primary); width: 30px; text-align: center; }
.sw-cert-real-box b { display: block; font-size: 15px; } .sw-cert-real-box small { color: var(--sw-muted); font-size: 12.5px; line-height: 1.5; }
.sw-cert-soon { display: flex; gap: 12px; align-items: center; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 14px; padding: 13px 14px; margin-bottom: 12px; }
.sw-cert-soon > i { font-size: 24px; color: #ea580c; width: 26px; text-align: center; flex: 0 0 26px; }
.sw-cert-soon b { display: block; font-size: 14px; color: #9a3412; }
.sw-cert-soon small { display: block; margin-top: 3px; color: #9a3412; font-size: 12.5px; line-height: 1.55; opacity: .92; word-break: keep-all; }
.sw-cert-soon small b { display: inline; font-size: inherit; color: inherit; }
.sw-cert-agree { display: flex; flex-direction: column; gap: 6px; padding: 12px 0 14px; border-top: 1px dashed var(--sw-line); margin-top: 6px; }
.sw-cert-agree .sw-check { font-size: 14px; } .sw-cert-agree .sw-check b { font-weight: 800; }
.sw-cert-link { margin-left: auto; font-size: 12px; color: var(--sw-muted); text-decoration: underline; text-underline-offset: 3px; }
.sw-cert-modal #sw-cert-go { height: 52px; font-size: 16px; border-radius: 14px; }
.sw-cert-modal #sw-cert-go[disabled] { opacity: .45; cursor: not-allowed; }
.sw-mascot-img { display: block; }
.sw-agree-wrap { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--sw-line); }
.sw-field { margin-bottom: 16px; }
.sw-field > label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 7px; }
.sw-field input[type=text], .sw-field input[type=password], .sw-field input[type=email], .sw-field input[type=tel] { width: 100%; height: 52px; border: 1px solid var(--sw-line-dark); border-radius: 12px; padding: 0 16px; font-size: 16px; background: #fff; transition: border-color .12s, box-shadow .12s; }
.sw-field input[readonly] { background: var(--sw-bg); color: var(--sw-muted); }
.sw-field-msg { display: block; font-size: 12px; margin-top: 6px; color: var(--sw-muted); min-height: 1em; }
.sw-field-msg.ok, #msg_mb_id:not(:empty), #msg_mb_nick:not(:empty) { display: block; font-size: 12px; margin-top: 6px; }
.sw-field-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sw-type-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sw-type-pick label { position: relative; display: block; border: 2px solid var(--sw-line); border-radius: 14px; padding: 14px 12px; cursor: pointer; text-align: center; }
.sw-type-pick label input { position: absolute; opacity: 0; width: 0; height: 0; }
.sw-type-pick label i { font-size: 24px; color: var(--sw-muted); display: block; margin-bottom: 6px; }
.sw-type-pick label b { display: block; font-size: 16px; }
.sw-type-pick label small { display: block; color: var(--sw-muted); font-size: 12px; margin-top: 2px; }
.sw-type-pick label.on { border-color: var(--sw-primary); background: var(--sw-primary-soft); }
.sw-type-pick label.on i { color: var(--sw-primary); }
.sw-agree-all { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 12px; background: var(--sw-bg); font-weight: 800; font-size: 16px; margin-bottom: 8px; cursor: pointer; }
.sw-agree { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-bottom: 1px solid var(--sw-line); font-size: 15px; font-weight: 600; cursor: pointer; }
.sw-agree .sw-req { font-size: 13px; }
.sw-agree a { margin-left: auto; font-size: 13px; color: var(--sw-muted); white-space: nowrap; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.sw-agree input, .sw-agree-all input, .sw-check input { width: 22px; height: 22px; margin: 0; accent-color: var(--sw-primary); flex: 0 0 22px; }
.sw-agree-box { max-height: 180px; overflow: auto; border: 1px solid var(--sw-line); border-radius: 10px; padding: 12px 14px; font-size: 12px; font-weight: 400; color: var(--sw-muted); line-height: 1.65; white-space: pre-wrap; margin: 0 0 8px; background: #fafafa; display: none; font-family: inherit; }
.sw-agree-box.open { display: block; }
.sw-check { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; font-weight: 600; }
.sw-auth-links { display: flex; justify-content: center; gap: 16px; margin-top: 16px; font-size: 14px; color: var(--sw-muted); }
.sw-auth-links a { font-weight: 600; color: var(--sw-text); }
.sw-auth-foot { text-align: center; margin: 20px 0 0; font-size: 14px; color: var(--sw-muted); }
.sw-auth-foot a { color: var(--sw-primary-dark); font-weight: 700; }
.sw-done-icon { width: 64px; height: 64px; border-radius: 50%; background: #dcfce7; color: #16a34a; font-size: 28px; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.sw-done-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 6px 0 10px; }
.sw-done-list .sw-btn { min-height: 50px; flex-direction: column; gap: 4px; font-size: 14px; }
.sw-pw-meter { height: 4px; border-radius: 2px; background: var(--sw-line); margin-top: 7px; overflow: hidden; }
.sw-pw-meter i { display: block; height: 100%; width: 0; background: var(--sw-danger); transition: width .2s, background .2s; }
/* 자동등록방지(캡챠) — 테마 그림(4자리) + 입력 + 새로고침·듣기 */
#captcha.sw-captcha { border: 0; padding: 0; margin: 0; }
.sw-captcha-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sw-captcha #captcha_img { width: 150px; height: 56px; border-radius: 12px; border: 1px solid var(--sw-line); background: #eff4ff; }
.sw-captcha #captcha_key { height: 56px; width: 130px; border: 1px solid var(--sw-line-dark); border-radius: 12px; padding: 0 14px; font-size: 22px; font-weight: 700; letter-spacing: .25em; text-align: center; }
.sw-captcha #captcha_key:focus { border-color: var(--sw-primary); outline: none; box-shadow: 0 0 0 3px var(--sw-primary-soft); }
.sw-captcha-btn { height: 56px; width: 48px; border: 1px solid var(--sw-line-dark); border-radius: 12px; background: #fff; color: var(--sw-text); font-size: 18px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.sw-captcha-btn:hover { background: var(--sw-bg); color: var(--sw-primary-dark); }
.sw-captcha-audio { height: 36px; width: 100%; }
.sw-captcha-help { margin: 8px 0 0; font-size: 12.5px; color: var(--sw-muted); }
@media (max-width: 640px) { .sw-captcha #captcha_key { flex: 1; min-width: 100px; width: auto; } }

/* ---------- 오른쪽 사이드 (인기 구인광고·인기 게시글·내 프로필) ---------- */
.sw-layout.has-aside { grid-template-columns: minmax(0, 1fr) 300px; }
.sw-layout.has-side.has-aside { grid-template-columns: 160px minmax(0, 1fr) 300px 160px; }
.sw-aside { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.sw-aside-box { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 12px; padding: 16px; box-shadow: var(--sw-shadow); }
.sw-aside-title { font-size: 15px; font-weight: 800; margin: 0 0 10px; display: flex; align-items: center; gap: 6px; }
.sw-aside-title::before { content: ""; width: 4px; height: 14px; border-radius: 2px; background: var(--sw-accent); }
.sw-aside-me-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.sw-aside-me-top b { display: block; font-size: 15px; }
.sw-aside-me-top small { color: var(--sw-muted); font-size: 12px; }
.sw-aside-me-info { border-top: 1px solid var(--sw-line); padding-top: 8px; margin-bottom: 10px; }
.sw-aside-me-info li { display: flex; justify-content: space-between; font-size: 13px; color: var(--sw-muted); }
.sw-aside-me-info li b { color: var(--sw-text); }
.sw-aside-me-btn { display: flex; gap: 6px; }
.sw-aside-me-btn .sw-btn { flex: 1; }
.sw-aside-login-text { margin: 0 0 10px; font-size: 13px; color: var(--sw-muted); line-height: 1.6; }
.sw-rank li { display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; border-top: 1px solid var(--sw-line); min-width: 0; }
.sw-rank li:first-child { border-top: 0; padding-top: 0; }
.sw-rank-no { flex: 0 0 22px; height: 22px; border-radius: 6px; background: var(--sw-bg); color: var(--sw-muted); font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.sw-rank-no.is-top { background: var(--sw-dark); color: #fff; }
.sw-rank li a { flex: 1; min-width: 0; }
.sw-rank li a b { display: block; font-size: 13px; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-rank li a b em { font-style: normal; color: var(--sw-primary); font-weight: 700; }
.sw-rank li a small { display: block; font-size: 11px; color: var(--sw-muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-rank li a:hover b { color: var(--sw-primary-dark); }

/* 상단 쪽지 종 */
.sw-hd-bell { position: relative; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; font-size: 20px; color: var(--sw-dark); }
.sw-hd-bell:hover { background: var(--sw-bg); }
.sw-hd-bell b { position: absolute; top: 4px; right: 4px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: var(--sw-danger); color: #fff; font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }

/* ---------- 구인 상세 (구해줘쌤즈식: 사진 슬라이드 + 라벨/값 줄 + 하단 고정 버튼) ---------- */
.sw-jv { padding: 0; overflow: hidden; }
.sw-jv-body { padding: 18px 28px 26px; }
.sw-slider { position: relative; background: #0b1120; overflow: hidden; }
.sw-slider-track { display: flex; transition: transform .3s ease; }
.sw-slide { flex: 0 0 100%; aspect-ratio: 16 / 9; max-height: 460px; }
.sw-slide img { width: 100%; height: 100%; object-fit: contain; display: block; }
.sw-slider-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; font-size: 24px; display: inline-flex; align-items: center; justify-content: center; backdrop-filter: blur(3px); }
.sw-slider-btn:hover { background: rgba(255,255,255,.35); }
.sw-slider-btn.is-prev { left: 12px; } .sw-slider-btn.is-next { right: 12px; }
.sw-slider-dots { position: absolute; left: 0; right: 0; bottom: 12px; display: flex; justify-content: center; gap: 6px; }
.sw-slider-dots span { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.45); cursor: pointer; }
.sw-slider-dots span.on { background: #fff; }
.sw-medal { position: absolute; right: 14px; top: 14px; width: 52px; height: 52px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fde68a, #d97706); color: #7c2d12; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,.35); border: 2px solid #fff7d6; }
.sw-medal i { font-size: 16px; line-height: 1; } .sw-medal small { font-size: 8px; font-weight: 900; letter-spacing: .3px; }
.sw-jv-shop-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.sw-jv-shop-row > b { font-size: 15px; }
.sw-jv-shop-row .sw-avatar { background: #e5e7eb; }
.sw-jv-shop-row .sw-avatar img, .sw-jv-shop-row .sw-avatar .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; }
.sw-jv-shop-row .sw-avatar .sw-thumb-text b { font-size: 9px; }
.sw-jv-owner { margin-left: auto; display: flex; gap: 10px; font-size: 13px; color: var(--sw-muted); }
.sw-jv-owner a:hover { color: var(--sw-primary-dark); }
.sw-jv-h { font-size: 24px; font-weight: 800; letter-spacing: -0.4px; line-height: 1.35; margin: 0 0 6px; }
.sw-jv-h .sw-badge { font-size: 12px; vertical-align: 4px; }
.sw-jv-meta { display: flex; gap: 12px; font-size: 13px; color: #9ca3af; padding-bottom: 18px; border-bottom: 1px solid var(--sw-line); margin-bottom: 20px; }
.sw-jv-block { margin-bottom: 26px; }
.sw-jv-block > h3 { font-size: 16px; font-weight: 800; margin: 0 0 12px; }
.sw-jv-rows { margin: 0; }
.sw-jv-rows > div { display: flex; align-items: flex-start; gap: 12px; padding: 8px 0; min-width: 0; }
.sw-jv-rows dt { flex: 0 0 90px; color: #9ca3af; font-size: 14px; font-weight: 500; padding-top: 1px; }
.sw-jv-rows dd { margin: 0; flex: 1; min-width: 0; font-size: 15px; font-weight: 600; color: var(--sw-text); overflow-wrap: anywhere; }
.sw-jv-rows dd.is-strong { font-weight: 800; color: var(--sw-primary-dark); }
.sw-jv-rows dd.is-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.sw-tagpill { display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px; border-radius: 999px; background: #fff; border: 1px solid var(--sw-line-dark); font-size: 13px; font-weight: 600; color: var(--sw-text); }
.sw-tagpill:hover { border-color: var(--sw-primary); color: var(--sw-primary-dark); background: var(--sw-primary-soft); }
.sw-tagpill.is-sm { min-height: 24px; padding: 0 8px; font-size: 12px; margin-left: 6px; color: var(--sw-muted); }
.sw-jv-content { font-size: 15px; line-height: 1.85; color: #374151; }
.sw-jv-content h4 { font-size: 15px; font-weight: 800; color: var(--sw-text); margin: 18px 0 4px; }
.sw-jv-content h4:first-child { margin-top: 0; }
.sw-jv-content p { margin: 0; }
.sw-jv-content img { max-width: 100%; height: auto; border-radius: 10px; }
.sw-job-author-icon img, .sw-job-author-icon .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.sw-job-author-icon .sw-thumb-text b { font-size: 11px; }
.sw-job-notice .sw-btn { margin-top: 10px; }
.sw-jv .sw-comments { margin-top: 10px; padding-top: 18px; border-top: 1px solid var(--sw-line); }
/* 하단 고정 버튼 4개 */
.sw-actionbar { position: sticky; bottom: 0; z-index: 30; margin-top: 16px; padding: 10px 0 12px; background: rgba(255,255,255,.94); backdrop-filter: blur(6px); border-top: 1px solid var(--sw-line); }
.sw-actionbar-in { display: flex; gap: 8px; }
.sw-actionbar-in .sw-btn { flex: 1; min-height: 52px; font-size: 15px; border-radius: 12px; }
.sw-actionbar-in .sw-btn-primary { flex: 1.4; }
.sw-actionbar-in .sw-ab-util { flex: 0 1 auto; }
.sw-actionbar .sw-btn-dark { font-weight: 700; }
body:has(.sw-actionbar) .sw-fixed { bottom: 80px; }

/* 커뮤니티 글 보기 (가벼운 구조) */
.sw-post-byline { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; position: relative; }
.sw-post-byline-text { flex: 1; min-width: 0; }
.sw-post-byline-text b { display: block; font-size: 15px; }
.sw-post-byline-text small { display: block; font-size: 12px; color: #9ca3af; }
.sw-post-byline-text small a { color: var(--sw-muted); font-weight: 600; }
.sw-post-more-btn { width: 36px; height: 36px; border: 0; background: transparent; color: #9ca3af; font-size: 18px; border-radius: 8px; }
.sw-post-more-btn:hover { background: var(--sw-bg); color: var(--sw-text); }
.sw-post-more-menu { position: absolute; right: 0; top: 40px; background: #fff; border: 1px solid var(--sw-line); border-radius: 12px; box-shadow: var(--sw-shadow-hover); padding: 6px; min-width: 150px; z-index: 20; }
.sw-post-more-menu a { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 8px; font-size: 14px; font-weight: 600; }
.sw-post-more-menu a:hover { background: var(--sw-bg); }
.sw-post-more-menu a.is-danger { color: var(--sw-danger); }
.sw-post-more-menu a i { width: 16px; text-align: center; color: var(--sw-muted); }
.sw-post .sw-post-title { font-size: 22px; font-weight: 800; line-height: 1.4; margin: 0 0 18px; padding-bottom: 18px; border-bottom: 1px solid var(--sw-line); }
.sw-post .sw-post-title .sw-clist-cate { vertical-align: 3px; }
.sw-post-rule { font-size: 12px; color: #9ca3af; text-align: center; margin: 0 0 18px; }
.sw-post-rule a { color: var(--sw-muted); text-decoration: underline; text-underline-offset: 3px; }
.sw-post-foot { display: flex; gap: 8px; justify-content: flex-end; padding: 14px 0; border-top: 1px solid var(--sw-line); }

/* 구인 상세: 갤러리 · 근무 조건 표 · 보장 제도 · 상세 내용 (예전 클래스, 호환용) */
.sw-gallery { margin: -22px -24px 18px; background: #0f172a; border-radius: var(--sw-radius) var(--sw-radius) 0 0; overflow: hidden; }
.sw-gallery-main { position: relative; aspect-ratio: 16 / 9; max-height: 480px; }
.sw-gallery-main img { width: 100%; height: 100%; object-fit: contain; display: block; background: #0f172a; }
.sw-gallery-main .sw-card-premium { top: 12px; right: 12px; font-size: 11px; }
.sw-gallery-thumbs { display: flex; gap: 6px; padding: 8px; background: #1f2937; overflow-x: auto; }
.sw-gallery-thumbs button { flex: 0 0 72px; width: 72px; height: 48px; border: 2px solid transparent; border-radius: 8px; overflow: hidden; padding: 0; background: #000; opacity: .6; }
.sw-gallery-thumbs button img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sw-gallery-thumbs button.on { border-color: #facc15; opacity: 1; }
.sw-jv-sec { margin-bottom: 22px; }
.sw-jv-title { font-size: 16px; font-weight: 800; margin: 0 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--sw-dark); display: flex; align-items: center; gap: 6px; }
.sw-jv-table { margin: 0; border: 1px solid var(--sw-line); border-radius: 12px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; }
.sw-jv-table > div { display: flex; min-width: 0; border-bottom: 1px solid var(--sw-line); }
.sw-jv-table > div:nth-child(odd) { border-right: 1px solid var(--sw-line); }
.sw-jv-table > div:nth-last-child(-n+2) { border-bottom: 0; }
.sw-jv-table > div:nth-last-child(1):nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.sw-jv-table dt { flex: 0 0 96px; background: var(--sw-bg); color: var(--sw-muted); font-size: 13px; font-weight: 600; padding: 11px 14px; }
.sw-jv-table dd { margin: 0; flex: 1; min-width: 0; padding: 11px 14px; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.sw-jv-table dd.is-strong { color: var(--sw-primary-dark); font-weight: 800; font-size: 15px; }
.sw-jv-table dd small { color: var(--sw-muted); font-weight: 500; }
.sw-jv-table.is-tags { grid-template-columns: 1fr; }
.sw-jv-table.is-tags > div { border-right: 0; }
.sw-jv-table.is-tags > div:nth-last-child(-n+2) { border-bottom: 1px solid var(--sw-line); }
.sw-jv-table.is-tags > div:last-child { border-bottom: 0; }
.sw-jv-table.is-tags dd { display: flex; flex-wrap: wrap; gap: 6px; padding: 9px 12px; }
.sw-tagpill { display: inline-flex; align-items: center; min-height: 30px; padding: 0 11px; border-radius: 999px; background: #fff; border: 1px solid var(--sw-line-dark); font-size: 13px; font-weight: 600; color: var(--sw-text); }
.sw-tagpill:hover { border-color: var(--sw-primary); color: var(--sw-primary-dark); background: var(--sw-primary-soft); }
.sw-jv-content { font-size: 15px; line-height: 1.8; padding: 4px 2px 0; }
.sw-jv-content h4 { font-size: 15px; font-weight: 800; margin: 18px 0 6px; padding-left: 10px; border-left: 4px solid var(--sw-primary); line-height: 1.3; }
.sw-jv-content h4:first-child { margin-top: 4px; }
.sw-jv-content p { margin: 0; color: #374151; }
.sw-jv-content img { max-width: 100%; height: auto; border-radius: 10px; }
.sw-job-author-icon img, .sw-job-author-icon .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.sw-job-author-icon .sw-thumb-text b { font-size: 11px; }

/* 구인 상세: 작성자·도구·고지 */
.sw-job-author { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--sw-line); border-radius: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.sw-job-author-icon { width: 48px; height: 48px; border-radius: 50%; background: var(--sw-primary-soft); color: var(--sw-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; flex: 0 0 48px; overflow: hidden; }
.sw-job-author-text { flex: 1; min-width: 0; }
.sw-job-author-text b { display: block; font-size: 15px; }
.sw-job-author-text small { color: var(--sw-muted); font-size: 12px; }
.sw-job-toolbar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.sw-job-toolbar .sw-btn { min-height: 48px; }
.sw-job-notice { background: var(--sw-bg); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; font-size: 13px; color: #4b5563; }
.sw-job-notice b { display: block; margin-bottom: 6px; color: var(--sw-text); font-size: 14px; }
.sw-job-notice ul { padding-left: 16px; list-style: disc; line-height: 1.7; }

/* 마이페이지 */
.sw-my { max-width: 900px; margin: 0 auto; }
.sw-my-card { margin-bottom: 16px; }
.sw-my-profile { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 1px solid var(--sw-line); margin-bottom: 16px; }
.sw-my-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--sw-primary-soft); color: var(--sw-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 28px; overflow: hidden; flex: 0 0 64px; }
.sw-my-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-my-avatar.is-sm { width: 44px; height: 44px; flex-basis: 44px; font-size: 20px; }
.sw-my-name { flex: 1; min-width: 160px; }
.sw-my-name b { display: block; font-size: 20px; font-weight: 800; margin-bottom: 6px; }
.sw-my-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.sw-my-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.sw-my-info { background: var(--sw-bg); border-radius: 12px; padding: 6px 16px; }
.sw-my-info li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #e9ebf0; font-size: 14px; }
.sw-my-info li:last-child { border-bottom: 0; }
.sw-my-info li span { color: var(--sw-muted); }
.sw-my-info li b { font-weight: 600; text-align: right; min-width: 0; overflow-wrap: anywhere; }
.sw-my-info li b em { font-style: normal; color: var(--sw-muted); font-weight: 500; }
.sw-my-info li b a { color: var(--sw-primary-dark); margin-left: 6px; font-weight: 700; }
.sw-my-info li b.is-point { color: var(--sw-primary-dark); font-weight: 800; }
.sw-my-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.sw-my-menu h2 { font-size: 15px; font-weight: 800; margin: 0 0 6px; color: var(--sw-muted); }
.sw-my-menu h2 + ul { margin-bottom: 16px; }
.sw-my-menu ul li a { display: flex; align-items: center; gap: 10px; padding: 12px 6px; border-bottom: 1px solid var(--sw-line); font-size: 15px; font-weight: 600; }
.sw-my-menu ul li a:hover { color: var(--sw-primary-dark); }
.sw-my-menu ul li a > i:first-child { width: 20px; text-align: center; color: var(--sw-muted); }
.sw-my-menu ul li a small { color: var(--sw-muted); font-weight: 500; }
.sw-my-menu ul li a .sw-my-arrow { margin-left: auto; color: var(--sw-line-dark); }
.sw-my-menu ul li a.is-muted { color: var(--sw-muted); }

/* 광고금액안내 (/pricing) */
.sw-pricing { max-width: 1040px; margin: 0 auto; }
.sw-pricing-intro { text-align: center; color: var(--sw-muted); font-size: 15px; margin: 0 0 18px; }
.sw-period-tabs { display: flex; justify-content: center; gap: 0; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 999px; padding: 4px; margin: 0 auto 22px; width: fit-content; max-width: 100%; }
.sw-period-tabs button { display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 22px; border: 0; border-radius: 999px; background: transparent; font-size: 15px; font-weight: 700; color: var(--sw-muted); }
.sw-period-tabs button span { font-size: 11px; font-weight: 800; color: var(--sw-danger); background: #fee2e2; padding: 2px 7px; border-radius: 999px; }
.sw-period-tabs button.on { background: var(--sw-dark); color: #fff; }
.sw-period-tabs button.on span { background: #fff; }
.sw-price-amount del { display: inline-block; font-size: 13px; color: #9ca3af; margin-right: 6px; }
.sw-price-amount em { display: inline-block; font-style: normal; font-size: 22px; font-weight: 900; color: var(--sw-danger); margin-right: 6px; vertical-align: baseline; }
.sw-price-amount b.is-ask { font-size: 20px; }
.sw-price-promo { display: inline-block; font-size: 11px; font-weight: 800; color: #fff; background: var(--sw-danger); padding: 2px 8px; border-radius: 999px; vertical-align: 2px; }
.sw-price-vat { display: block; font-size: 12px; color: var(--sw-primary); margin-top: 2px; }
.sw-price-sec { padding: 12px 0; border-top: 1px solid var(--sw-line); }
.sw-price-sec h4 { font-size: 13px; font-weight: 800; margin: 0 0 8px; color: var(--sw-text); }
.sw-price-card .sw-price-sec ul { border: 0; padding: 0; margin: 0; }
.sw-price-card .sw-price-sec li { padding: 4px 0 4px 22px; }
.sw-price-sec li span.is-hl { background: #fef08a; padding: 1px 6px; border-radius: 4px; font-weight: 700; }
.sw-price-card h3 .sw-price-best { position: static; display: inline-block; margin-left: 4px; vertical-align: 3px; background: var(--sw-dark); }
.sw-crown { color: #f59e0b; margin-left: 3px; font-size: 12px; }
.sw-hl { background: linear-gradient(transparent 55%, #fef08a 55%); padding: 0 2px; }
.sw-bolt { color: #f59e0b; margin-right: 3px; }
.sw-notice { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.sw-notice.is-show { opacity: 1; pointer-events: auto; }
.sw-notice-bg { position: absolute; inset: 0; background: rgba(17,24,39,.55); }
.sw-notice-box { position: relative; width: 100%; max-width: 380px; background: #fff; border-radius: 20px; padding: 28px 22px 20px; text-align: center; box-shadow: 0 24px 60px rgba(0,0,0,.3); transform: translateY(14px) scale(.97); transition: transform .22s ease; border-top: 6px solid #16a34a; }
.sw-notice.is-show .sw-notice-box { transform: none; }
.sw-notice.is-err .sw-notice-box { border-top-color: #dc2626; }
.sw-notice-ico { width: 52px; height: 52px; border-radius: 50%; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; background: #16a34a; }
.sw-notice.is-err .sw-notice-ico { background: #dc2626; }
.sw-notice-box h2 { font-size: 19px; font-weight: 800; margin: 0 0 10px; color: var(--sw-text); }
.sw-notice-msg { font-size: 15px; line-height: 1.6; color: #374151; margin: 0 0 8px; word-break: keep-all; background: #f9fafb; border-radius: 12px; padding: 12px 14px; }
.sw-notice-sub { font-size: 13px; color: var(--sw-muted); margin: 0 0 14px; }
.sw-notice-ok { min-width: 140px; margin-top: 6px; }
button.is-busy, input.is-busy, a.is-busy { pointer-events: none; opacity: .55; }

/* 전광판 띠 (홈) */
.sw-billboard { display: flex; align-items: center; gap: 10px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 12px; padding: 0 10px 0 0; margin-bottom: 22px; overflow: hidden; height: 46px; box-shadow: var(--sw-shadow); }
.sw-billboard-label { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; height: 100%; padding: 0 14px; background: var(--sw-dark); color: #fde68a; font-size: 13px; font-weight: 800; }
.sw-billboard-wrap { flex: 1; min-width: 0; overflow: hidden; height: 100%; display: flex; align-items: center; -webkit-mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); }
.sw-billboard-track { display: flex; gap: 34px; white-space: nowrap; width: max-content; padding-right: 34px; animation: sw-ticker 60s linear infinite; }
.sw-billboard:hover .sw-billboard-track { animation-play-state: paused; }
.sw-billboard-item { font-size: 14px; color: var(--sw-text); }
.sw-billboard-item b { color: var(--sw-primary-dark); margin-right: 4px; }
.sw-billboard-write { flex: 0 0 auto; font-size: 13px; font-weight: 700; color: var(--sw-muted); }
.sw-billboard-write:hover { color: var(--sw-primary-dark); }
.sw-shop-hero { display: flex; gap: 18px; align-items: flex-start; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 18px; padding: 22px; box-shadow: var(--sw-shadow); margin-bottom: 18px; flex-wrap: wrap; }
.sw-shop-avatar { flex: none; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: var(--sw-bg); box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--sw-line); }
.sw-shop-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-shop-text { flex: 1; min-width: 240px; }
.sw-shop-text h1 { font-size: 24px; font-weight: 900; margin: 4px 0 8px; letter-spacing: -.3px; }
.sw-shop-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--sw-muted); margin: 0 0 10px; }
.sw-shop-meta .fa { margin-right: 3px; }
.sw-shop-intro { font-size: 14px; line-height: 1.6; color: var(--sw-text); background: var(--sw-bg); border-radius: 12px; padding: 12px 14px; margin: 0; }
.sw-shop-actions { display: flex; flex-direction: column; gap: 8px; align-items: stretch; min-width: 150px; }
.sw-shop-actions form { display: contents; }
.sw-btn.is-on { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }
.sw-job-author-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.sw-check-row { display: flex; gap: 16px; flex-wrap: wrap; }
.sw-check { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; cursor: pointer; }
.sw-check small { font-weight: 500; color: var(--sw-muted); }
.sw-sec-title { font-size: 17px; font-weight: 800; margin: 0 0 10px; }
.sw-ap-msg { font-size: 14px; line-height: 1.55; color: var(--sw-text); background: var(--sw-bg); border-radius: 10px; padding: 10px 12px; margin: 6px 0; }
.sw-alert-form .sw-form-inline { flex-wrap: wrap; }
.sw-alert-form select { min-width: 140px; }
@media (max-width: 640px) { .sw-shop-hero { padding: 16px; } .sw-shop-actions { width: 100%; flex-direction: row; } .sw-shop-actions .sw-btn { flex: 1; } }
.sw-myad-bb { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 10px; padding: 10px 12px; background: #0f172a; border-radius: 12px; color: #e2e8f0; }
.sw-myad-bb-label { font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; color: #fde68a; }
.sw-myad-bb .frm_input { flex: 1; min-width: 180px; background: #1e293b; border: 1px solid #334155; color: #fff; border-radius: 8px; padding: 8px 10px; font-size: 14px; }
.sw-myad-bb .frm_input::placeholder { color: #94a3b8; }
.sw-myad-bb .sw-btn { background: #1e293b; color: #e2e8f0; border-color: #334155; }
.sw-myad-bb .sw-btn.sw-btn-primary { background: var(--sw-primary); color: #fff; border-color: transparent; }
.sw-myad-bb .sw-btn[disabled] { opacity: .45; }
.sw-bb-item.is-post .sw-bb-avatar { box-shadow: 0 0 0 2px #0b1220, 0 0 0 4px #64748b; }
.sw-shop-ini { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-weight: 800; letter-spacing: -.02em; text-shadow: 0 1px 2px rgba(0,0,0,.25); flex: 0 0 auto; }
.sw-seek-filter { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.sw-seek-filter select { padding: 8px 10px; border: 1px solid var(--sw-line); border-radius: 8px; font-size: 14px; }
.sw-ap-pick { display: flex; align-items: center; padding-right: 4px; }
.sw-ap-pick input { width: 18px; height: 18px; }
.sw-ap-bulk { margin-top: 16px; border: 1px solid var(--sw-line); border-radius: 14px; padding: 0; background: var(--sw-card); overflow: hidden; box-shadow: var(--sw-shadow); }
.sw-ap-bulk-head { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 13px 16px; background: var(--sw-primary-soft); border-bottom: 1px solid var(--sw-line); }
.sw-ap-bulk-title { font-size: 14.5px; font-weight: 800; color: var(--sw-primary-dark); display: inline-flex; align-items: center; gap: 7px; }
.sw-ap-bulk-count { font-size: 13px; font-weight: 700; color: var(--sw-primary); background: #fff; border-radius: 999px; padding: 4px 12px; }
.sw-ap-bulk-ctrl { display: flex; gap: 12px 18px; align-items: flex-end; flex-wrap: wrap; padding: 14px 16px 0; }
.sw-ap-bulk-field { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 700; color: var(--sw-muted); flex: 1 1 280px; }
.sw-ap-bulk-field select { height: 44px; }
.sw-ap-bulk-opt { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--sw-text); padding-bottom: 11px; white-space: nowrap; }
.sw-ap-bulk-opt .fa { color: var(--sw-primary); }
.sw-ap-bulk-opt small { color: var(--sw-muted); font-weight: 500; }
.sw-ap-bulk-ta { margin: 10px 16px 0; width: calc(100% - 32px); }
.sw-ap-bulk-foot { display: flex; justify-content: flex-end; padding: 12px 16px 16px; }
@media (max-width: 640px) { .sw-ap-bulk-field { flex-basis: 100%; } .sw-ap-bulk-foot .sw-btn { width: 100%; } }
.sw-cards-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 760px) { .sw-cards-4 { grid-template-columns: repeat(2, 1fr); } }
.sw-calc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.sw-calc-card { margin: 0; }
.sw-calc-rows { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 12px; }
.sw-calc-rows label { font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.sw-calc-rows input[type=number] { width: 120px; padding: 8px 10px; border: 1px solid var(--sw-line); border-radius: 8px; font-size: 15px; font-weight: 700; }
.sw-calc-out { display: flex; gap: 10px; flex-wrap: wrap; }
.sw-calc-out > div { flex: 1; min-width: 150px; background: var(--sw-bg); border-radius: 12px; padding: 10px 12px; }
.sw-calc-out small { display: block; font-size: 12px; color: var(--sw-muted); margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-calc-out b { font-size: 18px; font-weight: 900; color: var(--sw-primary-dark); letter-spacing: -.3px; white-space: nowrap; }
@media (max-width: 760px) { .sw-calc-grid { grid-template-columns: 1fr; } .sw-calc-out b { font-size: 18px; } }
.sw-bb-hero { position: relative; overflow: hidden; border-radius: 18px; padding: 24px 24px 0; color: #fff; background: radial-gradient(120% 140% at 0% 0%, #1e3a8a 0%, #0f172a 55%, #111827 100%); box-shadow: var(--sw-shadow); margin-bottom: 14px; display: grid; grid-template-columns: 1fr auto; gap: 14px 24px; align-items: center; }
.sw-bb-hero:before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 2px, transparent 2px 14px); pointer-events: none; }
.sw-bb-hero-text { position: relative; }
.sw-bb-hero-text h2 { font-size: 24px; font-weight: 900; margin: 0 0 6px; letter-spacing: -.3px; }
.sw-bb-hero-text h2 .fa { color: #fde68a; margin-right: 4px; }
.sw-bb-hero-text p { margin: 0 0 10px; color: #cbd5e1; font-size: 14px; }
.sw-bb-stats { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; color: #94a3b8; }
.sw-bb-stats b { color: #fde68a; font-size: 18px; margin-right: 2px; }
.sw-bb-hero-cta { position: relative; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.sw-bb-hero-link { font-size: 13px; color: #93c5fd; font-weight: 600; }
.sw-bb-strip { grid-column: 1 / -1; position: relative; margin: 4px -24px 0; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.25); overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent); }
.sw-bb-strip-track { display: flex; gap: 40px; width: max-content; white-space: nowrap; animation: sw-ticker 70s linear infinite; font-size: 14px; color: #e2e8f0; }
.sw-bb-strip:hover .sw-bb-strip-track { animation-play-state: paused; }
.sw-bb-strip-item b { color: #fde68a; margin-right: 6px; }
.sw-bb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sw-bb-item { --neon: #7ee8ff; position: relative; display: flex; align-items: center; gap: 14px; padding: 14px 18px 14px 14px; border-radius: 16px; background: linear-gradient(90deg, #0b1220, #111827 60%, #0f172a); border: 1px solid rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(0,0,0,.4), 0 6px 18px rgba(2,6,23,.25); color: #fff; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.sw-bb-item:before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--neon); box-shadow: 0 0 14px var(--neon); }
.sw-bb-item:after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 4px); pointer-events: none; }
.sw-bb-item:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(2,6,23,.45), 0 0 0 1px color-mix(in srgb, var(--neon) 40%, transparent); }
.sw-bb-item.is-notice { background: linear-gradient(90deg, #3b2f0b, #1f2937 60%); }
.sw-bb-no { flex: none; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12px; color: #64748b; width: 22px; text-align: center; }
.sw-bb-avatar { flex: none; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #1f2937; color: #94a3b8; font-size: 22px; box-shadow: 0 0 0 2px #0b1220, 0 0 0 4px var(--neon), 0 0 18px var(--neon); }
.sw-bb-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-bb-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; color: inherit; position: relative; z-index: 1; }
.sw-bb-text { font-size: 20px; font-weight: 900; letter-spacing: -.2px; line-height: 1.25; color: var(--neon); text-shadow: 0 0 10px color-mix(in srgb, var(--neon) 55%, transparent), 0 0 24px color-mix(in srgb, var(--neon) 25%, transparent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-bb-new { display: inline-block; margin-left: 8px; font-size: 10px; font-weight: 800; padding: 2px 6px; border-radius: 999px; background: #ef4444; color: #fff; text-shadow: none; vertical-align: middle; animation: sw-blink 1.6s steps(2) infinite; }
@keyframes sw-blink { 50% { opacity: .35; } }
.sw-bb-sub { font-size: 13px; color: #cbd5e1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-bb-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 12px; color: #94a3b8; }
.sw-bb-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.08); color: #e2e8f0; }
.sw-bb-chip.is-who { font-weight: 700; }
.sw-bb-chip.is-x2 { background: #fde68a; color: #111827; font-weight: 800; border-color: transparent; }
.sw-bb-time { margin-left: auto; }
@media (max-width: 760px) {
  .sw-bb-hero { grid-template-columns: 1fr; padding: 18px 16px 0; } .sw-bb-hero-cta { align-items: flex-start; } .sw-bb-strip { margin: 0 -16px; }
  .sw-bb-item { padding: 12px 12px 12px 12px; gap: 10px; } .sw-bb-no { display: none; } .sw-bb-avatar { width: 44px; height: 44px; } .sw-bb-text { font-size: 17px; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .sw-bb-time { margin-left: 0; width: 100%; }
}
.sw-clist-hidden { padding: 10px 4px; font-size: 13px; color: var(--sw-muted); }
.sw-clist-hidden a { color: var(--sw-primary-dark); font-weight: 600; margin-left: 6px; }
.sw-cm-blocked { color: #9ca3af; font-size: 13px; }
.sw-block-form button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 12px; border: 0; background: transparent; border-radius: 8px; font-size: 14px; font-weight: 600; text-align: left; color: var(--sw-text); }
.sw-block-form button:hover { background: var(--sw-bg); }
.sw-block-form button.is-danger { color: var(--sw-danger); }
.sw-block-form button i { width: 16px; text-align: center; color: var(--sw-muted); }
.sw-modal-box.is-small { height: auto; width: min(480px, 100%); }
/* 공지 팝업 */
.sw-popup { position: fixed; inset: 0; z-index: 130; display: flex; align-items: center; justify-content: center; padding: 16px; }
.sw-popup-bg { position: absolute; inset: 0; background: rgba(17,24,39,.5); }
.sw-popup-box { position: relative; width: min(440px, 100%); background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.3); overflow: hidden; animation: sw-pop .18s ease-out; display: flex; flex-direction: column; }
.sw-popup-mascot { width: 64px; height: 64px; margin: 22px auto 0; }
.sw-popup-head { background: linear-gradient(135deg, var(--sw-primary-dark), var(--sw-primary) 65%, #60a5fa); padding: 26px 22px 20px; text-align: center; position: relative; overflow: hidden; }
.sw-popup-head::after { content: ""; position: absolute; right: -30px; top: -42px; width: 130px; height: 130px; border-radius: 50%; background: rgba(255,255,255,.12); }
.sw-popup-badge { position: relative; display: inline-flex; width: 76px; height: 76px; border-radius: 50%; background: rgba(255,255,255,.2); align-items: center; justify-content: center; margin-bottom: 12px; box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.sw-popup-badge img { width: 52px; height: 52px; }
.sw-popup-head .sw-popup-title { color: #fff; font-size: 20px; margin: 0; position: relative; }
.sw-popup-body { padding: 20px 26px 22px; text-align: center; }
.sw-popup-title { display: block; font-size: 19px; font-weight: 800; letter-spacing: -0.3px; margin-bottom: 8px; }
.sw-popup-text { margin: 0 auto; max-width: 340px; color: #4b5563; font-size: 15px; line-height: 1.65; word-break: keep-all; }
.sw-popup-link { margin-top: 18px; min-width: 72%; min-height: 48px; font-size: 15.5px; border-radius: 12px; }
.sw-popup-img { display: block; }
.sw-popup-img img { display: block; width: 100%; height: auto; }
.sw-popup-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px; background: var(--sw-bg); border-top: 1px solid var(--sw-line); font-size: 13px; }
.sw-popup-foot .sw-check { color: var(--sw-muted); }
.sw-popup-close { border: 0; background: transparent; font-weight: 700; font-size: 14px; padding: 8px 10px; border-radius: 8px; }
.sw-popup-close:hover { background: #fff; }
.sw-popup.is-bar { align-items: flex-end; pointer-events: none; }
.sw-popup.is-bar .sw-popup-box { pointer-events: auto; width: min(760px, 100%); flex-direction: row; align-items: center; border-radius: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.2); border: 1px solid var(--sw-line); }
.sw-popup.is-bar .sw-popup-mascot { width: 48px; height: 48px; margin: 0 0 0 14px; flex: 0 0 48px; }
.sw-popup.is-bar .sw-popup-body { text-align: left; padding: 12px 14px; flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.sw-popup.is-bar .sw-popup-title { font-size: 15px; margin: 0; }
.sw-popup.is-bar .sw-popup-text { font-size: 13px; }
.sw-popup.is-bar .sw-popup-link { margin: 0; min-width: 0; min-height: 36px; padding: 0 12px; font-size: 13px; }
.sw-popup.is-bar .sw-popup-foot { border: 0; background: transparent; padding: 8px 10px; flex-direction: column; align-items: flex-end; gap: 2px; }
@media (max-width: 640px) { .sw-popup { padding: 12px; } .sw-popup.is-bar { padding-bottom: 72px; } .sw-popup.is-bar .sw-popup-box { flex-wrap: wrap; } .sw-popup.is-bar .sw-popup-foot { flex-direction: row; width: 100%; justify-content: space-between; } }
.sw-apply-form { padding: 16px; }
.sw-apply-form p { margin: 0 0 12px; font-size: 14px; color: var(--sw-muted); line-height: 1.6; }
.sw-qa .sw-tag.is-done { background: #dcfce7; color: #166534; } .sw-qa .sw-tag.is-wait { background: #fef3c7; color: #92400e; }
.sw-qa-view .sw-tag.is-done { background: #dcfce7; color: #166534; } .sw-qa-view .sw-tag.is-wait { background: #fef3c7; color: #92400e; }
.sw-qa-answer { background: var(--sw-bg); border-radius: 14px; padding: 18px 20px; margin: 18px 0; }
.sw-qa-answer-title { font-size: 15px; font-weight: 800; margin: 0 0 8px; }
.sw-qa-answer-title small { font-weight: 500; color: var(--sw-muted); font-size: 12px; }
.sw-qa-answer.is-wait { display: flex; align-items: center; gap: 14px; }
.sw-qa-answer.is-wait b { display: block; font-size: 15px; } .sw-qa-answer.is-wait small { color: var(--sw-muted); }
.sw-qa-answer-form { background: #fff; border: 1px solid var(--sw-line); }
.sw-files { margin: 0 0 16px; } .sw-files li a { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--sw-primary-dark); }

/* 내 광고 관리 */
.sw-myads { max-width: 920px; margin: 0 auto; }
.sw-myads-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: var(--sw-dark); color: #fff; border-radius: 14px; padding: 18px 20px; margin-bottom: 16px; flex-wrap: wrap; }
.sw-myads-plan b { display: block; font-size: 17px; }
.sw-myads-plan small { display: block; color: #cbd5e1; font-size: 13px; margin-top: 4px; }
.sw-myads-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.sw-myad { display: flex; gap: 16px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 14px; padding: 16px; margin-bottom: 12px; box-shadow: var(--sw-shadow); }
.sw-myad.is-off { opacity: .65; }
.sw-myad-thumb { flex: 0 0 180px; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: #e5e7eb; }
.sw-myad-thumb img, .sw-myad-thumb .sw-thumb-text { width: 100%; height: 100%; object-fit: cover; }
.sw-myad-body { flex: 1; min-width: 0; }
.sw-myad-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.sw-myad-title { font-size: 16px; font-weight: 800; min-width: 0; }
.sw-myad-badges { display: flex; gap: 4px; flex-wrap: wrap; }
.sw-myad-stats { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--sw-muted); margin: 8px 0 12px; }
.sw-myad-form { display: flex; gap: 6px; flex-wrap: wrap; }
.sw-myad-form .sw-btn small { font-weight: 500; opacity: .85; }
.sw-myad-form .sw-btn.is-on { border-color: var(--sw-primary); color: var(--sw-primary-dark); background: var(--sw-primary-soft); }
.sw-myads-bb { margin-top: 28px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 14px; padding: 18px; box-shadow: var(--sw-shadow); }
.sw-myads-bb-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.sw-myads-bb-head h2 { font-size: 17px; font-weight: 800; margin: 0; }
.sw-myads-bb-head h2 .fa { color: #f59e0b; margin-right: 4px; }
.sw-myads-bb-meta { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.sw-myads-bb-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--sw-line); flex-wrap: wrap; }
.sw-myads-bb-txt { min-width: 0; flex: 1; }
.sw-myads-bb-txt a { font-weight: 700; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-myads-bb-txt small { display: block; color: var(--sw-muted); font-size: 12px; margin-top: 2px; }
.sw-paywall { background: var(--sw-bg); border: 1px dashed var(--sw-line-dark); border-radius: 14px; padding: 28px 20px; text-align: center; margin: 10px 0 20px; }
.sw-paywall h3 { font-size: 18px; margin: 0 0 6px; }
.sw-paywall p { color: var(--sw-muted); font-size: 14px; margin: 0 0 14px; line-height: 1.6; }
.sw-paywall .sw-btn { margin: 0 3px; }
.sw-price-card h3 i { color: var(--sw-primary); margin-right: 2px; }
.sw-price-extra { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 20px; background: #fff; border: 1px solid var(--sw-line); border-radius: 14px; padding: 22px; margin-bottom: 22px; box-shadow: var(--sw-shadow); }
.sw-price-extra-main h3 { font-size: 18px; font-weight: 800; margin: 0 0 4px; } .sw-price-extra-main h3 i { color: var(--sw-accent); }
.sw-price-extra-main p { color: var(--sw-muted); font-size: 14px; margin: 0 0 12px; }
.sw-price-extra-main ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sw-price-extra-main ul li { font-size: 13px; font-weight: 600; background: var(--sw-bg); padding: 6px 10px; border-radius: 8px; }
.sw-price-extra-main ul li::before { content: "✓ "; color: #16a34a; font-weight: 900; }
.sw-price-extra-side { display: flex; flex-direction: column; justify-content: center; gap: 10px; text-align: right; }
.sw-price-extra-side b { font-size: 24px; font-weight: 900; color: var(--sw-primary-dark); display: block; }
.sw-price-extra-side del { display: block; font-size: 13px; color: #9ca3af; } .sw-price-extra-side em { font-style: normal; font-size: 13px; font-weight: 800; color: var(--sw-danger); } .sw-price-extra-side small { color: var(--sw-muted); }
.sw-price-intro { color: var(--sw-muted); font-size: 14px; margin-bottom: 18px; }
.sw-price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.sw-price-card { position: relative; background: #fff; border: 1px solid var(--sw-line); border-radius: 14px; padding: 22px 20px 20px; box-shadow: var(--sw-shadow); display: flex; flex-direction: column; }
.sw-price-card.is-best { border: 2px solid var(--sw-primary); }
/* 노출 위치 미리보기 버튼 + 모달 */
.sw-price-foot { margin-top: auto; padding-top: 14px; }   /* 노출위치 + 신청 버튼을 카드 맨 아래에 정렬 (카드마다 높이 달라도 버튼은 한 줄로) */
.sw-place-btn { margin-top: 2px; margin-bottom: 10px; width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; border: 1px dashed var(--sw-primary); background: var(--sw-primary-soft); color: var(--sw-primary-dark); border-radius: 10px; font-size: 13px; font-weight: 700; cursor: pointer; transition: background .14s; }
.sw-place-btn:hover { background: #dbe4fe; }
.sw-price-extra .sw-place-btn { width: auto; padding: 0 14px; margin-top: 10px; }
.sw-place-box { width: min(440px, 100%); height: auto; max-height: 92vh; display: flex; flex-direction: column; padding: 0; border-radius: 20px; overflow: hidden; }
.sw-place-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--sw-line); }
.sw-place-head b { font-size: 16px; display: inline-flex; align-items: center; gap: 7px; } .sw-place-head b i { color: var(--sw-primary); }
.sw-place-head .sw-modal-x { position: static; }
.sw-place-tabs { display: flex; gap: 6px; padding: 12px 18px 0; flex-wrap: wrap; }
.sw-place-tabs button { border: 1px solid var(--sw-line); background: #fff; color: var(--sw-muted); border-radius: 999px; padding: 7px 13px; font-size: 13px; font-weight: 700; cursor: pointer; }
.sw-place-tabs button.on { background: var(--sw-primary); color: #fff; border-color: var(--sw-primary); }
.sw-place-view { padding: 12px 18px 18px; overflow-y: auto; }
.sw-place-cap { margin: 4px 0 12px; font-size: 14px; color: var(--sw-text); line-height: 1.55; }
.sw-place-phone { background: #0f172a; border-radius: 22px; padding: 10px; max-width: 300px; margin: 0 auto; box-shadow: 0 12px 30px rgba(15,23,42,.35); }
.sw-place-phone img { width: 100%; display: block; border-radius: 14px; }
.sw-place-foot { margin: 12px 0 0; font-size: 12px; color: var(--sw-muted); text-align: center; }
.sw-price-best { position: absolute; top: -12px; left: 20px; background: var(--sw-primary); color: #fff; font-size: 12px; font-weight: 800; padding: 3px 10px; border-radius: 999px; }
.sw-price-card h3 { font-size: 18px; font-weight: 800; margin: 0 0 4px; }
.sw-price-desc { color: var(--sw-muted); font-size: 13px; margin: 0 0 14px; }
.sw-price-amount { margin: 0 0 14px; } .sw-price-amount b { font-size: 24px; font-weight: 900; color: var(--sw-primary-dark); } .sw-price-amount small { color: var(--sw-muted); margin-left: 4px; }
.sw-price-card ul { list-style: none; padding: 14px 0; border-top: 1px solid var(--sw-line); margin: 0 0 16px; flex: 1; }
.sw-price-card ul li { position: relative; padding: 5px 0 5px 22px; font-size: 14px; }
.sw-price-card ul li::before { content: "✓"; position: absolute; left: 2px; color: #16a34a; font-weight: 900; }
.sw-price-note { background: var(--sw-bg); border-radius: 12px; padding: 16px 18px; font-size: 14px; }
.sw-price-note h3 { font-size: 15px; margin: 0 0 8px; }
.sw-price-note ol { padding-left: 18px; list-style: decimal; line-height: 1.8; }
.sw-price-note p { margin: 8px 0 0; color: var(--sw-muted); }
.sw-price-note a { color: var(--sw-primary-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#bo_content, .sw-content { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 22px 24px; line-height: 1.8; font-size: 15px; box-shadow: var(--sw-shadow); }
#bo_content h3 { font-size: 17px; margin: 18px 0 8px; }

/* 내용관리 페이지(약관·규정·FAQ) — .sw-doc */
#bo_content.sw-doc { background: none; border: 0; padding: 0; box-shadow: none; line-height: 1.7; }
.sw-doc-head { display: flex; align-items: center; gap: 16px; padding: 22px 24px; border-radius: var(--sw-radius); background: linear-gradient(135deg, #0f172a, #1e3a8a); color: #fff; position: relative; overflow: hidden; }
.sw-doc-head::after { content: ""; position: absolute; right: -40px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.07); pointer-events: none; }   /* 장식 원이 버튼 클릭을 막지 않게 */
.sw-doc-head-icon { flex: none; width: 56px; height: 56px; border-radius: 16px; background: rgba(255,255,255,.14); display: flex; align-items: center; justify-content: center; font-size: 26px; color: #fde68a; }
.sw-doc-head-text { flex: 1; min-width: 0; position: relative; }
.sw-doc-head-text h2 { margin: 0 0 4px; font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.sw-doc-head-text p { margin: 0; color: #cbd5e1; font-size: 14px; }
.sw-doc-edit { position: relative; z-index: 1; background: rgba(255,255,255,.12); color: #fff; border-color: transparent; }
.sw-doc-edit:hover { background: rgba(255,255,255,.22); color: #fff; }
.sw-doc-nav { display: flex; gap: 8px; flex-wrap: wrap; padding: 14px 2px 6px; }   /* 폭을 넘치면 줄바꿈 (한 줄 스크롤은 끝이 잘려 보여서 안 씀) */
.sw-doc-nav .sw-chip { white-space: nowrap; }
.sw-doc-body { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 8px; }
.sw-doc:not(.has-toc) .sw-doc-body { grid-template-columns: minmax(0, 1fr); }
.sw-doc-toc { position: sticky; top: 76px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 14px 16px; font-size: 13px; }
.sw-doc-toc b { display: block; margin-bottom: 8px; font-size: 13px; color: var(--sw-muted); letter-spacing: .04em; }
.sw-doc-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.sw-doc-toc li { counter-increment: toc; display: flex; gap: 8px; padding: 5px 0; border-top: 1px dashed var(--sw-line); }
.sw-doc-toc li:first-child { border-top: 0; }
.sw-doc-toc li::before { content: counter(toc); flex: none; width: 18px; height: 18px; border-radius: 6px; background: var(--sw-primary-soft); color: var(--sw-primary-dark); font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.sw-doc-toc a { color: var(--sw-text); }
.sw-doc-toc a:hover { color: var(--sw-primary-dark); }
.sw-doc-article { padding: 8px 28px 24px; font-size: 15.5px; }
.sw-doc-article > p:first-child { font-size: 16px; color: var(--sw-text); background: var(--sw-bg); border-radius: 12px; padding: 14px 16px; margin: 16px 0 6px; }
.sw-doc-article h3 { display: flex; align-items: center; gap: 10px; font-size: 18px; margin: 30px 0 10px; padding-bottom: 10px; border-bottom: 2px solid var(--sw-line); scroll-margin-top: 80px; }
.sw-doc-article h3:first-of-type { margin-top: 18px; }
.sw-doc-num { flex: none; width: 28px; height: 28px; border-radius: 9px; background: var(--sw-primary); color: #fff; font-size: 13px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.sw-doc-article p { margin: 8px 0; }
.sw-doc-article ul, .sw-doc-article ol { margin: 8px 0 8px 2px; padding-left: 0; list-style: none; }
.sw-doc-article ul li, .sw-doc-article ol li { position: relative; padding: 8px 12px 8px 36px; margin: 4px 0; background: var(--sw-bg); border-radius: 10px; }
.sw-doc-article ul li::before { content: "\f00c"; font-family: FontAwesome; position: absolute; left: 13px; top: 9px; color: var(--sw-primary); font-size: 13px; }
.sw-doc-article ol { counter-reset: doc; }
.sw-doc-article ol li { counter-increment: doc; }
.sw-doc-article ol li::before { content: counter(doc); position: absolute; left: 10px; top: 9px; width: 20px; height: 20px; border-radius: 50%; background: var(--sw-primary); color: #fff; font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.sw-doc-article a { color: var(--sw-primary-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.sw-doc-article .text-muted { margin-top: 22px; padding: 12px 14px; border-left: 4px solid #f59e0b; background: #fffbeb; border-radius: 0 10px 10px 0; color: #92400e; font-size: 14px; }
.sw-doc-cta { margin-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 18px 22px; border-radius: var(--sw-radius); background: var(--sw-card); border: 1px solid var(--sw-line); box-shadow: var(--sw-shadow); }
.sw-doc-cta-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sw-doc-cta-text b { font-size: 16px; }
.sw-doc-cta-text span { color: var(--sw-muted); font-size: 13.5px; }
.sw-doc-cta-btns { display: flex; gap: 8px; flex: none; }
/* FAQ */
.sw-faq-tools { margin-top: 8px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 14px 16px; box-shadow: var(--sw-shadow); }
.sw-faq-search { display: flex; align-items: center; gap: 10px; background: var(--sw-bg); border: 2px solid transparent; border-radius: 14px; padding: 0 14px; height: 50px; transition: border-color .15s; }
.sw-faq-search:focus-within { border-color: var(--sw-primary); background: #fff; }
.sw-faq-search i { color: var(--sw-muted); }
.sw-faq-search input { flex: 1; border: 0; background: none; font-size: 16px; height: 100%; outline: none; min-width: 0; }
.sw-faq-search button { border: 0; background: var(--sw-line); width: 26px; height: 26px; border-radius: 50%; cursor: pointer; color: var(--sw-muted); }
.sw-faq-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.sw-faq-cats .sw-chip { cursor: pointer; }
.sw-faq-cats .sw-chip small { opacity: .7; font-weight: 600; margin-left: 2px; }
.sw-faq-list { margin-top: 14px; }
.sw-faq-group { font-size: 14px; color: var(--sw-muted); margin: 22px 4px 8px; letter-spacing: .02em; display: flex; align-items: center; gap: 8px; }
.sw-faq-group::after { content: ""; flex: 1; height: 1px; background: var(--sw-line); }
.sw-faq-item { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 14px; margin-bottom: 8px; overflow: hidden; transition: box-shadow .15s, border-color .15s; }
.sw-faq-item[open] { border-color: var(--sw-primary); box-shadow: 0 6px 20px rgba(37,99,235,.10); }
.sw-faq-item summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 16px 18px; cursor: pointer; font-size: 16px; font-weight: 700; -webkit-tap-highlight-color: transparent; }
.sw-faq-item summary::-webkit-details-marker { display: none; }
.sw-faq-item summary:hover { background: var(--sw-bg); }
.sw-faq-item summary > i { margin-left: auto; color: var(--sw-muted); transition: transform .2s; }
.sw-faq-item[open] summary > i { transform: rotate(180deg); color: var(--sw-primary); }
.sw-faq-q-mark, .sw-faq-a-mark { flex: none; width: 28px; height: 28px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
.sw-faq-q-mark { background: var(--sw-primary); color: #fff; }
.sw-faq-a-mark { background: #fde68a; color: #92400e; }
.sw-faq-q { flex: 1; min-width: 0; }
.sw-faq-a { display: flex; gap: 12px; padding: 0 18px 18px; font-size: 15px; color: var(--sw-text); border-top: 1px dashed var(--sw-line); padding-top: 14px; margin: 0 0 0 0; }
.sw-faq-a-body { flex: 1; min-width: 0; line-height: 1.75; }
.sw-faq-a-body p { margin: 0 0 8px; }
.sw-faq-a-body p:last-child { margin-bottom: 0; }
.sw-faq-a-body a { color: var(--sw-primary-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.sw-faq-a-body ul, .sw-faq-a-body ol { margin: 6px 0; padding-left: 20px; }
.sw-faq-empty { text-align: center; color: var(--sw-muted); padding: 30px 10px; background: var(--sw-card); border: 1px dashed var(--sw-line); border-radius: 14px; }
@media (max-width: 900px) { .sw-doc-body { grid-template-columns: minmax(0, 1fr); } .sw-doc-toc { position: static; } }
@media (max-width: 640px) {
  .sw-doc-head { padding: 18px 16px; gap: 12px; } .sw-doc-head-icon { width: 46px; height: 46px; font-size: 22px; border-radius: 13px; } .sw-doc-head-text h2 { font-size: 20px; } .sw-doc-edit { position: absolute; right: 12px; top: 12px; }
  .sw-doc-article { padding: 4px 16px 18px; font-size: 15px; } .sw-doc-article h3 { font-size: 16.5px; margin-top: 24px; }
  .sw-doc-cta { padding: 16px; } .sw-doc-cta-btns { width: 100%; } .sw-doc-cta-btns .sw-btn { flex: 1; }
  .sw-faq-item summary { padding: 14px 14px; font-size: 15px; } .sw-faq-a { padding: 12px 14px 14px; font-size: 14.5px; }
}

/* DM 메신저 (/dm) */
.sw-dm { display: grid; grid-template-columns: 340px minmax(0, 1fr); height: min(74vh, 660px); background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 16px; overflow: hidden; box-shadow: var(--sw-shadow); margin: 8px 0 20px; }
.sw-dm-side { display: flex; flex-direction: column; border-right: 1px solid var(--sw-line); min-width: 0; }
.sw-dm-side-head { padding: 16px 16px 10px; border-bottom: 1px solid var(--sw-line); }
.sw-dm-side-head h2 { font-size: 22px; font-weight: 800; margin: 0 0 10px; display: flex; align-items: center; gap: 6px; }
.sw-dm-side-head h2::before { content: "\f0e0"; font-family: FontAwesome; font-size: 16px; color: var(--sw-primary); }
.sw-dm-mydmid { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; color: var(--sw-muted); }
.sw-dm-mydmid > span b { color: var(--sw-primary-dark); }
.sw-dm-mini { border: 1px solid var(--sw-line); background: #fff; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 700; color: var(--sw-text); cursor: pointer; }
.sw-dm-mini.is-accent { background: var(--sw-accent-soft); border-color: #fde68a; color: #7c4a00; }
.sw-dm-mini.is-dark { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
.sw-dm-search { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--sw-line); color: var(--sw-muted); }
.sw-dm-search input { flex: 1; border: 0; background: none; font-size: 14px; outline: none; min-width: 0; }
.sw-dm-convs { list-style: none; margin: 0; padding: 0; overflow-y: auto; flex: 1; }
.sw-dm-conv { display: flex; gap: 10px; align-items: center; padding: 12px 14px; cursor: pointer; border-bottom: 1px solid var(--sw-bg); }
.sw-dm-conv:hover { background: var(--sw-bg); } .sw-dm-conv.on { background: var(--sw-primary-soft); }
.sw-dm-conv-av { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; }
.sw-dm-conv-av img { width: 100%; height: 100%; object-fit: cover; }
.sw-dm-conv-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sw-dm-conv-main b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-dm-conv-main small { font-size: 13px; color: var(--sw-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-dm-conv-meta { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.sw-dm-conv-meta em { font-size: 11px; color: #9ca3af; font-style: normal; }
.sw-dm-badge { background: #ef4444; color: #fff; font-size: 11px; font-weight: 800; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; }
.sw-dm-none, .sw-dm-loading { padding: 30px 16px; text-align: center; color: var(--sw-muted); font-size: 13px; line-height: 1.6; }
.sw-dm-more { padding: 10px; text-align: center; } .sw-dm-more button { border: 1px solid var(--sw-line); background: #fff; border-radius: 999px; padding: 7px 16px; font-size: 13px; font-weight: 700; color: var(--sw-muted); cursor: pointer; } .sw-dm-more button:hover { color: var(--sw-primary-dark); border-color: var(--sw-primary); }
.sw-dm-chat { display: flex; flex-direction: column; min-width: 0; background: var(--sw-bg); }
.sw-dm-empty { margin: auto; text-align: center; color: var(--sw-muted); } .sw-dm-empty p { margin: 10px 0 0; }
.sw-dm-thread { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.sw-dm-chat-head { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: #fff; border-bottom: 1px solid var(--sw-line); }
.sw-dm-back { display: none; border: 0; background: none; font-size: 22px; color: var(--sw-text); cursor: pointer; padding: 0 4px 0 0; }
.sw-dm-chat-avatar { width: 36px; height: 36px; border-radius: 50%; overflow: hidden; flex: 0 0 36px; }
.sw-dm-chat-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sw-dm-chat-head b { font-size: 15px; flex: 1; min-width: 0; }
.sw-dm-msgs { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.sw-dm-firstmsg { margin: auto; color: var(--sw-muted); font-size: 13px; }
.sw-dm-msg { display: flex; flex-direction: column; align-items: flex-start; max-width: 76%; }
.sw-dm-msg.mine { align-self: flex-end; align-items: flex-end; }
.sw-dm-bubble { background: #fff; border: 1px solid var(--sw-line); padding: 9px 13px; border-radius: 14px 14px 14px 4px; font-size: 14.5px; line-height: 1.5; word-break: break-word; box-shadow: 0 1px 2px rgba(17,24,39,.04); }
.sw-dm-msg.mine .sw-dm-bubble { background: var(--sw-primary); color: #fff; border-color: var(--sw-primary); border-radius: 14px 14px 4px 14px; }
.sw-dm-msg time { font-size: 10.5px; color: #9ca3af; margin: 3px 4px 0; }
.sw-dm-send { display: flex; gap: 8px; align-items: flex-end; padding: 10px 12px; background: #fff; border-top: 1px solid var(--sw-line); }
.sw-dm-send textarea { flex: 1; border: 1px solid var(--sw-line-dark); border-radius: 18px; padding: 9px 14px; font-size: 14.5px; resize: none; max-height: 120px; outline: none; line-height: 1.4; }
.sw-dm-send textarea:focus { border-color: var(--sw-primary); }
.sw-dm-send button { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--sw-primary); color: #fff; font-size: 16px; cursor: pointer; }
.sw-dm .sw-field-label { display: block; font-size: 13px; font-weight: 700; margin: 0 0 6px; }
@media (max-width: 760px) {
  .sw-dm { grid-template-columns: 1fr; height: calc(100vh - 220px); min-height: 440px; }
  .sw-dm-chat { display: none; }
  .sw-dm.is-chat .sw-dm-side { display: none; } .sw-dm.is-chat .sw-dm-chat { display: flex; }
  .sw-dm-back { display: inline-block; }
}
/* 쪽지·스크랩·포인트 */
.sw-memo-tabs { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.sw-memo-tabs a { display: inline-flex; align-items: center; gap: 4px; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--sw-line-dark); font-size: 14px; font-weight: 600; background: #fff; }
.sw-memo-tabs a.on { background: var(--sw-dark); border-color: var(--sw-dark); color: #fff; }
.sw-memo-total { margin-left: auto; font-size: 13px; color: var(--sw-muted); }
.sw-memo-list li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--sw-line); }
.sw-memo-list li.is-read .sw-memo-body b { font-weight: 500; color: var(--sw-muted); }
.sw-memo-body { flex: 1; min-width: 0; }
.sw-memo-body b { display: block; font-size: 15px; }
.sw-memo-body span { display: block; font-size: 14px; color: var(--sw-text); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.sw-memo-body small { display: block; font-size: 12px; color: var(--sw-muted); margin-top: 2px; }
.sw-memo-new { display: inline-block; font-style: normal; font-size: 11px; font-weight: 800; color: #fff; background: var(--sw-primary); padding: 1px 7px; border-radius: 999px; margin-left: 4px; vertical-align: 2px; }
.sw-memo-content { white-space: pre-wrap; }
.sw-memo-head { display: flex; align-items: center; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--sw-line); margin-bottom: 14px; }
.sw-memo-head b { display: block; font-size: 15px; } .sw-memo-head small { color: var(--sw-muted); font-size: 12px; }
.sw-memo-content { min-height: 120px; }
.sw-point-top { display: flex; justify-content: space-between; align-items: center; background: var(--sw-primary-soft); border-radius: 12px; padding: 14px 18px; margin-bottom: 12px; font-size: 15px; }
.sw-point-top b { font-size: 22px; font-weight: 900; color: var(--sw-primary-dark); }
.sw-point-list li { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--sw-line); }
.sw-point-body { flex: 1; min-width: 0; } .sw-point-body b { display: block; font-size: 14px; } .sw-point-body small { color: var(--sw-muted); font-size: 12px; } .sw-point-body em { font-style: normal; color: var(--sw-danger); }
.sw-point-num { font-weight: 800; font-size: 15px; white-space: nowrap; } .sw-point-num.is-plus, .sw-point-sum .is-plus { color: #16a34a; } .sw-point-num.is-minus, .sw-point-sum .is-minus { color: var(--sw-danger); }
.sw-point-sum { display: flex; gap: 14px; justify-content: flex-end; padding: 10px 0; border-top: 2px solid var(--sw-dark); font-size: 14px; } .sw-point-sum span { margin-right: auto; color: var(--sw-muted); }

/* 광고 신청 */
.sw-adreq { max-width: 760px; margin: 0 auto; }
.sw-pick-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.sw-pick { position: relative; display: block; border: 2px solid var(--sw-line); border-radius: 14px; padding: 14px; cursor: pointer; background: #fff; }
.sw-pick input { position: absolute; opacity: 0; width: 0; height: 0; }
.sw-pick b { display: block; font-size: 16px; font-weight: 800; }
.sw-pick b em { font-style: normal; font-size: 11px; color: #fff; background: var(--sw-primary); padding: 2px 7px; border-radius: 999px; margin-left: 4px; vertical-align: 2px; }
.sw-pick span { display: block; font-size: 12px; color: var(--sw-muted); margin: 4px 0 8px; line-height: 1.5; min-height: 2.6em; }
.sw-pick small { display: block; font-size: 14px; font-weight: 800; color: var(--sw-primary-dark); }
.sw-pick.on { border-color: var(--sw-primary); background: var(--sw-primary-soft); }
.sw-pick.is-best { border-color: #c7d2fe; }
.sw-adreq-total { display: flex; align-items: baseline; gap: 12px; padding: 16px 18px; margin-top: 16px; background: var(--sw-dark); color: #fff; border-radius: 12px; }
.sw-adreq-total span { font-size: 14px; color: #cbd5e1; }
.sw-adreq-total b { font-size: 26px; font-weight: 900; color: #fde68a; }
.sw-adreq-total small { margin-left: auto; font-size: 12px; color: #cbd5e1; }
.sw-bank { margin-top: 12px; padding: 14px 16px; border: 1px dashed var(--sw-line-dark); border-radius: 12px; background: var(--sw-bg); font-size: 14px; line-height: 1.7; }

/* ---------- 하단 ---------- */
#sw-ft { background: #fff; border-top: 1px solid var(--sw-line); padding: 30px 0 44px; font-size: 13px; color: var(--sw-muted); }
.sw-ft-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 14px; }
.sw-ft-links a { color: var(--sw-text); font-weight: 600; }
.sw-ft-biz { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 10px; }
.sw-ft-note { margin: 0 0 10px; line-height: 1.6; }
.sw-ft-copy { color: #9ca3af; }
.sw-fixed { position: fixed; right: 16px; bottom: 16px; display: flex; flex-direction: column; gap: 8px; z-index: 40; align-items: flex-end; }
/* 오류/이용 문의: 마스코트(문의 포즈)가 노란 알약 위에 앉아 있는 모양 */
.sw-fixed-help { display: flex; flex-direction: column; align-items: center; gap: 0; }
.sw-fixed-help-art { width: 72px; height: 72px; margin-bottom: -10px; filter: drop-shadow(0 4px 6px rgba(17,24,39,.15)); transition: transform .15s; }
.sw-fixed-help:hover .sw-fixed-help-art { transform: translateY(-3px); }
.sw-fixed-help span { background: var(--sw-accent-soft); border: 1px solid #fde68a; color: #7c4a00; border-radius: 999px; padding: 10px 16px; font-size: 13px; font-weight: 700; box-shadow: 0 4px 12px rgba(0,0,0,.10); }
.sw-fixed-top { background: var(--sw-dark); color: #fff; border: 0; border-radius: 999px; padding: 11px 16px; font-size: 13px; font-weight: 800; box-shadow: 0 4px 12px rgba(0,0,0,.15); }

/* 모바일 하단 탭바 */
.sw-tabbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; background: #fff; border-top: 1px solid var(--sw-line); padding-bottom: env(safe-area-inset-bottom); }
.sw-tabbar a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; height: 58px; font-size: 11px; font-weight: 700; color: #9ca3af; }
.sw-tabbar a i { font-size: 20px; }
.sw-tabbar a.on { color: var(--sw-primary); }

/* 그누보드 기본 요소 정리 */
#validation_check { max-width: 480px; margin: 40px auto; background: #fff; border: 1px solid var(--sw-line); border-radius: 14px; padding: 24px; }
#validation_check h1 { font-size: 18px; margin: 0 0 10px; }
#validation_check .btn_confirm a { display: inline-flex; min-height: 44px; align-items: center; padding: 0 18px; border-radius: 10px; background: var(--sw-primary); color: #fff; font-weight: 600; margin-top: 12px; }

/* ---------- 반응형 ---------- */
@media (max-width: 1180px) { .sw-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } .sw-layout.has-side { grid-template-columns: minmax(0, 1fr); } .sw-layout.has-side.has-aside { grid-template-columns: minmax(0, 1fr) 280px; } .sw-side { display: none; } .sw-scroll-banners { display: block; } }
@media (max-width: 900px) { .sw-layout.has-aside, .sw-layout.has-side.has-aside { grid-template-columns: minmax(0, 1fr); } .sw-aside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .sw-aside-me { grid-column: 1 / -1; } .sw-my-grid { grid-template-columns: minmax(0, 1fr); } .sw-job-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sw-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sw-cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sw-grid-2 { grid-template-columns: minmax(0, 1fr); } .sw-hd-util .sw-util-link { display: none; } .sw-tabbar { display: flex; } body { padding-bottom: 62px; } .sw-fixed { bottom: 74px; } }
@media (max-width: 640px) {
  .sw-layout { padding-top: 14px; gap: 14px; }
  .sw-hd-top { height: 56px; } .sw-hd-user span { display: none; }
  .sw-logo-name { font-size: 19px; } .sw-logo-tag { display: none; } .sw-logo-badge { width: 38px; height: 38px; border-radius: 11px; } .sw-logo-mascot { width: 33px; height: 33px; flex-basis: 33px; }
  .sw-hd-nav-in { height: 46px; gap: 6px; } .sw-gnb li a { padding: 8px 10px; font-size: 14px; } .sw-gnb ul { padding-right: 12px; } .sw-hd-util .sw-pill { padding: 6px 10px; font-size: 12px; }
  .sw-hd-util { flex: none; padding-left: 4px; box-shadow: -10px 0 10px -6px rgba(255,255,255,.9); background: #fff; }
  .sw-search-box { padding: 12px 12px 8px; border-radius: 16px; margin-bottom: 18px; }
  .sw-finder-input { height: 46px; padding: 0 14px; } .sw-finder-reset { flex-basis: 44px; width: 44px; height: 44px; } .sw-finder-all { display: none; }
  .sw-finder-tabs { gap: 6px; margin: 12px 0 4px; } .sw-finder-tabs button { height: 34px; padding: 0 14px; font-size: 13px; }
  .sw-chip-row { flex-direction: column; align-items: stretch; gap: 4px; padding: 8px 0; } .sw-chip-label { flex: none; }
  .sw-chip-list { flex-wrap: nowrap; overflow-x: auto; width: 100%; padding-bottom: 2px; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .sw-chip-list::-webkit-scrollbar { display: none; }
  .sw-chip-row.is-open .sw-chip-list { flex-wrap: nowrap; overflow-x: auto; }
  .sw-chip { flex: 0 0 auto; min-height: 36px; padding: 0 11px; }
  .sw-chip-more { display: none !important; }
  .sw-form-row .sw-chip-list, .sw-cate { flex-wrap: wrap; overflow: visible; }
  .sw-section { margin-bottom: 26px; } .sw-section-head h2 { font-size: 18px; }
  .sw-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .sw-cards-3 { grid-template-columns: 1fr; }
  .sw-card-body { padding: 9px 10px 10px; } .sw-card-title { font-size: 14px; } .sw-card-shop { font-size: 11px; } .sw-card-pay { font-size: 11px; padding: 3px 7px; } .sw-lb { height: 20px; font-size: 10px; padding: 0 7px; }
  .sw-board, .sw-list { padding: 16px 14px; border-radius: 12px; }
  .sw-page-title { font-size: 21px; }
  .sw-post-title, .sw-job-title { font-size: 20px; }
  .sw-job-facts { grid-template-columns: 1fr; padding: 12px 14px; }
  .sw-gallery { margin: -16px -14px 14px; border-radius: 12px 12px 0 0; }
  .sw-jv-body { padding: 14px 14px 20px; } .sw-jv-h { font-size: 20px; } .sw-jv-rows dt { flex-basis: 72px; font-size: 13px; } .sw-jv-rows dd { font-size: 14px; }
  .sw-slide { max-height: 300px; } .sw-slider-btn { width: 36px; height: 36px; font-size: 20px; }
  .sw-actionbar { position: fixed; left: 0; right: 0; bottom: 58px; margin: 0; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); }
  .sw-actionbar .sw-btn { min-height: 46px; font-size: 14px; padding: 0 8px; gap: 4px; }
  .sw-actionbar-in .sw-ab-util { flex: 0 0 46px; padding: 0; } .sw-ab-util .sw-ab-label { display: none; } .sw-ab-util i { margin: 0; font-size: 17px; }
  body:has(.sw-actionbar) { padding-bottom: 130px; } body:has(.sw-actionbar) .sw-fixed { display: none; }
  .sw-page-head.is-view { gap: 6px; } .sw-page-head.is-view .sw-crumb { font-size: 12px; } .sw-page-head.is-view .sw-admin-btn { min-height: 30px; font-size: 12px; padding: 0 8px; }
  .sw-post .sw-post-title { font-size: 19px; }
  .sw-jv-table { grid-template-columns: 1fr; } .sw-jv-table > div:nth-child(odd) { border-right: 0; } .sw-jv-table > div:nth-last-child(-n+2) { border-bottom: 1px solid var(--sw-line); } .sw-jv-table > div:last-child { border-bottom: 0; }
  .sw-jv-table dt { flex-basis: 80px; padding: 10px 12px; } .sw-jv-table dd { padding: 10px 12px; }
  .sw-form-row { grid-template-columns: 1fr; gap: 6px; padding: 12px 0; } .sw-form-row > label, .sw-form-row > .sw-form-label { padding-top: 0; }
  .sw-form-row .frm_input, .sw-form-row select, .sw-form-row input[type=text], .sw-form-row input[type=date], .sw-form-row input[type=password], .sw-form-row input[type=tel] { max-width: none; }
  .sw-form-inline select { max-width: none; }
  .sw-form-actions .sw-btn { flex: 1; } .sw-job-actions .sw-btn { flex: 1 1 auto; }
  .sw-form-sticky { margin: 0 -14px -16px; padding: 10px 14px; }
  .sw-auth { padding: 22px 16px; border-radius: 14px; margin-top: 0; }
  .sw-field-2, .sw-type-pick, .sw-type-cards, .sw-done-list { grid-template-columns: 1fr; }
  .sw-ticker { height: 56px; } .sw-ticker-track { height: 56px; gap: 26px; padding: 0 14px; } .sw-ticker-text b { font-size: 15px; }
  .sw-fixed-help { display: none; }
  .sw-list-subject { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .sw-clist { padding: 14px; } .sw-clist-write { display: none; } .sw-fab { display: flex; }
  .sw-clist-subject { white-space: normal; font-size: 15px; } .sw-clist-preview { -webkit-line-clamp: 1; font-size: 13px; }
  .sw-clist-thumb { flex-basis: 72px; width: 72px; height: 56px; } .sw-clist-item { gap: 10px; padding: 12px 2px; }
  .sw-clist-search { min-width: 0; flex: 1; } .sw-clist-search input { width: 100%; }
  .sw-clist-ad { flex-direction: column; } .sw-clist-ad-label { align-self: flex-start; }
  .sw-post-author { flex-wrap: wrap; } .sw-post-author-text { flex: 1 1 60%; } .sw-post-stats { width: 100%; padding-left: 50px; }
  .sw-post-react .sw-btn { flex: 1 1 40%; }
  #sw-ft { padding: 20px 0 30px; }
  .sw-mode-bar { font-size: 12px; padding: 7px 12px; }
  .sw-aside { grid-template-columns: minmax(0, 1fr); }
  .sw-price-grid { grid-template-columns: minmax(0, 1fr); } .sw-price-extra { grid-template-columns: minmax(0, 1fr); } .sw-price-extra-side { text-align: left; }
  .sw-myad { flex-direction: column; } .sw-myad-thumb { flex-basis: auto; width: 100%; } .sw-myads-btns .sw-btn { flex: 1; }
  .sw-billboard { height: 42px; margin-bottom: 14px; } .sw-billboard-write span { display: none; } .sw-billboard-label { padding: 0 10px; font-size: 12px; }
  .sw-period-tabs button { padding: 0 14px; font-size: 14px; }
  #bo_content, .sw-content { padding: 16px 14px; }
  .sw-my-actions { width: 100%; } .sw-my-actions .sw-btn { flex: 1; }
}

/* ===== 구인 상세 v2: 급여 띠 · 아이콘 타일 · 지도 · 보장 알약 · 상세 카드 ===== */
.sw-jv-meta span .fa { margin-right: 3px; }
.sw-jv-pay { display: flex; align-items: center; gap: 14px; background: linear-gradient(135deg, #eef4ff, #f6f9ff); border: 1px solid #dbe6ff; border-radius: 14px; padding: 14px 18px; margin-bottom: 22px; flex-wrap: wrap; }
.sw-jv-pay-ico { width: 44px; height: 44px; border-radius: 12px; background: var(--sw-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; flex: 0 0 44px; }
.sw-jv-pay small { display: block; color: var(--sw-muted); font-size: 12px; font-weight: 600; }
.sw-jv-pay b { display: block; font-size: 20px; font-weight: 800; color: var(--sw-primary-dark); letter-spacing: -0.3px; }
.sw-jv-pay-times { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.sw-spec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sw-spec-item { display: flex; align-items: flex-start; gap: 10px; background: var(--sw-bg); border-radius: 12px; padding: 12px 14px; min-width: 0; }
.sw-spec-item > .fa { width: 34px; height: 34px; border-radius: 10px; background: #fff; color: var(--sw-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; flex: 0 0 34px; box-shadow: var(--sw-shadow); }
.sw-spec-item > div { min-width: 0; }
.sw-spec-item small { display: block; font-size: 12px; color: var(--sw-muted); font-weight: 600; margin-bottom: 2px; }
.sw-spec-item b { display: block; font-size: 15px; font-weight: 800; overflow-wrap: anywhere; }
.sw-spec-item em { display: block; font-style: normal; font-size: 12px; color: #4b5563; margin-top: 2px; }
.sw-map-card { border: 1px solid var(--sw-line); border-radius: 14px; overflow: hidden; }
.sw-map { height: 240px; background: #eef2f7; }
.sw-map:not(.is-ready) { display: flex; align-items: center; justify-content: center; color: var(--sw-muted); font-size: 13px; }
.sw-map:not(.is-ready)::after { content: "지도를 불러오는 중…"; }
.sw-map-addr { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; flex-wrap: wrap; background: #fff; }
.sw-map-addr > b { font-size: 14px; }
.sw-map-addr > b .fa { color: var(--sw-danger, #dc2626); margin-right: 4px; }
.sw-map-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.sw-perks { display: flex; flex-direction: column; gap: 10px; }
.sw-perk-row { display: flex; align-items: flex-start; gap: 12px; }
.sw-perk-head { flex: 0 0 104px; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 800; padding: 6px 10px; border-radius: 8px; background: var(--sw-bg); color: var(--sw-text); }
.sw-perk-row.is-pay .sw-perk-head { background: #e8efff; color: #1d4ed8; }
.sw-perk-row.is-welfare .sw-perk-head { background: #f3e8ff; color: #7e22ce; }
.sw-perk-row.is-env .sw-perk-head { background: #dcfce7; color: #166534; }
.sw-perk-pills { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; min-width: 0; }
.sw-perkpill { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; padding: 0 12px 0 10px; border-radius: 999px; background: #fff; border: 1px solid var(--sw-line-dark); font-size: 13px; font-weight: 700; color: var(--sw-text); }
.sw-perkpill .fa { font-size: 11px; color: var(--sw-primary); }
.sw-perk-row.is-welfare .sw-perkpill .fa { color: #9333ea; }
.sw-perk-row.is-env .sw-perkpill .fa { color: #16a34a; }
.sw-perkpill:hover { border-color: var(--sw-primary); background: var(--sw-primary-soft); }
.sw-jv-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sw-jv-card { border: 1px solid var(--sw-line); border-radius: 14px; padding: 16px 18px; background: #fff; min-width: 0; }
.sw-jv-card.is-intro, .sw-jv-card.is-contact { grid-column: 1 / -1; }
.sw-jv-card.is-contact { background: linear-gradient(135deg, #fffbeb, #fff); border-color: #fde68a; }
.sw-jv-card h4 { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 800; margin: 0 0 8px; }
.sw-jv-card-ico { width: 28px; height: 28px; border-radius: 8px; background: var(--sw-primary-soft); color: var(--sw-primary-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; flex: 0 0 28px; }
.sw-jv-card.is-pay .sw-jv-card-ico { background: #dcfce7; color: #166534; }
.sw-jv-card.is-welfare .sw-jv-card-ico { background: #f3e8ff; color: #7e22ce; }
.sw-jv-card.is-contact .sw-jv-card-ico { background: #fef3c7; color: #92400e; }
.sw-jv-card p { margin: 0; font-size: 15px; line-height: 1.8; color: #374151; overflow-wrap: anywhere; }
.sw-job-notice b .fa { color: var(--sw-muted); margin-right: 3px; }
@media (max-width: 900px) { .sw-spec { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .sw-spec { grid-template-columns: 1fr 1fr; gap: 8px; } .sw-spec-item { padding: 10px 12px; } .sw-spec-item b { font-size: 14px; }
  .sw-jv-pay { padding: 12px 14px; } .sw-jv-pay b { font-size: 18px; } .sw-jv-pay-times { margin-left: 0; }
  .sw-perk-row { flex-direction: column; gap: 6px; } .sw-perk-head { flex-basis: auto; }
  .sw-jv-cards { grid-template-columns: 1fr; } .sw-map { height: 200px; }
}

/* ===== 마이페이지 v2: 히어로 · 숫자 요약 · 타일 ===== */
.sw-my-hero { position: relative; border-radius: 18px; overflow: hidden; background: var(--sw-card); border: 1px solid var(--sw-line); box-shadow: var(--sw-shadow); margin-bottom: 14px; }
.sw-my-hero-bg { height: 110px; background: linear-gradient(120deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%); position: relative; }
.sw-my-hero-bg::after { content: ""; position: absolute; right: -40px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.08); }
.sw-my-hero-in { display: flex; align-items: flex-end; gap: 16px; padding: 0 24px 18px; margin-top: -40px; flex-wrap: wrap; position: relative; }
.sw-my-avatar.is-lg { width: 84px; height: 84px; flex-basis: 84px; font-size: 34px; border: 4px solid #fff; box-shadow: 0 4px 14px rgba(0,0,0,.15); background: #fff; }
.sw-my-who { flex: 1; min-width: 200px; padding-top: 44px; }
.sw-my-who > b { display: block; font-size: 22px; font-weight: 900; letter-spacing: -0.4px; margin-bottom: 6px; }
.sw-my-who > small { display: block; color: var(--sw-muted); font-size: 13px; margin-top: 6px; }
.sw-my-hero .sw-my-actions { padding-top: 44px; }
.sw-btn-light { background: #fff; border: 1px solid var(--sw-line-dark); }
.sw-my-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--sw-line); background: var(--sw-bg); }
.sw-my-stats li + li { border-left: 1px solid var(--sw-line); }
.sw-my-stats a { display: block; text-align: center; padding: 12px 8px; }
.sw-my-stats small { display: block; color: var(--sw-muted); font-size: 12px; font-weight: 600; }
.sw-my-stats b { display: block; font-size: 20px; font-weight: 900; color: var(--sw-text); letter-spacing: -0.3px; }
.sw-my-stats b em { font-style: normal; font-size: 12px; margin-left: 2px; color: var(--sw-primary-dark); }
.sw-my-stats b.is-hot { color: var(--sw-danger, #dc2626); }
.sw-my-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.sw-my-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 14px; padding: 14px; box-shadow: var(--sw-shadow); transition: transform .12s, box-shadow .12s; min-width: 0; }
.sw-my-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(17,24,39,.08); }
.sw-my-tile-ico { width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; margin-bottom: 4px; background: var(--sw-primary-soft); color: var(--sw-primary-dark); }
.sw-my-tile.is-o .sw-my-tile-ico { background: #ffedd5; color: #c2410c; }
.sw-my-tile.is-g .sw-my-tile-ico { background: #dcfce7; color: #166534; }
.sw-my-tile.is-v .sw-my-tile-ico { background: #f3e8ff; color: #7e22ce; }
.sw-my-tile.is-y .sw-my-tile-ico { background: #fef3c7; color: #92400e; }
.sw-my-tile.is-r .sw-my-tile-ico { background: #fee2e2; color: #b91c1c; }
.sw-my-tile b { font-size: 15px; font-weight: 800; }
.sw-my-tile small { font-size: 12px; color: var(--sw-muted); }
.sw-my-menu h2 { display: flex; align-items: center; gap: 6px; color: var(--sw-text); }
.sw-my-menu h2 .fa { color: var(--sw-muted); font-size: 14px; }
.sw-my-h-link { margin-left: auto; font-size: 13px; color: var(--sw-primary-dark); font-weight: 700; }
.sw-my-list li a { display: flex; align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 1px solid var(--sw-line); font-size: 15px; font-weight: 600; }
.sw-my-list li:last-child a { border-bottom: 0; }
.sw-my-list li a:hover { color: var(--sw-primary-dark); }
.sw-my-list li a small { color: var(--sw-muted); font-weight: 500; font-size: 13px; }
.sw-my-list li a .sw-my-arrow { margin-left: auto; color: var(--sw-line-dark); }
.sw-my-list li a.is-muted { color: var(--sw-muted); }
.sw-my-li-ico { width: 32px; height: 32px; border-radius: 9px; background: var(--sw-bg); color: var(--sw-muted); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; flex: 0 0 32px; }
.sw-my-li-ico.is-b { background: #e8efff; color: #1d4ed8; } .sw-my-li-ico.is-o { background: #ffedd5; color: #c2410c; } .sw-my-li-ico.is-g { background: #dcfce7; color: #166534; } .sw-my-li-ico.is-y { background: #fef3c7; color: #92400e; } .sw-my-li-ico.is-v { background: #f3e8ff; color: #7e22ce; } .sw-my-li-ico.is-r { background: #fee2e2; color: #b91c1c; }
@media (max-width: 760px) {
  .sw-my-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sw-my-grid { grid-template-columns: 1fr; }
  .sw-my-hero-in { padding: 0 16px 14px; gap: 10px; } .sw-my-who { padding-top: 8px; min-width: 0; flex-basis: 100%; } .sw-my-hero .sw-my-actions { padding-top: 0; width: 100%; }
  .sw-my-stats b { font-size: 17px; }
}

/* 카카오톡 채널 고정 버튼 */
.sw-fixed-kakao { display: inline-flex; align-items: center; gap: 6px; background: #fee500; color: #191919; border-radius: 999px; padding: 10px 16px 10px 10px; font-size: 13px; font-weight: 800; box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.sw-kakao-ico { background: #191919; color: #fee500; font-size: 10px; font-weight: 900; border-radius: 999px; padding: 4px 7px; letter-spacing: .5px; }
@media (max-width: 640px) { .sw-fixed-kakao span:last-child { display: none; } .sw-fixed-kakao { padding: 8px; } }

/* 좁은 페이지는 항상 가운데 */
.sw-main > section.sw-board[style*="max-width"], .sw-main > div.sw-board[style*="max-width"], .sw-main > form[style*="max-width"] { margin-left: auto; margin-right: auto; }
.sw-tag.is-urgent { background: #fee2e2; color: #b91c1c; }

/* ===== 출석·룰렛·랭킹 공용 (게임 페이지) ===== */
.sw-game { max-width: 920px; margin: 0 auto; }
.sw-applicants { max-width: 980px; margin: 0 auto; }
.sw-game-hero { display: flex; align-items: center; gap: 16px; background: linear-gradient(120deg, #1e3a8a, #2563eb 60%, #60a5fa); color: #fff; border-radius: 18px; padding: 22px 26px; margin-bottom: 14px; flex-wrap: wrap; position: relative; overflow: hidden; }
.sw-game-hero::after { content: ""; position: absolute; right: -50px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: rgba(255,255,255,.1); }
.sw-game-hero.is-roulette { background: linear-gradient(120deg, #7c2d12, #ea580c 60%, #fbbf24); }
.sw-game-hero.is-rank { background: linear-gradient(120deg, #312e81, #6d28d9 60%, #a78bfa); }
.sw-game-mascot { width: 64px; height: 64px; flex: 0 0 64px; filter: drop-shadow(0 4px 8px rgba(0,0,0,.2)); }
.sw-game-hero-text { flex: 1; min-width: 200px; position: relative; }
.sw-game-hero-text h2 { font-size: 22px; font-weight: 900; margin: 0 0 4px; letter-spacing: -0.4px; }
.sw-game-hero-text p { margin: 0; font-size: 14px; opacity: .92; }
.sw-game-hero-text p b { color: #fde68a; }
.sw-game-cta { position: relative; }
.sw-game-cta .sw-btn-primary { background: #fff; color: var(--sw-primary-dark); border-color: #fff; box-shadow: 0 6px 16px rgba(0,0,0,.18); }
.sw-game-cta .sw-btn-primary:hover { background: #fef3c7; }
.sw-game-point { display: inline-flex; flex-direction: column; align-items: flex-end; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); border-radius: 12px; padding: 8px 14px; }
.sw-game-point small { font-size: 11px; opacity: .85; }
.sw-game-point b { font-size: 18px; font-weight: 900; }
.sw-btn-done { background: #dcfce7; color: #166534; border-color: #bbf7d0; cursor: default; }
.sw-game-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.sw-game-stats li { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 14px; padding: 12px 14px; text-align: center; box-shadow: var(--sw-shadow); }
.sw-game-stats small { display: block; font-size: 12px; color: var(--sw-muted); font-weight: 600; }
.sw-game-stats b { display: block; font-size: 22px; font-weight: 900; letter-spacing: -0.3px; }
.sw-game-stats b em { font-style: normal; font-size: 12px; color: var(--sw-muted); margin-left: 2px; font-weight: 600; }
.sw-game-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 14px; }
.sw-game-h { display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 800; margin: 0 0 12px; }
.sw-game-h .fa { color: var(--sw-primary); }
.sw-game-h small { color: var(--sw-muted); font-weight: 600; font-size: 13px; }
.sw-game-list { display: flex; flex-direction: column; }
.sw-game-list li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--sw-line); font-size: 14px; }
.sw-game-list li:last-child { border-bottom: 0; }
.sw-game-list li b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-game-list li small { color: var(--sw-muted); font-size: 12px; }
.sw-win { font-style: normal; font-weight: 800; color: var(--sw-muted); font-size: 13px; }
.sw-win.is-win { color: #c2410c; }
.sw-rank-no { width: 26px; height: 26px; border-radius: 8px; background: var(--sw-bg); color: var(--sw-muted); font-size: 12px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 26px; }
.sw-rank-no.is-top { background: var(--sw-dark); color: #fde68a; }
.sw-empty { color: var(--sw-muted); font-size: 14px; padding: 18px 0; text-align: center; }
/* 달력 */
.sw-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.sw-cal-dow { text-align: center; font-size: 12px; font-weight: 700; color: var(--sw-muted); padding: 4px 0; }
.sw-cal-dow.is-sun { color: #dc2626; } .sw-cal-dow.is-sat { color: #2563eb; }
.sw-cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--sw-bg); font-size: 14px; font-weight: 600; color: #6b7280; }
.sw-cal-day.is-empty { background: transparent; }
.sw-cal-day.is-future { color: #c4c9d2; }
.sw-cal-day.is-today { outline: 2px solid var(--sw-primary); outline-offset: -2px; color: var(--sw-primary-dark); }
.sw-cal-day.on { background: var(--sw-primary); color: #fff; font-weight: 800; }
/* 룰렛 */
.sw-roulette { text-align: center; }
.sw-wheel-wrap { position: relative; width: 260px; height: 260px; margin: 6px auto 18px; }
.sw-wheel { width: 260px; height: 260px; border-radius: 50%; border: 8px solid #fff; box-shadow: 0 10px 28px rgba(0,0,0,.18), 0 0 0 2px var(--sw-line); position: relative; transition: transform 4.2s cubic-bezier(.17,.67,.12,1); }
.sw-wheel-label { position: absolute; left: 50%; top: 50%; margin: -10px 0 0 -22px; width: 44px; text-align: center; font-weight: 800; font-size: 13px; color: #111827; }
.sw-wheel-label.is-light { color: #fff; }
.sw-wheel-pin { position: absolute; left: 50%; top: -8px; margin-left: -11px; width: 0; height: 0; border-left: 11px solid transparent; border-right: 11px solid transparent; border-top: 24px solid #ef4444; z-index: 2; filter: drop-shadow(0 2px 2px rgba(0,0,0,.2)); }
.sw-wheel-center { position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; color: #f59e0b; font-size: 18px; box-shadow: 0 2px 8px rgba(0,0,0,.2); z-index: 2; }
.sw-roulette-msg { min-height: 24px; margin: 12px 0 6px; font-weight: 800; font-size: 15px; }
.sw-roulette-msg.is-win { color: #c2410c; } .sw-roulette-msg.is-lose { color: var(--sw-muted); }
.sw-roulette-odds { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.sw-roulette-odds span { display: inline-flex; flex-direction: column; align-items: center; background: var(--sw-bg); border-radius: 8px; padding: 6px 10px; min-width: 52px; }
.sw-roulette-odds b { font-size: 13px; } .sw-roulette-odds small { font-size: 11px; color: var(--sw-muted); }
/* 랭킹 */
.sw-podium { display: flex; align-items: flex-end; justify-content: center; gap: 12px; margin-bottom: 14px; }
.sw-podium-item { flex: 1; max-width: 220px; display: flex; flex-direction: column; align-items: center; gap: 6px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 16px; padding: 18px 12px 14px; box-shadow: var(--sw-shadow); position: relative; }
.sw-podium-item.is-gold { padding-top: 26px; padding-bottom: 22px; border-color: #fde68a; background: linear-gradient(180deg, #fffbeb, #fff); }
.sw-podium-item.is-silver { border-color: #e5e7eb; background: linear-gradient(180deg, #f8fafc, #fff); }
.sw-podium-item.is-bronze { border-color: #fed7aa; background: linear-gradient(180deg, #fff7ed, #fff); }
.sw-podium-medal { position: absolute; top: -12px; width: 28px; height: 28px; border-radius: 50%; color: #fff; font-weight: 900; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.is-gold .sw-podium-medal { background: #f59e0b; } .is-silver .sw-podium-medal { background: #9ca3af; } .is-bronze .sw-podium-medal { background: #d97706; }
.sw-podium-item b { font-size: 15px; font-weight: 800; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sw-podium-item small { color: var(--sw-primary-dark); font-weight: 800; font-size: 14px; }
.sw-rank-list li { display: flex; align-items: center; gap: 10px; padding: 10px 6px; border-bottom: 1px solid var(--sw-line); font-size: 14px; border-radius: 8px; }
.sw-rank-list li:last-child { border-bottom: 0; }
.sw-rank-list li.is-me { background: var(--sw-primary-soft); }
.sw-rank-list li b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.sw-rank-list li small { color: var(--sw-muted); font-size: 12px; }
.sw-rank-list li em { font-style: normal; font-weight: 800; color: var(--sw-primary-dark); min-width: 70px; text-align: right; }
@media (max-width: 760px) {
  .sw-game-hero { padding: 16px; gap: 12px; } .sw-game-mascot { width: 48px; height: 48px; flex-basis: 48px; } .sw-game-hero-text h2 { font-size: 19px; } .sw-game-cta { width: 100%; } .sw-game-cta form, .sw-game-cta .sw-btn { width: 100%; }
  .sw-game-stats { grid-template-columns: repeat(2, 1fr); } .sw-game-stats b { font-size: 19px; }
  .sw-game-grid { grid-template-columns: 1fr; }
  .sw-podium { gap: 8px; } .sw-podium-item { padding: 16px 8px 12px; } .sw-podium-item b { font-size: 13px; }
  .sw-rank-list li small { display: none; }
}
.sw-ft-mascot { width: 22px; height: 22px; vertical-align: -6px; margin-right: 6px; opacity: .9; }
/* 홈 가로 배너 (대시보드 배너 위치 "홈 가로", 1200×150) */
.sw-home-banners { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }
.sw-home-banners .sw-banner { width: 100%; aspect-ratio: 8 / 1; border-radius: 12px; overflow: hidden; position: relative; }
.sw-home-banners .sw-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 640px) { .sw-home-banners .sw-banner { aspect-ratio: 4 / 1; } }
/* 지원자 관리 · 내 지원 현황 */
.sw-ap-jobs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 10px; scrollbar-width: thin; }
.sw-ap-job { flex: 0 0 auto; min-width: 150px; max-width: 220px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 12px; padding: 10px 12px; box-shadow: var(--sw-shadow); }
.sw-ap-job.on { border-color: var(--sw-primary); background: var(--sw-primary-soft); }
.sw-ap-job b { display: block; font-size: 13px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sw-ap-job small { display: block; font-size: 11px; color: var(--sw-muted); margin-top: 2px; }
.sw-ap-new { font-style: normal; color: #b91c1c; font-weight: 800; }
.sw-ap-filter { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.sw-ap-list { display: flex; flex-direction: column; gap: 10px; }
.sw-ap-item { display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--sw-line); border-radius: 14px; padding: 14px; background: #fff; }
.sw-ap-item.is-viewed, .sw-ap-item.is-new { border-left: 4px solid var(--sw-primary); }
.sw-ap-item.is-contact { border-left: 4px solid #f59e0b; }
.sw-ap-item.is-hired { border-left: 4px solid #16a34a; background: #f0fdf4; }
.sw-ap-item.is-rejected { opacity: .7; }
.sw-ap-body { flex: 1; min-width: 0; }
.sw-ap-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sw-ap-head b { font-size: 15px; font-weight: 800; }
.sw-ap-head small { color: var(--sw-muted); font-size: 12px; margin-left: auto; }
.sw-ap-job-title { font-size: 13px; color: var(--sw-muted); margin-top: 4px; }
.sw-ap-job-title a { color: var(--sw-text); font-weight: 600; }
.sw-ap-msg { margin: 8px 0 0; background: var(--sw-bg); border-radius: 10px; padding: 8px 12px; font-size: 14px; color: #374151; }
.sw-ap-seek { margin-top: 8px; font-size: 13px; }
.sw-ap-seek a { font-weight: 700; color: var(--sw-primary-dark); }
.sw-ap-seek small { color: var(--sw-muted); }
.sw-ap-seek.is-none { color: var(--sw-muted); }
.sw-ap-hint { margin: 6px 0 0; font-size: 13px; color: var(--sw-muted); }
.sw-ap-actions { display: flex; flex-direction: column; gap: 6px; flex: 0 0 auto; }
.sw-ap-actions select { min-height: 36px; border: 1px solid var(--sw-line-dark); border-radius: 8px; padding: 0 8px; font-size: 13px; font-weight: 700; }
.sw-tag.is-st-viewed { background: #e8efff; color: #1d4ed8; } .sw-tag.is-st-contact { background: #fef3c7; color: #92400e; } .sw-tag.is-st-hired { background: #dcfce7; color: #166534; } .sw-tag.is-st-rejected { background: #f3f4f6; color: #6b7280; } .sw-tag.is-st-new { background: #fee2e2; color: #b91c1c; }
@media (max-width: 640px) { .sw-ap-item { flex-wrap: wrap; } .sw-ap-actions { flex-direction: row; width: 100%; } .sw-ap-actions select { flex: 1; } }
.sw-tickets { margin: 34px 0 10px; padding-top: 26px; border-top: 1px solid var(--sw-line); }
.sw-tickets > h3 { font-size: 20px; font-weight: 900; margin: 0 0 4px; letter-spacing: -0.3px; }
.sw-tickets-sub { margin: 0 0 16px; color: var(--sw-muted); font-size: 14px; }
.sw-ticket-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sw-ticket { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: 18px; padding: 18px; box-shadow: var(--sw-shadow); }
.sw-ticket-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.sw-ticket-ico { width: 46px; height: 46px; border-radius: 12px; background: var(--sw-bg); color: var(--sw-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; flex: 0 0 46px; }
.sw-ticket-head b { display: block; font-size: 16px; font-weight: 800; }
.sw-ticket-head small { color: var(--sw-muted); font-size: 13px; }
.sw-ticket-packs { display: flex; flex-direction: column; gap: 8px; }
.sw-ticket-packs li { display: flex; align-items: center; gap: 12px; background: var(--sw-bg); border-radius: 12px; padding: 10px 14px; }
.sw-ticket-cnt { flex: 1; display: flex; flex-direction: column; line-height: 1.2; }
.sw-ticket-cnt del { font-size: 12px; color: #9ca3af; }
.sw-ticket-cnt b { font-size: 18px; font-weight: 900; color: var(--sw-primary-dark); }
.sw-ticket-price { font-size: 16px; font-weight: 800; }
.sw-ticket-note { margin-top: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--sw-muted); }
.sw-ticket-note .fa { color: #9ca3af; margin-right: 2px; }
.sw-ticket-note a { color: var(--sw-primary-dark); text-decoration: underline; }
.sw-ticket-pick { display: flex; align-items: center; gap: 12px; background: var(--sw-bg); border-radius: 14px; padding: 14px 16px; margin-bottom: 18px; }
.sw-ticket-pick > div { flex: 1; min-width: 0; }
.sw-ticket-pick b { display: block; font-size: 16px; font-weight: 800; }
.sw-ticket-pick small { display: block; color: var(--sw-muted); font-size: 13px; }
.sw-ticket-pick strong { font-size: 18px; font-weight: 900; color: var(--sw-primary-dark); }
.sw-need-box { width: min(380px, 100%); padding: 0; }
.sw-need-x { position: absolute; right: 12px; top: 12px; z-index: 1; width: 32px; height: 32px; border-radius: 50%; background: #f3f4f6; }
.sw-need-body { padding: 36px 28px 28px; text-align: center; }
.sw-need-body b { display: block; font-size: 19px; font-weight: 800; margin-bottom: 8px; }
.sw-need-body p { margin: 0 0 20px; color: var(--sw-muted); font-size: 14px; }
.sw-need-body .sw-btn-primary { background: #0f172a; border-color: #0f172a; }
@media (max-width: 640px) { .sw-ticket-grid { grid-template-columns: 1fr; } }
.sw-opt-list { display: flex; flex-direction: column; gap: 10px; }
.sw-opt { border: 1px solid var(--sw-line); border-radius: 12px; padding: 12px 14px; background: #fff; }
.sw-opt > b { display: block; font-size: 14px; font-weight: 800; }
.sw-opt > b small { color: var(--sw-muted); font-weight: 600; margin-left: 6px; }
.sw-opt > p { margin: 4px 0 8px; font-size: 13px; color: var(--sw-muted); }
.sw-lb.is-pin { background: #111827; color: #fde68a; }
.sw-avatar-img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.sw-av-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 10px; }
.sw-av-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 10px; }
.sw-av { position: relative; cursor: pointer; aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 3px solid transparent; transition: transform .12s, border-color .12s; }
.sw-av input { position: absolute; opacity: 0; width: 0; height: 0; }
.sw-av img { width: 100%; height: 100%; display: block; }
.sw-av:hover { transform: scale(1.06); }
.sw-av.on { border-color: var(--sw-primary); }
.sw-av .fa { position: absolute; right: 2px; bottom: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--sw-primary); color: #fff; font-size: 11px; display: none; align-items: center; justify-content: center; }
.sw-av.on .fa { display: inline-flex; }
.sw-av[hidden] { display: none; }
@media (max-width: 640px) { .sw-av-grid { grid-template-columns: repeat(5, 1fr); gap: 8px; } }

/* 광고 신청 — 직접 디자인 배너 업로드 */
.sw-banner-up { background: var(--sw-bg); border: 1px dashed var(--sw-line-dark); border-radius: 12px; padding: 14px; }
.sw-banner-up input[type=file] { width: 100%; font-size: 14px; }
.sw-banner-up .sw-form-sub { font-size: 13px; font-weight: 600; color: var(--sw-muted); }
.sw-banner-up .sw-form-sub input { margin-top: 5px; }

/* 내 광고 관리 — 내 배너 자가관리 */
.sw-myads-bn { margin-top: 22px; background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 18px; box-shadow: var(--sw-shadow); }
.sw-mybn { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--sw-line); }
.sw-mybn:first-of-type { border-top: 0; }
.sw-mybn-thumb { flex: 0 0 120px; width: 120px; height: 90px; border-radius: 10px; overflow: hidden; background: var(--sw-bg); border: 1px solid var(--sw-line); display: flex; align-items: center; justify-content: center; }
.sw-mybn-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sw-mybn-body { flex: 1 1 auto; min-width: 0; }
.sw-mybn-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.sw-mybn-head b { font-size: 15px; }
.sw-mybn-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.sw-mybn-f { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: var(--sw-muted); flex: 1 1 240px; }
.sw-mybn-f input[type=text] { font-weight: 500; }
.sw-mybn-f input[type=file] { font-size: 13px; }
.sw-mybn-btns { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sw-mybn-on { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: var(--sw-text); white-space: nowrap; }
@media (max-width: 640px) { .sw-mybn { flex-direction: column; } .sw-mybn-thumb { width: 100%; flex-basis: auto; height: 120px; } .sw-mybn-f { flex-basis: 100%; } }

/* ===== 공용 페이지 헤더 + 카드 섹션 (보조 페이지 통일용) ===== */
.sw-page-hero { display: flex; align-items: center; gap: 18px; background: linear-gradient(120deg, var(--sw-primary-dark), var(--sw-primary) 62%, #60a5fa); color: #fff; border-radius: 18px; padding: 22px 26px; margin-bottom: 16px; position: relative; overflow: hidden; }
.sw-page-hero::after { content: ""; position: absolute; right: -40px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgba(255,255,255,.1); }
.sw-page-hero-ic { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 16px; background: rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; font-size: 26px; position: relative; }
.sw-page-hero-text { flex: 1 1 auto; min-width: 180px; position: relative; }
.sw-page-hero-text h2 { font-size: 22px; font-weight: 900; margin: 0 0 4px; letter-spacing: -0.4px; }
.sw-page-hero-text p { margin: 0; font-size: 14px; opacity: .93; line-height: 1.5; }
.sw-page-hero-stat { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.sw-page-hero-stat span { background: rgba(255,255,255,.16); border-radius: 999px; padding: 5px 13px; font-size: 13px; font-weight: 600; }
.sw-page-hero-stat b { font-weight: 900; margin-right: 3px; }
.sw-page-hero .sw-btn-light { position: relative; flex: 0 0 auto; }
.sw-card-sec { background: var(--sw-card); border: 1px solid var(--sw-line); border-radius: var(--sw-radius); padding: 20px; margin-bottom: 14px; box-shadow: var(--sw-shadow); }
.sw-card-sec-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--sw-line); }
.sw-card-sec-head h3 { font-size: 17px; font-weight: 800; margin: 0; letter-spacing: -0.3px; }
.sw-card-sec-head h3 .fa { color: var(--sw-primary); margin-right: 5px; }
.sw-card-sec-head small { color: var(--sw-muted); font-size: 12.5px; }

/* 맞춤 알림 — 조건 추가 폼 */
.sw-alert-fields { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 10px; align-items: end; }
.sw-fld { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 700; color: var(--sw-muted); }
.sw-fld select { height: 46px; }
.sw-alert-add { height: 46px; }
.sw-alert-sms { display: flex; align-items: center; gap: 7px; margin-top: 12px; font-size: 14px; font-weight: 600; color: var(--sw-text); }
.sw-alert-sms .fa { color: var(--sw-primary); }
.sw-alert-sms small { color: var(--sw-muted); font-weight: 500; }
.sw-alert-sms.is-off { opacity: .7; }
.sw-alert-list { margin-top: 16px; }
.sw-alert-ic { background: var(--sw-primary-soft) !important; color: var(--sw-primary) !important; }
.sw-alert-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 34px 16px; color: var(--sw-muted); text-align: center; background: var(--sw-bg); border-radius: 14px; }
.sw-alert-empty .fa { font-size: 34px; color: var(--sw-line-dark); }
.sw-alert-empty p { margin: 0; font-size: 14px; line-height: 1.5; }
@media (max-width: 640px) { .sw-page-hero { flex-wrap: wrap; padding: 18px; } .sw-page-hero .sw-btn-light { width: 100%; } .sw-alert-fields { grid-template-columns: 1fr 1fr; } .sw-alert-add { grid-column: 1 / -1; } }

/* ===== 새 메시지 알림 바 (어른도 바로 알게 — 하단 고정) ===== */
.sw-dm-toast { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%) translateY(140%); z-index: 120; display: flex; align-items: center; gap: 12px; max-width: calc(100vw - 28px); background: #fff; border: 1px solid var(--sw-line); border-left: 5px solid var(--sw-primary); border-radius: 14px; padding: 13px 16px; box-shadow: 0 12px 30px rgba(17,24,39,.22); opacity: 0; visibility: hidden; transition: transform .28s cubic-bezier(.2,.8,.3,1), opacity .2s; }
.sw-dm-toast.is-on { transform: translateX(-50%) translateY(0); opacity: 1; visibility: visible; }
.sw-dm-toast-ic { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; background: var(--sw-primary-soft); color: var(--sw-primary); display: flex; align-items: center; justify-content: center; font-size: 19px; }
.sw-dm-toast-txt { font-size: 15.5px; font-weight: 700; color: var(--sw-text); white-space: nowrap; }
.sw-dm-toast-txt b { color: var(--sw-primary); margin: 0 2px; }
.sw-dm-toast-go { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; background: var(--sw-primary); color: #fff; font-weight: 800; font-size: 14.5px; padding: 10px 16px; border-radius: 10px; box-shadow: 0 2px 6px rgba(37,99,235,.3); }
.sw-dm-toast-go:hover { background: var(--sw-primary-dark); }
.sw-dm-toast-x { flex: 0 0 auto; width: 32px; height: 32px; border: 0; background: var(--sw-bg); border-radius: 8px; color: var(--sw-muted); cursor: pointer; font-size: 14px; }
.sw-dm-toast-x:hover { background: #e5e7eb; color: var(--sw-text); }
@media (max-width: 640px) { .sw-dm-toast { left: 14px; right: 14px; bottom: 14px; transform: translateY(140%); max-width: none; } .sw-dm-toast.is-on { transform: translateY(0); } .sw-dm-toast-txt { white-space: normal; font-size: 14px; flex: 1; } }
