/* ============================================================
   동쪽구름 ERP — 기본 리셋 & 공통 요소
   ============================================================ */
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; padding:0; height:100%; }
body {
  font-family:var(--font);
  background:var(--c-bg);
  color:var(--c-text);
  font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
input,select,textarea { font-family:inherit; font-size:14px; }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:#d4d9e4; border-radius:999px; border:2px solid var(--c-bg); }
::-webkit-scrollbar-thumb:hover { background:#bcc3d2; }

/* 타이포 유틸 */
.h1 { font-size:22px; font-weight:800; letter-spacing:-.02em; }
.h2 { font-size:17px; font-weight:700; letter-spacing:-.01em; }
.muted { color:var(--c-text-dim); }
.mute2 { color:var(--c-text-mute); }
.num   { font-variant-numeric:tabular-nums; }
.right { text-align:right; }
.center{ text-align:center; }
.nowrap{ white-space:nowrap; }

/* 버튼 */
.btn { display:inline-flex; align-items:center; gap:6px; height:36px; padding:0 14px;
  border-radius:var(--r-sm); font-weight:600; font-size:13px; color:var(--c-text);
  background:var(--c-surface); border:1px solid var(--c-border); transition:.12s; }
.btn:hover { background:var(--c-surface-2); border-color:#d6dbe8; }
.btn-primary { background:var(--c-primary); color:#fff; border-color:var(--c-primary); }
.btn-primary:hover { background:var(--c-primary-ink); border-color:var(--c-primary-ink); }
.btn-ghost { background:transparent; border-color:transparent; }
.btn-ghost:hover { background:var(--c-primary-weak); }
.btn-sm { height:30px; padding:0 10px; font-size:12px; }
.btn:disabled { opacity:.5; cursor:not-allowed; }

/* 카드 */
.card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--r); box-shadow:var(--sh-1); }
.card-pad { padding:var(--sp-5); }

/* 로딩 스켈레톤 */
.skel { background:linear-gradient(90deg,#eef1f7 25%,#e3e7f0 37%,#eef1f7 63%);
  background-size:400% 100%; animation:skel 1.3s ease infinite; border-radius:6px; }
@keyframes skel { 0%{background-position:100% 0} 100%{background-position:0 0} }

/* 빈 상태 */
.empty { text-align:center; color:var(--c-text-mute); padding:48px 20px; }
.empty .ico { font-size:34px; opacity:.5; margin-bottom:8px; }
