:root {
  --bg: #000; --ink: #ece9e2; --ink2: #a9a59b; --ink3: #6f6b63; --line: rgba(255,255,255,.12); --line2: rgba(255,255,255,.2);
  --gold: #c9a45c; --gold2: #e6c98a; --card: #0c0c0c; --card2: #141414; --red: #e0605a; --green: #6fc28b;
  --font: 'Pretendard Variable', Pretendard, -apple-system, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--ink); font: 15px/1.55 var(--font); -webkit-font-smoothing: antialiased; overflow: hidden; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; }
[hidden] { display: none !important; }

#net { position: fixed; inset: 0; width: 100vw; height: 100dvh; display: block; cursor: grab; touch-action: none; }

/* 머리 */
.top { position: fixed; top: 0; left: 0; right: 0; height: 64px; display: flex; align-items: center; gap: 18px; padding: 0 22px; z-index: 10;
  background: linear-gradient(rgba(0,0,0,.6) 30%, rgba(0,0,0,0)); pointer-events: none; }
.top > * { pointer-events: auto; }
.logo { display: flex; align-items: baseline; gap: 9px; text-decoration: none; white-space: nowrap; }
.logo b { font-weight: 300; letter-spacing: .32em; font-size: 17px; color: var(--ink); }
.logo i { font-style: normal; font-size: 12px; color: var(--gold); letter-spacing: .12em; }
.search { position: relative; flex: 0 1 320px; margin-left: auto; display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px;
  border: 0; background: rgba(10,10,10,.85); }
.search svg { width: 16px; height: 16px; fill: none; stroke: var(--ink3); stroke-width: 2; flex: none; }
.search input { flex: 1; min-width: 0; border: 0; background: none; outline: none; font-size: 14px; }
.search input::placeholder { color: var(--ink3); }
#qlist { position: absolute; top: 42px; left: -1px; right: -1px; margin: 0; padding: 4px 0; list-style: none; background: #0b0b0b; border: 1px solid var(--line2); max-height: 60vh; overflow: auto; }
#qlist li { display: flex; gap: 10px; align-items: center; padding: 7px 12px; cursor: pointer; }
#qlist li:hover, #qlist li.on { background: #1a1a1a; }
#qlist img { width: 30px; height: 30px; object-fit: cover; }
#qlist small { display: block; color: var(--ink3); font-size: 12px; }
.who { display: flex; align-items: center; gap: 8px; }
.who .btn { height: 36px; padding: 0 14px; font-size: 13px; }
.who .me { display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px 0 4px; border: 1px solid var(--line); background: rgba(10,10,10,.85); cursor: pointer; }
.who .me img { width: 28px; height: 28px; object-fit: cover; }
.who .ic { position: relative; width: 38px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); background: rgba(10,10,10,.85); cursor: pointer; }
.who .ic svg { width: 18px; height: 18px; fill: none; stroke: var(--ink); stroke-width: 1.7; }
.badge { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--gold); color: #000; font-size: 11px; font-weight: 700; display: grid; place-items: center; }

/* 단추 */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 42px; padding: 0 20px; border: 1px solid var(--line2); background: #0e0e0e; cursor: pointer; white-space: nowrap; text-decoration: none; font-size: 14px; }
.btn:hover { border-color: var(--ink2); }
.btn.gold { background: var(--gold); border-color: var(--gold); color: #0b0b0b; font-weight: 600; }
.btn.gold:hover { background: var(--gold2); }
.btn.line { background: rgba(0,0,0,.6); }
.btn.sm { height: 32px; padding: 0 12px; font-size: 13px; }
.btn.danger { color: var(--red); }
.btn:disabled { opacity: .45; cursor: default; }
.btnrow { display: flex; flex-wrap: wrap; gap: 8px; }

/* 첫 화면 글 */
.hero { position: fixed; left: 32px; bottom: 74px; max-width: 440px; z-index: 5; pointer-events: none; }
.hero > * { pointer-events: auto; }
.hero .kicker { margin: 0 0 10px; font-size: 11px; letter-spacing: .4em; color: var(--gold); }
.hero h1 { margin: 0; font-weight: 300; font-size: 34px; line-height: 1.28; letter-spacing: -.01em; text-shadow: 0 2px 18px #000; }
.hero .sub { margin: 14px 0 20px; color: var(--ink2); font-size: 14px; text-shadow: 0 1px 10px #000; }
.hero-btns { display: flex; gap: 8px; }
.stat { position: fixed; left: 32px; bottom: 26px; z-index: 5; color: var(--ink3); font-size: 12px; letter-spacing: .04em; }
.stat b { color: var(--ink2); font-weight: 500; }
.tools { position: fixed; right: 22px; bottom: 24px; z-index: 5; display: flex; flex-direction: column; gap: 6px; }
.ibtn { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); background: rgba(10,10,10,.85); cursor: pointer; font-size: 18px; }
.ibtn svg { width: 16px; height: 16px; fill: none; stroke: var(--ink); stroke-width: 1.8; }
.ibtn:hover { border-color: var(--ink2); }
.tip { position: fixed; z-index: 8; pointer-events: none; background: rgba(8,8,8,.95); border: 1px solid var(--line2); padding: 8px 12px; font-size: 13px; max-width: 260px; }
.tip b { display: block; font-weight: 600; }
.tip span { color: var(--ink2); font-size: 12px; }

/* 옆 창 */
.panel { position: fixed; top: 0; left: 0; bottom: 0; width: 440px; z-index: 20; background: rgba(6,6,6,.97); border-right: 1px solid var(--line); display: flex; flex-direction: column;
  animation: slide .25s ease-out; }
@keyframes slide { from { transform: translateX(-30px); opacity: 0; } }
.pclose { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 1px solid var(--line); background: #0b0b0b; cursor: pointer; z-index: 2; }
.pbody { flex: 1; overflow-y: auto; padding: 28px 28px 60px; overscroll-behavior: contain; }
.pbody h2 { margin: 0 0 4px; font-weight: 500; font-size: 22px; }
.pbody h3 { margin: 30px 0 12px; font-size: 12px; letter-spacing: .2em; color: var(--gold); font-weight: 500; }
.ptitle { margin: 0 0 20px; font-size: 20px; font-weight: 500; padding-right: 40px; }
.muted { color: var(--ink2); }
.faint { color: var(--ink3); font-size: 13px; }

.phead { display: flex; gap: 18px; align-items: flex-start; padding-right: 36px; }
.phead .ph { width: 132px; height: 132px; object-fit: cover; flex: none; border: 1px solid var(--line2); background: #111; }
.phead .meta { min-width: 0; padding-top: 4px; }
.phead .role { color: var(--ink2); font-size: 14px; margin: 2px 0 10px; }
.verified { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid rgba(201,164,92,.5); color: var(--gold2); font-size: 12px; }
.verified svg { width: 12px; height: 12px; fill: var(--gold); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.tag { padding: 3px 9px; border: 1px solid var(--line); color: var(--ink2); font-size: 12px; }
.tag.seed { border-color: #444; color: #888; }
.pact { margin: 22px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.pact .btn { flex: 1; min-width: 130px; }
.intro { white-space: pre-wrap; color: #d9d5cc; }
.lock { padding: 18px; border: 1px dashed var(--line2); color: var(--ink2); font-size: 14px; }
.lock b { color: var(--ink); }

.docs { display: flex; flex-direction: column; gap: 10px; }
.doc { padding: 14px 16px; border: 1px solid var(--line); background: var(--card); }
.doc .dt { font-weight: 500; }
.doc .ds { color: var(--ink2); font-size: 13px; margin: 6px 0 10px; white-space: pre-wrap; }
.doc .df { display: flex; justify-content: space-between; align-items: center; gap: 8px; color: var(--ink3); font-size: 12px; }

.mini { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 10px; }
.mini a { text-decoration: none; font-size: 11px; color: var(--ink2); text-align: center; cursor: pointer; }
.mini img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; border: 1px solid var(--line); margin-bottom: 4px; }
.mini a:hover img { border-color: var(--gold); }
.mini span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rows { display: flex; flex-direction: column; }
.row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.row img { width: 44px; height: 44px; object-fit: cover; flex: none; }
.row .rt { flex: 1; min-width: 0; }
.row .rt b { font-weight: 500; }
.row .rt small { display: block; color: var(--ink3); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row .dot { min-width: 20px; height: 20px; border-radius: 10px; background: var(--gold); color: #000; font-size: 11px; font-weight: 700; display: grid; place-items: center; padding: 0 6px; }

/* 쪽지 */
.thread { display: flex; flex-direction: column; gap: 10px; margin: 10px 0 16px; }
.bub { max-width: 82%; padding: 10px 14px; background: #161616; border: 1px solid var(--line); white-space: pre-wrap; word-break: break-word; font-size: 14px; }
.bub.mine { align-self: flex-end; background: #1d1a12; border-color: rgba(201,164,92,.35); }
.bub time { display: block; margin-top: 4px; color: var(--ink3); font-size: 11px; }
.bub .att { display: inline-block; margin-top: 8px; padding: 6px 10px; border: 1px solid var(--line2); font-size: 12px; cursor: pointer; }
.composer { position: sticky; bottom: -60px; background: rgba(6,6,6,.98); padding: 12px 0 20px; border-top: 1px solid var(--line); }
.composer textarea { width: 100%; min-height: 84px; resize: vertical; }

/* 입력 */
.form { display: flex; flex-direction: column; gap: 14px; }
.f label { display: block; font-size: 12px; color: var(--ink2); margin-bottom: 6px; letter-spacing: .02em; }
.f input, .f select, .f textarea, .composer textarea { width: 100%; padding: 11px 12px; background: #0d0d0d; border: 1px solid var(--line2); outline: none; border-radius: 0; }
.f input:focus, .f select:focus, .f textarea:focus, .composer textarea:focus { border-color: var(--gold); }
.f textarea { min-height: 110px; resize: vertical; }
.f .hint { font-size: 12px; color: var(--ink3); margin-top: 5px; }
.f2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--ink2); cursor: pointer; }
.check input { margin-top: 3px; accent-color: var(--gold); width: 16px; height: 16px; flex: none; }
.drop { display: block; padding: 22px; border: 1px dashed var(--line2); text-align: center; color: var(--ink2); cursor: pointer; font-size: 14px; }
.drop:hover { border-color: var(--gold); }
.drop input { display: none; }
.files { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.files div { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; background: var(--card); border: 1px solid var(--line); font-size: 13px; }
.bar { height: 3px; background: #222; margin-top: 8px; }
.bar i { display: block; height: 100%; background: var(--gold); width: 0; transition: width .2s; }

.state { padding: 16px 18px; border: 1px solid var(--line2); background: var(--card); margin-bottom: 22px; }
.state b { display: block; margin-bottom: 4px; }
.state.gold { border-color: rgba(201,164,92,.5); }
.state.red { border-color: rgba(224,96,90,.5); }
.tabs { display: flex; gap: 0; border-bottom: 1px solid var(--line); margin: 0 0 18px; }
.tabs button { flex: 1; padding: 12px 0; background: none; border: 0; border-bottom: 2px solid transparent; color: var(--ink2); cursor: pointer; font-size: 14px; }
.tabs button.on { color: var(--ink); border-bottom-color: var(--gold); }
.tabs .badge { position: static; display: inline-grid; margin-left: 4px; vertical-align: 1px; }
.photoedit { display: flex; gap: 16px; align-items: center; }
.photoedit img { width: 96px; height: 96px; object-fit: cover; border: 1px solid var(--line2); }

/* 창 */
.modal { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,.75); display: grid; place-items: center; padding: 16px; }
.mbox { width: 100%; max-width: 400px; background: #090909; border: 1px solid var(--line2); padding: 30px 28px; position: relative; }
.mbox h2 { margin: 0 0 6px; font-weight: 400; font-size: 21px; }
.mbox p { color: var(--ink2); font-size: 14px; margin: 0 0 22px; }
.gbtn { min-height: 44px; display: flex; justify-content: center; }
.mbox .x { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border: 1px solid var(--line); background: none; cursor: pointer; }
.dev { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); display: flex; gap: 6px; }
.dev input { flex: 1; min-width: 0; padding: 8px; background: #0d0d0d; border: 1px solid var(--line2); }
.toast { position: fixed; left: 50%; top: 76px; transform: translateX(-50%); z-index: 60; background: #121212; border: 1px solid var(--gold); padding: 11px 18px; font-size: 14px; max-width: calc(100vw - 32px); }
.toast.err { border-color: var(--red); }

@media (max-width: 760px) {
  .top { height: 56px; padding: 0 12px; gap: 8px; }
  .logo i { display: none; }
  .logo b { font-size: 14px; letter-spacing: .22em; }
  .search { flex: 1; height: 36px; margin-left: 4px; }
  .who .me span, .who .btn.line { display: none; }
  .who .btn { padding: 0 10px; }
  .hero { left: 16px; right: 16px; bottom: 64px; }
  .hero h1 { font-size: 26px; }
  .hero .sub { font-size: 13px; }
  .stat { left: 16px; bottom: 22px; }
  .tools { right: 12px; bottom: 16px; }
  .panel { width: 100%; border-right: 0; }
  .pbody { padding: 22px 18px 60px; }
  .phead .ph { width: 104px; height: 104px; }
  .f2 { grid-template-columns: 1fr; }
}
@media (max-width: 400px) { .search input::placeholder { font-size: 12px; } }
a[role=button] { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.kicker-s { margin: 0 0 8px !important; font-size: 11px !important; letter-spacing: .4em; color: var(--gold) !important; }
.popbody { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; color: #d9d5cc; font-size: 14px; max-height: 50vh; overflow-x: hidden; overflow-y: auto; }
.mbox { min-width: 0; }
.mbox h2 { overflow-wrap: anywhere; word-break: break-word; }
.mbox .kicker-s + h2 { padding-right: 30px; }
.popfoot { display: flex; justify-content: space-between; margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); }
.mbox h2 { white-space: pre-wrap; }
.intro.lead { font-size: 15px; color: var(--ink); }
.facts { display: grid; grid-template-columns: 64px 1fr; gap: 8px 14px; margin: 0 0 14px; padding: 14px 16px; border: 1px solid var(--line); background: var(--card); font-size: 14px; }
.facts dt { color: var(--ink3); font-size: 13px; }
.facts dd { margin: 0; }
.facts dd.desc { white-space: pre-wrap; line-height: 1.6; color: #d9d5cc; }
.tag.gold { border-color: rgba(201,164,92,.45); color: var(--gold2); }
.seek { padding: 14px 16px; border-left: 2px solid var(--gold); background: #0f0d08; white-space: pre-wrap; color: #e3dccb; font-size: 14px; }
.timeline { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 1px solid var(--line2); }
.timeline li { position: relative; padding: 0 0 10px; font-size: 14px; color: #d9d5cc; }
.timeline li::before { content: ''; position: absolute; left: -20px; top: 8px; width: 7px; height: 7px; background: var(--gold); }
/* ── 둥근 모서리(소유자 지시 2026-10-06 「모든 네모를 굴곡진 네모로」) ── */
.btn, .ibtn, .who .ic, .who .me, .search, .pclose, .mbox .x, .tabs button, .drop, .dev input, .dev button { border-radius: 12px; }
.btn.sm { border-radius: 10px; }
.f input, .f select, .f textarea, .composer textarea, .composer select { border-radius: 12px !important; }
.tag { border-radius: 999px; padding: 4px 11px; }
.doc, .facts, .state, .lock, .seek, .files div, .tip, .mbox, .toast, #qlist, .bub, .pact .btn { border-radius: 14px; }
.seek { border-left: 0; box-shadow: inset 3px 0 0 var(--gold); }
.phead .ph, .photoedit img { border-radius: 18px; }
.mini img, .row img, #qlist img { border-radius: 5px; }
.who .me img { border-radius: 4px; }
.who .me { padding-left: 4px; }
.bar, .bar i { border-radius: 99px; }
.timeline li::before { border-radius: 50%; }
#qlist li:first-child { border-radius: 14px 14px 0 0; } #qlist li:last-child { border-radius: 0 0 14px 14px; }
.panel { border-radius: 0 20px 20px 0; }
@media (max-width: 760px) { .panel { border-radius: 0; } }

/* 옆 창 스크롤 막대 숨김(굴리기는 그대로) */
.pbody { scrollbar-width: none; -ms-overflow-style: none; }
.pbody::-webkit-scrollbar { display: none; }
.company2 { margin-top: 18px; }
.comps { display: flex; flex-direction: column; gap: 12px; }
.comps-l { font-size: 12px; color: var(--ink2); }
.comp { padding: 14px; border: 1px solid var(--line2); border-radius: 14px; display: flex; flex-direction: column; gap: 10px; }
.comp-h { display: flex; justify-content: space-between; align-items: center; }
.comp input, .comp textarea { width: 100%; padding: 10px 12px; background: #0d0d0d; border: 1px solid var(--line2); border-radius: 10px; outline: none; }
.comps > .btn { align-self: flex-start; }
/* ── 모바일 다듬기(소유자 지시 2026-10-06) ── */
.search { min-width: 0; }
.who { flex: none; }
.guide { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 6; padding: 9px 16px; border-radius: 999px; background: rgba(20,18,12,.88); border: 1px solid rgba(201,164,92,.45); color: var(--gold2); font-size: 13px; white-space: nowrap; pointer-events: none; transition: opacity .5s; }
.guide.gone { opacity: 0; }
@media (max-width: 760px) {
  .tools { display: none; }
  .top { height: 60px; padding: 0 12px; gap: 8px; background: linear-gradient(rgba(0,0,0,.6) 55%, rgba(0,0,0,0)); }
  .search { flex: 1 1 auto; height: 40px; margin: 0; padding: 0 12px; border-radius: 999px; }
  .search input { font-size: 15px; }
  .who { gap: 6px; }
  .who .btn { height: 40px; padding: 0 16px; border-radius: 999px; }
  .who .ic { width: 40px; height: 40px; border-radius: 50%; }
  .who .me { height: 40px; width: 40px; padding: 0; justify-content: center; border-radius: 50%; overflow: hidden; }
  .who .me img { width: 40px; height: 40px; border-radius: 50%; }
  #qlist { top: 46px; border-radius: 16px; }
  .stat { left: 0; right: 0; bottom: 16px; text-align: center; }
  .guide { bottom: 48px; }
  .pclose { top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 50%; }
  .pact .btn { height: 46px; }
}
.mails { display: flex; flex-direction: column; gap: 10px; }
.mail { padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); }
.mail.new { border-color: rgba(201,164,92,.6); box-shadow: inset 3px 0 0 var(--gold); }
.mail-h { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.mail-h img { width: 38px; height: 38px; border-radius: 4px; object-fit: cover; }
.mail-h .rt { flex: 1; min-width: 0; }
.mail-h small { display: block; color: var(--ink3); font-size: 12px; }
.mail-b { margin-top: 10px; white-space: pre-wrap; word-break: break-word; font-size: 14px; color: #ddd8cc; }
.mail .att, .bub .att { display: inline-block; margin-top: 8px; padding: 6px 10px; border: 1px solid var(--line2); border-radius: 10px; font-size: 12px; text-decoration: none; }
.svgi { display: grid; place-items: center; }
.who .ic .svgi svg { width: 19px; height: 19px; fill: none; stroke: var(--ink); stroke-width: 1.7; }

.panel { background: #060606; }

/* 구글 단추 iframe 이 다크 모드에서 흰 테두리를 그리는 것 막기 */
.gbtn iframe { color-scheme: light; }
.who a, .who a:visited { text-decoration: none; color: var(--ink); }

/* 상세 창 직각 규칙은 걷었다 — 소유자 10-06 다시 「사각형은 굴곡지게 모두」. 상세 창 안 단추·입력칸·말풍선·카드·사진 모두 둥글게 */
.panel .btn, .panel .pclose, .panel .tabs button, .panel .bub, .panel .doc, .panel .facts, .panel .mail, .panel .comp, .panel .lock, .panel .seek, .panel .state, .panel .drop { border-radius: 14px; }
.panel textarea, .panel input, .panel select { border-radius: 12px !important; }
.panel .tag { border-radius: 999px; }
.panel img { border-radius: 14px; }
.panel .phead .ph { border-radius: 18px; }

/* ═══ 상세 창 하나로 모음(2026-10-06 소유자 「쪽지함·내 정보 버튼은 지우고 사진 상세에」) ═══ */
/* 머리 오른쪽: 로그인 뒤엔 내 얼굴 동그라미 하나 + 금색 숫자 */
.who .me { position: relative; width: 42px; height: 42px; padding: 0; border-radius: 50%; border: 0; overflow: visible; justify-content: center; }
.who .me img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.who .me .badge { top: -4px; right: -6px; }
.mebadge { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--gold); color: #000; font-size: 11px; font-weight: 700; vertical-align: 4px; }

/* 숫자 줄 */
.pstats { display: flex; gap: 8px; margin: 18px 0 0; }
.pstat { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px; border: 1px solid var(--line); border-radius: 14px; background: #0c0c0c; cursor: pointer; color: var(--ink2); font-size: 12px; }
.pstat b { font-size: 18px; font-weight: 600; color: var(--ink); }
.pstat:hover, .pstat.on { border-color: rgba(201,164,92,.55); }
.pstat.on b { color: var(--gold2); }
.pact { margin: 14px 0 0; }
.guestnote { margin: 14px 0 0; font-size: 13px; color: var(--ink3); }

/* 탭 줄 — 창을 내려도 위에 붙음 */
.ptabs { position: sticky; top: -28px; z-index: 3; display: flex; gap: 4px; margin: 20px -28px 0; padding: 10px 28px; background: #060606; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.ptabs::-webkit-scrollbar { display: none; }
.ptabs button { flex: 1 0 auto; position: relative; padding: 9px 12px; border: 0; border-radius: 999px; background: none; color: var(--ink2); font-size: 14px; cursor: pointer; white-space: nowrap; }
.ptabs button:hover { color: var(--ink); background: #121212; }
.ptabs button.on { background: var(--gold); color: #0b0b0b; font-weight: 600; }
.ptabs .badge { position: static; display: inline-grid; margin-left: 5px; vertical-align: 1px; min-width: 17px; height: 17px; font-size: 10px; }
.ptabs button.on .badge { background: #0b0b0b; color: var(--gold2); }
.tabbody { padding-top: 6px; min-height: 240px; }
.psec h3, .subh { margin: 26px 0 10px; }
.company + .company { margin-top: 14px; }
.company .tags { margin-top: 12px; }
.empty-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 22px; padding: 18px; border: 1px dashed var(--line2); border-radius: 14px; color: var(--ink2); }
.empty-cta b { color: var(--ink); }
.reportline { margin: 34px 0 0; font-size: 12px; } .reportline a { color: var(--ink3); }

/* 자료 */
.upbox { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; padding: 16px; border: 1px solid rgba(201,164,92,.35); border-radius: 16px; background: #0d0b07; }
.upbox .drop { padding: 11px; font-size: 14px; }
.doc { display: flex; gap: 14px; align-items: flex-start; }
.doc-i { flex: none; width: 46px; height: 56px; border-radius: 10px; display: grid; place-items: center; background: linear-gradient(#1c1810, #12100b); border: 1px solid rgba(201,164,92,.35); color: var(--gold2); font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.doc-m { flex: 1; min-width: 0; }

/* 쪽지 */
.chips { display: flex; gap: 6px; margin: 16px 0 12px; }
.chips button { position: relative; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line2); background: none; color: var(--ink2); font-size: 13px; cursor: pointer; }
.chips button.on { border-color: var(--gold); color: var(--gold2); }
.chips .badge { position: static; display: inline-grid; margin-left: 5px; min-width: 16px; height: 16px; font-size: 10px; }
.row.unread b { color: var(--gold2); }
.row .rr { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-size: 11px; }
.mail { cursor: pointer; } .mail:hover { border-color: var(--line2); }
.mail-f { margin-top: 10px; }
.thread { display: flex; flex-direction: column; gap: 10px; margin: 16px 0 14px; }
.thread-empty { display: flex; flex-direction: column; gap: 6px; padding: 26px 18px; margin: 16px 0; text-align: center; border: 1px dashed var(--line2); border-radius: 16px; color: var(--ink2); font-size: 13px; }
.thread-empty b { color: var(--ink); font-size: 15px; }
.bub time .rep { margin-left: 8px; color: var(--ink3); }
.composer { position: sticky; bottom: -60px; padding: 12px 0 64px; background: #060606; border-top: 1px solid var(--line); }
.composer textarea { min-height: 76px; }
.composer select { width: 100%; margin-top: 8px; padding: 9px 10px; background: #0d0d0d; border: 1px solid var(--line2); border-radius: 12px; }
.composer-f { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.composer-f .faint { flex: 1; font-size: 11px; }
.composer .send { min-width: 96px; }

/* 프로필 수정 — 프로필 탭 맨 위 줄 */
.pedit { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin: 0 0 14px; }
.pedit b { margin-right: auto; color: var(--gold); font-size: 15px; }
fieldset { border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px 16px; margin: 0; display: flex; flex-direction: column; gap: 12px; }
legend { padding: 0 6px; color: var(--gold); font-size: 12px; letter-spacing: .08em; }
.savebar { position: sticky; bottom: -60px; padding: 12px 0 64px; background: linear-gradient(rgba(6,6,6,0), #060606 30%); }
.savebar .btn { width: 100%; height: 48px; }
.logout { margin: 10px 0 0; text-align: center; }
.rep-ta { width: 100%; min-height: 100px; padding: 10px; background: #0d0d0d; border: 1px solid var(--line2); border-radius: 12px; color: inherit; }

@media (max-width: 760px) {
  .ptabs { margin: 18px -18px 0; padding: 10px 18px; top: -22px; }
  .ptabs button { padding: 9px 10px; font-size: 13px; }
  .who .me { width: 40px; height: 40px; } .who .me img { width: 36px; height: 36px; }
  .composer, .savebar { padding-bottom: 70px; }
}

/* ═══ 대화(카카오톡처럼, 2026-10-06) ═══ */
.panel.chatmode .pbody { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 0; }
.panel.chatmode .ptabs { position: static; margin-top: 12px; }
.panel.chatmode .tabbody { flex: 1; min-height: 0; padding: 0; display: flex; }
.chead { display: flex; align-items: center; gap: 12px; padding-right: 48px; }
.chead img { width: 44px; height: 44px; border-radius: 14px; object-fit: cover; cursor: pointer; }
.chead .rt { flex: 1; min-width: 0; cursor: pointer; }
.chead .rt b { display: block; font-size: 17px; font-weight: 600; }
.chead .rt small { color: var(--ink3); font-size: 12px; }
.chat { flex: 1; min-height: 0; display: flex; flex-direction: column; margin: 0 -28px; }
.chat-list { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 18px 10px; background: #0b0b0b; scrollbar-width: thin; scrollbar-color: #2a2a2a transparent; overscroll-behavior: contain; }
.c-day { display: flex; justify-content: center; margin: 14px 0 12px; }
.c-day span { padding: 4px 12px; border-radius: 999px; background: #1a1a1a; color: var(--ink2); font-size: 11.5px; }
.c-row { display: flex; align-items: flex-end; gap: 6px; margin-top: 10px; }
.c-row.cont { margin-top: 3px; }
.c-row.me { justify-content: flex-end; }
.c-row.you { align-items: flex-start; gap: 9px; }
.c-av { width: 38px; height: 38px; border-radius: 14px; object-fit: cover; flex: none; }
.c-row.you.cont .c-av { visibility: hidden; height: 0; }
.c-col { min-width: 0; max-width: 78%; }
.c-name { font-size: 12px; color: var(--ink2); margin: 0 0 4px 2px; }
.c-line { display: flex; align-items: flex-end; gap: 6px; }
.c-bub { max-width: 100%; display: flex; flex-direction: column; gap: 6px; padding: 9px 12px; border-radius: 16px; background: #232323; color: #ece9e2; font-size: 14.5px; line-height: 1.45; word-break: break-word; }
.c-row.you .c-bub { border-top-left-radius: 4px; }
.c-row.you.cont .c-bub { border-top-left-radius: 16px; }
.c-row.me .c-bub { max-width: 74%; background: var(--gold); color: #141109; border-top-right-radius: 4px; }
.c-row.me.cont .c-bub { border-top-right-radius: 16px; }
.c-txt { white-space: pre-wrap; }
.c-side { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex: none; }
.c-row.you .c-side { align-items: flex-start; }
.c-side time { font-size: 10.5px; color: var(--ink3); white-space: nowrap; }
.c-1 { font-size: 11px; font-weight: 700; color: var(--gold2); }
.c-row.pend { opacity: .55; }
.c-img img { display: block; max-width: 230px; max-height: 300px; border-radius: 12px; object-fit: cover; }
.c-row .c-bub:has(> .c-img:only-child) { padding: 0; background: none; }
.c-file { display: flex; align-items: center; gap: 10px; min-width: 200px; padding: 8px; border-radius: 12px; background: rgba(0,0,0,.25); text-decoration: none; color: inherit; }
.c-row.you .c-file { background: #2d2d2d; }
.c-fi { flex: none; width: 38px; height: 44px; border-radius: 8px; display: grid; place-items: center; background: #111; color: var(--gold2); font-size: 10px; font-weight: 700; }
.c-fn { min-width: 0; display: flex; flex-direction: column; }
.c-fn b { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; }
.c-fn small { font-size: 11px; opacity: .75; }
.c-input { display: flex; align-items: flex-end; gap: 8px; padding: 10px 14px; background: #121212; border-top: 1px solid var(--line); }
.c-input textarea { flex: 1; min-height: 40px; max-height: 120px; padding: 9px 14px; border: 1px solid var(--line2); border-radius: 20px; background: #0b0b0b; color: inherit; resize: none; outline: none; font-size: 15px; line-height: 1.4; }
.c-input textarea:focus { border-color: var(--gold); }
.c-plus { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line2); background: none; color: var(--ink); font-size: 20px; cursor: pointer; transition: transform .15s; }
.c-plus.on { transform: rotate(45deg); border-color: var(--gold); color: var(--gold2); }
.c-send { flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #2a2a2a; cursor: pointer; display: grid; place-items: center; }
.c-send svg { width: 18px; height: 18px; fill: #777; }
.c-send.on { background: var(--gold); } .c-send.on svg { fill: #141109; }
.c-tray { display: flex; gap: 10px; padding: 12px 14px; background: #121212; border-top: 1px solid var(--line); }
.c-tray button { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 0; border-radius: 14px; border: 1px solid var(--line2); background: #0b0b0b; color: var(--ink2); font-size: 12px; cursor: pointer; }
.c-tray button span { font-size: 20px; }
.c-note { margin: 0; padding: 4px 14px 10px; background: #121212; color: var(--ink3); font-size: 10.5px; text-align: center; }
.c-menu { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.c-menu .btn { width: 100%; justify-content: flex-start; }
/* 대화 목록 */
.rooms { display: flex; flex-direction: column; margin-top: 6px; }
.room { display: flex; align-items: center; gap: 12px; padding: 11px 6px; border-radius: 14px; cursor: pointer; }
.room:hover { background: #111; }
.room img { width: 50px; height: 50px; border-radius: 17px; object-fit: cover; flex: none; }
.room .rt { flex: 1; min-width: 0; }
.room .rt b { display: block; font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room .rt b small { font-weight: 400; color: var(--ink3); font-size: 12px; }
.room .last { display: block; margin-top: 2px; color: var(--ink2); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.room.unread .last { color: var(--ink); }
.room .rr { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.room .when { font-size: 11px; color: var(--ink3); }
.room .dot { min-width: 20px; height: 20px; border-radius: 10px; background: var(--gold); color: #000; font-size: 11px; font-weight: 700; display: grid; place-items: center; padding: 0 6px; }
@media (max-width: 760px) {
  .chat { margin: 0 -18px; }
  .chat-list { padding: 12px 12px 8px; }
  .c-img img { max-width: 200px; }
  .panel.chatmode .pbody { padding-bottom: 0; height: 100dvh; }
}
.c-input textarea { overflow-y: hidden; scrollbar-width: none; }
.c-input textarea::-webkit-scrollbar { display: none; }

/* 마이페이지(머리 오른쪽 내 얼굴 → 상세 창 「마이」 탭) — 알림 · 프로필 채움 · 계정 · 로그아웃 */
.my-alert { display: flex; align-items: center; gap: 12px; width: 100%; margin: 0 0 8px; padding: 14px 16px; border: 1px solid rgba(201,164,92,.45); border-radius: 14px; background: #0f0d08; color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.my-alert:hover { border-color: var(--gold); }
.my-alert > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.my-alert b { font-weight: 600; font-size: 14px; }
.my-alert small { color: var(--ink3); font-size: 12px; }
.my-alert .dot { min-width: 24px; height: 24px; border-radius: 12px; background: var(--gold); color: #000; font-size: 12px; font-weight: 700; display: grid; place-items: center; padding: 0 7px; flex: none; }
.my-alert i, .my-links i { font-style: normal; color: var(--ink3); font-size: 20px; line-height: 1; }
.my-fill { display: flex; align-items: center; gap: 12px; }
.my-fill b { color: var(--gold2); font-size: 15px; font-weight: 600; min-width: 42px; text-align: right; }
.my-bar { flex: 1; height: 8px; border-radius: 999px; background: #1a1a1a; overflow: hidden; }
.my-bar i { display: block; height: 100%; border-radius: 999px; background: var(--gold); }
.my-miss { background: none; cursor: pointer; font: inherit; font-size: 12px; border-radius: 999px; }
.my-miss:hover { border-color: var(--gold); color: var(--gold2); }
.my-links { display: flex; flex-direction: column; margin-top: 14px; border-top: 1px solid var(--line); }
.my-links > * { display: flex; align-items: center; justify-content: space-between; padding: 14px 2px; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--ink); font: inherit; font-size: 14px; text-decoration: none; cursor: pointer; text-align: left; }
.my-links > *:hover { color: var(--gold2); }
.btn.my-logout { width: 100%; margin: 26px 0 8px; height: 48px; border-radius: 14px; color: var(--ink2); }
.btn.my-logout:hover { border-color: var(--red); color: var(--red); }
.psec .facts dd { overflow-wrap: anywhere; }

/* 머리 얼굴 메뉴 — 누르면 「마이페이지 · 로그아웃」 */
.who { position: relative; }
button.me { font: inherit; color: inherit; }
.who-menu { position: absolute; top: calc(100% + 10px); right: 0; z-index: 20; min-width: 220px; padding: 6px; border: 1px solid var(--line2); border-radius: 16px; background: rgba(10,10,10,.97); box-shadow: 0 12px 40px rgba(0,0,0,.6); }
.who-menu[hidden] { display: none; }
.who-menu .wm-head { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 12px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.who-menu .wm-head b { font-size: 14px; font-weight: 600; }
.who-menu .wm-head small { color: var(--ink3); font-size: 12px; overflow-wrap: anywhere; }
.who-menu button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 12px; border: 0; border-radius: 10px; background: none; color: var(--ink); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.who-menu button:hover { background: #161616; color: var(--gold2); }
.who-menu .wm-out { color: var(--ink2); }
.who-menu .wm-out:hover { color: var(--red); }
.who-menu .dot { min-width: 20px; height: 20px; border-radius: 10px; background: var(--gold); color: #000; font-size: 11px; font-weight: 700; display: grid; place-items: center; padding: 0 6px; }

/* 검색창 = 안내 글자만큼만(소유자 지시 2026-10-06 「업종 찾기 지우고 빈 공간 없게 작게」) — 오른쪽 얼굴 옆에 붙는다 */
.search, .search input { flex: none; }
.search { margin-left: auto; }
.search input { width: 6.9em; padding: 0; }
.search input::-webkit-search-cancel-button { display: none; }
#qlist { left: auto; right: 0; width: min(300px, calc(100vw - 24px)); }
@media (max-width: 760px) { .search { flex: none; margin-left: auto; } }
@media (max-width: 400px) { .search input { width: 5.6em; } }

/* ═══ 넘침 막기(2026-10-06 소유자 「PC·모바일에서 단추가 바깥으로 삐져나감 — 상세·대화·게시물 전체 점검」) ═══
   검사 도구: node _tools/ui-overflow-audit.mjs (폭 320~1280 · 모든 탭·대화방·창) */
/* 1) 띄어쓰기 없는 긴 글(주소·영문·파일 이름)도 칸 안에서 줄바꿈 — 상세 창이 옆으로 밀리지 않게 */
.panel, .mbox, .who-menu, .tip, .toast { overflow-wrap: anywhere; }
.pbody { overflow-x: hidden; }
.tag { max-width: 100%; }
.phead .meta { flex: 1 1 auto; }
.doc .df > span { min-width: 0; }
.doc .df .btn { flex: none; }
/* 2) 대화방 — 사진·파일 말풍선이 대화 판을 화면보다 넓게 밀어 보내기 단추가 잘리던 것 */
.chat, .chat-list, .c-line, .c-bub { min-width: 0; }
.c-row.me .c-bub, .c-line > .c-bub { flex: 0 1 auto; }
.c-file { min-width: 0; width: 230px; max-width: 100%; }
.c-fn { flex: 1; }
.c-fn b { max-width: none; }
.c-img { display: block; max-width: 100%; }
.c-img img { max-width: min(230px, 100%); }
.chead .rt b, .chead .rt small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chead .btn { flex: none; }
.c-input textarea { min-width: 0; }
/* 3) 탭 줄 — 좁은 폰에서 「자료」가 화면 밖으로 밀리던 것. 다섯 칸이 한 줄에 다 보이게 */
@media (max-width: 760px) {
  .ptabs { gap: 2px; padding: 10px 12px; }
  .ptabs button { flex: 1 1 0; min-width: 0; padding: 9px 2px; }
  .ptabs .badge { margin-left: 3px; }
}
/* 4) 창(로그인·신고 등) — 좁은 폰에서 구글 단추(300px)가 창을 화면 왼쪽 밖으로 밀던 것 */
.mbox { min-width: 0; max-height: calc(100dvh - 32px); overflow-y: auto; }
.gbtn { overflow: hidden; }
@media (max-width: 400px) { .mbox { padding: 26px 18px 22px; } }
/* 5) 내 자료 카드 — 「열어 본 수 · 지우기」 줄이 카드 옆 칸으로 붙어 제목을 한 글자 폭으로 짜부라뜨리던 것 → 카드 아래 한 줄 */
.doc { flex-wrap: wrap; }
.doc > .btnrow { flex: 1 0 100%; align-items: center; }


/* 대화방 「나가기」 — 머리 줄이 아니라 대화창 오른쪽 위에 떠 있음 */
.chat { position: relative; }
.chat .c-leave { position: absolute; top: 10px; right: 14px; z-index: 2; background: rgba(11,11,11,.85); }
.chat .chat-list { padding-top: 52px; }

/* 확인 팝업(ask) — 단추는 오른쪽으로 */
.askrow { justify-content: flex-end; }
.mbox h2 + p + .askrow { margin-top: -4px; }
.mbox p { word-break: keep-all; }


/* 상세 탭 줄 = 글자 밑 선(소유자 지시 2026-10-06 「둥근 버튼 말고 글자 아래 선이 그어지게」) — 위 단추 줄·아래 글과 간격 맞춤 */
.ptabs { gap: 0; margin-top: 10px; padding-top: 0; padding-bottom: 0; background: #060606; border-bottom: 0; box-shadow: inset 0 -1px 0 var(--line); }
.ptabs button, .panel .ptabs button { flex: 1 1 0; min-width: 0; padding: 10px 4px 9px; border-radius: 0; background: none; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.ptabs button:hover { background: none; color: var(--ink); }
.ptabs button.on { background: none; color: var(--gold2); font-weight: 600; border-bottom-color: var(--gold); }
.ptabs button.on .badge { background: var(--gold); color: #0b0b0b; }
.tabbody { padding-top: 18px; }
.tabbody > :first-child, .tabbody > :first-child > :first-child { margin-top: 0; }
.panel.chatmode .ptabs { margin-top: 10px; }
.panel.chatmode .tabbody { padding-top: 0; }
@media (max-width: 760px) {
  .ptabs { margin-top: 8px; padding-top: 0; padding-bottom: 0; }
  .ptabs button, .panel .ptabs button { padding: 10px 2px 9px; }
  .tabbody { padding-top: 16px; }
}

/* ═══ NEWS · 차단 · 공개 범위 · 폰 알림 (소유자 지시 2026-10-06) ═══ */
/* 왼쪽 아래 NEWS 단추 — 새 소식이 있으면 금색 점 */
.newsbtn { position: fixed; left: 24px; bottom: 22px; z-index: 6; height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(201,164,92,.55); background: rgba(10,10,10,.88); color: var(--gold2); font: 600 12px/1 var(--font); letter-spacing: .2em; cursor: pointer; box-shadow: 0 4px 18px rgba(0,0,0,.5); -webkit-tap-highlight-color: transparent; transition: background .2s, border-color .2s; }
.newsbtn:hover { background: #1a1408; border-color: var(--gold); }
.newsbtn i { display: none; position: absolute; top: 7px; right: 8px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 2px #0a0a0a; }
.newsbtn.new i { display: block; animation: nwpulse 1.8s ease-in-out infinite; }
@keyframes nwpulse { 50% { opacity: .35; } }
.stat { left: 128px; bottom: 33px; }
@media (max-width: 760px) {
  .newsbtn { left: 14px; bottom: calc(16px + env(safe-area-inset-bottom)); }
  .stat { left: 112px; right: 70px; bottom: calc(28px + env(safe-area-inset-bottom)); text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .guide { bottom: calc(70px + env(safe-area-inset-bottom)); }
  body:has(.panel:not([hidden])) .newsbtn { display: none; }
}

/* NEWS 창 */
.mbox.news-box { max-width: 520px; padding: 26px 22px 20px; display: flex; flex-direction: column; max-height: calc(100dvh - 32px); overflow: hidden; }
.news-head h2 { margin: 0; }
.news-chips { flex-wrap: wrap; margin: 14px 0 12px; }
.news-list { display: flex; flex-direction: column; gap: 8px; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: 0 -4px; padding: 0 4px 4px; scrollbar-width: thin; scrollbar-color: #2a2a2a transparent; }
.nw-act { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 14px; background: #0c0c0c; color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.nw-act:hover { border-color: var(--line2); }
.nw-face { flex: none; width: 40px; height: 40px; border-radius: 12px; object-fit: cover; }
.nw-faces { flex: none; position: relative; width: 58px; height: 40px; }
.nw-faces img { position: absolute; top: 0; left: 0; width: 38px; height: 38px; border-radius: 11px; object-fit: cover; border: 2px solid #0c0c0c; }
.nw-faces img + img { left: 20px; top: 2px; }
.nw-m { flex: 1; min-width: 0; }
.nw-t { display: block; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.nw-t b { font-weight: 600; }
.nw-m small { display: block; margin-top: 2px; color: var(--ink3); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nw-doc { margin-left: 4px; color: var(--gold2); }
.nw-side { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; color: var(--ink3); font-size: 11px; white-space: nowrap; }
.nw-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.nw-admin { padding: 14px 16px; border: 1px solid rgba(201,164,92,.5); border-radius: 14px; background: #0d0b07; }
.nw-top { display: flex; align-items: center; gap: 8px; color: var(--ink3); font-size: 12px; }
.nw-badge { padding: 2px 9px; border-radius: 999px; background: var(--gold); color: #0b0b0b; font-size: 11px; font-weight: 700; }
.nw-title { display: block; margin: 9px 0 4px; font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
.nw-admin p { margin: 0; color: var(--ink2); font-size: 14px; white-space: pre-wrap; overflow-wrap: anywhere; }
.nw-admin .btn { margin-top: 12px; }
.news-more { align-self: center; margin-top: 12px; }

/* 차단 — 상세 주 단추 줄의 ⋯ · 차단한 회원 띠 */
.pact .btn.more { flex: none; min-width: 0; width: 42px; padding: 0; font-size: 18px; letter-spacing: .05em; color: var(--ink2); }
.blocked-bar { display: flex; align-items: center; gap: 12px; margin: 22px 0 0; padding: 14px 16px; border: 1px dashed rgba(224,96,90,.5); border-radius: 14px; background: #120a0a; }
.blocked-bar span { flex: 1; min-width: 0; }
.blocked-bar b { display: block; font-size: 14px; }
.blocked-bar small { color: var(--ink3); font-size: 12px; }
.c-input.c-blocked { align-items: center; justify-content: space-between; color: var(--ink2); font-size: 13px; }

/* 공개 범위 */
.vis-chip { display: inline-block; margin-left: 8px; padding: 1px 8px; border: 1px solid var(--line2); border-radius: 999px; color: var(--ink2); font-size: 11px; letter-spacing: 0; vertical-align: 1px; }
.vis-lock { display: flex; gap: 12px; align-items: flex-start; margin-top: 26px; padding: 16px; border: 1px dashed rgba(201,164,92,.45); border-radius: 14px; background: #0d0b07; }
.vl-i { font-size: 18px; line-height: 1.3; }
.vis-lock b { display: block; color: var(--gold2); font-size: 14px; }
.vis-lock small { display: block; margin-top: 3px; color: var(--ink2); font-size: 13px; }
.vis-lock p { margin: 6px 0 0; color: var(--ink3); font-size: 13px; }
.tabbody > .vis-lock:first-child { margin-top: 0; }
.vis-list { border-top: 1px solid var(--line); }
.vis-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.seg { display: inline-flex; flex: none; padding: 3px; gap: 2px; border: 1px solid var(--line); border-radius: 999px; background: #0e0e0e; }
.seg button { padding: 6px 12px; border: 0; border-radius: 999px; background: none; color: var(--ink3); font: 12.5px/1.2 var(--font); cursor: pointer; white-space: nowrap; }
.seg button.on { background: var(--gold); color: #0b0b0b; font-weight: 600; }
.pedit .btn + .btn { margin-left: 0; }

/* 폰 알림 줄 — 스위치 */
.push-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #0c0c0c; }
.pr-t { flex: 1; min-width: 0; }
.pr-t b { display: block; font-size: 14px; font-weight: 500; }
.pr-t small { display: block; color: var(--ink3); font-size: 12px; }
.switch { position: relative; flex: none; width: 48px; height: 28px; border: 0; border-radius: 999px; background: #2b2b2b; cursor: pointer; transition: background .2s; }
.switch i { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #d9d6cf; transition: transform .2s; }
.switch.on { background: var(--gold); }
.switch.on i { transform: translateX(20px); background: #0b0b0b; }
.switch:disabled { opacity: .45; cursor: default; }
.pr-test { flex-basis: 100%; }
@media (min-width: 420px) { .pr-test { flex-basis: auto; margin-left: auto; } }
@media (max-width: 420px) { .news-chips { gap: 5px; flex-wrap: nowrap; } .news-chips button { padding: 6px 10px; font-size: 12.5px; white-space: nowrap; } .mbox.news-box { padding: 24px 16px 18px; } }
.pr-test { flex-basis: auto; margin-left: auto; }
