/* @LAYER: VIEW | @PORT: 8002 | @ROLE: NEXUS 브랜드 테마 — 검정·그래파이트·흰색·UHD 레드 + 최소 상태색 (CEO 2026-10-08 E-final 승인본) · 색·상태만 바꾸고 크기·간격은 원본 | @KEY: body.uhd-console 의 --nx-* 색 이름표
 *
 * ★ 왜 (CEO 2026-10-07~08, 미리보기 7차례 끝에 승인)
 *   "블루-그레이 관리자 콘솔이 아니라 UHDPRO 브랜드가 느껴지는 Premium AI Security Control Center"
 *   "색상, hover, selected, active 상태만 새 디자인을 적용하고 기본 geometry 는 최초 원본을 유지"
 *
 * ★ 원칙
 *   ① 이 파일은 색·마우스 올림·선택·활성 상태만 정한다. 아이콘·버튼·카드 크기, 안쪽 여백, 간격, 글자 크기, 둥글기,
 *      머리글 높이, 좌우 비율은 원본(studio :root · launcher_home.css · home_console_theme.css)이 쥔다 — 여기 적지 않는다.
 *      (예외 = 새로 만든 요소 .nxb-* / 엔진 현황 미니 카드 #dash-quality — CEO 가 구조째 승인)
 *   ② 로고(.logo-uhdpro / .logo-ai)와 로고 색 변수(--uhd-red / --ai-blue / --ai-neon)는 건드리지 않는다(디자인 기준표 §1).
 *   ③ 빨강 역할 = 주 버튼 1개 · 선택 2px · 핵심 섹션(엔진 현황·작업 묶음 제목) 짧은 막대 · 화면 제목 아래 짧은 막대.
 *      화면 폭 전체 빨강 줄 금지(CEO "UI divider 처럼 보인다").
 *   ④ 아이콘 = 작업(핵심 10개) 차분한 빨강 / 서비스 중간 회색 / 설정·운영 낮은 회색 / 마우스 올림·선택 밝은 빨강.
 *      상태 = 정상·사용 중 초록 / 주의 호박 / 오류 주황빛 빨강(브랜드 빨강과 섞이지 않게).
 *   ⑤ 되돌리기 = studio_v2.0.html 의 link·script 2줄 삭제.
 */

/* ── 색 이름표 (콘솔 안에서만) ────────────────────────────────────────── */
body.uhd-console {
  --nx-bg: #090A0C; --nx-surface: #101216; --nx-svc: #14171B; --nx-card: #171A1F;
  --nx-core: #272B32; --nx-core-sel: #2C3139; --nx-core-hover: #30353D; --nx-sel: #24282E; --nx-work-area: #1A1D23;   /* 핵심 카드 면: 10-12 CEO 최종 확정 B안 — #20242A(밝기 14.5%) → #262A31 → #2B3038(19.4%) → A/B 비교 후 #272B32(17.5%) 확정 · 선택·마우스 올림은 그보다 한 단계씩 위 · 추가 색 튜닝 없음 */
  --nx-line: #2A2F36; --nx-hair: rgba(255,255,255,.045);
  --nx-text: #F5F7FA; --nx-sub: #B7BDC7; --nx-muted: #8C949F; --nx-idle: #9AA1AB; --nx-icon-low: #6F7680;
  --nx-brand: #E51B2B; --nx-brand-hover: #F02634; --nx-brand-ink: #FF3B47; --nx-brand-muted: #CE4049;   /* 핵심 아이콘 평소 빨강: 10-12 CEO "한 단계 밝게" → "10~15% 더 선명하게" — #A8575C → #C4484F → #CE4049(채도 51→59% · 새 면 위 대비 2.8) · 올림·선택은 #FF3B47 */
  --nx-ok: #22D98B; --nx-warn: #FFB547; --nx-danger: #FF7A45;
  /* studio 공용 변수도 같은 결로(엔진 화면의 var() 사용처까지 바탕만 따라옴 — 화면별 세부 색은 2단계) */
  --bg-dark: #090A0C; --bg-panel: #101216; --bg-workspace: #090A0C; --border-color: #2A2F36; --text-muted: #B7BDC7;
}

/* ── 바탕: 단색 그래파이트 · 육각 무늬·바닥 격자·청록 광원 없음 ───────── */
body.uhd-console .app-container { background: var(--nx-bg); }
body.uhd-console .app-container::before, body.uhd-console .app-container::after { display: none; }

/* ── 머리글: 바탕 면 + 옅은 회색 구분선(빨강 줄 없음) ─────────────────── */
body.uhd-console .top-bar { background: var(--nx-surface); backdrop-filter: none; border-bottom-color: rgba(255,255,255,.06); }
body.uhd-console .lh-head { align-items: center; top: 0; }          /* 두 줄 머리글은 가운데 맞춤(아랫선 맞춤은 한 줄일 때 기준) */
body.uhd-console .lh-head > .lh-brand { top: 0; }
body.nx-brand-head .lh-head > .breadcrumb { display: none; }         /* 경로 글은 .nxb-head 가 두 줄로 대신 보여 준다(원본 노드는 그대로 둠) */
.nxb-head { display: flex; flex-direction: column; justify-content: center; line-height: 1.15; min-width: 0; padding-left: 16px; border-left: 1px solid var(--nx-line); }
.nxb-cap { font-family: 'Orbitron', sans-serif; font-size: .58rem; font-weight: 700; letter-spacing: 2.6px; color: var(--nx-muted); }
.nxb-cap s { text-decoration: none; font-family: 'Noto Sans KR', sans-serif; letter-spacing: 0; font-weight: 500; margin-left: 8px; color: var(--nx-muted); opacity: .8; }
.nxb-title { font-size: 1.2rem; font-weight: 700; color: var(--nx-text); margin-top: 3px; white-space: nowrap; position: relative; padding-bottom: 3px; }  /* 두 줄 합이 원본 경로 글 높이(40px) 안에 들게 */
.lh-hello { color: var(--nx-sub); } .lh-hello b { color: var(--nx-text); }
body.uhd-console .lh-ib { border-color: var(--nx-line); background: transparent; color: var(--nx-sub); }
body.uhd-console .lh-ib:hover { border-color: var(--nx-line); background: var(--nx-card); color: var(--nx-text); }
/* 상태 표시(LIVE n/m): 색만 — 다 살아 있으면 초록, 일부만이면 호박 */
body.uhd-console .data-source { border-color: var(--nx-line); color: var(--nx-sub); }
body.uhd-console .data-source.live { color: var(--nx-ok); border-color: rgba(34,217,139,.32); background: rgba(34,217,139,.07); }
body.uhd-console .data-source.live.nx-partial { color: var(--nx-warn); border-color: rgba(255,181,71,.35); background: rgba(255,181,71,.07); }
body.uhd-console .data-source.fallback { color: var(--nx-warn); border-color: rgba(255,181,71,.35); }
/* 버튼 3단계: 주(빨강 칠하기, 홈에서만) / 보조(옅은 선) / 셋째(글자만) — 크기는 .btn-action 원본 */
body.uhd-console .top-actions > button[onclick^="refreshStudio"] { background: var(--nx-brand); }
body.uhd-console .top-actions > button[onclick^="refreshStudio"]:hover { background: var(--nx-brand-hover); }
body.uhd-console:not(.nx-home) .top-actions > button[onclick^="refreshStudio"] { background: transparent; border: 1px solid var(--nx-line); color: var(--nx-sub); }
body.uhd-console:not(.nx-home) .top-actions > button[onclick^="refreshStudio"]:hover { background: var(--nx-card); color: var(--nx-text); }
body.uhd-console #acct-mgmt { border-color: var(--nx-line) !important; color: var(--nx-sub) !important; background: transparent !important; }
body.uhd-console #logout-btn { border-color: transparent !important; color: var(--nx-muted) !important; background: transparent !important; }
body.uhd-console #acct-mgmt:hover, body.uhd-console #logout-btn:hover { color: var(--nx-text) !important; background: var(--nx-card) !important; }

/* ── 카드: 그래파이트 면 + 거의 안 보이는 선 + 낮은 그림자(유리·흐림·네온 없음) ── */
body.uhd-console .widget, body.uhd-member .mdash-card {
  background: var(--nx-card); backdrop-filter: none; border-color: var(--nx-hair);
  box-shadow: 0 8px 20px rgba(0,0,0,.35);
}
body.uhd-member .mdash-card:hover { border-color: var(--nx-line); box-shadow: 0 10px 24px rgba(0,0,0,.4); }
body.uhd-member .mdash-card.g-off { border-color: var(--nx-hair); box-shadow: 0 8px 20px rgba(0,0,0,.3); }
/* 경고 카드 = 위험색(주황빛 빨강)으로 — 브랜드 빨강 백라이트·깜빡임은 쓰지 않는다 */
body.uhd-member .mdash-card.g-bad { animation: none; background: linear-gradient(180deg, rgba(255,122,69,.10), var(--nx-card) 55%); border-color: rgba(255,122,69,.5); box-shadow: 0 8px 20px rgba(0,0,0,.35); }
body.uhd-member .mdash-card.g-bad:hover { box-shadow: 0 10px 24px rgba(0,0,0,.4); }
body.uhd-member .mdash-go { color: var(--nx-brand-ink); border-bottom-color: rgba(255,59,71,.35); }
body.uhd-console .widget-header { color: var(--nx-text); }
body.uhd-console .metric-label { color: var(--nx-muted); }
body.uhd-console .metric-value { color: var(--nx-text); text-shadow: none; }
body.uhd-console .chart-placeholder { background: var(--nx-surface); color: var(--nx-muted); }
body.uhd-console #dash-services [style*="background:#00CC44;"] { background: var(--nx-ok) !important; }
body.uhd-console #dash-services [style*="background:#FF3B30;"] { background: var(--nx-danger) !important; }
/* 핵심 섹션(엔진 현황) 제목 앞 짧은 빨강 막대 — 이 1곳만 */
/* 좌측 대시보드 micro-accent 는 딱 2곳(CEO 10-12 "모든 카드 제목에 반복 금지"): ①엔진 현황 제목 앞 3×12 막대 ②누적 지식 수치 앞 5px 점 */
body.uhd-console #auto-kb::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--nx-brand-ink); margin: 0 6px 2px 0; vertical-align: middle; }
body.uhd-console .widget.nx-core-widget .widget-header::before { content: ""; display: inline-block; width: 3px; height: 12px; background: var(--nx-brand-ink); vertical-align: middle; margin: -2px 9px 0 0; }

/* ── 엔진 현황 (CEO "현재 Mini Card 구조는 좋다" → 10-08 기하 QA: 행은 원본 모양, 색·1순위 표시만) ── */
/* 엔진 현황 행 — 기하는 원본 그대로(행 높이 28 · 아래 여백 8 · 안쪽 여백 0 · 간격 없음). CEO 2026-10-08 "원본 geometry 안에서 가독성만 소폭" */
body.uhd-console #dash-quality .metric-label { color: var(--nx-sub); }                       /* 이름표를 한 단계 밝게(흐림 → 보조) */
body.uhd-console #dash-quality .metric-row .metric-value { min-width: 0; overflow-wrap: anywhere; text-align: right; }
body.uhd-console #dash-quality .metric-row.nx-main { position: relative; background: var(--nx-sel); box-shadow: 0 0 0 6px var(--nx-sel); }  /* 1순위 = 선택 카드 면(그림자로 6px 번짐 — 행 크기 불변) */
body.uhd-console #dash-quality .metric-row.nx-main::before { content: ""; position: absolute; left: -6px; top: -6px; bottom: -6px; width: 2px; background: var(--nx-brand-ink); }  /* 왼쪽 빨강 2px */
.nx-st { font-size: .68rem; font-weight: 700; display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; }
.nx-st i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.nx-st.on { color: var(--nx-ok); } .nx-st.on i { background: var(--nx-ok); }
.nx-st.wait { color: var(--nx-idle); } .nx-st.wait i { border: 1px solid var(--nx-idle); }
.nx-st.err { color: var(--nx-danger); } .nx-st.err i { background: var(--nx-danger); }

/* ── 오른쪽 메뉴: 면 밝기 4단계 + 아이콘 색 역할 (크기·간격·둥글기는 launcher_home.css 원본) ── */
body.uhd-console .lh-band-t { color: var(--nx-muted); }
body.uhd-console .lh-band-t::before, body.uhd-console .lh-band-t::after { background: var(--nx-hair); }
body.uhd-console .lh-band-t i { color: var(--nx-muted); }
body.uhd-console .lh-split::before, body.uhd-console .lh-split::after { background: var(--nx-hair); }
body.uhd-console .lh-split b { color: var(--nx-muted); }
body.uhd-console .lh-tile { background: var(--nx-card); backdrop-filter: none; border-color: var(--nx-hair); box-shadow: none; }
body.uhd-console .lh-tile:hover { background: var(--nx-core); border-color: var(--nx-hair); box-shadow: none; }
body.uhd-console .lh-tile.is-current { background: var(--nx-sel); box-shadow: inset 0 -2px 0 var(--nx-brand-ink); }   /* 선택 = 2px 빨강 + 면 변화 */
body.uhd-console .lh-tile:focus-visible { outline-color: var(--nx-brand-ink); }
body.uhd-console .lh-ico { background: rgba(255,255,255,.04); border-color: var(--nx-hair); box-shadow: none; color: var(--nx-muted); }
body.uhd-console .lh-name { color: var(--nx-sub); }
body.uhd-console .lh-lock { color: var(--nx-muted); }
/* 1) 핵심 작업(작업 묶음 10개) = 밝은 면 + 차분한 빨강 아이콘 + 흰 이름 · 묶음 바탕을 한 끗 밝게 · 묶음 제목 앞 빨강 막대 */
body.uhd-console .lh-band[data-b="work"] { background: var(--nx-work-area); border-radius: 2px; box-shadow: 0 0 0 9px var(--nx-work-area); }
body.uhd-console .lh-band[data-b="work"] .lh-band-t { color: var(--nx-text); }
body.uhd-console .lh-band[data-b="work"] .lh-band-t span::before { content: ""; display: inline-block; width: 3px; height: 11px; background: var(--nx-brand-ink); vertical-align: middle; margin: -2px 7px 0 0; }
body.uhd-console .lh-band[data-b="work"] .lh-tile { background: var(--nx-core); }
body.uhd-console .lh-band[data-b="work"] .lh-tile:hover { background: var(--nx-core-hover); }
body.uhd-console .lh-band[data-b="work"] .lh-tile.is-current { background: var(--nx-core-sel); }   /* 핵심 카드의 선택 면은 핵심 면보다 밝게(공용 선택 면 #24282E 는 이제 핵심 면보다 어둡다) */
body.uhd-console .lh-band[data-b="work"] .lh-ico { color: var(--nx-brand-muted); background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.06); box-shadow: none; }
body.uhd-console .lh-band[data-b="work"] .lh-name { color: var(--nx-text); }
/* 2) 서비스 = 한 단계 낮은 면 + 중간 회색 아이콘 */
body.uhd-console .lh-band[data-b="service"] .lh-tile { background: var(--nx-svc); }
body.uhd-console .lh-band[data-b="service"] .lh-tile:hover { background: var(--nx-card); }
body.uhd-console .lh-band[data-b="service"] .lh-ico { color: var(--nx-muted); background: transparent; }
/* 3) 설정·운영 = 바탕 면 + 낮은 회색 아이콘·글자 (크기는 다른 타일과 같다) */
body.uhd-console .lh-band[data-b="setup"] .lh-tile { background: var(--nx-surface); }
body.uhd-console .lh-band[data-b="setup"] .lh-tile:hover { background: var(--nx-svc); }
body.uhd-console .lh-band[data-b="setup"] .lh-ico { color: var(--nx-icon-low); background: transparent; border-color: transparent; }
body.uhd-console .lh-band[data-b="setup"] .lh-name { color: var(--nx-muted); }
/* 4) 마우스 올림·키보드 선택·현재 선택 = 밝은 UHD 레드 아이콘 (묶음 공통) */
body.uhd-console .lh-tile:hover .lh-ico, body.uhd-console .lh-tile:active .lh-ico, body.uhd-console .lh-tile:focus-visible .lh-ico, body.uhd-console .lh-tile.is-current .lh-ico,
body.uhd-console .lh-band[data-b="work"] .lh-tile:hover .lh-ico, body.uhd-console .lh-band[data-b="service"] .lh-tile:hover .lh-ico, body.uhd-console .lh-band[data-b="setup"] .lh-tile:hover .lh-ico {
  color: var(--nx-brand-ink); background: rgba(255,59,71,.14); border-color: rgba(255,59,71,.30); box-shadow: none; filter: none;
}

/* ── 종(알람) 패널 · 제네시스 대화 단추: 청록 → 브랜드 결, 빛 번짐 없음 ── */
body.uhd-console .hap { background: var(--nx-card); border-color: var(--nx-line); box-shadow: 0 18px 40px rgba(0,0,0,.6); }
body.uhd-console .hap-h { border-bottom-color: var(--nx-hair); } body.uhd-console .hap-n { color: var(--nx-brand-ink); }
body.uhd-console .hap-x:hover { border-color: var(--nx-brand-ink); color: var(--nx-brand-ink); }
body.uhd-console .hap-a .ch { color: var(--nx-sub); background: var(--nx-surface); border-color: var(--nx-line); }
body.uhd-console .gd-root { --gd-acc: #FF3B47; --gd-acc-rgb: 255,59,71; --gd-deep: #E51B2B; --gd-deep2: #C01020; }
body.uhd-console .gd-fab { filter: drop-shadow(0 6px 14px rgba(0,0,0,.6)); }
body.uhd-console .gd-fab:hover { filter: drop-shadow(0 8px 18px rgba(0,0,0,.65)); }
body.uhd-console .gd-fab .gd-ring { display: none; }

/* ── 폰(≤820): 원본과 같이 경로 글은 숨긴다(두 줄 머리글도 함께) ─────────── */
@media (max-width: 820px) {
  body.uhd-console .lh-head > .nxb-head { display: none; }
}
