/* LMS base.css — 디자인 토큰·reset·타이포·유틸리티 (v0.2 — 관리프로그램형 재설계)
   규약: docs/06_화면설계/04_UI_표준.md. 색·크기 하드코딩 금지, 전량 변수 참조. */

:root {
  /* 브랜드 (테넌트 BRAND_JSON 오버라이드 대상) — 차분한 관리형 블루 */
  --lms-primary: #0969da;
  --lms-primary-dark: #0550ae;
  --lms-primary-soft: #ddf1ff;

  /* 중립 잉크/면 (밀도 높은 백오피스용 미세 스케일) */
  --lms-bg: #f6f8fa;          /* 페이지 */
  --lms-surface: #ffffff;     /* 카드/표 */
  --lms-border: #d1d9e0;      /* 경계 */
  --lms-border-soft: #e6eaef; /* 행 구분 헤어라인 */
  --lms-text: #1f2328;        /* 본문 잉크 */
  --lms-text-sub: #59636e;    /* 보조 잉크 */
  --lms-text-muted: #818b98;  /* 라벨/축 */

  /* 상태 (의미 고정 — UI표준 3장. 항상 텍스트와 병행, 색 단독 의미 전달 금지) */
  --lms-success: #1a7f37;  --lms-success-soft: #dafbe1;
  --lms-warning: #9a6700;  --lms-warning-soft: #fff8c5;
  --lms-danger:  #cf222e;  --lms-danger-soft:  #ffebe9;

  /* 타이포 — Pretendard(확정 2026-07-14), 관리 화면 밀도 기준 13px */
  --lms-font: "Pretendard Variable", Pretendard, "Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;
  --lms-fs-xs: 11px;
  --lms-fs-sm: 12px;
  --lms-fs-md: 13px;   /* 기본 */
  --lms-fs-lg: 14px;
  --lms-fs-xl: 16px;
  --lms-fs-2xl: 20px;

  /* 간격 (4px 배수) */
  --lms-sp-1: 4px;  --lms-sp-2: 8px;  --lms-sp-3: 12px;
  --lms-sp-4: 16px; --lms-sp-5: 24px; --lms-sp-6: 32px;

  /* 밀도 (컨트롤/셀 패딩 — 레이아웃 스코프에서 오버라이드 가능) */
  --lms-control-py: 6px;
  --lms-control-px: 10px;
  --lms-cell-py: 7px;
  --lms-cell-px: 10px;

  /* 형태 — 백오피스: 낮은 라운드, 절제된 그림자 */
  --lms-radius: 4px;
  --lms-radius-lg: 8px;
  --lms-shadow: 0 1px 2px rgba(31, 35, 40, .06);

  /* z-index */
  --lms-z-nav: 100;
  --lms-z-modal: 1000;
  --lms-z-toast: 1100;
}

/* reset */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
table { border-spacing: 0; }

body {
  font-family: var(--lms-font);
  font-size: var(--lms-fs-md);
  line-height: 1.5;
  color: var(--lms-text);
  background: var(--lms-bg);
  -webkit-font-smoothing: antialiased;
}

h1 { font-size: var(--lms-fs-2xl); font-weight: 700; }
h2 { font-size: var(--lms-fs-xl); font-weight: 700; }
h3 { font-size: var(--lms-fs-lg); font-weight: 700; }

a { color: var(--lms-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* 접근성: 포커스 링 제거 금지 (UI표준 7장) */
:focus-visible { outline: 2px solid var(--lms-primary); outline-offset: 1px; }

/* 숫자 정렬 (표·통계 — 세로 정렬 필요한 곳만) */
.lms-num { font-variant-numeric: tabular-nums; text-align: right; }

/* 유틸리티 */
.lms-mt-1 { margin-top: var(--lms-sp-1); } .lms-mt-2 { margin-top: var(--lms-sp-2); }
.lms-mt-3 { margin-top: var(--lms-sp-3); } .lms-mt-4 { margin-top: var(--lms-sp-4); }
.lms-mt-5 { margin-top: var(--lms-sp-5); } .lms-mt-6 { margin-top: var(--lms-sp-6); }
.lms-mb-2 { margin-bottom: var(--lms-sp-2); } .lms-mb-4 { margin-bottom: var(--lms-sp-4); }
.lms-flex { display: flex; gap: var(--lms-sp-2); align-items: center; }
.lms-flex--between { justify-content: space-between; }
.lms-flex--wrap { flex-wrap: wrap; }
.lms-grid { display: grid; gap: var(--lms-sp-3); }
.lms-grid--2 { grid-template-columns: repeat(2, 1fr); }
.lms-grid--3 { grid-template-columns: repeat(3, 1fr); }
.lms-grid--4 { grid-template-columns: repeat(4, 1fr); }
.lms-grid--5 { grid-template-columns: repeat(5, 1fr); }
.lms-text-sub { color: var(--lms-text-sub); }
.lms-text-muted { color: var(--lms-text-muted); }
.lms-text-sm { font-size: var(--lms-fs-sm); }
.lms-text-right { text-align: right; }
.lms-text-center { text-align: center; }
.lms-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.lms-divider { border: 0; border-top: 1px solid var(--lms-border-soft); margin: var(--lms-sp-4) 0; }
@media (max-width: 768px) {
  .lms-grid--2, .lms-grid--3, .lms-grid--4, .lms-grid--5 { grid-template-columns: 1fr; }
}
