/* 앱에서 쓰지 않는 옛 부품 규칙 — 첫 페이지·LMS·PASS·학생 화면 전용(2026-09-20).
 *
 * 모두 `:where(:root:not([data-ds]))` 로 시작한다. 앱(/app, html[data-ds])에서는 한 줄도 적용되지 않는데,
 * 예전에는 앱도 이 19KB 를 함께 받아 파싱했다. 그래서 css/design-tokens.css 에서 이 파일로 옮기고,
 * 앱이 아닌 화면에서만 design-tokens.css 바로 뒤에 불러온다(순서가 바뀌면 안 된다).
 *
 * 새 규칙은 여기에 더하지 않는다 — 새 화면은 디자인 시스템(css/ds.css·ds-app.css·ds-screens.css)을 쓴다.
 */

/* 앱(/app, html[data-ds])에서는 아래 옛 버튼 규칙을 모두 끈다 — 옛 버튼(.bp·.bs·.btn·.fbtn 등)은 연결층(css/ds-bridge.css)이
   새 버튼(o-btn)과 같은 모양으로 그린다(2026-09-19 디자인 개편 P3). LMS·PASS 등 다른 페이지는 그대로. */
/* ═══════════════════════════════════════════════════
   [수정 1] 버튼 공통 기반 + 색상 시스템 통일
   ═══════════════════════════════════════════════════ */
:where(:root:not([data-ds])) .btn,
:where(:root:not([data-ds])) button.btn,
:where(:root:not([data-ds])) .fbtn,
:where(:root:not([data-ds])) .nbtn,
:where(:root:not([data-ds])) .abtn,
:where(:root:not([data-ds])) .bp,
:where(:root:not([data-ds])) .pbtn,
:where(:root:not([data-ds])) .ptb-btn-ok,
:where(:root:not([data-ds])) .ptb-btn-primary,
:where(:root:not([data-ds])) .login-btn,
:where(:root:not([data-ds])) .er-btn,
:where(:root:not([data-ds])) .pdf-export-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  height: var(--h-btn-md) !important;
  padding: 0 var(--s-4) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  font-family: var(--font-main) !important;
  border-radius: var(--r-md) !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: background var(--dur-1) var(--ease-out),
              border-color var(--dur-1) var(--ease-out),
              color var(--dur-1) var(--ease-out),
              box-shadow var(--dur-1) var(--ease-out) !important;
  text-decoration: none !important;
}
:where(:root:not([data-ds])) .btn-sm {
  height: var(--h-btn-sm) !important;
  padding: 0 var(--s-3) !important;
  font-size: 12px !important;
}
:where(:root:not([data-ds])) .btn-lg {
  height: var(--h-btn-lg) !important;
  padding: 0 var(--s-5) !important;
  font-size: 14px !important;
}
/* ── 기존 버튼 클래스 — 기본(분류 없는) 색상 ──
   !important 는 예전 규칙(.ptb button 등 특이도가 더 높은 선택자)을 이기려고 붙였는데, 그 바람에
   style="background:…" 로 직접 정한 색까지 전부 덮어썼다. 그래서 탭처럼 쓰는 토글 버튼(환경 설정
   문서·양식의 수료증 4종, 문자 템플릿 탭, 참조 카테고리 탭)이 선택 여부와 상관없이 모두 파란색으로
   보였고, 빨강이어야 할 발송·반려 버튼도 파란색이었다(원장 신고, 2026-09-11).
   → '배경을 직접 정한 버튼'만 규칙에서 빼 준다. 글자색만 정한 버튼은 예전처럼 토큰 색 한 쌍을 쓴다
     (배경은 파랑인데 글자만 회색으로 남아 안 보이게 되는 것을 막는다).
   색상 변형(.bp.btn-success 등)은 이 규칙 '뒤'에 있어야 이긴다 — 특이도가 같으면 나중 규칙이 이긴다. */
:where(:root:not([data-ds])) .fbtn:not([style*="background"]),
:where(:root:not([data-ds])) .bp:not([style*="background"]),
:where(:root:not([data-ds])) .login-btn:not([style*="background"]) {
  background: var(--brand-600) !important; color: var(--on-brand-fg) !important;
}
:where(:root:not([data-ds])) .nbtn:not([style*="background"]),
:where(:root:not([data-ds])) .abtn:not([style*="background"]) {
  background: var(--ink-100) !important; color: var(--ink-700) !important;
}
:where(:root:not([data-ds])) .bs:not([style*="background"]) { background: var(--paper-0) !important; color: var(--ink-700) !important; }
/* 배경만 바꾸고 글자색은 안 준 버튼(예: 빨간 발송 버튼) — 글자는 흰색으로 */
:where(:root:not([data-ds])) .fbtn[style*="background"]:not([style*="color:"]),
:where(:root:not([data-ds])) .bp[style*="background"]:not([style*="color:"]),
:where(:root:not([data-ds])) .login-btn[style*="background"]:not([style*="color:"]) { color: var(--on-brand-fg) !important; }
:where(:root:not([data-ds])) .fbtn:not([style*="border:"]),
:where(:root:not([data-ds])) .bp:not([style*="border:"]),
:where(:root:not([data-ds])) .login-btn:not([style*="border:"]) { border: none !important; }
:where(:root:not([data-ds])) .nbtn:not([style*="border:"]),
:where(:root:not([data-ds])) .abtn:not([style*="border:"]),
:where(:root:not([data-ds])) .bs:not([style*="border:"]) { border: 1px solid var(--ink-300) !important; }
/* ── 파랑 (조회·저장·확인·다운로드) ── */
:where(:root:not([data-ds])) .btn-primary,
:where(:root:not([data-ds])) .fbtn.btn-primary,
:where(:root:not([data-ds])) .bp.btn-primary,
:where(:root:not([data-ds])) .ptb-btn-ok,
:where(:root:not([data-ds])) .ptb-btn-primary,
:where(:root:not([data-ds])) .login-btn {
  background: var(--brand-600) !important;
  color: var(--paper-0) !important;
  border: none !important;
}
:where(:root:not([data-ds])) .btn-primary:hover,
:where(:root:not([data-ds])) .fbtn.btn-primary:hover,
:where(:root:not([data-ds])) .bp.btn-primary:hover,
:where(:root:not([data-ds])) .ptb-btn-ok:hover,
:where(:root:not([data-ds])) .ptb-btn-primary:hover,
:where(:root:not([data-ds])) .login-btn:hover {
  background: var(--brand-700) !important;
}
/* ── 초록 (발급·SMS·이메일·복사) ── */
:where(:root:not([data-ds])) .btn-success,
:where(:root:not([data-ds])) .fbtn.btn-success,
:where(:root:not([data-ds])) .bp.btn-success,
:where(:root:not([data-ds])) .abtn.sms,
:where(:root:not([data-ds])) .abtn.copy {
  background: var(--success-600) !important;
  color: var(--paper-0) !important;
  border: none !important;
}
:where(:root:not([data-ds])) .btn-success:hover,
:where(:root:not([data-ds])) .fbtn.btn-success:hover,
:where(:root:not([data-ds])) .bp.btn-success:hover,
:where(:root:not([data-ds])) .abtn.sms:hover,
:where(:root:not([data-ds])) .abtn.copy:hover {
  background: var(--success-700) !important;
}
/* ── 주황 (일괄퇴실·알림) ── */
:where(:root:not([data-ds])) .btn-warning,
:where(:root:not([data-ds])) .fbtn.btn-warning,
:where(:root:not([data-ds])) .bp.btn-warning {
  background: var(--warning-600) !important;
  color: var(--paper-0) !important;
  border: none !important;
}
:where(:root:not([data-ds])) .btn-warning:hover,
:where(:root:not([data-ds])) .fbtn.btn-warning:hover,
:where(:root:not([data-ds])) .bp.btn-warning:hover {
  background: var(--warning-700) !important;
}
/* ── 빨강 (삭제·위험) ── */
:where(:root:not([data-ds])) .btn-danger,
:where(:root:not([data-ds])) .fbtn.btn-danger,
:where(:root:not([data-ds])) .bp.btn-danger {
  background: var(--danger-600) !important;
  color: var(--paper-0) !important;
  border: none !important;
}
:where(:root:not([data-ds])) .btn-danger:hover,
:where(:root:not([data-ds])) .fbtn.btn-danger:hover,
:where(:root:not([data-ds])) .bp.btn-danger:hover {
  background: var(--danger-700) !important;
}
/* ── 흰색 (취소·닫기·초기화) ── */
:where(:root:not([data-ds])) .btn-secondary,
:where(:root:not([data-ds])) .fbtn.btn-secondary,
:where(:root:not([data-ds])) .bp.btn-secondary,
:where(:root:not([data-ds])) .abtn.clr {
  background: var(--paper-0) !important;
  color: var(--ink-800) !important;
  border: 1px solid var(--ink-200) !important;
}
:where(:root:not([data-ds])) .btn-secondary:hover,
:where(:root:not([data-ds])) .fbtn.btn-secondary:hover,
:where(:root:not([data-ds])) .bp.btn-secondary:hover,
:where(:root:not([data-ds])) .abtn.clr:hover {
  background: var(--paper-2) !important;
  border-color: var(--ink-300) !important;
}
/* ── ghost ── */
:where(:root:not([data-ds])) .btn-ghost { background: transparent; color: var(--ink-700); border: 1px solid transparent; }
:where(:root:not([data-ds])) .btn-ghost:hover { background: var(--ink-50); border-color: var(--ink-100); }
/* ── 버튼 focus 링 ── */
:where(:root:not([data-ds])) .btn:focus-visible,
:where(:root:not([data-ds])) .fbtn:focus-visible,
:where(:root:not([data-ds])) .nbtn:focus-visible,
:where(:root:not([data-ds])) .abtn:focus-visible,
:where(:root:not([data-ds])) .bp:focus-visible,
:where(:root:not([data-ds])) .pbtn:focus-visible,
:where(:root:not([data-ds])) .ptb-btn-ok:focus-visible,
:where(:root:not([data-ds])) .ptb-btn-primary:focus-visible,
:where(:root:not([data-ds])) .login-btn:focus-visible,
:where(:root:not([data-ds])) .er-btn:focus-visible {
  outline: none;
  box-shadow: var(--sh-focus);
}
:where(:root:not([data-ds])) .nav-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--color-text-primary) !important;
  cursor: pointer;
  border-right: 2px solid transparent;
  transition: background 0.1s;
  opacity: 1;
}
:where(:root:not([data-ds])) .nav-item:hover {
  background: var(--color-sidebar-hover);
  color: var(--ink-900) !important;
}
:where(:root:not([data-ds])) .nav-item.active {
  background: var(--color-sidebar-active-bg) !important;
  color: var(--color-sidebar-active) !important;
  font-weight: 700;
  border-right: 2px solid var(--color-primary);
  text-shadow: 0 0 1px rgba(37,99,235,0.25);
}

/* ── nav-icon SVG 강제 표시 ── */
:where(:root:not([data-ds])) .nav-item svg.nav-icon {
  display: inline-block !important;
  visibility: visible !important;
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0;
  opacity: 1;
}


/* ── 로그인 화면 ── */
:where(:root:not([data-ds])) #login-overlay {
  background: var(--paper-1) !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
:where(:root:not([data-ds])) .sidebar-header,
:where(:root:not([data-ds])) .lnb-head {
  padding: 10px 12px 8px !important;
}
:where(:root:not([data-ds])) .lnb-sec-label,
:where(:root:not([data-ds])) .nav-section-label {
  font-size: 10px !important;
  padding: 10px 14px 4px !important;
  letter-spacing: 0.5px !important;
}
:where(:root:not([data-ds])) .nav-item {
  font-size: 13px !important;
  padding: 6px 14px !important;
  gap: 8px !important;
}
:where(:root:not([data-ds])) .nav-icon {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
}
:where(:root:not([data-ds])) #lnb-nav .nav-item svg {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
}
:where(:root:not([data-ds])) .sec-arrow {
  width: 10px !important;
  height: 10px !important;
}
:where(:root:not([data-ds])) .sidebar-footer,
:where(:root:not([data-ds])) .lnb-foot {
  padding: 8px 10px !important;
}

/* ── LNB 사용자 영역 ── */
:where(:root:not([data-ds])) #lnb-user {
  font-size: 11px !important;
  color: var(--color-text-muted) !important;
  padding: 2px 4px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* ═══════════════════════════════════════════════════════
   [수정 6] 교과편성 및 평가일정 — 텍스트 검은색
   ═══════════════════════════════════════════════════════ */
:where(:root:not([data-ds])) .sched-ncs-table td   { color: var(--ink-900) !important; }
:where(:root:not([data-ds])) .sched-ncs-table th   { color: var(--on-brand-fg) !important; }

/* ═══════════════════════════════════════════════════
   [수정 9] 강사료 계산 테이블 테두리 통일
   ═══════════════════════════════════════════════════ */
/* 앱에서는 새 표(o-table)가 그린다 — 옛 강제 테두리는 앱 밖에서만(2026-09-19 디자인 개편) */
:where(:root:not([data-ds])) #instructor-fee-panel table {
  border-collapse: collapse !important;
}
:where(:root:not([data-ds])) #instructor-fee-panel table th {
  border: 1px solid var(--brand-600) !important;
  background: var(--brand-50) !important;
  color: var(--brand-700) !important;
  font-weight: 600 !important;
}
:where(:root:not([data-ds])) #instructor-fee-panel table td {
  border: 1px solid var(--ink-200) !important;
  color: var(--ink-900) !important;
}
/* 앱(/app, html[data-ds])에서는 끈다 — 옛 팝업 머리도 새 팝업처럼 흰 머리(css/ds-bridge.css, 2026-09-19) */
:where(:root:not([data-ds])) .mo .mbox .mh {
  background: var(--header-brand-bg) !important;
}
:where(:root:not([data-ds])) .mo .mbox .mh * {
  color: var(--on-brand-fg) !important;
}
