/* ════════════════════════════════════════════════════════════════
   normal.css — "Normal" 테마 (2026-08-26)
   레트로(기본 스킨)는 건드리지 않는다. 전부 :root[data-nmkr-theme="normal"]
   하위로만 덮어쓴다. 기준: ChatGPT 웹 다크 — 검은 배경, 경계 없는 창,
   알약 버튼, 시스템 산세리프, 절제된 상태색.
════════════════════════════════════════════════════════════════ */

/* ── 테마 선택 스위치(로그인 우상단) — 두 테마 공용 기본 ── */
.theme-switch {
  position: fixed; top: 16px; right: 18px; z-index: 300;
  display: inline-flex; gap: 4px; padding: 3px;
  border: 2px solid #28343e; border-radius: 999px; background: #fff;
}
.theme-opt {
  font: 800 12px/1 inherit; color: #28343e; border: none; border-radius: 999px;
  background: transparent; padding: 6px 14px; cursor: pointer;
  transition: background 0.18s, color 0.18s;
}
.theme-opt.on { background: #28343e; color: #fff; }

:root[data-nmkr-theme="normal"] {
  /* 팔레트: 전부 무채색(2026-08-27 사용자 확정 — 보라 등 유채색 금지).
     명도 단계는 aave.com 실측(bg #0f0f10, 백색 100/70/50%)을 따른다.
     주 버튼 = 흰 알약(이미지 25 "Get Started"), 보조 = 회색 알약. */
  --nm-bg: #0f0f10;          /* 본 배경 */
  --nm-bg-deep: #161618;     /* 카드·입력 등 한 단계 면 */
  --nm-raised: #232326;      /* 버튼·칩 */
  --nm-hover: #2c2c30;
  --nm-line: rgba(255, 255, 255, 0.16);   /* 창 경계가 또렷이 보이게(2026-08-27) */
  --nm-text: #ffffff;
  --nm-text-2: rgba(255, 255, 255, 0.7);
  --nm-text-3: rgba(255, 255, 255, 0.5);
  --nm-accent: #ececec;      /* 주 버튼 = 흰 알약 */
  --nm-accent-hover: #ffffff;
  --nm-accent-ink: #0d0d0d;
  --nm-ok: #4ade80;      /* 채팅 오류·성공 같은 기능 신호에만 쓴다 — */
  --nm-warn: #f87171;    /* 배지·버튼 등 장식 요소는 전부 무채색(아래 개별 규칙). */
  --nm-amber: #fbbf24;
  --nm-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo',
    'Noto Sans KR', 'Segoe UI', 'Malgun Gothic', sans-serif;
}

/* ── 공통 바탕 ── */
:root[data-nmkr-theme="normal"] body { background: var(--nm-bg); color: var(--nm-text); font-family: var(--nm-font); }
/* 폰트는 한 벌로 강제한다(중구난방 금지) — 레트로의 모노스페이스·개별 지정을 전부 덮는다.
   아이콘 폰트(Material Symbols)만 예외. 숫자 정렬은 font-variant-numeric이 따로 지켜준다. */
:root[data-nmkr-theme="normal"] body :not(.material-symbols-outlined) {
  font-family: var(--nm-font) !important;
}

:root[data-nmkr-theme="normal"] .theme-switch { border-color: var(--nm-line); background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .theme-opt { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .theme-opt.on { background: var(--nm-accent); color: var(--nm-accent-ink); }

/* ════ 로그인 ════
   레트로 스킨이 #screen-login(ID)로 배경·창을 칠하므로(2026-08-27 실화면 확인)
   같은 속성은 ID를 포함해 덮는다. */
:root[data-nmkr-theme="normal"] #screen-login {
  background: var(--nm-bg) !important; background-image: none !important;
  font-family: var(--nm-font);
}
:root[data-nmkr-theme="normal"] #screen-login .login-space { display: none; }
/* 로그인 창은 보이는 카드로(2026-08-27 5라운드 — "창표시도 안보여") */
:root[data-nmkr-theme="normal"] #screen-login .login-window {
  background: var(--nm-bg-deep) !important; background-image: none !important;
  border: 1px solid var(--nm-line); box-shadow: none; border-radius: 24px;
  max-width: 420px;
}
:root[data-nmkr-theme="normal"] #screen-login .login-win-bar,
:root[data-nmkr-theme="normal"] #screen-login .radio-dial { display: none; }
:root[data-nmkr-theme="normal"] #screen-login .login-win-body { background: transparent !important; }
:root[data-nmkr-theme="normal"] #screen-login .login-title {
  /* 스킨·캐시가 어떤 색을 칠하든 흰색을 보장한다("NEWSMAKER 안 보임" 재발 방지) */
  color: var(--nm-text) !important; font-size: 30px; font-weight: 700; letter-spacing: -0.02em;
  text-shadow: none; opacity: 1;
}
:root[data-nmkr-theme="normal"] #screen-login .radio-logo { border-radius: 14px; border: none; box-shadow: none; }
:root[data-nmkr-theme="normal"] #screen-login .login-card { background: transparent !important; border: none; box-shadow: none; }
:root[data-nmkr-theme="normal"] #screen-login .login-input-wrap { background: transparent; }
:root[data-nmkr-theme="normal"] #screen-login .login-input {
  background: var(--nm-raised) !important; border: 1px solid var(--nm-line); border-radius: 999px;
  color: var(--nm-text); box-shadow: none; padding-left: 44px;
  transition: border-color 0.18s, background 0.18s;
}
:root[data-nmkr-theme="normal"] #screen-login .login-input:focus { border-color: #6b6b6b; box-shadow: none; }
/* 인풋 안 설명 문구는 없앤다(이미지 17) — 자리만 남기고 투명 처리 */
:root[data-nmkr-theme="normal"] #screen-login .login-input::placeholder { color: transparent; }
:root[data-nmkr-theme="normal"] #screen-login .login-input-icon,
:root[data-nmkr-theme="normal"] #screen-login .login-show-pw { color: var(--nm-text-3); }
/* 로그인 버튼: 원래처럼 화살표 원 — 색만 무채색 흰 원(2026-08-27) */
:root[data-nmkr-theme="normal"] #screen-login .login-btn-primary {
  background: var(--nm-accent) !important; background-image: none !important;
  color: var(--nm-accent-ink); border: none; border-radius: 999px; box-shadow: none;
  transition: background 0.18s ease, transform 0.15s ease;
}
:root[data-nmkr-theme="normal"] #screen-login .login-btn-primary:hover { background: var(--nm-accent-hover) !important; transform: none; box-shadow: none; opacity: 1; }
:root[data-nmkr-theme="normal"] #screen-login .login-btn-primary:active { transform: scale(0.97); }
/* 자동 로그인 체크박스(2026-09-09) — 무채색 미니멀 */
:root[data-nmkr-theme="normal"] #screen-login .login-remember {
  color: var(--nm-text-2); font-weight: 500; font-family: var(--nm-font); font-size: 13px;
  justify-content: center;
}
:root[data-nmkr-theme="normal"] #screen-login .login-remember-box {
  accent-color: var(--nm-accent); width: 16px; height: 16px;
}
:root[data-nmkr-theme="normal"] #screen-login .login-remember:hover { color: var(--nm-text); }

/* 로그인 오류 — IDE 확인 팝업과 같은 가운데 카드, ide.js 없이 동작한다. */
:root[data-nmkr-theme="normal"] #login-error-dialog {
  /* dialog UA 기본값을 먼저 걷고 아래 카드 스타일을 적용한다. */
  padding: 0; border: 0; background: transparent; max-height: none;
}
:root[data-nmkr-theme="normal"] #login-error-dialog {
  position: fixed; inset: 0; margin: auto; padding: 20px 24px;
  width: min(360px, calc(100vw - 32px)); max-width: none;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px); overflow-y: auto; box-sizing: border-box;
  background: var(--nm-bg-deep); color: var(--nm-text);
  border: 1px solid var(--nm-line); border-radius: 18px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] #login-error-dialog::backdrop {
  /* Safari 17.4 이전에는 ::backdrop이 상위 토큰을 상속하지 않는다. */
  --nm-backdrop: rgba(0, 0, 0, 0.6);
  background: var(--nm-backdrop);
}
:root[data-nmkr-theme="normal"] #login-error-dialog .login-error-title {
  margin: 0; padding: 0; text-align: center;
  font-size: 16px; font-weight: 600; letter-spacing: -0.01em;
}
:root[data-nmkr-theme="normal"] #login-error-dialog .login-error-message {
  margin: 12px 0 20px; padding: 0; text-align: center;
  color: var(--nm-text); opacity: 0.9; font-size: 14px; line-height: 1.5;
  white-space: pre-wrap; overflow-wrap: anywhere;
}
:root[data-nmkr-theme="normal"] #login-error-dialog .login-error-actions {
  display: flex; justify-content: center; padding: 0;
}
:root[data-nmkr-theme="normal"] #login-error-dialog button {
  min-width: 96px; min-height: 44px; padding: 10px 24px;
  background: var(--nm-accent); color: var(--nm-accent-ink);
  border: none; border-radius: 999px; box-shadow: none;
  font-size: 14px; font-weight: 600; cursor: pointer;
}
:root[data-nmkr-theme="normal"] #login-error-dialog button:hover { background: var(--nm-accent-hover); }
:root[data-nmkr-theme="normal"] #login-error-dialog button:focus-visible {
  outline: 2px solid var(--nm-accent); outline-offset: 3px;
}

/* ════ 무대(홈·리스트·위저드)와 창 ════ */
:root[data-nmkr-theme="normal"] .ide-stage,
:root[data-nmkr-theme="normal"] .ide-stage-dark,
:root[data-nmkr-theme="normal"] .ide-stage-light,
:root[data-nmkr-theme="normal"] .ide-editor,
:root[data-nmkr-theme="normal"] #ide-screen,
:root[data-nmkr-theme="normal"] .ide-home {
  background: var(--nm-bg); background-image: none;
  font-family: var(--nm-font);
}
:root[data-nmkr-theme="normal"] .cw {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 24px;
  box-shadow: none;
}
/* 선택 화면 창 크기 통일(이미지 61) — 홈·리스트·위저드가 전부 같은 크기 */
:root[data-nmkr-theme="normal"] .cw-square {
  aspect-ratio: auto;
  width: min(720px, calc(100vw - 48px));
  height: min(700px, calc(100dvh - 150px));
}
/* 창머리: 구분선 없이, 제목은 진짜 가운데(좌우 요소는 절대배치), 뒤로는 왼쪽 위 */
:root[data-nmkr-theme="normal"] .cw-bar {
  position: relative; justify-content: center;
  background: transparent; border-bottom: none;
  color: var(--nm-text); padding: 20px 56px 14px;
}
:root[data-nmkr-theme="normal"] .cw-dots { display: none; }
:root[data-nmkr-theme="normal"] .cw-bar-r { display: none; }
:root[data-nmkr-theme="normal"] .cw-title { flex: none; font-size: 20px; font-weight: 700; letter-spacing: -0.01em; text-align: center; }
:root[data-nmkr-theme="normal"] .cw-back {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px;
  box-shadow: none; padding: 0; font-weight: 600; font-size: 16px;
  transition: background 0.18s, color 0.18s;
}
:root[data-nmkr-theme="normal"] .cw-back:hover { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .cw-back:active { transform: translateY(-50%); box-shadow: none; }
:root[data-nmkr-theme="normal"] .cw-btn {
  background: var(--nm-raised); color: var(--nm-text); border: none; border-radius: 999px;
  box-shadow: none; font-weight: 600;
  transition: background 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] .cw-btn:hover:not(:disabled) { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .cw-btn:active:not(:disabled) { transform: scale(0.98); box-shadow: none; }
:root[data-nmkr-theme="normal"] .cw-btn-blue { background: var(--nm-accent); color: var(--nm-accent-ink); text-shadow: none; }
:root[data-nmkr-theme="normal"] .cw-btn-blue:hover:not(:disabled) { background: var(--nm-accent-hover); }
:root[data-nmkr-theme="normal"] .cw-bigbtn {
  border: none !important; border-radius: 999px !important; background: var(--nm-raised) !important;
  color: var(--nm-text) !important; box-shadow: none !important; font-weight: 600;
  font-family: var(--nm-font);
  transition: background 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] .cw-bigbtn:hover { background: var(--nm-hover) !important; }
:root[data-nmkr-theme="normal"] .cw-bigbtn:active { transform: scale(0.98); }
:root[data-nmkr-theme="normal"] .cw-bigbtn-blue { background: var(--nm-accent) !important; color: var(--nm-accent-ink) !important; }
:root[data-nmkr-theme="normal"] .cw-bigbtn-blue:hover { background: var(--nm-accent-hover) !important; }

/* 우상단 위젯(버전·알람·사용자) — 홈에서는 화면 우상단 고정(2026-08-27 이미지 107) */
:root[data-nmkr-theme="normal"] .ide-corner {
  position: fixed; top: 18px; right: 18px; left: auto; transform: none;
}
/* 창은 홈·리스트·위저드 전부 같은 자리 — 위쪽 띠(상태창 자리)를 두고 고정(이미지 108) */
:root[data-nmkr-theme="normal"] .ide-stage { align-items: flex-start; padding-top: 90px; }
:root[data-nmkr-theme="normal"] .ide-version-chip,
:root[data-nmkr-theme="normal"] .ide-user-chip {
  font-family: var(--nm-font); background: var(--nm-raised); color: var(--nm-text-2);
  border: none; border-radius: 999px; box-shadow: none; font-weight: 600;
}
:root[data-nmkr-theme="normal"] .ide-bell {
  background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px;
  box-shadow: none; width: 34px; height: 32px;
  transition: background 0.18s, color 0.18s;
}
:root[data-nmkr-theme="normal"] .ide-bell:hover { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-bell-dot { border-color: var(--nm-bg); }

/* ════ 뉴스리스트 ════ */
:root[data-nmkr-theme="normal"] .ide-home-row { border-bottom: 1px solid var(--nm-line); transition: background 0.15s; }
:root[data-nmkr-theme="normal"] .ide-home-row:hover { background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .ide-home-row .hr-date,
:root[data-nmkr-theme="normal"] .ide-home-row .hr-voice,
:root[data-nmkr-theme="normal"] .ide-home-row .hr-len { color: var(--nm-text-3); font-family: var(--nm-font); }
:root[data-nmkr-theme="normal"] .ide-home-row .hr-title { color: var(--nm-text); font-weight: 600; font-family: var(--nm-font); }
:root[data-nmkr-theme="normal"] .ide-home-row .hr-badge {
  background: transparent; border: 1px solid var(--nm-line); border-radius: 999px; font-weight: 600;
}
:root[data-nmkr-theme="normal"] .ide-home-row .hr-badge.st-review { color: var(--nm-text-2); background: transparent; border-color: var(--nm-line); }
:root[data-nmkr-theme="normal"] .ide-home-row .hr-badge.st-confirmed { color: var(--nm-text); background: var(--nm-raised); border-color: transparent; }
:root[data-nmkr-theme="normal"] .ide-home-row .hr-badge.st-draft-b { color: var(--nm-text-3); background: transparent; border-color: var(--nm-line); }
:root[data-nmkr-theme="normal"] .ide-home-row .hr-open {
  background: var(--nm-accent); color: var(--nm-accent-ink); border: none; border-radius: 999px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] .ide-home-row .hr-del {
  background: transparent; color: var(--nm-text-2); border: 1px solid var(--nm-line);
  border-radius: 999px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] .ide-home-row .hr-del:hover { background: var(--nm-raised); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-home-empty { color: var(--nm-text-3); }

/* ════ 뉴스생성 위저드 ════ */
:root[data-nmkr-theme="normal"] .wiz-q { color: var(--nm-text); font-weight: 700; }
:root[data-nmkr-theme="normal"] .wiz-hint,
:root[data-nmkr-theme="normal"] .wiz-ind { color: var(--nm-text-3); font-family: var(--nm-font); }
:root[data-nmkr-theme="normal"] .wiz-colon { color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-chip {
  font-family: var(--nm-font); background: var(--nm-raised); color: var(--nm-text);
  border: none; border-radius: 999px; box-shadow: none; font-weight: 600;
  transition: background 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] .ide-chip:hover { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .ide-chip:active { transform: scale(0.98); }
:root[data-nmkr-theme="normal"] .ide-chip.active { background: var(--nm-accent); color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .ide-select,
:root[data-nmkr-theme="normal"] .ide-num {
  font-family: var(--nm-font); background: var(--nm-raised); color: var(--nm-text);
  border: 1px solid var(--nm-line); border-radius: 12px; box-shadow: none !important;
}
:root[data-nmkr-theme="normal"] .ide-assign-wrap,
:root[data-nmkr-theme="normal"] .ide-assign-label { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .ide-usage { color: var(--nm-text-3); }

/* ════ 달력(커스텀 날짜) — 주간 스트립: 동그란 날짜 칩 ════ */
:root[data-nmkr-theme="normal"] .schedule-card {
  background: transparent; border: 1px solid var(--nm-line); border-radius: 16px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] .schedule-card-label { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .schedule-card-value { color: var(--nm-text); font-family: var(--nm-font); }
:root[data-nmkr-theme="normal"] .schedule-date-chip {
  border: none; border-radius: 999px; background: var(--nm-raised); color: var(--nm-text-2);
  box-shadow: none; font-family: var(--nm-font); font-weight: 600;
  aspect-ratio: 1 / 1; display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.18s, color 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] .schedule-date-chip:hover { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .schedule-date-chip.selected { background: var(--nm-accent); color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .schedule-icon-btn,
:root[data-nmkr-theme="normal"] .schedule-today-btn,
:root[data-nmkr-theme="normal"] .schedule-step-btn,
:root[data-nmkr-theme="normal"] .schedule-time-presets button {
  background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px;
  box-shadow: none; font-family: var(--nm-font); font-weight: 600; cursor: pointer;
  transition: background 0.18s, color 0.18s;
}
:root[data-nmkr-theme="normal"] .schedule-icon-btn:hover,
:root[data-nmkr-theme="normal"] .schedule-today-btn:hover,
:root[data-nmkr-theme="normal"] .schedule-step-btn:hover,
:root[data-nmkr-theme="normal"] .schedule-time-presets button:hover { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .schedule-time-unit output,
:root[data-nmkr-theme="normal"] .schedule-time-colon { color: var(--nm-text); }

/* ════ 모달·확인창 ════ */
:root[data-nmkr-theme="normal"] .cw-modal-overlay { background: rgba(0, 0, 0, 0.6); }
:root[data-nmkr-theme="normal"] .cw-modal { background: var(--nm-bg-deep); }
:root[data-nmkr-theme="normal"] .cw-modal-msg { color: var(--nm-text-2); font-size: 14px; line-height: 1.75; }
:root[data-nmkr-theme="normal"] .cw-modal-msg::first-line { color: var(--nm-text); font-weight: 600; font-size: 15px; }
/* 뉴스 생성 요청 등 안내·표 모달도 무채색(이미지 44) */
:root[data-nmkr-theme="normal"] .cw-confirm-notice {
  background: var(--nm-raised) !important; color: var(--nm-text-2) !important;
  border: none !important; border-radius: 12px;
}
:root[data-nmkr-theme="normal"] .cw-confirm-notice-icon { background: transparent !important; color: var(--nm-text-2) !important; border-color: var(--nm-text-3) !important; }
:root[data-nmkr-theme="normal"] .cw-confirm-notice-text { color: var(--nm-text-2) !important; }
:root[data-nmkr-theme="normal"] .cw-confirm-table { background: transparent !important; border: 1px solid var(--nm-line) !important; border-radius: 12px; overflow: hidden; }
:root[data-nmkr-theme="normal"] .cw-confirm-table dt {
  background: var(--nm-raised) !important; color: var(--nm-text-2) !important; border-color: var(--nm-line) !important;
}
:root[data-nmkr-theme="normal"] .cw-confirm-table dd {
  background: transparent !important; color: var(--nm-text) !important; border-color: var(--nm-line) !important;
}
:root[data-nmkr-theme="normal"] .cw-confirm-table dd mark,
:root[data-nmkr-theme="normal"] .cw-confirm-table dd strong,
:root[data-nmkr-theme="normal"] .cw-confirm-table dd a {
  background: transparent; color: var(--nm-text); text-decoration: underline; text-underline-offset: 3px; border: none;
}

/* ════ 편집기 ════ */
:root[data-nmkr-theme="normal"] #ide-screen.ide-screen {
  background: var(--nm-bg); color: var(--nm-text); font-family: var(--nm-font);
}
:root[data-nmkr-theme="normal"] .ide-topbar {
  background: var(--nm-bg); border-bottom: 1px solid var(--nm-line);
  padding: 12px 18px; gap: 10px;
}
/* 제목: 크게 — 아래 방송원고 창 본문의 왼쪽 시작선과 맞춘다 */
:root[data-nmkr-theme="normal"] .ide-title-chip {
  background: transparent; border: none; border-radius: 0; box-shadow: none;
  color: var(--nm-text); font-size: 20px; font-weight: 700; letter-spacing: -0.01em;
  padding: 0;
}
:root[data-nmkr-theme="normal"] .ide-status-badge {
  background: transparent; box-shadow: none; border-width: 1px; border-radius: 999px; font-weight: 600;
}
:root[data-nmkr-theme="normal"] .ide-status-badge.st-review { color: var(--nm-text-2); border-color: var(--nm-line); background: transparent; }
:root[data-nmkr-theme="normal"] .ide-status-badge.st-confirmed { color: var(--nm-text); border-color: transparent; background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .ide-status-badge.st-draft { color: var(--nm-text-3); border-color: var(--nm-line); background: transparent; }
:root[data-nmkr-theme="normal"] .ide-btn {
  background: var(--nm-accent); color: var(--nm-accent-ink); border: none; border-radius: 999px;
  font-weight: 600; padding: 7px 16px; font-family: var(--nm-font);
  transition: background 0.18s, opacity 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] .ide-btn:hover:not(:disabled) { background: var(--nm-accent-hover); }
:root[data-nmkr-theme="normal"] .ide-btn:active:not(:disabled) { transform: scale(0.98); }
:root[data-nmkr-theme="normal"] .ide-btn-ghost { background: var(--nm-raised); color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .ide-btn-ghost:hover:not(:disabled) { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-len,
:root[data-nmkr-theme="normal"] .ide-len-foot { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-pv {
  background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px;
  transition: background 0.18s, color 0.18s;
}
:root[data-nmkr-theme="normal"] .ide-pv:hover { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .ide-pv[aria-pressed="true"] { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] #ide-pv-toggle.on { color: var(--nm-text); background: var(--nm-hover); }

/* 패널: 독립 창(흰 테두리 카드) — 자세한 카드 스타일은 아래 #ide-screen 블록.
   (여기의 border:none !important가 카드 테두리를 죽였던 사고 — 2026-08-27 제거) */
:root[data-nmkr-theme="normal"] .ide-main { gap: 0; background: var(--nm-bg); }
:root[data-nmkr-theme="normal"] .ide-pane { background: var(--nm-bg); box-shadow: none; }
:root[data-nmkr-theme="normal"] .ide-pane-head {
  background: transparent; border-bottom: none; color: var(--nm-text);
  font-size: 17px; font-weight: 700; padding: 14px 18px 6px;
}
:root[data-nmkr-theme="normal"] .ide-pane-sub { display: none; }
:root[data-nmkr-theme="normal"] .ide-pane-x { display: none; }
:root[data-nmkr-theme="normal"] .ide-splitter { background: transparent; border: none; width: 10px; }
:root[data-nmkr-theme="normal"] .ide-doc,
:root[data-nmkr-theme="normal"] .ide-input,
:root[data-nmkr-theme="normal"] .ide-body,
:root[data-nmkr-theme="normal"] .ide-original,
:root[data-nmkr-theme="normal"] .ide-diff {
  background: var(--nm-bg); color: var(--nm-text); border: none;
  font-family: var(--nm-font);
}
:root[data-nmkr-theme="normal"] .ide-input::placeholder { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-fixed { color: var(--nm-text-3); background: transparent; border-color: var(--nm-line); }
:root[data-nmkr-theme="normal"] .ide-diff-empty { color: var(--nm-text-3); }

/* 오디오 푸터 */
:root[data-nmkr-theme="normal"] .ide-doc-foot { background: var(--nm-bg); border-top: 1px solid var(--nm-line); }
:root[data-nmkr-theme="normal"] .ide-play-btn {
  background: var(--nm-accent); color: var(--nm-accent-ink); border: none; border-radius: 999px;
}
:root[data-nmkr-theme="normal"] .ide-seek { background: var(--nm-raised); border: none; border-radius: 999px; }
:root[data-nmkr-theme="normal"] .ide-seek-fill { background: var(--nm-text-2); border-radius: 999px; }
:root[data-nmkr-theme="normal"] .ide-seek-thumb { background: var(--nm-text); border: none; }
:root[data-nmkr-theme="normal"] .ide-time { color: var(--nm-text); font-size: 12px; }

/* ════ 프롬프트(GPT 대화) ════ */
:root[data-nmkr-theme="normal"] .ide-chat-log { background: var(--nm-bg); }
:root[data-nmkr-theme="normal"] .ide-term { font-family: var(--nm-font); font-size: 13px; line-height: 1.55 !important; }
:root[data-nmkr-theme="normal"] .ide-term .tl-sys { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .ide-term .tl-sys::before { content: ''; }
:root[data-nmkr-theme="normal"] .ide-term .tl-ok { color: var(--nm-text); font-weight: 600; }
:root[data-nmkr-theme="normal"] .ide-term .tl-ok::before { content: ''; }
:root[data-nmkr-theme="normal"] .ide-term .tl-warn { color: var(--nm-warn); font-weight: 600; }
:root[data-nmkr-theme="normal"] .ide-term .tl-warn::before { content: ''; }
:root[data-nmkr-theme="normal"] .ide-term .tl-rec { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-term .tl-rec::before { content: ''; }
/* 사용자 말풍선: 오른쪽 정렬 어두운 알약(GPT) */
:root[data-nmkr-theme="normal"] .ide-term .tl-user {
  margin: 8px 0 8px auto; max-width: 85%; width: fit-content;
  background: var(--nm-raised); border: none; border-radius: 16px;
  /* 말풍선 패딩 축소(2026-08-31 실테스트 9차) */
  color: var(--nm-text); font-weight: 500; padding: 6px 11px;
}
:root[data-nmkr-theme="normal"] .ide-term .tl-user::before { content: none; }
/* 작업 로그: 접힌 알약("과정 보기") — 펼치면 과정이 나온다 */
:root[data-nmkr-theme="normal"] .ide-term .ide-work {
  border: 1px solid var(--nm-line); border-radius: 14px; background: var(--nm-bg-deep); margin: 6px 0;
}
:root[data-nmkr-theme="normal"] .ide-term .ide-work summary { color: var(--nm-text-3); padding: 7px 12px; font-size: 12px; }
:root[data-nmkr-theme="normal"] .ide-term .ide-work summary:hover { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .ide-term .ide-work-body { padding: 2px 12px 8px; }
/* 작업 로그 줄 = "작업 진행 중…" 요약과 같은 크기(2026-08-30 실테스트 8차) */
:root[data-nmkr-theme="normal"] .ide-term .ide-work-body .tl { font-size: 12px; }
/* 입력줄: GPT 컴포저 */
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input-wrap {
  background: var(--nm-bg); border-top: none; padding: 10px 12px 14px;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input {
  background: var(--nm-raised); border: 1px solid var(--nm-line); border-radius: 22px;
  color: var(--nm-text); font-family: var(--nm-font); padding: 12px 48px 12px 16px;
  font-size: 15px;   /* 대화 로그(.ide-term 15px)와 동일하게(2026-08-31 실테스트 9차) */
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input:focus { outline: none; border-color: #6b6b6b; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input::placeholder { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-send-btn {
  background: var(--nm-accent); color: var(--nm-accent-ink); border: none;
  right: 20px; bottom: 22px;
  transition: opacity 0.15s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] .ide-send-btn:hover:not(:disabled) { background: var(--nm-accent-hover); }
:root[data-nmkr-theme="normal"] .ide-send-btn:active:not(:disabled) { transform: scale(0.94); }
/* 간격 칸 [+0.5초] — 노멀 테마(10차) */
:root[data-nmkr-theme="normal"] .ide-gap-pause-btn {
  background: var(--nm-raised); color: var(--nm-text); border: 1px solid var(--nm-line);
  right: 58px; bottom: 22px; border-radius: 15px;
}
/* [+0.1초]는 [+0.5초] **왼쪽**에 따로 선다. 위 규칙이 right를 58px로 덮어써 두 버튼이
   같은 자리에 겹쳤고, 나중에 그려지는 [+0.5초]가 [+0.1초]를 가려 "0.1초 버튼이 없다"로
   보였다(2026-09-08 실테스트 2). 58 + 68(고정 폭) + 6 = 132.
   입력칸 오른쪽 여백도 두 버튼이 다 들어갈 만큼 넓힌다. */
:root[data-nmkr-theme="normal"] .ide-gap-pause-btn-fine { right: 132px; }
:root[data-nmkr-theme="normal"] .ide-gap-pause-btn:hover:not(:disabled) { border-color: #6b6b6b; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input.gap-mode { padding-right: 206px; }
:root[data-nmkr-theme="normal"] .ide-stop-btn { border-radius: 999px; }
/* 작업 경과 시간(47초…)은 표시하지 않는다(2026-08-28 실테스트 5) */
:root[data-nmkr-theme="normal"] .ide-work-elapsed { display: none !important; }
:root[data-nmkr-theme="normal"] .ide-mini-btn {
  background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px;
}
:root[data-nmkr-theme="normal"] .ide-mini-btn:hover:not(:disabled) { background: var(--nm-hover); color: var(--nm-text); }

/* 마커 칩(4차): 최소화 헤더 칩 더미 + 활성 마커의 종류 버튼 한 줄이 입력창 바로 위 */
:root[data-nmkr-theme="normal"] .ide-marker-tokens { gap: 5px; padding: 0 2px 4px; }
:root[data-nmkr-theme="normal"] .ide-marker-box {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 14px;
  box-shadow: none; padding: 5px 10px;
}
:root[data-nmkr-theme="normal"] .ide-marker-box.active {
  background: var(--nm-raised); border-color: rgba(255, 255, 255, 0.45);
}
:root[data-nmkr-theme="normal"] .ide-marker-box-num { background: var(--nm-accent); color: var(--nm-accent-ink); border-radius: 999px; }
:root[data-nmkr-theme="normal"] .ide-marker-box-text { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .ide-marker-box-hint { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-marker-box-x { background: var(--nm-raised); color: var(--nm-text-2); border-radius: 999px; }
:root[data-nmkr-theme="normal"] .ide-marker-box-x:hover { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-marker-kindbar { padding: 0 4px 2px; }
:root[data-nmkr-theme="normal"] .ide-marker-kindbar-label { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-marker-kind {
  background: var(--nm-raised); color: var(--nm-text-2); border: 1px solid transparent;
}
:root[data-nmkr-theme="normal"] .ide-marker-kind:hover { background: var(--nm-hover); color: var(--nm-text); border-color: transparent; }
:root[data-nmkr-theme="normal"] .ide-marker-kind.on { background: var(--nm-accent); color: var(--nm-accent-ink); border-color: transparent; }
:root[data-nmkr-theme="normal"] .ide-marker-kind-retake.on { background: var(--nm-accent); color: var(--nm-accent-ink); }
/* 마커 편집 중에는 입력창 안내문이 보여야 한다(평소 안내문은 감춰 두는 테마) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input.marker-mode::placeholder { color: var(--nm-text-3); }

/* 미리듣기 판단 줄·학습 질문 */
:root[data-nmkr-theme="normal"] .revision-preview-actions {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 16px;
}
:root[data-nmkr-theme="normal"] .revision-preview-actions button {
  background: var(--nm-raised); color: var(--nm-text); border: none; border-radius: 999px;
  box-shadow: none; font-weight: 600; font-family: var(--nm-font);
  transition: background 0.18s;
}
:root[data-nmkr-theme="normal"] .revision-preview-actions button:hover:not(:disabled) { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .revision-preview-actions button[data-decision="accept"],
:root[data-nmkr-theme="normal"] .revision-preview-actions button[data-decision="apply"] { background: var(--nm-accent); color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .revision-preview-actions button[data-decision="cancel"] { color: var(--nm-text-2); }
/* 칸 안의 플레이어 — 주 플레이어와 같은 둥근 재생 버튼·가는 시크바, 칸 크기로 */
:root[data-nmkr-theme="normal"] #ide-screen .revision-preview-actions .ide-play-btn {
  width: 32px; height: 32px; padding: 0; border-radius: 50%;
  background: var(--nm-accent); color: var(--nm-accent-ink);
}
:root[data-nmkr-theme="normal"] #ide-screen .revision-preview-actions .ide-play-btn:hover:not(:disabled) { background: var(--nm-accent); filter: brightness(1.08); }
:root[data-nmkr-theme="normal"] #ide-screen .revision-preview-actions .ide-time { color: var(--nm-text-2); font-size: 12px; font-variant-numeric: tabular-nums; }
:root[data-nmkr-theme="normal"] .ide-learn-ask {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 16px;
}
:root[data-nmkr-theme="normal"] .ide-learn-ask button { border-radius: 999px; }

/* 알람 패널 */
:root[data-nmkr-theme="normal"] .ide-bell-panel {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 16px; box-shadow: 0 12px 34px rgba(0, 0, 0, 0.5);
}
:root[data-nmkr-theme="normal"] .ide-bell-head { background: transparent; border-bottom: 1px solid var(--nm-line); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-bell-item { border-bottom: 1px solid var(--nm-line); }
:root[data-nmkr-theme="normal"] .ide-bell-item.unread { border-left: 3px solid var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-bell-item:hover { background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .ide-bell-item .bi-title { color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-bell-item .bi-msg { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .ide-bell-item .bi-time { color: var(--nm-text-3); font-family: var(--nm-font); }
:root[data-nmkr-theme="normal"] .ide-bell-empty { color: var(--nm-text-3); }

/* ════ 생성 대기 — "Agent thinking.." 흑백 줄무늬 구(orb) ════ */
:root[data-nmkr-theme="normal"] .ide-generation-status {
  /* 가운데 창의 위쪽 띠, 상단 정가운데(2026-08-27 이미지 108) — 홈 어느 화면에서든 */
  top: 18px; left: 50%; right: auto; transform: translateX(-50%);
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 18px;
  box-shadow: none; color: var(--nm-text);
}
/* 끝난 뒤(완료·실패)에는 아이콘이 더 움직이지 않는다 — 기본(정지) 상태 */
:root[data-nmkr-theme="normal"] .ide-generation-status[data-state="completed"] .ide-generation-pulse,
:root[data-nmkr-theme="normal"] .ide-generation-status[data-state="failed"] .ide-generation-pulse {
  animation: none;
}
/* 완료 체크는 밝은 초록으로 또렷하게(2026-08-30 실테스트 5) — 오브 캔버스는 숨긴다 */
:root[data-nmkr-theme="normal"] .ide-generation-status[data-state="completed"] .nm-orb-canvas { display: none; }
:root[data-nmkr-theme="normal"] .ide-generation-status[data-state="completed"] .ide-generation-pulse {
  display: grid; place-items: center; background: none; border: none; width: 24px; height: 24px;
}
:root[data-nmkr-theme="normal"] .ide-generation-status[data-state="completed"] .ide-generation-pulse::after {
  content: '✓'; color: var(--nm-ok); font-size: 18px; font-weight: 800;
}
:root[data-nmkr-theme="normal"] .ide-generation-status small { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-generation-detail { color: var(--nm-text-2); }
/* 대기 오브: CSS 줄무늬 대신 캔버스 점 구(ide.js mountNmOrbs)가 그린다(이미지 47) */
:root[data-nmkr-theme="normal"] .ide-generation-pulse,
:root[data-nmkr-theme="normal"] .ide-loading-spin {
  width: 28px; height: 28px; border: none; border-radius: 50%;
  background: none; animation: none; position: relative; flex: 0 0 auto;
  -webkit-mask-image: none; mask-image: none;
}
:root[data-nmkr-theme="normal"] .nm-orb-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%; display: block;
}
:root[data-nmkr-theme="normal"] .ide-loading { background: rgba(0, 0, 0, 0.65); }
:root[data-nmkr-theme="normal"] .ide-loading-box,
:root[data-nmkr-theme="normal"] .ide-busy-box {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 18px;
  box-shadow: none; color: var(--nm-text); font-weight: 600; font-family: var(--nm-font);
}
/* 전체 차단 오버레이(2026-09-09) — 삭제 중 화면 잠금. 로딩 오버레이와 같은 무채색. */
:root[data-nmkr-theme="normal"] .ide-busy-overlay { background: rgba(0, 0, 0, 0.72); }

/* ════ 토스트·배너 ════ */
:root[data-nmkr-theme="normal"] .toast {
  background: var(--nm-raised); color: var(--nm-text); border: 1px solid var(--nm-line);
  border-radius: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
:root[data-nmkr-theme="normal"] .alert-banner {
  background: var(--nm-bg-deep); color: var(--nm-text); border: 1px solid var(--nm-line); border-radius: 14px;
}

/* ════ 에디터 강화 오버라이드 ════
   레트로 v3 스킨이 #ide-screen(ID) 셀렉터로 배경·테두리를 칠해 클래스 오버라이드가
   진다(2026-08-27 실화면 확인). 같은 속성은 반드시 ID를 포함해 다시 덮는다. */
:root[data-nmkr-theme="normal"] #ide-screen,
:root[data-nmkr-theme="normal"] #ide-screen.ide-screen { background: var(--nm-bg); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-topbar {
  background: var(--nm-bg); border-bottom: 1px solid var(--nm-line); padding: 12px 18px; gap: 10px;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-title-chip {
  background: transparent; border: none; box-shadow: none; border-radius: 0;
  color: var(--nm-text); font-size: 20px; font-weight: 700; padding: 0; text-decoration: none;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn {
  background: var(--nm-accent); color: var(--nm-accent-ink); border: none; border-radius: 999px;
  box-shadow: none; font-weight: 600; padding: 7px 16px;
  transition: background 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn:hover:not(:disabled) { background: var(--nm-accent-hover); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn:active:not(:disabled) { transform: scale(0.98); box-shadow: none; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn-ghost { background: var(--nm-raised); color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn-ghost:hover:not(:disabled) { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-select,
:root[data-nmkr-theme="normal"] #ide-screen .ide-num,
:root[data-nmkr-theme="normal"] #ide-screen .ide-assign-field .ide-select {
  background: var(--nm-raised); color: var(--nm-text); border: 1px solid var(--nm-line);
  border-radius: 12px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-num { text-align: center; }
/* 창(패널)이 카드로 구분되어 보이게(이미지 41) — 배경 한 단계 + 라운드 + 사이 간격 */
:root[data-nmkr-theme="normal"] #ide-screen .ide-main { background: var(--nm-bg); padding: 10px 12px 12px; gap: 0; }
/* 창 사이 흰 실선(스플리터의 잔여 보더) 대신, 각 창이 흰 테두리를 가진
   독립 창처럼 보이게 한다(2026-08-27 이미지 113). */
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane {
  background: var(--nm-bg-deep); border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 18px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane-head {
  background: transparent; border-bottom: none; color: var(--nm-text);
  font-size: 17px; font-weight: 700; letter-spacing: -0.01em; padding: 16px 22px 6px;
  display: flex; align-items: center; gap: 10px;
}
/* 창 왼쪽 위의 끄기 점 — 신호등처럼 작게, 눌러서 그 창을 끈다 */
:root[data-nmkr-theme="normal"] .ide-pane-x {
  display: inline-flex; width: 12px; height: 12px; padding: 0;
  border: none; border-radius: 50%; background: #3a3a3e; cursor: pointer;
  transition: background 0.18s;
}
:root[data-nmkr-theme="normal"] .ide-pane-x:hover { background: #6b6b70; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-splitter { width: 10px; background: transparent; border: none; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-splitter::after { background: transparent; width: 2px; height: 40%; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-splitter:hover::after,
:root[data-nmkr-theme="normal"] #ide-screen .ide-splitter.dragging::after { background: var(--nm-text-3); }
/* 본문 좌우 여백(이미지 52) — 우측 여백은 실제 스크롤러(.ide-body)가 갖는다(4차):
   .ide-doc에 우측 패딩을 주면 스크롤바가 그만큼 창 테두리에서 떨어져 뜬다. */
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc { padding: 0 0 0 22px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-body,
:root[data-nmkr-theme="normal"] #ide-screen .ide-fixed,
:root[data-nmkr-theme="normal"] #ide-screen .ide-input { padding-right: 14px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff,
:root[data-nmkr-theme="normal"] #ide-screen .ide-original { padding: 6px 22px 16px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-log { padding: 6px 18px; }
/* 재생줄(이미지 33): 어두운 바닥 + 둥근 회색 재생 버튼 + 얇은 시커 */
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc-foot {
  background: var(--nm-bg); border-top: 1px solid var(--nm-line); padding: 10px 14px;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-play-btn {
  width: 40px; height: 40px; border: none; border-radius: 50%;
  background: var(--nm-raised); color: var(--nm-text); box-shadow: none;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.18s, transform 0.12s;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-play-btn:hover:not(:disabled) { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-play-btn:active:not(:disabled) { transform: scale(0.95); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-seek { height: 4px; background: var(--nm-raised); border: none; border-radius: 999px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-seek-fill { background: var(--nm-text); border-radius: 999px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-seek-thumb { width: 10px; height: 10px; background: var(--nm-text); border: none; border-radius: 50%; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input-wrap {
  background: var(--nm-bg); border-top: none; padding: 10px 12px 14px;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input {
  background: var(--nm-raised); border: 1px solid var(--nm-line); border-radius: 22px;
  color: var(--nm-text); padding: 12px 48px 12px 16px;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input:focus { outline: none; border-color: #6b6b6b; }
:root[data-nmkr-theme="normal"] #ide-screen #ide-marker-btn {
  background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] #ide-screen #ide-marker-btn:hover:not(:disabled) { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-len.is-invalid { color: var(--nm-text) !important; font-weight: 700; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc,
:root[data-nmkr-theme="normal"] #ide-screen .ide-body,
:root[data-nmkr-theme="normal"] #ide-screen .ide-input,
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff,
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-log,
:root[data-nmkr-theme="normal"] #ide-screen .ide-original { background: transparent; color: var(--nm-text); }
/* 제목 밑 파란 밑줄 제거(이미지 41) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-title-chip { border-bottom: none !important; text-decoration: none; }
/* 빈 화면 안내문 숨김(이미지 48) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff-empty { display: none; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-input::placeholder { color: transparent; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-input::placeholder { color: transparent; }
/* 파일 길이는 헤더에서 보인다 — 발밑 중복 표시는 숨김(이미지 42-43) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-len-foot { display: none; }
/* 마커 지정 버튼: 버튼임을 알 수 있게 외곽선(이미지 53) */
:root[data-nmkr-theme="normal"] #ide-screen #ide-marker-btn {
  border: 1px solid rgba(255, 255, 255, 0.3);
}
/* 본문 마커 표시: 노랑 → 흰 음영(이미지 55) */
:root[data-nmkr-theme="normal"] #ide-screen .rv-mk {
  background: rgba(255, 255, 255, 0.16); box-shadow: none; color: var(--nm-text);
  border-radius: 6px; padding: 0 2px;
}
:root[data-nmkr-theme="normal"] #ide-screen .rv-mk-num {
  background: var(--nm-accent); color: var(--nm-accent-ink); border-radius: 999px; border: none;
}
:root[data-nmkr-theme="normal"] #ide-screen .rv-mk-x { background: #3a3a3e; color: #fff; border: none; border-radius: 50%; }
:root[data-nmkr-theme="normal"] #ide-screen .rv-mk-x:hover { background: #6b6b70; }
/* 수정내용 diff: 삭제=취소선만, 추가=흰 음영(이미지 50) */
:root[data-nmkr-theme="normal"] .ide-diff-del {
  background: transparent; color: var(--nm-text-3); text-decoration: line-through;
}
:root[data-nmkr-theme="normal"] .ide-diff-ins {
  background: rgba(255, 255, 255, 0.18); color: var(--nm-text); border-radius: 4px;
}
:root[data-nmkr-theme="normal"] .ide-diff-note { display: none; }
/* 접기 요약 줄: 더 밝게(이미지 51) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff summary,
:root[data-nmkr-theme="normal"] .ide-term .ide-work summary { color: var(--nm-text-2); font-weight: 600; }
/* 검토중 = 흰 표시, 확정 버튼 = 눌러달라는 글로우(이미지 54) */
:root[data-nmkr-theme="normal"] .ide-status-badge.st-review { color: var(--nm-text); border-color: rgba(255, 255, 255, 0.3); }
@keyframes nm-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
  50% { box-shadow: 0 0 16px 2px rgba(255, 255, 255, 0.35); }
}
/* 확정 전(검토중)의 [뉴스 확정] 버튼은 아직 확정 안 된 모습이어야 한다(8차):
   검은 배경+흰 글씨+눌러달라는 외곽 글로우. 확정완료 후에만 흰(accent) 배경. */
:root[data-nmkr-theme="normal"] #ide-screen .ide-status-badge.st-review ~ #ide-action {
  background: var(--nm-raised); color: var(--nm-text);
  border: 1px solid rgba(255, 255, 255, 0.35);
  animation: nm-glow 1.8s ease-in-out infinite;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-status-badge.st-review ~ #ide-action:hover:not(:disabled) {
  background: var(--nm-hover); color: var(--nm-text);
}

/* ════ 목소리 선택 카드(2026-08-28 이미지 119) —
   미선택 = 검은 배경 + 회색 테두리 + 흰 글씨 / 선택 = 흰 배경 + 검은 글씨.
   프로필 아이콘은 클래식 스킨의 ::before(SVG)를 무채색으로 다시 칠해 유지한다.
   주의: style.css 클래식 잔재가 .voice-card를 !important로 흰색 칠하므로
   여기의 배경·테두리·패딩도 !important가 필수(2026-08-28 실화면에서 확인). ════ */
:root[data-nmkr-theme="normal"] .voice-card {
  background: var(--nm-bg-deep) !important; border: 1px solid #4a4a50 !important;
  border-radius: 18px !important; box-shadow: none !important; color: var(--nm-text);
  padding: 22px 36px !important; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  transition: background 0.18s, border-color 0.18s;
}
:root[data-nmkr-theme="normal"] .voice-card:hover {
  background: var(--nm-raised) !important; transform: none !important; box-shadow: none !important;
}
:root[data-nmkr-theme="normal"] .voice-card .vc-name { color: var(--nm-text); font-weight: 600; font-size: 17px; }
:root[data-nmkr-theme="normal"] .voice-card .vc-low { color: var(--nm-text-3); font-size: 12px; }
:root[data-nmkr-theme="normal"] .voice-card.depleted { opacity: 0.4; cursor: not-allowed; }
/* 프로필 아이콘: 무채색(어두운 원 + 회색 사람) */
:root[data-nmkr-theme="normal"] .voice-card::before {
  background-color: var(--nm-raised);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z' fill='%23c9c9ce'/%3E%3C/svg%3E");
  border: 1px solid #4a4a50; align-self: center;
}
/* 선택 = 흰 반전: 아이콘도 반전(밝은 원 + 검은 사람) */
:root[data-nmkr-theme="normal"] .voice-card.active::before {
  background-color: #e4e4e6;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z' fill='%230d0d0d'/%3E%3C/svg%3E");
  border-color: rgba(13, 13, 13, 0.35);
}
/* 파란 체크·구식 아바타 요소는 어떤 조합에서도 금지 */
:root[data-nmkr-theme="normal"] .voice-card::after,
:root[data-nmkr-theme="normal"] .voice-card.selected::after,
:root[data-nmkr-theme="normal"] .voice-card.active::after { display: none !important; }
:root[data-nmkr-theme="normal"] .voice-card .vc-avatar,
:root[data-nmkr-theme="normal"] .voice-card .vc-face,
:root[data-nmkr-theme="normal"] .voice-card .vc-play { display: none !important; }

/* 시작 버튼: 위저드 [다음]과 같은 자리(오른쪽 아래, 이미지 40) */
:root[data-nmkr-theme="normal"] .ide-wiz-body { position: relative; }
:root[data-nmkr-theme="normal"] .ide-home-start {
  position: absolute; right: 22px; bottom: 22px; width: auto; margin: 0; padding: 10px 22px;
}

/* ════ 커스텀 모달 — 다른 창과 같은 크기로 압축(이미지 34) ════ */
:root[data-nmkr-theme="normal"] .cw-schedule-modal { width: min(480px, calc(100vw - 40px)); max-height: calc(100dvh - 48px); }
:root[data-nmkr-theme="normal"] .cw-schedule-modal .cw-body { padding: 12px 18px 16px; gap: 10px; overflow-y: auto; }
:root[data-nmkr-theme="normal"] .schedule-card { padding: 12px 14px; }
:root[data-nmkr-theme="normal"] .schedule-card-head { margin-bottom: 4px; }
:root[data-nmkr-theme="normal"] .schedule-month-head { margin-bottom: 2px; }
/* 머리·빈칸·날짜가 같은 7열에서 가운데 정렬되도록 상한을 셋 다 함께 줄인다(2026-09-09) —
   `max-height`만 줄이면 `aspect-ratio: 1/1`인 상자의 폭이 그대로라 열마다 어긋난다. */
:root[data-nmkr-theme="normal"] .schedule-day,
:root[data-nmkr-theme="normal"] .schedule-day-blank { max-width: 32px; max-height: 32px; }
:root[data-nmkr-theme="normal"] .schedule-day { font-size: 13px; font-weight: 500; }
:root[data-nmkr-theme="normal"] .schedule-month-grid { gap: 2px; }
:root[data-nmkr-theme="normal"] .schedule-dow { padding: 2px 0; font-size: 10px; }
:root[data-nmkr-theme="normal"] .schedule-month-label { font-size: 15px; }
/* 시·분 칸: 위저드 길이 입력(이미지 37)과 같은 어두운 상자 + 가운데 숫자 */
:root[data-nmkr-theme="normal"] .schedule-time-box {
  display: inline-flex; flex-direction: column; align-items: center; gap: 2px;
  background: var(--nm-raised); border: 1px solid var(--nm-line); border-radius: 14px;
  padding: 10px 22px;
}
:root[data-nmkr-theme="normal"] .schedule-time-box .schedule-time-input {
  background: transparent; border: none; color: var(--nm-text); cursor: text;
  font-size: 24px; font-weight: 600; text-align: center; box-shadow: none; padding: 0;
  width: 2.4ch; height: auto;
}
:root[data-nmkr-theme="normal"] .schedule-time-box .schedule-time-input:focus { border: none; outline: none; }
:root[data-nmkr-theme="normal"] .schedule-wheel {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 14px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
}
:root[data-nmkr-theme="normal"] .schedule-wheel button { color: var(--nm-text-2); font-weight: 500; }
:root[data-nmkr-theme="normal"] .schedule-wheel button:hover { background: var(--nm-raised); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .schedule-wheel button.on { background: var(--nm-accent); color: var(--nm-accent-ink); }
/* 모달 버튼: 위저드와 같은 자리 — 뒤로 왼쪽, 다음 오른쪽(이미지 35) */
:root[data-nmkr-theme="normal"] .cw-schedule-modal .cw-modal-btns { display: flex; justify-content: space-between; }
/* 시각 카드: 빠른 선택 줄·우상단 시각 표시는 없앤다(이미지 62) */
:root[data-nmkr-theme="normal"] .schedule-time-presets { display: none; }
:root[data-nmkr-theme="normal"] #custom-time-caption { display: none; }
/* 날짜 카드 우상단 "2026. 08. 19. 수" 표시도 없앤다(2026-08-28 실테스트 1) */
:root[data-nmkr-theme="normal"] #custom-date-caption { display: none; }

/* ════ 월 달력·시각(커스텀) ════ */
:root[data-nmkr-theme="normal"] .schedule-month-label { color: var(--nm-text); font-weight: 700; }
:root[data-nmkr-theme="normal"] .schedule-dow { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .schedule-day { color: var(--nm-text-2); background: transparent; }
:root[data-nmkr-theme="normal"] .schedule-day:hover { background: var(--nm-raised); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .schedule-day.today { box-shadow: inset 0 0 0 1px var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .schedule-day.selected { background: var(--nm-accent); color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .schedule-time-unit output {
  background: var(--nm-raised); color: var(--nm-text); border: 1px solid var(--nm-line);
  border-radius: 12px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] .schedule-time-unit span { color: var(--nm-text-3); }

/* ════ 검토·확정 담당자 — 아래위로 ════
   박스가 화면 가운데에 오도록 라벨은 박스 왼쪽 바깥에 띄운다(2026-08-30 실테스트 5차):
   라벨을 흐름에 두면 라벨+박스 묶음이 가운데가 되어 박스가 오른쪽으로 밀린다. */
:root[data-nmkr-theme="normal"] .ide-assign-wrap {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
:root[data-nmkr-theme="normal"] .ide-assign-field { display: block; position: relative; }
:root[data-nmkr-theme="normal"] .ide-assign-field .ide-assign-label {
  position: absolute; right: 100%; top: 50%; transform: translateY(-50%);
  margin-right: 12px; white-space: nowrap;
}
:root[data-nmkr-theme="normal"] #ide-screen .ide-assign-field .ide-select {
  /* 이름만 보이므로 더 좁게(5차: 170 → 140) */
  width: 140px !important; min-width: 140px !important; max-width: 140px !important;
  text-align: center; text-align-last: center;
}
/* 커스텀 콤보(6차): 버튼도, 펼친 목록도 전부 가운데 정렬 */
:root[data-nmkr-theme="normal"] .ide-assign-combo {
  width: 140px; padding: 11px 0; font-size: 15px; font-weight: 600; font-family: var(--nm-font);
  background: var(--nm-raised); border: 1px solid var(--nm-line); border-radius: 12px;
  color: var(--nm-text); transition: background 0.15s;
}
:root[data-nmkr-theme="normal"] .ide-assign-combo:hover { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .ide-assign-menu {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 14px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.55); padding: 5px;
}
:root[data-nmkr-theme="normal"] .ide-assign-item {
  font-size: 15px; font-weight: 500; font-family: var(--nm-font);
  color: var(--nm-text-2); border-radius: 10px; padding: 9px 0;
}
:root[data-nmkr-theme="normal"] .ide-assign-item:hover { background: var(--nm-raised); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-assign-item.on { background: var(--nm-accent); color: var(--nm-accent-ink); }

/* ════ 4라운드(2026-08-27 이미지 59~94) ════ */
/* 뉴스 길이 입력: 커스텀 시각과 같은 포맷 — 네이티브 스핀 버튼 제거, 가운데 숫자 */
:root[data-nmkr-theme="normal"] .wiz-num { appearance: none; -moz-appearance: textfield; }
:root[data-nmkr-theme="normal"] .wiz-num::-webkit-inner-spin-button,
:root[data-nmkr-theme="normal"] .wiz-num::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
:root[data-nmkr-theme="normal"] #ide-screen .wiz-num {
  background: var(--nm-raised); border: 1px solid var(--nm-line); border-radius: 14px;
  color: var(--nm-text); text-align: center; cursor: text; box-shadow: none;
}
/* 목소리 카드 선택 = 흰 반전 + 외곽 글로우(이미지 65·119). 클래식 !important를 이겨야 한다. */
:root[data-nmkr-theme="normal"] .voice-card .vc-role { color: var(--nm-text-2); font-size: 13px; }
:root[data-nmkr-theme="normal"] .voice-card.active {
  background: var(--nm-accent) !important; border-color: var(--nm-accent) !important;
  box-shadow: none !important;
  animation: nm-glow 1.8s ease-in-out infinite;
}
:root[data-nmkr-theme="normal"] .voice-card.active .vc-name { color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .voice-card.active .vc-role { color: rgba(13, 13, 13, 0.6); }
/* 대시보드: 버튼 2개는 창의 세로 가운데(2026-08-27 이미지 106) */
:root[data-nmkr-theme="normal"] #ide-dash .ide-dash-body { justify-content: center; padding-top: 0; gap: 22px; }
/* 에디터 글자 +2pt(이미지 70·72) */
:root[data-nmkr-theme="normal"] #ide-screen.ide-screen { font-size: 15px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc,
:root[data-nmkr-theme="normal"] #ide-screen .ide-body,
:root[data-nmkr-theme="normal"] #ide-screen .ide-fixed,
:root[data-nmkr-theme="normal"] #ide-screen .ide-fixed .rv-fixed-text,
:root[data-nmkr-theme="normal"] #ide-screen .ide-input { font-size: 16px; line-height: 1.85; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff { font-size: 15px; line-height: 1.8; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-term { font-size: 15px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn { font-size: 15px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-len { font-size: 15px; color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-title-chip { font-size: 22px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane-head { font-size: 19px; }
/* 헤더 여백(이미지 72): 왼쪽 여유 + 제목과 생성 버튼 간격 */
:root[data-nmkr-theme="normal"] #ide-screen .ide-topbar { padding: 12px 18px 12px 26px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-title-chip { margin-right: 12px; }
/* 패널 위아래 잘림 방지(이미지 69): 카드가 세로 플렉스로 안쪽을 스크롤한다 */
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane { display: flex; flex-direction: column; min-height: 0; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc,
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff,
:root[data-nmkr-theme="normal"] #ide-screen .ide-original,
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-log { min-height: 0; }
/* 스크롤바(4차, 이미지 152 기준): 창 테두리에 **붙은** 고정 트랙 + 어두운 회색 막대.
   방송원고의 실제 스크롤러는 .ide-doc이 아니라 그 안의 .ide-body다 — 여기 빠지면
   기본(밝은 오버레이) 스크롤바가 우측 패딩만큼 떠서 보인다(2026-08-30 실테스트 3차의 잔여). */
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc::-webkit-scrollbar,
:root[data-nmkr-theme="normal"] #ide-screen .ide-body::-webkit-scrollbar,
:root[data-nmkr-theme="normal"] #ide-screen .ide-input::-webkit-scrollbar,
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff::-webkit-scrollbar,
:root[data-nmkr-theme="normal"] #ide-screen .ide-original::-webkit-scrollbar,
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-log::-webkit-scrollbar { width: 9px; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc::-webkit-scrollbar-track,
:root[data-nmkr-theme="normal"] #ide-screen .ide-body::-webkit-scrollbar-track,
:root[data-nmkr-theme="normal"] #ide-screen .ide-input::-webkit-scrollbar-track,
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff::-webkit-scrollbar-track,
:root[data-nmkr-theme="normal"] #ide-screen .ide-original::-webkit-scrollbar-track,
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-log::-webkit-scrollbar-track { background: transparent; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-doc::-webkit-scrollbar-thumb,
:root[data-nmkr-theme="normal"] #ide-screen .ide-body::-webkit-scrollbar-thumb,
:root[data-nmkr-theme="normal"] #ide-screen .ide-input::-webkit-scrollbar-thumb,
:root[data-nmkr-theme="normal"] #ide-screen .ide-diff::-webkit-scrollbar-thumb,
:root[data-nmkr-theme="normal"] #ide-screen .ide-original::-webkit-scrollbar-thumb,
:root[data-nmkr-theme="normal"] #ide-screen .ide-chat-log::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.28); border-radius: 8px;
  border: 2px solid transparent; background-clip: padding-box;
}
/* 다운로드 아이콘이 보이게(이미지 78) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane-icon-btn { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane-icon-btn:hover:not(:disabled) { color: var(--nm-text); }
/* 뉴스 정보([i]) 서랍 — 담당자 정보(이미지 75-76) */
:root[data-nmkr-theme="normal"] #ide-meta-group { align-items: center; gap: 6px; }
:root[data-nmkr-theme="normal"] .ide-meta-label { color: var(--nm-text-3); font-size: 12px; }
:root[data-nmkr-theme="normal"] .ide-meta-value {
  background: var(--nm-raised); color: var(--nm-text); border-radius: 999px;
  padding: 3px 10px; font-size: 13px; font-weight: 600;
  text-decoration: none;   /* 레트로의 파란 밑줄 제거(이미지 114) */
}
/* 검토중 = 제목 끝 위 주석 스티커 — 아주 작게, 제목 **뒤** 레이어(2026-08-28 실테스트 6):
   제목 글자가 위에 그려져 제목도, 살짝 비치는 스티커도 함께 보인다. */
:root[data-nmkr-theme="normal"] #ide-screen .ide-topbar { overflow: visible; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-title-chip { position: relative; z-index: 2; }
:root[data-nmkr-theme="normal"] #ide-screen .ide-status-badge {
  font-size: 9px !important; line-height: 1.1 !important; padding: 0 2px !important;
  border-radius: 3px; display: inline-flex; align-items: center;
  /* 감싸는 외곽선 없이 글자만(2026-08-30 실테스트 4차) */
  background: transparent; border: none !important;
  transform: translateY(-13px) !important; margin-left: -28px; margin-right: 5px;
  position: relative; z-index: 1; box-shadow: none;
}
/* 방송본 글로우(확정완료 후 눌러달라는 신호, 이미지 93) */
:root[data-nmkr-theme="normal"] #ide-screen .ide-btn-glow { animation: nm-glow 1.8s ease-in-out infinite; }
/* 사용자 메뉴 다크(이미지 71) */
:root[data-nmkr-theme="normal"] .ide-user-menu {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 14px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.55);
}
:root[data-nmkr-theme="normal"] .ide-user-menu button { color: var(--nm-text); font-weight: 500; }
:root[data-nmkr-theme="normal"] .ide-user-menu button:hover:not(:disabled) { background: var(--nm-raised); }
/* 수정 요약 코드박스 다크(이미지 83) */
:root[data-nmkr-theme="normal"] .nm-diffbox {
  background: var(--nm-bg); border: 1px solid var(--nm-line); border-radius: 12px;
  color: var(--nm-text-2); font-size: 14px; padding: 10px 14px;
}
/* 내가 쓴 프롬프트 = 흰 바탕 검은 글씨(이미지 83) */
:root[data-nmkr-theme="normal"] .ide-term .tl-user { background: #ececec; color: #0d0d0d; }
/* 전송 버튼이 정지(■)로 바뀐 상태(이미지 86) */
:root[data-nmkr-theme="normal"] .ide-send-btn.is-stop { background: var(--nm-raised); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .ide-send-btn.is-stop:hover:not(:disabled) { background: var(--nm-hover); }
/* 별도 중지 버튼은 없앤다(이미지 85) — 전송 버튼이 그 역할을 한다 */
:root[data-nmkr-theme="normal"] #ide-stop { display: none !important; }
/* 확정 중 오브가 안 보이면 링 스피너로라도 움직인다(이미지 91) */
:root[data-nmkr-theme="normal"] .ide-loading-spin:not(:has(.nm-orb-canvas)) {
  border: 3px solid var(--nm-raised); border-top-color: var(--nm-text);
  border-radius: 50%; animation: ide-spin 0.8s linear infinite; background: none;
}
/* 생성 요청 모달: 글자 키우고 간격 조이고, 사람 이름은 반전 칩으로(이미지 73) */
:root[data-nmkr-theme="normal"] .cw-confirm-table dt,
:root[data-nmkr-theme="normal"] .cw-confirm-table dd { font-size: 14px; }
/* 라벨·값 모두 가운데 정렬(2026-08-30 실테스트 2·3) */
:root[data-nmkr-theme="normal"] .cw-confirm-table dt { text-align: center; }
:root[data-nmkr-theme="normal"] .cw-confirm-table dd { text-align: center; }
:root[data-nmkr-theme="normal"] .cw-modal-body { padding-top: 6px; }
:root[data-nmkr-theme="normal"] .cw-confirm-person,
:root[data-nmkr-theme="normal"] .cw-confirm-table dd mark,
:root[data-nmkr-theme="normal"] .cw-confirm-table dd strong,
:root[data-nmkr-theme="normal"] .cw-confirm-table dd a {
  background: var(--nm-accent) !important; color: var(--nm-accent-ink) !important;
  border-radius: 999px; padding: 1px 9px; text-decoration: none !important; font-weight: 600;
}

/* ════ 관리자 화면 — 전면 다크, 창 없음(2026-08-27 5라운드) ════
   admin.css는 색을 전부 --adm-* 토큰으로 칠하므로 토큰을 다크로 재정의하면
   표면 전체가 함께 뒤집힌다(흰 판 위 흰 글씨 사고 재발 방지 — 개별 덮기 금지).
   admin.css에 하드코딩된 밝은 색 몇 곳만 아래에서 따로 덮는다. */
:root[data-nmkr-theme="normal"] {
  --adm-ink: #ffffff;
  --adm-paper: #161618;
  --adm-bar: #232326;
  --adm-white: #232326;
  --adm-mid: rgba(255, 255, 255, 0.5);
  --adm-dim: rgba(255, 255, 255, 0.72);
  --adm-line: rgba(255, 255, 255, 0.16);
  --adm-bg: #0f0f10;
}

/* 로그인 게이트·모달의 창(.aw)은 카드로 남긴다 — 콘솔 본체만 창을 벗긴다 */
:root[data-nmkr-theme="normal"] .aw {
  background: var(--nm-bg-deep); border: 1px solid var(--nm-line); border-radius: 20px; box-shadow: none;
  color: var(--nm-text);
}
:root[data-nmkr-theme="normal"] .aw-bar { background: transparent; border-bottom: 1px solid var(--nm-line); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .aw-dot { display: none; }
:root[data-nmkr-theme="normal"] .aw-label { font-size: 16px; font-weight: 700; color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .adm-login-body h1 { color: var(--nm-text); }

/* 콘솔 본체: 창 프레임 해체 — 페이지 자체가 콘솔이 된다 */
:root[data-nmkr-theme="normal"] #adm-main .aw-wide {
  background: transparent; border: none; border-radius: 0; box-shadow: none;
  width: min(1200px, 96vw); overflow: visible; animation: none;
}
:root[data-nmkr-theme="normal"] #adm-main .aw-bar { border-bottom: none; padding: 26px 10px 4px; }
:root[data-nmkr-theme="normal"] #adm-main .adm-title { font-size: 16px; letter-spacing: 0.1em; color: var(--nm-text); }
:root[data-nmkr-theme="normal"] #adm-main .adm-tabs {
  background: transparent; border-bottom: 1px solid var(--nm-line); padding: 8px 10px 0; gap: 4px;
}
:root[data-nmkr-theme="normal"] #adm-main .adm-panel {
  background: transparent; max-height: none; overflow: visible; min-height: 0;
  padding: 24px 10px 70px;
}

/* 탭 */
:root[data-nmkr-theme="normal"] .adm-tab { color: var(--nm-text-3); font-size: 14px; font-weight: 600; }
:root[data-nmkr-theme="normal"] .adm-tab:hover { color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .adm-tab.active { color: var(--nm-text); border-bottom-color: var(--nm-text); }

/* 표 — 머리글은 페이지 배경 위에 붙는다 */
:root[data-nmkr-theme="normal"] .adm-table { font-size: 13.5px; }
:root[data-nmkr-theme="normal"] .adm-table th { color: var(--nm-text-2); border-color: var(--nm-line); background: var(--nm-bg); top: 0; }
:root[data-nmkr-theme="normal"] .adm-table td { color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .adm-table tr:hover td { background: rgba(255, 255, 255, 0.04); }
:root[data-nmkr-theme="normal"] .adm-td-mono { color: var(--adm-dim); }
:root[data-nmkr-theme="normal"] .adm-scroll-list,
:root[data-nmkr-theme="normal"] .adm-pick-list { border-color: var(--nm-line); }

/* 버튼·칩·배지 */
:root[data-nmkr-theme="normal"] .adm-btn {
  background: var(--nm-raised); color: var(--nm-text); border: none; border-radius: 999px; box-shadow: none;
}
:root[data-nmkr-theme="normal"] .adm-btn:hover:not(:disabled) { background: var(--nm-hover); border-color: transparent; }
:root[data-nmkr-theme="normal"] .adm-btn:active:not(:disabled) { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .adm-btn-dark { background: var(--nm-accent); color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .adm-btn-dark:hover:not(:disabled) { background: var(--nm-accent-hover); border-color: transparent; color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .adm-corner .adm-chip {
  background: var(--nm-raised); color: var(--nm-text); border: none; box-shadow: none;
  border-radius: 999px; padding: 8px 16px;
}
:root[data-nmkr-theme="normal"] .adm-corner .adm-chip:hover { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .adm-badge { background: var(--nm-raised); color: var(--nm-text-2); border: none; border-radius: 999px; }
:root[data-nmkr-theme="normal"] .adm-badge-dark { background: var(--nm-accent); color: var(--nm-accent-ink); }
:root[data-nmkr-theme="normal"] .adm-badge-mid { background: var(--nm-hover); color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .adm-badge-ghost { background: var(--adm-paper); border: 1px solid var(--adm-line); color: var(--adm-ink); opacity: .78; }

/* 입력·셀렉트 */
:root[data-nmkr-theme="normal"] .adm-input { background: var(--nm-raised); color: var(--nm-text); border: 1px solid var(--nm-line); border-radius: 12px; }
:root[data-nmkr-theme="normal"] .adm-input:focus { border-color: #6b6b6b; box-shadow: none; }
:root[data-nmkr-theme="normal"] .adm-input::placeholder { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .adm-select {
  background-color: var(--nm-raised); color: var(--nm-text); border: 1px solid var(--nm-line); border-radius: 999px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23b9b9c0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
:root[data-nmkr-theme="normal"] .adm-select:focus { border-color: #6b6b6b; }

/* 카드(KPI)·게이지·차트 */
:root[data-nmkr-theme="normal"] .adm-card { background: var(--nm-bg-deep); border-color: var(--nm-line); border-radius: 16px; box-shadow: none; }
:root[data-nmkr-theme="normal"] .adm-card-v { color: var(--nm-text); }
:root[data-nmkr-theme="normal"] .adm-card-k { color: var(--adm-dim); }
:root[data-nmkr-theme="normal"] .adm-card-s { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .adm-card-link:hover { border-color: rgba(255, 255, 255, 0.4); }
:root[data-nmkr-theme="normal"] .adm-gauge { background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .adm-gauge i { background: var(--nm-accent); }
:root[data-nmkr-theme="normal"] .adm-mini-bar { background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .adm-mini-bar i { background: rgba(255, 255, 255, 0.55); }
:root[data-nmkr-theme="normal"] .adm-chart { background: var(--nm-bg-deep); border-color: var(--nm-line); border-radius: 16px; }
:root[data-nmkr-theme="normal"] .adm-chart-bar { background: rgba(255, 255, 255, 0.32); }
:root[data-nmkr-theme="normal"] .adm-chart-col:hover .adm-chart-bar { background: var(--nm-accent); }
:root[data-nmkr-theme="normal"] .adm-chart-v { color: var(--nm-text-2); }
:root[data-nmkr-theme="normal"] .adm-chart-l { color: var(--nm-text-3); }

/* 기간 토글 */
:root[data-nmkr-theme="normal"] .adm-seg { background: var(--nm-bg-deep); border-color: var(--nm-line); border-radius: 999px; }
:root[data-nmkr-theme="normal"] .adm-seg button { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .adm-seg button + button { border-left-color: var(--nm-line); }
:root[data-nmkr-theme="normal"] .adm-seg button:hover { color: var(--nm-text); background: var(--nm-raised); }
:root[data-nmkr-theme="normal"] .adm-seg button.active { background: var(--nm-accent); color: var(--nm-accent-ink); }

/* 폼 행·안내 문구 */
:root[data-nmkr-theme="normal"] .adm-form-row { background: var(--nm-bg-deep); border-color: var(--nm-line); border-radius: 14px; }
:root[data-nmkr-theme="normal"] .adm-form-solid { background: var(--nm-bg-deep); }
:root[data-nmkr-theme="normal"] .adm-note { color: var(--adm-dim); font-size: 13px; }
:root[data-nmkr-theme="normal"] .adm-empty { color: var(--nm-text-3); }

/* 모달·토스트 */
:root[data-nmkr-theme="normal"] .adm-overlay { background: rgba(0, 0, 0, 0.6); }
:root[data-nmkr-theme="normal"] #adm-toast { background: var(--nm-accent); color: var(--nm-accent-ink); box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5); }

/* ════ 6라운드 실테스트(2026-08-30) ════ */
/* 뉴스리스트 담당 표시: 작성·목소리·검토·입고 (이미지 132) */
:root[data-nmkr-theme="normal"] .hr-people { font-size: 12px; color: var(--nm-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:root[data-nmkr-theme="normal"] .hr-people i { font-style: normal; color: var(--nm-text-3); font-size: 11px; }
/* 수정 완료 표식: 밑줄 + 마커N 주석 (이미지 135) */
:root[data-nmkr-theme="normal"] .rv-done u {
  text-decoration: underline dotted rgba(255, 255, 255, 0.55); text-underline-offset: 4px; text-decoration-thickness: 1.5px;
}
:root[data-nmkr-theme="normal"] .rv-done-label {
  color: var(--nm-text-3); font-size: 10px; font-weight: 600; margin-right: 2px;
  background: var(--nm-raised); border-radius: 4px; padding: 0 4px; vertical-align: super;
}

/* ════ 첫인사·끝인사 테이크 관리(2026-09-05) ════ */
/* 레트로는 건드리지 않는다 — 이 블록은 normal 테마 스코프 안에만 있다. */
:root[data-nmkr-theme="normal"] .ide-phrase-note { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-phrase-label { color: var(--nm-text-3); }
:root[data-nmkr-theme="normal"] .ide-phrase-pending { color: var(--nm-accent); }
:root[data-nmkr-theme="normal"] .ide-phrase-btn {
  background: var(--nm-raised); color: var(--nm-text); border-color: var(--nm-line);
}
:root[data-nmkr-theme="normal"] .ide-phrase-btn:hover:not(:disabled) { background: var(--nm-hover); }
:root[data-nmkr-theme="normal"] .ide-phrase-btn-primary { color: var(--nm-accent); border-color: var(--nm-accent); }
:root[data-nmkr-theme="normal"] .adm-phrase-block { border-color: var(--nm-line); background: var(--nm-bg-deep); }
:root[data-nmkr-theme="normal"] .adm-phrase-text { color: var(--nm-text-2); }

/* ══════════════════════════════════════════════════════════════════════
   판독성·포커스 보정 (2026-09-24 감사 C-05 / C-08)
   Normal 이 기본 테마인데 레트로에서 온 밝은 배경과 outline 제거가 남아 있었다.
   전부 **색과 outline 만** 바꾼다 — 상자 크기·위치는 건드리지 않는다.
   ══════════════════════════════════════════════════════════════════════ */

/* [C-05] 원고 다운로드 아이콘: ide.css:102 의 hover 배경(#d7eaff)이 Normal 에 그대로 남아
   흰 아이콘이 밝은 파랑 위에 얹혔다(대비 1.23:1). 색만 덮고 배경을 안 덮은 탓이다. */
:root[data-nmkr-theme="normal"] #ide-screen .ide-pane-icon-btn:hover:not(:disabled) {
  background: var(--nm-hover);
}

/* [C-05] 길이 맞춤 안내문: ide.css:592 의 #54606c 가 어두운 바탕에 그대로 남았다(2.81:1). */
:root[data-nmkr-theme="normal"] #ide-screen .ide-lengthfit-note {
  color: var(--nm-text-2);
}

/* [C-08] 원고 입력: ide.css:117 이 outline 을 지우고 Normal 이 border 를 없애,
   포커스가 어디 있는지 보이지 않았다. outline 은 레이아웃 크기를 바꾸지 않는다. */
:root[data-nmkr-theme="normal"] #ide-screen .ide-input:focus-visible {
  outline: 2px solid var(--nm-text-2);
  outline-offset: -2px;
}

/* [C-08] 방송 시각: 시·분 input 자체가 border/outline 을 모두 지운다.
   감싸는 상자에 링을 주어 안쪽 어느 칸에 있든 보이게 한다. */
:root[data-nmkr-theme="normal"] .schedule-time-box:focus-within {
  outline: 2px solid var(--nm-text-2);
  outline-offset: 2px;
}
