/* Kulture component CSS — ported verbatim from working v5 prototype.
   Tokens come from tokens.css (authority = Will v2.1). See Style_Delta.md. */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
/* P0-7: i18n 레이아웃 견고성 — 장문/영문 1.4x·CJK·Latin 혼합에도 overflow·겹침 없음.
   본문류는 wrap(break-word), 단일행 라벨/CTA는 ellipsis, flex 자식은 min-width:0. */
.fb,.abt,.digfact,.expb,.vct,.combwhy,.combsub,.rkbasis,.rkfnote,.vcnote,.repnote,.sctx,.swhy,.rr,.digs,.kcs,.mss,.rps,.abt b,.abt *,.ctxrow,.srec,.commsum,.lenssum{overflow-wrap:anywhere;word-break:break-word}
.acta,.pagecta,.b,.savb,.msj,.kjoin,.vcfix,.onbtopic,.onbchip,.rkax,.rksc,.cfchip,.mrt,.pfsl{overflow-wrap:break-word}
.fh,.sttl,.digrow,.digm,.rkrow2,.vcrow,.vcm,.kconv,.kcm,.missionrow,.msm,.mlrow,.savedc,.sb,.histrow,.credrow,.ct3,.impactrow,.imt,.digrow .digm,.rankprev .rpm{min-width:0}
body{font-family:var(--sans);color:var(--ink);background:var(--bg0)}
#app{position:fixed;inset:0;max-width:480px;margin:0 auto;overflow:hidden;
  background:radial-gradient(150% 85% at 50% 116%,rgba(74,120,255,.13),transparent 54%),
             radial-gradient(130% 100% at 50% -12%,var(--bg2),var(--bg1) 46%,var(--bg0));}
/* U4-F/D9-03: Mobile-only — iPad/desktop adaptive redesign 없음. desktop/tablet은 중앙 정렬된 mobile shell만 표시(프레임 폴리시).
   반응형 재설계는 phase-specific prototype planning에서 재개(deferred). */
@media (min-width:520px){
  body{background:#05070f}
  #app{box-shadow:0 0 0 1px #1a2340,0 24px 80px -20px #000c;border-radius:0}
}

/* ---------- screens ---------- */
.screen{position:absolute;inset:0;display:none;flex-direction:column}
.screen.on{display:flex}
.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:122px}
#s-page .scroll,#s-coll .scroll,#s-answer .scroll,#s-create .scroll,#s-notification .scroll{padding-bottom:76px}  /* nav-only dock 클리어(하단 nav 유지) */
/* R2 §4-6③ 상세 페이지 — 시트가 주던 좌우 여백을 페이지가 대신 준다(시트 전용 스타일 재사용). */
#objBody{padding:14px 16px 76px}
.dock.flat .tray,.dock.flat .randomCta,.dock.flat .scopebar{display:none!important}
/* nav-only: 깊은 화면(Page·담은카드·답변 등)에서 트레이·asK는 숨기되 하단 4탭 nav는 유지(Kosmos/타 탭 이동) */
.dock.navonly .tray,.dock.navonly .randomCta,.dock.navonly .scopebar,.dock.navonly .ask,.dock.navonly .askrail{display:none!important}
.scroll::-webkit-scrollbar{display:none}

/* ---------- top bar ---------- */
/* WB(Daniel): 상단 헤더 = 하단 네비와 같은 Glass(모든 메인 화면). 단, 스크롤로 위로 감췄다 복원하는 동작은
   FEED에서만(Community/My는 .scroll 안에 sticky 중간탭이 있어 overlay와 충돌 → relative 유지). */
.top{position:relative;z-index:20;padding:12px 16px 8px;
  background:rgba(12,18,34,.34);backdrop-filter:blur(12px) saturate(1.5) brightness(1.02);-webkit-backdrop-filter:blur(12px) saturate(1.5) brightness(1.02);
  border-bottom:1px solid rgba(255,255,255,.12);
  transition:transform .3s cubic-bezier(.4,0,.2,1)}
/* Feed만 overlay(absolute) → 스크롤 시 위로 감춰지고 콘텐츠가 유리 아래로 흐름(_syncTopPad로 paddingTop 동기). */
#s-feed>.top{position:absolute;top:0;left:0;right:0;box-shadow:0 6px 20px -14px rgba(0,0,0,.55)}
.top.tophide{transform:translateY(-100%)}
.top .row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand{font-size:14px;font-weight:800;letter-spacing:-.02em}
.brand small{font-weight:500;color:var(--ink3);font-size:10px;margin-left:6px}
.viewlbl{font:600 10px var(--mono);color:var(--ink2);background:#ffffff10;border:1px solid var(--line);padding:4px 9px;border-radius:20px}
/* V-2: 글로벌 헤더 아이콘 (Kosmos·Pulse·Community·My 공통) */
.top .row .viewlbl{margin-left:auto;margin-right:8px}
.gicons{display:flex;align-items:center;gap:11px;flex:none}
.gic{position:relative;font-size:17px;line-height:1;cursor:pointer;opacity:.92}
.gic:hover{opacity:1}
.gic .gbadge{position:absolute;top:-5px;right:-7px;min-width:14px;height:14px;padding:0 3px;border-radius:8px;background:#e2554f;color:#fff;font:800 8.5px/14px var(--mono);text-align:center;font-style:normal}
/* V-3: 통합 인박스 섹션 라벨 · Krew 안읽음 뱃지 */
.ibsec{font:800 10px var(--mono);letter-spacing:.05em;color:var(--ink3);text-transform:uppercase;padding:15px 12px 6px}
.ibbadge{display:inline-block;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:#e2554f;color:#fff;font:800 9px/15px var(--mono);vertical-align:middle;margin-left:4px}
.ibempty{font:500 11.5px var(--sans);color:var(--ink3);padding:10px 12px}
.scope{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.chip{font:600 9.5px var(--mono);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);padding:3px 9px;border-radius:14px;white-space:nowrap}
.chip.act{color:var(--ink);border-color:#6aa6ff55;background:#6aa6ff1c}
.chip.btn{cursor:pointer;color:#bcd3ff;border-color:#6aa6ff44}
.chip.filt{cursor:pointer;margin-left:auto;color:#bcd3ff;border-color:#6aa6ff44}
.chip.filt.on{color:#06121f;background:#6aa6ff;border-color:#6aa6ff}
/* B2: Feed 중간 탭 (Signal/Brief/ranKING) */
.feedtabs{display:flex;gap:4px;margin-top:10px;background:#ffffff08;border:1px solid var(--line);border-radius:12px;padding:3px}
.feedtabs .ftab{flex:1;text-align:center;font:700 11.5px var(--sans);color:var(--ink3);padding:6px 4px;border-radius:9px;cursor:pointer;transition:all .15s}
.feedtabs .ftab.act{color:var(--ink);background:#6aa6ff22;box-shadow:inset 0 0 0 1px #6aa6ff44}
/* Run2 교정 A: Signal/ranKING view 탭 — primary(For You/Following)보다 부차적 pill · ranKING 금색 강조 */
/* CR-D(D10-04): Signal/ranKING = PRIMARY mode. 아래 보조 rail과 위계가 즉시 읽히도록
   크기(17.5 vs 11)·굵기(800 vs 700)·명도(near-white vs dim)·밴드 구분선까지 벌린다.
   (Daniel 재지적 — 직전 "15px" 상향은 여전히 부차 rail과 비슷해 보였음.) */
/* CR2-C01(D11-05) + Daniel: Signal/ranKING = My 중간탭 형태(밑줄 텍스트 탭 · pill/아이콘 아님). flex:1 stretched, 활성=밑줄+명도. */
/* D-COM-TABS-01: Shared Surface Tab Rail (.srail/.stab) — single source for Feed(viewtabs)·Community·(My mirrors via .mytabs).
   Feed viewtabs is the canonical primary rail; Community reuses .srail verbatim (no third pill style; no copied CSS). */
.feedtabs.viewtabs,.srail{display:flex;margin-top:10px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:0;gap:4px}
.feedtabs.viewtabs .ftab,.srail .stab{flex:1;text-align:center;font:700 14.5px var(--sans);color:var(--ink3);background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:11px 0;margin-bottom:-1px;letter-spacing:normal;cursor:pointer;transition:all .15s}
.feedtabs.viewtabs .ftab.act,.srail .stab.act{color:var(--ink);background:transparent;box-shadow:none;border-bottom-color:var(--mine)}
/* Community rail sticky parity with My (functional, not decorative) */
.srail.stick{position:sticky;top:0;background:rgba(12,18,34,.62);backdrop-filter:blur(9px) saturate(1.3);-webkit-backdrop-filter:blur(9px) saturate(1.3);z-index:5}
/* P1-20(D6-36): Feed context 줄 — 내 관심사 · Surprise Me · Filter (ranKING 제외) */
.feedcontext{display:flex;gap:7px;align-items:center;margin-top:9px;flex-wrap:wrap}
.feedcontext .fctx{font:600 11px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line2);border-radius:13px;padding:6px 11px;cursor:pointer;transition:all .15s}
.feedcontext .fctx b{color:var(--mine);margin-left:3px}
.feedcontext .fctx.act{color:#fff;background:#6aa6ff;border-color:#6aa6ff}
.feedcontext .fctx.peek{color:#9ec6ff;border-color:#6aa6ff44}
.feedcontext .fctx.peek.act{color:#fff}
.feedcontext .fctx.filt{margin-left:auto}
.feedcontext .fctx.filt.on{color:#9be86b;border-color:#9be86b55}
/* FR2-D01/D8-06: Signal 보조 rail 한 줄(ftab scope + fctx peek/surprise/filter 혼합).
   CR-D: 보조 rail은 primary mode 밴드와 구분선(border-top)으로 분리 — 같은 평면에 놓지 않는다. */
.feedtabs.signalrail,.feedtabs.rankrail{margin-top:9px;background:transparent;border:0;gap:6px;flex-wrap:wrap;align-items:center}
.feedtabs[hidden]{display:none}   /* .feedtabs{display:flex}가 hidden 기본값을 덮으므로 명시 */
.feedtabs.signalrail .ftab,.feedtabs.rankrail .ftab{flex:0 0 auto;font:700 11px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:13px;padding:6px 13px}
.feedtabs.signalrail .ftab.act{color:var(--ink);background:#6aa6ff22;box-shadow:inset 0 0 0 1px #6aa6ff55}
.feedtabs.rankrail .ftab.act{color:var(--ink);background:#cdb24a26;box-shadow:inset 0 0 0 1px #cdb24a66}
.feedtabs.signalrail .fctx{flex:0 0 auto;font:600 11px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line2);border-radius:13px;padding:6px 11px;cursor:pointer;transition:all .15s}
.feedtabs.signalrail .fctx b{color:var(--mine);margin-left:3px}
.feedtabs.signalrail .fctx.act{color:#fff;background:#6aa6ff;border-color:#6aa6ff}
.feedtabs.signalrail .fctx.peek{color:#9ec6ff;border-color:#6aa6ff44}
.feedtabs.signalrail .fctx.peek.act{color:#fff}
.feedtabs.signalrail .fctx.filt{margin-left:auto}
.feedtabs.signalrail .fctx.filt.on{color:#9be86b;border-color:#9be86b55}
.commtabs{margin-top:2px}
.commtabs .ftab{font-size:10px;padding:6px 2px}
/* FR2-F02/D8-10: My Circle 내부 탭 All/Hot · FR2-F05 Mission scope rail */
.feedtabs.mcinner{margin:8px 12px 6px;gap:5px;background:transparent;border:0;padding:0}
.feedtabs.mcinner .ftab{flex:0 0 auto;font:700 11px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:13px;padding:5px 13px}
.feedtabs.mcinner .ftab.act{color:var(--ink);background:#6aa6ff22;box-shadow:inset 0 0 0 1px #6aa6ff55}
/* FR2-F05/D8-12: Mission 카드 semantics(issuer·status·keyword·scope) */
.msngrid{display:flex;flex-direction:column;gap:9px;margin:2px 12px 0}
.msncard{background:#111a2e;border:1px solid #223052;border-radius:11px;padding:11px 12px;cursor:pointer}
.msncard:active{opacity:.9}
.msnh{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.msnissuer{font:700 10.5px var(--sans);color:#9ec6ff}
.msnstatus{margin-left:auto;font:800 9px var(--sans);text-transform:uppercase;letter-spacing:.4px;border-radius:6px;padding:2px 7px;color:#0a1a14;background:#5ad6a8}
.msnstatus.ms-recruiting{background:#5ad6a8}.msnstatus.ms-active{background:#6aa6ff;color:#04101f}.msnstatus.ms-closing,.msnstatus.ms-closed{background:#c56b6b;color:#fff}
.msnt{font:700 12.5px/1.4 var(--sans);color:#eaf1ff}
.msnmeta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.msnkw{font:600 10px var(--sans);color:#c2c7e6;background:#1a2036;border:1px solid #2a3358;border-radius:7px;padding:2px 7px}
.msnscopechip{font:600 10px var(--sans);color:#8aa0ff;border:1px dashed #3a4570;border-radius:7px;padding:2px 7px}
/* Mission Card 전 필드 (Daniel 260717 #6) */
.msncard.rich .msnpurpose{font:500 11px/1.42 var(--sans);color:#aab6d6;margin-top:5px}
.msncard.rich .msncontrib{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.msncard.rich .msnout{font:600 10px var(--sans);color:#8fd0b0;background:#2bb98a14;border:1px solid #2bb98a33;border-radius:7px;padding:2px 7px}
.msncard.rich .msnprog{height:5px;border-radius:99px;background:#ffffff14;overflow:hidden;margin-top:9px}
.msncard.rich .msnprog i{display:block;height:100%;background:var(--mine,#6aa6ff);border-radius:99px}
.msncard.rich .msnprogmeta{display:flex;align-items:center;gap:7px;margin-top:5px;font:600 10px var(--sans);color:#8795b5}
.msncard.rich .msnprogmeta .msnsamp{font-weight:800;color:#f5cf8a;background:#efc34a1a;border:1px solid #efc34a44;border-radius:6px;padding:1px 6px}
.msncard.rich .msnprogmeta .msndday{margin-left:auto;color:#efc7a6}
.msncard.rich .msncta{margin:10px auto 0;display:block;width:max-content;max-width:100%;text-align:center;font:800 11.5px var(--sans);color:var(--mine-ink,#041020);background:var(--mine,#6aa6ff);border-radius:9px;padding:8px 22px}
/* FR2-F07/D8-14: Krew Posts 탭 스트림 */
.krewcompose{margin:2px 0 10px;font:600 12px var(--sans);color:var(--ink3);background:#111a2e;border:1px solid #223052;border-radius:11px;padding:11px 13px;cursor:pointer}
.krewpost{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line,#1c2036)}
.krewpost:last-of-type{border-bottom:0}
.kpav{width:32px;height:32px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 13px var(--sans);color:#fff}
.kpu{font:700 11px var(--mono);color:var(--ink3)}
.kpt{font:500 12.5px/1.45 var(--sans);color:var(--ink);margin:3px 0}
.kpm{font:600 10.5px var(--sans);color:#8890b0}
.krewmsnmini .mll b{color:#9ec6ff}
/* CR-PUNCH #10(Daniel 10): Posts 인라인 composer(Text·첨부·출처·게시) */
.krewcomposer{margin:2px 0 12px;background:#111a2e;border:1px solid #223052;border-radius:13px;padding:11px 12px}
.kcomphd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.kcompav{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 11px var(--sans);color:#06121f;background:#6aa6ff}
.kcomptt{font:700 11.5px var(--sans);color:var(--ink2)}
.kcompta{width:100%;box-sizing:border-box;resize:vertical;min-height:44px;background:#0b1120;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font:500 12.5px/1.45 var(--sans);color:var(--ink)}
.kcompta::placeholder{color:var(--ink4)}
.kcompattrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.kcompattrow[hidden],.kcompsrcrow[hidden]{display:none}   /* class display가 [hidden] UA규칙을 덮어 toggle 깨짐 방지 */
.kcatt{display:inline-flex;align-items:center;gap:5px;font:600 10.5px var(--sans);color:var(--ink2);background:#182338;border:1px solid var(--line2);border-radius:9px;padding:4px 8px}
.kcatt .kcai{font-size:11px}.kcatt .kcax{cursor:pointer;color:var(--ink3);margin-left:2px}
.kcompsrcrow{display:flex;align-items:center;gap:7px;margin-top:8px;background:#0b1120;border:1px solid var(--line);border-radius:9px;padding:6px 10px}
.kcompsrcrow .kcsi{flex:none}
.kcompsrc{flex:1;background:transparent;border:0;outline:0;font:500 11.5px var(--sans);color:var(--ink)}.kcompsrc::placeholder{color:var(--ink4)}
.kcompbar{display:flex;align-items:center;justify-content:space-between;margin-top:9px}
.kcompactions{display:flex;gap:7px}
.kcompbtn{font:600 11px var(--sans);color:var(--ink2);background:#182338;border:1px solid var(--line2);border-radius:9px;padding:5px 9px;cursor:pointer}
.kcompbtn.on{color:#9ec6ff;border-color:#6aa6ff77;background:#6aa6ff1c}
.kcomppub{font:700 12px var(--sans);color:#06121f;background:#6aa6ff;border-radius:9px;padding:6px 16px;cursor:pointer}
.kcomppub[aria-disabled="true"]{background:#2a3550;color:#6b789c;cursor:default}
.krewpost.mine{background:#0e1930;border-radius:11px;padding:11px;border-bottom:0;margin-bottom:8px}
.kpmine{margin-left:7px;font:700 9px var(--mono);color:#5ad6a8;background:#2dd4a81c;border-radius:7px;padding:1px 6px}
.kpatt{display:flex;flex-wrap:wrap;gap:6px;margin:5px 0}.kpattc{font:600 10px var(--sans);color:var(--ink2);background:#182338;border:1px solid var(--line2);border-radius:8px;padding:2px 8px}
.kpsrc{display:inline-block;margin:3px 0;font:600 11px var(--sans);color:#9ec6ff;text-decoration:none}
/* CR-PUNCH #10: Members + 멤버 활동 통합 블록(멤버 아래 그 멤버 활동) */
.kmemblock{padding:9px 0;border-bottom:1px solid var(--line)}.kmemblock:last-of-type{border-bottom:0}
.kmemacts{margin:4px 0 2px 44px;display:flex;flex-direction:column;gap:5px}
.kmemact{display:flex;align-items:baseline;gap:7px;font:500 11.5px/1.4 var(--sans);color:var(--ink2)}
.kmemact .kmai{flex:none}.kmemact .kmatx{flex:1;min-width:0}.kmemact .kmaw{font:600 9.5px var(--mono);color:var(--ink4);white-space:nowrap}
/* ===== U4-B/D9-02 · Assisted Opt-in Pod ===== */
.podsec .podsub{font:800 10.5px var(--sans);color:#9fb0d0;margin:11px 2px 7px;letter-spacing:.2px}
.podreccard{background:#111a2e;border:1px solid #223052;border-radius:12px;padding:12px 13px;margin-bottom:9px}
.podrh{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.podcat{font:700 9.5px var(--sans);color:#8aa0ff;background:#1a2036;border:1px solid #2a3358;border-radius:6px;padding:2px 7px}
.podlife{font:700 9px var(--sans);border-radius:6px;padding:2px 7px;margin-left:auto}
.podlife.rec{color:#9ec6ff;background:#6aa6ff18}.podlife.act{color:#5ad6a8;background:#5ad6a818}
.podlife.exp{color:#e8b04a;background:#e8b04a1c}.podlife.arch{color:#9aa3bd;background:#ffffff0c}
.podlife.krew{color:#f0c14a;background:#f0c14a1c}
.podname{font:800 14px var(--sans);color:#eaf1ff;margin:2px 0}
.podname.lg{font-size:18px;margin:8px 0 4px}
.podpurp{font:500 11.5px/1.45 var(--sans);color:#9fb0d0;margin-bottom:8px}
.podavs{display:flex;align-items:center;gap:-6px;margin:7px 0}
.podav{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:800 11px var(--sans);color:#fff;border:2px solid #111a2e;margin-right:-7px;cursor:pointer}
.podavn{font:700 10px var(--mono);color:#8aa0ff;margin-left:13px}
.podstarter{font:600 10.5px var(--sans);color:#c2c7e6;background:#0f1830;border:1px dashed #2a3860;border-radius:8px;padding:6px 10px;margin:6px 0 9px;display:inline-flex;align-items:center;gap:6px}
.podacts,.podactionrow{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}
.podactionrow{margin-top:12px}
.podbtn{font:700 11px var(--sans);border-radius:13px;padding:6px 13px;cursor:pointer;border:1px solid var(--line2,#2a3358);color:var(--ink2,#c2c7e6);background:#141d33}
.podbtn.join{color:#fff;background:#6aa6ff;border-color:#6aa6ff}
.podbtn.open,.podbtn.go,.podrowgo{color:#9ec6ff}
.podbtn.leave,.podbtn.report{color:#e08a8a;border-color:#5a2f36}
.podbtn.mute.on{color:#e8b04a;border-color:#5a4a2f}
.podbtn.rematch{color:#5ad6a8;border-color:#2f5a48}
.podrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line,#1c2036);cursor:pointer}
.podrow:last-of-type{border-bottom:0}
.podrowi{font-size:17px}
.podrowm{flex:1;min-width:0}
.podrowt{font:700 12.5px var(--sans);color:#eaf1ff;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.podrows{font:500 10.5px var(--sans);color:#8890b0;margin-top:2px}
.podrowgo{margin-left:auto}
.podhd{display:flex;align-items:center;gap:8px}
.podsec2{margin-top:14px}
.podmems{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.podmemchip{display:inline-flex;align-items:center;gap:5px;font:600 10.5px var(--sans);color:#c2c7e6;background:#141d33;border:1px solid #26324e;border-radius:13px;padding:3px 9px 3px 3px;cursor:pointer}
.podmemav{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:800 10px var(--sans);color:#fff}
.podstartbox{display:flex;align-items:center;gap:9px;background:#0f1830;border:1px solid #223052;border-radius:10px;padding:10px 12px;margin-top:6px}
.podstartbox .podsti{font-size:18px}
.podstt{font:800 12px var(--sans);color:#eaf1ff}
.podsts{font:500 11px/1.4 var(--sans);color:#9fb0d0;margin-top:2px}
.podstartbox .podstm{flex:1;min-width:0}
.podkrewbanner{font:700 11.5px/1.5 var(--sans);color:#f0c14a;background:#f0c14a14;border:1px solid #f0c14a44;border-radius:10px;padding:9px 12px;margin:8px 0;cursor:pointer}
/* P00 260718: Pod Conversation(샘플 대화) */
.podthreadentry{display:flex;align-items:center;gap:9px;background:#0f1830;border:1px solid #26324e;border-radius:10px;padding:9px 12px;margin-top:7px;cursor:pointer}
.podthreadentry .podsti{font-size:16px}
.podthreadentry .podstm{flex:1;min-width:0}
.podsamplechip{display:inline-block;font:800 9px var(--sans);letter-spacing:.03em;color:#9fb0d0;background:#141d33;border:1px solid #2a3358;border-radius:8px;padding:1px 6px;margin-left:5px;vertical-align:middle}
.podthd{margin-bottom:8px}
.podthname{font:800 15px var(--sans);color:#eaf1ff}
.podthsub{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}
.podstarterpin{display:flex;align-items:center;gap:9px;background:#101a30;border:1px dashed #2c3a5e;border-radius:10px;padding:9px 12px;margin:4px 0 10px}
.podstarterpin .podsti{font-size:16px}
.podstarterpin .podstm{flex:1;min-width:0}
.podmsgs{display:flex;flex-direction:column;gap:11px;max-height:46vh;overflow-y:auto;padding:2px 1px 4px}
.podmsg{display:flex;gap:9px;align-items:flex-start}
.podmsgav{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#fff}
.podmsgb{flex:1;min-width:0}
.podmsgt{display:flex;align-items:baseline;gap:7px}
.podmsgt b{font:800 11.5px var(--sans);color:#dbe6ff}
.podmsgtime{font:500 10px var(--sans);color:#7f8db0}
.podmsgx{font:500 12px/1.5 var(--sans);color:#c7d2ee;margin-top:2px;word-break:break-word}
.podcomposer{display:flex;gap:7px;align-items:center;margin-top:11px}
.podmsginput{flex:1;min-width:0;font:500 12px var(--sans);color:#eaf1ff;background:#0f1830;border:1px solid #26324e;border-radius:16px;padding:8px 13px;outline:none}
.podmsginput::placeholder{color:#6f7d9e}
.podjoinbar{display:flex;align-items:center;gap:9px;justify-content:space-between;margin-top:11px;background:#0f1830;border:1px solid #223052;border-radius:10px;padding:9px 12px}
.podjoinnote{font:500 11px/1.45 var(--sans);color:#9fb0d0;flex:1;min-width:0}
/* P00 260718 Pod Conversation DB — 신규 요소 */
.podmetaline{font:600 10.5px var(--sans);color:#8090b4;margin:4px 0 8px}
.podbtn.talk{color:#fff;background:#37b0a0;border-color:#37b0a0}
.podnodetag{font:600 10.5px var(--sans);color:#8fa0c4;margin-left:2px}
/* Node Summary — 이 Node의 Pod rail */
.npodrail{margin:12px 0 6px}
.npodhd{font:800 12.5px var(--sans);color:#dbe6ff;margin:0 0 8px;display:flex;align-items:baseline;gap:7px}
.npodscroll{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:1px 1px 6px;scroll-snap-type:x proximity}
.npodcard{flex:0 0 76%;max-width:230px;scroll-snap-align:start;background:#111a2e;border:1px solid #223052;border-radius:12px;padding:11px 12px;cursor:pointer}
.npodt{font:800 13px var(--sans);color:#eaf1ff;margin-bottom:3px}
.npoddesc{font:500 11px/1.45 var(--sans);color:#9fb0d0;margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.npodmeta{font:600 10.5px var(--sans);color:#8090b4;margin-bottom:9px}
.npodmeta b{color:#5ad6a8}
.npodcta{font:800 11.5px var(--sans);color:#fff;background:#37b0a0;border-radius:13px;padding:6px 0;text-align:center}
/* Conversation reply / role / reaction / back */
.podthhd{margin-bottom:4px}
.podbtn.ghost{background:transparent;border-color:transparent;color:#9ec6ff;padding:4px 4px}
.podthmeta{font:500 10.5px var(--sans);color:#8090b4}
.podmsgrole{font:600 9.5px var(--sans);color:#7f8db0;background:#151f38;border-radius:8px;padding:1px 6px}
.podmsgreply{font:500 10.5px var(--sans);color:#7f8db0;margin:1px 0 2px;padding-left:8px;border-left:2px solid #2c3a5e}
.podmsgfoot{margin-top:4px}
.podmsgreact{font:700 10.5px var(--sans);color:#e08aa8;cursor:pointer;user-select:none}
.podmorerow{font:700 11.5px var(--sans);color:#9ec6ff;padding:9px 2px 2px;cursor:pointer}
/* P00 260718: Peek/Summary → Pod 연동 포인터 */
.peekmod.podhint .pkpod,.podsummaryhint{display:flex;align-items:center;gap:8px;background:#0f1830;border:1px solid #26324e;border-radius:10px;padding:9px 12px;cursor:pointer}
.pkpodm{flex:1;min-width:0}
.pkpodm b{font:800 12px var(--sans);color:#eaf1ff;display:block}
.pkpodp{font:500 10.5px var(--sans);color:#9fb0d0;display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podsummaryhint{margin-top:7px}
.podsummaryhint .psh-ic{font-size:15px}
.podsummaryhint .psh-m{flex:1;min-width:0}
.podsummaryhint .psh-t{font:800 11.5px var(--sans);color:#eaf1ff}
.podsummaryhint .psh-s{font:500 10.5px var(--sans);color:#9fb0d0;margin-top:1px}
/* B2: Brief 탭 */
.briefhd{padding:2px 2px 10px}
.briefhd .bhl{font:800 13px var(--sans);color:var(--ink)}
.briefhd .bhs{font:500 11px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.5}
.briefdigest{display:flex;flex-direction:column;gap:7px;margin:8px 0}
.briefrow{display:flex;align-items:center;gap:10px;padding:11px 11px;background:#ffffff06;border:1px solid var(--line);border-radius:13px;cursor:pointer}
.briefrow:active{background:#ffffff0d}
.briefrow .bri{flex:none;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:800 9px var(--mono)}
.briefrow .brm{flex:1;min-width:0}
.briefrow .brt{font:700 12.5px var(--sans);color:var(--ink)}
.briefrow .brs{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.briefrow .brgo{color:var(--ink3);font-size:15px}
/* B2+A7: ranKING 탭 */
.rankcard{background:#ffffff06;border:1px solid var(--line);border-radius:14px;padding:12px 12px;margin-bottom:9px;cursor:pointer}
.rankcard .rkhd{display:flex;gap:9px;align-items:flex-start}
.rankcard .rpi{font-size:18px;flex:none}
.rankcard .rkt{font:700 12.5px var(--sans);color:var(--ink)}
.rankcard .rkax{font:600 9.5px var(--mono);color:#9ec6ff;margin-top:3px;line-height:1.5}
.rankcard .rkdis{font:500 10px var(--sans);color:var(--ink3);margin:8px 0 6px;padding:6px 8px;background:#ffffff06;border-radius:9px}
.rankcard .rkaxes{font:600 9.5px var(--mono);color:var(--ink2);display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.rankcard .rkax1{border:1px solid var(--line2);border-radius:9px;padding:2px 8px;color:#bcd3ff}
/* ============ RNK-01: ranKING 2.0 Intelligence Hub ============ */
.rkhub .rkHubHd{padding:2px 2px 8px}
.rkhub .rkHubHd .bhl{font:800 15px var(--sans);color:var(--ink)}
.rkhub .rkHubHd .bhs{font:500 11px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.55}
.rkView{display:flex;gap:6px;margin:4px 0 8px}
.rkView .rkVt{font:700 12.5px var(--sans);color:var(--ink3);padding:5px 14px;border-radius:999px;border:1px solid var(--line);cursor:pointer}
.rkView .rkVt.act{color:var(--bg0,#0a0f1c);background:var(--mine,#e8704a);border-color:transparent}
.rkChips{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0 8px}
.rkChips::-webkit-scrollbar{display:none}
.rkChips .rkChip{flex:none;font:600 11.5px var(--sans);color:var(--ink2);padding:5px 12px;border-radius:999px;border:1px solid var(--line);cursor:pointer;white-space:nowrap}
.rkChips.intent .rkChip.act{color:#0a0f1c;background:#cdb24a;border-color:transparent}
.rkChips.cat .rkChip.act{color:var(--ink);background:#ffffff12;border-color:var(--line2)}
/* v6.1 D16-020: Job = PRIMARY segmented control (강조). Category = SECONDARY pills. 서로 다른 grammar. */
/* §8 baseline cleanup: 구 Chart/Tips 세그먼트 CSS(.rkJobSeg/.rkSeg) 삭제 — 세그먼트 제거 후 미사용(dead). */
.rkChips.cat{align-items:center;gap:7px;padding-bottom:12px}
.rkChips.cat .rkCatLbl{flex:none;font:700 9.5px var(--mono);color:var(--ink4,#49526f);margin-right:2px;text-transform:uppercase;letter-spacing:.08em}
.rkChips.cat .rkCatChip{flex:none;font:600 12px var(--sans);color:var(--ink3);padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:#ffffff05;cursor:pointer;white-space:nowrap;transition:all .15s}
.rkChips.cat .rkCatChip:hover{color:var(--ink2);border-color:var(--line2)}
.rkChips.cat .rkCatChip.act{color:#0a0f1c;background:#dfe9ff;border-color:transparent;font-weight:700}
.rkMigrate{font:600 11.5px var(--sans);color:#9ec6ff;background:#6aa6ff0e;border:1px dashed #6aa6ff33;border-radius:10px;padding:10px 13px;margin:8px 0 4px;cursor:pointer;line-height:1.5}
.rkMigrate:hover{background:#6aa6ff16}
.rkRecoNote{font:500 10.5px var(--sans);color:#9ec6ff;background:#6aa6ff10;border:1px solid #6aa6ff2a;border-radius:9px;padding:7px 10px;margin:2px 0 10px;line-height:1.5}
.rkSec{margin:4px 0 14px}
.rkSec .rkSecHd{display:flex;align-items:baseline;gap:8px;margin:6px 2px 8px}
.rkSec .rkSecHd b{font:800 13px var(--sans);color:var(--ink)}
.rkSec .rkSecHd .rkSecSub{font:700 10px var(--mono);color:#cdb24a}
/* Daniel 260718: ranKING = 두 독립 Ranked Module(지금 급상승 · 가장 도움 된 팁) — 세그먼트 탭 대체 */
.rkMod{margin:2px 0 18px;padding-top:10px;border-top:1px solid var(--line)}
.rkMod:first-of-type{border-top:0;padding-top:2px}
.rkModHd{display:flex;align-items:center;gap:8px;margin:2px 2px 4px}
.rkModIc{font-size:16px}
.rkModName{font:800 16px var(--sans);color:var(--ink)}
.rkmod-chart .rkModName{color:#e8d48a}
.rkmod-tip .rkModName{color:#7fe3c0}
/* §6 subsection(이번 주 인기 / 빠르게 상승 중) — Primary Tab 아님 · 같은 Module 하위 */
.rkSubHd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:11px 2px 7px}
.rkSubName{font:800 13.5px var(--sans);color:var(--ink)}
.rkmod-chart .rkSubName{color:#e8d48a}
.rkSubBasis{font:600 10px var(--mono);color:var(--ink3)}
.rkSubBasis.solo{margin-top:1px}
/* §6 sample status = 작게·subordinate(제목보다 강한 주 시각요소 금지) */
.rkState{font:600 9px var(--mono);color:var(--ink4);opacity:.85;letter-spacing:.02em}
.rkModBasis{font:600 11px var(--sans);color:var(--ink2);margin:0 2px 5px;line-height:1.5}
.rkModMeta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 2px 9px}
.rkModPeriod{font:600 10.5px var(--mono);color:var(--ink3)}
.rkModMethBtn{font:700 10.5px var(--sans);color:#9ec6ff;cursor:pointer;margin-left:auto}
.rkModMethBody{font:500 11px/1.6 var(--sans);color:var(--ink3);background:#ffffff05;border:1px solid var(--line);border-radius:9px;padding:9px 11px;margin:0 2px 10px}
.rkModCards{}
.rkModMore{font:700 12px var(--sans);color:#9ec6ff;background:#6aa6ff10;border:1px solid #6aa6ff26;border-radius:10px;padding:9px 12px;text-align:center;cursor:pointer;margin-top:2px}
.rkModMore:hover{background:#6aa6ff1a}
.rkBack{font:700 12.5px var(--sans);color:var(--ink2);padding:6px 2px 10px;cursor:pointer}
.rkBack:hover{color:var(--ink)}
.rkcard{background:#ffffff06;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:9px;cursor:pointer}
.rkcard:active{background:#ffffff0d}
.rkcard.tips{border-left:3px solid #6aa6ff55}
.rkcard.rising{border-left:3px solid #37e0c855}
.rkcard.chart{border-left:3px solid #cdb24a55}
.rkcTop{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:7px}
.rkib{font:800 9.5px var(--sans);padding:2px 8px;border-radius:999px;color:#0a0f1c;background:#cdb24a}
.rkib.i-급상승{background:#37e0c8}.rkib.i-맞춤{background:#9b8cff;color:#fff}.rkib.i-비교{background:#6aa6ff;color:#fff}.rkib.i-입문{background:#5ad6a8}.rkib.i-팁{background:#7bd0b0}.rkib.i-베스트{background:#f0894a;color:#fff}.rkib.i-인기{background:#cdb24a}
/* ranKING Detail v1 (Detail DB 260718) — 사용자용 Full Ranking Sheet */
.rkd2sheet{display:flex;flex-direction:column;gap:12px;max-height:86vh}
.rkd2hd{display:flex;flex-direction:column;gap:6px}
.rkd2title{font:800 17px/1.3 var(--sans,system-ui);color:var(--ink,#e8e6ff)}
.rkd2sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rkd2sub .rkcCat{font:700 11px var(--sans,system-ui);color:var(--ink3,#9a98b8)}
.rkd2per{font:600 11px var(--mono,ui-monospace);color:var(--ink4,#7c7a98)}
.rkd2list{display:flex;flex-direction:column;max-height:52vh;overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line,#2a2a38);border-radius:12px}
.rkd2row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line,#23232f)}
.rkd2row:last-child{border-bottom:0}
.rkd2row.top{background:linear-gradient(90deg,rgba(205,178,74,.10),transparent)}
.rkd2rk{flex:0 0 26px;text-align:center;font:800 13px var(--mono,ui-monospace);color:var(--ink4,#8a88a6)}
.rkd2row.top .rkd2rk{color:#cdb24a}
.rkd2nm{flex:1 1 auto;font:600 13.5px var(--sans,system-ui);color:var(--ink,#e8e6ff);min-width:0;overflow:hidden;text-overflow:ellipsis}
.rkd2met{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right}
.rkd2met b{font:800 13px var(--sans,system-ui);color:var(--ink2,#c9c7e6)}
.rkd2sec{font:500 10.5px var(--sans,system-ui);color:var(--ink4,#7c7a98)}
.rkd2vote{font:700 10.5px var(--mono,ui-monospace);color:#37e0c8}
.rkd2strip{display:flex;flex-wrap:wrap;gap:4px 14px;padding:8px 10px;border-radius:10px;background:var(--panel,#15151d);font:600 11px var(--sans,system-ui);color:var(--ink3,#9a98b8)}
.rkd2disc{border:1px solid var(--line,#2a2a38);border-radius:10px;overflow:hidden}
.rkd2dt{padding:10px 12px;font:700 12.5px var(--sans,system-ui);color:var(--ink2,#c9c7e6);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.rkd2ar{color:var(--ink4,#7c7a98);font-size:11px}
.rkd2db{padding:0 12px 12px;font:500 12px/1.6 var(--sans,system-ui);color:var(--ink3,#9a98b8)}
.rkd2mrow{display:flex;gap:10px;padding:4px 0;border-top:1px solid var(--line,#23232f)}
.rkd2mk{flex:0 0 92px;color:var(--ink4,#7c7a98);font-weight:600}
.rkd2mv{flex:1 1 auto;color:var(--ink3,#9a98b8)}
.rkd2note{font:500 11px var(--sans,system-ui);color:var(--ink4,#7c7a98);text-align:center;padding:2px 0 4px}
.rkcCat{font:700 10px var(--mono);color:var(--ink2);border:1px solid var(--line2);border-radius:7px;padding:1px 7px}
.rkcAxis{font:600 9.5px var(--mono);color:#9ec6ff;flex:1;min-width:120px;text-align:right;line-height:1.4}
.rkcTitle{font:700 13.5px var(--sans);color:var(--ink);line-height:1.4;margin-bottom:8px}
.rkcTitle.q{color:#cfe0ff}
.rkcT3{list-style:none;margin:0 0 8px;padding:0;counter-reset:rk}
.rkcT3 li{display:flex;align-items:flex-start;gap:7px;padding:4px 0;border-bottom:1px solid #ffffff08;counter-increment:rk}
.rkcT3 li:last-child{border-bottom:0}
.rkcT3 li::before{content:counter(rk);font:800 10px var(--mono);color:#cdb24a;background:#cdb24a1a;border-radius:6px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex:none;margin-top:1px}
.rkcNm{font:600 12px var(--sans);color:var(--ink);flex:1;min-width:0}
.rkcMv{font:800 10px var(--mono);flex:none;color:var(--ink3)}
.rkcMv.up{color:#5ad6a8}.rkcMv.dn{color:#e8704a}
.rkcGr{font:800 10.5px var(--mono);color:#37e0c8;flex:none;text-align:right;line-height:1.3}
.rkcGr small{display:block;font-weight:600;color:var(--ink3);font-size:8.5px}
.rkcWhy{font:500 10px var(--sans);color:var(--ink3);flex:2;min-width:0;line-height:1.4}
.rkcKey{font:600 10.5px var(--sans);color:#bcd3ff;margin:0 0 6px}
.rkcMeta{font:500 9.5px var(--mono);color:var(--ink3);line-height:1.5}
.rkcCav{font:500 10px var(--sans);color:#e0a44a;margin-top:5px;line-height:1.45}
.rkcCta{font:700 11px var(--sans);color:#9ec6ff;margin-top:8px}
/* ranKING Detail sheet */
.rkdSheet{max-height:88vh;overflow-y:auto}
.rkdHd{display:flex;align-items:center;gap:7px;margin:2px 0 8px}
.rkdType{font:700 9.5px var(--mono);color:var(--ink3);margin-left:auto}
.rkdTitle{font:800 16px var(--sans);color:var(--ink);line-height:1.35;margin-bottom:10px}
.rkdQ{font:800 15px var(--sans);color:#cfe0ff;line-height:1.4;margin-bottom:10px}
.rkdHeros{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.rkdHero{display:flex;align-items:flex-start;gap:9px;background:#ffffff06;border:1px solid var(--line);border-radius:11px;padding:9px 10px}
.rkdRank{font:800 13px var(--mono);color:#cdb24a;flex:none}
.rkdHm{flex:1;min-width:0}
.rkdNm{font:700 13px var(--sans);color:var(--ink)}
.rkdWhy{font:500 11px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.45}
.rkdMv{font:800 11px var(--mono);color:#5ad6a8;flex:none}
.rkdMoreNote{font:500 10px var(--sans);color:var(--ink3);margin:2px 2px 10px;line-height:1.5}
.rkdContract{border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-bottom:10px}
.rkdRow{display:flex;gap:10px;padding:8px 11px;border-bottom:1px solid #ffffff08}
.rkdRow:last-child{border-bottom:0}
.rkdK{font:700 10.5px var(--sans);color:var(--ink3);flex:none;width:88px}
.rkdV{font:500 11.5px var(--sans);color:var(--ink);flex:1;min-width:0;line-height:1.5}
.rkdComm{background:#6aa6ff10;border:1px solid #6aa6ff2a;border-radius:11px;padding:10px 12px;font:700 12px var(--sans);color:#9ec6ff;cursor:pointer;margin-bottom:10px}
.rkdCommWhy{display:block;font:500 10px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.45}
.rkdFoot{font:500 10px var(--sans);color:var(--ink3);line-height:1.5;padding:0 2px 6px}
/* B2: Filter ingredients drawer rows */
.ftgrow{display:flex;align-items:center;justify-content:space-between;padding:12px 10px;border-radius:11px;cursor:pointer;border:1px solid var(--line);margin-bottom:6px}
.ftgrow.on{border-color:#6aa6ff55;background:#6aa6ff14}
.ftgrow .ftgt{font:700 12.5px var(--sans);color:var(--ink)}
.ftgrow .ftgsw{font:700 10px var(--mono);color:var(--ink3)}
.ftgrow.on .ftgsw{color:#6aa6ff}
.ftgnote{font:500 10px var(--sans);color:var(--ink3);margin-top:8px;line-height:1.5}
/* B2-2: community-origin structured object 카드 (raw 댓글 아님 · 6종) */
.cobj{background:#e25c8a0d;border:1px solid #e25c8a33;border-left:3px solid #e25c8a;border-radius:13px;padding:11px 12px;margin:9px 0;cursor:pointer}
.cobj:active{background:#e25c8a16}
.cobj-verifiedAnswer{background:#4a9be80d;border-color:#4a9be833;border-left-color:#4a9be8}
.cobj-correction{background:#e8704a0d;border-color:#e8704a33;border-left-color:#e8704a}
.cobj-pollResult{background:#9b8cff0d;border-color:#9b8cff33;border-left-color:#9b8cff}
.cobj-krewOutput{background:#37e0c80d;border-color:#37e0c833;border-left-color:#37e0c8}
.cobj-debateSpike{background:#f0c14a0d;border-color:#f0c14a33;border-left-color:#f0c14a}
.cobjh{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.cobjchip{font:700 9.5px var(--mono);color:var(--ink2);letter-spacing:.02em}
.cobjt{font:700 12.5px var(--sans);color:var(--ink)}
.cobjb{font:500 11.5px var(--sans);color:var(--ink2);margin-top:3px;line-height:1.5}
.cobjm{font:600 9.5px var(--mono);color:var(--ink3);margin-top:6px;line-height:1.5}
.cobjcta{font:700 10.5px var(--sans);color:#9ec6ff;margin-top:7px}
/* lightweight official cues */
.ocue{font:700 8.5px var(--mono);color:#9be86b;background:#9be86b18;border:1px solid #9be86b44;border-radius:8px;padding:2px 7px}
.ocue.corr{color:#e8964a;background:#e8964a18;border-color:#e8964a44}
.ocue.acct{color:var(--t-official);background:var(--t-official)18;border-color:var(--t-official)55;cursor:pointer}
/* DF-9: '🛰 Signal 후보' — 실 커뮤니티 산출물이 Signal 편입 자격을 통과했음(합성 예시 표본과 구분되는 실 콘텐츠). */
.cobjsig{font:700 8.5px var(--mono);color:#ffb454;background:#ffb45416;border:1px solid #ffb45444;border-radius:8px;padding:2px 7px;margin-left:5px}
/* B2-3: why-shown (비침습 한 줄 · 탭 상세+줄이기) */
.whyshown{margin:6px 2px 0}
.whyshown .wsline{font:600 9.5px var(--mono);color:var(--ink3);cursor:pointer}
.whyshown .wsi{opacity:.7}
.whyshown.muted{opacity:.5}
.wsdet{font:500 10px var(--sans);color:var(--ink3);margin-top:4px;line-height:1.5}
.wsless{color:#9ec6ff;cursor:pointer;border:1px solid #6aa6ff44;border-radius:8px;padding:1px 7px;margin-left:4px;white-space:nowrap}
/* B2-3: stopping point 3종 */
.stopset{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px}
.stopblk{border:1px solid var(--line2);border-radius:14px;padding:12px}
.stopblk.intent{border-style:solid;background:#6aa6ff0d;border-color:#6aa6ff33}
.stopblk .sblkh{font:700 11.5px var(--sans);color:var(--ink);margin-bottom:8px}
.intqs{display:flex;flex-direction:column;gap:6px}
.intq{font:600 11px var(--sans);color:#bcd3ff;background:#ffffff08;border:1px solid #6aa6ff33;border-radius:11px;padding:8px 10px;cursor:pointer}
.intq:active{background:#6aa6ff1c}
.stopblk.done{text-align:center;font:600 11px var(--sans);color:var(--ink3);border-style:dashed}
.stopblk.invite{text-align:center;font:700 11.5px var(--sans);color:#9ec6ff;cursor:pointer}
.stopblk .sdi{margin-right:4px}
/* B2-3: shorts 2-up (자동재생 없음 · visual-first) */
.shortsrow{margin:10px 0}
.shortshd{font:600 9.5px var(--mono);color:var(--ink3);margin-bottom:6px}
.shorts2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.shortcard{cursor:pointer}
.shthumb{position:relative;aspect-ratio:9/13;border-radius:13px;background:#0e1631 center/cover no-repeat;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden}
.shthumb .shplay{width:36px;height:36px;border-radius:50%;background:#000a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;padding-left:2px}
.shtt{font:600 10.5px var(--sans);color:var(--ink2);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- KOSMOS field ---------- */
#kfield{position:absolute;inset:0;z-index:5;touch-action:none;cursor:grab;perspective:1600px;perspective-origin:50% 44%}
#kfield.grab{cursor:grabbing}
#kdome{position:absolute;left:0;top:0;transform-style:preserve-3d}
/* #edges / #elabels / .elbl removed — Kosmos draws no user-facing relationship lines (spec). */

.node{position:absolute;left:0;top:0;will-change:transform,opacity;transform-origin:center center}
.node.anim{transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .4s}
.c{width:140px;border-radius:16px;background:linear-gradient(180deg,var(--card),var(--card2));
  border:1.5px solid var(--line);overflow:hidden;position:relative}
.c.mine{border-color:#6aa6ff5e}
.c.rec{border-style:dashed;border-color:#9b8cff5e}
.c .strip{height:4px}
.c .img{height:56px;display:flex;align-items:flex-end;justify-content:flex-start;position:relative;padding:6px}
.c .img .nimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.c .img .recpill,.c .img .hint{z-index:2}
.vthumb{position:relative;overflow:hidden}
/* 잘림 방지: 블러 배경(cover) + 원본 이미지(contain) → 프레임 꽉 참·블랙 0·크롭 0 */
.vthumb .vthimg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
.vthbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(16px) brightness(.5) saturate(1.1);transform:scale(1.18);z-index:0}
.icell .vthimg,.igrid .icell .vthimg{object-fit:contain !important;z-index:1}
.vthumb .play{z-index:2}.vthumb .vdur{z-index:2}
.icell{position:relative;overflow:hidden}
.icell .vthimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c .ph{position:absolute;inset:0;opacity:1}
.c .recpill{position:absolute;top:6px;right:6px;font:600 8px var(--sans);color:#d6ccff;background:#9b8cff33;border:1px solid #9b8cff55;padding:1px 6px;border-radius:10px;z-index:2}
.c .hint{position:absolute;left:6px;bottom:6px;font:600 8px var(--sans);color:#bfe0ff;background:#4a9be833;border:1px solid #4a9be855;padding:1px 6px;border-radius:10px;z-index:2}
.c .add{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;background:#0a0f1ccc;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font:600 14px var(--sans);color:#cfe0ff;z-index:3}
.c .body{padding:6px 10px 7px}
.c .sttl{display:flex;align-items:center;gap:5px;margin-bottom:3px;flex-wrap:nowrap;overflow:hidden}
.c .sdot{width:7px;height:7px;border-radius:50%;flex:none}
.c .stt{font:600 8.5px var(--mono);color:var(--ink2)}
/* P0-7(D6-11): 활동 상태 = 아이콘+텍스트 병기(색 단독 금지), 활발·급상승 강조 확대 */
.c .stfl{display:inline-flex;align-items:center;gap:3px;padding:1px 6px 1px 4px;border-radius:7px;border:1px solid var(--sc,#8794b5);background:color-mix(in srgb,var(--sc,#8794b5) 12%,transparent)}
.c .stfl .sti{font-size:8.5px;line-height:1}
.c .stfl .stt{color:var(--sc,var(--ink2))}
.c .stfl.emph{padding:2px 8px 2px 6px}
.c .stfl.emph .stt{font-size:10px;font-weight:700}
.c .stfl.emph .sti{font-size:10px}
.node.mini .c .stfl .stt,.node.anchor .c .stfl{display:none}
.c .fresh{margin-left:auto;font:600 8px var(--mono);color:var(--ink3)}
/* P0-4(D6-05): 콘텐츠(Claim) 단위 신뢰 라벨 5종 */
.claimlabel{font:700 9px var(--mono);padding:1px 7px;border-radius:7px;border:1px solid;display:inline-block}
.c .sttl .trust{font-size:8px;padding:1px 6px 1px 5px;border-radius:7px}
.c .sttl .trust .td{width:5px;height:5px}
.node.mini .c .sttl .trust{display:none}
/* Y-37: Contextual Semantic Projection depth-of-field — 상위 prominence(full/compact)는 선명, 하위는 초점 이탈 */
.node.mini{filter:saturate(.9) brightness(.97)}
.node.anchor{filter:blur(.6px) saturate(.78) brightness(.9)}
.node.compact .c .fresh{display:none}
.node.compact .c .sttl .trust{font-size:7.5px;padding:1px 5px 1px 4px}
/* P0-5(D6-09): 카드 제목 = 15px 기본 → 긴 제목만 14px(딱 2단계, 연속 스케일 금지) → 고정 높이 2줄 → 말줄임. */
.c .ttl{font:700 15px/1.24 var(--sans);letter-spacing:-.01em;margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.c .ttl.long{font-size:14px}
.c .why{font:500 10px/1.34 var(--sans);color:var(--ink2);margin-bottom:1px;min-height:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.c .etrel{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.c .foot{display:flex;align-items:center;gap:5px}
.tchip{font:600 8px var(--mono);padding:1px 6px;border-radius:9px;border:1px solid;white-space:nowrap}
/* B3: type chip 7종 (IP/Topic/Signal/Guide/Product/Claim/Krew) — user-facing 라벨 색상 */
.tchip.t7{font-weight:700}
.t7-IP{color:#ff8ab0;border-color:#ff8ab055;background:#ff8ab018}
.t7-Topic{color:#9ec6ff;border-color:#6aa6ff55;background:#6aa6ff18}
.t7-Signal{color:#f0a24a;border-color:#e8704a55;background:#e8704a18}
.t7-Guide{color:#9be86b;border-color:#9be86b55;background:#9be86b18}
.t7-Product{color:#37e0c8;border-color:#37e0c855;background:#37e0c818}
.t7-Claim{color:#f0c14a;border-color:#f0c14a55;background:#f0c14a18}
.t7-Krew{color:#b3a6ec;border-color:#9b8cff55;background:#9b8cff18}
.cardt7{margin-left:6px;vertical-align:middle;font-size:7.5px}
/* B3: Snapshot 5슬롯 (glass는 .summ-sheet 상속) */
.snreason{font:600 9.5px var(--mono);color:var(--ink3);margin:2px 2px 8px}
.snapslots{display:flex;flex-direction:column;gap:9px;margin:2px 0 10px}
.snsec{background:#ffffff06;border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.snsec .snlbl{font:700 8.5px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.snsec .snval{font:500 11.5px var(--sans);color:var(--ink);line-height:1.5}
.snsigs{display:flex;gap:6px;flex-wrap:wrap}
.snsig{font:600 10px var(--mono);color:#bcd3ff;background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:9px;padding:2px 8px}
/* B3: Snapshot CTA 3종 (Peek·Follow·Open) */
.sacts.snap3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.sacts.snap3 .sa{text-align:center}
/* U0-3 #15: 타이틀 옆 CTA rail [+ Peek][Dive][+ Follow] 동일 크기 · #16: Snapshot 투명도/블러 강화 */
.sacts.snap3.titlerail{margin-top:10px}
.sacts.snap3.titlerail .sa{padding:10px 0;font:700 12.5px var(--sans)}
.summ-sheet.snapshot{background:rgba(10,16,33,.6);backdrop-filter:blur(28px) saturate(1.35);-webkit-backdrop-filter:blur(28px) saturate(1.35)}
/* ===== Adaptive Summary Card (Variant A · 지시서 §7 · Daniel 승인 2026-07-16) =====
   모듈·평문·차분. 크루=참여하기 단일화(구 ksproj/kkproj 슬롯은 openFocus 전용으로 잔존). */
.ashero{padding:0 2px}
.ashero .ashtt{font:800 20px var(--sans);letter-spacing:-.02em;color:var(--ink)}
.ashero .ashid{font:500 12.5px var(--sans);color:var(--ink2);margin-top:2px;line-height:1.4}
.ashero .ashwhy{font:500 13px var(--sans);color:var(--ink);margin-top:9px;line-height:1.45;border-left:2px solid var(--mine);padding-left:10px}
.asstrip{display:flex;gap:8px;overflow-x:auto;margin:14px 0 2px;padding-bottom:2px}
.asstrip::-webkit-scrollbar{height:0}
.asstat{flex:none;min-width:90px;background:#ffffff09;border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.asstat .asv{font:800 15px var(--sans);letter-spacing:-.01em;color:var(--ink)}
.asstat .asl{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.asum{display:flex;flex-direction:column;gap:16px;margin-top:16px}
/* Summary Orientation Layer (v15.9 §S SC-06/07) — 정보 블록 + Evidence preview(비인터랙티브) + Krew 블록 */
/* v6.1 D16-021 Snapshot-first Summary modules */
.asblock.snap{background:#6aa6ff0d;border:1px solid #6aa6ff26;border-radius:13px;padding:12px 13px}
.asblock.snap .assnaphd{font:800 13.5px var(--sans);color:var(--ink);display:flex;align-items:baseline;gap:7px;margin-bottom:7px}
/* §3+§5: Snapshot 첫 줄 = 전체 '이건 뭐예요' 설명(canonical home). Hero의 짧은 id와 구분되는 상세 설명. */
.asblock.snap .assnapwhat{font:500 13px/1.55 var(--sans);color:var(--ink);margin-bottom:8px}
.asblock.snap .assnapce{font:600 10.5px var(--sans);color:var(--ink3)}
.asblock.snap .assnapwhy{font:500 13px var(--sans);color:var(--ink);line-height:1.45;border-left:2px solid var(--mine);padding-left:10px;margin-bottom:7px}
.asblock.snap .assnapline{font:500 12.5px var(--sans);color:var(--ink2);line-height:1.5;padding:2px 0}
.asblock.snap .assnapline.muted{color:var(--ink3)}
.assigrow{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.assigrow::-webkit-scrollbar{display:none}
.assigtile{flex:1 1 0;min-width:80px;background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:9px 10px;text-align:left}
.assigtile .assigic{font-size:16px}.assigtile .assigt{font:700 12px var(--sans);color:var(--ink);margin-top:3px;line-height:1.3}
.assigtile .assigs{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.askrewscroll{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.askrewscroll::-webkit-scrollbar{display:none}
.askrewcard{flex:none;width:150px;background:#ffffff09;border:1px solid var(--line);border-radius:12px;padding:11px 12px;cursor:pointer}
.askrewcard .askrewnm{font:700 13px var(--sans);color:var(--ink);line-height:1.3}
.askrewcard .askrewsub{font:500 11px var(--sans);color:var(--ink3);margin-top:5px;line-height:1.4}
.asblock.highlight .ashl{display:flex;gap:11px;align-items:center;background:#7fe3b810;border:1px solid #7fe3b82b;border-radius:12px;padding:11px 12px}
.asblock.highlight .ashlic{width:34px;height:34px;flex:none;display:grid;place-items:center;font-size:17px;border-radius:9px;background:#ffffff0d}
.asblock.highlight .ashlt{font:700 12.5px var(--sans);color:var(--ink);line-height:1.35}
.asblock.highlight .ashls{font:500 11px var(--sans);color:var(--ink3);margin-top:2px}
.asum > .asblock + .asblock{margin-top:14px}
/* v6.1 §7.1 Dive Node Krew Rail */
.sfkrewrail{margin:0 0 14px}
.sfkrewrail .sfsnaphd{font:800 13.5px var(--sans);color:var(--ink);display:flex;align-items:baseline;gap:7px;margin-bottom:9px}
.sfkrewrail .sfsnaphd .ce{font:600 10.5px var(--sans);color:var(--ink3)}
.sfkrewscroll{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.sfkrewscroll::-webkit-scrollbar{display:none}
.sfkrewcard{flex:none;width:150px;background:#ffffff09;border:1px solid var(--line);border-radius:12px;padding:11px 12px;cursor:pointer;transition:border-color .15s}
.sfkrewcard:hover{border-color:var(--line2)}
.sfkrewcard .sfkrewnm{font:700 13px var(--sans);color:var(--ink);line-height:1.3}
.sfkrewcard .sfkrewsub{font:500 11px var(--sans);color:var(--ink3);margin-top:5px;line-height:1.4}
.asblock{display:flex;flex-direction:column}
.asblock .asbt{font:800 14px var(--sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 9px;display:flex;align-items:baseline;gap:8px}
.asblock .asbt .asbhint{font:500 11px var(--sans);color:var(--ink3);letter-spacing:0}
/* SC-07: Preview = Evidence — cursor·chevron·독립 CTA 없음(Navigation 아님) */
.asprev{display:flex;gap:11px;align-items:flex-start;padding:10px 11px;border-radius:12px;background:#ffffff07;border:1px solid var(--line);margin-bottom:8px}
.asprev:last-child{margin-bottom:0}
.asprev .asic{width:38px;height:38px;flex:none;display:grid;place-items:center;font-size:18px;border-radius:10px;background:#ffffff0d}
.asprev .asbd{flex:1;min-width:0}
.asprev .astt{font:700 13px var(--sans);color:var(--ink);line-height:1.35}
.asprev .asev{font:500 11px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.35}
/* Krew Block(SC-04) — 유일한 in-card 명시 CTA */
.asblock.krew .askrew{background:#7fe3b814;border:1px solid #7fe3b833;border-radius:13px;padding:12px}
.askrew .askname{font:800 14px var(--sans);color:var(--ink)}
.askrew .askpurp{font:500 12px var(--sans);color:var(--ink2);margin-top:4px;line-height:1.4}
.askrew .askact{font:600 11px var(--sans);color:#7fe3b8;margin-top:6px}
.askrew .askcta{margin-top:11px;font:700 13px var(--sans);color:#06121f;background:#7fe3b8;border-radius:10px;padding:9px 14px;text-align:center;cursor:pointer}
.askrew .askcta:active{transform:scale(.98)}
.sacts .sa.f{background:#ffffff08;border:1px solid var(--line2);color:var(--ink)}
.sacts .sa.f.on{color:#9be86b;border-color:#9be86b55;background:#9be86b14}
/* P0-2: Kosmos Snapshot 문맥 기여 버튼(전역 FAB 대체) */
.snapcontrib{display:flex;align-items:center;gap:8px;margin-top:8px}
.snapcontrib .sc-btn{font:700 12px var(--sans);color:#bcd3ff;background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:10px;padding:7px 12px;cursor:pointer}
.snapcontrib .sc-btn:hover{background:#6aa6ff22}
.snapcontrib .sc-hint{font:500 10.5px var(--sans);color:var(--ink3)}

.node.compact .c{width:120px}
.node.compact .c .img{height:58px}
.node.compact .c .why{display:none}
.node.compact .c .body{padding:5px 9px 6px}
.node.mini .c{width:106px}
.node.mini .c .img{height:46px}
.node.mini .c .why,.node.mini .c .fresh,.node.mini .c .recpill,.node.mini .c .hint{display:none}
.node.mini .c .body{padding:5px 9px 6px}
.node.mini .c .ttl{font-size:11px;margin-bottom:3px;line-height:1.2}
.node.mini .c .stt{display:none}
.node.anchor .c{width:auto;background:none;border:none;display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:14px}
.node.anchor .c .strip,.node.anchor .c .img,.node.anchor .c .why,.node.anchor .c .foot,.node.anchor .c .sttl .stt,.node.anchor .c .sttl .trust,.node.anchor .c .fresh,.node.anchor .c .recpill,.node.anchor .c .hint,.node.anchor .c .add{display:none}
.node.anchor .c .body{padding:0;display:flex;align-items:center;gap:6px}
.node.anchor .c .sttl{margin:0}
.node.anchor .c .ttl{display:block;font:600 10px/1.16 var(--sans);color:var(--ink2);margin:0;white-space:normal;overflow-wrap:anywhere;overflow:hidden;max-height:24px}  /* Daniel: block+wrap → 짧은 제목 우측 잘림 0(nowrap/… 없음) · 2줄 cap(카드 겹침 방지) */

/* glow by status (active feel), readability-safe outer shadow */
.node.glow-live .c{box-shadow:0 0 0 1px #ff5a4a44,0 0 26px -2px #ff5a4a77,0 14px 30px #0007}
.node.glow-spiking .c{box-shadow:0 0 0 1px #efa23544,0 0 24px -3px #efa23566,0 14px 30px #0007}
.node.glow-active .c{box-shadow:0 0 0 1px #2dd4a833,0 0 20px -4px #2dd4a84d,0 12px 26px #0006}
.node.glow-upcoming .c{box-shadow:0 0 18px -5px #6aa6ff4d,0 12px 26px #0006}
.node.glow-steady .c{box-shadow:0 0 14px -6px #8794b540,0 10px 24px #0006}
.node.collected .c{background:linear-gradient(180deg,color-mix(in srgb,var(--cc) 22%,#141d36),color-mix(in srgb,var(--cc) 13%,#0f1628))!important;border-color:var(--cc)!important;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--cc) 75%,transparent),0 0 18px -2px var(--cc),0 12px 28px #0007!important}
/* V3 §7-1: 온보딩 선택/Follow 노드 = selected 시각 상태(카테고리색 테두리 강조 · collected 토큰 재사용).
   이미 관심에 포함된 노드이므로 ＋(Peek 추가)가 아니라 ✓(포함됨)로 표시한다. */
.node.selected .c{border-color:var(--cc)!important;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--cc) 70%,transparent),0 0 16px -3px var(--cc),0 10px 24px #0006!important}
.node.selected .c .add{background:var(--cc)!important;border-color:var(--cc)!important;font-size:0}
.node.selected .c .add::after{content:'✓';font-size:13px;font-weight:800;color:#06121f}
.node.selected .c.imgled .add{background:transparent!important}
.node.selected .c.imgled .add::after{content:'✓';background:var(--cc);border-color:var(--cc);color:#06121f;font-weight:800}
.node.collected .c .strip{height:5px}
.node.collected .c .add{background:var(--cc)!important;border-color:var(--cc)!important;font-size:0}
.node.collected .c .add::after{content:'✓';font-size:13px;font-weight:800;color:#06121f}

/* in-canvas focus expanded card */
.node.focus{z-index:80}
.node.focus .c{width:248px;border-color:var(--line2)}
.node.focus .c .img{height:116px}
.node.focus .c .why{display:block;font-size:11px;min-height:0;margin-bottom:2px}
.node.focus .c .ttl{font-size:18px;margin-bottom:5px}
.node.focus .fx{padding:0 10px 10px;display:block}
.fx .ctxrow{font:500 10.5px/1.4 var(--sans);color:var(--ink2);margin-bottom:8px}
.fx .scoremini{display:flex;gap:5px;margin-bottom:9px;flex-wrap:wrap}
.fx .sc{font:600 8.5px var(--mono);background:#ffffff0a;border:1px solid var(--line);border-radius:8px;padding:3px 7px;color:var(--ink2)}
.fx .sc b{color:var(--ink)}
.fx .acts{display:flex;gap:7px}
.fx .a{flex:1;text-align:center;font:600 11.5px var(--sans);padding:9px;border-radius:10px;cursor:pointer}
.fx .a.p{background:#6aa6ff;color:#041020}
.fx .a.s{background:#ffffff10;border:1px solid var(--line);color:var(--ink)}
.focusback{position:absolute;inset:0;z-index:70;display:none}
.focusback.on{display:block}
.summ{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:120;background:rgba(5,9,15,.72);backdrop-filter:blur(3px);display:none;align-items:flex-end;justify-content:center}/* P1: contain within mobile shell (Desktop/Mac stay mobile-width) */
.summ.on{display:flex}
/* Y-49: Summary card·시트 = 글래스 토큰(반투명+배경 블러·다크 기조). 하드코딩 그라디언트 제거. */
.summ-sheet{width:100%;max-width:480px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--glass-brd);border-top-left-radius:22px;border-top-right-radius:22px;padding:8px 16px 22px;max-height:86%;overflow:auto;animation:slideup .28s cubic-bezier(.22,1,.36,1)}
/* Y-49: 글래스 유틸 — 배너·카드·시트 계열 공통 언어(Kosmos 투명감과 단일 토큰) */
.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border-color:var(--glass-brd)}
.summ-sheet::-webkit-scrollbar{display:none}
@keyframes slideup{from{transform:translateY(46px);opacity:.4}to{transform:translateY(0);opacity:1}}
.summ-sheet .grab{width:38px;height:4px;border-radius:3px;background:#ffffff26;margin:4px auto 14px}
.summ-sheet .sh{display:flex;gap:11px;align-items:center;margin-bottom:11px}
.summ-sheet .simg{width:54px;height:54px;border-radius:14px;flex:none}
/* R3: Summary 상단 비주얼 hero(더 큼) + Follow는 이미지 아래 타이틀 우측 + 액션 버튼 축소 */
.summ-sheet .smedia{position:relative;width:100%;height:152px;border-radius:14px;overflow:hidden;margin-bottom:12px;background:#0c1226}
.summ-sheet .smedia.tall{height:210px}
.summ-sheet .smedia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.summ-sheet .smph{position:absolute;inset:0;z-index:0}
.summ-sheet .smplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:#000a;border:1.5px solid #fff9;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;z-index:2;cursor:pointer}
.summ-sheet .shead2{display:flex;align-items:flex-start;gap:10px;margin-bottom:11px}
.summ-sheet .shtt{flex:1;min-width:0}
.summ-sheet .sfollow-side{flex:none;font:700 11.5px var(--sans);padding:8px 15px;border-radius:999px;cursor:pointer;color:#cfe0ff;background:#6aa6ff1c;border:1px solid #6aa6ff55;white-space:nowrap}
.summ-sheet .sfollow-side.on{color:#cdeccb;background:#9be86b1c;border-color:#9be86b55}
.summ-sheet .stt2{font:800 20px/1.15 var(--sans);letter-spacing:-.02em}
.summ-sheet .ssub{font:600 10px var(--mono);color:var(--ink2);margin-top:4px}
.summ-sheet .schips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:11px}
.summ-sheet .swhy{font:600 13.5px/1.45 var(--sans);margin-bottom:5px}
.summ-sheet .sctx{font:500 11.5px/1.55 var(--sans);color:var(--ink2);margin-bottom:8px}
.summ-sheet .srec{font:500 11px var(--sans);color:#b3a6ec;margin-bottom:8px}
.summ-sheet .sscore{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.summ-sheet .sscore span{font:600 9.5px var(--mono);color:var(--ink2);background:#ffffff0a;border:1px solid var(--line);border-radius:8px;padding:4px 8px}
.summ-sheet .sscore b{color:var(--ink)}
.summ-sheet .ssec{font:700 9.5px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;margin:15px 0 7px}
.summ-sheet .sedge{background:#ffffff08;border:1px solid var(--line);border-left:2px solid #6aa6ff;border-radius:9px;padding:8px 11px;margin-bottom:6px;font:500 11.5px/1.4 var(--sans);cursor:pointer}
.summ-sheet .sedge b{color:#bcd3ff;font-weight:700}
.summ-sheet .sacts{display:flex;gap:8px;margin-top:11px}
.summ-sheet .sfollow{margin-top:14px;text-align:center;font:700 12.5px var(--sans);padding:12px;border-radius:11px;cursor:pointer;color:#cfe0ff;background:#6aa6ff18;border:1px solid #6aa6ff4d}
.summ-sheet .sfollow.on{color:#cdeccb;background:#9be86b1c;border-color:#9be86b55}
.summ-sheet .sa{flex:1;text-align:center;font:600 11.5px var(--sans);padding:9px;border-radius:10px;cursor:pointer}
.summ-sheet .sa.p{background:#6aa6ff;color:#041020}
.summ-sheet .sa.s{background:#ffffff10;border:1px solid var(--line2);color:var(--ink)}
.summ-sheet .shand{font:500 10px/1.5 var(--sans);color:var(--ink3);text-align:center;margin-top:13px}

/* ---------- bottom dock (Tray + asK + nav) ---------- */
.dock{position:absolute;left:0;right:0;bottom:0;z-index:90;padding:0 12px 12px;
  /* Daniel(fb): near-opaque scrim sat behind the nav, so the glass blur only sampled a dark layer
     (뒤가 안 비쳐 보임). Lightened to a gentle grounding fade so real content shows through the nav glass;
     tray/asK keep their own backgrounds for legibility. */
  background:linear-gradient(0deg,rgba(6,9,15,.2) 4%,rgba(6,9,15,.03) 34%,transparent);pointer-events:none}
.randomCta{display:none;width:100%;margin:0 0 8px;font:600 11.5px var(--sans);color:#d3edcb;background:#9be86b14;border:1px solid #9be86b3d;border-radius:13px;padding:10px;cursor:pointer;pointer-events:auto;text-align:center}
.randomCta:active{transform:scale(.99)}
.tray{position:relative;display:flex;align-items:center;gap:9px;margin:0 0 8px;pointer-events:auto;background:#6aa6ff16;border:1px solid #6aa6ff3a;border-radius:13px;padding:8px 9px}
/* empty tray = 슬림 프롬프트 바(~1/3) → 빈 공간 Kosmos canvas로 회수 */
.tray.empty{background:#ffffff06;border-color:var(--line);padding:4px 8px}
.tray .tshuf{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#bcd3ff;background:#6aa6ff14;border:1px solid #6aa6ff33;cursor:pointer;flex:none}
.tray.empty .tshuf{color:var(--ink2);background:#ffffff08;border-color:var(--line);width:26px;height:26px}
.tray.empty .tshuf svg{width:14px;height:14px}
.tray .tshuf:active{transform:rotate(-150deg);transition:transform .35s}
.tray .tshuf svg{width:16px;height:16px}
/* 담겼을 때: 문구는 별 위(column) · 별자리 중앙 정렬 */
.tray .tmid{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;padding:2px}
.tray.empty .tmid{cursor:default;flex-direction:row;gap:8px}
.tray .stars{display:flex;align-items:center;justify-content:center;flex:none;width:100%}
.tray .lbl{font:600 11.5px var(--sans);color:#bcd3ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.tray.empty .lbl{color:var(--ink3);font-size:11px}
.tray .lbl b{color:#fff;font-weight:800}
.tray .topts{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#cfe0ff;background:#6aa6ff14;border:1px solid #6aa6ff33;cursor:pointer;flex:none;font:700 17px var(--sans);line-height:1}
.tray.empty .topts{display:none}
/* Tray options sheet rows */
.optsh{font:700 12px var(--sans);color:var(--ink2);padding:2px 2px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.optrow{display:flex;flex-direction:column;gap:3px;padding:12px 8px;border-radius:11px;cursor:pointer}
.optrow:active{background:#ffffff0a}
.optrow .ot{font:700 13.5px var(--sans);color:var(--ink)}
.optrow .os{font:500 10.5px var(--sans);color:var(--ink3)}
.optrow.danger .ot{color:#ff8a7a}
.editrow{display:flex;align-items:center;gap:10px;padding:11px 8px;border-bottom:1px solid var(--line)}
.editrow .ed-dot{width:10px;height:10px;border-radius:50%;flex:none}
.editrow .ed-t{flex:1;font:600 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.editrow .ed-x{font:700 10.5px var(--sans);color:#ff8a7a;background:#ff8a7a14;border:1px solid #ff8a7a3a;border-radius:9px;padding:5px 11px;cursor:pointer;flex:none}
.optback{margin-top:12px;text-align:center;font:600 11.5px var(--sans);color:#9ec6ff;cursor:pointer;padding:8px}
/* Daniel(fb): asK 입력 칸도 클리어 유리 — 패널보다 살짝 더 tint/blur를 줘 입력 필드로 또렷이 읽히게. */
.ask{display:flex;align-items:center;gap:9px;position:relative;background:rgba(255,255,255,.03);
  backdrop-filter:blur(8px) saturate(1.4) brightness(1.03);-webkit-backdrop-filter:blur(8px) saturate(1.4) brightness(1.03);
  border:1px solid rgba(255,255,255,.2);border-radius:24px;padding:11px 15px;pointer-events:auto;transition:all .3s;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),inset 0 -1px 0 rgba(255,255,255,.09),inset 1px 0 0 rgba(255,255,255,.09),inset -1px 0 0 rgba(255,255,255,.09)}
.ask.compact{padding:8px 13px;opacity:.92}
.ask .mg{width:15px;height:15px;border-radius:50%;border:1.6px solid var(--ink3);position:relative;flex:none}
.ask .mg::after{content:'';position:absolute;width:6px;height:1.6px;background:var(--ink3);transform:rotate(45deg);right:-4px;bottom:0}
.ask .ph{flex:1;font-size:12.5px;color:var(--ink3)}
.ask .mic{width:15px;height:18px;flex:none;position:relative}
.ask .mic::before{content:'';position:absolute;left:4px;top:0;width:7px;height:11px;border-radius:4px;background:var(--ink3)}
.ask .mic::after{content:'';position:absolute;left:7px;bottom:0;width:1.6px;height:5px;background:var(--ink3)}
/* V17-02: IG식 floating overlay nav — 바닥 고정 bar가 아니라 콘텐츠 위에 뜬 translucent blur capsule.
   scroll-down → compact(라벨 접힘·아이콘 중심) · scroll-up → 복원. asK drawer 최소화/dim = B4. */
.nav{display:flex;justify-content:space-around;align-items:center;margin:8px auto 0;max-width:392px;pointer-events:auto;
  background:rgba(12,18,34,.72);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);
  border:1px solid var(--line2);border-radius:22px;padding:6px 6px;box-shadow:0 6px 22px #0008;
  /* v4-fb item1: slower, softer shrink/expand (Apple-like ease) */
  transition:max-width .62s cubic-bezier(.32,.72,0,1),padding .58s cubic-bezier(.32,.72,0,1),border-radius .58s ease,background .5s ease,border-color .5s ease,box-shadow .5s ease}
/* Daniel: 하단 네비 비활성 아이콘·라벨 가시성 개선 — muted(--ink3) → 밝은 --ink2 + 아이콘 opacity 상향(활성 강조는 유지). */
.nav .n{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:3px;font:700 9.5px var(--sans);color:var(--ink2);cursor:pointer;padding:4px 9px;border-radius:14px;max-width:100px;transition:max-width .6s cubic-bezier(.32,.72,0,1),opacity .42s ease,padding .48s cubic-bezier(.32,.72,0,1),gap .36s ease,font-size .34s ease,margin .48s cubic-bezier(.32,.72,0,1),color .28s ease}
/* v4-fb item7: active nav icon clearly brighter than the rest (glow) */
.nav .n.act{color:var(--mine)}
.nav .n.act svg{opacity:1;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--mine) 75%,transparent)) drop-shadow(0 0 2px var(--mine))}
.nav .n.act .nlbl{color:var(--mine);text-shadow:0 0 9px color-mix(in srgb,var(--mine) 55%,transparent)}
.nav .n svg{width:23px;height:23px;opacity:1;transition:opacity .28s ease,filter .28s ease}
/* asK = 중앙 command 슬롯(V17-02·U0-1): overlay 팝업 트리거임이 형태로 구분되게 — 채워진 원형 버튼 */
.nav .n.askn{color:#bcd8ff}
.nav .n.askn svg{color:#08122a;background:linear-gradient(135deg,#6aa6ff,#9b8cff);border-radius:50%;padding:5px;width:32px;height:32px;opacity:1;box-shadow:0 3px 13px #6aa6ff55;margin-top:-3px;transition:transform .15s,filter .15s}
.nav .n.askn:active{transform:scale(.94)}
.dock.askopen .nav .n.askn svg{filter:brightness(1.12);transform:scale(.95)}
.nav.compact .n.askn svg{width:30px;height:30px}
/* U0-1: asK command overlay — 기본 숨김 · asK 탭 시만 노출 */
/* Daniel(fb): asK 팝업도 하단 네비와 같은 클리어 유리 — 외곽 패널만 near-transparent + 얇은 4면 rim.
   내부 입력바(.ask)·제안칩(.askchip)은 자체 배경이 있어 텍스트 가독성 유지. */
.askcmd{display:none;pointer-events:auto;position:relative;background:rgba(255,255,255,.016);
  backdrop-filter:blur(5px) saturate(1.4) brightness(1.03);-webkit-backdrop-filter:blur(5px) saturate(1.4) brightness(1.03);
  border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:10px 12px 12px;margin-bottom:9px;
  box-shadow:0 -6px 30px -8px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,255,255,.3),
    inset 0 -1px 0 rgba(255,255,255,.12),
    inset 1px 0 0 rgba(255,255,255,.12),
    inset -1px 0 0 rgba(255,255,255,.12)}
.askcmd::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0) 24%);mix-blend-mode:screen;opacity:.5}
.askcmd>*{position:relative;z-index:1}
.dock.askopen .askcmd{display:block;animation:askrise .2s ease}
@keyframes askrise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.askcmdhd{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.askcmdt{font:800 11px var(--mono);color:#8fbaff;letter-spacing:.08em}
.askcmdx{cursor:pointer;color:var(--ink3);font-size:15px;line-height:1;padding:2px 7px;border-radius:8px}
.askcmdx:active{background:#ffffff10}
.dock.navonly .askcmd{display:none!important}
/* scroll-compact: 라벨 접고 아이콘만 — capsule 슬림 */
.nav.compact{padding:4px 4px}
.nav.compact .n{font-size:0;gap:0;padding:6px 10px}
.nav.compact .n svg{width:22px;height:22px}
.nav.compact .n.askn svg{width:24px;height:24px}
/* Focus collapse (Daniel 260717) — 집중 동작(scroll-down·Kosmos pan) 시 asK만 남기고 박스가 닫힘.
   박스: 좌우(max-width) 크게·빠르게 닫힘, 상하(padding)는 조금·훨씬 느리게. asK 중앙 고정(위치 불변).
   아이콘=좌우 clip(제자리 사라짐 아님). 복원 = scroll-up·화면 전환·drag 종료. */
.nav.collapsed{max-width:44px;padding:3px;justify-content:center;background:transparent;border-color:transparent;box-shadow:none;
  /* v4-fb item1: softer, slightly slower collapse */
  transition:max-width .6s cubic-bezier(.32,.72,0,1),padding 1.1s cubic-bezier(.32,.72,0,1),background .6s ease,border-color .6s ease,box-shadow .6s ease,border-radius .6s ease}
.nav.collapsed .n:not(.askn){max-width:0;min-width:0;flex:0 0 0;padding-left:0;padding-right:0;margin:0;opacity:0;overflow:hidden;pointer-events:none;font-size:0;gap:0}
.nav.collapsed .n:not(.askn) svg{width:0;opacity:0}
/* Kosmos에서 map을 가리지 않도록 nav 투명도 상향 */
.dock.kos .nav{background:rgba(12,18,34,.5)}
.fcard .cdot{width:8px;height:8px;border-radius:50%;flex:none}
.fcard .ctopic{font:700 12px var(--sans)}
.fcard .fsrc{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.fcard .pagecta{margin-top:10px;text-align:center;font:600 11px var(--sans);color:#9ec6ff;background:#6aa6ff14;border:1px solid #6aa6ff36;border-radius:9px;padding:8px;cursor:pointer}
.fcard .rank,.block .rank{display:flex;flex-direction:column;gap:6px}
.fcard .rkrow,.block .rkrow{display:flex;justify-content:space-between;align-items:center;font:600 12px var(--sans);background:#ffffff06;border-radius:8px;padding:7px 10px}
.fcard .meta2,.block .meta2{font:600 9.5px var(--mono);color:var(--ink3);margin-top:7px}
/* Y-43: 영상 포스터 = 16:9 프레임(콘텐츠 비율 적응) → 위아래 잘림·블랙 여백 0. 잔여는 cover 크롭. */
.fcard .vthumb{position:relative;aspect-ratio:16/9;max-height:300px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.fcard .vthumb .play{width:48px;height:48px;border-radius:50%;background:#000000a6;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;padding-left:3px;border:1.5px solid #ffffffb0}
.fcard .vthumb .vdur{position:absolute;right:8px;bottom:8px;background:#000000b0;color:#fff;font:600 10px var(--mono);padding:2px 7px;border-radius:6px}
.fcard .igrid,.block .igrid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:4px;height:138px;border-radius:12px;overflow:hidden}
.fcard .igrid .icell,.block .igrid .icell{border-radius:3px}
.fcard .igrid .icell.big,.block .igrid .icell.big{grid-row:1/3}
/* W-3②: 실이미지 개수에 맞춰 그리드 축소 — 빈 그라데이션 칸 나열 금지 */
.fcard .igrid.n1,.block .igrid.n1{grid-template-columns:1fr;grid-template-rows:1fr}
.fcard .igrid.n1 .icell.big,.block .igrid.n1 .icell.big{grid-row:1}
.fcard .igrid.n2,.block .igrid.n2{grid-template-rows:1fr}
.fcard .igrid.n2 .icell.big,.block .igrid.n2 .icell.big{grid-row:1}
.fcard .igrid .icell.shrunk,.block .igrid .icell.shrunk{display:none}
/* W-3③: Tier B 출처 화면 보조 슬롯 */
.srcshot{position:relative;margin-top:8px;height:60px;border-radius:9px;overflow:hidden;border:1px solid var(--line);background:#0c1226}
.srcshot img{width:100%;height:100%;object-fit:cover;opacity:.82}
.srcshotlab{position:absolute;left:7px;bottom:6px;font:700 9px var(--mono);color:#dfe7f5;background:#0009;border-radius:6px;padding:2px 6px}
/* ============ W-1/§7: sampleContent 사람 카드 ============ */
.samplecard{cursor:default}
.samplecard .sch{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.samplecard .scav{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 13px var(--sans);color:#06121f}
.samplecard .scmeta{flex:1;min-width:0}
.samplecard .scname{font:800 12.5px var(--sans);color:var(--ink);display:flex;align-items:center;gap:6px}
.samplecard .scsub{font:600 10px var(--mono);color:var(--ink3);margin-top:1px}
.scpersona{font:700 8.5px var(--mono);color:#b3a6ec;background:#9b8cff18;border:1px solid #9b8cff44;border-radius:6px;padding:1px 6px}
.sampletag{font:700 8.5px var(--mono);color:var(--ink4);background:#ffffff08;border:1px solid var(--line);border-radius:6px;padding:2px 7px;flex:none}
.samplecard .scbody{font:500 13px/1.5 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.samplecard .sctitle{font:800 14px/1.35 var(--sans);color:var(--ink);margin-bottom:5px;letter-spacing:-.01em}
/* Y-3: 단일 콘텐츠 이미지(n1) = 원본 비율(자연 높이·4:5 상한, 검은 stub 제거).
   다중(n2·n3) 콜라주 그리드 = 장식 썸네일 → cover 허용(화이트리스트). */
.samplecard .scimg{display:grid;gap:4px;border-radius:11px;overflow:hidden;margin-bottom:9px}
.samplecard .scimg.n1{grid-template-columns:1fr}
.samplecard .scimg.n1 img{width:100%;height:auto;max-height:520px;object-fit:cover;object-position:top;background:transparent;display:block}
.samplecard .scimg.n2{grid-template-columns:1fr 1fr;height:190px}
.samplecard .scimg.n3{grid-template-columns:2fr 1fr 1fr;height:190px}
.samplecard .scimg.n2 img,.samplecard .scimg.n3 img{width:100%;height:100%;object-fit:cover;object-position:top;background:transparent}
.samplecard .scimg.shrunk{display:none}
/* CR-E(D10-05): T4/T5 가이드 = 단일 outer 카드. .scguide는 이미 .fcard.samplecard 안에 있으므로
   자체 border/background/radius를 제거해 이중 컨테이너를 없앤다(.screcre와 동일 grammar). 내부 진행은 캐러셀(.icframe) 가로. */
.samplecard .scguide{margin-top:9px}
.samplecard .scbadge{font:800 11px var(--sans);color:#5ad6a8;margin-bottom:7px}
.samplecard .scstep{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font:500 11.5px/1.4 var(--sans);color:var(--ink2)}
.samplecard .scstepn{flex:none;width:18px;height:18px;border-radius:50%;background:#6aa6ff22;color:#9ec6ff;font:800 10px var(--mono);display:flex;align-items:center;justify-content:center;margin-top:1px}
.samplecard .scquote{margin-top:9px;border-left:2px solid color-mix(in srgb,#6aa6ff 45%,transparent);padding:2px 0 3px 11px}
/* v4-fb(chat): opinion quote is a normal snippet, not an oversized pull-quote — smaller,
   lighter, with a '의견 · 발화' label so its meaning (opinion ≠ fact) reads clearly. */
.samplecard .scqlbl{font:700 9.5px var(--sans);color:var(--ink3);letter-spacing:.02em;margin-bottom:3px}
.samplecard .scqo{font:500 12px/1.5 var(--sans);color:var(--ink2)}
.samplecard .scqt{font:500 11.5px/1.45 var(--sans);color:var(--ink2);margin-top:4px}
.samplecard .scqf{font:500 10.5px/1.4 var(--sans);color:var(--ink3);margin-top:5px}
.samplecard .scchips{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
/* Y-21: content-first 카드 상단 배지 라인(검증/신호·chipKind·sample) — 작성자 옆 배치 금지 */
.samplecard.cf .scchips.top{margin:0 0 9px}
.scpersona .scpi{margin-right:3px;font-style:normal}
/* X-7: content-first — 작성자 하단 CTA행 위 우측 축약 · chipKind 5종 칩 */
.samplecard.cf .scfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
/* Y-4: 업로더 정보 = reaction rail과 한 줄. 좌 rxrail / 우 @handle+신뢰칩. scfoot 행 폐지. */
.samplecard.cf .scactionrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line);flex-wrap:wrap}
.samplecard.cf .scactionrow .rxrail{margin-top:0;padding-top:0;border-top:0;flex:1 1 auto;min-width:0}
.samplecard.cf .scactionrow .scauthc{margin-left:auto}
.samplecard.cf .scauthc{display:flex;align-items:center;gap:6px;min-width:0}
/* Y-16: 경량 댓글 미리보기(부모 카드 하단 · 접힘 2행). rail·card 아님 — 미니 row. */
.cmtprev{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line2)}
.ccrow{display:flex;align-items:flex-start;gap:8px;padding:4px 0}
.ccrow .ccav{width:22px;height:22px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:700 10px var(--sans);color:#06121f}
.ccrow .ccm{flex:1;min-width:0;display:flex;flex-direction:column}
.ccrow .ccu{font:600 9.5px var(--mono);color:var(--ink3)}
.ccrow .cct{font:500 12px/1.4 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.ccrow .ccl{font:600 9.5px var(--mono);color:var(--ink4);flex:none;margin-top:2px}
.cmtmore{font:700 11px var(--sans);color:var(--mine,#6aa6ff);cursor:pointer;padding:5px 0 2px}
/* Y-26: 대댓글 1-depth 들여쓰기 + 닫기 토글 */
.ccrow.ccreply{margin-left:26px;padding-left:8px;border-left:1px solid var(--line2)}
.ccrow.ccreply .ccav{width:18px;height:18px;font-size:9px}
.cmtclose{font:700 10.5px var(--sans);color:var(--ink3);cursor:pointer;padding:6px 0 2px}
/* DB-24: 첫 댓글 작성 입력행(무반응 금지 · 입력 상태 affordance) */
.cmtcompose{margin-top:6px;padding:8px 11px;border:1px solid var(--line2);border-radius:20px;background:var(--surface2,#141b2e);color:var(--ink3);font:500 12px var(--sans);cursor:text}
.cmtcompose:hover{border-color:var(--line)}
/* DB-22: 답변 trust 레벨 배지 — 레벨별 렌더 상이(출처칩·검증계정·도메인평판밴드·일반) */
.atb{display:inline-flex;align-items:center;gap:4px;font:700 9px var(--mono);padding:1px 6px;border-radius:8px;border:1px solid transparent;margin-left:4px;vertical-align:middle}
.atb.src{color:#37e0c8;border-color:#37e0c855;background:#37e0c815}
.atb.did{color:#6aa6ff;border-color:#6aa6ff55;background:#6aa6ff15}
.atb.dom{color:#efc34a;border-color:#efc34a55;background:#efc34a12}
.atb.plain{color:var(--ink4);border-color:var(--line2);background:transparent}
.atbband{display:inline-flex;gap:1.5px;align-items:flex-end;height:9px}
.atbband i{width:2.5px;height:4px;border-radius:1px;background:#efc34a44}
.atbband i.on{height:9px;background:#efc34a}
/* V3 §3-6: Feed 발화 대화 묶음(채팅) 카드 스타일 제거 */
.scpromo{display:flex;align-items:center;gap:7px;margin-bottom:8px;padding:5px 9px;border-radius:9px;background:linear-gradient(90deg,#37e0c81f,#37e0c808);border:1px solid #37e0c840}
.scpromo .scsig{font:800 10px var(--mono);color:#37e0c8;flex:none}
.scpromo .scpromr{font:600 10.5px var(--sans);color:var(--ink2)}
.scpromo .scpromr b{color:var(--ink);font-weight:800}
/* K-02: 콘텐츠 카드 주제 노드 칩 — '무엇에 대한 것인지' 명시 · 탭 → Page */
.sctopic{display:inline-flex;align-items:center;gap:5px;font:700 11px var(--sans);color:var(--ink);background:color-mix(in srgb,var(--tc,#6aa6ff) 14%,transparent);border:1px solid color-mix(in srgb,var(--tc,#6aa6ff) 45%,transparent);border-radius:8px;padding:2px 9px;cursor:pointer;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sctopic .sctopd{width:6px;height:6px;border-radius:50%;background:var(--tc,#6aa6ff);flex:none}
/* asK 답변: 커뮤니티에 묻기 CTA 강조 */
.acta.comm{color:#e25c8a;border-color:#e25c8a66;background:#e25c8a12}
/* K-Beauty 리뷰 분석 콘텐츠 3유형 */
.revan{margin:9px 0 4px;border:1px solid var(--line2);border-radius:12px;padding:11px 12px;background:linear-gradient(160deg,#2bb98a10,#0c122200)}
.revan .ravhd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:9px;flex-wrap:wrap}
.revan .ravk{font:800 12.5px var(--sans);color:var(--ink)}
.revan .ravsrc{font:600 9.5px var(--mono);color:var(--ink3)}
.revan .ravphr{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.revan .ravp{display:flex;align-items:center;gap:8px}
.revan .ravpl{flex:none;width:44%;font:600 11.5px var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.revan .ravpb{flex:1;height:7px;border-radius:4px;background:var(--line2);overflow:hidden}
.revan .ravpb i{display:block;height:100%;background:#2bb98a;border-radius:4px}
.revan .ravpc{flex:none;font:700 10px var(--mono);color:var(--ink3);width:26px;text-align:right}
.revan .ravsent{font:600 11px var(--sans);color:var(--ink2);margin-bottom:6px}
.revan .ravch{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line2)}
.revan .ravch:last-of-type{border-bottom:0}
.revan .ravchn{font:800 11px var(--sans);color:var(--ink)}
.revan .ravchv{font:600 11px var(--mono);color:var(--ink2);text-align:right}
.revan .ravcl{display:flex;justify-content:space-between;gap:10px;padding:5px 0}
.revan .ravcll{font:700 11.5px var(--sans);color:var(--ink)}
.revan .ravclv{font:700 10.5px var(--mono);color:#5ad6a8}
.revan .ravclv.warn{color:#efc34a}
/* Creator 영상 유형 — ▶ 오버레이 + 유형 배지 */
.scimg.scvid{position:relative;aspect-ratio:16/9;border-radius:11px;overflow:hidden}
.scimg.scvid img{position:absolute;inset:0;width:100%;height:100% !important;object-fit:cover !important;object-position:center}
.scimg.scvid .scvplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:#000000a6;border:1.5px solid #fff9;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;padding-left:3px;z-index:2}
.scimg.scvid .scvkind{position:absolute;left:8px;top:8px;font:700 9.5px var(--mono);color:#fff;background:#000000b3;border-radius:7px;padding:2px 8px;z-index:2}
/* 유저 클릭 → 프로필: 작성자 요소 커서 */
[data-user]{cursor:pointer}
[data-user]:hover .scah,[data-user]:hover .scname,[data-user]:hover .ccu,[data-user]:hover .cu{text-decoration:underline}
.composedest{margin:2px 0 10px;padding:9px 11px;border-radius:10px;background:#6aa6ff14;border:1px solid #6aa6ff3a;font:600 12px/1.5 var(--sans);color:var(--ink2)}
.composedest b{color:var(--ink);font-weight:800}
/* Y-46: D-ID Profile 레이어 (검증된 익명성) */
.profilelayer{padding:15px 15px 12px;margin:0 0 12px;border:1px solid var(--line2);border-radius:16px;background:linear-gradient(180deg,var(--surface2,#141b2e),#0e1526)}
.profilelayer .pltop{display:flex;gap:13px;align-items:center}
/* Avatar: polished initial-avatar (default) or uploaded photo (.hasimg) — glossy ring + shadow so it
   pops over the decorated cover, FB-profile style. */
.profilelayer .plav{position:relative;width:66px;height:66px;border-radius:19px;flex:none;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:2px solid rgba(255,255,255,.14);box-shadow:0 0 0 3px #0c1226,0 8px 18px -6px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.22)}
.profilelayer .plavimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* avatar wrapper so the camera badge sits outside the avatar's overflow:hidden clip */
.profilelayer .plavwrap{position:relative;flex:none}
.profilelayer .plavcam{position:absolute;right:-4px;bottom:-4px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#1a2338;border:1.5px solid rgba(255,255,255,.5);box-shadow:0 2px 8px rgba(0,0,0,.5);color:#eaf2ff;cursor:pointer;z-index:2}
.profilelayer .plavcam svg{width:13px;height:13px}
.profilelayer .plavcam:active{transform:scale(.9)}
.profilelayer .plcovcam{position:absolute;right:9px;top:9px;width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:rgba(12,18,38,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.28);color:#fff;cursor:pointer;z-index:3}
.profilelayer .plcovcam svg{width:15px;height:15px}
.profilelayer .plcovcam:active{transform:scale(.92)}
.profilelayer .plavini{font:800 27px var(--sans);color:#fff;opacity:.95;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.profilelayer .plavslot{position:absolute;bottom:3px;font:600 6.5px var(--mono);color:#ffffffc0;background:#0009;padding:1px 4px;border-radius:4px}
.profilelayer .plnm{font:800 17px var(--sans);color:var(--ink)}
.profilelayer .pltag{font:600 10px var(--mono);color:var(--ink3);margin-left:4px}
.profilelayer .plbadge{display:inline-block;margin-top:4px;font:700 10.5px var(--mono);padding:2px 8px;border-radius:9px}
.profilelayer .plbadge.ver{color:#6aa6ff;background:#6aa6ff18;border:1px solid #6aa6ff55}
.profilelayer .plbadge.unv{color:var(--ink4);background:transparent;border:1px solid var(--line2)}
.profilelayer .plnar{font:500 12.5px/1.45 var(--sans);color:var(--ink2);margin-top:6px}
.profilelayer .plproofs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:11px}
.profilelayer .plproof{font:700 10px var(--mono);color:#5ad6a8;background:#2dd4a814;border:1px solid #2dd4a840;padding:2px 8px;border-radius:8px}
.profilelayer .plproofnote{font:700 8.5px var(--mono);color:var(--ink4);letter-spacing:.03em}
.profilelayer .plproofempty{font:600 11px var(--sans);color:var(--ink4)}
.profilelayer .plband{margin-top:10px;font:700 11.5px var(--sans);color:var(--ink2)}
.profilelayer .plswitch{display:flex;gap:6px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line2)}
.profilelayer .plsw{flex:1;text-align:center;font:600 10px var(--sans);color:var(--ink3);padding:6px 4px;border:1px solid var(--line2);border-radius:9px;cursor:pointer}
.profilelayer .plsw.act{color:var(--ink);border-color:#6aa6ff88;background:#6aa6ff14}
/* Y-45: 평판 아이콘 60% 축소 · Fan Journey sub · 탭 소형 카운트 · 저장 필터 */
.myreput.compact .pfbands .trust{font-size:9.5px;padding:2px 7px 2px 5px}
.myreput.compact .pfbands .td{width:5px;height:5px}
.fjrow .fjsub{font:600 9.5px var(--mono);color:var(--ink4);margin-left:7px}
.mytab .mtc{font-style:normal;font:700 9px var(--mono);color:var(--ink4);margin-left:2px}
.mytab.act .mtc{color:var(--mine,#9ec6ff)}
.savfilter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:11px}
.savchipf{font:600 10.5px var(--sans);color:var(--ink3);padding:5px 10px;border:1px solid var(--line2);border-radius:20px;cursor:pointer}
.savchipf.act{color:var(--ink);border-color:#6aa6ff88;background:#6aa6ff14}
/* 저장 = 이미지 콘텐츠 카드(2열 그리드·썸네일) */
.savedwrap.savgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.savcard{border:1px solid var(--line2);border-radius:12px;overflow:hidden;background:var(--surface2,#141b2e);cursor:pointer}
.savcard .savcth{position:relative;aspect-ratio:16/10;overflow:hidden}
.savcard .savcth img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.savcard .savkchip{position:absolute;left:7px;top:7px;font:700 8.5px var(--mono);color:#fff;padding:2px 7px;border-radius:6px;border:1px solid}
.savcard .savdeckm{position:absolute;right:7px;bottom:7px;font:700 9px var(--mono);color:#fff;background:#000a;padding:2px 7px;border-radius:6px}
.savcard .savcm{padding:8px 10px 10px;font:600 12px/1.35 var(--sans);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.savedwrap.filt-node .savcard:not([data-kind="node"]),.savedwrap.filt-guide .savcard:not([data-kind="guide"]),.savedwrap.filt-deck .savcard:not([data-kind="deck"]),.savedwrap.filt-content .savcard:not([data-kind="content"]){display:none}
.samplecard .scav.sm{width:20px;height:20px;font:800 10px var(--sans)}
.samplecard .scah{font:700 11px var(--mono);color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.samplecard.srcfirst .scsrctag{margin-left:auto}
.sckind{font:800 9.5px var(--sans);border-radius:6px;padding:2px 8px;white-space:nowrap}
.sckind.kk-s{color:#efc34a;background:#efc34a1c;border:1px solid #efc34a44}       /* Signal */
.sckind.kk-g{color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44}       /* Guide */
.sckind.kk-r{color:#5ad6a8;background:#37e0c81c;border:1px solid #37e0c844}       /* Review */
.sckind.kk-o{color:#bfe0ff;background:#6aa6ff26;border:1px solid #6aa6ff66}       /* Official */
.sckind.kk-k{color:#c9b4ff;background:#b39bff1c;border:1px solid #b39bff44}       /* Krew Output */
/* X-13: 타이포 카드(첨부 불가분) */
.samplecard .sctypo{font:800 17px/1.5 var(--sans);color:var(--ink);padding:17px 15px;border:1px solid;border-radius:13px;margin-bottom:9px;letter-spacing:-.01em;overflow-wrap:anywhere}
.samplecard .sctypo .sctq{font-size:28px;color:var(--ink3);margin-right:3px;vertical-align:-6px}
/* DB-11: 재가공 구조물(T11) — RND 캐러셀 + provenance 칩 */
.screcre{margin-top:8px}
.screhd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.scrert{font:800 10px var(--mono);letter-spacing:.02em;color:var(--ink);background:var(--card2);border:1px solid var(--line2);border-radius:7px;padding:3px 8px}
.scvc{font:700 11px var(--sans);color:var(--t-verified,#2bb98a)}
.scfw{font:600 10.5px/1.4 var(--sans);color:var(--warn,#e0a44a);margin-top:6px}
.sccite{font:500 10.5px/1.4 var(--sans);color:var(--ink3);margin-top:5px}
.scprov{display:inline-block;font:700 10px var(--mono);color:var(--ink2);background:linear-gradient(90deg,var(--mine,#6aa6ff)18,transparent);border:1px solid var(--line2);border-radius:8px;padding:4px 9px;margin-top:8px}
/* DB-17: 크리에이터 원본 provenance 칩(유튜브형) */
.sccreator{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.sccreator .sccrk{font:800 10px var(--sans);color:var(--ink);background:var(--card2);border:1px solid var(--line2);border-radius:7px;padding:3px 8px}
.sccreator .sccrch{font:700 11px var(--sans);color:var(--ink2)}
.sccreator .sccrp{font:600 9.5px var(--mono);color:var(--ink3);border:1px solid var(--line);border-radius:6px;padding:2px 6px}
/* X-11: how-to 리뷰 분석 모듈 */
.samplecard .screview{margin-top:10px;background:#ffffff06;border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.screview .srvhd{font:800 11.5px var(--sans);color:var(--ink);display:flex;align-items:baseline;gap:7px;margin-bottom:7px}
.screview .srvsub{font:600 9px var(--mono);color:var(--ink3)}
.screview .srvbar{height:7px;background:#ffffff0d;border-radius:999px;overflow:hidden;margin-bottom:5px}
.screview .srvbar i{display:block;height:100%;background:#2dd4a8}
.screview .srvleg{display:flex;gap:10px;font:700 10px var(--sans);color:var(--ink3);margin-bottom:6px;flex-wrap:wrap}
.screview .srvhelp{color:#5ad6a8}
.screview .srvwarn{color:#ff9a6a}
.screview .srvsent{font:500 11px var(--sans);color:var(--ink2);margin-top:4px}
.screview .srvsent.warn{color:#ffb27a}
.screview .srvsent b{color:var(--ink3);font:700 10px var(--mono);margin-left:3px}
/* X-12: 피드 인라인 캐러셀 */
.incarousel{margin-top:9px}
.icframes{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}
.icframes::-webkit-scrollbar{display:none}
/* Daniel 재요청: 구조 콘텐츠 캐러셀 = 한 칸(full width)씩 좌우 스와이프 · 옆 칸 peek 금지 */
.icframe{flex:0 0 100%;scroll-snap-align:center;background:#ffffff05;border:1px solid var(--line);border-radius:13px;overflow:hidden}
/* Y-3: 스와이프(캐러셀) 프레임 = 원본 비율(자연 높이·4:5 상한). 이미지 없으면 그라데이션 min-height. */
.icframe .icimg{position:relative;min-height:120px;background-size:cover;background-position:top}
.icframe .icimg img{position:relative;width:100%;height:auto;max-height:420px;object-fit:cover;object-position:top;display:block}
.icframe .icnum{position:absolute;top:8px;right:8px;font:800 10px var(--mono);color:#fff;background:#000000a6;border-radius:6px;padding:2px 8px;z-index:2}
.icframe .iccap{padding:10px 12px}
.icframe .icct{font:800 12.5px var(--sans);color:var(--ink)}
.icframe .iccb{font:500 11.5px/1.45 var(--sans);color:var(--ink2);margin-top:4px}
/* Daniel 260718: 덱 커버 프레임 = 노드 대표 이미지 배경 + scrim + 타이틀/설명(구 카드 위 별도 타이틀 대체·공간 절약). */
.icframe.iccover .iccoverimg{min-height:200px;display:flex;align-items:flex-end}
.icframe.iccover .iccoverimg img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;object-position:center}
.iccovscrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#04091260 0%,#04091200 34%,#040912cc 78%,#040912ee 100%)}
.iccovtext{position:relative;z-index:2;padding:14px 15px 13px;width:100%}
.iccovkicker{font:800 9.5px var(--sans);letter-spacing:.06em;color:#cfe0ff;text-transform:uppercase;margin-bottom:5px;text-shadow:0 1px 6px #000a}
.iccovt{font:800 17px/1.25 var(--sans);color:#fff;text-shadow:0 1px 10px #000c,0 1px 2px #000}
.iccovd{font:500 12px/1.5 var(--sans);color:#e6edf6;margin-top:5px;text-shadow:0 1px 8px #000c;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.icframe.iccover .iccovcap{padding:8px 12px;text-align:center}
.icframe.iclast{background:linear-gradient(160deg,#16203a,#0e1626)}
.iclastin{min-height:206px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px;gap:12px}
.iclastin .iclt{font:800 13px var(--sans);color:var(--ink)}
.iclastin .icla{display:flex;flex-direction:column;gap:8px;width:auto;align-items:center}
.iclastin .icb{font:700 12px var(--sans);color:var(--mine-ink);background:var(--mine);border-radius:10px;padding:10px 24px;cursor:pointer;width:max-content;max-width:100%;text-align:center}
.iclastin .icb.ghost{color:#bfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line)}
/* Daniel 260717 #5: 덱 완료 CTA 정리 — 1차 'Collection에 저장'(primary 강조) · 보조=콘텐츠 기여 1개(ghost). Follow/Peek/Krew제안 제거(iclasub 폐지). */
.iclastin .icb.primary{background:#6aa6ff;color:#06121f;font-weight:800}
/* Y-40: 덱 커버 = 1번 카드(단일 문법) */
.swframe.swcover .swct{font-size:16px}
.icpag{font:700 10px var(--mono);color:var(--ink3);margin-top:6px;text-align:center}
.icpag .ichint{color:var(--ink4)}
/* X-9: 신호 태그 정의 시트 */
[data-tagdef]{cursor:pointer}
.tdsheet{padding:4px 2px}
.tdsheet .tdst{font:800 16px var(--sans);color:var(--ink);margin-bottom:12px}
.tdsheet .tdrow{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.tdsheet .tdrow span{flex:none;width:64px;font:700 11px var(--sans);color:var(--ink3)}
.tdsheet .tdrow b{flex:1;font:500 12.5px/1.5 var(--sans);color:var(--ink)}
.tdsheet .tdnote{font:600 10.5px var(--sans);color:var(--ink4);margin-top:12px}
/* X-15: 질문 스레드 — 검증답변 pinned + 정렬 + 대댓글 */
.qapinned{background:linear-gradient(150deg,#153026,#0e1a16);border:1px solid #2dd4a855;border-radius:14px;padding:13px 14px;margin-bottom:12px}
.qapinned .qaph{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.qapinned .qapv{font:800 12px var(--sans);color:#5ad6a8}
.qapinned .qaconf{font:700 10px var(--mono);color:var(--ink2);background:#ffffff0d;border-radius:6px;padding:2px 8px}
.qapinned .qab{font:600 13px/1.55 var(--sans);color:var(--ink)}
.qapinned .qameta{display:flex;flex-wrap:wrap;gap:10px;margin-top:9px;font:600 10px var(--mono);color:var(--ink3)}
.qapinned .qafix{display:inline-block;margin-top:10px;font:700 11px var(--sans);color:#bfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:9px;padding:7px 12px;cursor:pointer}
.qtt{display:flex;align-items:center;justify-content:space-between}
.qtt .qsort{font:700 10.5px var(--sans);color:#9ec6ff;background:#6aa6ff14;border:1px solid #6aa6ff40;border-radius:999px;padding:3px 10px;cursor:pointer}
.qquestion{font:800 13.5px/1.5 var(--sans);color:var(--ink);margin:2px 0 10px}
.qconvo .creply{display:flex;gap:8px;margin:8px 0 0 14px;padding-left:10px;border-left:2px solid var(--line)}
.qconvo .cav.sm{width:22px;height:22px;font-size:10px}
/* X-16: 전체 커뮤니티 현황 8-카테고리 보드 */
.csbcat{border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:9px;background:#ffffff05}
.csbcat .csbh{display:flex;align-items:center;gap:8px;cursor:pointer}
.csbcat .csbh b{font:800 13px var(--sans);color:var(--ink);flex:1}
.csbcat .csbgo{color:var(--ink3)}
/* Y-23: 현황판 카테고리 아코디언 */
.csbcat .csbmini{font:600 10.5px var(--mono);color:var(--ink3);margin-left:auto}
.csbcat .csbchev{color:var(--ink3);transition:transform .18s;font-size:11px;margin-left:8px}
.csbcat .csbh.open .csbchev{transform:rotate(180deg)}
.csbbody{margin-top:2px}
.csbhub{font:700 11.5px var(--sans);color:var(--mine,#6aa6ff);margin-top:9px;cursor:pointer}
/* Y-22: 커뮤니티 personal rail(내 참여 Krew · 내 관심) — 좌우 스크롤 카드 */
.crewrail,.intrail{display:flex;gap:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 6px;scroll-snap-type:x proximity}
.crewrail::-webkit-scrollbar,.intrail::-webkit-scrollbar{height:0}
.crewcard{flex:0 0 auto;width:152px;scroll-snap-align:start;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#ffffff06;cursor:pointer;position:relative}
.crewcard .crewct{font:800 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:44px}
.crewcard .crewmis{font:600 10.5px var(--sans);color:var(--ink3);margin-top:7px}
.crewcard .crewmis b{color:var(--ink)}
.crewcard .crewbar{height:5px;border-radius:3px;background:var(--line2);margin-top:5px;overflow:hidden}
.crewcard .crewbar i{display:block;height:100%;background:var(--mine,#6aa6ff)}
.crewcard .crewbadge{position:absolute;top:9px;right:9px;font:700 8.5px var(--mono);color:#8be0b0;background:#2bb98a1c;border:1px solid #2bb98a44;border-radius:6px;padding:2px 5px}
.crewcard .crewbadge.attn{color:#f5cf8a;background:#efc34a1c;border-color:#efc34a55}
/* Krews 3-segment 차별화 카드 (Daniel 260717 #2·3): 운영=Management · 참여=Icon Rail · 발견=Discovery */
.krmgmt{border:1px solid var(--line2);border-radius:12px;padding:11px 12px;background:#ffffff06;margin-bottom:8px;cursor:pointer}
.krmgmt .krmgmth{display:flex;align-items:center;gap:7px}
.krmgmt .krmgmtn{font:800 13px var(--sans);color:var(--ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.krmgmt .krmgmtbadge{font:800 9px var(--sans);color:#f5cf8a;background:#efc34a1c;border:1px solid #efc34a44;border-radius:6px;padding:2px 7px;flex:none}
.krmgmt .krmgmtsub{font:600 10.5px var(--sans);color:var(--ink3);margin-top:3px}
.krmgmt .krmrows{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.krmgmt .krmrow{font:500 11.5px var(--sans);color:var(--ink2);display:flex;gap:6px;line-height:1.35}
.krmgmt .krmrow.muted{color:var(--ink4)}
.krmgmt .krmi{color:var(--mine);flex:none}
.krmgmt .krmgmtcta{margin-top:9px;font:700 11.5px var(--sans);color:var(--mine)}
.krpartrail{display:flex;gap:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 6px}
.krpartrail::-webkit-scrollbar{height:0}
.krpartcard{flex:0 0 auto;width:106px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#ffffff06;cursor:pointer;text-align:center}
.krpartcard .krpartic{font-size:22px;position:relative;display:inline-block;line-height:1}
.krpartcard .krpartdot{position:absolute;top:-1px;right:-5px;width:7px;height:7px;border-radius:50%;background:var(--spiking,#efa235)}
.krpartcard .krpartn{font:700 11px var(--sans);color:var(--ink);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.krpartcard .krpartrole{font:500 9.5px var(--sans);color:var(--ink3);margin-top:2px}
.krdisc{border:1px solid var(--line2);border-radius:13px;padding:12px;background:#ffffff06;margin-bottom:9px;cursor:pointer}
.krdisc .krdisch{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.krdisc .krdiscn{font:800 13.5px var(--sans);color:var(--ink)}
.krdisc .krdisckind{font:700 9.5px var(--sans);color:var(--ink3);background:#ffffff0d;border:1px solid var(--line2);border-radius:999px;padding:2px 8px}
.krdisc .krdiscpurpose{font:500 12px var(--sans);color:var(--ink2);margin-top:7px;line-height:1.4}
.krdisc .krdiscwhy{font:500 10.5px var(--sans);color:var(--ink3);margin-top:6px}
.krdisc .krdiscout{font:600 11px var(--sans);color:#8fd0b0;margin-top:6px}
.krdisc .krdiscfoot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.krdisc .krdiscstat{font:600 10.5px var(--sans);color:var(--ink3)}
.krdisc .krdiscjoin{font:800 12px var(--sans);color:var(--mine-ink,#041020);background:var(--mine,#6aa6ff);border-radius:10px;padding:8px 14px}
.crewcard.more,.intcard.more{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--mine,#6aa6ff);font:700 11px var(--sans)}
.intcard{flex:0 0 auto;width:142px;scroll-snap-align:start;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#ffffff06;cursor:pointer}
.intcard.act{border-color:var(--mine,#6aa6ff)}
.intcard .intct{font:800 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intcard .intcs{font:600 10.5px var(--sans);color:var(--ink3);margin-top:6px}
.csbstat{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:8px;font:600 11px var(--sans);color:var(--ink3)}
.csbstat b{color:var(--ink);font-weight:800}
.csbitem{font:500 11.5px var(--sans);color:var(--ink2);margin-top:6px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csbitem.q{color:#9ec6ff}
/* X-19/X-20/X-21/X-23: Krew 라이브러리 3-grid · 기여 스트림 · rail drag · Kosmos Map */
.kstream{margin-top:9px}
.kstream .kstreamh{font:800 11px var(--sans);color:var(--ink3);margin-bottom:6px}
/* Krew Home/Pulse (Daniel 260717 #4·5) — 통합 Activity Stream */
.khomerow{display:flex;gap:7px;align-items:flex-start;font:500 11.5px/1.4 var(--sans);color:var(--ink2);padding:5px 0}
.khomerow .khi{flex:none}
.kpulse{margin-top:4px}
.kpulserow{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.kpulserow:last-child{border-bottom:0}
.kpulserow .kpulsetype{flex:none;font:800 9px var(--sans);color:#9ec6ff;background:#6aa6ff1a;border:1px solid #6aa6ff3a;border-radius:6px;padding:2px 7px;min-width:40px;text-align:center}
.kpulserow .kpulsem{flex:1;min-width:0}
.kpulserow .kpulset{font:500 12px var(--sans);color:var(--ink2);line-height:1.35}
.kpulserow .kpulset b{color:var(--ink);font-weight:800}
.kpulserow .kpulserole{font-size:10px;color:var(--ink3)}
.kpulserow .kpulseago{font:500 10px var(--mono);color:var(--ink4);margin-top:2px}
.klibhd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.klibsort{background:var(--card);color:var(--ink2);border:1px solid var(--line);border-radius:8px;font:600 11px var(--sans);padding:5px 8px}
.klibfilters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-bottom:9px;padding-bottom:2px}
.klibfilters::-webkit-scrollbar{display:none}
.klibf{flex:none;font:700 11px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
.klibf.act{color:#bfe0ff;background:var(--mine-soft);border-color:var(--mine-line)}
.klggrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.klgcell{cursor:pointer}
.klgimg{position:relative;height:86px;border-radius:9px;overflow:hidden;display:flex;align-items:flex-end}
.klgimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.klgtag{position:relative;margin:5px;font:800 8px var(--mono);color:#fff;background:#000000a6;border-radius:5px;padding:1px 5px}
.klgt{font:600 10.5px/1.35 var(--sans);color:var(--ink2);margin-top:5px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.krail.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.kmtsub{font:600 10px var(--mono);color:var(--ink3);margin-left:6px}
/* X-24: IP Official 존 + M3 출처 배지(공식/팬/크루) */
.ipzone{margin:0 12px 10px;padding:13px;border:1px solid #6aa6ff44;border-radius:14px;background:linear-gradient(160deg,#16233e,#0d1626)}
.ipzhd{font:800 14px var(--sans);color:var(--ink);margin-bottom:8px}
.ipzbadge{display:inline-block;font:700 10.5px var(--sans);border-radius:8px;padding:5px 10px;margin-bottom:6px}
.ipzbadge.claimed{color:#bfe0ff;background:#6aa6ff22;border:1px solid #6aa6ff66}
.ipzbadge.unclaimed{color:var(--ink3);background:#ffffff08;border:1px solid var(--line)}
.ipzsec{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.ipzsh{font:800 11px var(--sans);color:var(--ink2);display:flex;align-items:center;gap:6px;margin-bottom:6px}
.ipzauto{font:600 9px var(--mono);color:var(--ink4);margin-left:auto}
.ipzsrow{display:flex;align-items:center;gap:8px;padding:4px 0;font:500 11.5px var(--sans);color:var(--ink2)}
.ipzsrow .ipzt{flex:1}
.ipzsrow .ipzd{font:700 10px var(--mono);color:var(--ink3)}
.ipzmrow{display:flex;align-items:center;gap:9px;cursor:pointer;padding:4px 0}
.ipzthumb{width:44px;height:32px;border-radius:7px;object-fit:cover;flex:none;background:#0c1226}
.ipzthumb.ph{background:radial-gradient(120% 120% at 40% 20%,#6aa6ff44,#0c1226)}
.ipzmt{flex:1;font:600 11.5px var(--sans);color:var(--ink2)}
.ipzgo{color:var(--ink3)}
.ipzgate{display:flex;align-items:center;gap:6px;margin-top:9px;padding:10px 0 0;border-top:1px solid var(--line);font:700 11.5px var(--sans);color:var(--ink);cursor:pointer}
.ipzgatesub{font:500 10px var(--sans);color:var(--ink3)}
.ipzkrew{display:flex;align-items:center;gap:6px;margin-top:9px;font:700 11.5px var(--sans);color:var(--ink);cursor:pointer}
.srcbadge{font:800 8px var(--mono);border-radius:5px;padding:2px 6px;flex:none}
.srcbadge.official{color:#bfe0ff;background:#6aa6ff26;border:1px solid #6aa6ff66}
.srcbadge.fan{color:#9be86b;background:#9be86b1c;border:1px solid #9be86b44}
.srcbadge.krew{color:#c9b4ff;background:#b39bff1c;border:1px solid #b39bff44}
.tchip.off{font:800 8px var(--mono);color:#bfe0ff;background:#6aa6ff22;border:1px solid #6aa6ff55;border-radius:5px;padding:2px 6px}
/* X-25: Curator Console B안 + My role 카드 + 헤더 role 아이콘 */
.gic{position:relative}
.gbadge.cq{position:absolute;top:-5px;right:-7px;background:#ff9a6a;color:#0a0e18;font:800 8px var(--mono);border-radius:999px;padding:1px 4px;display:inline-block}
.myrolecard{display:flex;align-items:center;gap:11px;margin:0 0 12px;padding:12px 13px;border:1px solid var(--mine-line);border-radius:13px;background:var(--mine-soft);cursor:pointer}
.myrolecard.bottom{margin:14px 0 4px}   /* Y-28: role 카드 하단 배치 */
/* v1.3 Y-30: 미션 상세 페이지 */
.msnsec{border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin:0 12px 11px;background:#ffffff05}
.msnsec .msnh{font:800 12.5px var(--sans);color:var(--ink);margin-bottom:8px}
.msnhead{background:linear-gradient(160deg,#6aa6ff12,#0c122200)}
.msnbadges{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:8px}
.msnbadge{font:800 11px var(--sans);color:var(--ink);background:var(--card2);border:1px solid var(--line2);border-radius:8px;padding:4px 10px}
.msnbadge.i-ai{color:#b3a6ec;border-color:#9b8cff55;background:#9b8cff14}
.msnbadge.i-ip_brand{color:#efc34a;border-color:#efc34a55;background:#efc34a14}
.msnbadge.i-platform{color:#9ec6ff;border-color:#6aa6ff55;background:#6aa6ff14}
.msnbadge.i-krew{color:#8be0b0;border-color:#2bb98a55;background:#2bb98a14}
.msnsp{font:700 9.5px var(--mono);color:#efc34a;border:1px solid #efc34a55;border-radius:7px;padding:3px 8px;background:#efc34a12}
.msntitle{font:800 16px var(--sans);color:var(--ink);margin-bottom:9px;letter-spacing:-.01em}
.msntp{font:500 12px/1.5 var(--sans);color:var(--ink2);margin-top:3px}
.msntp .msntpk{display:inline-block;min-width:64px;font-weight:700;color:var(--ink3)}
.msnkind .msnkindt{font:800 13px var(--sans);color:var(--mine,#6aa6ff)}
.msnkind .msnkinds{font:500 12px var(--sans);color:var(--ink2);margin-top:4px}
.msnneed{display:flex;gap:9px;align-items:flex-start;background:#9b8cff10;border:1px solid #9b8cff33;border-radius:11px;padding:10px 11px}
.msnneed .msnneedi{font-size:17px}
.msnneed .msnneedl{font:800 12.5px var(--sans);color:var(--ink)}
.msnneed .msnneeds{font:500 11.5px/1.45 var(--sans);color:var(--ink2);margin-top:3px}
.msnreward{font:600 12.5px/1.5 var(--sans);color:var(--ink)}
/* U9: Mission tier 참여 조건 */
.msntier{font:600 12px/1.5 var(--sans);border-radius:11px;padding:10px 12px}
.msntier.gated{color:#ffe2a8;background:var(--t-developing)14;border:1px solid var(--t-developing)44}
.msntier.open{color:#bdf3df;background:var(--t-sourced)12;border:1px solid var(--t-sourced)44}
.msnrmat{font:600 11.5px/1.45 var(--sans);color:var(--warn,#e0a44a);margin-top:7px;background:#e0a44a10;border:1px solid #e0a44a33;border-radius:9px;padding:8px 10px}
.msnsubrail{display:flex;flex-direction:column;gap:8px}
.msnpropose{font:700 11.5px var(--sans);color:#efc34a;background:#efc34a12;border:1px solid #efc34a44;border-radius:10px;padding:9px 12px;margin:0 12px 10px}
.msnproposenote{font:500 11.5px/1.5 var(--sans);color:var(--ink3);margin:8px 0}
.missionrow.msnrow{cursor:pointer}
/* v1.3 Y-32/Y-33: asK 개척 배지 · AI 생성 칩 · UNCHARTED · 온스크린 키패드 */
.askexp{font:700 11px var(--sans);border-radius:9px;padding:7px 11px;margin:8px 0}
.askexp.matched{color:#8be0b0;background:#2bb98a12;border:1px solid #2bb98a44}
.askexp.new{color:#efc34a;background:#efc34a12;border:1px solid #efc34a44}
/* B4: asK mode chip (Ask/Explore/Verify/Create) + Answer Object 렌더 3종 */
.askmodechip{position:relative;font:600 10px var(--mono);color:#bcd3ff;background:#6aa6ff12;border:1px solid #6aa6ff33;border-radius:10px;padding:5px 10px;margin:0 0 10px;display:inline-block}
.askmodechip .amc{font-weight:800;color:#9ec6ff}
.askmodechip .amcx{color:#9ec6ff;cursor:pointer;text-decoration:underline}
.askmodechip .modemenu{position:absolute;left:0;top:100%;margin-top:4px;background:#0e1631;border:1px solid var(--line2);border-radius:10px;padding:4px;display:flex;gap:3px;z-index:5}
.askmodechip .mmi{font:700 10px var(--mono);color:var(--ink2);padding:5px 9px;border-radius:7px;cursor:pointer}
.askmodechip .mmi:active{background:#6aa6ff22}
.apermalink{margin-left:auto;font:600 9px var(--mono);color:var(--ink3);opacity:.7}
.afresh{color:var(--ink3);font-weight:500}
.faninterp .abt{color:var(--ink3);font-style:italic}
.quickans{background:#6aa6ff0d;border:1px solid #6aa6ff33;border-radius:14px;padding:13px 13px}
.quickans .qah{font:800 11px var(--mono);color:#9ec6ff;margin-bottom:7px}
.quickans .qabody{font:500 13px var(--sans);color:var(--ink);line-height:1.55}
.qasrc{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:9px 0 4px}
.qafresh{font:600 9px var(--mono);color:var(--ink3)}
.quicknote,.panote,.tcnote{font:500 10px var(--sans);color:var(--ink3);margin-top:8px;line-height:1.5}
.pinnedans{background:#e8964a0d;border:1px solid #e8964a33;border-left:3px solid #e8964a;border-radius:14px;padding:13px 13px;margin-bottom:6px}
.pinnedans .pah{font:800 11px var(--mono);color:#f0a24a;margin-bottom:7px}
.pinnedans .pabody{font:500 13px var(--sans);color:var(--ink);line-height:1.55}
.pinnedans .pafresh{color:var(--ink3);font-weight:600;font-size:9px}
.twochoice{margin:6px 0}
.twochoice .tch{font:700 13px var(--sans);color:var(--ink);margin-bottom:10px}
.tcopt{background:#ffffff06;border:1px solid var(--line2);border-radius:14px;padding:14px;margin-bottom:9px;cursor:pointer}
.tcopt:active{background:#6aa6ff14;border-color:#6aa6ff55}
.tcopt .tct{font:700 13px var(--sans);color:var(--ink)}
.tcopt .tcs{font:500 11px var(--sans);color:var(--ink3);margin-top:3px}
/* B4: follow-up 슬롯(순수 탐색 · sponsored 없음) + Candidate Node 훅 */
.followups{margin:10px 0 4px;display:flex;flex-direction:column;gap:6px}
.followups .fusl{font:700 10px var(--mono);color:var(--ink3)}
.followups .fusn{font-weight:500;opacity:.8}
.fuq{font:600 11px var(--sans);color:#bcd3ff;background:#ffffff08;border:1px solid #6aa6ff33;border-radius:11px;padding:8px 10px;cursor:pointer}
.fuq:active{background:#6aa6ff1c}
.candnode{display:flex;align-items:center;gap:10px;margin:10px 0;padding:11px;background:#9be86b0d;border:1px solid #9be86b3a;border-radius:13px;cursor:pointer}
.candnode .cni{width:30px;height:30px;border-radius:9px;background:#9be86b18;color:#9be86b;display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.candnode .cnm{flex:1;min-width:0}
.candnode .cnt{font:700 12px var(--sans);color:var(--ink)}
.candnode .cns{font:500 10px var(--sans);color:var(--ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* B4/B1: asK 결과 열림 시 nav dim */
.dock.askdim .nav{opacity:.45;transition:opacity .2s}
.aigenchip{font:700 10.5px var(--mono);color:#b3a6ec;background:#9b8cff14;border:1px solid #9b8cff44;border-radius:8px;padding:5px 10px;display:inline-block;margin:6px 0 4px}
.aigenchip.gen{color:#e3b571;background:#e0a04814;border-color:#e0a04855}
.uncharted{border:1px solid #efc34a44;border-radius:14px;padding:15px;background:#efc34a0c;margin:8px 0}
.uncharted .unch{font:800 15px var(--sans);color:var(--ink);display:flex;align-items:center;gap:8px}
.uncharted .unci{font-size:19px}
.uncharted .uncd{font:500 12.5px/1.6 var(--sans);color:var(--ink2);margin:9px 0 12px}
.ask .kbd{font-size:16px;color:var(--ink3);cursor:pointer;flex:none;line-height:1}
.askkeypad{pointer-events:auto;background:#0b1226;border:1px solid var(--line2);border-radius:16px;padding:9px;margin-top:8px;box-shadow:0 -6px 20px #0008}
.kprow{display:flex;gap:5px;justify-content:center;margin-bottom:6px;flex-wrap:wrap}
.kprow:last-child{margin-bottom:0}
.kpk{min-width:26px;text-align:center;font:600 13px var(--sans);color:var(--ink);background:#18213f;border:1px solid var(--line2);border-radius:8px;padding:8px 7px;cursor:pointer;user-select:none}
.kpk:active{background:#26325c}
.kpk.kpph,.kpk.kpwd{font-size:11.5px;font-weight:700;color:#9ec6ff;background:#6aa6ff14;border-color:#6aa6ff44}
.kpk.kpwide{flex:1;max-width:120px}
.kpk.kpgo{color:#041020;background:#6aa6ff;border-color:#6aa6ff;font-weight:800}
/* v1.3 Y-34: 홈 방식 선택 배너(1회) */
.homebanner{position:absolute;left:12px;right:12px;bottom:88px;z-index:120;opacity:0;transform:translateY(10px);pointer-events:none;transition:.25s}
.homebanner.on{opacity:1;transform:none;pointer-events:auto}
.homebanner .hbin{background:var(--glass-bg2);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));border:1px solid var(--glass-brd);border-radius:16px;padding:15px;box-shadow:0 10px 34px #000a}   /* Y-49: 배너 글래스 통일 */
.homebanner .hbt{font:800 14.5px var(--sans);color:var(--ink)}
.homebanner .hbd{font:500 11.5px/1.5 var(--sans);color:var(--ink3);margin:6px 0 11px}
.homebanner .hbrow{display:flex;gap:9px}
.homebanner .hbopt{flex:1;display:flex;align-items:center;gap:9px;border:1px solid var(--line2);border-radius:12px;padding:11px;cursor:pointer;background:#ffffff05}
.homebanner .hbopt:active{background:#6aa6ff18;border-color:#6aa6ff66}
.homebanner .hbi{font-size:20px}
.homebanner .hbm b{display:block;font:800 12.5px var(--sans);color:var(--ink)}
.homebanner .hbm span{font:500 10.5px var(--sans);color:var(--ink3)}
.homebanner .hbclose{text-align:center;font:600 11.5px var(--sans);color:var(--ink3);margin-top:11px;cursor:pointer;padding:5px}
/* v1.3 Y-36: '포인트 짚기' 마이크로 렌더 오버레이(영상·장면 카드) */
.pointmark{margin-top:8px;border:1px solid var(--line2);border-radius:12px;padding:10px 11px;background:#ffffff05}
.pointmark .pmh{font:800 11.5px var(--sans);color:var(--ink);margin-bottom:7px}
.pointmark .pmrow{display:flex;align-items:flex-start;gap:8px;padding:5px 0;cursor:pointer}
.pointmark .pmexp{font:700 10.5px var(--sans);color:#6aa6ff;cursor:pointer;padding:6px 0 2px}
/* Y-42: Korea Signal 시차 이득 서사 — 흐름 타임라인 + 지금 할 수 있는 것 CTA + 확산 경로 */
.ksline{margin:2px 0 9px;padding-left:6px}
.ksline .ksstage{position:relative;display:flex;gap:10px;padding:0 0 11px 14px;border-left:2px solid var(--line2)}
.ksline .ksstage:last-child{border-left-color:transparent;padding-bottom:0}
.ksline .ksstage .ksdot{position:absolute;left:-6px;top:2px;width:9px;height:9px;border-radius:50%;background:#2a3550}
.ksline .ksstage.on .ksdot{background:#e8704a;box-shadow:0 0 9px #e8704a99}
.ksline .ksst b{display:block;font:700 12px var(--sans);color:var(--ink)}
.ksline .ksst span{font:600 10.5px var(--mono);color:var(--ink3)}
.ksact{display:block;margin:2px 0 4px;padding:9px 11px;border-radius:10px;background:linear-gradient(90deg,#e8704a1f,#e8704a08);border:1px solid #e8704a4d;font:600 12px/1.4 var(--sans);color:var(--ink);cursor:pointer}
.ksact b{color:#f2955f}
.ksflow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 7px;font:700 11px var(--mono);color:var(--ink2)}
.ksflow span{background:var(--surface2,#141b2e);border:1px solid var(--line2);border-radius:7px;padding:2px 8px}
.ksflow i{color:var(--ink4);font-style:normal}
.ksflownote{font:500 11.5px/1.5 var(--sans);color:var(--ink2)}
/* Y-44: Krew 산출물 라벨 스위처 + '이번 주 우리 크루' 통합 카드 서브 헤더 */
.kpinsw{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}
.kpsw{font:600 9.5px var(--sans);color:var(--ink3);padding:2px 7px;border:1px solid var(--line2);border-radius:8px;cursor:pointer}
.kpsw.act{color:var(--ink);border-color:#6aa6ff88;background:#6aa6ff14}
.ksubhd{font:800 10px var(--mono);color:var(--ink3);letter-spacing:.04em;margin:11px 0 5px;text-transform:uppercase}
.ksubhd:first-child{margin-top:2px}
.pointmark .pmn{font:800 10px var(--mono);color:#041020;background:#6aa6ff;border-radius:6px;min-width:17px;height:17px;display:flex;align-items:center;justify-content:center;flex:none;margin-top:1px}
.pointmark .pmm{flex:1;min-width:0}
.pointmark .pmt{font:600 12px/1.4 var(--sans);color:var(--ink)}
.pointmark .pmsrc{font:600 9.5px var(--mono);color:var(--ink3);margin-top:2px}
.pointmark .pmby{font:600 9.5px var(--mono);color:#b3a6ec;margin-top:6px}
.myrolecard .mrci{font-size:19px}
.myrolecard .mrcm{flex:1}
.myrolecard .mrct{font:800 13px var(--sans);color:var(--ink);display:flex;align-items:center;gap:7px}
.myrolecard .mrcbadge{font:800 9px var(--mono);color:#0a0e18;background:#ff9a6a;border-radius:6px;padding:1px 6px}
.myrolecard .mrcs{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.curtabs{margin-bottom:12px}
.currow2{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.currow2 .curm{flex:1}
.currow2 .curt{font:700 12.5px var(--sans);color:var(--ink)}
.currow2 .curs{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.curtierrow{display:flex;align-items:center;gap:6px;margin-top:5px}
.curtier{font:800 8px var(--mono);border-radius:5px;padding:2px 6px;border:1px solid}
.curtier.t-t0,.curtier.t-t1{color:#bfe0ff;background:#6aa6ff22;border-color:#6aa6ff55}
.curtier.t-t2{color:#9be86b;background:#9be86b1c;border-color:#9be86b44}
.curtier.t-t3{color:#efc34a;background:#efc34a1c;border-color:#efc34a44}
.curtier.t-t4{color:#c56b6b;background:#c56b6b1c;border-color:#c56b6b44}
.curarrow{color:var(--ink4)}
.curact.promote{font:800 11px var(--sans);color:#bfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:8px;padding:6px 11px;cursor:pointer;flex:none}
.currow2.promoted{opacity:.6}
.currow2.promoted .curact{color:#5ad6a8;background:#37e0c81c;border-color:#37e0c844}
.curmake{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}
.curmake .cmi{font-size:18px}.curmake .cmm{flex:1}
.curmake .cmt{font:700 12.5px var(--sans);color:var(--ink)}
.curmake .cms{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.reprog{padding:4px 0 10px}
.reprog .repl{font:700 11px var(--sans);color:var(--ink2);margin-bottom:6px}
.reptrack{height:8px;background:#ffffff0d;border-radius:999px;overflow:hidden}
.reptrack i{display:block;height:100%;background:linear-gradient(90deg,#6aa6ff,#37e0c8)}
.reprog .reps{font:500 10px var(--sans);color:var(--ink4);margin-top:5px}
.repbadges{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0 10px}
.repbadge{font:700 10px var(--sans);color:#cfe6ff;background:#6aa6ff14;border:1px solid #6aa6ff40;border-radius:999px;padding:4px 10px}
.repttl{font:800 11px var(--sans);color:var(--ink3);margin:4px 0 6px}
.reprow{display:flex;align-items:center;gap:8px;padding:5px 0;font:500 11.5px var(--sans);color:var(--ink2)}
.reprow .rept{flex:1}.reprow .repw{font:600 9px var(--mono);color:var(--ink4)}
.curapply{padding:6px 2px}
.curapply .cat{font:800 15px var(--sans);color:var(--ink);margin-bottom:6px}
.curapply .cad{font:500 12px/1.5 var(--sans);color:var(--ink2);margin-bottom:8px}
.curapply .cabullets{font:500 11px/1.7 var(--sans);color:var(--ink3);margin-bottom:12px}
.caentry{display:inline-block;font:800 13px var(--sans);color:var(--mine-ink);background:var(--mine);border-radius:11px;padding:11px 20px;cursor:pointer}
.curpreview{opacity:.45;pointer-events:none;margin-top:14px}
/* X-26: 상세 화면 헤더에 붙는 글로벌 아이콘 정렬(back·scope + 동일 아이콘) */
.pagehdr .hrow{display:flex;align-items:center;gap:10px}
.pagehdr .hrow .hscope{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pagehdr .hrow .hdrgic{margin-left:auto;flex:none;display:flex;gap:11px}
.sctrust{font:800 9px var(--mono);border-radius:6px;padding:2px 7px}
.sctrust.ver{color:#8fe3c4;background:#2dd4a81c;border:1px solid #2dd4a855}
.sctrust.raw{color:#ffc98a;background:#efa2351c;border:1px solid #efa23555}
.scchip{font:600 9px var(--mono);color:var(--ink3);background:#ffffff06;border:1px solid var(--line);border-radius:6px;padding:2px 7px}
/* W-9: 관점 카드 — 실인용 + 분포 바 */
.oquotes{display:flex;flex-direction:column;gap:7px;margin-bottom:9px}
.oq{display:flex;gap:8px;align-items:flex-start}
.oql{flex:none;font:800 9.5px var(--mono);color:#9ec6ff;background:#6aa6ff18;border:1px solid #6aa6ff44;border-radius:6px;padding:2px 7px;margin-top:1px}
.oqt{font:500 12.5px/1.45 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.odist{display:flex;flex-direction:column;gap:5px;margin:4px 0 2px}
.odrow{display:flex;align-items:center;gap:8px}
.odl{flex:none;width:34px;font:700 10px var(--mono);color:var(--ink2)}
.odb{flex:1;height:7px;border-radius:4px;background:#ffffff0e;overflow:hidden}
.odb i{display:block;height:100%;border-radius:4px}
.odp{flex:none;font:700 10px var(--mono);color:var(--ink3)}
/* Y-14/v0.8 정리: swThumbCard 폐기 → .swthumb* dead CSS 제거(스와이프 문법 = 인라인 캐러셀 단일) */
.swimgpic{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
/* Y-7: 의견 지형 viz — 스택바 + quote cluster + 합의/갈림/검증 3영역 (얼굴·심볼 0) */
.opinionviz{display:flex;flex-direction:column;gap:9px}
.ovbar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--card2);border:1px solid var(--line)}
.ovseg{height:100%;transition:width .2s}
.ovlegend{display:flex;flex-wrap:wrap;gap:10px}
.ovlg{font:600 10.5px var(--sans);color:var(--ink2);display:flex;align-items:center;gap:5px}
.ovlg i{width:9px;height:9px;border-radius:2px;display:inline-block}
.ovlg b{color:var(--ink);font-weight:800}
.ovquotes{display:flex;flex-direction:column;gap:6px}
.ovq{position:relative;font:500 12px/1.45 var(--sans);color:var(--ink);background:var(--card);border:1px solid;border-radius:11px;padding:9px 12px 9px 16px;overflow-wrap:anywhere}
.ovq.big{font-weight:700;font-size:13px}
.ovqd{position:absolute;left:7px;top:11px;width:5px;height:calc(100% - 20px);border-radius:3px}
.ovzones{display:flex;flex-wrap:wrap;gap:7px}
.ovz{font:700 10.5px var(--sans);border:1px solid var(--line2);border-radius:8px;padding:5px 9px;color:var(--ink2)}
.ovz.need{border-style:dashed}
.ovmeta{font:600 10px var(--mono);color:var(--ink3)}
.ovchips{display:flex;gap:5px;flex-wrap:wrap;margin-top:2px}
/* W-1②: AI Summary → 접힌 한 줄 */
.aisum{cursor:pointer}
.aisumtog{cursor:pointer}
.aisumbody{margin-top:6px}
/* W-8: claim 스레드 서사 재설계 */
.storyhead{background:linear-gradient(120deg,#1c2444,#141b32);border:1px solid var(--line2);border-radius:14px;padding:14px 15px;font:600 15px/1.4 var(--sans);color:var(--ink);cursor:pointer;margin-bottom:11px;position:relative}
.storyhead b{font-weight:800}
.storyhead .storygo{display:block;margin-top:7px;font:700 10.5px var(--mono);color:#9ec6ff}
.sideq{display:flex;gap:9px;align-items:flex-start;padding:7px 0}
.sideq .sql{flex:none;font:800 9.5px var(--mono);border-radius:6px;padding:3px 8px;margin-top:1px}
.sideq .sql.a{color:#8fe3c4;background:#2dd4a81c;border:1px solid #2dd4a855}
.sideq .sql.b{color:#ffc98a;background:#efa2351c;border:1px solid #efa23555}
.sideq .sqt{font:600 12.5px/1.45 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.mechfold{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.mechhd{font:700 11.5px var(--mono);color:var(--ink3);cursor:pointer;display:flex;align-items:center;gap:6px}
.mechhd .mchev{color:var(--ink4)}
.mechbody{margin-top:10px}
/* 스레드(.claimwrap — 질문 스레드 .qconvo 포함)에도 동일 스코프 — 미포함 시 .cav가 풀폭 초록 바로 렌더(버그 리포트 260710) */
.fcard .cpost,.block .cpost,.claimwrap .cpost{display:flex;gap:9px;padding:10px 0;border-top:1px solid var(--line)}
.fcard .cpost:first-child,.block .cpost:first-child,.claimwrap .cpost:first-child{border-top:none;padding-top:2px}
.fcard .cav,.block .cav,.claimwrap .cav{width:28px;height:28px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#06121f}
.fcard .cpb,.block .cpb,.claimwrap .cpb{flex:1;min-width:0}
.fcard .cu,.block .cu,.claimwrap .cu{font:700 10.5px var(--sans);color:var(--ink2)}
.fcard .ctext,.block .ctext,.claimwrap .ctext{font:400 12.5px/1.5 var(--sans);color:var(--ink);margin:3px 0 5px}
.fcard .cmeta,.block .cmeta,.claimwrap .cmeta{font:600 10px var(--mono);color:var(--ink3)}
.claimwrap .creply{display:flex;gap:8px;margin:8px 0 0 14px;padding-left:10px;border-left:2px solid var(--line)}
.claimwrap .cav.sm{width:22px;height:22px;font-size:10px}

/* ---------- asK panel ---------- */
.askpanel{position:absolute;left:12px;right:12px;bottom:150px;z-index:95;background:#0e1631;border:1px solid var(--line2);border-radius:16px;padding:12px;display:none;box-shadow:0 12px 40px #000a}
.askpanel.on{display:block}
.askpanel .h{font:600 11px var(--mono);color:var(--ink3);margin-bottom:8px}
.askpanel .q{font:600 12.5px var(--sans);color:var(--ink);background:#ffffff0a;border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:7px;cursor:pointer}
.askpanel .q span{color:var(--mine)}
.answer{position:absolute;left:16px;right:16px;top:50%;transform:translateY(-50%);z-index:96;background:linear-gradient(180deg,#16203b,#0e1428);border:1px solid var(--line2);border-radius:18px;padding:16px;display:none;box-shadow:0 16px 50px #000c}
.answer.on{display:block}
.answer .qt{font:600 10px var(--mono);color:var(--ink3);margin-bottom:6px}
.answer .at{font:700 15px/1.4 var(--sans);margin-bottom:10px}
.answer .src{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}
.answer .acts{display:flex;gap:8px}
.answer .a{flex:1;text-align:center;font:600 11.5px var(--sans);padding:10px;border-radius:10px;cursor:pointer}
.answer .a.p{background:#6aa6ff;color:#041020}.answer .a.s{background:#ffffff10;border:1px solid var(--line)}

/* ---------- PAGE ---------- */
.pghero{position:relative;padding:0}
.pghero .cov{min-height:150px;position:relative;display:flex;align-items:flex-end;padding:48px 16px 14px}
.pghero .back{position:absolute;top:12px;left:12px;z-index:3;width:34px;height:34px;border-radius:50%;background:#0a0f1ccc;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--ink);cursor:pointer}
.pghero h1{font:800 22px/1.18 var(--sans);letter-spacing:-.02em;position:relative;z-index:2;word-break:keep-all}
.pghero .sub{position:relative;z-index:2;font:600 10px var(--mono);color:#dfe6fb;margin-top:4px}
.pgbody{padding:14px 16px}
.sec{margin-bottom:18px}
.sec .st{font:700 10px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:9px}
.block{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin-bottom:10px}
.block .bt{font:700 13px var(--sans);margin-bottom:8px;display:flex;align-items:center;gap:7px}
.block .bt .tag{font:600 8px var(--mono);color:var(--ink3);border:1px solid var(--line);border-radius:7px;padding:1px 6px;margin-left:auto}
.whynow{font:500 13px/1.5 var(--sans);color:var(--ink)}
.kvrow{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.sentbar{height:9px;border-radius:6px;display:flex;overflow:hidden;margin:8px 0 6px}
.sentlbl{display:flex;justify-content:space-between;font:600 10px var(--mono);color:var(--ink2)}
/* OpinionRecap (FAC-MENTION): word/sentence opinion summary — NOT a sentiment % bar */
.oprecap{font:500 12px/1.5 var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin:2px 0 6px}

/* ===== Claim 3분 (PG-NODE-CLAIM · Hero Beat 4) ===== */
.claimbanner{margin:0 0 12px;padding:10px 12px;border-radius:12px;cursor:pointer;
  font:600 12px var(--sans);color:#ffd9b0;background:var(--t-denied)14;border:1px solid var(--t-denied)44}
/* U1-1b Scoped Feed (§U1) — Snapshot + Lens Cards(grouping shell) + community-origin stream */
.scopedfeed{padding:2px 0 24px;display:flex;flex-direction:column;gap:12px}
/* FR2-C06/D8-05: node-scoped 실 콘텐츠 피드 + 보조 lens 섹션 */
.sfdivefeed{display:flex;flex-direction:column;gap:10px}
.sfdivefeed>.sfsnaphd{margin-bottom:0}
.sflensesec{display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--line,#1c2036);padding-top:11px}
.sflensesec>.sfsnaphd{opacity:.82}
.sftype{font:700 9px var(--mono);color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:7px;padding:1px 6px;margin-left:4px}
/* IF-02: Snapshot 배경 투명도/블러(U0-16 승계) — 구 solid var(--card) → 반투명 글래스+backdrop blur.
   미적용 원인: .sfsnap이 U1-1b(후속 라운드)에서 신설되며 default 카드 배경 사용, U0-16 글래스 처리 미전파. */
/* Daniel(fb): summary(Snapshot) 카드도 하단 네비/asK 팝업과 같은 CLEAR 유리 — frosted 토큰(blur14·bg.62)
   대신 near-transparent + 얇은 4면 rim + 상단 sheen. 본문 텍스트는 카드 위에 그대로(자식 z-index). */
.sfsnap{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));
  backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);
  border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:13px;
  box-shadow:0 8px 22px -12px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(255,255,255,.06)}
.sfsnap::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0) 26%);mix-blend-mode:screen;opacity:.55}
.sfsnap>*{position:relative;z-index:1}
/* §4: Dive Compact Node Header(Full Snapshot 대체) — 최소 identity + 조건부 Summary 보기(direct entry) + Peek/Follow */
.sfhead{display:flex;align-items:center;gap:10px;padding:2px 2px 4px}
.sfheadmain{flex:1;min-width:0}
.sfheadtt{font:800 17px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sfheadmeta{font:600 11px var(--sans);color:var(--ink3);margin-top:1px}
.sfheadact{flex:none;display:flex;align-items:center;gap:6px}
.sfheadsumm{font:700 11px var(--sans);color:#9ec6ff;background:#6aa6ff12;border:1px solid #6aa6ff2a;border-radius:999px;padding:5px 11px;cursor:pointer}
.sfhead .sa{font:800 11px var(--sans);border-radius:999px;padding:5px 11px;cursor:pointer}
.sfhead .sa.p{color:#06121f;background:var(--mine,#e8704a)}
.sfhead .sa.f{color:var(--ink);background:#ffffff10;border:1px solid var(--line2)}
.sfsnaphd{font:700 12px var(--sans);color:var(--ink);margin-bottom:8px}.sfsnaphd .ce{font:500 9px var(--mono);color:var(--ink4);margin-left:5px}
.sfwhy{font:500 12px/1.5 var(--sans);color:var(--ink2);margin-bottom:8px}.sfwhy b{font:700 9px var(--mono);color:var(--mine);text-transform:uppercase;margin-right:5px}
/* CR-PUNCH #02(Daniel 02): Key Signals = 유형별 시각 차별화 타일(아이콘 + 유형 라벨 + 신호 한 줄 + 유형 색 좌측 border).
   과거 flat 회색 chip(전부 동일·잘린 제목) → 세로 스택 타일로 가독·의미 부여. */
/* Daniel 260717 #5b: signal 타일을 텍스트 폭까지만(full-width 아님) — 좌측 정렬·내용 폭 hug. */
.sfsigs{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin-bottom:9px}
.sfsigs .sfsig{align-self:flex-start;max-width:100%}
.sfsigs .sfk{font:700 8.5px var(--mono);color:var(--ink3);text-transform:uppercase;margin-bottom:1px}
.sfsig{display:flex;align-items:flex-start;gap:8px;padding:6px 9px;border-radius:9px;
  background:color-mix(in srgb,var(--sig,#8aa0c8) 9%,transparent);
  border:1px solid color-mix(in srgb,var(--sig,#8aa0c8) 26%,var(--line));border-left:3px solid var(--sig,#8aa0c8)}
.sfsig .sfsigi{font-size:12.5px;line-height:1.25;flex:none}
.sfsig .sfsigtx{display:flex;flex-direction:column;min-width:0}
.sfsig .sfsigty{font:700 8px var(--mono);color:var(--sig,#8aa0c8);text-transform:uppercase;letter-spacing:.02em}
.sfsig .sfsigl{font:600 11px/1.35 var(--sans);color:var(--ink);margin-top:1px}
.sfmeta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:9px}.sfm{font:600 10px var(--mono);color:var(--ink3)}
/* P0-12(D6-45): 공식 lightweight cue (heavy Official lens 대체) */
.sfoffcue{display:flex;align-items:center;gap:8px;margin:0 0 9px;padding:8px 11px;border-radius:11px;background:#6aa6ff10;border:1px solid #6aa6ff30;cursor:pointer}
.sfoffcue .sfoffi{font-size:14px}
.sfoffcue .sfoffm{flex:1;min-width:0;font:600 11px var(--sans);color:#bcd3ff}
.sfoffcue .sfoffgo{font:700 11px var(--sans);color:#9ec6ff}
.sfcta{display:flex;gap:8px}.sfcta .sa{flex:1;text-align:center;font:700 12px var(--sans);border-radius:11px;padding:9px 0;cursor:pointer}
.sfcta .sa.p{background:#6aa6ff;color:#041020}.sfcta .sa.f{background:#ffffff08;border:1px solid var(--line2);color:var(--ink)}.sfcta .sa.s{background:#ffffff10;border:1px solid var(--line2);color:var(--ink)}
.sflenses{display:flex;flex-direction:column;gap:9px}
.sflens{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 12px}
.sflenshd{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
.sflenskind{font:700 10px var(--mono);border-radius:8px;padding:2px 8px;color:var(--ink2);background:#ffffff0a;border:1px solid var(--line)}
.sflenskind.lk-official{color:var(--t-official);border-color:var(--t-official)55;background:var(--t-official)12}
.sflenskind.lk-proof{color:var(--t-sourced);border-color:var(--t-sourced)55;background:var(--t-sourced)12}
.sflenskind.lk-community{color:#e0a44a;border-color:#e0a44a55;background:#e0a44a12}
.sflenskind.lk-guide{color:#9ec6ff;border-color:#6aa6ff55;background:#6aa6ff12}
.sflenskind.lk-ranking{color:#cdb24a;border-color:#cdb24a55;background:#cdb24a12}
.sflensupd{font:600 9px var(--mono);color:var(--ink4)}
.sflenst{font:700 13px var(--sans);color:var(--ink);margin-bottom:3px}
/* Daniel 260717 #5b: lens 헤더 title(.sflenst) 제거 → 렌즈 설명은 이 한 줄만(중복 해소). 살짝 키워 collapsed 스캔성 유지. */
.sflenswhy{font:600 11.5px/1.35 var(--sans);color:var(--ink2);margin-bottom:6px}
.sflensmeta{display:flex;align-items:center;justify-content:space-between}
.sflensn{font:700 9.5px var(--mono);color:var(--ink3)}
.sflensexp{font:700 10px var(--mono);color:var(--mine);cursor:pointer}
.sflensunits{margin-top:8px;border-top:1px solid var(--line);padding-top:9px;display:flex;flex-direction:column;gap:9px}
/* Daniel 재요청: 렌즈 안에 실제 콘텐츠 카드 */
.sfunitcard{display:block}
.sfunitcard .samplecard,.sfunitcard .fcard{margin:0}
.sfunit .sfunitgo{margin-left:auto;font:700 10px var(--sans);color:#9ec6ff}
.sflensesec>.sfsnaphd{opacity:1;font-weight:800}
/* CR-B(D10-02): seed-domain 실 콘텐츠 카드(제목·본문·근거/출처·trust·액션) — Node Dive 렌즈 안 실물 */
.ssunit{display:block;background:var(--card2,#0f1830);border:1px solid var(--line2);border-radius:11px;padding:10px 12px;cursor:pointer;transition:border-color .15s,transform .05s;position:relative;overflow:hidden}
.ssunit::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--mine,#6aa6ff)}
.ssunit.sscomm::before{background:#9be86b}.ssunit.ssblock::before{background:#cdb24a}
.ssunit:hover{border-color:#3a4b78}.ssunit:active{transform:scale(.995)}.ssunit.viewed{opacity:.72}
.ssunit .sshd{display:flex;align-items:center;gap:7px;margin-bottom:5px;flex-wrap:wrap}
.ssunit .sskind{font:800 9.5px var(--sans);color:#cfe0ff;background:#6aa6ff22;border:1px solid #6aa6ff40;border-radius:6px;padding:2px 7px}
.ssunit .sk-co{color:#c7f0ad;background:#9be86b1c;border-color:#9be86b40}
.ssunit .sk-blk{color:#eBD98a;background:#cdb24a1c;border-color:#cdb24a44}
.ssunit .sstrust{font:700 9px var(--mono);color:var(--ink2);background:var(--line);border-radius:5px;padding:2px 6px}
.ssunit .ss-T0,.ssunit .ss-T1{color:#8fe3c0;background:#37e0c81c}
.ssunit .ssoff{font:700 9px var(--sans);color:#e8cf8a;background:#cdb24a1c;border-radius:5px;padding:2px 6px}
.ssunit .sstitle{font:700 13px/1.32 var(--sans);color:var(--ink);margin-bottom:3px}
.ssunit .ssbody{font:500 11.5px/1.45 var(--sans);color:var(--ink2);margin-bottom:5px}
.ssunit .ssquote{font:500 11px/1.4 var(--sans);color:#bcd0f2;border-left:2px solid var(--line2);padding-left:8px;margin:4px 0 5px}
.ssunit .sssrc{font:600 10px var(--sans);color:var(--ink3);margin-bottom:6px}
.ssunit .ssact{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:6px}
.ssunit .ssactl{font:700 10.5px var(--sans);color:#9ec6ff}
.ssunit .sswhy{font:500 9.5px var(--sans);color:var(--ink3)}
.ssunit .sslin{font:600 9.5px var(--sans);color:var(--ink3)}
.ssunit .ssgo{margin-left:auto;font:800 10px var(--sans);color:#9ec6ff}
.sflensempty{display:flex;align-items:center;gap:8px;font:600 11px var(--sans);color:var(--ink3);background:#ffffff05;border:1px dashed var(--line2);border-radius:10px;padding:11px 12px}
.sflensempty .sflei{font-size:14px}
/* CR-B seed 상세 시트 */
.ssdwrap{padding:2px 2px 6px}
.ssdhd{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.ssdt{font:800 16px/1.35 var(--sans);color:var(--ink);margin-bottom:9px}
.ssdbody{font:500 13px/1.6 var(--sans);color:var(--ink2);margin-bottom:12px}
.ssdev,.ssdclaim,.ssdsrc,.ssdblk{border-top:1px solid var(--line);padding-top:9px;margin-top:9px}
.ssdsrch{font:800 10px var(--mono);letter-spacing:.03em;color:var(--ink3);margin-bottom:6px;text-transform:uppercase}
.ssdquote{font:500 12px/1.5 var(--sans);color:#bcd0f2;border-left:2px solid var(--line2);padding-left:9px;margin-bottom:6px}
.ssdpart{font:500 11px var(--sans);color:var(--ink3);margin-top:4px}
.ssdclaimrow{font:500 11.5px/1.5 var(--sans);color:var(--ink2);margin-bottom:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}
.ssdout{font:700 9px var(--mono);color:var(--ink3);background:var(--line);border-radius:5px;padding:1px 5px}
.ssdsrcrow{font:600 11px var(--sans);color:var(--ink2);margin-bottom:4px}
.ssdst,.ssdlc{font:600 9px var(--mono);color:var(--ink3)}
.ssdblk .ssdrow{display:flex;gap:9px;font:500 11.5px var(--sans);margin-bottom:5px}
.ssdblk .ssdk{flex:0 0 92px;color:var(--ink3);font-weight:700}
.ssdblk .ssdv{flex:1;color:var(--ink2)}
.ssdnote{font:600 9.5px var(--sans);color:var(--ink4);margin-top:12px;text-align:center}
.sfunit{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;background:#0f1830;border:1px solid #223052;border-radius:9px}
.sfunitk{flex:0 0 auto;font:700 8px var(--mono);color:var(--ink3);background:var(--line);border-radius:6px;padding:2px 6px}
.sfunitl{flex:1;min-width:0;font:600 11.5px var(--sans);color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sfempty{display:flex;align-items:center;gap:11px;background:#ffffff05;border:1px dashed var(--line2);border-radius:13px;padding:14px}
.sfemptyi{font-size:22px}.sfemptym{flex:1}.sfemptyt{font:700 12.5px var(--sans);color:var(--ink)}.sfemptys{font:500 11px/1.5 var(--sans);color:var(--ink3);margin-top:3px}
.sfemptylv{font:700 8.5px var(--mono);color:var(--t-developing);background:var(--t-developing)18;border-radius:6px;padding:2px 7px}
.sfstream{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}
.sfstreamhd{font:700 12px var(--sans);color:var(--ink);margin-bottom:8px}.sfstreamhd .ce{font:500 9px var(--mono);color:var(--ink4);margin-left:5px}
.sfobj{padding:9px 0;border-top:1px solid var(--line)}.sfobj:first-of-type{border-top:0}
.sfobjh{display:flex;align-items:center;gap:7px;margin-bottom:3px}
.sfobjtype{font:700 8.5px var(--mono);color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:6px;padding:1px 6px}
.sfobjlin{font:600 8.5px var(--mono);color:var(--ink4)}
.sfobjt{font:700 12.5px var(--sans);color:var(--ink)}
.sfobjs{font:500 11px/1.5 var(--sans);color:var(--ink2);margin-top:2px}
.sfobjrep{font:500 9.5px/1.4 var(--sans);color:var(--ink3);margin-top:4px}
/* U1-2 Exposure Logic — 업데이트됨 배지·NEW·viewed 감쇠·bounded session marker */
.sfupd{font:700 8px var(--mono);color:#06121f;background:linear-gradient(135deg,#efc34a,#f0a84a);border-radius:6px;padding:1px 6px;margin-left:6px}
.sfupdN{color:var(--t-developing);font-weight:700}
.sfnew{font:700 8px var(--mono);color:#06121f;background:#37e0c8;border-radius:6px;padding:1px 5px;margin-left:auto}
.sfunit.viewed,.sfobj.viewed{opacity:.5}
.sfunit{align-items:center}
.sfbound{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:13px;margin-top:2px}
.sfboundt{font:700 12.5px/1.5 var(--sans);color:var(--ink);margin-bottom:10px}.sfboundt b{color:var(--t-sourced)}
.sfboundsec{margin-top:9px}
.sfboundh{font:700 9.5px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.sfboundqs{display:flex;flex-wrap:wrap;gap:6px}
.sfboundq{font:600 11px var(--sans);color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:9px;padding:6px 10px;cursor:pointer}
.sfbounddive{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.sfbounddive:first-of-type{border-top:0}
.sfbdt{font:700 12px var(--sans);color:var(--ink)}
.sfbdr{font:500 10px var(--sans);color:var(--ink3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sfbdgo{margin-left:auto;font:700 10px var(--mono);color:var(--mine);flex:none}
.claimwrap{padding:2px 0 24px;display:flex;flex-direction:column;gap:12px}
/* ---- B6-2 IP/Brand Official Account (V17-07) ---- */
.ipveric{font:700 10px var(--mono);color:var(--t-official);background:var(--t-official)18;border:1px solid var(--t-official)55;border-radius:8px;padding:1px 6px;margin-left:4px}
.statestrip.ok .ipt0{font:700 9.5px var(--mono);color:var(--t-official);background:var(--t-official)1e;border:1px solid var(--t-official)55;border-radius:7px;padding:1px 6px;margin-left:auto}
.iproles-grid{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.iprolerow{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--card)}
.iprolerow .iprole{flex:0 0 88px;font:700 11px var(--sans);color:var(--ink)}
.iprolerow .iprolewho{flex:0 0 auto;font:600 10px var(--mono);color:var(--mine)}
.iprolerow .iproles{flex:1;min-width:0;font:500 10.5px var(--sans);color:var(--ink3);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ippost{padding:10px 0;border-top:1px solid var(--line)}.ippost:first-of-type{border-top:0}
.ipposth{display:flex;align-items:center;gap:8px;margin-bottom:5px}.ippostd{font:600 10px var(--mono);color:var(--ink4)}
.ippostt{font:700 13.5px var(--sans);color:var(--ink);margin-bottom:4px}
.ippostb{font:500 12px var(--sans);color:var(--ink2);line-height:1.5}
.ipdrop{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.ipdropd{flex:0 0 auto;font:700 11px var(--mono);color:var(--t-developing)}
.ipdropm{flex:1;min-width:0}.ipdropm b{display:block;font:700 12.5px var(--sans);color:var(--ink)}.ipdropm span{font:500 10.5px var(--sans);color:var(--ink3)}
.ipdropc{flex:0 0 auto;font:700 9.5px var(--mono);color:var(--t-developing);background:var(--t-developing)18;border:1px solid var(--t-developing)55;border-radius:8px;padding:2px 8px}
.ipsched{display:flex;flex-direction:column}
.ipschrow{display:flex;gap:11px;padding:9px 0;border-top:1px solid var(--line)}.ipschrow:first-child{border-top:0}
.ipschd{flex:0 0 40px;font:700 12px var(--mono);color:var(--t-official)}
.ipschm{flex:1;min-width:0}
.ipscht{font:700 12.5px var(--sans);color:var(--ink);display:flex;align-items:center;gap:6px}
.ipschk{font:700 9px var(--mono);color:var(--ink3);background:var(--line);border-radius:6px;padding:1px 6px}
.ipschdt{font:500 10.5px var(--sans);color:var(--ink3);margin-top:3px}
.ipmgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ipmcard{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}
.ipmth{position:relative;height:56px;background:linear-gradient(120% 120% at 30% 20%,var(--mine-soft),#0c1226);display:flex;align-items:flex-start;padding:7px}
.ipmth.vid{background:linear-gradient(120% 120% at 30% 20%,var(--t-official)33,#0c1226)}
.ipmk{font:700 9px var(--mono);color:var(--ink2);background:#0c1226aa;border-radius:6px;padding:1px 6px}
.ipmplay{position:absolute;inset:0;margin:auto;width:22px;height:22px;line-height:22px;text-align:center;font-size:11px;color:#fff;background:#0009;border-radius:50%}
.ipmt{font:600 11.5px var(--sans);color:var(--ink);padding:7px 9px 2px;line-height:1.35}
.ipmopen{display:block;font:600 10px var(--mono);color:var(--mine);padding:0 9px 8px}
.iprsp{padding:10px 0;border-top:1px solid var(--line)}.iprsp:first-of-type{border-top:0}
.iprspq{font:700 12.5px var(--sans);color:var(--ink);margin-bottom:5px}
.iprspa{font:500 12px var(--sans);color:var(--ink2);line-height:1.5}.iprspa .ocue{margin-right:5px}
/* claim 4단계 stepper */
.ipstepper{display:flex;align-items:center;gap:0;margin:4px 0 2px}
.ipstepdot{flex:0 0 auto;width:22px;height:22px;line-height:20px;text-align:center;border-radius:50%;font:700 10px var(--mono);color:var(--ink4);background:var(--card);border:1.5px solid var(--line2)}
.ipstepdot.cur{color:var(--bg0);background:var(--mine);border-color:var(--mine)}
.ipstepdot.done{color:var(--t-official);border-color:var(--t-official);background:var(--t-official)18}
.ipsteprule{flex:1;height:1.5px;background:var(--line2);margin:0 2px}
.ipstepname{font:700 12.5px var(--sans);color:var(--ink);margin-top:8px}
/* managed inbox */
.managedinbox{padding:0 2px}
.miblock{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 12px;margin-bottom:9px}
.mibh{display:flex;align-items:center;gap:7px;font:700 12px var(--sans);color:var(--ink);margin-bottom:8px}
.mibicon{font-size:13px}
.mibcount{font:700 9px var(--mono);color:var(--ink3);background:var(--line);border-radius:8px;padding:1px 6px}
.miblabel{font:700 9.5px var(--mono);color:var(--t-official);background:var(--t-official)18;border:1px solid var(--t-official)55;border-radius:8px;padding:2px 8px}
.mibsub{font:500 9.5px var(--sans);color:var(--ink4)}
.mibbrow{padding:8px 0;border-top:1px solid var(--line)}
.mibbt{font:600 12px var(--sans);color:var(--ink)}
.mibbmeta{font:500 10px var(--mono);color:var(--ink3);margin-top:3px}.mibbmeta b{color:var(--t-official)}
.mirow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.mirt{font:600 12px var(--sans);color:var(--ink2);min-width:0;flex:1}
.mirtag{flex:0 0 auto;font:700 9px var(--mono);color:var(--ink3);background:var(--line);border-radius:7px;padding:2px 7px}
.mirtag.ok{color:var(--t-sourced);background:var(--t-sourced)18}
.mirtag.deny{color:#e06a6a;background:#e06a6a18}
.mifrow{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-top:1px solid var(--line);font:500 12px var(--sans);color:var(--ink2)}
.mitoggle{font:700 9px var(--mono);color:var(--ink4);background:var(--line);border-radius:7px;padding:2px 8px}
.mitoggle.on{color:var(--t-sourced);background:var(--t-sourced)18}
.csec{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 13px}
.ctt{font:600 10px var(--mono);letter-spacing:.04em;color:var(--ink3);text-transform:uppercase;margin-bottom:9px}
.claimrow{padding:9px 10px;border:1px solid var(--line);border-radius:11px;margin-bottom:7px;cursor:pointer;transition:border-color .15s,background .15s}
.claimrow:last-child{margin-bottom:0}
.claimrow.act{border-color:var(--mine-line);background:var(--mine-soft)}
.crtop{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.crtrust{font:600 10px var(--mono);color:var(--ink3)}.crtrust b{color:var(--t-official)}
.crtext{font:600 13px var(--sans);color:var(--ink);line-height:1.35}
.ctimeline{display:flex;flex-direction:column}
.ctlrow{display:flex;gap:10px;padding-bottom:12px;position:relative}
.ctlrow:not(:last-child)::before{content:"";position:absolute;left:5px;top:12px;bottom:0;width:1.5px;background:var(--line2)}
.ctldot{width:11px;height:11px;border-radius:50%;background:var(--ink4);border:2px solid var(--card);box-shadow:0 0 0 1.5px var(--line2);flex:none;margin-top:2px;z-index:1}
.ctldot.last{background:var(--t-official);box-shadow:0 0 0 1.5px var(--t-official)}
.ctlh{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:3px}
.ctlt{font:600 10px var(--mono);color:var(--ink3)}
.ctllabel{font:600 10px var(--mono);color:var(--ink2);background:#ffffff10;border:1px solid var(--line);padding:2px 7px;border-radius:10px}
.ctltext{font:500 12px/1.45 var(--sans);color:var(--ink2)}
.cdiff{background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:10px 11px}
.cdfield{font:600 11px var(--mono);color:var(--ink3);margin-bottom:6px}
.cdrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cdfrom{font:500 12px var(--sans);color:var(--t-unverified);text-decoration:line-through;opacity:.8}
.cdarrow{color:var(--ink3)}.cdto{font:600 12px var(--sans);color:var(--t-official)}
.cdby{font:500 11px var(--sans);color:var(--ink3);margin-top:7px}
.csrcs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cnote{font:500 10.5px var(--sans);color:var(--ink4);margin-top:8px}
.cta-rail{display:flex;gap:8px}
.cta{flex:1;text-align:center;padding:10px;border-radius:11px;font:600 12.5px var(--sans);cursor:pointer;border:1px solid var(--line2);color:var(--ink)}
.cta.primary{background:var(--mine);color:var(--mine-ink);border-color:var(--mine)}
.cta.na{background:#ffffff08;color:var(--ink4);border-color:var(--line);text-decoration:line-through;cursor:default}

/* ===== Page Summary Card: media band(top) + factor Action Rail (FAC-SUMMARY/CTA) ===== */
/* item3: hero = 전체 너비·자연 높이(반 잘림·반사이즈 둘 다 해소). 세로로 너무 긴 이미지만 max-height에서 cover. */
/* DB-12: Page hero fallback — priority-1 출처 화면 보조 밴드 · priority-0 타이포 카드(빈 그라데이션 0) */
.pgsrcshot{position:relative;width:100%;height:150px;overflow:hidden;background:#0c1226;line-height:0}
.pgsrcshot img{width:100%;height:100%;object-fit:cover;opacity:.8;display:block}
.pgsrcshotlab{position:absolute;left:10px;bottom:9px;font:700 10px var(--mono);color:#dfe7f5;background:#000a;border-radius:7px;padding:3px 8px;line-height:1.2}
.pgtypo{position:relative;font:800 19px/1.5 var(--sans);color:var(--ink);padding:22px 18px;border:1px solid;border-bottom:0;letter-spacing:-.01em;overflow-wrap:anywhere}
.pgtypo .pgtypoq{font-size:30px;color:var(--ink3);margin-right:4px;vertical-align:-7px}
.pgmediaband{position:relative;width:100%;overflow:hidden;background:var(--card2);line-height:0}
.pgmediaband img{width:100%;height:auto;max-height:340px;object-fit:cover;object-position:center;display:block}
.pgmediaband .pgplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:#000a;border:1.5px solid #fff9;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px}
.actionrail{display:flex;gap:8px;padding:12px 16px 4px}
.actionrail .nav-cta{flex:0 0 auto;padding:9px 13px;border-radius:11px;font:600 12px var(--sans);cursor:pointer;border:1px solid var(--line2);color:var(--ink);background:#ffffff08;white-space:nowrap}
.actionrail .cust-cta{flex:1;text-align:center;padding:9px 12px;border-radius:11px;font:600 12.5px var(--sans);cursor:pointer;background:var(--mine);color:var(--mine-ink);border:1px solid var(--mine);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== Decision Page (PG-DECISION · P6) ===== */
.decbanner{margin:0 0 12px;padding:10px 12px;border-radius:12px;cursor:pointer;font:600 12px var(--sans);color:#bfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line)}
.ipbanner{margin:0 0 12px;padding:10px 12px;border-radius:12px;cursor:pointer;font:600 12px var(--sans);color:#cfe0ff;background:var(--t-official)14;border:1px solid var(--t-official)44}
.ipright{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:4px}
/* B6-2: Official Account 8구획 + operator roles + managed inbox + claim 4단계 */
.iproles{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:5px}
.iprole{font:600 9.5px var(--mono);color:#cfe0ff;background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:9px;padding:3px 8px}
.iprole b{color:#9ec6ff}
.ippost{display:flex;align-items:center;gap:10px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px}
.ippost .ipph{width:38px;height:38px;border-radius:10px;flex:none}
.ippost .ippt{font:700 12px var(--sans);color:var(--ink)}
.ippost .ipps{font:500 10px var(--sans);color:var(--ink3);margin-top:2px}
.ipmedia{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.ipmediacell{aspect-ratio:1;border-radius:11px;overflow:hidden;background:#0e1631}
.ipmediacell img{width:100%;height:100%;object-fit:cover}
.ipbroadcast{font:600 11px var(--sans);color:var(--ink2);background:#e8964a10;border:1px solid #e8964a33;border-radius:11px;padding:10px 11px;line-height:1.5}
.ipbctag{font:800 8.5px var(--mono);color:#06121f;background:#e8a24a;border-radius:7px;padding:2px 7px;margin-right:6px}
.claim4{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px}
.claim4 .c4h{font:800 12px var(--sans);color:var(--ink);margin-bottom:9px}
.c4row{display:flex;align-items:center;gap:10px;padding:8px 4px;opacity:.55}
.c4row.done,.c4row.act{opacity:1}
.c4row .c4n{width:22px;height:22px;border-radius:50%;background:#ffffff12;color:var(--ink2);display:flex;align-items:center;justify-content:center;font:700 11px var(--mono);flex:none}
.c4row.done .c4n{background:var(--t-sourced)22;color:var(--t-sourced)}
.c4row.act .c4n{background:#6aa6ff33;color:#9ec6ff}
.c4row .c4m{flex:1;font:500 11.5px var(--sans);color:var(--ink)}
.c4row .c4s{font:700 9.5px var(--mono);color:var(--ink3)}
.c4row.act .c4s{color:#9ec6ff}
.decq{text-align:left}
.decqt{font:800 22px var(--sans);letter-spacing:-.02em;color:var(--ink);margin-bottom:8px}
.decreason{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.deccrux{font:500 12px var(--sans);color:var(--ink2)}
.evaxis{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.evaxis:first-of-type{border-top:0}
.evlabel{flex:0 0 78px;font:600 11px var(--mono);padding:3px 0;align-self:flex-start}
.evlabel.off{color:var(--t-official)}.evlabel.exp{color:var(--c-community)}.evlabel.op{color:var(--t-developing)}.evlabel.vf{color:var(--t-sourced)}
.evbody{flex:1;font:500 12px/1.45 var(--sans);color:var(--ink2)}
.vproof{display:block;font:500 10.5px var(--sans);color:var(--ink4);margin-top:2px}

/* ===== Page Reading states (§8) — SpoilerSafe · LowConfidence ===== */
.statestrip{margin:0 0 12px;padding:9px 12px;border-radius:11px;font:600 12px var(--sans);display:flex;align-items:center;justify-content:space-between;gap:8px}
.statestrip.lowconf{color:#ffe2a8;background:var(--t-developing)14;border:1px solid var(--t-developing)44}
.statestrip.conflict{color:#cfe0ff;background:var(--t-official)14;border:1px solid var(--t-official)44}
.cfboth{margin:0 0 12px;padding:9px 12px;border-radius:11px;font:500 12px/1.5 var(--sans);color:var(--ink2);background:var(--card);border:1px solid var(--line)}
.cfboth b{color:var(--ink)}
/* CommunityInactive (ST-COMMINACT) */
.comminact{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 16px;text-align:center}
.comminact .cit{font:700 15px var(--sans);color:var(--ink);margin-bottom:6px}
.comminact .cid{font:500 12px/1.5 var(--sans);color:var(--ink3);margin-bottom:14px}
.comminact .cta-rail{justify-content:center}

/* ===== Kosmos 목록 보기 — Contextual Semantic Projection 정적 fallback (a11y) ===== */
.koslist{position:absolute;inset:0;z-index:30;background:linear-gradient(180deg,var(--bg1),var(--bg0));overflow-y:auto;padding:6px 14px 130px}
.koslist[hidden]{display:none}
.klhd{position:sticky;top:0;background:var(--bg1);font:600 11px var(--sans);color:var(--ink3);padding:11px 2px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);z-index:1}
.klhd b{color:var(--ink);font-size:14px}
.klx{margin-left:auto;cursor:pointer;color:var(--ink2);font-size:16px}
.klsec{margin-top:13px}
.klc{font:700 11px var(--mono);color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.klrow{display:flex;align-items:center;gap:9px;padding:10px 11px;background:var(--card);border:1px solid var(--line);border-radius:11px;margin-bottom:6px;cursor:pointer}
.kld{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.klt{flex:1;font:600 13px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kls{font:600 10px var(--mono);color:var(--ink3)}

.statestrip .ssb{cursor:pointer;color:var(--mine);white-space:nowrap}
.pgbody.spoilered>*:not(.spoilergate){filter:blur(8px);pointer-events:none;user-select:none}
.spoilergate{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:18px 16px;text-align:center;margin-bottom:12px}
.spoilergate .sgt{font:700 14px var(--sans);color:var(--ink);margin-bottom:4px}
.spoilergate .sgd{font:500 12px var(--sans);color:var(--ink3);margin-bottom:12px}
.spoilergate .svbtn{display:inline-block;padding:9px 18px;border-radius:11px;background:var(--mine);color:var(--mine-ink);font:600 12.5px var(--sans);cursor:pointer}
/* U0-6 #13: 콘텐츠 유닛 단위 스포일러 마스킹(블록 전체가 아니라 개별 유닛) */
.spoiler-unit{position:relative}
.spoiler-unit>*:not(.suGate){filter:blur(7px);pointer-events:none;user-select:none}
.spoiler-unit .suGate{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;background:rgba(10,15,30,.5);border:1px solid var(--line2);border-radius:12px;cursor:pointer}
.spoiler-unit .suGate .sut{font:700 11px var(--sans);color:#cfe0ff;background:#0a0f1ccc;border:1px solid var(--line2);border-radius:10px;padding:6px 11px}

/* ===== Pulse [오늘 바뀐 것] first card (FAC-PULSE · Raw/Verified lane) ===== */
.todaycard{margin:0 16px 14px;background:var(--card);border:1px solid var(--mine-line);border-radius:14px;padding:12px 13px}
.todaycard .tch{font:800 14px var(--sans);color:var(--ink);margin-bottom:9px}
.tcrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);cursor:pointer}
.tcrow:first-of-type{border-top:0}
.tclane{flex:0 0 auto;font:700 9.5px var(--mono);padding:2px 7px;border-radius:8px}
.tclane.ver{color:var(--t-sourced);background:var(--t-sourced)18;border:1px solid var(--t-sourced)55}
.tclane.raw{color:var(--c-community);background:var(--c-community)18;border:1px solid var(--c-community)55}
.tctag{flex:0 0 auto;font:600 10.5px var(--mono);color:var(--ink3)}
.tctxt{flex:1;font:500 12px/1.35 var(--sans);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcgo{flex:0 0 auto;color:var(--ink3);font-size:15px}
.emptybox{margin:24px 16px;padding:28px 18px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:14px}
.emptybox .et{font:700 14px var(--sans);color:var(--ink);margin-bottom:6px}
.emptybox .ed{font:500 12px var(--sans);color:var(--ink3);margin-bottom:14px}
.emptybox .b{display:inline-block;padding:9px 16px;border-radius:11px;background:var(--mine);color:var(--mine-ink);font:600 12px var(--sans);cursor:pointer}

/* WS6 (Daniel): unified Network-rail empty state — one designed card visual across all four rails. */
.netempty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  padding:22px 16px;margin:2px 0 2px;text-align:center;
  background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 4%,transparent),transparent);
  border:1px dashed var(--line);border-radius:14px}
.netempty-ic{width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  font-size:22px;border-radius:50%;background:color-mix(in srgb,var(--ink) 6%,transparent);
  border:1px solid var(--line);opacity:.9}
.netempty-t{font:700 13.5px var(--sans);color:var(--ink)}
.netempty-h{font:500 11.5px var(--sans);color:var(--ink3);line-height:1.5;max-width:220px}

/* v1.6 Krew Together tab — unified Discussion/Event/Live·Meetup list: filter chips + type badges. */
.kctgfilter{display:flex;gap:6px;flex-wrap:wrap;margin:8px 2px 10px}
.kctgchip{font:700 11px var(--sans);color:var(--ink3);background:var(--card,#ffffff08);border:1px solid var(--line);border-radius:13px;padding:6px 12px;cursor:pointer;transition:all .15s}
.kctgchip.act{color:var(--ink);background:#6aa6ff22;border-color:#6aa6ff66}
.kctgbadge{display:inline-block;font:700 10px var(--sans);border-radius:8px;padding:2px 7px;margin-right:6px;vertical-align:middle;border:1px solid transparent}
.kctg-DISCUSSION{color:#7cc7ff;background:#7cc7ff1a;border-color:#7cc7ff44}
.kctg-EVENT{color:#f0b45a;background:#f0b45a1a;border-color:#f0b45a44}
.kctg-LIVE{color:#ff7a8a;background:#ff7a8a1a;border-color:#ff7a8a44}
.kctgrow .mll{display:flex;align-items:center;gap:2px;min-width:0}

/* DEC-008 Creation: Post template row (일반 · 후기·경험 · 가이드 · 비교). Review lives here, not top-level. */
.posttpl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 10px}
.posttpll{font:700 10.5px var(--sans);color:var(--ink3);text-transform:uppercase;letter-spacing:.04em;margin-right:2px}
.posttplchip{font:700 11.5px var(--sans);color:var(--ink3);background:var(--card,#ffffff08);border:1px solid var(--line);border-radius:11px;padding:5px 11px;cursor:pointer;transition:all .15s}
.posttplchip.act{color:var(--ink);background:#6aa6ff22;border-color:#6aa6ff66}

/* WS5 rev: What's New object digest — real content (summary + reaction quotes + participation + route). */
.mcdigest .mcclaims{margin:8px 0 2px}
.mcdigest .mcclaim{font:500 12.5px var(--sans);color:var(--ink2,#c9d2e8);line-height:1.6}
.mcdigest .mcquotes{margin:10px 0 4px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line)}
.mcdigest .mcqh{font:700 10.5px var(--sans);color:var(--ink3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.mcdigest .mcq{font:500 13px var(--sans);color:var(--ink);line-height:1.6;padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.mcdigest .mcq:last-child{border-bottom:0}
.mcdigest .mcqsrc{display:block;font:600 10.5px var(--mono,monospace);color:var(--ink3);margin-top:2px}
.mcdigest .mcpart{font:600 11.5px var(--sans);color:#7cc7ff;margin:8px 0 2px}
.mcdigest .mcmore{margin:12px 0 2px;padding:11px 14px;border-radius:11px;text-align:center;background:#6aa6ff1a;border:1px solid #6aa6ff44;color:#9ec6ff;font:700 12.5px var(--sans);cursor:pointer}

/* ===== Onboarding (텍스트 chip · 이미지 없음 · one-screen accordion) ===== */
.onbwrap{padding:8px 16px 110px}
.onbhead{margin:6px 0 16px}
.onbhead .onbt{font:800 20px var(--sans);letter-spacing:-.02em;color:var(--ink);margin-bottom:6px}
.onbhead .onbd{font:500 12.5px var(--sans);color:var(--ink3)}
.onbsub{font:700 11px var(--mono);color:var(--ink3);letter-spacing:.02em;margin:16px 0 8px}
.onbsub:first-of-type{margin-top:4px}
.onbchips{display:flex;flex-wrap:wrap;gap:8px}
.onbchip{font:700 13px var(--sans);color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:9px 15px;cursor:pointer;transition:border-color .15s,background .15s}
.onbchip:active{transform:scale(.98)}
.onbchip.sel{border-color:var(--mine);background:var(--mine-soft);color:#bfe0ff}
.onbchip .onbx{color:var(--mine-ink);font-size:11px}
.onbsections{margin-top:14px;display:flex;flex-direction:column;gap:14px}
.onbsection{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card)}
.onbsechd{font:700 12px var(--mono);color:var(--ink2);margin-bottom:10px}
.onbtopics{display:flex;flex-wrap:wrap;gap:7px}
.onbtopic{font:600 12.5px var(--sans);color:var(--ink2);background:var(--card2);border:1.5px solid var(--line);border-radius:11px;padding:8px 12px;cursor:pointer;transition:border-color .15s,color .15s}
.onbtopic:active{transform:scale(.98)}
.onbtopic.sel{border-color:var(--mine);color:var(--ink);background:var(--mine-soft)}
.onbtopic .onbtcheck{margin-left:6px;color:var(--mine-ink);opacity:0;font-size:11px}
.onbtopic.sel .onbtcheck{opacity:1}
/* U4-D/D9: onboarding custom interest 자유 입력 */
.onbcustom{display:flex;gap:8px;align-items:center}
.onbcustinput{flex:1;font:600 13px var(--sans);color:var(--ink);background:var(--card2,#141d33);border:1.5px solid var(--line);border-radius:11px;padding:10px 13px;outline:none}
.onbcustinput:focus{border-color:var(--mine,#6aa6ff)}
.onbcustadd{font:700 12px var(--sans);color:#9ec6ff;background:#6aa6ff14;border:1px solid #6aa6ff44;border-radius:11px;padding:10px 15px;cursor:pointer;white-space:nowrap}
.onbcustsug{margin-top:9px}
.onbcustsug-h{font:700 10.5px var(--mono);margin:4px 0 7px;letter-spacing:.2px}
.onbcustsug-h.exact{color:#5ad6a8}.onbcustsug-h.near{color:#e8b04a}
.onbcustsug-chips{display:flex;gap:7px;flex-wrap:wrap}
.onbcustunm{background:#0f1830;border:1px solid #223052;border-radius:11px;padding:11px 13px;margin-top:4px}
.onbcustunmt{font:600 12px var(--sans);color:#c2c7e6;display:block;margin-bottom:8px}
.onbcustreq{font:700 12px var(--sans);color:#b39bff;background:#b39bff14;border:1px solid #b39bff44;border-radius:11px;padding:7px 13px;cursor:pointer;display:inline-block}
.onbnote2{font:500 10.5px/1.5 var(--sans);color:#8890b0;margin-top:8px}
.onbbar{position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;background:linear-gradient(0deg,var(--bg0),var(--bg0) 70%,transparent);border-top:1px solid var(--line)}
.onbskip{font:600 13px var(--sans);color:var(--ink3);cursor:pointer;padding:10px 8px}
.onbnext{flex:1;text-align:center;padding:12px;border-radius:12px;background:var(--mine);color:var(--mine-ink);font:700 13.5px var(--sans);cursor:pointer}
.onbnext.dis{background:#ffffff14;color:var(--ink4);cursor:default}
.onbentry{margin:0 0 12px;padding:11px 13px;border-radius:12px;cursor:pointer;font:600 12.5px var(--sans);color:#bfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line)}
/* X-1: 4-step onboarding — 진행 도트 · 언어 안내 · 이전/건너뛰기 */
.onbsteps{display:flex;gap:7px;margin:2px 0 16px}
.onbdot{width:26px;height:4px;border-radius:999px;background:var(--line)}
.onbdot.on{background:var(--mine)}
.onbdot.done{background:var(--mine-line)}
.onbnote{margin:12px 0 0;padding:10px 12px;border-radius:11px;font:600 12px var(--sans);color:#bfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line);line-height:1.5}
.onbprev{font:600 13px var(--sans);color:var(--ink3);cursor:pointer;padding:10px 8px}
.onbskiprow{position:fixed;left:0;right:0;bottom:56px;max-width:480px;margin:0 auto;text-align:center;pointer-events:none}
.onbskip2{pointer-events:auto;font:600 12px var(--sans);color:var(--ink4);cursor:pointer;padding:6px 10px}
/* X-3: coach marks 오버레이 */
.coachov{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:130;background:rgba(4,7,14,.72);display:none}/* P1: contain within mobile shell */
.coachov.on{display:block}
.coachring{position:absolute;border:2px solid var(--mine);border-radius:16px;box-shadow:0 0 0 4000px rgba(4,7,14,.55);pointer-events:none;transition:all .2s}
.coachtip{position:absolute;left:16px;right:16px;max-width:448px;margin:0 auto;background:var(--card);border:1px solid var(--mine-line);border-radius:16px;padding:15px 16px;box-shadow:0 12px 40px rgba(0,0,0,.5)}
.coachdots{display:flex;gap:6px;margin-bottom:9px}
.coachdots .cdot{width:18px;height:4px;border-radius:999px;background:var(--line)}
.coachdots .cdot.on{background:var(--mine)}
.coachtt{font:800 15px var(--sans);color:var(--ink);margin-bottom:5px}
.coachtx{font:500 12.5px var(--sans);color:var(--ink2);line-height:1.55}
.coachbar{display:flex;align-items:center;justify-content:space-between;margin-top:13px}
.coachskip{font:600 12.5px var(--sans);color:var(--ink4);cursor:pointer;padding:6px 4px}
.coachnext{font:700 13px var(--sans);color:var(--mine-ink);background:var(--mine);padding:10px 20px;border-radius:11px;cursor:pointer}
/* X-4: ask bar node 검색 다이렉트 카드 */
.askdirect{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:11px 13px;border-radius:13px;background:var(--mine-soft);border:1px solid var(--mine-line);cursor:pointer}
.askdirect .adi{font-size:16px}
.askdirect .adm{flex:1;min-width:0}
.askdirect .adt{font:700 13px var(--sans);color:#cfe6ff}
.askdirect .ads{font:500 11px var(--sans);color:var(--ink3);margin-top:1px}
.askdirect .adg{color:var(--mine-ink);font-size:17px}

/* X-6: 담기 대체 카드 투명성 — 타입 칩 + '더 넓게 보기' 소진 카드 */
.c .rectag{font:700 8.5px var(--mono);color:#cde0ff;background:#6aa6ff1e;border:1px solid #6aa6ff44;border-radius:5px;padding:1px 5px;margin-left:4px;white-space:nowrap}
.c.broaden{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px 12px;background:linear-gradient(160deg,#141c2e,#0e1421);border:1px dashed var(--mine-line);border-radius:14px;min-height:118px}
.c.broaden .bwt{font:800 12px var(--sans);color:var(--ink);margin-bottom:5px}
.c.broaden .bws{font:500 10px var(--sans);color:var(--ink3);line-height:1.5;margin-bottom:10px}
.c.broaden .bwbtn{font:700 11px var(--sans);color:var(--mine-ink);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:9px;padding:7px 13px;cursor:pointer}
/* P0-1: Kosmos 관계 라벨(선 금지 · 라벨만) + "여기부터 보기" 진입 */
.c .body .etrel{font:600 9px var(--mono);color:#9db4e0;margin:1px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summ-sheet .tchip.etchip{color:#bcd3ff;border-color:#6aa6ff44;background:#6aa6ff14}
.summ-sheet .sfromhere{margin:11px 0 2px;font:700 12.5px var(--sans);color:#cfe0ff;background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:11px;padding:11px 13px;cursor:pointer;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.summ-sheet .sfromhere .sfh2{font:500 10px var(--mono);color:var(--ink3)}
/* ===== Kosmos focus "왜 가까운가" — on-demand plain text (FAC-WHY, no lines) ===== */
.whyfold{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.whyhd{font:600 11px var(--mono);color:var(--ink2);cursor:pointer;display:flex;align-items:center;justify-content:flex-start;gap:9px}
/* R3(2c): chevron 문구 바로 옆 + 2배 크기 + 빛나는 glow */
.whychev{color:#9ec6ff;font-size:21px;line-height:1;text-shadow:0 0 8px #6aa6ffcc,0 0 14px #6aa6ff77;animation:chevglow 1.8s ease-in-out infinite}
@keyframes chevglow{0%,100%{text-shadow:0 0 6px #6aa6ff99,0 0 10px #6aa6ff55}50%{text-shadow:0 0 13px #6aa6ffee,0 0 22px #6aa6ffaa}}
@media(prefers-reduced-motion:reduce){.whychev{animation:none}}
.whylist{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.whylist[hidden]{display:none}  /* collapse 버그 수정 — display:flex가 [hidden]을 이기던 것(FAB와 동일 트랩) */
.whyrow{font:500 11.5px/1.4 var(--sans);color:var(--ink2);display:flex;gap:7px}
.whyrow b{color:var(--ink);flex:0 0 auto;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whyrow span{color:var(--ink3)}

/* ===== Community Home — Mission (Open Participation) + My Community Loop ===== */
.missionrow{display:flex;align-items:center;gap:10px;padding:10px 11px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px;cursor:pointer}
.missionrow .msi{font-size:17px;flex:0 0 auto}
.missionrow .msm{flex:1;min-width:0}
.missionrow .mst{font:600 13px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.missionrow .mss{font:500 10.5px var(--mono);color:var(--ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.missionrow .msj{flex:0 0 auto;font:700 11px var(--sans);color:var(--mine-ink);background:var(--mine);border-radius:9px;padding:6px 12px}
.mlrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px;cursor:pointer}
.mlrow .mll{font:600 12.5px var(--sans);color:var(--ink)}
.mlrow .mlv{font:600 11px var(--mono);color:var(--ink3)}
.mlrow .mlv.role{color:var(--t-curator)}
.mypodrow .mypodmeta{display:block;font:500 10.5px var(--mono);color:var(--ink3);margin-top:2px}
/* P04 Krew circulation */
.kcact-meta,.kcrc-meta{display:block;font:500 10.5px var(--mono);color:var(--ink3);margin-top:2px}
.kcrail{display:flex;gap:9px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.kcrail-card{flex:0 0 auto;width:150px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px;cursor:pointer}
.kcrc-name{font:700 12.5px var(--sans);color:var(--ink)}
.kcrc-badges{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}
.kcbadge{font:600 9.5px var(--mono);padding:2px 6px;border-radius:6px;background:#ffffff10;color:var(--ink3)}
.kcbadge.joined{background:#2bb98a22;color:#5ad6a8}
.kcbadge.attn{background:#ffb45422;color:#ffcE85}
.kcdisc{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px;margin-bottom:9px;cursor:pointer}
.kcd-name{font:700 13.5px var(--sans);color:var(--ink)}
.kcd-cat,.kcd-kind,.kcm-kind{font:600 9.5px var(--mono);padding:1px 6px;border-radius:6px;background:#ffffff12;color:var(--ink3);margin-left:5px}
.kcd-why{font:500 11.5px var(--sans);color:var(--ink2);margin-top:5px}
.kcd-now{font:600 11.5px var(--sans);color:#ff9a9a;margin-top:6px}
.kcd-made{font:500 11px var(--sans);color:var(--ink2);margin-top:5px}
.kcd-cta,.kch-cta,.kcs-acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.kcbtn{font:700 11.5px var(--sans);padding:7px 13px;border-radius:9px;border:1px solid var(--line);background:#ffffff08;color:var(--ink);cursor:pointer}
.kcbtn.primary{background:var(--accent,#6aa6ff);border-color:transparent;color:#0b1020}
.kcbtn.on{background:#2bb98a22;color:#5ad6a8;border-color:#2bb98a55}
.kcfilters{display:flex;gap:7px;margin-bottom:9px;flex-wrap:wrap}
.kcfchip{font:600 11.5px var(--sans);padding:5px 11px;border-radius:20px;border:1px solid var(--line);color:var(--ink3);cursor:pointer}
.kcfchip.act{background:var(--ink);color:var(--bg,#0c1226);border-color:transparent}
.kchdr{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:11px}
.kch-name{font:800 17px var(--sans);color:var(--ink)}
/* WB(Daniel/KREW-DETAIL-FINAL-IA): 공통 Shell + type-aware 중간탭 */
.kcshell{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:0 12px 4px}
.kcshellcue{margin-top:10px}
.kcshellcue .mlrow{margin-bottom:0}
.kctabbar{display:flex;gap:4px;margin:8px 12px 2px;position:sticky;top:0;z-index:6;background:rgba(12,18,34,.62);backdrop-filter:blur(9px) saturate(1.3);-webkit-backdrop-filter:blur(9px) saturate(1.3);padding:6px 8px;border-radius:12px}
.kctab{flex:1;text-align:center;font:700 12.5px var(--sans);color:var(--ink3);padding:9px 4px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:color .15s,background .15s}
.kctab:active{transform:scale(.96)}
.kctab.act{color:var(--ink);background:#6aa6ff1a;box-shadow:inset 0 -2px 0 #6aa6ff}
.kctabbody{min-height:40vh}
.kch-purpose{font:500 12.5px var(--sans);color:var(--ink2);margin-top:4px}
.kch-meta{font:600 11px var(--mono);color:var(--ink3);margin-top:7px}
.kch-node{color:#8fbaff;cursor:pointer}
.kcmade{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px;margin-bottom:7px;cursor:pointer}
.kcm-t{font:700 12.5px var(--sans);color:var(--ink)}
.kcm-reuse{font:500 10.5px var(--mono);color:var(--ink3);margin-top:4px}
.kcsheet{padding:4px 2px}.kcs-t{font:800 15px var(--sans);color:var(--ink)}
.kcs-prov,.kcs-reuse{font:600 11px var(--mono);color:var(--ink3);margin-top:7px}
.kcs-prov b,.kcs-reuse b{color:#8fbaff}
/* fb(chat, Daniel): Feed 'Krew-made outputs' cards rebuilt to read as real content —
   node-image thumbnail + title + node-specific preview + save/contributor meta; provenance
   demoted to a small chip. Horizontal content-card layout (thumb left, body right). */
.kcfeedcard{display:flex;gap:12px;align-items:stretch;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:10px;margin-bottom:9px;cursor:pointer;overflow:hidden;
  transition:transform .16s cubic-bezier(.34,1.4,.64,1),border-color .2s}
.kcfeedcard:active{transform:scale(.99)}
.kcfeedcard:hover{border-color:color-mix(in srgb,var(--kc,#8b7ff0) 45%,var(--line))}
.kcf-thumb{position:relative;flex:0 0 92px;width:92px;align-self:stretch;min-height:88px;border-radius:10px;overflow:hidden;background:var(--card2,#0f1628)}
.kcf-thumb .kcf-img{width:100%;height:100%;object-fit:cover;display:block}
.kcf-thumb .kcf-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:30px}
.kcf-thumb .kcf-kind{position:absolute;left:6px;bottom:6px;font:700 9px var(--sans);color:#eaf2ff;
  background:color-mix(in srgb,var(--kc,#8b7ff0) 55%,#0a1020);border:1px solid color-mix(in srgb,var(--kc,#8b7ff0) 60%,transparent);
  border-radius:6px;padding:2px 6px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.kcf-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding:1px 2px 1px 0}
.kcf-prov{font:700 10px var(--sans);color:var(--ink3);display:flex;align-items:center;gap:4px}
.kcf-prov .kcf-provi{font-size:11px}
.kcf-prov b{color:color-mix(in srgb,var(--kc,#8b7ff0) 62%,#cfe0ff)}
.kcf-t{font:800 13.5px/1.3 var(--sans);color:var(--ink);margin-top:1px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kcf-desc{font:500 11.5px/1.4 var(--sans);color:var(--ink2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kcf-meta{font:600 10px var(--mono);color:var(--ink3);margin-top:auto;padding-top:3px}
/* R-0 v0.5.1 — 8-카테고리 커뮤니티 seed board */
.sbcat{display:flex;align-items:center;gap:7px;margin:10px 0 5px;font:700 11.5px var(--sans);color:var(--ink2)}
.sbcat .sbdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.sbrow{display:flex;align-items:center;gap:9px;padding:8px 11px;background:var(--card);border:1px solid var(--line);border-radius:11px;margin-bottom:6px;cursor:pointer}
.sbrow .sbi{font-size:15px;flex:0 0 auto}
.sbrow .sbt{flex:1;min-width:0;font:600 12px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbrow .sbk{flex:0 0 auto;font:600 10px var(--mono);color:var(--ink3);border:1px solid var(--line);border-radius:7px;padding:2px 7px}
/* Curator workspace rows */
.currow{display:flex;align-items:center;gap:10px;padding:10px 11px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px;cursor:pointer}
.currow .curtag{flex:0 0 auto;font:700 9.5px var(--mono);padding:3px 8px;border-radius:8px;color:var(--t-sourced);background:var(--t-sourced)18;border:1px solid var(--t-sourced)55}
.currow .curtag.merge{color:var(--t-developing);background:var(--t-developing)18;border-color:var(--t-developing)55}
.currow .curtag.mis{color:var(--mine);background:var(--mine-soft);border-color:var(--mine-line)}
.currow .curm{flex:1;min-width:0}
.currow .curt{font:600 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.currow .curs{font:500 10.5px var(--mono);color:var(--ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.currow .curact{flex:0 0 auto;font:600 11px var(--sans);color:var(--mine)}
.cpost.verlink{cursor:pointer;border:1px solid var(--t-official)44;background:var(--t-official)0c;border-radius:11px;padding:8px}

/* ===== Public Portfolio (PG-PORTFOLIO · Public-Beta) ===== */
.pfhero{display:flex;align-items:center;gap:11px;margin:14px 12px 0;padding:13px;background:var(--card);border:1px solid var(--line);border-radius:16px}
.pfav{flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font:800 19px var(--sans);color:var(--mine-ink);background:linear-gradient(135deg,#37e0c8,#6aa6ff)}
.pfid{flex:1;min-width:0}
.pfnm{font:800 16px var(--sans);letter-spacing:-.02em;color:var(--ink)}
.pfslug{font:600 11px var(--mono);color:var(--ink3);margin-top:2px}
.pfpublic{flex:0 0 auto;font:700 9.5px var(--mono);padding:4px 8px;border-radius:8px;color:var(--t-sourced);background:var(--t-sourced)16;border:1px solid var(--t-sourced)55}
.pfbands{display:flex;flex-wrap:wrap;gap:7px}
/* Y-24: 평판 밴드 가독성 상향 — 칩·라벨 스케일 업(본문 14px·라벨 강조) · 탭 → 설명 시트(하단 캡션 삭제) */
.myreput .pfbands.big{gap:9px;cursor:pointer}
.myreput .pfbands.big .trust{font:700 14px var(--sans);padding:7px 13px 7px 11px;border-radius:11px;gap:7px;letter-spacing:-.01em}
.myreput .pfbands.big .trust .td{width:9px;height:9px}
.repsheetb{padding:2px 2px 8px}
.repsheetb .rsrow{font:500 13.5px/1.55 var(--sans);color:var(--ink2);padding:8px 0;border-top:1px solid var(--line)}
.repsheetb .rsrow:first-child{border-top:0}
.pfitem{display:flex;align-items:center;gap:10px;padding:10px 11px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px}
.pfitem[data-pfgo]{cursor:pointer}
.pfi{flex:0 0 auto;font-size:17px}
.pfm{flex:1;min-width:0}
.pft{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.pft b{font:600 12.5px var(--sans);color:var(--ink)}
.pfk{font:700 8.5px var(--mono);padding:2px 6px;border-radius:6px;color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line)}
.pfu{font:500 10.5px var(--sans);color:var(--ink3);margin-top:3px}
.pfarr{flex:0 0 auto;color:var(--mine);font:600 14px var(--sans)}
.pfcred{display:flex;gap:8px;flex-wrap:wrap}
.pfempty{text-align:center;padding:22px 14px}
.pfempty .pet{font:700 14px var(--sans);color:var(--ink2)}
.pfempty .ped{font:500 11.5px var(--sans);color:var(--ink3);margin-top:6px}
.pfscoperow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px;cursor:pointer}
.pfsl{font:600 12.5px var(--sans);color:var(--ink)}
.pfsw{flex:0 0 auto;width:40px;height:23px;border-radius:12px;background:var(--line2);border:1px solid var(--line);position:relative;transition:background .15s}
.pfsw i{position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--ink3);transition:left .15s,background .15s}
.pfsw.on{background:var(--mine-soft);border-color:var(--mine-line)}
.pfsw.on i{left:19px;background:var(--mine)}
.pflocked{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--card2);border:1px dashed var(--line2);border-radius:12px;margin-bottom:7px;font:500 11px var(--sans);color:var(--ink3)}

/* ===== Contribution state machine (#6 · §8-B/§8-E) ===== */
.statestrip.ok{color:#bdf3df;background:var(--t-sourced)14;border:1px solid var(--t-sourced)44}
.statestrip.ok b{color:var(--t-sourced)}
.statestrip.warn{color:#ffe2a8;background:var(--t-developing)14;border:1px solid var(--t-developing)44}
.statestrip.warn b{color:var(--t-developing)}
.contribform{display:flex;flex-direction:column;gap:9px}
.cfrowi{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.cfik{font:600 10px var(--mono);color:var(--ink3);flex:0 0 auto}
.cfin{flex:1;background:transparent;border:0;color:var(--ink2);font:500 12px var(--sans);outline:none;min-width:0}
.srcbreak{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.srcbreak .r{display:flex;align-items:center;gap:8px;font:500 11px var(--sans);color:var(--ink2)}
.srcbreak .r .bar{flex:1;height:6px;border-radius:4px;background:#ffffff0d;overflow:hidden}
.srcbreak .r .bar i{display:block;height:100%;border-radius:4px}
/* WATCH-01 정성 전환: 정량 bar/% 대신 정성 상태 chip (신호 세기·의견 비중) */
.srcbreak .qlev{flex:none;font:700 10px var(--sans);padding:3px 10px;border:1px solid var(--line);border-radius:8px}
.dmlane .dmband{flex:none;font:700 9.5px var(--mono);padding:4px 11px;border:1px solid var(--line);border-radius:7px;background:#ffffff08}
.poll .opt{margin-bottom:8px}
.poll .ol{display:flex;justify-content:space-between;font:600 11.5px var(--sans);margin-bottom:4px}
.poll .ob{height:8px;border-radius:5px;background:#ffffff0d;overflow:hidden}
.poll .ob i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#6aa6ff,#9b8cff)}
.poll .meta{font:600 9.5px var(--mono);color:var(--ink3);margin-top:8px}
.curator{display:flex;gap:10px;align-items:flex-start}
.curator .av{width:38px;height:38px;border-radius:50%;flex:none;background:linear-gradient(135deg,#f0c14a,#e8964a);display:flex;align-items:center;justify-content:center;font:700 13px var(--sans);color:#2a1c04}
.curator .cn{font:700 12px var(--sans)}.curator .cn b{font-weight:600;color:#f0c14a;font-size:9px;margin-left:5px}
.curator .ct{font:500 11.5px/1.5 var(--sans);color:var(--ink2);margin-top:3px}
.relrow{display:flex;gap:9px;overflow-x:auto;padding-bottom:4px}
.relrow::-webkit-scrollbar{display:none}
.relcard{flex:none;width:130px;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer}
.relcard .ri{height:40px}.relcard .rb{padding:7px 9px}
.relcard .rt{font:700 11.5px var(--sans);margin-bottom:3px}.relcard .rw{font:500 9px/1.3 var(--sans);color:var(--ink3)}
.radar{display:block;margin:0 auto}

/* ---------- FEED ---------- */
.feedhead{padding:2px 2px 12px}
.feedhead .syn{font:600 13px/1.5 var(--sans);color:var(--ink);background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:13px;padding:11px 13px}
.feedhead .syn b{color:#bcd3ff}
.tsec{margin-bottom:20px}
.tsec .th{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.tsec .th .dot{width:9px;height:9px;border-radius:50%;flex:none}
.tsec .th .nm{font:800 15px var(--sans);letter-spacing:-.01em}
.tsec .th .go{margin-left:auto;font:600 9.5px var(--mono);color:var(--ink3);cursor:pointer}
.fcard{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 13px;margin-bottom:9px;cursor:pointer}
/* P3: 풀블리드 미디어 카드(video·image) — 미디어가 카드 전체, 제목·메타·CTA overlay */
/* Y-3: 미디어 원본 비율 — 고정 높이·검은 stub 제거. 이미지가 카드 높이를 정함(자연 비율),
   세로 상한 4:5(≈560px) 초과 시에만 상단 기준 cover(피사체 상단 보존). contain 금지. */
.fcard.media{position:relative;padding:0;overflow:hidden;background:transparent}
.fmediawrap{position:relative}
.fcard.media .fmediafill{position:relative;z-index:0;min-height:180px}
.fcard.media .fmediafill img{position:relative;width:100%;height:auto;max-height:560px;object-fit:cover;object-position:top;display:block}
.fcard.media .fillph{position:absolute;inset:0}
/* R-3-① media placeholder overlay (blank 카드 금지 · representation-over-image) */
.fillph,.c .ph,.summ-sheet .smph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;overflow:hidden}
.mphi{font-size:26px;line-height:1;opacity:.72}
.mphc{font:600 10px var(--mono);color:var(--ink2);opacity:.92;letter-spacing:.02em;position:relative;max-width:88%;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mphc.sm{font-size:9px}
.c .ph .mphi{font-size:19px}
/* Y-38(K-01): 타이포그래픽 노드 카드 — 빈/희미 상태 폐기(당당한 fallback) */
.mphpat{position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0 2px,transparent 2px 10px)}
.mphini{position:relative;font:800 40px/1 var(--mono);color:var(--ink1);opacity:.92;letter-spacing:-.02em}
.mphet{position:absolute;top:8px;right:9px;font-size:13px;line-height:1;opacity:.5}
.c .ph .mphini{font-size:26px}
.fillph .mphini{font-size:52px}
.summ-sheet .smph .mphini{font-size:56px}
/* CR-PUNCH #11(Daniel Visual Review v2 #11): 이모지 아이콘 타일 → 디자인 SVG editorial 모티프(.mphsvg) + 라벨.
   concern/ingredient별 SVG(v5-data _KB_VIZ). ingredient=분자·과학 모티프. */
.mphviz{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:0 8px;text-align:center;max-width:100%}
.mphviz .mphsvg{width:38px;height:38px;color:rgba(255,255,255,.86);filter:drop-shadow(0 1px 5px rgba(0,0,0,.45))}
.mphviz .mphvl{font:700 10px var(--sans);color:var(--ink);opacity:.96;letter-spacing:.01em;max-width:94%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mphviz .mphvl.sm{font-size:9px;font-weight:600}
.mphviz.kb .mphsvg{width:56px;height:56px}   /* §14: K-Beauty editorial visual 무게 격상(라인 아이콘 → editorial) */
.mphviz.kbing .mphsvg{color:#bfe6d6}       /* 성분·재생 = 과학·재생 tint */
.mphviz.kbconcern .mphsvg{color:#eadffb}   /* concern = soft violet tint */
.pghero .pgconcern{position:relative;display:flex;align-items:center;justify-content:center;min-height:150px;border-radius:0}
.pghero .pgconcern .mphviz .mphsvg{width:66px;height:66px}
.pghero .pgconcern .mphviz .mphvl{font-size:14px}
.c .ph .mphviz{gap:3px}
.c .ph .mphviz .mphsvg{width:30px;height:30px}
.c .ph .mphviz .mphvl{font-size:9px;font-weight:600}
.fillph .mphviz .mphsvg{width:58px;height:58px}
.fillph .mphviz .mphvl{font-size:12px}
.summ-sheet .smph .mphviz .mphsvg{width:62px;height:62px}
.summ-sheet .smph .mphviz .mphvl{font-size:13px}
/* R-3-③ video embed stub overlay (no autoplay · close→prev) */
.vstubov{position:absolute;inset:0;z-index:60;display:none;background:#0a0f1fee}
.vstubov.on{display:flex;align-items:center;justify-content:center}
.vstub{width:86%;max-width:340px;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.vstubbar{display:flex;justify-content:flex-end;padding:8px 10px}
.vstubx{cursor:pointer;font-size:16px;color:var(--ink2)}
.vstubframe{margin:0 12px;height:158px;border-radius:12px;background:radial-gradient(120% 130% at 60% 20%,#37e0c855,#0c1226);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.vstubplay{font-size:34px;opacity:.85}
.vstubcap{font:600 11px var(--mono);color:var(--ink2)}
.vstublink{display:block;text-align:center;margin:12px;font:700 12.5px var(--sans);color:var(--mine-ink);background:var(--mine);border-radius:10px;padding:10px;text-decoration:none}
/* item9: 가운데 플레이/열기 버튼만 */
.fcard.media .mcenter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;background:#000a;border:1.6px solid #fff9;color:#fff;cursor:pointer;backdrop-filter:blur(2px)}
.fcard.media .mcenter.vid{width:56px;height:56px;border-radius:50%;font-size:18px}
.fcard.media .mcenter.open{border-radius:999px;padding:12px 20px;font:700 13.5px var(--sans)}
.fcard.media .mcenter:active{transform:translate(-50%,-50%) scale(.95)}
.fcard.media .vdur{position:absolute;right:10px;top:10px;z-index:3;font:600 10px var(--mono);color:#fff;background:#000a;border-radius:6px;padding:3px 6px}
.fcard.media .ftop{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:7px;padding:11px 12px;background:linear-gradient(180deg,#000b,transparent)}
.fcard.media .ftop .ftag{font:700 9px var(--mono);padding:4px 8px;border-radius:7px;border:1px solid}
.fcard.media .ftop .ffresh{margin-left:auto;font:600 9.5px var(--mono);color:#e6edf8}
.fcard.media .fbot{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 13px 13px;background:linear-gradient(0deg,#000e,#000c 50%,transparent)}
.fcard.media .fbtt{font:800 17px/1.2 var(--sans);color:#fff;letter-spacing:-.01em;margin-bottom:5px}
.fcard.media .fbmeta{font:600 11px var(--mono);color:#dbe5f5;margin-bottom:9px}
.fcard.media .fsrc{margin-bottom:10px}
/* item9: 미디어 카드 최소 캡션(제목만, CTA 없음) */
.fcard.media .fbcap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 13px 13px;font:800 15px/1.2 var(--sans);color:#fff;letter-spacing:-.01em;background:linear-gradient(0deg,#000e,#000a 50%,transparent)}
/* item9: 비미디어 in-place 펼치기 */
.compmore{margin-top:9px;font:700 11px var(--sans);color:#9ec6ff;display:flex;align-items:center;gap:5px;cursor:pointer}
.compmore .cmchev{font-size:13px}
.compexp{margin-top:9px}
.compexp[hidden]{display:none}
.expb{background:#ffffff06;border:1px solid var(--line);border-radius:11px;padding:11px 12px;font:500 11.5px/1.5 var(--sans);color:var(--ink2)}
.expb .expt{font:700 9.5px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.expb .exprow{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.expb .exprow:last-child{border-bottom:0}
.expb .expq{padding:5px 0;color:var(--ink2)}
.expb .expnote{font:500 9.5px var(--mono);color:var(--ink4);margin-top:8px}
/* item9: 이미지 라이트박스 */
.medialb{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:200;background:#000e;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px;cursor:zoom-out}/* P1: contain within mobile shell */
.medialb.on{display:flex}
.medialb img{max-width:100%;max-height:78%;object-fit:contain;border-radius:10px}
.medialb .lbcap{color:#fff;font:700 14px var(--sans)}
.fcard .fh{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.fcard .ftag{font:600 8px var(--mono);padding:2px 7px;border-radius:8px;border:1px solid}
.fcard .ffresh{margin-left:auto;font:600 8.5px var(--mono);color:var(--ink3)}
.fcard .ft{font:700 13px/1.3 var(--sans);margin-bottom:5px}
.fcard .fb,.block .fb{font:500 11px/1.45 var(--sans);color:var(--ink2);margin-bottom:8px}
.fcard .fstat{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fcard .kg,.block .kg{font:600 9px var(--mono);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:8px;padding:2px 7px}
.stoppoint{text-align:center;padding:16px;border:1px dashed var(--line2);border-radius:14px;margin:6px 0 4px}
.stoppoint .sp{font:600 12px var(--sans);color:var(--ink2);margin-bottom:9px}
.stoppoint .b{display:inline-block;font:600 11.5px var(--sans);color:#041020;background:#6aa6ff;border-radius:11px;padding:9px 18px;cursor:pointer}

/* ---------- generic stub ---------- */
.stub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink3);padding:0 40px;text-align:center}
.stub h2{font:800 20px var(--sans);color:var(--ink2)}
.stub p{font:500 12px/1.6 var(--sans)}
.empty{padding:40px 20px;text-align:center;color:var(--ink3);font:500 12px/1.6 var(--sans)}

/* ---------- Kosmos top shuffle (small, top — not tray) ---------- */
.kshuffle{margin-left:auto;width:30px;height:30px;border-radius:50%;background:#ffffff0d;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink2);flex:none}
.kshuffle:active{transform:rotate(90deg);transition:transform .3s}
.kshuffle svg{width:15px;height:15px}
.top .row.k2{margin-top:9px}

/* ---------- Contextual Semantic Projection: keyword resolution ---------- */
#kdome.zoom-kw .node .c{width:auto!important;background:#101a33ee;border:1px solid var(--line2);border-radius:13px}
#kdome.zoom-kw .node.mine .c{border-color:#6aa6ff66;background:#10203aee}
#kdome.zoom-kw .node.rec .c{border-style:dashed;border-color:#9b8cff5e}
#kdome.zoom-kw .node .strip,#kdome.zoom-kw .node .img,#kdome.zoom-kw .node .add,#kdome.zoom-kw .node .why,#kdome.zoom-kw .node .foot,#kdome.zoom-kw .node .fresh,#kdome.zoom-kw .node .stt{display:none!important}
#kdome.zoom-kw .node .body{padding:7px 12px!important;display:flex;align-items:center;gap:8px;flex-direction:row}
#kdome.zoom-kw .node .sttl{margin:0}
#kdome.zoom-kw .node .ttl{font:600 12px var(--sans)!important;margin:0!important;white-space:nowrap;max-width:128px;overflow:hidden;text-overflow:ellipsis;line-height:1.1!important;color:var(--nc,var(--ink))}

/* ---------- Contextual Semantic Projection: cluster resolution ---------- */
.clusterlayer{position:absolute;inset:0;z-index:9;display:none}
.clusterlayer.on{display:block}
.cluster{position:absolute;transform:translate(-50%,-50%);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border:1.5px solid;background:#0d162fcc;backdrop-filter:blur(2px);box-shadow:0 10px 30px #0007;transition:transform .25s,opacity .35s;text-align:center;padding:6px}
.cluster:active{transform:translate(-50%,-50%) scale(.94)}
.cluster .cnm{font:800 12.5px var(--sans);letter-spacing:-.01em}
.cluster .cct{font:600 9.5px var(--mono);color:var(--ink2);margin-top:3px}

/* ---------- temp scope chip strip (asK prefill) ---------- */
.node.prev .c{border-color:#6aa6ff;box-shadow:0 0 0 1px #6aa6ff88,0 10px 30px #6aa6ff33}
.node.prev .c::after{content:"";position:absolute;inset:-1px;border-radius:inherit;box-shadow:0 0 16px #6aa6ff55;pointer-events:none}
.scopebar{display:none;gap:6px;margin:0 0 7px;pointer-events:auto;align-items:center;flex-wrap:wrap}
.scopebar.on{display:flex}
.scopebar .sc{font:600 10px var(--mono);color:#bcd3ff;background:#6aa6ff18;border:1px solid #6aa6ff44;border-radius:12px;padding:4px 10px;display:flex;align-items:center;gap:7px}
.scopebar .sc .x{cursor:pointer;color:#9ec6ff;font-size:13px;line-height:1}
.scopebar .hintx{font:600 10px var(--mono);color:var(--ink3)}

/* ---------- asK bar as input + send ---------- */
.ask input{flex:1;background:none;border:none;outline:none;color:var(--ink);font:500 12.5px var(--sans);min-width:0}
.ask input::placeholder{color:var(--ink3)}
.ask .send{width:27px;height:27px;border-radius:50%;background:#6aa6ff;display:none;align-items:center;justify-content:center;color:#041020;font-size:15px;flex:none;cursor:pointer;border:none}
.ask.filled .send{display:flex}
.ask.filled{border-color:#6aa6ff66;background:#0e1838}

/* ---------- asK suggestion rail (below bar, horizontal scroll) ---------- */
.askrail{display:none;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:9px 2px 1px;margin:0;pointer-events:auto;scrollbar-width:none}
.askrail::-webkit-scrollbar{display:none}
.askrail.on{display:flex}
/* P0-9②(D6-35): 제시어 세로 목록 — 이름+종류+행동 병기 */
.askrail{flex-direction:column;align-items:stretch;overflow-x:visible}
.askchip{flex:none;font:600 11.5px var(--sans);color:#cfe0ff;background:#6aa6ff12;border:1px solid #6aa6ff33;border-radius:16px;padding:8px 13px;cursor:pointer;white-space:nowrap}
.askchip:active{transform:scale(.97)}
.askchip .mg2{color:var(--mine);margin-right:4px}
.askchip.col{white-space:normal;border-radius:13px;padding:9px 13px;display:flex;flex-direction:column;gap:3px}
.askchip.col .acq{font:600 12.5px var(--sans);color:#e6efff}
.askchip.col .acmeta{font:600 10px var(--sans);color:var(--ink3)}
.askchip.col .acn{color:#9ec6ff}
.askchip.col .aca{color:var(--mine)}

/* ---------- transient Answer Card (over Kosmos) ---------- */
.acard{position:absolute;left:14px;right:14px;top:88px;z-index:96;background:linear-gradient(180deg,#16213d,#0e1428);border:1px solid var(--line2);border-radius:18px;padding:15px 15px 14px;display:none;box-shadow:0 18px 52px #000c;animation:acin .32s cubic-bezier(.22,1,.36,1)}
.acard.on{display:block}
@keyframes acin{from{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}
.acard .aq{font:600 10px var(--mono);color:var(--ink3);margin-bottom:8px;display:flex;align-items:center;gap:7px}
.acard .aq .acx{margin-left:auto;cursor:pointer;color:var(--ink3);font-size:16px;line-height:1}
.acard .aans{font:700 15px/1.42 var(--sans);margin-bottom:10px}
.acard .atrust{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
.acard .arel{font:600 9px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin:11px 0 6px}
.acard .arelrow{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.acard .arelchip{font:600 10.5px var(--sans);color:#bcd3ff;background:#6aa6ff14;border:1px solid #6aa6ff38;border-radius:12px;padding:5px 10px;cursor:pointer}
.acard .aexpand{width:100%;text-align:center;font:700 12px var(--sans);color:#041020;background:#6aa6ff;border-radius:12px;padding:12px;cursor:pointer;border:none}
/* asK Direct Answer 4블록 (P2 · Beat 1) */
.acard .acontested{font:600 11px var(--sans);color:#ffd9b0;background:var(--t-denied)14;border:1px solid var(--t-denied)44;border-radius:9px;padding:7px 10px;margin-bottom:10px}
.acard .acontested.lowc{color:#ffe2a8;background:var(--t-developing)14;border-color:var(--t-developing)44}
.acard .ablock{padding:9px 0;border-top:1px solid var(--line)}
.acard .ablock:first-of-type{border-top:0;padding-top:2px}
.acard .abl{font:700 9px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.acard .abt{font:500 13px/1.45 var(--sans);color:var(--ink)}
.acard .abt b{color:var(--t-official)}
.acard .alink{display:inline-block;margin-top:8px;font:600 11.5px var(--sans);color:var(--mine);cursor:pointer}
.acard .acta-rail{display:flex;gap:7px;flex-wrap:wrap}
.acard .acta{font:600 11.5px var(--sans);color:var(--ink);background:#ffffff10;border:1px solid var(--line2);border-radius:11px;padding:8px 12px;cursor:pointer}
.acard .acta:last-child{background:var(--mine);color:var(--mine-ink);border-color:var(--mine)}
/* asK Loading (ST-LOADING) — skeleton (reduced-motion 시 정적) */
.acard .askeleton{display:flex;flex-direction:column;gap:9px;margin:8px 0 10px}
.acard .skl{height:13px;border-radius:7px;background:linear-gradient(90deg,#ffffff0e,#ffffff20,#ffffff0e);background-size:200% 100%;animation:sklsh 1.1s linear infinite}
.acard .skl.s1{width:72%}.acard .skl.s2{width:96%}.acard .skl.s3{width:54%}.acard .skl.s4{width:84%}
.acard .aloadnote{font:500 11px var(--sans);color:var(--ink3)}
@keyframes sklsh{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.acard .skl{animation:none}}
/* P0-4: answer page(직행) — 4블록·스켈레톤을 페이지에서 렌더(.acard 스타일 재사용) */
#ansBody .aq2{font:700 12px var(--mono);color:#9ec6ff;margin:10px 0 12px;display:flex;gap:7px}
#ansBody .acontested{font:600 11.5px var(--sans);color:#ffd9b0;background:var(--t-denied)14;border:1px solid var(--t-denied)44;border-radius:9px;padding:9px 11px;margin-bottom:11px}
#ansBody .acontested.lowc{color:#efc34a;background:#efc34a14;border-color:#efc34a44}
#ansBody .ablock{padding:11px 0;border-top:1px solid var(--line)}
#ansBody .ablock:first-of-type{border-top:0;padding-top:2px}
#ansBody .abl{font:700 9px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
#ansBody .abt{font:600 13.5px/1.5 var(--sans);color:var(--ink)}
#ansBody .abt b{color:var(--t-official)}
#ansBody .atrust{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
#ansBody .alink{display:inline-block;margin-top:8px;font:700 11.5px var(--sans);color:#9ec6ff;cursor:pointer}
#ansBody .acta-rail{display:flex;gap:7px;flex-wrap:wrap}
#ansBody .acta{font:600 12px var(--sans);color:var(--ink);background:#ffffff10;border:1px solid var(--line2);border-radius:11px;padding:9px 13px;cursor:pointer}
#ansBody .acta:last-child{background:var(--mine);color:var(--mine-ink);border-color:var(--mine)}
/* D-ASK-CTA-01: 조건부 커뮤니티 요청 사유 한 줄(왜 커뮤니티 의견이 도움 되는지) */
#ansBody .actawhy{font:500 11px var(--sans);color:#e25c8a;margin:6px 2px 0;line-height:1.4}
#ansBody .askeleton{display:flex;flex-direction:column;gap:9px;margin:8px 0 10px}
#ansBody .skl{height:13px;border-radius:7px;background:linear-gradient(90deg,#ffffff0e,#ffffff20,#ffffff0e);background-size:200% 100%;animation:sklsh 1.1s linear infinite}
#ansBody .skl.s1{width:72%}#ansBody .skl.s2{width:96%}#ansBody .skl.s3{width:54%}#ansBody .skl.s4{width:84%}
@media (prefers-reduced-motion:reduce){#ansBody .skl{animation:none}}
#ansBody .aloadnote{font:500 11px var(--sans);color:var(--ink3)}
#ansBody .ansrel{margin-top:15px}
#ansBody .ansrel .ansrelh{font:700 10px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}

/* ===== Accessibility: 전역 reduced-motion 존중 (Hard Invariant) ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
:focus-visible{outline:2px solid var(--mine);outline-offset:2px}

/* ---------- Undo toast ---------- */
/* undo는 tray(별 효과) 위로 충분히 띄워 star sparkle과 미충돌(C: D-04) */
.undo{position:absolute;left:50%;transform:translateX(-50%) translateY(12px);bottom:212px;z-index:110;background:#161f3a;border:1px solid var(--line2);border-radius:13px;padding:9px 11px 9px 14px;display:flex;align-items:center;gap:13px;box-shadow:0 12px 32px #000b;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.undo.on{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.undo .ut{font:600 11.5px var(--sans);color:var(--ink)}
.undo .ut b{color:#bcd3ff;font-weight:800}
.undo .ub{font:700 11.5px var(--sans);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:9px;padding:6px 12px;cursor:pointer}

/* ---------- Top Tabs (lens bar) + scope line ---------- */
.pagehdr{flex:none;background:linear-gradient(180deg,var(--bg1),#0b1120);border-bottom:1px solid var(--line);padding:12px 12px 0;position:relative;z-index:30}
.pagehdr .hrow{display:flex;align-items:center;gap:9px;padding-bottom:10px}
.pagehdr .hback{width:30px;height:30px;border-radius:50%;background:#ffffff0d;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;flex:none;color:var(--ink)}
/* v4-fb(chat): page-header title unified to the SANS font (was --mono → pixel/mono look), matching
   the message-center header (.chtt) and the rest of the app. */
.pagehdr .hscope{font:800 15px var(--sans);color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pagehdr .hscope b{color:#bcd3ff;font-weight:700}
.toptabs{display:flex;gap:2px}
.toptab{flex:1;text-align:center;font:600 12.5px var(--sans);color:var(--ink3);padding:10px 4px;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s}
.toptab.act{color:var(--ink);border-bottom-color:var(--mine)}

/* lens content: 흐름 (time-axis stream) AI summary head */
.lensbody{padding:14px 13px 26px}
.lenssum{font:600 13px/1.5 var(--sans);color:var(--ink);background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:13px;padding:12px 13px;margin-bottom:12px}
.lenssum .lk{font:700 9px var(--mono);color:#9ec6ff;text-transform:uppercase;letter-spacing:.07em;display:block;margin-bottom:5px}
.lenssum b{color:#bcd3ff}

/* Combined Overview (why-grouped) */
.combwhy{font:600 13.5px/1.5 var(--sans);color:var(--ink);margin-bottom:4px}
.combsub{font:500 11.5px/1.55 var(--sans);color:var(--ink2);margin-bottom:13px}
.rolecard{display:flex;gap:11px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 12px;margin-bottom:8px;cursor:pointer}
.rolecard .rdot{width:34px;height:34px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;font:800 13px var(--sans);color:#06121f}
.rolecard .rmid{flex:1;min-width:0}
.rolecard .rt2{font:700 12.5px var(--sans);margin-bottom:2px}
.rolecard .rr{font:500 10.5px/1.4 var(--sans);color:var(--ink2)}
.rolecard .rwt{font:600 9px var(--mono);color:var(--ink3);flex:none}
/* P1-2: Community 살아있음 신호 — 활동 온도·보는 중·방금 갱신 */
.clive{margin:10px 12px 0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font:600 11px var(--mono);color:var(--ink2);background:#e8704a10;border:1px solid #e8704a2e;border-radius:10px;padding:9px 12px}
.clive b{color:#e8a04a}
.clive .clts{color:#5ad6a8;margin-left:auto}
.dthread .dfresh{font:800 8.5px var(--mono);color:#041020;background:#5ad6a8;border-radius:5px;padding:2px 6px;vertical-align:middle}
/* P0-6: 검증 본문에 개방한 Raw 반응 lane (본문과 시각 분리) */
.vcomments{margin:16px 12px 0;background:#e8704a08;border:1px solid #e8704a2e;border-top:2px solid #e8704a66;border-radius:0 0 14px 14px;padding:13px}
.vcomments .vch{display:flex;align-items:baseline;gap:9px;margin-bottom:11px;flex-wrap:wrap}
.vcomments .vclane{font:800 10px var(--mono);color:#e8a04a;background:#e8704a1c;border:1px solid #e8704a55;border-radius:7px;padding:3px 9px}
.vcomments .vcnote{font:500 10px var(--mono);color:var(--ink3)}
.vcrow{display:flex;gap:9px;margin-bottom:9px}
.vcrow .vcav{width:28px;height:28px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:700 11px var(--sans);color:#06121f}
.vcrow .vcm{flex:1;min-width:0}
.vcrow .vcu{font:600 10px var(--mono);color:var(--ink3)}
.vcrow .vct{font:500 12.5px/1.45 var(--sans);color:var(--ink);margin:2px 0}
.vcrow .vcmeta{font:600 9.5px var(--mono);color:var(--ink4)}
.vcinput{display:flex;align-items:center;gap:9px;margin:11px 0 9px;background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:10px 12px}
.vcinput .vci{flex:1;font:500 11.5px var(--sans);color:var(--ink4)}
.vcinput .vcfix{font:700 10px var(--sans);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:8px;padding:6px 10px;cursor:pointer;white-space:nowrap}
/* N16: Chat sample(Krew 그룹 채팅·fan DM) — 단일 overlay */
.chatov{position:fixed;inset:0;z-index:210;background:var(--bg0);display:none;flex-direction:column;max-width:480px;margin:0 auto}
.chatov.on{display:flex}
.chatov .chdr{display:flex;align-items:center;gap:10px;padding:14px 14px 11px;border-bottom:1px solid var(--line);flex:none}
.chatov .chx{font-size:19px;color:var(--ink);cursor:pointer;width:28px;text-align:center;flex:none}
.chatov .chtt{font:800 15px var(--sans);color:var(--ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chatov .chsub{font:600 9px var(--mono);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:6px;padding:3px 8px;flex:none}
.chatov .chmenu{font-size:19px;color:var(--ink2);cursor:pointer;flex:none;width:28px;text-align:center}
.chatov .cbav{width:32px;height:32px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#06121f}
.chatov .cbav.sm{width:28px;height:28px;font-size:11px}
.chnotice{margin:10px 12px 0;font:600 10.5px/1.5 var(--mono);color:var(--ink2);background:#efc34a12;border:1px solid #efc34a3a;border-radius:10px;padding:9px 11px;cursor:pointer}
.chnotice b{color:#efc34a}.chnotice .chnl{color:#9ec6ff;display:block;margin-top:3px}
.chbody{flex:1;overflow-y:auto;padding:12px}
.cbrow{display:flex;gap:9px;margin-bottom:12px;align-items:flex-start}
.cbrow.me{flex-direction:row-reverse}
.cbrow .cbwrap{max-width:78%;min-width:0}
.cbrow.me .cbwrap{align-items:flex-end;display:flex;flex-direction:column}
.cbrow .cbu{font:600 9.5px var(--mono);color:var(--ink3);margin-bottom:3px}
.cbrow .cbbub{position:relative;font:500 13px/1.45 var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:13px;padding:9px 12px;overflow-wrap:anywhere}
.cbrow.me .cbbub{background:#6aa6ff22;border-color:#6aa6ff44;color:#eaf1ff}
.cbrow .cbrep{margin-left:8px;color:var(--ink4);cursor:pointer;font-size:11px}
.cbtrans{font:600 9.5px var(--mono);color:var(--ink3);margin-top:4px}
.cbtrans .cbtl{color:#b3a6ec;cursor:pointer}
.cbtrans .cborig{color:var(--ink2)}
.chinput{flex:none;display:flex;gap:8px;padding:11px 12px;border-top:1px solid var(--line);background:var(--bg0)}
.chinput input{flex:1;min-width:0;background:var(--card);border:1px solid var(--line2);border-radius:12px;padding:11px 13px;color:var(--ink);font:500 13px var(--sans)}
.chinput input:focus{outline:none;border-color:var(--mine-line)}
.chinput .chsend{flex:none;font:700 12.5px var(--sans);color:#041020;background:var(--mine);border-radius:12px;padding:11px 16px;cursor:pointer}
/* CR2-F06(D11-13): Question = 스레드 오버레이(채팅 아님) + 출처/파일 첨부 답글 composer */
.qthreadov{position:fixed;inset:0;z-index:210;background:var(--bg0);display:none;flex-direction:column;max-width:480px;margin:0 auto}
.qthreadov.on{display:flex}
.qthreadov .chdr{display:flex;align-items:center;gap:10px;padding:14px 14px 11px;border-bottom:1px solid var(--line);flex:none}
.qthreadov .chx{font-size:19px;color:var(--ink);cursor:pointer;width:28px;text-align:center;flex:none}
.qthreadov .chtt{font:800 15px var(--sans);color:var(--ink);flex:1;min-width:0}
.qthbody{flex:1;overflow-y:auto;padding:12px}
.qthposts{margin-top:6px}
.qthposts .cpost{display:flex;gap:9px;padding:10px 0;border-top:1px solid var(--line)}
.qthposts .cpost .cav{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#06121f}
.qthposts .cpost .cpb{flex:1;min-width:0}
.qthposts .cpost .cu{font:600 9.5px var(--mono);color:var(--ink3);margin-bottom:3px}
.qthposts .cpost .ctext{font:500 13px/1.45 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.qthposts .cpost .cmeta{font:600 10px var(--sans);color:#9ec6ff;margin-top:4px}
.qthreply{flex:none;border-top:1px solid var(--line);background:var(--bg0);padding:9px 12px}
.qthratts{display:flex;flex-wrap:wrap;gap:6px}
.qthratts:not(:empty){margin-bottom:7px}
.qthchip{font:600 10px var(--sans);color:#cfe0ff;background:#6aa6ff1c;border:1px solid #6aa6ff40;border-radius:7px;padding:3px 8px}
.qthchip b{cursor:pointer;color:var(--ink3);margin-left:3px}
.qthsrcin{display:flex;gap:5px;align-items:center;flex:1}
.qthsrcin input{flex:1;background:#0c1226;border:1px solid var(--line2);border-radius:8px;padding:6px 9px;color:var(--ink);font:500 12px var(--sans)}
.qthsrcin b{cursor:pointer;color:#9ec6ff;font:700 11px var(--sans)}
.qthrrow{display:flex;gap:7px;align-items:center}
.qthrrow #qIn{flex:1;min-width:0;background:#0c1226;border:1px solid var(--line2);border-radius:10px;padding:9px 11px;color:var(--ink);font:500 12.5px var(--sans)}
.qthatt{font:700 11px var(--sans);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line2);border-radius:9px;padding:8px 9px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}
.qthsend{font:800 12px var(--sans);color:#0c1226;background:#6aa6ff;border-radius:10px;padding:9px 14px;cursor:pointer;white-space:nowrap}
.chlock,.chintro{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 26px;gap:9px}
.chlock .chli,.chintro .chii{font-size:38px}
.chlock .chlt,.chintro .chit{font:800 16px var(--sans);color:var(--ink)}
.chlock .chld{font:500 12.5px/1.6 var(--sans);color:var(--ink3);max-width:280px}
.chlock .chlb,.chintro .chib{margin-top:6px;font:700 13px var(--sans);color:#041020;background:var(--mine);border-radius:12px;padding:12px 20px;cursor:pointer}
.chintro{justify-content:flex-start;padding-top:34px}
.chintro .chirow{font:500 12.5px/1.6 var(--sans);color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:11px;padding:12px 14px;text-align:left;width:100%;max-width:340px}
.chintro .chirow b{color:var(--ink)}
.dmrow{display:flex;align-items:center;gap:11px;padding:12px;border-bottom:1px solid var(--line);cursor:pointer}
.dmrow .dmm{flex:1;min-width:0}
.dmrow .dmn{font:700 13.5px var(--sans);color:var(--ink)}
.dmrow .dmp{font:500 11px var(--sans);color:var(--ink3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dmrow .dmw{font:600 9.5px var(--mono);color:var(--ink4);flex:none}
.chsheet{position:absolute;inset:0;z-index:5;background:#0009;display:flex;align-items:flex-end}
.chsheet[hidden]{display:none}  /* [hidden]이 display:flex를 이기도록(FAB·whylist와 동일 트랩) */
.chsheet .chsh{width:100%;background:var(--card);border-top:1px solid var(--line2);border-radius:18px 18px 0 0;padding:8px}
.chsheet .chsr{padding:14px;text-align:center;font:600 14px var(--sans);color:var(--ink);border-radius:12px;cursor:pointer}
.chsheet .chsr:active{background:#ffffff0a}
.chsheet .chsrs{display:block;font:600 9px var(--sans);color:var(--ink4);margin-top:2px}
.chsheet .chsq{padding:9px 12px 4px;text-align:center;font:600 10px var(--sans);color:var(--ink4);border-bottom:1px solid var(--line);margin-bottom:4px}
.chsheet .chsq b{color:var(--ink2)}
.chsheet .chconsent{padding:10px 13px 12px;font:500 12px/1.6 var(--sans);color:var(--ink2);text-align:left}
.chsheet .chconsent b{color:var(--ink)}
.chsheet .chsr.primary{color:#5ad6a8;font-weight:800}
/* P1-5 보강: 채팅→스레드 인용 블록(원문·작성자 표시 보존) */
.composequote{margin:11px 12px 0;background:#6aa6ff0e;border:1px solid #6aa6ff33;border-left:3px solid #6aa6ff;border-radius:12px;padding:11px 12px}
.composequote .cqh{font:700 11px var(--sans);color:#9ec6ff;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.composequote .cqa{font:600 8px var(--mono);color:var(--ink3);border:1px solid var(--line2);border-radius:6px;padding:2px 5px}
.composequote .cqbody{margin-top:7px;font:600 10px var(--sans);color:var(--ink4)}
.composequote .cqauth{color:var(--ink2);font-weight:700}
.composequote .cqtext{margin-top:4px;font:500 12px/1.5 var(--sans);color:var(--ink)}
.composequote .cqnote{margin-top:8px;font:500 9px var(--sans);color:var(--ink4)}
/* P1-3: swipeable 단계 카드 deck(사용자 swipe만·자동 넘김 없음) + 접근성 세로 리스트 */
.swipeprev{border-color:#9b8cff3a!important;background:linear-gradient(135deg,#1c1a3c,#131a2e)!important}
.swipeoverlay{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:200;background:#0a0e18f2;display:none;flex-direction:column}/* P1: contain within mobile shell */
.swipeoverlay.on{display:flex}
.swipeoverlay .swtop{display:flex;align-items:center;gap:10px;padding:16px 16px 10px}
.swipeoverlay .swtitle{font:800 16px var(--sans);color:#fff;flex:1;min-width:0}
.swipeoverlay .swlist{font:700 12px var(--sans);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:9px;padding:7px 11px;cursor:pointer;flex:none}
.swipeoverlay .swx{font-size:20px;color:#fff;cursor:pointer;flex:none;width:32px;text-align:center}
.swframes{flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.swframes::-webkit-scrollbar{display:none}
.swframe{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;padding:0 16px}
.swframe .swimg{position:relative;flex:1;border-radius:16px;overflow:hidden;min-height:0}
.swframe .swimg .swstep{position:absolute;top:12px;right:12px;font:700 11px var(--mono);color:#fff;background:#000a;border-radius:7px;padding:4px 9px}
.swframe .swcap{padding:14px 2px 6px}
.swframe .swct{font:800 17px var(--sans);color:#fff;letter-spacing:-.01em}
.swframe .swcb{font:500 13px/1.5 var(--sans);color:#c3cee0;margin-top:6px}
.swframe .swhint{display:inline-block;margin-top:11px;font:600 11px var(--mono);color:var(--ink3)}
.swframe .swb,.swvlist .swb{display:inline-block;margin-top:11px;font:700 12.5px var(--sans);color:#041020;background:var(--mine);border-radius:11px;padding:11px 16px;cursor:pointer}
.swdots{display:flex;gap:7px;justify-content:center;padding:14px}
.swdots .swdot{width:7px;height:7px;border-radius:50%;background:#ffffff2e;cursor:pointer;transition:all .2s}
.swdots .swdot.act{background:#9ec6ff;width:20px;border-radius:4px}
.swvlist{padding:6px 16px 20px;overflow-y:auto}
.swvlist .swvh{font:700 11px var(--mono);color:var(--ink3);margin:6px 0 12px}
.swvlist .swvrow{display:flex;gap:11px;margin-bottom:12px}
.swvlist .swvn{width:26px;height:26px;border-radius:50%;flex:none;background:#6aa6ff22;color:#9ec6ff;display:flex;align-items:center;justify-content:center;font:800 12px var(--mono)}
.swvlist .swvm b{font:700 13px var(--sans);color:#fff}
.swvlist .swvb{font:500 12px/1.5 var(--sans);color:#c3cee0;margin-top:3px}
/* P0-3 분배: Pulse Ranking preview 카드 */
.rankprev{display:flex;align-items:center;gap:11px;margin:9px 12px;background:linear-gradient(135deg,#1e1a3a,#141d30);border:1px solid #9b8cff3a;border-radius:13px;padding:12px 13px;cursor:pointer}
.rankprev .rpi{font-size:19px;flex:none}
.rankprev .rpm{flex:1;min-width:0}
.rankprev .rpt{font:700 13px var(--sans);color:var(--ink)}
.rankprev .rps{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
.rankprev .rpgo{color:var(--ink3);flex:none}
/* P0-3: 카테고리 노드 Ranking 탭 (의견 분포 · 사실 아님 · Trust chip 없음) */
.rankhead{margin:12px 0 10px}
.rankhead .rkt{font:800 15px var(--sans);color:var(--ink);letter-spacing:-.01em}
.rankhead .rkbasis{font:600 10.5px var(--mono);color:#e8a04a;margin-top:6px;background:#e8704a12;border:1px solid #e8704a33;border-radius:9px;padding:8px 10px}
.rankaxes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:7px}
.rankaxes .rkax{font:700 12px var(--sans);color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer}
.rankaxes .rkax.act{color:#041020;background:var(--mine);border-color:var(--mine)}
.rankscope{display:flex;gap:6px;margin-bottom:12px}
.rankscope .rksc{font:600 10.5px var(--mono);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer}
.rankscope .rksc.act{color:#9ec6ff;background:#6aa6ff1c;border-color:#6aa6ff55}
.ranklist{display:flex;flex-direction:column;gap:6px}
.rkrow2{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer}
.rkrow2 .rkn2{font:800 14px var(--mono);color:var(--ink3);width:20px;text-align:center;flex:none}
.rkrow2 .rkav{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#06121f}
.rkrow2 .rkname{font:700 13px var(--sans);color:var(--ink);flex:none;min-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rkrow2 .rkbar{flex:1;height:7px;border-radius:4px;background:#ffffff10;overflow:hidden}
.rkrow2 .rkbar i{display:block;height:100%;background:linear-gradient(90deg,#9b8cff,#6aa6ff);border-radius:4px}
.rkrow2 .rkpct{font:700 11px var(--mono);color:var(--ink2);flex:none;width:36px;text-align:right}
.rkrow2 .rkpct small{font-size:8.5px;font-weight:600;color:var(--ink3);margin-left:1px}
/* RNK-03(§8.3): contextual ranking 계약 필드 — 질문·출처/표본/기간/광고 · 후보별 왜 */
.rankhead .rkq{font:700 12px var(--sans);color:var(--ink2);margin:5px 0 2px;line-height:1.45}
.rankhead .rkcontract{font:600 10px var(--mono);color:var(--ink3);margin-top:6px;line-height:1.55}
.rkrow2 .rknamewrap{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.rkrow2 .rknamewrap .rkname{flex:none;min-width:0;white-space:normal}
.rkrow2 .rkwhy{font:600 9.5px var(--sans);color:var(--ink3);line-height:1.4}
.rkrow2 .rknamewrap+.rkbar{flex:0 0 60px}   /* namewrap가 flex:1을 가지므로 bar는 고정폭으로 유지 */
.rankfoot{margin-top:13px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rankfoot .rkfnote{flex:1;font:500 9.5px/1.5 var(--mono);color:var(--ink3)}
.rankfoot .b{font:700 11px var(--sans);color:#041020;background:var(--mine);border-radius:10px;padding:9px 14px;cursor:pointer;flex:none}
/* RK-2: ranKING 이원 축 (ⓐ 팬 의견 / ⓑ 실사용 검증) 시각 구분 */
.rankseries{display:flex;gap:8px;margin:10px 0 12px}
.rankseries .rksrs{flex:1;text-align:center;font:800 12.5px var(--sans);color:var(--ink3);background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px 8px;cursor:pointer}
.rankseries .rksrs.act.opinion{color:#cdb24a;background:#cdb24a1c;border-color:#cdb24a66}
.rankseries .rksrs.act.verified{color:#5ad6a8;background:#2dd4a81c;border-color:#2dd4a866}
.rksl{font:800 9px var(--mono);letter-spacing:.04em;border-radius:6px;padding:2px 6px;vertical-align:middle}
.rksl.op{color:#cdb24a;background:#cdb24a1c;border:1px solid #cdb24a55}
.rksl.vf{color:#5ad6a8;background:#2dd4a81c;border:1px solid #2dd4a855}
.rankhead.vf .rkbasis.vf{color:#5ad6a8;background:#2dd4a812;border-color:#2dd4a833}
.rkbtoggle{color:var(--ink3);text-decoration:underline;cursor:pointer;font-weight:700}
.rkbasisnote{font:500 10.5px/1.6 var(--mono);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:9px 11px;margin:8px 0 2px}
.ranklist.vf .rkrow2{cursor:pointer}
.rkrow2 .rkname.wide{flex:1;min-width:0;white-space:normal}
.rkvbadge{font:800 10.5px var(--mono);color:#5ad6a8;background:#2dd4a814;border:1px solid #2dd4a844;border-radius:8px;padding:5px 9px;flex:none;white-space:nowrap}
/* RK-4 볼륨 UI: ① 스와이프 chip rail ② dropdown ③ search bar(12+ 축) */
.rankaxwrap{margin-bottom:8px}
.rankaxrow{display:flex;align-items:center;gap:8px}
.rankaxrail{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:3px;flex:1;min-width:0}
.rankaxrail::-webkit-scrollbar{height:4px}
.rankaxrail::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}
.rankaxrail .rkax{flex:none;scroll-snap-align:start}
.rkax.saved{border-color:var(--mine);color:var(--mine)}
.rkax.act.saved{color:#041020;background:var(--mine)}
.rankaxdd{flex:none;max-width:132px;font:700 11px var(--sans);color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 9px;cursor:pointer}
.rankaxsearch{width:100%;box-sizing:border-box;font:600 12px var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:9px 12px;margin-bottom:7px}
/* RK-0: seed 검증 콘텐츠 카드 (Trust 계층 sample — 비인터랙티브 info) */
.seedcards{display:flex;flex-direction:column;gap:8px}
.seedcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.seedcard .scr{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:7px}
.seedcard .sctl{font:800 9.5px var(--mono);letter-spacing:.04em;color:var(--ink3);background:#ffffff0c;border:1px solid var(--line);border-radius:6px;padding:3px 7px}
.seedcard .scb{font:500 12px/1.55 var(--sans);color:var(--ink2)}
/* RK-0: My 내 검증 글 리스트 */
.myseed .msrow{display:flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:6px}
.myseed .mstl{font:800 9px var(--mono);letter-spacing:.04em;color:var(--ink3);background:#ffffff0c;border:1px solid var(--line);border-radius:6px;padding:3px 6px;flex:none}
.myseed .mst{font:500 11.5px var(--sans);color:var(--ink2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* P0-2: 담은 조합 Overview = 정리본(digest) */
.digsec{margin:12px 0 4px}
.digsec .digh{font:700 10px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.digrow{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:7px;cursor:pointer}
.digrow .digdot{width:9px;height:9px;border-radius:50%;flex:none}
.digrow .digm{flex:1;min-width:0}
.digrow .digt{font:700 13px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.digrow .digs{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
.digrow .diggo{color:var(--ink3);flex:none}
.digfact{background:#ffffff06;border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:6px;font:500 11.5px/1.5 var(--sans);color:var(--ink2)}
.digfact b{color:var(--ink)}
.digfact .digftag{font:700 8.5px var(--mono);border-radius:6px;padding:2px 6px;margin-right:7px}
.digfact .digftag.ver{color:#5ad6a8;background:#2dd4a81c;border:1px solid #2dd4a844}
.digfact .digftag.raw{color:#e8a04a;background:#e8704a1c;border:1px solid #e8704a44}
/* V-1: Tray Overview 교차 콘텐츠 카드 — 오늘 바뀐 것 · 교차 발견 */
.cdgrow{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:7px;cursor:pointer}
.cdgrow .cdgtag{font:700 9px var(--mono);border:1px solid;border-radius:6px;padding:3px 7px;flex:none}
.cdgrow .cdgt{flex:1;min-width:0;font:500 12px/1.5 var(--sans);color:var(--ink2);overflow:hidden}
.cdgrow .cdgt b{color:var(--ink)}
.cdgrow .diggo{color:var(--ink3);flex:none}
.xcard{background:linear-gradient(135deg,#1a1f3a,#141d30);border:1px solid #6aa6ff3a;border-radius:13px;padding:12px 13px;cursor:pointer}
.xcard .xct{font:800 13.5px var(--sans);color:var(--ink)}
.xcard .xct .xx{color:#6aa6ff;margin:0 3px}
.xcard .xcb{font:500 11px/1.55 var(--mono);color:var(--ink2);margin-top:6px}
/* V-7·V-12①: 피드 비주얼 render (CSS/SVG) */
.vtl{display:flex;align-items:center;gap:0;margin:2px 0 4px}
.vtl .vtlnode{display:flex;flex-direction:column;align-items:center;gap:4px;font:600 9px var(--mono);color:var(--ink3);flex:none}
.vtl .vtlnode i{width:11px;height:11px;border-radius:50%}
.vtl .vtlseg{flex:1;height:2px;background:linear-gradient(90deg,#ffffff33,#ffffff14)}
.vhist{display:flex;align-items:flex-end;gap:6px;height:60px;padding:4px 0}
.vhist i{flex:1;border-radius:3px 3px 0 0;opacity:.85;min-height:4px}
.vvenn{width:132px;height:62px;display:block;margin:2px auto 4px}
.vcmp{display:flex;flex-direction:column;gap:5px}
.vcmp .vcmpr{display:flex;align-items:center;gap:8px}
.vcmp .vcmpr.hd .kg{background:#ffffff10}
.vcmp .vcmpk{flex:none;width:56px;font:600 10.5px var(--mono);color:var(--ink3)}
.vcmp .vcmpr .kg{flex:1;text-align:center}
.vcons{display:flex;flex-direction:column;gap:6px}
.vcons .vconshd{font:700 12px var(--sans);color:var(--ink);margin-bottom:2px}
.vcons .vconsl{display:flex;align-items:center;gap:8px}
.vcons .vconsk{font:800 10px var(--mono);border:1px solid;border-radius:7px;padding:3px 9px;flex:none;min-width:44px;text-align:center}
.vcons .vconst{font:600 11px var(--mono);color:var(--ink2)}
/* X-10: 정량 반응 분석 카드 */
.vreact .vrhd{font:800 12px var(--sans);color:var(--ink);display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.vreact .vrsub{font:600 9.5px var(--mono);color:var(--ink3)}
.vreact .vrbar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:#ffffff0a}
.vreact .vrbar i.pos{background:#2dd4a8}
.vreact .vrbar i.neg{background:#ff9a6a}
.vreact .vrleg{display:flex;justify-content:space-between;margin-top:5px;font:700 10.5px var(--sans)}
.vreact .vrp{color:#5ad6a8}
.vreact .vrn{color:#ff9a6a}
.vreact .vrsent{display:flex;align-items:center;gap:7px;margin-top:7px;font:500 11.5px var(--sans);color:var(--ink2)}
.vreact .vrk{font:800 8.5px var(--sans);border-radius:5px;padding:2px 6px;flex:none}
.vreact .vrk.pos{color:#5ad6a8;background:#37e0c81c;border:1px solid #37e0c844}
.vreact .vrk.neg{color:#ff9a6a;background:#ff9a6a1c;border:1px solid #ff9a6a44}
.vreact .vrt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vreact .vrc{color:var(--ink3);font:700 10px var(--mono);flex:none}
.vspark{width:100%;height:34px;display:block;margin:4px 0}
/* V-13: reaction rail */
.rxrail{display:flex;align-items:center;gap:14px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.fcard.media .rxrail{padding:9px 12px;border-top:0}
.rxrail .rx{font:700 11px var(--mono);color:var(--ink3);cursor:pointer;user-select:none}
.rxrail .rx b{color:var(--ink2);font-weight:800}
.rxrail .rx.on{color:#ff6f9d}
.rxrail .rx[data-rx="save"].on{color:#5ad6a8}
.rxrail .rx[data-rx="dislike"].on{color:#8794b5}
/* W-12: 공용 rail 래퍼 — compBody 직접 호출/비주얼/미디어 블록에 rail 일괄 부착 */
.railblock{display:block}
.railblock .rxrail{margin-top:7px}
/* W-6①: Community 상단 Krew Map 고정 진입 카드 */
.krewmapentry{display:flex;align-items:center;gap:11px;margin:2px 0 12px;padding:13px 14px;border-radius:14px;cursor:pointer;
  background:linear-gradient(120deg,#1a2450,#141b34);border:1px solid #4a6bd855}
.krewmapentry:active{background:linear-gradient(120deg,#1e2a5c,#161d38)}
.krewmapentry .kme-i{font-size:22px;flex:none}
.krewmapentry .kme-m{flex:1;min-width:0}
.krewmapentry .kme-t{font:800 13.5px var(--sans);color:var(--ink);letter-spacing:-.01em}
.krewmapentry .kme-s{font:600 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.krewmapentry .kme-go{color:var(--ink3);font-size:17px;flex:none}
/* W-7: Official Krew 배지·설명·목록 */
.offbadge{display:inline-block;font:800 8.5px var(--mono);color:#ffd479;background:#e8964a22;border:1px solid #ffd47966;border-radius:6px;padding:2px 7px;cursor:pointer;vertical-align:middle}
.offbadge.sm{font-size:8px;padding:1px 5px}
.offnote{font:600 10px/1.45 var(--sans);color:#ffd9a6;background:#e8964a14;border:1px solid #e8964a44;border-radius:10px;padding:9px 12px;margin:0 14px 9px}
.khother{color:#cfe0ff;text-decoration:underline;cursor:pointer}
.krewhero.official{outline:1px solid #ffd47955;outline-offset:-1px}
.krewlistrow .ot{display:flex;align-items:center;gap:6px}
/* V-12②③: Page 노드-성격 리드 · Shop Answer(CAR-SHOP-ANSWER) · RelChain(RND-RELCHAIN) */
.pglead>.block{margin-top:0}
.shopans{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:13px}
.shopans .sast{font:800 14px var(--sans);color:var(--ink);margin-bottom:8px}
.shopans .sastag{font:800 8.5px var(--mono);color:#5ad6a8;background:#2dd4a81c;border:1px solid #2dd4a844;border-radius:6px;padding:3px 7px;margin-right:6px;vertical-align:middle}
.shopans .sabody{font:600 12px var(--sans);color:var(--ink2);margin-bottom:6px}
.shopans .sarow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line);font:600 11px var(--mono);color:var(--ink3)}
.relchain .rcego{display:flex;align-items:center;gap:8px;font:800 13px var(--sans);color:var(--ink);margin-bottom:8px}
.relchain .rcego .rcdot{width:10px;height:10px;border-radius:50%}
.relchain .rcrow{display:flex;align-items:center;gap:9px;padding:9px 11px;background:#ffffff06;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;margin-left:14px;cursor:pointer}
.relchain .rcln{font:700 9px var(--mono);color:var(--ink3);background:#ffffff0c;border-radius:6px;padding:3px 7px;flex:none}
.relchain .rct{flex:1;min-width:0;font:700 12.5px var(--sans);color:var(--ink)}
.relchain .diggo{color:var(--ink3);flex:none}
/* V-10: asK 해석 echo · 대상 확인 시트 */
.aecho{font:600 11px var(--mono);color:var(--ink3);margin:2px 0 10px}
.aecho b{color:var(--ink)}
.aecho .aechochip{margin-left:8px;color:#9ec6ff;background:#6aa6ff18;border:1px solid #6aa6ff44;border-radius:999px;padding:3px 9px;cursor:pointer;font-weight:700}
/* U0-5 #8: 다중 노드 귀속 칩 */
.aecho .aechonode{color:var(--ink);background:#ffffff0c;border:1px solid var(--line2);border-radius:8px;padding:2px 8px;cursor:pointer;font-weight:700}
.aecho .aechonode.pri{color:#9ec6ff;background:#6aa6ff1c;border-color:#6aa6ff55}
.abseed{font:800 8px var(--mono);color:#5ad6a8;background:#2dd4a81c;border:1px solid #2dd4a844;border-radius:5px;padding:2px 5px;margin-left:5px}
.askconfirm{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 14px;margin-top:6px}
.askconfirm .asct{font:800 15px var(--sans);color:var(--ink)}
.askconfirm .ascd{font:500 11.5px/1.6 var(--mono);color:var(--ink3);margin:6px 0 12px}
.askconfirm .ascd b{color:var(--ink2)}
.asccand{display:flex;align-items:center;gap:10px;background:#ffffff06;border:1px solid var(--line);border-radius:11px;padding:11px 12px;margin-bottom:7px;cursor:pointer}
.asccand .digdot{width:9px;height:9px;border-radius:50%;flex:none}
.asccand .digm{flex:1;min-width:0}
.asccand .digt{font:700 13px var(--sans);color:var(--ink)}
.asccand .digs{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
.asccat{margin-top:12px}
.asccat .ascch{font:700 10px var(--mono);color:var(--ink3);margin-bottom:7px}
.asccat .ascchips{display:flex;flex-wrap:wrap;gap:6px}
.asccat .ascchip{font:700 11px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:999px;padding:7px 12px;cursor:pointer}
/* V-11: Page 헤더 Create 버튼 · pre-scope 배너 */
.hdrcreate{margin-left:auto;font:700 11px var(--sans);color:#9ec6ff;background:#6aa6ff18;border:1px solid #6aa6ff44;border-radius:999px;padding:5px 11px;cursor:pointer;flex:none}
.composescope{background:#6aa6ff14;border:1px solid #6aa6ff40;border-radius:11px;padding:11px 13px;font:600 12.5px var(--sans);color:var(--ink);margin-bottom:10px}
.composescope .cqa{font:700 9px var(--mono);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:middle}
/* V-14(e): Korea Signal 요지 문장(추상 게이지 대체) */
.ksgist{font:600 10.5px/1.4 var(--mono);color:var(--ink2)}
/* V-15: Krew Map — Obsidian graph 감성(다크 캔버스·force 노드·엣지·줌/팬). Kosmos와 독립. */
.kmov{position:absolute;inset:0;z-index:120;background:radial-gradient(120% 120% at 50% 35%,#0e1424,#06080f);display:none;flex-direction:column}
.kmov.on{display:flex}
.kmtop{display:flex;align-items:center;gap:10px;padding:14px 16px;flex:none}
.kmtop .kmtt{font:800 14px var(--sans);color:var(--ink);flex:1}
.kmtop .kmzoom{display:flex;gap:6px}
.kmtop .kmzb{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:#ffffff08;color:var(--ink2);display:flex;align-items:center;justify-content:center;font:800 15px var(--mono);cursor:pointer}
.kmtop .kmx{color:var(--ink2);font-size:18px;cursor:pointer;padding:2px 4px}
.kmcanvas{flex:1;overflow:hidden;touch-action:none;cursor:grab}
.kmcanvas svg{width:100%;height:100%}
.kmedge{stroke:#6aa6ff33;stroke-width:1}
.kmnode{cursor:pointer}
.kmnode circle{transition:r .1s}
.kmnode.lit circle{fill:#9be86b;filter:drop-shadow(0 0 6px #9be86baa)}
.kmnode.lit text{fill:#e9f5df}
.kmnode.dim circle{fill:#39435c}
.kmnode.dim text{fill:#6b7691}
.kmnode text{font:700 7px var(--sans);text-anchor:middle;pointer-events:none}
.kmlegend{flex:none;text-align:center;font:600 10px var(--mono);color:var(--ink3);padding:10px}
.kmlegend .kml{margin:0 5px}
.kmlegend .kml.lit{color:#9be86b}
.kmlegend .kml.dim{color:#6b7691}
.kmsheet{position:absolute;inset:0;background:#0006;display:flex;align-items:flex-end;z-index:5}
.kmsheet[hidden]{display:none}
.kmsheet .kmsh{width:100%;background:var(--card,#141a2b);border-top:1px solid var(--line);border-radius:16px 16px 0 0;padding:14px 16px 22px}
.kmsheet .kmsgrab{width:36px;height:4px;border-radius:3px;background:#ffffff26;margin:0 auto 12px}
.kmsheet .kmst{font:800 16px var(--sans);color:var(--ink)}
.kmsheet .kmss{font:600 12px var(--mono);color:var(--ink2);margin:6px 0 12px}
.kmsheet .kmss b{color:#9be86b}
.kmsheet .kmsr{display:flex;gap:8px}
.kmsheet .kmsb{flex:1;text-align:center;font:700 12px var(--sans);color:#041020;background:var(--mine,#9be86b);border-radius:10px;padding:11px;cursor:pointer}
.kmsheet .kmsb.alt{color:var(--ink);background:#ffffff10;border:1px solid var(--line)}
/* Krew 헤더 지도 아이콘 */
.krewhero .khmap{position:absolute;top:12px;right:44px;font-size:17px;cursor:pointer;opacity:.9}
/* C(A-01): role 카드 = 보조(접힘) — Overview 첫 화면은 mixed content 우선 */
.rolefold{margin:10px 0 4px;border:1px solid var(--line);border-radius:13px;background:var(--card)}
.rolefold>summary{font:600 11.5px var(--sans);color:var(--ink2);padding:11px 13px;cursor:pointer;list-style:none}
.rolefold>summary::-webkit-details-marker{display:none}
.rolefold[open]>summary{border-bottom:1px solid var(--line);margin-bottom:8px}
.rolefold .rolecard{margin:0 8px 8px}

/* Community placeholder (lens + tab) */
.commph{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center;padding:40px;color:var(--ink3)}
.commph .ci{width:54px;height:54px;border-radius:16px;background:#e25c8a18;border:1px solid #e25c8a44;display:flex;align-items:center;justify-content:center;font-size:24px}
.commph h2{font:800 19px var(--sans);color:var(--ink2)}
.commph p{font:500 12px/1.6 var(--sans);max-width:280px}
.commph .pill{font:600 10px var(--mono);color:#f0b3cc;background:#e25c8a14;border:1px solid #e25c8a3a;border-radius:12px;padding:6px 12px}
.lenscomm{padding:34px 16px;text-align:center;color:var(--ink3)}
.lenscomm .ci2{font-size:30px;margin-bottom:11px}
.lenscomm h3{font:700 14px var(--sans);color:var(--ink2);margin-bottom:7px}
.lenscomm p{font:500 11.5px/1.6 var(--sans);max-width:260px;margin:0 auto}
.lenscomm .pill{display:inline-block;margin-top:12px;font:600 9.5px var(--mono);color:#f0b3cc;background:#e25c8a14;border:1px solid #e25c8a3a;border-radius:12px;padding:5px 11px}

/* claim-unit trust chip (qualitative, no tier number) */
.trust{font:600 9px var(--mono);padding:2px 8px 2px 6px;border-radius:9px;border:1px solid;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.trust .td{width:6px;height:6px;border-radius:50%}
/* ===== Community Home ===== */
.commsum{margin:14px 12px 0;background:linear-gradient(135deg,#141d36,#0f1730);border:1px solid var(--line);border-radius:14px;padding:14px;font:500 12px/1.6 var(--sans);color:var(--ink2)}
.commsum .lk{display:block;font:700 9px var(--mono);color:var(--mine);letter-spacing:.08em;margin-bottom:6px}
.commsum b{color:var(--ink)}
.csec{margin:16px 12px 0}
.csec h3{font:800 14px var(--sans);letter-spacing:-.02em;margin-bottom:11px;display:flex;align-items:center;gap:8px}
.csec h3 .ce{font:600 9px var(--mono);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:6px;padding:2px 7px;margin-left:auto}
/* CR2-F03(D11-11): Missions 접기 섹션 — hide 시작 + 갯수 + 하단 전체 폭 넓고 얇은 expand 컨트롤 */
.csbsec2{position:relative;padding-bottom:0;overflow:hidden}
.csbhd2{display:flex;align-items:center;gap:8px}
.csbt2{font:800 14px var(--sans);letter-spacing:-.02em;color:var(--ink)}
.csbcount2{margin-left:auto;font:700 10px var(--mono);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:6px;padding:2px 8px}
.csbpreview2{margin-top:10px}
.csbpreview2>*+*,.csbrest2>*+*{margin-top:9px}
.csbrest2{margin-top:9px}
.csbexpand2{display:flex;align-items:center;justify-content:center;gap:7px;margin:10px -13px 0;padding:9px 0;border-top:1px solid var(--line);background:#ffffff06;cursor:pointer;font:700 11px var(--sans);color:#9ec6ff}
.csbexpand2:active{background:#6aa6ff16}
.csbexpand2.open{color:var(--ink3)}
.csbexpand2 .csbchev2{font-size:11px}
.disctopics{display:flex;flex-wrap:wrap;gap:7px}
.dtopic{font:600 11px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.dtopic b{color:#9ec6ff;margin-left:5px;font-weight:700}
/* Y-11: IP Official 탭 렌더 */
.ofstatus{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
.ofstatus .ofsrc{font:600 11px var(--sans);color:var(--ink2)}
.ofstatus .ofver{font:600 10px var(--mono);color:var(--ink3);margin-left:auto}
.ofrow{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.ofrow:first-child{border-top:0}
.ofdate{flex:0 0 58px;font:700 11px var(--mono);color:var(--mine,#6aa6ff)}
.ofrow .ofm{flex:1;min-width:0}
.ofrow .oft{font:700 13px var(--sans);color:var(--ink)}
.ofrow .ofs{font:500 11.5px/1.4 var(--sans);color:var(--ink3);margin-top:2px}
.ofkind{font:700 9px var(--mono);color:var(--ink3);background:var(--card2);border:1px solid var(--line2);border-radius:5px;padding:1px 6px;margin-left:4px}
.ofnotice{background:var(--card2);border:1px solid var(--line2);border-radius:10px;padding:9px 11px;margin-top:8px;position:relative}
.ofnotice b{font:700 12px var(--sans);color:var(--ink)}
.ofnotice .ofndate{font:600 9.5px var(--mono);color:var(--ink3);position:absolute;right:11px;top:9px}
.ofnotice .ofnb{font:500 11.5px/1.45 var(--sans);color:var(--ink2);margin-top:4px}
.ofmedia{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ofmcard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;display:flex;flex-direction:column;gap:4px}
.ofmk{font:700 9px var(--mono);color:var(--mine,#6aa6ff)}
.ofmt{font:700 12px var(--sans);color:var(--ink);flex:1}
.ofmgo{font:600 10px var(--mono);color:var(--ink3)}
.ofcotag{flex:0 0 auto;align-self:flex-start;font:700 9.5px var(--sans);border-radius:6px;padding:2px 7px}
.ofcotag.deny{color:#ff8f6a;background:#ff8f6a1c;border:1px solid #ff8f6a55}
.ofcotag.corr{color:#2dd4a8;background:#2dd4a81c;border:1px solid #2dd4a855}
.ofstrip{display:flex;align-items:center;gap:9px;background:var(--card2);border:1px dashed var(--line2);border-radius:11px;padding:9px 12px;margin:0 12px 8px;cursor:pointer}
.ofstrip .ofstripi{font-size:15px}
.ofstrip .ofstript{flex:1;font:600 11.5px var(--sans);color:var(--ink2)}
.ofstrip .ofstripgo{font:600 10px var(--mono);color:var(--ink3)}
/* Y-6: Community mode filter + 검증 Q&A 카드 */
.cfrow.modefilter{gap:7px}
.qnacard{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 13px;margin-bottom:9px;cursor:pointer}
.qnacard .qnaq{font:700 13.5px var(--sans);color:var(--ink);margin-bottom:7px;overflow-wrap:anywhere}
.qnacard .qnaa{border-left:2px solid var(--t-verified,#2bb98a);padding-left:9px;margin:6px 0}
.qnacard .qnaver{font:700 10.5px var(--mono);color:var(--t-verified,#2bb98a)}
.qnacard .qnaab{font:500 12px/1.45 var(--sans);color:var(--ink2);margin:3px 0}
.qnacard .qnasrc{font:600 10px var(--mono);color:var(--ink3)}
.qnacard .qnaopen{font:600 11.5px var(--sans);color:var(--mine,#6aa6ff);margin:4px 0}
.qnacard .qnac{font:600 10px var(--mono);color:var(--ink3);margin-top:6px}
.opincard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:11px}
.opincard .oh{font:700 12.5px var(--sans);display:flex;align-items:center;gap:8px;margin-bottom:11px}
.opincard .ot{font:600 9px var(--mono);color:#c3b3ff;background:#9b8cff22;border:1px solid #9b8cff44;border-radius:6px;padding:2px 7px}
.repnote{font:600 9.5px var(--mono);color:var(--ink3);border-top:1px solid var(--line);padding-top:9px;margin-top:11px}
.repnote b{color:#efc34a}
.fanlabel{font:700 8px var(--mono);color:#d49be0;background:#c06ad018;border:1px solid #c06ad04d;border-radius:6px;padding:2px 7px}
.cvthumb{position:relative;height:150px;border-radius:11px;overflow:hidden;background:#0c1226;cursor:pointer}
.cvthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cvthumb .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:#0a0f1cc4;border:1.5px solid #ffffff44;display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;z-index:2}
.cvthumb .vlabel{position:absolute;left:9px;top:9px;font:700 8px var(--mono);padding:3px 8px;border-radius:6px;border:1px solid;z-index:2}
.reqrow{display:flex;gap:10px;align-items:flex-start;background:#ff5a4a0d;border:1px solid #ff5a4a33;border-radius:12px;padding:12px;margin-bottom:9px}
.reqrow .rqi{font:700 9px var(--mono);color:#ff8a7a;flex:none;padding-top:1px}
.reqrow .rqt{font:500 11px/1.5 var(--sans);color:var(--ink2)}
.reqrow .rqt b{color:var(--ink)}
.consrow{display:flex;align-items:center;gap:8px;font:600 11px var(--sans);color:var(--ink2);padding:5px 0}
.consrow .cd{width:8px;height:8px;border-radius:50%;flex:none}
.krew{display:flex;gap:11px;align-items:center;background:#ffffff05;border:1px solid var(--line);border-radius:12px;padding:11px;margin-bottom:8px}
.krew .kav{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font:700 15px var(--sans);color:#06121f;background:linear-gradient(135deg,#9b8cff,#6aa6ff);flex:none}
.krew .kmid{flex:1}.krew .kt{font:700 12px var(--sans)}.krew .kr{font:500 9.5px var(--sans);color:var(--ink3);margin-top:2px}
.krew .kjoin{font:700 10px var(--sans);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:8px;padding:6px 12px}
.cbtn{margin:6px auto 22px;display:block;width:max-content;max-width:calc(100% - 24px);text-align:center;font:700 13px var(--sans);color:#06121f;background:linear-gradient(135deg,#6aa6ff,#9b8cff);border-radius:13px;padding:12px 28px;cursor:pointer}
/* U0-7 #10: 인라인 작성기 — 스레드 원글 하단 즉시 입력(작성 페이지 이동 대체) */
.inlinecompose{display:flex;align-items:center;gap:8px;margin:10px 0 4px;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:7px 8px 7px 13px}
.inlinecompose .iciput{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--ink);font:500 12.5px var(--sans)}
.inlinecompose .iciput::placeholder{color:var(--ink3)}
.inlinecompose .icsend{flex:none;font:700 11.5px var(--sans);color:#06121f;background:linear-gradient(135deg,#6aa6ff,#9b8cff);border-radius:10px;padding:8px 14px;cursor:pointer}
.inlinecompose .icsend:active{transform:scale(.96)}
/* P0-1(D6-01): 하단 상시 composer 기본 축소 — send 숨김, 눌러서 확장 */
.inlinecompose.collapsed{padding:9px 13px;opacity:.9}
.inlinecompose.collapsed .icsend{display:none}
.inlinecompose.collapsed .iciput{font-size:12px}
.cpost.mine{background:#37e0c80c;border-radius:12px;padding:6px}
/* U2-3: 유닛 인라인 액션(Reply/Translate/Correct/Add source) */
.unitacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.unitacts .uact{font:700 10px var(--mono);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:8px;padding:4px 8px;cursor:pointer}
.unitacts .uact:active{transform:scale(.96)}
/* U4-C/D9: 고급 기여 액션 progressive disclosure */
.unitacts .uactadv{display:inline-flex;gap:6px;flex-wrap:wrap}
.unitacts .uactadv[hidden]{display:none}
.unitacts .uact.advmore{color:#8aa0ff;border-style:dashed}
.unitacts .uact.advmore.on{color:#9ec6ff;border-color:#6aa6ff55;background:#6aa6ff12}
.unitacts .uact.adv{color:#b39bff;border-color:#3a3560}
.unitacts .uact.on{color:var(--mine);border-color:var(--mine-line);background:var(--mine-soft)}
.unitreply{display:flex;align-items:center;gap:7px;margin-top:7px;background:var(--card);border:1px solid var(--line2);border-radius:11px;padding:5px 6px 5px 11px}
.unitreply input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--ink);font:500 11.5px var(--sans)}
.unitreply input::placeholder{color:var(--ink3)}
.unitreply .ursend{flex:none;font:700 10.5px var(--sans);color:#06121f;background:linear-gradient(135deg,#6aa6ff,#9b8cff);border-radius:9px;padding:6px 11px;cursor:pointer}
.unitreply .urcancel{flex:none;font:600 10.5px var(--sans);color:var(--ink3);padding:6px 8px;cursor:pointer}
.unitacts .uact.on{color:#9ec6ff}
.unittrans{margin-top:6px;font:500 10.5px var(--sans);color:var(--ink2);background:#ffffff05;border:1px solid var(--line);border-radius:9px;padding:6px 9px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.unittrans .uttag{font:700 8.5px var(--mono);color:#9be86b;background:#9be86b18;border:1px solid #9be86b44;border-radius:6px;padding:1px 6px}
.unittrans .utorig{margin-left:auto;color:var(--mine);cursor:pointer;font-weight:700}
.creply.mine{background:#37e0c80c;border-radius:10px}
/* ===== My ===== */
.myhdr{margin:14px 12px 0;display:flex;align-items:center;gap:13px}
.myhdr .mav{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#6aa6ff,#9b8cff);flex:none}
.myhdr .mnm{font:800 16px var(--sans)}
.myhdr .msub{font:500 10.5px var(--sans);color:var(--ink3);margin-top:3px}
.mystats{display:flex;gap:9px;margin:14px 12px 0}
.mystat{flex:1;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.mystat .mv{font:800 18px var(--mono);color:var(--ink)}
.mystat .ml{font:600 9px var(--sans);color:var(--ink3);margin-top:3px}
/* P4: Krew (IP 팬 크루 hub) */
.krewhero{margin:12px;border-radius:16px;padding:20px 16px;border:1px solid var(--line2)}
.krewhero .khname{font:800 22px var(--sans);letter-spacing:-.02em;color:#fff}
.krewhero .khmeta{font:600 11px var(--mono);color:#dbe5f5;margin-top:5px}
/* B5: Krew archetype label + badge/label 층 + Follow/Join 분리 */
.krewhero .khbadges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.krewhero .karch{font:800 9.5px var(--mono);color:#06121f;background:#dbe5f5;border-radius:8px;padding:2px 8px}
.krewhero .kbadge{font:700 9px var(--mono);color:#dbe5f5;background:#ffffff1a;border:1px solid #ffffff33;border-radius:8px;padding:2px 8px}
.krewhero .kbadge.off{color:#ffe08a;background:#ffd47922;border-color:#ffd47966;cursor:pointer}
.krewhero .khcta{display:flex;gap:8px;margin-top:13px}
.krewhero .khfollow{font:700 12.5px var(--sans);color:#dbe5f5;background:#ffffff12;border:1px solid #ffffff33;border-radius:11px;padding:9px 16px;cursor:pointer}
.krewhero .khfollow.on{color:#9be86b;background:#13361f;border-color:#9be86b66}
.krewhero .khjoin{display:inline-block;font:700 12.5px var(--sans);color:#041020;background:#fff;border-radius:11px;padding:9px 16px;cursor:pointer}
.krewhero .khjoin.on{color:#cdeccb;background:#13361f;border:1px solid #9be86b66}
/* B5: Krew 생성 archetype 시트 + 생성 row */
.krewcreate{border:1px dashed var(--line2)!important;color:#bcd3ff}
.karchopt{display:flex;align-items:center;gap:11px;padding:14px 11px;border:1px solid var(--line);border-radius:13px;margin-bottom:8px;cursor:pointer}
.karchopt:active{background:#6aa6ff14;border-color:#6aa6ff55}
.karchopt .kai{width:34px;height:34px;border-radius:10px;background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.karchopt .kat{font:700 13px var(--sans);color:var(--ink)}
.karchopt .kas{font:500 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.karchopt .kag{color:var(--ink3);font-size:16px}
.krewbar{display:flex;align-items:center;gap:10px;margin:0 12px 6px}
.kmavs{display:flex}
.kmav{width:28px;height:28px;border-radius:50%;border:2px solid var(--bg0);margin-left:-8px;display:flex;align-items:center;justify-content:center;font:700 11px var(--sans);color:#06121f}
.kmav:first-child{margin-left:0}
.krewbar .krole{margin-left:auto;font:600 10.5px var(--mono);color:var(--ink3)}
.kconv{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:7px;cursor:pointer}
.kconv .kcdot{width:9px;height:9px;border-radius:50%;flex:none}
.kconv .kcm{flex:1;min-width:0}
.kconv .kct{font:700 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kconv .kcs{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
.kconv .kcgo{color:var(--ink3);flex:none}
/* P1-1: Krew 5탭 — Map·Guides·Members·Growth·Share */
.krewtabs{margin:14px 12px 0}
/* Krew Page v2 (K-1~K-8) */
.krewhero{position:relative}
.khshare{position:absolute;top:14px;right:14px;font-size:17px;color:#eaf1ff;cursor:pointer;opacity:.9}
.kctx{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 13px}
.kctxid{font:600 13px var(--sans);color:var(--ink)}
.kctxnotice{font:500 11px var(--mono);color:var(--ink2);margin-top:7px;padding-top:7px;border-top:1px dashed var(--line)}
.kpin{display:flex;align-items:center;gap:10px;padding:10px 11px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:7px;cursor:pointer}
.kpin .kpi{font-size:17px;flex:0 0 auto}
.kpin .kpm{flex:1;min-width:0}
.kpin .kpt{font:600 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpin .kpby{font:500 10.5px var(--mono);color:var(--ink3);margin-top:3px;display:flex;align-items:center;gap:6px}
.ktrust{font:600 9.5px var(--mono);border:1px solid;border-radius:6px;padding:1px 6px}
.kdrow{display:flex;align-items:center;gap:9px;padding:7px 4px;border-bottom:1px solid var(--line)}
.kdrow:last-child{border-bottom:0}
.kdrow .kdi{font-size:14px}.kdrow .kdt{flex:1;font:500 12px var(--sans);color:var(--ink2)}.kdrow .kdw{font:500 10px var(--mono);color:var(--ink3)}
.krailhd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.krailfilter{font:600 11px var(--sans);color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:5px 8px}
.krail{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.krail::-webkit-scrollbar{display:none}
.krcard{flex:0 0 80%;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:13px;cursor:pointer}
.krcard .kgi{font-size:20px}.krcard .kgt{font:700 13px var(--sans);color:var(--ink);margin-top:6px}
.krcard .kgs{font:500 11px var(--sans);color:var(--ink2);margin-top:4px}.krcard .kgby{font:600 10px var(--mono);color:var(--ink3);margin-top:6px}
.krdots{display:flex;justify-content:center;gap:6px;margin-top:9px}
.krdot{width:6px;height:6px;border-radius:50%;background:var(--line2)}.krdot.act{background:var(--ink3)}
.kfoldhd{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:2px 0}
.kchev{font-size:13px;color:var(--ink3)}
.kfoldbody{margin-top:9px}
.kstatrow{padding:8px 0;border-bottom:1px solid var(--line)}
.kstatrow:last-of-type{border-bottom:0}
.kstatrow .kstl{font:700 11.5px var(--sans);color:var(--ink2)}
.kstatrow .kstv{font:700 12px var(--sans);color:var(--ink);margin-left:8px}
.kstatrow .kstsub{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
.kmemstrip{display:flex;align-items:center;gap:10px;margin-top:9px}
.kmemstrip .kmsum{font:500 10.5px var(--mono);color:var(--ink3)}
.klib{display:flex;align-items:center;gap:11px;padding:12px 13px;background:var(--card);border:1px solid var(--line);border-radius:13px;cursor:pointer}
.klib .klibi{font-size:19px}.klib .klibt{font:700 13px var(--sans);color:var(--ink)}.klib .klibs{font:500 10.5px var(--mono);color:var(--ink3);margin-top:3px}.klib .klibm{flex:1;min-width:0}
.kact{display:flex;align-items:flex-start;gap:9px;padding:8px 2px;border-bottom:1px solid var(--line)}
.kact:last-child{border-bottom:0}
.kact .kacti{font-size:14px;flex:0 0 auto}.kact .kactm{flex:1;min-width:0}
.kact .kactt{font:500 12px var(--sans);color:var(--ink2)}.kact .kacts{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
/* K-5 resident Krew chat (Chat 탭) */
.krewchat{margin:12px}
.kchrooms{display:flex;gap:7px;overflow-x:auto;margin:10px 0 8px}
.kchrooms::-webkit-scrollbar{display:none}
.kchroom{flex:0 0 auto;font:600 11px var(--sans);color:var(--ink2);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:5px 10px;cursor:pointer}
.kchroom.act{color:var(--mine-ink);background:var(--mine);border-color:transparent}
.kchroom.closed{opacity:.6}
.kchbody{max-height:46vh;overflow-y:auto;background:var(--bg2,#0b1020);border:1px solid var(--line);border-radius:13px;padding:11px}
.kcharch{font:500 11.5px var(--sans);color:var(--ink3);text-align:center;padding:22px 12px;line-height:1.5}
.chinput.inline{position:static;margin-top:9px;display:flex;gap:8px}
.chlock.inline{position:static;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 16px;text-align:center}
.missionrow .mss.qguard{color:var(--spiking,#e8964a);white-space:normal}
.kmapbars{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:13px}
.kmaprow{display:flex;align-items:center;gap:10px}
.kmaprow .kmlbl{font:700 11px var(--sans);color:var(--ink2);width:56px;flex:none}
.kmaprow .kmbar{flex:1;height:8px;border-radius:5px;background:#ffffff10;overflow:hidden}
.kmaprow .kmbar i{display:block;height:100%;border-radius:5px}
.kmaprow .kmpct{font:800 12px var(--mono);flex:none;width:26px;text-align:right}
.kmsub{font:500 9.5px var(--mono);color:var(--ink4);margin:2px 0 10px 66px}
.kmsub:last-child{margin-bottom:0}
.ksharecard{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#1a2340,#111a30);border:1px solid #6aa6ff3a;border-radius:13px;padding:13px;cursor:pointer}
.ksharecard .kshm{flex:1;min-width:0}
.ksharecard .ksht{font:800 14px var(--sans);color:#fff}
.ksharecard .kshs{font:500 10px var(--mono);color:var(--ink3);margin-top:3px}
.ksharecard .kshbtn{font:700 12px var(--sans);color:#041020;background:var(--mine);border-radius:10px;padding:9px 14px;flex:none}
.kguide{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:8px;cursor:pointer}
.kguide .kgi{font-size:20px;flex:none}
.kguide .kgm{flex:1;min-width:0}
.kguide .kgt{font:700 13px var(--sans);color:var(--ink)}
.kguide .kgs{font:500 10.5px/1.4 var(--sans);color:var(--ink2);margin:3px 0}
.kguide .kgby{font:600 9px var(--mono);color:var(--ink3)}
.kmemrow{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line)}
.kmemrow:last-child{border-bottom:0}
.kmemrow .kmemav{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 13px var(--sans);color:#06121f}
.kmemrow .kmemm{flex:1;min-width:0}
.kmemrow .kmemn{font:700 12.5px var(--sans);color:var(--ink)}
.kmemrow .kmemr{font:500 10px var(--mono);color:var(--ink3);margin-top:2px}
.kmemrow .kmemme{font:700 9px var(--mono);color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44;border-radius:6px;padding:3px 8px;flex:none}
.kgrowth{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:13px}
.kgtrend{position:relative;height:56px;margin-bottom:11px}
.kgtrend svg{width:100%;height:100%}
.kgtrend .kgup{position:absolute;right:2px;top:2px;font:600 9px var(--mono);color:#5ad6a8}
.kgstats{display:flex;gap:9px}
.kgstat{flex:1;text-align:center;background:#ffffff06;border:1px solid var(--line);border-radius:10px;padding:9px}
.kgstat b{font:800 15px var(--mono);color:var(--ink);display:block}
.kgstat span{font:600 9px var(--sans);color:var(--ink3);margin-top:2px;display:block}
/* P1: My 헤더 아이콘(알림·설정) */
.myicons{display:flex;align-items:center;gap:6px}
.myic{width:34px;height:34px;border-radius:50%;background:#ffffff0d;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer}
.myic:active{transform:scale(.94)}
/* P1: My 4-탭 */
.mytabs{display:flex;gap:4px;margin:16px 12px 0;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(12,18,34,.62);backdrop-filter:blur(9px) saturate(1.3);-webkit-backdrop-filter:blur(9px) saturate(1.3);z-index:5}
.mytab{flex:1;text-align:center;font:700 12.5px var(--sans);color:var(--ink3);padding:11px 0;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.mytab.act{color:var(--ink);border-bottom-color:var(--mine)}
/* B6: My 6탭(Home+5) — 좁은 폭 대응 */
.mytabs6{gap:2px;overflow-x:auto}
.mytabs6 .mytab{font-size:10.5px;padding:10px 3px;white-space:nowrap;flex:1 0 auto;min-width:0}
.mytabs6 .mytab .mtc{font-size:8.5px}
.mssub{font:700 10px var(--mono);color:var(--ink3);margin:4px 0 6px}
/* U3: My Activity/Library 병합 탭 내 섹션 sub-header */
.mysub{font:800 11px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);margin:16px 12px 2px}
.mysub:first-child{margin-top:8px}
.mypanel{display:none}
.mypanel.act{display:block}
/* 내 글 = 인스타식 3열 그리드 */
.postgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;margin:10px 12px 0}
.postcell{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:4px;cursor:pointer;background:#0c1226}
.postcell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.postcell .pcph{position:absolute;inset:0;z-index:0}
.postcell .pcmark{position:absolute;top:5px;right:6px;z-index:2;color:#fff;font-size:11px;text-shadow:0 1px 3px #000}
.postcell:active{opacity:.85}
/* item 7: 저장한 노드 = 작은 아이콘 좌우 스크롤 */
.savedscroll{display:flex;gap:9px;overflow-x:auto;margin:10px 0 0;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.savedscroll::-webkit-scrollbar{display:none}
.savchip{flex:0 0 70px;cursor:pointer}
.savthumb{position:relative;width:70px;height:70px;border-radius:12px;overflow:hidden;background:#0c1226}
.savthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.savthumb .savph{position:absolute;inset:0;z-index:0}
.savnm{font:600 9.5px var(--sans);color:var(--ink2);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:70px}
/* item 8: Fan Journey IP/브랜드 발행 보상 뱃지(Branded) */
.fjbrandhd{font:700 10px var(--mono);color:#b3a6ec;margin:13px 0 8px;display:flex;align-items:center;gap:7px}
.fjbrandhd .bz{font:700 8px var(--mono);color:#0c0a1f;background:#b3a6ec;border-radius:5px;padding:2px 6px}
.fjbrands{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px}
.fjbrands::-webkit-scrollbar{display:none}
.fjbrand{flex:0 0 auto;display:flex;align-items:center;gap:9px;background:#ffffff0a;border:1px solid var(--line);border-radius:11px;padding:9px 12px;cursor:pointer}
.fjbrand .fbi{font-size:19px}
.fjbrand .fbt b{font:700 11px var(--sans);color:var(--ink);display:block}
.fjbrand .fbt span{font:500 9px var(--mono);color:var(--ink3)}
/* 팔로잉 = 좌우 swipe 3-up */
.followswipe{display:flex;gap:9px;overflow-x:auto;scroll-snap-type:x mandatory;margin:10px 12px 0;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.followswipe::-webkit-scrollbar{display:none}
.folcell{position:relative;flex:0 0 calc((100% - 18px)/3);aspect-ratio:3/4;border-radius:11px;overflow:hidden;cursor:pointer;scroll-snap-align:start;background:#0c1226}
.folcell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.folcell .folph{position:absolute;inset:0;z-index:0}
.folcell .folnm{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 8px 8px;font:700 11px var(--sans);color:#fff;background:linear-gradient(0deg,#000d,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 기여 통합 박스 · 빈 상태 · 설정 시트 헤더 */
.credbox{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:2px 14px;margin-bottom:9px}
.myempty{margin:24px 12px;text-align:center;font:600 12.5px var(--sans);color:var(--ink3);display:flex;flex-direction:column;align-items:center;gap:12px}
.myempty .b{font:700 12px var(--sans);color:#041020;background:var(--mine);border-radius:11px;padding:10px 18px;cursor:pointer}
.summ-sheet .seth{font:800 16px var(--sans);margin:2px 0 12px}
.fjrow{margin:14px 12px 0;background:linear-gradient(135deg,#1a1640,#13112e);border:1px solid #9b8cff3a;border-radius:14px;padding:14px}
.fjrow .fjh{font:700 12px var(--sans);display:flex;align-items:center;gap:8px;margin-bottom:11px}
.fjrow .fjh .vp{font:600 8px var(--mono);color:#5ad6a8;background:#2dd4a81c;border:1px solid #2dd4a844;border-radius:6px;padding:2px 7px;margin-left:auto}
.fjbadges{display:flex;gap:8px;flex-wrap:wrap}
.fjb{display:flex;flex-direction:column;align-items:center;gap:5px;background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:9px 11px;min-width:62px}
.fjb .fi{font-size:18px}.fjb .fl{font:600 8.5px var(--sans);color:var(--ink2)}
.savedgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.savedc{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.savedc .si{height:66px;position:relative;background:#0c1226}
.savedc .si img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.savedc .sb{padding:9px 10px}.savedc .snm{font:700 12px var(--sans)}.savedc .ssub{font:500 9px var(--sans);color:var(--ink3);margin-top:3px}
.credrow{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line)}
.credrow:last-child{border-bottom:0}
.credrow .ci3{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font:700 11px var(--mono);flex:none;color:#06121f}
.credrow .ct3{flex:1;font:600 11px/1.4 var(--sans);color:var(--ink2)}.credrow .ct3 b{color:var(--ink)}
.credrow .cs3{font:600 8.5px var(--mono);padding:3px 7px;border-radius:6px;flex:none;align-self:center}
.histrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.histrow:last-child{border-bottom:0}
.histrow .hi{width:34px;height:34px;border-radius:9px;overflow:hidden;background:#0c1226;flex:none;position:relative}
.histrow .hi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.histrow .ht{flex:1;font:600 11.5px var(--sans)}.histrow .ha{font:500 9px var(--mono);color:var(--ink4)}
.myrow{display:flex;align-items:center;gap:10px;background:#ffffff05;border:1px solid var(--line);border-radius:12px;padding:13px;margin-bottom:8px;cursor:pointer}
.myrow .mri{font-size:15px}.myrow .mrt{flex:1;font:600 12px var(--sans)}.myrow .mrc{color:var(--ink4)}
/* ===== Create ===== */
.composetype{display:flex;gap:6px;flex-wrap:wrap;margin:14px 12px 0}
.ctchip{font:600 10.5px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:7px 11px;cursor:pointer}
.ctchip.act{color:#9ec6ff;background:#6aa6ff1c;border-color:#6aa6ff55}
.composebox{margin:11px 12px 0;background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:14px;font:500 13px/1.6 var(--sans);color:var(--ink3);min-height:88px}
.composebox b{color:var(--ink)}
.composerow{margin:9px 12px 0;display:flex;align-items:center;gap:10px;background:#ffffff05;border:1px solid var(--line);border-radius:11px;padding:11px}
.composerow .cri{width:26px;height:26px;border-radius:7px;background:#6aa6ff14;border:1px solid #6aa6ff33;display:flex;align-items:center;justify-content:center;color:#9ec6ff;font:700 14px var(--sans);flex:none}
.composerow .crt{flex:1;font:600 11px var(--sans);color:var(--ink2)}.composerow .crt b{color:var(--ink)}
.composenote{margin:11px 12px 0;font:500 10px/1.5 var(--sans);color:var(--ink4)}
.composestat{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 12px 0}
.composestat .cs4{font:600 9.5px var(--sans);padding:5px 9px;border-radius:20px;background:#ffffff08;border:1px solid var(--line);color:var(--ink3)}
.composestat .cs4.on{background:#6aa6ff1c;border-color:#6aa6ff55;color:#9ec6ff}.composestat .ar{color:var(--ink4)}
.composesubmit{margin:14px 12px 22px;text-align:center;font:700 13px var(--sans);color:#06121f;background:linear-gradient(135deg,#6aa6ff,#9b8cff);border-radius:13px;padding:14px;cursor:pointer}
.composerow .copt{font:600 9px var(--mono);color:var(--ink4);border:1px solid var(--line);border-radius:6px;padding:2px 5px;margin-left:6px}
/* B7-1 Creation Tool — 시작점 3종 · source import · publish gate */
.startpicker{display:flex;gap:7px;margin:14px 12px 0}
.startopt{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;cursor:pointer}
.startopt.act{border-color:var(--mine);background:var(--mine-soft)}
.startopt .stol{font:700 11px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.startopt .stoh{font:500 9px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.35}
/* U0-7 #12: composer 하단 source 토글 버튼 + #11 preview pane */
.srctoggle{margin:11px 12px 0;display:flex;align-items:center;gap:8px;background:#ffffff06;border:1px solid var(--line);border-radius:12px;padding:11px 13px;cursor:pointer;font:700 12px var(--sans);color:var(--ink)}
.srctoggle .stgi{font-size:13px}
.srctoggle .stgs{font:500 9.5px var(--sans);color:var(--ink3)}
.srctoggle .stgcar{margin-left:auto;color:var(--ink3);font:700 11px var(--mono)}
.srcfieldrow{display:flex;align-items:center;gap:8px}
.srcfieldrow .cfin{flex:1;min-width:0}
.srcpvbtn{flex:none;font:700 10px var(--mono);color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:9px;padding:7px 9px;cursor:pointer}
.srcpreview{display:flex;align-items:center;gap:10px;margin-top:9px;background:#ffffff06;border:1px solid var(--line2);border-radius:11px;padding:9px}
.srcpreview .spvthumb{flex:none;width:46px;height:46px;border-radius:9px;background:linear-gradient(135deg,var(--mine-soft),#0c1226);display:flex;align-items:center;justify-content:center;font-size:17px;color:#cfe0ff}
.srcpreview .spvthumb.vid{background:linear-gradient(135deg,var(--t-official)33,#0c1226)}
.srcpreview .spvm{flex:1;min-width:0}
.srcpreview .spvt{font:700 12px var(--sans);color:var(--ink)}
.srcpreview .spvtag{font:700 8px var(--mono);color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:6px;padding:1px 5px;margin-left:5px}
.srcpreview .spvs{font:500 10px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.4}
.srcimport{margin:11px 12px 0;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px}
.srcmtabs{display:flex;gap:5px;margin-bottom:8px}
.srcmtab{flex:1;text-align:center;font:700 10.5px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:7px 0;cursor:pointer}
.srcmtab.act{color:var(--mine);background:var(--mine-soft);border-color:var(--mine-line)}
.srcmhint{font:500 10px var(--sans);color:var(--ink3);margin-bottom:8px}
.srcimport .cfin{width:100%;box-sizing:border-box;background:#ffffff06;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:500 11px var(--mono);color:var(--ink2)}
.srcimport .composerow{margin:9px 0 0}
.pubgate{margin:12px 12px 0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px}
.pubgate.blocked{border-color:var(--t-developing)55}
.pubgate.ok{border-color:var(--t-sourced)55}
.pgslot{display:inline-flex;align-items:center;gap:6px;font:600 11px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:6px 10px;margin:0 6px 6px 0;cursor:pointer}
.pgslot.on{color:var(--t-sourced);border-color:var(--t-sourced)55;background:var(--t-sourced)12}
.pgslot .pgdot{width:8px;height:8px;border-radius:50%;background:var(--ink4)}
.pgslot.on .pgdot{background:var(--t-sourced)}
.composesubmit.disabled{background:#ffffff10;color:var(--ink4);cursor:not-allowed}
/* U2: Creation 재편 — 의도 3종(Post/Ask/Review) · 매체 첨부 · Poll */
.intentchips{display:flex;gap:8px;margin:14px 12px 0}
.intentchip{flex:1;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 10px;cursor:pointer;text-align:center}
.intentchip.act{border-color:var(--mine);background:var(--mine-soft)}
.intentchip b{display:block;font:800 13px var(--sans);color:var(--ink)}
.intentchip span{display:block;font:500 8.5px var(--sans);color:var(--ink3);margin-top:3px;line-height:1.35}
.composescope.need{background:var(--t-developing)14;border-color:var(--t-developing)55}
.composescope .scopeconnect{font:700 9.5px var(--mono);color:var(--mine);background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:8px;padding:3px 8px;margin-left:6px;cursor:pointer;vertical-align:middle}
.composescope .scopeconnect.alt{color:var(--ink3);background:#ffffff08;border-color:var(--line)}
.mediaattach{display:flex;flex-wrap:wrap;gap:7px;margin:11px 12px 0}
.mabtn{font:600 11px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer}
.mabtn:active{transform:scale(.97)}
.mabtn.src{color:var(--mine);border-color:var(--mine-line);background:var(--mine-soft)}
.pollblock{margin:11px 12px 0;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px}
.pollblock:not(.on){background:#ffffff05;border-style:dashed}
.pollhd{display:flex;align-items:center;justify-content:space-between;font:700 11.5px var(--sans);color:var(--ink);margin-bottom:8px}
.pollhd .polltoggle{font:700 10px var(--mono);color:var(--mine);cursor:pointer}
.polloptrow{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.polloptrow .pon{flex:none;width:20px;height:20px;border-radius:50%;background:var(--mine-soft);border:1px solid var(--mine-line);color:var(--mine);font:700 10px var(--mono);display:flex;align-items:center;justify-content:center}
.polloptrow .polopt{flex:1;min-width:0}
.polladd{font:700 11px var(--sans);color:var(--mine);cursor:pointer;padding:4px 0}
.asstrow.opt{opacity:.82}
.asstrow .optbadge{font:700 7.5px var(--mono);color:var(--ink3);background:var(--line);border-radius:6px;padding:1px 5px;margin-left:5px;vertical-align:middle}
/* B7-2 채택 5기능 assist · auto-tagging · Candidate Node */
.assistpanel,.taggingpanel{margin:12px 12px 0;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px}
.asstt{font:700 11px var(--sans);color:var(--ink);margin-bottom:8px}.asstt .ce{font:500 9px var(--mono);color:var(--ink4);margin-left:5px}
.asstrow{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--line);cursor:pointer}.asstrow:first-of-type{border-top:0}
.asstico{width:24px;height:24px;border-radius:7px;background:var(--mine-soft);border:1px solid var(--mine-line);display:flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.asstm{flex:1;min-width:0}.asstl{font:600 12px var(--sans);color:var(--ink)}.assth{font:500 9.5px var(--sans);color:var(--ink3);margin-top:2px}
.asstgo{font:600 10px var(--mono);color:var(--mine);flex:none}
.tagchips{display:flex;flex-wrap:wrap;gap:6px}
.tagchip{font:600 10.5px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:6px 9px}
.tagchip i{font-style:normal;font:700 8px var(--mono);color:var(--ink4);margin-left:3px}
.tagchip.auto{color:var(--t-sourced);border-color:var(--t-sourced)55;background:var(--t-sourced)12}.tagchip.auto i{color:var(--t-sourced)}
.tagchip.pick{cursor:pointer}.tagchip.pick.act{color:var(--mine);border-color:var(--mine-line);background:var(--mine-soft)}
.candrow{display:flex;align-items:center;gap:9px;margin-top:9px;padding:9px;background:#ffffff05;border:1px dashed var(--line2);border-radius:11px;cursor:pointer}
.candi{width:24px;height:24px;border-radius:7px;background:#ffffff08;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font:700 15px var(--sans);color:var(--ink3);flex:none}
.candm{flex:1;min-width:0}.candl{font:600 12px var(--sans);color:var(--ink)}.candh{font:500 9.5px var(--sans);color:var(--ink3);margin-top:2px}
.candsheet{padding:0 2px}
.candcrit{margin-top:10px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:10px}
.critrow{display:flex;align-items:center;gap:8px;padding:6px 0;font:600 11.5px var(--sans);color:var(--ink2)}
.critdot{width:8px;height:8px;border-radius:50%;background:var(--ink4)}
.critst{margin-left:auto;font:700 9px var(--mono);color:var(--t-developing);background:var(--t-developing)18;border-radius:6px;padding:2px 6px}
/* B8 Category Intelligence — ingredientCard v2 · Smart Swaps */
.catbanner{margin:0 12px 8px;background:linear-gradient(100deg,#37e0c81a,#6aa6ff14);border:1px solid #37e0c840;border-radius:12px;padding:11px 13px;font:600 12px var(--sans);color:var(--ink);cursor:pointer}
.catintel{padding:2px 0}
.cathd{font:700 13px var(--sans);color:var(--ink);margin:2px 2px 4px}.cathd .ce{font:500 9px var(--mono);color:var(--ink4);margin-left:5px}
.catcard{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px;margin-top:8px}
.fecrow{display:flex;gap:7px;margin-bottom:9px}
.fec{flex:1;min-width:0;text-align:center;font:700 12px var(--sans);color:var(--ink);background:#ffffff06;border:1px solid var(--line);border-radius:10px;padding:8px 4px}
.fec i{display:block;font:700 8px var(--mono);font-style:normal;color:var(--ink4);margin-bottom:3px;letter-spacing:.05em;text-transform:uppercase}
.fec.fit{border-color:var(--t-sourced)44}.fec.ev{border-color:var(--mine-line)}.fec.cau{border-color:var(--t-developing)44}
.daChip{display:inline-block;font:700 9.5px var(--mono);border-radius:8px;padding:3px 8px;color:var(--ink3);background:#ffffff08;border:1px solid var(--line)}
.daChip.rich{color:var(--t-sourced);background:var(--t-sourced)12;border-color:var(--t-sourced)44}
.daChip.none{color:var(--ink4)}
.catbody{margin-top:9px}
.catsub{font:700 10px var(--mono);color:var(--ink3);letter-spacing:.03em;text-transform:uppercase;margin:9px 0 4px}
.catcl{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line)}
.catcl:first-child{border-top:0}
.catcll{flex:0 0 auto;font:600 12px var(--sans);color:var(--ink)}
.catclv{flex:1;min-width:0;text-align:right;font:500 11.5px var(--sans);color:var(--ink3)}
.catclv.ok{color:var(--t-sourced)}.catclv.warn{color:var(--t-developing)}
.catcl .daChip{flex:0 0 auto}
.catboth{margin:2px 0}
.catbrow{font:500 11.5px/1.5 var(--sans);color:var(--ink2);padding:5px 0;border-top:1px solid var(--line)}.catbrow:first-child{border-top:0}
.cateway{margin-top:9px;font:500 9.5px/1.5 var(--sans);color:var(--ink4);background:#ffffff05;border:1px dashed var(--line2);border-radius:9px;padding:7px 9px}.cateway b{color:var(--ink3)}
.catnotice{margin-top:7px;font:600 10px var(--sans);color:var(--t-developing)}
.catbanner.food{background:linear-gradient(100deg,#f0a84a1a,#e8964a14);border-color:#f0a84a44}
.catbanner.fashion{background:linear-gradient(100deg,#e25c8a1a,#9b8cff14);border-color:#e25c8a44}
/* U7 K-Fashion — Outfit ID · Seen on · where to buy · 룩북 */
.kfhd{font:700 13px var(--sans);color:var(--ink);margin:2px 2px 6px}.kfhd .ce{font:500 9px var(--mono);color:var(--ink4);margin-left:5px}
.kfcard{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 0;margin-top:8px}
.kfid{font:600 12.5px var(--sans);color:var(--ink);padding:0 12px}.kfid .kfidk{font:700 9px var(--mono);color:var(--ink3);text-transform:uppercase}
.kfpiece{display:flex;align-items:center;gap:9px;padding:8px 12px;border-top:1px solid var(--line)}
.kfpiece .kfpart{flex:0 0 44px;font:700 11.5px var(--sans);color:var(--ink)}
.kfpiece .kfpm{flex:1;min-width:0}.kfpb{font:600 12px var(--sans);color:var(--ink)}.kfpf{font:500 9.5px var(--sans);color:var(--ink3);margin-top:2px}
.kfpiece .kfbuy{flex:none;font:700 10px var(--mono);color:var(--mine)}
.kfseens{padding:0 12px}
.kfseen{display:flex;gap:9px;padding:6px 0;border-top:1px solid var(--line)}
.kfseen .kfseenk{flex:0 0 66px;font:700 10.5px var(--sans);color:var(--ink2)}
.kfseen .kfseent{flex:1;min-width:0;font:500 11px var(--sans);color:var(--ink3)}
.kflookbook{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:0 12px}
.kflook{cursor:pointer}
.kflookph{height:64px;border-radius:10px;background:linear-gradient(135deg,#e25c8a33,#0c1226)}
.kflookt{font:600 10px var(--sans);color:var(--ink2);margin-top:4px;text-align:center}
.swapcard{margin-top:9px}
.swaphd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.swapo{font:600 12.5px var(--sans);color:var(--ink3);text-decoration:line-through;text-decoration-color:var(--ink4)}
.swaparrow{color:var(--t-sourced);font:700 13px var(--sans)}
.swaps{font:700 13px var(--sans);color:var(--ink)}
.nutrirow{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.nutricell{display:inline-flex;align-items:center;gap:5px;font:600 10.5px var(--sans);color:var(--ink2);background:#ffffff06;border:1px solid var(--line);border-radius:9px;padding:5px 8px}
/* global compose FAB — pulse/community/my에서만 표시(router 토글) */
/* Daniel 260717 #5c: Floating FAB → Nav-attached Contextual Create. nav 바로 위(~11px)·nav 우측 경계 안쪽(~10px)에
   부착 · nav와 동일 glass/blur/border/shadow + Active blue accent(--mine) · 보라 gradient·emoji 제거 · line-style compose 아이콘. */
/* nav(max-width:392·중앙정렬)의 우측 경계 = 50% + 196px. FAB 우측 경계를 그 안쪽 ~10px(50%+186px) →
   right = 50% - 186px. bottom 91px = nav 상단(뷰포트 하단 80px) + ~11px. 전 폭에서 nav 우측에 부착. */
/* FO-F7: 네비 높이는 collapse 상태에 따라 변하므로 픽셀을 박지 않는다.
   --fabbtm 은 router.js 가 #dock 실측값으로 채운다(디자인 토큰 아니라 런타임 레이아웃값). */
.composefab{position:fixed;right:calc(50% - 186px);bottom:calc(var(--fabbtm, 91px) + env(safe-area-inset-bottom));width:44px;height:44px;border-radius:14px;
  /* WB(Daniel): creation FAB = 하단 네비와 같은 clear glass */
  background:rgba(255,255,255,.03);backdrop-filter:blur(6px) saturate(1.4) brightness(1.03);-webkit-backdrop-filter:blur(6px) saturate(1.4) brightness(1.03);
  border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 22px -10px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(255,255,255,.12),inset 1px 0 0 rgba(255,255,255,.12),inset -1px 0 0 rgba(255,255,255,.12);color:var(--mine);
  display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:60;
  transition:width .28s cubic-bezier(.22,1,.36,1),height .28s cubic-bezier(.22,1,.36,1),border-radius .28s ease,transform .15s}
.composefab svg{width:22px;height:22px;transition:width .24s ease,height .24s ease}
.composefab[hidden]{display:none}  /* hidden 속성이 .composefab display:flex를 이기도록 */
/* ③ 2-state(연속 애니 아님): scroll-down → compact 33px, scroll-up/상단 → 44px. router.js가 nav.collapsed와 동기 토글. */
.composefab.compact{width:33px;height:33px;border-radius:11px}
.composefab.compact svg{width:18px;height:18px}
.composefab:active{transform:scale(.92)}
/* ===== Notification ===== */
.notifsec{font:700 9px var(--mono);color:var(--ink4);text-transform:uppercase;letter-spacing:.06em;margin:16px 12px 9px}
.notif{display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin:0 12px 8px;position:relative;cursor:pointer}
.notif.unread{border-color:#6aa6ff44;background:linear-gradient(180deg,#13203f,#0f1730)}
.notif .ni{width:32px;height:32px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;font:700 14px var(--mono);color:#06121f}
.notif .nt{font:600 11.5px/1.4 var(--sans);color:var(--ink)}.notif .nt b{color:#bcd3ff}
.notif .nm{font:500 9.5px var(--mono);color:var(--ink4);margin-top:4px}
.notif .ndot{position:absolute;top:12px;right:12px;width:7px;height:7px;border-radius:50%;background:var(--mine)}
.ntoggle{display:flex;align-items:center;gap:10px;margin:4px 12px 22px;background:#ffffff06;border:1px solid var(--line);border-radius:12px;padding:13px}
.ntoggle .ntt{flex:1}.ntoggle .ntt .a{font:600 11.5px var(--sans)}.ntoggle .ntt .b{font:500 9.5px var(--sans);color:var(--ink3);margin-top:2px}
.tg{width:40px;height:23px;border-radius:12px;background:#6aa6ff;position:relative;flex:none;cursor:pointer}
.tg::after{content:"";position:absolute;top:2px;right:2px;width:19px;height:19px;border-radius:50%;background:#fff;transition:.15s}
.tg.off{background:#ffffff1a}.tg.off::after{right:auto;left:2px}
/* ===== Page render forms (graphs/charts/tables — D4 board) ===== */
.rfhd{display:flex;align-items:center;gap:7px;font:700 9px var(--mono);color:var(--mine);letter-spacing:.03em;margin-bottom:10px}
.rfhd .rfn{color:var(--ink);font:700 12px var(--sans);letter-spacing:-.01em}
.rfhd .sampletag{font:600 8px var(--mono);color:var(--ink4);background:#ffffff06;border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin-left:auto}
.rTl .ti{display:flex;gap:10px;position:relative;padding-bottom:13px}
.rTl .ti:last-child{padding-bottom:0}
.rTl .ti::before{content:"";position:absolute;left:5px;top:13px;bottom:0;width:1.5px;background:var(--line2)}
.rTl .ti:last-child::before{display:none}
.rTl .td3{width:11px;height:11px;border-radius:50%;border:2px solid var(--mine);background:var(--bg1);flex:none;margin-top:2px;z-index:1}
.rTl .ti.hot .td3{border-color:var(--spiking);background:var(--spiking)}
.rTl .tw{font:700 8px var(--mono);color:var(--ink4)}
.rTl .tt{font:600 11.5px var(--sans);color:var(--ink);margin-top:1px}
.rTr{position:relative}
.rTr svg{width:100%;height:62px;display:block}
.rTr .xl{display:flex;justify-content:space-between;font:600 8px var(--mono);color:var(--ink4);margin-top:5px}
.rTr .up{position:absolute;top:-2px;right:0;font:700 9px var(--mono);color:#5ad6a8}
.rMx{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden;font:600 11px var(--sans)}
.rMx .mr{display:grid;grid-template-columns:1.15fr 1fr 1fr;border-bottom:1px solid var(--line)}
.rMx .mr:last-child{border-bottom:0}
.rMx .mc2{padding:8px 10px;border-right:1px solid var(--line);color:var(--ink2)}
.rMx .mc2:last-child{border-right:0}
.rMx .mr.h .mc2{background:#ffffff06;color:var(--ink3);font:700 9px var(--mono)}
.rMx .mr .mc2:first-child{color:var(--ink3);font-weight:700}
.rMx b{color:#9ec6ff}
.rHi{display:flex;align-items:flex-end;gap:5px;height:56px}
.rHi .hb{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--mine),#6aa6ff33)}
.rHi .hb.pk{background:linear-gradient(180deg,var(--spiking),#efa23533)}
.rHil{display:flex;gap:5px;margin-top:5px}.rHil span{flex:1;text-align:center;font:600 7.5px var(--mono);color:var(--ink4)}
.rTe{font:600 11px var(--sans);color:var(--ink2);line-height:1.95}
.rTe .l1{color:var(--ink)}.rTe .ind{color:var(--ink4);font-family:var(--mono)}
.rSf .sfi{display:flex;gap:10px;align-items:flex-start;margin-bottom:9px}
.rSf .sfi:last-child{margin-bottom:0}
.rSf .sfn{width:20px;height:20px;border-radius:6px;background:var(--mine);color:#06121f;font:700 10px var(--mono);display:flex;align-items:center;justify-content:center;flex:none}
.rSf .sft{font:600 11.5px var(--sans);color:var(--ink)}.rSf .sfw{font:500 9.5px var(--sans);color:var(--ink3);margin-top:1px}
.rAt .at1{font:600 11px/1.5 var(--sans);color:var(--ink);background:#ffffff06;border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.rAt .at1 .lab{font:700 8px var(--mono);color:var(--ink4);display:block;margin-bottom:3px}
.rAt .at2{margin-top:6px}.rAt .at2 .lab{color:var(--mine)}
.rCl .cli{display:flex;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}
.rCl .cli:last-child{border-bottom:0}
.rCl .clb{width:9px;height:9px;border-radius:50%;flex:none;margin-top:3px}
.rCl .clt{font:600 11.5px/1.4 var(--sans);color:var(--ink)}
.rCl .clm{font:600 8.5px var(--mono);margin-top:3px}
.rDf .dl{font:600 10.5px var(--mono);padding:7px 10px;border-radius:8px;margin-bottom:5px}
.rDf .del{background:#ff5a4a12;color:#ff8a7a}.rDf .del s{opacity:.7}
.rDf .add{background:#2dd4a812;color:#5ad6a8}
.rDf .dm{font:500 9px/1.4 var(--sans);color:var(--ink4);margin-top:4px}
.c.dnode .img,.node.focus .c.dnode .img{height:auto;min-height:104px;padding:0;display:block;overflow:hidden}
.node.compact .c.dnode .img{height:84px;min-height:0;padding:0;display:block;overflow:hidden}
.node.mini .c.dnode .img{height:56px;min-height:0;padding:0;display:block;overflow:hidden}
.node.mini .c.dnode .drhd{display:none}
.node.compact .c.dnode .drbox,.node.mini .c.dnode .drbox{padding:6px 8px 7px}
.c.dnode .ph{display:none}
.c.dnode.rec{border:1px dashed #37e0c83d}
.drbox{position:relative;padding:8px 10px 9px;background:linear-gradient(180deg,#101a33,#0c1226)}
.drhd{font:700 7.5px var(--mono);color:#8fa8d8;letter-spacing:.02em;margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drtr{position:relative;height:42px}
.drtr svg{width:100%;height:38px;display:block}
.drtr .drup{position:absolute;top:-1px;right:0;font:800 8.5px var(--mono);color:#5ad6a8}
.drmx{display:grid;grid-template-columns:auto 1fr 1fr;gap:1px;background:var(--line2);border-radius:7px;overflow:hidden;font:600 9px var(--sans)}
.drmx>div{background:var(--card);padding:4px 6px;color:var(--ink2)}
.drmx .drmh{background:#1a2342;font:700 8px var(--mono);color:var(--ink3)}
.drmx .drmc{font-weight:700;color:var(--ink3)}
.drmx .drmv{color:var(--ink)}
.drmap{font:600 9.5px var(--sans)}
.drint{display:flex;align-items:center;gap:6px;color:var(--ink)}
.drintb{flex:1;height:6px;border-radius:4px;background:linear-gradient(90deg,#37e0c833,#37e0c8,#37e0c833)}
.drplace{display:flex;align-items:center;gap:5px;color:var(--ink2);background:#ffffff08;border-radius:6px;padding:5px 7px;margin-top:6px;font-size:9px}
.drpin{width:10px;height:10px;border-radius:50% 50% 50% 0;background:var(--spiking);transform:rotate(-45deg);flex:none}
.drrk{display:flex;flex-direction:column;gap:4px}
.drrk .drr{display:flex;align-items:center;gap:6px;font:600 9.5px var(--sans)}
.drrk .drn{width:14px;height:14px;border-radius:5px;background:#6aa6ff22;border:1px solid #6aa6ff44;color:#9ec6ff;font:700 8px var(--mono);display:flex;align-items:center;justify-content:center;flex:none}
.drrk .drl{color:var(--ink2);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drrk .drv{color:var(--ink);font:700 9px var(--mono);white-space:nowrap}
.drrk .drv i{color:#5ad6a8;font-style:normal}
.drcp .drbar{height:15px;border-radius:8px;overflow:hidden;display:flex}
.drcp .drbar i{height:100%}
.drcp .drnote{display:block;font:700 8px var(--mono);color:var(--ink2);margin-top:6px}
.drht{display:flex;align-items:baseline;gap:8px}
.drht .drhv{font:800 26px var(--mono);color:#ff8a5a;line-height:1}
.drht .drhs{font:600 8.5px var(--mono);color:var(--ink2)}
.drpl2{display:flex;flex-direction:column;gap:6px}
.drpl2 .drp{display:flex;align-items:center;gap:6px;font:600 9px var(--sans)}
.drpl2 .drpll{color:var(--ink2);width:54px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
.drpl2 .drpb{flex:1;height:7px;border-radius:4px;background:#ffffff10;overflow:hidden}
.drpl2 .drpb i{display:block;height:100%;background:linear-gradient(90deg,#9b8cff,#6aa6ff)}
.drpl2 .drpv{color:var(--ink);font:700 8px var(--mono);flex:none}
.rIv .rIvbar{display:flex;align-items:center;gap:7px;font:600 10px var(--mono);color:var(--ink)}
.rIv .rIvb{flex:1;height:7px;border-radius:4px;background:linear-gradient(90deg,#6aa6ff44,#6aa6ff,#6aa6ff44)}
.rIv .rIvp{display:flex;align-items:center;gap:6px;margin-top:9px;font:600 10.5px var(--sans);color:var(--ink2);background:#ffffff06;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.rIv .pin{width:11px;height:11px;border-radius:50% 50% 50% 0;background:var(--spiking);transform:rotate(-45deg);flex:none}
.rVn{display:flex;justify-content:center}.rVn svg{height:96px;width:100%;max-width:240px}
.rWk{font:500 11.5px/1.65 var(--sans);color:var(--ink2)}
.rWk .src{font:700 8px var(--mono);color:var(--ink4);margin-top:8px;display:block}
.rWk .spoiler{filter:blur(5px);cursor:pointer;transition:filter .2s;color:var(--ink)}
.rWk .spoiler.on{filter:none}
.rAi{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.rAi .rAibg{height:120px;background:radial-gradient(120% 120% at 30% 20%,var(--cc,#8b7ff0)66,#0c1226)}
.rAi .hot{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--mine);box-shadow:0 0 0 4px #6aa6ff33;transform:translate(-50%,-50%);z-index:2}
.rAi .hl{position:absolute;font:700 8.5px var(--sans);color:#fff;background:#0a0f1cd9;border:1px solid var(--line2);border-radius:6px;padding:2px 6px;white-space:nowrap;transform:translateX(-50%);z-index:3}
.savedc .si .dph{width:100%;height:100%;border-radius:inherit}
.ktoast{position:absolute;left:50%;bottom:104px;transform:translateX(-50%) translateY(8px);background:#0f1730;border:1px solid var(--line2);color:var(--ink);font:600 12px var(--sans);padding:10px 16px;border-radius:12px;z-index:200;opacity:0;pointer-events:none;transition:.22s;box-shadow:0 10px 30px #000a;white-space:nowrap;max-width:86%}
.ktoast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.dtopic,.reqrow,.savedc,.opincard[data-go],.kjoin,.myrow[data-go]{cursor:pointer}
/* P-3: Community scope label(context 출처) */
.commscope{margin:10px 12px 0;font:700 11px var(--mono);color:#9ec6ff;background:var(--mine-soft);border:1px solid var(--mine-line);border-radius:9px;padding:9px 12px}
/* v6.1 D16-019: Community global '내 관심사 N' header pill + sheet + scope caption */
.commhdrbar{display:flex;justify-content:flex-end;align-items:center;margin:10px 12px 0}
.cpeekpill{display:inline-flex;align-items:center;gap:6px;font:700 12.5px var(--sans);color:var(--ink2);background:var(--mine-soft);border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;transition:all .15s}
.cpeekpill b{color:#9ec6ff;font-weight:800}
.cpeekpill.act{color:#cfe0ff;background:#6aa6ff1f;border-color:#6aa6ff55}
.cpeekpill .cpeekon{color:#7fe3b8;font-size:8px;font-style:normal}
.commscopecap{margin:8px 12px 0;font:600 11.5px var(--sans);color:var(--ink2);background:#6aa6ff10;border:1px solid #6aa6ff2b;border-radius:9px;padding:7px 11px}
.commscopecap .cscapclr{color:#9ec6ff;font-weight:700;cursor:pointer;text-decoration:underline}
.cpsrow{display:flex;align-items:center;gap:9px;font:600 14px var(--sans);color:var(--ink);padding:11px 6px;border-bottom:1px solid var(--line);cursor:pointer}
.cpsrow.sel{color:#cfe0ff}
.cpsrow .cpschk{width:16px;color:#7fe3b8;font-weight:800;text-align:center}
.cpsrow .cpslbl{flex:1}
/* P1-16(D6-30): Community 내 관심사 scope 칩 */
.commpeek{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 12px 0}
.commpeek .cpklbl{font:700 10px var(--mono);color:var(--ink3);margin-right:2px}
.commpeek .peekchip{display:inline-flex;align-items:center;gap:5px;font:600 11px var(--sans);color:#cfe0ff;background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:13px;padding:4px 6px 4px 11px}
.commpeek .peekx{cursor:pointer;font-weight:700;color:#9ec6ff;padding:0 4px;border-radius:50%}
.commpeek .peekx:hover{background:#6aa6ff33}
.commfeat{margin-top:12px}
.commfeat .cfl{font:700 8px var(--mono);color:var(--ink4);letter-spacing:.05em}
.commfeat .cfrow{display:flex;gap:7px;overflow-x:auto;padding:7px 0 2px}
.commfeat .cfchip{flex:none;font:600 11px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;white-space:nowrap}
.commfeat .cfchip.act{color:#9ec6ff;background:#6aa6ff1c;border-color:#6aa6ff55}
.cscope{display:flex;gap:9px;align-items:flex-start;background:#6aa6ff0e;border:1px solid #6aa6ff2e;border-radius:12px;padding:10px 12px;font:600 10px/1.55 var(--sans);color:var(--ink2);margin-top:12px}
.cscope b{color:#9ec6ff}
.dthread{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line);cursor:pointer}
.dthread:first-child{border-top:0;padding-top:4px}
.dthread .dti{width:32px;height:32px;border-radius:10px;background:#ffffff08;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.dthread .dtm{flex:1;min-width:0}
.dthread .dtt{font:700 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dthread .dts{font:500 10px var(--sans);color:var(--ink3);margin-top:2px}
.dthread .dtc{font:700 10px var(--mono);color:var(--ink2);flex:none}
.dmap{display:flex;flex-direction:column;gap:9px}
.dmlane{display:flex;align-items:center;gap:9px}
.dmlane .dmk{width:42px;font:700 9px var(--mono);flex:none;text-align:center;padding:4px 0;border-radius:7px}
.dmlane .dmbar{height:9px;border-radius:5px;flex:1;background:#ffffff0c;overflow:hidden;position:relative;max-width:120px}
.dmlane .dmbar i{position:absolute;left:0;top:0;bottom:0;border-radius:5px}
.dmlane .dmt{font:600 11px var(--sans);color:var(--ink2)}
.pollscope{font:600 8.5px var(--mono);color:var(--ink3);margin:3px 0 9px;line-height:1.55}
.pcluster{display:flex;flex-direction:column;gap:7px;margin-top:2px}
.pcrow{display:flex;align-items:center;gap:9px;font:600 11px var(--sans);color:var(--ink)}
.pcrow .pck{width:42px;font:700 8.5px var(--mono);color:#b3a6ec;flex:none}
.pcrow .pcb{width:74px;height:9px;border-radius:5px;background:#9b8cff1c;overflow:hidden;flex:none}
.pcrow .pcb i{display:block;height:100%;background:linear-gradient(90deg,#9b8cff,#6aa6ff)}
.recapbox{background:#9b8cff0e;border:1px solid #9b8cff2e;border-radius:11px;padding:10px 12px;margin-top:10px;font:500 11px/1.6 var(--sans);color:var(--ink2)}
.recapbox b{color:var(--ink)}
.recapbox .rl{font:700 8px var(--mono);color:#b3a6ec;display:block;margin-bottom:5px;letter-spacing:.03em}
.ladder{display:flex;align-items:center;gap:5px;margin-top:10px;font:700 9px var(--mono);color:var(--ink3);flex-wrap:wrap}
.ladder span{background:#ffffff08;border:1px solid var(--line);border-radius:6px;padding:3px 8px}
.ladder b{color:var(--ink4)}
.rawpost{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px}
.rawpost .rph{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rawpost .rpav{width:26px;height:26px;border-radius:50%;flex:none}
.rawpost .rpu{font:700 10.5px var(--sans);color:var(--ink2)}
.rawpost .rplab{margin-left:auto;font:700 8px var(--mono);color:#8794b5;border:1px solid #8794b555;border-radius:6px;padding:2px 7px}
.rawpost .rptext{font:400 12.5px/1.55 var(--sans);color:var(--ink)}
.impactrow{display:flex;gap:11px;padding:11px 0;border-top:1px solid var(--line)}
.impactrow:first-child{border-top:0;padding-top:4px}
.impactrow .imi{font-size:17px;flex:none;line-height:1.3}
.impactrow .imt{font:500 11px/1.55 var(--sans);color:var(--ink2)}
.impactrow .imt b{color:var(--ink)}
.impactrow .imc{font:700 8px var(--mono);color:#5ad6a8;margin-top:4px;display:block}
.fjproof{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.fjp{display:flex;align-items:center;gap:10px;background:#2dd4a80c;border:1px solid #2dd4a82e;border-radius:11px;padding:9px 11px}
.fjp .fpi{font-size:17px;flex:none}
.fjp .fpt{flex:1;min-width:0}
.fjp .fpt b{font:700 11.5px var(--sans);color:var(--ink);display:block}
.fjp .fps{font:500 9px/1.4 var(--sans);color:var(--ink3);margin-top:2px;display:block}
.fjp .fpv{font:700 8px var(--mono);color:#5ad6a8;border:1px solid #2dd4a855;border-radius:6px;padding:3px 7px;flex:none;white-space:nowrap}
.scopecard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px}
.scopecard .sct{font:700 12.5px var(--sans);color:var(--ink)}
.scopecard .scchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.scopecard .scchips span{font:600 10px var(--sans);color:#9ec6ff;background:#6aa6ff14;border:1px solid #6aa6ff44;border-radius:999px;padding:4px 11px;cursor:pointer}
.scopecard .actrow{font:600 13px var(--sans);color:var(--ink2)}
.scopecard .actrow b{color:var(--ink);font-weight:800}

/* ===== §U5 My Circle — 인라인 작성기 + raw post stream + 접힘 보조 (V17) ===== */
.mccompose{background:#ffffff06;border:1px solid var(--line);border-radius:14px;padding:11px 12px;margin-top:10px}
.mcc-in{font:600 12.5px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer}
.mcc-in:hover{color:var(--ink2)}
.mcc-acts{display:flex;gap:6px;margin-top:8px}
.mcc-act{flex:1;text-align:center;font:700 11.5px var(--sans);color:var(--ink2);background:#ffffff0a;border:1px solid var(--line);border-radius:9px;padding:7px 4px;cursor:pointer;transition:all .15s}
.mcc-act:hover{color:var(--ink);border-color:#6aa6ff55;background:#6aa6ff14}
.mcstream{margin-top:12px}
.mcpost{background:#ffffff06;border:1px solid var(--line);border-radius:13px;padding:11px 12px;margin-bottom:8px;cursor:pointer;transition:border-color .15s}
.mcpost:hover{border-color:#6aa6ff44}
.mcp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mcp-int{font:800 10.5px var(--mono)}
.mcp-anchor{font:600 10px var(--sans);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);padding:2px 8px;border-radius:12px}
.mcp-raw{margin-left:auto;font:800 8.5px var(--mono);color:#e0a04a;background:#e0a04a1a;border:1px solid #e0a04a44;padding:2px 7px;border-radius:10px;letter-spacing:.06em;text-transform:uppercase}
.mcp-t{font:700 13px var(--sans);color:var(--ink);margin-top:6px;line-height:1.4}
.mcp-b{font:500 11.5px var(--sans);color:var(--ink2);margin-top:4px;line-height:1.55}
.mcp-f{display:flex;align-items:center;gap:12px;margin-top:8px;font:600 10px var(--mono);color:var(--ink3)}
.mcp-rep,.mcp-ago{color:var(--ink3)}
.mcsecwrap{margin-top:12px}
.mcsec-tog{display:flex;align-items:center;justify-content:space-between;font:700 11.5px var(--sans);color:var(--ink2);background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:10px 12px;cursor:pointer}
.mcsec-tog.open{color:var(--ink)}
.mcsec-chev{transition:transform .18s}.mcsec-tog.open .mcsec-chev{transform:rotate(180deg)}
.mcsec-body{margin-top:8px}
/* raw post 상세 시트 */
.rpsheet{padding:2px 2px 8px}
.rp-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:800 11px var(--mono)}
.rp-t{font:800 15px var(--sans);color:var(--ink);margin-top:8px;line-height:1.4}
.rp-b{font:500 12.5px var(--sans);color:var(--ink2);margin-top:8px;line-height:1.65;white-space:pre-wrap}
.rplin{font:600 10.5px var(--sans);color:var(--ink2);background:#5fd0a015;border:1px solid #5fd0a03a;border-radius:10px;padding:9px 11px;margin-top:11px;line-height:1.5}
.rplin.muted{color:var(--ink3);background:#ffffff08;border-color:var(--line)}
.rp-reps{margin-top:13px}
.rp-reps h4{font:800 10px var(--mono);letter-spacing:.05em;color:var(--ink3);text-transform:uppercase;margin:0 0 7px}
.rpr{font:500 11.5px var(--sans);color:var(--ink2);padding:8px 0;border-top:1px solid var(--line);line-height:1.55}
.rpr-a{font:700 10.5px var(--mono);color:var(--ink3);margin-right:6px}

/* ===== §U6 Community utility 랭킹 — methodology(axis·cohort) 노출 · 의견 분포와 5초 구분 ===== */
/* ===== v6.1 Track F (D16-024) Community ranKING — Value Discovery Hub (3 modules · slim card) ===== */
.cranksec{margin-top:12px}
/* v4-fb: 모든 ranKING 그룹 — 타이틀 유지, 박스/배경 없이 정렬만 유지(통일) */
.cranksec.noboxsec{margin:14px 12px 0;background:transparent;border:0;padding:0}
.crmod{margin-bottom:20px}
/* top5 + expand(6–10) */
.crmore{margin-top:2px}
.crmore>summary{list-style:none;cursor:pointer;font:700 12px var(--sans);color:var(--mine,#6aa6ff);padding:8px 2px 2px}
.crmore>summary::-webkit-details-marker{display:none}
.crmore>summary::after{content:' ▾'}
.crmore[open]>summary::after{content:' ▴'}
.crmorebody{margin-top:6px}
.crmodh{display:flex;align-items:baseline;gap:8px;font:800 14px var(--sans);color:var(--ink);margin-bottom:9px}
.crmodh .ce{font:600 10.5px var(--sans);color:var(--ink3)}
.crcard{display:flex;align-items:center;gap:10px;background:#ffffff06;border:1px solid var(--line);border-radius:12px;padding:9px 11px;margin-bottom:7px;cursor:pointer;transition:border-color .15s}
.crcard:hover{border-color:#6aa6ff55}
.crcard.noopen{cursor:default}
.crrank{flex:none;width:20px;text-align:center;font:900 15px var(--sans);color:#9ec6ff}
.crthumb{flex:none;width:38px;height:38px;border-radius:9px;overflow:hidden;background:#ffffff10;display:flex;align-items:center;justify-content:center}
.crthumb img{width:100%;height:100%;object-fit:cover}
.crthumb.noimg{background:linear-gradient(135deg,#6aa6ff22,#37e0c822)}
.crthumbi{font-size:17px;line-height:1}
.crthumb.vans{color:#5fd0a0;font-size:16px;background:#5fd0a018}
.crmain{flex:1;min-width:0}
.crt{font:700 13px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crmeta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:3px 0}
.crtype{font:800 9.5px var(--sans);color:#9ec6ff;background:#6aa6ff14;border-radius:999px;padding:2px 8px}
.crtype.va{color:#5fd0a0;background:#5fd0a018}
.crm{font:700 10px var(--sans);color:var(--ink2)}
.crper{font:500 10px var(--sans);color:var(--ink3)}
.crwhy{font:500 11px/1.4 var(--sans);color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crsub{margin-bottom:11px}
.crsubh{display:flex;align-items:baseline;gap:7px;font:800 12px var(--sans);color:var(--ink2);margin-bottom:7px}
.crsubh .ce{font:600 9.5px var(--sans);color:var(--ink3)}
.crkrewscroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.crkrew{flex:none;width:150px;background:#ffffff06;border:1px solid var(--line);border-radius:11px;padding:9px 10px;cursor:pointer}
.crkrew:hover{border-color:#37e0c855}
.crkrewnm{font:700 12px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crkrewsub{font:500 10px var(--sans);color:var(--ink3);margin-top:3px}
.crtopic{display:flex;align-items:center;gap:9px;background:#ffffff05;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;cursor:pointer}
.crtopic:hover{border-color:#efc34a55}
.crtrank{flex:none;width:18px;text-align:center;font:800 13px var(--sans);color:#efc34a}
.crtmain{flex:1;min-width:0}
.crtt{font:700 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crtmeta{display:flex;gap:6px;align-items:center;margin-top:2px}
.crttype{font:800 9px var(--sans);color:#efc34a;background:#efc34a16;border-radius:999px;padding:1px 7px}
.crmethwrap{margin-top:6px;border-top:1px solid var(--line);padding-top:10px}
.crmethtoggle{font:700 12px var(--sans);color:#9ec6ff;cursor:pointer}
.crmethbody{font:500 11.5px/1.6 var(--sans);color:var(--ink3);margin-top:8px;background:#ffffff05;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.crmethbody b{color:var(--ink2)}
.uranksec{margin-top:12px}
.urank{background:#ffffff06;border:1px solid var(--line);border-radius:13px;padding:11px 12px;margin-bottom:8px;cursor:pointer;transition:border-color .15s}
.urank:hover{border-color:#5fd0a055}
.ur-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ur-kind{font:800 10px var(--mono);color:var(--ink2);letter-spacing:.02em}
.ur-util{font:800 8.5px var(--mono);color:#5fd0a0;background:#5fd0a01a;border:1px solid #5fd0a044;padding:2px 7px;border-radius:10px;letter-spacing:.06em;text-transform:uppercase}
.ur-trust{margin-left:auto;font:700 9px var(--mono);border:1px solid;padding:2px 7px;border-radius:10px}
.ur-t{font:800 13px var(--sans);color:var(--ink);margin-top:6px;line-height:1.4}
.ur-body{font:500 11.5px var(--sans);color:var(--ink2);margin-top:4px;line-height:1.55}
.ur-meth{font:600 10px var(--mono);color:var(--ink2);background:#7c9cff12;border:1px solid #7c9cff2e;border-radius:9px;padding:7px 9px;margin-top:8px;line-height:1.5}
.ur-meth.muted{color:#e2554f;background:#e2554f14;border-color:#e2554f44}
.ur-mi{display:inline-block;font:800 8.5px var(--mono);color:#7c9cff;text-transform:uppercase;letter-spacing:.05em;margin-right:5px}
/* RNK-02: Feed Hub와 동일 계약 라인(축·메타·주의) + 상세 계약 행 */
.ur-axis{font:600 9.5px var(--mono);color:#9ec6ff;margin-top:6px;line-height:1.4;overflow:hidden;text-overflow:ellipsis}
.ur-meta{font:500 9.5px var(--mono);color:var(--ink3);margin-top:7px;line-height:1.5}
.ur-cav{font:500 10px var(--sans);color:#e0a44a;margin-top:5px;line-height:1.45}
.ur-rows{border:1px solid var(--line);border-radius:11px;overflow:hidden;margin:10px 0}
.ur-rows .rpr{display:block;padding:7px 11px;border-bottom:1px solid #ffffff08;font:500 11.5px var(--sans);color:var(--ink);line-height:1.5}
.ur-rows .rpr:last-child{border-bottom:0}
.ur-rows .rpr-a{font:700 10px var(--sans);color:var(--ink3);margin-right:6px}

/* ===== §U8 Kosmos tri-layer 패널 + nodeCompleteness 게이지 ===== */
.klylegend{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}
.klylg{font:600 10px var(--mono);background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:5px 9px}
.klynote{font:500 11px var(--sans);color:var(--ink2);line-height:1.55;background:#7c9cff0f;border:1px solid #7c9cff26;border-radius:10px;padding:9px 11px;margin-bottom:10px}
.klc .klcn{display:inline-block;min-width:16px;text-align:center;font:800 9px var(--mono);color:var(--ink3);background:#ffffff10;border-radius:8px;padding:1px 5px;margin-left:5px}
.klayrow{background:#ffffff06;border:1px solid var(--line);border-radius:12px;padding:10px 11px;margin-bottom:8px;cursor:pointer;transition:border-color .15s}
.klayrow:hover{border-color:#5fd0a044}
.kly-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kly-badge{font:800 9.5px var(--mono);border:1px solid;padding:2px 8px;border-radius:10px;letter-spacing:.02em}
.kly-t{font:700 12.5px var(--sans);color:var(--ink);flex:1;min-width:0}
.kly-promo{font:800 8.5px var(--mono);color:#5fd0a0;letter-spacing:.03em}
.kly-why{font:500 10.5px var(--sans);color:var(--ink2);margin-top:6px;line-height:1.5}
/* nodeCompleteness 게이지 */
.ncgauge{margin-top:8px}
.ncbar{height:6px;border-radius:4px;background:#ffffff12;overflow:hidden}
.ncfill{display:block;height:100%;border-radius:4px;transition:width .3s}
.ncmeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:5px;font:600 9.5px var(--mono);color:var(--ink3)}
.ncval{font-weight:800}
.nclv{text-transform:uppercase;letter-spacing:.05em}
.ncmiss{color:var(--ink3)}
.ncprompt{font:500 10px var(--sans);color:var(--ink2);margin-top:5px;background:#ffffff08;border:1px dashed var(--line);border-radius:8px;padding:5px 8px;line-height:1.45}

/* ===== CoS ① scoped Feed 스포일러 안전 승계 ===== */
.sfstate{margin:0 0 11px;padding:9px 12px;border-radius:11px;font:600 11.5px var(--sans);line-height:1.5}
.sfstate.spoiler{color:#cfe0ff;background:#6aa6ff14;border:1px solid #6aa6ff44}
.sf-spoiler{position:relative}
.sf-spoiler>*:not(.sfsuGate){filter:blur(6px);pointer-events:none;user-select:none}
.sfsuGate{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;font:700 10.5px var(--sans);color:#cfe0ff;background:rgba(10,15,30,.62);border:1px solid var(--line);border-radius:12px;cursor:pointer}

/* ===== IF-17 ② 노드 자산 근접 재부착(상속 이미지) 마커 — 콘텐츠 고유 미디어와 구분(정직) ===== */
.samplecard .scimg.scinherit{position:relative}
.samplecard .scimg.scinherit .scinhtag{position:absolute;left:8px;bottom:8px;z-index:3;font:700 9px var(--mono);color:#dfe7ff;background:#0a0f1cc0;border:1px solid var(--line);border-radius:8px;padding:2px 7px;letter-spacing:.02em}

/* ===== IF-18 My Circle 포스트 인라인 답글(등록 결과) ===== */
.mcpost .mcreply{font:500 11px var(--sans);color:var(--ink2);background:#37e0c810;border:1px solid #37e0c82e;border-radius:9px;padding:6px 9px;margin-top:6px;line-height:1.5}
.mcpost .mcreply .mcr-a{font:700 9.5px var(--mono);color:#5fd0a0;margin-right:5px}
.mcpost .unitacts{margin-top:9px;border-top:1px solid var(--line);padding-top:8px}

/* ===== IF-19 My Circle 범위 토글 + 유형 필터 + 출처 칩 ===== */
.mcscopetog{display:flex;gap:4px;margin-top:10px;background:#ffffff08;border:1px solid var(--line);border-radius:12px;padding:3px}
.mcscopetog .mcst{flex:1;text-align:center;font:700 11px var(--sans);color:var(--ink3);padding:7px 4px;border-radius:9px;cursor:pointer;transition:all .15s}
.mcscopetog .mcst.act{color:var(--ink);background:#6aa6ff22;box-shadow:inset 0 0 0 1px #6aa6ff44}
.mctypechips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.mctc{font:600 10px var(--mono);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);padding:4px 10px;border-radius:13px;cursor:pointer;transition:all .15s}
.mctc.act{color:var(--ink);border-color:#6aa6ff66;background:#6aa6ff1e}
.mctimewin{display:flex;align-items:center;gap:6px;margin-top:8px;font:600 10px var(--mono);color:var(--ink3)}
.mctimewin .mctw{background:#ffffff0d;border:1px solid var(--line);padding:3px 9px;border-radius:11px;cursor:pointer}
.mctimewin .mctw.act{color:var(--ink);border-color:#5fd0a055;background:#5fd0a018}
.mcsrc{font:700 9.5px var(--mono);color:#7c9cff;background:#7c9cff16;border:1px solid #7c9cff33;padding:2px 7px;border-radius:10px}
.mcpost.mcobj{border-color:#7c9cff2e}

/* ===== IF-09 Feed 필터 칩 확대·효과 강화 ===== */
.scope.fchips{gap:7px}
.scope.fchips .chip{font:700 12px var(--sans);padding:8px 15px;border-radius:16px;transition:all .15s}
.scope.fchips .chip.act{color:#fff;background:#6aa6ff;border-color:#6aa6ff;box-shadow:0 2px 10px #6aa6ff44}

/* ===== IF-15 Feed nav 글로우 — Peek 수 비례·연속(점멸 없음)·0 소등 ===== */
/* Peek glow (Daniel 260717): Peek한 노드의 카테고리 색이 Feed·Community 아이콘 라인·글자에 누적되어
   네온사인처럼 계속 흐르는 gradient glow. 단색 아님·연속 유기적 흐름. --peekgrad/--peekc1/c2/--peekn = tray.js. */
/* v4-fb item8: stronger peek color-graduation — bigger glow, halo, dock aura, active-state fusion. */
.nav .n.peekglow{transition:color .3s;position:relative}
.nav .n.peekglow .nlbl{
  background:var(--peekgrad,linear-gradient(100deg,#6aa6ff,#8fbcff,#6aa6ff));
  background-size:260% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;font-weight:800;
  animation:peekflow 5.2s linear infinite;
  filter:drop-shadow(0 0 calc(2px + 5px*var(--peekn,0)) var(--peekc1,#6aa6ff));
}
.nav .n[data-s="feed"].peekglow svg{stroke:url(#peekGradFeed)}
.nav .n[data-s="community"].peekglow svg{stroke:url(#peekGradCommunity)}
.nav .n.peekglow svg{
  filter:drop-shadow(0 0 calc(3px + 8px*var(--peekn,0)) var(--peekc1,#6aa6ff))
         drop-shadow(0 0 calc(7px + 16px*var(--peekn,0)) var(--peekc2,#8fbcff));
  animation:peekbreath 3s ease-in-out infinite;transition:filter .3s
}
/* soft halo pill behind a peek nav icon */
.nav .n.peekglow::before{content:'';position:absolute;inset:1px 3px;border-radius:15px;z-index:-1;pointer-events:none;
  background:var(--peekgrad,linear-gradient(100deg,#6aa6ff,#8fbcff));background-size:200% 100%;
  opacity:calc(.10 + .18*var(--peekn,0));filter:blur(7px);animation:peekflow 5.2s linear infinite}
/* active + peek fusion: the icon you're standing on glows strongest with the peek palette */
.nav .n.peekglow.act svg{filter:drop-shadow(0 0 calc(5px + 11px*var(--peekn,0)) var(--peekc1))
         drop-shadow(0 0 calc(11px + 22px*var(--peekn,0)) var(--peekc2))}
.nav .n.peekglow.act::before{opacity:calc(.18 + .26*var(--peekn,0))}
/* dock-level aura band — makes the peek concept read strongly, rising behind the nav */
.dock.haspeek::before{content:'';position:absolute;left:16px;right:16px;bottom:8px;height:60px;z-index:-1;pointer-events:none;
  background:var(--peekgrad,linear-gradient(100deg,#6aa6ff,#8fbcff));background-size:230% 100%;
  border-radius:28px;opacity:calc(.14 + .24*var(--peekn,0));filter:blur(24px);animation:peekflow 6.5s linear infinite}
/* press/tap feedback on nav, fuses with the glow */
.nav .n:active{transform:scale(.9)}
.nav .n{transition:max-width .6s cubic-bezier(.32,.72,0,1),opacity .42s ease,padding .48s cubic-bezier(.32,.72,0,1),gap .36s ease,font-size .34s ease,margin .48s cubic-bezier(.32,.72,0,1),color .28s ease,transform .13s cubic-bezier(.34,1.56,.64,1)}
@keyframes peekflow{from{background-position:0% 50%}to{background-position:260% 50%}}
@keyframes peekbreath{0%,100%{opacity:.82}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.nav .n.peekglow .nlbl,.nav .n.peekglow svg,.nav .n.peekglow::before,.dock.haspeek::before{animation:none}}

/* ===== IF-05 how-to 영상 카드 — Reel-like(영상 우선) + 긴 본문 내부 펼침 ===== */
.samplecard.vidcard .scbody{margin-top:8px}
.scbody .scbmore{font:700 10px var(--mono);color:var(--mine);cursor:pointer;white-space:nowrap}
.scbody.vidclip .scbclip{display:block}

/* ===== U4-R3 My = Account Surface ===== */
.profilelayer.acctsurface{position:relative;padding-top:0;overflow:hidden;border-radius:16px}
.acctsurface .plcover{height:88px;margin:-1px -1px 0;border-radius:16px 16px 0 0;position:relative}
/* top sheen + soft bottom vignette so the avatar/name read cleanly over the decorated cover */
.acctsurface .plcover::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0) 26%),linear-gradient(0deg,rgba(12,18,38,.55),rgba(12,18,38,0) 46%)}
/* V3 수리: 아바타만 커버에 겹치고, 이름·소개는 커버 아래에서 시작하게 한다.
   (구 flex-end 는 이름 블록까지 함께 끌어올려 커버 경계에서 글자가 잘려 보였다.) */
.acctsurface .pltop{padding:0 4px;margin-top:-30px;align-items:flex-start}
.acctsurface .plid{padding-top:36px;min-width:0}
.plctarow{display:flex;gap:7px;flex-wrap:wrap;margin:10px 4px 4px}
.plcta.primary{font:700 12px var(--sans);color:#fff;background:#6aa6ff;border-radius:11px;padding:8px 16px;cursor:pointer}
.plcta2{font:600 11.5px var(--sans);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);border-radius:11px;padding:7px 13px;cursor:pointer}
.pkchips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.pkchip{font:600 10px var(--mono);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);padding:3px 9px;border-radius:12px}
.pkchip.lg{font-size:11px;padding:5px 11px;color:var(--ink)}
.ownerstrip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#ffffff08;border:1px solid var(--line);border-radius:12px;padding:9px 12px;margin-top:11px}
.ownerstrip .ostt{font:700 11px var(--sans);color:var(--ink3)}
.osbadge{font:600 10.5px var(--mono);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);border-radius:10px;padding:3px 9px;cursor:pointer}
.osbadge b{color:var(--mine);margin-left:3px}
.ownerstrip .osgo{margin-left:auto;color:var(--ink3);cursor:pointer}
/* P1-6: Pack projection 제거 — .packgrid/.packcard/.pkc-*/.herofeature/.hf-* 삭제(dead) */
.mygrid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}
.myg{position:relative;aspect-ratio:1;border-radius:9px;overflow:hidden;background:#ffffff0a;cursor:pointer;display:flex;align-items:flex-end}
.myg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.myg.noimg{background:linear-gradient(140deg,#1a2440,#0c1226)}
.myg .mygt{position:relative;z-index:1;font:600 8.5px var(--sans);color:#fff;background:#000000a8;padding:3px 5px;width:100%}
.contribproof .cpgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.cpstat{background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:9px;text-align:center}
.cpstat b{display:block;font:800 17px var(--sans);color:var(--ink)}.cpstat span{font:500 9px var(--mono);color:var(--ink3)}
.mytabs-rail .mytab{flex:1}
.myfchips{display:flex;gap:5px;margin-bottom:9px}
.myfchip{font:600 10.5px var(--sans);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);padding:5px 12px;border-radius:13px;cursor:pointer}
.myfchip.act{color:var(--ink);border-color:#6aa6ff66;background:#6aa6ff1e}
.mymemdrawer{margin-top:12px}
.mymemtog{display:flex;align-items:center;justify-content:space-between;font:700 11px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:11px;padding:10px 12px;cursor:pointer}
.mymemchev{transition:transform .18s}.mymemtog.open .mymemchev{transform:rotate(180deg)}
.myrolesw{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
.myrolesw .plsw{font:600 10px var(--mono);color:var(--ink3);background:#ffffff0d;border:1px solid var(--line);padding:3px 9px;border-radius:10px;cursor:pointer}
.myrolesw .plsw.act{color:var(--ink);border-color:#6aa6ff66;background:#6aa6ff1e}
/* ===== U4-E/D9 · 데모 페르소나 전환 패널 ===== */
.personapanel{margin-top:34px;padding-top:18px;border-top:1px dashed #3a4570}
.pphd{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px}
.ppdemo{flex:none;font:900 12px var(--sans);letter-spacing:1px;color:#0a1020;background:linear-gradient(135deg,#f5c451,#e89a3a);border-radius:8px;padding:5px 11px;box-shadow:0 2px 10px -2px #e8b04a66}
.pphdm{flex:1;min-width:0}
.pphdt{font:800 14px var(--sans);color:var(--ink);margin-bottom:3px}
.pphds{font:500 11.5px/1.5 var(--sans);color:var(--ink3)}
.pphds b{color:var(--ink2)}
.ppgroup{margin-bottom:10px}
.ppgl{font:800 10px var(--mono);color:#8aa0ff;margin:6px 2px 6px}
.ppgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.ppcell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:#111a2e;border:1px solid #223052;border-radius:10px;padding:9px 11px;cursor:pointer;color:var(--ink2)}
.ppcell.act{border-color:#6aa6ff;background:#6aa6ff1a;box-shadow:inset 0 0 0 1px #6aa6ff55}
.ppcell .ppic{font-size:17px}
.ppcell .ppr{font:800 11.5px var(--sans);color:#eaf1ff}
.ppcell .ppd{font:500 9.5px/1.35 var(--sans);color:#8fa0c0}
.ppactions{margin-top:8px}
.ppbtn{font:700 11px var(--sans);color:#9ec6ff;background:#6aa6ff12;border:1px solid #6aa6ff33;border-radius:11px;padding:7px 13px;cursor:pointer;display:inline-block}

/* ===== U4-R3 Visitor Profile projection ===== */
.abrow{font:500 11.5px var(--sans);color:var(--ink2);padding:7px 0;border-top:1px solid var(--line);line-height:1.55}
.abrow b{font:700 9.5px var(--mono);color:var(--ink3);text-transform:uppercase;margin-right:7px}
/* CR-PUNCH #01(Daniel 01): Public My Home Identity 섹션 + About 집계 grid. */
.vident .videntrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.vident .videntrole{font:700 10px var(--mono);color:var(--mine,#8b7ff0);background:color-mix(in srgb,var(--mine,#8b7ff0) 14%,transparent);border:1px solid color-mix(in srgb,var(--mine,#8b7ff0) 34%,var(--line));padding:3px 9px;border-radius:12px}
.vabout .cpgrid.abgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:9px}

/* ===== P1-7 Saved Library + Collection v1 ===== */
/* 공용 버튼 변형(모달·상세 액션) */
.libconfbtns,.libcolactions{display:flex;gap:8px;margin-top:12px}
.libconfbtns .b,.libcolactions .b,.samplesaverow .b{display:inline-block;font:700 11.5px var(--sans);color:#041020;background:var(--mine,#6aa6ff);border-radius:11px;padding:9px 16px;cursor:pointer;text-align:center}
.libconfbtns .b{flex:1}
.b.ghost{color:var(--ink2)!important;background:#ffffff0c!important;border:1px solid var(--line)}
.b.danger{background:#e2686866!important;color:#ffd9d9!important}
.b.danger.ghost{background:#ffffff0c!important;color:#e88!important;border:1px solid #e2686855}
/* visibility 칩 */
.viemblem{display:inline-flex;align-items:center;gap:3px;font:700 8.5px var(--mono);border-radius:6px;padding:2px 7px;border:1px solid}
.viemblem.vis-private{color:var(--ink3);border-color:var(--line2);background:#ffffff08}
.viemblem.vis-unlisted{color:#e0b877;border-color:#e0b87755;background:#e0b87714}
.viemblem.vis-public{color:#5ad6a8;border-color:#2dd4a855;background:#2dd4a814}
/* Collections 목록 행 */
.colrow{display:flex;align-items:center;gap:11px;background:#ffffff05;border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin-bottom:8px;cursor:pointer}
.colrow .colri{font-size:17px;flex:none}
.colrow .colrm{flex:1;min-width:0}
.colrow .colrt{font:700 12.5px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.colrow .colrs{display:flex;align-items:center;gap:6px;font:600 10px var(--mono);color:var(--ink3);margin-top:3px}
.mlrow.libnew{border-style:dashed;color:var(--ink2)}
/* Saved 카드 ⋯ 메뉴 */
.savcard .savmenu{position:absolute;right:6px;top:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font:800 14px var(--sans);color:#fff;background:#0009;border-radius:8px;cursor:pointer;line-height:1}
.savcard .savmenu:hover{background:#000c}
/* ⋯ 메뉴·확인 시트 */
.libmenub,.libaddtob,.libconfb,.libcreateb,.libshareb{padding:2px 2px 4px}
.libtoggle.on{border-color:#2dd4a855;background:#2dd4a80c}
/* 생성/수정 폼 */
.liblbl{display:block;font:700 9px var(--mono);color:var(--ink3);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 5px}
.libinput{width:100%;box-sizing:border-box;font:600 13px var(--sans);color:var(--ink);background:#ffffff08;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;outline:none}
.libinput:focus{border-color:#6aa6ff77}
.visseg{display:flex;gap:6px;margin-top:2px}
.visopt{flex:1;text-align:center;font:600 10px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:8px 4px;cursor:pointer;white-space:nowrap}
.visopt.act{color:var(--ink);border-color:#6aa6ff66;background:#6aa6ff1e}
.viscap{font:500 10px var(--sans);color:var(--ink4);margin-top:7px}
/* Collection 상세(s-library) */
.libcolhd h3{margin:0}
.libcoltitle{cursor:pointer}.libcoltitle .libedit{font-size:11px;color:var(--ink4)}
.libcoldesc{font:500 11.5px/1.5 var(--sans);color:var(--ink2);margin:6px 0 11px}
.libcoldesc.dim{color:var(--ink4);cursor:pointer}
.colentlist{display:flex;flex-direction:column;gap:8px}
.colent{display:flex;align-items:center;gap:10px;background:#ffffff05;border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.colent .colentn{font:800 10px var(--mono);color:var(--ink4);flex:none;width:16px;text-align:center}
.colent .colentth{position:relative;width:46px;height:38px;border-radius:8px;overflow:hidden;flex:none;cursor:pointer}
.colent .colentth img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.colent .colentm{flex:1;min-width:0;cursor:pointer}
.colent .colentt{display:block;font:700 12px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.colent .colentk{display:block;font:600 9px var(--mono);color:var(--ink3);margin-top:2px}
.colentctrls{display:flex;align-items:center;gap:4px;flex:none}
.colentbtn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font:700 10px var(--sans);color:var(--ink2);background:#ffffff0a;border:1px solid var(--line);border-radius:7px;cursor:pointer}
.colentbtn:hover{color:var(--ink);border-color:#6aa6ff55}
.colentbtn.off{opacity:.3;pointer-events:none}
.colentbtn.del{color:#e88}
/* share 시트 */
.libshareurl{display:flex;align-items:center;gap:8px;margin-top:11px;background:#ffffff08;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;cursor:pointer}
.libshareu{flex:1;min-width:0;font:600 10.5px var(--mono);color:var(--ink2);word-break:break-all}
.libsharec{font:700 10px var(--mono);color:#9ec6ff;flex:none}
.samplesaverow{margin-top:10px;text-align:center}
/* ===== P1-8 Owner My Home 5-block ===== */
.colchiprow{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.colchip{display:inline-flex;align-items:center;gap:4px;font:600 10.5px var(--sans);color:#cfe0ff;background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:13px;padding:5px 11px;cursor:pointer}
.colchip b{font:800 10px var(--mono);color:#9ec6ff}
.contribproof.compact{margin-top:8px}
.contribproof.compact .cpgrid{opacity:.92}
/* ===== FR2-B04/B05 Visitor Posts filter + Collections ===== */
.vpfrow{display:flex;gap:6px;flex-wrap:wrap;margin:2px 12px 8px}
.vpf{font:600 11px var(--sans);color:#9fb0d0;background:#141d33;border:1px solid #26324e;border-radius:13px;padding:4px 11px;cursor:pointer}
.vpf.act{color:#cfe0ff;background:#6aa6ff22;border-color:#6aa6ff55}
.postcell .pccap{position:absolute;left:0;right:0;bottom:0;z-index:2;font:600 9px var(--sans);color:#fff;background:linear-gradient(0deg,#000a,transparent);padding:9px 5px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vcolgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:8px 12px 0}
.vcolcard{background:#111a2e;border:1px solid #223052;border-radius:11px;overflow:hidden;cursor:pointer}
.vcolcard:active{opacity:.9}
.vcolcov{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:2px;height:88px;background:#0c1226}
.vcolcov img,.vcolcov .vcolph{width:100%;height:100%;object-fit:cover;display:block}
.vcolcov img:first-child,.vcolcov .vcolph:first-child{grid-row:1/3}
.vcolm{padding:8px 10px 10px;display:flex;flex-direction:column;gap:3px}
.vcolm b{font:800 12px var(--sans);color:#eaf1ff}
.vcold{font:500 10px var(--sans);color:#8fa0c0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vcolcnt{font:700 9.5px var(--mono);color:#9ec6ff;margin-top:2px}
/* ===== P1-13 내 Krew owned/participating/related ===== */
.krdirtabs{display:flex;gap:6px;margin-bottom:10px}
.krdirtab{flex:1;text-align:center;font:600 11px var(--sans);color:var(--ink3);background:#ffffff08;border:1px solid var(--line);border-radius:9px;padding:8px 4px;cursor:pointer;white-space:nowrap}
.krdirtab.act{color:var(--ink);border-color:#6aa6ff66;background:#6aa6ff1e}
.krewpick2{cursor:pointer}
.kmemstack{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.kmavs.stacked{display:flex}
.kmavs.stacked .kmav{margin-left:-8px;border:2px solid var(--card,#141b2e)}
.kmavs.stacked .kmav:first-child{margin-left:0}
.kmav.more{display:flex;align-items:center;justify-content:center;font:800 10px var(--mono);color:var(--ink2);background:#ffffff14}
.krmemdirhd{font:800 11px var(--mono);color:var(--ink3);margin:6px 0 9px;letter-spacing:.02em}

/* ===== P1-11/12 · Krew Chat 모듈(Messenger 딥링크) · Discussions 승격 ===== */
.krewchatmod{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:13px;cursor:pointer;
  background:linear-gradient(120deg,#17224a,#131a30);border:1px solid var(--line)}
.krewchatmod:active{background:linear-gradient(120deg,#1e2a5c,#161d38)}
.krewchatmod .kcmi{font-size:20px;flex:none}
.krewchatmod .kcmm{flex:1;min-width:0}
.krewchatmod .kcmt{font:800 13px var(--sans);color:var(--ink);letter-spacing:-.01em}
.krewchatmod .kcms{font:600 10.5px var(--sans);color:var(--ink3);margin-top:2px}
.krewchatmod .kcmgo{color:#6aa6ff;font-size:18px;font-weight:800;flex:none}
.krewdiscnote{font:600 10.5px var(--sans);color:var(--ink3);background:#ffffff08;border:1px dashed var(--line);border-radius:10px;padding:9px 11px;margin-bottom:10px;line-height:1.5}
.kconv.promoted{border-color:#f0a84a55;background:linear-gradient(120deg,#2a2213,var(--card))}
.discattr{margin:12px;padding:12px 13px;border-radius:12px;background:#ffffff08;border:1px solid var(--line)}
.discattr .discq{font:600 12px var(--sans);color:var(--ink2);line-height:1.5}
.discattr .discmeta{font:700 10.5px var(--mono);color:var(--ink3);margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.discattr .discmeta b{color:var(--ink)}
.discattr .discsep{font:600 9.5px var(--mono);color:#f0a84a;border:1px solid #f0a84a55;border-radius:6px;padding:1px 6px}
.discattr .disclink{margin-top:10px;font:700 11.5px var(--sans);color:#6aa6ff;cursor:pointer}
.discattr .disclink:active{opacity:.7}

/* ===== Y-46 · D-ID Profile 레이어(검증된 익명성 3계정·DIDVerifiedProof) ===== */
.profilelayer .pldid{margin-top:10px;padding:10px 11px;border-radius:11px;background:#ffffff07;border:1px solid var(--line)}
.profilelayer .pldidhd{font:800 11px var(--mono);color:var(--ink2);letter-spacing:.01em;margin-bottom:8px}
.profilelayer .pldidsw{display:flex;gap:6px;margin-bottom:9px}
.profilelayer .plproof{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.profilelayer .plproofchip{font:700 10px var(--mono);color:#5ad6a8;background:#2dd4a814;border:1px solid #2dd4a844;border-radius:8px;padding:2px 8px}
.profilelayer .plproofnote{width:100%;font:600 9.5px/1.5 var(--sans);color:var(--ink4);margin-top:5px}
.profilelayer .plproofnote.unv{color:var(--ink4);margin-top:0}

/* ===== P1-10 · Visitor Preview Sheet + Public My 모듈 ===== */
.uprev{display:flex;gap:13px;align-items:center;padding:6px 2px 2px}
.uprevav{width:56px;height:56px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 20px var(--sans);color:#fff}
.uprevm{flex:1;min-width:0}
.uprevnm{font:800 15px var(--sans);color:var(--ink);display:flex;align-items:center;gap:7px}
.uprevver{font:700 9.5px var(--mono);color:#6aa6ff;background:#6aa6ff18;border:1px solid #6aa6ff55;border-radius:7px;padding:1px 6px}
.uprevunv{font:700 9.5px var(--mono);color:var(--ink4);border:1px solid var(--line2);border-radius:7px;padding:1px 6px}
.uprevnar{font:500 12px/1.45 var(--sans);color:var(--ink2);margin-top:4px}
.uprevband{font:600 10.5px var(--mono);color:var(--ink3);margin-top:5px}
.pkchip.lg.ver{color:#5ad6a8;border-color:#2dd4a855;background:#2dd4a814}
.myg.lg{aspect-ratio:16/9;width:100%;border-radius:12px;overflow:hidden;position:relative;background:#0c1226;display:block;cursor:pointer}
.myg.lg img{width:100%;height:100%;object-fit:cover}

/* ===== P1-17 · Question Object(canonical · 복수 표면 projection) ===== */
.qobjcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:8px;cursor:pointer}
.qobjcard:active{background:#ffffff0d}
.qobjcard .qobjq{font:700 13px/1.4 var(--sans);color:var(--ink)}
.qobjcard .qobjmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;font:600 10px var(--mono);color:var(--ink3)}
.qstate{font:700 9.5px var(--mono);border:1px solid;border-radius:7px;padding:1px 7px}
.qobjcard .qobja{color:#5ad6a8}
.qobjcard .qobjopen{color:var(--ink4)}
.qobjcard .qobjproj{color:var(--ink4)}
.qdetail{padding:12px;border-bottom:1px solid var(--line)}
.qdstate{display:flex;gap:8px;align-items:center;margin-bottom:9px}
.qdstate .qdsub{font:600 10.5px var(--mono);color:var(--ink3)}
.qdq{font:800 15px/1.45 var(--sans);color:var(--ink)}
.qdproj{margin-top:10px;font:600 10.5px/1.5 var(--sans);color:var(--ink3);background:#6aa6ff10;border:1px dashed #6aa6ff44;border-radius:9px;padding:8px 10px}
.qdnode{margin-top:9px;font:700 12px var(--sans);color:#6aa6ff;cursor:pointer}
.qdconv{padding:6px 4px}
.kqproj{margin:9px 0 2px;padding:9px;border-radius:11px;background:#ffffff07;border:1px solid var(--line)}
.kqprojh{font:800 10.5px var(--mono);color:var(--ink3);margin-bottom:7px}
/* KOS-03 Signal/Krew projection (선택 상태) + 평문 why + exact destination */
.kkwhy{font:600 11.5px var(--sans);color:var(--ink2);line-height:1.45}
.kkout{font:600 11.5px var(--sans);color:var(--ink);margin-bottom:3px}
.ksgo{font:700 11px var(--mono);color:#9ec6ff;margin-top:6px;cursor:pointer;display:inline-block}
.ksproj{border-color:#6aa6ff44}
.kkproj{border-color:#b39bff44}
/* KOS-03 default 상태 compact projection marker(자격 통과 시만 · 제한 노출) */
.projmarks{position:absolute;top:6px;right:6px;display:flex;gap:3px;z-index:3}
.projmark{font-size:10px;background:#0c1226cc;border:1px solid var(--line);border-radius:6px;padding:1px 4px;line-height:1.3}
.projmark.krew{color:#b39bff}
.projmark.sig{color:#6aa6ff}

/* ===== P1-19 · Poll·Review 전용 카드 ===== */
.prpoll{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 13px;margin-bottom:9px}
.prpoll.interpret{border-color:#9b8cff44;background:linear-gradient(120deg,#1a1830,var(--card))}
.prpoll-badge{font:800 9.5px var(--mono);color:#b3a6ec;margin-bottom:8px}
.prpoll-badge.part{color:#5ad6a8}
.prpoll-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.prpoll-k{font:800 11px var(--sans);color:var(--ink)}
.prpoll-hint{font:600 9.5px var(--mono);color:var(--ink4)}
.prpoll-blind{font:700 8.5px var(--mono);color:#efc34a;border:1px solid #efc34a55;border-radius:6px;padding:1px 5px}
.prpoll-q{font:700 13px/1.4 var(--sans);color:var(--ink);margin-bottom:9px}
.prpoll-opts{display:flex;flex-wrap:wrap;gap:7px}
.prpoll-opt{font:700 11.5px var(--sans);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line2);border-radius:9px;padding:7px 12px;cursor:pointer}
.prpoll-opt:active{background:#6aa6ff1e;border-color:#6aa6ff88}
.prpoll-blindnote,.prpoll-hintnote,.prpoll-openinput{margin-top:8px}
.prpoll-blindnote,.prpoll-hintnote{font:600 9.5px var(--sans);color:var(--ink4)}
/* CR2-D01(D11-07): 진행중/마감 상태 칩 + 복수선택 + 마감 안내 */
.prpoll-state{font:800 8.5px var(--mono);border-radius:6px;padding:1px 6px}
.prpoll-state.open{color:#5ad6a8;background:#5ad6a81c;border:1px solid #5ad6a855}
.prpoll-state.closed{color:#9aa3bd;background:#ffffff0d;border:1px solid var(--line2)}
.prpoll-opts.multi{flex-direction:column;gap:6px}
.prpoll-opts.multi .prpoll-opt{width:100%;text-align:left}
.prpoll-opt.sel{color:#cfe0ff;background:#6aa6ff26;border-color:#6aa6ff88}
.prpoll-multibar{display:flex;align-items:center;gap:9px;margin-top:9px}
.prpoll-multidone{font:800 11.5px var(--sans);color:#0c1226;background:#5ad6a8;border-radius:9px;padding:7px 15px;cursor:pointer}
.prpoll-closednote{margin-top:9px;font:700 10px var(--sans);color:#9aa3bd;background:#ffffff08;border:1px solid var(--line2);border-radius:8px;padding:6px 9px}
.prpoll.closed .prpoll-bo i{opacity:.7}
.prpoll-openinput{display:flex;gap:7px}
.prpoll-oi{flex:1;background:#0c1226;border:1px solid var(--line2);border-radius:9px;padding:8px 10px;color:var(--ink);font:500 12px var(--sans)}
.prpoll-osend{font:700 11.5px var(--sans);color:#0c1226;background:#6aa6ff;border-radius:9px;padding:8px 13px;cursor:pointer}
.prpoll-bars{display:flex;flex-direction:column;gap:6px}
.prpoll-bar.mine .prpoll-bl{color:#5ad6a8;font-weight:800}
.prpoll-bl{display:flex;justify-content:space-between;font:600 11px var(--sans);color:var(--ink2);margin-bottom:3px}
.prpoll-bo{height:7px;background:#ffffff10;border-radius:5px;overflow:hidden}
.prpoll-bo i{display:block;height:100%;background:linear-gradient(90deg,#6aa6ff,#9b8cff);border-radius:5px}
.prpoll-open{font:600 12px var(--sans);color:var(--ink2);padding:6px 0}
.prpoll-note{font:600 9.5px/1.5 var(--sans);color:var(--ink4);margin-top:9px}
.prreview{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 13px;margin-bottom:9px}
.prreview-badge{font:800 10px var(--mono);color:#efc34a;margin-bottom:9px}
.prreview-cat{color:var(--ink4);margin-left:5px}
.prreview-base{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.prb{font:700 10px var(--mono);border-radius:7px;padding:2px 8px}
.prb.ok{color:#5ad6a8;background:#2dd4a814;border:1px solid #2dd4a844}
.prb.wn{color:#efc34a;background:#efc34a14;border:1px solid #efc34a44}
.prb.bad{color:#e8704a;background:#e8704a14;border:1px solid #e8704a44}
.prreview-condh{font:800 10px var(--mono);color:var(--ink3);margin-bottom:7px}
.prreview-cf{display:flex;justify-content:space-between;font:600 11.5px var(--sans);color:var(--ink2);padding:5px 0;border-bottom:1px solid var(--line)}
.prreview-cf .prcfv{color:var(--ink);font-weight:800}
.prreview-quotes{margin-top:9px}
.prreview-q{font:500 11.5px/1.5 var(--sans);color:var(--ink2);margin-bottom:4px}
.prq-c{font:700 9.5px var(--mono);color:var(--ink4)}
/* ===== Daniel: Review Mission Card 재설계 (Object Type별 구성) ===== */
.rvmission{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--rva,#6aa6ff);border-radius:14px;padding:12px 13px;margin-bottom:10px;cursor:pointer}
.rvmhd{display:flex;gap:11px;align-items:flex-start;margin-bottom:10px}
.rvmthumb{width:60px;height:60px;flex:none;border-radius:11px;overflow:hidden;background:color-mix(in srgb,var(--rva,#6aa6ff) 22%,#0c1226);position:relative}
.rvmthumb img{width:100%;height:100%;object-fit:cover;display:block}
.rvmthumb.noimg{background:linear-gradient(135deg,color-mix(in srgb,var(--rva) 40%,#0c1226),#0c1226)}
.rvmtt{flex:1;min-width:0}
.rvmname{font:800 14.5px var(--sans);color:var(--ink);letter-spacing:-.01em;margin-bottom:5px;line-height:1.25}
.rvmchips{display:flex;flex-wrap:wrap;gap:5px}
.rvmchips span{font:700 9px var(--mono);padding:2px 7px;border-radius:8px;white-space:nowrap}
.rvmcat{color:var(--ink2);background:#ffffff0d;border:1px solid var(--line)}
.rvmobj{color:#06121f;background:var(--rva,#6aa6ff)}
.rvmrole{color:var(--ink3);background:#ffffff08;border:1px solid var(--line)}
.rvmspoil{color:#9ec6ff;background:#6aa6ff1c;border:1px solid #6aa6ff44}
.rvmcondrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:9px}
.rvmcondh{font:700 9px var(--mono);color:var(--ink3);text-transform:uppercase}
.rvmcond{font:600 10.5px var(--sans);color:var(--ink2);background:#ffffff0a;border:1px solid var(--line2);border-radius:9px;padding:3px 8px}
.rvmaxes{background:#0b1120;border:1px solid var(--line);border-radius:10px;padding:9px 10px;margin-bottom:9px}
.rvmaxh{font:700 9.5px var(--mono);color:var(--ink3);text-transform:uppercase;margin-bottom:6px}.rvmaxh b{color:var(--rva,#9ec6ff)}
.rvmaxgrid{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}
.rvm-product .rvmaxgrid,.rvm-series .rvmaxgrid{grid-template-columns:1fr}
.rvmax{display:flex;align-items:center;gap:7px;font:600 11px var(--sans);color:var(--ink)}
.rvmaxn{width:16px;height:16px;flex:none;border-radius:50%;background:color-mix(in srgb,var(--rva,#6aa6ff) 24%,transparent);color:var(--rva,#9ec6ff);font:800 9px var(--mono);display:flex;align-items:center;justify-content:center}
.rvmaxt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rvmprompt{font:700 12px/1.45 var(--sans);color:var(--ink);background:color-mix(in srgb,var(--rva,#6aa6ff) 10%,transparent);border-radius:9px;padding:8px 10px;margin-bottom:9px}
.rvmfoot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-bottom:9px}
.rvmpart{font:600 11px var(--sans);color:var(--ink2)}.rvmpart b{color:var(--ink)}
.rvmgap{font:600 10px var(--sans);color:#e8964a}
.rvmtrust{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--line)}
.rvmth{font:700 8.5px var(--mono);color:var(--ink4);text-transform:uppercase}
.rvmt{font:600 9.5px var(--mono);padding:1px 6px;border-radius:7px}
.rvmt.ok{color:#5ad6a8;background:#2dd4a814}.rvmt.wn{color:#efc34a;background:#efc34a14}.rvmt.bad{color:#e8845a;background:#e8845a14}
.rvmts{font:500 9px var(--sans);color:var(--ink4);margin-left:auto}
/* §13.5 Community Review Mission 재설계 — 목적·부족정보·필요경험·범위/상태/마감·기대결과물·CTA */
.rvmpurpose{font:600 12px/1.5 var(--sans);color:var(--ink);margin-bottom:8px}
.rvmpurpose .rvmpk,.rvmneed .rvmnk,.rvmout .rvmok{font:800 9px var(--mono);color:var(--rva,#9ec6ff);text-transform:uppercase;margin-right:5px}
.rvmgapbox{font:600 11.5px/1.45 var(--sans);color:#efc7a6;background:#f0894a10;border:1px solid #f0894a2e;border-radius:9px;padding:8px 10px;margin-bottom:8px}
.rvmgapbox .rvmgk{font-weight:800;margin-right:4px}
.rvmneed{font:600 11.5px var(--sans);color:var(--ink2);margin-bottom:8px}
.rvmmeta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-bottom:8px}
.rvmmeta span{font:600 10.5px var(--sans);color:var(--ink2)}
.rvmstat{color:#5ad6a8!important}
.rvmout{font:600 11.5px var(--sans);color:var(--ink);margin-bottom:10px}
.rvmcta{display:flex}
.rvmwrite{flex:1;text-align:center;font:800 12px var(--sans);color:#06121f;background:var(--rva,#6aa6ff);border-radius:10px;padding:9px 12px;cursor:pointer}
/* §13.2 Product/Object Review Summary — 6필드 요약 + 후기 보기/내 경험 남기기 */
.sfrvsum{display:flex;flex-direction:column;gap:1px;margin:2px 0 10px}
.sfrvsrow{display:flex;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px solid #ffffff08}
.sfrvsrow:last-child{border-bottom:0}
.sfrvsic{flex:none;font-size:12px;width:16px}
.sfrvsk{flex:none;font:700 10.5px var(--sans);color:var(--ink3);width:74px}
.sfrvsv{flex:1;min-width:0;font:500 12px/1.5 var(--sans);color:var(--ink)}
.sfrvcta{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.sfrvbtn{flex:0 0 auto;text-align:center;font:800 12.5px var(--sans);border-radius:11px;padding:9px 20px;cursor:pointer}
.sfrvbtn.p{color:#06121f;background:var(--mine,#e8704a)}
.sfrvbtn.s{color:var(--ink);background:#ffffff10;border:1px solid var(--line2)}
.sfrvintel{font:700 11.5px var(--sans);color:#9ec6ff;background:#6aa6ff10;border:1px solid #6aa6ff26;border-radius:10px;padding:9px 11px;cursor:pointer;text-align:center}
/* ===== Track E (v6.1 §8) Shared Review Ecosystem — inline expand: Compact → Group/Count → Item List → Detail ===== */
.sfrvcompact{display:flex;flex-direction:column;gap:2px}
.sfrvcstate{font:600 11px var(--sans);color:var(--ink3);margin:4px 0 8px}
.sfrvcstate b{color:var(--ink2)}
.sfrvcnote{font:500 12px/1.5 var(--sans);color:var(--ink2);margin:2px 0 9px}
.sfrvcnote b{color:#efc7a6}
.sfrvbtn.off{background:#ffffff07;color:var(--ink4);border:1px dashed var(--line2);cursor:default}
.sfrvexpand{margin-top:4px;border-top:1px solid #ffffff10;padding-top:9px}
.sfrvgroups{display:flex;flex-direction:column;gap:6px}
.sfrvgroup{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#ffffff05}
.sfrvgrouprow{display:flex;align-items:center;gap:8px;padding:9px 11px;cursor:pointer}
.sfrvgi{flex:none;font-size:13px;width:18px;text-align:center}
.sfrvgl{flex:1;min-width:0;font:700 12.5px var(--sans);color:var(--ink)}
.sfrvgc{flex:none;font:800 11px var(--sans);color:#9ec6ff;background:#6aa6ff12;border-radius:999px;padding:2px 9px}
.sfrvgchev{flex:none;font-size:11px;color:var(--ink3)}
.sfrvitemlist{padding:2px 11px 10px;display:flex;flex-direction:column;gap:5px;border-top:1px solid #ffffff08}
.sfrvitemnote{font:500 10.5px var(--sans);color:var(--ink3);margin:7px 0 3px}
.sfrvitem{display:flex;gap:8px;align-items:baseline;padding:7px 9px;border-radius:9px;background:#ffffff06;cursor:pointer}
.sfrvitem.sfrv-pos{border-left:2px solid #37e0c8}
.sfrvitem.sfrv-neg{border-left:2px solid #efc7a6}
.sfrviti{flex:none;width:12px;font:800 12px var(--sans);color:var(--ink3)}
.sfrvitt{flex:1;min-width:0;font:500 12px/1.45 var(--sans);color:var(--ink)}
.sfrvitc{flex:none;font:700 10px var(--sans);color:var(--ink3)}
.sfrvmore{font:700 11px var(--sans);color:#9ec6ff;padding:6px 2px;cursor:pointer}
.sfrvmorebox{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.sfrvintelblk{margin-top:9px;border:1px solid #6aa6ff26;border-radius:11px;overflow:hidden;background:#6aa6ff08}
.sfrvintelhd{display:flex;align-items:center;gap:7px;padding:9px 11px;cursor:pointer;font:800 12px var(--sans);color:#9ec6ff}
.sfrvintelst{flex:none;font:700 9.5px var(--sans);color:var(--ink3);background:#ffffff10;border:1px solid var(--line2);border-radius:999px;padding:2px 7px}
.sfrvintelchev{margin-left:auto;font-size:11px}
.sfrvintelbody{padding:2px 11px 11px}
.sfrvintelsrc{font:500 10.5px/1.5 var(--sans);color:var(--ink3);margin-top:8px;border-top:1px solid #ffffff10;padding-top:8px}
/* §8.7 Community Reaction Digest (Community Output · not Mission Wall) */
.rvdigest{border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:8px;background:#ffffff05;cursor:pointer}
.rvdghd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.rvdgtype{font:800 10.5px var(--sans);color:#9ec6ff;background:#6aa6ff12;border-radius:999px;padding:2px 9px}
.rvdgstate{font:700 9.5px var(--sans);color:var(--ink3);background:#ffffff10;border:1px solid var(--line2);border-radius:999px;padding:2px 7px;margin-left:auto}
.rvdgsubj{font:800 13.5px var(--sans);color:var(--ink);margin-bottom:7px}
.rvdgrow{display:flex;gap:7px;align-items:baseline;padding:3px 0}
.rvdgi{flex:none;font-size:12px;width:15px}
.rvdgt{flex:1;min-width:0;font:500 12px/1.45 var(--sans);color:var(--ink2)}
.rvdgc{flex:none;font:700 10px var(--sans);color:var(--ink3)}
.rvdgnote{font:500 12px/1.5 var(--sans);color:var(--ink2)}
.rvdgmeta{font:500 10.5px var(--sans);color:var(--ink3);margin-top:8px;border-top:1px solid #ffffff10;padding-top:7px}

/* ===== v6.1 Track G (D16-023) K-Beauty Real Visual — Integration Slot (실 asset / ASSET_PENDING) ===== */
.kbslot{border-radius:12px;overflow:hidden}
.kbslot.have{position:relative}
.kbslot.have img{width:100%;max-height:220px;object-fit:cover;display:block;border-radius:12px}
.kbslot.have .kbslotchk{position:absolute;top:8px;right:8px;font:800 9.5px var(--sans);color:#efc34a;background:#241a08cc;border:1px solid #6a4a12;border-radius:999px;padding:2px 8px}
.kbslot.pending{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:120px;background:repeating-linear-gradient(135deg,#ffffff05,#ffffff05 10px,#ffffff08 10px,#ffffff08 20px);border:1px dashed var(--line2)}
.kbslot.pending .kbslotstate{font:900 11px var(--sans);color:#efc34a;letter-spacing:.06em}
.kbslot.pending .kbslottarget{font:600 11px var(--sans);color:var(--ink3);text-align:center;padding:0 12px}
.kbslot.broken{min-height:80px;background:#ffffff05}
/* ===== P1-23 · Route-backed Full Media Viewer ===== */
.mvov{position:fixed;inset:0;z-index:1400;background:var(--bg,#0a0f1e);display:none;flex-direction:column;max-width:480px;margin:0 auto}
.mvov.on{display:flex}
.mvbar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}
.mvbar .mvx{font-size:24px;color:var(--ink);cursor:pointer;line-height:1;flex:none}
.mvbar .mvtt{flex:1;font:800 14px var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvbar .mvshare{font-size:18px;color:#6aa6ff;cursor:pointer;flex:none}
.mvscroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mvmedia{position:relative;width:100%;background:#0c1226;display:flex;align-items:center;justify-content:center;min-height:220px}
.mvmedia img{width:100%;max-height:64vh;object-fit:contain;display:block}
.mvmedia.vid{cursor:pointer;min-height:240px}
.mvmedia.noimg{min-height:200px;color:var(--ink4);font:600 12px var(--sans)}
.mvmedia .mvph{position:absolute;inset:0}
.mvmedia .mvplay{position:absolute;width:58px;height:58px;border-radius:50%;background:#000000aa;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px}
.mvmedia .mvvcap{position:absolute;bottom:10px;left:12px;font:600 10px var(--mono);color:#fff;background:#0009;padding:3px 8px;border-radius:7px}
.mvsec{padding:14px;border-bottom:1px solid var(--line)}
.mvsech{font:800 11px var(--mono);color:var(--ink3);letter-spacing:.02em;margin-bottom:10px}
.mvprovrow{display:flex;gap:10px;align-items:center;margin-bottom:7px;font:600 12px var(--sans);color:var(--ink2)}
.mvprovk{width:38px;color:var(--ink4);font:700 10.5px var(--mono);flex:none}
.mvsrc{font:700 10px var(--mono);color:#9ec6ff;background:#6aa6ff14;border:1px solid #6aa6ff44;border-radius:7px;padding:2px 8px;margin-right:5px}
.mvtrust{font:700 11px var(--mono);color:#5ad6a8}
.mvprovlink{margin-top:8px;font:700 12px var(--sans);color:#6aa6ff;cursor:pointer}
.mvtscript{background:#ffffff07;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.mvtline{font:500 12px/1.6 var(--sans);color:var(--ink2)}
.mvtrow{margin-top:9px;font:600 11px var(--sans);color:var(--ink3)}
.mvtl{color:#b3a6ec;cursor:pointer}
.mvcrow{display:flex;gap:10px;margin-bottom:11px}
.mvcav{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#fff}
.mvcu{font:700 11px var(--mono);color:var(--ink3)}
.mvct{font:500 12.5px/1.45 var(--sans);color:var(--ink);margin-top:2px}
.fmediawrap .ffull{position:absolute;top:9px;right:9px;z-index:3;width:30px;height:30px;border-radius:8px;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer}
/* FR2-E02/D8-08: media content-detail — author·reactions·related */
.mvauthor .mvauth{display:flex;align-items:center;gap:10px}
.mvauthor .mvcsub{font:500 10px var(--sans);color:var(--ink3);margin-top:1px}
.mvfollow{margin-left:auto;font:700 11px var(--sans);color:#9ec6ff;background:#6aa6ff18;border:1px solid #6aa6ff44;border-radius:13px;padding:5px 12px;cursor:pointer}
.mvfollow.on{color:#fff;background:#6aa6ff;border-color:#6aa6ff}
.mvreact{padding:10px 14px}
.mvreact .rxrail{margin:0}
.mvrelrow{display:flex;gap:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.mvrel{flex:0 0 118px;cursor:pointer}
.mvrelimg{width:118px;height:74px;border-radius:9px;overflow:hidden;background:#0c1226}
.mvrelimg img{width:100%;height:100%;object-fit:cover;display:block}
.mvrelimg.noimg{background:linear-gradient(135deg,#1a2340,#0c1226)}
.mvrelt{font:600 11px/1.3 var(--sans);color:var(--ink2);margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.sfmedia{margin:10px 0}
.sfmedia .sfsnaphd{margin-bottom:8px}

/* ===== FO-P2 · Kosmos Map (안정 지형 · 단일 route) ===== */
.kmapov{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:1350;background:radial-gradient(120% 100% at 50% 0%,#131c3a,#0a0f1e);display:none;flex-direction:column}/* P1: contain within mobile shell */
.kmapov.on{display:flex}
.kmaptop{display:flex;align-items:center;gap:10px;padding:12px 14px;flex:none}
.kmaptop .kmapx{font-size:24px;color:var(--ink);cursor:pointer;flex:none;line-height:1}
.kmaptop .kmaptt{flex:1;font:700 14px var(--sans);color:var(--ink2)}
.kmaptop .kmaptt b{color:var(--ink)}
.kmapviews{display:flex;gap:4px;background:#ffffff0d;border-radius:9px;padding:3px}
.kmapvb{font:700 11px var(--sans);color:var(--ink3);padding:5px 12px;border-radius:7px;cursor:pointer}
.kmapvb.act{color:var(--ink);background:#6aa6ff22}
.kmapsub{font:600 11px var(--sans);color:var(--ink4);padding:0 14px 8px}
.kmapctxs{display:flex;gap:6px;padding:0 12px 10px;overflow-x:auto;flex:none}
.kmapctx{font:700 11px var(--sans);color:var(--ink3);background:#ffffff0a;border:1px solid var(--line);border-radius:9px;padding:6px 11px;white-space:nowrap;cursor:pointer}
.kmapctx.act{color:#0c1226;background:#9ec6ff;border-color:#9ec6ff}
.kmapcanvas{flex:1;position:relative;overflow:hidden}
.kmapcanvas svg{width:100%;height:100%}
/* KOS-02: .kmapterr(rim label)·.kmapcluster(cluster label)·.kmapzoom/.kmapzb/.kmapzlvl(zoom UI) 제거 — DOM 폐기와 함께 dead CSS 정리 */
.kmapnode{cursor:pointer}
.kmapnode circle{transition:r .15s}
.kmapnode text{font:700 8px var(--sans);fill:#dbe3f4;text-anchor:middle}
.kmapnode.dim{opacity:.32}
.kmapnode.sel circle{stroke:#fff;stroke-width:2}
.kmapedge{stroke:#6aa6ff88;stroke-width:1.2;stroke-dasharray:3 3}
.kmaplegend{position:absolute;left:12px;bottom:16px;font:600 9px var(--sans);color:var(--ink4);max-width:56%}
.kmaplist{flex:1;overflow-y:auto;padding:4px 12px 12px}
.kmaplt{font:800 12px var(--sans);margin:12px 0 8px}
.kmaplrow{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin-bottom:7px;cursor:pointer}
.kmalname{font:700 12.5px var(--sans);color:var(--ink)}
.kmalopp,.kmalax{font:600 9.5px var(--mono);color:var(--ink3)}
.kmalopp{color:#efc34a;margin-left:6px}
.kmalax{margin-top:5px;display:flex;gap:8px;flex-wrap:wrap}
.kmax{font:700 9px var(--mono)}
.kmapdrawer{flex:none;border-top:1px solid var(--line);padding:11px 12px;background:#0c122688}
.kmapdh{font:800 11px var(--mono);color:var(--ink3);margin-bottom:8px}
.kmapopps{display:flex;gap:7px;overflow-x:auto}
.kmappill{font:700 10.5px var(--sans);color:var(--ink2);background:#ffffff0d;border:1px solid var(--line);border-radius:9px;padding:6px 10px;white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:5px}
.kmappill b{color:var(--ink)}
.kmapsheet{position:absolute;inset:0;background:#0008;display:flex;align-items:flex-end;z-index:5}
.kmapsheet[hidden]{display:none}
.kmapsh{width:100%;background:var(--card,#141b30);border-radius:18px 18px 0 0;padding:8px 16px 20px;border-top:1px solid var(--line)}
.kmapsgrab{width:38px;height:4px;border-radius:3px;background:#ffffff2a;margin:0 auto 12px}
.kmapst{font:800 15px var(--sans);color:var(--ink);margin-bottom:9px}
.kmapsax{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:11px}
.kmapsopp{font:700 12px var(--sans);color:var(--ink);background:#efc34a14;border:1px solid #efc34a44;border-radius:9px;padding:8px 11px;display:flex;align-items:center;gap:7px}
.kmapsopp.none{color:var(--ink4);background:#ffffff08;border-color:var(--line)}
.kmapsr{display:flex;gap:9px;margin-top:11px}
.kmapsb{flex:1;text-align:center;font:800 12.5px var(--sans);color:#0c1226;background:#9ec6ff;border-radius:10px;padding:10px;cursor:pointer}
.kmapsb.alt{color:var(--ink);background:#ffffff12}

.sfrecreate{margin:10px 0}
.sfrecreate .sfsnaphd{margin-bottom:8px}

/* ===== FF-E03: 내 관심사 전용 렌더러 (Signal과 구분되는 composition) ===== */
.peekfeed{padding:0}
.peekhdr{padding:12px 14px 10px;border-bottom:1px solid var(--line,#20233a)}
.peekhdr .pkhl{font:800 16px var(--sans);color:var(--ink,#e8e6ff)}
.peekhdr .pkhs{font:500 12px var(--sans);color:#9aa0c0;margin-top:3px}
/* CO1 §C6/§C8: 뉴스 덱 슬라이드(우리 문장 vs 인용 구분) · Summary 이번 주 바뀐 것 · Feed 뉴스 카드 덱 전개 */
.deckours{display:block;font:500 12.5px/1.5 var(--sans);color:var(--ink,#e8e6ff)}
.deckquote{display:block;margin-top:6px;padding-left:8px;border-left:2px solid var(--line2);font:500 12px/1.45 var(--sans);color:var(--ink2,#b7bdd8);font-style:italic}
.deckquote i{display:block;font-style:normal;font:600 10px var(--mono);color:var(--ink3,#8790b5);margin-top:2px}
.deckcta{display:inline-block;margin:4px 6px 0 0;font:700 11.5px var(--sans);color:#9ec6ff;cursor:pointer}
.newsdeck{margin-top:10px}
.skosweek{margin:10px 2px 2px}
.skoswkh{font:700 11.5px var(--sans);color:var(--ink3,#8790b5);margin-bottom:4px}
.skoswkl{font:500 12.5px/1.5 var(--sans);color:var(--ink2,#b7bdd8)}
/* V3 §7-2: Summary 커뮤니티 진입점(대화 N). */
.skoscomm{margin:8px 2px 2px;font:700 12.5px var(--sans);color:#9ec6ff;cursor:pointer}
.skoscomm b{color:var(--ink,#e8e6ff)}
/* V3 §6-2: asK 단일 답변 카드 — 판정·불릿·출처·상태 문장(기존 ablock 토큰 재사용). */
.abjudge{font:500 15px/1.55 var(--sans);color:var(--ink,#e8e6ff)}
.abullets{margin:10px 0 6px;padding-left:18px}
.abullets li{font:500 13px/1.5 var(--sans);color:var(--ink2,#b7bdd8);margin:3px 0}
.asrc{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px}
.anodeline{font:600 12px var(--sans);color:var(--ink3,#8790b5);margin:6px 0 2px}
.astatus{font:500 12px var(--sans);color:var(--ink3,#8790b5);margin:8px 0 12px}
.astatustop{border:1px solid #efc34a55;background:#efc34a12;border-radius:12px;padding:12px 14px;margin:8px 0 12px}
.astatustop .abt{font:600 14px/1.5 var(--sans);color:var(--ink,#e8e6ff)}
/* V3 §5-2: 작성 첨부 — 사진 썸네일 · 영상/링크 칩. 기존 칩 토큰 값 재사용. */
.attlinkrow{display:flex;gap:8px;align-items:center;margin:8px 0 2px}
.attlinkrow .cfin{flex:1;min-width:0}
.attlinkadd{font:700 12px var(--sans);color:#6aa6ff;cursor:pointer;flex:none;padding:6px 4px}
.attprev{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 2px}
.attitem{position:relative;display:inline-flex;align-items:center;gap:5px;font:600 11.5px var(--sans);color:var(--ink,#e8e6ff);background:#141b2e;border:1px solid var(--line2);border-radius:10px;padding:6px 24px 6px 9px}
.attitem b{position:absolute;right:6px;top:50%;transform:translateY(-50%);color:#8790b5;font-weight:800;cursor:pointer}
.attitem.attimg{padding:0;width:64px;height:64px;overflow:hidden}
.attitem.attimg img{width:100%;height:100%;object-fit:cover;display:block}
.attitem.attimg b{background:#0009;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;top:4px;right:4px;transform:none}
/* CO1 §C1: 작성 — 태그 입력(커뮤니티 선택 칩 UI 대체). 기존 칩 토큰 값 재사용. */
.tagbox{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;padding:8px 10px;border:1px solid var(--line2);border-radius:12px;background:#ffffff06}
.tagico{font-size:13px;opacity:.7;flex:none}
.tagpill{display:inline-flex;align-items:center;gap:5px;font:600 12px var(--sans);color:#cfe0ff;background:#6aa6ff14;border:1px solid #6aa6ff33;border-radius:13px;padding:4px 9px}
.tagpill.fixed{background:#6aa6ff26;border-color:#6aa6ff66;color:#fff}
.tagpill b{color:#8790b5;font-weight:800;cursor:pointer}
.taginput{flex:1;min-width:110px;background:transparent;border:0;outline:0;font:500 12.5px var(--sans);color:var(--ink,#e8e6ff);padding:4px 2px}
.tagsug{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.tagsugitem{font:600 12px var(--sans);color:var(--ink,#e8e6ff);background:#ffffff08;border:1px solid var(--line2);border-radius:13px;padding:5px 10px;cursor:pointer}
/* V3 §4: Community 단일 리스트 — 기존 카드/칩 토큰 값 재사용(새 디자인 토큰 없음). */
/* Dive '이 주제 콘텐츠' 유형 필터 — CSS 가 없어 평문으로 뭉쳐 보이던 문제 수정.
   Community 정렬/필터와 같은 언어(평문 토글)로 통일한다. */
.sfdivetabs{display:flex;flex-wrap:wrap;gap:14px;padding:2px 2px 10px;margin-bottom:2px;border-bottom:1px solid var(--line,#20233a)}
.sfdtab{font:600 12px var(--sans);color:var(--ink3,#8790b5);cursor:pointer;white-space:nowrap}
.sfdtab.act{color:#6aa6ff}
/* CO1 §C3: 관심사 칩 행(가로 스크롤) — followed 진하게 / peeked 옅게(불투명도 차이로만 구분). */
.v3ichips{display:flex;gap:6px;overflow-x:auto;padding:10px 14px 4px;scrollbar-width:none}
.v3ichips::-webkit-scrollbar{display:none}
.v3ichip{flex:none;font:600 12px var(--sans);color:var(--ink,#e8e6ff);background:#ffffff08;border:1px solid var(--line2);border-radius:13px;padding:6px 11px;cursor:pointer;white-space:nowrap}
.v3ichip.dim{opacity:.55}
.v3ichip.act{color:#fff;background:#6aa6ff;border-color:#6aa6ff;opacity:1}
.v3scopebar{display:flex;align-items:center;gap:8px;padding:10px 14px 6px}
.v3sc-chip{font:600 12px var(--sans);color:var(--ink,#e8e6ff);background:#ffffff08;border:1px solid var(--line2);border-radius:13px;padding:6px 11px}
.v3sc-label{font:700 12.5px var(--sans);color:var(--ink2,#b7bdd8);padding:6px 2px;flex:none}
.v3sc-chip.on{color:#9ec6ff;border-color:#6aa6ff44}
.v3sc-chip b{color:#8790b5;font-weight:800;margin-left:4px;cursor:pointer}
.v3search{flex:1;min-width:0;font:500 12.5px var(--sans);color:var(--ink,#e8e6ff);background:#141b2e;border:1px solid var(--line2);border-radius:13px;padding:6px 11px}
/* R6-2: 첫 화면 행을 한 줄 더 확보하려고 크롬을 다시 깎는다 — 행 내용은 건드리지 않는다.
   자료 블록 인용 2줄과 제목 2줄은 그대로 둔다. */
.v3sortrow{display:flex;gap:14px;padding:1px 16px 5px;border-bottom:1px solid var(--line,#20233a)}
.v3sort{font:600 12px var(--sans);color:var(--ink3,#8790b5);cursor:pointer;padding:3px 0}
.v3sort.act{color:#6aa6ff}
.v3lc{padding:12px 14px;border-bottom:1px solid var(--line,#20233a);cursor:pointer}
.v3lc-h{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.v3lc-qi{margin-right:5px}
.v3lc-h .v3lc-ago{margin-left:auto}
.v3lc-ago{font:500 11px var(--sans);color:var(--ink3,#8790b5)}
.v3lc-t{font:700 14px/1.35 var(--sans);color:var(--ink,#e8e6ff)}
.v3lc-b{font:500 12.5px/1.45 var(--sans);color:var(--ink2,#b7bdd8);margin-top:3px;max-height:2.9em;overflow:hidden}
.v3lc-ans{font:500 12px/1.4 var(--sans);color:#5ad6a8;margin-top:4px}
.v3lc-f{margin-top:7px;font:600 11.5px var(--sans);color:var(--ink3,#8790b5)}
/* V3 §3-4: 내 관심사 행 — 탭 행 아래 별도 줄. 기존 .fctx.peek·.peekchip 토큰 값 재사용(새 토큰 없음). */
.peekrow{padding:5px 14px 2px;display:flex;flex-direction:column;gap:7px}
/* display 선언이 UA의 [hidden]{display:none} 을 덮으므로 명시적으로 되살린다(기본 접힘 보장). */
.peekrow[hidden],.peekchips[hidden]{display:none}
.peektog{align-self:flex-start;font:600 11px var(--sans);color:#9ec6ff;background:#ffffff08;border:1px solid #6aa6ff44;border-radius:13px;padding:6px 11px;cursor:pointer}
.peektog b{color:var(--mine);margin:0 3px}
.peekchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.peekchip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--line,#2a2e48);border-radius:999px;background:#171a2c;font:600 12px var(--sans);color:var(--ink,#e8e6ff);cursor:pointer}
.peekchip .pkdot{width:7px;height:7px;border-radius:50%}
.peekchip .pkx{color:#8790b5;font-weight:800}
.peekchip.dim{opacity:.55}   /* CO1 §C4: peeked = 옅게(불투명도 차이로만 구분) */
.peekmod{padding:12px 14px;border-bottom:1px solid var(--line,#20233a)}
.peekmod .pkmh{font:800 12px var(--sans);color:#c7ccef;letter-spacing:.2px;margin-bottom:8px}
/* CR2-F(D10-06): 의미 있는 비교 — 이득 문구 + 종류 다를 때 관계 설명 */
.cmpbenefit{font:700 11px var(--sans);color:#9ec6ff;margin:0 0 9px}
.cmprelnote{font:500 12px/1.55 var(--sans);color:var(--ink2)}
.peekmod.compare.rel{background:#ffffff04}
.peekmod.since .tcrow{display:flex;align-items:center;gap:8px;padding:6px 0}
.pkrel{display:inline-block;font:700 10px var(--sans);padding:3px 8px;border-radius:999px;margin-bottom:6px}
.pkrel.direct{background:#173a2e;color:#5ad6a8;border:1px solid #2b6b52}
.pkrel.reason{background:#2a2340;color:#b39bff;border:1px solid #4a3d78}
.peekdirect,.peekrelated{margin-bottom:10px}
.pkfr{display:flex;align-items:center;gap:6px;padding:9px 10px;margin-bottom:7px;border:1px dashed #3a3f63;border-radius:10px;background:#14172a;font:500 12px var(--sans);color:#c2c7e6;cursor:pointer}
.pkfr b{color:var(--ink,#e8e6ff)}
.pkfr .pkfrgo{margin-left:auto;color:#8aa0ff;font-weight:700;white-space:nowrap}

/* ===== FF-B03: Visitor Public My — micro Credibility strip (tiny chips · 큰 숫자 grid 금지) ===== */
.credstrip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px 4px}
.credchip{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border:1px solid var(--line,#2a2e48);border-radius:999px;background:#141726;font:600 11px var(--sans);color:#c7ccef;cursor:pointer;white-space:nowrap}
.credchip:active{background:#1c2036}
.credstriplbl{font:500 10px var(--sans);color:#7a80a0;margin-left:2px}

/* ===== FF-D05/D06: Snapshot Key Signals tiles + FF-D03 Charting/Frontier bands ===== */
.snsigtiles{display:flex;gap:7px;flex-wrap:wrap}
.snsigtile{flex:1 1 30%;min-width:96px;display:flex;gap:7px;align-items:flex-start;padding:8px 9px;border:1px solid var(--line,#242840);border-left:3px solid var(--sig,#6aa6ff);border-radius:9px;background:#12152400}
.snsigtile .sstic{font-size:15px;line-height:1.1}
.snsigtile .sstl{font:800 12px var(--sans);color:var(--ink,#e8e6ff)}
.snsigtile .ssti{font:500 10.5px var(--sans);color:#98a0c4;margin-top:2px;line-height:1.3}
/* FR2-C04/D8-04: Snapshot featured preview(one item) + Kosmos Map micro cue */
.snfeat{display:flex;gap:10px;align-items:center;cursor:pointer}
.snfeatimg{flex:0 0 62px;width:62px;height:52px;border-radius:8px;overflow:hidden;background:#0c1226}
.snfeatimg img{width:100%;height:100%;object-fit:cover;display:block}
.snfeatimg.noimg{background:linear-gradient(135deg,#1a2340,#0c1226)}
.snfeatm{flex:1;min-width:0}
.snfeatt{font:700 12.5px var(--sans);color:var(--ink,#e8e6ff);line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.snfeatk{font:600 10px var(--sans);color:#8aa0ff;margin-top:3px}
.snmapcue{display:flex;align-items:center;gap:8px;font:700 11px var(--sans);color:#9db4e0;background:#12203a55;border:1px dashed #2a3860;border-radius:10px;padding:8px 12px;cursor:pointer}
.snmapcue .snmapsub{font:500 9.5px var(--sans);color:#7d8bb0;margin-left:auto}
.snsec.charting{border-top:1px solid var(--line,#20233a);padding-top:9px}
.chbands{display:flex;gap:7px;margin:4px 0 7px}
.chband{flex:1;display:flex;flex-direction:column;gap:3px;padding:7px 8px;border:1px solid var(--line,#242840);border-radius:8px;background:#12152400}
.chband .chbk{font:700 9.5px var(--sans);color:#8892b5;letter-spacing:.3px;text-transform:uppercase}
.chband .chbv{font:800 12px var(--sans)}
.chbv.c-hi{color:#5ad6a8}.chbv.c-mid{color:#e8c34a}.chbv.c-lo{color:#e88a6a}
.chpulse{font:600 11px var(--sans);color:#b0b6d6;margin:2px 0 6px}
.chfront{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:5px}
.chfront .chfl{font:700 10px var(--sans);color:#8892b5;margin-right:2px}
.chfr{font:600 10.5px var(--sans);color:#c2c7e6;border:1px dashed #3a3f63;border-radius:999px;padding:2px 8px}
.chkrew{font:600 11px var(--sans);color:#c7ccef;margin:4px 0}
.snapnext{border-top:1px solid var(--line,#20233a);padding-top:9px}
.snapnext .sc-btn.opp{display:inline-block;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#5b6cff,#8a5bff);color:#fff;font:800 13px var(--sans);cursor:pointer}
.snapnext .sc-hint{display:block;font:500 11px var(--sans);color:#98a0c4;margin-top:5px}

/* ===== FF-D01(D7-06): image-led Kosmos node — 비주얼 72~80% · status 이미지 overlay · Add/Peek ≥40px 고대비 ===== */
/* body에서 status행·why행 제거(markup) → 이미지 확장으로 총 높이 유지(dome overlap 무증가). */
/* CR-A(D10-01): 서술 2줄은 유지(가독)하되, full cH 169>ROWGAP158·cW 152>COLGAP144로 카드가 겹침 →
   이미지 높이·full 폭·body 패딩을 grid(144×158) 밑으로 내려 dome overlap 0. 서술/제목 잘림 없음(2줄 유지). */
.c.imgled .img{height:78px}
.node.compact .c.imgled .img{height:74px}
.node.mini .c.imgled .img{height:70px}
.node.focus .c.imgled .img{height:156px}
.c.imgled .body{padding:4px 10px 5px}
/* FR2-C01/D8-02: 제목 폰트 축소(현 RC 대비) — 2단계만(일반 13.5·긴제목 12.5) */
.c.imgled .ttl{font-size:13.5px;min-height:0;margin-bottom:1px;line-height:1.18}
.c.imgled .ttl.long{font-size:12.5px}
.node.mini .c.imgled .ttl{min-height:0}
/* Daniel(FP-04): 크기별 노드 렌더러 — Small=서술 없음 / Medium=short 1줄 완결 hook / Large=long 2줄 완결 hook.
   hook은 예산 내 완결 문장이라 clamp가 …를 만들지 않음(문장 중간 ellipsis 0). */
.c.imgled .ndesc{font:500 9.5px/1.34 var(--sans);color:#a6b4d0;margin:0 0 2px;-webkit-box-orient:vertical;overflow:hidden}
.c.imgled .ndesc.short{display:none}                                        /* full(Large) 기본 = long */
.c.imgled .ndesc.long{display:-webkit-box;-webkit-line-clamp:2}
.node.compact .c.imgled .ndesc.short{display:-webkit-box;-webkit-line-clamp:1}   /* Medium = short 1줄 */
.node.compact .c.imgled .ndesc.long{display:none}
.node.mini .c.imgled .ndesc,.node.anchor .c.imgled .ndesc{display:none!important}  /* Small = 서술 없음 */
/* Daniel: Type Chip(IP/Topic/Signal/Guide/Product/Krew/Claim) — 이미지 좌상단 코너 배지(카드 높이 무증가·소형에도 표시) */
.c.imgled .img .ntype{position:absolute;top:6px;left:6px;z-index:2;font:700 8px var(--mono);letter-spacing:.02em;color:#eef2ff;background:color-mix(in srgb,var(--nc,#6aa6ff) 62%,#0a0f1ce6);border:1px solid #ffffff2e;border-radius:6px;padding:1px 6px;line-height:1.35}
.node.mini .c.imgled .img .ntype,.node.anchor .c.imgled .img .ntype{font-size:7.5px;padding:0 4px;top:4px;left:4px}
/* FR2-C03/D8-02: outer keyword 노드 타이포 확대·가독 우선 */
.node.mini .c.imgled .ttl{font-size:12px;color:var(--ink,#e8e6ff)}
/* CR2-A03(D11-03): 외곽 키워드 노드 텍스트 색 = 카테고리(테두리) 색. */
.node.anchor .c .ttl{font-size:12.5px;color:var(--nc,var(--ink,#e8e6ff));font-weight:700}
/* status = 이미지 위 overlay pill(별도 텍스트 행 아님) */
.c.imgled .img .novl{position:absolute;left:6px;bottom:6px;z-index:2;display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:8px;background:#0a0f1cd9;border:1px solid var(--sc,#8794b5);color:#fff;font:700 9px var(--sans);white-space:nowrap}
.c.imgled .img .novl .sti{font-size:9px;line-height:1}
.c.imgled .img .novl.emph{box-shadow:0 0 10px -2px var(--sc)}
.node.mini .c.imgled .img .novl .stt{display:none}
.node.anchor .c.imgled .img{display:none}
.node.anchor .c.imgled .img .novl{display:none}
/* FR2-C02/D8-02: Add/Peek = hit target 40px 유지 · 시각 disc ~30%↓·반투명(::after 28px). 접근 hit area 보존. */
.c.imgled .add{top:6px;right:6px;left:auto;width:40px;height:40px;background:transparent!important;border:none;box-shadow:none;font-size:0;color:transparent;z-index:4}
.c.imgled .add::after{content:'＋';display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#0b0f1cb0;border:1px solid #ffffff40;font:600 15px var(--sans);color:#fff;backdrop-filter:blur(2px)}
.node.mini .c.imgled .add{width:40px;height:40px}
.node.collected .c.imgled .add{background:transparent!important}
.node.collected .c.imgled .add::after{content:'✓';background:var(--cc);border-color:var(--cc);color:#06121f;font-weight:800}

/* ===== FF-C03/D7-05: deck editorial/typographic tile (generatedPrototype · 빈 그라데이션 대체) ===== */
.deckedi{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center;overflow:hidden;background:linear-gradient(150deg,color-mix(in srgb,var(--dc) 34%,#0c1020),color-mix(in srgb,var(--dc) 10%,#0b0e18))}
.deckedi .deckediband{position:absolute;left:-20%;top:38%;width:140%;height:16px;background:color-mix(in srgb,var(--dc) 70%,transparent);transform:rotate(-8deg);opacity:.35}
.deckedi .deckedimark{font-size:26px;color:color-mix(in srgb,var(--dc) 90%,#fff);opacity:.9;z-index:1}
.deckedi .deckedil{z-index:1;font:800 17px/1.25 var(--sans);color:#f2f0ff;letter-spacing:-.01em;max-width:90%}
.deckedi .deckedis{z-index:1;font:700 10px var(--mono,monospace);letter-spacing:1.5px;color:color-mix(in srgb,var(--dc) 60%,#c8cdf0)}

/* ===== FF-G(D7-14): Krew density — member activity avatars + active thread badge ===== */
.kact{display:flex;align-items:flex-start;gap:9px;padding:7px 0;border-bottom:1px solid var(--line,#1c2036)}
.kact:last-child{border-bottom:0}
.kactav{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 12px var(--sans);color:#0a0f1c;flex:0 0 26px}
.kactt{font:500 12px/1.35 var(--sans);color:var(--ink,#e8e6ff)}
.kactrole{font:700 9px var(--sans);color:#8aa0ff;background:#1a2036;border:1px solid #2a3358;border-radius:6px;padding:1px 5px;margin:0 2px}
.kacts{font:500 10.5px var(--sans);color:#8890b0;margin-top:2px}
.kconv.kactive .kcdot{box-shadow:0 0 0 3px color-mix(in srgb,#5ad6a8 30%,transparent)}
.kdactbadge{display:inline-block;font:800 8.5px var(--sans);color:#0a1a14;background:#5ad6a8;border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:middle;letter-spacing:.3px}

/* V3 — 콘텐츠가 아직 없는 주제의 빈 상태 + 관련 섹션 구분선 */
.v3empty{margin:22px 14px 8px;text-align:center}
.v3empty-t{font-size:15px;font-weight:700;color:var(--ink)}
.v3empty-b{margin-top:5px;font-size:12.5px;color:var(--ink3)}
.v3empty-cta{margin-top:12px;padding:9px 20px;border:0;border-radius:999px;background:var(--ink);color:var(--bg0);font-size:13px;font-weight:700}
.v3relhd{margin:20px 14px 8px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink3)}

/* V3 — 주제 상세 안의 커뮤니티 구성물 섹션 */
.sfcommsec{margin:14px 0 4px}
.sfcommrow{padding:11px 13px;margin:0 0 7px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.sfcommt{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.42}
.sfcommm{margin-top:5px;font-size:11.5px;color:var(--ink3)}
.sfcommmore{margin-top:2px;padding:10px;text-align:center;border:1px solid var(--line);border-radius:12px;font-size:12.5px;font-weight:700;color:var(--ink2)}

/* V3 — 출처/데이터 상태 배지. '예시 표본'은 실측이 아니라는 표시이므로 본문과 섞이면 안 된다. */
.ssbadge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:700;line-height:1.5;vertical-align:middle;white-space:nowrap}
.ssbadge.ss-sample{background:#f5a62322;color:#f5a623;border:1px solid #f5a62355}

/* V3 — Community 리스트 카드의 저자 줄(Feed .scauthc 재사용, 카드 하단 정렬).
   .scav 크기 규칙은 `.samplecard .scav` 로만 스코프돼 있어 .v3lc 안에서는 적용되지 않는다 — 여기서 명시한다. */
.v3lc .v3lc-au{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.v3lc .v3lc-f{display:flex;align-items:center;gap:10px;margin-top:9px}
.v3lc .v3lc-f .v3lc-au{margin-top:0;padding-top:0;border-top:0;margin-left:auto}
.v3lc .scauthc{display:flex;align-items:center;gap:6px;min-width:0}
.v3lc .scav{width:20px;height:20px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 10px var(--sans);color:#06121f}
.v3lc .scah{font:600 11.5px var(--mono);color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* V3 — 커뮤니티 글 상세: 내부 파이프라인 설명 제거 후 '진짜 글'처럼 보이게. 저자·시간·댓글 구조. */
.rpsheet .rp-ago{margin-left:auto;font:500 11px var(--sans);color:var(--ink3)}
.rpsheet .scauthc{display:flex;align-items:center;gap:6px;min-width:0}
.rpsheet .scav{width:22px;height:22px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 11px var(--sans);color:#06121f}
.rpsheet .scah{font:600 12px var(--mono);color:var(--ink3)}
.rpsheet .rp-h{display:flex;align-items:center;gap:8px}
.rpsheet .rp-reps{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.rpsheet .rpr-b{margin-top:6px;font:500 12.5px var(--sans);color:var(--ink2);line-height:1.6;white-space:pre-wrap}
.rpsheet .rpr-t{margin-top:5px;font:500 10.5px var(--sans);color:var(--ink3)}
.rpsheet .rpr{padding:11px 0}

/* FO-F7: Community 리스트 미디어 — .scimg 크기 규칙이 `.samplecard` 하위로만 스코프되어
   .v3lc 안에서는 원본 비율로 그려져 카드 폭과 어긋나고 레터박스가 남았다. 같은 규칙을 명시한다. */
.v3lc .scimg{display:block;border-radius:11px;overflow:hidden;margin-top:9px}
.v3lc .scimg img{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;object-position:center;display:block;background:transparent}
.v3lc .scimg.shrunk{display:none}

/* F8 — Dive 세로 스택 */
.sfnowsec,.sfmainsec,.sftalksec,.sfmixsec{margin:16px 0 4px}
.sfnowcard{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);font:600 13.5px var(--sans);color:var(--ink);line-height:1.55}
.sftalksec .sfsnaphd{display:flex;align-items:center;gap:8px}
.sftalkadd{margin-left:auto;width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;font:700 15px var(--sans);color:var(--ink2)}
.sfmixsec .sfmixitem{margin-bottom:8px}
.sfmore{margin-top:6px;padding:11px;text-align:center;border:1px solid var(--line);border-radius:12px;font:700 12.5px var(--sans);color:var(--ink2)}

/* F9-3 — Community 컴팩트 행. 카드가 아니라 구분선 있는 행.
   글씨를 줄이지 않는다(본문 13.5px = 기존 body 급). 탭 영역 ≥ 44px. */
/* R5 §2 (A2 목업 확정) — Community 행. 새 컴포넌트를 만들지 않고 기존 v3r-* 에 값만 반영한다. */
.v3lc.v3row{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;
  border:0;border-radius:0;border-bottom:1px solid var(--line);background:transparent;margin:0}
.v3row .v3r-main{flex:1 1 auto;min-width:0}
/* §2-1 제목 2줄까지. 1줄 클램프는 되돌렸다 — 높이는 대리 지표였고 진짜 요구는 첫 화면 행 수다. */
.v3row .v3r-t{font:600 14.5px/1.42 var(--sans);color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v3row .v3r-qi{margin-right:5px}
/* §2-2 메타 한 줄 — 주제 · 아바타+@handle · 시간 · 카운트. 넘치면 줄바꿈. */
.v3row .v3r-m{display:flex;align-items:center;gap:6px;margin-top:8px;
  font-size:11.5px;color:#6b7799;font-weight:400;flex-wrap:wrap;min-width:0}
.v3row .v3r-dot{color:#3d4870}
/* §2-3 주제 레이블 — 알약 아님. 색점 + 이름만. 눌리는 것임이 색·굵기로 드러난다. */
.v3row .v3r-m .sctopic{display:inline-flex;align-items:center;gap:5px;position:relative;
  color:#b9c2e0;font-weight:600;font-size:11.5px;
  background:none;border:0;border-radius:0;padding:0;max-width:none;min-height:0}
.v3row .v3r-m .sctopic .sctopd{width:6px;height:6px;border-radius:50%;background:var(--tc,#6aa6ff);flex:none}
/* 탭 영역만 44px 로 넓힌다 — 글자를 키우지 않고 행 높이에도 영향을 주지 않는다.
   지시서의 -13px 로는 실측 43px 로 1px 모자란다(칩 높이 17px + 13 + 13). -14px 로 둔다. */
.v3row .v3r-m .sctopic::after{content:'';position:absolute;inset:-14px -8px}
.v3row .v3r-au{display:inline-flex;align-items:center;gap:5px;min-width:0;color:#6b7799}
.v3row .v3r-av{width:19px;height:19px;flex:none;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;font:700 10px var(--sans);color:#0b1020}
.v3row .v3r-ag,.v3row .v3r-cn{flex:none;color:#6b7799;font-weight:400}
/* §2-4 결과 줄 — 파생물이 있을 때만. 없으면 줄 자체가 없다. */
.v3row .v3r-dv{margin-top:6px;font:600 11.5px var(--sans);color:#8b7ff0}
/* §2-5 썸네일 — 그 글의 첨부만(§1). 없으면 그리지 않고 자리표시자도 두지 않는다. */
.v3row .v3r-th{flex:none;width:54px;height:54px;border-radius:8px;overflow:hidden;background:#ffffff08}
.v3row .v3r-th img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.v3empty-cta2{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.v3empty-cta.ghost{background:transparent;color:var(--ink2);border:1px solid var(--line)}
.sfcatgo{display:inline-block;margin-left:8px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font:700 11px var(--sans);color:var(--ink2)}
/* R5 §2: 위 A2 블록이 단일 정의다. 이 자리에 있던 구규격(알약 칩 · 16px 아바타 · 기존 결과 줄)은
   늦게 선언돼 새 블록을 덮어쓰고 있었다 — 삭제한다. */
/* R2 §4-4 · §4-2 — Dive 주요 콘텐츠의 파생 객체 카드 + 역링크 */
.sfderivcard{padding:13px 14px;margin-bottom:9px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.sfderivk{font:800 10.5px var(--mono);letter-spacing:.04em;color:var(--mine);margin-bottom:5px}
.sfderivt{font:700 13.5px/1.45 var(--sans);color:var(--ink)}
.sfderivb{margin-top:5px;font:500 12.5px/1.6 var(--sans);color:var(--ink2)}
.sfbacklink{margin-top:9px;padding-top:8px;border-top:1px solid var(--line);font:600 11.5px var(--sans);color:var(--ink3)}
/* R2 §5-2 — 발견 한 줄. 콘텐츠 카드처럼 보이지 않게(테두리·배경 없음, 중앙 정렬 텍스트). */
.discline{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 14px 24px;flex-wrap:wrap}
.discline .disct{font:500 12.5px var(--sans);color:var(--ink3)}
.discline .discb{padding:8px 14px;border:1px solid var(--line);border-radius:999px;font:700 12px var(--sans);color:var(--ink2)}
/* R2 §5-1 — Summary CTA 4개 + preview 두 줄 */
.sacts.snap4{display:flex;gap:6px}
.sacts.snap4 .sa{flex:1 1 0;text-align:center;white-space:nowrap;font-size:11.5px;padding:9px 4px}
.spvrow{display:flex;align-items:baseline;gap:8px;margin-top:9px;padding:9px 11px;
  border:1px solid var(--line);border-radius:11px;min-height:44px}
.spvrow .spvk{flex:none;font:700 10.5px var(--mono);color:var(--ink3)}
.spvrow .spvt{font:600 12.5px/1.45 var(--sans);color:var(--ink2);overflow:hidden}
/* R2 §4-5 조치3 — 시트 명시적 닫기. 기존 카드 토큰만 쓴다. */
.summ-sheet{position:relative}
.summ-sheet .sheetx{position:absolute;top:10px;right:12px;width:32px;height:32px;z-index:3;
  display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;
  background:transparent;color:var(--ink2);font-size:14px;line-height:1;padding:0}
/* R6 §2 — 관심사 필터 탭. 가로 스크롤 한 줄, 헤더 아래·정렬 줄 위. */
/* R6 §5: 첫 화면 행을 확보하려고 크롬 여백을 먼저 깎는다 — 행 내용보다 크롬을 먼저 줄인다. */
.v3tabrow{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:5px 14px 1px}
.v3tabrow::-webkit-scrollbar{display:none}
.v3tab{flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;min-height:30px;
  border:1px solid var(--line);border-radius:999px;background:transparent;
  font:600 12px var(--sans);color:var(--ink3);white-space:nowrap;cursor:pointer}
.v3tab.act{background:#ffffff12;border-color:#ffffff2e;color:var(--ink)}
.v3tab .v3tabd{width:6px;height:6px;border-radius:50%;flex:none}
/* R6 §3 — 유형별 블록. 같은 스트림 안에서 모양으로만 구분한다(별도 섹션 없음). */
/* R6 §5: 첫 화면 행이 4행으로 떨어져 지시대로 미리보기 줄 수부터 줄였다(2줄→1줄).
   제목 2줄은 건드리지 않는다 — R5 에서 이미 가독성을 선택했다. */
.v3row .v3r-pv{margin-top:6px;font:500 12.5px/1.5 var(--sans);color:#9aa6c7;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.v3row .v3r-ans{color:#9aa6c7}
/* 3-2 투표 — 선택지 버튼만. 분포 막대·퍼센트는 그리지 않는다(데이터에 없다). */
.v3row .v3poll{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.v3row .v3poll-o{padding:7px 11px;border:1px solid var(--line);border-radius:9px;
  font:600 12px var(--sans);color:var(--ink2);background:#ffffff06;cursor:pointer}
.v3row .v3poll-o.voted{border-color:#8b7ff0;color:#b9b1ff;background:#8b7ff01a}
.v3row .v3poll-m{align-self:center;font:600 11.5px var(--sans);color:var(--ink3);cursor:pointer}
/* 3-4 자료·정정 — 왼쪽 세로선 + 라벨 + 두 줄 인용. */
.v3row .v3mk{margin-top:8px;padding-left:9px;border-left:3px solid var(--line)}
.v3row .v3mk-l{font:700 10.5px var(--mono);letter-spacing:.03em}
.v3row .v3mk-b{margin-top:3px;font:500 12.5px/1.5 var(--sans);color:#9aa6c7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v3row .v3mk.mk-src{border-left-color:#5fd6a4}   .v3row .v3mk.mk-src .v3mk-l{color:#5fd6a4}
.v3row .v3mk.mk-fix{border-left-color:#e8c46a}   .v3row .v3mk.mk-fix .v3mk-l{color:#e8c46a}
.v3row .v3mk.mk-read{border-left-color:#8b7ff0}  .v3row .v3mk.mk-read .v3mk-l{color:#8b7ff0}
/* R6-2 §3 — 콘텐츠 형식 라벨. 미디어 자산이 생기기 전까지는 라벨만 붙인다(빈 상자 금지). */
.v3row .v3form{flex:none;padding:2px 7px;border-radius:5px;font:700 10px var(--mono);letter-spacing:.02em}
.v3row .v3f-reel{background:#f0894a1f;color:#f0a97a}
.v3row .v3f-carousel{background:#6aa6ff1f;color:#8fc0ff}
.v3row .v3f-thread{background:#ffffff10;color:var(--ink3)}
/* R7 §2 — 유형별 미디어. 이미지는 §1 정책(앵커→관계→같은 카테고리)으로 채우고 회전으로 반복을 관리한다. */
.v3row .v3photos{display:flex;gap:5px;margin-top:8px}
.v3row .v3ph{position:relative;flex:1 1 0;height:64px;border-radius:8px;overflow:hidden;background:#ffffff08}
.v3row .v3ph img{width:100%;height:100%;object-fit:cover;display:block}
.v3row .v3phmore{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:#0b1020b3;font:800 15px var(--sans);color:#fff}
/* R7 §5: 첫 화면 5행을 지키려면 커버가 120px 로는 너무 크다 — 유형은 알아볼 만한 높이로. */
.v3row .v3cover{position:relative;margin-top:7px;height:66px;border-radius:9px;overflow:hidden;background:#ffffff08}
.v3row .v3cover img{width:100%;height:100%;object-fit:cover;display:block}
.v3row .v3play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:40px;height:40px;border-radius:50%;background:#0b1020cc;border:1px solid #ffffff33;
  display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;padding-left:2px}
.v3row .v3nlab,.v3row .v3dur{position:absolute;right:8px;top:8px;padding:2px 7px;border-radius:6px;
  background:#0b1020cc;font:700 10.5px var(--mono);color:#e8ecf7}
.v3row .v3dur{top:auto;bottom:8px}
