:root {
  --cm-primary: #0F7EA8;
  --cm-primary-dark: #075E7F;
  --cm-accent: #1FB6D9;
  --cm-accent-soft: #E8F8FC;
  --cm-bg: #F6F8FB;
  --cm-card: #FFFFFF;
  --cm-border: #E5E7EB;
  --cm-border-strong: #CBD5E1;
  --cm-text: #071827;
  --cm-muted: #64748B;
  --cm-soft-text: #334155;
  --cm-success: #16A34A;
  --cm-warning: #F59E0B;
  --cm-danger: #DC2626;
  --cm-sidebar: #0B1F2A;
  --cm-sidebar-soft: #102B39;
  --cm-radius-sm: 12px;
  --cm-radius: 18px;
  --cm-radius-lg: 24px;
  --cm-shadow-sm: 0 8px 22px rgba(15, 23, 42, 0.07);
  --cm-shadow: 0 18px 48px rgba(15, 23, 42, 0.11);
  --cm-shadow-lg: 0 28px 80px rgba(15, 23, 42, 0.18);
  --cm-focus: 0 0 0 4px rgba(31, 182, 217, 0.18);
  --cm-transition: 0.2s ease;
  --font: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Segoe UI", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--cm-text);
  background:
    radial-gradient(circle at 20% 0%, rgba(31, 182, 217, 0.08), transparent 28rem),
    linear-gradient(180deg, #F9FBFD 0%, var(--cm-bg) 42%);
  font-family: var(--font);
  font-weight: 500;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

button,
input,
textarea,
select {
  font: inherit;
  letter-spacing: 0;
}

button,
a,
input,
textarea,
select {
  transition: border-color var(--cm-transition), box-shadow var(--cm-transition),
    background-color var(--cm-transition), color var(--cm-transition),
    transform var(--cm-transition), opacity var(--cm-transition);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: none;
  box-shadow: var(--cm-focus);
}

h1,
h2,
h3,
h4,
strong {
  letter-spacing: 0;
}

.muted,
.empty-state,
.small-note,
.helper-text {
  color: var(--cm-muted);
}

.hidden {
  display: none !important;
}

::selection {
  background: rgba(31, 182, 217, 0.22);
}
