/* ================================================================
   TravelWinners B2B — Shared Styles v2 (C3 Aurora Trendy)
   ================================================================
   컨셉: 다크 캔버스 + 오로라 그라디언트 + 글래스모피즘
   비전: "글로벌 정복, 새로운 트렌드 리드"
   톤: Linear · Framer · Vercel · Cursor

   호환성 전략: v1의 모든 클래스명 그대로 유지
   - HTML 변경 없이 톤만 교체
   - --forest, --gold 등은 alias로 보존 (기존 코드 안 깨짐)

   작성: 2026-05-01
   기준: mock/concept-c3.html
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');

:root {
  /* ===== Aurora 컬러 팔레트 ===== */
  --aurora-1: #7C3AED;
  --aurora-2: #EC4899;
  --aurora-3: #06B6D4;
  --aurora-4: #22D3EE;
  --aurora-5: #F59E0B;
  --aurora-6: #10B981;

  /* ===== 다크 캔버스 ===== */
  --bg: #0A0A0F;
  --bg-2: #13131A;
  --bg-3: #1C1C26;
  --bg-4: #25252F;

  /* ===== 글래스 레이어 ===== */
  --glass: rgba(255,255,255,.05);
  --glass-2: rgba(255,255,255,.08);
  --glass-3: rgba(255,255,255,.12);
  --glass-4: rgba(255,255,255,.18);

  /* ===== 라인 ===== */
  --line: rgba(255,255,255,.08);
  --line-2: rgba(255,255,255,.14);
  --line-3: rgba(255,255,255,.22);

  /* ===== 텍스트 위계 ===== */
  --ink: #FAFAFA;
  --ink-2: #E5E5EE;
  --ink-3: #A0A0B0;
  --ink-4: #6E6E80;
  --ink-5: #52525C;

  /* ===== 시맨틱 ===== */
  --success: #10B981;
  --warn: #F59E0B;
  --danger: #EF4444;
  --info: #06B6D4;

  /* ===== 시그니처 그라디언트 ===== */
  --aurora: linear-gradient(135deg, #7C3AED 0%, #EC4899 35%, #F59E0B 65%, #06B6D4 100%);
  --aurora-soft: linear-gradient(135deg, rgba(124,58,237,.3), rgba(236,72,153,.3) 50%, rgba(6,182,212,.3));
  --aurora-vertical: linear-gradient(180deg, #7C3AED 0%, #EC4899 50%, #06B6D4 100%);

  /* ===== 폰트 ===== */
  --sans: 'Inter', 'Noto Sans KR', 'SF Pro Text', -apple-system, system-ui, sans-serif;
  --mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
  --display: 'Inter', 'Noto Sans KR', sans-serif;

  /* ===== 라운딩 ===== */
  --r-sm: 8px;
  --r: 12px;
  --r-lg: 16px;
  --r-xl: 24px;
  --radius: 12px;
  --radius-sm: 8px;

  /* ===== 그림자 ===== */
  --sh-1: 0 1px 2px rgba(0,0,0,.4);
  --sh-2: 0 8px 24px rgba(0,0,0,.4);
  --sh-3: 0 24px 60px -12px rgba(0,0,0,.6);
  --shadow: 0 8px 24px rgba(0,0,0,.4);
  --shadow-lg: 0 24px 60px -12px rgba(0,0,0,.6);

  /* ===== 글로우 (Aurora signature) ===== */
  --glow-p: 0 0 40px rgba(124,58,237,.5);
  --glow-c: 0 0 40px rgba(6,182,212,.4);
  --glow-m: 0 0 40px rgba(236,72,153,.4);
  --glow-success: 0 0 24px rgba(16,185,129,.3);

  /* ===== 트랜지션 ===== */
  --transition: all .15s cubic-bezier(.4,0,.2,1);
  --transition-slow: all .25s cubic-bezier(.4,0,.2,1);

  /* ===== v1 호환 alias (기존 코드 안 깨지게) ===== */
  --forest: #7C3AED;
  --forest-dark: #6D28D9;
  --forest-deep: #5B21B6;
  --forest-light: rgba(124,58,237,.15);
  --forest-mist: rgba(124,58,237,.08);
  --gold: #F59E0B;
  --gold-light: rgba(245,158,11,.15);
  --white: #FAFAFA;
  --gray-50: #13131A;
  --gray-100: #1C1C26;
  --gray-200: rgba(255,255,255,.08);
  --gray-300: rgba(255,255,255,.14);
  --gray-400: #6E6E80;
  --gray-500: #A0A0B0;
  --gray-600: #C5C5D0;
  --gray-700: #E5E5EE;
  --gray-800: #FAFAFA;
  --gray-900: #FAFAFA;
  --red: #EF4444;
  --green-check: #10B981;

  /* ===== 3-State 권한 배지 (D-011) ===== */
  --auto: #16a34a;
  --auto-bg: rgba(22,163,74,.10);
  --auto-text: #86efac;
  --staff: #2563eb;
  --staff-bg: rgba(96,165,250,.10);
  --staff-text: #93c5fd;
  --ceo: #ca8a04;
  --ceo-bg: rgba(251,191,36,.10);
  --ceo-text: #fcd34d;

  /* ===== status / priority (admin-status, admin-tasks) ===== */
  --status-pending: #2563eb;
  --status-in-progress: #9333ea;
  --priority-p0: #dc2626;
  --priority-p1: #ea580c;
  --priority-p2: #ca8a04;
  --priority-p3: #64748b;

  /* ===== accent 명도 변형 (D3 결정 — deep/soft/bg × purple+pink) ===== */
  --accent-purple-deep: #6d28d9;
  --accent-purple-soft: #c4b5fd;
  --accent-purple-bg: rgba(124,58,237,.10);
  --accent-pink-deep: #db2777;
  --accent-pink-soft: #f9a8d4;
  --accent-pink-bg: rgba(236,72,153,.10);
}

/* ============================================================
   ☀️ 라이트 모드 — D-022 결정 (BL-ADMIN-LIGHTMODE)
   사용법:
   - 사용자 토글: <html data-theme="light"> 박으면 즉시 라이트
   - OS 자동: data-theme 없을 때 prefers-color-scheme 따라감
   - 페이지 코드는 토큰 var(--bg), var(--ink) 등만 쓰면 자동 전환
   ============================================================ */

[data-theme="light"] {
  /* 배경 단계 */
  --bg: #F8FAFC;
  --bg-2: #FFFFFF;
  --bg-3: #F1F5F9;
  --bg-4: #E2E8F0;

  /* 시그니처 — 다크와 동일 (D-022 명시적 단일 진실원 보장) */
  --aurora-1: #7C3AED;
  --aurora-2: #EC4899;
  --aurora-3: #06B6D4;

  /* 글래스 */
  --glass: rgba(15,23,42,.04);
  --glass-2: rgba(15,23,42,.06);
  --glass-3: rgba(15,23,42,.09);
  --glass-4: rgba(15,23,42,.12);

  /* 라인 */
  --line: rgba(15,23,42,.08);
  --line-2: rgba(15,23,42,.14);
  --line-3: rgba(15,23,42,.22);

  /* 글자 위계 (결정③ — #1E293B로 한 단계 부드럽게) */
  --ink: #1E293B;
  --ink-2: #334155;
  --ink-3: #475569;
  --ink-4: #64748B;
  --ink-5: #94A3B8;

  /* 시맨틱 (라이트 모드는 살짝 진하게 — 대비 확보) */
  --success: #059669;
  --warn: #D97706;
  --danger: #DC2626;
  --info: #0891B2;

  /* 시그니처 그라디언트 — aurora 본체는 동일, soft만 알파 낮춤 */
  --aurora-soft: linear-gradient(135deg, rgba(124,58,237,.12), rgba(236,72,153,.12) 50%, rgba(6,182,212,.12));

  /* 그림자 */
  --sh-1: 0 1px 2px rgba(15,23,42,.06);
  --sh-2: 0 4px 12px rgba(15,23,42,.08);
  --sh-3: 0 12px 32px -8px rgba(15,23,42,.12);
  --shadow: 0 4px 12px rgba(15,23,42,.08);
  --shadow-lg: 0 12px 32px -8px rgba(15,23,42,.12);

  /* 글로우 — 라이트는 살짝 약하게 (밝은 배경에서 너무 강하면 부담) */
  --glow-p: 0 0 32px rgba(124,58,237,.25);
  --glow-c: 0 0 32px rgba(6,182,212,.20);
  --glow-m: 0 0 32px rgba(236,72,153,.20);
  --glow-success: 0 0 20px rgba(16,185,129,.18);

  /* 3-State 배지 */
  --auto: #15803d;
  --auto-bg: rgba(22,163,74,.12);
  --auto-text: #166534;
  --staff: #1d4ed8;
  --staff-bg: rgba(37,99,235,.10);
  --staff-text: #1e40af;
  --ceo: #a16207;
  --ceo-bg: rgba(202,138,4,.12);
  --ceo-text: #854d0e;

  /* status / priority */
  --status-pending: #1d4ed8;
  --status-in-progress: #7e22ce;
  --priority-p0: #b91c1c;
  --priority-p1: #c2410c;
  --priority-p2: #a16207;
  --priority-p3: #475569;

  /* accent 명도 변형 */
  --accent-purple-deep: #5b21b6;
  --accent-purple-soft: #7c3aed;
  --accent-purple-bg: rgba(124,58,237,.06);
  --accent-pink-deep: #be185d;
  --accent-pink-soft: #ec4899;
  --accent-pink-bg: rgba(236,72,153,.06);

  /* v1 호환 alias (라이트 반전) */
  --white: #1E293B;
  --gray-50: #F8FAFC;
  --gray-100: #F1F5F9;
  --gray-200: rgba(15,23,42,.08);
  --gray-300: rgba(15,23,42,.14);
  --gray-400: #64748B;
  --gray-500: #475569;
  --gray-600: #334155;
  --gray-700: #1E293B;
  --gray-800: #1E293B;
  --gray-900: #1E293B;
}

/* OS 라이트 모드 자동 적용 — 사용자 토글이 없을 때만 (data-theme 미지정) */
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) {
    --bg: #F8FAFC;
    --bg-2: #FFFFFF;
    --bg-3: #F1F5F9;
    --bg-4: #E2E8F0;
    --aurora-1: #7C3AED;
    --aurora-2: #EC4899;
    --aurora-3: #06B6D4;
    --glass: rgba(15,23,42,.04);
    --glass-2: rgba(15,23,42,.06);
    --glass-3: rgba(15,23,42,.09);
    --glass-4: rgba(15,23,42,.12);
    --line: rgba(15,23,42,.08);
    --line-2: rgba(15,23,42,.14);
    --line-3: rgba(15,23,42,.22);
    --ink: #1E293B;
    --ink-2: #334155;
    --ink-3: #475569;
    --ink-4: #64748B;
    --ink-5: #94A3B8;
    --success: #059669;
    --warn: #D97706;
    --danger: #DC2626;
    --info: #0891B2;
    --aurora-soft: linear-gradient(135deg, rgba(124,58,237,.12), rgba(236,72,153,.12) 50%, rgba(6,182,212,.12));
    --sh-1: 0 1px 2px rgba(15,23,42,.06);
    --sh-2: 0 4px 12px rgba(15,23,42,.08);
    --sh-3: 0 12px 32px -8px rgba(15,23,42,.12);
    --shadow: 0 4px 12px rgba(15,23,42,.08);
    --shadow-lg: 0 12px 32px -8px rgba(15,23,42,.12);
    --glow-p: 0 0 32px rgba(124,58,237,.25);
    --glow-c: 0 0 32px rgba(6,182,212,.20);
    --glow-m: 0 0 32px rgba(236,72,153,.20);
    --glow-success: 0 0 20px rgba(16,185,129,.18);
    --auto: #15803d;
    --auto-bg: rgba(22,163,74,.12);
    --auto-text: #166534;
    --staff: #1d4ed8;
    --staff-bg: rgba(37,99,235,.10);
    --staff-text: #1e40af;
    --ceo: #a16207;
    --ceo-bg: rgba(202,138,4,.12);
    --ceo-text: #854d0e;
    --status-pending: #1d4ed8;
    --status-in-progress: #7e22ce;
    --priority-p0: #b91c1c;
    --priority-p1: #c2410c;
    --priority-p2: #a16207;
    --priority-p3: #475569;
    --accent-purple-deep: #5b21b6;
    --accent-purple-soft: #7c3aed;
    --accent-purple-bg: rgba(124,58,237,.06);
    --accent-pink-deep: #be185d;
    --accent-pink-soft: #ec4899;
    --accent-pink-bg: rgba(236,72,153,.06);
    --white: #1E293B;
    --gray-50: #F8FAFC;
    --gray-100: #F1F5F9;
    --gray-200: rgba(15,23,42,.08);
    --gray-300: rgba(15,23,42,.14);
    --gray-400: #64748B;
    --gray-500: #475569;
    --gray-600: #334155;
    --gray-700: #1E293B;
    --gray-800: #1E293B;
    --gray-900: #1E293B;
  }
}

/* ===== Reset & Base ===== */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { background: var(--bg); }
body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.55;
  letter-spacing: -.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100vh;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }

/* ===== Aurora Background (전역 — body에 자동 적용) ===== */
.aurora-bg { position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.aurora-blob { position: absolute; border-radius: 50%; filter: blur(120px); opacity: .5; mix-blend-mode: screen; }
.aurora-blob.b1 { width: 600px; height: 600px; background: #7C3AED; top: -200px; left: -100px; animation: auroraFloat1 18s ease-in-out infinite; }
.aurora-blob.b2 { width: 500px; height: 500px; background: #EC4899; top: 30%; right: -100px; animation: auroraFloat2 22s ease-in-out infinite; }
.aurora-blob.b3 { width: 550px; height: 550px; background: #06B6D4; bottom: -150px; left: 30%; animation: auroraFloat3 20s ease-in-out infinite; }
.aurora-blob.b4 { width: 400px; height: 400px; background: #F59E0B; top: 60%; left: 10%; opacity: .3; animation: auroraFloat1 24s ease-in-out infinite reverse; }
@keyframes auroraFloat1 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(60px,80px) scale(1.1); } }
@keyframes auroraFloat2 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-80px,40px) scale(1.05); } }
@keyframes auroraFloat3 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(40px,-60px) scale(1.1); } }

.aurora-grid {
  position: fixed; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.015) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none; z-index: 1;
}

main, header, footer, section, .shell, .form-panel, .brand-panel,
.dash-header, .order-card, .form-container, .form-topbar {
  position: relative; z-index: 2;
}

/* ===== Language Switcher ===== */
.lang-switch {
  display: inline-flex; gap: 2px;
  background: var(--glass); border: 1px solid var(--line-2);
  border-radius: 99px; padding: 3px;
  backdrop-filter: blur(12px);
}
.lang-btn {
  padding: 6px 14px; border: none; border-radius: 17px;
  font-size: 13px; font-weight: 500; cursor: pointer;
  background: transparent; color: var(--ink-3);
  transition: var(--transition); font-family: var(--sans);
}
.lang-btn:hover { color: var(--ink-2); }
.lang-btn.active {
  background: var(--aurora); color: #fff; font-weight: 600;
  box-shadow: var(--glow-p);
}

.form-topbar {
  display: flex; justify-content: flex-end; align-items: center;
  gap: 12px; margin-bottom: 24px;
}

/* ===== Shell Layout (Auth pages) ===== */
.shell { display: flex; min-height: 100vh; }

.brand-panel {
  width: 420px; min-height: 100vh;
  background: linear-gradient(165deg, #0A0A0F 0%, #13131A 50%, #1C1C26 100%);
  padding: 48px 40px;
  display: flex; flex-direction: column;
  position: fixed; left: 0; top: 0; bottom: 0;
  border-right: 1px solid var(--line);
  overflow: hidden;
}
.brand-panel::before {
  content: ''; position: absolute;
  top: -100px; right: -100px;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(124,58,237,.25) 0%, transparent 60%);
  pointer-events: none;
}
.brand-panel::after {
  content: ''; position: absolute;
  bottom: -150px; left: -100px;
  width: 450px; height: 450px;
  background: radial-gradient(circle, rgba(6,182,212,.18) 0%, transparent 60%);
  pointer-events: none;
}

.brand-logo { display: flex; align-items: center; gap: 14px; margin-bottom: 60px; position: relative; z-index: 2; }
.brand-logo-icon {
  width: 44px; height: 44px;
  background: var(--aurora); border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 800; color: #fff;
  font-family: var(--sans); letter-spacing: -.04em;
  box-shadow: var(--glow-p);
}
.brand-logo-text {
  font-family: var(--sans); font-size: 22px; font-weight: 700;
  color: var(--ink); letter-spacing: -.02em;
}
.brand-logo-link { text-decoration: none; display: flex; align-items: center; gap: 14px; }

.brand-headline {
  font-family: var(--display); font-size: 32px; font-weight: 700;
  color: var(--ink); line-height: 1.2;
  letter-spacing: -.025em; margin-bottom: 20px;
  position: relative; z-index: 2;
}
.brand-headline em, .brand-headline .grad {
  font-style: normal;
  background: var(--aurora);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; font-weight: 800;
}
.brand-sub {
  font-size: 15px; color: var(--ink-3);
  line-height: 1.7; margin-bottom: 48px;
  position: relative; z-index: 2;
}
.brand-footer {
  font-size: 12px; color: var(--ink-4);
  border-top: 1px solid var(--line);
  padding-top: 20px; line-height: 1.6;
  position: relative; z-index: 2;
}

/* ===== Steps Nav ===== */
.steps-nav { display: flex; flex-direction: column; margin-bottom: auto; position: relative; z-index: 2; }
.step-item { display: flex; align-items: flex-start; gap: 16px; padding: 16px 0; position: relative; }
.step-item:not(:last-child)::after {
  content: ''; position: absolute;
  left: 15px; top: 48px; bottom: -16px;
  width: 2px; background: var(--line);
}
.step-item.active:not(:last-child)::after { background: var(--aurora-1); opacity: .5; }
.step-item.completed:not(:last-child)::after { background: var(--aurora); }

.step-circle {
  width: 32px; height: 32px; border-radius: 50%;
  border: 2px solid var(--line-2);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600; color: var(--ink-4);
  flex-shrink: 0; transition: var(--transition);
  font-family: var(--mono); background: var(--bg-2);
}
.step-item.active .step-circle {
  border-color: transparent; background: var(--aurora);
  color: #fff; box-shadow: var(--glow-p);
}
.step-item.completed .step-circle {
  border-color: var(--aurora-1); color: var(--aurora-1);
  background: rgba(124,58,237,.1);
}
.step-label { font-size: 14px; font-weight: 500; color: var(--ink-4); padding-top: 5px; transition: var(--transition); }
.step-label-sub { font-size: 12px; color: var(--ink-5); margin-top: 3px; }
.step-item.active .step-label { color: var(--ink); }
.step-item.active .step-label-sub { color: var(--ink-3); }
.step-item.completed .step-label { color: var(--ink-2); }

/* ===== Form Panel ===== */
.form-panel {
  flex: 1; margin-left: 420px;
  display: flex; align-items: center; justify-content: center;
  padding: 48px 60px; min-height: 100vh;
}
.form-container { width: 100%; max-width: 520px; position: relative; z-index: 2; }

/* ===== Form Elements ===== */
.form-title {
  font-family: var(--display); font-size: 32px; font-weight: 700;
  color: var(--ink); margin-bottom: 8px;
  letter-spacing: -.025em; line-height: 1.15;
}
.form-title em, .form-title .grad {
  font-style: normal;
  background: var(--aurora);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; font-weight: 800;
}
.form-desc { font-size: 15px; color: var(--ink-3); margin-bottom: 36px; line-height: 1.6; }

.field-group { margin-bottom: 24px; }
.field-label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--ink-2); margin-bottom: 8px;
  letter-spacing: .06em; text-transform: uppercase;
}
.field-label .optional {
  font-weight: 400; color: var(--ink-4);
  text-transform: none; font-size: 12px; letter-spacing: 0;
}
.input-wrap { position: relative; }

.field-input {
  width: 100%; padding: 14px 16px;
  border: 1px solid var(--line-2); border-radius: var(--r-sm);
  font-size: 15px; font-family: var(--sans);
  color: var(--ink); background: var(--bg-2);
  transition: var(--transition); outline: none;
}
.field-input::placeholder { color: var(--ink-4); }
.field-input:hover { border-color: var(--line-3); }
.field-input:focus {
  border-color: var(--aurora-1); background: var(--bg-3);
  box-shadow: 0 0 0 3px rgba(124,58,237,.18);
}
.field-input.error {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px rgba(239,68,68,.15);
}
.field-input.has-toggle { padding-right: 70px; }

.field-error { font-size: 12px; color: var(--danger); margin-top: 6px; display: none; }
.field-error.show { display: block; }
.field-hint { font-size: 12px; color: var(--ink-4); margin-top: 6px; line-height: 1.5; }

/* ===== Password ===== */
.pw-toggle {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: var(--glass-2); border: 1px solid var(--line-2);
  cursor: pointer; font-size: 11px; color: var(--ink-3);
  padding: 5px 12px; user-select: none; border-radius: 6px;
  font-family: var(--mono); font-weight: 600;
  letter-spacing: .04em; z-index: 2; transition: var(--transition);
}
.pw-toggle:hover { color: var(--ink); border-color: var(--line-3); background: var(--glass-3); }

.pw-requirements {
  margin-top: 12px; padding: 14px 16px;
  background: var(--glass); border: 1px solid var(--line);
  border-radius: var(--r-sm); backdrop-filter: blur(8px);
}
.pw-req-title {
  font-size: 11px; font-weight: 700; color: var(--ink-3);
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 10px; font-family: var(--mono);
}
.pw-req-item {
  display: flex; align-items: center; gap: 8px;
  padding: 4px 0; font-size: 13px; color: var(--ink-4);
  transition: var(--transition);
}
.pw-req-item.met { color: var(--success); }
.pw-req-ico {
  width: 18px; height: 18px; border-radius: 50%;
  border: 1.5px solid var(--line-3);
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; transition: var(--transition); flex-shrink: 0;
}
.pw-req-item.met .pw-req-ico {
  border-color: var(--success); background: var(--success);
  color: #fff; box-shadow: var(--glow-success);
}

.pw-strength { display: flex; gap: 4px; margin-top: 10px; }
.pw-bar { height: 3px; flex: 1; background: var(--line); border-radius: 2px; transition: var(--transition); }
.pw-bar.weak { background: var(--danger); }
.pw-bar.med { background: var(--warn); }
.pw-bar.strong { background: var(--success); }
.pw-strength-label { font-size: 12px; margin-top: 6px; font-weight: 500; }
.pw-strength-label.weak { color: var(--danger); }
.pw-strength-label.medium { color: var(--warn); }
.pw-strength-label.strong { color: var(--success); }

/* ===== Checkbox ===== */
.check-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; cursor: pointer; user-select: none; }
.check-box {
  width: 20px; height: 20px;
  border: 1.5px solid var(--line-3); border-radius: 5px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: var(--transition); margin-top: 1px; cursor: pointer;
  background: var(--bg-2);
}
.check-box:hover { border-color: var(--aurora-1); }
.check-box.checked {
  background: var(--aurora); border-color: transparent;
  box-shadow: var(--glow-p);
}
.check-box.checked::after { content: '✓'; color: #fff; font-size: 12px; font-weight: 700; }
.check-text { font-size: 13px; color: var(--ink-3); line-height: 1.5; }
.check-text a {
  background: var(--aurora);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; font-weight: 600; text-decoration: none;
}
.check-text a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ===== Buttons ===== */
.btn-primary {
  width: 100%; padding: 14px 24px;
  background: var(--aurora); color: #fff;
  border: none; border-radius: var(--r-sm);
  font-size: 15px; font-weight: 700; cursor: pointer;
  transition: var(--transition); font-family: var(--sans);
  letter-spacing: -.005em;
  box-shadow: var(--glow-p), 0 1px 0 rgba(255,255,255,.2) inset;
  position: relative; overflow: hidden;
}
.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: var(--glow-p), var(--glow-m), 0 1px 0 rgba(255,255,255,.2) inset;
}
.btn-primary:active { transform: translateY(0); }
.btn-primary:disabled {
  background: var(--bg-3); color: var(--ink-4);
  cursor: not-allowed; transform: none; box-shadow: none;
}

.btn-secondary {
  width: 100%; padding: 13px 24px;
  background: var(--glass); color: var(--ink-2);
  border: 1px solid var(--line-2); border-radius: var(--r-sm);
  font-size: 14px; font-weight: 500;
  cursor: pointer; transition: var(--transition);
  font-family: var(--sans); margin-top: 12px;
  text-align: center; display: block; text-decoration: none;
  backdrop-filter: blur(8px);
}
.btn-secondary:hover {
  background: var(--glass-2); border-color: var(--line-3);
  color: var(--ink);
}

.btn-row { display: flex; gap: 12px; margin-top: 32px; }
.btn-row .btn-primary { flex: 1; }

.btn-back {
  padding: 13px 20px; background: var(--glass);
  color: var(--ink-3); border: 1px solid var(--line-2);
  border-radius: var(--r-sm); font-size: 14px; font-weight: 500;
  cursor: pointer; font-family: var(--sans); white-space: nowrap;
  backdrop-filter: blur(8px); transition: var(--transition);
}
.btn-back:hover {
  border-color: var(--line-3); color: var(--ink);
  background: var(--glass-2);
}

.btn-danger {
  padding: 10px 20px; background: transparent;
  color: var(--ink-4); border: none;
  font-size: 13px; cursor: pointer; font-family: var(--sans);
  margin-top: 16px; text-align: center; width: 100%;
  transition: var(--transition);
}
.btn-danger:hover { color: var(--danger); }

.btn-fetch {
  padding: 14px 20px;
  background: rgba(124,58,237,.12); color: var(--aurora-1);
  border: 1px solid rgba(124,58,237,.4);
  border-radius: var(--r-sm); font-size: 14px; font-weight: 600;
  cursor: pointer; font-family: var(--sans); white-space: nowrap;
  transition: var(--transition);
}
.btn-fetch:hover {
  background: var(--aurora); color: #fff;
  border-color: transparent; box-shadow: var(--glow-p);
}

/* ===== Misc ===== */
.or-divider { display: flex; align-items: center; gap: 16px; margin: 28px 0; color: var(--ink-4); }
.or-divider::before, .or-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.or-divider span {
  font-size: 12px; color: var(--ink-4);
  text-transform: uppercase; letter-spacing: .1em; font-family: var(--mono);
}

.agoda-fetch-row { display: flex; gap: 10px; }
.agoda-fetch-row .field-input { flex: 1; }

/* ===== Hotel Preview ===== */
.hotel-preview {
  display: none; margin-top: 24px;
  background: var(--glass); border: 1px solid var(--line-2);
  border-radius: var(--r); overflow: hidden;
  animation: fadeUp .4s ease;
  backdrop-filter: blur(20px); position: relative;
}
.hotel-preview.show { display: block; }
.hotel-preview-header {
  padding: 20px 24px; background: rgba(124,58,237,.08);
  border-bottom: 1px solid var(--line);
}
.hotel-preview-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--aurora); color: #fff;
  padding: 4px 12px; border-radius: 20px;
  font-size: 12px; font-weight: 600;
  box-shadow: var(--glow-p);
}
.hotel-preview-badge::before { content: '✓'; font-size: 10px; }
.hotel-preview-body { padding: 24px; }

.hotel-name-display {
  font-family: var(--display); font-size: 22px; font-weight: 700;
  color: var(--ink); margin-bottom: 6px; letter-spacing: -.02em;
}
.hotel-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; }
.hotel-meta-item { font-size: 13px; color: var(--ink-3); display: flex; align-items: center; gap: 6px; }
.hotel-stars { color: var(--aurora-5); font-size: 14px; letter-spacing: 2px; margin-top: 4px; }
.hotel-edit-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  margin-top: 20px; padding-top: 20px;
  border-top: 1px solid var(--line);
}
.hotel-edit-grid .field-group { margin-bottom: 0; }

/* ===== Toast ===== */
.toast {
  position: fixed; bottom: 32px; left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: var(--bg-3); color: var(--ink);
  padding: 14px 24px; border-radius: var(--r);
  font-size: 14px; font-weight: 500; z-index: 9999;
  transition: transform .3s cubic-bezier(.4,0,.2,1);
  box-shadow: var(--sh-3); max-width: 90vw; text-align: center;
  border: 1px solid var(--line-2); backdrop-filter: blur(20px);
}
.toast.show { transform: translateX(-50%) translateY(0); }
.toast.error { background: rgba(239,68,68,.95); border-color: rgba(239,68,68,.5); color: #fff; }
.toast.success { background: rgba(16,185,129,.95); border-color: rgba(16,185,129,.5); color: #fff; }

/* ===== Spinner ===== */
.spinner {
  display: inline-block; width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,.25);
  border-top-color: #fff; border-radius: 50%;
  animation: spin .6s linear infinite;
  margin-right: 8px; vertical-align: middle;
}
.spinner-dark { border-color: rgba(124,58,237,.2); border-top-color: var(--aurora-1); }

/* ===== Animations ===== */
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes successPop { 0% { transform: scale(0); } 60% { transform: scale(1.15); } 100% { transform: scale(1); } }
@keyframes pulse { 0%,100% { box-shadow: 0 0 0 4px rgba(6,182,212,.18); } 50% { box-shadow: 0 0 0 10px rgba(6,182,212,.04); } }

/* ===== Dashboard ===== */
.dash-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 32px; padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.dash-welcome {
  font-family: var(--display); font-size: 26px; font-weight: 700;
  color: var(--ink); letter-spacing: -.02em;
}
.dash-welcome em, .dash-welcome .grad {
  font-style: normal;
  background: var(--aurora);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
}
.dash-email { font-size: 13px; color: var(--ink-4); margin-top: 4px; font-family: var(--mono); }
.dash-logout {
  padding: 8px 16px; background: var(--glass);
  color: var(--ink-3); border: 1px solid var(--line-2);
  border-radius: var(--r-sm); font-size: 13px;
  cursor: pointer; font-family: var(--sans);
  transition: var(--transition); backdrop-filter: blur(8px);
}
.dash-logout:hover { border-color: var(--danger); color: var(--danger); background: rgba(239,68,68,.08); }

/* ===== Order Card ===== */
.order-card {
  background: var(--glass); border: 1px solid var(--line-2);
  border-radius: var(--r-lg); overflow: hidden;
  backdrop-filter: blur(24px) saturate(140%);
  box-shadow: var(--sh-3), 0 1px 0 rgba(255,255,255,.06) inset;
  position: relative;
}
.order-card-top { padding: 28px; border-bottom: 1px dashed var(--line-2); }
.order-product-name {
  font-family: var(--display); font-size: 24px; font-weight: 700;
  color: var(--ink); margin-bottom: 8px; letter-spacing: -.02em;
}
.order-product-desc { font-size: 14px; color: var(--ink-3); line-height: 1.6; }
.order-features { padding: 24px 28px; border-bottom: 1px dashed var(--line-2); }
.order-feature { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; }
.order-feature:not(:last-child) { border-bottom: 1px solid var(--line); }
.order-feature-check {
  width: 20px; height: 20px;
  background: rgba(124,58,237,.15); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; color: var(--aurora-1); flex-shrink: 0;
  border: 1px solid rgba(124,58,237,.3);
}
.order-feature-text { font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.order-pricing { padding: 24px 28px; }
.order-price-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; }
.order-price-label { font-size: 14px; color: var(--ink-3); }
.order-price-value { font-size: 14px; color: var(--ink-2); font-weight: 500; font-family: var(--mono); }
.order-price-total { border-top: 2px solid var(--line-2); margin-top: 12px; padding-top: 14px; }
.order-price-total .order-price-label { font-size: 16px; font-weight: 700; color: var(--ink); }
.order-price-total .order-price-value {
  font-family: var(--mono); font-size: 32px; font-weight: 700;
  background: var(--aurora);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; letter-spacing: -.02em;
}

.refund-note {
  margin-top: 20px; padding: 14px 18px;
  background: rgba(124,58,237,.08); border-radius: var(--r-sm);
  border-left: 3px solid var(--aurora-1);
}
.refund-note-title {
  font-size: 11px; font-weight: 700; color: var(--aurora-1);
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 4px; font-family: var(--mono);
}
.refund-note-text { font-size: 13px; color: var(--ink-2); line-height: 1.5; }

.secure-row {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; margin-top: 16px;
  font-size: 12px; color: var(--ink-4); font-family: var(--mono);
}

/* ===== Success ===== */
.success-wrap { text-align: center; padding: 40px 0; }
.success-ico {
  width: 80px; height: 80px;
  background: var(--aurora); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 28px; font-size: 36px; color: #fff;
  animation: successPop .5s ease;
  box-shadow: var(--glow-p), var(--glow-m);
}
.success-title {
  font-family: var(--display); font-size: 30px; font-weight: 700;
  color: var(--ink); margin-bottom: 10px; letter-spacing: -.025em;
}
.success-desc {
  font-size: 15px; color: var(--ink-3); line-height: 1.6;
  max-width: 440px; margin: 0 auto 32px;
}

.success-next-box {
  background: var(--glass); border: 1px solid var(--line-2);
  border-radius: var(--r); padding: 24px;
  text-align: left; margin-bottom: 24px;
  backdrop-filter: blur(12px);
}
.success-next-title {
  font-size: 11px; font-weight: 700; color: var(--aurora-1);
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 16px; font-family: var(--mono);
}
.success-next-step { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; }
.success-next-num {
  width: 24px; height: 24px; background: var(--aurora);
  color: #fff; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; flex-shrink: 0;
  font-family: var(--mono); box-shadow: var(--glow-p);
}
.success-next-text { font-size: 14px; color: var(--ink-2); line-height: 1.5; padding-top: 2px; }

/* ===== Glass Card (v2 신규) ===== */
.glass-card {
  background: var(--glass); border: 1px solid var(--line-2);
  border-radius: var(--r-lg);
  backdrop-filter: blur(24px) saturate(140%);
  box-shadow: var(--sh-2);
  padding: 24px; position: relative; overflow: hidden;
}

/* ===== Eyebrow Tag (v2 신규) ===== */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 12px; border-radius: 99px;
  background: var(--glass); border: 1px solid var(--line-2);
  font-size: 12px; font-weight: 500; color: var(--ink-2);
  margin-bottom: 24px; backdrop-filter: blur(8px);
}
.eyebrow-tag {
  background: var(--aurora); color: #fff;
  padding: 3px 9px; border-radius: 99px;
  font-weight: 700; font-size: 10.5px;
  letter-spacing: .06em; text-transform: uppercase;
  margin-right: 4px;
}

/* ===== Live Dot ===== */
.live-dot {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 600; color: var(--aurora-3);
  text-transform: uppercase; letter-spacing: .08em;
  font-family: var(--mono);
}
.live-dot::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--aurora-3);
  box-shadow: 0 0 0 4px rgba(6,182,212,.18);
  animation: pulse 2s infinite;
}

/* ===== Responsive ===== */
@media (max-width: 960px) {
  .brand-panel { display: none; }
  .form-panel { margin-left: 0; padding: 32px 24px; }
  .hotel-edit-grid { grid-template-columns: 1fr; }
  .dash-header { flex-wrap: wrap; gap: 12px; }
  .aurora-blob { filter: blur(80px); }
  .form-title { font-size: 26px; }
}

@media (max-width: 640px) {
  .form-panel { padding: 24px 16px; }
  .form-container { max-width: 100%; }
  .form-title { font-size: 24px; }
  .order-card-top, .order-features, .order-pricing { padding: 20px; }
}

/* ===== Reduced Motion ===== */
@media (prefers-reduced-motion: reduce) {
  .aurora-blob { animation: none; }
  .live-dot::before { animation: none; }
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ============================================================
   ☀️ ADMIN 공통 라이트 분기 — BL-ADMIN-LIGHTMODE step5-shared (D-022)
   admin-status가 step5c에서 페이지 인라인으로 박은 79건 중
   "모든 admin 페이지에 공통" 패턴만 shared.css로 끌어올림.
   페이지 고유 분기는 페이지 내부에 그대로 둔다.
   효과: 11개 admin 페이지 자동 라이트 적용, 신규 admin도 자동.
   ============================================================ */

/* ----- 1. 다크 전용 인라인 글자색 → 라이트 반전 (가장 광범위) ----- */
[data-theme="light"] [style*="color:#fff"],
[data-theme="light"] [style*="color: #fff"]      { color: var(--ink) !important; }
[data-theme="light"] [style*="color:#cbd5e1"],
[data-theme="light"] [style*="color: #cbd5e1"]   { color: var(--ink-3) !important; }
[data-theme="light"] [style*="color:#94a3b8"],
[data-theme="light"] [style*="color: #94a3b8"]   { color: var(--ink-3) !important; }
[data-theme="light"] [style*="color:#64748b"],
[data-theme="light"] [style*="color: #64748b"]   { color: var(--ink-3) !important; }
[data-theme="light"] [style*="color:#c4b5fd"],
[data-theme="light"] [style*="color: #c4b5fd"]   { color: var(--accent-purple-deep) !important; }
[data-theme="light"] [style*="color:#a78bfa"],
[data-theme="light"] [style*="color: #a78bfa"]   { color: var(--accent-purple-deep) !important; }
[data-theme="light"] [style*="color:#60a5fa"],
[data-theme="light"] [style*="color: #60a5fa"]   { color: #2563eb !important; }
[data-theme="light"] [style*="color:#93c5fd"],
[data-theme="light"] [style*="color: #93c5fd"]   { color: #1d4ed8 !important; }
[data-theme="light"] [style*="color:#fca5a5"],
[data-theme="light"] [style*="color: #fca5a5"]   { color: var(--priority-p0) !important; }
[data-theme="light"] [style*="color:#fb923c"],
[data-theme="light"] [style*="color: #fb923c"]   { color: var(--priority-p1) !important; }
[data-theme="light"] [style*="color:#fcd34d"],
[data-theme="light"] [style*="color: #fcd34d"]   { color: #a16207 !important; }
[data-theme="light"] [style*="color:#86efac"],
[data-theme="light"] [style*="color: #86efac"]   { color: #15803d !important; }
[data-theme="light"] [style*="color:#4ade80"],
[data-theme="light"] [style*="color: #4ade80"]   { color: #15803d !important; }

/* ----- 2. 다크 전용 인라인 배경 → 라이트 반전 ----- */
[data-theme="light"] [style*="background:rgba(255,255,255"],
[data-theme="light"] [style*="background: rgba(255,255,255"] {
  background: rgba(15,23,42,0.04) !important;
}
[data-theme="light"] [style*="background:rgba(15,23,42"],
[data-theme="light"] [style*="background: rgba(15,23,42"] {
  background: rgba(15,23,42,0.04) !important;
}
[data-theme="light"] [style*="background:rgba(0,0,0"],
[data-theme="light"] [style*="background: rgba(0,0,0"] {
  background: rgba(15,23,42,0.06) !important;
}
[data-theme="light"] [style*="background:rgba(10,10,15"],
[data-theme="light"] [style*="background: rgba(10,10,15"] {
  background: var(--bg-2) !important;
}

/* ----- 3. doc-* 공통 (charter / decisions / decisions-index / journey 5종) ----- */
[data-theme="light"] .doc-back {
  background: var(--glass) !important;
  color: var(--ink-3) !important;
}
[data-theme="light"] .doc-back:hover {
  background: var(--glass-2) !important;
  color: var(--ink) !important;
}
[data-theme="light"] .doc-area-badge {
  background: var(--accent-purple-bg) !important;
  color: var(--accent-purple-deep) !important;
  border-color: var(--line-2) !important;
}

/* ----- 4. so-* 공통 (admin-service-ops) ----- */
[data-theme="light"] .so-back {
  background: var(--glass) !important;
  color: var(--ink-3) !important;
}
[data-theme="light"] .so-back:hover {
  background: var(--glass-2) !important;
  color: var(--ink) !important;
}

/* ----- 5. topbar (admin-permissions 등) — sticky 다크 강제 → 라이트 ----- */
[data-theme="light"] .topbar {
  background: rgba(255,255,255,0.7) !important;
  border-bottom-color: var(--line-2) !important;
}

/* ----- 6. OS 사이드바 공통 (모든 admin 페이지 동일 레이아웃) ----- */
[data-theme="light"] .os-sidebar {
  background: var(--bg-2);
  border: 1px solid var(--line-2);
  color: var(--ink);
}
[data-theme="light"] .os-sidebar .os-sb-area-label {
  color: var(--ink-3);
  border-bottom: 1px dashed var(--line-2);
}
[data-theme="light"] .os-sidebar .os-sb-menu { color: var(--ink-2); }
[data-theme="light"] .os-sidebar .os-sb-menu:hover {
  background: var(--accent-purple-bg);
  color: var(--accent-purple-deep);
}
[data-theme="light"] .os-sidebar .os-sb-menu.active {
  background: rgba(124,58,237,0.15);
  color: var(--accent-purple-deep);
}
[data-theme="light"] .os-sidebar .os-sb-empty {
  background: #fef3c7;
  border: 1px dashed #fcd34d;
  color: #92400e;
}
[data-theme="light"] .os-sidebar .os-sb-warn {
  color: #b45309;
  background: #fef3c7;
}
[data-theme="light"] .os-sidebar .os-sb-poll {
  color: var(--ink-4);
  border-top: 1px dashed var(--line-2);
}
[data-theme="light"] .os-sidebar a,
[data-theme="light"] .os-sidebar .menu-item,
[data-theme="light"] .os-sidebar li { color: var(--ink-2) !important; }
[data-theme="light"] .os-sidebar a:hover,
[data-theme="light"] .os-sidebar .menu-item:hover {
  background: var(--bg-3);
  color: var(--ink) !important;
}
[data-theme="light"] .os-sidebar .section-title,
[data-theme="light"] .os-sidebar h3,
[data-theme="light"] .os-sidebar h4 { color: var(--ink-3) !important; }

/* ----- 7. 사이드바 하단 라이트/다크 토글 (6단계 미리 슬롯 박음) ----- */
/* ★ step9: bottom 16→56 — 좌하단 .poll-status (⏸ 폴링 일시정지)와 겹침 회피 */
.theme-toggle-fixed {
  position: fixed; bottom: 56px; left: 16px; z-index: 50;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 12px; border-radius: 99px;
  background: var(--bg-2); border: 1px solid var(--line-2);
  color: var(--ink-2); font-size: 12px; font-weight: 500;
  cursor: pointer; backdrop-filter: blur(8px);
  box-shadow: var(--sh-2);
  transition: transform .15s, background .15s;
}
.theme-toggle-fixed:hover { transform: translateY(-1px); background: var(--bg-3); }
.theme-toggle-fixed .tt-icon { font-size: 14px; line-height: 1; }
@media (max-width: 700px) {
  .theme-toggle-fixed { bottom: 48px; left: 12px; padding: 6px 10px; font-size: 11px; }
}

/* admin 공통 라이트 분기 끝 — step5-shared */

/* ============================================================
 * BL-ADMIN-LIGHTMODE step7 — 라이트 가독성 fix
 * (대표님 진단 2026-05-10: 보라 글자/P0 빨강/AUTO 로봇/카테고리 회색 배경)
 * ============================================================ */

/* ── 7-A. ⚡ 진행 중 박스 (in-progress-box) 라이트 가독성 ── */
[data-theme="light"] .in-progress-box {
  background: linear-gradient(135deg, rgba(124,58,237,0.08), rgba(124,58,237,0.02));
  border-color: rgba(124,58,237,0.30);
}
[data-theme="light"] .in-progress-row > .pill {
  background: rgba(124,58,237,0.14);
  color: #5b21b6;  /* 진한 보라 — 흰 배경에서 또렷 */
}
[data-theme="light"] .in-progress-row > .title { color: var(--ink); }
[data-theme="light"] .in-progress-row > button {
  background: #6d28d9; color: #fff;
}
[data-theme="light"] .in-progress-row > button:hover { background: #5b21b6; }
[data-theme="light"] .in-progress-meta { color: var(--ink-3); border-top-color: rgba(124,58,237,0.20); }
[data-theme="light"] .in-progress-meta .item .label { color: rgba(91,33,182,0.75); }
[data-theme="light"] .in-progress-progress { border-top-color: rgba(124,58,237,0.20); }
[data-theme="light"] .in-progress-progress .pp-step.done { color: #5b21b6; }
[data-theme="light"] .in-progress-progress .pp-step.current {
  color: var(--ink); background: rgba(124,58,237,0.10);
}
[data-theme="light"] .in-progress-recent { border-top-color: rgba(124,58,237,0.20); color: var(--ink-3); }
[data-theme="light"] .in-progress-recent .label-row { color: #5b21b6; }
[data-theme="light"] .in-progress-recent .commit-row .hash { color: #5b21b6; }
[data-theme="light"] .in-progress-recent .commit-row .msg { color: var(--ink-3); }

/* ── 7-B. 자율 큐 안의 "0번 = 진행 중" 카드 ── */
[data-theme="light"] .auto-queue-card.in-progress-card {
  background: linear-gradient(135deg, rgba(124,58,237,0.06), rgba(124,58,237,0.01));
  border-color: rgba(124,58,237,0.25);
}
[data-theme="light"] .auto-queue-card.in-progress-card .auto-queue-num {
  background: rgba(124,58,237,0.14); color: #5b21b6;
}

/* ── 7-C. 자율 큐 카드 (AUTO 로봇 / BL-XXX / 시간 글자) 라이트 가독성 ── */
[data-theme="light"] .auto-queue-card {
  background: linear-gradient(135deg, rgba(22,163,74,0.05), rgba(22,163,74,0.01));
  border-color: rgba(22,163,74,0.20);
  border-left-color: #16a34a;
}
[data-theme="light"] .auto-queue-card:hover {
  border-left-color: #15803d;
  box-shadow: 0 4px 12px rgba(22,163,74,0.12);
}
[data-theme="light"] .auto-queue-order { background: rgba(22,163,74,0.14); color: #15803d; }
[data-theme="light"] .auto-queue-card.p0 .auto-queue-order { background: rgba(220,38,38,0.14); color: #b91c1c; }
[data-theme="light"] .auto-queue-card.p1 .auto-queue-order { background: rgba(234,88,12,0.14); color: #c2410c; }
[data-theme="light"] .auto-queue-card.p0 {
  border-left-color: #dc2626;
  background: linear-gradient(135deg, rgba(220,38,38,0.06), rgba(220,38,38,0.01));
}
[data-theme="light"] .auto-queue-card.p1 {
  border-left-color: #ea580c;
  background: linear-gradient(135deg, rgba(234,88,12,0.06), rgba(234,88,12,0.01));
}
[data-theme="light"] .auto-queue-bot-pill {
  background: rgba(22,163,74,0.14); color: #15803d;
}
[data-theme="light"] .auto-queue-title { color: var(--ink); }
[data-theme="light"] .auto-queue-meta { color: var(--ink-3); }
[data-theme="light"] .auto-queue-action {
  background: rgba(22,163,74,0.14); color: #15803d;
}
[data-theme="light"] .auto-queue-card:hover .auto-queue-action {
  background: rgba(22,163,74,0.22); color: #166534;
}
[data-theme="light"] .auto-queue-empty { color: var(--ink-3); }

/* ── 7-D. 카테고리별 진행률 박스 — 라이트에서 위 카드와 톤 통일 ── */
[data-theme="light"] .cat-progress-section {
  background: var(--bg-2);  /* 흰 카드와 동일 톤 */
  border-color: var(--line);
}
[data-theme="light"] .cat-progress-header { color: var(--ink-2); }
[data-theme="light"] .cat-progress-label { color: var(--ink); }
[data-theme="light"] .cat-progress-hint { color: var(--ink-3); }
[data-theme="light"] .cat-row1 .label { color: var(--ink-3); }
[data-theme="light"] .cat-row1 .name { color: var(--ink); }
[data-theme="light"] .cat-row1 .score { color: var(--ink); }

/* ── 7-E. state-pill (자동/직원/대표님/보류) 라이트 ── */
[data-theme="light"] .state-pill.auto { background: rgba(22,163,74,0.14); color: #15803d; }
[data-theme="light"] .state-pill.staff { background: rgba(37,99,235,0.14); color: #1d4ed8; }
[data-theme="light"] .state-pill.ceo { background: rgba(202,138,4,0.16); color: #854d0e; }
[data-theme="light"] .state-pill.hold { background: rgba(100,116,139,0.18); color: #475569; }

/* ── 7-F. priority pill 공통 (P0 긴급 / P1 중요 / P2 보통) ── */
[data-theme="light"] [class*="prio-p0"],
[data-theme="light"] .pill.p0,
[data-theme="light"] .priority-p0 {
  background: rgba(220,38,38,0.14) !important; color: #b91c1c !important;
}
[data-theme="light"] [class*="prio-p1"],
[data-theme="light"] .pill.p1,
[data-theme="light"] .priority-p1 {
  background: rgba(234,88,12,0.14) !important; color: #c2410c !important;
}
[data-theme="light"] [class*="prio-p2"],
[data-theme="light"] .pill.p2,
[data-theme="light"] .priority-p2 {
  background: rgba(202,138,4,0.16) !important; color: #854d0e !important;
}

/* admin 라이트 가독성 패치 끝 — step7 */

/* ============================================================
 * BL-ADMIN-LIGHTMODE step8 — 활동 이력 모달 라이트 발란스
 * (대표님 진단 2026-05-10: 펼친 패널 핑크 헤딩·보라 버튼·코드 회색 배경 → 카드와 톤 안 맞음)
 * ============================================================ */

/* ── 8-A. 활동 이력 박스 본체 + 행 hover 톤 다운 ── */
[data-theme="light"] .activity-box { background: var(--bg-2); border-color: var(--line); }
[data-theme="light"] .activity-row { background: rgba(37,99,235,0.04); }
[data-theme="light"] .activity-row.ceo { background: rgba(202,138,4,0.05); }
[data-theme="light"] .activity-row.bot { background: rgba(22,163,74,0.05); }
[data-theme="light"] .activity-row.staff { background: rgba(37,99,235,0.07); }
[data-theme="light"] .activity-row:hover { background: rgba(37,99,235,0.10); }
[data-theme="light"] .activity-row.ceo:hover { background: rgba(202,138,4,0.10); }
[data-theme="light"] .activity-row.bot:hover { background: rgba(22,163,74,0.10); }
[data-theme="light"] .activity-row .time,
[data-theme="light"] .activity-row .source { color: var(--ink-3); }
[data-theme="light"] .activity-row .action { color: var(--ink); }

/* ── 8-B. 필터 버튼 (전체/CEO/Staff/Bot) — 카드 위에서 부드럽게 ── */
[data-theme="light"] .activity-filter-btn {
  border-color: var(--line-2); color: var(--ink-3); background: transparent;
}
[data-theme="light"] .activity-filter-btn:hover { background: var(--bg-3); color: var(--ink); }
[data-theme="light"] .activity-filter-btn.active {
  background: rgba(124,58,237,0.12); color: #5b21b6; border-color: rgba(124,58,237,0.30);
}

/* ── 8-C. 펼친 패널 본체 — 어두운 박스 → 부드러운 카드 톤 ── */
[data-theme="light"] .activity-expand {
  background: var(--bg-3);             /* 위 카드와 자연스럽게 한 톤 낮은 흰 */
  border-color: var(--line);
  color: var(--ink);
}

/* ── 8-D. 사람용/AI용/코드 변경 탭 — 활성 시 부드러운 보라 ── */
[data-theme="light"] .activity-tab {
  border-color: var(--line-2); color: var(--ink-3); background: transparent;
}
[data-theme="light"] .activity-tab:hover { background: var(--bg-2); color: var(--ink); }
[data-theme="light"] .activity-tab.active {
  background: rgba(124,58,237,0.12); color: #5b21b6; border-color: rgba(124,58,237,0.30);
}
[data-theme="light"] .activity-tabs { border-bottom-color: var(--line); }

/* ── 8-E. 탭 내용 헤딩 — 핑크 → 진한 자주 (튀지 않게) ── */
[data-theme="light"] .activity-tab-pane h1,
[data-theme="light"] .activity-tab-pane h2,
[data-theme="light"] .activity-tab-pane h3 { color: #5b21b6; }

/* ── 8-F. pre/code 블록 — 어두운 회색 → 라이트 톤 ── */
[data-theme="light"] .activity-tab-pane pre {
  background: var(--bg-2);
  border: 1px solid var(--line);
  color: var(--ink);
}
[data-theme="light"] .activity-tab-pane code {
  background: rgba(124,58,237,0.08);
  color: #5b21b6;
}
[data-theme="light"] .activity-tab-pane .file-line .add { color: #15803d; }
[data-theme="light"] .activity-tab-pane .file-line .del { color: #b91c1c; }
[data-theme="light"] .activity-tab-empty,
[data-theme="light"] .activity-tab-loading { color: var(--ink-3); }

/* ── 8-G. poll 토스트/상태 (사이드 알림) ── */
[data-theme="light"] .poll-toast {
  background: rgba(22,163,74,0.14); color: #15803d; border-color: rgba(22,163,74,0.30);
}
[data-theme="light"] .poll-status {
  background: var(--bg-2); color: var(--ink-3); border-color: var(--line);
}

/* admin 라이트 — 활동 이력 모달 발란스 끝 — step8 */

/* ============================================================
 * BL-HUMAN-TAB-ALWAYS-SHOW — 활동 정체 카드 (🎯 무엇 / 📍 왜) 라이트 톤
 * ============================================================ */
[data-theme="light"] .activity-tab-pane > div > div[style*="border-left:3px solid #a855f7"] {
  background: rgba(124,58,237,0.06) !important;
  border-left-color: #7c3aed !important;
}
[data-theme="light"] .activity-tab-pane > div > div[style*="border-left:3px solid #60a5fa"] {
  background: rgba(37,99,235,0.06) !important;
  border-left-color: #2563eb !important;
}

/* AI용 탭 — 메타 카드(보라) + 봇 정의 카드(초록) + raw action 어두운 박스 */
[data-theme="light"] .activity-tab-pane div[style*="border-left:3px solid #a855f7"] {
  background: rgba(124,58,237,0.06) !important;
  border-left-color: #7c3aed !important;
}
[data-theme="light"] .activity-tab-pane div[style*="border-left:3px solid #16a34a"] {
  background: rgba(22,163,74,0.05) !important;
  border-left-color: #15803d !important;
}
[data-theme="light"] .activity-tab-pane div[style*="border-left:2px solid #60a5fa"] {
  background: var(--bg-3) !important;
  border-left-color: #2563eb !important;
  color: var(--ink) !important;
}
/* AI 탭 안 code 인라인 — 라이트에선 회색 카드로 */
[data-theme="light"] .activity-tab-pane code[style*="rgba(255,255,255,0.04)"],
[data-theme="light"] .activity-tab-pane code[style*="rgba(255,255,255,0.05)"] {
  background: var(--bg-3) !important;
  color: var(--ink) !important;
}

/* ============================================================ */

/* ============================================================ */
/* === tw-header (공통 매니저 헤더, BL-COMMON-HEADER-UNIFY) === */
/* 사용: <header id="tw-common-header"></header> + TW.renderCommonHeader({activeTab}) */
.tw-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 24px; border-bottom: 1px solid var(--line-2);
  background: var(--bg-1); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  position: sticky; top: 0; z-index: 100;
}

.tw-header__logo {
  display: flex; align-items: center; gap: 10px;
  text-decoration: none; color: inherit;
}
.tw-header__logo-icon {
  width: 28px; height: 28px; border-radius: 7px;
  background: var(--aurora);
  color: #fff; font-weight: 700; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--display);
}
.tw-header__logo-text {
  font-weight: 700; color: var(--ink);
  font-family: var(--display); font-size: 14px; letter-spacing: 0.3px;
}
.tw-header__logo-sub {
  font-size: 11px; color: var(--ink-3); margin-left: 6px;
  padding-left: 10px; border-left: 1px solid var(--line-2);
}

.tw-header__nav { display: flex; gap: 4px; }
.tw-header__tab {
  padding: 8px 14px; border-radius: 8px;
  color: var(--ink-2); text-decoration: none;
  font-weight: 500; font-size: 13px;
  transition: var(--transition);
  white-space: nowrap;
}
.tw-header__tab:hover { color: var(--ink); background: var(--glass); }
.tw-header__tab--active {
  background: var(--aurora); color: #fff !important;
  box-shadow: 0 2px 8px rgba(124,58,237,0.25);
}
.tw-header__tab--active:hover { color: #fff; }

.tw-header__right { display: flex; align-items: center; gap: 10px; }

.tw-header__lang {
  display: flex; gap: 2px;
  background: var(--bg-2); border-radius: 8px;
  padding: 2px; border: 1px solid var(--line-2);
}
.tw-header__lang-btn {
  background: transparent; border: none;
  color: var(--ink-3);
  padding: 5px 10px; border-radius: 6px;
  cursor: pointer; font-size: 12px; font-weight: 500;
  transition: var(--transition);
}
.tw-header__lang-btn:hover { color: var(--ink-2); }
.tw-header__lang-btn--active {
  background: var(--glass-2); color: var(--ink);
}

.tw-header__user { display: flex; align-items: center; gap: 8px; }
.tw-header__user-avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--aurora);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 700; font-size: 12px;
}
.tw-header__user-name {
  color: var(--ink-2); font-size: 13px;
  max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.tw-header__settings, .tw-header__signout {
  padding: 7px 14px; border-radius: 8px;
  background: var(--glass); color: var(--ink-2) !important;
  border: 1px solid var(--line-2);
  text-decoration: none;
  font-size: 13px; font-weight: 500;
  cursor: pointer; transition: var(--transition);
  display: inline-flex; align-items: center; gap: 4px;
  font-family: inherit; line-height: 1.2;
}
.tw-header__settings:hover, .tw-header__signout:hover {
  background: var(--glass-2); color: var(--ink) !important;
  border-color: var(--line-3);
}

/* 모바일 (768px 이하) */
@media (max-width: 768px) {
  .tw-header {
    flex-wrap: wrap; padding: 10px 14px; gap: 10px;
  }
  .tw-header__logo-sub { display: none; }
  .tw-header__nav {
    order: 3; width: 100%;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tw-header__nav::-webkit-scrollbar { display: none; }
  .tw-header__user-name { display: none; }
  .tw-header__settings, .tw-header__signout { padding: 6px 10px; font-size: 12px; }
}
