body {
  background: var(--color-bg);
  color: var(--color-gray-800);
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.is-modal-open,
body.is-drawer-open { overflow: hidden; }

h1, h2, h3, h4, h5, h6 { color: var(--color-navy-950); font-weight: 700; letter-spacing: -0.02em; }
h1 { font-size: var(--text-3xl); line-height: 1.2; }
h2 { font-size: var(--text-2xl); line-height: 1.25; }
h3 { font-size: var(--text-xl); line-height: 1.3; }
h4 { font-size: var(--text-lg); line-height: 1.35; }

p { color: var(--color-gray-600); }

small, .text-small { font-size: var(--text-sm); }

::placeholder { color: var(--color-gray-400); opacity: 1; }

button { border: 0; color: inherit; background: none; }

input, select, textarea {
  min-height: 40px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  color: var(--color-gray-800);
  padding: 0 12px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

textarea { min-height: 96px; padding: 10px 12px; resize: vertical; }

input:hover, select:hover, textarea:hover { border-color: var(--color-gray-400); }
input:focus, select:focus, textarea:focus { border-color: var(--color-teal-600); box-shadow: 0 0 0 3px rgba(16, 165, 156, 0.12); outline: none; }
input:disabled, select:disabled, textarea:disabled { background: var(--color-gray-100); color: var(--color-gray-500); cursor: not-allowed; }

label { color: var(--color-gray-700); font-size: var(--text-sm); font-weight: 650; }

hr { border: 0; border-top: 1px solid var(--color-border); margin: var(--space-5) 0; }

button:disabled { cursor: not-allowed; opacity: 0.55; }

.app-link { color: var(--color-teal-700); font-weight: 650; }
.app-link:hover { text-decoration: underline; }

kbd { border: 1px solid var(--color-border-strong); border-bottom-width: 2px; border-radius: 4px; background: var(--color-gray-50); color: var(--color-gray-600); font-family: var(--font-mono); font-size: 10px; padding: 2px 5px; }
