@font-face{font-family:'DSEG7';src:url('https://cdn.jsdelivr.net/npm/dseg@0.46.0/fonts/DSEG7-Classic/DSEG7Classic-BoldItalic.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
  :root {
    /* ─ 레이아웃 ─ */
    --sidebar-w: 275px; --header-h: 60px; --radius: 8px; --itd-tip-w: 292px;
    /* [4-A22 fix7] 아바타 토큰 — 4단계 (업계 표준 기준 t-shirt sizing) */
    /* sm:모바일 카드 헤더 / md:PC 테이블·시스템관리 / lg:검증 모달 / xl:프로필 모달 */
    --avatar-sm: 28px; --avatar-md: 32px; --avatar-lg: 56px; --avatar-xl: 80px;
    /* [4-A22 fix8] 입력 폼 폰트 토큰 — PC 기본, 모바일은 아래 @media에서 재정의 */
    /* input: input/select/option / sub: optgroup, helper, label */
    --text-input: 15px; --text-input-sub: 14px;
    /* ─ 컬러 ─ */
    /* ── KRDS primitive 팔레트 (krds-uiux v1.1.0 기준) — semantic이 참조하는 기준값. 직접 사용 지양 ── */
    --krds-gray-0:#ffffff; --krds-gray-5:#f4f5f6; --krds-gray-10:#e6e8ea; --krds-gray-20:#cdd1d5; --krds-gray-30:#b1b8be; --krds-gray-40:#8a949e; --krds-gray-50:#6d7882; --krds-gray-60:#58616a; --krds-gray-70:#464c53; --krds-gray-80:#33363d; --krds-gray-90:#1e2124; --krds-gray-95:#131416; --krds-gray-100:#000000;
    --krds-primary-5:#ecf2fe; --krds-primary-10:#d8e5fd; --krds-primary-20:#b1cefb; --krds-primary-30:#86aff9; --krds-primary-40:#4c87f6; --krds-primary-50:#256ef4; --krds-primary-60:#0b50d0; --krds-primary-70:#083891; --krds-primary-80:#052561; --krds-primary-90:#03163a; --krds-primary-95:#020f27;
    --krds-secondary-5:#eef2f7; --krds-secondary-10:#d6e0eb; --krds-secondary-20:#bacbde; --krds-secondary-30:#90b0d5; --krds-secondary-40:#6b96c7; --krds-secondary-50:#346fb2; --krds-secondary-60:#1c589c; --krds-secondary-70:#063a74; --krds-secondary-80:#052b57; --krds-secondary-90:#031f3f; --krds-secondary-95:#02162c;
    --krds-danger-5:#fdefec; --krds-danger-10:#fcdfd9; --krds-danger-20:#f7afa1; --krds-danger-30:#f48771; --krds-danger-40:#f05f42; --krds-danger-50:#de3412; --krds-danger-60:#bd2c0f; --krds-danger-70:#8a240f; --krds-danger-80:#5c180a; --krds-danger-90:#390d05; --krds-danger-95:#260903;
    --krds-warning-5:#fff3db; --krds-warning-10:#ffe0a3; --krds-warning-20:#ffc95c; --krds-warning-30:#ffb114; --krds-warning-40:#c78500; --krds-warning-50:#9e6a00; --krds-warning-60:#8a5c00; --krds-warning-70:#614100; --krds-warning-80:#422c00; --krds-warning-90:#2e1f00; --krds-warning-95:#241800;
    --krds-success-5:#eaf6ec; --krds-success-10:#d8eedd; --krds-success-20:#a9dab4; --krds-success-30:#7ec88e; --krds-success-40:#3fa654; --krds-success-50:#228738; --krds-success-60:#267337; --krds-success-70:#285d33; --krds-success-80:#1f4727; --krds-success-90:#122b18; --krds-success-95:#0e2012;
    --krds-information-5:#e7f4fe; --krds-information-10:#d3ebfd; --krds-information-20:#9ed2fa; --krds-information-30:#5fb5f7; --krds-information-40:#2098f3; --krds-information-50:#0b78cb; --krds-information-60:#096ab3; --krds-information-70:#085691; --krds-information-80:#053961; --krds-information-90:#03253f; --krds-information-95:#021a2c;
    --krds-point-5:#fbeff0; --krds-point-10:#f5d6d9; --krds-point-20:#ebadb2; --krds-point-30:#e0858c; --krds-point-40:#d65c66; --krds-point-50:#d63d4a; --krds-point-60:#ab2b36; --krds-point-70:#7a1f26; --krds-point-80:#521419; --krds-point-90:#310c0f; --krds-point-95:#21080a;
    /* ── 로그지지 고유색 primitive (--lz-*) — KRDS 미수록. semantic이 참조하는 기준값. 직접 사용 지양 ── */
    --lz-success-strong:#0F6E56;   /* 정산 진한 청록-녹 */
    --lz-settle-penalty:#185FA5;   /* 정산 벌금 파랑 */
    --lz-settle-insen:#E24B4A;     /* 정산 인센 빨강 */
    --lz-settle-gold:#BA7517; --lz-settle-gold-dark:#854F0B; --lz-settle-bg:#FAEEDA;
    /* [N2] 별 아이콘 전용 — settle-gold(#BA7517)는 금액 '텍스트'용이라 아이콘에 쓰면 칙칙함 */
    --lz-star:#F0A202;
    --item-tip-bg:#47476F;  /* [아이템관리] 인게임 아이템 툴팁 고정 배경 — _ensureItemTip와 동일(테마 무관, _renderItemTip 흰 글자 전제) */
    --item-tip-orange:#FB923C;  /* 툴팁 전용 주황(「강화보석 옵션 부여 적용」). 배경이 테마 무관 고정이라 --grade-orange 를 못 쓴다 —
                                   라이트 세트의 #c2410c 는 이 배경 위에서 가독이 무너진다 */
    /* 기록 콘솔 — item-tip-bg 와 같은 원칙: 터미널 연출용 고정 다크(테마 무관). 라이트 모드에서도 콘솔은 어둡다 */
    --console-bg:#0C111D; --console-border:#233049;
    --console-ok:#4ADE80; --console-no:#F87171; --console-dim:#8B96B3;
    /* 성장 롤 위계 — 대박(최대치)=보라 / 보통=주황 / +0=흰색 (아이템 등급색 위계의 콘솔판) */
    --console-tx:#E2E8F0; --console-orange:#FB923C; --console-purple:#C084FC;
    /* 터미널 크롬 신호등 (mac 스타일 장식) */
    --console-dot-r:#FF5F57; --console-dot-y:#FEBC2E; --console-dot-g:#28C840; --console-head:#161D2E;
    /* [N5] 네이버 브랜드 그린. 원색은 도형(도트/배지)용, -fg는 라이트 텍스트용 다크 변형(4.65:1) */
    --lz-brand-naver:#03C75A; --lz-brand-naver-fg:#01864C; --lz-brand-naver-bg:#e7f8ef;
    --lz-role-master:#5b21b6; --lz-role-master-bg:#ede9fe;  /* 권한 보라(특별) */
    --lz-support:#3b82f6;          /* 서폿 전투역할 */
    --lz-master-gold-bg:#fef3c7; --lz-master-gold-text:#92400e;  /* 골드 경고 */
/* 고확 전용색 (게임 고유 분홍/노랑) — KRDS 미수록 */
    --lz-gohwak-pink:#c2185b;   --lz-gohwak-pink-bg:#fce4ec;
    --lz-gohwak-gold:#b06f00;   --lz-gohwak-gold-bg:#fff3e0;
    --lz-gohwak-ch:#15803d;     --lz-gohwak-ch-bg:#dcfce7;   /* 채널 칩 초록 */
    --lz-bar-ok:#22c55e;        --lz-bar-warn:#ffb114;       /* 버닝 게이지 진행중 초록 / 주의 주황 (R8) */
    --bg: #f8f9fa; --sidebar-bg: #ffffff; --sidebar-hover: #f3f4f6; --sidebar-active: #eef2ff;
    --accent: var(--krds-primary-50); --accent-light: var(--krds-primary-5);  /* KRDS primary */
    --text: #212529; --text-sub: #6c757d; --border: #dee2e6;
    --card-bg: #fff; --surface: #fff; --surface-alt: #f9fafb; --row-line: #f3f4f6;
    /* ─ 텍스트 스케일 (4-A23 step6: 메랜지지 레퍼런스 PC 15px / 모바일 16px) ─ */
    --text-2xs:  11px;
    --text-xs:   13px;
    --text-sm:   14px;
    --text-base: 15px;   /* PC 본문 ← 룰 */
    --text-md:   16px;
    --text-lg:   19px;
    --text-xl:   23px;
    --text-2xl:  27px;
    /* ─ 줄높이 ─ */
    --leading-tight: 1.25; --leading-normal: 1.5; --leading-relaxed: 1.75;
    /* ─ 아이콘 ─ */
    --icon-sm: 16px; --icon-md: 20px; --icon-lg: 24px;
    --icon-base: 18px;                /* Material Icons 표준 */
    /* ─ 아이템 등급색 primitive (게임 원전 고유색 — hex는 이 정의부 한정, 사용처는 var() 참조. KRDS §3-9) ─
       흰색 등급은 토큰을 쓰지 않고 --text를 상속시킨다(라이트 배경 흰 글자 방지). 노랑은 흰 배경 가독 위해 채도 낮춤 */
    --grade-gray:   #6d7882;
    --grade-white:  inherit;
    --grade-orange: #c2410c;
    --grade-blue:   #1d6fd8;
    --grade-purple: #7c3aed;
    --grade-yellow: #a16207;
    --grade-green:  #15803d;
    --grade-red:    #dc2626;
    /* 주문서 성공률색 — 인게임 주문서 아이콘(노랑 10 / 빨강 60 / 파랑 100)과 호응. 등급색과 별개 축 */
    --scroll-10:  #a16207;
    --scroll-60:  #c2410c;
    --scroll-100: #1d6fd8;
    /* ─ Spacing (작업 2A, 값기반 명명) ─ */
    /* --space-6=촘촘한 레이아웃, --space-8=표준 간격 (컨벤션 9에서 정식 가이드) */
    --space-4: 4px;
    --space-6: 6px;
    --space-8: 8px;
    --space-10: 10px;
    --space-12: 12px;
    --space-14: 14px;
    --space-16: 16px;
    --space-20: 20px;
    --space-24: 24px;
    /* ─ Radius (작업 2A) ─ */
    /* --radius=8px 기존 표준 유지 */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 12px;
    --radius-xl: 20px;
    --radius-pill: 999px;
    /* ─ Border 두께 (작업 2A, 1px=인라인 표준 유지) ─ */
    --border-thin: 0.5px;
    --border-medium: 1.5px;
    --border-thick: 2px;
    /* ─ 시멘틱 색상 (작업 2B) — KRDS primitive 참조 ─ */
    --color-success: var(--krds-success-50);
    --color-success-strong: var(--lz-success-strong);  /* 정산 시트 전용 진한 청록-녹 */
    --color-settle-penalty: var(--lz-settle-penalty);  /* 정산 전용 — 벌금/수수료 파랑 (한국식 음수▼) */
    --color-settle-insen: var(--lz-settle-insen);    /* 정산 전용 — 인센/교환 빨강 (한국식 양수▲) */
    --color-success-bg: var(--krds-success-5);
    --color-warn: var(--krds-warning-50);
    --color-warn-bg: var(--krds-warning-5);
    --color-warn-bg-subtle: rgba(158, 106, 0, 0.06);
    --color-danger: var(--krds-danger-50);        /* 위험 강 — 삭제 버튼, confirm */
    --color-danger-light: var(--krds-danger-40);  /* 위험 보조 — 휴지통 아이콘 등 */
    --color-danger-bg: var(--krds-danger-5);
    --color-danger-bg-subtle: rgba(222, 52, 18, 0.06);
    --color-info: var(--accent);
    --color-info-bg: var(--krds-information-5);
    /* ─ 정산 도메인 색상 (작업 2B) ─ */
    --color-settle-gold: var(--lz-settle-gold);
    --color-settle-gold-dark: var(--lz-settle-gold-dark);
    --color-settle-bg: var(--lz-settle-bg);
    /* ─ 정산 득실(得失) 색상 — 획득=초록 / 손실=빨강 (주식 방향색 폐기) ─ */
    --color-settle-gain: var(--color-success);   /* 인센·양수·받는 분배금 */
    --color-settle-loss: var(--color-danger);    /* 벌금·수수료·지출·음수 분배 */
    --color-settle-gain-bg: rgba(34,135,56,0.12);
    --color-settle-loss-bg: rgba(222,52,18,0.10);
    /* ─ 권한 레벨 색상 (회색 명도 위계 + 마스터 보라) ─ */
    --role-master: var(--lz-role-master);       --role-master-bg: var(--lz-role-master-bg);   /* 사이트마스터 — 보라(특별) */
    --role-leader: #1e2124;       --role-leader-bg: #e6e8ea;   /* 공대장 — gray-90 */
    --role-vice: #58616a;         --role-vice-bg: #e6e8ea;     /* 부공대장 — gray-60 */
    --role-member: #58616a;       --role-member-bg: #f4f5f6;   /* 공대원 — gray-60/5 */
    --role-guest: #6d7882;        --role-guest-bg: #f4f5f6;    /* 손님 — gray-50/5 */
    /* 전투역할(딜러/서폿)은 권한과 별개 축 — 유지 */
    --color-support: var(--lz-support);  /* 서폿 — 전투역할 (딜러 success와 대칭) */
    --color-member: #2563eb;   /* (전투역할 잔재 — roleFg용) */
    --color-master-bg: var(--lz-master-gold-bg);
    --color-master-text: var(--lz-master-gold-text);
  }
  /* ── 모바일 폰트 (step15: 모바일은 한 단계 다운, PC 15는 유지) ── */
  /* ※ --text-input은 별도 토큰으로 16px 유지 (iOS Safari zoom 회피) */
  @media (max-width: 768px) {
    :root {
      --text-2xs: 10px; --text-xs: 12px; --text-sm: 13px;
      --text-base: 14px;   /* 모바일 본문 ← 룰 */
      --text-md:   15px;
      --text-lg: 17px; --text-xl: 20px; --text-2xl: 24px;
    }
    /* [모바일 폼요소 자동확대 보정] 모바일 브라우저가 input/select 폰트를 16px로 강제 부풀리는 현상 차단.
       mb-builder(메뉴 구조 편집) 라벨/그룹 input·select가 토큰값을 따르도록 명시. PC는 미디어쿼리 밖이라 불변. */
    #mbBuilder .mb-item-name,
    #mbBuilder .mb-group-name { font-size: var(--text-sm); }
    #mbBuilder .mb-groupsel { font-size: var(--text-2xs); }
  }
  @media (max-width: 480px) {
    :root {
      --text-2xs: 10px; --text-xs: 11px; --text-sm: 12px;
      --text-base: 13px;
      --text-md:   14px;
      --text-lg: 16px; --text-xl: 18px; --text-2xl: 22px;
    }
    /* [모바일 폼요소 자동확대 보정 - 480px] 위 768px와 동일 의도, 작은 폰 구간 보존 */
    #mbBuilder .mb-item-name,
    #mbBuilder .mb-group-name { font-size: var(--text-sm); }
    #mbBuilder .mb-groupsel { font-size: var(--text-2xs); }
  }
  [data-theme="dark"] { --bg: #0f1117; --card-bg: #1a1d23; --sidebar-bg: #111318; --sidebar-hover: #1e2128; --sidebar-active: #252830; --surface: #1e2128; --surface-alt: #161920; --row-line: #252830; --text: #e5e7eb; --text-sub: #9ca3af; --border: #2d3139; --accent-light: #1a3256; }
  /* 색상 토큰 다크 매핑 (작업 2B) — --color-info는 var(--accent) 자동 매핑 */
  [data-theme="dark"] {
    /* ── 아이템 등급색 다크 재정의 (KRDS §3-9) — 파랑·보라 밝게 보정, 어두운 배경이라 노랑은 원색 복귀 ── */
    --grade-gray:   #9ca3af;
    --grade-orange: #fb923c;
    --grade-blue:   #60a5fa;
    --grade-purple: #c084fc;
    --grade-yellow: #fbbf24;
    --grade-green:  #4ade80;
    --grade-red:    #f87171;
    --scroll-10:  #fbbf24;
    --scroll-60:  #fb923c;
    --scroll-100: #60a5fa;
    /* ── 고유색 primitive 다크 재정의 (--lz-*) ── */
    --lz-success-strong:#1f9e7a;   /* 다크: 진한녹 가독성 위해 한 톤 밝게 */
    --lz-settle-penalty:#5b9bd5;   /* 다크: 벌금 파랑 밝게 */
    --lz-settle-insen:#f87171;     /* 다크: 인센 빨강 밝게 */
    --lz-settle-gold:#fbbf24; --lz-settle-gold-dark:#78350f; --lz-settle-bg:#3d2800;
    --lz-star:#fbbf24;
    /* 다크는 원색 그대로 8.38:1 확보 → fg도 원색 사용 */
    --lz-brand-naver:#03C75A; --lz-brand-naver-fg:#03C75A; --lz-brand-naver-bg:#06301c;
    --lz-role-master:#cabffb; --lz-role-master-bg:#3c2e6b;
    --lz-support:#60a5fa;
    --lz-master-gold-bg:#3d2800; --lz-master-gold-text:#fbbf24;
/* 고확 전용색 다크 (파티칩 1·2파티 톤과 동일 계열) */
    --lz-gohwak-pink:#f9a8d4;   --lz-gohwak-pink-bg:#6e0f38;
    --lz-gohwak-gold:#fdba74;   --lz-gohwak-gold-bg:#6e3d08;
    --lz-gohwak-ch:#86efac;     --lz-gohwak-ch-bg:#14532d;   /* 채널 칩 초록(다크) */
    --color-success: var(--krds-success-40);
    --color-success-strong: var(--lz-success-strong);  /* 다크: 진한녹 가독성 위해 한 톤 밝게 */
    --color-settle-penalty: var(--lz-settle-penalty);  /* 다크: 벌금 파랑 밝게 */
    --color-settle-insen: var(--lz-settle-insen);    /* 다크: 인센 빨강 밝게 */
    --color-success-bg: #052e1c;
    --color-warn: var(--krds-warning-30);
    --color-warn-bg: #2d1f00;
    --color-warn-bg-subtle: rgba(255, 177, 20, 0.10);
    --color-danger: var(--krds-danger-40);
    --color-danger-light: var(--krds-danger-30);
    --color-danger-bg: #2d0a0a;
    --color-danger-bg-subtle: rgba(240, 95, 66, 0.14);
    --color-info-bg: #0a1e3d;
    --color-settle-gold: var(--lz-settle-gold);
    --color-settle-gold-dark: var(--lz-settle-gold-dark);
    --color-settle-bg: var(--lz-settle-bg);
    --color-settle-gain: var(--color-success);   /* 다크: 획득 초록 */
    --color-settle-loss: var(--color-danger);    /* 다크: 손실 빨강 */
    --color-settle-gain-bg: rgba(74,222,128,0.15);
    --color-settle-loss-bg: rgba(240,95,66,0.15);
    --role-master: var(--lz-role-master);       --role-master-bg: var(--lz-role-master-bg);   /* 사이트마스터 — 보라 */
    --role-leader: #1e2124;       --role-leader-bg: #cdd1d5;   /* 공대장 — 밝게(상위) */
    --role-vice: #131416;         --role-vice-bg: #8a949e;     /* 부공대장 */
    --role-member: #e6e8ea;       --role-member-bg: #464c53;   /* 공대원 */
    --role-guest: #b1b8be;        --role-guest-bg: #2d3139;    /* 손님 */
    --color-support: var(--lz-support);  /* 서폿 전투역할 */
    --color-member: #60a5fa;   /* (전투역할 잔재) */
    --color-master-bg: var(--lz-master-gold-bg);
    --color-master-text: var(--lz-master-gold-text);
  }
  [data-theme="dark"] .sidebar { border-right: 1px solid var(--border); }
  [data-theme="dark"] body { background: var(--bg); color: var(--text); }
  [data-theme="dark"] .btn-outline, [data-theme="dark"] .class-tab, [data-theme="dark"] .item-tab { background: var(--surface); color: var(--text-sub); border-color: var(--border); }
  [data-theme="dark"] .search-input { background: var(--surface); color: var(--text); border-color: var(--border); }
  [data-theme="dark"] .autocomplete-list { background: var(--surface); border-color: var(--border); }
  [data-theme="dark"] .ht-card { background: var(--surface); box-shadow: 0 2px 12px rgba(0,0,0,.3); }
  [data-theme="dark"] .modal { background: var(--surface); }
  [data-theme="dark"] .alert { background: #1a2535; border-color: #374151; color: #fbbf24; }
  [data-theme="dark"] .header { background: var(--card-bg); border-color: var(--border); }
  [data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea { background-color: var(--surface); color: var(--text); border-color: var(--border); }
  [data-theme="dark"] .hamburger { color: var(--text); }
  [data-theme="dark"] .mobile-page-title { color: var(--text); }
  [data-theme="dark"] .badge-green  { background: #052e1c; color: #34d399; }
  [data-theme="dark"] .badge-yellow { background: #2d1f00; color: #fbbf24; }
  [data-theme="dark"] .badge-red    { background: #2d0a0a; color: #f87171; }
  [data-theme="dark"] .badge-blue   { background: #1a3256; color: #60a5fa; }
  [data-theme="dark"] .badge-gray   { background: #252830; color: #9ca3af; }
  [data-theme="dark"] .btn-outline:hover { background: #252830; }
  [data-theme="dark"] .class-tab:hover, [data-theme="dark"] .class-tab.active { background: #1a3256; color: #60a5fa; border-color: #1a3256; }
  [data-theme="dark"] .item-tab:hover,  [data-theme="dark"] .item-tab.active  { background: #1a3256; color: #60a5fa; border-color: #1a3256; }
  [data-theme="dark"] .quicknav-item { background: #1e2128; border-color: var(--border); }
  [data-theme="dark"] .quicknav-item:hover { background: #0a1e3d; border-color: #1e3a5f; }
  /* 보라색 배지 (혼테일 24시간) */
  [data-theme="dark"] .badge-purple { background: #1e1040; color: #a78bfa; }
  /* tbody row hover */
  [data-theme="dark"] tbody tr:hover { background: var(--surface-alt); }
  /* 혼테일 타이머 버튼 */
  [data-theme="dark"] .sidebar-search-input { background: var(--sidebar-hover); color: #e9ecef; }
  [data-theme="dark"] tbody td { color: var(--text); border-bottom-color: var(--row-line); }
  [data-theme="dark"] thead th { background: var(--surface-alt); color: var(--text-sub); border-bottom-color: var(--border); }
  /* 인라인 배경색 다크모드 오버라이드 */
  [data-theme="dark"] [style*="background:#fffbeb"] { background: #2d1f00 !important; }
  [data-theme="dark"] [style*="background:#ecfdf5"] { background: #052e1c !important; }
  [data-theme="dark"] [style*="background:#fef2f2"] { background: #2d0a0a !important; }
  [data-theme="dark"] [style*="background:#eff6ff"] { background: #0a1e3d !important; }
  [data-theme="dark"] [style*="background:#fff7ed"] { background: #2d1800 !important; }
  [data-theme="dark"] [style*="background:#fdf4ff"] { background: #1e1040 !important; }
  [data-theme="dark"] [style*="background:#f8fafc"] { background: #161920 !important; }
  [data-theme="dark"] [style*="background:#f0fdf4"] { background: #052e1c !important; }
  [data-theme="dark"] [style*="background:#fefce8"] { background: #2d2000 !important; }
  [data-theme="dark"] [style*="background:#f3f4f6"] { background: var(--surface-alt) !important; }
  [data-theme="dark"] [style*="background:#fff"] { background: var(--surface) !important; }
  [data-theme="dark"] [style*="background: #fff"] { background: var(--surface) !important; }
  /* 빠른 이동 아이콘 */
  [data-theme="dark"] .quicknav-icon { background: var(--surface-alt) !important; }
  /* 그리드 토글 버튼 */
  [data-theme="dark"] .view-toggle { border-color: var(--border); }
  [data-theme="dark"] .view-toggle button { background: var(--surface); color: var(--text-sub); }
  [data-theme="dark"] .view-toggle button:hover:not(.active) { background: var(--surface-alt); }
  /* 혼테일 타이머 */
  [data-theme="dark"] .ht-cards { background: #0d1017; }
  [data-theme="dark"] .ht-section-header { background: #0d1017; }
  [data-theme="dark"] .ht-card { background: var(--surface); box-shadow: 0 2px 12px rgba(0,0,0,.4); }
  [data-theme="dark"] .ht-card-time { color: var(--text); }
  [data-theme="dark"] .ht-edit-btn { background:transparent; border-color:rgba(255,255,255,.22); color:var(--text-sub); }
  [data-theme="dark"] .ht-edit-btn:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.4); color:var(--text); }
  /* 아이템 탭/클래스 탭 */
  [data-theme="dark"] .class-tab { background: var(--surface); }
  [data-theme="dark"] .item-tab { background: var(--surface); }
  /* 검색 입력 / 셀렉트 */
  [data-theme="dark"] .search-input { background: var(--surface); color: var(--text); }
  [data-theme="dark"] select { background-color: var(--surface); color: var(--text); color-scheme: dark; }
  [data-theme="dark"] input { color-scheme: dark; }
  [data-theme="dark"] .autocomplete-list { background: var(--surface); border-color: var(--border); }
  /* 손님 신청 아이템 체크박스 */
  [data-theme="dark"] .guest-item-cb { background: var(--surface); border-color: var(--border); color: var(--text); }
  /* 모달 */
  [data-theme="dark"] .modal { background: var(--surface); }
  [data-theme="dark"] .modal-overlay { background: rgba(0,0,0,.6); }
  /* 테이블 */
  [data-theme="dark"] .dash-member-table th { background: var(--surface-alt); color: var(--text-sub); border-bottom-color: var(--border); }
  [data-theme="dark"] .dash-member-table td { border-bottom-color: var(--row-line); color: var(--text); }
  [data-theme="dark"] .dash-member-table tbody tr:hover { background: var(--surface-alt); }
  /* 공대 상태 배지 인라인 오버라이드 */
  [data-theme="dark"] .raid-status-badge.inprogress { background: #2d1800; color: #fb923c; }
  [data-theme="dark"] .raid-status-badge.done { background: #1a1d23; color: #6b7280; }
  /* btn-outline */
  [data-theme="dark"] .btn-outline { background: var(--surface); color: var(--text-sub); border-color: var(--border); }
  /* header-right 구분선 */
  [data-theme="dark"] .header-right { color: var(--text); }
  /* 알림 배너 */
  [data-theme="dark"] .alert { background: #1a2535; border-color: #374151; color: #fbbf24; }
  /* 테마 토글 버튼 */
  .theme-toggle { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border); background: var(--card-bg); color: var(--text-sub); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s, color .15s; flex-shrink: 0; }
  .theme-toggle:hover { background: var(--accent-light); color: var(--accent); }
  .theme-toggle .material-icons { font-size: var(--icon-md); }
  /* 문의 메일 아이콘 — 테마 토글과 동일 스타일, 미확인 알림 점 지원 (마스터만) */
  .inquiry-btn { position: relative; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--border); background: var(--card-bg); color: var(--text-sub); cursor: pointer; display: none; align-items: center; justify-content: center; transition: background .15s, color .15s; flex-shrink: 0; }
  .inquiry-btn.active { display: flex; }
  .inquiry-btn:hover { background: var(--accent-light); color: var(--accent); }
  .inquiry-btn .material-icons { font-size: var(--icon-md); }
  .inquiry-btn .inquiry-dot { display: none; position: absolute; top: 3px; right: 3px; width: 8px; height: 8px; border-radius: 50%; background: var(--color-danger, #ef4444); border: 1.5px solid var(--card-bg); }
  .inquiry-btn.has-unread .inquiry-dot { display: block; }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  /* 다크모드 토글 시 부드러운 색상 전환 — 컨벤션 규칙 9 (디자인 토큰 시스템 일관성) */
  /* prefers-reduced-motion 존중. 명시 셀렉터(hover transition 등) specificity 우위로 충돌 없음 */
  @media (prefers-reduced-motion: no-preference) {
    *, *::before, *::after {
      transition: background-color .2s ease, color .2s ease, border-color .2s ease;
    }
  }
  html, body { overflow-x: hidden; }
  body { font-family: 'Roboto', 'Pretendard GOV', -apple-system, sans-serif; background: var(--bg); color: var(--text); font-size: var(--text-base); line-height: var(--leading-normal); letter-spacing: -0.01em; }

  /* ===== LEFT: Sidebar (공통) ===== */
  .sidebar { width: var(--sidebar-w); background: var(--sidebar-bg); position: fixed; top: 0; left: 0; height: 100vh; display: flex; flex-direction: column; z-index: 50; overflow-y: auto; }
  /* [라이트 모드 사이드바] 흰색 배경 + 어두운 텍스트 */
  :root:not([data-theme="dark"]) .sidebar { border-right: 1px solid #dee2e6; }
  :root:not([data-theme="dark"]) .sidebar-logo { border-bottom-color: #dee2e6; }
  :root:not([data-theme="dark"]) .sidebar-logo .logo-text { color: #161618; }
  :root:not([data-theme="dark"]) .sidebar-logo .logo-ver { color: var(--text-sub); }
  :root:not([data-theme="dark"]) .nav-section { color: var(--text-sub); }
  :root:not([data-theme="dark"]) .nav-item { color: #161618; }
  :root:not([data-theme="dark"]) .nav-item:hover { color: #161618; }
  :root:not([data-theme="dark"]) .nav-item.active { background: #f1f3f5; color: #212529; font-weight: 600; }
  :root:not([data-theme="dark"]) .nav-accordion { color: #161618; }
  :root:not([data-theme="dark"]) .nav-accordion:hover { color: #161618; }
  :root:not([data-theme="dark"]) .nav-tree-raid { color: #161618; }
  :root:not([data-theme="dark"]) .nav-tree-raid:hover { color: #161618; }
  :root:not([data-theme="dark"]) .nav-tree-raid.active { background: #f1f3f5; color: #212529; font-weight: 600; }
  :root:not([data-theme="dark"]) .nav-empty-cta { border-color: #d1d5db; }
  .sidebar-logo { padding: 20px 20px 16px; display: flex; align-items: center; gap: var(--space-10); border-bottom: 1px solid #2d3139; }
  .sidebar-logo .logo-icon { width: 36px; height: 36px; border-radius: var(--radius); display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
  .sidebar-logo .logo-icon img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); }
  .sidebar-logo .logo-text { color: #fff; font-size: var(--text-lg); font-weight: 700; }
  .sidebar-logo .logo-ver { color: var(--text-sub); font-size: var(--text-xs); }

  .sidebar-nav { flex: 1; padding: 12px 0; }
  /* [그룹 라벨 → 구분선] 텍스트 숨김, 위쪽 얇은 라인으로 그룹 분리 */
  .nav-section { padding: 0; margin: 12px 16px; height: 1px; background: #e5e7eb; font-size: 0; color: transparent; overflow: hidden; }
  :root:not([data-theme="dark"]) .nav-section { background: #dee2e6; }
  [data-theme="dark"] .nav-section { background: #2d3139; }
  .nav-item { display: flex; align-items: center; padding: 11px 16px; margin: 2px 8px; color: var(--text-sub); font-size: var(--text-md); cursor: pointer; border-radius: var(--radius); transition: all .15s; gap: var(--space-10); text-decoration: none; }
  .nav-item:hover { background: var(--sidebar-hover); color: #e5e7eb; }
  .nav-item.active { background: var(--sidebar-active); color: #fff; font-weight: 600; }
  .nav-item .nav-icon { width: 20px; text-align: center; font-size: var(--text-md); display:flex; align-items:center; justify-content:center; }
  .nav-item .nav-icon .material-icons,
  .nav-accordion .nav-icon .material-icons { font-size: 18px; }

  .nav-accordion { cursor: pointer; display: flex; align-items: center; padding: 11px 16px; margin: 2px 8px; color: var(--text-sub); font-size: var(--text-md); border-radius: var(--radius); transition: all .15s; gap: var(--space-10); user-select: none; }
  .nav-accordion:hover { background: var(--sidebar-hover); color: #e5e7eb; }
  .nav-accordion.open { color: #fff; }
  .nav-accordion .arr { margin-left: auto; font-size: var(--text-2xs); transition: transform .2s; }
  .nav-accordion.open .arr { transform: rotate(90deg); }
  .acc-body { max-height: 0; overflow: hidden; transition: max-height .25s ease; }
  .acc-body.open { max-height: 200px; }
  #accSysAdmin.open { max-height: 300px; }
  .acc-body .nav-item { padding-left: 48px; font-size: var(--text-md); }

  /* ===== Nav Divider ===== */
  .nav-divider { height: 1px; background: #2d3139; margin: 6px 16px; }
  :root:not([data-theme="dark"]) .nav-divider { background: #dee2e6; }
  .nav-divider-soft { height: 1px; background-color: rgba(255, 255, 255, 0.05); border: none; margin: 6px 12px; }
  body.sidebar-collapsed .nav-divider-soft { margin: 6px 8px; }

  /* ===== Nav Badge ===== */
  .nav-badge { margin-left: auto; min-width: 18px; height: 18px; padding: 0 5px; background: var(--color-danger-light); color: #fff; font-size: var(--text-2xs); font-weight: 700; border-radius: 9px; display: flex; align-items: center; justify-content: center; line-height: 1; }
  .nav-badge:empty, .nav-badge[data-count="0"] { display: none; }

  /* ===== Sidebar Collapse ===== */
  .sidebar { transition: width .25s ease; }
  .layout { transition: margin-left .25s ease; }

  .sidebar-top-bar { height: var(--header-h); display: flex; align-items: center; justify-content: space-between; padding: 0 14px; border-bottom: 1px solid #2d3139; flex-shrink: 0; }
  :root:not([data-theme="dark"]) .sidebar-top-bar { border-bottom-color: #dee2e6; }
  .sidebar-top-label { font-size: var(--text-2xs); font-weight: 700; color: var(--text-sub); text-transform: uppercase; letter-spacing: 1.2px; white-space: nowrap; overflow: hidden; }
  .sidebar-collapse-btn { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; background: transparent; border: none; border-radius: var(--radius); color: var(--text-sub); cursor: pointer; flex-shrink: 0; transition: background .15s, color .15s; }
  .sidebar-collapse-btn:hover { background: #2d3139; color: #e5e7eb; }
  :root:not([data-theme="dark"]) .sidebar-collapse-btn:hover { background: #dee2e6; color: #161618; }
  .sidebar-collapse-btn .material-icons { font-size: var(--icon-lg); transition: transform .25s; }

  /* 사이드바 검색 */
  .sidebar-search-wrap { padding: 8px 10px; border-bottom: 1px solid #2d3139; flex-shrink: 0; }
  :root:not([data-theme="dark"]) .sidebar-search-wrap { border-bottom-color: #dee2e6; }
  .sidebar-search-box { display: flex; align-items: center; gap: var(--space-6); background: #25282f; border: 1px solid #3a3d45; border-radius: var(--radius); padding: 7px 10px; transition: border-color .15s; }
  .sidebar-search-box:focus-within { border-color: #4b78d4; }
  .sidebar-search-box .material-icons { font-size: var(--icon-sm); color: var(--text-sub); flex-shrink: 0; }
  .sidebar-search-input { background: none; border: none; outline: none; color: #e5e7eb; font-size: var(--text-sm); flex: 1; min-width: 0; }
  .sidebar-search-input::placeholder { color: #161618; }
  .sidebar-search-clear { background: none; border: none; cursor: pointer; color: var(--text-sub); padding: 0; display: flex; align-items: center; transition: color .15s; }
  .sidebar-search-clear:hover { color: var(--text-sub); }
  .sidebar-search-clear .material-icons { font-size: 15px; }
  .nav-item.search-hidden, .nav-accordion.search-hidden, .nav-section.search-hidden, .acc-body.search-hidden { display: none !important; }
  .nav-item.search-match { background: #2a3a5a !important; }
  body.sidebar-collapsed .sidebar-search-wrap { display: none; }
  body.sidebar-collapsed #sidebarSearchBtnRow { display: none; }
  /* 내 공대 관리 탭바 */
  #myRaidTabBar { padding: 0 24px; border-bottom: var(--border-thick) solid var(--border); background: var(--card-bg); margin-bottom: 8px; position: sticky; top: var(--header-h); z-index: 39; }
  /* 탭바 아래 페이지 콘텐츠 상단 여백 */
  /* ── 대시보드 레이아웃 ── */
  .dash-main-grid { display: flex; flex-direction: column; gap: var(--space-14); }
  .dash-top-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-14); align-items: stretch; }
  .dash-yt-panel { padding: 0 !important; overflow: hidden; border-radius: var(--radius); margin-bottom: 0 !important; display: flex; flex-direction: column; min-height: 0; }
  .dash-yt-wrap { width: 100%; flex: 1; min-height: 160px; background: #bfdbfe; border-radius: var(--radius); overflow: hidden; }
  .dash-yt-wrap iframe { width: 100%; height: 100%; border: none; display: block; }
  [data-theme="dark"] .dash-yt-wrap { background: #1a3256; }
  .dash-notice-panel { overflow: hidden; margin-bottom: 0 !important; display: flex; flex-direction: column; }
  .dash-notice-panel .notice-list { flex: 1; overflow-y: auto; }
  .dash-right-col { margin-bottom: 0 !important; display: flex; flex-direction: column; }
  .dash-member-widget { margin-bottom: 0 !important; }
  .dash-coming-soon   { margin-bottom: 0 !important; }
  .dash-quicknav      { margin-bottom: 0 !important; }
  .quicknav-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: var(--space-8); }
  .quicknav-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-6); padding: 14px 8px; border-radius: var(--radius-md); background: var(--surface-alt); border: 1px solid var(--border); cursor: pointer; transition: all .15s; text-decoration: none; text-align: center; }
  .quicknav-item:hover { background: var(--accent-light); border-color: #bfdbfe; }
  .quicknav-item:hover .qn-label { color: var(--accent); }
  .quicknav-icon { width: 36px; height: 36px; border-radius: var(--radius); display: flex; align-items: center; justify-content: center; font-size: var(--text-xl); flex-shrink: 0; }
  .qn-label { font-size: var(--text-xs); font-weight: 600; color: var(--text); }
  .qn-sub   { display: none; }
  .dash-member-stats { display: flex; gap: var(--space-10); margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
  .dash-member-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
  .dash-member-table th { background: var(--surface-alt); color: var(--text-sub); font-size: var(--text-2xs); font-weight: 600; padding: 7px 10px; text-align: left; border-bottom: 1px solid var(--border); }
  .dash-member-table td { padding: 8px 10px; border-bottom: 1px solid var(--row-line); color: var(--text); vertical-align: middle; }
  .dash-member-table tbody tr:last-child td { border-bottom: none; }
  .dash-member-table tbody tr:hover { background: var(--surface-alt); }
  @media (max-width: 900px) { .dash-top-row { grid-template-columns: 1fr 1fr; } .dash-right-col { grid-column: 1 / -1; } .quicknav-grid { grid-template-columns: repeat(4, 1fr); } }
  @media (max-width: 768px) { .dash-top-row { grid-template-columns: 1fr; } .dash-right-col { grid-column: auto; } .dash-member-widget, .dash-coming-soon, .dash-quicknav { width: 100%; box-sizing: border-box; } .quicknav-grid { grid-template-columns: repeat(4, 1fr); } }
  @media (max-width: 480px) { .quicknav-grid { grid-template-columns: repeat(2, 1fr); } }
  .raid-sub-menu { display: none !important; }
  .raid-sub-menu.raid-visible { display: flex !important; }

  /* 공대 카드 상태 배지 */
  @keyframes pulseRing {
    0%   { box-shadow: 0 0 0 0 rgba(5,150,105,.5); }
    70%  { box-shadow: 0 0 0 7px rgba(5,150,105,0); }
    100% { box-shadow: 0 0 0 0 rgba(5,150,105,0); }
  }
  .raid-status-badge { display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius: var(--radius-xl);font-size:var(--text-xs);font-weight:700;flex-shrink:0; }
  .raid-status-badge.recruiting { background:var(--color-success-bg);color:var(--color-success); }
  .raid-status-badge.recruiting .pulse-dot { width:7px;height:7px;border-radius:50%;background:var(--color-success);animation:pulseRing 1.6s ease-in-out infinite; }
  .raid-status-badge.inprogress { background:#fff7ed;color:var(--color-warn); }
  .raid-status-badge.done { background:#f3f4f6;color:var(--text-sub); }
  /* 슬롯 */
  .raid-slots { display:flex;gap:5px;flex-wrap:wrap;margin:10px 0 14px; }
  .raid-slot-filled { width:30px;height:30px;border-radius: var(--radius);background:var(--accent-light);display:flex;align-items:center;justify-content:center;font-size:var(--text-base); }
  .raid-slot-empty { width:30px;height:30px;border-radius: var(--radius);background:var(--bg);border: var(--border-medium) dashed var(--border);display:flex;align-items:center;justify-content:center;font-size:var(--text-md);color:var(--text-sub); }
  /* 손님/공대원 신청 모달 */
  .guest-item-grid { display:grid;grid-template-columns:1fr 1fr;gap: var(--space-8);max-height:260px;overflow-y:auto;margin-top:8px; }
  .guest-item-cb { display:flex;align-items:center;gap: var(--space-8);padding:8px 10px;border: var(--border-medium) solid var(--border);border-radius: var(--radius);cursor:pointer;font-size:var(--text-sm);transition:.15s; }
  .guest-item-cb:hover { border-color:var(--accent);background:var(--accent-light); }
  .guest-item-cb input { accent-color:var(--accent); }
  .guest-step { display:none; }
  .guest-step.active { display:block; }
  /* 스킬공격력 숨기기 (서폿) */
  .skill-atk-wrap.hidden { display:none !important; }

  /* 접힌 상태 */
  body.sidebar-collapsed { --sidebar-w: 64px; }
  body.sidebar-collapsed .sidebar { overflow: hidden; }
  body.sidebar-collapsed .sidebar-top-bar { justify-content: center; }
  body.sidebar-collapsed .sidebar-top-label { display: none; }
  body.sidebar-collapsed .sidebar-logo { justify-content: center; padding: 18px 0 14px; gap: 0; }
  body.sidebar-collapsed .sidebar-logo > div:not(:first-child) { display: none; }
  body.sidebar-collapsed .nav-section { opacity: 0; height: 0; padding: 0; overflow: hidden; }
  body.sidebar-collapsed .nav-label { display: none; }
  body.sidebar-collapsed .arr { display: none; }
  body.sidebar-collapsed .nav-item { justify-content: center; padding: 11px 0; margin: 2px 4px; }
  body.sidebar-collapsed .nav-accordion { justify-content: center; padding: 11px 0; margin: 2px 4px; }
  body.sidebar-collapsed .acc-body { max-height: 0 !important; }
  body.sidebar-collapsed .nav-badge { display: none !important; }
  body.sidebar-collapsed .nav-divider { margin: 6px 8px; }
  body.sidebar-collapsed .sidebar-collapse-btn .material-icons { transform: rotate(180deg); }

  /* 접힌 상태에서 아이콘 툴팁 */
  body.sidebar-collapsed .nav-item,
  body.sidebar-collapsed .nav-accordion { position: relative; }

  /* [⑤-B] 온보딩 풀스크린 모드 — 사이드바/레이아웃 슬라이드 아웃 */
  body.onboarding-active .sidebar { transform: translateX(-100%); transition: transform .3s; }
  body.onboarding-active .layout { margin-left: 0 !important; transition: margin-left .3s; }
  body.onboarding-active .nav-item,
  body.onboarding-active .nav-accordion { pointer-events: none; }

  /* [⑤-B] 온보딩 풀스크린 셸 */
  .ob-page { position: fixed; inset: 0; background: var(--surface, #fff); z-index: 100; display: flex; flex-direction: column; }
  /* [⑤-B fix] 온보딩 활성 시 기존 모달이 위에 뜨도록 z-index 부스트 */
  body.onboarding-active .modal-overlay { z-index: 200 !important; }

  /* [⑤-B fix] 온보딩 모드에서 #myCharModal을 풀스크린 인라인 폼처럼 */
  body.onboarding-active #myCharModal { background: transparent; }
  body.onboarding-active #myCharModal .modal { background: transparent; border: 1px solid var(--border); border-radius: 12px; box-shadow: none; max-height: none; }
  body.onboarding-active.ob-modal-open .ob-view[data-step="mychar"] { display: none; }

  /* [⑤-B] 온보딩 주요 CTA 통일 (48px) */
  .ob-cta-btn { min-height: 48px; font-size: var(--text-md); padding: 0 24px; }
  .ob-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; border-bottom: var(--border-thin) solid var(--border); }
  .ob-header-logo { font-size: var(--text-md); font-weight: 600; color: var(--text); }
  .ob-header-avatar { width: 28px; height: 28px; border-radius: 50%; background: var(--accent-light); }
  .ob-content { flex: 1 1 auto; min-height: calc(100vh - 60px); display: flex; align-items: center; justify-content: center; padding: 40px 24px; overflow-y: auto; }
  .ob-content-inner { width: 100%; max-width: 440px; text-align: center; }
  @media (max-width: 480px) {
    .ob-header { padding: 12px 16px; }
    .ob-content { padding: 24px 18px; }
  }

  /* [⑤-B] 온보딩 진행률 바 + 카드 */
  .ob-progress { display: flex; justify-content: center; gap: 6px; margin-bottom: 32px; }
  .ob-progress-bar { width: 32px; height: 4px; background: var(--border); border-radius: 2px; transition: background .2s; }
  .ob-progress-bar.is-active { background: var(--accent); }
  .ob-step-num { font-size: var(--text-xs); color: var(--text-sub); margin-bottom: 8px; }
  .ob-step-title { font-size: var(--text-xl); font-weight: 600; color: var(--text); margin: 0 0 8px; }
  .ob-step-desc { font-size: var(--text-sm); color: var(--text-sub); line-height: 1.6; margin: 0 0 32px; }
  .ob-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 24px; }
  .ob-card { background: var(--accent-light); border: var(--border-thin) solid var(--border); border-radius: var(--radius-md); padding: 28px 20px; cursor: pointer; text-align: center; transition: border-color .15s; }
  .ob-card:hover { border-color: var(--accent); }
  .ob-card-icon { font-size: 28px; color: var(--accent); }
  .ob-card-title { font-size: var(--text-md); font-weight: 600; color: var(--text); margin-top: 10px; }
  .ob-card-desc { font-size: var(--text-xs); color: var(--text-sub); line-height: 1.5; margin-top: 4px; }
  @media (max-width: 480px) {
    .ob-card-grid { grid-template-columns: 1fr; }
    .ob-step-title { font-size: var(--text-lg); }
  }

  /* ===== RIGHT: Layout ===== */
  .layout { margin-left: var(--sidebar-w); min-height: 100vh; display: flex; flex-direction: column; }

  /* ===== TOP: Header (공통) ===== */
  .header { height: var(--header-h); background: var(--card-bg); border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 24px; position: sticky; top: 0; z-index: 40; }
  .header-left { display: flex; align-items: center; gap: var(--space-8); font-size: var(--text-base); color: var(--text-sub); }
  .header-right { display: flex; align-items: center; gap: var(--space-12); }
  .made-by-fixed { position: fixed; right: 14px; bottom: 12px; z-index: 40; font-size: var(--text-xs); color: var(--text-sub); white-space: nowrap; opacity: .45; user-select: none; pointer-events: none; transition: opacity .2s; }
  .made-by-fixed:hover { opacity: .8; }
  .made-by-fixed b { color: var(--text-sub); font-weight: 600; }
  [data-theme="dark"] .made-by-fixed { color: var(--text-sub); }
  [data-theme="dark"] .made-by-fixed b { color: var(--text-sub); }
  .discord-btn { padding: 9px 18px; background: #5865F2; color: #fff; border: none; border-radius: var(--radius); font-size: var(--text-base); font-weight: 700; cursor: pointer; display: flex; align-items: center; gap: var(--space-8); transition: .15s; }
  .discord-btn:hover { background: #4752c4; }
  /* 유저 드롭다운 */
  .user-chip { display: flex; align-items: center; gap: var(--space-8); position: relative; padding: 4px 8px; border-radius: var(--radius); transition: background .15s; }
  .user-chip:hover { background: var(--bg); }
  .user-chip img { width: 32px; height: 32px; border-radius: 50%; border: var(--border-thick) solid transparent; transition: border-color .15s; }
  .user-chip:hover img { border-color: var(--accent); }
  .user-chip .uname { font-size: var(--text-base); font-weight: 600; color: var(--text); }
  .user-chip .urole { font-size: var(--text-xs); padding: 2px 8px; border-radius: var(--radius-md); background: var(--accent-light); color: var(--accent); font-weight: 600; }
  .logout-link { display: none; }
  /* 드롭다운 */
  .user-dropdown { position: absolute; top: calc(100% + 10px); right: 0; min-width: 200px; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 8px 24px rgba(0,0,0,.12); z-index: 9999; overflow: hidden; opacity: 0; transform: translateY(-6px) scale(.97); pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
  .user-dropdown.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
  .user-dropdown-header { padding: 14px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: var(--space-10); }
  .user-dropdown-header img { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; }
  .user-dropdown-header .dd-name { font-size: var(--text-base); font-weight: 700; color: var(--text); }
  .user-dropdown-header .dd-role { font-size: var(--text-2xs); font-weight: 600; padding: 2px 8px; border-radius: var(--radius-md); background: var(--accent-light); color: var(--accent); margin-top: 3px; display: inline-block; }
  .user-dropdown-item { display: flex; align-items: center; gap: var(--space-10); padding: 11px 16px; font-size: var(--text-base); font-weight: 500; color: var(--text); cursor: pointer; transition: background .12s; }
  .user-dropdown-item:hover { background: var(--surface-alt); }
  .user-dropdown-item.danger { color: var(--color-danger-light); }
  .user-dropdown-item.danger:hover { background: var(--color-danger-bg); }
  .user-dropdown-item .material-icons { font-size: 18px; color: var(--text-sub); }
  .user-dropdown-item.danger .material-icons { color: var(--color-danger-light); }
  [data-theme="dark"] .user-dropdown { box-shadow: 0 8px 24px rgba(0,0,0,.5); }
  [data-theme="dark"] .user-dropdown-item:hover { background: #252830; }
  [data-theme="dark"] .user-dropdown-item.danger:hover { background: #2d0a0a; }
  [data-theme="dark"] .user-dropdown-item.danger { color: #f87171; }
  [data-theme="dark"] .user-dropdown-item.danger .material-icons { color: #f87171; }

  /* ===== MAIN: Content (페이지별 변경) ===== */
  .main { flex: 1; padding: 24px; display: flex; flex-direction: column; }
  .page-section { display: none; }
  .page-section.active { display: block; flex: 1; }
  #page-mychar.active { display: flex; flex-direction: column; flex: 1; }
  /* ===== /my-characters 페이지 (상태 A/B/C) ===== */
  /* [4-A23 step5 fix3] 카드 그리드 — height 100% 강제로 stretch 보장 */
  /* [4-A38] #todayBossGrid 셀렉터 통합 — 오늘의 보스 페이지가 캐릭터 페이지 룰 1:1 상속 */
  #myCharsGrid,
  #todayBossGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--space-16); align-items: stretch; }
  /* [4-A37 Hotfix5] min-height 240 → 313 — 캐릭터 카드 자연 높이에 정렬 */
  #myCharsGrid .mc-card,
  #myCharsGrid .mc-addslot,
  #todayBossGrid .mc-card,
  #todayBossGrid .mc-addslot { min-height: 313px; height: 100%; box-sizing: border-box; margin-bottom: 0; }
  #myCharsGrid .mc-card,
  #todayBossGrid .mc-card { display: flex; flex-direction: column; position: relative; }
  /* [4-A39] 카드 본체 클릭 가능 — 캐릭터 카드도 보스 카드와 동일 패턴 */
  .mc-card { cursor: pointer; transition: border-color .15s; }
  .mc-card:hover { border-color: var(--text-sub); }
  /* 카운트 뱃지 */
  .mc-count-badge { display: inline-block; margin-left: 10px; padding: 2px 10px; border-radius: var(--radius-pill); font-size: var(--text-2xs); font-weight: 700; color: var(--text-sub); background: var(--surface-alt); border: 1px solid var(--border); letter-spacing: .02em; vertical-align: middle; }
  /* 카드 헤더 + kebab */
  .mc-card-hd { display: flex; align-items: center; gap: var(--space-8); padding: 14px 16px 0; }
  .mc-card-hd .mc-small-icon { width: 22px; height: 22px; border-radius: var(--radius-sm); background: var(--accent-light); color: var(--accent); display: flex; align-items: center; justify-content: center; }
  .mc-card-hd .mc-small-icon .material-icons { font-size: 15px; }
  .mc-slot-label { color: var(--text-sub); font-weight: 500; }
  .mc-kebab { margin-left: auto; background: none; border: none; cursor: pointer; color: var(--text-sub); padding: 4px 8px; border-radius: var(--radius-sm); font-size: 18px; line-height: 1; }
  .mc-kebab:hover { background: var(--surface-alt); color: var(--text); }
  .mc-kebab-menu { position: absolute; top: 38px; right: 12px; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: 0 8px 24px rgba(0,0,0,.08); padding: 4px; min-width: 130px; z-index: 10; display: none; }
  .mc-kebab-menu.open { display: block; }
  .mc-kebab-menu button { width: 100%; text-align: left; padding: 8px 12px; background: none; border: none; font-size: var(--text-base); color: var(--text); cursor: pointer; border-radius: var(--radius-sm); display: flex; align-items: center; gap: var(--space-8); }
  .mc-kebab-menu button:hover { background: var(--surface-alt); }
  .mc-kebab-menu button.danger { color: var(--color-danger); }
  .mc-kebab-menu button:disabled { opacity: .4; cursor: not-allowed; }
  .mc-kebab-menu hr { border: none; border-top: 1px solid var(--border); margin: 4px 0; }
  .mc-kebab-menu .material-icons { font-size: 16px; }
  /* 카드 본문 */
  .mc-card-body { padding: 16px 16px 18px; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; text-align: center; }
  /* [4-A23 step5 fix] 카드 아바타 — 첫 캐릭(대표): 디스코드 사진 / 부캐: 캐릭명 첫 글자 (--avatar-lg 토큰) */
  .mc-card-avatar { width: var(--avatar-lg); height: var(--avatar-lg); border-radius: 50%; object-fit: cover; background: var(--surface-alt); border: 0.5px solid var(--border); margin-bottom: 4px; }
  .mc-card-avatar.is-initial { display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 700; color: var(--text-sub); }
  /* [4-A23 step7] 캐릭터창 본문 15px 룰 */
  .mc-slot-label { font-size: var(--text-base); }
  .mc-char-name { font-size: var(--text-md); font-weight: 600; color: var(--text); }
  .mc-char-meta { font-size: var(--text-base); color: var(--text-sub); }
  .mc-role-badge { display: inline-block; margin-top: 4px; padding: 3px 10px; border-radius: var(--radius-pill); font-size: var(--text-2xs); font-weight: 700; }
  /* ============ [버닝 트래커] 컴팩트 그리드 캐릭터 카드 — 목업 .char 구조, #myCharsGrid 스코프 ============ */
  #myCharsGrid .mc-bcard { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 16px; position: relative; cursor: grab; display: block; text-align: left; }
  #myCharsGrid .mc-bcard.is-main { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
  #myCharsGrid .mc-b-head { display: flex; align-items: center; gap: 8px; }
  #myCharsGrid .mc-b-nick { display: flex; align-items: center; gap: 6px; min-width: 0; }
  #myCharsGrid .mc-b-name { font-size: var(--text-base); font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #myCharsGrid .mc-b-star { background: none; border: none; cursor: pointer; padding: 0; display: flex; align-items: center; color: var(--border); flex: 0 0 auto; }
  #myCharsGrid .mc-b-star .material-icons { font-size: 18px; }
  #myCharsGrid .mc-b-star:hover { color: var(--lz-star); }
  #myCharsGrid .mc-b-star.is-main { color: var(--lz-star); cursor: default; }
  #myCharsGrid .mc-b-leaf { font-size: var(--text-2xs); font-weight: 700; padding: 1px 7px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: none; color: var(--text-sub); cursor: pointer; flex: 0 0 auto; }
  #myCharsGrid .mc-b-leaf:hover { border-color: var(--color-success); color: var(--color-success); }
  #myCharsGrid .mc-b-leaf.on { background: var(--color-success-bg); color: var(--color-success); border-color: transparent; }
  #myCharsGrid .mc-b-ctrl { margin-left: auto; display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
  #myCharsGrid .mc-b-sub { display: flex; align-items: baseline; gap: 8px; margin-top: 4px; }
  #myCharsGrid .mc-b-job { font-size: var(--text-xs); color: var(--text-sub); min-width: 0; }
  #myCharsGrid .mc-b-lv { margin-left: auto; font-size: var(--text-md); font-weight: 700; color: var(--text); white-space: nowrap; flex: 0 0 auto; }
  #myCharsGrid .mc-b-lv small { font-size: var(--text-xs); color: var(--text-sub); font-weight: 400; }
  #myCharsGrid .mc-edit { cursor: pointer; border-bottom: 1px dashed var(--border); }
  #myCharsGrid .mc-edit:hover { color: var(--accent); border-bottom-color: var(--accent); }
  #myCharsGrid .mc-edit-input { font: inherit; padding: 0 4px; border: 1px solid var(--accent); border-radius: var(--radius-sm); background: var(--card-bg); color: var(--text); width: 56px; -moz-appearance: textfield; }
  #myCharsGrid .mc-edit-input::-webkit-outer-spin-button,
  #myCharsGrid .mc-edit-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
  #myCharsGrid .mc-b-gauge { height: 6px; background: var(--surface-alt); border-radius: var(--radius-pill); overflow: hidden; margin: 11px 0 9px; }
  #myCharsGrid .mc-b-gauge-fill { height: 100%; background: var(--lz-bar-ok); border-radius: var(--radius-pill); transition: width .3s ease; }
  #myCharsGrid .mc-b-memo { font-size: var(--text-xs); color: var(--text-sub); }
  #myCharsGrid .mc-b-memo-edit { display: block; cursor: pointer; border-radius: var(--radius-sm); padding: 1px 3px; margin: -1px -3px; }
  #myCharsGrid .mc-b-memo-edit:hover { background: var(--surface-alt); }
  #myCharsGrid .mc-b-memo-edit.is-empty { opacity: .7; }
  /* ============ [버닝 트래커 2단계] 계정 그룹 / 게이지 상태색 / 드래그 ============ */
  #myCharsGrid.mc-grouped { display: block; }
  .mc-acc-group { margin-bottom: 22px; }
  .mc-acc-group:last-child { margin-bottom: 0; }
  .mc-acc-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; padding: 0 2px; }
  .mc-acc-badge { font-size: var(--text-xs); font-weight: 700; padding: 3px 11px; border-radius: var(--radius-pill); background: var(--surface-alt); color: var(--text-sub); }
  .mc-acc-badge.acc-naver { background: var(--lz-brand-naver-bg); color: var(--lz-brand-naver-fg); }
  .mc-acc-badge.acc-google { background: var(--accent-light); color: var(--accent); }
  .mc-acc-stat { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-acc-stat b { font-weight: 700; color: var(--text); }
  .mc-acc-stat b.full { color: var(--color-success); }
  .mc-lb.flash { animation: mcLeafFlash .45s ease 2; }
  @keyframes mcLeafFlash { 0%,100%{ color: var(--text-sub); } 50%{ color: var(--color-danger); font-weight: 700; } }
  .mc-acc-note { font-size: var(--text-xs); color: var(--text-sub); opacity: .8; }
  .mc-acc-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
  .mc-acc-cards-flat { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
  .mc-b-add { border: 1.5px dashed var(--border); border-radius: var(--radius-lg); padding: 12px; text-align: center; color: var(--text-sub); cursor: pointer; font-size: var(--text-xs); font-weight: 600; transition: border-color .15s, color .15s; }
  .mc-b-add:hover { border-color: var(--accent); color: var(--accent); }
  /* 게이지 상태색 (R8) */
  #myCharsGrid .mc-b-gauge-fill.is-done { background: var(--accent); }
  #myCharsGrid .mc-b-gauge-fill.is-ok { background: var(--lz-bar-ok); }
  #myCharsGrid .mc-b-gauge-fill.is-warn { background: var(--lz-bar-warn); }
  /* 드래그 */
  #myCharsGrid .mc-bcard[draggable="true"] { cursor: grab; }
  #myCharsGrid .mc-bcard.dragging { opacity: .45; cursor: grabbing; }
  #myCharsGrid .mc-bcard.drop-over { border-color: var(--accent); box-shadow: 0 -2px 0 0 var(--accent) inset; }
  /* ============ [3-A] 요약 스트립 · D-day · 로드맵 · 마일스톤 ============ */
  /* [탭분리] 버닝/메랜 시즌 탭 */
  .mc-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 18px; }
  .mc-tab { appearance: none; background: none; border: none; border-bottom: 2px solid transparent; padding: 10px 14px; font-size: var(--text-base); font-weight: 500; color: var(--text-sub); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; margin-bottom: -1px; }
  .mc-tab:hover { color: var(--text); }
  .mc-tab.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 700; }
  .mc-tab-cnt { font-size: var(--text-xs); font-weight: 600; line-height: 1; padding: 3px 7px; border-radius: 999px; background: var(--surface-alt); color: var(--text-sub); }
  .mc-tab.active .mc-tab-cnt { background: var(--accent-light); color: var(--accent); }
  [data-theme="dark"] .mc-tab.active .mc-tab-cnt { color: var(--krds-primary-30); }
  /* [아이템관리탭] 마스터 전용 탭 배지 + 등록/수정 UI (목업 v2 이식, 전 토큰화) */
  .mc-tab-master { font-size: var(--text-2xs); font-weight: 700; line-height: 1; padding: 3px 7px; border-radius: 999px; background: var(--role-master-bg); color: var(--role-master); }
  #itemMgmtRoot { font-size: var(--text-base); }   /* R1-26: 컨테이너 1회 지정, 하위 상속 */
  #itemMgmtRoot .im-gate { padding: 40px 16px; text-align: center; color: var(--text-sub); }
  #itemMgmtRoot .im-master-strip { display: flex; align-items: center; gap: 10px; font-size: var(--text-xs); color: var(--text-sub); margin-bottom: 14px; flex-wrap: wrap; }
  #itemMgmtRoot .im-chip { flex: 0 0 auto; font-size: var(--text-2xs); font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--role-master-bg); color: var(--role-master); }
  #itemMgmtRoot .im-seg { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 14px; }
  #itemMgmtRoot .im-seg button { appearance: none; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-sub); font-weight: 600; padding: 9px 22px; cursor: pointer; font-family: inherit; white-space: nowrap; }
  #itemMgmtRoot .im-seg button.on { border-color: var(--accent); color: var(--text); background: var(--accent-light); box-shadow: 0 0 0 1px var(--accent); }
  #itemMgmtRoot .im-grid { display: grid; grid-template-columns: minmax(0,1fr) 292px; gap: 22px; align-items: start; }
  #itemMgmtRoot .im-sec { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; }
  #itemMgmtRoot .im-divi { border: none; border-top: 1px solid var(--border); margin: 14px 0; }
  #itemMgmtRoot .im-f-label { display: block; font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); margin: 0 0 5px; }
  #itemMgmtRoot .im-hint { font-size: var(--text-xs); color: var(--text-sub); font-weight: 400; }
  #itemMgmtRoot input[type=text], #itemMgmtRoot input[type=number] { width: 100%; height: 36px; padding: 5px 11px; font-family: inherit; background: var(--card-bg); border: 1px solid var(--border); border-radius: 8px; color: var(--text); }
  #itemMgmtRoot input[type=number] { -moz-appearance: textfield; appearance: textfield; }
  #itemMgmtRoot input[type=number]::-webkit-outer-spin-button, #itemMgmtRoot input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; }
  #itemMgmtRoot .im-search-wrap { position: relative; }
  #itemMgmtRoot .im-drop { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 30; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 10px 30px rgba(0,0,0,.28); max-height: 300px; overflow-y: auto; display: none; }
  #itemMgmtRoot .im-drop-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 8px 12px; cursor: pointer; }
  #itemMgmtRoot .im-drop-row:hover { background: var(--accent-light); }
  #itemMgmtRoot .im-drop-row img { width: 30px; height: 30px; object-fit: contain; image-rendering: pixelated; flex: 0 0 auto; }
  #itemMgmtRoot .im-drop-row .nm { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #itemMgmtRoot .im-drop-row .slot-chip { font-size: var(--text-2xs); font-weight: 600; color: var(--text-sub); background: var(--surface-alt); border: 1px solid var(--border); border-radius: 999px; padding: 2px 7px; flex: 0 0 auto; }
  #itemMgmtRoot .im-drop-row .lv { font-size: var(--text-xs); color: var(--text-sub); flex: 0 0 auto; }
  #itemMgmtRoot .im-drop-empty { padding: 12px; font-size: var(--text-sm); color: var(--text-sub); text-align: center; }
  #itemMgmtRoot .im-picked { display: none; align-items: center; gap: 10px; margin-top: 10px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 10px; flex-wrap: wrap; }
  #itemMgmtRoot .im-picked img { width: 32px; height: 32px; object-fit: contain; image-rendering: pixelated; flex: 0 0 auto; }
  #itemMgmtRoot .im-picked .info { flex: 1; min-width: 0; }
  #itemMgmtRoot .im-picked .info b { font-size: var(--text-sm); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #itemMgmtRoot .im-picked .info span { font-size: var(--text-2xs); color: var(--text-sub); }
  #itemMgmtRoot .im-mini-btn { appearance: none; font-family: inherit; font-size: var(--text-xs); font-weight: 600; padding: 6px 11px; border-radius: 6px; border: 1px solid var(--border); background: var(--card-bg); color: var(--text); cursor: pointer; white-space: nowrap; }
  #itemMgmtRoot .im-mini-btn:hover:not(:disabled) { border-color: var(--accent); color: var(--krds-primary-30); }
  #itemMgmtRoot .im-mini-btn.ghost { color: var(--text-sub); border-color: transparent; }
  #itemMgmtRoot .im-mini-btn:disabled { opacity: .5; cursor: not-allowed; color: var(--text-sub); }   /* --text-disabled 부재 → --text-sub */
  #itemMgmtRoot .im-mini-btn.is-edit { color: var(--text); }
  #itemMgmtRoot .im-mini-btn.is-restore { color: var(--text-sub); }
  #itemMgmtRoot .im-mini-btn.is-danger { color: var(--color-danger); }   /* --lz-danger 부재 → --color-danger 대체 */
  #itemMgmtRoot .im-mini-btn.is-danger:hover:not(:disabled) { border-color: var(--color-danger); color: var(--color-danger); }
  #itemMgmtRoot .im-meta-row { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 12px; }
  #itemMgmtRoot .im-code-chip { height: 36px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; background: var(--surface-alt); border: 1px dashed var(--border); border-radius: 8px; font-size: var(--text-sm); color: var(--text-sub); font-variant-numeric: tabular-nums; white-space: nowrap; }
  #itemMgmtRoot .im-code-chip b { color: var(--text); font-weight: 700; }
  #itemMgmtRoot .im-name-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap: 10px; }
  #itemMgmtRoot .im-req-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
  #itemMgmtRoot select.krds-select{ height:36px; }
  #itemMgmtRoot .im-req-grid > div{
    display:grid; grid-template-columns:34px minmax(0,1fr);
    align-items:center; gap:8px;
  }
  #itemMgmtRoot .im-req-grid .im-f-label { text-align:left; margin:0; }
  #itemMgmtRoot .im-req-grid input { text-align: center; padding: 5px 6px; font-variant-numeric: tabular-nums; }
  #itemMgmtRoot .im-job-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
  #itemMgmtRoot .im-job-chip { appearance: none; font-family: inherit; font-size: var(--text-sm); font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface-alt); color: var(--text-sub); cursor: pointer; }
  #itemMgmtRoot .im-job-chip.on { border-color: var(--accent); background: var(--accent-light); color: var(--text); box-shadow: 0 0 0 1px var(--accent); }
  #itemMgmtRoot .im-opt-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
  #itemMgmtRoot .im-opt-rows { display: flex; flex-direction: column; gap: 6px; }
  #itemMgmtRoot .im-opt-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; background: var(--card-bg); border: 1px solid var(--border); border-radius: 8px; padding: 4px 6px 4px 12px; }
  #itemMgmtRoot .im-opt-row .ol { width: 126px; flex: 0 0 auto; font-size: var(--text-sm); font-weight: 600; }
  #itemMgmtRoot .im-opt-row input { height: 30px; border: 1px solid transparent; background: var(--surface-alt); max-width: 140px; font-variant-numeric: tabular-nums; }
  #itemMgmtRoot .im-opt-row .ox { appearance: none; border: none; background: none; color: var(--text-sub); width: 28px; height: 28px; border-radius: 6px; cursor: pointer; flex: 0 0 auto; margin-left: auto; font-family: inherit; }
  #itemMgmtRoot .im-opt-row .ox:hover { background: var(--color-danger-bg); color: var(--color-danger); }
  #itemMgmtRoot .im-opt-empty { font-size: var(--text-sm); color: var(--text-sub); padding: 4px 2px; }
  #itemMgmtRoot .im-hide-line { display: none; align-items: center; gap: 8px; margin-top: 12px; font-size: var(--text-sm); color: var(--text-sub); }
  #itemMgmtRoot .im-hide-line input { width: 15px; height: 15px; accent-color: var(--accent); }
  #itemMgmtRoot .im-diff-chip { display: none; font-size: var(--text-xs); font-weight: 600; color: var(--krds-primary-30); background: var(--accent-light); border-radius: 999px; padding: 5px 11px; white-space: nowrap; }
  #itemMgmtRoot .im-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
  #itemMgmtRoot .im-link-btn { appearance: none; border: none; background: none; font-family: inherit; font-size: var(--text-xs); color: var(--text-sub); text-decoration: underline; cursor: pointer; margin-left: auto; }
  #itemMgmtRoot .im-link-btn:hover { color: var(--krds-primary-30); }
  #itemMgmtRoot .im-codebox { display: none; margin-top: 12px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; font-family: ui-monospace, Consolas, monospace; font-size: var(--text-xs); line-height: 1.7; color: var(--text); overflow-x: auto; white-space: pre; }
  #itemMgmtRoot .im-preview-col { position: sticky; top: 24px; }
  #itemMgmtRoot .im-preview-label { position: absolute; left: 0; bottom: 100%; white-space: nowrap; font-size: var(--text-xs); font-weight: 700; color: var(--text-sub); margin-bottom: 8px; display: flex; align-items: center; gap: 7px; }   /* [J2] 흐름 제거 → 카드 상단선을 .im-sec 에 정렬(sticky 유지) */
  #itemMgmtRoot .im-pv-live { width: 7px; height: 7px; border-radius: 50%; background: var(--color-success); }
  #itemMgmtRoot .im-tip { width: 100%; max-width: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); margin: 0 auto; }
  #itemMgmtRoot .im-pv-foot { font-size: var(--text-2xs); color: var(--text-sub); margin-top: 10px; line-height: 1.6; text-align: center; }
  #itemMgmtRoot .im-pv-divi { height:1px; background:var(--border); margin:14px 0 12px; }
  #itemMgmtRoot .im-pv-sub { font-size:var(--text-2xs); font-weight:700; color:var(--text-sub); margin-bottom:8px; }
  #itemMgmtRoot .im-pv-card-box { max-width:150px; margin:0 auto; background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius); padding:14px 10px; text-align:center; }
  #itemMgmtRoot .im-pv-card-ico { height:40px; display:flex; align-items:center; justify-content:center; margin-bottom:8px; }
  #itemMgmtRoot .im-pv-card-ico img { max-width:36px; max-height:36px; }
  #itemMgmtRoot .im-pv-card-nm { font-size:var(--text-xs); font-weight:700; color:var(--text); }
  #itemMgmtRoot .im-pv-card-lv { font-size:var(--text-2xs); color:var(--text-sub); margin-top:4px; }
  #itemMgmtRoot .im-pv-code { font-size:var(--text-2xs); color:var(--text-sub); background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius); padding:8px 10px; margin:0; white-space:pre-wrap; word-break:break-all; line-height:1.5; }
  #itemMgmtRoot .im-cus-head { font-size: var(--text-sm); font-weight: 700; margin-bottom: 10px; }
  #itemMgmtRoot .im-cus-list { display: flex; flex-direction: column; gap: 6px; }
  #itemMgmtRoot .im-cus-row { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; flex-wrap: wrap; }
  #itemMgmtRoot .im-cus-row .ci { width: 30px; height: 30px; flex: 0 0 auto; background: var(--surface-alt); border: 1px solid var(--border); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: var(--text-2xs); color: var(--text-sub); }
  #itemMgmtRoot .im-cus-row .ci img { max-width: 26px; max-height: 26px; image-rendering: pixelated; }
  #itemMgmtRoot .im-cus-row .cn { flex: 1; min-width: 0; }
  #itemMgmtRoot .im-cus-row .cn b { font-size: var(--text-sm); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #itemMgmtRoot .im-cus-row .cn span { font-size: var(--text-2xs); color: var(--text-sub); font-variant-numeric: tabular-nums; }
  #itemMgmtRoot .im-cus-badge { font-size: var(--text-2xs); font-weight: 700; padding: 3px 8px; border-radius: 999px; flex: 0 0 auto; }
  #itemMgmtRoot .im-cus-badge.new { background: var(--accent-light); color: var(--krds-primary-30); }
  #itemMgmtRoot .im-cus-badge.edit { background: var(--surface-alt); color: var(--lz-star); border: 1px solid var(--border); }
  #itemMgmtRoot .im-cus-badge.hide { background: var(--surface-alt); color: var(--text-sub); border: 1px solid var(--border); }
  #itemMgmtRoot .im-cus-badge.file { background: var(--surface-alt); color: var(--text-sub); border: 1px solid var(--border); }
  #itemMgmtRoot .im-cus-empty { font-size: var(--text-sm); color: var(--text-sub); text-align: center; padding: 16px; }
  @media (max-width: 940px) { #itemMgmtRoot .im-grid { grid-template-columns: minmax(0,1fr); } #itemMgmtRoot .im-preview-col { position: static; } #itemMgmtRoot .im-preview-label { position: static; }   /* [J3] 스택 레이아웃에선 라벨 흐름 복귀 */ #itemMgmtRoot .im-req-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } #itemMgmtRoot .im-tip { margin: 0 auto; } }
  @media (max-width: 640px) { #itemMgmtRoot .im-name-grid { grid-template-columns: 1fr; } #itemMgmtRoot .im-opt-bar .im-hint { flex: 1 0 100%; } #itemMgmtRoot .im-cus-row { flex-wrap: wrap; } }
  @media (max-width: 480px) {
    #itemMgmtRoot .im-req-grid { grid-template-columns: repeat(1, minmax(0,1fr)); }
    #itemMgmtRoot .im-req-grid input{ min-height:40px; }
    #itemMgmtRoot .im-opt-row .ol { flex: 1 0 100%; width: auto; }
    #itemMgmtRoot .im-opt-row input { max-width: none; flex: 1; }
  }
  .mc-dday-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
  #myCharsRoot .mc-grouped + .mc-dday-row { margin-top: 22px; } /* [배치변경] 그룹 아래 요약 간격 */
  /* ===== [등록UX] 캐릭터 모달 리스킨 — 세그먼트/칩/미리보기 ===== */
  .modal.mcreg { padding: 24px 26px 22px; }
  .mcreg-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
  .mcreg-head h2 { margin-bottom: 0; }
  .mcreg-season { font-size: var(--text-2xs); font-weight: 700; border-radius: var(--radius-pill); padding: 4px 11px; }
  .mcreg-season.burn { background: var(--accent-light); color: var(--accent); }
  [data-theme="dark"] .mcreg-season.burn { color: var(--krds-primary-30); }
  .mcreg-season.maple { background: var(--surface-alt); color: var(--text-sub); border: 1px solid var(--border); }
  .mcreg-body { display: grid; grid-template-columns: 1fr 288px; gap: 24px; }
  .mcreg-form .rd-form-label { display: block; margin: 15px 0 7px; }
  .mcreg-form .rd-form-label:first-child { margin-top: 0; }
  .mcreg-opt { color: var(--text-sub); font-weight: 400; }
  .mcreg-row3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .mcreg-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .mcreg-seg button { appearance: none; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-sub); font-size: var(--text-sm); font-weight: 600; padding: 11px 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 7px; }
  .mcreg-seg button.on { border-color: var(--accent); color: var(--text); background: var(--accent-light); box-shadow: 0 0 0 1px var(--accent); }
  .mcreg-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; }
  .mcreg-dot-nexon { background: var(--text); }
  .mcreg-dot-naver { background: var(--lz-bar-ok); }
  .mcreg-dot-google { background: var(--accent); }
  .mcreg-chips { display: flex; flex-wrap: wrap; gap: 7px; }
  .mcreg-jobs { min-height: 34px; }
  .mcreg-hint { font-size: var(--text-xs); color: var(--text-sub); padding: 7px 2px; }
  .mcreg-chip { appearance: none; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius-pill); color: var(--text-sub); font-size: var(--text-xs); font-weight: 500; padding: 7px 13px; cursor: pointer; }
  .mcreg-chip:hover { color: var(--text); border-color: var(--text-sub); }
  .mcreg-chip.on { border-color: var(--accent); background: var(--accent-light); color: var(--accent); font-weight: 700; }
  [data-theme="dark"] .mcreg-chip.on { color: var(--krds-primary-30); }
  .mcreg-chip small { opacity: .65; margin-left: 4px; font-size: var(--text-2xs); }
  .mcreg-pv { align-self: start; }
  .mcreg-pv-label { font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); margin-bottom: 8px; }
  .mcreg-pv-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 16px; }
  .mcreg-pv-card.is-main { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
  .mcreg-pv-nick { display: flex; align-items: center; gap: 8px; font-size: var(--text-md); font-weight: 700; }
  .mcreg-pv-star { color: var(--lz-star); font-size: 17px; line-height: 1; }
  .mcreg-pv-leaf { font-size: var(--text-2xs); font-weight: 600; border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 2px 8px; color: var(--text-sub); }
  .mcreg-pv-sub { display: flex; justify-content: space-between; align-items: baseline; margin-top: 8px; font-size: var(--text-xs); color: var(--text-sub); gap: 8px; }
  .mcreg-pv-lv { font-size: var(--text-sm); color: var(--text); font-weight: 700; white-space: nowrap; }
  .mcreg-pv-lv small { color: var(--text-sub); font-weight: 500; }
  .mcreg-pv-gauge { height: 7px; border-radius: var(--radius-pill); background: var(--surface-alt); border: 1px solid var(--border); margin-top: 10px; overflow: hidden; }
  .mcreg-pv-fill { height: 100%; border-radius: var(--radius-pill); background: var(--lz-bar-ok); width: 0%; transition: width .25s ease, background .25s ease; }
  .mcreg-pv-fill.is-done { background: var(--accent); }
  .mcreg-pv-note { font-size: var(--text-2xs); color: var(--text-sub); margin-top: 10px; line-height: 1.6; }
  .mcreg-pv-note b { color: var(--text); font-weight: 600; }
  .mcreg-actions { display: flex; align-items: center; }
  .mcreg-del { color: var(--color-danger); margin-right: auto; }
  @media (max-width: 720px) {
    .mcreg-body { grid-template-columns: 1fr; }
    .mcreg-pv { order: -1; }
  }
  .mc-dday { display: inline-flex; gap: 6px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 3px 12px; font-size: var(--text-xs); color: var(--text-sub); }
  .mc-dday b { color: var(--text); }
  .mc-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 22px; }
  .mc-sum-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 12px 16px; }
  .mc-sl { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-sv { font-size: var(--text-lg); font-weight: 700; margin-top: 2px; color: var(--text); }
  .mc-sv small { font-size: var(--text-xs); color: var(--text-sub); font-weight: 400; }
  @media (max-width: 760px) { .mc-summary { grid-template-columns: repeat(2, 1fr); } }
  /* 접이식 fold */
  .mc-fold { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); margin-top: 16px; overflow: hidden; }
  .mc-fold-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; cursor: pointer; user-select: none; }
  .mc-fold-head h3 { font-size: var(--text-base); font-weight: 700; color: var(--text); }
  .mc-fh-sub { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-fold-head .mc-arrow { margin-left: auto; color: var(--text-sub); transition: transform .15s; }
  .mc-fold.open .mc-arrow { transform: rotate(180deg); }
  .mc-fold-body { display: none; padding: 4px 18px 18px; border-top: 1px solid var(--border); }
  .mc-fold.open .mc-fold-body { display: block; }
  .mc-fold-head .mc-btn-sm { margin-left: auto; }
  .mc-fold-head .mc-btn-sm + .mc-arrow { margin-left: 0; }
  .mc-btn-sm { appearance: none; font: inherit; font-size: var(--text-xs); font-weight: 600; border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius-md); padding: 4px 11px; cursor: pointer; color: var(--text); }
  .mc-btn-sm:hover { border-color: var(--accent); color: var(--accent); }
  .mc-fold-empty { text-align: center; color: var(--text-sub); padding: 22px 8px; font-size: var(--text-xs); }
  /* 로드맵 테이블 */
  .mc-rm-table { width: 100%; border-collapse: collapse; font-size: var(--text-xs); margin-top: 10px; }
  .mc-rm-table th { text-align: left; font-size: var(--text-2xs); font-weight: 600; color: var(--text-sub); padding: 6px 8px; border-bottom: 1px solid var(--border); }
  .mc-rm-table td { padding: 9px 8px; border-bottom: 1px solid var(--surface-alt); vertical-align: top; color: var(--text); }
  .mc-rm-table tr.is-today td { background: var(--accent-light); }
  .mc-rm-date { font-weight: 700; white-space: nowrap; }
  .mc-rm-st { cursor: pointer; }
  .mc-st { font-size: var(--text-2xs); font-weight: 600; border-radius: var(--radius-sm); padding: 2px 8px; white-space: nowrap; }
  .mc-st.done { background: var(--color-success-bg); color: var(--color-success); }
  .mc-st.today { background: var(--accent-light); color: var(--accent); }
  .mc-st.plan { background: var(--surface-alt); color: var(--text-sub); }
  .mc-cell-edit { cursor: pointer; border-radius: var(--radius-sm); padding: 2px 4px; margin: -2px -4px; display: inline-block; }
  .mc-cell-edit:hover { background: var(--surface-alt); }
  .mc-cell-edit.placeholder { color: var(--text-sub); opacity: .7; }
  .mc-cell-input { width: 100%; font: inherit; font-size: var(--text-xs); border: 1px solid var(--accent); border-radius: var(--radius-md); padding: 5px 8px; background: var(--card-bg); color: var(--text); }
  .mc-cell-input:focus { outline: none; }
  /* 마일스톤 타임라인 */
  .mc-ms { list-style: none; position: relative; padding-left: 24px; margin-top: 8px; }
  .mc-ms::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 2px; background: var(--border); }
  .mc-ms li { position: relative; padding: 6px 0; display: flex; gap: 12px; align-items: baseline; }
  .mc-msdot { position: absolute; left: -24px; top: 6px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--border); background: var(--card-bg); }
  .mc-ms li.done .mc-msdot { background: var(--color-success); border-color: var(--color-success); }
  .mc-ms-when { flex: none; width: 64px; font-size: var(--text-xs); font-weight: 700; color: var(--text-sub); }
  .mc-ms-what { font-size: var(--text-sm); color: var(--text); }
  .mc-ms li.done .mc-ms-what { color: var(--text-sub); }
  .mc-ms li.done .mc-cell-edit { text-decoration: line-through; }
  .mc-ms-type { font-size: var(--text-2xs); font-weight: 600; border-radius: var(--radius-sm); padding: 1px 6px; margin-left: 6px; vertical-align: 1px; white-space: nowrap; }
  .mc-ms-type.auto { background: var(--accent-light); color: var(--accent); }
  .mc-ms-type.manual { background: var(--surface-alt); color: var(--text-sub); }
  .mc-ms-prog { font-size: var(--text-2xs); color: var(--text-sub); margin-left: 6px; }
  /* ============ [3-B-1] 몬스터파크(일일) + 퀘스트 체크리스트 ============ */
  .mc-monpa { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; margin-bottom: 18px; }
  .mc-monpa-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
  .mc-monpa-head h3 { font-size: var(--text-base); font-weight: 700; color: var(--text); }
  .mc-monpa-tag { font-size: var(--text-2xs); font-weight: 600; color: var(--accent); background: var(--accent-light); border-radius: var(--radius-sm); padding: 1px 7px; margin-left: 2px; vertical-align: 2px; }
  .mc-monpa-sub { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-monpa-total { margin-left: auto; font-size: var(--text-xs); color: var(--text-sub); }
  .mc-monpa-total b { color: var(--accent); font-weight: 700; }
  .mc-monpa-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
  .mc-monpa-acc { display: flex; align-items: center; gap: 10px; background: var(--surface-alt); border-radius: var(--radius-md); padding: 10px 14px; }
  .mc-monpa-cnt { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-monpa-runs { margin-left: auto; display: flex; gap: 8px; }
  .mc-run { width: 30px; height: 30px; border-radius: var(--radius-md); border: 2px solid var(--border); background: none; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: var(--text-xs); color: var(--text-sub); transition: .12s; }
  .mc-run:hover { border-color: var(--accent); }
  .mc-run.done { background: var(--color-success-bg); border-color: transparent; color: var(--color-success); font-weight: 700; }
  /* 계정별 몬파 줄 (그룹 헤더 아래) */
  .mc-monpa-row { display: flex; align-items: center; gap: 10px; background: var(--surface-alt); border-radius: var(--radius-md); padding: 7px 12px; margin-bottom: 10px; }
  .mc-monpa-label { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-monpa-label b { color: var(--text); font-weight: 700; margin-left: 3px; }
  .mc-monpa-hint { font-size: var(--text-2xs); color: var(--text-sub); opacity: .7; margin-left: 8px; }
  .mc-monpa-row .mc-monpa-runs { margin-left: auto; }
  /* 퀘스트 표 */
  .mc-q-table { width: 100%; border-collapse: collapse; font-size: var(--text-xs); margin-top: 10px; }
  .mc-q-table th { text-align: left; font-size: var(--text-2xs); font-weight: 600; color: var(--text-sub); padding: 6px 8px; border-bottom: 1px solid var(--border); }
  .mc-q-table th.mc-c, .mc-q-table td.mc-c { text-align: center; }
  .mc-q-table td { padding: 8px; border-bottom: 1px solid var(--surface-alt); color: var(--text); }
  .mc-qcell { display: inline-flex; width: 22px; height: 22px; border-radius: var(--radius-md); border: 1.5px solid var(--border); align-items: center; justify-content: center; cursor: pointer; font-size: var(--text-xs); color: transparent; user-select: none; background: none; }
  .mc-qcell.done { background: var(--color-success-bg); border-color: transparent; color: var(--color-success); }
  .mc-qcell.na { border: none; color: var(--text-sub); cursor: default; }
  .mc-qt-nick { font-weight: 700; }
  .mc-qt-job { font-size: var(--text-xs); color: var(--text-sub); margin-left: 4px; }
  .mc-qt-acc { font-size: var(--text-2xs); font-weight: 700; }
  .mc-qt-acc.nexon { color: var(--text); } .mc-qt-acc.naver { color: var(--color-success); } .mc-qt-acc.google { color: var(--accent); }
  /* ============ [3-B-2] 그룹 헤더(●+타이틀) · 통합 미리보기 · 시즌 ============ */
  .mc-acc-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--text-sub); flex: 0 0 auto; }
  .mc-acc-title { font-size: var(--text-base); font-weight: 700; letter-spacing: .3px; color: var(--text); }
  .mc-acc-meta { margin-left: auto; display: flex; gap: 6px; }
  .mc-acc-group.acc-nexon .mc-acc-title { color: var(--text); }
  .mc-acc-group.acc-nexon .mc-acc-dot { background: var(--text); }
  .mc-acc-group.acc-naver .mc-acc-title { color: var(--lz-brand-naver-fg); }
  .mc-acc-group.acc-naver .mc-acc-dot { background: var(--lz-brand-naver); }
  .mc-acc-group.acc-google .mc-acc-title { color: var(--accent); }
  .mc-acc-group.acc-google .mc-acc-dot { background: var(--accent); }
  .mc-lb { font-size: var(--text-2xs); font-weight: 600; border-radius: var(--radius-sm); padding: 2px 8px; background: var(--surface-alt); color: var(--text-sub); }
  .mc-lb.gold { background: var(--color-warn-bg); color: var(--color-warn); }
  .mc-lb.gold b.full { color: var(--color-danger); }
  .mc-lb b { font-weight: 700; }
  .mc-lb.over { background: var(--color-danger-bg); color: var(--color-danger); }
  /* [리프연동] 메랜 탭 고스트 카드 — 버닝 리프 지정 캐릭 합류 예고 */
  #myCharsGrid .mc-bcard.is-ghost { opacity: .62; border-style: dashed; cursor: pointer; }
  #myCharsGrid .mc-bcard.is-ghost:hover { opacity: .88; border-color: var(--color-warn); }
  .mc-leaf-chip { font-size: var(--text-2xs); font-weight: 700; border-radius: var(--radius-sm); padding: 1px 7px; margin-left: 6px; background: var(--color-warn-bg); color: var(--color-warn); flex: 0 0 auto; }
  .mc-ghost-note { font-size: var(--text-xs); color: var(--text-sub); }
  .mc-leaf-exec { font-size: var(--text-xs); font-weight: 700; border: 1px solid var(--color-warn); background: var(--color-warn-bg); color: var(--color-warn); border-radius: var(--radius-sm); padding: 4px 10px; cursor: pointer; }
  .mc-leaf-exec:hover { filter: brightness(1.15); }
  /* 통합 미리보기 */
  .mc-merge-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-top: 10px; }
  .mc-merge-card { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 13px 15px; background: var(--surface); }
  .mc-mg-head { display: flex; align-items: center; gap: 7px; font-size: var(--text-xs); font-weight: 700; margin-bottom: 9px; color: var(--text); letter-spacing: .3px; }
  .mc-merge-card.acc-nexon .mc-acc-dot { background: var(--text); }
  .mc-merge-card.acc-naver .mc-acc-dot { background: var(--lz-brand-naver); }
  .mc-merge-card.acc-google .mc-acc-dot { background: var(--accent); }
  .mc-mg-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: var(--text-sm); color: var(--text); }
  .mc-mg-lv { font-weight: 700; width: 34px; text-align: right; flex: 0 0 auto; }
  .mc-mg-src { margin-left: auto; font-size: var(--text-2xs); font-weight: 600; border-radius: var(--radius-sm); padding: 1px 7px; flex: 0 0 auto; }
  .mc-mg-src.leaf { background: var(--color-warn-bg); color: var(--color-warn); }
  .mc-mg-empty { font-size: var(--text-xs); color: var(--text-sub); padding: 4px 0; }
  .mc-mg-note { font-size: var(--text-xs); color: var(--text-sub); margin-top: 10px; }
  /* 시즌 배지 */
  .mc-season-badge { display: inline-flex; gap: 6px; background: var(--color-success-bg); color: var(--color-success); border-radius: var(--radius-pill); padding: 3px 12px; font-size: var(--text-xs); font-weight: 700; }
  /* [4-A23 step17] 직업군 컬러 ramp 제거 — mcCardHTML이 더 이상 사용 안 함 */
  /* 추가 슬롯 */
  /* [4-A23 step5 fix] 빈 카드 — 폰트 16/13 (캐릭터 등록 모달과 통일) */
  .mc-addslot { border: var(--border-medium) dashed var(--border); border-radius: var(--radius); background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-6); cursor: pointer; color: var(--text-sub); transition: all .15s; }
  .mc-addslot:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light); }
  .mc-addslot .mc-addslot-plus { font-size: 32px; font-weight: 300; line-height: 1; }
  .mc-addslot .mc-addslot-label { font-size: var(--text-md); font-weight: 600; }
  .mc-addslot .mc-addslot-hint { font-size: var(--text-base); color: var(--text-sub); }

  /* ===== [4-A43] 내 공대 페이지 (myraids-v2) ===== */
  /* 카드 그리드 — #myCharsGrid / #todayBossGrid와 동일 규칙 (3열 → 2열 → 1열) */
  #mrGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--space-16); align-items: stretch; }
  #mrGrid .mc-card,
  #mrGrid .mc-addslot { min-height: 313px; height: 100%; box-sizing: border-box; margin-bottom: 0; }
  #mrGrid .mc-card { display: flex; flex-direction: column; position: relative; }

  /* [4-A56] 공대 카드 멤버 아바타 스택 (face pile) */
  .mr-avatar-stack { display: flex; align-items: center; justify-content: center; margin-top: 12px; }
  .mr-avatar-stack .mr-av { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; background: var(--surface-alt); border: 2px solid var(--card-bg); margin-left: -8px; flex-shrink: 0; box-sizing: border-box; }
  .mr-avatar-stack .mr-av:first-child { margin-left: 0; }
  .mr-avatar-stack .mr-av-initial { display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; color: var(--text-sub); border: 2px solid var(--card-bg); }
  .mr-avatar-stack .mr-av-more { width: 28px; height: 28px; border-radius: 50%; background: var(--surface-alt); border: 2px solid var(--card-bg); margin-left: -8px; flex-shrink: 0; box-sizing: border-box; display: flex; align-items: center; justify-content: center; font-size: var(--text-2xs); font-weight: 700; color: var(--text-sub); }

  /* 검색 액션 바 + 콤보 */
  /* [4-A44 hotfix #1] input·버튼 height 40px 잠금 — 페이지 한정 룰만 손대고 전역 .btn-* 미수정 */
  .myraids-actions { display: flex; gap: var(--space-8); margin-bottom: 24px; position: relative; align-items: center; }
  .myraids-actions input { flex: 1; height: 40px; padding: 0 14px; border: 0.5px solid var(--border); border-radius: var(--radius); font-size: var(--text-md); background: var(--card-bg); color: var(--text); outline: none; box-sizing: border-box; }
  .myraids-actions input:focus { border-color: var(--accent); }
  .myraids-actions .btn { display: inline-flex; align-items: center; gap: 6px; height: 40px; box-sizing: border-box; }

  .mr-combo { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 50; background: var(--card-bg); border: 0.5px solid var(--border); border-radius: var(--radius-md); overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,.08); max-height: 420px; overflow-y: auto; }
  .mr-combo-label { font-size: var(--text-2xs); color: var(--text-sub); padding: 10px 14px 6px; letter-spacing: .03em; }
  .mr-combo-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; cursor: pointer; border-top: 0.5px solid var(--border); }
  .mr-combo-item:first-of-type { border-top: 0; }
  .mr-combo-item:hover, .mr-combo-item.hl { background: var(--surface-alt); }
  .mr-combo-avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--surface-alt); display: flex; align-items: center; justify-content: center; font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); flex-shrink: 0; }
  .mr-combo-text { flex: 1; min-width: 0; }
  .mr-combo-name { font-size: var(--text-sm); font-weight: 600; color: var(--text); margin-bottom: 2px; }
  .mr-combo-meta { font-size: var(--text-xs); color: var(--text-sub); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mr-combo-action { font-size: var(--text-xs); color: var(--accent); font-weight: 600; flex-shrink: 0; }

  /* 구분선 (참여 중 공대 헤더) */
  .mr-divider { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; color: var(--text-sub); font-size: var(--text-2xs); letter-spacing: .03em; text-transform: uppercase; font-weight: 600; }
  .mr-divider::before, .mr-divider::after { content: ''; flex: 1; border-top: 0.5px solid var(--border); }

  /* 카드 내 역할 뱃지 색상 */
  .mc-role-badge.badge-leader { background: var(--role-leader-bg); color: var(--role-leader); }
  .mc-role-badge.badge-member { background: var(--role-member-bg); color: var(--role-member); }
  [data-theme="dark"] .mc-role-badge.badge-leader { background: rgba(124,58,237,.15); color: #a78bfa; }
  [data-theme="dark"] .mc-role-badge.badge-member { background: var(--role-member-bg); color: var(--role-member); }

  @media (max-width: 768px) {
    #mrGrid { grid-template-columns: 1fr !important; }
    #mrGrid .mc-addslot { grid-column: 1 / -1 !important; min-height: 313px !important; /* mc-card와 동일 — 캐릭터/공대/보스 3페이지 공유 */ }
  }

  /* [4-A24 step1] 프로모션 슬롯 공용 — 후원/공지/피드백/placeholder 점선 톤 */
  .promo-slot {
    border: 1.5px dashed var(--border);
    border-radius: var(--radius);
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 18px 14px;
    color: var(--text-sub);
    transition: all .15s;
    text-align: center;
    box-sizing: border-box;
  }
  .promo-slot:hover { border-color: var(--accent); color: var(--accent); }
  .promo-slot-plus { font-size: 24px; font-weight: 300; line-height: 1; color: var(--text-sub); }
  .promo-slot-label { font-size: var(--text-base); font-weight: 500; color: var(--text); }
  .promo-slot-hint { font-size: var(--text-xs); color: var(--text-sub); }
  /* 자리 ① 사이드바 하단 */
  .promo-slot-1 { min-height: 130px; margin: 12px; }
  body.sidebar-collapsed .promo-slot-1 { display: none; }
  /* [4-A24 step2] 자리 ② 헤더 띠 — 가로형, 모든 페이지 상단 */
  .promo-slot-2 {
    flex-direction: row;
    gap: 10px;
    min-height: 44px;
    padding: 10px 16px;
    margin-bottom: 16px;
  }
  .promo-slot-2 .promo-slot-plus { font-size: 18px; }
  .promo-slot-2 .promo-slot-hint { margin-left: auto; }

  /* [4-A25 step3] 활성 공지 노출 모드 — 점선 X, 유형별 색상 */
  .promo-slot-2.has-notice {
    border-style: solid;
    border-width: 1px;
    cursor: default;
    text-align: left;
    justify-content: flex-start;
  }
  .promo-slot-2.has-notice:hover { border-color: inherit; color: inherit; }
  .nb-type-general  { border-color: var(--accent); background: rgba(11,92,213,0.06); }
  .nb-type-update   { border-color: var(--color-info); background: rgba(59,130,246,0.08); }
  .nb-type-event    { border-color: var(--color-warn); background: rgba(245,158,11,0.08); }
  .nb-type-urgent   { border-color: var(--color-danger); background: rgba(220,38,38,0.08); }
  .nb-icon { font-size: 16px; flex-shrink: 0; }
  .nb-type-general .nb-icon { color: var(--accent); }
  .nb-type-update  .nb-icon { color: var(--color-info); }
  .nb-type-event   .nb-icon { color: var(--color-warn); }
  .nb-type-urgent  .nb-icon { color: var(--color-danger); }
  .nb-content { font-size: var(--text-sm); color: var(--text); flex: 1; line-height: 1.5; }
  .nb-close {
    background: none; border: none; cursor: pointer; padding: 4px;
    color: var(--text-sub); font-size: 18px; line-height: 1;
    border-radius: var(--radius-sm); transition: all .15s;
  }
  .nb-close:hover { color: var(--text); background: var(--surface-alt); }

  /* [4-A24 step3] hero 비로그인 placeholder */
  .promo-slot-hero { min-height: 130px; margin-bottom: 14px; }


  /* [4-A24 step6] 자리 ④ 대시보드 placeholder — 콘텐츠 미정, 점선 톤 (자리 ③와 동일 dimension) */
  .promo-slot-4 { min-height: 210px; margin: 14px 0; padding: 24px 16px; gap: 6px; }

  /* [4-A24 step3] hero "오늘의 정산금" 라벨 + 체크 아이콘 + 상태 텍스트 */
  .dv-hero-today-label { font-size: var(--text-xs); color: rgba(255,255,255,0.75); margin-top: 6px; letter-spacing: 0.02em; }
  .dv-hero-amt-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 2px; }
  .dv-hero-check {
    width: 36px; height: 36px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer; transition: all .2s; flex-shrink: 0;
    font-size: 18px; font-weight: 700; line-height: 1;
    border: 2px solid #fbbf24;
    background: rgba(251,191,36,0.15); color: #fde68a;
    padding: 0;
  }
  .dv-hero-check:hover { background: rgba(251,191,36,0.3); transform: scale(1.05); }
  .dv-hero-check.on { background: #22c55e; border-color: #16a34a; color: #fff; }
  .dv-hero-check.on:hover { background: #16a34a; transform: none; }
  .dv-hero-status { font-size: var(--text-sm); font-weight: 500; color: #fde68a; }
  .dv-hero-status.on { color: #86efac; }
  .dv-hero-status-time { font-size: var(--text-xs); opacity: 0.75; margin-left: 6px; font-weight: 400; }

  /* [4-A26 step1] hero 두 모드 토글 — data-mode에 따라 한 쪽만 노출 */
  .dv-hero-mode { display: none; }
  #dvmHero[data-mode="has"]   .dv-hero-mode-has   { display: block; }
  #dvmHero[data-mode="empty"] .dv-hero-mode-empty { display: block; }

  /* Empty hero (상태 A) */
  .mc-empty-hero { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-14); text-align: center; padding: 80px 20px; background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius); }
  .mc-empty-hero .mc-empty-icon { width: 72px; height: 72px; border-radius: 50%; background: var(--accent-light); color: var(--accent); display: flex; align-items: center; justify-content: center; }
  .mc-empty-hero .mc-empty-icon .material-icons { font-size: 40px; }
  .mc-empty-hero .mc-empty-title { font-size: var(--text-md); font-weight: 500; color: var(--text); margin-top: 4px; }
  .mc-empty-hero .mc-empty-desc { font-size: var(--text-base); color: var(--text-sub); line-height: 1.6; max-width: 380px; }
  .mc-empty-hero .mc-empty-cta { margin-top: 8px; padding: 10px 22px; background: var(--accent); color: #fff; border: none; border-radius: var(--radius); font-size: var(--text-sm); font-weight: 600; cursor: pointer; }
  .mc-empty-hero .mc-empty-cta:hover { opacity: .92; }
  .mc-empty-hero .mc-empty-foot { font-size: var(--text-2xs); color: var(--text-sub); margin-top: 6px; opacity: .8; }

  .page-title { font-size: var(--text-2xl); font-weight: 700; margin-bottom: 4px; }
  .page-desc { font-size: var(--text-md); color: var(--text-sub); margin-bottom: 20px; }
  .top-bar { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; }

  /* ===== Components ===== */
  .btn { padding: 10px 20px; border: none; border-radius: var(--radius); cursor: pointer; font-size: var(--text-base); font-weight: 600; transition: .15s; display: inline-flex; align-items: center; gap: var(--space-6); font-family: inherit; }
  .btn-primary { background: var(--accent); color: #fff; }
  .btn-primary:hover { background: #094ab2; }
  .btn-outline { background: #fff; color: var(--text-sub); border: 1px solid var(--border); }
  .btn-outline:hover { background: #f9fafb; }
  /* [4-A34] .btn-danger 기본 스타일을 outline 톤으로 통일 (이전 솔리드 빨강 → 절제된 빨강 outline). 일괄 적용 — HTML 변경 없음. */
  .btn-danger { background: var(--card-bg); border: 1px solid var(--color-danger-light); color: var(--color-danger); transition: background .15s, border-color .15s; }
  .btn-danger:hover { background: var(--color-danger-bg-subtle); border-color: var(--color-danger); }
  [data-theme="dark"] .btn-danger { background: var(--surface); border-color: #b91c1c; color: var(--color-danger); }
  [data-theme="dark"] .btn-danger:hover { background: var(--color-danger-bg-subtle); border-color: var(--color-danger); }
  /* .btn-danger-confirm — 모달 최종 확정 전용 (hover시 solid flip) */
  .btn-danger-confirm { background: var(--card-bg); border: 1px solid var(--color-danger-light); color: var(--color-danger); transition: background .15s, border-color .15s, color .15s; }
  .btn-danger-confirm:hover { background: var(--color-danger); border-color: var(--color-danger); color: #fff; }
  [data-theme="dark"] .btn-danger-confirm { background: var(--surface); border-color: var(--color-danger); color: var(--color-danger-light); }
  [data-theme="dark"] .btn-danger-confirm:hover { background: var(--color-danger); border-color: var(--color-danger); color: #fff; }
  /* [4-A56] .btn-danger-solid — 영구 삭제/파괴 액션 전용 솔리드 빨강 (삭제·강퇴·차단). 라이트/다크 동일. */
  .btn-danger-solid { background: var(--color-danger); border: 1px solid var(--color-danger); color: #fff; transition: background .15s, border-color .15s; }
  .btn-danger-solid:hover { background: #b91c1c; border-color: #b91c1c; }
  [data-theme="dark"] .btn-danger-solid { background: var(--color-danger); border-color: var(--color-danger); color: #fff; }
  [data-theme="dark"] .btn-danger-solid:hover { background: #ef4444; border-color: #ef4444; }
  /* .btn-warn — outline base (.btn-danger 옵션 3 패턴 대칭) */
  .btn-warn { background: var(--card-bg); border: 1px solid var(--color-warn); color: var(--color-warn); transition: background .15s, border-color .15s; }
  .btn-warn:hover { background: var(--color-warn-bg-subtle); border-color: var(--color-warn); }
  [data-theme="dark"] .btn-warn { background: var(--surface); border-color: var(--color-warn); color: var(--color-warn); }
  [data-theme="dark"] .btn-warn:hover { background: var(--color-warn-bg-subtle); border-color: var(--color-warn); }
  .class-tab { padding:8px 4px; border: var(--border-medium) solid var(--border); border-radius: var(--radius); background:#fff; color:var(--text-sub); font-size:var(--text-sm); font-weight:500; cursor:pointer; transition:.15s; font-family:inherit; }
  .class-tab:hover { border-color:var(--accent); color:var(--accent); }
  .class-tab.active { border-color:var(--accent); background:var(--accent-light); color:var(--accent); font-weight:700; }
  .btn-sm { padding: 5px 12px; font-size: var(--text-xs); height: 30px; box-sizing: border-box; }

  .card { background: var(--card-bg); border-radius: var(--radius); padding: 20px; border: 1px solid var(--border); margin-bottom: 16px; }
  .card-stat { background: var(--card-bg); border: var(--border-thin) solid var(--border); border-radius: var(--radius); padding: 14px 16px; min-height: 0; }
  .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-16); margin-bottom: 24px; }
  .stat-card { display: flex; justify-content: space-between; align-items: center; }
  .stat-card h3 { font-size: var(--text-2xl); font-weight: 700; }
  .stat-card p { font-size: var(--text-base); color: var(--text-sub); margin-top: 2px; }
  .stat-icon { width: 44px; height: 44px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: var(--text-xl); }

  .card-action { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
  .card-action:hover { border-color: var(--accent); box-shadow: 0 4px 16px rgba(0,0,0,.08); }
  [data-theme="dark"] .card-action:hover { box-shadow: 0 4px 16px rgba(0,0,0,.3); }
  .card-action-gold { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
  .card-action-gold:hover { border-color: var(--color-settle-gold); box-shadow: 0 4px 16px rgba(186,117,23,.12); }
  [data-theme="dark"] .card-action-gold:hover { box-shadow: 0 4px 16px rgba(186,117,23,.18); }

  .panel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
  .panel-header h2 { font-size: var(--text-md); font-weight: 700; }
  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); }

  .table-wrap { overflow-x: auto; }
  /* ═════════════════════════════════════════════════════════
     [4-A23 step14] 테이블 표준 규격 — 룰 락인
     ─────────────────────────────────────────────────────────
     • 폰트: 15px (var(--text-base)) — PC 15px 룰 정합
     • 본문 행: 50px (padding 14/18 + 22 line-height)
     • 헤더 행: 46px (padding 12/18 + 22) — 본문 -4px 위계
     • 글로벌 <table> 셀렉터 자동 적용 — 새 테이블 추가 시 표준 입힘
     • 인라인 padding/font-size override 금지
     • 다른 밀도는 modifier 클래스(.dash-member-table 등)로 분리
     • ※ CSS Grid는 별개 룰 (카드 레이아웃)
     ═════════════════════════════════════════════════════════ */
  table { width: 100%; border-collapse: collapse; font-size: var(--text-base); }
  /* [4-A32] 전역 테이블 헤더 행 50px (본문 44px + 단차 6) */
  thead th { background: var(--surface-alt); height: 50px; padding: 0 18px; text-align: left; font-weight: 600; color: var(--text-sub); font-size: var(--text-base); border-bottom: 1px solid var(--border); white-space: nowrap; box-sizing: border-box; }
  /* [4-A32] 전역 테이블 본문 행 44px (모바일 터치 가이드 Apple HIG / WCAG AAA 44 충족). 정산시트는 카드뷰 전환되므로 별도 40px 컴팩트 룰 적용. */
  tbody td { height: 44px; padding: 5px 18px; border-bottom: 1px solid var(--row-line); vertical-align: middle; box-sizing: border-box; }
  tbody tr:hover { background: var(--surface-alt); }

  /* ===== Dashboard ===== */
  .dash-welcome { background: linear-gradient(135deg, #0b5cd5 0%, #1e40af 100%); border-radius: 14px; padding: 24px 28px; margin-bottom: 20px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); }
  .dash-welcome h2 { font-size: var(--text-xl); font-weight: 700; color: #fff; margin-bottom: 4px; }
  .dash-welcome p { font-size: var(--text-base); color: rgba(255,255,255,.75); }
  .dash-welcome .welcome-char { display: flex; align-items: center; gap: var(--space-12); }
  .dash-welcome .char-badge { background: rgba(255,255,255,.15); border-radius: var(--radius-md); padding: 8px 14px; color: #fff; font-size: var(--text-sm); font-weight: 600; white-space: nowrap; }

  .dash-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); margin-bottom: 16px; }
  .dash-grid-3 { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-16); margin-bottom: 16px; }

  .dash-section-title { font-size: var(--text-sm); font-weight: 700; color: var(--text-sub); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 12px; display: flex; align-items: center; gap: var(--space-6); }
  .dash-section-title .material-icons { font-size: var(--icon-sm); }

  /* [4-A38] .tb-grid 룰 폐기 — #todayBossGrid가 #myCharsGrid 룰 상속 (line 414~) */
  /* [4-A38] .boss-card-header/cat/menu 룰 폐기 — 마크업이 .mc-card-hd / .mc-small-icon / .mc-slot-label / .mc-kebab로 통일 */
  /* [4-A40] .boss-card / .boss-card:hover 폐기 — 4-A39에서 .mc-card에 cursor:pointer + :hover border-color 흡수됨 */
  /* [4-A38] 입장 가능/완료 뱃지 — .mc-role-badge에 직접 modifier 부착 (boss-card-badge 클래스 마크업에서 제거됨) */
  .mc-role-badge.available { background: var(--color-success-bg); color: var(--color-success); }
  .mc-role-badge.done { background: var(--surface-alt); color: var(--text-sub); }

  /* ⋯ 드롭다운 */
  .boss-card-dropdown { position: absolute; right: 0; top: 26px; background: var(--card-bg); border: var(--border-thin) solid var(--border); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.08); padding: 4px; min-width: 140px; z-index: 50; display: none; }
  .boss-card-dropdown.open { display: block; }
  .boss-card-dropdown-item { padding: 8px 12px; font-size: var(--text-xs); color: var(--text); cursor: pointer; border-radius: 4px; }
  .boss-card-dropdown-item:hover { background: var(--surface-alt); }
  .boss-card-dropdown-item.danger { color: var(--color-danger); }
  [data-theme="dark"] .boss-card-dropdown { box-shadow: 0 4px 12px rgba(0,0,0,.4); }

  /* 입장 시각 모달 */
  .boss-time-modal-scrim { position: fixed; inset: 0; background: rgba(0,0,0,.45); display: none; align-items: center; justify-content: center; z-index: 100; padding: 16px; }
  .boss-time-modal-scrim.open { display: flex; }
  .boss-time-modal { background: var(--card-bg); border: var(--border-thin) solid var(--border); border-radius: 12px; padding: 20px 22px; width: 300px; max-width: 100%; }
  .btm-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
  .btm-icon { width: 36px; height: 36px; border-radius: 8px; background: var(--surface-alt); display: flex; align-items: center; justify-content: center; font-weight: 500; color: var(--text-sub); font-size: 18px; overflow: hidden; }
  .btm-icon img { width: 100%; height: 100%; object-fit: cover; }
  .btm-title { font-size: var(--text-sm); font-weight: 500; margin: 0; color: var(--text); }
  .btm-sub { font-size: var(--text-2xs); color: var(--text-sub); margin: 0; }
  .btm-row { margin-bottom: 12px; }
  .btm-label { font-size: var(--text-2xs); color: var(--text-sub); display: block; margin-bottom: 4px; }
  .btm-input { width: 100%; padding: 5px 10px; font-size: var(--text-base); border: var(--border-thin) solid var(--border); border-radius: 6px; background: var(--card-bg); color: var(--text); box-sizing: border-box; height: 36px; }
  .btm-actions { display: flex; gap: 8px; margin-top: 16px; }
  .btm-btn { flex: 1; padding: 5px 12px; font-size: var(--text-xs); border-radius: 6px; cursor: pointer; height: 36px; box-sizing: border-box; }
  .btm-btn-primary { background: var(--accent); color: #fff; border: none; font-weight: 500; }
  .btm-btn-ghost { background: var(--card-bg); border: var(--border-thin) solid var(--border); color: var(--text); }
  .btm-btn-reset { background: transparent; color: var(--color-danger); border: none; padding: 8px; font-size: var(--text-xs); text-align: center; width: 100%; margin-top: 8px; cursor: pointer; }
  .btm-btn-reset:hover { text-decoration: underline; }

  /* 공대 현황 */
  .my-raid-item { display: flex; align-items: center; gap: var(--space-10); padding: 10px 0; border-bottom: 1px solid #f3f4f6; }
  .my-raid-item:last-child { border-bottom: none; }
  .my-raid-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
  .my-raid-name { flex: 1; font-size: var(--text-base); font-weight: 600; }
  .my-raid-sub { font-size: var(--text-xs); color: var(--text-sub); }

  /* 최근 정산 */
  .settle-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid #f3f4f6; gap: var(--space-8); }
  .settle-row:last-child { border-bottom: none; }
  .settle-item-name { font-size: var(--text-sm); font-weight: 600; color: var(--text); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .settle-price { font-size: var(--text-sm); font-weight: 700; color: var(--accent); white-space: nowrap; }
  .settle-date { font-size: var(--text-2xs); color: var(--text-sub); white-space: nowrap; }

  /* 공지 */
  .notice-item { display: flex; gap: var(--space-10); padding: 10px 0; border-bottom: 1px solid var(--row-line); }
  .notice-item:last-child { border-bottom: none; }
  .notice-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; margin-top: 6px; }
  .notice-text { font-size: var(--text-sm); color: var(--text); line-height: 1.5; }
  .notice-date { font-size: var(--text-2xs); color: var(--text-sub); margin-top: 2px; }

  /* 대시보드 반응형 */
  @media (max-width: 900px) {
    .dash-grid-2 { grid-template-columns: 1fr; }
    .dash-grid-3 { grid-template-columns: 1fr; }
  }
  @media (max-width: 768px) {
    .dash-welcome { padding: 18px 18px; }
    .dash-welcome h2 { font-size: var(--text-md); }
    .dash-welcome .char-badge { display: none; }
  }

  .badge { padding: 4px 12px; border-radius: var(--radius-xl); font-size: var(--text-xs); font-weight: 600; display: inline-block; }
  .badge-green { background: var(--color-success-bg); color: var(--color-success); }
  .badge-yellow { background: var(--color-warn-bg); color: var(--color-warn); }
  .badge-red { background: var(--color-danger-bg); color: var(--color-danger); }
  .badge-blue { background: var(--accent-light); color: var(--accent); }
  .badge-purple { background: var(--role-master-bg); color: var(--role-master); }
  .badge-gray { background: #f3f4f6; color: var(--text-sub); }

  /* ===== Member Grid View ===== */
  .member-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--space-10); }
  .member-grid .card-action { padding: 14px 12px; border-radius: var(--radius-md); display: flex; flex-direction: column; align-items: center; gap: var(--space-6); position: relative; margin-bottom: 0; }
  .member-grid .mc-status-dot { position: absolute; top: 10px; right: 10px; width: 8px; height: 8px; border-radius: 50%; }
  .member-grid .mc-icon { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: var(--text-xl); }
  .member-grid .mc-name { font-size: var(--text-sm); font-weight: 700; color: var(--text); text-align: center; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .member-grid .mc-cls { font-size: var(--text-2xs); color: var(--text-sub); }
  .member-grid .mc-level { font-size: var(--text-2xs); color: var(--text-sub); }
  .member-grid .mc-rate-bar { width: 100%; height: 4px; background: #f3f4f6; border-radius: 2px; overflow: hidden; }
  .member-grid .mc-rate-fill { height: 100%; border-radius: 2px; }
  .member-grid .mc-actions { display: flex; gap: var(--space-4); margin-top: 4px; }
  .view-toggle { display: flex; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
  .view-toggle button { padding: 7px 12px; background: #fff; border: none; cursor: pointer; font-size: var(--text-base); color: var(--text-sub); transition: .15s; }
  .view-toggle button.active { background: var(--accent); color: #fff; }
  .view-toggle button:hover:not(.active) { background: #f3f4f6; }

  .filter-bar { display: flex; gap: var(--space-10); margin-bottom: 16px; align-items: center; flex-wrap: wrap; }
  .search-input { padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--text-base); width: 220px; outline: none; background: #fff; }
  .search-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(11,92,213,.12); }

  .progress-bar { height: 6px; background: #f3f4f6; border-radius: 3px; overflow: hidden; }
  .progress-fill { height: 100%; border-radius: 3px; }

  .alert { background: var(--color-warn-bg); border: 1px solid #fde68a; border-radius: var(--radius); padding: 14px 18px; margin-bottom: 16px; font-size: var(--text-base); display: flex; align-items: center; gap: var(--space-8); }
  .alert-info { background: var(--color-info-bg); border-color: #bfdbfe; }

  /* ===== Item Tab Filter ===== */
  .item-tab { padding:6px 14px;border:1px solid var(--border);border-radius: var(--radius-xl);background:#fff;color:var(--text-sub);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:.15s;font-family:inherit; }
  .item-tab:hover { border-color:var(--accent);color:var(--accent); }
  .item-tab.active { border-color:var(--accent);background:var(--accent);color:#fff;font-weight:700; }
  /* [A안] 부위 필터 그룹 라벨 · dim · 활성 필터 요약 바 */
  .item-tab.dim { opacity:.35; }
  .item-slot-group-label { min-width:42px;font-size:var(--text-xs);font-weight:700;color:var(--text-sub); }
  .item-filter-summary { display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 12px; }
  .item-filter-summary-chip { display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 10px;background:var(--accent-light);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:600; }
  .item-filter-summary-chip button { border:none;background:none;color:inherit;cursor:pointer;font-size:var(--text-sm);line-height:1;padding:0 2px;font-family:inherit; }
  .item-filter-summary-clear { border:none;background:none;color:var(--text-sub);cursor:pointer;font-size:var(--text-xs);text-decoration:underline;padding:4px;font-family:inherit; }

  /* ===== 아이템 상세 인페이지 뷰 (목록↔상세 전환 + #item 딥링크) ===== */
  #itemDetailView { display: none; }
  #itemCardRoot.itm-detail-open > #itemDetailView { display: block; }
  #itemCardRoot.itm-detail-open > :not(#itemDetailView) { display: none !important; }
  .itd-top { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
  .itd-back { flex: 0 0 auto; height: 36px; padding: 0 14px; border: 1px solid var(--border); background: var(--surface-alt); color: var(--text); border-radius: var(--radius); font-family: inherit; font-size: var(--text-sm); font-weight: 600; cursor: pointer; }   /* 헤더 행 버튼 14px 통일 */
  .itd-back:hover { border-color: var(--accent); color: var(--accent); }
  .itd-body { display: flex; gap: 20px; align-items: flex-start; }
  /* 좌: 툴팁 고정폭 — 관리탭 .im-grid 미리보기 컬럼(292px) + .im-tip(width/max-width/bg/border/radius) 값 복사(파리티: raw 292px 유지) */
  /* 좌측 열 래퍼 — 툴팁 + 사용내역(비용) 박스를 세로로 쌓는다. 고정폭은 래퍼가 가진다 */
  .itd-left { flex: 0 0 var(--itd-tip-w); max-width: 100%; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
  .itd-tip { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: border-color .15s; }
  /* 사용 내역·비용 집계 (KRDS §3-12) */
  /* 사용 내역 — 섹션 본문(#itdCostBox). 카드 껍데기는 .itd-sec 이 담당하므로 자체 배경·보더 없음 */
  #itdCostBox { display: flex; flex-direction: column; gap: 6px; }
  /* ID(1,0,0)가 .itd-sec.collapsed .itd-sec-body(0,3,0)를 이겨 접힘이 안 먹던 버그 — ID 포함 규칙으로 눌러준다 */
  .itd-sec.collapsed #itdCostBox { display: none; }
  .itd-cost-reset { border: 1px solid var(--border); background: var(--surface-alt); color: var(--text-sub); border-radius: var(--radius-sm); font-family: inherit; font-size: var(--text-xs); padding: 3px 8px; cursor: pointer; }
  .itd-cost-reset:hover { border-color: var(--color-danger); color: var(--color-danger); }
  .itd-cost-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .itd-cost-row .ci { flex: 0 0 auto; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; }
  .itd-cost-row .ci img { max-width: 24px; max-height: 24px; image-rendering: pixelated; }
  .itd-cost-row .cl { flex: 0 0 auto; font-size: var(--text-base); color: var(--text-sub); min-width: 44px; }
  .itd-cost-row .cn { flex: 0 0 auto; font-size: var(--text-base); font-weight: 700; color: var(--text); min-width: 38px; text-align: right; font-variant-numeric: tabular-nums; }
  .itd-cost-row input { flex: 1 1 0; min-width: 0; height: 30px; padding: 0 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg); color: var(--text); font-family: inherit; font-size: var(--text-xs); text-align: right; font-variant-numeric: tabular-nums; }   /* 숫자 13px (모바일은 768 블록의 16px 이 R2-1로 우선) */
  .itd-cost-total { margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--border); font-size: var(--text-base); color: var(--text-sub); display: flex; align-items: center; justify-content: space-between; }
  .itd-cost-total b { color: var(--text); font-variant-numeric: tabular-nums; }   /* 합계 메소 — 본문색(다크 흰색). 사용자 확정 */
  .itd-tip.flash-ok { border-color: var(--color-success); }
  .itd-tip.flash-no { border-color: var(--color-danger); }
  /* 우: 나머지 전부 */
  .itd-side { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
  .itd-name { min-width: 0; font-size: var(--text-md); font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .itd-top-sp { flex: 1 1 auto; }   /* 헤더 단일 행: 이름과 우측 버튼 사이 여백 */
  /* 결과 공유 — 기록 바로 아래 full-width (헤더에서 이동) */
  .itd-share { width: 100%; height: 36px; padding: 0 14px; border: 1px solid var(--border); background: var(--surface-alt); color: var(--text-sub); border-radius: var(--radius); font-family: inherit; font-size: var(--text-sm); font-weight: 600; cursor: not-allowed; opacity: .5; }   /* 결과 공유 14px */
  .itd-act { flex: 0 0 auto; height: 36px; padding: 0 16px; border: 1px solid var(--border); background: var(--surface-alt); color: var(--text); border-radius: var(--radius); font-family: inherit; font-size: var(--text-sm); font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; }   /* 헤더 행 버튼 14px 통일 */
  .itd-act:hover { border-color: var(--accent); color: var(--accent); }
  /* 즐겨찾기 선택 상태 — 파랑 글자 대신 본문색(다크 흰색). 배경 틴트로만 on 을 구분 (사용자 확정) */
  .itd-act.on { border-color: var(--accent); background: var(--accent-light); color: var(--text); }
  /* 헤더 버튼 Material 아이콘 — off=아웃라인, on=fill(별 채움) */
  .itd-act .mi { font-size: 18px; font-variation-settings: 'wght' 400, 'FILL' 0, 'opsz' 20; }
  .itd-act.on .mi { font-variation-settings: 'wght' 400, 'FILL' 1, 'opsz' 20; color: var(--lz-star); }
  /* 강화 탭 UI */
  .itd-enh { display: flex; flex-direction: column; gap: 12px; }   /* margin-top 제거 — 좌측 아이템 패널과 ① 제작의 상단선을 일치 */
  /* 섹션 공통 — ①제작 ②주문서 ③성장 동일 접이식. 헤더: [번호][이름][칩] ─여백─ [meta][캐럿] */
  .itd-sec { display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
  .itd-sec-head { display: flex; align-items: center; gap: 8px; font-size: var(--text-base); font-weight: 700; color: var(--text); }
  .itd-sec-head.tog { cursor: pointer; user-select: none; }
  .itd-sec-head.tog:hover .itd-caret { color: var(--accent); }
  .itd-sec-head.tog:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-sm); }
  .itd-sec-head .n { flex: 0 0 auto; color: var(--text-sub); }
  .itd-sec-head .sp { flex: 1 1 auto; }
  .itd-sec-head .m { flex: 0 0 auto; font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); font-variant-numeric: tabular-nums; }
  .itd-sec-body { display: flex; flex-direction: column; gap: 10px; }
  .itd-sec.collapsed .itd-sec-body { display: none; }
  .itd-sec.collapsed .itd-caret { transform: rotate(-90deg); }
  .itd-sec-chip { font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 1px 8px; }
  .itd-sec-chip.ok { color: var(--color-success); border-color: var(--color-success); }
  .itd-sec-chip.lv { color: var(--accent); border-color: var(--accent); }
  .itd-enh-empty { font-size: var(--text-base); color: var(--text-sub); padding: 2px; }
  .itd-enh-line { display: flex; align-items: center; gap: 10px; }
  .itd-enh-line label { flex: 0 0 auto; font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); }   /* 「계열」 라벨 13px */
  .itd-enh-sel { flex: 1 1 0; min-width: 0; height: 36px; }
  /* Q/W/E + R = 4칸 그리드 (R은 초기화 카드) */
  .itd-enh-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  /* 카드 높이는 min-height로만 — 고정 height 금지(R2-2). 아이콘 유무·효과 줄수에 따라 늘어난다 */
  .itd-enh-btn { min-width: 0; min-height: 96px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 8px 6px; border: 1px solid var(--border); background: var(--surface-alt); color: var(--text); border-radius: var(--radius); font-family: inherit; cursor: pointer; text-align: center; }
  .itd-enh-btn .ico { flex: 0 0 auto; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; margin: 0 auto; }
  /* max-* 는 원본(≈33px 도트)을 안 키운다 — width/height 강제 지정 */
  .itd-enh-btn .ico img { width: 36px; height: 36px; object-fit: contain; image-rendering: pixelated; }
  /* 초기화 아이콘 — Material Symbols wght 400 (기본 렌더가 얇은 100처럼 보이는 문제 해소, 끝단 라운드) */
  .itd-enh-btn .ico .material-icons, .itd-enh-btn .ico .material-symbols-outlined { font-size: 36px; color: var(--text-sub); font-variation-settings: 'wght' 400, 'opsz' 40; }   /* §6-1 예외 1: 아이콘 광학 크기 */
  /* 초기화 — R 키·아이콘·라벨 전부 본문색(다크에서 흰색). 사용자 확정 2026-07-27 */
  .itd-enh-btn.reset .k { color: var(--text); }
  .itd-enh-btn.reset .r { color: var(--text); }
  .itd-enh-btn.reset .ico .material-icons, .itd-enh-btn.reset .ico .material-symbols-outlined { color: var(--text); }
  .itd-enh-btn.reset:hover { border-color: var(--color-warn); }
  .itd-enh-btn.reset:hover .ico .material-icons, .itd-enh-btn.reset:hover .ico .material-symbols-outlined { color: var(--text); }   /* 호버에도 아이콘 흰색 유지 */
  .itd-enh-btn:hover:not(:disabled) { border-color: var(--accent); }
  .itd-enh-btn:disabled { opacity: .45; cursor: not-allowed; }
  .itd-enh-btn .k { font-size: var(--text-base); font-weight: 700; color: var(--accent); }   /* Q/W/E/R 단축키 15px */
  /* 성공률별 키 색 — 주문서 아이콘 색(노랑/빨강/파랑)과 호응. 퍼센트(.r)는 본문색 유지(사용자 확정) */
  .itd-enh-btn.r10 .k { color: var(--scroll-10); }
  .itd-enh-btn.r60 .k { color: var(--scroll-60); }
  .itd-enh-btn.r100 .k { color: var(--scroll-100); }
  .itd-enh-btn .r { color: var(--text); }   /* 10%·60%·100%·초기화 라벨 — 다크에서 흰색(라이트는 본문색) */
  .itd-enh-btn .r { font-size: var(--text-base); font-weight: 700; }
  /* 계열 전환 시 카드 높이가 튀지 않도록 3줄분을 미리 확보 — 고정 height 금지(R2-2) */
  /* 2줄분 확보 + flex 중앙 — 1줄짜리 효과가 확보 공간 위에 붙어 카드가 위로 쏠려 보이던 것 교정 */
  .itd-enh-btn .e { font-size: var(--text-xs); color: var(--text-sub); text-align: center; line-height: 1.4; min-height: 2.9em; display: flex; align-items: center; justify-content: center; }
  /* 기록 = 콘솔 터미널 연출 (테마 무관 고정 다크 · 모노스페이스 · ▶ 프롬프트) */
  /* 터미널 크롬 — 고정 높이. 줄이 늘어도 창은 안 자라고 내부 스크롤 + 바닥 자동 스크롤 */
  .itd-term { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--console-border); border-radius: var(--radius); overflow: hidden; }
  .itd-term-head { display: flex; align-items: center; gap: 6px; padding: 8px 12px; background: var(--console-head); }
  .itd-term-head .td { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
  .itd-term-head .td.r { background: var(--console-dot-r); }
  .itd-term-head .td.y { background: var(--console-dot-y); }
  .itd-term-head .td.g { background: var(--console-dot-g); }
  .itd-term-head .tt { margin-left: 6px; font-size: var(--text-xs); font-weight: 700; color: var(--console-tx); }
  .itd-term-head .ts { margin-left: auto; font-size: var(--text-xs); color: var(--console-dim); }
  .itd-enh-log { display: flex; flex-direction: column; gap: 3px; height: 220px; overflow-y: auto; padding: 10px 12px; background: var(--console-bg); font-size: var(--text-xs); font-variant-numeric: tabular-nums; font-family: 'Consolas', 'Menlo', 'D2Coding', 'Courier New', monospace; }
  .itd-enh-log div { color: var(--console-dim); }
  .itd-enh-log div:not(.itd-enh-log-empty)::before { content: '\25B6\00a0'; opacity: .5; }
  .itd-enh-log .ok { color: var(--console-ok); }
  .itd-enh-log .no { color: var(--console-no); }
  .itd-enh-log .grow { color: var(--console-dim); }
  .itd-enh-log .grow .r3 { color: var(--console-purple); font-weight: 700; }   /* 최대치 롤 = 대박 */
  .itd-enh-log .grow .r2 { color: var(--console-orange); }                     /* 중간 롤 */
  .itd-enh-log .grow .r1 { color: var(--console-tx); }                         /* +0 = 흰색 */
  .itd-enh-log-empty { color: var(--console-dim); opacity: .7; }
  /* 전체폭 하단(툴팁 폭까지) — 기록 → 드랍 몬스터 */
  .itd-full { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }
  .itd-drop { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); opacity: .6; }
  .itd-drop-empty { font-size: var(--text-base); color: var(--text-sub); }
  /* ① 제작 섹션 */
  /* 4열 그리드 공통 (KRDS §3-11) — 옵션 셀 · 보석 셀 동일 축. 빈 칸은 좌측부터 채우고 중앙정렬하지 않는다 */
  .itd-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; min-width: 0; }
  /* 보석은 실슬롯 3개뿐 — 4번째 플레이스홀더를 없앴으므로 3열이다(넘침 원인 제거) */
  .itd-gems { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* [④ 성장 | ⑤ 사용 내역] — 주문서 강화 폭 절반씩. 성장 없으면 .solo 로 사용 내역 전체폭 */
  .itd-half { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: stretch; }   /* 성장 카드가 사용 내역 바텀 라인까지 늘어난다 */
  .itd-half.solo { grid-template-columns: minmax(0, 1fr); }
  .itd-half .itd-sec { min-width: 0; }
  /* stretch 가 접힌 카드를 옆 카드 높이까지 늘려 '접힘이 안 된 것처럼' 보이던 버그 — 접힌 쪽만 자연 높이로 */
  .itd-half .itd-sec.collapsed { align-self: start; }
  .itd-opt-cell { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
  .itd-opt-lb { font-size: var(--text-xs); font-weight: 600; color: var(--text-sub); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .itd-opt-lb b { color: var(--accent); }   /* 촉진제 보호 대상 표식 */
  .itd-opt-cell select { width: 100%; min-width: 0; height: 36px; }
  .itd-caret { flex: 0 0 auto; font-size: var(--text-xs); color: var(--text-sub); transition: transform .15s; }
  .itd-craft-slot.lock { opacity: .5; }
  /* ⚠️ overflow:hidden 금지 — 셀렉트가 1px 라도 넘치면 우측 보더·화살표를 잘라 '열린' 모양을 만든다(재발 2회).
     넘침 방지는 minmax(0,1fr)+min-width:0 가 담당하고, 여기는 클리핑하지 않는다 */
  /* 슬롯 = 2트랙 그리드(아이콘 30px 고정 + 셀렉트 minmax(0,1fr)) — flex grow 가 세 번 실패해서
     트랙이 폭을 강제하는 구조로 교체. 셀렉트 폭 = 트랙 폭, 예외 없음 */
  .itd-craft-slot { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 8px; min-width: 0; }
  .itd-craft-ico { flex: 0 0 auto; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius-sm); }
  .itd-craft-ico img { max-width: 24px; max-height: 24px; image-rendering: pixelated; }
  .itd-craft-slot select { width: 100%; min-width: 0; height: 36px; text-overflow: ellipsis; }   /* 그리드 트랙이 폭을 정한다 — width:100% = 트랙 폭 */
  .itd-craft-accel { display: flex; align-items: center; gap: 8px; font-size: var(--text-xs); color: var(--text); cursor: pointer; }
  .itd-craft-accel input { width: 15px; height: 15px; accent-color: var(--accent); }
  .itd-craft-note { font-size: var(--text-xs); color: var(--color-danger); }
  .itd-craft-btn { height: 36px; border: 1px solid var(--accent); background: var(--accent); color: #fff; border-radius: var(--radius); font-family: inherit; font-size: var(--text-base); font-weight: 700; cursor: pointer; }
  .itd-craft-btn:hover:not(:disabled) { filter: brightness(1.05); }
  .itd-craft-btn:disabled { opacity: .45; cursor: not-allowed; }
  .itd-craft-done { font-size: var(--text-base); font-weight: 700; color: var(--color-success); text-align: center; padding: 4px 0; }
  /* 성장(리버스·타임리스) 섹션 */
  .itd-grow-bar { height: 10px; border-radius: var(--radius-pill); background: var(--surface-alt); overflow: hidden; }
  .itd-grow-bar i { display: block; height: 100%; background: var(--accent); border-radius: var(--radius-pill); transition: width .2s; }
  .itd-grow-exp { font-size: var(--text-xs); color: var(--text-sub); font-variant-numeric: tabular-nums; }
  /* 제작하기(.itd-craft-btn)와 동일한 솔리드 스타일로 통일 (2026-07-27) */
  .itd-grow-hunt { display: flex; align-items: center; justify-content: center; gap: 6px; height: 36px; border: 1px solid var(--accent); background: var(--accent); color: #fff; border-radius: var(--radius); font-family: inherit; font-size: var(--text-base); font-weight: 700; cursor: pointer; }
  .itd-grow-hunt:hover:not(:disabled) { filter: brightness(1.05); }
  .itd-grow-hunt:disabled { opacity: .45; cursor: not-allowed; }
  .itd-grow-hunt .k { font-size: var(--text-base); font-weight: 700; opacity: .85; }   /* G 칩 = 본문과 동일 크기 */
  .itd-grow-skill { font-size: var(--text-xs); font-weight: 700; color: var(--accent); }   /* MAX 최종 스킬 +1 */
  .itd-grow-note { font-size: var(--text-xs); color: var(--text-sub); }
  @media (max-width: 768px) {
    .itd-body { flex-direction: column; }
    .itd-left { flex: 0 0 auto; width: 100%; }   /* 1단: 고정폭 해제 */
    .itd-cost-row input { font-size: 16px; }     /* R2-1: iOS 포커스 강제 줌 방지 */
    .itd-back, .itd-share, .itd-act, .itd-grow-hunt, .itd-craft-btn { height: 40px; }   /* 모바일 40px */
    .itd-enh-sel, .itd-craft-slot select, .itd-opt-cell select { height: 40px; }
    .itd-half { grid-template-columns: minmax(0, 1fr); }   /* 성장·사용내역 1단 적층 */
    .itd-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* 옵션 셀은 2열 */
    .itd-gems  { grid-template-columns: minmax(0, 1fr); }              /* 보석 셀은 1열 4행 — 라벨이 길어 나눠 담으면 잘린다 */
  }
  @media (max-width: 480px) {
    .itd-enh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* 주문서 4칸 → 2×2 (효과 텍스트 보존) */
    .itd-grid4 { grid-template-columns: minmax(0, 1fr); }              /* 옵션·보석 모두 1열 */
    .itd-top { flex-wrap: wrap; }                            /* 2행 폴백: 1행 목록으로+이름 / 2행 버튼 우측 */
    .itd-top-sp { flex-basis: 100%; height: 0; }
    .itd-top .itd-act:nth-of-type(1) { margin-left: auto; }
  }

  /* ===== Item Autocomplete ===== */
  .autocomplete-wrap { position: relative; }
  .autocomplete-list { position: absolute; top: 100%; left: 0; right: 0; background: #fff; border: 1px solid var(--border); border-top: none; border-radius: 0 0 8px 8px; max-height: 220px; overflow-y: auto; z-index: 200; box-shadow: 0 4px 12px rgba(0,0,0,.1); }
  .autocomplete-item { padding: 9px 14px; font-size: var(--text-base); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--space-8); }
  .autocomplete-item:hover, .autocomplete-item.selected { background: var(--accent-light); }
  .autocomplete-item .ac-name { font-weight: 600; color: var(--text); }
  .autocomplete-item .ac-en { font-size: var(--text-xs); color: var(--text-sub); }
  .autocomplete-empty { padding: 12px 14px; font-size: var(--text-sm); color: var(--text-sub); text-align: center; }

  /* ===== [아이템검색개편] 히어로 검색바 (메인 통합검색 .mh-* 스펙 미러, .it-* 스코프) ===== */
  #page-items .it-hero{max-width:600px;margin:0 auto 18px;}
  #page-items .it-searchbar{display:flex;align-items:stretch;gap:0;width:100%;border:var(--border-thin) solid var(--border);border-radius:14px;background:var(--card-bg);overflow:hidden;transition:border-color .15s}
  #page-items .it-searchbar:focus-within{border-color:var(--accent)}
  #page-items .it-field{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:16px 16px;text-align:left}   /* [ST15] mh(9px)+라벨블록(라벨11+gap3=14) 절반씩 흡수=16 → mh와 높이 정합 */
  #page-items .it-field-label{font-size:var(--text-2xs);font-weight:700;color:var(--text-sub);line-height:1;white-space:nowrap;pointer-events:none}
  #page-items .it-field input{width:100%;border:none;background:transparent;color:var(--text);font-size:var(--text-md);outline:none;box-sizing:border-box;padding:0;font-family:inherit}   /* [ST15R] #page-dashboard .mh-field-search input(3252)과 값 통일 — 한쪽만 바꾸지 말 것 */
  #page-items .it-search-btn{flex:0 0 auto;display:flex;align-items:center;padding:0 22px;border:none;border-left:var(--border-thin) solid var(--border);background:transparent;color:var(--accent);cursor:pointer;font-family:inherit;transition:opacity .12s}
  #page-items .it-search-btn:hover{opacity:.7}
  #page-items .it-search-btn .material-icons{font-size:var(--text-lg)}
  #page-items .it-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:12px}
  #page-items .it-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);font-weight:600;color:var(--text-sub);background:var(--surface);border:var(--border-thin) solid var(--border);border-radius:var(--radius-xl);padding:6px 13px;cursor:pointer;transition:border-color .12s,color .12s}
  #page-items .it-chip:hover{border-color:var(--accent);color:var(--text)}
  #page-items .it-chip .sp{color:var(--accent);font-size:var(--text-sm);line-height:1}
  /* [AA4-d] 검색 버튼 상태 전환 — 돋보기 ↔ ESC */
  #page-items .it-btn-gg{font-weight:800;font-size:var(--text-md);letter-spacing:-0.5px;color:var(--accent)}
  #page-items .it-btn-esc{display:none;font-size:var(--text-xs);font-weight:700;letter-spacing:.5px;padding:5px 10px;border-radius:6px;color:var(--text);background-color:var(--surface-alt);border:1px solid var(--border);border-bottom-width:3px;line-height:1}
  #page-items .it-searchbar.is-open .it-btn-gg{display:none}
  #page-items .it-searchbar.is-open .it-btn-esc{display:inline-block}
  #page-items .it-searchbar.is-open .it-search-btn:hover .it-btn-esc{border-color:var(--accent);color:var(--text)}
  #page-items .it-searchbar.is-open .it-search-btn:active .it-btn-esc{border-bottom-width:1px;transform:translateY(2px)}
  /* [ST15] 모바일 검색바 정합 — mh와 동일 브레이크포인트(760). mh(8·12)+라벨보정 ~7 → 15·12 */
  @media (max-width:760px){
    #page-items .it-field{padding:15px 12px}
  }
  /* [아이템검색개편] 큰 카드 fill 제거 — 그리드가 페이지 배경 위 (목업 v2) */
  #page-items > .card{background:transparent;border:none;padding:0}

  /* ===== Horntail Phase Timer ===== */
  .ht-section { border-radius:16px; overflow:hidden; border:1px solid var(--border); box-shadow:0 2px 10px rgba(0,0,0,.07); }
  .ht-section-header { padding:11px 16px; display:flex; align-items:center; justify-content:center; gap: var(--space-8); font-size:var(--text-base); font-weight:700; color:var(--text); letter-spacing:.3px; background:#f3f4f6; }
  .ht-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(300px, 100%), 330px)); justify-content:center; gap:12px; padding:16px; background:#f3f4f6; }
  .ht-card { position:relative; background:#fff; border-radius:12px; display:flex; flex-direction:row; align-items:stretch; padding:0; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.05); }
  .ht-progress { position:absolute; left:0; bottom:0; height:4px; width:0; background:#5b5fef; z-index:3; transition:width .25s linear; }
  .ht-card-main { position:relative; flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:18px 12px; gap:6px; }
  .ht-card-top { display:flex; align-items:center; justify-content:center; gap: var(--space-6); min-height:24px; }
  .ht-card-title { font-size:var(--text-base); color:var(--text-sub); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:5px; }
  .ht-card-time { font-family:'DSEG7', monospace; font-size:34px; font-weight:700; color:#1a1d23; letter-spacing:0; line-height:1; text-align:center; font-variant-numeric:tabular-nums; padding:2px 0; }
  .ht-card-time.running { color:var(--text); }
  .ht-card-time.done    { color:var(--color-success); }
  .ht-card-actions { display:flex; flex-direction:column; flex:0 0 auto; }
  .ht-start-btn { flex:1; min-width:74px; padding:0 16px; border:none; border-radius:0; font-size:var(--text-md); font-weight:700; cursor:pointer; transition:.15s; font-family:inherit; }
  .ht-start-btn.idle    { background:var(--accent); color:#fff; }
  .ht-start-btn.idle:hover { filter:brightness(1.08); }
  .ht-start-btn.restart { background:#5b5fef; color:#fff; }
  .ht-start-btn.restart:hover { filter:brightness(1.08); }
  .ht-reset-btn { flex:1; min-width:74px; padding:0 16px; border:none; border-radius:0; font-size:var(--text-sm); font-weight:700; cursor:pointer; font-family:inherit; background:var(--color-danger); color:#fff; }
  .ht-reset-btn:hover { filter:brightness(1.08); }
  .ht-mute-icon { font-size:16px; cursor:pointer; vertical-align:middle; line-height:1; user-select:none; }
  .ht-mute-icon.on  { color:#9aa0ab; }
  .ht-mute-icon.off { color:#ef4444; }
  .ht-edit-btn { padding:3px 10px; border-radius: var(--radius-sm); border:1px solid var(--border); background:var(--surface); color:var(--text-sub); font-size:var(--text-2xs); font-weight:600; cursor:pointer; white-space:nowrap; font-family:inherit; transition:.15s; }
  .ht-edit-btn:hover { background:var(--surface-alt); border-color:var(--text-sub); color:var(--text); }
  #htVoiceSel { display:none !important; }  /* 음성 선택 드롭다운 숨김(요소는 유지 — JS가 값 사용) */
  .ht-auto-icon { font-size:18px; cursor:pointer; vertical-align:middle; position:relative; line-height:1; user-select:none; }
  .ht-auto-icon.on  { color:#a78bfa; }
  .ht-auto-icon.off { color:#ef4444; }
  .ht-auto-icon.off::after { content:''; position:absolute; left:50%; top:8%; width:2px; height:84%; background:#ef4444; transform:translateX(-50%) rotate(45deg); border-radius:1px; }
  .ht-pause-icon { font-size:18px; cursor:pointer; vertical-align:middle; line-height:1; user-select:none; color:#9aa0ab; }
  .ht-pause-icon:hover { color:#a78bfa; }
  .ht-pause-icon.idle { opacity:.35; cursor:default; }
  .ht-pause-icon.idle:hover { color:#9aa0ab; }
  .ht-pause-row { position:absolute; left:0; right:0; bottom:2px; display:flex; justify-content:center; align-items:center; height:18px; }
  #htVoiceSel { -webkit-appearance:none; -moz-appearance:none; appearance:none; padding:10px 32px 10px 14px; font-size:var(--text-base); font-weight:600; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239aa0ab' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; background-size:14px; }

  /* Modal */
  .modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.5); z-index: 100; align-items: center; justify-content: center; }
  #discordProfileModal { z-index: 1100; }
  .modal-overlay.show { display: flex; }
  .modal { background: #fff; border-radius: 14px; padding: 28px; width: 520px; max-height: 85vh; overflow-y: auto; }
  .modal h2 { font-size: var(--text-xl); font-weight: 700; margin-bottom: 20px; }
  .form-group { margin-bottom: 14px; }
  .form-group label { display: block; font-size: var(--text-base); font-weight: 600; color: var(--text-sub); margin-bottom: 4px; }
  .form-group input, .form-group select { width: 100%; padding: 10px 14px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--text-md); outline: none; }
  .form-group input:focus, .form-group select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(11,92,213,.12); }
  .form-group select { padding-right: 32px; }
  .form-select { padding: 10px 14px; padding-right: 32px; border: 1px solid var(--border); border-radius: var(--radius); background-color: var(--card-bg); color: var(--text); font-size: var(--text-base); font-family: inherit; cursor: pointer; outline: none; transition: border-color .15s, box-shadow .15s; }
  .form-select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(11,92,213,.12); }
  .settle-filter-bar { display: flex; justify-content: flex-end; align-items: center; padding: 0 0 16px; }
  .form-select.form-select-lg { width: 120px; height: 40px; padding: 0 32px 0 12px; font-size: var(--text-base); box-sizing: border-box; }

  /* === 날짜/시간 입력 통일 — 박스만, 팝업은 OS 네이티브 유지 === */
  input[type="date"],
  input[type="time"]{
    height:38px;
    padding:0 36px 0 12px;
    border:0.5px solid var(--border);
    border-radius:8px;
    background-color:var(--card-bg);
    color:var(--text);
    font-family:inherit;
    font-size:var(--text-base);
    box-sizing:border-box;
    position:relative;
    background-repeat:no-repeat;
    background-position:right 12px center;
    appearance:none;
    -webkit-appearance:none;
    cursor:pointer;
  }
  /* 네이티브 indicator는 투명화하되 클릭 영역은 유지 (모바일 OS 피커 그대로 동작) */
  input[type="date"]::-webkit-calendar-picker-indicator,
  input[type="time"]::-webkit-calendar-picker-indicator{
    position:absolute;
    right:0; top:0;
    width:36px; height:100%;
    margin:0; padding:0;
    opacity:0;
    cursor:pointer;
  }
  /* 라이트 — Tabler calendar / clock 아이콘 (stroke #71717a) */
  input[type="date"]{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z'/><path d='M16 3v4'/><path d='M8 3v4'/><path d='M4 11h16'/></svg>");
  }
  input[type="time"]{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><polyline points='12 7 12 12 15 15'/></svg>");
  }
  /* 다크 — stroke #a1a1aa */
  [data-theme="dark"] input[type="date"]{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z'/><path d='M16 3v4'/><path d='M8 3v4'/><path d='M4 11h16'/></svg>");
  }
  [data-theme="dark"] input[type="time"]{
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><polyline points='12 7 12 12 15 15'/></svg>");
  }
  /* hover / focus */
  input[type="date"]:hover,
  input[type="time"]:hover{ border-color:rgba(0,0,0,0.25); }
  [data-theme="dark"] input[type="date"]:hover,
  [data-theme="dark"] input[type="time"]:hover{ border-color:rgba(255,255,255,0.25); }
  input[type="date"]:focus,
  input[type="time"]:focus{
    outline:none;
    border-color:var(--text);
  }

  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); }
  .modal-actions { display: flex; justify-content: flex-end; gap: var(--space-8); margin-top: 20px; }

  /* [4-A48] 모달 컴포넌트 표준 — 신규 모달은 이 클래스 사용. 기존 .form-group/.form-row와 병존, 점진 정렬. */
  .modal-title { font-size: var(--text-lg); font-weight: 600; margin-bottom: 20px; }
  .modal-field { margin-bottom: 16px; }
  .modal-label { display: block; font-size: var(--text-xs); color: var(--text-sub); margin-bottom: 6px; }
  .modal-label .req { color: var(--color-danger); }
  .modal-input, .modal-select {
    width: 100%; height: 40px; padding: 0 12px;
    border: 0.5px solid var(--border); border-radius: 6px;
    background-color: var(--card-bg); color: var(--text);
    font-size: var(--text-input-sub); font-family: inherit; outline: none;
    transition: border-color .15s, box-shadow .15s; box-sizing: border-box;
  }
  .modal-input:focus, .modal-select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(11,92,213,.12); }
  select.modal-select { padding-right: 32px; }
  .modal-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

  /* [4-A48 hotfix #2~3] 버튼 사이즈 표준 — height 40 / min-width 82(2자) / padding 0 16(자수 늘면 자연 확장). */
  /* 글로벌 .btn-secondary는 outline 톤(흰 배경 + sub text + 1px border) — .btn-outline과 시각 동일. */
  .btn-secondary { background: #fff; color: var(--text-sub); border: 1px solid var(--border); cursor: pointer; font-family: inherit; transition: background .15s; }
  .btn-secondary:hover { background: #f9fafb; }
  [data-theme="dark"] .btn-secondary { background: var(--surface); color: var(--text-sub); border-color: var(--border); }
  [data-theme="dark"] .btn-secondary:hover { background: var(--surface-alt); }
  /* .modal-actions 내부의 .btn-primary / .btn-secondary는 .btn 없이도 표준 사이즈. */
  .modal-actions .btn-primary, .modal-actions .btn-secondary {
    height: 40px; min-width: 82px;
    padding: 0 16px;
    border-radius: var(--radius);
    font-size: var(--text-base); font-weight: 600;
    font-family: inherit; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-6);
    transition: .15s;
    box-sizing: border-box;
  }
  .modal-actions .btn-primary { border: 0; background: var(--accent); color: #fff; }
  .modal-actions .btn-primary:hover { background: #094ab2; }
  .modal-actions .btn-secondary { background: #fff; color: var(--text-sub); border: 1px solid var(--border); }
  [data-theme="dark"] .modal-actions .btn-secondary { background: var(--surface); border-color: var(--border); }

  /* 제재 배지 */
  .badge-suspended { background:#fff7ed; color:#ea580c; border:1px solid #fed7aa; padding:2px 8px; border-radius: var(--radius-md); font-size:var(--text-xs); font-weight:600; white-space:nowrap; }
  .badge-banned    { background:var(--color-danger-bg); color:var(--color-danger); border:1px solid #fecaca; padding:2px 8px; border-radius: var(--radius-md); font-size:var(--text-xs); font-weight:600; white-space:nowrap; }

  /* 활동 이력 필터 버튼 active */
  .act-filter-btn.active { background:var(--accent) !important; color:#fff !important; border-color:var(--accent) !important; }

  /* 활동 이력 row */
  .act-row { display:flex; align-items:flex-start; gap: var(--space-12); padding:10px 14px; border-radius: var(--radius); margin-bottom:4px; border-left:3px solid transparent; }
  .act-row-roleChange { background:var(--surface-alt); border-left-color:var(--text-sub); }
  .act-row-suspend    { background:#fff7ed; border-left-color:#f97316; }
  .act-row-ban        { background:var(--color-danger-bg); border-left-color:var(--color-danger-light); }
  .act-row-unsuspend,
  .act-row-unban      { background:#f0fdf4; border-left-color:#22c55e; }

  /* 유저 테이블 모바일 카드 뷰 */
  @media (max-width:768px) {
    .user-table-wrap table, .user-table-wrap thead,
    .user-table-wrap tbody, .user-table-wrap th,
    .user-table-wrap td, .user-table-wrap tr { display:block; }
    .user-table-wrap thead { display:none; }
    .user-table-wrap tbody tr { background:var(--card-bg); border:1px solid var(--border); border-radius: var(--radius-md); padding:12px 14px; margin-bottom:10px; }
    .user-table-wrap td { padding:3px 0; border:none; display:flex; align-items:center; gap: var(--space-8); font-size:var(--text-sm); }
    .user-table-wrap td[data-label]::before { content:attr(data-label); font-size:var(--text-xs); color:var(--text-sub); min-width:56px; flex-shrink:0; }
    .user-table-wrap td:first-child { display:none; }
  }

  .empty-state { text-align: center; padding: 60px 20px; color: var(--text-sub); }

  /* Boss 추가 모달 리셋 타입 버튼 */
  .reset-type-btn { flex:1; padding:9px 10px; border: var(--border-medium) solid var(--border); border-radius: var(--radius); background:var(--card-bg); color:var(--text-sub); font-size:var(--text-sm); font-weight:600; cursor:pointer; transition:all .15s; }
  .reset-type-btn.active { border-color:var(--accent); background:rgba(11,92,213,.08); color:var(--accent); }
  .reset-type-btn:hover:not(.active) { border-color:var(--accent); color:var(--accent); }
  .reset-preset-btn { padding:8px 14px; border: var(--border-medium) solid var(--border); border-radius: var(--radius-xl); background:var(--card-bg); color:var(--text-sub); font-size:var(--text-sm); cursor:pointer; transition:all .15s; }
  .reset-preset-btn.active { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:600; }
  .reset-preset-btn:hover:not(.active) { border-color:var(--accent); color:var(--accent); }
  .empty-state .icon { font-size: 40px; margin-bottom: 12px; }
  .empty-state h3 { font-size: var(--text-lg); margin-bottom: 4px; color: var(--text); }
  .empty-state p { font-size: var(--text-md); }

  /* 태블릿 */
  @media (max-width: 1100px) {
    .cards { grid-template-columns: repeat(2, 1fr); }
    .grid-2 { grid-template-columns: 1fr; }
  }

  /* 모바일 */
  @media (max-width: 768px) {
    :root { --sidebar-w: 0px; }

    .sidebar { width: 260px; transform: translateX(-260px); transition: transform .3s ease; z-index: 60; }
    .sidebar.open { transform: translateX(0); }

    .mobile-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.5); z-index: 55; }
    .mobile-overlay.show { display: block; }

    .layout { margin-left: 0; }

    /* ── 모바일 헤더 재설계 ── */
    .header {
      padding: 0 12px;
      height: 56px;
      background: #fff;
      border-bottom: 1px solid var(--border);
      position: sticky; top: 0; z-index: 40;
      box-shadow: 0 1px 4px rgba(0,0,0,.06);
    }
    /* 좌: 햄버거 */
    .hamburger {
      display: flex; align-items: center; justify-content: center;
      width: 40px; height: 40px;
      border: none; background: none; border-radius: var(--radius);
      cursor: pointer; color: var(--text);
      -webkit-tap-highlight-color: transparent;
    }
    .hamburger .material-icons { font-size: 26px; }
    /* 중앙: 페이지 타이틀 */
    .header-left { gap: var(--space-4); flex: 1; }
    .mobile-page-title {
      display: block;
      font-size: var(--text-md); font-weight: 700; color: var(--text);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    #breadcrumb { display: none; }
    /* 우: 유저 영역 압축 */
    .header-right { gap: var(--space-8); }
    .made-by-fixed { font-size: 10px; right: 10px; bottom: 8px; opacity: .35; }
    .discord-btn { padding: 8px 14px; font-size: var(--text-sm); font-weight: 700; border-radius: var(--radius); }
    .user-chip { gap: var(--space-6); }
    .user-chip img { width: 30px; height: 30px; }
    .user-chip .uname { display: none; }
    .user-chip .urole { display: none; }
    .user-dropdown { min-width: 180px; }

    /* [4-A23 step16] 모바일 사이드바 — 280px 부분 슬라이드 + backdrop
       (풀스크린 폐기 사유: 현재 페이지 컨텍스트 손실, 실기기 검증 후 회귀) */
    .sidebar {
      width: 280px;
      max-width: 85vw;
      transform: translateX(-100%);
      transition: transform .28s cubic-bezier(.4,0,.2,1);
      z-index: 60;
      padding-top: env(safe-area-inset-top);
      box-shadow: 4px 0 20px rgba(0,0,0,.25);
    }
    .sidebar.open { transform: translateX(0); }
    /* backdrop 활성화 — 부분 슬라이드라 컨텍스트 시각 유지 */
    .mobile-overlay.show { display: block; }
    /* 드로어 상단 닫기 버튼 — 좌측 (햄버거 자리와 일치, Fitts' law) */
    .sidebar-top-bar { justify-content: flex-start; }
    .drawer-close-btn {
      display: flex; align-items: center; justify-content: center;
      width: 40px; height: 40px;
      border: none; background: none; border-radius: var(--radius);
      color: #fff; cursor: pointer;
      -webkit-tap-highlight-color: transparent;
      order: -1; /* 좌측 정렬 강제 */
    }
    .drawer-close-btn:hover { background: var(--sidebar-hover); }
    .drawer-close-btn .material-icons { font-size: var(--icon-lg); }

    /* 콘텐츠 영역 */
    .main { padding: 16px; }
    .page-title { font-size: var(--text-xl); }
    .top-bar { flex-direction: column; gap: var(--space-12); align-items: flex-start; }
    .cards { grid-template-columns: 1fr 1fr; gap: var(--space-10); }
    .stat-card h3 { font-size: var(--text-xl); }
    .filter-bar { flex-direction: column; align-items: stretch; }
    .search-input { width: 100%; }
    .table-wrap { margin: 0 -16px; padding: 0 16px; }
    .modal { width: calc(100vw - 32px); max-height: 90vh; padding: 20px; }
    .form-row { grid-template-columns: 1fr; }

    /* [4-A60] iOS 줌방지용 입력요소 16px 강제 제거 — 입력칸이 기본 토큰을 따르도록.
       ⚠ 16px 미만이면 iOS Safari 포커스 시 화면 확대 가능(별도 테스트). */
  }

  @media (max-width: 480px) {
    .cards { grid-template-columns: 1fr; }
    .stat-icon { display: none; }
    .cards { grid-template-columns: 1fr; }
  }

  /* 데스크탑에서 모바일 전용 요소 숨김 */
  .mobile-overlay { display: none; }
  .mobile-page-title { display: none; }
  .drawer-close-btn { display: none; }
  @media (min-width: 769px) { .hamburger { display: none; } }

  /* [4-A26 step3] 모바일 footer 완전 제거 — CSS/HTML/JS 정리 */
  @media (max-width: 768px) {
    /* 모바일: 접기 버튼 숨기고 닫기 버튼 표시 */
    .sidebar-collapse-btn { display: none; }
    .drawer-close-btn { display: flex; }

    /* 혼테일 타이머 모바일 — 1열 (가로형 카드) */
    .ht-cards { gap: 8px; }
    .ht-card-time { font-size: 30px; }
    .ht-section-header { font-size: var(--text-base); padding: 9px 16px; }

    /* 멤버 그리드 모바일 2열 */
    .member-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-8); }
    .member-grid .card-action { padding: 12px 8px; }

    /* 아이템 페이지 탭 스크롤 */
    #page-items .filter-bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
    #page-items .filter-bar::-webkit-scrollbar { display: none; }

    /* 캐릭터 1열 + 추가 버튼 풀폭 — [4-A38] #todayBossGrid 통합 */
    #myCharsGrid,
    #todayBossGrid { grid-template-columns: 1fr !important; }
    #mrGrid { grid-template-columns: 1fr !important; }
    #page-raids .rf-grid { grid-template-columns: 1fr !important; }
    /* [4-A63 가운데 통일] 모바일도 PC 기본(.mc-card-body column/center) 상속 — 가로형 override 제거 */
    #myCharsGrid .mc-addslot,
    #todayBossGrid .mc-addslot { grid-column: 1 / -1 !important; min-height: 313px !important; /* mc-card와 동일 — 캐릭터/공대/보스 3페이지 공유 */ }
    .mc-empty-hero { padding: 40px 20px !important; }
    .mc-empty-hero .mc-empty-icon { width: 56px !important; height: 56px !important; font-size: 32px !important; }
  }

  @media (max-width: 480px) {
    .member-grid { grid-template-columns: repeat(2, 1fr); }
    .ht-card-time { font-size: 27px; }
  }

  /* ===== 정산 시트 (Settlement Sheet) ===== */
  #settlementForm .st-topbar{display:flex;align-items:center;gap: var(--space-10);margin-bottom:18px;flex-wrap:wrap;background:var(--card-bg);border: var(--border-thin) solid var(--border);border-radius:var(--radius);padding:14px 18px}
  #settlementForm .st-title{font-size:var(--text-sm);font-weight:700;color:var(--text);white-space:nowrap}
  #settlementForm .st-field{border:1px solid var(--border);border-radius: var(--radius);padding:8px 12px;font-size:var(--text-xs);color:var(--text);background-color:var(--card-bg);outline:none}
  #settlementForm select.st-field{padding-right:30px}
  #settlementForm .st-field:focus{border-color:var(--color-settle-gold)}
  #settlementForm .st-grid{display:grid;grid-template-columns:55fr 45fr;gap: var(--space-16)}
  #settlementForm .st-grid>.card{min-width:0}
  @media(max-width:960px){#settlementForm .st-grid{grid-template-columns:1fr}}
  #settlementForm .st-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  #settlementForm table{min-width:480px}
  #settlementForm .st-card-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
  #settlementForm .st-card-ttl{font-size:var(--text-md);font-weight:700;color:var(--text)}
  #settlementForm .st-card-sub{font-size:var(--text-sm);color:var(--text-sub)}
  #settlementForm table{width:100%;border-collapse:collapse;table-layout:fixed}
  #settlementForm th{font-size:var(--text-2xs);color:var(--text-sub);font-weight:600;text-align:left;padding:0 8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;background:transparent}
  #settlementForm td{padding:8px;border-bottom: var(--border-thin) solid var(--border);vertical-align:middle}
  #settlementForm tr:last-child td{border-bottom:none}
  /* 4-A10: 양쪽 폼 input 시각 통일 — raid 박스 스타일 (border + surface bg + padding 5px 8px) */
  #settlementForm .st-ti{width:100%;background-color:var(--surface);border:1px solid var(--border);border-radius: var(--radius-sm);font-size:var(--text-xs);color:var(--text);outline:none;padding:5px 8px;font-family:inherit;transition:border-color .15s;box-sizing:border-box}
  #settlementForm .st-ti:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(11,92,213,.1)}
  #settlementForm .st-ti.num{text-align:right}
  #settlementForm .st-ti[type="number"]::-webkit-inner-spin-button,
  #settlementForm .st-ti[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}
  #settlementForm .st-ti[type="number"]{-moz-appearance:textfield;appearance:textfield}
  #settlementForm .st-mbtn{font-size:var(--text-xs);padding:4px 10px;border-radius: var(--radius-md);border:1px solid;cursor:pointer;background:transparent;white-space:nowrap}
  #settlementForm .m-direct{border-color:var(--color-success-strong);color:var(--color-success-strong)}
  #settlementForm .m-exchange{border-color:var(--color-settle-insen);color:var(--color-settle-insen)}
  #settlementForm .st-addbtn{width:100%;margin-top:12px;padding:10px 14px;font-size:var(--text-sm);font-weight:500;border:1.5px dashed var(--accent);border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer;text-align:center}
  #settlementForm .st-addbtn:hover{background:var(--bg)}
  #settlementForm .st-delbtn{background:none;border:none;color:var(--text-sub);cursor:pointer;font-size:var(--text-md);padding:2px 6px;line-height:1}
  #settlementForm .st-delbtn:hover{color:var(--color-settle-penalty)}
  #settlementForm .st-totrow{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
  #settlementForm .st-totlbl{font-size:var(--text-base);color:var(--text-sub)}
  #settlementForm .st-totval{font-size:var(--text-lg);font-weight:700;color:var(--text)}
  #settlementForm .st-sumbar{background:var(--card-bg);border: var(--border-thin) solid var(--border);border-radius: var(--radius-lg);padding:16px 20px;margin-top:16px;display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
  #settlementForm .st-sgroup{flex:1;min-width:130px;padding:0 14px}
  #settlementForm .st-sgroup:first-child{padding-left:0}
  #settlementForm .st-sgroup-avg{display:flex;flex-direction:column;align-items:center;justify-content:center}
  #settlementForm .st-sgroup-title{font-size:var(--text-xs);font-weight:700;color:var(--text-sub);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;white-space:nowrap}
  #settlementForm .st-srow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;gap: var(--space-6)}
  #settlementForm .st-slbl{font-size:var(--text-sm);color:var(--text-sub);white-space:nowrap}
  #settlementForm .st-sval{font-size:var(--text-base);font-weight:700;color:var(--text);white-space:nowrap}
  #settlementForm .st-avg-val{font-size:var(--text-2xl);font-weight:700;color:var(--text);margin-top:4px}
  #settlementForm .st-sdivider{width:0.5px;background:var(--border);margin:0 4px;align-self:stretch;flex-shrink:0}
  #settlementForm .st-sbtns{display:flex;flex-direction:column;gap: var(--space-8);margin-left:16px;flex-shrink:0;justify-content:center}
  #settlementForm .st-fee-col{color:var(--color-settle-loss)}
  #settlementForm .st-profit-col{color:var(--color-success-strong)}
  #settlementForm .st-insen-col{color:var(--color-settle-gain)}
  #settlementForm .st-penalty-col{color:var(--color-settle-loss)}
  #settlementForm .st-savebtn{background:var(--color-settle-gold);color:white;border:none;padding:12px 20px;border-radius: var(--radius);font-size:var(--text-md);font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap}
  #settlementForm .st-savebtn:hover{background:var(--color-settle-gold-dark)}
  #settlementForm .st-nr{text-align:right}
  #settlementForm .st-ro{color:var(--text-sub);font-size:var(--text-sm);background:var(--bg);text-align:right}
  #settlementForm .st-rev-val{font-size:var(--text-sm);color:var(--text-sub);text-align:right}
  #settlementForm .st-fee-note{font-size:var(--text-sm);color:var(--text-sub);white-space:nowrap}
  /* [4-A28 step1h] 컨테이너 ID 정정: #page-members(dead) → #rdPanel-members (공대 상세 공대원 탭 실제 컨테이너) */
  /* [디자인 가이드 4-A31] 테이블 안 콤보/입력/버튼 베이스 — height 30px / padding 5px 8px (콤보·input) 또는 5px 12px (.btn-sm) / font-size var(--text-base) (콤보·input) 또는 var(--text-xs) (.btn-sm) / width 110px (파티 콤보) / box-sizing border-box. 신규 패널 콤보·셀 입력·인라인 버튼은 동일 30px 높이 적용. */
  .st-party-sel{font-size:var(--text-sm);padding:5px 10px;border-radius: var(--radius);border:none;cursor:pointer;outline:none;font-family:inherit;color-scheme:light}
  #rdPanel-members .st-party-sel{width:110px;min-width:84px;height:30px;padding:5px 8px;font-size:var(--text-base);box-sizing:border-box}
  #rdPanel-members .st-party-sel.st-party-ro{width:auto;min-width:0;height:auto;padding:2px 10px;display:inline-block;border:none;appearance:none;-webkit-appearance:none;pointer-events:none;font-size:var(--text-xs);border-radius:var(--radius-md);text-align:center;font-weight:500}
  #settlementForm .st-party-sel[data-party="1"],#rdStFormWrap .st-party-sel[data-party="1"],#rdPanel-members .st-party-sel[data-party="1"]{background-color:#fce4ec;color:#c62828}
  #settlementForm .st-party-sel[data-party="2"],#rdStFormWrap .st-party-sel[data-party="2"],#rdPanel-members .st-party-sel[data-party="2"]{background-color:#fff3e0;color:#e65100}
  #settlementForm .st-party-sel[data-party="3"],#rdStFormWrap .st-party-sel[data-party="3"],#rdPanel-members .st-party-sel[data-party="3"]{background-color:#e8f5e9;color:#2e7d32}
  #settlementForm .st-party-sel[data-party="4"],#rdStFormWrap .st-party-sel[data-party="4"],#rdPanel-members .st-party-sel[data-party="4"]{background-color:#e3f2fd;color:#1565c0}
  #settlementForm .st-party-sel[data-party="5"],#rdStFormWrap .st-party-sel[data-party="5"],#rdPanel-members .st-party-sel[data-party="5"]{background-color:#f3e5f5;color:#6a1b9a}
  #settlementForm .st-party-sel[data-party="other"],#rdStFormWrap .st-party-sel[data-party="other"],#rdPanel-members .st-party-sel[data-party="other"]{background-color:#f5f5f5;color:#616161}
  [data-theme="dark"] #settlementForm .st-party-sel[data-party="1"],[data-theme="dark"] #rdStFormWrap .st-party-sel[data-party="1"],[data-theme="dark"] #rdPanel-members .st-party-sel[data-party="1"]{background-color:#3d0a1c;color:#f9a8d4}
  [data-theme="dark"] #settlementForm .st-party-sel[data-party="2"],[data-theme="dark"] #rdStFormWrap .st-party-sel[data-party="2"],[data-theme="dark"] #rdPanel-members .st-party-sel[data-party="2"]{background-color:#4a1f00;color:#fdba74}
  [data-theme="dark"] #settlementForm .st-party-sel[data-party="3"],[data-theme="dark"] #rdStFormWrap .st-party-sel[data-party="3"],[data-theme="dark"] #rdPanel-members .st-party-sel[data-party="3"]{background-color:#0a3d1c;color:#86efac}
  [data-theme="dark"] #settlementForm .st-party-sel[data-party="4"],[data-theme="dark"] #rdStFormWrap .st-party-sel[data-party="4"],[data-theme="dark"] #rdPanel-members .st-party-sel[data-party="4"]{background-color:#0a1f3d;color:#93c5fd}
  [data-theme="dark"] #settlementForm .st-party-sel[data-party="5"],[data-theme="dark"] #rdStFormWrap .st-party-sel[data-party="5"],[data-theme="dark"] #rdPanel-members .st-party-sel[data-party="5"]{background-color:#220a3d;color:#c4b5fd}
  [data-theme="dark"] #settlementForm .st-party-sel[data-party="other"],[data-theme="dark"] #rdStFormWrap .st-party-sel[data-party="other"],[data-theme="dark"] #rdPanel-members .st-party-sel[data-party="other"]{background-color:#2a2a2a;color:#9ca3af}
  /* 정산 폼 공용 드롭다운 (분류·판매방식 통일) */
  #settlementForm .settlement-select,
  #rdStFormWrap .settlement-select,
  #settlementForm .st-kind-sel,
  #rdStFormWrap .st-kind-sel,
  #settlementForm .st-method-sel,
  #rdStFormWrap .st-method-sel{
    font-size:var(--text-xs);
    padding:3px 22px 3px 6px;
    border-radius: var(--radius-sm);
    border:1px solid var(--border);
    background-color:var(--card-bg);
    color:var(--text);
    cursor:pointer;
    outline:none;
    width:100%;
    box-sizing:border-box;
    font-family:inherit;
  }
  /* 4-A7 fix4~fix8: 판매 아이템 PC 그리드 가로 스크롤 fix */
  /* fix7: min-width:0 (floor 제거) — 카드 폭 그대로 따름 */
  /* fix8: td/th overflow:hidden + box-sizing — table-layout:fixed가 셀 폭 강제해도 콘텐츠 8px 삐져나오는 잔존 오버플로 차단 */
  /* 보존: 모든 컬럼 유지, 멤버 테이블·모바일(≤768px)·정산 계산 영향 0 */
  #settlementForm .st-table-items,
  #rdStFormWrap .st-table-items{font-size:var(--text-xs);min-width:0}
  /* 4-A10 fix4: 판매 아이템 td 43px / input 33px 박스 모델 */
  #settlementForm .st-table-items td,
  #rdStFormWrap .st-table-items td{padding:5px 8px;height:40px;overflow:hidden;box-sizing:border-box;vertical-align:middle}
  #settlementForm .st-table-items th,
  #rdStFormWrap .st-table-items th{padding:0 4px 10px;overflow:hidden;box-sizing:border-box}
  #settlementForm .st-table-items td .st-ti,
  #rdStFormWrap .st-table-items td .st-ti{font-size:var(--text-xs);height:30px;padding:5px 6px;box-sizing:border-box;max-width:100%;line-height:1.4}
  #settlementForm .st-table-items td select.st-ti,
  #rdStFormWrap .st-table-items td select.st-ti{padding:5px 18px 5px 6px}
  /* 4-A10: 멤버 테이블도 fixed로 통일 — colgroup 폭 강제 작동 */
  #settlementForm .st-table-members,
  #rdStFormWrap .st-table-members{font-size:var(--text-xs);table-layout:fixed;width:100%;min-width:0}
  /* 헤더 좌측 정렬 유지 */
  #settlementForm .st-table-members th,
  #rdStFormWrap .st-table-members th{text-align:left}
  /* 인센+/별금- 컨테이너: 데스크톱은 flex gap, 모바일은 2열 그리드 */
  .st-penal-wrap{display:flex;align-items:center;gap: var(--space-12);flex-wrap:nowrap;min-width:0}
  /* [인센/벌금 분리] 한 셀 안 2칸 균등폭 + 색 힌트 */
  .st-penal-split{gap: var(--space-8);justify-content:flex-end}
  .st-penal-split > input{flex:0 0 120px;min-width:0;width:120px}
  .st-penal-split .st-insen-in{color:var(--color-settle-gain);font-weight:600}
  .st-penal-split .st-penalty-in{color:var(--color-settle-loss);font-weight:600}
  .st-penal-split .st-insen-in::placeholder,
  .st-penal-split .st-penalty-in::placeholder{color:var(--text-sub);font-weight:400}
  /* [생존여부] 하트/해골 토글 버튼 */
  .st-alive-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:var(--border-thin) solid var(--border);border-radius: var(--radius-md);background:transparent;cursor:pointer;color:var(--color-success);transition:all .12s}
  .st-alive-btn:hover{border-color:var(--border-strong)}
  .st-alive-btn .material-icons{font-size:18px}
  .st-alive-btn.is-dead{border-color:var(--color-danger);background:rgba(220,38,38,0.08);color:var(--color-danger)}
  tr.st-mem-dead .c-mem-name input,
  tr.st-mem-dead .c-mem-party{opacity:0.5}
  tr.st-mem-dead .c-mem-dist{color:var(--color-danger) !important}
  .st-penal-item{display:flex;align-items:center;gap: var(--space-4);flex:0 0 auto;min-width:0}
  .st-penal-item > span{white-space:nowrap;flex-shrink:0}
  .st-penal-item input{flex:0 0 140px;min-width:0;width:140px;padding:6px 8px;height:32px}
  @media(max-width:768px){
    /* 4-A17: 모바일 ±조정 input 풀폭 (.st-penal-item 미사용 — 단일 input 마크업) */
    .st-penal-wrap{display:block}
    .st-penal-wrap > input{width:100%}
    .st-penal-split{display:flex;flex-direction:column;gap: var(--space-8)}
    .st-penal-split > input{width:100%;flex:0 0 auto}
    .st-penal-item{gap: var(--space-4)}
    .st-penal-item input{width:100%}
  }
  /* 금액 셀 공통 (양쪽 폼) */
  #settlementForm td.c-price, #settlementForm td.c-left,
  #settlementForm td.c-sales, #settlementForm td.c-profit,
  #rdStFormWrap td.c-price, #rdStFormWrap td.c-left,
  #rdStFormWrap td.c-sales, #rdStFormWrap td.c-profit{text-align:right;font-variant-numeric:tabular-nums}
  #settlementForm tr.st-row-expense td.c-sales,
  #settlementForm tr.st-row-expense td.c-profit,
  #rdStFormWrap tr.st-row-expense td.c-sales,
  #rdStFormWrap tr.st-row-expense td.c-profit{color:var(--color-danger)}
  #settlementForm tr.st-row-expense,
  #rdStFormWrap tr.st-row-expense{background:rgba(220,38,38,0.03)}
  .st-expense-badge{display:none;font-size:10px;font-weight:700;color:var(--color-danger);background:rgba(220,38,38,0.1);padding:2px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}
  /* 계정 미연결 멤버: 회색 처리 + 뱃지 */
  /* 미연결 멤버 흐릿 처리 제거 — 연동 멤버는 디스코드 아이콘으로 양성 표시 */
  .st-name-wrap{display:flex;align-items:center;gap:6px}
  .st-name-wrap .st-ti{flex:1;min-width:0}
  .st-mem-ava{position:relative;flex-shrink:0;width:24px;height:24px}
  .st-mem-ava-empty{background:none;border:none}
  .st-mem-ini{position:absolute;inset:0;border-radius:50%;background:var(--surface-alt);border:0.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xs);font-weight:600;color:var(--text-sub);line-height:1}
  .st-mem-img{position:absolute;inset:0;width:24px;height:24px;border-radius:50%;object-fit:cover;background:var(--surface-alt)}
  /* 4-A7 fix3: 할당량/인당분배금 UI hidden — 데이터/계산 모델 보존, 차등배분 복원 시 아래 한 블록만 풀면 됨 */
  #settlementForm .st-table-members .c-mem-alloc,
  #settlementForm .st-table-members .c-mem-dist,
  #rdStFormWrap .st-table-members .c-mem-alloc,
  #rdStFormWrap .st-table-members .c-mem-dist{display:none}
  /* 4-A10 fix4: 멤버 td 43px / input 33px 박스 모델 (판매 아이템과 완전 동일) */
  #settlementForm .st-table-members td,
  #rdStFormWrap .st-table-members td{padding:5px 8px;height:40px;overflow:hidden;box-sizing:border-box;vertical-align:middle}
  #settlementForm .st-table-members th,
  #rdStFormWrap .st-table-members th{overflow:hidden;box-sizing:border-box}
  #settlementForm .st-table-members td .st-ti,
  #rdStFormWrap .st-table-members td .st-ti{height:30px;padding:5px 8px;box-sizing:border-box;max-width:100%;line-height:1.4}
  #settlementForm .st-table-members td select.st-ti,
  #rdStFormWrap .st-table-members td select.st-ti{height:30px;padding:5px 18px 5px 8px}
  .st-unlinked-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;color:var(--color-warn);background:var(--color-master-bg);padding:2px 7px;border-radius: var(--radius-md);margin-left:6px;vertical-align:middle;white-space:nowrap;transition:all .15s}
  .st-unlinked-badge.clickable{cursor:pointer}
  .st-unlinked-badge.clickable:hover{background:#fde68a;color:var(--color-master-text);transform:translateY(-1px);box-shadow:0 2px 4px rgba(217,119,6,0.2)}
  [data-theme="dark"] .st-unlinked-badge{background:rgba(217,119,6,0.15);color:#fbbf24}
  [data-theme="dark"] .st-unlinked-badge.clickable:hover{background:rgba(217,119,6,0.3);color:#fde68a}
  /* 4-A11 fix1: 계정 미연결 뱃지 hidden — disabled input으로 시각 구분 충분 (cascade 우선 적용 위해 위치 이동) */
  .st-unlinked-badge{display:none}
  /* 멤버 삭제 버튼 (PC ghost / 모바일 outline 풀폭) — DD2 글로벌 통일 */
  /* 4-A10 fix4: del button — 50px 셀 안에서 자연스러운 크기 (28x24) */
  .st-mem-del-btn{background:transparent;border:0.5px solid var(--border);color:var(--text-sub);cursor:pointer;padding:2px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1;font-family:inherit;transition:all .15s;width:28px;height:24px;box-sizing:border-box}
  .st-mem-del-btn svg{width:14px;height:14px;display:block;flex-shrink:0}
  .st-mem-del-btn:hover{color:var(--color-danger);border-color:var(--color-danger-light);background:var(--color-danger-bg)}
  .st-mem-del-label{display:none}
  /* select 화살표와 텍스트 겹침 방지 */
  #settlementForm select.st-ti,
  #rdStFormWrap select.st-ti{padding-right:22px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
  /* 매출·순수익 readout: 큰 값일 때 말줄임 */
  #settlementForm td.c-sales, #settlementForm td.c-profit,
  #rdStFormWrap td.c-sales, #rdStFormWrap td.c-profit{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* 비고 아이콘 (데스크톱) + 숨은 input (모바일용) */
  .st-note-icon{background:none;border:none;cursor:pointer;padding:4px;border-radius: var(--radius-sm);color:var(--text-sub);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;transition:all .15s}
  .st-note-icon:hover{background:var(--surface-alt);color:var(--text)}
  .st-note-icon.has-note{color:var(--accent)}
  .st-note-icon .material-icons{font-size:18px}
  .st-note-input{display:none}
  @media(max-width:768px){
    .st-note-icon{display:none}
    .st-note-input{display:block;width:100%}
  }
  [data-theme="dark"] #settlementForm .st-ti:focus{background-color:var(--surface-alt)}
  [data-theme="dark"] #settlementForm .st-addbtn:hover{background:var(--surface-alt)}
  [data-theme="dark"] #settlementForm .st-ro{background:var(--surface-alt)}
  [data-theme="dark"] #settlementForm .st-method-sel{background-color:var(--surface-alt)}
  @media(max-width:768px){
    #settlementForm .st-table-items,
    #rdStFormWrap .st-table-items{min-width:unset!important}
    #settlementForm .st-table-items thead,
    #rdStFormWrap .st-table-items thead{display:none}
    #settlementForm .st-table-items,
    #rdStFormWrap .st-table-items,
    #settlementForm .st-table-items tbody,
    #rdStFormWrap .st-table-items tbody{display:block}
    /* 4-A13 fix2: 모바일 카드 1열 grid (한 컴포넌트당 한 행) */
    #settlementForm .st-table-items tbody tr,
    #rdStFormWrap .st-table-items tbody tr{
      display:grid;
      grid-template-columns:1fr;
      grid-template-areas:
        "kind"
        "name"
        "price"
        "craft"
        "method"
        "sales"
        "profit"
        "note"
        "del";
      gap: var(--space-8);
      border: var(--border-thin) solid var(--border);
      border-radius: var(--radius-lg);
      margin-bottom:12px;
      padding:16px;
      background:var(--surface);
    }
    #settlementForm .st-table-items tbody tr.st-row-expense,
    #rdStFormWrap .st-table-items tbody tr.st-row-expense{
      border-color:var(--color-danger);
      background:rgba(220,38,38,0.05);
    }
    /* 4-A13 fix3: 모바일 td — PC용 height:43/overflow:hidden 상속 차단 (height:auto + overflow:visible) */
    #settlementForm .st-table-items td,
    #rdStFormWrap .st-table-items td{display:block;padding:0;border:none;box-sizing:border-box;height:auto !important;min-height:0 !important;overflow:visible !important}
    #settlementForm .st-table-items td .st-ti,
    #rdStFormWrap .st-table-items td .st-ti{height:30px;width:100%;padding:5px 8px;box-sizing:border-box;line-height:1.4}
    #settlementForm .st-table-items td.c-del .st-mem-del-btn,
    #rdStFormWrap .st-table-items td.c-del .st-mem-del-btn{width:100%;height:38px;box-sizing:border-box}
    /* 4-A13 fix1: 라벨 사이즈 통일 (멤버와 동일 13px) + 마진 4px */
    #settlementForm .st-table-items td::before,
    #rdStFormWrap .st-table-items td::before{content:attr(data-label);display:block;font-size:var(--text-xs);color:var(--text-sub);font-weight:600;margin-bottom:4px;letter-spacing:.02em}
    #settlementForm .st-table-items td.c-kind,#rdStFormWrap .st-table-items td.c-kind{grid-area:kind}
    #settlementForm .st-table-items td.c-name,#rdStFormWrap .st-table-items td.c-name{grid-area:name}
    #settlementForm .st-table-items td.c-price,#rdStFormWrap .st-table-items td.c-price{grid-area:price}
    #settlementForm .st-table-items td.c-craft,#rdStFormWrap .st-table-items td.c-craft{grid-area:craft}
    #settlementForm .st-table-items td.c-left,#rdStFormWrap .st-table-items td.c-left{grid-area:left}
    #settlementForm .st-table-items td.c-method,#rdStFormWrap .st-table-items td.c-method{grid-area:method}
    #settlementForm .st-table-items td.c-sales,#rdStFormWrap .st-table-items td.c-sales{grid-area:sales}
    #settlementForm .st-table-items td.c-profit,#rdStFormWrap .st-table-items td.c-profit{grid-area:profit}
    #settlementForm .st-table-items td.c-note,#rdStFormWrap .st-table-items td.c-note{grid-area:note}
    #settlementForm .st-table-items td.c-del,#rdStFormWrap .st-table-items td.c-del{grid-area:del}
    #settlementForm .st-table-items td.c-del::before,#rdStFormWrap .st-table-items td.c-del::before{content:"";display:none}
    #settlementForm .st-table-items td.c-sales,
    #settlementForm .st-table-items td.c-profit,
    #rdStFormWrap .st-table-items td.c-sales,
    #rdStFormWrap .st-table-items td.c-profit{font-variant-numeric:tabular-nums;font-weight:700;text-align:left;padding:6px 8px;border-radius: var(--radius-sm);background:var(--bg)}
    #settlementForm .st-table-items tr.st-row-expense td.c-sales,
    #settlementForm .st-table-items tr.st-row-expense td.c-profit,
    #rdStFormWrap .st-table-items tr.st-row-expense td.c-sales,
    #rdStFormWrap .st-table-items tr.st-row-expense td.c-profit{color:var(--color-danger)}
    #settlementForm .st-table-items tr.st-row-expense .st-expense-badge,
    #rdStFormWrap .st-table-items tr.st-row-expense .st-expense-badge{display:inline-block}
    #settlementForm .st-table-members,
    #rdStFormWrap .st-table-members{min-width:unset!important;display:block}
    #settlementForm .st-table-members thead,
    #rdStFormWrap .st-table-members thead{display:none}
    #settlementForm .st-table-members tbody,
    #rdStFormWrap .st-table-members tbody{display:block}
    /* 4-A13 fix2: 멤버 카드도 1열 grid */
    #settlementForm .st-table-members tbody tr,
    #rdStFormWrap .st-table-members tbody tr{
      display:grid;
      grid-template-columns:1fr;
      grid-template-areas:
        "no"
        "party"
        "name"
        "alive"
        "penal"
        "note"
        "del";
      gap: var(--space-8);
      border: var(--border-thin) solid var(--border);
      border-radius: var(--radius-lg);
      margin-bottom:12px;
      padding:16px;
      background:var(--surface);
    }
    /* 4-A13 fix3: 멤버 모바일 td — PC용 height:43/overflow:hidden 상속 차단 */
    #settlementForm .st-table-members td,
    #rdStFormWrap .st-table-members td{display:block;padding:0;border:none;box-sizing:border-box;height:auto !important;min-height:0 !important;overflow:visible !important}
    #settlementForm .st-table-members td .st-ti,
    #rdStFormWrap .st-table-members td .st-ti{height:30px;width:100%;padding:5px 8px;box-sizing:border-box;line-height:1.4}
    #settlementForm .st-table-members td.c-mem-del .st-mem-del-btn,
    #rdStFormWrap .st-table-members td.c-mem-del .st-mem-del-btn{width:100%;height:38px;box-sizing:border-box}
    #settlementForm .st-table-members td::before,
    #rdStFormWrap .st-table-members td::before{
      content:attr(data-label);
      display:block;
      font-size:var(--text-xs);
      color:var(--text-sub);
      font-weight:600;
      margin-bottom:4px;
    }
    /* 4-A13 fix4: 모바일 No 좌측 정렬 (PC 인라인 text-align:center를 모바일에서만 override) */
    #settlementForm .st-table-members td.c-mem-no,
    #rdStFormWrap .st-table-members td.c-mem-no{grid-area:no;align-self:start;text-align:left !important;font-variant-numeric:tabular-nums}
    #settlementForm .st-table-members td.c-mem-no::before,
    #rdStFormWrap .st-table-members td.c-mem-no::before{display:none}
    #settlementForm .st-table-members td.c-mem-party,
    #rdStFormWrap .st-table-members td.c-mem-party{grid-area:party}
    #settlementForm .st-table-members td.c-mem-party::before,
    #rdStFormWrap .st-table-members td.c-mem-party::before{display:none}
    #settlementForm .st-table-members td.c-mem-name,
    #rdStFormWrap .st-table-members td.c-mem-name{grid-area:name}
    #settlementForm .st-table-members td.c-mem-penal,
    #rdStFormWrap .st-table-members td.c-mem-penal{grid-area:penal}
    #settlementForm .st-table-members td.c-mem-alive,
    #rdStFormWrap .st-table-members td.c-mem-alive{grid-area:alive;text-align:left !important}
    #settlementForm .st-table-members td.c-mem-alive .st-alive-btn,
    #rdStFormWrap .st-table-members td.c-mem-alive .st-alive-btn{width:auto;padding:0 16px;height:34px}
    #settlementForm .st-table-members td.c-mem-alloc,
    #rdStFormWrap .st-table-members td.c-mem-alloc{grid-area:alloc}
    #settlementForm .st-table-members td.c-mem-dist,
    #rdStFormWrap .st-table-members td.c-mem-dist{grid-area:dist}
    #settlementForm .st-table-members td.c-mem-note,
    #rdStFormWrap .st-table-members td.c-mem-note{grid-area:note}
    #settlementForm .st-table-members td.c-mem-del,
    #rdStFormWrap .st-table-members td.c-mem-del{grid-area:del}
    #settlementForm .st-table-members td.c-mem-del::before,
    #rdStFormWrap .st-table-members td.c-mem-del::before{display:none}
    /* 모바일 삭제 버튼 — outline 풀폭 + 휴지통 + "삭제" 라벨 (.gm-card 패턴) */
    .st-mem-del-btn{width:100%;border:0.5px solid var(--color-danger-light);background:var(--card-bg);color:var(--color-danger);padding:10px;font-size:var(--text-sm);font-weight:500;border-radius: var(--radius)}
    .st-mem-del-btn svg{width:14px;height:14px}
    .st-mem-del-btn:hover{background:var(--color-danger-bg)}
    .st-mem-del-label{display:inline}
    /* 모바일 input 높이 터치 타겟 40px */
    #settlementForm .st-table-members td input,
    #rdStFormWrap .st-table-members td input{min-height:40px}
    #settlementForm .st-sumbar{flex-direction:column;gap: var(--space-10)}
    #settlementForm .st-sdivider{width:100%;height:0.5px;margin:4px 0}
    #settlementForm .st-sgroup{padding:0;width:100%}
    #settlementForm .st-sgroup-avg{flex-direction:row;justify-content:space-between;align-items:center}
    #settlementForm .st-sbtns{flex-direction:row;margin-left:0;margin-top:4px}
  }

  /* ===== 공대 상세 인라인 정산 폼 (#rdStFormWrap) ===== */
  /* 4-A10: rdStFormWrap도 fixed layout으로 통일 (settlementForm과 동일 — colgroup 폭 강제 작동) */
  #rdStFormWrap table{width:100%;border-collapse:collapse;table-layout:fixed}
  #rdStFormWrap th{font-size:var(--text-2xs);color:var(--text-sub);font-weight:600;text-align:left;padding:0 8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;background:transparent;}
  /* 4-A10: td padding 8px로 통일 (settlementForm과 동일) */
  #rdStFormWrap td{padding:8px;border-bottom: var(--border-thin) solid var(--border);vertical-align:middle}
  #rdStFormWrap tr:last-child td{border-bottom:none;}
  #rdStFormWrap .st-ti{width:100%;background-color:var(--surface);border:1px solid var(--border);border-radius: var(--radius-sm);font-size:var(--text-xs);color:var(--text);outline:none;padding:5px 8px;font-family:inherit;transition:border-color .15s;box-sizing:border-box;}
  #rdStFormWrap .st-ti:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(11,92,213,.1);}
  #rdStFormWrap .st-ti.num{text-align:right;}
  #rdStFormWrap .st-ti[type="number"]::-webkit-inner-spin-button,
  #rdStFormWrap .st-ti[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0;}
  #rdStFormWrap .st-ti[type="number"]{-moz-appearance:textfield;appearance:textfield;}
  #rdStFormWrap .st-mbtn{font-size:var(--text-xs);padding:4px 10px;border-radius: var(--radius-md);border:1px solid;cursor:pointer;background:transparent;white-space:nowrap;font-family:inherit;}
  #rdStFormWrap .m-direct{border-color:var(--color-success-strong);color:var(--color-success-strong);}
  #rdStFormWrap .m-exchange{border-color:var(--color-settle-insen);color:var(--color-settle-insen);}
  #rdStFormWrap .st-delbtn{background:none;border:none;color:var(--text-sub);cursor:pointer;font-size:var(--text-md);padding:2px 6px;line-height:1;}
  #rdStFormWrap .st-delbtn:hover{color:var(--color-settle-penalty);}
  #rdStFormWrap .st-rev-val{font-size:var(--text-sm);color:var(--text);font-weight:600;text-align:right;white-space:nowrap;}
  [data-theme="dark"] #rdStFormWrap .st-ti{background-color:var(--surface-alt);}
  [data-theme="dark"] #rdStFormWrap .st-ti:focus{background-color:var(--bg);}

  /* ===== 공대 찾기 (Raid Finder) ===== */
  #page-raids .rf-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap: var(--space-8);flex-wrap:wrap}
  #page-raids .rf-title{font-size:var(--text-xl);font-weight:700;color:var(--text);margin-bottom:3px}
  #page-raids .rf-subtitle{font-size:var(--text-sm);color:var(--text-sub)}
  #page-raids .rf-filters, #page-horntail-timer .rf-filters{background:var(--card-bg);border: var(--border-thin) solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap: var(--space-10)}
  #page-raids .rf-filter-row, #page-horntail-timer .rf-filter-row{display:flex;align-items:center;gap: var(--space-8);flex-wrap:wrap}
  #page-raids .rf-fl{font-size:var(--text-xs);color:var(--text-sub);white-space:nowrap;min-width:28px;font-weight:500}
  #page-raids .rf-chip{font-size:var(--text-xs);padding:6px 14px;border-radius: var(--radius-xl);border: var(--border-thin) solid var(--border);background:transparent;color:var(--text-sub);cursor:pointer;white-space:nowrap;transition:all .12s;font-weight:400}
  #page-raids .rf-chip:hover{background:var(--bg);color:var(--text)}
  #page-raids .rf-chip.on{background:var(--color-settle-bg);color:var(--color-settle-gold-dark);border-color:var(--color-settle-gold);font-weight:600}
  #page-raids .rf-result-bar, #page-horntail-timer .rf-result-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  #page-raids .rf-count, #page-horntail-timer .rf-count{font-size:var(--text-sm);color:var(--text-sub)}
  #page-raids .rf-count strong, #page-horntail-timer .rf-count strong{color:var(--text);font-weight:600}
  #page-raids .rf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap: var(--space-14);margin-bottom:14px;align-items:stretch}
  #page-raids .rf-grid .mc-card{display:flex;flex-direction:column;position:relative;min-height:313px;height:100%;box-sizing:border-box;margin-bottom:0}
  /* [rf-row] 공대 찾기 리스트 행 — #page-raids 스코프 한정(캐릭터/공대 mc-card 영향 없음) */
  #page-raids .rf-grid{grid-template-columns:1fr;gap:8px}
  #page-raids .rf-row, #page-horntail-timer .rf-row{display:flex;align-items:center;gap:var(--space-12);background:var(--surface);border:var(--border-thin) solid var(--border);border-radius:var(--radius-lg);padding:15px 16px;cursor:pointer;transition:background .12s,border-color .12s}
  #page-raids .rf-row:hover, #page-horntail-timer .rf-row:hover{border-color:var(--text-sub)}
  #page-raids .rf-row.rf-dim{opacity:.65}
  #page-raids .rf-row-ico, #page-horntail-timer .rf-row-ico{flex-shrink:0;width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--surface-alt)}
  #page-raids .rf-row-ico.is-initial, #page-horntail-timer .rf-row-ico.is-initial{display:flex;align-items:center;justify-content:center;font-size:var(--text-md);font-weight:700;color:var(--text-sub);border:var(--border-thin) solid var(--border)}
  #page-raids .rf-row-main, #page-horntail-timer .rf-row-main{flex:1;min-width:0}
  #page-raids .rf-row-title, #page-horntail-timer .rf-row-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  #page-raids .rf-row-name, #page-horntail-timer .rf-row-name{font-size:var(--text-md);font-weight:800;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  #page-raids .rf-row-boss{display:inline-flex;align-items:center;font-size:var(--text-2xs);font-weight:700;color:var(--color-settle-gold-dark);background:var(--color-settle-bg);padding:2px 8px;border-radius:var(--radius-md);line-height:1;white-space:nowrap}
  #page-raids .rf-row-meta, #page-horntail-timer .rf-row-meta{font-size:var(--text-sm);color:var(--text-sub);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #page-raids .rf-row .rf-mini{display:inline-flex;align-items:center;line-height:1;margin-top:0}
  #page-raids .rf-row-stack{flex-shrink:0}
  #page-raids .rf-row-stack .mr-avatar-stack{margin-top:0}
  #page-raids .rf-row-act, #page-horntail-timer .rf-row-act{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .12s}
  #page-raids .rf-row-act:hover, #page-horntail-timer .rf-row-act:hover{opacity:.85}
  #page-raids .rf-row-act.is-closed, #page-horntail-timer .rf-row-act.is-closed{background:var(--surface-alt);color:var(--text-sub);border:var(--border-thin) solid var(--border)}
  #page-raids .rf-row-act .material-icons, #page-horntail-timer .rf-row-act .material-icons{font-size:20px}
  /* 타이머 방 목록 (리스트형, 공대찾기 rf-row 재사용) */
  #page-horntail-timer .ht-room-list{display:flex;flex-direction:column;gap:8px}
  #page-horntail-timer .rf-row .ht-row-kebab{margin-left:0}
  #page-horntail-timer .ht-room-chip{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-2xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-md);line-height:1;white-space:nowrap}
  #page-horntail-timer .ht-room-chip .material-icons{font-size:12px}
  #page-horntail-timer .ht-room-chip.is-pub{background:#EAF3DE;color:var(--color-success)}
  #page-horntail-timer .ht-room-chip.is-priv{background:var(--color-warn-bg);color:var(--color-warn)}
  [data-theme="dark"] #page-horntail-timer .ht-room-chip.is-pub{background:#052e1c;color:#34d399}
  #page-horntail-timer .ht-addrow{display:flex;align-items:center;justify-content:center;gap:var(--space-8);padding:14px;border:var(--border-thin) dashed var(--border);border-radius:var(--radius-lg);background:transparent;color:var(--text-sub);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:background .12s,border-color .12s,color .12s}
  #page-horntail-timer .ht-addrow:hover{border-color:var(--accent);color:var(--accent)}
  @media (max-width:760px){
    #page-raids .rf-row-stack{display:none}
  }
  @media(max-width:720px){
    #page-raids .rf-grid{grid-template-columns:1fr}
  }
  /* 카드 */
  #page-raids .card-action-gold{padding:18px;border-radius: var(--radius-lg);display:flex;flex-direction:column;gap: var(--space-12);margin-bottom:0}
  #page-raids .rf-card-top{display:flex;align-items:center;justify-content:space-between;gap: var(--space-8)}
  #page-raids .rf-boss{font-size:var(--text-sm);font-weight:700;color:var(--color-settle-gold-dark);background:var(--color-settle-bg);padding:3px 10px;border-radius: var(--radius-xl);display:inline-block}
  #page-raids .rf-status{font-size:var(--text-2xs);padding:3px 10px;border-radius: var(--radius-xl);font-weight:500;flex-shrink:0}
  #page-raids .rf-s-open{background:#EAF3DE;color:var(--color-success)}
  #page-raids .rf-s-almost{background:var(--color-settle-bg);color:var(--color-settle-gold-dark)}
  #page-raids .rf-s-closed{background:var(--bg);color:var(--text-sub)}
  #page-raids .rf-raid-name{font-size:var(--text-md);font-weight:700;color:var(--text);line-height:1.3;margin-bottom:3px}
  #page-raids .rf-leader{font-size:var(--text-xs);color:var(--text-sub)}
  #page-raids .rf-desc{font-size:var(--text-xs);color:var(--text-sub);line-height:1.5;padding:8px 10px;background:var(--bg);border-radius:7px}
  #page-raids .rf-progress-wrap{display:flex;flex-direction:column;gap: var(--space-6)}
  #page-raids .rf-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}
  #page-raids .rf-fill{height:100%;border-radius:3px;background:var(--color-settle-gold);transition:width .3s}
  #page-raids .rf-fill.almost{background:var(--color-settle-penalty)}
  #page-raids .rf-fill.full{background:#9ca3af}
  #page-raids .rf-prog-label{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-sub)}
  #page-raids .rf-prog-label strong{color:var(--text);font-weight:600}
  #page-raids .rf-card-bottom{display:flex;align-items:center;justify-content:space-between;gap: var(--space-8);padding-top:2px}
  #page-raids .rf-time{font-size:var(--text-xs);color:var(--text-sub);display:flex;align-items:center;gap: var(--space-4)}
  #page-raids .rf-time .material-icons{font-size:14px}
  #page-raids .rf-actions{display:flex;gap: var(--space-6);align-items:center;flex-shrink:0}
  #page-raids .rf-apply-btn{font-size:var(--text-sm);padding:7px 18px;border-radius: var(--radius);border:none;cursor:pointer;background:var(--color-settle-gold);color:white;font-weight:600;white-space:nowrap;transition:background .12s}
  #page-raids .rf-apply-btn:hover{background:var(--color-settle-gold-dark)}
  #page-raids .rf-apply-btn.guest{background:transparent;color:var(--color-settle-gold-dark);border: var(--border-thin) solid var(--color-settle-gold);font-weight:500}
  #page-raids .rf-apply-btn.guest:hover{background:var(--color-settle-bg)}
  #page-raids .rf-apply-btn.cancel{background:transparent;color:var(--color-danger);border: var(--border-thin) solid var(--color-danger);font-weight:500}
  #page-raids .rf-apply-btn.cancel:hover{background:var(--color-danger-bg)}
  #page-raids .rf-apply-btn:disabled{background:var(--bg);color:var(--text-sub);cursor:not-allowed;border: var(--border-thin) solid var(--border)}
  #page-raids .rf-mgmt-btn{font-size:var(--text-xs);padding:6px 12px;border-radius:7px;border: var(--border-thin) solid var(--border);background:transparent;color:var(--text-sub);cursor:pointer;transition:background .12s}
  #page-raids .rf-mgmt-btn:hover{background:var(--bg);color:var(--text)}
  #page-raids .rf-mgmt-btn.danger{color:var(--color-danger);border-color:#fca5a5}
  #page-raids .rf-mgmt-btn.danger:hover{background:var(--color-danger-bg)}
  [data-theme="dark"] #page-raids .rf-mgmt-btn.danger{color:#f87171;border-color:#7f1d1d}
  [data-theme="dark"] #page-raids .rf-mgmt-btn.danger:hover{background:#2d0a0a;color:#f87171}

  #page-raids .rf-empty{padding:60px 40px;text-align:center;color:var(--text-sub);font-size:var(--text-base);background:var(--card-bg);border: var(--border-thin) solid var(--border);border-radius: var(--radius-lg);grid-column:1/-1}
  [data-theme="dark"] #page-raids .rf-boss{background:#2d1800}
  [data-theme="dark"] #page-raids .rf-chip.on{background:#3d2800;color:#fbbf24;border-color:#78350f}
  [data-theme="dark"] #page-raids .rf-row-boss{background:#3d2800;color:#fbbf24}
  [data-theme="dark"] #page-raids .rf-mini-mine{background:#0c2742;color:#5b9bd5}
  [data-theme="dark"] #page-raids .rf-s-open{background:#052e1c;color:#34d399}
  [data-theme="dark"] #page-raids .rf-s-almost{background:#2d1800;color:#fbbf24}
  [data-theme="dark"] #page-raids .rf-s-closed{background:var(--surface-alt);color:var(--text-sub)}
  [data-theme="dark"] #page-raids .rf-apply-btn.guest:hover{background:#2d1800}
  #page-raids .rf-mini{display:inline-block;font-size:var(--text-2xs);font-weight:600;padding:3px 10px;border-radius:var(--radius-xl);margin-top:4px}
  #page-raids .rf-mini-open{background:#EAF3DE;color:var(--color-success)}
  #page-raids .rf-mini-prog{background:#FAEEDA;color:#854F0B}
  #page-raids .rf-mini-closed{background:var(--surface-alt);color:var(--text-sub)}
  #page-raids .rf-mini-mine{background:var(--accent-light);color:var(--accent)}
  #page-raids .rf-mini-applied{background:#E0ECFB;color:#185FA5}
  #page-raids .mc-card.rf-mine{border:1.5px solid var(--accent)}
  #page-raids .mc-card.rf-dim{opacity:.7}
  [data-theme="dark"] #page-raids .rf-mini-open{background:#052e1c;color:#34d399}
  [data-theme="dark"] #page-raids .rf-mini-prog{background:#2d1800;color:#fbbf24}
  [data-theme="dark"] #page-raids .rf-mini-applied{background:#0c2742;color:#5b9bd5}

  /* ===== 대시보드 뷰 (dv-*) ===== */
  .dv-hero{border-radius: var(--radius-lg);padding:22px 24px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap: var(--space-16);flex-wrap:wrap}
  .dv-hero-member{background:linear-gradient(135deg,#0b5cd5 0%,#1e40af 100%)}
  .dv-hero-leader{background:linear-gradient(135deg,var(--color-settle-gold) 0%,var(--color-settle-gold-dark) 100%)}
  .dv-hero-label{font-size:var(--text-xs);color:rgba(255,255,255,.75);margin-bottom:5px;font-weight:500}
  .dv-hero-amount{font-size:var(--text-2xl);font-weight:700;color:#fff;margin-bottom:3px;line-height:1.2}
  .dv-hero-sub{font-size:var(--text-xs);color:rgba(255,255,255,.65)}
  .dv-hero-btn{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);color:#fff;padding:9px 18px;border-radius: var(--radius);cursor:pointer;font-size:var(--text-sm);font-weight:500;white-space:nowrap;transition:background .15s;flex-shrink:0}
  .dv-hero-btn:hover{background:rgba(255,255,255,.28)}
  .dv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap: var(--space-10);margin-bottom:14px}
  .dv-stats-4{grid-template-columns:repeat(4,1fr)}
  .dv-stat-val{font-size:var(--text-xl);font-weight:700;color:var(--text);line-height:1.1}
  .dv-stat-label{font-size:var(--text-2xs);color:var(--text-sub);margin-top:5px}
  .dv-stat-sub{font-size:var(--text-2xs);color:var(--text-sub);opacity:.7;margin-top:2px}
  .dv-settle-row{display:flex;align-items:center;gap: var(--space-10);padding:9px 0;border-bottom: var(--border-thin) solid var(--row-line)}
  .dv-settle-row:last-child{border-bottom:none}
  .dv-settle-date{font-size:var(--text-2xs);color:var(--text-sub);white-space:nowrap;min-width:52px}
  .dv-settle-boss{font-size:var(--text-2xs);padding:2px 7px;border-radius:5px;background:var(--color-settle-bg);color:var(--color-settle-gold-dark);font-weight:500;white-space:nowrap;flex-shrink:0}
  .dv-settle-sub{font-size:var(--text-2xs);color:var(--text-sub);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dv-settle-gold{font-size:var(--text-sm);font-weight:700;color:var(--text);white-space:nowrap}
  .dv-settle-badge{font-size:var(--text-2xs);padding:2px 7px;border-radius:5px;background:var(--color-success-bg);color:var(--color-success);white-space:nowrap;flex-shrink:0}
  .dv-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap: var(--space-14);margin-bottom:14px}
  .dv-applicant-row{display:flex;align-items:center;gap: var(--space-10);padding:9px 0;border-bottom: var(--border-thin) solid var(--row-line)}
  .dv-applicant-row:last-child{border-bottom:none}
  .dv-av{width:32px;height:32px;border-radius:50%;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;flex-shrink:0}
  .dv-ap-name{font-size:var(--text-sm);font-weight:500;color:var(--text)}
  .dv-ap-sub{font-size:var(--text-2xs);color:var(--text-sub)}
  .dv-ap-btns{display:flex;gap: var(--space-6);margin-left:auto;flex-shrink:0}
  .dv-ap-ok{font-size:var(--text-2xs);padding:5px 12px;border-radius: var(--radius-sm);border:none;background:var(--accent);color:#fff;cursor:pointer;font-weight:500}
  .dv-ap-ok:hover{background:#0a4db5}
  .dv-ap-ng{font-size:var(--text-2xs);padding:5px 12px;border-radius: var(--radius-sm);border: var(--border-thin) solid var(--border);background:transparent;color:var(--text-sub);cursor:pointer}
  .dv-ap-ng:hover{background:var(--bg);color:var(--color-danger-light);border-color:var(--color-danger-light)}
  @media(max-width:900px){.dv-stats-4{grid-template-columns:repeat(2,1fr)}.dv-bottom-grid{grid-template-columns:1fr}}
  @media(max-width:768px){#dvmStatsNoticWrap{grid-template-columns:1fr!important}}
  @media(max-width:600px){.dv-stats{grid-template-columns:repeat(3,1fr)}.dv-hero-amount{font-size:var(--text-xl)}}
  @media(max-width:480px){.dv-stats{grid-template-columns:1fr 1fr}}
  [data-theme="dark"] .dv-settle-boss{background:#2d1800;color:#fbbf24}
  [data-theme="dark"] .dv-settle-badge{background:#052e1c;color:#34d399}

  /* ===== 내 정산 (My Settlement) — 공대 정산 탭 폰트 기준 통일 ===== */
  #page-mysettlement .rd-tab{display:inline-flex;align-items:center;gap: var(--space-4)}
  #page-mysettlement .ms-trash-empty{padding:60px 20px;text-align:center;color:var(--text-sub);background:var(--card-bg);border: var(--border-thin) solid var(--border);border-radius:var(--radius)}
  #page-mysettlement .ms-trash-empty .material-icons{font-size:48px;opacity:.3;display:block;margin-bottom:8px}
  #page-mysettlement .ms-summary{display:grid;grid-template-columns:repeat(4,1fr);gap: var(--space-12);margin-bottom:20px}
  @media(max-width:600px){#page-mysettlement .ms-summary{grid-template-columns:1fr 1fr}}
  #page-mysettlement .ms-stat-lbl{font-size:var(--text-sm);color:var(--text-sub);font-weight:500;margin-bottom:6px}
  #page-mysettlement .ms-stat-val{font-size:var(--text-xl);font-weight:700;color:var(--text)}
  #page-mysettlement .ms-stat-sub{font-size:var(--text-xs);color:var(--text-sub);margin-top:2px}
  #page-mysettlement .card-stat.gold .ms-stat-val{color:var(--text)}
  #page-mysettlement .card-stat.due .ms-stat-val{color:var(--color-warn)}
  #page-mysettlement .card-stat.due.is-clear .ms-stat-val{color:var(--text-sub)}
  #page-mysettlement .ms-filter-row{display:flex;align-items:center;gap: var(--space-8);margin-bottom:14px;flex-wrap:wrap}
  #page-mysettlement .ms-filter-row > span{font-size:var(--text-sm)!important;color:var(--text-sub)}
  #page-mysettlement .ms-chip{font-size:var(--text-sm);padding:6px 14px;border-radius: var(--radius-xl);border: var(--border-thin) solid var(--border);background:transparent;color:var(--text-sub);cursor:pointer;transition:all .12s}
  #page-mysettlement .ms-chip.on{background:var(--color-settle-bg);color:var(--color-settle-gold-dark);border-color:var(--color-settle-gold);font-weight:600}
  #page-mysettlement .ms-chip:hover{background:var(--bg)}
  [data-theme="dark"] #page-mysettlement .ms-chip.on{background:#3d2800;color:#fbbf24;border-color:#78350f}
  #page-mysettlement .ms-table-wrap{background:var(--card-bg);border: var(--border-thin) solid var(--border);border-radius:var(--radius);overflow-x:auto;-webkit-overflow-scrolling:touch}
  #page-mysettlement .ms-table{width:100%;border-collapse:collapse;table-layout:auto}
  #page-mysettlement .ms-table th{font-size:var(--text-sm);color:var(--text-sub);font-weight:600;height:50px;padding:0 18px;border-bottom: var(--border-thin) solid var(--border);background:var(--surface-alt);white-space:nowrap;text-align:left;box-sizing:border-box}
  #page-mysettlement .ms-table td{height:44px;padding:5px 18px;font-size:var(--text-base);border-bottom: var(--border-thin) solid var(--row-line);vertical-align:middle;box-sizing:border-box}
  #page-mysettlement .ms-table tr:last-child td{border-bottom:none}
  #page-mysettlement .ms-table tbody tr:hover{background:var(--surface-alt)}
  #page-mysettlement .ms-gold{color:var(--text);font-weight:700}
  /* 글로벌 보스 배지 (작업 4-A5에서 .ms-boss-badge 흡수) */
  .boss-badge{display:inline-block;font-size:var(--text-xs);padding:3px 8px;border-radius: var(--radius-sm);background:var(--color-settle-bg);color:var(--color-settle-gold-dark);font-weight:600}
  [data-theme="dark"] .boss-badge{color:var(--color-settle-gold)}
  #page-mysettlement .ms-expand-btn{background:none;border:none;cursor:pointer;color:var(--text-sub);font-size:var(--text-base);padding:2px 6px;border-radius:4px;transition:background .12s}
  #page-mysettlement .ms-expand-btn:hover{background:var(--bg)}
  #page-mysettlement .ms-detail-row{background:var(--surface-alt)}
  #page-mysettlement .ms-detail-inner{padding:12px 14px;font-size:var(--text-sm);color:var(--text-sub)}
  #page-mysettlement .ms-item-list{display:flex;gap: var(--space-6);flex-wrap:wrap;margin-top:6px}
  #page-mysettlement .ms-item-chip{background:var(--bg);border: var(--border-thin) solid var(--border);border-radius:5px;padding:3px 9px;font-size:var(--text-xs);color:var(--text)}
  #page-mysettlement .ms-empty{padding:48px;text-align:center;color:var(--text-sub);font-size:var(--text-base)}
  /* [조각4'] 내 정산내역 일괄삭제 */
  #page-mysettlement .ms-chk-cell{width:36px;text-align:center}
  #page-mysettlement .ms-chk{width:16px;height:16px;cursor:pointer;accent-color:var(--accent);vertical-align:middle}
  #page-mysettlement .ms-bulkbar{display:none;align-items:center;gap:12px;padding:10px 16px;margin-bottom:12px;background:var(--surface-alt);border: var(--border-thin) solid var(--border);border-radius:8px}
  #page-mysettlement .ms-bulkbar.active{display:flex}
  #page-mysettlement .ms-bulk-count{font-size:var(--text-sm);font-weight:600;color:var(--text)}
  #page-mysettlement .ms-bulk-del{margin-left:auto}
  #page-mysettlement .ms-card-chk{width:16px;height:16px;cursor:pointer;accent-color:var(--accent);margin-right:2px}
  #page-mysettlement .ms-month-label{font-size:var(--text-sm);font-weight:600;color:var(--text-sub);padding:10px 12px;background:var(--surface-alt);border-bottom: var(--border-thin) solid var(--row-line)}

  /* 모바일 정산 카드 (작업 4-A3) */
  #page-mysettlement .ms-card-list{display:none}
  @media(max-width:767px){
    #page-mysettlement .ms-table-wrap{display:none}
    #page-mysettlement .ms-card-list{display:block}
  }
  .ms-card{background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);padding:14px;margin-bottom:10px}
  .ms-card.is-hidden{opacity:.55;background:var(--surface-alt)}
  .ms-card-month-label{font-size:var(--text-sm);font-weight:600;color:var(--text-sub);padding:10px 4px 6px;margin-top:8px}
  .ms-card-month-label:first-child{margin-top:0}
  .ms-card-header{display:flex;align-items:center;gap: var(--space-8);margin-bottom:10px;flex-wrap:wrap}
  .ms-card-date{font-size:var(--text-xs);color:var(--text-sub);font-variant-numeric:tabular-nums}
  .ms-card-actions{margin-left:auto;display:flex;gap:2px}
  .ms-card-main{display:flex;align-items:baseline;justify-content:space-between;gap: var(--space-8);margin-bottom:6px}
  .ms-card-amount{font-size:var(--text-xl);font-weight:500;color:var(--text)}
  .ms-card.is-hidden .ms-card-amount{color:var(--text-sub)}
  .ms-card-alloc{font-size:var(--text-2xs);color:var(--text-sub)}
  .ms-card-summary{font-size:var(--text-xs);color:var(--text-sub);margin-bottom:10px}
  .ms-card-expand-btn{width:100%;background:var(--surface-alt);border:none;border-radius: var(--radius);padding:8px;font-size:var(--text-xs);color:var(--text-sub);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;font-family:inherit}
  .ms-card-expand-btn:hover{background:var(--bg)}
  .ms-card-detail{display:none;margin-top:10px;padding-top:10px;border-top: var(--border-thin) solid var(--border)}
  .ms-card.is-open .ms-card-detail{display:block}
  .ms-card-item{display:flex;align-items:center;gap: var(--space-6);padding:6px 0;font-size:var(--text-sm);border-bottom: var(--border-thin) solid var(--row-line)}
  .ms-card-item:last-child{border-bottom:none}
  .ms-card-item-name{flex:1;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ms-card-item-profit{font-weight:600;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}
  .ms-card-memo{margin-top:8px;padding:8px;background:var(--surface-alt);border-radius: var(--radius);font-size:var(--text-xs);color:var(--text-sub)}
  .ms-card-per{margin-top:8px;font-size:var(--text-xs);color:var(--text-sub);text-align:right}
  /* 판매방식 칩 (data-method 패턴 - 컨벤션 9-8) */
  .ms-card-chip{font-size:10px;font-weight:600;padding:2px 7px;border-radius: var(--radius-md);white-space:nowrap}
  .ms-card-chip[data-method="교환"]{background:var(--color-info-bg);color:var(--color-info)}
  .ms-card-chip[data-method="택배"]{background:var(--color-warn-bg);color:var(--color-warn)}
  .ms-card-chip[data-method="상점판매"]{background:var(--surface-alt);color:var(--text-sub)}

  /* 휴지통 모바일 카드 (작업 4-A4) */
  #page-mysettlement .trash-card-list{display:none}
  @media(max-width:767px){
    #msTrashView .ms-table-wrap{display:none}
    #page-mysettlement .trash-card-list{display:block}
  }
  .trash-card{background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);padding:14px;margin-bottom:10px}
  .trash-card-header{display:flex;align-items:center;gap: var(--space-8);margin-bottom:10px;flex-wrap:wrap}
  .trash-card-date{font-size:var(--text-xs);color:var(--text-sub);font-variant-numeric:tabular-nums}
  .trash-card-amount{font-size:var(--text-lg);font-weight:500;color:var(--text);margin-bottom:12px}
  .trash-card-actions{display:flex;gap: var(--space-8)}
  .trash-card-actions .btn{flex:1;justify-content:center;padding:8px}
  /* urgency 칩 (data-urgency 패턴 - 컨벤션 9-8) */
  .trash-urgency{font-size:10px;font-weight:600;padding:2px 7px;border-radius: var(--radius-md);white-space:nowrap;margin-left:auto}
  .trash-urgency[data-urgency="critical"]{background:var(--color-danger-bg);color:var(--color-danger)}
  .trash-urgency[data-urgency="normal"]{background:var(--surface-alt);color:var(--text-sub)}
  /* PC 테이블 액션 셀 - 버튼 간격 (9-6 인라인 margin 대체) */
  #msTrashView .trash-pc-actions{display:inline-flex;gap: var(--space-6)}

  /* 공대원 모바일 카드 (작업 4-A6) */
  #rdPanel-members .gm-card-list{display:none}
  @media(max-width:767px){
    #rdPanel-members .gm-table-wrap{display:none}
    #rdPanel-members .gm-card-list{display:block}
  }
  /* 4-A14 fix1: 정산 카드와 콘텐츠 left 정렬 — padding 16+border 1 = 17 → padding 15+border 1 = 16 (정산 padding 15와 일치) */
  .gm-card{background:var(--card-bg);border:var(--border-thin) solid var(--border);border-radius: var(--radius-lg);padding:15px;margin-bottom:10px}
  .gm-card.is-unlinked{opacity:0.65}
  .gm-card-header{display:flex;align-items:center;gap: var(--space-8);margin-bottom:10px;flex-wrap:wrap}
  .gm-card-num{font-size:var(--text-2xs);color:var(--text-sub);font-variant-numeric:tabular-nums}
  .gm-card-name{font-size:var(--text-base);font-weight:600;color:var(--text)}
  .gm-card-header-right{margin-left:auto;display:flex;align-items:center}
  .gm-card-meta{display:flex;align-items:center;gap: var(--space-8);margin-bottom:10px;font-size:var(--text-xs);color:var(--text-sub);flex-wrap:wrap}
  .gm-card-stats{display:grid;grid-template-columns:1fr 1fr;gap: var(--space-8);padding-top:10px;border-top: var(--border-thin) solid var(--row-line);font-size:var(--text-sm)}
  .gm-card-stat{display:flex;justify-content:space-between;align-items:baseline;gap: var(--space-6)}
  /* 4-A14: 라벨 13/600 통일 (정산 폼 ::before 패턴) */
  .gm-card-stat-label{font-size:var(--text-xs);font-weight:600;color:var(--text-sub)}
  .gm-card-stat-val{font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}
  /* 작업 4-A6 보강 fix2: 권한+수정 인라인 (stats와 동일 grid 정렬) */
  .gm-card-extras{display:grid;grid-template-columns:1fr 1fr;gap: var(--space-8);margin-top:10px;padding-top:10px;border-top: var(--border-thin) solid var(--row-line);font-size:var(--text-sm)}
  .gm-card-extras > div{display:flex;justify-content:space-between;align-items:center;gap: var(--space-6)}
  /* 4-A14: 라벨 13/600 통일 */
  .gm-card-extras-label{font-size:var(--text-xs);font-weight:600;color:var(--text-sub)}
  .gm-card-edit-btn{border:none;background:transparent;padding:0;cursor:pointer;color:var(--text);display:inline-flex;align-items:center;font-family:inherit}
  .gm-card-edit-btn:hover{color:var(--accent)}
  .gm-card-edit-btn .material-icons{font-size:18px}
  .gm-card-actions{display:flex;gap: var(--space-6);margin-top:10px;align-items:center}
  .gm-card-actions .btn{flex:1;justify-content:center;font-size:var(--text-sm);padding:10px;font-weight:500}
  .gm-card-actions .btn svg{width:16px;height:16px;flex-shrink:0}
  .gm-card-actions .st-trash-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap: var(--space-6);padding:10px;font-size:var(--text-sm);font-weight:500}
  /* 9-8 칩 - 역할/상태 (data-* 패턴, 세 번째 사례) */
  /* [4-A30 step2] 역할(딜러/서폿) 뱃지 제거 — 직업명 텍스트만 표시 */
  .gm-card .badge[data-status="참여"]{background:var(--color-success-bg);color:var(--color-success)}
  .gm-card .badge[data-status="미정"]{background:var(--color-warn-bg);color:var(--color-warn)}
  .gm-card .badge[data-status="불참"]{background:var(--color-danger-bg);color:var(--color-danger)}

  /* 공대 정산 모바일 카드 (작업 4-A5) */
  #rdPanel-settlements .gs-card-list{display:none}
  @media(max-width:767px){
    #rdPanel-settlements .gs-table-wrap{display:none}
    #rdPanel-settlements .gs-card-list{display:block}
  }
  .gs-card{position:relative;background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);padding:14px;margin-bottom:10px;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:transform .15s, box-shadow .15s, border-color .15s}
  .gs-card:hover{box-shadow:0 6px 16px rgba(0,0,0,.14);transform:translateY(-1px);border-color:var(--accent)}
  .gs-card:active{box-shadow:0 6px 16px rgba(0,0,0,.14);transform:translateY(0)}
  [data-theme="dark"] .gs-card{box-shadow:0 1px 3px rgba(0,0,0,.3)}
  [data-theme="dark"] .gs-card:hover,[data-theme="dark"] .gs-card:active{box-shadow:0 6px 16px rgba(0,0,0,.4)}
  .gs-card-header{display:flex;align-items:center;gap: var(--space-8);margin-bottom:10px;flex-wrap:wrap}
  .gs-card-date{font-size:var(--text-xs);color:var(--text-sub);font-variant-numeric:tabular-nums}
  .gs-card-trash{margin-left:auto}
  .gs-card-chevron{margin-left:auto;color:var(--text-sub);font-size:18px}
  .gs-card-amount-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
  /* 4-A15: 정산 카드 금액 볼드 (500→700) */
  .gs-card-amount{font-size:var(--text-xl);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
  .gs-card-amount-label{font-size:var(--text-xs);color:var(--text-sub)}
  .gs-card-summary{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);color:var(--text-sub);padding-top:8px;border-top: var(--border-thin) solid var(--row-line)}
  .gs-card-per-mine{color:var(--text);font-weight:600}

  /* PC 정산 테이블 행 호버 (작업 4-A5 보강 - 모바일 카드 호버 패턴 일관) */
  #rdSettleTbody tr{cursor:pointer;transition:background .15s}
  #rdSettleTbody tr:hover{background:var(--surface-alt)}

  /* 9-6 fix 클래스 (PC 테이블 인라인 정리, 작업 4-A5) */
  #rdPanel-settlements .gs-th-mine{color:var(--text)}
  #rdPanel-settlements .gs-items-cell{font-size:var(--text-xs);color:var(--text-sub);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #rdPanel-settlements .gs-amount-mine{color:var(--text);font-weight:700}
  #rdPanel-settlements .gs-amount-mine-strong{color:var(--text);font-weight:700;font-size:var(--text-md)}
  #rdPanel-settlements .gs-note-cell{color:var(--text-sub);font-size:var(--text-sm)}
  #rdPanel-settlements .gs-empty-cell{text-align:center;padding:40px;color:var(--text-sub)}

  /* [Phase 1.5] 디스코드 알림 탭 스타일 — 사이트 표준 토큰/클래스 정합 */
  /* [4-A63] #tbPanel-alert(오늘의 보스 알림 탭) 정합 — 셀렉터 공유 */
  #rdPanel-discord .dn-card,#tbPanel-alert .dn-card,#msPanel-notify .dn-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}
  #rdPanel-discord .dn-row,#tbPanel-alert .dn-row,#msPanel-notify .dn-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
  #rdPanel-discord .dn-row-text,#tbPanel-alert .dn-row-text,#msPanel-notify .dn-row-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
  #rdPanel-discord .dn-row-title,#tbPanel-alert .dn-row-title,#msPanel-notify .dn-row-title{font-size:var(--text-base);color:var(--text)}
  #rdPanel-discord .dn-row-desc,#tbPanel-alert .dn-row-desc,#msPanel-notify .dn-row-desc{font-size:var(--text-xs);color:var(--text-sub)}
  #rdPanel-discord .dn-meta-grid,#tbPanel-alert .dn-meta-grid,#msPanel-notify .dn-meta-grid{border-top:1px solid var(--border);padding-top:12px;margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  #rdPanel-discord .dn-meta-label,#tbPanel-alert .dn-meta-label,#msPanel-notify .dn-meta-label{font-size:var(--text-xs);color:var(--text-sub);margin-bottom:4px}
  #rdPanel-discord .dn-meta-value,#tbPanel-alert .dn-meta-value,#msPanel-notify .dn-meta-value{font-size:var(--text-base);color:var(--text)}
  /* [Phase 1.5 정합 2차] 디스코드 알림 탭 — 무클래스 <table> + _renderAvatar로 공대원 탭과 정합 */
  /* .dn-recipients는 .card + 인라인 padding:0 으로 컨테이너만 잡고, 테이블/아바타 룰은 전부 글로벌/헬퍼에 위임 */
  #rdPanel-discord .dn-recipients,#tbPanel-alert .dn-recipients,#msPanel-notify .dn-recipients{overflow:hidden;margin-top:16px;padding:0}
  #rdPanel-discord .dn-recipients-head,#tbPanel-alert .dn-recipients-head,#msPanel-notify .dn-recipients-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;user-select:none}
  #rdPanel-discord .dn-recipients-head:hover,#tbPanel-alert .dn-recipients-head:hover,#msPanel-notify .dn-recipients-head:hover{background:var(--surface-alt)}
  #rdPanel-discord .dn-recipients-title-wrap,#tbPanel-alert .dn-recipients-title-wrap,#msPanel-notify .dn-recipients-title-wrap{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
  #rdPanel-discord .dn-chevron,#tbPanel-alert .dn-chevron,#msPanel-notify .dn-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--text-sub);transition:transform .2s ease;margin-right:6px}
  #rdPanel-discord .dn-chevron.is-collapsed,#tbPanel-alert .dn-chevron.is-collapsed,#msPanel-notify .dn-chevron.is-collapsed{transform:rotate(-90deg)}
  #rdPanel-discord .dn-recipients-title,#tbPanel-alert .dn-recipients-title,#msPanel-notify .dn-recipients-title{font-size:var(--text-base);font-weight:500}
  #rdPanel-discord .dn-recipients-count,#tbPanel-alert .dn-recipients-count,#msPanel-notify .dn-recipients-count{font-size:var(--text-sm);color:var(--text-sub)}
  #rdPanel-discord .dn-recipients-body,#tbPanel-alert .dn-recipients-body,#msPanel-notify .dn-recipients-body{display:none}
  #rdPanel-discord .dn-recipients-body.is-open,#tbPanel-alert .dn-recipients-body.is-open,#msPanel-notify .dn-recipients-body.is-open{display:block}
  #rdPanel-discord .dn-pill,#tbPanel-alert .dn-pill,#msPanel-notify .dn-pill{display:inline-block;font-size:var(--text-xs);padding:2px 8px;border-radius:10px;font-weight:500}
  #rdPanel-discord .dn-pill.is-on,#tbPanel-alert .dn-pill.is-on,#msPanel-notify .dn-pill.is-on{background:var(--color-success-bg);color:var(--color-success)}
  #rdPanel-discord .dn-pill.is-off,#tbPanel-alert .dn-pill.is-off,#msPanel-notify .dn-pill.is-off{background:var(--bg-sub);color:var(--text-sub)}
  #rdPanel-discord .dn-pill.is-warn,#tbPanel-alert .dn-pill.is-warn,#msPanel-notify .dn-pill.is-warn{background:var(--color-warn-bg);color:var(--color-warn)}
  /* [알림 탭 v4] 전체 알림 OFF 시 하위 행 비활성 표현 */
  #msPanel-notify .dn-row.is-disabled{opacity:.45;pointer-events:none}
  /* [디스코드 통합 상태 카드] 알림 탭 상단 */
  #msPanel-notify .ms-dc-card{display:flex;align-items:center;gap:14px;border:1px solid var(--border);background:var(--card-bg);border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:20px;}
  #msPanel-notify .ms-dc-card.is-linked{background:var(--accent-light);border-color:var(--accent);}
  #msPanel-notify .ms-dc-icon{width:38px;height:38px;border-radius:50%;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  #msPanel-notify .ms-dc-card.is-linked .ms-dc-icon{background:#5865F2;}
  #msPanel-notify .ms-dc-icon svg{width:20px;height:20px;}
  #msPanel-notify .ms-dc-icon svg path{fill:var(--text-sub);}
  #msPanel-notify .ms-dc-card.is-linked .ms-dc-icon svg path{fill:#fff;}
  #msPanel-notify .ms-dc-text{flex:1;min-width:0;}
  #msPanel-notify .ms-dc-title{font-weight:600;font-size:var(--text-base);margin-bottom:2px;display:flex;align-items:center;gap:8px;}
  #msPanel-notify .ms-dc-desc{font-size:var(--text-xs);color:var(--text-sub);}
  #msPanel-notify .ms-dc-btn{padding:8px 16px;font-size:var(--text-xs);white-space:nowrap;flex-shrink:0;}
  /* [미연동 회색 처리] 전역설정+공대별 알림 본문 흐림 */
  #msPanel-notify #msNotifyBody.is-dimmed{opacity:.45;pointer-events:none;}
  #rdPanel-discord .dn-link-ok,#tbPanel-alert .dn-link-ok,#msPanel-notify .dn-link-ok{color:var(--color-success)}
  #rdPanel-discord .dn-link-no,#tbPanel-alert .dn-link-no,#msPanel-notify .dn-link-no{color:var(--text-sub);opacity:.6}
  #rdPanel-discord .dn-muted,#tbPanel-alert .dn-muted,#msPanel-notify .dn-muted{color:var(--text-sub);opacity:.6}
  #rdPanel-discord .dn-empty,#tbPanel-alert .dn-empty,#msPanel-notify .dn-empty{text-align:center;padding:40px;color:var(--text-sub)}
  @media (max-width:768px){
    #rdPanel-discord .dn-row-title,#tbPanel-alert .dn-row-title,#msPanel-notify .dn-row-title{font-size:var(--text-md)}
    #rdPanel-discord .dn-row-desc,#tbPanel-alert .dn-row-desc,#msPanel-notify .dn-row-desc{font-size:var(--text-sm)}
    #rdPanel-discord .dn-recipients-body thead th,#tbPanel-alert .dn-recipients-body thead th,#msPanel-notify .dn-recipients-body thead th{height:46px}
    #rdPanel-discord .dn-recipients-body tbody td,#tbPanel-alert .dn-recipients-body tbody td,#msPanel-notify .dn-recipients-body tbody td{height:40px}
  }

  /* 대시보드 내 정산 위젯 */
  .dash-ms-row{display:flex;align-items:center;gap: var(--space-10);padding:10px 0;border-bottom: var(--border-thin) solid var(--row-line)}
  .dash-ms-row:last-child{border-bottom:none}
  .dash-ms-date{font-size:var(--text-2xs);color:var(--text-sub);white-space:nowrap;min-width:60px}
  .dash-ms-boss{font-size:var(--text-2xs);padding:2px 7px;border-radius:5px;background:var(--color-settle-bg);color:var(--color-settle-gold-dark);font-weight:500;white-space:nowrap}
  .dash-ms-items{font-size:var(--text-xs);color:var(--text-sub);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .dash-ms-gold{font-size:var(--text-sm);font-weight:700;color:var(--text);white-space:nowrap}
  [data-theme="dark"] #page-mysettlement .ms-chip.on{background:#2d1800}
  [data-theme="dark"] .dash-ms-boss{background:#2d1800;color:#fbbf24}

  /* ===== Sidebar Profile Area ===== */
  .sidebar-profile-area { border-top: 1px solid var(--border); margin-top: auto; padding: 12px 12px 16px; flex-shrink: 0; }
  .sidebar-role-switcher { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); margin-bottom: 10px; }
  .role-switch-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-6); padding: 10px 10px; border-radius: var(--radius-lg); border: 1px solid transparent; background: #16181f; color: #cbd5e1; font-size: var(--text-xs); font-weight: 600; cursor: pointer; transition: all .18s ease; }
  .role-switch-btn:hover { background: #1f2430; border-color: #3a3d45; }
  .role-switch-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
  .role-switch-btn.disabled { opacity: .35; cursor: default; pointer-events: none; }
  .sidebar-chevron { display: none; }
  .sidebar-role-picker { display: none; }

  /* ===== 공대장 신청 ===== */
  .la-form-group { margin-bottom: 14px; }
  .la-form-group label { display: block; font-size: var(--text-sm); font-weight: 600; color: var(--text); margin-bottom: 6px; }
  .la-form-group textarea { width: 100%; padding: 10px 12px; border: var(--border-medium) solid var(--border); border-radius: var(--radius); font-size: var(--text-base); font-family: inherit; background: var(--surface); color: var(--text); resize: vertical; min-height: 80px; box-sizing: border-box; }
  .la-form-group select, .la-form-group input { width: 100%; padding: 10px 12px; border: var(--border-medium) solid var(--border); border-radius: var(--radius); font-size: var(--text-base); font-family: inherit; background-color: var(--surface); color: var(--text); box-sizing: border-box; }
  .la-form-group select { padding-right: 32px; }
  .la-char-count { font-size: var(--text-2xs); color: var(--text-sub); text-align: right; margin-top: 3px; }
  .la-warn { background: var(--color-warn-bg); border: 1px solid #fde68a; border-radius: var(--radius); padding: 10px 14px; font-size: var(--text-sm); color: var(--color-master-text); margin-bottom: 14px; }
  [data-theme="dark"] .la-warn { background: #2d2000; border-color: #78350f; color: #fbbf24; }
  /* 공대장 신청 목록 탭 */
  .la-card-header { display: flex; align-items: center; gap: var(--space-10); margin-bottom: 10px; }
  .la-card-header img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
  .la-card-meta { flex: 1; min-width: 0; }
  .la-card-meta strong { font-size: var(--text-base); display: block; }
  .la-card-meta span { font-size: var(--text-xs); color: var(--text-sub); }
  .la-card-body { font-size: var(--text-sm); color: var(--text); line-height: 1.6; margin-bottom: 12px; }
  .la-card-body .la-field { display: flex; gap: var(--space-6); margin-bottom: 4px; }
  .la-card-body .la-field-label { color: var(--text-sub); min-width: 70px; font-size: var(--text-xs); }
  .la-card-actions { display: flex; gap: var(--space-8); }
  .btn-approve { background: var(--color-success); color: #fff; border: none; border-radius: var(--radius); padding: 7px 16px; font-size: var(--text-sm); font-weight: 600; cursor: pointer; font-family: inherit; }
  .btn-hold { background: var(--color-warn); color: #fff; border: none; border-radius: var(--radius); padding: 7px 16px; font-size: var(--text-sm); font-weight: 600; cursor: pointer; font-family: inherit; }
  .btn-reject { background: var(--color-danger); color: #fff; border: none; border-radius: var(--radius); padding: 7px 16px; font-size: var(--text-sm); font-weight: 600; cursor: pointer; font-family: inherit; }
  .la-status-badge { padding: 3px 10px; border-radius: var(--radius-xl); font-size: var(--text-2xs); font-weight: 700; }
  .la-status-pending { background: var(--color-warn-bg); color: var(--color-warn); }
  .la-status-approved { background: var(--color-success-bg); color: var(--color-success); }
  .la-status-rejected { background: #fee2e2; color: var(--color-danger); }
  .la-status-hold { background: #f3f4f6; color: var(--text-sub); }
  [data-theme="dark"] .la-status-pending { background: #2d1c00; color: #fbbf24; }
  [data-theme="dark"] .la-status-approved { background: #052e1c; color: #34d399; }
  [data-theme="dark"] .la-status-rejected { background: #2d0a0a; color: #f87171; }
  [data-theme="dark"] .la-status-hold { background: #1f2128; color: #9ca3af; }
  /* 마스터 대시보드 배지 */
  .master-pending-badge { display: inline-flex; align-items: center; gap: var(--space-6); background: #fee2e2; color: var(--color-danger); border-radius: var(--radius-xl); padding: 4px 12px; font-size: var(--text-xs); font-weight: 700; }
  [data-theme="dark"] .master-pending-badge { background: #2d0a0a; color: #f87171; }
  /* nav 신청 버튼 */
  .nav-item-apply { margin: 8px 8px 0; }
  .nav-item-apply .btn-apply-leader { width: 100%; padding: 9px 12px; border-radius: var(--radius-md); border: var(--border-medium) solid var(--role-vice); background: var(--role-vice-bg); color: var(--role-vice); font-size: var(--text-sm); font-weight: 600; cursor: pointer; font-family: inherit; display: flex; align-items: center; justify-content: center; gap: var(--space-6); transition: .15s; }
  .nav-item-apply .btn-apply-leader:hover { background: var(--role-vice-bg); }
  [data-theme="dark"] .nav-item-apply .btn-apply-leader { background: #1e1433; border-color: var(--role-vice); color: #a78bfa; }
  [data-theme="dark"] .nav-item-apply .btn-apply-leader:hover { background: #2d1d4a; }

  /* [4-A23 step2] 내 공대 — 가입 공대 0개일 때 empty CTA */
  .nav-empty-cta { margin: 4px 8px; padding: 14px 12px; background: var(--sidebar-hover); border: 1px dashed #161618; border-radius: 8px; text-align: center; }
  .nav-empty-cta .nav-empty-msg { font-size: var(--text-xs); color: var(--text-sub); margin-bottom: 10px; line-height: 1.5; }
  .nav-empty-cta .nav-empty-btn { width: 100%; padding: 8px 10px; background: var(--accent); color: #fff; border: none; border-radius: 6px; font-size: var(--text-xs); font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; transition: .15s; }
  .nav-empty-cta .nav-empty-btn:hover { background: #094aae; }
  .nav-empty-cta .nav-empty-btn .material-icons { font-size: 14px; }

  /* [4-A23 step2 fix1] 공대 찾기 — nav-item과 동일 높이/사이즈, 점선 테두리만으로 약화 표현 */
  .nav-item-discover { display: flex; align-items: center; padding: 11px 16px; margin: 6px 8px; color: var(--text-sub); font-size: var(--text-md); cursor: pointer; border: 1px dashed #161618; border-radius: var(--radius); background: transparent; transition: .15s; text-decoration: none; gap: var(--space-10); }
  .nav-item-discover:hover { border-color: var(--accent); color: var(--accent); background: rgba(11,92,213,0.08); }
  .nav-item-discover .nav-icon { width: 20px; text-align: center; font-size: var(--text-md); display:flex; align-items:center; justify-content:center; }
  .nav-item-discover .material-icons { font-size: var(--text-md); }

  /* [4-A23 step4 fix1] 권한 부여 select 공용 룰 — 시스템관리/공대원 페이지 통일 */
  .role-combo{
    font-size: var(--text-sm);
    padding: 5px 26px 5px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background-color: var(--card-bg);
    color: var(--text);
    cursor: pointer;
    min-width: 110px;
    font-family: inherit;
    transition: border-color .15s;
  }
  .role-combo:hover{ border-color: var(--accent); }
  .role-combo:focus{ border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px rgba(11,92,213,0.12); }
  .status-inline-sel { border-radius:6px; padding:4px 10px; font-size:var(--text-sm); font-weight:500; cursor:pointer; border:1px solid transparent; font-family:inherit; }
  .status-inline-sel.s-join   { background-color:var(--color-success-bg); color:var(--color-success); border-color:transparent; }
  .status-inline-sel.s-maybe  { background-color:var(--color-warn-bg);    color:var(--color-warn);    border-color:transparent; }
  .status-inline-sel.s-absent { background-color:var(--color-danger-bg);  color:var(--color-danger-light); border-color:transparent; }
  .status-inline-sel:focus { outline:none; }

  /* [4-A25 step2] 공지사항 유형 chip */
  .nc-chip {
    font-size: var(--text-xs);
    padding: 6px 14px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--border);
    background: var(--card-bg);
    color: var(--text-sub);
    cursor: pointer;
    transition: all .15s;
    font-family: inherit;
    font-weight: 500;
  }
  .nc-chip:hover { border-color: var(--accent); color: var(--accent); }
  .nc-chip.active { background: rgba(11,92,213,0.1); color: var(--accent); border-color: var(--accent); }

  /* [4-A25 step4] 공지 헤더 띠 글로벌 토글 */
  .nc-toggle { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; }
  .nc-toggle input { opacity: 0; width: 0; height: 0; }
  .nc-toggle-slider {
    position: absolute; cursor: pointer; inset: 0;
    background: var(--surface-alt); border: 1px solid var(--border);
    border-radius: 24px; transition: all .2s;
  }
  .nc-toggle-slider::before {
    content: ""; position: absolute; left: 2px; top: 2px;
    width: 18px; height: 18px; background: #fff; border-radius: 50%;
    transition: transform .2s; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  }
  .nc-toggle input:checked + .nc-toggle-slider { background: var(--accent); border-color: var(--accent); }
  .nc-toggle input:checked + .nc-toggle-slider::before { transform: translateX(20px); }

  /* [4-A23 step16] 모바일 footer 폐기 — ERP 도메인 + 웹 플랫폼 정합
     (브라우저 UI가 navigation 역할, 햄버거 사이드바와 중복) */

  /* ===== 공대 상세 탭 ===== */
  .rd-tabs{display:flex;gap:0;border-bottom: var(--border-thick) solid var(--border);margin-bottom:20px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;}
  .rd-tabs::-webkit-scrollbar{display:none}
  .rd-tab{padding:10px 18px;border:none;background:none;cursor:pointer;font-size:var(--text-base);font-weight:500;color:var(--text-sub);border-bottom:3px solid transparent;margin-bottom:-2px;transition:.15s;white-space:nowrap;font-family:inherit;}
  .rd-tab:hover{color:var(--text);}
  .rd-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700;}
  .rd-tab .rd-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;background:var(--color-danger);color:#fff;font-size:var(--text-2xs);font-weight:700;border-radius:9px;margin-left:5px;vertical-align:middle;line-height:1;}
  .rd-tab .rd-badge:empty{display:none;}
  /* 모바일 480px 이하: 4개 탭(정산/공대원/신청자/설정) overflow 방지 */
  @media (max-width: 480px) {
    .rd-tab { padding: 10px 12px; font-size: var(--text-sm); }
  }
  /* ===== 공대 상세 탭 본문 ===== */
  .rd-tab-body{max-width:900px;margin:0 auto;}
  .rd-form-grid{display:grid;grid-template-columns:1fr 1fr;gap: var(--space-16);margin-bottom:14px;}
  .rd-form-full{margin-bottom:14px;}
  .rd-form-half{display:grid;grid-template-columns:1fr 1fr;gap: var(--space-16);margin-bottom:14px;}
  .rd-form-label{display:block;font-size:var(--text-base);font-weight:600;color:var(--text-sub);margin-bottom:5px;}
  /* 4-A16: 글로벌 .rd-form-input 컴팩트 — 정산/설정/멤버모달 통일 */
  /* [4-A22 fix6] 폰트 룰: PC 14px / 모바일 16px (iOS Safari 자동 줌인 방지) */
  /* 박스 모델: height 34 = border 2 + padding 4+4=8 + content 24 (font 14 × lh 1.5 = 21 fit) */
  /* 4-A16 fix3: font-size !important 강제 (input native rendering 또는 다른 룰 덮어쓰기 방지) */
  .rd-form-input{width:100%;height:35px;padding:4px 12px;border:1px solid var(--border);border-radius: var(--radius);font-size:var(--text-input) !important;line-height:1.5;background-color:var(--surface);color:var(--text);box-sizing:border-box;font-family:inherit;outline:none;transition:border-color .15s;}
  select.rd-form-input{padding-right:30px;}
  select.rd-form-input option{padding:10px 12px;font-size:var(--text-input);line-height:1.6;background:var(--surface);color:var(--text);}
  select.rd-form-input optgroup{font-size:var(--text-input-sub);font-weight:700;padding:8px 0 4px;color:var(--text-sub);}
  /* [4-A60] 모바일 입력칸 토큰 오버라이드 제거 — 입력칸도 기본 토큰(15px) 따름.
     기존엔 모바일에서 --text-input을 16px로 덮어써(iOS 줌회피) 입력칸만 유독 크게 보였음.
     ⚠ 15px는 16px 미만이라 iOS Safari 포커스 줌 가능성 있음(별도 테스트). */

  /* [4-A60] 캐릭터 등록 모달 입력칸 폰트 강제(16px) 제거 — 기본 토큰 따름. height만 유지 */
  #memberModal .rd-form-input,
  #myCharModal .rd-form-input{ height: 40px; }
  #memberModal .rd-form-label,
  #myCharModal .rd-form-label{ font-size: var(--text-sm); }
  /* textarea는 height auto + min-height 강제 (rows 3 표시 보장) */
  textarea.rd-form-input{height:auto;min-height:90px;padding:10px 12px}
  .rd-form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(11,92,213,.12);}
  .rd-form-input[readonly],.rd-form-input[disabled]{opacity:.65;cursor:not-allowed;background:var(--surface-alt);}
  .rd-save-row{display:flex;justify-content:flex-end;margin-top:24px;}
  .rd-danger-zone{border: var(--border-medium) solid #fca5a5;border-radius: var(--radius-md);padding:18px 20px;margin-top:32px;background:#fff5f5;}
  [data-theme="dark"] .rd-danger-zone{background:#1f0808;border-color:#7f1d1d;}
  .rd-danger-title{font-size:var(--text-sm);font-weight:700;color:var(--color-danger);margin-bottom:6px;display:flex;align-items:center;gap: var(--space-6);}
  .rd-danger-desc{font-size:var(--text-sm);color:var(--text-sub);margin-bottom:14px;line-height:1.6;}
  .rd-todo-badge{margin-top:28px;padding:12px 16px;background:var(--bg);border-radius: var(--radius);border:1px dashed var(--border);display:flex;align-items:flex-start;gap: var(--space-8);}
  .rd-todo-badge-icon{font-size:var(--text-md);flex-shrink:0;margin-top:1px;}
  .rd-todo-badge-text{font-size:var(--text-xs);color:var(--text-sub);line-height:1.5;}
  @media(max-width:768px){.rd-form-grid,.rd-form-half{grid-template-columns:1fr;}}
  /* 공대 탈퇴 버튼 */
  .rd-leave-btn{display:flex;align-items:center;gap: var(--space-6);padding:7px 14px;border-radius: var(--radius);border: var(--border-medium) solid var(--border);background:transparent;color:var(--text-sub);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;font-family:inherit;flex-shrink:0;}
  .rd-leave-btn:hover{border-color:#fca5a5;color:var(--color-danger);}
  .rd-leave-btn .material-icons{font-size:17px;}
  @media(max-width:600px){.rd-leave-text{display:none;}}
  /* ===== 사이드바 공대 트리 ===== */
  .nav-tree-hd{padding:14px 16px 6px;font-size:var(--text-2xs);color:var(--text-sub);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between;}
  .nav-tree-hd-btn{background:none;border:none;color:var(--text-sub);cursor:pointer;padding:0;display:flex;align-items:center;line-height:1;}
  .nav-tree-raid{display:flex;align-items:center;padding:11px 16px;margin:2px 8px;border-radius: var(--radius);cursor:pointer;color:var(--text-sub);font-size:var(--text-md);transition:all .15s;gap: var(--space-10);user-select:none;}
  .nav-tree-raid:hover{background:var(--sidebar-hover);color:#e5e7eb;}
  .nav-tree-raid.active{background:var(--sidebar-active);color:#fff;font-weight:600;}
  .nav-tree-children{overflow:hidden;max-height:0;transition:max-height .25s ease;}
  .nav-tree-children.open{max-height:400px;}
  .nav-tree-child{display:flex;align-items:center;padding:7px 10px 7px 36px;margin:1px 8px;border-radius: var(--radius);cursor:pointer;color:var(--text-sub);font-size:var(--text-sm);transition:.15s;gap:7px;}
  .nav-tree-child:hover{background:var(--sidebar-hover);color:#e5e7eb;}
  .nav-tree-child.active{background:var(--sidebar-active);color:#fff;font-weight:600;}
  .nav-tree-child .nav-badge{margin-left:auto;}
  .nav-tree-new{display:flex;align-items:center;padding:7px 10px;margin:4px 8px;border-radius: var(--radius);cursor:pointer;color:var(--text-sub);font-size:var(--text-sm);transition:.15s;gap: var(--space-6);border: var(--border-medium) dashed #374151;background:none;width:calc(100% - 16px);font-family:inherit;box-sizing:border-box;}
  .nav-tree-new:hover{border-color:var(--color-settle-gold);color:var(--color-settle-gold);}
  .nav-tree-search{margin:4px 12px 6px;display:flex;align-items:center;background:rgba(255,255,255,0.05);border-radius: var(--radius);padding:4px 10px;gap: var(--space-6);}
  .nav-tree-search input{background:none;border:none;color:var(--text-sub);font-size:var(--text-sm);flex:1;min-width:0;padding:4px 0;outline:none;font-family:inherit;}
  .nav-tree-search input::placeholder{color:#161618;}
  body.sidebar-collapsed .nav-tree-hd,body.sidebar-collapsed .nav-tree-children,body.sidebar-collapsed .nav-tree-new,body.sidebar-collapsed .nav-tree-search{display:none;}
  body.sidebar-collapsed .nav-tree-raid{justify-content:center;padding:11px 0;margin:2px 4px;}
  body.sidebar-collapsed .nav-tree-raid .arr,body.sidebar-collapsed .nav-tree-raid .nav-label{display:none;}
  /* ── 순서 변경 버튼 ── */
  .nav-tree-raid .btn-move{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:rgba(255,255,255,0.3);font-size:var(--text-xs);cursor:pointer;padding:3px 5px;border-radius:4px;opacity:0;transition:all 0.15s;flex-shrink:0;min-width:24px;min-height:24px;}
  .nav-tree-raid:hover .btn-move{opacity:0.7;}
  .btn-move:hover{background:rgba(245,158,11,0.2);color:#f59e0b;opacity:1!important;}
  body.sidebar-collapsed .btn-move{display:none!important;}
  /* 이동 모드: 선택된 공대 */
  .nav-tree-raid.move-selected{background:rgba(245,158,11,0.15)!important;outline:2px solid #f59e0b;outline-offset:-2px;}
  .nav-tree-raid.move-selected .btn-move{opacity:1;color:#f59e0b;background:rgba(245,158,11,0.2);}
  /* 이동 모드: 타겟 후보 */
  .nav-tree-raid.move-target{cursor:pointer;}
  .nav-tree-raid.move-target:hover{background:rgba(59,130,246,0.15)!important;outline:2px dashed #3b82f6;outline-offset:-2px;}
  /* 힌트 메시지 */
  .move-hint{margin:4px 8px 2px;padding:5px 8px;background:rgba(59,130,246,0.1);border-left:3px solid #3b82f6;color:#93c5fd;font-size:var(--text-2xs);border-radius:0 4px 4px 0;}
  /* 모바일: 공대 이동 버튼 우측 끝 + 항상 표시 (hover 없음) */
  @media(max-width:768px){
    .nav-tree-raid .nav-label{max-width:none!important;}
    .nav-tree-raid .btn-move{opacity:1;margin-left:auto;color:rgba(255,255,255,0.55);}
    .nav-tree-raid:hover .btn-move{opacity:1;}
  }
  /* ===== 정산 목록 행 클릭 & 휴지통 아이콘 ===== */
  .st-row{cursor:pointer;transition:background .15s;}
  .st-row:hover{background:var(--surface-alt);}
  .st-row.st-row-view{cursor:pointer;}
  .st-trash-btn{width:32px;height:32px;background:none;border:none;padding:0;border-radius: var(--radius-sm);cursor:pointer;color:var(--text-sub);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;transition:all .15s;}
  .st-trash-btn:hover{color:var(--color-danger);background:rgba(220,38,38,0.1);}
  .st-trash-btn svg{width:18px;height:18px;display:block;}
  /* [4-A56] 손님 신청자 카드 액션 버튼 — 높이 32px 일괄 토큰 (승인/거절 공통) */
  .guest-action-btn{height:32px;padding:0 14px;font-size:var(--text-xs);font-weight:500;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;}
  .guest-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
  .st-trash-cell{width:44px;text-align:center;}
  /* [조각4] 정산 일괄삭제 — 체크박스/선택바 */
  .st-chk-cell{width:36px;text-align:center;}
  .st-chk{width:16px;height:16px;cursor:pointer;accent-color:var(--accent);vertical-align:middle;}
  .st-bulkbar{display:none;align-items:center;gap:12px;padding:10px 16px;margin-bottom:12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;}
  .st-bulkbar.active{display:flex;}
  .st-bulkbar .st-bulk-count{font-size:var(--text-sm);font-weight:600;color:var(--text);}
  .st-bulkbar .st-bulk-del{margin-left:auto;}
  .gs-card-chk{flex-shrink:0;width:18px;height:18px;margin:0;cursor:pointer;accent-color:var(--accent);}
  .gs-card{position:relative;}
  @media(hover:none){.st-row:hover{background:transparent;}}
  /* 읽기/보기 모드: 입력 잠금 + 버튼 감춤 */
  #settlementForm.st-readonly input,
  #settlementForm.st-readonly select,
  #settlementForm.st-readonly textarea{pointer-events:none;opacity:.85;background:var(--surface-alt)!important;}
  #settlementForm.st-readonly .st-addbtn,
  #settlementForm.st-readonly .st-savebtn,
  #settlementForm.st-readonly .st-delbtn,
  #settlementForm.st-readonly .st-mem-del-btn{display:none!important;}
  #rdStFormWrap.st-readonly input,
  #rdStFormWrap.st-readonly select,
  #rdStFormWrap.st-readonly textarea{pointer-events:none;opacity:.85;background:var(--surface-alt)!important;}
  #rdStFormWrap.st-readonly .st-delbtn,
  #rdStFormWrap.st-readonly .st-mem-del-btn,
  #rdStFormWrap.st-readonly #rdStSaveBtn,
  #rdStFormWrap.st-readonly .rd-st-addbtn{display:none!important;}
  .rd-st-addbtn{margin-top:10px;width:100%;justify-content:center;border:1.5px dashed var(--accent);background:transparent;color:var(--text);font-size:var(--text-sm);font-weight:500;padding:10px 14px;}

  /* =============================================
     시스템 관리 (sysadmin) 페이지
     ============================================= */
  .sa-panel{display:none}
  .sa-panel.active{display:block}

  /* 문의함 (Step 6) — 행 펼침형 목록 */
  .inq-filter-row{display:flex;justify-content:flex-end;margin-bottom:12px}
  .inq-filter-select{font-size:var(--text-sm);padding:6px 26px 6px 12px;background-color:var(--card-bg);border:var(--border-thin) solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer}
  .inq-table{width:100%;border-collapse:collapse;table-layout:fixed}
  .inq-table th{font-size:var(--text-xs);color:var(--text-sub);font-weight:600;text-align:left;padding:8px 10px;border-bottom:var(--border-thin) solid var(--border);background:var(--surface-alt);white-space:nowrap}
  .inq-table td{padding:10px;border-bottom:var(--border-thin) solid var(--row-line);font-size:var(--text-sm);vertical-align:top}
  .inq-row{cursor:pointer;transition:background .12s}
  .inq-row:hover{background:var(--surface-alt)}
  .inq-row.open{background:var(--surface-alt)}
  .inq-col-time{width:90px;color:var(--text-sub);font-size:var(--text-xs);white-space:nowrap}
  .inq-col-user{width:80px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .inq-col-page{width:120px;font-family:monospace;font-size:var(--text-xs);color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .inq-col-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
  .inq-col-status{width:64px;text-align:center}
  .inq-col-act{width:44px;text-align:right;white-space:nowrap}
  .inq-status-pill{font-size:var(--text-xs);padding:2px 8px;border-radius:10px;display:inline-block;white-space:nowrap}
  .inq-status-new{background:var(--color-danger-bg,#fee2e2);color:var(--color-danger,#dc2626)}
  .inq-status-done{background:var(--surface-alt);color:var(--text-sub);border:var(--border-thin) solid var(--border)}
  .inq-act-btn{width:28px;height:28px;background:none;border:none;border-radius:var(--radius-sm,6px);cursor:pointer;color:var(--text-sub);display:inline-flex;align-items:center;justify-content:center}
  .inq-act-btn:hover{color:var(--color-danger,#dc2626);background:rgba(220,38,38,0.1)}
  .inq-act-btn .material-icons{font-size:18px}
  .inq-detail-row td{background:var(--surface-alt);padding:0}
  .inq-detail-box{padding:14px 16px 14px 20px;border-left:2px solid var(--accent)}
  .inq-detail-meta{font-size:var(--text-xs);color:var(--text-sub);font-family:monospace;line-height:1.8;margin-bottom:10px}
  .inq-detail-text{font-size:var(--text-base);color:var(--text);line-height:1.6;margin-bottom:12px;padding:12px 14px;background:var(--card-bg);border:var(--border-thin) solid var(--border);border-radius:var(--radius-md);white-space:pre-wrap;word-break:break-word}
  .inq-detail-acts{display:flex;gap:8px;flex-wrap:wrap}
  .inq-detail-btn{font-size:var(--text-sm);padding:6px 14px;border-radius:var(--radius-md);border:var(--border-thin) solid var(--border);background:transparent;color:var(--text-sub);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
  .inq-detail-btn:hover{background:var(--surface)}
  .inq-detail-btn.primary{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}
  .inq-detail-btn.danger{color:var(--color-danger,#dc2626)}
  .inq-empty{text-align:center;padding:48px 20px;color:var(--text-sub);font-size:var(--text-sm)}
  .inq-empty .material-icons{font-size:42px;opacity:.3;display:block;margin-bottom:10px}

  /* 메뉴 관리 드릴다운 (작업 8-Refactor 카카오톡 스타일) */
  .menu-mgmt-list{background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);overflow:hidden}
  .menu-mgmt-list-header{padding:14px 16px;border-bottom: var(--border-thin) solid var(--row-line)}
  .menu-mgmt-list-title{font-size:var(--text-md);font-weight:700;color:var(--text)}
  .menu-mgmt-list-sub{font-size:var(--text-xs);color:var(--text-sub);margin-top:2px}
  .menu-mgmt-list-row{padding:14px 16px;cursor:pointer;border-bottom: var(--border-thin) solid var(--row-line);transition:background .15s;font-size:var(--text-sm);font-weight:500}
  .menu-mgmt-list-row:last-child{border-bottom:none}
  /* 권한별 행 배경 */
  .menu-mgmt-list-row[data-role="master"]{background:rgba(124,58,237,.05);color:var(--role-master)}
  .menu-mgmt-list-row[data-role="leader"]{background:rgba(11,92,213,.05);color:var(--role-leader)}
  .menu-mgmt-list-row[data-role="vice"]{background:rgba(8,145,178,.05);color:var(--role-vice)}
  .menu-mgmt-list-row[data-role="member"]{background:rgba(22,163,74,.05);color:var(--color-success)}
  .menu-mgmt-list-row[data-role="guest"]{background:rgba(146,64,14,.05);color:#92400e}
  .menu-mgmt-list-row[data-role="master"]:hover{background:rgba(124,58,237,.12)}
  .menu-mgmt-list-row[data-role="leader"]:hover{background:rgba(11,92,213,.12)}
  .menu-mgmt-list-row[data-role="vice"]:hover{background:rgba(8,145,178,.12)}
  .menu-mgmt-list-row[data-role="member"]:hover{background:rgba(22,163,74,.12)}
  .menu-mgmt-list-row[data-role="guest"]:hover{background:rgba(146,64,14,.12)}
  [data-theme="dark"] .menu-mgmt-list-row[data-role="master"]{color:#a78bfa}
  [data-theme="dark"] .menu-mgmt-list-row[data-role="leader"]{color:#60a5fa}
  [data-theme="dark"] .menu-mgmt-list-row[data-role="vice"]{color:var(--role-vice)}
  [data-theme="dark"] .menu-mgmt-list-row[data-role="member"]{color:#4ade80}
  [data-theme="dark"] .menu-mgmt-list-row[data-role="guest"]{color:#fbbf24}

  /* 상세 화면 */
  .menu-mgmt-detail{background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);overflow:hidden}
  .menu-mgmt-detail-header{display:flex;align-items:center;gap: var(--space-8);padding:12px 16px;border-bottom: var(--border-thin) solid var(--row-line)}
  .menu-mgmt-detail-back{cursor:pointer;background:none;border:none;color:var(--text);padding:4px;display:inline-flex;align-items:center;font-family:inherit}
  .menu-mgmt-detail-back:hover{color:var(--accent)}
  .menu-mgmt-detail-back .material-icons{font-size:20px}
  .menu-mgmt-detail-title{font-size:var(--text-md);font-weight:700;color:var(--text)}
  .menu-mgmt-detail-sub{font-size:var(--text-xs);color:var(--text-sub);margin-top:2px}
  .menu-mgmt-group-header{padding:8px 16px;background:var(--surface-alt);border-bottom: var(--border-thin) solid var(--row-line);font-size:var(--text-2xs);color:var(--text-sub);font-weight:500;letter-spacing:.04em}
  .menu-mgmt-item{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap: var(--space-8);border-bottom: var(--border-thin) solid var(--row-line)}
  .menu-mgmt-item:last-child{border-bottom:none}
  .menu-mgmt-item-label{font-size:var(--text-sm);color:var(--text)}
  .menu-mgmt-item-fixed{font-size:var(--text-2xs);color:var(--text-sub);margin-left:6px}

  /* [4-A54 3단계] 메뉴 구조 빌더 */
  .mb-group{border:var(--border-thin) dashed var(--border);border-radius:var(--radius-lg);padding:12px 14px;margin-bottom:12px;background:var(--surface)}
  .mb-group-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
  .mb-group-name{flex:1;height:32px;font-size:var(--text-sm);font-weight:600;background:var(--card-bg);border:0.5px solid var(--border);border-radius:var(--radius);color:var(--text);padding:0 10px}
  .mb-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border:0.5px solid var(--border);border-radius:var(--radius-md);margin-bottom:6px;background:var(--card-bg)}
  .mb-item-icon{font-size:18px;color:var(--text-sub);flex:0 0 auto}
  .mb-item-name{flex:1;min-width:50px;height:30px;font-size:var(--text-sm);background:transparent;border:0.5px solid transparent;border-radius:var(--radius);color:var(--text);padding:0 8px}
  .mb-item-name:focus{border-color:var(--border);background:var(--surface);outline:none}
  .mb-badge{font-size:var(--text-2xs);padding:2px 8px;border-radius:var(--radius);background:var(--color-info-bg,rgba(11,92,213,.12));color:var(--accent);white-space:nowrap;flex:0 0 auto}
  .mb-groupsel{height:30px;font-size:var(--text-2xs);max-width:120px;flex:0 0 auto;background:var(--card-bg);border:0.5px solid var(--border);border-radius:var(--radius);color:var(--text);padding:0 4px}
  .mb-iconbtn{width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:0.5px solid var(--border);border-radius:var(--radius);color:var(--text-sub);cursor:pointer;flex:0 0 auto}
  .mb-iconbtn:hover:not(:disabled){background:var(--surface-alt)}
  .mb-iconbtn:disabled{opacity:.35;cursor:not-allowed}
  .mb-iconbtn .material-icons{font-size:18px}
  .mb-iconbtn.mb-danger{color:var(--color-danger)}
  /* [안2 0611] 빌더 상단 메뉴 미리보기 — 리스트 순서 실시간 반영 */
  .mb-preview{display:flex;align-items:center;gap:4px;overflow-x:auto;padding:8px 12px;margin-bottom:12px;background:var(--surface-alt);border:0.5px solid var(--border);border-radius:var(--radius-md);scrollbar-width:none;-ms-overflow-style:none}
  .mb-preview::-webkit-scrollbar{display:none}
  .mb-pv-label{font-size:var(--text-2xs);color:var(--text-sub);margin-right:6px;flex:0 0 auto;white-space:nowrap}
  .mb-pv-item{padding:4px 10px;border-radius:var(--radius);font-size:var(--text-sm);color:var(--text-sub);white-space:nowrap;flex:0 0 auto}
  .mb-pv-item.is-first{color:var(--text);font-weight:600;background:var(--card-bg);border:0.5px solid var(--border)}
  .mb-pv-item.is-master{opacity:.5}
  .mb-empty{font-size:var(--text-xs);color:var(--text-sub);padding:8px 10px;text-align:center}

  /* 토글 스위치 (작업 8-Pre, 글로벌) */
  .toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex:0 0 36px}
  /* specificity 강화 (0,2,2): perm-table/perm-perm-item input[type=checkbox] (0,2,1) 덮어씀 */
  label.toggle-switch input[type=checkbox]{opacity:0;width:0;height:0;margin:0;accent-color:auto}
  .toggle-switch .toggle-slider{position:absolute;inset:0;cursor:pointer;background:var(--surface-alt);border:0.5px solid var(--border);border-radius:999px;transition:.2s}
  .toggle-switch .toggle-slider::before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:.2s}
  .toggle-switch input:checked + .toggle-slider{background:var(--accent);border-color:var(--accent)}
  .toggle-switch input:checked + .toggle-slider::before{transform:translateX(16px)}
  .toggle-switch input:disabled + .toggle-slider{opacity:.5;cursor:not-allowed}
  /* 권한 매트릭스 */
  .perm-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
  .perm-table th,.perm-table td{padding:5px 18px;border-bottom:1px solid var(--border);text-align:center;vertical-align:middle;box-sizing:border-box}
  .perm-table th{height:50px}
  .perm-table td{height:44px}
  .perm-table th:first-child,.perm-table td:first-child{text-align:left;min-width:150px}
  .perm-table th{background:var(--surface-alt);font-weight:600;font-size:var(--text-xs);color:var(--text-sub);white-space:nowrap}
  .perm-table tbody tr:hover td{background:rgba(0,0,0,.018)}
  [data-theme="dark"] .perm-table tbody tr:hover td{background:rgba(255,255,255,.04)}
  .perm-table td:first-child{font-weight:500;color:var(--text)}
  .perm-table input[type=checkbox]{width:17px;height:17px;cursor:pointer;accent-color:var(--accent)}
  .perm-locked{pointer-events:none;opacity:.5}
  .perm-cell-changed{background:var(--color-warn-bg)!important}
  [data-theme="dark"] .perm-cell-changed{background:rgba(245,158,11,.13)!important}
  .perm-action-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface-alt);border-radius: var(--radius);margin-top:16px;flex-wrap:wrap;gap: var(--space-8)}
  .perm-change-count{font-size:var(--text-sm);color:var(--text-sub)}
  .perm-change-count strong{color:var(--accent);font-weight:700}
  /* [4-A27 step1] 권한/메뉴 단일 뷰화 — 매트릭스/아코디언 분기 제거 */
  /* 권한 역할 아코디언 (모바일) */
  .perm-role-acc{border:1px solid var(--border);border-radius: var(--radius-md);margin-bottom:8px;overflow:hidden}
  .perm-role-acc-head{display:flex;align-items:center;gap: var(--space-10);padding:12px 16px;cursor:pointer;background:var(--card-bg);transition:background .15s;user-select:none}
  .perm-role-acc-head:hover{background:var(--surface-alt)}
  .perm-role-acc-arr{margin-left:auto;font-size:var(--text-2xs);transition:transform .2s;color:var(--text-sub)}
  .perm-role-acc-head.open .perm-role-acc-arr{transform:rotate(90deg)}
  .perm-role-acc-body{max-height:0;overflow:hidden;transition:max-height .3s ease}
  .perm-role-acc-body.open{max-height:700px}
  .perm-perm-item{display:flex;align-items:center;gap: var(--space-10);padding:14px 18px;border-top:1px solid var(--border)}
  /* [4-A23 step4 fix2] 권한 텍스트(span)가 폭 채움, 토글 스위치는 36px 고정 */
  .perm-perm-item > span{flex:1;font-size:var(--text-sm);color:var(--text)}
  .perm-perm-item label.toggle-switch{flex:0 0 36px}
  .perm-perm-item input[type=checkbox]{width:17px;height:17px;cursor:pointer;accent-color:var(--accent);flex-shrink:0}
  /* 공대 카드 그리드 */
  .sa-raid-grid{display:grid;grid-template-columns:repeat(4,1fr);gap: var(--space-16)}
  @media(max-width:1279px){.sa-raid-grid{grid-template-columns:repeat(3,1fr)}}
  @media(max-width:1023px){.sa-raid-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:767px){.sa-raid-grid{grid-template-columns:1fr}}
  .sa-raid-card{background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);overflow:hidden;transition:box-shadow .15s}
  .sa-raid-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.09)}
  .sa-raid-card-head{padding:14px 16px 10px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--border);gap: var(--space-8)}
  .sa-raid-card-title{font-weight:700;font-size:var(--text-md);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sa-raid-card-body{padding:12px 16px}
  .sa-raid-card-meta{display:flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--text-sub);margin-bottom:5px}
  .sa-raid-card-foot{padding:10px 16px;border-top:1px solid var(--border);display:flex;gap: var(--space-6);flex-wrap:wrap}
  .sa-raid-owner{display:flex;align-items:center;gap: var(--space-8);margin-bottom:8px}
  .sa-raid-owner img{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}
  .sa-raid-owner-name{font-size:var(--text-sm);font-weight:500;color:var(--text)}
  /* 스켈레톤 */
  .skeleton{background:linear-gradient(90deg,var(--surface-alt) 25%,var(--border) 50%,var(--surface-alt) 75%);background-size:200% 100%;animation:skeleton-anim 1.4s ease-in-out infinite;border-radius: var(--radius-sm);display:block}
  @keyframes skeleton-anim{0%{background-position:200% 0}100%{background-position:-200% 0}}
  /* 빈 상태 */
  .sa-empty{text-align:center;padding:60px 20px;color:var(--text-sub)}
  .sa-empty-icon{font-size:48px;margin-bottom:12px}
  .sa-empty h3{font-size:var(--text-lg);font-weight:600;margin-bottom:8px;color:var(--text)}
  .sa-empty p{font-size:var(--text-sm);line-height:1.6}
  /* 유저 관리 모바일 카드 */
  .sa-user-cards{display:none}
  @media(max-width:767px){.user-table-wrap{display:none}.sa-user-cards{display:block}}
  .sa-user-card{background:var(--card-bg);border:1px solid var(--border);border-radius: var(--radius-lg);padding:14px 16px;margin-bottom:10px}
  .sa-user-card-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  .sa-user-card-info{flex:1;min-width:0}
  .sa-user-card-name{font-weight:600;font-size:var(--text-base);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .sa-user-card-meta{font-size:var(--text-xs);color:var(--text-sub);margin-top:3px;display:flex;gap:10px;flex-wrap:wrap}
  .sa-user-card-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding-top:8px;border-top:1px solid var(--border);margin-top:8px}
  /* 공대 관리 툴바 */
  .sa-guild-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
  @media(max-width:767px){.sa-guild-toolbar{flex-direction:column;align-items:stretch}}
  .sa-guild-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  /* 준비 중 플레이스홀더 */
  .sa-coming-soon{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:64px 20px;text-align:center}
  .sa-coming-soon .icon{font-size:56px;margin-bottom:16px}
  .sa-coming-soon h3{font-size:var(--text-xl);font-weight:700;margin-bottom:8px;color:var(--text)}
  .sa-coming-soon .sub{font-size:var(--text-sm);color:var(--text-sub);margin-bottom:20px}
  .sa-coming-soon .feature-list{list-style:none;padding:0;text-align:left;max-width:280px;margin:0 auto}
  .sa-coming-soon .feature-list li{font-size:var(--text-sm);color:var(--text-sub);padding:8px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
  .sa-coming-soon .feature-list li:last-child{border-bottom:none}
  .sa-coming-soon .feature-list li::before{content:"•";color:var(--accent)}
  /* 소유자 검색 드롭다운 */
  .sa-owner-search{position:relative}
  .sa-owner-results{position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:10;margin-top:4px;max-height:220px;overflow-y:auto}
  [data-theme="dark"] .sa-owner-results{box-shadow:0 4px 12px rgba(0,0,0,.4)}

  /* ═══════════ [Stage 2] 상단 탭바 — op.gg식 2행 (헤더=1행 / 메뉴=2행). body.topnav, 가역적 ═══════════ */
  body.topnav{--header-h:52px}                                /* 1행(헤더) 높이 52 + 메뉴 sticky offset 동기화 */
  body.topnav .layout{margin-left:0}
  body.topnav .sidebar{display:none}                          /* 좌측 사이드바 전체 숨김 (로고는 헤더로 이동) */
  /* 1행: 헤더 — 로고+브레드크럼(좌) / 메일·테마·프로필(우) */
  body.topnav .header{position:sticky;top:0;z-index:41}
  body.topnav .hamburger{display:none}
  body.topnav #breadcrumb{font-size:var(--text-base)}
  .topnav-logo{display:none}
  body.topnav .topnav-logo{display:flex;align-items:center;gap:8px;cursor:pointer;margin-right:6px;flex-shrink:0}
  body.topnav .topnav-logo img{width:26px;height:26px;border-radius:var(--radius);object-fit:cover}
  body.topnav .topnav-logo .topnav-logo-text{font-size:var(--text-base);font-weight:800;color:var(--text);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
  /* [N6] CBT는 서비스명 일부처럼 읽히지 않게 칩으로 분리. 정식 오픈 시 이 span만 제거 */
  body.topnav .topnav-logo .topnav-logo-tag{display:inline-flex;align-items:center;justify-content:center;text-align:center;height:16px;padding:1px 7px 0;box-sizing:border-box;/* 한글 글리프가 em박스 상단에 앉아 1px 높아 보임 — 광학 보정 */font-size:10px;font-weight:700;line-height:1;letter-spacing:.4px;border-radius:999px;background:var(--accent-light);color:var(--accent);flex:0 0 auto;position:relative;top:0}
  /* 2행: 메뉴 탭바 (헤더 바로 아래 sticky) */
  body.topnav .sidebar-nav{display:flex;flex:none;flex-direction:row;align-items:stretch;justify-content:flex-start;gap:2px;height:52px;padding:0 max(16px, calc((100% - 1200px) / 2 + 24px));margin:0;background:var(--sidebar-bg);border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;position:sticky;top:var(--header-h);z-index:40;scrollbar-width:none;-ms-overflow-style:none}
  body.topnav .sidebar-nav::-webkit-scrollbar{display:none}
  body.topnav .sidebar-nav .nav-section{display:none}          /* 그룹 라벨 평탄화 */
  body.topnav #navToolsSection{display:none}
  /* 시스템관리(navSysAdmin): fixedMaster 항목 → body.is-master일 때만 표시.
     navAdminSection 컨테이너로 안 감싸지는 경로(손님/회원 폴백)에서도 id 직접 게이트로 차단. */
  body.topnav #navSysAdmin{display:none !important}
  body.topnav.is-master #navSysAdmin{display:flex !important}
  body.topnav #navAdminSection{display:none !important}
  body.topnav #navAdminSection > .nav-item{display:none !important}
  body.topnav.is-master #navAdminSection{display:flex !important;align-items:stretch;gap:2px}
  body.topnav.is-master #navAdminSection > .nav-item{display:flex !important}
  body.topnav .sidebar-nav .nav-item{flex-direction:row;align-items:center;height:52px;padding:0 13px;margin:0;border-radius:0;border-bottom:2px solid transparent;background:transparent;white-space:nowrap;gap:6px;font-size:var(--text-base)}
  body.topnav .sidebar-nav .nav-item:hover{background:var(--sidebar-hover)}
  body.topnav .sidebar-nav .nav-item.active{background:transparent;color:var(--accent);border-bottom-color:var(--accent);font-weight:700}
  body.topnav .sidebar-nav .nav-item .nav-icon{display:none}
  body.topnav .sidebar-nav .nav-item .nav-icon .material-icons{font-size:18px}
  body.topnav .sidebar-nav .nav-item .nav-label{display:inline}
  body.topnav .sidebar-nav .nav-badge{position:static;margin-left:2px}
  /* 본문 가운데 정렬 (양옆 여백 = 광고 레일 자리) */
  body.topnav .main{max-width:1120px;width:100%;margin:0 auto}

  /* ─ [Stage 2] 모바일 상단 탭바 — 헤더 로고+유틸 한 줄 / 탭바 손가락 가로 스크롤 ─ */
  @media (max-width: 768px) {
    body.topnav .header{height:var(--header-h);padding:0 12px}   /* 모바일 헤더도 52px 통일 */
    body.topnav .mobile-page-title{display:none}                 /* 로고+탭바 있으니 페이지 타이틀 숨김 */
    body.topnav .sidebar-nav{padding:0 16px;top:var(--header-h)}
    body.topnav .sidebar-nav .nav-item{flex-shrink:0;padding:0 11px;font-size:14px}  /* 안 줄어들고 넘치면 스크롤 */
    body.topnav .sidebar-nav .nav-item .nav-label{display:inline}
    /* [N6] 768px에서 숨기던 규칙 제거 — 실측 폭 합계 약 293px로 360px 뷰포트에도 들어감 */
    body.topnav .topnav-logo .topnav-logo-text{font-size:14px}
    body.topnav .topnav-logo{margin-right:2px}
  }
  /* 초협소 단말(<360px)에서만 아이콘 단독 */
  @media (max-width: 359px){
    body.topnav .topnav-logo .topnav-logo-text{display:none}
  }


/* ═══════════ 아이템 검색 오버레이 (메랜지지식) ═══════════
   body 직속 position:fixed — filter-bar의 overflow-x:auto 클리핑을 피하기 위한 구조.
   절대 filter-bar 자식으로 되돌리지 말 것 (모바일에서 통째로 잘림). */
#itemSearchOv{position:fixed;z-index:2000;display:none;box-sizing:border-box;
  background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);
  box-shadow:0 12px 32px rgba(0,0,0,.35);overflow:hidden;}
#itemSearchOv .iov-head{display:none;}
#itemSearchOv .iov-body{display:flex;gap:20px;padding:16px;}
#itemSearchOv .iov-sec{flex:1;min-width:0;}
#itemSearchOv #itemOvResWrap{flex:1 1 100%;}
#itemSearchOv .iov-sec h4{display:flex;justify-content:space-between;align-items:center;gap:8px;
  margin:0 0 10px;font-size:var(--text-xs);font-weight:600;color:var(--text-sub);}
#itemSearchOv .iov-sec h4 span{font-weight:400;}
#itemSearchOv .iov-sec h4 button{background:none;border:none;color:var(--text-sub);
  font-size:var(--text-2xs);cursor:pointer;font-family:inherit;padding:0;}
#itemSearchOv .iov-row{display:flex;align-items:center;gap:10px;padding:8px 10px;
  border-radius:var(--radius);cursor:pointer;font-size:var(--text-base);}
#itemSearchOv .iov-row:hover{background:var(--surface);}
#itemSearchOv .iov-row img{width:32px;height:32px;image-rendering:pixelated;flex:0 0 auto;}
#itemSearchOv .iov-row .iov-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);}
#itemSearchOv .iov-row .iov-fav{margin-left:auto;cursor:pointer;font-size:17px;line-height:1;flex:0 0 auto;}
#itemSearchOv .iov-empty{color:var(--text-sub);font-size:var(--text-xs);text-align:center;padding:16px 0;}
/* [AC1] 검색 결과 8행(48px×8=384) 초과 시 결과 섹션만 2차 스크롤 + 커스텀 스크롤바(오버레이 스코프) */
#itemSearchOv #itemOvResult{max-height:384px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;}
#itemSearchOv ::-webkit-scrollbar{width:6px}
#itemSearchOv ::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:999px}
#itemSearchOv ::-webkit-scrollbar-thumb:hover{background-color:var(--text-sub)}
#itemSearchOv ::-webkit-scrollbar-track{background-color:transparent}

@media (max-width:768px){
  /* 모바일: 전체화면 모달 + 자체 입력창 (페이지 입력은 키보드에 가려 못 씀) */
  #itemSearchOv.iov-full{left:0 !important;top:0 !important;width:100% !important;
    height:100vh;height:100dvh;border:none;border-radius:0;box-shadow:none;}
  #itemSearchOv.iov-full .iov-head{display:flex;align-items:center;gap:8px;
    padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface);box-sizing:border-box;}
  #itemSearchOv.iov-full #itemOvInput{flex:1 1 auto;min-width:0;height:44px;padding:0 12px;
    border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);
    color:var(--text);font-size:16px;font-family:inherit;box-sizing:border-box;}
  #itemSearchOv.iov-full #itemOvInput:focus{outline:none;border-color:var(--accent);}
  #itemSearchOv.iov-full .iov-esc{flex:0 0 auto;height:36px;padding:0 12px;
    border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);
    color:var(--text-sub);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;}
  #itemSearchOv.iov-full .iov-body{flex-direction:column;gap:18px;padding:14px;
    height:calc(100% - 69px);overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;}
  #itemSearchOv.iov-full .iov-row{padding:10px;font-size:16px;}
  #itemSearchOv.iov-full .iov-row img{width:36px;height:36px;}
}

/* ===== 게시판 ===== */
.brd-toolbar { display:flex; align-items:center; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.brd-tabs { display:flex; gap:6px; }
.brd-tab { padding:6px 16px; border:1px solid var(--border); border-radius:var(--radius-xl); background:#fff; color:var(--text-sub); font-size:var(--text-sm); font-weight:500; cursor:pointer; transition:.15s; font-family:inherit; }
.brd-tab:hover { border-color:var(--accent); color:var(--accent); }
.brd-tab.active { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:700; }
[data-theme="dark"] .brd-tab { background:var(--surface); }
.brd-toolbar-right { margin-left:auto; display:flex; align-items:center; gap:8px; }
.brd-search-wrap { position:relative; }
.brd-search-ico { position:absolute; left:11px; top:50%; transform:translateY(-50%); font-size:17px; color:var(--text-sub); pointer-events:none; }
.brd-search-wrap input { width:180px; padding:7px 12px 7px 34px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--card-bg); color:var(--text); font-size:var(--text-sm); font-family:inherit; box-sizing:border-box; outline:none; }
.brd-search-wrap input:focus { border-color:var(--accent); }
.brd-write-btn { padding:7px 16px; border:none; border-radius:var(--radius-md); background:var(--accent); color:#fff; font-size:var(--text-sm); font-weight:600; cursor:pointer; font-family:inherit; transition:.15s; white-space:nowrap; }
.brd-write-btn:hover { filter:brightness(1.08); }
.brd-table { border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.brd-head, .brd-row { display:flex; align-items:center; gap:10px; padding:11px 14px; }
.brd-head { background:var(--surface); border-bottom:1px solid var(--border); font-size:var(--text-xs); color:var(--text-sub); }
.brd-row { border-bottom:1px solid var(--border); cursor:pointer; transition:background .12s; }
.brd-row:last-child { border-bottom:none; }
.brd-row:hover { background:var(--accent-light); }
.brd-c-no   { width:36px; flex-shrink:0; text-align:center; font-size:var(--text-sm); color:var(--text-sub); }
.brd-c-type { width:40px; flex-shrink:0; display:flex; justify-content:center; }
.brd-c-job  { width:66px; flex-shrink:0; display:flex; justify-content:center; }
.brd-c-title{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--text-sm); color:var(--text); }
.brd-c-author{ width:148px; flex-shrink:0; font-size:var(--text-sm); color:var(--text-sub); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brd-author-cell{ display:inline-flex; align-items:center; gap:8px; min-width:0; max-width:100%; }
.brd-author-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brd-c-date { width:92px; flex-shrink:0; text-align:center; font-size:var(--text-xs); color:var(--text-sub); white-space:nowrap; }
.brd-date-rel { display:none; }
.brd-sort-select { background-color:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:8px; padding:7px 26px 7px 10px; font-size:var(--text-sm); font-family:inherit; cursor:pointer; }
.brd-c-view { width:46px; flex-shrink:0; text-align:center; font-size:var(--text-xs); color:var(--text-sub); white-space:nowrap; }
.brd-c-vote { width:52px; flex-shrink:0; text-align:center; font-size:var(--text-xs); font-weight:700; color:var(--text-sub); white-space:nowrap; }
.brd-c-lastcomment { display:none; }
.brd-head .brd-c-date, .brd-head .brd-c-view, .brd-head .brd-c-vote { display:inline-flex; align-items:center; justify-content:center; gap:1px; }
.brd-c-vote.pos { color:#e6a23c; }
.brd-c-vote.neg { color:#e05260; }
.brd-type { font-size:var(--text-xs); padding:2px 8px; border-radius:var(--radius-xl); white-space:nowrap; font-weight:600; }
.brd-type-recruit { background:#faeeda; color:#854f0b; }
.brd-type-seek    { background:#eaf3de; color:#3b6d11; }
.brd-type-free    { background:#eef0f3; color:#5a6270; }
[data-theme="dark"] .brd-type-recruit { background:#3a2c12; color:#e6a23c; }
[data-theme="dark"] .brd-type-seek    { background:#1d3010; color:#a3d977; }
[data-theme="dark"] .brd-type-free    { background:rgba(255,255,255,.1); color:#c3c8d0; }
.brd-job { font-size:var(--text-xs); padding:2px 8px; border-radius:var(--radius-xl); white-space:nowrap; }
.brd-job-red   { background:#fcebeb; color:#a32d2d; }
.brd-job-blue  { background:#e6f1fb; color:#185fa5; }
.brd-job-green { background:#eaf3de; color:#3b6d11; }
.brd-job-purple{ background:#eeedfe; color:#3c3489; }
.brd-job-amber { background:#faeeda; color:#854f0b; }
.brd-job-gray  { background:var(--surface); color:var(--text-sub); }
.brd-job-mono  { background:var(--surface); color:#1a1a1a; border:1px solid var(--border); }
[data-theme="dark"] .brd-job-mono { background:var(--surface); color:#f5f5f5; }
[data-theme="dark"] .brd-job-red   { background:#3a1818; color:#f08c8c; }
[data-theme="dark"] .brd-job-blue  { background:#13314f; color:#60a5fa; }
[data-theme="dark"] .brd-job-green { background:#1d3010; color:#a3d977; }
[data-theme="dark"] .brd-job-purple{ background:#241f47; color:#aaa2f0; }
[data-theme="dark"] .brd-job-amber { background:#3a2c12; color:#e6a23c; }
.brd-cc { color:var(--accent); font-size:var(--text-xs); }
@media (max-width:640px){
  /* 탭: 가로 스크롤(글자 세로 쪼개짐 방지) */
  .brd-tabs { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .brd-tabs::-webkit-scrollbar { display:none; }
  .brd-tab { white-space:nowrap; flex:0 0 auto; padding:6px 14px; }

  /* ── 테이블 → SNS 피드 카드 (스레드/인스타 스타일) ── */
  .brd-table { border:none; border-radius:0; overflow:visible; }
  .brd-head { display:none; }                 /* 헤더줄 제거 */
  .brd-c-no { display:none; }                  /* 번호 제거 */

  .brd-row { flex-wrap:wrap; align-items:center; gap:0 8px; padding:14px 2px; }
  .brd-row:not(:last-child) { border-bottom:1px solid var(--border); }

  /* 1행: 아바타+글쓴이(좌) · 시간(우) */
  .brd-c-author { order:1; width:auto; flex:1 1 auto; font-size:var(--text-sm); color:var(--text); }
  .brd-author-cell { gap:8px; }
  .brd-author-name { font-weight:600; color:var(--text); }
  .brd-c-date { order:2; width:auto; margin-left:auto; font-size:var(--text-xs); color:var(--text-sub); }
  .brd-date-full { display:none; }
  .brd-date-rel { display:inline; }

  /* 2행: 말머리 · 직업 칩 (가운데 정렬) */
  .brd-c-type { order:3; width:auto; margin-top:8px; }
  .brd-c-job  { order:4; width:auto; margin-top:8px; }
  .brd-c-type, .brd-c-job { display:flex; align-items:center; justify-content:center; }

  /* 정렬 드롭다운 모바일 폭 */
  .brd-sort-select { flex:0 0 auto; }

  /* 3행: 제목(본문처럼 크게, 줄바꿈 허용) */
  .brd-c-title { order:5; flex-basis:100%; white-space:normal; line-height:1.4; font-size:var(--text-base); font-weight:600; color:var(--text); margin-top:6px; }

  /* 4행: 메타(추천·조회) 작게 회색 — 라벨 ::before로 부여 */
  .brd-c-vote { order:6; width:auto; font-size:var(--text-xs); margin-top:8px; }
  .brd-c-view { order:7; width:auto; font-size:var(--text-xs); color:var(--text-sub); margin-top:8px; }
  .brd-c-vote::before { content:"추천 "; }
  .brd-c-view::before { content:"· 조회 "; }

  /* 5행: 최근 댓글 미리보기(인스타 피드 스타일) */
  .brd-c-lastcomment { order:8; display:flex; align-items:center; gap:5px; flex-basis:100%; margin-top:8px; font-size:var(--text-sm); color:var(--text-sub); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .brd-c-lastcomment .material-icons { font-size:15px; flex-shrink:0; }
  .brd-c-lastcomment b { color:var(--text); font-weight:600; margin-right:2px; }
}

/* 게시판 글쓰기 */
.brd-write-head { display:flex; align-items:center; gap:12px; padding-bottom:14px; margin-bottom:16px; border-bottom:1px solid var(--border); }
.brd-back-btn { background:none; border:none; color:var(--text-sub); font-size:var(--text-sm); cursor:pointer; font-family:inherit; padding:0; }
.brd-back-btn:hover { color:var(--accent); }
.brd-write-title { font-size:var(--text-md); font-weight:600; color:var(--text); }
.brd-write-body { display:flex; flex-direction:column; gap:16px; }
.brd-write-meta { display:flex; gap:10px; align-items:flex-end; }
.brd-field { display:flex; flex-direction:column; gap:5px; }
.brd-field label { font-size:var(--text-xs); color:var(--text-sub); }
.brd-field input, .brd-field select, .brd-w-title { padding:9px 12px; border:1px solid var(--border); border-radius:var(--radius-md); background-color:var(--card-bg); color:var(--text); font-size:var(--text-sm); font-family:inherit; box-sizing:border-box; width:100%; }
.brd-field select { padding-right:30px; }
.brd-w-title { font-size:var(--text-md); }
.brd-field input:focus, .brd-field select:focus, .brd-w-title:focus { outline:none; border-color:var(--accent); }
.brd-chips { display:flex; gap:8px; }
.brd-chip { padding:7px 22px; border:1px solid var(--border); border-radius:var(--radius-xl); background:var(--card-bg); color:var(--text-sub); font-size:var(--text-sm); font-weight:500; cursor:pointer; font-family:inherit; transition:.15s; }
.brd-chip:hover { border-color:var(--accent); }
.brd-chip.active { border-color:var(--accent); background:var(--accent); color:#fff; font-weight:700; }
.brd-write-actions { display:flex; justify-content:flex-end; gap:8px; }
.brd-btn-cancel { padding:9px 22px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--card-bg); color:var(--text-sub); font-size:var(--text-sm); cursor:pointer; font-family:inherit; }
.brd-btn-submit { padding:9px 28px; border:none; border-radius:var(--radius-md); background:var(--accent); color:#fff; font-size:var(--text-sm); font-weight:600; cursor:pointer; font-family:inherit; }
.brd-btn-submit:disabled { opacity:.6; cursor:default; }
@media (max-width:640px){ .brd-write-meta { flex-wrap:wrap; } .brd-write-meta .brd-field { flex:1 1 100%; width:auto !important; } }

/* 게시판 상세 */
.brd-detail-head { padding:18px 20px 16px; border-bottom:1px solid rgba(0,0,0,.12); margin-bottom:0; }
.brd-detail-tags { display:flex; gap:6px; margin-bottom:10px; }
.brd-detail-title { font-size:var(--text-lg); font-weight:700; color:var(--text); margin:0 0 10px; line-height:1.4; }
.brd-detail-meta { display:flex; align-items:center; gap:10px; font-size:var(--text-sm); color:var(--text-sub); }
.brd-detail-meta .brd-author-cell { font-size:var(--text-sm); color:var(--text); }
.brd-detail-metainfo { font-size:var(--text-xs); color:var(--text-sub); }
.brd-detail-dot { opacity:.5; }
.brd-detail-body { padding:22px 20px; font-size:var(--text-sm); color:var(--text); line-height:1.7; min-height:160px; word-break:break-word; border-bottom:1px solid rgba(0,0,0,.12); }
.brd-detail-body img { max-width:100%; height:auto; border-radius:var(--radius-md); }
.brd-detail-body h1, .brd-detail-body h2, .brd-detail-body h3 { color:var(--text); margin:18px 0 8px; }
.brd-detail-body p { margin:0 0 10px; }
.brd-detail-body a { color:var(--accent); }
.brd-detail-body table { border-collapse:collapse; margin:10px 0; }
.brd-detail-body th, .brd-detail-body td { border:1px solid var(--border); padding:6px 10px; }
.brd-detail-body blockquote { border-left:3px solid var(--border); padding-left:12px; color:var(--text-sub); margin:10px 0; }

/* Toast UI Editor 다크모드 강제 (배경 검정 계열) */
[data-theme="dark"] .toastui-editor-defaultUI { border-color:var(--border); }
[data-theme="dark"] .toastui-editor-defaultUI .toastui-editor-toolbar { background:#1a1c20; border-color:var(--border); }
[data-theme="dark"] .toastui-editor-toolbar-icons { border-color:var(--border); filter:invert(0.85); }
[data-theme="dark"] .toastui-editor-defaultUI-toolbar { background:#1a1c20; border-bottom:1px solid var(--border); }
[data-theme="dark"] .toastui-editor-main .toastui-editor-md-container,
[data-theme="dark"] .toastui-editor-main .toastui-editor-ww-container { background:#16181c; }
[data-theme="dark"] .toastui-editor-contents,
[data-theme="dark"] .toastui-editor-md-preview,
[data-theme="dark"] .toastui-editor .ProseMirror,
[data-theme="dark"] .toastui-editor-md-container .toastui-editor,
[data-theme="dark"] .toastui-editor-md-container .CodeMirror { background:#16181c !important; color:#e8e8e8 !important; }
[data-theme="dark"] .toastui-editor-contents p,
[data-theme="dark"] .toastui-editor-contents h1,
[data-theme="dark"] .toastui-editor-contents h2,
[data-theme="dark"] .toastui-editor-contents h3 { color:#e8e8e8 !important; }
[data-theme="dark"] .toastui-editor-mode-switch { background:#1a1c20; border-top:1px solid var(--border); }
[data-theme="dark"] .toastui-editor-mode-switch .tab-item { background:#1a1c20; color:var(--text-sub); border-color:var(--border); }
[data-theme="dark"] .toastui-editor-mode-switch .tab-item.active { background:#16181c; color:#e8e8e8; }
[data-theme="dark"] .toastui-editor-toolbar-group { border-color:var(--border); }
[data-theme="dark"] .toastui-editor-defaultUI .ProseMirror .placeholder { color:#666 !important; }

/* 게시판 댓글 */
.brd-comments { margin-top:0; padding:16px 20px 20px; }
.brd-comments-head { font-size:var(--text-sm); font-weight:700; color:var(--text); margin-bottom:14px; }
.brd-comment-empty { font-size:var(--text-sm); color:var(--text-sub); padding:14px 0; text-align:center; }
.brd-comment { display:flex; gap:10px; padding:12px 0; border-bottom:1px solid var(--border); }
.brd-comment:last-of-type { border-bottom:none; }
.brd-comment-av { flex-shrink:0; }
.brd-comment-main { flex:1; min-width:0; }
.brd-comment-meta { display:flex; align-items:center; gap:8px; margin-bottom:8px; padding-bottom:8px; border-bottom:1px solid rgba(0,0,0,.08); }
.brd-comment-author { font-size:var(--text-sm); font-weight:600; color:var(--text); }
.brd-comment-date { font-size:var(--text-xs); color:var(--text-sub); }
/* 메타: 추천 따봉+숫자만 우측 상단으로 */
.brd-comment-meta-actions { margin-left:auto; display:inline-flex; align-items:center; gap:6px; }
/* 본문 아래 액션바: 답글 · 신고 · 삭제 (폰트 통일) */
.brd-comment-actions { display:flex; align-items:center; gap:14px; margin-top:8px; }
.brd-comment-act { background:none; border:none; color:var(--text-sub); font-size:var(--text-xs); font-weight:600; cursor:pointer; font-family:inherit; padding:0; }
.brd-comment-act:hover { color:var(--accent); }
.brd-comment-act-del:hover { color:var(--color-danger); }
/* 삭제된 댓글 placeholder */
.brd-comment-deleted { justify-content:center; }
.brd-comment-deleted-msg { width:100%; text-align:center; font-size:var(--text-sm); color:var(--text-sub); background:var(--accent-light); border-radius:8px; padding:12px 0; }
[data-theme="dark"] .brd-comment-deleted-msg { background:rgba(255,255,255,.05); }
/* 대댓글 들여쓰기 + 연결선 */
.brd-comment.is-reply { position:relative; border-bottom:none; padding:10px 0; }
.brd-comment.is-reply::before { content:''; position:absolute; left:-13px; top:0; bottom:50%; width:2px; background:var(--border); }
[data-theme="dark"] .brd-comment.is-reply::before { background:rgba(255,255,255,.12); }
/* 답글 입력폼 */
.brd-reply-form { margin-top:10px; }
/* 댓글 추천 따봉 + 카운트 */
.brd-comment-pop { display:inline-flex; align-items:center; gap:10px; }
.brd-cpop-btn { display:inline-flex; align-items:center; gap:4px; border:none; background:none; color:var(--text-sub); cursor:pointer; padding:0; font-family:inherit; transition:color .1s, transform .1s; }
.brd-cpop-btn .material-icons { font-size:17px; }
.brd-cpop-n { font-size:var(--text-xs); font-weight:700; }
.brd-cpop-btn:active { transform:translateY(1px); }
.brd-cpop-btn:disabled { opacity:.45; cursor:not-allowed; }
/* hover 미리보기: 추천=파랑, 비추=빨강 */
.brd-cpop-up:hover:not(:disabled) { color:var(--accent); }
.brd-cpop-down:hover:not(:disabled) { color:var(--color-danger); }
/* 투표됨: 추천=파랑, 비추=빨강 */
.brd-cpop-up.voted { color:var(--accent); }
.brd-cpop-down.voted { color:var(--color-danger); }
.brd-cpop-val { font-size:var(--text-sm); font-weight:700; min-width:18px; text-align:center; color:var(--text-sub); }
.brd-cpop-val.pos { color:#e6a23c; }
.brd-cpop-val.neg { color:#e05260; }
/* BEST 댓글 */
.brd-comment-best { font-size:var(--text-xs); font-weight:800; color:#fff; background:linear-gradient(135deg,#f6a532,#e6852c); padding:2px 7px; border-radius:5px; letter-spacing:.3px; }
.brd-comment-op { font-size:var(--text-xs); font-weight:700; color:#2563c9; background:linear-gradient(transparent 55%, rgba(64,140,255,.45) 55%); padding:0 3px; }
[data-theme="dark"] .brd-comment-op { color:#7eb6ff; background:linear-gradient(transparent 55%, rgba(64,140,255,.35) 55%); }
.brd-comment.is-best { background:rgba(246,165,50,.06); border-radius:10px; padding:10px; margin:0 -10px; }
[data-theme="dark"] .brd-comment.is-best { background:rgba(246,165,50,.09); }
.brd-comment-body { font-size:var(--text-sm); color:var(--text); line-height:1.6; word-break:break-word; }
.brd-comment-form { margin-top:18px; padding-top:18px; border-top:1px solid rgba(0,0,0,.12); }
[data-theme="dark"] .brd-comment-form { border-top-color:rgba(255,255,255,.18); }
.brd-comment-form-title { font-size:var(--text-sm); font-weight:700; color:var(--text); margin-bottom:10px; }
.brd-comment-name-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.brd-comment-name { width:160px; padding:8px 12px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--card-bg); color:var(--text); font-size:var(--text-sm); font-family:inherit; box-sizing:border-box; }
/* 비회원 댓글 안내 */
.brd-comment-guest { margin-top:18px; padding:28px 0; display:flex; flex-direction:column; align-items:center; gap:14px; background:var(--surface); border-radius:var(--radius-md); }
.brd-comment-guest-msg { font-size:var(--text-sm); color:var(--text-sub); }
.brd-comment-guest-btn { display:inline-flex; align-items:center; gap:6px; padding:9px 22px; border:none; border-radius:var(--radius-md); background:var(--accent); color:#fff; font-size:var(--text-sm); font-weight:700; cursor:pointer; font-family:inherit; }
.brd-comment-guest-btn:hover { filter:brightness(1.08); }
.brd-comment-input-row { display:flex; gap:8px; align-items:stretch; }
.brd-comment-text { flex:1; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--card-bg); color:var(--text); font-size:var(--text-sm); font-family:inherit; box-sizing:border-box; resize:none; min-height:42px; max-height:160px; overflow-y:hidden; line-height:1.5; }
.brd-comment-name:focus, .brd-comment-text:focus { outline:none; border-color:var(--accent); }
.brd-comment-submit { flex-shrink:0; padding:0 22px; border:none; border-radius:var(--radius-md); background:var(--accent); color:#fff; font-size:var(--text-sm); font-weight:600; cursor:pointer; font-family:inherit; }

/* 게시판 상세 재설계 (목업 반영) */
#brdDetailView { padding:0; overflow:hidden; border:1px solid rgba(0,0,0,.12); }
[data-theme="dark"] #brdDetailView { border-color:rgba(255,255,255,.18); }
.brd-detail-topbar { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid rgba(0,0,0,.12); background:var(--surface); border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
.brd-detail-actions { display:flex; gap:6px; }
.brd-d-edit, .brd-d-del { font-size:var(--text-xs); padding:6px 12px; border-radius:var(--radius-md); border:1px solid var(--border); background:var(--card-bg); color:var(--text-sub); cursor:pointer; font-family:inherit; display:inline-flex; align-items:center; gap:3px; }
.brd-d-edit:hover { border-color:var(--accent); color:var(--accent); }
.brd-d-del { border-color:rgba(224,82,96,.4); background:transparent; color:#e05260; }
.brd-d-del:hover { border-color:#e05260; }
.brd-detail-metainfo { display:inline-flex; align-items:center; gap:6px; }
[data-theme="dark"] .brd-detail-topbar { border-bottom-color:rgba(255,255,255,.22); }
[data-theme="dark"] .brd-detail-head { border-bottom-color:rgba(255,255,255,.22); }
[data-theme="dark"] .brd-detail-body { border-bottom-color:rgba(255,255,255,.22); }
[data-theme="dark"] .brd-comment { border-top-color:rgba(255,255,255,.12); }
[data-theme="dark"] .brd-comment-meta { border-bottom-color:rgba(255,255,255,.1); }

/* 게시판 정렬 헤더 + 하단 검색 */
.brd-sortable { cursor:pointer; user-select:none; white-space:nowrap; }
.brd-sortable:hover { color:var(--text); }
.brd-ar { transition:opacity .15s; }

/* 게시판 인기도 (메이플 인기도창 가로 콤보) */
.brd-pop { display:flex; align-items:center; justify-content:center; gap:10px; padding:18px 0; }
.brd-pop-label { font-size:var(--text-sm); color:var(--text-sub); font-weight:500; }
.brd-pop-val { font-size:var(--text-lg); font-weight:700; min-width:36px; text-align:center; line-height:1; }
.brd-pop-btns { display:flex; gap:8px; }
.brd-pop-btn { display:inline-flex; align-items:center; justify-content:center; border:none; background:none; color:var(--text-sub); cursor:pointer; padding:2px; transition:color .1s, transform .1s; }
.brd-pop-btn .material-icons { font-size:22px; }
.brd-pop-btn:active { transform:translateY(1px); }
.brd-pop-up:hover:not(.voted) { color:var(--accent); }
.brd-pop-down:hover:not(.voted) { color:var(--color-danger); }
.brd-pop-up.voted { color:var(--accent); }
.brd-pop-down.voted { color:var(--color-danger); }
.brd-pop-self .brd-pop-btn { opacity:.4; cursor:not-allowed; pointer-events:none; }
.brd-pop-btn:disabled { opacity:.4; cursor:not-allowed; }
/* 글 신고 줄 (추천 아래) */
.brd-pop-report-row { display:flex; justify-content:center; padding-bottom:18px; border-bottom:1px solid rgba(0,0,0,.12); }
[data-theme="dark"] .brd-pop-report-row { border-bottom-color:rgba(255,255,255,.18); }
.brd-pop-report { background:none; border:none; color:var(--text-sub); font-size:var(--text-xs); font-weight:600; cursor:pointer; font-family:inherit; padding:4px 8px; }
.brd-pop-report:hover { color:var(--color-danger); }

/* 자기 글 인기도 버튼 비활성 */
.brd-pop-self .brd-pop-btn { opacity:.4; cursor:not-allowed; pointer-events:none; }
.brd-pop-btn:disabled { opacity:.4; cursor:not-allowed; }

/* 게시판 툴바 모바일 */
@media (max-width:640px){
  .brd-toolbar-right { width:100%; margin-left:0; }
  .brd-search-wrap { flex:1; }
  .brd-search-wrap input { width:100%; }
}

/* 프로필 모달 뱃지 (닉네임 앞) */
.dp-badge { margin-right:5px; font-size:1.05em; vertical-align:middle; line-height:1; }
/* 프로필 모달 인기도 투표 버튼 */
.dp-pop-btns { display:inline-flex; gap:3px; margin-left:4px; }
.dp-pop-btn { width:24px; height:24px; display:flex; align-items:center; justify-content:center; border:1px solid #c77a16; border-radius:5px; background:#f6a532; color:#5a3408; cursor:pointer; padding:0; transition:.1s; box-shadow:inset 0 1px 0 rgba(255,255,255,.4); }
.dp-pop-btn .material-icons { font-size:20px; }
.dp-pop-btn:hover:not(.voted):not(:disabled) { background:#ffb84d; }
.dp-pop-btn:active { transform:translateY(1px); box-shadow:none; }
.dp-pop-btn.voted { background:#8a8f99; border-color:#5f636b; color:#fff; box-shadow:inset 0 1px 3px rgba(0,0,0,.3); }
.dp-pop-btn.voted:hover { background:#7a7f88; }
.dp-pop-btn:disabled { opacity:.4; cursor:not-allowed; }
[data-theme="dark"] .dp-pop-btn { background:#e09528; border-color:#8a5410; color:#2a1804; }
[data-theme="dark"] .dp-pop-btn.voted { background:#5a5f68; border-color:#3a3e45; color:#cfd3da; }

  /* ===== 메인 히어로 (op.gg식 통합검색 + 모집 중 파티 미리보기) ===== */
  #page-dashboard{max-width:1040px;width:100%;margin-left:auto;margin-right:auto}  /* 메인 내용 폭 — 풀폭 배너 휑함 완화 */
  #page-dashboard .mh-hero{display:flex;flex-direction:column;align-items:center;gap:12px;background:transparent;border:none;border-radius:0;padding:12px 0 20px;margin-bottom:16px}
  #page-dashboard .mh-brand{display:flex;align-items:center;gap:10px}
  #page-dashboard .mh-logo{width:44px;height:44px;border-radius:10px;object-fit:cover}
  #page-dashboard .mh-title{font-size:30px;font-weight:800;letter-spacing:-0.5px;color:var(--text)}
  #page-dashboard .mh-tagline{margin:0;font-size:var(--text-sm);color:var(--text-sub)}
  /* op.gg식 통합 알약: 테두리 하나 + 내부 구분선, 버튼은 .GG 텍스트 */
  /* op.gg식 2줄 칸(라벨+값) 통합 알약 + .GG + AI칩 */
  #page-dashboard .mh-searchbar{display:flex;align-items:stretch;gap:0;width:100%;max-width:600px;margin-top:6px;border:var(--border-thin) solid var(--border);border-radius:14px;background:var(--card-bg);overflow:hidden;transition:border-color .15s}
  #page-dashboard .mh-searchbar:focus-within{border-color:var(--accent)}
  #page-dashboard .mh-field{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:9px 16px;text-align:left}
  #page-dashboard .mh-field-game{flex:0 0 auto;border-right:var(--border-thin) solid var(--border)}
  #page-dashboard .mh-field-search{flex:1;min-width:0}
  #page-dashboard .mh-field-label{font-size:var(--text-2xs);font-weight:700;color:var(--text-sub);line-height:1;white-space:nowrap;pointer-events:none}
  #page-dashboard .mh-game{border:none;background:transparent;color:var(--text);font-size:var(--text-sm);font-weight:600;cursor:pointer;outline:none;padding:0;margin:0}
  #page-dashboard .mh-field-search input{width:100%;border:none;background:transparent;color:var(--text);font-size:var(--text-md);outline:none;box-sizing:border-box;padding:0}   /* [ST15R] #page-items .it-field input(1281)과 값 통일 — 한쪽만 바꾸지 말 것 */
  #page-dashboard .mh-search-btn{flex-shrink:0;display:flex;align-items:center;padding:0 22px;border:none;border-left:var(--border-thin) solid var(--border);background:transparent;color:var(--accent);font-weight:800;font-size:var(--text-md);letter-spacing:-0.5px;cursor:pointer;transition:opacity .12s}
  #page-dashboard .mh-search-btn:hover{opacity:.7}
  #page-dashboard .mh-ai{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:2px}
  #page-dashboard .mh-ai-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--text-sub);background:var(--surface);border:var(--border-thin) solid var(--border);border-radius:var(--radius-xl);padding:6px 13px;cursor:pointer;transition:border-color .12s,color .12s}
  #page-dashboard .mh-ai-chip:hover{border-color:var(--accent);color:var(--text)}
  #page-dashboard .mh-ai-spark{color:var(--accent);font-size:var(--text-sm);line-height:1}
  #page-dashboard .mh-preview-wrap{margin-bottom:20px}
  #page-dashboard .mh-preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  #page-dashboard .mh-preview-title{display:flex;align-items:center;gap:6px;font-size:var(--text-md);font-weight:700;color:var(--text)}
  #page-dashboard .mh-preview-title .material-icons{font-size:18px;color:var(--text-sub)}
  #page-dashboard .mh-preview-more{display:flex;align-items:center;gap:2px;font-size:var(--text-sm);color:var(--accent);cursor:pointer}
  #page-dashboard .mh-preview-more .material-icons{font-size:14px}
  #page-dashboard .mh-preview-grid{display:flex;flex-direction:column;gap:10px}
  #page-dashboard .mh-explore{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:20px}
  #page-dashboard .mh-explore .mh-preview-wrap{margin-bottom:0}
  #page-dashboard .mh-preview-empty{padding:24px;text-align:center;color:var(--text-sub);font-size:var(--text-sm);border:var(--border-thin) dashed var(--border);border-radius:var(--radius)}
  /* 미리보기 카드 = 공대 찾기 rf-row 1:1 복제 (#page-dashboard 스코프) */
  #page-dashboard .rf-row{display:flex;align-items:center;gap:var(--space-12);background:var(--surface);border:var(--border-thin) solid var(--border);border-radius:var(--radius-lg);padding:15px 16px;cursor:pointer;transition:background .12s,border-color .12s}
  #page-dashboard .rf-row:hover{border-color:var(--text-sub)}
  #page-dashboard .rf-row.rf-dim{opacity:.65}
  #page-dashboard .rf-row-ico{flex-shrink:0;width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--surface-alt)}
  #page-dashboard .rf-row-ico.is-initial{display:flex;align-items:center;justify-content:center;font-size:var(--text-md);font-weight:700;color:var(--text-sub);border:var(--border-thin) solid var(--border)}
  #page-dashboard .pf-ico-wrap{position:relative;width:48px;height:48px;flex-shrink:0}
  #page-dashboard .pf-ico-wrap .rf-row-ico{position:absolute;inset:0}
  #page-dashboard .pf-ico-img{position:absolute;inset:0;width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--surface-alt);border:var(--border-thin) solid var(--border)}
  #page-dashboard .rf-row-main{flex:1;min-width:0}
  #page-dashboard .rf-row-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  #page-dashboard .rf-row-name{font-size:var(--text-md);font-weight:800;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  #page-dashboard .rf-row-boss{display:inline-flex;align-items:center;font-size:var(--text-2xs);font-weight:700;color:var(--color-settle-gold-dark);background:var(--color-settle-bg);padding:2px 8px;border-radius:var(--radius-md);line-height:1;white-space:nowrap}
  #page-dashboard .rf-row-meta{font-size:var(--text-sm);color:var(--text-sub);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #page-dashboard .rf-row .rf-mini{display:inline-flex;align-items:center;line-height:1;margin-top:0}
  #page-dashboard .rf-row-stack{flex-shrink:0}
  #page-dashboard .rf-row-stack .mr-avatar-stack{margin-top:0}
  #page-dashboard .rf-row-act{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .12s}
  #page-dashboard .rf-row-act:hover{opacity:.85}
  #page-dashboard .rf-row-act.is-closed{background:var(--surface-alt);color:var(--text-sub);border:var(--border-thin) solid var(--border)}
  #page-dashboard .rf-row-act .material-icons{font-size:20px}
  #page-dashboard .rf-empty{padding:40px;text-align:center;color:var(--text-sub);font-size:var(--text-base);background:var(--card-bg);border:var(--border-thin) solid var(--border);border-radius:var(--radius-lg)}
  #page-dashboard .rf-mini{display:inline-block;font-size:var(--text-2xs);font-weight:600;padding:3px 10px;border-radius:var(--radius-xl);margin-top:4px}
  #page-dashboard .rf-mini-open{background:#EAF3DE;color:var(--color-success)}
  #page-dashboard .rf-mini-closed{background:var(--surface-alt);color:var(--text-sub)}
  [data-theme="dark"] #page-dashboard .rf-row-boss{background:#3d2800;color:#fbbf24}
  [data-theme="dark"] #page-dashboard .rf-mini-open{background:#052e1c;color:#34d399}
  @media (max-width:760px){
    #page-dashboard .rf-row-stack{display:none}
    #page-dashboard .mh-field{padding:8px 12px}
  }

/* ── [고정폭 레이아웃] daum/naver식: 데스크탑 1200 고정 + 가로스크롤, ≤768 모바일 유동 ── */
@media (min-width: 769px) {
  html, body { overflow-x: auto; }
  body.topnav .layout { min-width: 1200px; }
  body.topnav .main { max-width: 1200px; }
  /* 혼테일 타이머 페이지만 고정폭 해제 → maple-atelier식 유동 reflow (다른 페이지는 1200 고정 유지) */
  body.topnav:has(#page-horntail-timer.active) .layout { min-width: 0; }
}

/* [임시] 검색+모집파티만 노출 — 나머지 숨김. 되살릴 때 이 블록 삭제 */
#page-dashboard #dashViewMember,
#page-dashboard #dashViewLeader,
#page-dashboard .mh-explore .mh-preview-wrap:nth-child(2){display:none}
/* ============================================================ */
/* 퀵 정산 (개인 탭형) — 기존 컴포넌트 재사용 (rd-tabs / btn / 정산토큰) */
/* ============================================================ */

/* 시트 탭: 기존 .rd-tabs/.rd-tab 그대로, 시트용 보강만 */
#qsTabBar.qs-sheettabs{margin-bottom:18px}
#qsTabBar .rd-tab{display:inline-flex;align-items:center;gap:6px}
#qsTabBar .rd-tab .qs-x{font-size:var(--text-sm);line-height:1;opacity:.5;border-radius:4px;padding:0 2px}
#qsTabBar .rd-tab .qs-x:hover{opacity:1;color:var(--color-danger)}
#qsTabBar .rd-tab.qs-addtab{color:var(--text-sub);font-weight:600}
#qsTabBar .rd-tab.qs-addtab:hover{color:var(--accent)}
#qsTabBar .rd-tab.qs-rec{margin-left:auto;color:var(--text-sub);font-weight:600}
#qsTabBar .rd-tab.qs-rec:hover{color:var(--accent)}

/* 퀵 모드: 단일열(콤보 짤림 해소) + 리더전용 정산완료/취소 숨김 + 결과는 하단바로 */
#settlementForm.qs-active .st-grid{grid-template-columns:1fr}
#settlementForm.qs-active .st-sbtns{display:none}

/* Material Symbols Outlined — 가는 선(wght 100), .fill 은 채움 */
.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-variation-settings:'opsz' 24,'wght' 100,'FILL' 0,'GRAD' 0;line-height:1;vertical-align:middle;display:inline-flex;-webkit-font-smoothing:antialiased}
.material-symbols-outlined.fill{font-variation-settings:'opsz' 24,'wght' 200,'FILL' 1,'GRAD' 0}
/* 하단 고정 결과바 — 버튼은 표준 .btn-primary(파랑) */
#qsResultBar{background:var(--card-bg);border:var(--border-thin) solid var(--border);border-radius:var(--radius-lg);margin-top:16px}
#qsResultBar .qs-rb-inner{max-width:1100px;margin:0 auto;padding:15px 22px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
#qsResultBar .qs-rstat{display:flex;flex-direction:column;gap:1px}
#qsResultBar .qs-rstat .l{font-size:var(--text-xs);color:var(--text-sub);font-weight:600;margin-bottom:2px}
#qsResultBar .qs-rstat .v{font-size:var(--text-lg);font-weight:800;font-variant-numeric:tabular-nums}
#qsResultBar .qs-rstat .v.gold{color:var(--text)}
#qsResultBar .qs-cta{margin-left:auto}
/* 퀵 페이지: 고정 결과바와 판매요약 사이 여백 */
/* 공통 오버레이 */
.qs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:flex-start;justify-content:center;z-index:60;padding:24px 16px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.qs-overlay::-webkit-scrollbar{width:10px;height:10px}
.qs-overlay::-webkit-scrollbar-track{background:transparent}
.qs-overlay::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
.qs-overlay::-webkit-scrollbar-thumb:hover{background:var(--text-sub)}
.qs-overlay.show{display:flex}
.qs-close{position:absolute;top:12px;right:14px;border:none;background:none;font-size:22px;color:var(--text-sub);cursor:pointer;line-height:1;z-index:2}

/* 결과 카드 (금액은 정산 골드 유지, 액션 버튼은 파랑) */
.qs-rcard{background:var(--card-bg);border-radius:18px;max-width:430px;width:100%;box-shadow:0 18px 50px rgba(0,0,0,.3);position:relative;margin:auto}
.qs-shot{padding:22px 22px 16px}
.qs-shot .qs-stitle{font-size:var(--text-md);font-weight:800;margin:0}
.qs-shot .qs-ssub{font-size:var(--text-xs);color:var(--text-sub);margin:1px 0 14px}
.qs-stotal{display:flex;justify-content:space-between;align-items:baseline;background:var(--surface-alt);border:var(--border-thin) solid var(--border);border-radius:12px;padding:13px 16px;margin-bottom:8px}
.qs-stotal .l{font-size:var(--text-xs);font-weight:700;color:var(--text-sub)}
.qs-stotal .v{font-size:var(--text-xl);font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.qs-sper{font-size:var(--text-2xs);color:var(--text-sub);text-align:right;margin-bottom:10px}
.qs-dlist{margin:0}
.qs-drow{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;font-size:var(--text-xs);border-bottom:var(--border-thin) solid var(--row-line)}
.qs-drow:last-child{border-bottom:none}
.qs-drow .nm{font-weight:600;display:flex;align-items:center;gap:8px;min-width:0}
.qs-nm-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-drow .amt{font-variant-numeric:tabular-nums;font-weight:700;color:var(--text)}
.qs-drow .amt.neg{color:var(--color-settle-loss)}
.qs-tag{font-size:10px;font-weight:700;color:var(--color-settle-gain);background:var(--color-settle-gain-bg);padding:2px 7px;border-radius:6px;margin-left:6px}
.qs-tag.pen{color:var(--color-settle-loss);background:var(--color-settle-loss-bg)}
.qs-mark{display:flex;align-items:center;justify-content:center;gap:6px;padding:13px 24px 16px;border-top:var(--border-thin) solid var(--row-line);font-size:var(--text-xs);color:var(--text-sub);font-weight:700}
.qs-mark-img{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:20px;padding-top:16px;border-top:2px solid var(--border);font-size:var(--text-xs);color:var(--text-sub);font-weight:700}
.qs-mark-img b{color:var(--text)}
.qs-mark b{color:var(--text)}
/* 결과 팝업 2단 내역서 (판매·지출·분배금 / 분배 명단) */
.qs-rcard.qs-wide{max-width:960px}
.qs-rcard.qs-wide .qs-shot{padding:26px 30px 18px}
.qs-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px;padding-bottom:16px;border-bottom:2px solid var(--border)}
.qs-htitle{font-size:var(--text-xl);font-weight:800;margin:0;letter-spacing:-.5px}
.qs-hsub{font-size:var(--text-sm);color:var(--text-sub);font-weight:600}
.qs-cols{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr);gap:34px}
@media(max-width:760px){.qs-cols{grid-template-columns:1fr;gap:6px}}
.qs-sec{margin-bottom:18px}
.qs-sec:last-child{margin-bottom:0}
.qs-sec-h{font-size:var(--text-xs);font-weight:800;color:var(--text-sub);letter-spacing:.4px;margin:0 0 7px;text-transform:uppercase}
.qs-irow{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 2px;border-bottom:var(--border-thin) solid var(--row-line)}
.qs-irow:last-of-type{border-bottom:none}
.qs-irow .l .nm{font-weight:700;font-size:var(--text-base)}
.qs-irow .l .meta{font-size:var(--text-2xs);color:var(--text-sub);margin-top:1px}
.qs-irow .r{font-weight:800;font-variant-numeric:tabular-nums;font-size:var(--text-base);text-align:right;white-space:nowrap}
.qs-irow .r.loss{color:var(--color-settle-loss)}
.qs-sectot{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;padding:9px 2px 0;border-top:1px dashed var(--border)}
.qs-sectot .l{font-size:var(--text-xs);font-weight:700;color:var(--text-sub)}
.qs-sectot .v{font-size:var(--text-md);font-weight:800;font-variant-numeric:tabular-nums}
.qs-sectot .v.loss{color:var(--color-settle-loss)}
.qs-payout{background:var(--surface-alt);border:var(--border-thin) solid var(--border);border-radius:14px;padding:18px 20px;margin-top:20px}
.qs-payout .top{display:flex;justify-content:space-between;align-items:baseline}
.qs-payout .top .l{font-size:var(--text-base);font-weight:800}
.qs-payout .top .v{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent)}
.qs-payout .per{text-align:right;font-size:var(--text-sm);color:var(--text-sub);margin-top:5px}
.qs-payout .per b{color:var(--text)}
.qs-ract{padding:14px 30px;border-top:var(--border-thin) solid var(--row-line)}
.qs-share{display:flex;gap:10px;margin-bottom:10px}
.qs-share button{flex:1;background:var(--surface-alt);border:var(--border-thin) solid var(--border);border-radius:var(--radius);padding:11px;font-size:var(--text-xs);font-weight:700;color:var(--text);cursor:pointer}
.qs-share button:hover{border-color:var(--accent)}
.qs-primary{display:block;width:100%;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:12px;font-size:var(--text-sm);font-weight:800;cursor:pointer;text-align:center}
.qs-primary:hover{filter:brightness(.93)}
.qs-primary small{display:block;font-weight:600;opacity:.9;font-size:var(--text-2xs);margin-top:2px}
.qs-rung3{margin-top:10px;border:var(--border-thin) dashed var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;align-items:center;gap:9px;opacity:.85}
.qs-rung3 .chk{width:16px;height:16px;border:2px solid var(--border-medium);border-radius:4px;flex-shrink:0}
.qs-rung3 .t{font-size:var(--text-2xs);color:var(--text-sub);line-height:1.4}
.qs-rung3 .t b{color:var(--text)}
.qs-rung3 .lock{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-2xs);font-weight:700;color:var(--text-sub);background:var(--surface-alt);border:var(--border-thin) solid var(--border);padding:3px 9px;border-radius:20px;margin-left:auto;flex-shrink:0}
.qs-savenote{display:flex;align-items:center;gap:7px;font-size:var(--text-2xs);color:var(--text-sub);padding:12px 22px 18px}
.qs-savenote .dot{width:7px;height:7px;border-radius:50%;background:var(--color-success)}
.qs-savenote a{color:var(--color-danger);text-decoration:underline;cursor:pointer}

/* 대형 공유 이미지 */
/* 결과 팝업: 파티 그룹 + 더보기 콤보 (영수증 카드 폐기 후 대체) */
.qs-pg{margin-bottom:8px}
.qs-pg:last-child{margin-bottom:0}
.qs-pgh{display:flex;align-items:center;gap:7px;margin:6px 0 3px;padding:0 8px}
.qs-pbadge{font-size:var(--text-2xs);font-weight:800;border-radius:6px;padding:2px 9px}
.qs-pgcount{font-size:var(--text-2xs);color:var(--text-sub)}
.qs-more{width:100%;margin-top:8px;background:var(--surface-alt);border:var(--border-thin) solid var(--border);color:var(--text-sub);border-radius:10px;padding:9px;font-size:var(--text-xs);font-weight:700;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px}
.qs-more:hover{color:var(--text)}
.qs-more-arw{transition:transform .15s}
.qs-more.open .qs-more-arw{transform:rotate(180deg)}
/* 파티 배지색 — .st-party-sel과 동일 팔레트 미러(파티색 토큰 미정의, 기존 hex 재사용) */
.qs-pbadge[data-p="1"]{background:#fce4ec;color:#c62828}
.qs-pbadge[data-p="2"]{background:#fff3e0;color:#e65100}
.qs-pbadge[data-p="3"]{background:#e8f5e9;color:#2e7d32}
.qs-pbadge[data-p="4"]{background:#e3f2fd;color:#1565c0}
.qs-pbadge[data-p="5"]{background:#f3e5f5;color:#6a1b9a}
.qs-pbadge[data-p="other"]{background:#f5f5f5;color:#616161}
[data-theme="dark"] .qs-pbadge[data-p="1"]{background:#3d0a1c;color:#f9a8d4}
[data-theme="dark"] .qs-pbadge[data-p="2"]{background:#4a1f00;color:#fdba74}
[data-theme="dark"] .qs-pbadge[data-p="3"]{background:#0a3d1c;color:#86efac}
[data-theme="dark"] .qs-pbadge[data-p="4"]{background:#0a1f3d;color:#93c5fd}
[data-theme="dark"] .qs-pbadge[data-p="5"]{background:#220a3d;color:#c4b5fd}
[data-theme="dark"] .qs-pbadge[data-p="other"]{background:#2a2a2a;color:#9ca3af}

/* 정산 기록 */
.qs-recwrap{background:var(--card-bg);border-radius:16px;max-width:440px;width:100%;margin:auto;box-shadow:0 18px 50px rgba(0,0,0,.3);position:relative;padding:20px 20px 16px}
.qs-recwrap h2{margin:0 0 3px;font-size:var(--text-md);font-weight:800}
.qs-recsub{font-size:var(--text-2xs);color:var(--text-sub);margin:0 0 14px}
.qs-recitem{display:flex;align-items:center;gap:10px;padding:11px 12px;border:var(--border-thin) solid var(--row-line);border-radius:10px;margin-bottom:7px;cursor:pointer}
.qs-recitem:hover{border-color:var(--accent)}
.qs-recitem .ri-main{flex:1;min-width:0}
.qs-recitem .ri-t{font-weight:700;font-size:var(--text-xs)}
.qs-recitem .ri-s{font-size:var(--text-2xs);color:var(--text-sub)}
.qs-recitem .ri-amt{font-weight:800;color:var(--color-settle-gold-dark);font-variant-numeric:tabular-nums;font-size:var(--text-xs);white-space:nowrap}
.qs-recitem .ri-del{color:var(--text-sub);font-size:var(--text-base);padding:2px 4px;border-radius:5px}
.qs-recitem .ri-del:hover{color:var(--color-danger)}
.qs-reccap{font-size:var(--text-2xs);color:var(--text-sub);text-align:center;margin:8px 0 2px}

/* ============================================================ */
/* 고확 실시간 (버닝 월드) — 모듈 gohwak.js / 1순위 기능          */
/* ============================================================ */
#page-dashboard .gh-wrap{background:var(--card-bg);border:var(--border-thin) solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:20px}
#page-dashboard .gh-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:var(--border-thin) solid var(--border)}
#page-dashboard .gh-title{display:flex;align-items:center;gap:7px;font-size:var(--text-md);font-weight:800;color:var(--text)}
#page-dashboard .gh-title.is-off{cursor:pointer;color:var(--text-sub)}
#page-dashboard .gh-live{width:8px;height:8px;border-radius:50%;background:#ef4444;display:inline-block;flex-shrink:0;animation:ghPulse 1.6s infinite}
#page-dashboard .gh-live.s-off{background:#9aa0aa;animation:none;box-shadow:none}
#page-dashboard .gh-live.s-connecting{background:var(--color-warn);animation:none;box-shadow:none}
@keyframes ghPulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}70%{box-shadow:0 0 0 6px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
#page-dashboard .gh-status-wrap{display:flex;align-items:center;gap:10px;flex-shrink:0}
#page-dashboard .gh-world{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:24px;box-sizing:border-box;font-size:var(--text-2xs);font-weight:800;color:#fff;background:linear-gradient(135deg,#f97316,#ef4444);padding:0 10px;border-radius:var(--radius-md);line-height:1}
#page-dashboard .gh-trend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 16px 0;font-size:var(--text-sm);color:var(--text-sub)}
#page-dashboard .gh-trend-hot{font-weight:800;color:var(--color-danger)}
#page-dashboard .gh-trend-item{cursor:pointer;color:var(--text)}
#page-dashboard .gh-trend-item:hover{color:var(--accent)}
#page-dashboard .gh-trend-item .gh-rank{color:var(--accent);font-weight:800;margin-right:4px}
#page-dashboard .gh-search{display:flex;align-items:center;gap:8px;padding:11px 16px 13px;border-bottom:var(--border-thin) solid var(--border);flex-wrap:wrap}
#page-dashboard .gh-radios{display:flex;gap:3px;background:var(--surface-alt);border:var(--border-thin) solid var(--border);border-radius:var(--radius);padding:3px;flex-shrink:0}
#page-dashboard .gh-radios input{display:none}
#page-dashboard .gh-radios label{font-size:var(--text-sm);color:var(--text-sub);padding:0 12px;height:30px;display:flex;align-items:center;border-radius:calc(var(--radius) - 2px);cursor:pointer;user-select:none;line-height:1;transition:background .12s,color .12s}
#page-dashboard .gh-radios input:checked + label{background:var(--accent);color:#fff;font-weight:700}
/* 유튜브식 통합 검색바: 입력 + 돋보기가 테두리 하나로 이어짐 */
#page-dashboard .gh-searchbar{flex:1;min-width:180px;display:flex;align-items:stretch;height:38px;background:var(--bg);border:var(--border-thin) solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .12s}
#page-dashboard .gh-searchbar:focus-within{border-color:var(--accent)}
#page-dashboard .gh-q{flex:1;min-width:0;background:transparent;border:none;padding:0 14px;color:var(--text);font-size:var(--text-sm);outline:none}
#page-dashboard .gh-go{flex-shrink:0;width:46px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-left:var(--border-thin) solid var(--border);color:var(--text-sub);cursor:pointer;transition:color .12s,background .12s}
/* 검색어 지우기(X) 버튼 — 입력 있을 때만 보임(hidden 속성으로 제어) */
#page-dashboard .gh-clear{flex-shrink:0;width:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-left:var(--border-thin) solid var(--border);color:var(--text-sub);cursor:pointer;font-size:18px;line-height:1;transition:color .12s,background .12s}
#page-dashboard .gh-clear:hover{color:var(--text);background:var(--surface-alt)}
#page-dashboard .gh-clear[hidden]{display:none}
#page-dashboard .gh-go:hover{color:var(--accent);background:var(--surface-alt)}
#page-dashboard .gh-go svg{width:18px;height:18px;display:block}
#page-dashboard .gh-feed{max-height:none}
#page-dashboard .gh-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:var(--border-thin) solid var(--row-line);font-size:var(--text-base);opacity:1;animation:ghSlide .35s ease both}
/* 닉+채널 묶음: 데스크톱은 투명 래퍼(기존과 동일) / 모바일은 좌측 고정 블록으로 전환(아래 @media) */
#page-dashboard .gh-fixed{display:contents}
/* 행 트랙: 데스크톱은 평범한 블록 / 모바일은 max-content 폭으로 모든 행 폭을 통일(고정열 어긋남 방지) */
#page-dashboard .gh-track{display:block}
#page-dashboard .gh-row:last-child{border-bottom:none}
@keyframes ghSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
#page-dashboard .gh-t{color:var(--text-sub);font-size:var(--text-xs);font-variant-numeric:tabular-nums;width:78px;flex-shrink:0;white-space:nowrap}
#page-dashboard .gh-nick{width:96px;flex-shrink:0;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 닉네임 클릭 = 그 닉으로 검색 */
#page-dashboard .gh-nick-link{cursor:pointer;transition:color .12s}
#page-dashboard .gh-nick-link:hover{color:var(--accent);text-decoration:underline}
#page-dashboard .gh-ch{flex-shrink:0;font-size:var(--text-2xs);font-weight:800;color:var(--accent);background:var(--accent-light);border-radius:var(--radius-md);padding:3px 8px;line-height:1;font-variant-numeric:tabular-nums}
#page-dashboard .gh-msg{flex:1;min-width:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#page-dashboard .gh-empty{padding:30px;text-align:center;color:var(--text-sub);font-size:var(--text-sm)}
@media (max-width:760px){
  /* 피드 '전체'를 한 번에 가로 스크롤 — 행별 개별 스크롤 X. 스크롤바는 숨김 */
  #page-dashboard .gh-feed{max-height:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  #page-dashboard .gh-feed::-webkit-scrollbar{display:none}
  /* 모바일: 시간 셀은 날짜 숨기고 시각만 노출(닉네임 앞). 폭은 시각만큼만 */
  #page-dashboard .gh-t{display:inline-flex;align-items:center;width:auto;flex-shrink:0}
  #page-dashboard .gh-t-date{display:none}
  /* 트랙을 가장 긴 행 폭으로 잡고, 모든 행을 그 폭(100%)에 맞춤 → 짧은 행도 끝까지 닉·채널 고정 유지 */
  #page-dashboard .gh-track{width:max-content;min-width:100%}
  #page-dashboard .gh-row{width:100%}
  /* 닉+채널 한 덩어리를 좌측 고정(frozen) — 내용만 그 아래로 흘러감 */
  #page-dashboard .gh-fixed{display:flex;align-items:center;gap:8px;position:sticky;left:0;z-index:2;background:var(--card-bg);padding-right:10px;flex-shrink:0}
  #page-dashboard .gh-nick{width:72px}
  /* 내용: 말줄임 대신 한 줄로 흘러가게(피드 스크롤로 끝까지 노출) */
  #page-dashboard .gh-msg{flex:0 0 auto;overflow:visible;text-overflow:clip;white-space:nowrap}
}
/* 고확 종류 배지 — 게임 고유색(분홍/노랑) 전용 토큰, 라이트/다크 자동 */
#page-dashboard .gh-ch-gohwak{ background:var(--lz-gohwak-pink-bg); color:var(--lz-gohwak-pink); }
#page-dashboard .gh-ch-item  { background:var(--lz-gohwak-gold-bg); color:var(--lz-gohwak-gold); }
/* 채널 칩(초록) — CLOVA가 읽은 채널번호 표시. 못 읽으면 .gh-ch-none(옅은 점) */
#page-dashboard .gh-ch-channel{ background:var(--lz-gohwak-ch-bg); color:var(--lz-gohwak-ch); }
#page-dashboard .gh-ch-none{ background:transparent; color:var(--text-sub); font-weight:600; opacity:.45; padding-left:0; padding-right:0; min-width:34px; text-align:center; }
.gh-chnum{
  display:inline-block;
  padding:1px 6px;
  margin-right:4px;
  border-radius:4px;
  font-size:var(--text-2xs);
  font-weight:600;
  color:var(--accent);
  background:rgba(255,255,255,0.06);
  border:1px solid var(--border);
}
/* ═══════════ 광고 (AdSense) — 양옆 세로 레일 + 바텀 앵커. 활성: 3·4 / 비활성: .lz-ad-off ═══════════ */
.lz-ad-rail{position:fixed;top:calc(var(--header-h, 52px) + 58px);z-index:30;width:300px;
  display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - var(--header-h,52px) - 80px);overflow-y:auto;scrollbar-width:none}
.lz-ad-rail::-webkit-scrollbar{display:none}
.lz-ad-rail-left{left:16px}
.lz-ad-rail-right{right:16px}
.lz-ad-unit{display:flex;justify-content:center}
.lz-ad-off{display:none !important}   /* 비활성: 이 클래스만 빼면 켜짐 */
.lz-ad-anchor{position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--card-bg);
  border-top:1px solid var(--border);min-height:64px;display:flex;align-items:center;justify-content:center;padding:8px 44px}
.lz-ad-anchor-close{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--text-sub);cursor:pointer;font-size:var(--text-xs);line-height:1}
@media (max-width:1900px){ .lz-ad-rail{display:none} }
body.lz-anchor-on{padding-bottom:80px}

/* ===== [캐릭터 게이트] 안내 노트 — 등록 모달 / 이어실행 모달 공통 ===== */
.lz-gate-note{
  display:flex;align-items:center;gap:8px;
  margin:0 0 16px;padding:11px 14px;
  border-radius:var(--radius-md);
  background:var(--accent-light);
  border-left:3px solid var(--accent);
  color:var(--krds-primary-60);
  font-size:var(--text-sm);font-weight:600;line-height:1.5;
}
.lz-gate-note .material-icons{font-size:18px;flex-shrink:0;}
[data-theme="dark"] .lz-gate-note{ color:var(--krds-primary-30); }

/* [게시판] 글쓴이·직업 읽기전용 표시 (입력칸 폐지) */
.brd-w-author{
  display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;
  border:var(--border-thin) solid var(--border);border-radius:var(--radius-md);
  background:var(--surface-alt);color:var(--text);
  font-size:var(--text-sm);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.brd-w-author img{width:22px;height:22px;border-radius:50%;flex-shrink:0;}

/* [캐릭터 게이트 C안] 등록 모달 내 공대 신청 영역 */
.mcreg-gate-apply{
  border-top:1px dashed var(--border);
  margin:16px 0 0;padding:14px 0 0;
}
.mcreg-gate-apply .ga-title{
  font-size:var(--text-2xs);font-weight:800;color:var(--text-sub);
  letter-spacing:.04em;margin-bottom:10px;
}
.mcreg-gate-apply label{
  display:block;font-size:var(--text-xs);color:var(--text-sub);
  font-weight:700;margin-bottom:5px;
}
.mcreg-gate-apply input[type="text"]{
  width:100%;height:38px;padding:0 11px;
  background:var(--surface-alt);border:var(--border-thin) solid var(--border);
  border-radius:var(--radius-md);color:var(--text);font-size:var(--text-sm);
  box-sizing:border-box;
}
.mcreg-gate-apply .ga-guest{
  display:block;width:100%;margin-top:10px;text-align:center;
  background:none;border:none;cursor:pointer;padding:4px;
  color:var(--accent);font-size:var(--text-sm);text-decoration:underline;
}
