/* ═══════════════════════════════════════════════════════════════
   INHOUSE 테마 2단계 — 클로드 디자인 "1b 카드 & 요약" 방향 (2026-09-12)
   theme.css 뒤에 로드되어 색·글꼴·형태만 다시 덮어쓴다. 기능·배치는 그대로.
   빼면 이전(토스풍) 모습으로 돌아간다(롤백 = index.html에서 이 파일 한 줄 제거).
   근거: 사장님이 고른 클로드 디자인 시안 1b + 동봉 WDS 토큰(최종값)
   톤: 흰 바탕 · 잉크 #171719 · 포인트 #0066FF · 카드 = 1px 라인 + 라운드 16 · Pretendard
   ═══════════════════════════════════════════════════════════════ */

/* ── 글꼴: Pretendard Variable (시안 지정, jsDelivr CDN) ─────────── */
@font-face {
  font-family: "Pretendard Variable";
  font-weight: 45 920;
  font-style: normal;
  font-display: swap;
  /* gh/…/dist 경로는 404 (저장소가 packages/ 아래로 옮겨짐) → npm 패키지 경로. tokens.css 의 같은 @font-face 는 이 규칙(뒤에 옴)에 가려져 받지 않는다 */
  src: url("https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/woff2/PretendardVariable.woff2") format("woff2-variations");
}

:root {
  /* WDS 시맨틱 토큰 (시안 _ds/tokens 최종값 발췌) */
  --w-primary: #0066FF;
  --w-primary-strong: #005EEB;
  --w-primary-heavy: #0054D1;
  --w-primary-bg: rgba(0, 102, 255, 0.08);
  --w-primary-line: rgba(0, 102, 255, 0.43);
  --w-ink: #171719;
  --w-ink-neutral: rgba(46, 47, 51, 0.88);
  --w-ink-alt: rgba(55, 56, 60, 0.61);
  --w-ink-assist: rgba(55, 56, 60, 0.28);
  --w-fill: #F7F7F8;          /* 옅은 회색 면 */
  --w-fill-strong: #EAEBEC;
  --w-line: #E1E2E4;
  --w-line-neutral: #EAEBEC;
  --w-line-alt: #F4F4F5;
  --w-dark: #1B1C1E;          /* 다크 필(활성 탭) */
  --w-green: #00BF40; --w-green-text: #009632; --w-green-bg: rgba(0, 191, 64, 0.10);
  --w-orange: #FF9200; --w-orange-text: #D17600; --w-orange-bg: #FFF4E5;
  --w-red: #FF4242; --w-red-text: #E52222; --w-red-bg: rgba(255, 66, 66, 0.10);
  --w-violet: #5B37ED; --w-violet-bg: rgba(101, 65, 242, 0.10);
  --w-shadow-xs: 0 1px 2px -1px rgba(23, 23, 23, 0.10);
  --w-shadow-md: 0 4px 6px -2px rgba(23, 23, 23, 0.07), 0 10px 15px -3px rgba(23, 23, 23, 0.07);
}

/* ── 바탕: 회색 캔버스 → 흰 캔버스 ──────────────────────────────── */
body {
  background: #ffffff;
  color: var(--w-ink);
  font-family: "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, system-ui,
    "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
  letter-spacing: -0.01em;
}
a { color: var(--w-primary); }
a:hover { color: var(--w-primary-strong); }

/* ── 헤더: 60px 한 줄 통합 (2b 보드 Header — 워드마크·탭·배지·이름) ── */
header { background: #fff; color: var(--w-ink); border-bottom: 1px solid var(--w-line-neutral);
  height: 60px; box-sizing: border-box; display: flex; align-items: center; gap: 28px;
  padding: 0 36px; flex-wrap: nowrap; }
header .logo { display: flex; align-items: baseline; gap: 8px; flex: none; }
header .logo img { height: 18px; display: block; }
/* '계약서 자동화' 부제 — 옛 하늘색(style.css header .logo span #7dd3fc)을 우선순위로 이겨야 함 */
header .logo span.wm-sub { font-size: 12px; letter-spacing: 0.0252em; color: var(--w-ink-alt); white-space: nowrap; font-weight: 400; }
.hd-spacer { flex: 1; }
header .who { color: var(--w-ink-alt); flex: none; white-space: nowrap; }
.gbadge { border-radius: 8px; padding: 4px 6px; font-size: 12px; line-height: 16px; font-weight: 500; white-space: nowrap; letter-spacing: 0.0252em; }
.gbadge.on { color: var(--w-green-text); background: rgba(0, 150, 50, 0.08); border: 0; }
.gbadge.warn { color: var(--w-orange-text); background: var(--w-orange-bg); border: 0; }
.gbadge.off { color: var(--w-ink-alt); background: var(--w-fill); border: 0; }
header #googleBox .gbtn { display: none; } /* flat 01: 헤더엔 배지만 — 불러오기·재연결은 설정 페이지에 있음 */
.gbtn { background: var(--w-fill); color: var(--w-ink); border-radius: 10px; }
.gbtn:hover { background: var(--w-fill-strong); }
.gbtn.main { background: var(--w-primary); }
.gbtn.main:hover { background: var(--w-primary-strong); }

/* ── 메뉴: 헤더 안 필 탭, 활성 = 다크 필 (2b 보드 규격) ──────────── */
.menubar { background: transparent; border-bottom: 0; padding: 0; gap: 4px; flex: none; display: flex; }
.menu-tab { color: var(--w-ink-alt); border-radius: 999px; padding: 7px 14px; font-size: 14px;
  font-weight: 600; letter-spacing: 0.0145em; white-space: nowrap; }
.menu-tab:hover { color: var(--w-ink); background: var(--w-fill); }
.menu-tab.on { color: #F7F7F8; background: var(--w-dark); }
.submenubar { padding: 12px 28px 0; }
.sub-tab { color: var(--w-ink-alt); border-radius: 999px; font-weight: 600; }
.sub-tab:hover { background: var(--w-fill); color: var(--w-ink); }
.sub-tab.on { color: #F7F7F8; background: var(--w-dark); }

/* ── 카드: 그림자 카드 → 1px 라인 + 라운드 16 ───────────────────── */
.card {
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px var(--w-line);
  background: #fff;
  padding: 22px 24px;
  margin-bottom: 16px;
}
.card h2 { color: var(--w-ink); }
.h2sub { color: var(--w-ink-assist); }

/* ── 버튼: 파랑 #0066FF ─────────────────────────────────────────── */
.actions button, .gen-choice button, .row-btn, .hbtn,
.newsong .ns-save, .cat-actions button, .mask-btns button {
  background: var(--w-fill); color: var(--w-ink); border-radius: 10px; font-weight: 600;
}
.actions button:hover, .gen-choice button:hover, .row-btn:hover, .hbtn:hover { background: var(--w-fill-strong); }
.actions button.main, .gen-choice button.strong, .mask-btns .save,
.hbtn.ct-new, .inline-form .save, button.save {
  background: var(--w-primary); color: #fff;
}
.actions button.main:hover:not(:disabled), .gen-choice button.strong:hover,
.mask-btns .save:hover, .hbtn.ct-new:hover, .inline-form .save:hover, button.save:hover {
  background: var(--w-primary-strong);
}
button.cancel { background: var(--w-fill); border-radius: 10px; }

/* ── 입력칸: #F7F7F8 · 라운드 12 · 포커스 = 파랑 라인 ────────────── */
.inline-form input[type="text"], .inline-form input[type="date"],
input[type="text"], input[type="date"], input[type="password"], textarea, select {
  background: var(--w-fill);
  border: 0;
  box-shadow: inset 0 0 0 1px transparent;
  border-radius: 12px;
  font-family: inherit;
}
input[type="text"]:focus, input[type="date"]:focus, input[type="password"]:focus, textarea:focus, select:focus {
  background: #fff;
  box-shadow: inset 0 0 0 1.5px var(--w-primary);
  outline: 0;
  border-color: transparent;
}
aside input { box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 12px; }
aside input:focus { outline: 0; box-shadow: inset 0 0 0 1.5px var(--w-primary); }

/* ── 칩·배지: WDS 상태색 ────────────────────────────────────────── */
.chip { background: var(--w-green-bg); color: var(--w-green-text); border-radius: 999px; }
.chip.wait { background: var(--w-orange-bg); color: var(--w-orange-text); }
.chip.none { background: var(--w-fill); color: var(--w-ink-alt); }
.tag { border-radius: 999px; }
.fchip { background: #fff; color: var(--w-ink-alt); box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 999px; }
.fchip:hover { color: var(--w-ink); background: var(--w-fill); }
.fchip.on { background: var(--w-dark); color: #F7F7F8; box-shadow: none; }

/* ── 홈: 보라 그라데이션 히어로 → 흰 바탕 인사 + 라인 검색칸 ─────── */
.hero {
  background: #fff;
  color: var(--w-ink);
  border-radius: 0;
  padding: 26px 4px 6px;
  box-shadow: none;
}
.hero h1 { font-size: 28px; font-weight: 700; letter-spacing: -0.0236em; }
.hero-search {
  background: var(--semantic-background-normal-normal);
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border-radius: 12px;
  padding: 12px;
  gap: 4px;
}
.hero-search:focus-within { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.hero-search input { background: transparent; }
.hero-results { box-shadow: var(--w-shadow-md); border: 1px solid var(--w-line); }

/* 현황 카드: #F7F7F8 면 (시안 01 홈) */
.stat { background: var(--w-fill); box-shadow: none; border-radius: 16px; }
.stat:hover { transform: none; box-shadow: inset 0 0 0 1px var(--w-line); }
.stat .n { color: var(--w-ink); font-size: 28px; }
.stat.warn .n { color: var(--w-orange-text); }
.stat.ok .n { color: var(--w-green-text); }
.i-blue { background: var(--w-primary-bg); }
.i-purple { background: var(--w-violet-bg); }
.i-amber { background: var(--w-orange-bg); }
.i-green { background: var(--w-green-bg); }

/* 바로가기 타일: 화이트 + 1px 라인 (시안 01 홈) */
.tile { box-shadow: inset 0 0 0 1px var(--w-line); border: 0; border-radius: 16px; }
.tile:hover { box-shadow: inset 0 0 0 1.5px var(--w-primary); transform: none; }
.tile .go { color: var(--w-primary); }

/* ── 작가 목록 표 ───────────────────────────────────────────────── */
.al-grid { box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 16px; }
.al-table th { color: var(--w-ink-alt); border-bottom-color: var(--w-line-neutral); }
.al-table td { border-bottom-color: var(--w-line-alt); }
.al-table tbody tr:hover td b { box-shadow: inset 0 -8px 0 rgba(0, 102, 255, 0.12); }
.al-table .al-no { color: var(--w-ink-assist); }

/* ── 목록 행·문서함 ─────────────────────────────────────────────── */
.ct-row:hover { background: var(--w-fill); }
.dp-file:hover { background: var(--w-fill); }
.dp-file.on { background: var(--w-primary-bg); }
.dp-group { color: var(--w-ink-alt); }
.doc-tile { background: var(--w-fill); border-radius: 12px; }
.doc-tile:hover { background: var(--w-primary-bg); }
.doc-tile.on { outline: 2px solid var(--w-primary); background: var(--w-primary-bg); }
.artist:hover { background: var(--w-fill); }
.artist.on { background: var(--w-dark); }
.hr-row:hover { background: var(--w-fill); }

/* ── 곡 관리 폼 부속 ────────────────────────────────────────────── */
.report-box { border-color: var(--w-line); border-radius: 12px; }
.creator-line select { border: 0; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 9px; background: #fff; }
.creator-line input { border: 0; background: var(--w-fill); border-radius: 9px; }
.paste-box textarea { background: var(--w-fill); border: 0; border-radius: 12px; }
.paste-ok { color: var(--w-green-text) !important; }

/* ── 홈 (2b 보드 01 세부 규격) ───────────────────────────────────── */
.home-wrap { max-width: 1160px; padding: 24px 40px 36px; }
#page-home .hero { padding: 0; }
#page-home .stats { margin: 20px 0; }
.hero-sub { font-size: 15px; line-height: 22px; letter-spacing: 0.0096em; color: var(--w-ink-neutral); margin-top: 4px; }
.hs-wrap { position: relative; max-width: 680px; margin-top: 20px; }
.hero-search { max-width: 680px; margin-top: 0; }
.hero-search input { padding: 0 4px; min-height: 24px; font-size: 16px; line-height: 24px; letter-spacing: 0.0057em; }
.hs-ic { display: flex; color: var(--w-ink-alt); padding-left: 0; font-size: 20px; }
.hero-results { position: absolute; left: 0; right: 0; top: 56px; margin-top: 0; max-width: none; z-index: 5; }
.hr-head { font-size: 11px; line-height: 14px; font-weight: 600; color: var(--w-ink-alt); letter-spacing: 0.0311em; }
.hr-row { display: flex; align-items: center; gap: 10px; }
.hr-ava { flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--w-fill-strong);
  color: var(--w-ink-neutral); font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center;
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); }
.hr-row b { font-size: 14px; font-weight: 600; }
.hr-row .hr-meta { font-size: 12px; color: var(--w-ink-alt); margin-left: 0; }
.stat { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; }
.stat .n { letter-spacing: -0.0236em; line-height: 36px; display: flex; align-items: baseline; gap: 2px; }
.stat .n small { font-size: 14px; font-weight: 500; color: var(--w-ink-alt); margin: 0; }
.stat .l { font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0.0145em; color: var(--w-ink-neutral); margin-top: 0; }
.stat.danger .n { color: var(--w-red-text); }
.tile { padding: 20px; }
.tile b { font-size: 16px; line-height: 24px; font-weight: 600; letter-spacing: 0; margin: 12px 0 4px; }
.tile > span:not(.t-ic):not(.go) { color: var(--w-ink-neutral); line-height: 18px; letter-spacing: 0.0194em; }
.tile .go { font-weight: 600; display: inline-flex; align-items: center; gap: 2px; }
.hc-all { display: inline-flex; align-items: center; gap: 2px; }
.t-ic { font-size: 0; }
.i-blue { background: rgba(0, 102, 255, .10); color: #005EEB; }
.i-purple { background: rgba(101, 65, 242, .10); color: #5B37ED; }
.i-green { background: rgba(0, 191, 64, .10); color: #009632; }
.home-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; margin-top: 20px; }
.home-todo { display: flex; flex-direction: column; gap: 10px; }
.home-ct { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 16px; padding: 4px 16px; }
.hc-title { font-size: 17px; line-height: 24px; font-weight: 600; margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; }
.hc-all { border: 0; background: transparent; color: var(--w-primary); font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; }
.hc-empty { font-size: 13px; color: var(--w-ink-alt); padding: 8px 2px; }
.todo-row2 { background: var(--w-fill); border-radius: 16px; padding: 16px 18px; margin: 0; }
.todo-head { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.todo-song { color: var(--w-ink-alt); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.todo-desc { font-size: 15px; line-height: 22px; font-weight: 600; color: var(--w-ink); margin: 10px 0; }
.todo-btn { border: 0; background: var(--w-primary); color: #fff; border-radius: 8px;
  padding: 7px 14px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
  display: inline-flex; align-items: center; gap: 4px; }
.todo-btn:hover { background: var(--w-primary-strong); }
.todo-btn.plain { background: transparent; color: var(--semantic-label-normal);
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); font-weight: 500; }
.todo-btn.plain:hover { background: var(--w-fill); }
.hct-d { flex: none; width: 76px; font-size: 12px; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; letter-spacing: 0.0252em; }
.w-outlined { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); }
.w-outlined:hover { background: var(--w-fill); }
.hd-search { border: 0; background: transparent; width: 40px; height: 40px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--w-ink-neutral); flex: none; }
.hd-search:hover { background: var(--w-fill); }
header .who .who-title { font-weight: 400; color: var(--w-ink-alt); }
header .who { color: var(--w-ink); font-size: 13px; font-weight: 600; }
.hct-row { display: flex; align-items: center; gap: 12px; width: 100%; border: 0; text-align: left;
  background: transparent; border-radius: 0; padding: 12px 0; cursor: pointer;
  font-family: inherit; font-size: 14px; letter-spacing: 0.0145em; color: var(--w-ink);
  border-top: 1px solid var(--w-line-neutral); }
.hct-row:hover { background: var(--w-fill); }
.hct-a { flex: none; min-width: 60px; font-weight: 600; }
.hct-s { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--w-ink-neutral); }

/* ── WDS ContentBadge (시안 공용) ────────────────────────────────── */
.wbadge { flex: none; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 999px; }
.wbadge.blue { background: var(--w-primary-bg); color: var(--w-primary-strong); }
.wbadge.violet { background: var(--w-violet-bg); color: var(--w-violet); }
.wbadge.green { background: rgba(0, 150, 50, .08); color: var(--w-green-text); }
.wbadge.orange { background: rgba(209, 118, 0, .08); color: var(--w-orange-text); }
.wbadge.red { background: var(--w-red-bg); color: var(--w-red-text); }
.wbadge.neutral { background: var(--semantic-fill-normal); color: var(--semantic-label-neutral); }
.wbadge.line { background: #fff; box-shadow: inset 0 0 0 1px currentColor; }
.wbadge.line.orange { box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .43); }
.wbadge.line.green { box-shadow: inset 0 0 0 1px rgba(0, 150, 50, .43); }
.wbadge.neutral.line { color: var(--w-ink-neutral); box-shadow: inset 0 0 0 1px var(--semantic-line-normal-normal); }

/* ── 작가 목록 (2b 보드 02 세부 규격) ────────────────────────────── */
.pg-head { align-items: center; }
.pg-head h1 { font-size: 24px; line-height: 32px; font-weight: 700; letter-spacing: -0.023em; }
.pg-head .h2sub { font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; color: var(--w-ink-alt); }
.pg-head .hbtn { display: inline-flex; align-items: center; padding: 9px 20px; font-size: 15px;
  line-height: 22px; letter-spacing: 0.0096em; gap: 5px; font-weight: 500; margin-left: 0; }
.pg-head .hbtn.ct-new { font-weight: 700; }
.pg-head .w-outlined { background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); }
.al-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.al-search-wrap { position: relative; display: inline-flex; align-items: center; }
.al-search-wrap svg { position: absolute; left: 12px; width: 20px; height: 20px; color: var(--semantic-label-alternative); pointer-events: none; }
.al-search { width: 360px; border: 0; background: #fff; border-radius: 12px;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
  padding: 12px 16px 12px 40px; font-size: 16px; line-height: 24px; letter-spacing: 0.0057em;
  caret-color: var(--w-primary); font-family: inherit; outline: none; }
.al-search:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
#alChips { gap: 6px; margin-bottom: 0; }
.fchip { padding: 6px 12px; font-weight: 600; }
.al-grid { padding: 4px 20px 8px; }
.al-table th { font-size: 12px; font-weight: 600; letter-spacing: 0.0252em; padding: 12px 10px 8px; border-bottom-color: var(--w-line); }
.al-table th:first-child { width: 36px; }
.al-table td { padding: 13px 10px; }
.al-table td b { font-weight: 600; font-size: 14px; }
.al-table .al-no { font-weight: 600; }
.al-table .al-num { font-weight: 600; color: var(--w-ink); }
.al-table { table-layout: fixed; }
.al-table .dot { margin-right: 10px; }
.al-table .al-alias { margin-left: 10px; color: var(--w-ink-alt); letter-spacing: 0.0252em; }
.al-table td:nth-child(3) { color: var(--w-ink-neutral); }
.al-table tr:last-child td { border-bottom: 1px solid var(--w-line-alt); }
.al-table i { color: var(--w-ink-neutral); }
.al-next { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: none; color: var(--w-ink-neutral); }
.al-legend { padding: 0 4px; }
.lg-dot { margin-right: 6px; }
.al-table .dot.g { background: #00BF40; }
.al-table .dot.y { background: #FF9200; }
.al-table .dot.r { background: #C2C4C8; }
.al-next { font-size: 13px; color: var(--w-ink-neutral); }
.al-chev { color: var(--w-ink-alt); font-size: 16px; width: 22px; text-align: right; }
.al-legend { display: flex; gap: 16px; margin-top: 16px; font-size: 12px; line-height: 16px; letter-spacing: 0.0252em; color: var(--w-ink-alt); }
.lg-dot { display: inline-block; width: 8px; height: 8px; border-radius: 99px; margin-right: 6px; vertical-align: 0; }
@media (max-width: 900px) {
  .home-cols { grid-template-columns: 1fr; }
  header { height: auto; flex-wrap: wrap; padding: 10px 16px; gap: 10px; }
  .wm-sub { display: none; }
}

/* ── 작가 상세 히어로 (시안 ArtistHero) ──────────────────────────── */
.ah-back { margin-bottom: 14px; background: transparent; color: var(--w-ink-neutral); padding-left: 0;
  display: inline-flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; }
.ah-back:hover { background: transparent; color: var(--w-ink); }
.ah-back svg { width: 14px; height: 14px; }
.ah-hero { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.ah-ava { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--w-fill-strong);
  color: var(--w-ink-neutral); display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 600; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); }
.ah-mid { flex: 1; min-width: 0; }
.ah-name-row { display: flex; align-items: center; gap: 10px; }
.ah-mid h1 { font-size: 28px; font-weight: 700; letter-spacing: -0.0236em; margin: 0; }
.ah-mid .sub { font-size: 15px; color: var(--w-ink-neutral); letter-spacing: 0.0096em; margin-top: 4px; }
.ah-mid .chips { margin-top: 0; display: flex; gap: 10px; }
.ah-mid .chip { border-radius: 8px; padding: 4px 6px; font-size: 12px; line-height: 16px; font-weight: 500;
  background: #fff; color: var(--w-green-text); box-shadow: inset 0 0 0 1px rgba(0, 191, 64, .43); }
.ah-mid .chip.wait { background: #fff; color: #D17600; box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .43); }
.ah-mid .chip.none { background: var(--semantic-fill-normal); color: var(--w-ink-alt); box-shadow: none; }
.ah-kpis { flex: none; display: flex; align-items: center; gap: 28px; }
.ah-kpi { text-align: left; padding-left: 28px; border-left: 1px solid var(--w-line); }
.ah-kpi:first-child { border-left: 0; padding-left: 0; }
.ah-kpi .k { display: block; font-size: 12px; color: var(--w-ink-alt); margin-bottom: 2px; }
.ah-kpi b { font-size: 20px; line-height: 28px; font-weight: 700; letter-spacing: -0.012em; }

/* ── 작가 상세 세그먼트 탭 (시안: #F7F7F8 컨테이너 + 활성 = 화이트) ── */
.atabs { background: var(--w-fill); border-radius: 12px; padding: 4px; gap: 4px;
  display: inline-flex; margin: 0 0 18px; box-shadow: none; }
.atab { border: 0; background: transparent; color: var(--w-ink-alt); border-radius: 9px;
  padding: 7px 16px; font-size: 14px; font-weight: 600; }
.atab:hover { color: var(--w-ink); background: transparent; }
.atab.on { background: #fff; color: var(--w-ink); box-shadow: var(--w-shadow-xs); }
.atab span { color: inherit; font-weight: inherit; }

/* ── 작가 상세 · 기본 정보 (2b 보드 04: 회색 카드 + 항상 열린 폼 + 우 340px 흰 카드) ── */
.info-card { background: var(--w-fill); box-shadow: none; padding: 20px; }
.info-card h2 { margin-bottom: 14px; font-size: 17px; line-height: 24px; font-weight: 600; letter-spacing: 0; }
#page-artist-docs main { max-width: 1160px; padding: 18px 40px 36px; }
.iv-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 4px 24px; align-items: start; }
.iv-left2 { min-width: 0; }
.iv-right { display: flex; flex-direction: column; gap: 14px; }
.iv-right > div { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 16px; padding: 18px 20px; }
.iv-right > .sm-info { background: linear-gradient(rgba(0, 102, 255, .05), rgba(0, 102, 255, .05)), rgba(255, 255, 255, .88);
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); border-radius: 12px; padding: 12px;
  display: flex; gap: 8px; align-items: flex-start; color: var(--w-ink-neutral); }
.sm-info svg { width: 20px; height: 20px; color: var(--w-primary); flex: none; margin-top: 1px; }
.sm-t { display: block; font-size: 15px; line-height: 22px; font-weight: 600; color: var(--w-ink); }
.sm-b { display: block; font-size: 14px; line-height: 22px; }
.info-card .inline-form input[type="text"], .info-card .inline-form input[type="date"] {
  background: #fff; box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
}
.info-card .inline-form input:focus { box-shadow: inset 0 0 0 1.5px var(--w-primary); }
/* 폼 2열 + 라벨 위 배치 (보드 04) */
.info-card .inline-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.info-card .inline-form .form-row { display: block; margin: 0; }
.info-card .inline-form .form-row > .form-label { display: block; width: auto; margin-bottom: 6px;
  font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink-neutral); }
.info-card .inline-form .form-row input[type="text"], .info-card .inline-form .form-row input[type="date"] {
  width: 100%; box-sizing: border-box; padding: 12px 16px; font-size: 16px; line-height: 24px; letter-spacing: 0.0057em;
}
.info-card .inline-form .form-row:first-child,
.info-card .inline-form .form-row:has(#iMemberNo),
.info-card .inline-form .form-btns,
.info-card .inline-form .form-err,
.info-card .inline-form > div:not([class]) { grid-column: 1 / -1; }
.info-card .inline-form .form-row:first-child { display: flex; align-items: center; gap: 16px; }
.info-card .inline-form .form-row:first-child .form-label { display: inline-block; width: 60px; font-size: 14px; margin: 0; }
.info-card .ck { gap: 8px; font-size: 14px; color: var(--w-ink); }
.info-card .ck input { width: 20px; height: 20px; accent-color: var(--w-primary); }
.form-help { display: block; margin-top: 6px; font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; color: var(--w-ink-alt); }
/* 기본 정보 조회 화면 — 구분선 있는 줄 단위, 한 줄에 한두 항목 (읽기 전용) */
.info-read { display: block; }
.info-read .ir-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 12px 0;
  border-top: 1px solid var(--w-line-neutral); }
.info-read .ir-row:first-child { border-top: 0; padding-top: 2px; }
.info-read .ir-row.one { grid-template-columns: 1fr; }
.info-read .ir-k { display: block; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--w-ink-alt); margin-bottom: 3px; }
.info-read .ir-v { display: block; font-size: 15px; line-height: 22px; letter-spacing: 0.0096em; color: var(--w-ink); }
.info-read .ir-v i { color: var(--w-ink-assist); font-style: normal; }
.info-card h2 #infoEditBtn { font-size: 13px; line-height: 18px; font-weight: 500; padding: 7px 14px;
  border-radius: 8px; background: transparent; border: 0; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); }
.info-card h2 #infoEditBtn:hover { background: var(--w-fill); }
.info-card .inline-form .form-btns { display: flex; gap: 8px; align-items: center; padding-top: 4px; }
.info-card .form-btns .save { border: 0; border-radius: 10px; padding: 9px 20px; font-size: 15px; line-height: 22px; font-weight: 700; }
.info-card .form-btns .cancel { border: 0; border-radius: 10px; padding: 9px 20px; font-size: 15px; line-height: 22px;
  font-weight: 500; background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); color: var(--w-ink); }
#artistDeleteBtn { margin-left: auto; border: 0; background: transparent; color: var(--w-ink-neutral);
  font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; font-family: inherit; }
/* 우측 도장 카드 (flat 04: 헤더형 + 64px 미리보기 + 메타) */
.iv-right .stamp-row { border-top: 0; margin-top: 0; display: flex; flex-direction: column;
  align-items: stretch; gap: 12px; }
.iv-right .stamp-head { display: flex; align-items: center; gap: 10px; }
.iv-right .stamp-head .pv-title { flex: 1; }
.iv-right .stamp-head .stamp-menu { display: none; align-items: center; gap: 10px; white-space: nowrap; }
.iv-right .stamp-head.open .stamp-menu { display: inline-flex; }
.iv-right .stamp-head.open #stampChangeBtn { display: none; }
.iv-right .stamp-body { display: flex; align-items: center; gap: 14px; }
.iv-right .stamp-img { width: 64px; height: 64px; border-radius: 12px; border: 1px solid var(--w-line);
  background: var(--w-fill); padding: 6px; box-sizing: border-box; object-fit: contain; }
.iv-right .stamp-holder.none { display: inline-flex; align-items: center; justify-content: center;
  width: 64px; height: 64px; border-radius: 12px; border: 1px solid var(--w-line); background: var(--w-fill);
  font-size: 12px; color: var(--w-ink-alt); }
.iv-right .stamp-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.iv-right .stamp-meta b { font-size: 14px; font-weight: 600; }
.iv-right .stamp-meta span { font-size: 12px; color: var(--w-ink-alt); }
.iv-right .stamp-row .row-btn { border: 0; background: transparent; padding: 0; font-size: 13px;
  font-weight: 600; color: var(--w-primary); cursor: pointer; }
.iv-right .stamp-row .row-btn:hover { background: transparent; color: var(--w-primary-strong); }
/* 우측 개인자료 카드 (flat 04: 헤더 + 구분선 행 + 텍스트버튼) */
.iv-right .pv-section { border-top: 0; margin-top: 0; }
.iv-right .pv-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 8px; margin-bottom: 0; }
.iv-right .pv-title { font-size: 17px; line-height: 24px; font-weight: 600; color: var(--w-ink); }
.pv-hint { font-size: 12px; color: var(--w-ink-alt); }
.iv-right .pv-row { display: flex; align-items: center; border-top: 1px solid var(--w-line-neutral);
  padding: 10px 0; gap: 10px; flex-wrap: wrap; }
.iv-right .pv-row .pv-label { flex: 1; width: auto; font-size: 14px; font-weight: 600; color: var(--w-ink);
  white-space: nowrap; }
.iv-right .pd-btn { border: 0; background: transparent; padding: 0; font-size: 13px; font-weight: 600;
  color: var(--w-ink-neutral); margin-left: 0; cursor: pointer; white-space: nowrap; }
.iv-right .pd-btn:hover { background: transparent; color: var(--w-ink); }
.iv-right a.pd-btn { text-decoration: none; }
.iv-right a.pd-btn:hover { text-decoration: underline; text-underline-offset: 2px; }
.iv-right .pd-btn.pd-up { background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border-radius: 8px; padding: 7px 14px; font-weight: 500; color: var(--w-ink);
  display: inline-flex; align-items: center; gap: 4px; }
.iv-right .pd-btn.pd-up:hover { background: var(--w-fill); }
/* 부가 기능: 줄 끝 [⋯] 버튼 → 작은 메뉴 (줄은 한 줄 그대로 — 2026-09-14 사장님) */
.pv-menu-wrap { position: relative; display: inline-flex; flex: none; }
.pv-more-btn { border: 0; background: transparent; width: 28px; height: 28px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--w-ink-alt); }
.pv-more-btn:hover { background: var(--w-fill); color: var(--w-ink); }
.pv-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; background: #fff;
  border-radius: 12px; box-shadow: var(--w-shadow-md), inset 0 0 0 1px var(--w-line);
  padding: 6px; min-width: 176px; display: flex; flex-direction: column; gap: 2px; }
.pv-menu[hidden] { display: none; }
.pv-menu .pd-btn { display: block; width: 100%; text-align: left; padding: 8px 10px; border-radius: 8px;
  font-size: 13px; font-weight: 500; color: var(--w-ink); box-sizing: border-box; }
.pv-menu .pd-btn:hover { background: var(--w-fill); color: var(--w-ink); }
.pv-menu a.pd-btn:hover { text-decoration: none; }
.iv-right .pv-row { position: relative; }
.pv-foot { font-size: 12px; line-height: 16px; letter-spacing: 0.0252em; color: var(--w-ink-alt);
  padding-top: 8px; display: block; }
/* 증명사진 작은 미리보기 (줄 아래, 누르면 크게) */
.pv-photo { display: inline-block; margin: 4px 0 8px; line-height: 0; }
.pv-photo img { width: 54px; height: 72px; object-fit: cover; border-radius: 8px;
  border: 1px solid var(--w-line); display: block; }
.pv-photo:hover img { border-color: var(--w-primary); }
.ah-kpi .k2 { display: inline; font-size: 13px; font-weight: 600; margin-left: 6px; color: #D17600; }
header .who::before { content: attr(data-initial); display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%; background: var(--w-fill-strong); color: var(--w-ink-neutral);
  font-size: 13px; font-weight: 600; margin-right: 8px; vertical-align: middle;
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); }
@media (max-width: 1000px) { .iv-grid2 { grid-template-columns: 1fr; } }

/* ── 작가 상세 · 계약 2열 + 진행 바 + 라디오 타일 (2b 보드 05) ────── */
.ctc-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 4px 24px; align-items: start; }
.ctc-left { min-width: 0; }
.ctc-right { display: flex; flex-direction: column; gap: 8px; }
.ctc-title { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink); letter-spacing: 0; padding: 0 2px; }
.ctc-right .ct-item { background: var(--w-fill); border-radius: 16px; padding: 16px 18px; margin: 0; border: 0; }
.ctc-right .ct-head { display: flex; align-items: center; gap: 8px; padding: 0; border-bottom: 0;
  font-size: 15px; color: var(--w-ink); }
.ctc-right .ct-title { font-size: 15px; line-height: 22px; font-weight: 600; }
.ct-stage-chip { background: #fff; border-radius: 8px; padding: 3px 6px; font-size: 11px; line-height: 14px;
  font-weight: 500; letter-spacing: 0.0311em; color: var(--w-orange-text);
  box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .43); white-space: nowrap; }
.ct-bar { display: flex; align-items: center; margin: 10px 0 2px; }
.ct-track { display: flex; flex: 1; height: 6px; border-radius: 3px; overflow: hidden; background: var(--w-line); gap: 2px; }
.ct-track .ct-seg { flex: 1; max-width: none; border-radius: 0; background: transparent; height: 6px; }
.ct-track .ct-seg.done { background: var(--w-green); }
.ct-track .ct-seg.now { background: var(--w-primary); }
.addendum-panel { background: var(--w-fill); border: 0; border-radius: 14px; }
/* flat 05: 부속서 패널 — 흰 바탕 직결 + 회색 스텝 카드 */
#addendumPanel { background: transparent; padding: 0; display: flex; flex-direction: column; gap: 14px; }
#addendumPanel .ad-step { background: var(--w-fill); box-shadow: none; border-radius: 16px; padding: 18px 20px; margin: 0; }
#addendumPanel .ad-step-no { width: 24px; height: 24px; background: var(--w-ink); }
#addendumPanel .ad-step-head { font-size: 15px; line-height: 22px; margin-bottom: 12px; }
#addendumPanel .ad-note { background: linear-gradient(rgba(0, 102, 255, .05), rgba(0, 102, 255, .05)), rgba(255, 255, 255, .88);
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); border-radius: 12px; padding: 12px;
  display: flex; gap: 8px; align-items: flex-start; }
#addendumPanel .ad-note svg { color: var(--w-primary); flex: none; margin-top: 1px; }
#addendumPanel .ad-note .gen-choice-label { font-size: 14px; line-height: 22px; color: var(--w-ink-neutral); }
#addendumPanel .ad-note b { font-size: 15px; font-weight: 600; color: var(--w-ink); }
.ad-grid2 { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px; align-items: end; }
.ad-grid2 .ad-row { display: flex; flex-direction: column; align-items: stretch; gap: 6px; margin: 0; }
.ad-grid2 .ad-row:first-child { flex-direction: row; align-items: end; gap: 8px; }
.ad-grid2 .gen-choice-label { width: 100%; flex: none; font-size: 14px; line-height: 20px; font-weight: 600;
  color: var(--w-ink-neutral); }
.ad-grid2 .ad-row:first-child .gen-choice-label { width: auto; align-self: center; display: none; }
.ad-row > label.ck { padding: 12px 14px; flex: 1; }
.ad-row > label.ck:has(input:checked) { box-shadow: inset 0 0 0 1px var(--w-line); font-weight: 600; }
#addendumPanel .ck input[type="radio"], #genChoice .ck input[type="radio"] {
  appearance: none; -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%;
  background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-line); margin: 0 2px 0 0; }
#addendumPanel .ck input[type="radio"]:checked, #genChoice .ck input[type="radio"]:checked {
  box-shadow: inset 0 0 0 2px var(--w-primary);
  background: radial-gradient(circle, var(--w-primary) 3.5px, #fff 4px); }
#addendumPanel input[type="date"] { background: #fff; border: 0;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral);
  border-radius: 12px; padding: 12px; font-size: 16px; font-family: inherit; }
#addendumPanel .sp { display: flex; flex-direction: column-reverse; gap: 8px; }
#addendumPanel .sp-input { background: #fff; border: 0;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral);
  border-radius: 12px; padding: 12px; font-size: 16px; line-height: 24px; }
#adRunBtn { border-radius: 10px; padding: 9px 20px; font-size: 15px; font-weight: 700; }
#adRunBtn:disabled { background: var(--w-fill-strong); color: var(--w-ink-assist); opacity: 1; }
#adCancelBtn { background: transparent; font-size: 15px; font-weight: 600; color: var(--w-ink-neutral); padding: 9px 10px; }
#adCancelBtn:hover { background: var(--w-fill); }
/* flat 05 근사치: 새 곡 카드 = 흰 카드 + 주황 1.5px 링 */
.newsong { background: #fff; border: 0; box-shadow: inset 0 0 0 1.5px var(--w-orange); border-radius: 12px; padding: 12px 14px; }
.newsong-head { background: transparent; border: 0; color: var(--w-orange-text); padding: 0; }
.ns-field input { border: 0; background: #fff; box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral);
  border-radius: 12px; padding: 12px; font-size: 15px; }
/* flat 05: 계약 정보 수정 폼 — 흰 카드 + 4열 그리드 */
.contract-card .inline-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px;
  background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 16px; padding: 18px 20px; }
.contract-card .inline-form .form-row { display: block; margin: 0; }
.contract-card .inline-form .pv-form-label { display: block; width: auto; margin-bottom: 5px;
  font-size: 14px; font-weight: 600; color: var(--w-ink-neutral); }
.contract-card .inline-form input { width: 100%; box-sizing: border-box; background: #fff;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral); }
.contract-card .inline-form .form-btns, .contract-card .inline-form .form-err { grid-column: 1 / -1; }
.contract-card .inline-form .form-btns { display: flex; gap: 8px; }
.contract-card .inline-form .cancel { background: transparent; box-shadow: inset 0 0 0 1px var(--w-line-neutral); }
.contract-card > h2 { font-size: 20px; font-weight: 600; letter-spacing: -0.012em; }
.h2desc { font-size: 13px; color: var(--w-ink-alt); font-weight: 400; margin-left: 10px; }
.ctc-right .ct-stages { display: none; } /* 옛 점 진행줄 — 진행 바와 중복이라 숨김 (2b 보드 05) */
.ctc-right .ct-files { background: #fff; border-radius: 12px; }
.ctc-right .ct-files-head { font-size: 12px; font-weight: 600; color: var(--w-ink-alt); }
.sp-chip { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 12px; }
.sp-chip.isnew { box-shadow: inset 0 0 0 1.5px var(--w-orange); }
.ad-step { background: #fff; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line); padding: 12px 14px; margin: 10px 0; }
.ad-step-head { display: flex; align-items: center; gap: 8px; font-size: 14px; margin-bottom: 8px; }
.ad-step-no { width: 22px; height: 22px; border-radius: 50%; background: var(--w-primary); color: #fff;
  font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.dp-cnt { float: right; font-size: 12px; color: var(--w-ink-alt); }
.dp-artist.on .dp-cnt { color: rgba(247, 247, 248, .7); }
.ct-done-line { display: flex; align-items: center; gap: 8px; background: var(--w-fill);
  border-radius: 16px; padding: 16px 18px; margin-bottom: 0; font-size: 13.5px; }
.ct-done-line > svg { order: 5; }
.ct-done-line .ct-del { order: 6; margin-left: 8px; }
.cdl-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.cdl-d { flex: none; font-size: 12px; color: var(--w-ink-alt); }
.ad-row > label.ck { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 12px;
  padding: 12px 14px; flex: 1; cursor: pointer; }
.ad-row > label.ck:has(input:checked) { box-shadow: inset 0 0 0 1px var(--w-line); font-weight: 600; }
@media (max-width: 1000px) { .ctc-grid { grid-template-columns: 1fr; } }

/* ── 작가 상세 · 곡 표 (2b 보드 06: 잔여 기간 색·글자 위계) ───────── */
.remain { font-size: 13px; font-weight: 700; }
.remain.ok { color: var(--w-green-text); }
.remain.soon { color: var(--w-orange-text); }
.remain.over { color: var(--w-red-text); }
.artist-songs .st-title > div:first-child { font-size: 15px; font-weight: 600; }
.artist-songs .st-note { font-size: 12px; color: var(--w-ink-alt); }
.artist-songs td { border-bottom: 1px solid var(--w-line-alt); }
.artist-songs th { color: var(--w-ink-alt); font-size: 12px; font-weight: 600; }
.st-period { font-variant-numeric: tabular-nums; }
.sm-note { margin-top: 12px; font-size: 12.5px; color: var(--w-ink-alt);
  background: var(--w-fill); border-radius: 10px; padding: 9px 13px; }

/* ── 작가 상세 · 곡 표 세부 (2b 보드 06) ─────────────────────────── */
.card[data-atab="songs"] h2 { font-size: 20px; font-weight: 600; letter-spacing: -0.012em; }
.artist-songs th { border-bottom: 1px solid var(--w-line); padding: 12px 12px 8px 0; letter-spacing: 0.0252em; }
.artist-songs td { padding: 13px 12px 13px 0; }
.artist-songs .st-roles { font-weight: 600; }
.artist-songs .st-period { font-weight: 500; }
.remain.pre { color: var(--w-ink-alt); font-weight: 700; }
.card[data-atab="songs"] .sm-note { display: flex; align-items: flex-start; gap: 8px;
  background: linear-gradient(rgba(0, 102, 255, .05), rgba(0, 102, 255, .05)), rgba(255, 255, 255, .88);
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); border-radius: 12px; padding: 12px;
  font-size: 14px; line-height: 22px; color: var(--w-ink-neutral); }
.card[data-atab="songs"] .sm-note svg { width: 20px; height: 20px; flex: none; color: var(--w-primary); margin-top: 1px; }
.smn-t { display: block; font-size: 15px; line-height: 22px; font-weight: 600; color: var(--w-ink); }
.card[data-atab="songs"] .row-btn { background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border: 0; border-radius: 8px; padding: 7px 14px; font-size: 13px; line-height: 18px; letter-spacing: 0.0194em;
  font-weight: 500; color: var(--semantic-label-normal); }
.card[data-atab="songs"] .st-btns { text-align: right; }
.card[data-atab="songs"] h2 .gen-note { background: transparent; border: 0; padding: 0; margin: 0; border-radius: 0;
  font-size: 13px; line-height: 18px; font-weight: 400; letter-spacing: 0.0194em; color: var(--w-ink-alt); }
.card[data-atab="songs"] .table-wrap { border: 1px solid var(--w-line); border-radius: 16px; padding: 0 20px 2px; margin-top: 18px; }
.card[data-atab="songs"] .cat-table { border: 0; border-radius: 0; margin-top: 0; width: 100%; border-collapse: collapse; }
.artist-songs td { font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; }
.artist-songs .st-title { width: 34%; }
.artist-songs .st-roles { width: 17%; }
.artist-songs .st-period { width: 24%; }
.artist-songs td:nth-child(4), .artist-songs th:nth-child(4) { width: 110px; }
.artist-songs .st-btns { width: 120px; }

/* ── 작가 상세 · 서류함 (2b 보드 07: 배지 색 체계 + 행 정리) ──────── */
.card[data-atab="docs"] h2 { font-size: 20px; font-weight: 600; letter-spacing: -0.012em; }
.dp-drive { font-size: 13px; font-weight: 600; color: var(--w-primary); margin-left: 12px; text-decoration: none; }
.dp-drive:hover { color: var(--w-primary-strong); }
.dp-extra summary { list-style: none; display: inline-flex; align-items: center; gap: 2px;
  font-size: 13px; font-weight: 600; color: var(--w-ink-neutral); padding: 8px 0; cursor: pointer; }
.dp-extra summary::after { content: '⌄'; color: var(--w-ink-alt); }
.next-todo { background: linear-gradient(rgba(255, 146, 0, .05), rgba(255, 146, 0, .05)), rgba(255, 255, 255, .88);
  border: 0; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); border-radius: 12px;
  color: var(--w-ink-neutral); display: flex; align-items: flex-start; gap: 8px; padding: 12px; font-weight: 400; }
.next-todo .nt-ic { color: var(--w-orange); font-size: 20px; margin-top: 1px; flex: none; display: inline-flex; }
.next-todo .nt-title { display: block; font-size: 15px; line-height: 22px; font-weight: 600; color: var(--w-ink); }
.next-todo .nt-desc { display: block; font-size: 14px; line-height: 22px; letter-spacing: 0.0145em; color: var(--w-ink-neutral); }
.dp-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.dp-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.dp-card { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 16px; padding: 6px 18px 8px; }
.dp-card .dp-group { display: flex; align-items: baseline; justify-content: flex-start; gap: 8px; margin-top: 6px; }
.dp-card .dp-group .dp-sub { font-size: 12px; line-height: 16px; letter-spacing: 0.0252em; font-weight: 400; color: var(--w-ink-alt); }
.dp-go { border: 0; background: transparent; color: var(--w-primary); font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: inherit; margin-left: auto; }
.dp-wait { display: flex; align-items: center; gap: 8px; font-size: 14px; letter-spacing: 0.0145em; color: var(--w-ink-neutral);
  padding: 10px 0; border-top: 1px solid var(--w-line-neutral); }
.dp-wait .wbadge.line { box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .43); }
.dp-wait .todo-btn { margin-left: auto; background: transparent; color: var(--w-ink);
  box-shadow: inset 0 0 0 1px var(--w-line-neutral); border-radius: 8px; padding: 7px 14px;
  font-size: 13px; line-height: 18px; font-weight: 500; }
.dp-wait .todo-btn:hover { background: var(--w-fill); }
/* flat 07: 작가 상세 서류함 행 밀도·아이콘·헤더 */
.card[data-atab="docs"] .dp-card .dp-file { padding: 10px 0; font-size: 14px; line-height: 20px;
  letter-spacing: 0.0145em; gap: 8px; border-bottom: 0; border-top: 1px solid var(--w-line-neutral); border-radius: 0; }
.card[data-atab="docs"] .dp-file .dt { font-size: 12px; letter-spacing: 0.0252em; color: var(--w-ink-alt); white-space: nowrap; }
.card[data-atab="docs"] .dp-file .dl { flex: none; width: 32px; height: 32px; display: inline-flex;
  align-items: center; justify-content: center; border-radius: 8px; color: var(--w-ink-alt); }
.card[data-atab="docs"] .dp-file .dl:hover { background: var(--w-fill); }
.card[data-atab="docs"] .dp-file .del { opacity: 0; transition: opacity .15s; }
.card[data-atab="docs"] .dp-file:hover .del { opacity: .55; }
.card[data-atab="docs"] .h2sub { font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; color: var(--w-ink-alt); }
.card[data-atab="docs"] .dp-drive { margin-left: auto; }
.card[data-atab="docs"] #driveRefreshBtn { margin-left: 12px; border: 0; background: transparent;
  box-shadow: inset 0 0 0 1px var(--w-line-neutral); border-radius: 8px; padding: 7px 14px;
  font-size: 13px; line-height: 18px; font-weight: 500; letter-spacing: 0.0194em; }
.doc-badge.b-file { color: var(--w-ink-neutral); background: var(--semantic-fill-normal); }
@media (max-width: 1000px) { .dp-grid { grid-template-columns: 1fr; } }
.doc-badge { font-size: 11px; line-height: 14px; font-weight: 500; letter-spacing: 0.0311em; padding: 3px 6px; border-radius: 8px; }
.doc-badge.b-draft { background: var(--semantic-fill-normal); color: var(--w-ink-neutral); }
.doc-badge.b-final { background: var(--w-primary-bg); color: var(--w-primary-strong); }
.doc-badge.b-stamp { background: rgba(0, 150, 50, .08); color: var(--w-green-text); }
.doc-badge.b-ver { background: #fff; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-normal); color: var(--w-ink-neutral); }
.doc-badge.b-type { background: #fff; color: var(--w-violet); box-shadow: inset 0 0 0 1px rgba(91, 55, 237, .43); }
.dp-file { border-bottom: 1px solid var(--w-line-alt); border-radius: 0; }
.dp-file:last-child { border-bottom: 0; }
.dp-group { color: var(--w-ink); font-size: 15px; font-weight: 600; letter-spacing: 0; margin-top: 10px; }

/* ── KOMCA 서류 탭 (2b 보드 08: 드롭존·진행 단계 원) ─────────────── */
.drop { background: rgba(0, 102, 255, 0.04); border: 1px dashed var(--w-primary-line); border-radius: 12px; }
.drop:hover, .drop.over { background: var(--w-primary-bg); border-color: var(--w-primary); }
.drop .big { color: var(--w-primary-strong); }
.drop .small { color: var(--w-ink-alt); }
.step { color: var(--w-ink-alt); }
.step .ic { background: var(--w-line-alt); color: var(--w-ink-alt); font-weight: 700; }
.step.doing { color: var(--w-primary-strong); }
.step.doing .ic { background: #fff; box-shadow: inset 0 0 0 2px var(--w-primary); color: var(--w-primary); }
.step.done { color: var(--w-green-text); }
.step.done .ic { background: var(--w-green); color: #fff; }

/* ── 전체 곡: 목록·수정 2열 (2b 보드 09) ─────────────────────────── */
.songs-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 16px; align-items: start; }
.songs-cols > .card { margin-bottom: 0; }
.songs-cols .cat-row.on { background: rgba(0, 102, 255, 0.06); border-radius: 10px; }
@media (max-width: 1100px) {
  .songs-cols { grid-template-columns: 1fr; }
  .songs-cols.editing #songsListCard { display: none; }
}

/* ── 계약 현황 (2b 보드 10: grid 표 + 연속 진행 바 + WDS 칩·배지) ── */
#page-contracts .fchip, #alChips .fchip { background: transparent; color: var(--w-ink);
  box-shadow: inset 0 0 0 1px rgba(112, 115, 124, .16); border-radius: 8px; padding: 6px 10px;
  font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0.0145em; }
#page-contracts .fchip:hover, #alChips .fchip:hover { background: var(--w-fill); }
#page-contracts .fchip.on, #alChips .fchip.on { color: var(--w-primary); background: rgba(0, 102, 255, .05);
  box-shadow: inset 0 0 0 1px var(--w-primary-line); }
#page-contracts .ct-head { display: grid; grid-template-columns: 80px minmax(0, 1.6fr) 72px 96px minmax(0, 1.2fr) 150px;
  gap: 12px; padding: 12px 0 8px; font-size: 12px; line-height: 16px; font-weight: 600;
  letter-spacing: 0.0252em; color: var(--w-ink-alt); border-bottom: 1px solid var(--w-line); }
#page-contracts .ct-filter { gap: 6px; margin-bottom: 16px; }
#page-contracts .ct-row { display: grid; grid-template-columns: 80px minmax(0, 1.6fr) 72px 96px minmax(0, 1.2fr) 150px;
  gap: 12px; align-items: center; padding: 12px 0; border-radius: 0; border-bottom: 1px solid var(--w-line-alt);
  font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; }
#page-contracts .ct-row:hover { background: var(--w-fill); }
#page-contracts .ct-a { font-weight: 600; min-width: 0; }
.ct-s1 { display: block; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--w-ink); }
.ct-s2 { display: block; font-size: 12px; letter-spacing: 0.0252em; color: var(--w-ink-alt); }
#page-contracts .ct-t { font-size: 13px; letter-spacing: 0.0194em; font-weight: 400;
  color: var(--w-ink-neutral); font-variant-numeric: tabular-nums; }
.ct-stage { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ctp-line { flex: none; width: 70px; height: 6px; border-radius: 3px; background: var(--w-line); overflow: hidden; display: inline-block; }
.ctp-line i { display: block; height: 100%; }
.ct-next { text-align: right; font-size: 13px; letter-spacing: 0.0194em; font-weight: 600; color: var(--w-primary); }
.ct-next.muted { color: var(--w-ink-assist); }
.ct-row .tag { background: #fff; border-radius: 8px; padding: 3px 6px; font-size: 11px; line-height: 14px;
  font-weight: 500; letter-spacing: 0.0311em; }
.ct-row .tag.done { color: var(--w-green-text); box-shadow: inset 0 0 0 1px rgba(0, 150, 50, .43); background: #fff; }
.ct-row .tag.wait { color: var(--w-orange-text); box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .43); background: #fff; }
.wbadge { border-radius: 8px; padding: 3px 6px; font-size: 11px; line-height: 14px; font-weight: 500; letter-spacing: 0.0311em; }
.wbadge.blue { background: rgba(0, 94, 235, .08); color: #005EEB; }
.wbadge.violet { background: rgba(91, 55, 237, .08); color: var(--w-violet); }

/* ── 서류함 3열 (2b 보드 11: 좌 회색 면 · 선택 다크 · 우 미리보기) ── */
.d3-artists { background: var(--w-fill); border-right: 1px solid var(--w-line-neutral); }
.d3-artists input { border: 0; background: #fff; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--w-line); }
.dp-artist { border-radius: 10px; }
.dp-artist:hover { background: var(--w-fill-strong); }
.dp-artist.on { background: var(--w-dark); color: #F7F7F8; font-weight: 700; }
.d3-files { border-right: 1px solid var(--w-line-neutral); }
.d3-preview { background: var(--w-fill-strong); }

/* ── KOMCA 모아보기 페이지 ───────────────────────────────────────── */
.komca-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.komca-cols .card { padding: 4px 16px 8px; }
.komca-cols .hc-title { padding-top: 12px; }
@media (max-width: 900px) { .komca-cols { grid-template-columns: 1fr; } }

/* ── 설정 (2b 보드 12: 면/라인 카드 · 라벨 폼 · key-value 행) ─────── */
.set-grid { gap: 16px; align-items: start; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.set-grid .card { margin-bottom: 0; padding: 20px; }
.set-grid .card.set-fill { background: var(--w-fill); box-shadow: none; }
.set-grid .card h2 { font-size: 17px; line-height: 24px; font-weight: 600; letter-spacing: 0; margin-bottom: 12px; }
#page-settings .set-info { background: transparent; border-radius: 0; padding: 0; margin: 0 0 12px;
  font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; color: var(--w-ink-neutral); }
.set-form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.set-form:not(.set-form-col) { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.set-form-col { flex-direction: column; align-items: stretch; }
.set-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; font-weight: 600; color: var(--w-ink-neutral); flex: 1; min-width: 130px; }
.set-form input { border: 0; background: #fff; border-radius: 12px; padding: 12px 16px;
  font-size: 16px; line-height: 24px; letter-spacing: 0.0057em; font-family: inherit; outline: none; font-weight: 400;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral); }
.set-form input:focus { box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1.5px var(--w-primary); }
.set-btns .set-main { background: var(--w-primary); color: #fff; }
.set-btns .set-main:hover { background: var(--w-primary-strong); }
.set-form .set-main { background: var(--w-primary); color: #fff; }
.set-form .set-main:hover { background: var(--w-primary-strong); }
#page-settings .row-btn { font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; font-weight: 500;
  padding: 7px 14px; border-radius: 8px; }
#page-settings .row-btn.set-main { font-weight: 700; }
#page-settings .set-form:not(.set-form-col) .set-main { font-size: 15px; line-height: 22px;
  letter-spacing: 0.0096em; padding: 9px 20px; border-radius: 10px; font-weight: 700; }
.set-grid .wbadge { font-size: 12px; line-height: 16px; letter-spacing: 0.0252em; padding: 4px 6px; }
.set-grid .wbadge.green { background: rgba(0, 150, 50, .08); }
.kv { display: flex; flex-direction: column; gap: 6px; font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; margin-bottom: 12px; }
.kv > span { display: flex; justify-content: space-between; gap: 12px; }
.kv .k { color: var(--w-ink-alt); }
.kv .v { font-weight: 600; color: var(--w-ink); text-align: right; }
.set-foot { font-size: 12px; line-height: 16px; letter-spacing: 0.0252em; color: var(--w-ink-alt); margin-top: 10px; }

/* ── KOMCA 탭 마감 (2b 보드 08: 드롭존 배치·스텝 카드·경고 박스) ──── */
.k2-grid { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.k2-grid .k2-col { display: flex; flex-direction: column; gap: 12px; min-width: 0;
  background: var(--w-fill); border-radius: 16px; padding: 18px 20px; box-sizing: border-box; }
.k2-col .doc-tile { width: 100%; text-align: left; }
.k2-col .doc-tile, .k2-col .doc-tile.on, .k2-col .doc-tile:hover { background: transparent; outline: 0;
  padding: 0; border-radius: 0; border: 0; box-shadow: none; }
.k2-col .doc-tile { display: grid; grid-template-columns: 44px 1fr; gap: 2px 14px; align-items: start; }
.k2-col .dt-ic { grid-row: 1 / 3; }
.k2-col .dt-name { font-size: 16px; line-height: 24px; font-weight: 600; }
.k2-col .dt-desc { font-size: 13px; line-height: 18px; color: var(--w-ink-neutral); }
.k2-col .gen-choice, .k2-col .addendum-panel, .k2-col .yangdo-panel { margin: 0; background: transparent; border-radius: 0; padding: 0; }
.yangdo-mini-title { display: none; } /* 타일과 중복이라 숨김 (2b 보드 08) */
@media (max-width: 1000px) { .k2-grid { grid-template-columns: 1fr !important; } }
.card[data-atab="contract2"] { background: transparent; box-shadow: none; padding: 0; }
.card[data-atab="contract2"] > h2 { font-size: 20px; font-weight: 600; letter-spacing: -0.012em; margin-bottom: 18px; }
.doc-pick-label { display: none; } /* 부제는 h2 안 h2desc 로 이동 */
.dt-ic.ic-blue { color: #005EEB; background: #fff; border-radius: 14px; width: 44px; height: 44px; box-sizing: border-box;
  padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.dt-ic.ic-green { color: #009632; background: #fff; border-radius: 14px; width: 44px; height: 44px; box-sizing: border-box;
  padding: 0; display: inline-flex; align-items: center; justify-content: center; }
/* flat 08: 가입 폼 — 라벨 위 2열 그리드 + 흰 WDS 필드 */
.km-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 12px; }
#komcaPanel .ad-row, #yangdoPanel .ydo-row { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
#komcaPanel .ad-row .gen-choice-label, #yangdoPanel .ydo-row .gen-choice-label { width: auto;
  font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink-neutral); }
#komcaPanel .km-help, #yangdoPanel .ydo-row .gen-choice-label[style] { font-size: 13px; line-height: 18px;
  font-weight: 400 !important; color: var(--w-ink-alt); }
#kmDate, #kmSong, #ydoContract { width: 100%; box-sizing: border-box; background: #fff; border: 0;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral); border-radius: 12px;
  padding: 12px; font-size: 16px; font-family: inherit; }
#komcaPanel .ad-row:has(#kmRunBtn) { flex-direction: row; align-items: center; gap: 8px; }
.drop.mini { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 22px 16px; }
.drop-ic { color: var(--w-primary); }
.drop .big { color: var(--w-ink); font-weight: 600; font-size: 15px; }
.drop .small { color: var(--w-ink-neutral); }
.yangdo-panel .steps { background: #fff; border-radius: 12px; padding: 8px 14px; }
.step { padding: 8px 0; gap: 10px; }
.step.doing { color: var(--w-primary); font-weight: 700; }
.step .ic { font-size: 11px; font-weight: 700; }
.step.done .ic { font-size: 0; }
.step.done .ic::before { content: '✓'; font-size: 13px; font-weight: 700; }
.warnbox { background: linear-gradient(rgba(255, 146, 0, .05), rgba(255, 146, 0, .05)), rgba(255, 255, 255, .88);
  box-shadow: inset 0 0 0 1px var(--w-line); border: 0; border-radius: 12px; color: var(--w-ink-neutral);
  padding: 12px; font-size: 14px; line-height: 22px; }
.errbox { border-radius: 12px; }
#kmRunBtn { padding: 9px 20px; font-size: 15px; line-height: 22px; font-weight: 700; }
#kmCancelBtn { background: transparent; color: var(--w-ink-neutral); font-size: 15px; font-weight: 600; padding: 9px 2px; }
#kmCancelBtn:hover { background: transparent; color: var(--w-ink); }
#komcaPanel .ad-note .gen-choice-label { font-size: 12px; line-height: 16px; color: var(--w-ink-alt); }
/* flat 08: 만든 파일 목록 — 흰 컨테이너 + 확장자 배지 + 파랑 텍스트 링크 */
#genResult:not(:empty) { background: #fff; border-radius: 12px; padding: 4px 12px; }
.gen-file { display: flex; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid var(--w-line-neutral);
  font-size: 14px; letter-spacing: 0.0145em; }
.gen-file:last-child { border-bottom: 0; }
.gen-file a.dl { border: 0; background: transparent; color: var(--w-primary); font-size: 13px; font-weight: 600;
  padding: 0; margin-left: auto; }
.gen-file .ftag { flex: none; border-radius: 8px; padding: 3px 6px; font-size: 11px; line-height: 14px;
  font-weight: 500; letter-spacing: 0.0311em; color: #D17600; background: rgba(209, 118, 0, .08); }
.gen-file .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* flat 08: 어디서 가져올까요 선택창 */
.srcpick-box { border-radius: 16px; padding: 18px 20px; }
.srcpick-head { font-size: 15px; line-height: 22px; font-weight: 600; }
.srcpick-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.srcpick-big { background: var(--w-fill); border: 0; border-radius: 12px; padding: 14px; font-size: 14px;
  font-weight: 600; display: flex; align-items: center; gap: 10px; color: var(--w-ink); cursor: pointer; }
.srcpick-big:hover { background: var(--w-fill-strong); }
.srcpick-big svg { color: var(--w-ink-neutral); }

/* ── 전체 곡 마감 (2b 보드 09: 목록 행·곡 정보 면 카드·저작자 서브카드) ── */
.songs-wrap main { max-width: 1160px; padding: 24px 40px 36px; box-sizing: border-box; }
#page-songs .pg-head { margin-bottom: 14px; }
#page-songs .pg-head .hbtn { background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border-radius: 8px; padding: 7px 14px; font-size: 13px; line-height: 18px; font-weight: 500; height: auto;
  display: inline-flex; align-items: center; gap: 4px; }
#page-songs .al-search { width: 480px; }
.songs-table4 .cat-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 84px minmax(0, 1.2fr); gap: 10px; align-items: center; }
#songsList .cat-row.head { background: transparent; margin: 0; padding: 12px 0 8px; border-radius: 0;
  border-bottom: 1px solid var(--w-line); font-size: 12px; line-height: 16px; font-weight: 600;
  letter-spacing: 0.0252em; color: var(--w-ink-alt); }
#songsList .cat-row { font-size: 14px; padding: 12px 8px; margin: 0 -8px; border-radius: 10px;
  border-bottom: 1px solid var(--w-line-alt); letter-spacing: 0.0145em; }
#songsList .cat-row:last-child { border-bottom: 0; }
#songsList .st-title { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
#songsList .cat-row:not(.head) > span:nth-child(2) { color: var(--w-ink-neutral); }
#songsList .cat-row:not(.head) > span:nth-child(3) { font-size: 12px; letter-spacing: 0.0252em; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
#songsList .st-who { font-size: 13px; letter-spacing: 0.0194em; color: var(--w-ink-neutral); }
#songsList .st-who.warn { color: var(--w-orange-text); }
.se-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; margin-bottom: 14px; }
#songEditForm > .se-grid:first-of-type { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
.se-f { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; color: var(--w-ink-neutral); }
.se-f input { border: 0; background: #fff; box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border-radius: 12px; padding: 12px 16px; font-size: 16px; line-height: 24px; letter-spacing: 0.0057em;
  font-family: inherit; outline: none; font-weight: 400; }
.se-f input:focus { box-shadow: inset 0 0 0 1.5px var(--w-primary); }
/* flat 09: 회색 폼 카드와 분리된 흰 참여 작가 카드 */
#songEditCard { background: transparent; box-shadow: none; padding: 0; display: flex; flex-direction: column; gap: 14px; }
#songEditForm { background: var(--w-fill); border-radius: 16px; padding: 20px; }
.se-part { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 16px; padding: 16px 20px; margin-top: 0; }
.se-part .docs-title { font-size: 15px; line-height: 22px; font-weight: 600; }
.se-part .docs-title .h2sub { font-size: 12px; color: var(--w-ink-alt); }
.se-part .part-row { background: transparent; border: 0; border-radius: 0; padding: 8px 0; margin-bottom: 0;
  border-top: 1px solid var(--w-line-neutral); display: flex; align-items: center; gap: 8px; }
.part-row .p-avatar { display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 24px; height: 24px; border-radius: 50%; background: var(--w-fill-strong); color: var(--w-ink-neutral);
  font-size: 11px; font-weight: 600; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); }
.se-part .part-name { font-size: 14px; font-weight: 600; }
.se-part .row-btn.danger { margin-left: auto; background: none; border: 0; box-shadow: none;
  color: var(--w-ink-neutral); font-size: 13px; font-weight: 600; padding: 0; }
.se-part > .form-row:last-child { border-top: 1px solid var(--w-line-neutral); padding-top: 8px; margin-top: 0; }
#sePartPick { appearance: none; -webkit-appearance: none; width: 220px; background: #fff;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border-radius: 12px; padding: 12px 40px 12px 16px; font-size: 14px; border: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M3.36 7.36a.9.9 0 0 1 1.27 0L12 14.73l7.36-7.37a.9.9 0 1 1 1.28 1.28l-8 8a.9.9 0 0 1-1.28 0l-8-8a.9.9 0 0 1 0-1.28z' fill='%2337383C'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center; }
#sePartAddBtn { background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border: 0; border-radius: 8px; padding: 7px 14px; font-size: 13px; font-weight: 500; margin-left: 0; }
#songsListCard { padding: 4px 18px 6px; }
#songEditCard h2 { font-size: 17px; font-weight: 600; display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }
#songEditCard h2 .h2sub { font-size: 17px; font-weight: 600; color: var(--w-ink); letter-spacing: 0; }
#songEditCard h2 .engine-note { margin: 0 0 0 auto; font-size: 12px; line-height: 16px; letter-spacing: 0.0252em;
  color: var(--w-ink-alt); font-weight: 400; padding: 0; background: transparent; }
/* 좁은 화면: 제목('곡 정보')이 '곡 정 / 보'로 눌리지 않게 — 안 들어가면 다음 줄로. 안내 글은 맨 아래 한 줄, 버튼은 오른쪽 (2026-10-02) */
#songEditCard h2 { flex-wrap: wrap; row-gap: 6px; }
@media (max-width: 760px) {
  #songEditCard h2 .engine-note { order: 5; flex: 1 0 100%; margin: 0; }
  #songEditCard h2 .se-split-btn { margin-left: auto; }
}
#songEditCard .inline-form input[type="text"], #songEditCard .inline-form input[type="date"] {
  background: #fff; box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral); }
#songEditCard .inline-form input:focus { box-shadow: inset 0 0 0 1.5px var(--w-primary); }
#songEditCard .credits-head { margin-top: 2px; margin-bottom: 8px; }
#songEditCard .credits-head .form-label { width: auto; flex: none; font-size: 14px; line-height: 20px;
  font-weight: 600; color: var(--w-ink-neutral); }
#songEditCard .credits-head .form-hint { flex: none; min-width: 0; font-size: 14px; line-height: 20px;
  font-weight: 400; color: var(--w-ink-alt); }
#sePasteBtn { margin-left: auto; background: none; box-shadow: none; border: 0; padding: 0;
  color: var(--w-primary); font-size: 13px; line-height: 18px; font-weight: 600; }
#sePasteBtn:hover { background: none; opacity: .75; }
.creators-card { background: #fff; border-radius: 12px; padding: 4px 12px; }
.creators-card #seCreatorsBox { background: transparent; border-radius: 0; padding: 0; }
#seCreatorAddBtn { background: none; box-shadow: none; border: 0; padding: 6px 0 4px; margin: 0;
  color: var(--w-primary); font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 2px; }
#seCreatorsBox .creator-line { display: grid; grid-template-columns: 64px minmax(0, 1fr) 110px 60px 32px;
  gap: 10px; padding: 9px 0; border-bottom: 0; border-top: 1px solid var(--w-line-neutral); align-items: center; }
#seCreatorsBox .creator-line:first-child { border-top: 0; }
#seCreatorsBox .creator-line select { box-shadow: none; background: transparent; padding: 0;
  font-size: 12px; color: var(--w-ink-alt); width: auto; border: 0; }
#seCreatorsBox .creator-line input { background: transparent; border-radius: 0; padding: 2px 0; width: 100%;
  box-sizing: border-box; font-size: 14px; border: 0; box-shadow: none; }
#seCreatorsBox .cr-name { font-weight: 600; }
#seCreatorsBox .cr-code { font-size: 12px; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
#seCreatorsBox .cr-share { font-size: 14px; font-weight: 600; color: var(--w-ink); font-variant-numeric: tabular-nums; }
#seCreatorsBox .creator-line input:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); border-radius: 8px; padding: 2px 6px; }
#seCreatorsBox .creator-line .row-btn.del { width: 32px; height: 32px; padding: 0; background: none;
  box-shadow: none; border: 0; color: var(--w-ink-neutral); display: inline-flex; align-items: center; justify-content: center; }
#songEditCard .form-btns .save, #songEditCard .form-btns .cancel { border: 0; border-radius: 10px;
  padding: 9px 20px; font-size: 15px; line-height: 22px; }
#songEditCard .form-btns .save { font-weight: 700; }
#seCancelBtn { background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); font-weight: 500; }
#seCancelBtn:hover { background: var(--w-fill); }
.songs-cols { gap: 20px; }
#songEditCard .part-row { background: transparent; }

/* ── 서류함 3열 마감 (2b 보드 11) ─────────────────────────────────── */
#page-docs { padding: 20px 40px 24px; max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.docs3-head { margin-bottom: 14px; }
#page-docs .docs3 { grid-template-columns: 220px minmax(0, 1fr) minmax(0, 1.15fr); border-radius: 18px;
  box-shadow: inset 0 0 0 1px var(--w-line); overflow: hidden; background: #fff; height: calc(100vh - 150px); }
#page-docs .d3-artists { background: var(--w-fill); border-right: 1px solid var(--w-line); padding: 12px; }
#page-docs .d3-artists input { border-radius: 12px; font-size: 16px; line-height: 24px; letter-spacing: 0.0057em;
  padding: 12px 12px 12px 40px; box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral);
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='20' height='20'><path fill-rule='evenodd' clip-rule='evenodd' d='M9.99973 2.09961C5.6367 2.09961 2.09976 5.63656 2.09976 9.99961C2.09976 14.3627 5.6367 17.8996 9.99973 17.8996C11.857 17.8996 13.5646 17.2587 14.9134 16.1859L19.8634 21.136C20.2149 21.4874 20.7848 21.4874 21.1362 21.136C21.4877 20.7845 21.4877 20.2146 21.1362 19.8632L16.1862 14.9131C17.2588 13.5643 17.8997 11.8568 17.8997 9.99961C17.8997 5.63656 14.3628 2.09961 9.99973 2.09961ZM3.89976 9.99961C3.89976 6.63067 6.63081 3.89961 9.99973 3.89961C13.3687 3.89961 16.0997 6.63067 16.0997 9.99961C16.0997 13.3685 13.3687 16.0996 9.99973 16.0996C6.63081 16.0996 3.89976 13.3685 3.89976 9.99961Z' fill='%2337383C' fill-opacity='0.61'/></svg>") 12px center no-repeat; }
#page-docs .d3-artists input:focus { box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1.5px var(--w-primary); }
#page-docs .dp-artist { font-size: 14px; letter-spacing: 0.0145em; font-weight: 500; padding: 8px 10px;
  border-radius: 9px; display: flex; align-items: center; gap: 8px; text-align: left; width: 100%; }
#page-docs .dp-cnt { float: none; margin-left: auto; color: inherit; opacity: .7; }
#page-docs .d3-files { padding: 14px 16px; display: flex; flex-direction: column; overflow: hidden;
  border-right: 1px solid var(--w-line); }
#page-docs .d3-files-head { font-size: 17px; line-height: 24px; font-weight: 600; gap: 8px;
  margin-bottom: 0; padding-bottom: 6px; display: flex; align-items: center; }
#dpSub { font-size: 12px; letter-spacing: 0.0252em; font-weight: 400; color: var(--w-ink-alt); }
#dpDriveLink2 { display: inline-flex; align-items: center; gap: 2px; font-size: 13px; line-height: 18px;
  letter-spacing: 0.0194em; font-weight: 600; color: var(--w-primary); text-decoration: none; }
#page-docs #dpRefreshBtn { margin-left: 0; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px;
  background: transparent; color: var(--w-ink-neutral); display: inline-flex; align-items: center;
  justify-content: center; cursor: pointer; }
#page-docs #dpRefreshBtn:hover { background: var(--w-fill); }
#dpFileList { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }
#dpFileList > * { flex-shrink: 0; }
#page-docs .dp-group { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.0252em;
  color: var(--w-ink-alt); margin: 0; padding: 6px 0 2px; }
#page-docs .dp-group:not(:first-child) { padding-top: 10px; }
#page-docs .dp-file { border-bottom: 0; border-radius: 10px; padding: 9px 10px; font-size: 14px; letter-spacing: 0.0145em; }
#page-docs .dp-file .dl { opacity: 0; transition: opacity .15s ease; }
#page-docs .dp-file:hover .dl, #page-docs .dp-file.on .dl { opacity: 1; }
#page-docs .dp-file.on { background: rgba(0, 102, 255, .08); }
#page-docs .dp-file .dt { font-size: 12px; letter-spacing: 0.0252em; color: var(--w-ink-alt); white-space: nowrap; }
#page-docs .dp-extra summary { list-style: none; display: inline-flex; align-items: center; gap: 2px;
  padding: 6px 10px; font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; font-weight: 600;
  color: var(--w-ink-neutral); cursor: pointer; }
#page-docs .dp-extra summary::-webkit-details-marker { display: none; }
#page-docs .dp-extra summary::after { content: ''; width: 14px; height: 14px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill-rule='evenodd' clip-rule='evenodd' d='M3.36364 7.36346C3.71511 7.01199 4.28496 7.01199 4.63643 7.36346L12 14.7271L19.3636 7.36346C19.7151 7.01199 20.285 7.01199 20.6364 7.36346C20.9879 7.71493 20.9879 8.28478 20.6364 8.63625L12.6364 16.6362C12.285 16.9877 11.7151 16.9877 11.3636 16.6362L3.36364 8.63625C3.01217 8.28478 3.01217 7.71493 3.36364 7.36346Z'/></svg>") center/contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill-rule='evenodd' clip-rule='evenodd' d='M3.36364 7.36346C3.71511 7.01199 4.28496 7.01199 4.63643 7.36346L12 14.7271L19.3636 7.36346C19.7151 7.01199 20.285 7.01199 20.6364 7.36346C20.9879 7.71493 20.9879 8.28478 20.6364 8.63625L12.6364 16.6362C12.285 16.9877 11.7151 16.9877 11.3636 16.6362L3.36364 8.63625C3.01217 8.28478 3.01217 7.71493 3.36364 7.36346Z'/></svg>") center/contain no-repeat; }
#page-docs .dp-extra[open] summary::after { transform: rotate(180deg); }
.d3-preview { background: var(--w-fill-strong); display: flex; flex-direction: column; overflow: hidden; }
.d3-pv-head { display: flex; align-items: center; justify-content: flex-start; gap: 8px;
  background: #fff; border-bottom: 1px solid var(--w-line); padding: 12px 16px;
  font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; font-weight: 600; min-height: 44px; box-sizing: border-box; }
.d3-pv-head span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#dpPvHead { flex: 1; }
#dpPvOpen { display: inline-flex; align-items: center; gap: 4px; border: 0; border-radius: 8px; padding: 7px 14px;
  font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; font-weight: 500;
  background: transparent; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); }
.d3-pv-body { flex: 1; position: relative; }
.d3-pv-body iframe { width: 100%; height: 100%; border: 0; display: block; }
.d3-pv-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 13.5px; color: var(--w-ink-alt); }
.d3-pv-empty[hidden] { display: none; }

/* ── 작가 추가 모달 (2b 보드 03) ─────────────────────────────────── */
.bulk-modal { max-width: 680px; border-radius: 20px; padding: 24px 26px 22px; }
.bulk-modal h3 { font-size: 20px; font-weight: 700; letter-spacing: -0.012em; }
.bulk-tabs { background: var(--w-fill); border-bottom: 0; border-radius: 12px; padding: 4px; gap: 4px; width: fit-content; }
.bulk-tabs .btab, .bulk-tab { border: 0; background: transparent; color: var(--w-ink-alt); border-radius: 9px;
  padding: 7px 16px; font-size: 14px; line-height: 20px; letter-spacing: 0.0145em; font-weight: 600; }
.bulk-tabs .btab.on, .bulk-tab.on { background: #fff; color: var(--w-ink); box-shadow: var(--w-shadow-xs); }
.bulk-modal .bulk-tabs { margin-bottom: 16px; }
.bulk-modal input[type="text"] { background: #fff; border: 0; border-radius: 12px;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
  padding: 12px 16px; font-size: 16px; line-height: 24px; letter-spacing: 0.0057em; caret-color: var(--w-primary); }
.bulk-modal input[type="text"]:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
/* 03a 직접 입력 — flat 2열 그리드 + 라벨 위 배치 */
#directForm { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 14px; }
#directPane .form-row { display: flex; flex-direction: column; align-items: stretch; gap: 6px; margin: 0; }
#directPane .form-row:has(#dAddress), #directPane .form-row:has(#dMemberNo),
#dMemberHint, #directPane .bulk-btns, #directErr { grid-column: 1 / -1; }
#directPane .form-row input[type="text"] { flex: none; width: 100%; min-width: 0; box-sizing: border-box; }
#directPane .form-row:has(#dRole1) { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
#directPane .form-row:has(#dRole1) .form-label { width: 100%; }
#directPane .form-label { width: auto; font-size: 14px; line-height: 20px; letter-spacing: 0.0145em;
  font-weight: 600; color: var(--w-ink-neutral); }
#directPane .ck { gap: 8px; font-size: 14px; letter-spacing: 0.0145em; }
#directPane .ck input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 20px; height: 20px;
  margin: 0; border-radius: 5px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--semantic-line-normal-normal); cursor: pointer; }
#directPane .ck input[type="checkbox"]:checked { background: var(--w-primary) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" fill-rule="evenodd" clip-rule="evenodd" d="M19.3863 6.86346C19.7378 7.21493 19.7378 7.78478 19.3863 8.13625L10.3863 17.1362C10.0349 17.4877 9.46503 17.4877 9.11356 17.1362L4.61358 12.6362C4.26211 12.2848 4.26211 11.7149 4.61358 11.3635C4.96505 11.012 5.5349 11.012 5.88637 11.3635L9.74995 15.2271L18.1135 6.86346C18.465 6.51199 19.0348 6.51199 19.3863 6.86346Z"/></svg>') center/14px 14px no-repeat; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.bulk-btns { margin-top: 16px; }
.bulk-btns button { border: 0; border-radius: 10px; padding: 9px 20px; font-size: 15px; line-height: 22px;
  letter-spacing: 0.0096em; font-weight: 500; background: transparent; color: var(--w-ink);
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); }
.bulk-btns button:hover { background: var(--w-fill); }
#bulkRegisterBtn, #directAddBtn { background: var(--w-primary); color: #fff; font-weight: 700; box-shadow: none; }
#bulkRegisterBtn:hover, #directAddBtn:hover { background: var(--w-primary-strong); }
#pastePane .bulk-cancel { background: transparent; box-shadow: none; padding: 9px 0;
  color: var(--semantic-label-neutral); font-weight: 600; margin-left: auto; }
#pastePane .bulk-cancel:hover { background: transparent; opacity: .7; }
#directPane .bulk-btns { justify-content: flex-end; margin-top: 8px; }
#directPane .bulk-cancel { margin-left: 0; order: -1; }
.bulk-modal textarea { padding: 12px 14px; font-size: 13px; line-height: 20px; letter-spacing: 0.0194em;
  min-height: 96px; background: var(--w-fill); border: 0; border-radius: 12px;
  color: var(--w-ink-neutral); font-variant-numeric: tabular-nums; white-space: pre-wrap; }
#pastePane .bulk-help { font-size: 14px; line-height: 22px; letter-spacing: 0.0145em;
  color: var(--w-ink-neutral); text-wrap: pretty; margin-bottom: 16px; }
#bulkPreview { margin-top: 16px; }
#bulkPreview:empty { margin-top: 0; }
/* 03b 미리보기 5열 grid */
.bulk-grid { border: 1px solid var(--w-line); border-radius: 12px; overflow: hidden; }
.bulk-grid-head, .bulk-grid-row { display: grid;
  grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 10px; padding: 10px 14px; }
.bulk-grid-head { background: var(--w-fill); font-size: 12px; line-height: 16px;
  letter-spacing: 0.0252em; font-weight: 600; color: var(--w-ink-alt); }
.bulk-grid-row { border-top: 1px solid var(--w-line-neutral); font-size: 13px; line-height: 18px;
  letter-spacing: 0.0194em; align-items: center; }
.bg-name { font-weight: 600; }
.bg-alias { font-weight: 400; color: var(--w-ink-alt); }
.bg-keep { color: var(--w-orange-text); font-weight: 600; }
.bulk-kind { border-radius: 8px; padding: 3px 6px; font-size: 11px; line-height: 14px;
  letter-spacing: 0.0311em; font-weight: 500; background: rgba(209, 118, 0, .08); color: var(--w-orange-text); }
.bulk-kind.new { background: rgba(0, 150, 50, .08); color: var(--w-green-text); }
#dMemberHint { font-size: 13px; line-height: 18px; letter-spacing: 0.0194em; color: var(--w-ink-alt); margin-top: -6px; }
.bulk-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.bulk-head h3 { margin: 0; }
.bulk-x { border: 0; background: transparent; width: 32px; height: 32px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--w-ink-neutral); }
.bulk-x:hover { background: var(--w-fill); color: var(--w-ink); }
#directPane .form-label .req { color: var(--w-ink-neutral); font-weight: 600; }

/* ── 리드 창고 (2026-09-22) — 리드 · 사람 · 열람 기록 (접두어 lh-) ── */
.lh-form { margin-bottom: 16px; }
.lh-form .form-label { width: auto; min-width: 64px; }
.lh-form .form-label .req { color: var(--w-ink-neutral); font-weight: 600; }
.lh-form select, .lh-form textarea, .lh-form input[type="datetime-local"],
.lh-settings select, .lh-settings textarea, .lh-judge select, .lh-judge input[type="text"] {
  border: 0; background: var(--w-fill); border-radius: 10px; padding: 8px 11px;
  font-size: 13.5px; font-family: inherit; color: var(--w-ink); }
.lh-form textarea, .lh-settings textarea { flex: 1; min-width: 200px; resize: vertical; line-height: 1.6; }
.lh-settings textarea { word-break: keep-all; overflow-wrap: anywhere; }   /* 서약 본문 칸: 한글 낱말 중간 줄바꿈 막기(2026-10-19) */
#lhSettingsCard .lh-hint, #lhSettingsCard .bulk-help { word-break: keep-all; overflow-wrap: break-word; }   /* 2026-10-19 최종 회귀: 서약 칸 안내 글이 390 에서 '어/느'·'문/장'처럼 낱말 가운데서 끊기던 것 */
.lh-form select:focus, .lh-form input[type="datetime-local"]:focus, .lh-settings select:focus,
.lh-judge select:focus, .lh-judge input[type="text"]:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); outline: 0; }
.lh-row-col .form-label { align-self: flex-start; padding-top: 8px; }
.lh-hint { font-size: 12px; line-height: 16px; color: var(--w-ink-alt); }
.lh-btn-main { border: 0; background: var(--w-primary); color: #fff; border-radius: 10px; padding: 8px 16px;
  font-size: 13.5px; font-weight: 600; cursor: pointer; font-family: inherit; }
.lh-btn-main:hover { background: var(--w-primary-strong); }
.lh-btn-main:disabled { opacity: .5; cursor: default; }
.lh-link { text-decoration: none; display: inline-block; color: var(--w-ink); }
.lh-link:hover { color: var(--w-ink); }
.lh-list { padding: 4px 20px 8px; }
.lh-settings { padding: 18px 20px; }
.lh-settings .hc-title { margin-bottom: 14px; }
.lh-settings .form-row { margin-bottom: 12px; }

/* 리드 목록 줄 */
.lh-row { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; width: 100%; border: 0; text-align: left;
  background: transparent; padding: 13px 0; cursor: pointer; font-family: inherit; font-size: 14px;
  letter-spacing: 0.0145em; color: var(--w-ink); border-top: 1px solid var(--w-line-neutral); border-radius: 0; }
.lh-row:first-child { border-top: 0; }
.lh-row:hover { background: var(--w-fill); }
.lh-title { font-weight: 600; min-width: 0; }
.lh-sub { color: var(--w-ink-neutral); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-due { font-size: 12.5px; letter-spacing: 0.0194em; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lh-badges { display: inline-flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.lh-count { margin-left: auto; font-size: 12.5px; color: var(--w-ink-alt); white-space: nowrap; }

/* 리드 상세 */
.lh-back { margin-bottom: 14px; background: transparent; padding-left: 0; color: var(--w-ink-neutral); font-weight: 600; }
.lh-back:hover { background: transparent; color: var(--w-ink); }
.lh-dtitle { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.lh-dtitle small { font-size: 13px; font-weight: 400; color: var(--w-ink-alt); margin-left: 6px; }
.lh-head-btns { display: inline-flex; gap: 6px; flex-wrap: wrap; flex: none; }
.lh-dbadges { margin-bottom: 14px; gap: 6px 10px; }
.lh-file { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 0; font-size: 13.5px;
  border-top: 1px solid var(--w-line-neutral); }
.lh-file:first-child { border-top: 0; }
.lh-fname { flex: 1; min-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.lh-fmeta { font-size: 12px; letter-spacing: 0.0252em; color: var(--w-ink-alt); white-space: nowrap; }

/* 시안 한 건 */
.lh-sub-item { padding: 12px 0; border-top: 1px solid var(--w-line-neutral); }
.lh-sub-item:first-child { border-top: 0; }
.lh-sub-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.lh-sub-files { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 10px; }
.lh-sub-files .lh-link { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-judge { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; }
.lh-reasons { display: flex; gap: 4px 10px; flex-wrap: wrap; }
.lh-reasons .ck { font-size: 12.5px; }
.lh-note { flex: 1; min-width: 160px; }

/* 열람 기록 줄 */
.lh-view { display: flex; align-items: center; gap: 6px 10px; flex-wrap: wrap; padding: 8px 0; font-size: 13px;
  border-top: 1px solid var(--w-line-neutral); }
.lh-view:first-child { border-top: 0; }
.lh-at { flex: none; width: 82px; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
.lh-vname { font-weight: 600; }
.lh-vlead { color: var(--w-ink-neutral); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.lh-vfile { color: var(--w-ink-alt); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 240px; }

/* 사람 줄 */
.lh-search { width: min(360px, 100%); }
.lh-prow { padding: 12px 0; border-top: 1px solid var(--w-line-neutral); }
.lh-prow:first-child { border-top: 0; }
.lh-prow.off .lh-pname { color: var(--w-ink-assist); text-decoration: line-through; }
.lh-pmain { display: flex; align-items: center; gap: 6px 8px; flex-wrap: wrap; font-size: 14px; }
.lh-pname { font-weight: 600; margin-right: 2px; }
.lh-pacts { display: inline-flex; gap: 4px; flex-wrap: wrap; margin-left: auto; }
.lh-pacts .row-btn { margin-left: 0; }
.lh-pmeta { display: flex; gap: 4px 14px; flex-wrap: wrap; margin-top: 6px; font-size: 12.5px; letter-spacing: 0.0194em; color: var(--w-ink-alt); }
/* 아카데미 수강생 리드 상태의 날짜·기준(2026-10-19 시안 B) — 아래 줄 맨 앞 색 글자 */
.lh-pst.green, .lh-pst.orange, .lh-pst.violet, .lh-pst.red { font-weight: 600; }   /* 수강 중(Pro 반·Inter 반)은 보통 글자 */
.lh-pst.green { color: var(--w-green-text); }
.lh-pst.orange { color: var(--w-orange-text); }
.lh-pst.violet { color: var(--w-violet); }
.lh-pst.red { color: var(--w-red-text); }
/* 사람 목록 소속 칩(2026-10-19 시안 A) — 작가 목록 #alChips2 와 같은 모양 */
#lhPeopleChips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: -6px 0 10px; }
#lhPeopleChips .fchip { background: transparent; color: var(--w-ink); box-shadow: inset 0 0 0 1px rgba(112, 115, 124, .16); border-radius: 8px; padding: 6px 10px;
  font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0.0145em; font-family: inherit; border: 0; cursor: pointer; }
#lhPeopleChips .fchip:hover { background: var(--w-fill); }
#lhPeopleChips .fchip.on { color: var(--w-primary); background: rgba(0, 102, 255, .05); box-shadow: inset 0 0 0 1px var(--w-primary-line); }
#lhPeopleChips .al-f2-lb { font-size: 12.5px; font-weight: 700; color: var(--w-ink-alt); margin: 0 2px 0 4px; }
.lh-pedit { margin-top: 10px; margin-bottom: 0; }
/* [수정] 창 (2026-10-19) — 검수 담당 창 틀(.lh-zipm · .lh-rvwm-head) 그대로, 칸은 .lh-form 줄 · 위메이크 앱 계정 칸은 회색 글자(보기만). 접두어 lh-pem- */
.lh-pem { max-width: 520px; }
.lh-pem-form { margin: 14px 0 0; }
.lh-pem-note { margin: 0 0 9px; }
.lh-pem-ro { flex: 1; min-width: 160px; min-height: 35px; display: flex; align-items: center; flex-wrap: wrap; font-size: 14px; color: var(--w-ink-alt); overflow-wrap: anywhere; }   /* 입력칸 줄과 같은 높이 */
.lh-pem-ro small { margin-left: 8px; font-size: 12.5px; color: var(--w-ink-assist); }
body:has(#lhPemModal) .toast { z-index: 101; }   /* 저장 실패 알림이 창(100) 뒤에 가리지 않게 */

/* 토큰 모달 */
.lh-warn { color: var(--w-orange-text); font-size: 13px; line-height: 1.6; }
.lh-token { white-space: pre-wrap; word-break: break-all; background: var(--w-fill); border-radius: 10px;
  padding: 12px 14px; font-size: 12.5px; line-height: 1.6; margin: 12px 0 8px; user-select: all; }
#lhTokenModal .modal-btns .bulk-cancel { background: var(--w-fill); color: var(--w-ink); border-color: transparent; }
#lhTokenModal .modal-btns .bulk-cancel:hover { background: var(--w-fill-strong); }

@media (max-width: 600px) {
  .lh-count, .lh-pacts { margin-left: 0; width: 100%; }
  .lh-form .form-label { width: 100%; min-width: 0; }
  .lh-at { width: 100%; }
  .lh-vlead, .lh-vfile { max-width: 100%; }
}

/* ── 스크롤바 ───────────────────────────────────────────────────── */
::-webkit-scrollbar-thumb { background: var(--w-line); border: 2px solid #fff; }

/* 리드 창고 페이지 머리 — 좁은 폭에서 제목이 세로로 깨지지 않게 줄바꿈 허용 (2026-09-22) */
#page-leads .pg-head, #page-leads-people .pg-head, #page-leads-views .pg-head { flex-wrap: wrap; row-gap: 10px; }
#page-leads .pg-head h1, #page-leads-people .pg-head h1, #page-leads-views .pg-head h1,
#page-leads .pg-head .hbtn, #page-leads-people .pg-head .hbtn, #page-leads-views .pg-head .hbtn { white-space: nowrap; }

/* 신분증 직접 재단 오버레이 (2026-09-22) */
.crop-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid #e5e9f0; font-size: 13px; }
.crop-tools select { max-width: 320px; font-size: 13px; padding: 4px 6px; }
.crop-tools button { padding: 6px 12px; font-size: 13px; }
.crop-ck { display: inline-flex; align-items: center; gap: 6px; }
.crop-stage { display: flex; align-items: center; justify-content: center; padding: 8px; }
.crop-stage canvas { position: static; max-width: 100%; cursor: crosshair; touch-action: none; }
@media (max-width: 600px) { .crop-tools select { max-width: 100%; } }
/* 증명사진 직접 자르기 (2026-10-03) — 같은 오버레이의 'photo' 모드: 보정 체크 숨김 · 옆에 3:4 미리보기 */
.crop-ck[hidden] { display: none; }
.crop-stage.photo { gap: 14px; flex-wrap: wrap; }
.crop-preview { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; color: #6b7280; }
.crop-preview[hidden] { display: none; }
.crop-stage .crop-preview canvas { width: 150px; height: 200px; cursor: default; background: #fff; border: 1px solid #d5dbe5; border-radius: 6px; touch-action: auto; }
@media (max-width: 600px) { .crop-stage .crop-preview canvas { width: 90px; height: 120px; } }

/* 계약 카드 — 곡별 KOMCA 서류 칸 (2026-09-22) */
.ct-songs { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.ct-song { border: 1px solid #e5e9f0; border-radius: 12px; padding: 10px 12px; background: #fff; }
.ct-song.ok { background: #f6fbf7; border-color: #cfe9d6; }
.ct-song-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; font-size: 14px; }
.ct-song-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.ct-song .empty.small { padding: 4px 0; }

/* 계약 탭 배치 (2026-09-22 사장님 "왜 오른쪽에 쳐박아 두고 왼쪽은 횡하냐"):
   왼쪽 열은 [계약 정보 수정] 폼 자리라 평소엔 비어 있었다 → 폼이 열릴 때만 위에 펼치고,
   계약 카드는 전체 폭을 써서 여러 장을 나란히 놓는다 (카드 최소 460px, 폭 따라 1~3열) */
.ctc-grid { display: block; }
.ctc-left { display: none; }
.ctc-left.on { display: block; margin-bottom: 16px; }
.ctc-right { display: block; }
.ctc-right .ctc-title { margin-bottom: 8px; }
#contractsBox { display: grid; grid-template-columns: repeat(auto-fit, minmax(460px, 1fr)); gap: 12px; align-items: start; }
#contractsBox .ct-done-line, #contractsBox .empty { grid-column: 1 / -1; }
#contractsBox .ct-item { margin: 0; max-width: 760px; }  /* 카드가 하나뿐이면 빈 칸 없이 넓게, 여러 장이면 2~3열 */
#contractCard .engine-note { display: none; }
#contractCard.creating .engine-note { display: block; }
@media (max-width: 560px) { #contractsBox { grid-template-columns: 1fr; } }
/* 작가 가입 신청 (2026-09-23) */
.lh-pnote{margin-top:6px;font-size:12.5px;color:#8a5a00;background:#fff6d8;border-radius:8px;padding:6px 10px}
#lhPendingBar{margin:0 0 12px}
#lhPendingBar a{color:inherit;font-weight:800}
.lh-subfilter{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.lh-subfilter .row-btn.on{background:#191f28;color:#fff;border-color:#191f28}
/* 열람 기록 탭 정리 (2026-09-23) */
.lh-vtools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.lh-vtools .selbox{min-width:120px}
.lh-vmode{display:inline-flex;gap:4px;margin-left:auto}
.lh-vmode .row-btn.on{background:#191f28;color:#fff;border-color:#191f28}
.lh-vtab{width:100%;border-collapse:collapse;font-size:13px}
.lh-vtab th{text-align:left;font-size:12px;color:var(--w-ink-alt);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--w-line-neutral)}
.lh-vtab td{padding:7px 8px;border-bottom:1px solid var(--w-line-neutral);vertical-align:middle;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lh-vtab td.lh-at{width:52px;color:var(--w-ink-alt)}
.lh-vtab tr.lh-vday td{background:var(--semantic-fill-normal,#f4f5f7);font-weight:800;font-size:12.5px;color:var(--w-ink-neutral);padding:6px 8px;white-space:normal}
.lh-vwho{background:none;border:0;padding:0;font:inherit;font-weight:700;color:inherit;cursor:pointer}
.lh-vwho:hover{text-decoration:underline}
.lh-vgroup{border:1px solid var(--w-line-neutral);border-radius:12px;padding:8px 12px;margin-bottom:8px;background:#fff}
.lh-vgroup summary{cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;list-style:none}
.lh-vgroup summary::-webkit-details-marker{display:none}
.lh-vgroup summary::before{content:'▸';color:var(--w-ink-alt);font-size:12px}
.lh-vgroup[open] summary::before{content:'▾'}
.lh-vgroup-body{margin-top:6px;border-top:1px solid var(--w-line-neutral);padding-top:4px}
@media(max-width:700px){.lh-vtab th:nth-child(5),.lh-vtab td:nth-child(5){display:none}}
/* 리드 상세 읽기 화면 (2026-09-23) */
.lh-read{margin-top:10px}
.lh-read-meta{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:13px;color:var(--w-ink-alt);margin-bottom:10px;align-items:center}
.lh-read-meta b{color:var(--w-ink);font-weight:700}
.lh-read-body{white-space:pre-wrap;line-height:1.7;font-size:14.5px;background:var(--semantic-fill-normal,#f4f5f7);border-radius:12px;padding:14px 16px;min-height:60px}

/* ══ 시안 검수 (2026-09-27) — 리드 상세 [시안 검수] 카드 + 전체 화면 검수 작업대 + 알집 대화상자 + 드라이브 설정 ══
   접두어 lh-rv / lh-pk / lh-pb / lh-doc / lh-zipm. 밝은 테마만. 폰(≤900px)은 목록 = 아래에서 올라오는 시트, 분류 버튼 = 화면 아래 고정. */
.lh-ic { flex: none; vertical-align: -3px; }
.lh-count .lh-todo, .lh-due .lh-todo { color: var(--w-orange-text); font-weight: 700; }
.lh-count .lh-holdn, .lh-due .lh-holdn { color: var(--w-orange-text); font-weight: 600; }   /* ' · 보류 H' (보류 > 0 일 때만) */
.lh-zipprev { color: var(--w-ink-neutral); font-weight: 600; word-break: break-all; }

/* 분류 배지 — 1안 파랑 · 2안 초록 · 보류 주황 · 탈락 빨강 · 미검토 테두리 */
.lh-pb { flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700;
  line-height: 16px; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.lh-pb.a1 { background: var(--w-primary); color: #fff; }
.lh-pb.a2 { background: var(--w-green-text); color: #fff; }
.lh-pb.hold { background: var(--w-orange-bg); color: var(--w-orange-text); box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .28); }
.lh-pb.out { background: var(--w-red-bg); color: var(--w-red-text); }
.lh-pb.none { background: #fff; color: var(--w-ink-alt); box-shadow: inset 0 0 0 1px var(--w-line); }

/* 글자 버튼 (원본 받기 · 채택 확정 · 이름 수정 · 다시 백업) */
.lh-rv-tbtn { display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; color: var(--w-primary);
  font-family: inherit; font-size: 13px; font-weight: 600; line-height: 18px; padding: 7px 10px; border-radius: 8px;
  cursor: pointer; text-decoration: none; white-space: nowrap; }
.lh-rv-tbtn:hover { background: var(--w-primary-bg); color: var(--w-primary-strong); }
.lh-rv-tbtn:disabled { opacity: .5; cursor: default; background: transparent; }
.lh-rv-tbtn.adopt { color: var(--w-green-text); }
.lh-rv-tbtn.adopt:hover { background: var(--w-green-bg); color: var(--w-green-text); }
.lh-rv-tbtn.adopt.on { color: var(--w-ink-alt); }
.lh-rv-tbtn.adopt.on:hover { background: var(--w-fill); }

/* ── 리드 상세: 시안 검수 카드 ── */
.lh-rvcard .hc-title { flex-wrap: wrap; gap: 8px 12px; }
.lh-rvcard .lh-head-btns { gap: 8px; }
.lh-rvcard .lh-head-btns .row-btn, .lh-rvcard .lh-head-btns .lh-btn-main { display: inline-flex; align-items: center; gap: 5px;
  margin-left: 0; padding: 9px 16px; font-size: 14px; }
.lh-rvcard .lh-head-btns .row-btn:disabled, .lh-rvcard .lh-head-btns .lh-btn-main:disabled { opacity: .45; cursor: default; }
/* 검토 완료(미검토 0 · 보류 0) — [시안 검토하기] 자리의 [✓ 검토 완료]: 파란 주 버튼 대신 차분한 초록 테두리 · 누르면 재검토 확인창 */
.lh-rvcard .lh-head-btns .lh-btn-main.done { background: var(--w-green-bg); color: var(--w-green-text); box-shadow: inset 0 0 0 1px rgba(0, 150, 50, .32); }
.lh-rvcard .lh-head-btns .lh-btn-main.done:hover { background: rgba(0, 191, 64, .16); }
.lh-rvcard .lh-head-btns .lh-btn-main.done .lh-ic { flex: none; margin-left: -2px; }
.lh-rvc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 12px; }
.lh-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--w-fill);
  font-size: 13px; font-weight: 600; color: var(--w-ink-neutral); }
.lh-chip i { width: 8px; height: 8px; border-radius: 50%; }
.lh-chip.a1 i { background: var(--w-primary); }
.lh-chip.a2 i { background: var(--w-green); }
.lh-chip.hold i { background: var(--w-orange); }
.lh-chip.out i { background: var(--w-red); }
.lh-chip.none i { box-shadow: inset 0 0 0 1.5px var(--w-ink-assist); }
.lh-chip b { font-weight: 700; color: var(--w-ink); font-variant-numeric: tabular-nums; }
/* 탈락 칩 — 옆에 '아카데미 x · 퍼블리싱 y' (좁은 폰에선 둘째 줄로) */
.lh-chip.split { flex-wrap: wrap; row-gap: 2px; }
.lh-chip-main { display: inline-flex; align-items: center; gap: 6px; }
.lh-chip-sub { padding-left: 8px; border-left: 1px solid var(--w-line); font-size: 12px; font-weight: 500; color: var(--w-ink-alt);
  font-variant-numeric: tabular-nums; white-space: nowrap; }
/* 미검토 0 · 보류 > 0 — '보류 H건 · 다시 검토가 필요해요' */
.lh-rvc-hold { display: flex; align-items: center; gap: 6px; margin: -2px 0 12px; padding: 8px 12px; border-radius: 10px;
  background: var(--w-orange-bg); color: var(--w-orange-text); font-size: 13px; font-weight: 600; line-height: 18px; }
.lh-rvc-hold b { font-weight: 700; font-variant-numeric: tabular-nums; }
.lh-rvc-drive { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 13px; color: var(--w-ink-neutral); margin: 0 0 12px; }
.lh-rvc-drive[hidden] { display: none; }
.lh-rvc-drive > .lh-ic { color: var(--w-ink-alt); }
.lh-rvc-drive b { font-variant-numeric: tabular-nums; }
.lh-rvc-drive.ok b { color: var(--w-green-text); }
.lh-rvc-drive.off { color: var(--w-ink-alt); }
.lh-rvc-drive a { font-weight: 600; text-decoration: none; }
.lh-rvc-drive .lh-rv-tbtn { padding: 4px 8px; }
.lh-rvc-drive-err { color: var(--w-red-text); font-weight: 600; }
.lh-rvrows { border-top: 1px solid var(--w-line-neutral); }
.lh-rvrow { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; width: 100%; border: 0; border-bottom: 1px solid var(--w-line-neutral);
  background: transparent; text-align: left; padding: 11px 8px; cursor: pointer; font-family: inherit; font-size: 14px; color: var(--w-ink); border-radius: 0; }
.lh-rvrow:hover { background: var(--w-fill); }
.lh-rvrow:last-child { border-bottom: 0; }
.lh-rvrow-who { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.lh-rvrow-end { flex: none; margin-left: auto; display: flex; align-items: center; gap: 8px; }
.lh-rvrow-name { font-weight: 600; margin-right: 2px; }
.lh-rvrow-time { font-size: 12.5px; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lh-rvrow .lh-pb { min-width: 48px; }
/* 시안 줄 한 겹(2026-10-19) — [시안 줄] + 사장님만 [삭제]. 아래 선은 줄(.lh-rvline)이 갖는다 · 접힌 줄은 hidden */
.lh-rvline { display: flex; align-items: center; border-bottom: 1px solid var(--w-line-neutral); }
.lh-rvline:last-child { border-bottom: 0; }
.lh-rvline[hidden] { display: none; }
.lh-rvline > .lh-rvrow { flex: 1 1 auto; min-width: 0; border-bottom: 0; }
.lh-rvdel { flex: none; border: 0; background: transparent; font-family: inherit; font-size: 12.5px; font-weight: 600; color: var(--w-ink-assist);
  padding: 4px 6px; margin: 0 4px 0 -2px; border-radius: 6px; cursor: pointer; }
.lh-rvdel:hover, .lh-rvdel:focus-visible { color: var(--w-red-text); background: var(--w-red-bg); }
/* 접기 ① — 5줄까지만, [＋ 나머지 n건 더 보기] ↔ [접기] */
.lh-rvmore { display: flex; justify-content: center; padding: 8px 0 0; }
.lh-rvmore .lh-rv-tbtn { font-size: 13px; }
/* 소속별 제출 수 두 칸(2026-10-19 B안) — 제목 밑 · 누르면 아래 목록이 그 소속만 */
.lh-og { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 12px; }
.lh-og-t { display: inline-flex; align-items: center; gap: 14px; min-width: 196px; padding: 10px 12px; border: 0; border-radius: 12px;
  background: var(--w-fill); font-family: inherit; color: var(--w-ink); text-align: left; cursor: pointer; }
.lh-og-t.static { cursor: default; }
.lh-og-t .wbadge { font-size: 12.5px; line-height: 16px; padding: 4px 8px; }
.lh-og-t .v { margin-left: auto; white-space: nowrap; font-size: 13px; font-weight: 500; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
.lh-og-t .v b { font-size: 20px; line-height: 24px; font-weight: 700; color: var(--w-ink); margin-right: 2px; }
button.lh-og-t:hover:not(:disabled) { background: #EFEFF1; }
.lh-og-t.on { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-ink); }
.lh-og-t:disabled { cursor: default; }
.lh-og-t:disabled .v b { color: var(--w-ink-assist); }
.lh-og-hint { font-size: 12.5px; color: var(--w-ink-alt); }
/* 여러 곡 리드 — 곡마다 한 덩어리(2026-10-21 시안 ③): '곡 1 Go Fast  시안 n건 · 미검토 n' · 칩 · 송폼 · 양식 · 시안 줄 (위 리드 전체 칸과 선으로 나눔) */
.lh-sg { display: flex; flex-direction: column; gap: 12px; padding-top: 16px; border-top: 1px solid var(--w-line-neutral); }
.lh-rvcard .lh-sg > * { margin: 0; }   /* 칸 사이는 덩어리 간격(12px)으로 — 칩·송폼·양식 줄의 아래 여백은 뺀다 */
.lh-sg-h { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.lh-sg-h .k { flex: none; font-size: 11.5px; font-weight: 700; line-height: 16px; color: #4A5675; background: #E6E9F1; border-radius: 6px; padding: 2px 7px; }
.lh-sg-h > b { font-size: 16px; font-weight: 700; color: var(--w-ink); overflow-wrap: anywhere; }
.lh-sg-h .n { font-size: 13px; color: var(--w-ink-alt); }
.lh-sg-h .n b { font-size: 13px; font-weight: 700; color: var(--w-orange-text); }
.lh-sg.lost .lh-sg-h .k { color: var(--w-ink-neutral); background: var(--w-fill-strong); }
@media (max-width: 600px) {
  .lh-og { display: grid; grid-template-columns: 1fr 1fr; }
  .lh-og-t { min-width: 0; flex-direction: column; align-items: flex-start; gap: 6px; }
  .lh-og-t .v { margin-left: 0; }
  .lh-og-hint { grid-column: 1 / -1; }
}

/* ── 작업대 틀: 열리면 리드 머리·목록·상세를 숨긴다 ── */
#page-leads .lh-review { display: none; }
#page-leads.rv-open .lh-review { display: block; }
#page-leads.rv-open .pg-head, #page-leads.rv-open #lhLeadForm, #page-leads.rv-open #lhLeadListWrap,
#page-leads.rv-open #lhLeadDetail, #page-leads.rv-open #lhPendingBar { display: none !important; }
#page-leads.rv-open .home-wrap { max-width: 1320px; padding: 14px 32px 28px; }

.lh-rv { position: relative; }
.lh-rv-top { margin-bottom: 16px; }
.lh-rv-top .lh-back { margin-bottom: 6px; }
/* 동시 검토 안내 '다른 분이 n건 분류했어요' — [← 리드로] 줄 오른쪽에 떠서 화면을 밀지 않는다 (~6초) */
.lh-rv-live { position: fixed; top: 12px; right: 16px; z-index: 60; max-width: calc(100vw - 32px); display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px; border-radius: 999px; background: #fff; color: var(--w-ink-neutral); font-size: 13px; line-height: 18px; font-weight: 600;
  box-shadow: 0 6px 18px rgba(23,23,25,.12), inset 0 0 0 1px var(--w-line-neutral); pointer-events: none; }   /* 화면 오른쪽 위에 고정 — 읽다가 아래로 내려가 있어도 보이게 */
.lh-rv-live[hidden] { display: none; }
.lh-rv-live > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-rv-live b { color: var(--w-ink); font-variant-numeric: tabular-nums; }
.lh-rv-live .lh-ic { color: var(--w-primary); }
.lh-rv-live.in { animation: lhRvLiveIn .2s ease; }
@keyframes lhRvLiveIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.lh-rv-headrow { display: flex; align-items: flex-end; gap: 12px 24px; flex-wrap: wrap; }
.lh-rv-headtxt { flex: 1; min-width: 240px; }
.lh-rv-title { font-size: 22px; line-height: 30px; font-weight: 700; letter-spacing: -0.02em; margin: 0; overflow-wrap: anywhere; }
.lh-rv-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-top: 4px; font-size: 13.5px; color: var(--w-ink-alt); }
.lh-rv-dday { font-weight: 700; font-size: 12px; line-height: 16px; padding: 2px 8px; border-radius: 999px; background: var(--w-fill); color: var(--w-ink-neutral); }
.lh-rv-dday.soon, .lh-rv-dday.today { background: var(--w-orange-bg); color: var(--w-orange-text); }
.lh-rv-dday.past { color: var(--w-ink-alt); }
.lh-rv-headside { display: flex; align-items: center; gap: 12px 18px; flex-wrap: wrap; }
.lh-rv-prog { min-width: 160px; }
.lh-rv-progtxt { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: 13px; color: var(--w-ink-neutral); font-variant-numeric: tabular-nums; }
.lh-rv-progtxt b { font-size: 16px; color: var(--w-ink); }
.lh-rv-bar { display: flex; height: 6px; border-radius: 999px; background: var(--w-fill-strong); overflow: hidden; }
.lh-rv-bar i { flex: none; display: block; height: 100%; background: var(--w-primary); border-radius: inherit; transition: width .25s ease; }
.lh-rv-bar i.hold { background: var(--w-orange); }   /* 보류 — 검토한 수(파랑) 뒤에 이어서 */
.lh-rv-bar i:not(:last-child) { border-radius: 999px 0 0 999px; }
.lh-rv-bar i + i { border-radius: 0 999px 999px 0; }
.lh-rv-bar.full i { background: var(--w-green); }
.lh-rv-holdn { display: inline-flex; align-items: center; gap: 3px; padding: 1px 8px 1px 5px; border-radius: 999px; background: var(--w-orange-bg);
  color: var(--w-orange-text); font-size: 12px; font-weight: 700; line-height: 18px; white-space: nowrap; }
.lh-rv-holdn .lh-ic { width: 14px; height: 14px; vertical-align: 0; }
.lh-rv-headbtns { display: flex; gap: 6px; flex-wrap: wrap; }
.lh-rv-headbtns .row-btn { display: inline-flex; align-items: center; gap: 5px; margin-left: 0; padding: 8px 14px; font-size: 13.5px;
  text-decoration: none; color: var(--w-ink); }
.lh-rv-headbtns a.row-btn:hover { color: var(--w-ink); }
.lh-rv-zip { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-top: 12px; }
.lh-rv-zipname { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; padding: 6px 12px; border-radius: 10px;
  background: var(--w-fill); font-size: 13px; font-weight: 600; color: var(--w-ink-neutral); }
.lh-rv-zipname > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-rv-nameform { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; width: 100%; }
.lh-rv-nameform label { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
.lh-rv-nameform input[type="text"] { width: 180px; padding: 8px 12px; font-size: 14px; }
.lh-rv-nameform .lh-btn-main { padding: 8px 16px; }
.lh-rv-nameform .row-btn { margin-left: 0; padding: 8px 14px; font-size: 13.5px; }
.lh-rv-nameprev { flex-basis: 100%; word-break: break-all; }
/* 여러 곡 리드 — 곡 고르기(2026-10-21 시안 ④): 누르면 목록·검토 n/n·알집 이름이 그 곡 것 · 미검토가 남은 곡엔 주황 '미검토 n' */
.lh-rv-song { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin-top: 14px; }
.lh-rv-song:empty { display: none; }
.lh-rv-song .k { font-size: 12.5px; font-weight: 700; color: var(--w-ink-alt); }
.lh-rv-song .seg { display: inline-flex; flex-wrap: wrap; gap: 3px; padding: 3px; border-radius: 12px; background: var(--w-fill); max-width: 100%; }
.lh-rv-song button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 0; background: transparent; border-radius: 9px; font: inherit;
  font-size: 13.5px; font-weight: 700; color: var(--w-ink-alt); cursor: pointer; white-space: nowrap; }
.lh-rv-song button:hover:not(.on) { color: var(--w-ink-neutral); }
.lh-rv-song button b { font-variant-numeric: tabular-nums; color: var(--w-ink-neutral); }
.lh-rv-song button small { font-size: 11.5px; font-weight: 700; color: var(--w-orange-text); background: var(--w-orange-bg); border-radius: 999px; padding: 1px 7px; }
.lh-rv-song button.on { background: #fff; color: var(--w-ink); box-shadow: var(--w-shadow-xs), 0 0 0 1px rgba(23, 23, 23, .04); }
.lh-rv-progsong { font-weight: 700; color: var(--w-ink); }

.lh-rv-body { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; align-items: start; }
.lh-rv-scrim { display: none; }

/* 왼쪽 목록 (PC) — 창을 내려도 붙어 있다 */
.lh-rv-side { position: sticky; top: 12px; max-height: calc(100vh - 24px); display: flex; flex-direction: column; background: #fff;
  border-radius: 16px; box-shadow: inset 0 0 0 1px var(--w-line); }
.lh-rv-sidehead { display: none; }
.lh-rv-tabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px; margin: 10px 10px 6px; padding: 3px;
  background: var(--w-fill); border-radius: 12px; }
.lh-rv-tab { border: 0; background: transparent; border-radius: 9px; padding: 6px 0 5px; cursor: pointer; font-family: inherit;
  display: flex; flex-direction: column; align-items: center; gap: 1px; color: var(--w-ink-alt); font-size: 12px; font-weight: 600; line-height: 16px; }
.lh-rv-tab b { font-size: 15px; line-height: 20px; font-weight: 700; color: var(--w-ink-neutral); font-variant-numeric: tabular-nums; }
.lh-rv-tab:hover { color: var(--w-ink); }
.lh-rv-tab.on { background: #fff; color: var(--w-ink); box-shadow: var(--w-shadow-xs), 0 0 0 1px rgba(23, 23, 23, .04); }
.lh-rv-tab.on b { color: var(--w-ink); }
.lh-rv-tab.hold.has b { color: var(--w-orange-text); }   /* 보류가 남아 있으면 숫자를 주황으로 */
.lh-rv-list { position: relative; flex: 1; min-height: 0; overflow-y: auto; padding: 0 6px 6px; overscroll-behavior: contain; }
.lh-rvi { display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: transparent; text-align: left; padding: 9px 10px;
  margin: 1px 0; border-radius: 10px; cursor: pointer; font-family: inherit; color: var(--w-ink); }
.lh-rvi:hover { background: var(--w-fill); }
.lh-rvi.on { background: var(--w-primary-bg); box-shadow: inset 3px 0 0 var(--w-primary); }
.lh-rvi.rv-flash { animation: lhRvFlash .8s ease; }   /* 'flash' 는 style.css 전역(노란 테두리)과 겹쳐 이름을 따로 씀 */
@keyframes lhRvFlash { 0% { background: rgba(0, 102, 255, .20); } 100% { background: transparent; } }
.lh-rvi-no { flex: none; width: 20px; text-align: right; font-size: 12px; color: var(--w-ink-assist); font-variant-numeric: tabular-nums; }
.lh-rvi-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.lh-rvi-name { font-size: 14px; line-height: 20px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-rvi.picked .lh-rvi-name { color: var(--w-ink-neutral); }
.lh-rvi-sub { display: flex; align-items: center; gap: 6px; font-size: 11.5px; line-height: 16px; color: var(--w-ink-alt); white-space: nowrap; overflow: hidden; }
.lh-rvi-org { font-weight: 700; }
.lh-rvi-org.pub { color: var(--w-violet); }
.lh-rvi-org.aca { color: var(--w-primary-strong); }
.lh-rvi-re { color: var(--w-orange-text); font-weight: 700; }
.lh-rvi-ad { color: var(--w-green-text); font-weight: 700; }
.lh-rvi .lh-pb { min-width: 44px; }
.lh-rv-empty { padding: 28px 12px; text-align: center; font-size: 13px; color: var(--w-ink-alt); }
.lh-rvi-org.etc { color: var(--w-ink-alt); }
/* 탈락 보기 — '아카데미 n' · '퍼블리싱 n' (· '기타 n') 작은 제목 아래로 모은다 */
.lh-rv-grp { display: flex; align-items: center; gap: 6px; padding: 10px 10px 4px; font-size: 11.5px; line-height: 16px; font-weight: 700;
  color: var(--w-ink-alt); letter-spacing: .01em; }
.lh-rv-grp:not(:first-child) { margin-top: 6px; border-top: 1px solid var(--w-line-neutral); padding-top: 12px; }
.lh-rv-grp b { font-weight: 700; color: var(--w-ink-neutral); font-variant-numeric: tabular-nums; }
.lh-rv-grp.academy span { color: var(--w-primary-strong); }
.lh-rv-grp.publishing span { color: var(--w-violet); }
.lh-rv-grp.empty { opacity: .6; }
.lh-rv-grp.empty b { color: var(--w-ink-alt); }
.lh-rv-keys { display: flex; flex-wrap: wrap; gap: 2px 12px; border-top: 1px solid var(--w-line-neutral); padding: 10px 14px 12px; font-size: 11.5px;
  line-height: 22px; color: var(--w-ink-alt); }
.lh-rv-keys > span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.lh-rv-keys kbd, .lh-pk kbd, .lh-rv-undo kbd { display: inline-block; min-width: 18px; text-align: center; font-family: inherit; font-size: 11px;
  font-weight: 700; line-height: 14px; padding: 2px 5px; border-radius: 6px; background: var(--w-fill); box-shadow: inset 0 -1px 0 var(--w-line); color: var(--w-ink-neutral); }

/* 오른쪽 읽기 칸 */
.lh-rv-main { min-width: 0; display: flex; flex-direction: column; min-height: calc(100vh - 40px); background: #fff; border-radius: 16px;
  box-shadow: inset 0 0 0 1px var(--w-line); }
.lh-rv-rhead { padding: 12px 24px 14px; border-bottom: 1px solid var(--w-line-neutral); }
.lh-rv-nav { display: flex; align-items: center; gap: 4px; min-height: 36px; }
.lh-rv-listbtn { display: none; align-items: center; gap: 5px; border: 0; background: var(--w-fill); color: var(--w-ink); border-radius: 10px;
  padding: 8px 12px; font-family: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.lh-rv-pos { display: inline-flex; align-items: center; gap: 2px; margin-left: -6px; }
.lh-rv-arrow { width: 34px; height: 34px; border: 0; border-radius: 9px; background: transparent; color: var(--w-ink-neutral); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.lh-rv-arrow:hover:not(:disabled) { background: var(--w-fill); color: var(--w-ink); }
.lh-rv-arrow:disabled { opacity: .3; cursor: default; }
.lh-rv-posn { min-width: 54px; text-align: center; font-size: 13px; font-weight: 600; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
.lh-rv-sp { flex: 1; }
.lh-rv-who { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin-top: 6px; }
.lh-rv-who h3 { font-size: 20px; line-height: 28px; font-weight: 700; letter-spacing: -0.015em; margin: 0 4px 0 0; overflow-wrap: anywhere; }
.lh-rv-when { display: flex; flex-wrap: wrap; gap: 2px 14px; margin-top: 4px; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
.lh-rv-fname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
/* 보류 다시 보기 안내 줄 */
.lh-rv-holdbar { display: flex; align-items: flex-start; gap: 6px; margin-top: 8px; padding: 8px 12px; border-radius: 10px;
  background: var(--w-orange-bg); color: var(--w-orange-text); font-size: 13px; line-height: 19px; font-weight: 500; }
.lh-rv-holdbar .lh-ic { margin-top: 1.5px; }
.lh-rv-holdbar b { font-weight: 700; }
/* 보던 시안이 재제출돼 새 파일로 바꿨을 때 한 줄 */
.lh-rv-resub { display: flex; align-items: center; gap: 6px; margin-top: 8px; padding: 7px 12px; border-radius: 10px;
  background: var(--w-primary-bg); color: var(--w-primary-strong); font-size: 13px; line-height: 18px; font-weight: 600; }
.lh-rv-files { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.lh-rv-ftab { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 0; background: var(--w-fill); color: var(--w-ink-neutral);
  border-radius: 999px; padding: 6px 12px; font-family: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.lh-rv-ftab:hover { background: var(--w-fill-strong); }
.lh-rv-ftab.on { background: var(--w-dark); color: #F7F7F8; }

/* ── 읽기 = 종이 보기 A (2026-09-27 사장님 '원본 느낌') ──
   [회색 책상 위 흰 종이 | 오른쪽 '양식 검사' 칸 300px]. 글자 크기 = pt × --lh-pt (PC 1.42px · 폰 1.5px), 줄 높이 = 1.33 × 크기 × 줄 간격 배수.
   창이 좁으면(≤1219px) 양식 칸은 머리의 한 줄(.lh-fm-bar) → 누르면 오른쪽 서랍(901~1219px) · 아래 시트(≤900px). */
.lh-rv-read { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: stretch; min-height: 0;
  margin: 0 1px; }   /* 읽기 칸 테두리(inset 그림자)를 책상·양식 칸이 덮지 않게 */
.lh-rv-desk { min-width: 0; background: #ECEEF1; padding: 20px 24px 44px; }
.lh-rv-doc { min-width: 0; }
.lh-rv-main.is-done .lh-rv-read, .lh-rv-main.no-sub .lh-rv-read { display: block; }
.lh-rv-main.is-done .lh-rv-desk, .lh-rv-main.no-sub .lh-rv-desk { background: transparent; padding: 0; }
.lh-rv-main.is-done .lh-fm, .lh-rv-main.no-sub .lh-fm { display: none; }
/* 미리보기를 못 만든 파일 · 빈 문서 — 책상 위 흰 카드로 */
.lh-rv-desk .lh-rv-state { max-width: 640px; margin: 0 auto; background: #fff; border-radius: 12px; box-shadow: 0 1px 3px rgba(0, 0, 0, .06); padding: 56px 20px; }
.lh-rv-main.is-done .lh-rv-desk .lh-rv-state, .lh-rv-main.no-sub .lh-rv-desk .lh-rv-state { background: transparent; box-shadow: none; padding: 72px 16px; }

/* 종이 한 장 — 맑은 고딕(없으면 애플 고딕 → Pretendard). 글자·문단 모양은 app.js lhDocBlock 이 검사한 값으로만 */
.lh-sheet { --lh-pt: 1.42px; max-width: 640px; margin: 0 auto; padding: 60px clamp(24px, 9%, 72px) 80px; background: #fff; border-radius: 3px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .06);
  font-family: "Malgun Gothic", "맑은 고딕", "Apple SD Gothic Neo", Pretendard, sans-serif; font-size: calc(var(--lh-pt) * 10); line-height: 1.33;
  color: #111; white-space: pre-wrap; word-break: keep-all; overflow-wrap: anywhere; letter-spacing: 0; text-align: left;
  -moz-tab-size: 4; tab-size: 4; tab-size: calc(var(--lh-pt) * 36); }
.lh-sheet .lh-dp { margin: 0; }
.lh-sheet .al-center { text-align: center; }
.lh-sheet .al-right { text-align: right; }
.lh-sheet .al-both { text-align: justify; }   /* 양쪽 정렬 — 짧은 줄은 왼쪽 정렬과 똑같이 보인다 */
.lh-sheet .r-b { font-weight: 700; }
.lh-sheet .r-fb { -webkit-text-stroke: .04em currentColor; }   /* 굵은 모양이 없는 굴림·돋움 등 — 브라우저가 굵게를 흉내 내지 않을 때 */
.lh-sheet .r-i { font-style: italic; }
.lh-sheet .r-u { text-decoration: underline; text-underline-offset: 2px; }
.lh-sheet .r-s { text-decoration: line-through; }
.lh-sheet .r-u.r-s { text-decoration: underline line-through; }
.lh-sheet .r-hl { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.lh-sheet .lh-dtbl { overflow-x: auto; margin: 4px 0 8px; }
.lh-sheet table { border-collapse: collapse; width: 100%; }
.lh-sheet td { border: 1px solid #A6A8AD; padding: 2px 6px; vertical-align: top; min-width: 60px; }
.lh-sheet .lh-dimg { display: inline-block; margin: 2px 0; padding: 0 8px; border-radius: 5px; background: var(--w-fill); color: var(--w-ink-alt);
  font-family: Pretendard, sans-serif; font-size: 12px; line-height: 22px; }
.lh-doc-more { max-width: 640px; margin: 18px auto 0; padding: 10px 14px; border-radius: 10px; background: var(--w-orange-bg);
  color: var(--w-orange-text); font-size: 13px; font-weight: 600; }
.lh-sheet.lh-skel { padding-top: 64px; }
.lh-sheet.lh-skel i:first-child { height: 20px; width: 38%; }
.lh-skel i { display: block; height: 14px; margin: 12px 0 20px; border-radius: 7px;
  background: linear-gradient(90deg, var(--w-fill) 0%, var(--w-fill-strong) 50%, var(--w-fill) 100%); background-size: 200% 100%;
  animation: lhRvShim 1.2s ease-in-out infinite; }
.lh-skel i.gap { height: 6px; background: none; animation: none; }
@keyframes lhRvShim { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
.lh-rv-state { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 72px 16px; font-size: 14px;
  line-height: 1.6; color: var(--w-ink-alt); }
.lh-rv-state b { font-size: 16px; color: var(--w-ink); }
.lh-rv-state.err b { color: var(--w-red-text); }
.lh-rv-state-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 8px; }
.lh-rv-state-btns .lh-btn-main, .lh-rv-state-btns a.lh-btn-main:hover { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; color: #fff; padding: 10px 18px; }
.lh-rv-state-btns .row-btn { margin-left: 0; padding: 10px 16px; font-size: 14px; }

/* 다 봤어요 */
.lh-rv-done { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 72px 16px 56px; }
.lh-rv-done-ic { width: 68px; height: 68px; border-radius: 50%; background: var(--w-green-bg); color: var(--w-green-text); display: flex;
  align-items: center; justify-content: center; margin-bottom: 6px; }
.lh-rv-done h3 { font-size: 22px; line-height: 30px; font-weight: 700; letter-spacing: -0.02em; margin: 0; }
.lh-rv-done p { font-size: 14.5px; color: var(--w-ink-neutral); margin: 0; }
.lh-rv-done p b { color: var(--w-ink); }
.lh-rv-done-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 12px 0 4px; }
.lh-rv-done-btns .row-btn { display: inline-flex; align-items: center; gap: 6px; margin-left: 0; padding: 12px 18px; font-size: 14.5px; }
.lh-rv-bigbtn { display: inline-flex; align-items: center; gap: 6px; padding: 12px 22px; font-size: 15px; border-radius: 12px; }
.lh-rv-done .lh-hint { max-width: 100%; word-break: break-all; }
.lh-rv-done p { max-width: 520px; line-height: 1.6; }
/* 미검토는 다 봤는데 보류가 남음 · 미검토가 다시 생김 */
.lh-rv-done.hold .lh-rv-done-ic { background: var(--w-orange-bg); color: var(--w-orange-text); }
.lh-rv-done.todo .lh-rv-done-ic { background: var(--w-primary-bg); color: var(--w-primary); }
.lh-rv-done .lh-hint b { color: var(--w-ink-neutral); }
/* 다 나눈 뒤 '잠시 뒤 리드로 돌아가요' + [여기 있기] + 3초 동안 줄어드는 얇은 막대 (2026-09-27) */
.lh-rv-auto { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 10px; }
.lh-rv-auto-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px 4px; font-size: 13.5px; line-height: 20px; color: var(--w-ink-alt); }
.lh-rv-auto-row .lh-rv-tbtn { padding: 4px 8px; }
.lh-rv-auto-bar { display: block; width: 120px; height: 3px; border-radius: 3px; background: var(--w-line-neutral); overflow: hidden; }
.lh-rv-auto-bar i { display: block; height: 100%; border-radius: inherit; background: var(--w-primary); transform-origin: left center;
  animation: lhRvAutoBar 3s linear forwards; }
@keyframes lhRvAutoBar { from { transform: scaleX(1); } to { transform: scaleX(0); } }
.lh-rv-holdnames { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; max-width: 560px; margin-top: 2px; }
.lh-rv-holdname { border: 0; background: var(--w-orange-bg); color: var(--w-orange-text); border-radius: 999px; padding: 6px 12px;
  font-family: inherit; font-size: 13px; font-weight: 600; line-height: 18px; cursor: pointer; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (hover: hover) { .lh-rv-holdname:hover { background: rgba(255, 146, 0, .2); } }
.lh-rv-holdname:focus-visible { outline: 2px solid var(--w-orange); outline-offset: 2px; }

/* 분류 버튼 줄 — PC 는 읽기 칸 아래에 붙어 있다(sticky), 폰은 화면 아래 고정 */
.lh-rv-actions { position: sticky; bottom: 0; z-index: 3; display: flex; justify-content: center; padding: 12px 24px 14px;
  margin: 0 1px 1px;   /* 읽기 칸의 테두리(inset 그림자)를 덮지 않게 */
  background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: saturate(1.4) blur(8px); backdrop-filter: saturate(1.4) blur(8px);
  border-top: 1px solid var(--w-line-neutral); border-radius: 0 0 15px 15px; }
.lh-rv-actions[hidden] { display: none; }
.lh-pk-row { display: flex; gap: 10px; width: 100%; max-width: 660px; }
.lh-pk { flex: 1; min-width: 0; height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 14px;
  font-family: inherit; font-size: 17px; font-weight: 700; letter-spacing: -0.01em; cursor: pointer;
  transition: background-color .12s ease, color .12s ease, box-shadow .12s ease, transform .06s ease; -webkit-tap-highlight-color: transparent; }
.lh-pk:active { transform: scale(.98); }
.lh-pk:focus-visible { outline: 2px solid var(--w-primary); outline-offset: 2px; }
.lh-pk kbd { background: rgba(255, 255, 255, .7); }
.lh-pk.a1 { background: var(--w-primary-bg); color: var(--w-primary-strong); }
@media (hover: hover) { .lh-pk.a1:hover { background: rgba(0, 102, 255, .14); } }
.lh-pk.a1.on { background: var(--w-primary); color: #fff; }
.lh-pk.a2 { background: var(--w-green-bg); color: var(--w-green-text); }
@media (hover: hover) { .lh-pk.a2:hover { background: rgba(0, 191, 64, .16); } }
.lh-pk.a2.on { background: var(--w-green-text); color: #fff; }
.lh-pk.hold { background: var(--w-orange-bg); color: var(--w-orange-text); }
@media (hover: hover) { .lh-pk.hold:hover { background: rgba(255, 146, 0, .18); } }
.lh-pk.hold.on { background: var(--w-orange-text); color: #fff; }
.lh-pk.out { background: #fff; color: var(--w-red-text); box-shadow: inset 0 0 0 1.5px rgba(229, 34, 34, .45); }
@media (hover: hover) { .lh-pk.out:hover { background: var(--w-red-bg); } }   /* 폰에선 누른 뒤 hover 색이 남지 않게 */
.lh-pk.out.on { background: var(--w-red-text); color: #fff; box-shadow: none; }
.lh-pk.on kbd { background: rgba(255, 255, 255, .22); color: #fff; box-shadow: none; }

/* 되돌리기 줄 */
.lh-rv-undo { position: fixed; left: 12px; right: 12px; bottom: 96px; z-index: 45; margin: 0 auto; width: max-content; display: flex; align-items: center; gap: 10px;
  max-width: calc(100vw - 24px);   /* left:50% + translate 로 두면 좁은 화면에서 폭이 반으로 줄어 이름이 잘린다 */ padding: 8px 10px 8px 16px; border-radius: 12px; background: var(--w-dark); color: #F7F7F8; font-size: 14px;
  box-shadow: 0 10px 28px rgba(23, 23, 23, .22); }
.lh-rv-undo[hidden] { display: none; }
.lh-rv-undo.in { animation: lhRvUp .18s ease; }
@keyframes lhRvUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.lh-rv-undo-txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-rv-undo-sep { color: rgba(247, 247, 248, .45); }
.lh-rv-undo button { flex: none; border: 0; background: rgba(255, 255, 255, .12); color: #8DBEFF; font-family: inherit; font-size: 13.5px; font-weight: 700;
  padding: 7px 12px; border-radius: 8px; cursor: pointer; }
.lh-rv-undo button:hover { background: rgba(255, 255, 255, .2); }
.lh-rv-undo kbd { background: rgba(255, 255, 255, .12); color: rgba(247, 247, 248, .8); box-shadow: none; }

/* 알집 대화상자 */
.lh-zipm { max-width: 460px; border-radius: 18px; padding: 22px 24px 20px; }
.lh-zipm h3 { font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.lh-zipm-name { display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; border-radius: 12px; background: var(--w-fill); font-size: 14px;
  font-weight: 600; line-height: 1.5; word-break: break-all; }
.lh-zipm-name .lh-ic { margin-top: 2px; color: var(--w-ink-alt); }
.lh-zipm-cap { margin-top: 14px; font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
/* 1안 · 2안 · (보류) · 탈락 · (미검토) — 5칸도 한 줄에 (폰은 3+2) */
.lh-zipm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); gap: 8px; margin: 6px 0 10px; }
.lh-zipm-f { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line);
  font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
.lh-zipm-f b { font-size: 17px; color: var(--w-ink); font-variant-numeric: tabular-nums; }
.lh-zipm-f.a1 span { color: var(--w-primary-strong); }
.lh-zipm-f.a2 span { color: var(--w-green-text); }
.lh-zipm-f.hold span { color: var(--w-orange-text); }
.lh-zipm-f.out span { color: var(--w-red-text); }
/* 탈락 칸 아래 출신별 개수 (탈락/아카데미 · 탈락/퍼블리싱 폴더) */
.lh-zipm-sub { display: flex; flex-direction: column; margin-top: 2px; }
.lh-zipm-f .lh-zipm-sub small { font-size: 11.5px; line-height: 16px; font-weight: 500; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lh-zipm-note { margin: 0 0 8px; }
.lh-zipm-warn { margin-bottom: 8px; padding: 8px 12px; border-radius: 10px; background: var(--w-orange-bg); color: var(--w-orange-text); font-size: 13px; font-weight: 600; }
.lh-zipm-err { margin-top: 8px; padding: 8px 12px; border-radius: 10px; background: var(--w-red-bg); color: var(--w-red-text); font-size: 13px; font-weight: 600; }
.lh-zipm-btns { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
/* 여러 곡 리드 — 알집 창 곡 고르기(2026-10-21 시안 ⑤): 곡마다 · '두 곡 한 번에'(안에 곡 폴더 목록 .lh-zipm-dirs) · 시안이 없는 곡은 흐리게(고를 수 없음) */
.lh-zipm-song { display: flex; flex-direction: column; gap: 6px; margin: 6px 0 12px; }
.lh-zipm-song label { position: relative; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line);
  font-size: 14px; font-weight: 600; cursor: pointer; }
.lh-zipm-song input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.lh-zipm-song label i { flex: none; width: 18px; height: 18px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--w-ink-assist); }
.lh-zipm-song label > span { min-width: 0; overflow-wrap: anywhere; }
.lh-zipm-song label small { margin-left: auto; font-size: 12.5px; font-weight: 500; color: var(--w-ink-alt); white-space: nowrap; }
.lh-zipm-song label:has(input:checked) { background: var(--w-primary-bg); box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.lh-zipm-song label:has(input:checked) i { box-shadow: inset 0 0 0 5px var(--w-primary); }
.lh-zipm-song label:has(input:focus-visible) { outline: 2px solid var(--w-primary); outline-offset: 2px; }
.lh-zipm-song label.off { opacity: .5; cursor: default; }
.lh-zipm-dirs { margin: 6px 0 10px; display: flex; flex-direction: column; gap: 6px; }
.lh-zipm-dirs > div { display: flex; align-items: flex-start; gap: 8px; padding: 9px 12px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line);
  font-size: 12.5px; color: var(--w-ink-neutral); word-break: break-all; }
.lh-zipm-dirs .lh-ic { margin-top: 1px; color: var(--w-ink-alt); }
.lh-zipm-dirs small { display: block; margin-top: 2px; color: var(--w-ink-alt); word-break: keep-all; }
.lh-zipm-btns .row-btn { margin-left: 0; padding: 9px 18px; font-size: 14px; }
.lh-zipm-btns .lh-btn-main { padding: 9px 24px; font-size: 14px; }
/* 재검토 확인창 ([✓ 검토 완료]를 누름) — 알집 대화상자 모양 그대로, 글 두 줄 + [취소] [재검토] */
.lh-rerv { max-width: 400px; }
.lh-rerv h3 { margin-bottom: 8px; line-height: 1.45; word-break: keep-all; }
.lh-rerv-sub { margin: 0; font-size: 14px; line-height: 1.6; color: var(--w-ink-alt); word-break: keep-all; text-wrap: pretty; }   /* 폰에서 '돼요'만 혼자 남지 않게 */

/* ══ 양식 검사 · 양식 맞춤본 · 가사지 (2026-09-27) ══
   접두어 lh-fm(양식 칸) / lh-fmb(목록 배지) / lh-vbar(원본·맞춤본 보기 줄) / lh-shm(가사지 고르기 창) / lh-rvc-sheet·lh-rvc-form(리드 상세 카드 줄) */
/* 목록·카드 배지 — '양식 ✓' 초록 · '양식 3' 빨강 · '검사 중' 회색 · '양식 ?' 테두리 */
.lh-fmb { flex: none; display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 700; line-height: 14px; padding: 1px 6px;
  border-radius: 6px; white-space: nowrap; letter-spacing: 0; }
.lh-fmb.ok { background: var(--w-green-bg); color: var(--w-green-text); }
.lh-fmb.bad { background: var(--w-red-bg); color: var(--w-red-text); }
.lh-fmb.wait { background: var(--w-fill-strong); color: var(--w-ink-alt); }
.lh-fmb.err { background: #fff; color: var(--w-ink-alt); box-shadow: inset 0 0 0 1px var(--w-line); }
.lh-fmb.skip { background: var(--w-fill-strong); color: var(--w-ink-neutral); }   /* '양식 넘어감' — 누가 보고 넘어감(빨강 = 아직 아무도 안 봄) */
.lh-rvrow-end .lh-fmb { font-size: 11px; padding: 2px 7px; }
.lh-rvi-sub .lh-fmb { margin: 0 -1px; }

/* 파일 이름 줄의 '알집 이름' 표시 */
.lh-fmtag { display: inline-block; margin-right: 5px; padding: 0 5px; border-radius: 5px; background: var(--w-primary-bg); color: var(--w-primary-strong);
  font-size: 11px; font-weight: 700; line-height: 16px; vertical-align: 1px; }
.lh-rv-when2 { margin-top: 6px; }

/* 종이 위 줄 — [원본 | 양식 맞춤본] · 알집에 넣을 파일 · 맞춤본 받기 */
.lh-vbar { max-width: 640px; margin: 0 auto 8px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; }
.lh-vseg { display: inline-flex; gap: 2px; padding: 3px; border-radius: 11px; background: rgba(255, 255, 255, .72); box-shadow: inset 0 0 0 1px rgba(23, 23, 23, .07); }
.lh-vseg button { border: 0; background: transparent; font-family: inherit; font-size: 13px; font-weight: 600; line-height: 18px; color: var(--w-ink-neutral);
  padding: 6px 12px; border-radius: 8px; cursor: pointer; }
.lh-vseg button.on { background: var(--w-dark); color: #F7F7F8; }
@media (hover: hover) { .lh-vseg button:not(.on):hover { background: #fff; color: var(--w-ink); } }
.lh-vuse { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
.lh-vuse-t { white-space: nowrap; }
/* 알집에 넣을 파일 [원본 | 양식 맞춤본] — 고르기 칸 대신 버튼 두 개(단축키를 막지 않게).
   보기 토글(검정)과 헷갈리지 않게 켜진 쪽은 흰 바탕 · 파란 글씨 · 파란 테 */
.lh-vseg-use button { padding: 6px 11px; }
.lh-vseg-use button.on { background: #fff; color: var(--w-primary-strong); font-weight: 700;
  box-shadow: 0 1px 2px rgba(23, 23, 23, .12), inset 0 0 0 1px rgba(0, 102, 255, .32); }
@media (hover: hover) { .lh-vseg-use button:not(.on):hover { background: rgba(0, 102, 255, .06); color: var(--w-ink); } }
.lh-vseg button:focus-visible { outline: 2px solid var(--w-primary); outline-offset: 1px; }
.lh-vbar .lh-rv-tbtn { background: rgba(255, 255, 255, .72); }
.lh-vcap { max-width: 640px; margin: 0 auto 12px; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.lh-vcap b { color: var(--w-ink-neutral); font-weight: 700; }
.lh-vcap-name { color: var(--w-ink-neutral); }
.lh-sheet.is-fixed { box-shadow: 0 0 0 2px rgba(0, 102, 255, .22), 0 8px 24px rgba(0, 0, 0, .06); }

/* 오른쪽 '양식 검사' 칸 (넓은 PC) — 창을 내려도 붙어 있고, 길면 칸 안에서 스크롤 */
.lh-fm { min-width: 0; background: #fff; border-left: 1px solid var(--w-line-neutral); }
.lh-fm:empty { display: none; }
.lh-rv-read:has(> .lh-fm:empty) { grid-template-columns: minmax(0, 1fr); }   /* 파일이 없는 시안 등 — 종이만 */
.lh-fm-in { position: sticky; top: 12px; max-height: calc(100vh - 112px); overflow-y: auto; overscroll-behavior: contain; padding: 16px 16px 14px; }
.lh-fm-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.lh-fm-head h3 { margin: 0 2px 0 0; font-size: 15px; line-height: 22px; font-weight: 700; letter-spacing: -0.01em; }
.lh-fm-chip { display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; line-height: 16px; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.lh-fm-chip.ok { background: var(--w-green-bg); color: var(--w-green-text); }
.lh-fm-chip.bad, .lh-fm-chip.err { background: var(--w-red-bg); color: var(--w-red-text); }
.lh-fm-chip.note { background: var(--w-orange-bg); color: var(--w-orange-text); }
.lh-fm-chip.wait { background: var(--w-fill); color: var(--w-ink-alt); }
.lh-fm-chip.skip { background: var(--w-fill-strong); color: var(--w-ink-neutral); }
.lh-fm-x { display: none; margin-left: auto; border: 0; background: var(--w-fill); color: var(--w-ink); border-radius: 9px; padding: 6px 12px;
  font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.lh-fm-sum { margin: 0 0 10px; padding: 8px 10px; border-radius: 10px; background: var(--w-fill); color: var(--w-ink-neutral); font-size: 12.5px; line-height: 1.55; }
.lh-fm-sum.ok { background: var(--w-green-bg); color: var(--w-green-text); }
.lh-fm-sum.warn { background: var(--w-orange-bg); color: var(--w-orange-text); }
.lh-fm-sum b { font-weight: 700; }
.lh-fm-re, .lh-fm-wait { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--w-ink-alt); }
.lh-fm-re { margin: 0 0 10px; padding: 7px 10px; border-radius: 10px; background: var(--w-primary-bg); color: var(--w-primary-strong); }
.lh-fm-wait { padding: 18px 2px; font-size: 13.5px; }
.lh-fm-list { list-style: none; margin: 0; padding: 0; }
.lh-fm-row { display: flex; align-items: flex-start; gap: 9px; padding: 8px 0; border-top: 1px solid var(--w-line-neutral); font-size: 13.5px; }
.lh-fm-row:first-child { border-top: 0; padding-top: 2px; }
.lh-fm-ic { flex: none; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; margin-top: 1px; }
.lh-fm-row.ng .lh-fm-ic { background: var(--w-red-bg); color: var(--w-red-text); }
.lh-fm-row.note .lh-fm-ic { background: var(--w-orange-bg); color: var(--w-orange-text); }
.lh-fm-row.info .lh-fm-ic { background: var(--w-primary-bg); color: var(--w-primary); font-style: italic; font-family: Georgia, serif; }
.lh-fm-lb { flex: 1; min-width: 0; line-height: 1.45; font-weight: 600; color: var(--w-ink); }
.lh-fm-lb b { font-weight: 700; }
.lh-fm-lb small { display: block; margin-top: 2px; font-size: 12px; line-height: 1.5; font-weight: 500; color: var(--w-ink-neutral); word-break: keep-all; overflow-wrap: anywhere; }
.lh-fm-lb small.at { color: var(--w-ink-alt); }
.lh-fm-row em { flex: none; font-style: normal; font-size: 11px; font-weight: 700; line-height: 15px; padding: 2px 6px; border-radius: 6px; white-space: nowrap; margin-top: 1px; }
.lh-fm-row em.auto { background: var(--w-primary-bg); color: var(--w-primary); }
.lh-fm-row em.man { background: var(--w-orange-bg); color: var(--w-orange-text); }
.lh-fm-row em.allow { background: var(--w-green-bg); color: var(--w-green-text); }
.lh-fm-row em.skip { background: var(--w-fill-strong); color: var(--w-ink-alt); }
/* 넘어가기 (2026-09-27) — 넘어간 줄은 흐리게(취소선 없음) · 꼬리표와 [넘어가기]·[되돌리기]는 줄 끝에 위아래로 (좁은 칸에서 이름 줄을 덜 밀게) */
.lh-fm-row.sk .lh-fm-ic { background: var(--w-fill-strong); color: var(--w-ink-alt); }
.lh-fm-row.sk .lh-fm-lb, .lh-fm-row.sk .lh-fm-lb small { color: var(--w-ink-alt); }
.lh-fm-end { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.lh-fm-skip { border: 0; background: transparent; font-family: inherit; font-size: 12px; font-weight: 600; line-height: 16px; color: var(--w-ink-alt);
  padding: 4px 8px; min-height: 26px; border-radius: 7px; box-shadow: inset 0 0 0 1px var(--w-line); cursor: pointer; white-space: nowrap; }
.lh-fm-skip.undo { color: var(--w-primary); box-shadow: inset 0 0 0 1px var(--w-primary-line); }
@media (hover: hover) {
  .lh-fm-skip:hover { background: var(--w-fill); color: var(--w-ink); }
  .lh-fm-skip.undo:hover { background: var(--w-primary-bg); color: var(--w-primary-strong); }
}
.lh-fm-skip:focus-visible { outline: 2px solid var(--w-primary); outline-offset: 1px; }
.lh-fm-bulk { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 2px 4px; margin-top: 8px; }
.lh-fm-bulk .lh-rv-tbtn { padding: 5px 8px; font-size: 12.5px; }
.lh-fm-cap { margin: 12px 0 6px; font-size: 12px; font-weight: 700; color: var(--w-ink-alt); }
.lh-fm-pass { display: flex; flex-wrap: wrap; gap: 4px 5px; }
.lh-fm-pass span { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px 3px 7px; border-radius: 999px; background: var(--w-fill);
  color: var(--w-ink-neutral); font-size: 12px; line-height: 16px; }
.lh-fm-pass span::before { content: '✓'; color: var(--w-green-text); font-weight: 800; }
.lh-fm-pass small { color: var(--w-ink-alt); font-size: 11px; }
.lh-fm-foot { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--w-line-neutral); display: flex; flex-direction: column; gap: 4px;
  font-size: 12.5px; line-height: 1.5; color: var(--w-ink-alt); }
.lh-fm-foot-row { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; }
.lh-fm-foot-row b { color: var(--w-ink-neutral); font-weight: 600; overflow-wrap: anywhere; }
.lh-fm-foot .lh-rv-tbtn { padding: 3px 6px; font-size: 12.5px; }

/* ── 양식 '위치 보기' (2026-09-27 사장님 "뭐가 어떤거에 오류가 있는지 표시가 없으니까 잘 모르겠음") ──
   양식 칸에서 줄 위치가 있는 항목을 누르면 종이(원본)의 걸린 줄 뒤에 옅은 색 + 종이 왼쪽 여백에 얇은 막대.
   색: 위반 빨강 · 참고 주황 · 허용·정보(발음 표기 · 버전 표시 · 가사지 파트) 파랑 — 종이 · 칩 · 칸의 누른 항목이 같은 색.
   글자 자리는 그대로 — 테두리·여백을 바꾸지 않고 배경 · 양옆 그림자 · 가상 요소(::before)만 쓴다. */
.mk-ng { --mk-bg: rgba(255, 66, 66, .11); --mk-in: rgba(255, 66, 66, .26); --mk-bar: #E52222; --mk-text: var(--w-red-text); }
.mk-note { --mk-bg: rgba(255, 146, 0, .14); --mk-in: rgba(255, 146, 0, .3); --mk-bar: #FF9200; --mk-text: var(--w-orange-text); }
.mk-info { --mk-bg: rgba(0, 102, 255, .09); --mk-in: rgba(0, 102, 255, .2); --mk-bar: #0066FF; --mk-text: var(--w-primary-strong); }
.lh-sheet .lh-mk { position: relative; background-color: var(--mk-bg); box-shadow: -8px 0 0 var(--mk-bg), 8px 0 0 var(--mk-bg); }
.lh-sheet .lh-mk::before { content: ''; position: absolute; top: 1px; bottom: 1px; left: -17px; width: 3px; border-radius: 2px; background: var(--mk-bar); }
.lh-sheet td .lh-mk { box-shadow: none; }                  /* 표 칸 안 — 칸 테두리를 넘지 않게 */
.lh-sheet td .lh-mk::before { display: none; }             /* 표 칸 안은 바탕만 — 칸 테두리 옆 막대가 '|' 글자·겹친 테두리처럼 보여서 (WMA .lhr-dtbl 과 같음) */
.lh-sheet .lh-mk.mk-in { animation: lhMkIn 1.3s ease-out; }   /* 누른 직후 한 번만 조금 진하게 */
.lh-sheet td .lh-mk.mk-in { animation: none; }
@keyframes lhMkIn { 0%, 35% { background-color: var(--mk-in); box-shadow: -8px 0 0 var(--mk-in), 8px 0 0 var(--mk-in); } }
/* 종이 위 칩 — 종이를 내려 읽는 동안에도 위에 붙어 있다([지우기]를 늘 누를 수 있게). 칩 밖(양옆)은 클릭이 종이로 간다 */
.lh-mkwrap { position: sticky; top: 10px; z-index: 3; display: flex; justify-content: center; max-width: 640px; margin: 0 auto 10px; pointer-events: none; }
.lh-mkwrap:empty { display: none; }
.lh-mkbar { pointer-events: auto; display: inline-flex; align-items: center; gap: 8px; min-width: 0; max-width: 100%; padding: 4px 4px 4px 10px;
  border-radius: 16px; background: rgba(255, 255, 255, .97); box-shadow: inset 0 0 0 1px var(--w-line), 0 6px 18px rgba(23, 23, 23, .12);
  font-size: 13px; font-weight: 500; line-height: 18px; color: var(--w-ink-neutral); }
.lh-mkbar > i { flex: none; width: 14px; height: 14px; border-radius: 4px; background: var(--mk-bg); box-shadow: inset 3px 0 0 var(--mk-bar); }   /* 종이 표시 모양 그대로(옅은 색 + 왼쪽 막대) */
.lh-mkbar-t { min-width: 0; word-break: keep-all; overflow-wrap: anywhere; }
.lh-mkbar-t b { color: var(--w-ink); font-weight: 700; }
.lh-mkbar-sub { color: var(--w-ink-alt); white-space: nowrap; }   /* '· 원본에서 보여 드려요' 한 덩어리 — 폰에서 '드려요'만 다음 줄로 떨어지지 않게(앞 빈칸에서 줄바꿈 · WMA .lhr-mkt .o 와 같음) */
.lh-mkbar button { flex: none; border: 0; border-radius: 12px; background: var(--w-fill-strong); color: var(--w-ink); font-family: inherit; font-size: 12.5px;
  font-weight: 700; line-height: 16px; padding: 6px 12px; cursor: pointer; }
@media (hover: hover) { .lh-mkbar button:hover { background: #DDDEE0; } }
.lh-mkbar button:focus-visible { outline: 2px solid var(--w-primary); outline-offset: 1px; }
/* 양식 칸 — 줄 위치가 있는 항목은 이름·설명·걸린 곳 칸 전체가 버튼. 칸 크기·줄 자리는 그대로(음수 여백 = 안쪽 여백) · 누른 항목은 그 색 */
.lh-fm-go { display: block; margin: -4px -6px; padding: 4px 6px; border: 0; border-radius: 8px; background: transparent; font-family: inherit; font-size: inherit;
  letter-spacing: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
@media (hover: hover) { .lh-fm-go:not(.on):hover { background: var(--w-fill); } }
.lh-fm-go.on { background: var(--mk-bg); }
.lh-fm-go:focus-visible { outline: 2px solid var(--w-primary); outline-offset: 0; }
.lh-fm-lb small.at.go { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; row-gap: 1px; }
.lh-fm-lb small.at.go > span { min-width: 0; }
.lh-fm-goa { flex: none; display: inline-flex; align-items: center; gap: 3px; font-weight: 600; color: var(--w-primary); white-space: nowrap; }
.lh-fm-goa .lh-ic { vertical-align: 0; }
.lh-fm-go.on .lh-fm-goa { margin-left: -2px; padding: 0 7px 0 5px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--mk-bar); color: var(--mk-text); }   /* 표시 중 = 알약(WMA .lhr-mkb.on 과 같은 모양) */

/* 좁은 창·폰의 '양식' 한 줄 (넓은 PC 에선 숨김) */
.lh-fm-bar { display: none; width: 100%; margin-top: 10px; align-items: center; gap: 8px; border: 0; border-radius: 10px; padding: 9px 10px 9px 12px;
  font-family: inherit; font-size: 13.5px; font-weight: 700; line-height: 18px; cursor: pointer; text-align: left; background: var(--w-fill); color: var(--w-ink-neutral); }
.lh-fm-bar.ok { background: var(--w-green-bg); color: var(--w-green-text); }
.lh-fm-bar.bad { background: var(--w-red-bg); color: var(--w-red-text); }
.lh-fm-bar.skip { background: var(--w-fill-strong); color: var(--w-ink-neutral); }
.lh-fm-bar-ic { flex: none; width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .75); color: inherit; font-size: 11px; font-weight: 800; }
.lh-fm-bar-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lh-fm-bar small { flex: none; font-size: 12px; font-weight: 600; opacity: .8; }
.lh-fm-bar .lh-ic { flex: none; opacity: .7; }

/* 리드 상세 카드 — 가사지 줄 · 양식 한 줄 */
.lh-rvc-sheet, .lh-rvc-form { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin: 0 0 10px; font-size: 13px; color: var(--w-ink-neutral); }
.lh-rvc-sheet > .lh-ic, .lh-rvc-form > .lh-ic { color: var(--w-ink-alt); }
.lh-rvc-sheet b { color: var(--w-ink); font-weight: 600; overflow-wrap: anywhere; }
.lh-rvc-sheet .lh-hint { font-size: 12px; }
.lh-sheet-labels { font-size: 12.5px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.lh-rvc-sheet .lh-rv-tbtn { padding: 3px 8px; }
.lh-rvc-form-t { font-weight: 600; color: var(--w-ink); }
.lh-rvc-form-t small { font-weight: 500; color: var(--w-ink-alt); font-size: 12px; }
.lh-rvc-form > i { font-style: normal; color: var(--w-ink-assist); }
.lh-rvc-form b { font-variant-numeric: tabular-nums; }
.lh-rvc-form .ok b { color: var(--w-green-text); }
.lh-rvc-form .bad b { color: var(--w-red-text); }
.lh-rvc-form .wait b, .lh-rvc-form .err b, .lh-rvc-form .skip b { color: var(--w-ink-neutral); }
.lh-rvc-form-zip { color: var(--w-ink-alt); }
.lh-rvc-form-zip::before { content: '—'; margin-right: 8px; color: var(--w-ink-assist); }

/* 알집 창 — '양식 맞춤본 n개 · 원본 m개로 들어가요' */
.lh-zipm-fix { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; padding: 8px 12px; border-radius: 10px; background: var(--w-primary-bg);
  color: var(--w-primary-strong); font-size: 13px; font-weight: 600; }
.lh-zipm-fix b { font-variant-numeric: tabular-nums; }
.lh-zipm-fix > span:first-of-type { flex: 1; min-width: 0; }
.lh-zipm-skip { flex: none; padding: 1px 8px; border-radius: 999px; background: #fff; color: var(--w-ink-neutral); font-size: 12px; font-weight: 600; white-space: nowrap; }

/* 가사지 고르기 창 */
.lh-shm { max-width: 480px; }
.lh-shm-desc { margin: 0 0 12px; line-height: 1.6; }
.lh-shm-cur { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: var(--w-fill); }
.lh-shm-cur > span { display: block; font-size: 12px; font-weight: 600; color: var(--w-ink-alt); margin-bottom: 6px; }
.lh-shm-labels { display: flex; flex-wrap: wrap; gap: 4px; }
.lh-shm-labels i { font-style: normal; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 6px; background: #fff; color: var(--w-ink-neutral);
  box-shadow: inset 0 0 0 1px var(--w-line); }
.lh-shm-list { display: flex; flex-direction: column; gap: 6px; max-height: 46vh; overflow-y: auto; }
.lh-shm-opt { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line); cursor: pointer; }
.lh-shm-opt:has(input:checked) { box-shadow: inset 0 0 0 1.5px var(--w-primary); background: var(--w-primary-bg); }
.lh-shm-opt input { margin-top: 3px; flex: none; }
.lh-shm-t { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; font-size: 14px; }
.lh-shm-t b { font-weight: 600; overflow-wrap: anywhere; }
.lh-shm-t small { flex-basis: 100%; font-size: 12px; color: var(--w-ink-alt); line-height: 1.5; }
.lh-shm-empty { padding: 4px 2px 6px; }

/* 창 너비별 양식 칸 — 넓은 PC(≥1220px): 오른쪽 칸 · 그보다 좁으면: 머리의 한 줄 → 서랍·시트 */
@media (max-width: 1219px) {
  .lh-rv-read { display: block; }
  .lh-fm-bar { display: flex; }
  .lh-fm { position: fixed; z-index: 70; background: #fff; border-left: 0; display: flex; flex-direction: column; overflow: hidden; visibility: hidden;
    transition: transform .22s ease, visibility 0s linear .22s; }
  .lh-fm-in { position: static; flex: 1; min-height: 0; max-height: none; padding: 16px 18px 20px; }
  .lh-fm-x { display: inline-flex; }
  .lh-rv.fm-open .lh-fm { transform: none; visibility: visible; transition: transform .22s ease, visibility 0s; }
  .lh-rv.fm-open .lh-rv-scrim { display: block; position: fixed; inset: 0; z-index: 65; background: rgba(15, 23, 42, .38); }
}
/* 서랍·시트(좁은 창·폰)와 터치 화면 — [넘어가기]·[되돌리기]·한 번에 버튼을 누르기 쉬운 높이(32px 이상)로 */
@media (max-width: 1219px), (pointer: coarse) {
  .lh-fm-skip { min-height: 32px; padding: 7px 10px; }
  .lh-fm-bulk .lh-rv-tbtn { min-height: 32px; padding: 7px 10px; }
  .lh-fm-go { min-height: 32px; }                           /* 위치 보기 — 이름·설명 칸 전체가 누르는 곳 */
  .lh-mkbar button { min-height: 32px; padding: 8px 14px; }  /* 종이 위 칩 [지우기] */
}
@media (min-width: 901px) and (max-width: 1219px) {
  .lh-fm { top: 0; right: 0; bottom: 0; width: min(380px, 92vw); transform: translateX(105%); box-shadow: -12px 0 32px rgba(23, 23, 23, .18); }
}

/* 설정 > 드라이브 백업 폴더 */
.lh-drive-cur, .lh-drive-state { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; min-width: 0; font-size: 13.5px; }
.lh-drive-cur a { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; text-decoration: none; }
.lh-drive-url { word-break: break-all; }
.lh-drive-err { color: var(--w-red-text); font-weight: 600; font-size: 13px; }
#lhDriveCard input#lhDriveRoot { flex: 1; min-width: 220px; padding: 9px 12px; font-size: 14px; }
#lhDriveCard .form-btns .row-btn { margin-left: 0; padding: 8px 14px; font-size: 13.5px; }

/* ══ 시안 검수 담당 (2026-09-28) — 카드 '검수 담당' 줄 · 검수 못 하는 리드 안내 · '검수 담당' 창 · 설정 카드 · 목록 태그 ══ */
.lh-rvc-who { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin: -2px 0 12px; font-size: 13px; line-height: 20px; color: var(--w-ink-neutral); }
.lh-rvc-who > .lh-ic { flex: none; color: var(--w-ink-alt); }
.lh-rvc-who-k { flex: none; font-weight: 600; color: var(--w-ink-alt); }
.lh-rvc-who-v { flex: 1 1 8em; min-width: 0; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }   /* 폰에서도 '검수 담당' 옆에 이름이 이어지게 */
.lh-rvc-who-v b { font-weight: 600; color: var(--w-ink); overflow-wrap: anywhere; }
.lh-rvc-who-v b small { margin-left: 1px; font-size: 12px; font-weight: 500; color: var(--w-ink-alt); }
.lh-rvc-who-v > i { font-style: normal; color: var(--w-ink-alt); }
.lh-rvc-who-open { color: var(--w-ink-alt); word-break: keep-all; }
.lh-rvc-who .lh-rvc-who-btn { flex: none; margin-left: auto; padding: 3px 8px; }
/* 이 리드만 부탁받은 분 — '도연 작가님이 이 리드 검수를 부탁했어요' */
.lh-rvc-who-note { margin: -6px 0 12px; padding: 7px 12px; border-radius: 10px; background: var(--w-primary-bg); color: var(--w-primary-strong);
  font-size: 13px; font-weight: 600; line-height: 18px; }
/* 검수 못 하는 리드 — 버튼·시안 행 대신 차분한 안내 한 줄 */
.lh-rvc-deny { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; padding: 10px 12px; border-radius: 10px; background: var(--w-fill);
  color: var(--w-ink-neutral); font-size: 13.5px; font-weight: 600; line-height: 18px; }
.lh-rvc-deny .lh-ic { flex: none; color: var(--w-ink-alt); }
/* '검수 담당' 창 — A 모든 리드 검수 담당 · B 이 리드만 부탁 (체크 칸 목록은 가사지 고르기 창과 같은 모양) */
.lh-rvwm { max-width: 460px; }
.lh-rvwm-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: -6px -10px 0 0; }
.lh-rvwm-head h3 { margin: 0; }
.lh-rvwm-sec { margin-top: 14px; }
.lh-rvwm-sec h4 { margin: 0 0 2px; font-size: 14.5px; font-weight: 700; color: var(--w-ink); }
.lh-rvwm-sec > .lh-hint { margin: 0 0 8px; word-break: keep-all; }
.lh-rvwm-list { display: flex; flex-direction: column; gap: 6px; }
.lh-rvwm-opt { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line); cursor: pointer; }
.lh-rvwm-opt:has(input:checked) { box-shadow: inset 0 0 0 1.5px var(--w-primary); background: var(--w-primary-bg); }
.lh-rvwm-opt:has(input:focus-visible) { outline: 2px solid var(--w-primary); outline-offset: 1px; }
.lh-rvwm-opt input { flex: none; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--w-primary); }
.lh-rvwm-t { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 14px; line-height: 20px; }
.lh-rvwm-t b { font-weight: 600; overflow-wrap: anywhere; }
.lh-rvwm-t small { font-size: 12px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.lh-rvwm-by { flex-basis: 100%; font-style: normal; font-size: 12px; line-height: 16px; color: var(--w-primary-strong); }
.lh-rvwm-opt:not(:has(input:checked)) .lh-rvwm-by { display: none; }   /* 누가 부탁했는지는 체크돼 있을 때만 */
.lh-rvwm-empty { margin: 0; padding: 4px 2px 2px; word-break: keep-all; }
/* 검수 금지 칸(2026-10-21) — 체크하면 파랑 대신 빨강(금지) */
.lh-rvwm-ban .lh-rvwm-opt:has(input:checked) { box-shadow: inset 0 0 0 1.5px var(--w-red); background: var(--w-red-bg); }
.lh-rvwm-ban .lh-rvwm-opt:has(input:focus-visible) { outline-color: var(--w-red); }
.lh-rvwm-ban .lh-rvwm-opt input { accent-color: var(--w-red); }
/* 설정 › 시안 검수 담당 */
#lhRvWhoCard[hidden] { display: none; }
#lhRvWhoCard .bulk-help { margin-bottom: 12px; }
#lhRvWhoCard .form-label { width: auto; }
#lhRvWhoCard .form-row .row-btn { margin-left: 0; padding: 8px 14px; font-size: 13.5px; }
.lh-rvw-set { flex: 1 1 auto; min-width: 0; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 13.5px; }
.lh-rvw-set b { font-weight: 600; }
.lh-rvw-set small { margin-left: 4px; font-size: 12px; color: var(--w-ink-alt); }
.lh-rvw-set > i { font-style: normal; color: var(--w-ink-alt); }
/* 리드 목록 — '검수 부탁받음' (이 리드만 부탁받은 분에게만) */
.wbadge.line.blue.lh-rvw-tag { box-shadow: inset 0 0 0 1px var(--w-primary-line); }

/* ── 폰·좁은 창 (≤900px) ── */
@media (max-width: 900px) {
  #page-leads.rv-open .home-wrap { padding: 10px 12px 0; }
  .lh-rv-top { margin-bottom: 10px; }
  .lh-rv-title { font-size: 19px; line-height: 26px; }
  .lh-rv-headrow { align-items: stretch; }
  .lh-rv-headside { width: 100%; justify-content: space-between; }
  .lh-rv-prog { flex: 1; min-width: 120px; }
  .lh-rv-zipname { font-size: 12.5px; }
  .lh-rv-nameform input[type="text"] { width: 100%; }
  .lh-rv-nameform label { flex: 1 1 100%; }
  .lh-rv-nameform label > span { flex: none; width: 52px; }
  .lh-rv-body { display: block; }
  /* 목록 = 아래에서 올라오는 시트 */
  .lh-rv-side { position: fixed; left: 0; right: 0; bottom: 0; top: 12vh; z-index: 70; max-height: none; border-radius: 18px 18px 0 0;
    box-shadow: 0 -12px 32px rgba(23, 23, 23, .18); transform: translateY(105%); visibility: hidden;
    transition: transform .22s ease, visibility 0s linear .22s; padding-bottom: env(safe-area-inset-bottom, 0px); }
  .lh-rv.list-open .lh-rv-side { transform: none; visibility: visible; transition: transform .22s ease, visibility 0s; }
  .lh-rv.list-open .lh-rv-scrim { display: block; position: fixed; inset: 0; z-index: 65; background: rgba(15, 23, 42, .38); }
  .lh-rv-sidehead { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 4px; font-size: 16px; }
  .lh-rv-sidehead .row-btn { margin-left: 0; padding: 7px 14px; font-size: 13.5px; }
  .lh-rv-keys { display: none; }
  .lh-rvi { padding: 11px 10px; }
  /* 읽기 칸 — 테두리 없이 화면 가득, 위 이동 줄은 붙어 있고 아래는 분류 버튼 자리만큼 비움 */
  .lh-rv-main { min-height: 0; border-radius: 0; box-shadow: none; background: transparent;
    padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
  .lh-rv-rhead { padding: 0 0 12px; }
  .lh-rv-nav { position: sticky; top: 0; z-index: 4; margin: 0 -12px; padding: 6px 12px; background: rgba(255, 255, 255, .96);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--w-line-neutral); }
  .lh-rv-listbtn { display: inline-flex; }
  .lh-rv-pos { margin-left: 2px; }
  .lh-rv-posn { min-width: 44px; }
  .lh-rv-nav .lh-rv-tbtn { padding: 7px 8px; }
  .lh-rv-who h3 { font-size: 19px; line-height: 26px; }
  /* 종이 보기 — 책상은 화면 가득, 종이는 양옆 10px · 안쪽 여백 좁게 · 글자는 조금 크게(1pt = 1.5px) */
  .lh-rv-read { margin: 0; }
  .lh-rv-desk { margin: 0 -12px; padding: 12px 0 20px; }
  .lh-rv-main.is-done .lh-rv-desk, .lh-rv-main.no-sub .lh-rv-desk { margin: 0; }
  .lh-sheet { --lh-pt: 1.5px; margin: 0 10px; padding: 26px 22px 34px; }
  .lh-rv-desk .lh-rv-state { margin: 0 10px; }
  .lh-vbar, .lh-vcap, .lh-doc-more { margin-left: 10px; margin-right: 10px; }
  .lh-mkwrap { top: 8px; margin-left: 10px; margin-right: 10px; }   /* 위치 보기 칩 */
  .lh-vuse-long { display: none; }   /* 폰: '알집에 [원본 | 양식 맞춤본]' */
  /* 양식 검사 = 아래에서 올라오는 시트 */
  .lh-fm { left: 0; right: 0; bottom: 0; top: 14vh; border-radius: 18px 18px 0 0; transform: translateY(105%);
    box-shadow: 0 -12px 32px rgba(23, 23, 23, .18); padding-bottom: env(safe-area-inset-bottom, 0px); }
  .lh-rv-actions { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; border-radius: 0; margin: 0;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -4px 16px rgba(23, 23, 23, .06); }
  /* 1안 · 2안 · 보류 · 탈락 네 개가 360~390px 폰에서도 한 줄에 (높이는 44px 넘게) */
  .lh-pk-row { max-width: none; gap: 6px; }
  .lh-pk { height: 56px; font-size: 16.5px; border-radius: 14px; gap: 4px; padding: 0 4px; }
  .lh-pk .lh-ic { width: 16px; height: 16px; }
  .lh-pk kbd { display: none; }
  .lh-rv-undo { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  .lh-rv-undo kbd { display: none; }
  .lh-rv-state, .lh-rv-done { padding-top: 48px; }
  body:has(#page-leads.on.rv-open) .toast { left: 12px; right: 12px; max-width: none; bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
  /* 서버의 오른쪽 아래 로그인 표시(#authBar, 인라인 style)가 분류 버튼 '탈락'을 덮지 않게 작업대가 열린 동안만 숨긴다 */
  body:has(#page-leads.on.rv-open) #authBar { display: none !important; }
  /* 폰에서 윗 메뉴(7개)가 화면보다 넓어 페이지 전체가 옆으로 밀리던 것 — 메뉴 줄만 옆으로 밀어 보게 */
  header .menubar { flex: 0 1 auto; min-width: 0; max-width: 100%; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  header .menubar::-webkit-scrollbar { display: none; }
  header .menubar .menu-tab { flex: none; white-space: nowrap; }
}
@media (max-width: 420px) {
  /* 탈락 칩의 '아카데미 x · 퍼블리싱 y' 는 둘째 줄로 (점·간격만큼 들여서) */
  .lh-chip.split { border-radius: 14px; }
  .lh-chip.split .lh-chip-sub { flex-basis: 100%; border-left: 0; padding-left: 14px; }
  .lh-rv-live { font-size: 12.5px; padding: 5px 10px; }
  .lh-rv-nav .lh-rv-tbtn .lh-ic { display: none; }
  .lh-rv-actions { padding-left: 10px; padding-right: 10px; }
  .lh-pk { height: 52px; font-size: 16px; border-radius: 12px; }
  .lh-rv-holdbar { font-size: 12.5px; line-height: 18px; }
  .lh-rv-headbtns .row-btn { padding: 8px 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .lh-rvi.rv-flash, .lh-rv-undo.in, .lh-rv-live.in, .lh-skel i, .lh-sheet .lh-mk.mk-in { animation: none; }
  .lh-rv-side, .lh-rv-bar i, .lh-pk { transition: none; }
  .lh-rv-auto-bar { display: none; }   /* 움직임 줄이기 — 글만 ('잠시 뒤 리드로 돌아가요') */
}

/* 계약 요율 입력 (2026-09-29, 시안 B) — 퍼블리셔 비율 버튼 + 직접 입력, 작가 몫 자동 표시 */
.rate-chips { display: inline-flex; gap: 6px; flex-wrap: wrap; align-items: center; border-radius: 999px; }
.rate-chips .rate-chip { border: 0; background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 999px; height: 36px; padding: 0 14px;
  font: inherit; font-size: 14px; font-weight: 600; color: var(--w-ink-neutral); cursor: pointer; display: inline-flex; align-items: center; gap: 2px; }
.rate-chips .rate-chip:hover { background: var(--w-fill); }
.rate-chips .rate-chip.on { background: var(--w-primary-bg); color: var(--w-primary); box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.rate-chips .rate-chip small { font-size: 11px; font-weight: 700; color: var(--w-green-text); margin-left: 4px; }
.rate-chips .rate-custom { padding: 0 10px 0 12px; cursor: text; }
.rate-chips .rate-custom input { width: 40px; border: 0; outline: 0; background: transparent; box-shadow: none; padding: 0 2px; font: inherit; font-weight: 700; text-align: right; color: inherit; height: 34px; }
.rate-chips .rate-custom input:focus { background: transparent; box-shadow: none; }
.rate-chips .rate-custom input::-webkit-outer-spin-button, .rate-chips .rate-custom input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rate-chips .rate-custom input[type=number] { -moz-appearance: textfield; }
.rate-chips.rate-bad .rate-chip { box-shadow: inset 0 0 0 1.5px var(--w-red); }
.rate-res { font-size: 14px; color: var(--w-ink-neutral); }
.rate-res b { color: var(--w-ink); }
.rate-res .rr-arrow { color: var(--w-ink-assist); margin-right: 6px; }
.rate-res .rr-note { color: var(--w-ink-alt); font-size: 12.5px; margin-left: 8px; }
.rate-res .rr-ghost { color: var(--w-ink-assist); font-size: 13px; }
.rate-res .rr-err { color: var(--w-red-text); font-size: 13px; font-weight: 600; }
.req-star { color: var(--w-red-text); }
.ad-grid2 > .ad-row.pct-row { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.rate-res-row { margin-top: -4px; }

/* 계약 카드 [↻ 다시 만들기] (2026-09-29, 시안 A) */
.ct-item .ct-regen-btn { border: 0; background: var(--w-primary-bg); color: var(--w-primary); font: inherit; font-size: 14px; font-weight: 600; border-radius: 12px; padding: 9px 14px; cursor: pointer; }
.ct-item .ct-regen-btn:hover { background: rgba(0, 102, 255, 0.14); }
.ct-regen { display: none; flex-direction: column; gap: 12px; background: #fff; border-radius: 16px; padding: 16px; margin-top: 12px; box-shadow: inset 0 0 0 1.5px rgba(0, 102, 255, 0.25); }
.ct-regen.open { display: flex; }
.ct-regen .rg-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ct-regen .rg-lab { width: 96px; flex: none; font-size: 13px; font-weight: 600; color: #4b5563; }
.ct-regen .rg-hint { font-size: 12.5px; color: var(--w-ink-alt); }
.ct-regen .rg-seg { display: inline-flex; background: var(--w-fill); border-radius: 12px; padding: 3px; gap: 2px; }
.ct-regen .rg-seg button { border: 0; background: transparent; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--w-ink-alt); padding: 7px 12px; border-radius: 10px; cursor: pointer; }
.ct-regen .rg-seg button.on { background: #fff; color: var(--w-ink); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); }
.ct-regen .rg-seg button:disabled { opacity: .4; cursor: default; }
.ct-regen .rg-go { border: 0; background: var(--w-primary); color: #fff; font: inherit; font-size: 14px; font-weight: 600; border-radius: 12px; padding: 9px 16px; cursor: pointer; }
.ct-regen .rg-go:hover { background: var(--w-primary-strong); }
.ct-regen .rg-cancel { border: 0; background: var(--w-fill); color: var(--w-ink); font: inherit; font-size: 14px; font-weight: 600; border-radius: 12px; padding: 9px 14px; cursor: pointer; }

/* 작가 서류함 = 왼쪽 폴더 트리 + 오른쪽 파일 (2026-09-29 시안 A 앱 카드형) */
.dtree { display: grid; grid-template-columns: 240px 1fr; gap: 10px; background: #F4F5F7; border-radius: 22px; padding: 10px; min-height: 360px; }
.dt-tree, .dt-pane { background: #fff; border-radius: 16px; min-width: 0; }
.dt-tree { padding: 10px 8px; align-self: start; position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
.dt-ti { display: flex; align-items: center; gap: 7px; padding: 7px 8px; border-radius: 9px; font-size: 14px; color: var(--w-ink-neutral); white-space: nowrap; overflow: hidden; cursor: pointer; user-select: none; }
.dt-ti:hover { background: var(--w-fill); }
.dt-ti.sel { background: var(--w-primary-bg); color: var(--w-primary); font-weight: 700; }
.dt-ti svg { flex: none; color: #8A8D94; }
.dt-ti.sel svg { color: var(--w-primary); }
.dt-ti b { font-weight: 700; color: var(--w-ink); overflow: hidden; text-overflow: ellipsis; }
.dt-ti.sel b { color: var(--w-primary); }
.dt-ti small { margin-left: auto; color: var(--w-ink-assist); font-size: 12px; font-weight: 600; }
.dt-ti.l1 { padding-left: 14px; }
.dt-ti.l2 { padding-left: 42px; font-size: 13.5px; }
.dt-chev { width: 10px; flex: none; text-align: center; color: var(--w-ink-assist); font-size: 13px; display: inline-block; }
.dt-chev.dn { transform: rotate(90deg); }
.dt-dot { width: 8px; height: 8px; border-radius: 99px; flex: none; display: inline-block; }
.dt-pane { padding: 4px 0 10px; }
.dt-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 14px 18px 8px; }
.dt-crumb { font-size: 14px; color: var(--w-ink-alt); }
.dt-crumb span { color: var(--w-ink-assist); margin: 0 3px; }
.dt-crumb b { color: var(--w-ink); font-size: 16px; }
.dt-crumb .dt-crumb-sub { color: var(--w-ink-assist); font-size: 12.5px; margin-left: 6px; }
.dt-sum { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; margin-left: auto; }
.dt-sum.ok { color: var(--w-green-text); } .dt-sum.part { color: var(--w-orange-text); } .dt-sum.none { color: var(--w-ink-alt); }
.dt-act { border: 0; background: var(--w-primary-bg); color: var(--w-primary); font: inherit; font-size: 13px; font-weight: 600; border-radius: 10px; padding: 7px 12px; cursor: pointer; }
.dt-act:hover { background: rgba(0, 102, 255, 0.14); }
.dt-act:disabled { opacity: .5; cursor: default; }
.dt-list { padding: 0 10px; }
.dt-fr { display: grid; grid-template-columns: 1fr 92px 64px 30px 38px; align-items: center; gap: 8px; padding: 9px 8px; border-radius: 10px; font-size: 14px; cursor: pointer; }
.dt-fr:not(.hd):hover { background: #F2F6FD; }
.dt-fr.hd { cursor: default; font-size: 12px; color: var(--w-ink-alt); padding-top: 4px; padding-bottom: 6px; border-bottom: 1px solid var(--w-line-neutral); border-radius: 0; margin-bottom: 4px; }
.dt-n { display: flex; align-items: center; gap: 9px; min-width: 0; }
.dt-n svg { flex: none; }
.dt-nm { font-weight: 600; white-space: normal; word-break: break-all; line-height: 1.4; min-width: 0; }
.dt-n { align-items: flex-start; } .dt-n svg { margin-top: 1px; } .dt-n .dt-tag { margin-top: 1px; }
.dt-tag { flex: none; font-size: 11.5px; font-weight: 700; border-radius: 6px; padding: 1px 6px; white-space: nowrap; }
.dt-tag.t-final { background: var(--w-primary-bg); color: var(--w-primary); }
.dt-tag.t-draft { background: var(--w-fill-strong); color: var(--w-ink-neutral); }
.dt-tag.t-stamp { background: var(--w-green-bg); color: var(--w-green-text); }
.dt-tag.t-merge { background: var(--w-violet-bg); color: var(--w-violet); }
.dt-d, .dt-s { color: var(--w-ink-alt); font-size: 12.5px; white-space: nowrap; }
.dt-dl { color: var(--w-primary); font-weight: 800; text-align: center; text-decoration: none; font-size: 15px; }
.dt-del { border: 0; background: transparent; color: var(--w-red-text); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; opacity: 0; padding: 4px 0; }
.dt-fr:hover .dt-del { opacity: .75; }
.dt-del:hover { opacity: 1 !important; }
.dt-fr.old .dt-nm, .dt-fr.old .dt-d, .dt-fr.old .dt-s { color: var(--w-ink-assist); }
.dt-fr.old svg { opacity: .45; }
.dt-sep { font-size: 12px; font-weight: 700; color: var(--w-ink-alt); padding: 14px 8px 4px; }
.dt-empty { color: var(--w-ink-assist); font-size: 13.5px; padding: 18px 8px; }
.dt-sec { padding: 4px 0 8px; border-radius: 12px; scroll-margin-top: 12px; transition: background .6s; }
.dt-sec.flash { animation: dtFlash 1.2s ease; }
@keyframes dtFlash { 0% { background: rgba(0, 102, 255, 0.10); } 100% { background: transparent; } }
.dt-sec-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 14px 8px 8px; margin-bottom: 2px; border-bottom: 1px solid var(--w-line-neutral); }
.dt-sec-h b { font-size: 15px; font-weight: 800; }
.dt-sec-h small { font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
.dt-sec-h small.ok { color: var(--w-green-text); } .dt-sec-h small.part { color: var(--w-orange-text); } .dt-sec-h small.none { color: var(--w-ink-assist); }
.dt-sec-h .dt-act { margin-left: auto; }
.dt-sec-h .dt-act + .dt-act { margin-left: 0; }
.dt-sec-ic { font-size: 14px; }
.dt-sec-h.solo b, .dt-sec-h.solo .dt-sec-ic { display: none; }
.dt-sec-h.solo { border-bottom: 1px solid var(--w-line-neutral); padding-top: 2px; min-height: 8px; }
.dt-sec[hidden] { display: none !important; }
.dt-sec .dt-fr { grid-template-columns: 1fr 92px 64px 30px 38px; }
.dt-old summary { cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); padding: 8px 8px 4px; list-style: none; }
.dt-old summary::-webkit-details-marker { display: none; }
.dt-old summary::before { content: '▸ '; }
.dt-old[open] summary::before { content: '▾ '; }
.dt-sec .dt-empty { padding: 10px 8px; font-size: 13px; }
@media (max-width: 760px) {
  .dt-sec .dt-fr { grid-template-columns: 1fr 26px; }
  .dt-sec-h .dt-act { margin-left: 0; }
  .dtree { grid-template-columns: 150px 1fr; gap: 8px; padding: 8px; border-radius: 18px; }
  .dt-ti { font-size: 12.5px; padding: 6px 5px; gap: 5px; }
  .dt-ti.l1 { padding-left: 8px; } .dt-ti.l2 { padding-left: 24px; font-size: 12.5px; }
  .dt-ti small { display: none; }
  .dt-fr { grid-template-columns: 1fr 26px; }
  .dt-fr .dt-d, .dt-fr .dt-s, .dt-fr .dt-del { display: none; }
  .dt-head { padding: 12px 12px 6px; } .dt-sum { margin-left: 0; } .dt-list { padding: 0 4px; }
  .dt-n { flex-wrap: wrap; row-gap: 3px; align-items: flex-start; }
  .dt-nm { white-space: normal; overflow: visible; word-break: keep-all; flex: 1 1 60%; }
  .dt-crumb .dt-crumb-sub { display: block; margin: 2px 0 0; }
}
@media (max-width: 520px) {
  .dtree { grid-template-columns: 124px 1fr; }
  .dt-ti.l2 { padding-left: 18px; }
}

/* 대메뉴 "계약 관리" 드롭다운 (2026-09-29 시안 B) */
.menu-tab.menu-group { display: inline-flex; align-items: center; gap: 5px; }
.menu-tab .car { font-size: 10px; opacity: .7; transition: transform .15s; }
.menu-tab.dd-open .car { transform: rotate(180deg); }
.menu-tab.dd-open:not(.on) { background: var(--w-fill); color: var(--w-ink); }
.menu-dd { position: fixed; z-index: 1000; background: #fff; border-radius: 14px; padding: 6px; width: 260px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(0, 0, 0, 0.04); animation: menuDdIn .12s ease; }
@keyframes menuDdIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.menu-dd-item { display: flex; gap: 10px; align-items: flex-start; width: 100%; text-align: left; border: 0; background: transparent;
  font: inherit; padding: 10px 12px; border-radius: 10px; cursor: pointer; color: var(--w-ink); }
.menu-dd-item:hover { background: var(--w-fill); }
.menu-dd-item.cur { background: var(--w-primary-bg); }
.menu-dd-item.cur b { color: var(--w-primary); }
.menu-dd-item .ic { font-size: 18px; line-height: 1.2; flex: none; }
.menu-dd-item .tx { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.menu-dd-item b { font-size: 14px; font-weight: 700; }
.menu-dd-item .tx > span { font-size: 12px; color: var(--w-ink-alt); }

/* 직접 재단·직접 가리기 창 아래 버튼 (2026-09-30: 여백이 없어 글자에 딱 붙어 보이던 것) */
.mask-btns button { border: 0; padding: 10px 18px; font-size: 14px; line-height: 1.3; font-weight: 700;
  border-radius: 12px; white-space: nowrap; cursor: pointer; font-family: inherit; }
.mask-btns button.cancel { background: var(--w-fill); color: var(--w-ink); }
.mask-btns button.cancel:hover { background: var(--w-fill-strong); }
.mask-btns button:disabled { opacity: .5; cursor: default; }

/* 새 곡 칸 — KOMCA 원문 붙여넣기 (2026-09-30) */
.newsong .ns-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.newsong .ns-paste-tog { border: 0; background: var(--w-primary-bg); color: var(--w-primary); font: inherit; font-size: 12.5px; font-weight: 700;
  border-radius: 999px; padding: 5px 11px; cursor: pointer; }
.newsong .ns-paste-tog:hover { background: rgba(0, 102, 255, 0.14); }
.newsong .ns-paste { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 8px; }
.newsong .ns-paste[hidden] { display: none; }
.newsong .ns-paste textarea { width: 100%; min-height: 110px; resize: vertical; border: 0; border-radius: 12px; background: var(--w-fill);
  padding: 10px 12px; font: inherit; font-size: 13px; line-height: 1.5; }
.ns-paste-act { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.newsong .ns-paste-go { border: 0; background: var(--w-primary); color: #fff; font: inherit; font-size: 13px; font-weight: 700; border-radius: 10px; padding: 8px 14px; cursor: pointer; }
.newsong .ns-paste-go:disabled { opacity: .5; }
.newsong .ns-paste-st { grid-column: 1 / -1; font-size: 12.5px; color: var(--w-green-text); font-weight: 600; }
.newsong .ns-paste-st:empty { display: none; }

/* KOMCA 회원이면 가입 서류 칸 숨김 (2026-09-30) */
.km-member #genKomcaBtn, .km-member #komcaPanel { display: none !important; }
.km-member-note { display: none; }
.km-member .km-member-note { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 14px; background: rgba(0, 191, 64, .08); }
.km-member-note b { font-size: 15px; font-weight: 600; color: #009632; }
.km-member-note span { font-size: 13px; color: var(--w-ink-neutral, rgba(55,56,60,.61)); }

/* 완료 줄 날인본 칸 (2026-09-30 시안 A-2): 날인본·완료일·✓·삭제가 모든 줄에서 같은 세로선에 */
.ct-done-line { gap: 12px; }
.ct-done-line .cdl-sig { order: 3; flex: none; width: 124px; height: 32px; border-radius: 10px; border: 0; padding: 0;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.ct-done-line .cdl-sig.has { background: rgba(0, 191, 64, .09); color: #009632; }
.ct-done-line .cdl-sig.has:hover { background: rgba(0, 191, 64, .15); }
.ct-done-line .cdl-sig.none { background: #fff; color: var(--w-ink-neutral, rgba(55,56,60,.61)); box-shadow: inset 0 0 0 1px var(--w-line); font-weight: 500; }
.ct-done-line .cdl-sig.none:hover { color: var(--w-ink, #171719); }
.ct-done-line .cdl-sig:disabled { opacity: .5; cursor: default; }
.ct-done-line .cdl-d { order: 4; width: 132px; text-align: right; white-space: nowrap; }
.ct-done-line .ct-del { margin-left: 0; }
@media (max-width: 640px) { .ct-done-line { flex-wrap: wrap; } .ct-done-line .cdl-d { width: auto; } }

/* ── 곡 정보: 평소엔 보기 모드, [수정]을 눌러야 칸이 열림 (2026-09-30) ───────── */
.se-edit-btn { margin-left: auto; display: none; align-items: center; gap: 5px; border: 0; cursor: pointer;
  background: #fff; color: var(--w-ink); box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral);
  border-radius: 10px; padding: 7px 14px; font-size: 14px; font-weight: 600; font-family: inherit; align-self: center; }
.se-edit-btn:hover { background: var(--w-fill); }
#songEditCard.se-view .se-edit-btn { display: inline-flex; }
#songEditCard.se-view h2 .engine-note { display: none; }
/* 보기 모드: 입력칸 테두리·흰 바탕을 없애 값만 보이게 */
#songEditCard.se-view .inline-form input[type="text"], #songEditCard.se-view .inline-form input[type="date"],
#songEditCard.se-view .se-f input { background: transparent; box-shadow: none; padding-left: 0; padding-right: 0; cursor: default; }
#songEditCard.se-view .se-f input { padding-top: 4px; padding-bottom: 4px; }
#songEditCard.se-view input:focus { box-shadow: none !important; background: transparent !important; }
#songEditCard.se-view input::placeholder { color: transparent; }
#songEditCard.se-view input[type="date"]::-webkit-calendar-picker-indicator { display: none; }
#songEditCard.se-view #seCreatorsBox .creator-line { grid-template-columns: 64px minmax(0, 1fr) 110px 60px; }
#songEditCard.se-view #seCreatorsBox .creator-line select { opacity: 1; color: var(--w-ink-alt); appearance: none; -webkit-appearance: none; }
#songEditCard.se-view .part-row input[type="checkbox"] { opacity: .75; }
#songEditCard.se-view .part-row .part-note:placeholder-shown { visibility: hidden; }
/* 보기 모드에서 숨기는 것: 저장·취소, 원문 붙여넣기, 저작자 추가·삭제, 참여 작가 추가·제외 */
#songEditCard.se-view #seSaveBtn, #songEditCard.se-view #seEditCancelBtn,
#songEditCard.se-view #sePasteBtn, #songEditCard.se-view #sePasteBox,
#songEditCard.se-view #seCreatorAddBtn, #songEditCard.se-view #seCreatorsBox .row-btn.del,
#songEditCard.se-view .se-part .row-btn.danger, #songEditCard.se-view .se-part > .form-row:last-child { display: none !important; }
/* 수정 모드에서는 [닫기] 대신 [저장][취소] */
#songEditCard:not(.se-view) #seCancelBtn { display: none; }
#songEditCard:not(.se-view) #songEditForm { box-shadow: inset 0 0 0 1.5px var(--w-primary); }
#songEditCard.se-view .part-row .part-note { border: 0; background: transparent; box-shadow: none; padding-left: 0; }

/* ── 지분확인서 넣기 (2026-09-30) — 수정 중에만 버튼, 확인 창 ───────────────── */
.se-split-btn { display: inline-flex; align-items: center; gap: 5px; border: 0; cursor: pointer; align-self: center;
  background: #fff; color: var(--w-primary); box-shadow: inset 0 0 0 1px rgba(0,102,255,.35);
  border-radius: 10px; padding: 7px 14px; font-size: 14px; font-weight: 600; font-family: inherit; white-space: nowrap; }
.se-split-btn:hover { background: rgba(0,102,255,.06); }
.se-split-btn:disabled { opacity: .6; cursor: progress; }
#songEditCard.se-view .se-split-btn { display: none; }
#songEditCard.se-drop #songEditForm { box-shadow: inset 0 0 0 2px var(--w-primary); background: rgba(0,102,255,.05); }
.se-split-note { margin: 4px 0 10px; padding: 10px 12px; border-radius: 10px; background: rgba(0,102,255,.07);
  color: #0050c8; font-size: 13.5px; line-height: 1.5; }
.se-split-note[hidden] { display: none; }

.ss-wrap { position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 9998; display: flex; align-items: flex-start;
  justify-content: center; overflow-y: auto; padding: 40px 16px; box-sizing: border-box; }
.ss-box { background: #fff; border-radius: 16px; box-shadow: 0 12px 36px rgba(0,0,0,.18); padding: 20px; width: 100%; max-width: 860px;
  box-sizing: border-box; font-size: 14px; color: var(--w-ink); }
.ss-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.ss-t { font-size: 17px; font-weight: 700; }
.ss-pill { font-size: 12.5px; font-weight: 600; border-radius: 8px; padding: 3px 8px; white-space: nowrap; }
.ss-pill.g { color: var(--w-green-text); background: var(--w-green-bg); }
.ss-pill.o { color: var(--w-orange-text); background: var(--w-orange-bg); white-space: normal; }
.ss-pill.gray { color: var(--w-ink-alt); background: var(--w-fill); }
.ss-file { margin-left: auto; font-size: 13px; color: var(--w-ink-alt); background: var(--w-fill); border-radius: 8px; padding: 4px 9px;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ss-photo { background: var(--w-orange-bg); color: #8A4E00; border-radius: 10px; padding: 10px 12px; font-size: 13.5px; line-height: 1.55; margin: 4px 0 12px; }
.ss-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13.5px; color: var(--w-ink-alt); margin: 6px 0 14px; }
.ss-meta b { color: var(--w-ink); font-weight: 600; }
.ss-list { border-top: 1px solid var(--w-line); }
.ss-row { display: grid; grid-template-columns: minmax(0, 1.5fr) auto 84px minmax(0, 1.2fr) 30px; gap: 10px; align-items: center;
  padding: 9px 4px; border-bottom: 1px solid var(--w-line-neutral, #F0F0F2); }
.ss-row.ss-head { font-size: 12.5px; color: var(--w-ink-alt); font-weight: 600; padding-top: 10px; padding-bottom: 8px; }
.ss-row.removed > :not(.ss-x) { opacity: .35; text-decoration: line-through; }
.ss-n { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ss-sub { font-size: 12px; color: var(--w-green-text); }
.ss-sub.gray { color: var(--w-ink-alt); }
.ss-sub.warn { color: var(--w-orange-text); }
.ss-in { width: 100%; box-sizing: border-box; border: 0; border-radius: 8px; padding: 7px 9px; font-size: 14px; font-family: inherit;
  box-shadow: inset 0 0 0 1px var(--w-line); background: #fff; outline: none; }
.ss-in:focus { box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.ss-in.warn, .ss-roles.warn { box-shadow: inset 0 0 0 1.5px #FFB84D; background: #FFFBF3; }
.ss-share { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.ss-roles { display: inline-flex; gap: 4px; border-radius: 8px; padding: 2px; }
.ss-role { border: 0; cursor: pointer; font-family: inherit; font-size: 12.5px; font-weight: 600; border-radius: 7px; padding: 4px 7px;
  background: var(--w-fill); color: var(--w-ink-alt); }
.ss-role.on { background: rgba(0,102,255,.1); color: var(--w-primary); }
.ss-m { display: flex; align-items: center; gap: 6px; min-width: 0; }
.ss-sel { min-width: 0; flex: 1; border: 0; border-radius: 8px; padding: 7px 8px; font-size: 13.5px; font-family: inherit;
  box-shadow: inset 0 0 0 1px var(--w-line); background: #fff; color: var(--w-green-text); font-weight: 600; }
.ss-sel.new { color: var(--w-orange-text); }
/* 영문 이름 첫 글자로만 짐작한 짝 — 사장님 확인 버튼 (2026-10-04) */
.ss-sure { flex: none; border: 0; cursor: pointer; font-family: inherit; font-size: 12.5px; font-weight: 600; border-radius: 8px; padding: 6px 9px;
  background: var(--w-orange-bg); color: var(--w-orange-text); white-space: nowrap; }
.ss-sure[hidden] { display: none; }
.ss-x { border: 0; background: none; cursor: pointer; font-size: 18px; color: rgba(55,56,60,.45); width: 30px; height: 30px; border-radius: 8px; }
.ss-x:hover { background: var(--w-fill); color: var(--w-ink); }
.ss-sum { display: flex; align-items: center; gap: 10px; justify-content: flex-end; padding: 12px 4px 0; }
.ss-sum b { font-size: 16px; font-variant-numeric: tabular-nums; }
.ss-sum .ok { color: var(--w-green-text); font-weight: 600; }
.ss-sum .bad { color: var(--w-orange-text); font-weight: 600; }
.ss-miss { margin-top: 12px; background: var(--w-orange-bg); color: #8A4E00; border-radius: 10px; padding: 10px 12px; font-size: 13.5px; line-height: 1.55; }
.ss-fill { margin-top: 12px; background: var(--w-fill); border-radius: 12px; padding: 12px 14px; }
.ss-fill .hd { font-weight: 600; margin-bottom: 6px; }
.ss-ck { display: flex; align-items: center; gap: 8px; padding: 3px 0; cursor: pointer; }
.ss-acts { display: flex; gap: 10px; justify-content: flex-end; align-items: center; margin-top: 18px; flex-wrap: wrap; }
.ss-note { margin-right: auto; font-size: 13px; color: var(--w-ink-alt); }
.ss-btn { border: 0; cursor: pointer; font-family: inherit; border-radius: 10px; padding: 9px 20px; font-size: 15px; font-weight: 600; }
.ss-btn.ghost { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); color: var(--w-ink); font-weight: 500; }
.ss-btn.blue { background: var(--w-primary); color: #fff; font-weight: 700; }
.ss-btn:disabled { opacity: .45; cursor: default; }
@media (max-width: 700px) {
  .ss-wrap { padding: 16px 12px; }
  .ss-row.ss-head { display: none; }
  .ss-row .ss-n { grid-area: n; } .ss-row .ss-share { grid-area: s; } .ss-row .ss-x { grid-area: x; }
  .ss-row .ss-roles { grid-area: r; } .ss-row .ss-m { grid-area: m; }
  .ss-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 76px 30px; grid-template-areas: "n n s x" "r m m m"; }
  .ss-file { margin-left: 0; }
}

/* ═══ 전곡 계약 작가 (2026-09-30 시안 A) ═══════════════════════════════════════
   작가 추가 [계약 형태] · 전곡 계약 정보 칸 / 계약 탭의 전곡 계약 카드·[계약 정보 수정] /
   '확인 필요' 줄 / 전체 관리곡 곡 카드의 전곡 줄. 시안 mk-* 부품을 ac-* 로 옮김 */
#dAllBox[hidden], #dAllHelp[hidden], #dAllPreview[hidden], #dTypeHelp[hidden], #dAliasHint[hidden],
#acEditPanel[hidden], #acReviewBox[hidden], #acNewBtn[hidden], #songsReview[hidden], #sePartHint[hidden],
#infoGroupRow[hidden], .ac-hist[hidden], .ac-link-hint[hidden] { display: none !important; }
/* 기본 정보 수정 — 팀 예명은 한 줄 전체 (예명|영문예명 · 주민번호|연락처 짝을 그대로 둔다) */
.info-card .inline-form #infoGroupRow { grid-column: 1 / -1; }

/* 작가 추가 — 계약 형태 타일 · 전곡 계약 정보 상자 */
.ac-full { grid-column: 1 / -1; }
.ac-tiles { display: flex; flex-wrap: wrap; gap: 8px; }
#directPane .ac-tile, .ac-edit .ac-tile { flex: 1 1 200px; display: flex; align-items: flex-start; gap: 10px; min-width: 0;
  background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); border-radius: 12px; padding: 12px 14px; cursor: pointer; }
#directPane .ac-tile.on, .ac-edit .ac-tile.on { background: var(--w-primary-bg); box-shadow: inset 0 0 0 1.5px var(--w-primary); }
#directPane .ac-tile.off, .ac-edit .ac-tile.off { opacity: .5; cursor: default; }
.ac-tile input[type="radio"] { appearance: none; -webkit-appearance: none; flex: none; width: 18px; height: 18px; margin: 1px 0 0;
  border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-line); }
.ac-tile input[type="radio"]:checked { box-shadow: inset 0 0 0 2px var(--w-primary);
  background: radial-gradient(circle, var(--w-primary) 3.5px, #fff 4px); }
.ac-tt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ac-tt b { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink); }
.ac-tt small { font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); font-weight: 400; }
/* 좁은 화면에서 '늘/면'처럼 낱말 가운데서 꺾이지 않게 (.lh-fm-lb small 과 같은 방식) */
.ac-tt b, .ac-tt small { word-break: keep-all; overflow-wrap: anywhere; }
.ac-step { background: var(--w-fill); border-radius: 16px; padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ac-step-head { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; font-size: 15px; line-height: 22px; }
.ac-step-head .ad-step-no { width: 24px; height: 24px; background: var(--w-ink); }
.ac-step-head .h2desc { margin-left: 0; }
.ac-f { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ac-lab { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink-neutral); }
.ac-opt { font-weight: 400; color: var(--w-ink-alt); }
.ac-dates { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.ac-step input[type="date"], .ac-edit input[type="text"] { width: 100%; min-width: 0; box-sizing: border-box; background: #fff; border: 0; border-radius: 12px; padding: 12px;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--w-line-neutral); font-size: 16px; line-height: 24px; font-family: inherit; }
.ac-step input[type="date"]:focus, .ac-edit input[type="text"]:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
#directPane .ac-step input[type="text"] { width: 100%; min-width: 0; box-sizing: border-box; }
.ac-step .ck { align-self: flex-start; }
.ac-edit .ck input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--w-primary); }
.ac-rate { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ac-rate .rate-chip { white-space: nowrap; }
.ac-filerow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; min-width: 0; }
.ac-filebtn { border: 0; background: #fff; box-shadow: inset 0 0 0 1px var(--semantic-line-normal-neutral); border-radius: 10px;
  padding: 9px 14px; font: inherit; font-size: 14px; font-weight: 600; color: var(--w-ink); cursor: pointer; }
.ac-filebtn:hover { background: var(--w-fill); }
.ac-filerow .form-help { margin-top: 0; min-width: 0; overflow-wrap: anywhere; }
.ac-result { display: flex; gap: 8px; align-items: flex-start; border-radius: 12px; padding: 12px 14px;
  background: linear-gradient(rgba(0, 102, 255, .05), rgba(0, 102, 255, .05)), #fff;
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); font-size: 14px; line-height: 22px; color: var(--w-ink-neutral); }
.ac-result svg { color: var(--w-primary); flex: none; margin-top: 1px; }
.ac-result b { color: var(--w-ink); font-weight: 600; }
.ac-result > span { min-width: 0; overflow-wrap: anywhere; }
/* 작가 추가 미리보기 — 표기가 이미 다른 작가 것일 때 (추가가 막힌다) */
.ac-result.warn { background: var(--w-orange-bg); box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .3); }
.ac-result.warn svg { color: var(--w-orange-text); }
#directPane .bulk-help.ac-help { margin: 4px 0 0; font-size: 13px; line-height: 18px; color: var(--w-ink-alt); }

/* 계약 탭 — 전곡 계약 카드 */
.hbtn.ac-soon { opacity: .45; cursor: default; }
/* 전곡 작가는 [새 계약 만들기]·[부속서]가 숨어 '.hbtn.ct-new + .hbtn'(6px)만 남는다 → 첫 버튼을 오른쪽으로 */
#acNewBtn { margin-left: auto; }
.hbtn.ct-new.ac-soon:hover { background: var(--w-primary); }
.ac-sl { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; padding: 8px 2px;
  border-top: 1px solid var(--w-line-alt); font-size: 13.5px; line-height: 20px; color: var(--w-ink); }
.ct-files-head + .ac-sl { border-top: 0; }
.ac-sl-t { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.ac-sl-t b { font-weight: 700; }
.ac-sl-m { color: var(--w-ink-alt); font-size: 12.5px; margin-left: 4px; }
.ac-sl-d { font-size: 12px; color: var(--w-ink-alt); }
.ac-sl.ac-excl .ac-sl-t { opacity: .5; }
.ac-sl-sep { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--w-ink-alt); padding: 12px 2px 4px;
  border-top: 1px solid var(--w-line-neutral); margin-top: 2px; }
.ac-more { padding: 8px 2px 2px; border-top: 1px solid var(--w-line-alt); }
.ac-more .hc-all svg { transition: transform .15s; }
.ac-more .hc-all.open svg { transform: rotate(-90deg); }
.ac-cred { display: inline-block; background: var(--w-fill); border-radius: 6px; padding: 0 6px; font-size: 12px; line-height: 18px;
  color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.row-btn.ac-excl-btn { flex: none; margin-left: auto; border: 0; background: transparent; box-shadow: inset 0 0 0 1px rgba(229, 34, 34, .28);
  color: var(--w-red-text); font-size: 12.5px; line-height: 18px; font-weight: 600; padding: 4px 10px; border-radius: 8px; cursor: pointer; }
.row-btn.ac-excl-btn:hover { background: var(--w-red-bg); }
.ac-item .ct-files .ct-btn { margin-top: 6px; }
.ct-files .ct-files-sig { margin-top: 8px; }   /* 체결 지난 계약의 날인본 올리기 (2026-10-14) */
.ac-hist { display: flex; flex-direction: column; gap: 2px; background: #fff; border-radius: 12px; padding: 10px 12px; margin-top: 8px;
  font-size: 12.5px; line-height: 18px; color: var(--w-ink-neutral); }
.ac-hist-d { display: inline-block; min-width: 76px; color: var(--w-ink-alt); font-variant-numeric: tabular-nums; }
.ac-item .ct-actions { justify-content: flex-end; }

/* '확인 필요' 줄 (계약 탭 카드 위 · 전체 관리곡 머리) */
.ac-review { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; background: #fff; border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .35); padding: 10px 14px; margin: 0 0 12px; font-size: 13.5px; line-height: 20px; }
.ac-rv-t { flex: 1 1 240px; min-width: 0; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.ac-rv-t b { color: var(--w-ink); font-weight: 600; }
.ac-rv-btns { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; margin-left: auto; }
.ac-rv-btns .row-btn { margin-left: 0; padding: 6px 12px; font-size: 13px; }
.ac-rv-btns .ct-skip { margin-left: 0; }
.ac-rv-list { display: flex; flex-direction: column; margin: -4px 0 12px; }
.ac-rv-list .ac-review { margin: 0 0 8px; box-shadow: inset 0 0 0 1px var(--w-line); }
.ac-rv-more { font-size: 12.5px; color: var(--w-ink-alt); margin: -6px 2px 12px; }

/* 작가 목록 — 이름 옆 '전곡' */
.al-table .ac-al-badge { display: inline-block; white-space: nowrap; margin-left: 8px; vertical-align: 1px; }

/* 전체 관리곡 — 곡 카드의 전곡 줄 · 제외 줄 */
.ac-alias { font-size: 12px; line-height: 16px; color: var(--w-ink-alt); letter-spacing: 0.0252em; }
.ac-basis { flex: 1 1 170px; min-width: 0; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.se-part .row-btn.ac-excl-btn { margin-left: auto; }
.se-part .part-row .ct-skip { flex: none; margin-left: auto; }
.part-row.ac-excl > :not(.ct-skip):not(.wbadge) { opacity: .5; }
.ac-part-hint { border-top: 1px solid var(--w-line-neutral); padding: 10px 0 2px; font-size: 13px; line-height: 18px; color: var(--w-ink-alt); }
.ac-link-hint { font-size: 13px; line-height: 20px; font-weight: 600; color: var(--w-primary); }

/* 좁은 화면(≈560px) — 긴 이름·칩이 넘치지 않게, 작가 상세 머리 KPI 는 이름 아래로 */
#page-artist-docs .ah-name-row { flex-wrap: wrap; row-gap: 6px; }
#page-artist-docs .ah-mid .chips { flex-wrap: wrap; gap: 6px 10px; }
#contractCard.ac-all #contractsBox { grid-template-columns: repeat(auto-fit, minmax(min(460px, 100%), 1fr)); }
#page-songs .pg-head { flex-wrap: wrap; row-gap: 6px; }
#page-songs .al-search-wrap, #page-songs .al-search { max-width: 100%; }
@media (max-width: 760px) {
  #page-artist-docs .ah-hero { flex-wrap: wrap; row-gap: 12px; }
  #page-artist-docs .ah-mid { flex: 1 1 calc(100% - 64px); }
  #page-artist-docs .ah-kpis { flex: 1 1 100%; gap: 20px; }
  #page-artist-docs .ah-kpi { padding-left: 20px; }
  #page-artist-docs .ah-kpi:first-child { padding-left: 0; }
  .ac-step { padding: 16px; }
}
/* 전곡 계약 수정 패널 (계약 탭 왼쪽 칸) */
.ac-edit { max-width: 760px; }
.ac-edit .ac-btns { display: flex; gap: 8px; align-items: center; margin-top: 0; }
.ac-edit .ac-btns .save, .ac-edit .ac-btns .cancel { border: 0; border-radius: 10px; padding: 9px 20px; font-size: 15px; line-height: 22px; font-weight: 700; }
/* 저장은 곡별 [계약 정보 수정]과 같은 파란색 — .form-btns .save(style.css 옛 남색)보다 앞서게 */
.ac-edit .ac-btns .save { background: var(--w-primary); color: #fff; }
.ac-edit .ac-btns .save:hover { background: var(--w-primary-strong); }
.ac-edit .ac-btns .cancel { background: #fff; color: var(--w-ink); box-shadow: inset 0 0 0 1px var(--w-line); font-weight: 600; }
.ac-edit .form-err { margin-top: -6px; }
.ac-songs .empty.small { padding: 4px 2px; }
.part-row.ac-part .ck { cursor: default; }

/* ═══ 워너 전달 (2026-10-01 시안 A) ═══════════════════════════════════════════
   계약 관리 ▾ → 🌏 워너 전달 화면 · [워너 목록 만들기] 미리보기 · [지난 파일] /
   전체 관리곡 곡 카드의 코드 칸·관리 작가 지분 합계 / 작가 기본 정보의 IPI·소속 단체. 시안 mk-* 부품을 wcm-* 로 옮김 */
#wcmChk[hidden], #seWcmSum[hidden], .wcm-err[hidden] { display: none !important; }
#page-wcm .pg-head { flex-wrap: wrap; row-gap: 10px; }
#page-wcm .pg-head .h2sub { flex: 1 1 220px; min-width: 0; }
#page-wcm .pg-head .hbtn { display: inline-flex; align-items: center; }
#page-wcm .pg-head .hbtn svg { margin-right: 5px; flex: none; }
#page-wcm .pg-head .hbtn:disabled { opacity: .6; cursor: wait; }
.wcm-muted { color: var(--w-ink-alt); font-size: 13px; }

/* 빨간 경고 · 안내 상자 */
.wcm-alert { display: flex; gap: 10px; align-items: flex-start; background: var(--w-red-bg); border-radius: 14px;
  padding: 12px 16px; margin: 0 0 14px; font-size: 14px; line-height: 21px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wcm-alert svg { color: var(--w-red-text); flex: none; margin-top: 1px; }
.wcm-alert b { color: var(--w-red-text); font-weight: 700; font-size: 15px; }
.wcm-alert.soft { background: var(--w-orange-bg); }
.wcm-alert.soft svg, .wcm-alert.soft b { color: var(--w-orange-text); }
.wcm-info { display: flex; gap: 10px; align-items: flex-start; border-radius: 14px; padding: 12px 16px; margin: 0 0 16px;
  background: linear-gradient(rgba(0, 102, 255, .05), rgba(0, 102, 255, .05)), #fff;
  box-shadow: inset 0 0 0 1px var(--semantic-line-normal-alternative); font-size: 13.5px; line-height: 21px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wcm-info svg { color: var(--w-primary); flex: none; margin-top: 1px; }
.wcm-info b { color: var(--w-ink); font-weight: 600; }
.wcm-info .hc-all { padding: 0; margin-left: 2px; }

/* 요약 카드 3장 */
.wcm-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 14px; }
.wcm-sum:empty { display: none; }
.wcm-sc { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; text-align: left; border: 0;
  cursor: pointer; font-family: inherit; background: var(--w-fill); border-radius: 16px; padding: 16px 18px; color: var(--w-ink); }
.wcm-sc:hover { box-shadow: inset 0 0 0 1px var(--w-line); }
.wcm-sc .k { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink-neutral); }
.wcm-sc .n { display: flex; align-items: baseline; gap: 2px; font-size: 28px; line-height: 36px; font-weight: 700; letter-spacing: -0.0236em; }
.wcm-sc .n small { font-size: 14px; font-weight: 500; color: var(--w-ink-alt); }
.wcm-sc .d { font-size: 13px; line-height: 18px; color: var(--w-ink-alt); }
.wcm-sc.blue .n { color: var(--w-primary); }
.wcm-sc.warn .n { color: var(--w-orange-text); }

/* 보내기 전 확인 — 할 일 목록 */
.wcm-chk h2 { flex-wrap: wrap; row-gap: 2px; }
.wcm-ci { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px 10px; padding: 10px 0; border-top: 1px solid var(--w-line-alt);
  font-size: 14px; line-height: 20px; color: var(--w-ink-neutral); }
.wcm-chk h2 + .wcm-ci { border-top: 0; padding-top: 2px; }
.wcm-ci .wbadge { margin-top: 1px; }
.wcm-ci-t { flex: 1 1 240px; min-width: 0; overflow-wrap: anywhere; }
.wcm-ci-t b { color: var(--w-ink); font-weight: 600; margin-right: 4px; }
.wcm-ci-btns { flex: none; margin-left: auto; display: inline-flex; align-items: center; gap: 10px; }
.wcm-ci .row-btn { margin-left: 0; padding: 6px 12px; font-size: 13px; white-space: nowrap; }
.wcm-ci .hc-all { padding: 0; white-space: nowrap; }
.wcm-ci-foot { border-top: 1px solid var(--w-line-neutral); padding: 10px 0 0; font-size: 13px; line-height: 21px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
/* 정할 것 (사장님 확인 항목) — [고치기] · [확인 완료], 확인 완료한 것은 아래 '확인한 것'에 접어 둔다 (2026-10-02) */
.wcm-ci .wcm-oc-ok { color: var(--w-primary); }
.wcm-ci.wcm-ci-done { color: var(--w-ink-alt); }
.wcm-ci.wcm-ci-done .wcm-ci-t b { color: var(--w-ink-neutral); }
/* 확인한 것 — 확인 완료한 정할 것 + [확인했어요]로 둔 알림, 카드 맨 아래 조용한 한 줄 '확인한 것 n건 [보기]' (2026-10-03) */
.wcm-ack { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; border-top: 1px solid var(--w-line-alt); padding: 8px 0 2px;
  font-size: 13px; line-height: 20px; color: var(--w-ink-alt); }
.wcm-ci-foot + .wcm-ack { border-top: 0; }
.wcm-ack > .hc-all { padding: 0; font-size: 13px; }
.wcm-ack > .wcm-ci { flex: 1 1 100%; }
/* 곡 카드 · 작가 정보 안의 정할 것 안내 */
.wcm-oc-box { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 12px; }
.wcm-oc-box[hidden] { display: none; }
.wcm-oc-note { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px 10px; padding: 10px 12px; border-radius: 12px;
  background: var(--w-orange-bg); font-size: 13.5px; line-height: 20px; color: var(--w-ink-neutral); }
.wcm-oc-note .wbadge { flex: none; margin-top: 1px; }
.wcm-oc-t { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.wcm-oc-t b { color: var(--w-ink); font-weight: 600; margin-right: 4px; }
.wcm-oc-note .row-btn { flex: none; margin-left: auto; padding: 5px 12px; font-size: 13px; white-space: nowrap; background: #fff; }

/* 곡 표 — 상태 · 곡 · 관리 작가와 지분 · O열 문구와 문제 · 버튼 */
.wcm-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.wcm-wt { font-size: 14px; line-height: 20px; color: var(--w-ink-neutral); }
.wcm-wh, .wcm-wr { display: grid; grid-template-columns: 92px minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1.4fr) 92px; gap: 12px; align-items: start; }
.wcm-wh { padding: 12px 0 8px; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .02em; color: var(--w-ink-alt);
  border-bottom: 1px solid var(--w-line); }
.wcm-wr { padding: 12px 0; border-bottom: 1px solid var(--w-line-alt); }
.wcm-wr.wcm-blocked { margin: 0 -10px; padding-left: 10px; padding-right: 10px; border-radius: 10px; background: rgba(255, 66, 66, .05); }
.wcm-wr.wcm-rev { color: var(--w-ink-alt); }
.wcm-st { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.wcm-song { min-width: 0; }
.wcm-song b { display: block; font-weight: 600; color: var(--w-ink); overflow-wrap: anywhere; }
.wcm-song small { display: block; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wcm-ws { min-width: 0; overflow-wrap: anywhere; }
.wcm-ws b { font-weight: 600; color: var(--w-ink); font-variant-numeric: tabular-nums; }
.wcm-ws i { font-style: normal; font-size: 12.5px; color: var(--w-ink-alt); }
.wcm-ws ins { text-decoration: none; background: rgba(255, 146, 0, .16); border-radius: 4px; padding: 0 3px; }
.wcm-ws del.wcm-rm { color: var(--w-red-text); text-decoration: line-through; text-decoration-thickness: 1px; }
.wcm-tot s { color: var(--w-ink-alt); }
.wcm-tot { display: block; margin-top: 2px; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); }
.wcm-tot b { font-size: 13px; }
.wcm-iss { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px; min-width: 0; }
.wcm-o { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; line-height: 16px; padding: 2px 6px; border-radius: 6px;
  background: var(--w-fill); color: var(--w-ink-neutral); overflow-wrap: anywhere; max-width: 100%; box-sizing: border-box; }
.wcm-o.y { background: #FFF3A6; color: #5C4B00; }
.wcm-o.o { background: #FFE0B8; color: #7A4300; }
.wcm-iss em { flex-basis: 100%; font-style: normal; font-size: 13px; line-height: 18px; color: var(--w-orange-text); overflow-wrap: anywhere; }
.wcm-iss em.red { color: var(--w-red-text); font-weight: 600; }
.wcm-iss em.ok { color: var(--w-green-text); }
.wcm-iss em.own { font-weight: 600; }
.wcm-iss q { flex-basis: 100%; quotes: none; font-size: 13px; line-height: 19px; color: var(--w-ink); overflow-wrap: anywhere; }
.wcm-go { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
.wcm-go .row-btn { margin-left: 0; padding: 6px 12px; font-size: 13px; white-space: nowrap; }
.wcm-go .hc-all { padding: 0; white-space: nowrap; }
.wcm-wmore { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 10px 0; border-bottom: 1px solid var(--w-line-alt);
  font-size: 13px; line-height: 19px; color: var(--w-ink-alt); }
.wcm-wmore .hc-all { padding: 0; }
.wcm-wmore span { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.wcm-wfoot { padding: 10px 0 0; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wcm-tcard > .empty { padding: 18px 4px; }
/* 워너 질문 [답 쓰기] — 줄 아래 한 칸 통째로 */
.wcm-ans { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; background: var(--w-fill);
  border-radius: 12px; padding: 10px 12px; }
.wcm-ans .wcm-ans-k { font-size: 13px; font-weight: 600; color: var(--w-ink-neutral); }
.wcm-ans input[type="text"] { flex: 1 1 260px; min-width: 0; border: 0; border-radius: 10px; background: #fff;
  box-shadow: inset 0 0 0 1.5px var(--w-primary); padding: 9px 12px; font-size: 14px; font-family: inherit; }
.wcm-ans .row-btn { margin-left: 0; padding: 7px 14px; font-size: 13px; }
.wcm-ans .save { border: 0; padding: 7px 16px; font-size: 13px; font-weight: 700; border-radius: 8px; background: var(--w-primary); color: #fff; cursor: pointer; }
.wcm-ans .save:hover { background: var(--w-primary-strong); }
.wcm-ans .save:disabled { opacity: .6; cursor: wait; }
.wcm-ans .form-help { flex-basis: 100%; margin: 0; font-size: 12.5px; color: var(--w-ink-alt); }

/* [워너 목록 만들기] 미리보기 · [지난 파일] 창 */
.modal.bulk-modal.wcm-pv { max-width: 760px; max-height: 88vh; }
.wcm-pv-lead { margin: -8px 0 14px; font-size: 14px; line-height: 20px; color: var(--w-ink-alt); }
.wcm-pv-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 6px; }
.wcm-pv-nums > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; background: var(--w-fill); border-radius: 12px; padding: 10px 12px; }
.wcm-pv-nums b { font-size: 20px; line-height: 28px; font-weight: 700; color: var(--w-ink); }
.wcm-pv-nums span { font-size: 12.5px; line-height: 17px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wcm-pv-nums .red b { color: var(--w-red-text); }
.wcm-pv-sec { padding: 10px 0; border-top: 1px solid var(--w-line-alt); font-size: 14px; line-height: 21px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wcm-pv-ch { display: block; }
.wcm-pv-ch + .wcm-pv-ch { margin-top: 2px; }
.wcm-pv-own { color: var(--w-orange-text); }
.wcm-pv-ch .wcm-pv-oc { font-style: normal; color: var(--w-orange-text); margin-left: 6px; } /* 변경 줄 끝 '정할 것: …' */
.wcm-pv-sec > b:first-child { display: block; color: var(--w-ink); font-weight: 600; margin-bottom: 2px; }
.wcm-xl { overflow-x: auto; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--w-line); margin: 8px 0 2px; max-width: 100%; }
.wcm-xlt { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 12px; line-height: 16px; color: #1f1f1f; }
.wcm-xlt th, .wcm-xlt td { border: 1px solid #D9D9D9; padding: 4px 6px; text-align: left; vertical-align: top; white-space: nowrap; }
.wcm-xlt th { background: #DDEBF7; font-weight: 600; }
.wcm-xlt td.num { text-align: right; font-variant-numeric: tabular-nums; }
/* K(관리 작가)·O(비고) 칸은 줄바꿈 — 넓은 화면에서 O열까지 한눈에 */
.wcm-xlt td:nth-child(4), .wcm-xlt td:nth-child(6) { white-space: normal; min-width: 130px; }
.wcm-xl-hint { display: none; margin: 0 0 4px; font-size: 12px; color: var(--w-ink-alt); font-weight: 400; }
.wcm-xlt tr.y td { background: #FFFF99; }
.wcm-xlt td.o, .wcm-xlt tr.y td.o { background: #FFC58A; }
.wcm-xlt tr.g td { background: #E7E6E6; color: #7F7F7F; }
.wcm-file { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; background: var(--w-fill); border-radius: 12px; padding: 12px 14px; margin: 12px 0 4px; }
.wcm-file > svg { color: var(--w-green-text); flex: none; }
.wcm-file .nm { flex: 1 1 240px; min-width: 0; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink); overflow-wrap: anywhere; }
.wcm-file .nm small { display: block; font-size: 12.5px; line-height: 18px; font-weight: 400; color: var(--w-ink-alt); }
.wcm-file .hbtn { margin-left: 0; display: inline-flex; align-items: center; gap: 5px; padding: 9px 16px; font-size: 14px; white-space: nowrap; }
.wcm-file .hbtn:disabled { opacity: .6; cursor: default; }
.wcm-pv-got { min-height: 0; margin: 0 0 8px; font-size: 13px; line-height: 19px; font-weight: 600; color: var(--w-green-text); overflow-wrap: anywhere; }
.wcm-pv-got:empty { display: none; }
.wcm-mail { border-radius: 12px; box-shadow: inset 0 0 0 1px var(--w-line); padding: 12px 14px; margin: 12px 0; }
.wcm-mail-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; font-weight: 600; color: var(--w-ink); }
.wcm-mail-h .row-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; font-size: 13px; }
.wcm-mail-s { margin: 8px 0 0; font-size: 13px; line-height: 19px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wcm-mail-s b { color: var(--w-ink-alt); font-weight: 600; margin-right: 6px; }
.wcm-mail-s .hc-all { padding: 0; margin-left: 4px; }
.wcm-mail pre { margin: 8px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--w-ink-neutral); background: var(--w-fill); border-radius: 10px; padding: 12px; max-height: 260px; overflow-y: auto; }
.wcm-steps { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 4px 0 0; font-size: 13.5px; line-height: 20px; color: var(--w-ink-neutral); }
.wcm-steps span { display: inline-flex; align-items: center; gap: 6px; }
.wcm-steps i { font-style: normal; width: 20px; height: 20px; border-radius: 50%; background: var(--w-ink); color: #fff; font-size: 12px;
  font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.wcm-pv-err { margin-top: 8px; }
.wcm-pv-err:empty { display: none; }
.bulk-btns button.wcm-primary { background: var(--w-primary); color: #fff; font-weight: 700; box-shadow: none; }
.bulk-btns button.wcm-primary:hover { background: var(--w-primary-strong); }
.bulk-btns button.wcm-primary:disabled { opacity: .5; cursor: default; }
.wcm-pv-foot { margin: 10px 0 0; font-size: 12.5px; line-height: 19px; color: var(--w-ink-alt); }
.wcm-send { padding: 12px 0; border-top: 1px solid var(--w-line-alt); font-size: 14px; line-height: 20px; color: var(--w-ink-neutral); }
.wcm-pv .bulk-head + .wcm-send { border-top: 0; padding-top: 0; }
.wcm-send-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.wcm-send-h b { color: var(--w-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.wcm-send-l { flex: 1 1 200px; min-width: 0; color: var(--w-ink-alt); font-size: 13px; overflow-wrap: anywhere; }
.wcm-send-f { display: flex; align-items: flex-start; gap: 6px; margin-top: 4px; font-size: 13px; overflow-wrap: anywhere; }
.wcm-send-f svg { width: 16px; height: 16px; color: var(--w-green-text); flex: none; margin-top: 2px; }
.wcm-send-f span { min-width: 0; }
.wcm-send-n { margin-top: 2px; font-size: 12.5px; color: var(--w-ink-alt); overflow-wrap: anywhere; }

/* 곡 카드 — 코드 칸 · 워너 전달 상태 · 관리 작가 지분 합계 */
#songEditForm > .se-grid.wcm-codes { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.wcm-codes .se-f { min-width: 0; }
.wcm-codes input.wcm-bad, #songEditCard.se-view .wcm-codes input.wcm-bad { box-shadow: inset 0 0 0 1.5px var(--w-red); }
.wcm-wv { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 4px 0; font-size: 14px; line-height: 20px; font-weight: 400; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wcm-wv .hc-all { padding: 0; }
.wcm-err { display: block; margin-top: 2px; font-size: 13px; line-height: 18px; font-weight: 500; color: var(--w-red-text); overflow-wrap: anywhere; }
#seCreatorsBox .creator-line.wcm-ctl .cr-share { color: var(--w-primary); }
#seCreatorsBox .creator-line.wcm-out .cr-name, #seCreatorsBox .creator-line.wcm-out .cr-share { color: var(--w-ink-alt); font-weight: 500; }
.wcm-sumline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; border-top: 1px solid var(--w-line); margin: 0 -12px;
  padding: 10px 12px 8px; font-size: 13px; line-height: 20px; color: var(--w-ink-alt); }
.wcm-sumline b { font-size: 15px; font-weight: 700; color: var(--w-primary); font-variant-numeric: tabular-nums; }
.wcm-sumline .wcm-ok { color: var(--w-green-text); font-weight: 600; }
.wcm-sumline .wcm-warn { color: var(--w-orange-text); font-weight: 600; }
.wcm-sumline .wcm-k { color: var(--w-ink-neutral); font-weight: 600; }
.wcm-sumline .wcm-err { flex-basis: 100%; }

/* 작가 기본 정보 — IPI · 소속 단체 */
.info-read .ir-v .wcm-ipi-bad { display: inline-block; margin-left: 4px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--w-orange-text); }
.info-read .ir-v { font-variant-numeric: tabular-nums; }
.info-card .inline-form .wcm-ipi-row { grid-column: 1 / -1; }
.info-card .inline-form .form-row textarea.wcm-ipi-ta, .info-card .inline-form .form-row select.wcm-society {
  width: 100%; min-width: 0; box-sizing: border-box; background: #fff; border: 0; border-radius: 12px;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral);
  padding: 12px 16px; font-size: 16px; line-height: 24px; font-family: inherit; font-variant-numeric: tabular-nums; }
.info-card .inline-form .form-row textarea.wcm-ipi-ta { resize: vertical; min-height: 72px; }
.info-card .inline-form .form-row textarea.wcm-ipi-ta:focus, .info-card .inline-form .form-row select.wcm-society:focus { box-shadow: inset 0 0 0 1.5px var(--w-primary); outline: none; }
.form-help.wcm-warn { color: var(--w-orange-text); }

/* 좁은 화면 */
@media (max-width: 900px) {
  .wcm-wh { display: none; }
  .wcm-wr { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "st go" "song song" "ws ws" "iss iss"; gap: 6px 10px; }
  .wcm-st { grid-area: st; flex-direction: row; flex-wrap: wrap; }
  .wcm-song { grid-area: song; }
  .wcm-ws { grid-area: ws; }
  .wcm-iss { grid-area: iss; }
  .wcm-go { grid-area: go; flex-direction: row; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
}
@media (max-width: 760px) {
  .wcm-sum { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .wcm-pv-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* 답 칸 — 입력은 한 줄 통째로, 저장·닫기는 그 아래 */
  .wcm-ans input[type="text"] { flex-basis: 100%; }
  .wcm-xl-hint { display: block; }
  .wcm-ci-btns { margin-left: 0; }
  .modal.bulk-modal.wcm-pv { padding: 20px 16px 18px; }
}
.wcm-modal-back { padding: 16px; }
.wcm-send.wcm-send-imp .wcm-send-l { color: var(--w-ink-neutral); }

/* ── 워너 전달 고치기 막대 (2026-10-02 시안 B — 사장님 "시작하기 누르면 쭉쭉쭉") ──────────────────
   곡 카드 맨 위 #seWcmFix · [저장] 바로 위 한 줄 #seWcmFixMini · 작가 정보 탭 위 #aiWcmFix.
   파랑 = 고칠 차례 · 주황 = 저장했는데 아직 · 초록 = 고쳐짐 · 진한 초록 = 이 항목 다 끝남. 보내기 전 확인 목록 모양은 그대로. */
#seWcmFix[hidden], #seWcmFixMini[hidden], #aiWcmFix[hidden] { display: none !important; }
.wcm-info.wcm-fix-bar, .wcm-alert.wcm-fix-bar { flex-direction: column; align-items: stretch; gap: 10px; margin: 0; padding: 14px 16px; min-width: 0; }
.wcm-info.wcm-fix-bar { box-shadow: inset 0 0 0 1.5px var(--w-primary-line), 0 4px 12px rgba(23, 23, 23, .06); }
.wcm-info.wcm-fix-bar.wcm-fix-ok { background: linear-gradient(var(--w-green-bg), var(--w-green-bg)), #fff;
  box-shadow: inset 0 0 0 1.5px rgba(0, 150, 50, .35), 0 4px 12px rgba(23, 23, 23, .06); }
.wcm-alert.soft.wcm-fix-bar { box-shadow: inset 0 0 0 1.5px rgba(209, 118, 0, .4), 0 4px 12px rgba(23, 23, 23, .06); }
.wcm-info.wcm-fix-bar.wcm-fix-all { background: linear-gradient(rgba(0, 191, 64, .16), rgba(0, 191, 64, .16)), #fff;
  box-shadow: inset 0 0 0 2px rgba(0, 150, 50, .45), 0 4px 12px rgba(23, 23, 23, .06); }
#aiWcmFix.wcm-fix-bar { margin: 0 0 14px; }
/* 곡 카드는 열 때 style="display:block" 이라 gap 이 없다 — 막대 아래 간격을 따로 */
#songEditCard > #seWcmFix.wcm-fix-bar { margin: 0 0 14px; }
/* 넓은 화면은 카드를 내려도 막대가 위에 붙어 있게 (폰에선 막대가 길어 화면을 가리므로 붙이지 않음) */
@media (min-width: 641px) {
  #songEditCard > #seWcmFix.wcm-fix-bar { position: sticky; top: 8px; z-index: 5; }
}
.wcm-fix-bar .hc-all svg { color: currentColor; }
.wcm-fix-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 14px; line-height: 20px; color: var(--w-ink-neutral); min-width: 0; }
.wcm-fix-top .wbadge { flex: none; }
.wcm-fix-name { font-weight: 700; color: var(--w-ink); min-width: 0; overflow-wrap: anywhere; }
.wcm-fix-pos { font-weight: 700; color: var(--w-primary-strong); font-variant-numeric: tabular-nums; white-space: nowrap; }
.wcm-fix-ok .wcm-fix-pos, .wcm-fix-all .wcm-fix-pos { color: var(--w-green-text); }
.wcm-alert .wcm-fix-pos { color: var(--w-orange-text); }
.wcm-fix-cnt { margin-left: auto; font-size: 13px; color: var(--w-ink-alt); white-space: nowrap; }
.wcm-fix-cnt em { font-style: normal; font-weight: 600; color: var(--w-green-text); }
.wcm-fix-cnt em.sk { color: var(--w-orange-text); }
/* 곳마다 점 ●●○○ — 많으면 막대 하나 */
.wcm-fix-dots { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; }
.wcm-fix-dots i { width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1.5px #C9CACD;
  display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-size: 10px; line-height: 1; font-weight: 800; color: #fff; }
.wcm-fix-dots i.ok { background: var(--w-green); box-shadow: none; }
.wcm-fix-dots i.ok::before { content: "✓"; }
.wcm-fix-dots i.now { background: var(--w-primary); box-shadow: 0 0 0 3px rgba(0, 102, 255, .18); }
.wcm-fix-dots i.bad { background: var(--w-orange); box-shadow: 0 0 0 3px rgba(255, 146, 0, .2); }
.wcm-fix-dots i.bad::before { content: "!"; }
.wcm-fix-dots i.skip { box-shadow: inset 0 0 0 1.5px var(--w-orange); color: var(--w-orange-text); }
.wcm-fix-dots i.skip::before { content: "–"; }
.wcm-fix-meter { flex: 0 1 140px; min-width: 80px; height: 6px; border-radius: 999px; background: var(--w-fill-strong); overflow: hidden; }
.wcm-fix-meter i { display: block; height: 100%; border-radius: inherit; background: var(--w-green); }
/* 이 곳에서 고칠 것 */
.wcm-fix-msg { display: flex; gap: 8px; align-items: flex-start; font-size: 15px; line-height: 22px; color: var(--w-ink); min-width: 0; overflow-wrap: anywhere; }
.wcm-fix-msg > svg { flex: none; margin-top: 1px; }
.wcm-fix-ok .wcm-fix-msg > svg, .wcm-fix-all .wcm-fix-msg > svg { color: var(--w-green-text); }
.wcm-fix-msg .t { flex: 1 1 auto; min-width: 0; }
.wcm-fix-msg strong { font-weight: 700; }
.wcm-fix-ok .wcm-fix-msg strong.big, .wcm-fix-all .wcm-fix-msg strong.big { color: var(--w-green-text); }
.wcm-alert .wcm-fix-msg strong.big { color: var(--w-orange-text); }
.wcm-fix-all .wcm-fix-msg { font-size: 17px; line-height: 24px; }
.wcm-fix-msg small { display: block; margin-top: 2px; font-size: 13px; line-height: 19px; color: var(--w-ink-alt); }
.wcm-fix-msg .hc-all { padding: 0; margin-left: 4px; vertical-align: baseline; white-space: nowrap; }
/* 막대 버튼 줄 */
.wcm-fix-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.wcm-fix-btns .row-btn, .wcm-fix-btns .save { margin-left: 0; padding: 8px 14px; font-size: 14px; line-height: 20px; border: 0; border-radius: 10px;
  white-space: nowrap; font-family: inherit; cursor: pointer; }
.wcm-fix-btns .row-btn { background: #fff; color: var(--w-ink); box-shadow: inset 0 0 0 1px var(--w-line); }
.wcm-fix-btns .row-btn:hover { background: var(--w-fill); }
.wcm-fix-btns .row-btn.wcm-oc-ok { color: var(--w-primary); }
.wcm-fix-btns button:disabled { opacity: .45; cursor: default; }
.wcm-fix-btns .save { font-weight: 700; display: inline-flex; flex-direction: column; align-items: flex-start; white-space: normal; text-align: left; overflow-wrap: anywhere; min-width: 0; }
.wcm-fix-btns .save small { font-size: 12px; line-height: 16px; font-weight: 500; opacity: .85; white-space: normal; text-align: left; }
.wcm-fix-btns .hc-all { padding: 0; margin-left: auto; white-space: nowrap; display: inline-flex; align-items: center; gap: 2px; }
/* [저장] 위 한 줄짜리 */
.wcm-info.wcm-fix-bar.wcm-fix-mini, .wcm-alert.wcm-fix-bar.wcm-fix-mini { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; margin: 12px 0; }
.wcm-fix-mini .wcm-fix-mt { flex: 1 1 240px; min-width: 0; font-size: 13.5px; line-height: 20px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wcm-fix-mini .wcm-fix-mt strong { font-weight: 700; color: var(--w-ink); }
.wcm-fix-ok.wcm-fix-mini .wcm-fix-mt strong, .wcm-fix-all.wcm-fix-mini .wcm-fix-mt strong { color: var(--w-green-text); }
.wcm-alert.wcm-fix-mini .wcm-fix-mt strong { color: var(--w-orange-text); }
.wcm-fix-mini .wcm-fix-btns { margin-left: auto; }
.wcm-fix-mini .wcm-fix-btns .row-btn, .wcm-fix-mini .wcm-fix-btns .save { padding: 6px 12px; font-size: 13px; }
/* 고칠 칸 표시 (파랑 = 여기를 고치면 돼요 · 주황 = 저장했는데 아직) */
#songEditCard input.wcm-fix-field, .info-card input.wcm-fix-field, .info-card textarea.wcm-fix-field {
  background: #fff; box-shadow: inset 0 0 0 2px var(--w-primary), 0 0 0 4px rgba(0, 102, 255, .14) !important; }
#songEditCard input.wcm-fix-field.wcm-fix-bad, .info-card input.wcm-fix-field.wcm-fix-bad, .info-card textarea.wcm-fix-field.wcm-fix-bad {
  box-shadow: inset 0 0 0 2px var(--w-orange), 0 0 0 4px rgba(255, 146, 0, .16) !important; }
#songEditCard .creators-card.wcm-fix-field, #songEditCard .se-part.wcm-fix-field, #contractCard.wcm-fix-field {
  box-shadow: inset 0 0 0 2px var(--w-primary), 0 0 0 4px rgba(0, 102, 255, .12); }
#songEditCard .creators-card.wcm-fix-field.wcm-fix-bad, #songEditCard .se-part.wcm-fix-field.wcm-fix-bad, #contractCard.wcm-fix-field.wcm-fix-bad {
  box-shadow: inset 0 0 0 2px var(--w-orange), 0 0 0 4px rgba(255, 146, 0, .14); }
/* 워너 전달로 돌아왔을 때 — 고치던 항목을 잠깐 파랗게 */
.wcm-ci.wcm-ci-flash { animation: wcmCiFlash 1.9s ease-out; border-radius: 12px; }
@keyframes wcmCiFlash {
  0%, 40% { background: var(--w-primary-bg); box-shadow: 0 0 0 8px var(--w-primary-bg); }
  100% { background: rgba(0, 102, 255, 0); box-shadow: 0 0 0 8px rgba(0, 102, 255, 0); }
}
/* 다시 계산하는 동안 '보내기 전 확인' 버튼 잠금 */
#wcmChk.wcm-busy .wcm-ci-btns button { opacity: .5; cursor: wait; }
@media (max-width: 640px) {
  .wcm-info.wcm-fix-bar, .wcm-alert.wcm-fix-bar { padding: 12px; }
  .wcm-fix-cnt { margin-left: 0; flex-basis: 100%; white-space: normal; }
  .wcm-fix-msg { font-size: 14.5px; }
  .wcm-fix-all .wcm-fix-msg { font-size: 16px; }
  /* 버튼은 두 개씩 · 파란 버튼은 한 줄 통째로 · '워너 전달로'는 맨 아래 가운데 */
  .wcm-fix-btns .row-btn { flex: 1 1 calc(50% - 4px); white-space: normal; overflow-wrap: anywhere; min-width: 0; }
  .wcm-fix-btns .save { flex: 1 1 100%; order: -1; }
  .wcm-fix-btns .hc-all { flex: 1 1 100%; justify-content: center; margin-left: 0; padding: 6px 0 2px; }
  .wcm-fix-mini .wcm-fix-btns { margin-left: 0; flex: 1 1 100%; }
}

/* ── 워너 전달 › 작가 영문명 (2026-10-05 시안 C — 곡 기준: 앱(KOMCA) 저작자 ↔ Genius 발매 크레딧, 사람마다 [확인함]) ─────────
   /wcm/names · #page-wcm-names. 시안 C 의 .two/.step/.guide/.field/.sl-*/.pr*/.en-*/.pick/.toast 를 wen-* 로 옮김
   (앱 공용 .toast · .field 와 겹치지 않게). 색은 --w-* 그대로. 숫자 카드(.wcm-sc)는 누르는 카드가 아님 */
#wenSong[hidden] { display: none !important; }
.wcm-ci .row-btn.blue { color: var(--w-primary); }   /* 보내기 전 확인 [곡마다 확인하기 (n)] */
.wen-page .row-btn.blue, .wen-pick-modal .row-btn.blue { color: var(--w-primary); }
.wen-page a.hc-all, .wen-pick-modal a.hc-all { text-decoration: none; }
.wen-page .card h2 { margin: 0 0 12px; font-size: 17px; line-height: 24px; font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.wen-page .card h2 .h2sub { font-size: 13px; line-height: 18px; font-weight: 400; color: var(--w-ink-alt); }
.wen-page .card h2 .wbadge { margin-left: auto; }
#page-wcm-names .pg-head { flex-wrap: wrap; row-gap: 10px; margin-bottom: 16px; }
#page-wcm-names .pg-head .h2sub { flex: 1 1 220px; min-width: 0; }
#page-wcm-names .pg-head .hbtn svg { flex: none; }
.wen-crumb { font-size: 13px; line-height: 18px; color: var(--w-ink-alt); margin-bottom: 4px; overflow-wrap: anywhere; }
.wen-crumb .hc-all { padding: 0; font-size: 13px; vertical-align: baseline; }
.wen-muted { color: var(--w-ink-alt); font-size: 13px; line-height: 19px; }
.wen-lead { margin: 0 0 12px; }
.wen-note { margin: 8px 0 0; }
.wen-note .hc-all, .wen-okline .hc-all, .wen-en-meta .hc-all, .wen-src .hc-all, .wen-sl-more .hc-all, .wen-sl-done .hc-all, .wen-prog-btns .hc-all, .wen-toast .hc-all { padding: 0; white-space: nowrap; }
.wen-quiet.hc-all { color: var(--w-ink-alt); font-weight: 500; }
.wen-err { margin-top: 8px; font-size: 13px; line-height: 19px; font-weight: 500; color: var(--w-red-text); overflow-wrap: anywhere; }
.wen-err:empty { display: none; }
.wen-warn, .wen-okline.wen-warn span { color: var(--w-orange-text); }

/* 단계 머리 ① ② */
.wen-step { display: flex; align-items: center; gap: 8px; margin: 28px 0 10px; font-size: 15px; line-height: 22px; font-weight: 700; color: var(--w-ink); }
.wen-page .pg-head + .wen-step { margin-top: 4px; }
.wen-step i, .wen-num { font-style: normal; width: 22px; height: 22px; border-radius: 50%; background: var(--w-ink); color: #fff; font-size: 12px;
  font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.wen-step span { font-size: 13px; font-weight: 400; color: var(--w-ink-alt); }
.wen-page > .wcm-info { margin: 0 0 14px; }

/* ① Genius 연결 · ② 가져오기 — 두 칸 */
.wen-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.wen-two > .card { margin-bottom: 0; min-width: 0; }
.wen-guide { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wen-guide li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 21px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wen-guide b { font-weight: 600; color: var(--w-ink); }
.wen-guide code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; background: var(--w-fill); border-radius: 6px; padding: 1px 6px; color: var(--w-ink); }
.wen-field { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.wen-field label { flex-basis: 100%; font-size: 13px; font-weight: 600; color: var(--w-ink-neutral); }
.wen-field input { flex: 1 1 220px; min-width: 0; border: 0; border-radius: 12px; background: var(--w-fill); padding: 10px 14px; font-size: 14px; line-height: 20px; color: var(--w-ink); }
.wen-field input[readonly] { cursor: default; }
.wen-field input[readonly]:focus { background: var(--w-fill); box-shadow: none; }
.wen-field .hbtn { margin-left: 0; padding: 9px 18px; font-size: 14px; line-height: 20px; }
.wen-field .hbtn:disabled { opacity: .45; cursor: default; }
.wen-okline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 12px; font-size: 13px; line-height: 19px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wen-okline > span { flex: 1 1 220px; min-width: 0; }
.wen-okline b { color: var(--w-green-text); font-weight: 700; }
.wen-fetch-btn { width: 100%; justify-content: center; display: inline-flex; align-items: center; gap: 6px; margin-left: 0; padding: 9px 20px; font-size: 15px; line-height: 22px; font-weight: 700; }
.wen-fetch-btn:disabled { opacity: .45; cursor: default; }
.wen-fetch-btn svg { flex: none; }
.wen-state { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--w-line-alt); }
.wen-lbl { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--w-ink-alt); letter-spacing: .02em; margin-bottom: 6px; }
.wen-bar { height: 8px; border-radius: 999px; background: var(--w-fill-strong); overflow: hidden; }
.wen-bar i { display: block; height: 100%; background: var(--w-primary); border-radius: 999px; transition: width .4s ease; }
.wen-prog { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 10px; margin-top: 8px; font-size: 14px; line-height: 20px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wen-prog > span { min-width: 0; }
.wen-prog b { color: var(--w-ink); font-variant-numeric: tabular-nums; }
.wen-prog-btns { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px; margin-top: 6px; }
.wen-result { display: flex; gap: 8px; align-items: flex-start; font-size: 14.5px; line-height: 22px; color: var(--w-ink); overflow-wrap: anywhere; }
.wen-result svg { color: var(--w-green-text); flex: none; margin-top: 2px; }
.wen-result b { font-weight: 700; }
.wen-result.wen-warn { font-size: 14px; line-height: 21px; }

/* 숫자 카드 — 보기만 (워너 전달 화면 카드와 같은 모양) */
.wen-sum .wcm-sc { cursor: default; }
.wen-sum .wcm-sc:hover { box-shadow: none; }
.wen-sum .wcm-sc.ok .n { color: var(--w-green-text); }
.wen-sum .wcm-sc .d { overflow-wrap: anywhere; }
.wen-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin: 0 0 14px; font-size: 13px; line-height: 19px; color: var(--w-ink-alt); }
.wen-legend > span { display: inline-flex; align-items: center; gap: 6px; }

/* 곡 목록 */
.wen-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.wen-chips .fchip { font-family: inherit; font-size: 13px; line-height: 18px; cursor: pointer; border: 0; white-space: nowrap; }
.wen-sl { border-top: 1px solid var(--w-line); margin-top: 8px; }
.wen-sl-row { display: grid; grid-template-columns: minmax(0, 210px) minmax(0, 1fr) auto; align-items: center; gap: 6px 16px; padding: 11px 10px; margin: 0 -10px;
  border-bottom: 1px solid var(--w-line-alt); color: var(--w-ink); border-radius: 10px; cursor: pointer; }
.wen-sl-row:hover { background: var(--w-fill); }
.wen-sl-row.on { background: var(--w-primary-bg); box-shadow: inset 0 0 0 1px var(--w-primary-line); cursor: default; }
.wen-sl-song { min-width: 0; }
.wen-sl-song b { display: block; font-weight: 600; overflow-wrap: anywhere; }
.wen-sl-song small { display: block; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wen-sl-who { min-width: 0; font-size: 13px; line-height: 19px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wen-sl-who em { font-style: normal; color: var(--w-green-text); font-weight: 600; }
.wen-sl-end { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 10px; }
.wen-sl-end .row-btn { margin-left: 0; padding: 6px 12px; font-size: 13px; line-height: 18px; white-space: nowrap; }
.wen-sl-end .row-btn.blue, .wen-sc-act .row-btn.blue { color: var(--w-primary); }
.wen-on { cursor: default; }
.wen-left { font-size: 13px; line-height: 18px; color: var(--w-ink-alt); white-space: nowrap; }
.wen-left b { font-size: 16px; color: var(--w-orange-text); font-weight: 700; font-variant-numeric: tabular-nums; }
.wen-left.done b { color: var(--w-green-text); }
.wen-sl-more { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 12px 0 0; font-size: 13px; line-height: 19px; color: var(--w-ink-alt); }
.wen-sl-more span { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.wen-sl-done { margin-top: 12px; padding: 12px 14px; border-radius: 12px; background: var(--w-fill); display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px;
  font-size: 13px; line-height: 20px; color: var(--w-ink-neutral); }
.wen-sl-done b { color: var(--w-green-text); font-weight: 700; }
.wen-sl-done span { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
#wenList > .empty { padding: 18px 4px; }

/* 곡 대조 화면 */
.wen-sc-head { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 14px; }
.wen-sc-title { flex: 1 1 280px; min-width: 0; }
.wen-sc-title .wen-crumb { margin-bottom: 2px; }
.wen-sc-title h3 { margin: 0; font-size: 22px; line-height: 30px; font-weight: 700; letter-spacing: -0.02em; color: var(--w-ink); overflow-wrap: anywhere; }
.wen-sc-title p { margin: 2px 0 0; font-size: 13px; line-height: 19px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wen-sc-act { flex: none; margin-left: auto; display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 12px; max-width: 100%; }
.wen-sc-act .wen-left b { font-size: 22px; }
.wen-next { margin-left: 0; display: inline-flex; align-items: center; gap: 4px; padding: 8px 14px; font-size: 14px; line-height: 20px; font-weight: 500; max-width: 100%; }
.wen-next svg { flex: none; }
.wen-src { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 12px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--w-fill);
  font-size: 13px; line-height: 19px; color: var(--w-ink-neutral); }
.wen-src > .t { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.wen-src > .t b { color: var(--w-ink); font-weight: 600; }
.wen-src-btns { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.wen-src-btns .row-btn { margin-left: 0; padding: 6px 12px; font-size: 13px; background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); }
.wen-src-btns .row-btn:hover { background: var(--w-fill-strong); }
.wen-toast { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 10px 0 0; padding: 10px 14px; border-radius: 12px; background: var(--w-green-bg);
  font-size: 13.5px; line-height: 20px; color: var(--w-ink); }
.wen-toast svg { color: var(--w-green-text); flex: none; }
.wen-toast > .t { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.wen-toast b { font-weight: 700; }

.wen-pr-head, .wen-pr { display: grid; grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr) minmax(0, 1.3fr); gap: 14px; align-items: start; }
.wen-pr-head { margin-top: 16px; padding: 0 0 8px; border-bottom: 1px solid var(--w-line); font-size: 12px; line-height: 16px; font-weight: 600; color: var(--w-ink-alt); letter-spacing: .02em; }
.wen-grp { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin: 16px 0 0; padding-bottom: 6px; font-size: 13px; line-height: 18px; font-weight: 700; color: var(--w-ink); }
.wen-grp span { font-weight: 400; color: var(--w-ink-alt); }
.wen-pr { padding: 12px 0; border-bottom: 1px solid var(--w-line-alt); }
.wen-lb { display: none; }
.wen-pr-app, .wen-pr-gen, .wen-pr-en { min-width: 0; overflow-wrap: anywhere; }
.wen-pr-app b, .wen-pr-gen b { display: block; font-size: 14.5px; line-height: 21px; font-weight: 600; color: var(--w-ink); }
.wen-pr-app small, .wen-pr-gen small { display: block; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); }
.wen-pr-app .wbadge, .wen-pr-gen .wbadge { display: inline-block; margin-top: 6px; }
.wen-pr-gen em { font-style: normal; background: rgba(0, 102, 255, .10); color: var(--w-primary-strong); border-radius: 4px; padding: 0 3px; }
.wen-none { display: block; font-size: 13px; line-height: 21px; color: var(--w-ink-assist); }
.wen-pr-arr { color: var(--w-ink-assist); padding-top: 2px; }
.wen-pr.quiet .wen-pr-app b, .wen-pr.quiet .wen-pr-gen b { font-weight: 500; color: var(--w-ink-neutral); }
.wen-mem + .wen-mem { margin-top: 6px; }

.wen-en-line { display: flex; align-items: center; gap: 8px; }
.wen-en-line + .wen-en-line, .wen-en-done + .wen-en-line, .wen-en-meta + .wen-en-line, .wen-en-meta + .wen-en-done, .wen-en-line + .wen-en-done { margin-top: 8px; }
.wen-who { flex: none; width: 76px; font-size: 12.5px; line-height: 18px; color: var(--w-ink-neutral); font-weight: 600; overflow-wrap: anywhere; }
.wen-who-row { margin-bottom: 4px; }
.wen-who-row .wen-who { width: auto; }
.wen-en-line input { flex: 1 1 auto; min-width: 0; width: 100%; border: 0; border-radius: 10px; background: var(--w-fill); padding: 8px 12px;
  font-size: 14.5px; line-height: 20px; color: var(--w-ink); font-weight: 600; font-family: inherit; }
.wen-en-line input.wen-guess { color: var(--w-ink-alt); font-weight: 500; }   /* 자동 로마자 · 이름 속 영문 = 짐작 (회색) */
.wen-ok-btn { flex: none; border: 0; cursor: pointer; background: var(--w-primary); color: #fff; border-radius: 10px; padding: 8px 14px; font-size: 13.5px; line-height: 20px;
  font-weight: 700; white-space: nowrap; font-family: inherit; }
.wen-ok-btn:hover { background: var(--w-primary-strong); }
.wen-ok-btn:disabled { opacity: .5; cursor: wait; }
.wen-en-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 6px; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wen-en-meta > span:not(.wbadge) { flex: 0 1 auto; min-width: 0; }
.wen-en-meta > .wbadge + span { flex: 1 1 180px; }   /* 배지 옆에 붙여 쓰고, 좁으면 줄을 바꿔 이어서 */
.wen-en-meta s { text-decoration: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; color: var(--w-ink-alt); }
.wen-en-done { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 15px; line-height: 22px; }
.wen-en-done svg { color: var(--w-green-text); flex: none; }
.wen-en-done b { font-weight: 700; color: var(--w-ink); overflow-wrap: anywhere; min-width: 0; }
.wen-en-plain { font-size: 14px; line-height: 21px; color: var(--w-ink-neutral); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.wen-en-plain b { font-weight: 600; color: var(--w-ink); overflow-wrap: anywhere; min-width: 0; }
.wen-en-plain > span:not(.wbadge) { min-width: 0; overflow-wrap: anywhere; }
.wen-team-note { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: var(--w-orange-bg); font-size: 12.5px; line-height: 18px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wen-line-err { margin-top: 4px; }
/* 워너에 보낸 표기 ↔ Genius 다를 때 — 둘 다 보여 고르기 */
.wen-pick { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.wen-pick button { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; text-align: left; border: 0; cursor: pointer; background: #fff;
  border-radius: 12px; padding: 10px 12px; box-shadow: inset 0 0 0 1px var(--w-line); min-width: 0; font-family: inherit; }
.wen-pick button:hover { box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.wen-pick button:disabled { opacity: .6; cursor: wait; }
.wen-pick button b { display: block; font-size: 15px; line-height: 22px; font-weight: 700; color: var(--w-ink); overflow-wrap: anywhere; }
.wen-pick button small { display: block; font-size: 12px; line-height: 17px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.wen-go { display: inline-block; margin-top: 6px; font-size: 13px; font-weight: 700; color: var(--w-primary); }
.wen-sc-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 16px; }
.wen-sc-foot > .t { flex: 1 1 260px; min-width: 0; font-size: 13.5px; line-height: 20px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wen-sc-foot .hbtn { margin-left: 0; display: inline-flex; align-items: center; gap: 4px; padding: 9px 18px; font-size: 14.5px; line-height: 22px; font-weight: 700; max-width: 100%; white-space: normal; text-align: left; }
.wen-sc-foot .hbtn svg { flex: none; }
/* Genius 곡 바꾸기 창 */
.modal.bulk-modal.wen-pick-modal { max-width: 620px; max-height: 88vh; overflow-y: auto; }
.wen-modal-lead { margin: -6px 0 14px; font-size: 14px; line-height: 21px; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.wen-cands { display: flex; flex-direction: column; margin: 0 0 14px; border-top: 1px solid var(--w-line-alt); }
.wen-cand { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 10px 0; border-bottom: 1px solid var(--w-line-alt); }
.wen-cand .t { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.wen-cand b { display: block; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--w-ink); }
.wen-cand small { display: block; font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); }
.wen-cand .hc-all { padding: 0; }
.wen-cand .row-btn { margin-left: 0; padding: 6px 12px; font-size: 13px; }
.wen-url input { background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); }
.wen-pick-btns { flex-wrap: wrap; }
.wen-pick-btns button:disabled { opacity: .5; cursor: wait; }

/* 유튜브 음원 크레딧 1순위 · Genius 2순위 (2026-10-05) — 연결 카드 두 장 · 가져오기 카드(왼쪽 버튼 · 오른쪽 출처 두 줄) · 진한 파랑 「유튜브 크레딧」 배지 */
.wbadge.yt { background: var(--w-primary); color: #fff; }                    /* Genius 제안(옅은 파랑)보다 진하게 — 음원 공식 표기 */
.wen-rank { font-size: 12px; line-height: 16px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--w-fill-strong); color: var(--w-ink-neutral); }
.wen-rank.first { background: var(--w-primary-bg); color: var(--w-primary-strong); }
.wen-page .wen-two + .wen-fetch { margin-top: 16px; }
.wen-fetch { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 8px 28px; align-items: start; }
.wen-fetch-main, .wen-fetch-side { min-width: 0; }
.wen-fetch-side > .wen-state:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.wen-lead b { color: var(--w-ink); font-weight: 600; }
.wen-srows { display: flex; flex-direction: column; gap: 8px; }
.wen-srow { padding: 10px 12px; border-radius: 12px; background: var(--w-fill); min-width: 0; overflow-wrap: anywhere; }
.wen-srow.on { background: var(--w-primary-bg); box-shadow: inset 0 0 0 1px var(--w-primary-line); }
.wen-srow-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 14px; line-height: 20px; color: var(--w-ink); }
.wen-srow-h b { font-weight: 700; }
.wen-srow-h .wbadge { margin-left: auto; }
.wen-srow .wen-num { width: 20px; height: 20px; font-size: 11px; }
.wen-srow p { margin: 4px 0 0; }
.wen-prog-t { font-size: 13px; line-height: 19px; color: var(--w-ink-neutral); font-variant-numeric: tabular-nums; }
.wen-quota { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; font-size: 13px; line-height: 19px; font-weight: 600; color: var(--w-ink); font-variant-numeric: tabular-nums; }
.wen-quota .wen-muted { font-weight: 400; }
.wen-quota.out { color: var(--w-orange-text); }
.wen-small { font-size: 12.5px; line-height: 18px; }
.wen-bar-sm { height: 6px; margin-top: 8px; }
.wen-src + .wen-src { margin-top: 6px; }
.wen-src .wen-warn { font-weight: 500; }
.wen-src-warn { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 6px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--w-orange-bg);
  font-size: 13px; line-height: 19px; color: var(--w-orange-text); font-weight: 500; }
.wen-src-warn > .t { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.wen-src-warn .hc-all { padding: 0; white-space: nowrap; }
.wen-pr-head a { font-weight: 600; color: var(--w-primary); text-decoration: none; margin-left: 4px; letter-spacing: 0; }
.wen-pr-head a:hover { text-decoration: underline; }

/* 좁은 화면 — 대조 줄은 세로로 (앱 / Genius / 영문명 이름표를 칸마다) */
@media (max-width: 900px) {
  .wen-two { grid-template-columns: minmax(0, 1fr); }
  .wen-fetch { grid-template-columns: minmax(0, 1fr); }
  .wen-fetch-side { margin-top: 6px; }
  .wen-pr-head { display: none; }
  .wen-pr { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 14px 0; }
  .wen-pr-arr { display: none; }
  .wen-lb { display: inline-block; font-size: 11px; line-height: 14px; font-weight: 700; letter-spacing: .03em; color: var(--w-ink-alt); margin-bottom: 2px; }
  .wen-pr-gen { padding-left: 12px; border-left: 2px solid var(--w-primary-line); }
  .wen-pr-app { padding-left: 12px; border-left: 2px solid var(--w-line); }
  .wen-pr-en { padding-top: 2px; }
  .wen-sl-row { grid-template-columns: minmax(0, 1fr) auto; }
  .wen-sl-who { grid-column: 1 / -1; grid-row: 2; }
}
/* 숫자 카드는 시안 C 처럼 480px 까지 세 장 한 줄 (워너 전달 화면은 760px 에서 한 줄씩) */
@media (max-width: 760px) and (min-width: 481px) {
  .wen-sum { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .wen-page .card { padding: 18px 16px; }
  #page-wcm-names .pg-head .hbtn { padding: 8px 14px; font-size: 14px; }
  .wen-sum { gap: 8px; }
  .wen-sum .wcm-sc { padding: 12px; }
  .wen-sum .wcm-sc .n { font-size: 24px; line-height: 32px; }
  .wen-pick { grid-template-columns: minmax(0, 1fr); }
  .wen-sc-act { margin-left: 0; justify-content: flex-start; }
  .wen-sc-foot .hbtn { flex: 1 1 100%; justify-content: center; }
  .modal.bulk-modal.wen-pick-modal { padding: 20px 16px 18px; }
}
@media (max-width: 480px) {
  .wen-sum { grid-template-columns: minmax(0, 1fr); }
  .wen-who { width: 64px; }
  .wen-sl-row { grid-template-columns: minmax(0, 1fr); }
  .wen-sl-who { grid-row: auto; }
  .wen-sl-end { justify-content: flex-start; }
  .wen-en-line { flex-wrap: wrap; }
  .wen-en-line input { flex: 1 1 160px; }
}

/* KOMCA 입력용 복사 칩 (2026-10-04 시안 B) — 조건부양도·가입서류 단계 계약 카드, 진행 바 바로 아래 */
.kc-box { margin: 10px 0 2px; display: flex; flex-direction: column; gap: 6px; }
.kc-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kc-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-width: 0; border: 0; border-radius: 10px;
  background: var(--w-fill); padding: 6px 10px; font: inherit; font-size: 13px; line-height: 18px; color: var(--w-ink);
  text-align: left; cursor: pointer; }
.ctc-right .kc-chip { background: #fff; }  /* 카드 바탕이 회색(--w-fill)이라 칩은 흰색 */
.kc-chip:hover { box-shadow: inset 0 0 0 1px var(--w-line); }
.kc-chip b { color: var(--w-ink-alt); font-weight: 600; white-space: nowrap; }
.kc-chip span { overflow-wrap: anywhere; min-width: 0; }
.kc-chip i { font-style: normal; color: var(--w-primary); font-weight: 600; white-space: nowrap; }
.kc-chip.kc-done, .ctc-right .kc-chip.kc-done { background: var(--w-green-bg); box-shadow: none; }
.kc-chip.kc-done i { color: var(--w-green-text); }
.kc-chip.kc-miss { color: var(--w-orange-text); box-shadow: inset 0 0 0 1px rgba(209, 118, 0, .35); }
.kc-chip.kc-miss i { color: var(--w-orange-text); }
.kc-chip.kc-wait { cursor: default; color: var(--w-ink-alt); box-shadow: none; }
.kc-chip:disabled { opacity: .5; cursor: default; }
.kc-song-t { font-size: 13px; font-weight: 600; color: var(--w-ink); margin-right: 2px; overflow-wrap: anywhere; }
.kc-who { font-size: 12.5px; line-height: 18px; color: var(--w-ink-alt); overflow-wrap: anywhere; }
.kc-link { border: 0; background: none; padding: 0 2px; font: inherit; font-weight: 600; color: var(--w-ink); cursor: pointer;
  text-decoration: underline dotted rgba(55, 56, 60, .35); text-underline-offset: 3px; }
.kc-link:hover { color: var(--w-primary); }
.kc-link i { font-style: normal; color: var(--w-green-text); margin-left: 4px; }
.kc-link.kc-miss { color: var(--w-orange-text); }
.kc-note { font-size: 12px; line-height: 1.5; color: var(--w-ink-alt); }
@media (max-width: 560px) {
  .kc-chip { font-size: 12.5px; padding: 6px 9px; }
  .kc-song-t { flex-basis: 100%; }
}
.kc-link i:empty { display: none; }

/* 설정 › 직원 계정 (2026-10-11) */
.set-grid .staff-card { grid-column: 1 / -1; }
.staff-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.staff-empty { font-size: 13px; color: var(--w-ink-alt, #6b7684); padding: 6px 2px; }
.staff-row { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(220px, 1.4fr) auto; gap: 12px; align-items: center;
  border: 1px solid var(--w-line, #e1e2e4); border-radius: 12px; padding: 12px 14px; }
.staff-who { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.staff-who b { font-weight: 600; }
.staff-meta { flex-basis: 100%; font-size: 12px; color: var(--w-ink-alt, #6b7684); }
.staff-tag { font-size: 11.5px; font-weight: 600; border-radius: 999px; padding: 1px 8px; }
.staff-tag.wait { background: #fff3e0; color: #c25e00; }
.staff-tag.on { background: #e8f7ee; color: #1a7f45; }
.staff-tag.off { background: #f0f1f3; color: #6b7684; }
.staff-perms { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.staff-perm { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; cursor: pointer; }
.staff-btns { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
@media (max-width: 760px) { .staff-row { grid-template-columns: 1fr; } .staff-btns { justify-content: flex-start; } }
html.is-staff #googleBox { display: none !important; }
html.staff-nocat #hdSearchBtn { display: none !important; }

/* ══ 리드 창고 v331 (2026-10-15 원장) — 송폼 확인·직접 지정 · 작가 전용 리드 · 마감 정리 ══
   접두어 lh-sfm(리드 상세 카드의 기준 송폼 상자) / lh-sfd(송폼 확인·지정 창) / lh-sfx(작업대 '송폼 대조' 나란히 보기) / lh-cf(마감 뒤 남는 학생) / lh-aud(대상) */
/* 리드 상세 카드 — 기준 송폼(칩 전체 · 출처 · [송폼 확인·지정]) : 예전 가사지 한 줄(.lh-rvc-sheet)의 자리를 그대로 쓴다 */
.lh-rvc-sheet.lh-sfm { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 12px 11px; border-radius: 12px; background: var(--w-fill); line-height: 1.5; }
.lh-sfm-h { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.lh-sfm-h > .lh-ic { color: var(--w-ink-alt); flex: none; }
.lh-sfm-h .k { font-weight: 700; color: var(--w-ink); }
.lh-sfm-h .n { font-size: 12px; color: var(--w-ink-alt); }
.lh-sfm-h .sp { flex: 1; }
.lh-sfm-btn { font-weight: 700; }
.lh-sfm-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.lh-sfm-chips i { font-style: normal; font-size: 12.5px; font-weight: 600; line-height: 1.3; padding: 4px 9px; border-radius: 7px; background: #fff;
  box-shadow: inset 0 0 0 1px var(--w-line); color: var(--w-ink-neutral); white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.lh-sfm-chips i.add { background: #EAF2FF; box-shadow: inset 0 0 0 1px #B9D3FF; color: #0052CC; }
.lh-sfm-chips .none { font-size: 12.5px; color: var(--w-ink-alt); }
.lh-sfm-src { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; font-size: 12.5px; color: var(--w-ink-alt); }
.lh-sfm-src > span { flex: 1; min-width: 0; word-break: keep-all; overflow-wrap: anywhere; }
.lh-sfm-src b { font-weight: 700; color: var(--w-ink-neutral); }
.lh-sfm-src b.ed { color: var(--w-primary); }
.lh-sfm .lh-rv-tbtn { padding: 3px 8px; }
.lh-sfm-more { display: none; align-self: flex-start; margin-top: -2px; }
@media (max-width: 760px) {   /* 좁은 창·폰: 칩 8개 넘으면 접기·펼치기 */
  .lh-sfm.fold:not(.open) .lh-sfm-chips i:nth-child(n+9) { display: none; }
  .lh-sfm.fold .lh-sfm-more { display: inline-flex; }
}
/* 가사지 고르기 창 — 직접 지정한 송폼이 있을 때 안내 */
.lh-shm-sfwarn { margin: 0 0 12px; padding: 8px 12px; border-radius: 10px; background: var(--w-red-bg); color: var(--w-red-text); font-size: 13px; line-height: 1.5; word-break: keep-all; }

/* 송폼 확인·지정 창 */
.lh-sfd { max-width: 540px; }
.lh-sfd h3 { margin-bottom: 2px; }
.lh-sfd-sub { font-size: 13px; color: var(--w-ink-alt); margin-bottom: 10px; overflow-wrap: anywhere; }
.lh-sfd-src { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 12px; padding: 8px 10px; border-radius: 10px; background: var(--w-primary-bg); color: var(--w-primary-strong);
  font-size: 12.5px; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; }
.lh-sfd-src .lh-ic { flex: none; margin-top: 1px; }
.lh-sfd-src b { font-weight: 700; }
.lh-sfd-lb { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 8px; margin: 0 0 6px; font-size: 13px; }
.lh-sfd-lb b { font-weight: 700; color: var(--w-ink); }
.lh-sfd-lb span { font-size: 12px; color: var(--w-ink-alt); }
.lh-sfd-ta { display: block; width: 100%; box-sizing: border-box; margin: 0 0 12px; padding: 10px 12px; border: 0; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--w-line);
  font: inherit; font-size: 14px; line-height: 1.55; color: var(--w-ink); background: #fff; resize: vertical; }
.lh-sfd-ta:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.lh-sfd-q { margin: 0 0 12px; }
.lh-sfd-q .qs { display: flex; flex-wrap: wrap; gap: 6px; }
.lh-sfd-q .qs button { height: 30px; padding: 0 11px; border: 0; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); font: inherit; font-size: 12.5px;
  font-weight: 600; color: var(--w-ink-neutral); cursor: pointer; }
.lh-sfd-q .qs button:hover { color: var(--w-primary); box-shadow: inset 0 0 0 1px var(--w-primary-line); }
.lh-sfd-pv { display: flex; flex-direction: column; gap: 7px; margin: 0 0 10px; padding: 10px 12px; border-radius: 12px; background: var(--w-fill); }
.lh-sfd-pv .lh-sfd-lb { margin: 0; }
.lh-sfd-tip { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 10px; font-size: 12.5px; line-height: 1.5; color: var(--w-green-text); word-break: keep-all; }
.lh-sfd-tip .ic { flex: none; font-weight: 700; }
.lh-sfd-cf { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; margin: 0 0 10px; padding: 9px 11px; border-radius: 10px; background: var(--w-orange-bg);
  color: #8A4B00; font-size: 12.5px; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; }
.lh-sfd-cf[hidden] { display: none; }
.lh-sfd-cf b { font-weight: 700; }
.lh-sfd-cf .lh-rv-tbtn { padding: 2px 0; }
.lh-sfd-note { margin: 0 0 4px; line-height: 1.55; word-break: keep-all; }
.lh-sfd-st { min-height: 1em; font-size: 13px; line-height: 1.5; color: var(--w-red-text); }
.lh-sfd .lh-zipm-btns { flex-wrap: wrap; margin-top: 12px; }
.lh-sfd .lh-zipm-btns [hidden] { display: none; }

/* 작업대 양식 칸 — '송폼 대조' 줄 · 나란히 보기(기준 송폼 ↔ 이 시안에서 파트로 알아본 줄) */
.lh-sfx-line > span { flex: 1 1 100%; min-width: 0; overflow-wrap: anywhere; }
.lh-sfx-line b.df { color: var(--w-red-text); }
.lh-sfx-line b.ed { color: var(--w-primary); }
.lh-sfx-tg { font-weight: 700; }
.lh-sfx { margin: 2px 0 6px; padding: 8px 8px 10px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px #D6E4FF; }
.lh-sfx-tbl { display: flex; flex-direction: column; font-size: 12.5px; line-height: 1.35; }
.lh-sfx-tbl .r { display: grid; grid-template-columns: minmax(16px, auto) minmax(0, 1fr) minmax(0, 1fr); gap: 6px; align-items: start; padding: 5px 4px; border-top: 1px solid var(--w-line-alt); }
.lh-sfx-tbl .r.hd { border-top: 0; padding-top: 0; font-size: 11.5px; font-weight: 700; color: var(--w-ink-alt); }
.lh-sfx-tbl .r.hd span { color: var(--w-ink-alt); font-weight: 700; }
.lh-sfx-tbl .r .i { color: var(--w-ink-assist); font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; padding-top: 1px; }
.lh-sfx-tbl .r span { min-width: 0; overflow-wrap: anywhere; color: var(--w-ink); font-weight: 600; }
.lh-sfx-tbl .r.df { background: var(--w-red-bg); border-radius: 6px; border-top-color: transparent; }
.lh-sfx-tbl .r.df + .r { border-top-color: transparent; }
.lh-sfx-tbl .r.df span { color: var(--w-red-text); }
.lh-sfx-tbl .r.df small { display: block; margin-top: 1px; font-size: 11px; font-weight: 500; color: var(--w-red-text); }
.lh-sfx-nt { margin: 8px 2px 0; font-size: 12px; line-height: 1.55; color: var(--w-ink-alt); word-break: keep-all; overflow-wrap: anywhere; }

/* 리드 대상 '작가만' — 목록·상세 배지(단독 의뢰 보라 면과 헷갈리지 않게 보라 테두리) · 폼 안내 */
.wbadge.violet.line.lh-aud-tag { background: #fff; color: var(--w-violet); box-shadow: inset 0 0 0 1px rgba(91, 55, 237, .45); }
.lh-aud-row .lh-hint { flex: 1 1 220px; min-width: 0; word-break: keep-all; }
.lh-read-meta small.lh-hint { font-weight: 500; }

/* 마감 리드 상세 — '마감 뒤 남는 학생 n(데모 받음) · 열어 보고 안 받은 학생 m' */
.lh-cf { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: var(--w-fill); box-shadow: inset 0 0 0 1px var(--w-line-neutral); }
.lh-cf-t { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 6px; font-size: 13.5px; font-weight: 600; color: var(--w-ink-neutral); }
.lh-cf-t b { font-size: 15px; font-weight: 700; color: var(--w-ink); font-variant-numeric: tabular-nums; }
.lh-cf-t small { font-size: 12px; font-weight: 500; color: var(--w-ink-alt); }
.lh-cf-t i { font-style: normal; color: var(--w-ink-assist); }
.lh-cf-d { margin-top: 3px; font-size: 12px; line-height: 1.5; color: var(--w-ink-alt); word-break: keep-all; }
/* 곡별 계약 = 계약서 카드마다 계약일 · 조건, 곡마다 발매일부터 N년 (2026-10-15 사장님 A안) */
#contractsBox .ct-done { grid-column: 1 / -1; background: var(--w-fill); border-radius: 16px; }
#contractsBox .ct-done .ct-done-line { background: transparent; }
.ct-done-more { padding: 0 18px 14px 18px; }
.ct-terms { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 12.5px; color: var(--w-ink-alt, #6b6e75); margin: 10px 0 2px; }
.ct-terms b { color: var(--w-ink, #171719); font-weight: 700; }
.ct-terms .ct-terms-btn { margin-left: auto; }
.ct-done-more .ct-terms { margin-top: 0; }
.ct-need { color: #b45309 !important; font-weight: 700; }
.ct-src { font-style: normal; font-size: 11.5px; color: var(--w-ink-alt, #8b8e95); }
.ct-terms-edit { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 14px; background: #fff; border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--w-line); padding: 12px 14px; margin: 8px 0; font-size: 12.5px; }
.ct-terms-edit label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; color: var(--w-ink, #171719); }
.ct-terms-edit input { border: 1px solid #d7dde6; border-radius: 8px; padding: 7px 9px; font-size: 13px; min-width: 140px; }
.ct-terms-edit .cte-hint { flex-basis: 100%; color: var(--w-ink-alt, #6b6e75); font-weight: 400; }
.ct-terms-edit .cte-btns { margin: 0; }
.ct-terms-edit .cte-err { flex-basis: 100%; }

/* ── 20번(2026-10-19) 작가 목록: 두 번째 칩 줄(구분 | 소속) · 소속 칸 · 760px 이하 카드형 (시안 frames/inh/20_pub_artists.html) ── */
#alChips2 { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: -6px 0 14px; }
#alChips2 .fchip { background: transparent; color: var(--w-ink); box-shadow: inset 0 0 0 1px rgba(112, 115, 124, .16); border-radius: 8px; padding: 6px 10px;
  font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0.0145em; }
#alChips2 .fchip:hover { background: var(--w-fill); }
#alChips2 .fchip.on { color: var(--w-primary); background: rgba(0, 102, 255, .05); box-shadow: inset 0 0 0 1px var(--w-primary-line); }
#alChips2 .al-f2-lb { font-size: 12.5px; font-weight: 700; color: var(--w-ink-alt); margin: 0 2px 0 4px; }
#alChips2 .al-f2-sep { width: 1px; height: 20px; background: var(--w-line); margin: 0 6px; }
/* 작가 정보 수정: 소속 고르기 · 계약 형태(읽기만) */
.info-card .inline-form .form-row select.al-aff-sel { width: 100%; min-width: 0; box-sizing: border-box; background: #fff; border: 0; border-radius: 12px;
  box-shadow: var(--wds-shadow-xsmall), inset 0 0 0 1px var(--semantic-line-normal-neutral); appearance: none; -webkit-appearance: none; padding: 12px 44px 12px 16px; font-size: 16px; line-height: 24px; font-family: inherit;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M3.36 7.36a.9.9 0 0 1 1.27 0L12 14.73l7.36-7.37a.9.9 0 1 1 1.28 1.28l-8 8a.9.9 0 0 1-1.28 0l-8-8a.9.9 0 0 1 0-1.28z' fill='%2337383C'/></svg>");
  background-repeat: no-repeat; background-position: right 16px center; cursor: pointer; }
.info-card .inline-form .form-row select.al-aff-sel:focus { box-shadow: inset 0 0 0 1.5px var(--w-primary); outline: none; }
.info-card .inline-form .al-scope-ro { display: block; box-sizing: border-box; padding: 12px 16px; border-radius: 12px; background: var(--w-fill);
  font-size: 16px; line-height: 24px; color: var(--w-ink-neutral); }
@media (max-width: 760px) {
  #page-artist-list .pg-head { flex-wrap: wrap; gap: 8px; }
  #page-artist-list .pg-head h1 { margin-right: auto; }
  #page-artist-list .pg-head .h2sub { order: 3; flex-basis: 100%; }
  #page-artist-list .pg-head .hbtn { margin-left: 0 !important; padding: 8px 12px; font-size: 13.5px; white-space: nowrap; }
  #page-artist-list .al-toolbar { flex-wrap: wrap; gap: 8px; }
  #page-artist-list .al-search-wrap { flex: 1 1 100%; min-width: 0; max-width: 100%; }
  #page-artist-list .al-search { width: 100% !important; max-width: 100%; box-sizing: border-box; }
  #alChips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
  #alChips .fchip, #alChips2 .fchip { white-space: nowrap; }
  #alChips2 .al-f2-sep { display: none; }
  #alChips2 .al-f2-lb { flex-basis: 100%; margin: 4px 0 0 2px; }
  #page-artist-list .al-grid { padding: 0; overflow: hidden; }
  #page-artist-list .al-table, #page-artist-list .al-table tbody { display: block; width: 100%; }
  #page-artist-list .al-table thead { display: none; }
  #page-artist-list .al-table tr { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; position: relative; padding: 13px 40px 13px 14px; border-bottom: 1px solid var(--w-line-alt); }
  #page-artist-list .al-table tr:last-child { border-bottom: 0; }
  #page-artist-list .al-table td { display: block; padding: 0 !important; border: 0 !important; width: auto !important; }
  #page-artist-list .al-table td.al-no { display: none; }
  #page-artist-list .al-table td:nth-child(2) { flex: 1 1 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; min-width: 0; }
  #page-artist-list .al-table td:nth-child(2) .dot { margin-right: 4px; }
  #page-artist-list .al-table td:nth-child(2) .al-alias { margin-left: 4px; }
  #page-artist-list .al-table td:nth-child(3) { font-size: 13px; color: var(--w-ink-alt); }
  #page-artist-list .al-table td.al-num { font-size: 13px; color: var(--w-ink-alt); font-weight: 500; }
  #page-artist-list .al-table td.al-num::before { content: '곡 '; }
  #page-artist-list .al-table td.al-next { flex: 1 1 100%; min-width: 0; max-width: 100%; font-size: 12.5px; color: var(--w-ink-alt); }
  #page-artist-list .al-table td.al-chev { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); }
  #page-artist-list .al-legend { flex-wrap: wrap; gap: 6px 14px; }
}

#page-artist-list #alCount { word-break: keep-all; }   /* 20번 통합: 머리 숫자가 390 에서 '아카데/미'처럼 낱말 가운데서 끊기지 않게 */
/* ── 20번(2026-10-19) 리드 › 제출률 (시안 frames/inh/20_pub_rate.html) — 클래스는 lr- 로 묶음 ── */
#page-leads-rate .pg-head { flex-wrap: wrap; row-gap: 4px; }
#page-leads-rate .pg-head h1 { white-space: nowrap; }
#lrSub, .lr-foot, .lr-why { word-break: keep-all; }   /* 20번 통합: 390 에서 '진/행 중'처럼 낱말 가운데서 끊기지 않게 */
.lr-note { font-size: 13px; color: #5a5c63; line-height: 1.65; background: #f7f8fa; border-radius: 12px; padding: 12px 14px; margin: 4px 0 14px; word-break: keep-all; overflow-wrap: anywhere; }
.lr-note b { color: #171719; }
.lr-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.lr-seg { display: inline-flex; background: #f2f3f5; border-radius: 10px; padding: 3px; max-width: 100%; box-sizing: border-box; }
.lr-seg button { border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; padding: 7px 12px; border-radius: 8px; color: #5a5c63; cursor: pointer; white-space: nowrap; }
.lr-seg button.on { background: #fff; color: #171719; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.lr-sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 14px; }
.lr-sum div { background: #fff; border: 1px solid #eaebec; border-radius: 12px; padding: 12px 14px; min-width: 0; }
.lr-sum b { display: block; font-size: 22px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.lr-sum span { font-size: 12.5px; color: #5a5c63; }
.lr-sum .red b { color: #d92b2b; }
.lr-sum .amber b { color: #b35c00; }
.lr-sum .green b { color: #0b7a39; }
.card.lr-card { padding: 0; overflow: hidden; }
table.lr-t { width: 100%; border-collapse: collapse; font-size: 13.5px; }
table.lr-t th { font-size: 12px; color: #5a5c63; font-weight: 600; text-align: left; padding: 10px 12px; border-bottom: 1px solid #eaebec; white-space: nowrap; background: #fafafa; }
table.lr-t td { padding: 12px; border-bottom: 1px solid #f0f1f3; vertical-align: middle; }
table.lr-t tr.lr-row { cursor: pointer; }
table.lr-t tr.lr-row:hover td { background: #fafbfc; }
table.lr-t tr.stop td { background: #fff6f6; }
.lr-nm b { font-size: 14.5px; }
.lr-nm .wbadge { margin-left: 4px; }
.lr-pc { font-weight: 700; font-variant-numeric: tabular-nums; }
.lr-pc.no { color: #d92b2b; }
.lr-pc.ok { color: #0b7a39; }
.lr-pc.run { color: #0066ff; }
.lr-pc small { display: block; font-weight: 500; color: #8b8e96; font-size: 11.5px; }
.lr-zero { display: inline-block; font-size: 11.5px; font-weight: 700; color: #d92b2b; background: #fff0f0; border-radius: 6px; padding: 2px 6px; margin-top: 3px; }
.lr-st { font-size: 12.5px; font-weight: 700; border-radius: 8px; padding: 4px 8px; display: inline-block; white-space: nowrap; }
.lr-st.ok { background: #e9f7ef; color: #0b7a39; }
.lr-st.one { background: #fff4e5; color: #b35c00; }
.lr-st.stop { background: #ffe9e9; color: #c21b1b; }
.lr-st.paused { background: #eceff3; color: #3a3d44; }
.lr-st.na { background: #f2f3f5; color: #8b8e96; }
.lr-why { display: block; font-size: 11.5px; color: #8b8e96; font-weight: 500; margin-top: 3px; }
.lr-act .row-btn { margin: 0; border: 1px solid #e1e2e4; background: #fff; color: #171719; border-radius: 9px; padding: 7px 11px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.lr-act .row-btn.danger { border-color: #ffc9c9; color: #c21b1b; }
table.lr-t tr.lr-mdet td { background: #fbfbfc !important; font-size: 12.5px; color: #5a5c63; padding: 8px 12px 12px 28px; }
.lr-mm { display: flex; gap: 6px 14px; flex-wrap: wrap; }
.lr-mm + .lr-mm { margin-top: 4px; }
.lr-mm span b { color: #171719; }
.lr-mm span.z b { color: #d92b2b; }
.lr-foot { margin-top: 10px; }
/* 휴대폰(760px 이하) — 표 대신 작가마다 카드: 이름 · 분기 3칸 · 상태 · 버튼 */
@media (max-width: 760px) {
  #page-leads-rate .pg-head .h2sub { flex-basis: 100%; margin-left: 0; }
  .lr-bar .lr-seg { overflow-x: auto; scrollbar-width: none; }
  .lr-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .lr-sum span { white-space: nowrap; }
  table.lr-t, table.lr-t tbody { display: block; }
  table.lr-t thead { display: none; }
  table.lr-t tr.lr-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 14px; border-bottom: 1px solid #eaebec; }
  table.lr-t tr.lr-row.open { border-bottom: 0; }
  table.lr-t tr.lr-row.stop { background: #fff6f6; }
  table.lr-t td { display: block; padding: 0; border: 0; background: none !important; min-width: 0; }
  table.lr-t td.lr-nm { grid-column: 1 / -1; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-bottom: 2px; }
  table.lr-t td.lr-nm .wbadge { margin-left: 0; }
  table.lr-t tr.lr-row td.lr-pc { background: #f7f8fa !important; border-radius: 10px; padding: 8px 9px; font-size: 13px; word-break: keep-all; overflow-wrap: break-word; }   /* 20번 통합: 낱말 가운데서 끊지 않음('진/행 중'·'0/건' 방지) — 칸보다 긴 낱말만 끊김 */
  table.lr-t tr.lr-row.stop td.lr-pc { background: #fff !important; }
  table.lr-t tr.lr-row td.lr-pc::before { content: attr(data-lb); display: block; font-size: 11px; font-weight: 600; color: #8b8e96; margin-bottom: 2px; }
  table.lr-t td.lr-pc small { white-space: normal; font-size: 11px; }
  table.lr-t td.lr-pc br { display: none; }
  .lr-zero { display: block; width: fit-content; max-width: 100%; box-sizing: border-box; margin-top: 4px; word-break: keep-all; }
  table.lr-t td.lr-stc { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
  .lr-why { margin-top: 0; }
  table.lr-t td.lr-act { grid-column: 1 / -1; }
  table.lr-t td.lr-act:empty { display: none; }
  .lr-act .row-btn { width: 100%; padding: 10px; }
  table.lr-t tr.lr-mdet { display: block; border-bottom: 1px solid #eaebec; }
  table.lr-t tr.lr-mdet td { padding: 0 14px 12px !important; background: #fff !important; }
  table.lr-t tr.lr-mdet.stop td { background: #fff6f6 !important; }
  .lr-mm { gap: 6px 12px; }
}

/* ── 리드 쓰기 화면 (2026-10-19 사장님: "리드 작성할 때 화면이 잘려서 불편 — 블로그 글쓰기처럼 크게" · 첨부 같이 · 커스텀 달력) ──
   app.js lhWrOpen 이 body 에 붙이는 전체 화면(#lhWrite.lhw). 확인 창(.modal-back 100 · appConfirm 9999)은 위, 알림 토스트도 위로 올린다. 접두어 lhw- */
body.lhw-open { overflow: hidden; }
body.lhw-open .toast { z-index: 99; }
.lhw { position: fixed; inset: 0; z-index: 48; background: #fff; display: flex; flex-direction: column; color: var(--w-ink); }
.lhw-top { flex: none; height: 60px; box-sizing: border-box; padding: 0 28px; border-bottom: 1px solid var(--w-line-neutral);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; background: #fff; }
.lhw-back { justify-self: start; display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; padding: 8px 10px 8px 4px;
  border-radius: 10px; font: inherit; font-size: 14px; font-weight: 600; color: var(--w-ink-neutral); cursor: pointer; }
.lhw-back:hover { background: var(--w-fill); }
.lhw-top-t { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; }
.lhw-top-r { justify-self: end; display: flex; align-items: center; gap: 8px; }
.lhw-prog { font-size: 13px; color: var(--w-primary); font-weight: 600; white-space: nowrap; }
.lhw-top .row-btn { margin: 0; padding: 9px 14px; font-size: 13.5px; border-radius: 10px; }
.lhw-top .lh-btn-main { padding: 10px 20px; font-size: 14px; font-weight: 700; border-radius: 10px; }
.lhw-top .lh-btn-main:disabled { background: var(--w-primary-line); cursor: default; }
form.lhw-scroll { flex: 1; overflow: auto; margin: 0; overscroll-behavior: contain; }
.lhw-grid { max-width: 1200px; margin: 0 auto; padding: 44px 40px 120px; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
.lhw-main { min-width: 0; }
.lhw.busy .lhw-main, .lhw.busy .lhw-side { opacity: .72; pointer-events: none; }
/* 제목 — 상자 없는 큰 글자(블로그 제목처럼) */
.lhw .lhw-title { display: block; width: 100%; box-sizing: border-box; border: 0; background: transparent; box-shadow: none; border-radius: 0; padding: 0;
  font-family: inherit; font-size: 32px; font-weight: 700; line-height: 1.38; letter-spacing: -0.025em; color: var(--w-ink);
  resize: none; overflow: hidden; min-width: 0; flex: none; }
.lhw .lhw-title::placeholder { color: var(--w-ink-assist); }
.lhw .lhw-title:focus { background: transparent; box-shadow: none; outline: 0; }
.lhw-title-hint { margin-top: 10px; font-size: 13px; color: var(--w-ink-alt); line-height: 1.5; word-break: keep-all; }
.lhw-meta { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lhw-f { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.lhw-f > span { font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
.lhw .lhw-f input[type="text"] { width: 100%; box-sizing: border-box; padding: 12px 14px; font-size: 15px; line-height: 22px; }
.lhw-zip { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 13px; }
.lhw-zip-k { font-size: 12px; font-weight: 700; color: var(--w-ink-alt); background: var(--w-fill); border-radius: 6px; padding: 2px 7px; }
.lhw-zip .lh-zipprev { font-weight: 600; color: var(--w-ink-neutral); word-break: break-all; }
.lhw-zip-h { flex-basis: 100%; }
/* 데모명 곡 줄 (2026-10-21 여러 곡 리드 시안 ①) — 첫 줄 = 예전 데모명 칸 · [＋ 곡 추가] · 줄이 둘 이상(.multi)이면 번호 · × · '곡 n개'
   곡이 둘 이상이면 리드 알집 이름 줄(.lhw-zip) 대신 곡마다 상자(.lhw-songs — 그 곡 알집 이름 · 가사지는 저장 뒤 서버가 곡마다 자동) */
.lhw-f > span em { font-style: normal; margin-left: 6px; font-size: 11.5px; font-weight: 700; color: #4A5675; background: #E6E9F1; border-radius: 6px; padding: 1px 6px; }
.lhw-f > span em[hidden], .lhw-zip[hidden], .lhw-songs[hidden], .lhw-dm-err[hidden] { display: none; }
.lhw-dm { display: flex; flex-direction: column; gap: 8px; }
.lhw-dmr { display: flex; align-items: center; gap: 6px; }
.lhw .lhw-dmr input[type="text"] { flex: 1; min-width: 0; }
.lhw .lhw-dmr input.bad { box-shadow: inset 0 0 0 1.5px var(--w-red); }
.lhw-dmr .no { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--w-fill-strong); color: var(--w-ink-neutral); font-size: 12px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; }
.lhw-dmx { flex: none; width: 36px; height: 36px; border: 0; background: transparent; border-radius: 10px; padding: 0; font: inherit; font-size: 18px; line-height: 1;
  color: var(--w-ink-alt); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.lhw-dmx:hover { background: var(--w-fill); color: var(--w-ink); }
.lhw-dm:not(.multi) .no, .lhw-dm:not(.multi) .lhw-dmx { display: none; }
.lhw-dmadd { align-self: flex-start; margin-left: -6px; }
.lhw-dm-err { margin-top: 6px; font-size: 12.5px; font-weight: 600; color: var(--w-red-text); word-break: keep-all; }
/* 데모명에 곡 수만 적었을 때 안내(2026-10-29 A안 — '2건' · '3곡' · '○○ 외 1곡') — 주황 안내 + [곡 n개 칸으로 바꾸기] */
.lhw-dm-hint { margin-top: 8px; padding: 10px 12px 10px 14px; border-radius: 12px; background: var(--w-orange-bg); display: flex; flex-direction: column; gap: 4px; word-break: keep-all; }
.lhw-dm-hint[hidden] { display: none; }
.lhw-dm-hint .t { font-size: 13px; font-weight: 700; color: var(--w-orange-text); }
.lhw-dm-hint .d { font-size: 12.5px; line-height: 1.55; color: var(--w-ink-neutral); overflow-wrap: anywhere; }
.lhw-dm-hint .lh-rv-tbtn { align-self: flex-start; margin: 2px 0 0 -6px; }
.lhw-songs { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.lhw-songs-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 13px; color: var(--w-ink-alt); word-break: keep-all; }
.lhw-songs-h b { font-size: 13.5px; color: var(--w-ink); font-weight: 700; }
.lhw-sgs { display: flex; flex-direction: column; gap: 8px; }
.lhw-sg { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); }
.lhw-sg-t { display: flex; align-items: center; gap: 8px; font-size: 14.5px; min-width: 0; }
.lhw-sg-t b { font-weight: 700; overflow-wrap: anywhere; }
.lhw-sg-t .no { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--w-dark); color: #fff; font-size: 12px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; }
.lhw-sg-r { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; font-size: 13px; color: var(--w-ink-neutral); min-width: 0; }
.lhw-sg-r .k { flex: none; width: 72px; font-size: 12px; font-weight: 700; color: var(--w-ink-alt); }
.lhw-sg-r .lh-zipprev { flex: 1 1 14em; min-width: 0; }
.lhw-songs-d { font-size: 12.5px; line-height: 1.55; color: var(--w-ink-alt); word-break: keep-all; overflow-wrap: anywhere; }
.lhw-songs-d b { font-weight: 600; color: var(--w-ink-neutral); }
/* 내용 — 넓고 긴 글쓰기 칸(줄이 늘어나면 칸도 늘어남 · 바깥 화면이 스크롤) */
.lhw .lhw-body { display: block; width: 100%; box-sizing: border-box; margin-top: 28px; min-height: 32vh; border: 0; border-top: 1px solid var(--w-line-neutral);
  border-radius: 0; background: transparent; box-shadow: none; padding: 26px 0 0; font-family: inherit; font-size: 16.5px; line-height: 1.85;
  color: var(--w-ink); resize: none; overflow: hidden; min-width: 0; flex: none; word-break: keep-all; overflow-wrap: anywhere; }
.lhw .lhw-body::placeholder { color: var(--w-ink-assist); }
.lhw .lhw-body:focus { background: transparent; box-shadow: none; outline: 0; }
.lhw-count { min-height: 18px; margin-top: 6px; text-align: right; font-size: 12px; color: var(--w-ink-assist); }
/* 작업 시 참고사항 미리보기 (2026-10-20 시안 ①) — 모든 리드 아래에 붙는 글 · 쓰기 화면에선 보기만(높이 제한 · 아래로 흐려짐)
   모양 = 학생·작가 화면과 같은 '블루 + 형광펜 밑줄'(2026-10-20 사장님 · writer.html .nt · 위메이크 앱 .lh2-nt)
   색 = 작가 화면과 같은 네이비(2026-10-21 사장님 '퍼블리싱 쪽은 네이비' · writer.html .nt 와 같은 값) — 위메이크 앱(학생)만 블루
   .full = 리드 상세(읽기)에 붙는 상자 — 높이 제한·흐려짐 없음(2026-10-21)
   .no = 줄 맨 앞 번호 · .em = 설정 글에서 **이렇게** 감싼 곳(굵게 + 형광펜 밑줄) · .s = 관리자용 안내(오른쪽 작은 글) */
.lhw-nt { position: relative; overflow: hidden; margin-top: 18px; padding: 14px 15px 15px; border-radius: 14px; background: #F4F6FA; box-shadow: inset 0 0 0 1px #E1E5EE; }
.lhw-nt::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #1F2A44; }
.lhw-nt-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 7px; margin-bottom: 9px; font-size: 14px; font-weight: 800; color: #1F2A44; letter-spacing: -0.01em; }
.lhw-nt-h b { font-size: 14px; font-weight: 800; }
.lhw-nt-h small { margin-left: 2px; font-size: 12px; font-weight: 700; color: #4A5675; background: #E6E9F1; border-radius: 6px; padding: 2px 7px; }
.lhw-nt-h .ic { width: 18px; height: 18px; border-radius: 50%; background: #1F2A44; color: #fff; font-size: 11.5px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; flex: none; }
.lhw-nt-h .s { margin-left: auto; font-size: 12.5px; font-weight: 500; color: var(--w-ink-alt); letter-spacing: 0; }
.lhw-nt-b { white-space: pre-wrap; font-size: 13px; line-height: 1.78; color: #2E3440; word-break: keep-all; overflow-wrap: anywhere; max-height: 170px; overflow: hidden;
  -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.lhw-nt-b .no { font-weight: 800; color: #1F2A44; }
.lhw-nt-b .em { font-weight: 800; color: #1F2A44; background: linear-gradient(transparent 58%, #DDE3F2 58%); padding: 0 1px; }
.lhw-nt.full { margin-top: 14px; }
.lhw-nt.full .lhw-nt-b { max-height: none; overflow: visible; -webkit-mask-image: none; mask-image: none; }
/* 첨부 */
.lhw-files { margin-top: 28px; border-top: 1px solid var(--w-line-neutral); padding-top: 24px; }
.lhw-files-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.lhw-files-h b { font-size: 15px; }
.lhw-drop { margin-top: 12px; display: flex; align-items: center; gap: 14px; padding: 20px 22px; border: 1.5px dashed #C9CBD1; border-radius: 14px;
  background: #FBFBFC; color: var(--w-ink-alt); cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.lhw-drop:hover, .lhw-drop:focus-visible { border-color: var(--w-primary); background: var(--w-primary-bg); color: var(--w-primary); outline: 0; }
.lhw-drop svg { flex: none; }
.lhw-drop b { display: block; font-size: 14.5px; color: var(--w-ink); }
.lhw-drop small { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.5; word-break: keep-all; }
.lhw-drop.full { opacity: .55; }
.lhw-flist { list-style: none; margin: 10px 0 0; padding: 0; }
.lhw-fi { display: flex; align-items: center; gap: 10px; padding: 10px 12px; margin-top: 6px; border-radius: 10px; background: var(--w-fill); }
.lhw-fi .wbadge { flex: none; }
.lhw-fn { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; }
.lhw-fm { flex: none; font-size: 12.5px; color: var(--w-ink-alt); white-space: nowrap; }
.lhw-fi .row-btn { flex: none; margin: 0; }
.lhw-fi.gone .lhw-fn { text-decoration: line-through; color: var(--w-ink-assist); }
.lhw-new { color: var(--w-primary); font-weight: 600; }
.lhw-gone { color: var(--w-red-text); font-weight: 600; }
/* 오른쪽 — 마감·공개·대상·옵션 */
.lhw-side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 14px; }
.lhw-box { border: 1px solid var(--w-line); border-radius: 16px; padding: 16px 18px; background: #fff; }
.lhw-box-h { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 13px; font-weight: 700; color: var(--w-ink-neutral); }
.lhw-req { font-size: 11px; font-weight: 700; color: var(--w-primary); background: var(--w-primary-bg); border-radius: 6px; padding: 1px 6px; }
.lhw-box-d { margin-top: 8px; font-size: 12.5px; line-height: 1.55; color: var(--w-ink-alt); word-break: keep-all; }
/* 마감 칸 안 두 줄 (2026-10-20 시안 A) — 학생·작가 마감 · 기획사 실제 마감 */
.lhw-dl-k { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 12.5px; font-weight: 600; color: var(--w-ink-alt); }
.lhw-dl-k2 { margin-top: 16px; }
.lhw-dt { width: 100%; display: flex; align-items: center; gap: 10px; border: 0; background: var(--w-fill); border-radius: 12px; padding: 12px 14px;
  font: inherit; font-size: 15px; font-weight: 600; color: var(--w-ink); text-align: left; cursor: pointer; }
.lhw-dt svg { flex: none; color: var(--w-ink-alt); }
.lhw-dt:hover { background: var(--w-fill-strong); }
.lhw-dt.on { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.lhw-dt.on svg { color: var(--w-primary); }
.lhw-dt.empty .lhw-dt-v { color: var(--w-ink-alt); font-weight: 500; }
.lhw-dt-rel { margin-top: 6px; font-size: 12.5px; color: var(--w-ink-alt); }
.lhw-dt-rel:empty { display: none; }
.lhw-dt-rel.warn { color: var(--w-red-text); font-weight: 600; }
.lhw-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; border-radius: 11px; background: var(--w-fill); }
.lhw-seg button { border: 0; background: transparent; border-radius: 9px; padding: 8px 6px; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--w-ink-alt); cursor: pointer; }
.lhw-seg button.on { background: #fff; color: var(--w-ink); box-shadow: var(--w-shadow-xs), 0 0 0 1px rgba(23, 23, 23, .04); }
/* 지정 작가(2026-10-23 원장 시안 C — 검토/지정작가_시안_1023) — 대상 세 칸 · 묶음 버튼 · 이름표 · 이름으로 더하기 */
.lhw-seg.three { grid-template-columns: 1fr 1fr 1fr; }
.lhw-pk { margin-top: 12px; }
.lhw-pk-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.lhw-pk-quick:empty { display: none; }
.lhw-pk-quick > .lh-hint, .lhw-pk-quick > .lhw-pk-err { grid-column: 1 / -1; margin: 0; }
.lhw-pk-quick button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; padding: 9px 12px; border: 0; border-radius: 11px; background: #fff; box-shadow: inset 0 0 0 1px var(--w-line); font: inherit; text-align: left; cursor: pointer; }
.lhw-pk-quick button b { font-size: 13.5px; font-weight: 700; color: var(--w-ink); }
.lhw-pk-quick button small { max-width: 100%; font-size: 12px; color: var(--w-ink-alt); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lhw-pk-quick button.on { background: var(--w-primary-bg); box-shadow: inset 0 0 0 1.5px var(--w-primary); }
.lhw-pk-quick button.on b { color: var(--w-primary); }
.lhw-pk-quick button:focus-visible { outline: 2px solid var(--w-primary); outline-offset: 1px; }
.lhw-pk-n { display: flex; align-items: center; justify-content: space-between; margin: 12px 2px 0; font-size: 13px; color: var(--w-ink-alt); }
.lhw-pk-n b { color: var(--w-primary); font-weight: 700; }
.lhw-pk-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.lhw-pk-chips > .lh-hint { margin: 0; font-size: 12.5px; word-break: keep-all; }
.lhw-pk-chip { display: inline-flex; align-items: center; gap: 2px; height: 32px; padding: 0 4px 0 12px; border-radius: 9px; background: var(--w-primary-bg); color: var(--w-primary); font-size: 14px; font-weight: 600; }
.lhw-pk-chip.off { background: var(--w-fill); color: var(--w-ink-alt); text-decoration: line-through; }
.lhw-pk-chip button { width: 24px; height: 24px; border: 0; border-radius: 6px; background: none; color: inherit; font-size: 16px; line-height: 1; cursor: pointer; opacity: .75; }
.lhw-pk-chip button:hover { opacity: 1; background: rgba(0, 102, 255, .1); }
.lhw-pk-add { position: relative; margin-top: 8px; }
.lhw-pk-q { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 10px; background: var(--w-fill); color: #8a8d94; cursor: text; }
.lhw-pk-q:focus-within { background: #fff; box-shadow: inset 0 0 0 1.5px var(--w-primary); color: var(--w-ink); }
.lhw-pk-q input[type="text"], .lhw-pk-q input[type="text"]:focus { flex: 1; min-width: 0; height: 100%; border: 0; border-radius: 0; background: transparent; padding: 0; font: inherit; font-size: 14px; color: var(--w-ink); outline: none; box-shadow: none; }   /* 전역 input:focus 테두리 안 받게(바깥 칸이 대신 파랗게) */
.lhw-pk-sug { position: absolute; left: 0; right: 0; top: 44px; z-index: 30; padding: 6px; border-radius: 12px; background: #fff; box-shadow: 0 8px 24px rgba(23, 23, 25, .14), 0 0 0 1px var(--w-line); }
.lhw-pk-sug button { display: flex; align-items: baseline; gap: 8px; width: 100%; padding: 9px 10px; border: 0; border-radius: 9px; background: none; font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.lhw-pk-sug button.on, .lhw-pk-sug button:hover { background: var(--w-fill); }
.lhw-pk-sug b { font-weight: 600; color: var(--w-ink); }
.lhw-pk-sug small { font-size: 12px; color: var(--w-ink-alt); }
.lhw-pk-sug em { margin-left: auto; font-style: normal; font-size: 12px; font-weight: 600; color: var(--w-primary); }
.lhw-pk-none { padding: 10px; font-size: 13px; color: var(--w-ink-alt); word-break: keep-all; }
.lhw-pk-err { font-size: 13px; color: #c0392b; }
.lhw-open-at { margin-top: 10px; }
.lhw-open-at[hidden] { display: none; }
.lhw-sw { position: relative; display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 600; cursor: pointer; user-select: none; }
.lhw-sw input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.lhw-sw i { flex: none; position: relative; width: 38px; height: 22px; border-radius: 11px; background: #D6D8DC; transition: background .15s; }
.lhw-sw i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); transition: transform .15s; }
.lhw-sw input:checked + i { background: var(--w-primary); }
.lhw-sw input:checked + i::after { transform: translateX(16px); }
.lhw-sw input:focus-visible + i { box-shadow: 0 0 0 3px var(--w-primary-bg); }
/* 달력 — 고른 단추 바로 아래에 펼침 */
.lhw-cal { margin-top: 10px; border: 1px solid var(--w-line); border-radius: 14px; background: #fff; box-shadow: var(--w-shadow-md); padding: 14px; }
.lhw-cal[hidden] { display: none; }
.lhw-cq, .lhw-ct-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.lhw-cq { margin-bottom: 12px; }
.lhw-cq small { margin-left: 5px; font-size: 11.5px; font-weight: 500; color: var(--w-ink-alt); }
.lhw-cq button.on small { color: inherit; opacity: .8; }
.lhw-cq button, .lhw-ct-chips button { border: 0; background: var(--w-fill); border-radius: 8px; padding: 6px 10px; font: inherit; font-size: 12.5px; font-weight: 600;
  color: var(--w-ink-neutral); cursor: pointer; }
.lhw-cq button:hover, .lhw-ct-chips button:hover { background: var(--w-fill-strong); }
.lhw-cq button.on, .lhw-ct-chips button.on { background: var(--w-primary-bg); color: var(--w-primary); }
.lhw-ch { display: flex; align-items: center; justify-content: space-between; }
.lhw-ch b { font-size: 14.5px; }
.lhw-nv { width: 32px; height: 32px; border: 0; background: transparent; border-radius: 8px; font-size: 20px; line-height: 1; color: var(--w-ink-neutral); cursor: pointer; }
.lhw-nv:hover { background: var(--w-fill); }
.lhw-cw, .lhw-cg { display: grid; grid-template-columns: repeat(7, 1fr); }
.lhw-cw { margin-top: 8px; text-align: center; font-size: 11.5px; font-weight: 600; color: var(--w-ink-alt); }
.lhw-cw .su { color: var(--w-red-text); }
.lhw-cw .sa { color: #2F6FE4; }
.lhw-cg { gap: 2px; margin-top: 4px; }
.lhw-cd { aspect-ratio: 1; border: 0; background: transparent; border-radius: 10px; padding: 0; font: inherit; font-size: 13.5px; color: var(--w-ink); cursor: pointer; }
span.lhw-cd { cursor: default; }
button.lhw-cd:hover { background: var(--w-fill); }
.lhw-cd.su { color: var(--w-red-text); }
.lhw-cd.sa { color: #2F6FE4; }
.lhw-cd.past { color: var(--w-ink-assist); }
.lhw-cd.td { box-shadow: inset 0 0 0 1px var(--w-primary-line); font-weight: 700; }
.lhw-cd.sel, button.lhw-cd.sel:hover { background: var(--w-primary); color: #fff; font-weight: 700; box-shadow: none; }
.lhw-ct { margin-top: 12px; border-top: 1px solid var(--w-line-alt); padding-top: 12px; }
.lhw-ct-h { margin-bottom: 8px; font-size: 12.5px; font-weight: 700; color: var(--w-ink-alt); }
.lhw-ct-pick { display: flex; align-items: center; gap: 6px; margin-top: 8px; color: var(--w-ink-alt); }
.lhw .lhw-ct-pick select { appearance: none; -webkit-appearance: none; border: 0; border-radius: 9px; padding: 7px 30px 7px 11px; font: inherit; font-size: 13.5px;
  color: var(--w-ink); background-color: var(--w-fill); cursor: pointer; min-width: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'><path fill-rule='evenodd' clip-rule='evenodd' d='M3.36 7.36a.9.9 0 0 1 1.27 0L12 14.73l7.36-7.37a.9.9 0 1 1 1.28 1.28l-8 8a.9.9 0 0 1-1.28 0l-8-8a.9.9 0 0 1 0-1.28z' fill='%2337383C'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center; }
.lhw .lhw-ct-pick select:disabled { opacity: .5; cursor: default; }
.lhw-cf { margin-top: 14px; display: flex; align-items: center; gap: 8px; }
.lhw-cf-v { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; color: var(--w-ink); }
.lhw-cf-v.dim { color: var(--w-ink-alt); font-weight: 500; }
.lhw-cf .row-btn { margin: 0; padding: 7px 10px; border-radius: 9px; font-size: 12.5px; }
.lhw-cf .lh-btn-main { padding: 8px 12px; font-size: 13px; white-space: nowrap; }
/* 끌어 놓는 중 */
.lhw-dropcover { position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center; pointer-events: none;
  background: rgba(0, 102, 255, .06); box-shadow: inset 0 0 0 3px var(--w-primary); }
.lhw-dropcover[hidden] { display: none; }
.lhw-dropcover div { background: var(--w-primary); color: #fff; font-size: 17px; font-weight: 700; padding: 14px 24px; border-radius: 14px; box-shadow: var(--w-shadow-md); }
@media (max-width: 1040px) {
  .lhw-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 32px 28px 100px; }
  .lhw-side { position: static; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); align-items: start; }
}
@media (max-width: 640px) {
  .lhw-top { padding: 0 10px; grid-template-columns: auto 1fr; }
  .lhw-top-t { display: none; }
  .lhw-top .lhw-cancel { display: none; }
  .lhw-prog { font-size: 12px; }
  .lhw-grid { padding: 22px 16px 90px; }
  .lhw .lhw-title { font-size: 24px; }
  .lhw-meta { grid-template-columns: 1fr; }
  .lhw .lhw-body { min-height: 34vh; font-size: 16px; }
  .lhw-side { grid-template-columns: minmax(0, 1fr); }
  .lhw-drop { padding: 16px; }
  .lhw-fm { display: none; }
}

/* ══ 리드 목록·상세 새 모양 (2026-10-21 사장님 시안 B 'inhouse_lead_b' — 작가 화면 writer.html .lh2 와 같은 모양) ══
   어두운 머리 카드(#191F28) + 겹친 흰 카드 · 구분선 줄 · 네이비 참고사항(.lhw-nt.full 그대로). 접두어 lh2- · 리드 탭(#page-leads) 안에서만.
   하는 일·글은 예전 그대로(app.js lhRenderLeadList · lhRenderLeadDetail · lhRenderLeadFiles) — 모양만.
   폰·좁은 창 = 한 줄로 쌓음(마감 → 리드 내용 → 시안 검수 → 열람 기록).
   1040px 이상 = 목록 줄 다섯 칸 · 상세 두 칸(왼쪽 리드 내용 · 오른쪽 380px 마감·시안 검수·열람 기록).
     1040 = 쓰기 화면(.lhw-grid)과 같은 경계 — 본문 칸(.home-wrap 1160 − 양옆 40)이 960px 이상일 때라 왼쪽 칸이 500px 넘게 남는다.
   시안 검수 카드 안(lhRenderReviewCard 가 그리는 것)은 마크업 그대로 두고 여기서 모양만: 칸 사이 간격 · 제목 줄 · 버튼(파란 글자 버튼 → 흰 테두리 버튼) */
#page-leads .lh2 { --lh2-ink: #171719; --lh2-ink2: rgba(46, 47, 51, .88); --lh2-sub: rgba(55, 56, 60, .61); --lh2-line: #E1E2E4; --lh2-hover: rgba(112, 115, 124, .08);
  --lh2-fill-alt: rgba(112, 115, 124, .05); --lh2-soft: #F7F7F8; --lh2-blue: #191F28; --lh2-sh: 0 12px 32px rgba(16, 20, 28, .12), 0 2px 6px rgba(16, 20, 28, .06);
  padding-bottom: 12px; font-size: 14.5px; line-height: 1.5; letter-spacing: -0.01em; color: var(--lh2-ink); }
#page-leads .lh2 button { font-family: inherit; letter-spacing: inherit; }
/* 머리 카드 */
#page-leads .lh2-hero { background: var(--lh2-blue); color: #fff; border-radius: 20px; padding: 22px 22px 76px; display: flex; flex-direction: column; gap: 6px; }
#page-leads .lh2-hd { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#page-leads .lh2-hd h1 { margin: 0; flex: 1; font-size: 24px; line-height: 1.3; font-weight: 700; letter-spacing: -.5px; color: #fff; white-space: nowrap; }
#page-leads .lh2-hbtns { display: flex; gap: 6px; }
#page-leads .lh2-wb { height: 32px; padding: 0 12px; border: 0; border-radius: 9px; background: rgba(255, 255, 255, .16); color: #fff; font-size: 13px; font-weight: 600;
  line-height: 1; letter-spacing: -0.01em; display: inline-flex; align-items: center; gap: 2px; white-space: nowrap; cursor: pointer; }
#page-leads .lh2-wb:hover { background: rgba(255, 255, 255, .24); }
#page-leads .lh2-wb.solid { background: #fff; color: var(--lh2-blue); font-weight: 700; }
#page-leads .lh2-wb.solid:hover { background: #ECEDEF; }
#page-leads .lh2-wb.danger { background: rgba(255, 66, 66, .9); }
#page-leads .lh2-wb.danger:hover { background: #FF4242; }
#page-leads .lh2-wb:disabled { opacity: .6; cursor: default; }
#page-leads .lh2-wb svg { flex: none; }
#page-leads .lh2-sub { font-size: 13.5px; color: rgba(255, 255, 255, .8); }
/* 목록 — 머리 카드에 겹친 흰 카드 안에 달 머리 줄 + 구분선 줄 */
#page-leads .lh2-float { position: relative; margin: -56px 12px 0; background: #fff; border-radius: 22px; box-shadow: var(--lh2-sh); }
#page-leads .lh2-list { padding: 2px 12px 10px; }
#page-leads .lh2-list > .empty { padding: 22px 8px 14px; }
#page-leads .lh2-ld > .empty { padding: 22px 20px; }   /* 상세 읽는 중(app.js lhOpenLead) — 머리 카드에 겹친 흰 카드 안 */
#page-leads .lh2-mh { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 6px; padding: 22px 8px 4px; }
#page-leads .lh2-mh:first-child { padding-top: 16px; }
#page-leads .lh2-mh b { font-size: 17px; font-weight: 700; color: var(--lh2-ink); }
#page-leads .lh2-mh span { font-size: 13px; color: var(--lh2-sub); }
#page-leads .lh2-row { font: inherit; width: 100%; padding: 16px 8px; border: 0; border-top: 1px solid var(--lh2-line); border-radius: 4px; background: none;
  display: flex; flex-direction: column; gap: 6px; text-align: left; color: inherit; cursor: pointer; }
#page-leads .lh2-mh + .lh2-row { border-top: 0; }
#page-leads .lh2-row:hover { background: var(--lh2-hover); }
#page-leads .lh2-row.closed { opacity: .5; }
#page-leads .lh2-st { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; }
#page-leads .lh2-lbl { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
#page-leads .lh2-lbl i { display: inline-block; width: 7px; height: 7px; border-radius: 99px; background: currentColor; }
#page-leads .lh2-st .lh2-sp { flex: 1; }
#page-leads .lh2-rem { font-size: 13px; font-weight: 700; white-space: nowrap; }
#page-leads .lh2-tx { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
#page-leads .lh2-tt { font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--lh2-ink); overflow-wrap: anywhere; }
#page-leads .lh2-mt { display: flex; flex-wrap: wrap; align-items: center; row-gap: 4px; min-width: 0; font-size: 13px; color: var(--lh2-sub); }   /* 칩(검수 부탁받음 등)은 잘리지 않게 줄 바꿈 */
#page-leads .lh2-pv { flex: 1 1 120px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }   /* 본문 첫 줄 미리보기만 한 줄 말줄임 */
#page-leads .lh2-ln { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; font-size: 13px; color: var(--lh2-sub); }
#page-leads .lh2-ln .lh2-cnt::before { content: '·'; margin-right: 8px; }
#page-leads .lh2-cnt .lh-todo { color: var(--w-orange-text); font-weight: 700; }
#page-leads .lh2-cnt .lh-holdn { color: var(--w-orange-text); font-weight: 600; }
#page-leads .lh2-rem2 { display: none; }
#page-leads .lh2-c-open { color: var(--lh2-blue); }
#page-leads .lh2-c-urg { color: #E52222; }
#page-leads .lh2-c-off { color: var(--lh2-sub); }
#page-leads .lh2-c-pre { color: #C27A00; }
/* 줄 안 칩 — lhLeadTagBadges 배지 색 그대로, 크기만 작가 화면 칩(.lh2-atag) */
#page-leads .lh2-mt .wbadge { display: inline-block; margin-right: 6px; padding: 1px 7px; border-radius: 99px; font-size: 11.5px; font-weight: 700; line-height: 1.5;
  letter-spacing: 0; vertical-align: 1px; }
/* 상세 머리 카드 */
#page-leads .lh2-hero-d { padding: 14px 16px 76px; gap: 12px; }
#page-leads .lh2-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
#page-leads .lh2-bar .lh2-sp { flex: 1; }
#page-leads .lh2-acts { display: flex; gap: 6px; flex-wrap: wrap; }
#page-leads .lh2-tags { display: flex; gap: 6px; flex-wrap: wrap; padding: 4px 8px 0; }
#page-leads .lh2-tags .wbadge { padding: 3px 9px; border-radius: 99px; background: rgba(255, 255, 255, .18); color: #fff; box-shadow: none;
  font-size: 12px; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
#page-leads .lh2-tags .wbadge.lh-aud-tag { background: #fff; color: #5B37ED; }   /* 작가 전용만 흰 칩 보라 글씨 — 작가 화면과 같음 */
#page-leads .lh2-title { margin: 0; padding: 0 8px; font-size: 23px; font-weight: 700; letter-spacing: -.5px; line-height: 1.35; color: #fff; word-break: keep-all; overflow-wrap: anywhere; }
#page-leads .lh2-open { padding: 0 8px; font-size: 12.5px; color: rgba(255, 255, 255, .8); }
#page-leads .lh2-open b { color: #fff; font-weight: 700; }   /* 미검토·보류 — 어두운 바탕이라 주황 대신 흰 굵은 글씨 */
/* 상세 겹친 카드들 */
#page-leads .lh2-grid { position: relative; display: grid; gap: 14px; margin: -56px 12px 0; grid-template-columns: minmax(0, 1fr); grid-template-areas: "due" "main" "rv" "vw"; }
#page-leads .lh2-due { grid-area: due; min-width: 0; background: #fff; border-radius: 22px; padding: 18px 20px; box-shadow: var(--lh2-sh); display: flex; flex-direction: column; gap: 12px; }
#page-leads .lh2-dtop { display: flex; align-items: center; gap: 14px; }
#page-leads .lh2-dl { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#page-leads .lh2-dl span { font-size: 12.5px; font-weight: 500; color: var(--lh2-sub); }
#page-leads .lh2-dl b { font-size: 16px; font-weight: 700; color: var(--lh2-ink); }
#page-leads .lh2-dr { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; color: var(--lh2-blue); white-space: nowrap; }
#page-leads .lh2-dr b { font-size: 28px; font-weight: 700; letter-spacing: -.8px; line-height: 1; }
#page-leads .lh2-dr span { font-size: 12px; font-weight: 600; }
#page-leads .lh2-due.urgent .lh2-dr { color: #E52222; }
#page-leads .lh2-due.closed .lh2-dr { color: var(--lh2-sub); }
#page-leads .lh2-dmeta { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--lh2-line); font-size: 13px; }
#page-leads .lh2-dmeta > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
#page-leads .lh2-dk { flex: none; color: var(--lh2-sub); }
#page-leads .lh2-dmeta b { min-width: 0; font-weight: 700; color: var(--lh2-ink); text-align: right; overflow-wrap: anywhere; }
#page-leads .lh2-dmeta b small { font-weight: 500; }
#page-leads .lh2-dmeta > .lh2-dflag { justify-content: flex-start; }
#page-leads .lh2-main { grid-area: main; min-width: 0; background: #fff; border-radius: 22px; padding: 22px 20px; border: 1px solid var(--lh2-line); display: flex; flex-direction: column; gap: 12px; }
#page-leads .lh2-card { min-width: 0; margin: 0; background: #fff; border-radius: 22px; padding: 20px; border: 1px solid var(--lh2-line); box-shadow: none; display: flex; flex-direction: column; gap: 12px; }
#page-leads .lh2-rv { grid-area: rv; }
#page-leads .lh2-vw { grid-area: vw; }
#page-leads .lh2-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; font-size: 15px; line-height: 1.5; font-weight: 700; color: var(--lh2-ink); }
#page-leads .lh2-n { font-size: 13px; font-weight: 500; color: var(--lh2-sub); }
#page-leads .lh2-h .lh2-sp { flex: 1; }
#page-leads .lh2-body { font-size: 15px; line-height: 1.75; color: var(--lh2-ink2); white-space: pre-wrap; word-break: keep-all; overflow-wrap: anywhere; }
#page-leads .lh2-hr { height: 1px; background: var(--lh2-line); margin: 6px 0; }
#page-leads .lh2-main > .lh-cf, #page-leads .lh2-main > .lhw-nt.full { margin: 0; }
/* 첨부 파일 줄 = 작가 화면 첨부 줄(회색 둥근 줄) */
#page-leads .lh2-file { display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; padding: 12px 14px; border-radius: 14px; background: var(--lh2-fill-alt); margin-bottom: 8px; }
#page-leads .lh2-file:last-child { margin-bottom: 0; }
#page-leads .lh2-fkd { flex: none; padding: 3px 7px; border-radius: 8px; background: #fff; color: var(--w-ink-neutral); box-shadow: inset 0 0 0 1px var(--lh2-line);
  font-size: 11px; line-height: 14px; font-weight: 600; }
#page-leads .lh2-fn { flex: 1; min-width: 150px; }
#page-leads .lh2-fn-t { font-size: 14px; font-weight: 600; word-break: break-all; }
#page-leads .lh2-fn-t .wbadge { display: inline-block; margin-left: 6px; vertical-align: 1px; word-break: keep-all; }
#page-leads .lh2-fn-s { font-size: 12px; color: var(--lh2-sub); }
#page-leads .lh2-facts { display: flex; gap: 4px; flex-wrap: wrap; }
#page-leads .lh2-mini { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--lh2-line); background: #fff; color: var(--lh2-ink); border-radius: 9px; padding: 7px 12px;
  font-size: 12.5px; font-weight: 700; line-height: 1; letter-spacing: -0.01em; white-space: nowrap; text-decoration: none; cursor: pointer; }
#page-leads .lh2-mini:hover { background: var(--lh2-soft); color: var(--lh2-ink); }
#page-leads .lh2-mini.del { color: var(--w-red-text); }
#page-leads .lh2-mini:disabled { opacity: .45; cursor: default; }
/* 시안 검수 카드 — lhRenderReviewCard · lhRenderReviewCardDenied 가 그리는 그대로, 칸 사이는 카드 간격(12px)으로 */
#page-leads .lh2 .lh-rvcard > * { margin: 0; }
#page-leads .lh2 .lh-rvcard > .lh-rvc-who-note { margin-top: -4px; }
#page-leads .lh2 .lh-rvcard .hc-title { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 8px; font-size: 15px; line-height: 1.5; font-weight: 700; color: var(--lh2-ink); }
#page-leads .lh2 .lh-rvcard .hc-title .h2sub { font-size: 13px; font-weight: 500; color: var(--lh2-sub); }
#page-leads .lh2 .lh-rvcard .lh-head-btns { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
#page-leads .lh2 .lh-rvcard .lh-head-btns .row-btn { gap: 4px; border: 1px solid var(--lh2-line); background: #fff; color: var(--lh2-ink); border-radius: 9px; padding: 7px 12px;
  font-size: 12.5px; font-weight: 700; line-height: 1; }
#page-leads .lh2 .lh-rvcard .lh-head-btns .row-btn:hover:not(:disabled) { background: var(--lh2-soft); }
#page-leads .lh2 .lh-rvcard .lh-head-btns .lh-btn-main { height: 32px; padding: 0 14px; border-radius: 10px; font-size: 13px; font-weight: 700; line-height: 1; gap: 5px; }
#page-leads .lh2 .lh-rvcard .lh-head-btns .lh-btn-main:not(.done) { background: var(--lh2-blue); color: #fff; }   /* [시안 검토하기] = 머리 카드 색 · [✓ 검토 완료]는 지금처럼 초록 */
#page-leads .lh2 .lh-rvcard .lh-head-btns .lh-btn-main:not(.done):hover:not(:disabled) { background: #2B323D; }
#page-leads .lh2 .lh-rvcard .lh-head-btns .row-btn:disabled, #page-leads .lh2 .lh-rvcard .lh-head-btns .lh-btn-main:disabled { opacity: .4; }
#page-leads .lh2 .lh-rvcard .lh-og { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }   /* 소속별 두 칸 — 좁은 카드(폰 · PC 오른쪽 칸)라 늘 위아래 모양 */
#page-leads .lh2 .lh-rvcard .lh-og-t { min-width: 0; flex-direction: column; align-items: flex-start; gap: 6px; }
#page-leads .lh2 .lh-rvcard .lh-og-t .v { margin-left: 0; }
#page-leads .lh2 .lh-rvcard .lh-og-hint { grid-column: 1 / -1; }
#page-leads .lh2 .lh-rvcard .lh-rvc-who-k { font-weight: 700; color: var(--w-ink); }
#page-leads .lh2 .lh-rvcard .lh-rvc-who-v { order: 2; flex-basis: 100%; }   /* 버튼은 '검수 담당' 줄 오른쪽, 담당 이름·안내 글은 그 아래 한 줄 통째로 */
/* 글자 버튼(파랑) → 흰 테두리 버튼 (담당 정하기 · 검수 부탁 · 송폼 · 가사지 · 다시 백업 · 더 보기/접기) — 보이고 숨는 규칙(display)은 건드리지 않음 */
#page-leads .lh2 .lh-rvcard .lh-rv-tbtn { gap: 4px; border: 1px solid var(--lh2-line); background: #fff; color: var(--lh2-ink); border-radius: 9px; padding: 7px 12px;
  font-size: 12.5px; font-weight: 700; line-height: 1; }
#page-leads .lh2 .lh-rvcard .lh-rv-tbtn:hover:not(:disabled) { background: var(--lh2-soft); color: var(--lh2-ink); }
#page-leads .lh2 .lh-rvcard .lh-rvrow:hover { background: var(--lh2-hover); }
/* 열람 기록 카드 */
#page-leads .lh2 .lh-vmode button { border: 0; padding: 6px 12px; border-radius: 9px; background: var(--w-fill); color: var(--lh2-ink); font-size: 12.5px; font-weight: 700; line-height: 1.3; cursor: pointer; }
#page-leads .lh2 .lh-vmode button.on { background: var(--lh2-blue); color: #fff; }
#page-leads .lh2 .lh-vgroup { border-color: var(--lh2-line); padding: 9px 12px; font-size: 13.5px; }
#page-leads .lh2 .lh-vgroup:last-child { margin-bottom: 0; }
#page-leads .lh2 .lh-vgroup summary { gap: 6px 8px; }
#page-leads .lh2 .lh-vgroup summary .lh-fmeta { white-space: normal; }   /* 좁은 카드에서 숫자가 길어도 상자 밖으로 안 나가게 */
#page-leads .lh2 .lh-vgroup-body .lh-at { width: 76px; }
#page-leads .lh2 .lh-vfile { max-width: 100%; }
@media (max-width: 760px) {
  #page-leads:not(.rv-open) .home-wrap { padding: 16px 16px 36px; }   /* 폰 바깥 여백 40 → 16 (겹친 카드가 좁아지지 않게) · PC 는 그대로 */
}
@media (min-width: 1040px) {
  #page-leads .lh2-hero { padding: 32px 40px 96px; border-radius: 22px; }
  #page-leads .lh2-hd h1 { font-size: 30px; }
  #page-leads .lh2-sub { font-size: 14px; }
  #page-leads .lh2-float { margin: -68px 28px 0; }
  #page-leads .lh2-list { padding: 4px 28px 14px; }
  #page-leads .lh2-mh:first-child { padding-top: 20px; }
  #page-leads .lh2-row { display: grid; grid-template-columns: 80px minmax(0, 1fr) 130px 170px 130px; gap: 20px; align-items: center; padding: 18px 8px; }
  #page-leads .lh2-st { display: contents; }
  #page-leads .lh2-st .lh2-sp, #page-leads .lh2-rem { display: none; }
  #page-leads .lh2-lbl { display: flex; grid-column: 1; grid-row: 1; font-size: 12.5px; font-weight: 600; }
  #page-leads .lh2-tx { grid-column: 2; grid-row: 1; gap: 3px; }
  #page-leads .lh2-tt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 16.5px; }
  #page-leads .lh2-ln { display: contents; }
  #page-leads .lh2-ln .lh2-cnt::before { display: none; }
  #page-leads .lh2-dshort { grid-column: 3; grid-row: 1; font-size: 14px; color: var(--lh2-sub); white-space: nowrap; }
  #page-leads .lh2-cnt { grid-column: 4; grid-row: 1; text-align: right; font-size: 13.5px; color: var(--lh2-sub); white-space: nowrap; }
  #page-leads .lh2-rem2 { display: block; grid-column: 5; grid-row: 1; text-align: right; font-size: 15px; font-weight: 700; white-space: nowrap; }
  #page-leads .lh2-hero-d { padding: 22px 40px 100px; gap: 14px; }
  #page-leads .lh2-title { font-size: 32px; letter-spacing: -.8px; max-width: 900px; }
  #page-leads .lh2-open { font-size: 13.5px; }
  #page-leads .lh2-grid { margin: -68px 28px 0; gap: 20px; align-items: start; grid-template-columns: minmax(0, 1fr) 380px; grid-template-rows: auto auto 1fr;
    grid-template-areas: "main due" "main rv" "main vw"; }
  #page-leads .lh2-main { padding: 32px 40px; box-shadow: var(--lh2-sh); border: 0; }
  #page-leads .lh2-main .lh2-h { font-size: 18px; }
  #page-leads .lh2-main .lh2-body { font-size: 17px; line-height: 1.85; max-width: 720px; }
  #page-leads .lh2-due { padding: 22px 24px; }
  #page-leads .lh2-dl b { font-size: 20px; }
  #page-leads .lh2-dr b { font-size: 34px; }
  #page-leads .lh2-dr span { font-size: 13px; }
  #page-leads .lh2-card { padding: 20px 24px; box-shadow: var(--lh2-sh); border: 0; }
}

/* ── 리드 내용 꾸미기 (2026-10-22 사장님 시안 A) — 내용 칸 위 꾸미기 막대(내리면 따라옴) · 꾸밀 수 있는 내용 칸 · 읽는 화면의 꾸밈 모양
   색은 작가 화면(writer.html)·위메이크 앱(v363~)과 같은 값 — 형광펜 #FFEFA0 · 빨간 글씨 #E52222 (app.js LH_RICH_HL·LH_RICH_RED 와 같게) ── */
.lhw-rxbar { position: sticky; top: 0; z-index: 3; margin-top: 28px; display: flex; align-items: center; flex-wrap: wrap; gap: 2px; padding: 8px 0; background: #fff;
  border-top: 1px solid var(--w-line-neutral); border-bottom: 1px solid var(--w-line); }
.lhw-rxbar button { height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 0 11px 0 8px; margin: 0; border: 0; border-radius: 9px; background: transparent;
  font: inherit; font-size: 13.5px; font-weight: 600; color: var(--w-ink-neutral); cursor: pointer; white-space: nowrap; }
.lhw-rxbar button:hover { background: var(--w-fill); color: var(--w-ink); }
.lhw-rxbar button.on { background: #EAF2FF; color: var(--w-primary); box-shadow: inset 0 0 0 1px #B8D3FF; }
.lhw-rxbar .sep { width: 1px; height: 18px; background: var(--w-line); margin: 0 6px; }
.lhw-rxbar .tip { margin-left: auto; font-size: 12.5px; color: var(--w-ink-assist); white-space: nowrap; }
.lhw-rxbar .rx-ic { width: 22px; height: 22px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 5px;
  font-size: 14.5px; font-weight: 800; line-height: 1; color: var(--w-ink); }
.lhw-rxbar .rx-ic.u { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.lhw-rxbar .rx-ic.h { background: #FFEFA0; font-size: 13px; }
.lhw-rxbar .rx-ic.r { color: #E52222; font-size: 13px; }
.lhw-rxbar .rx-ic svg { display: block; }
.lhw .lhw-body.lhw-rich { position: relative; margin-top: 0; border-top: 0; padding-top: 22px; white-space: pre-wrap; outline: 0; cursor: text; }   /* relative(2026-10-23) — 빈 칸 안내 글(::before)이 쓰기 화면을 내려도 칸에 붙어 있게(예전엔 제자리에 남아 오른쪽 칸 위에 겹쳐 보였음) */
.lhw .lhw-rich.rx-empty::before { content: attr(data-ph); position: absolute; color: var(--w-ink-assist); pointer-events: none; }
.lhw .lhw-rich b { font-weight: 700; }
.lhw .lhw-rich u { text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.lhw-count.over { color: var(--w-red-text); font-weight: 700; }
.rx-b { font-weight: 700; color: inherit; }
.rx-u { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.rx-h { background: #FFEFA0; color: inherit; border-radius: 3px; padding: 1px 2px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.rx-r { color: #E52222; }
@media (max-width: 720px) {
  .lhw-rxbar .tip, .lhw-rxbar .sep { display: none; }
  .lhw-rxbar button { padding: 0 9px 0 6px; gap: 5px; }
}

/* ── 리드 음원 재생 바(2026-10-23) — 작가 화면 writer.html 재생 툴과 같은 모양 · 색은 작가 화면 리드 탭과 같게(재생 버튼·막대 #191F28) ── */
#lhApDock { position: fixed; left: 50%; bottom: 10px; transform: translateX(-50%); width: min(760px, calc(100% - 16px)); z-index: 48; padding-bottom: env(safe-area-inset-bottom);
  --ink: #191f28; --sub: #8b95a1; --line: #e5e8eb; --line2: #d7dde6; --bg: #f2f4f6; --primary: #191F28; --primary-soft: #e8f3ff; --primary-strong: #1b64da; --amber: #e0a100; }
body.lh-ap-on #page-leads { padding-bottom: var(--lh-ap-h, 220px); }
body.lh-ap-on .toast { bottom: calc(var(--lh-ap-h, 220px) + 4px); }
#lhApDock .ap { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; outline: none; user-select: none; -webkit-user-select: none; box-shadow: 0 8px 28px rgba(0,0,0,.18); color: var(--ink); text-align: left; }
#lhApDock .ap:focus-visible { box-shadow: 0 8px 28px rgba(0,0,0,.18), 0 0 0 2px #cfd8ff; }
#lhApDock .ap-head { display: flex; gap: 8px; align-items: center; font-size: 12.5px; }
#lhApDock .ap-name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
#lhApDock .ap-time { font-variant-numeric: tabular-nums; color: var(--sub); white-space: nowrap; }
#lhApDock .ap-time b { color: var(--ink); }
#lhApDock .ap-x { border: 0; background: var(--bg); color: var(--sub); width: 28px; height: 28px; border-radius: 50%; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; padding: 0; flex: none; cursor: pointer; }
#lhApDock .ap-bar { position: relative; height: 28px; margin: 4px 0 0; }
#lhApDock .ap-seek { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 28px; margin: 0; background: transparent; accent-color: var(--primary); cursor: pointer; -webkit-appearance: none; appearance: none; border: 0; padding: 0; }
#lhApDock .ap-seek::-webkit-slider-runnable-track { height: 6px; border-radius: 3px; background: var(--line2); }
#lhApDock .ap-seek::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; background: var(--primary); margin-top: -7px; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
#lhApDock .ap-seek::-moz-range-track { height: 6px; border-radius: 3px; background: var(--line2); }
#lhApDock .ap-seek::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: var(--primary); border: 2px solid #fff; }
#lhApDock .ap-seek:disabled { opacity: .5; }
#lhApDock .ap-loopband { position: absolute; top: 11px; height: 6px; background: var(--amber); opacity: .55; border-radius: 3px; pointer-events: none; display: none; }
#lhApDock .ap-mark { position: absolute; top: 5px; width: 3px; height: 18px; border-radius: 2px; background: var(--amber); pointer-events: none; display: none; transform: translateX(-1px); }
#lhApDock .ap-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
#lhApDock .ap-main { justify-content: center; gap: 14px; }
#lhApDock .ap-b { display: inline-flex; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--line); background: #fff; color: var(--ink); border-radius: 10px; font-weight: 800; font-size: 13px; min-height: 40px; padding: 0 14px; line-height: 1; white-space: nowrap; cursor: pointer; font-family: inherit; }
#lhApDock .ap-b:disabled { opacity: .4; cursor: default; }
#lhApDock .ap-b.on { background: var(--primary-soft); border-color: #bcd3ff; color: var(--primary-strong); }
#lhApDock .ap-play { width: 72px; height: 50px; font-size: 22px; border-radius: 14px; background: var(--primary); color: #fff; border-color: var(--primary); }
#lhApDock .ap-back, #lhApDock .ap-fwd { flex-direction: column; gap: 2px; min-width: 68px; height: 50px; padding: 0 10px; }
#lhApDock .ap-ico { font-size: 20px; line-height: 1; }
#lhApDock .ap-lbl { font-size: 11px; font-weight: 700; color: var(--sub); }
#lhApDock .ap-sm { min-height: 36px; padding: 0 11px; font-size: 12.5px; font-weight: 700; }
#lhApDock .ap-cap { font-size: 12px; font-weight: 800; color: var(--sub); margin-right: 2px; }
#lhApDock .ap-cap2 { margin-left: 6px; }
#lhApDock .ap-sub { font-size: 12px; color: var(--sub); flex-basis: 100%; }
#lhApDock .ap-loopst.on { color: #8a6d00; font-weight: 700; }
#lhApDock .ap-skip { border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-size: 12.5px; font-weight: 700; padding: 6px 6px; min-height: 36px; margin-left: auto; width: auto; font-family: inherit; }
#lhApDock .ap audio { display: none; }
@media (max-width: 480px) { #lhApDock .ap { padding: 8px 10px; } #lhApDock .ap-main { gap: 10px; } #lhApDock .ap-b { padding: 0 10px; } #lhApDock .ap-sm { padding: 0 9px; font-size: 12px; } }
