/* ════════════════════════════════════════════════════════════
   core.css — CSS 변수, 리셋, 공통 애니메이션, 아이콘
   - :root 및 [data-theme="dark"] 변수 정의
   - 전역 리셋, body 기본 스타일
   - 공통 keyframe, SVG 아이콘 헬퍼
════════════════════════════════════════════════════════════ */

/* ── 변수 (light) ───────────────────────────────────────── */
:root {
  --adm-topbar-h:   44px;
  --adm-tabbar-h:   52px;
  --adm-sidebar-w:  180px;
  --adm-breakpoint: 481px;

  --bg:             #e8ecf5;
  --surface:        #f5f8fd;
  --border:         rgba(0,0,0,0.08);
  --border-strong:  rgba(0,0,0,0.18);
  --text:           #1a1a1a;
  --text-muted:     #6b7280;
  --accent:         #4f6ef7;
  --accent-hover:   #3b5bdb;
  --accent-bg:      rgba(79,110,247,0.08);
  --success:        #16a34a;
  --warning:        #d97706;
  --danger:         #dc2626;
  --info:           #0891b2;
  --sidebar-bg:     #1e293b;
  --sidebar-text:   #94a3b8;
  --sidebar-active: #f5f0e8;
  --radius-sm:      6px;
  --radius-md:      8px;
  --radius-lg:      12px;
  --shadow-sm:      0 1px 3px rgba(0,0,0,0.07);
  --shadow-md:      0 4px 12px rgba(0,0,0,0.09);
}

/* ── 변수 (dark) ────────────────────────────────────────── */
[data-theme="dark"] {
  --bg:             #0f172a;
  --surface:        #1e293b;
  --border:         rgba(255,255,255,0.08);
  --border-strong:  rgba(255,255,255,0.18);
  --text:           #f1f5f9;
  --text-muted:     #94a3b8;
  --accent-bg:      rgba(79,110,247,0.14);
  --sidebar-bg:     #020617;
  --sidebar-text:   #64748b;
  --sidebar-active: #f1f5f9;
}

/* ── 리셋 ───────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html {
  font-size: 100%;
  scrollbar-width: none;
  -webkit-text-size-adjust: 100%;
}
html::-webkit-scrollbar { display: none; }

body {
  font-family: 'Noto Sans KR', -apple-system, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, textarea, select { font-family: inherit; }
ul, ol { list-style: none; }
img { max-width: 100%; }

/* ── 애니메이션 ─────────────────────────────────────────── */
@keyframes spin    { to { transform: rotate(360deg); } }
@keyframes fadeIn  { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ── SVG 아이콘 공통 ────────────────────────────────────── */
.ico { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ico svg { width: 18px; height: 18px; }
.ico-sm svg { width: 14px; height: 14px; }
.ico-lg svg { width: 22px; height: 22px; }
