/*
  Fast Repair CRM — UI Base Styles

  Goal: provide a small, consistent typography + accessibility baseline that
  doesn't visually break existing pages.

  Keep selectors low-specificity so existing component/page CSS can override.
*/

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Typography */
:where(h1, h2, h3, h4) {
  margin: 0 0 var(--space-4) 0;
  line-height: 1.15;
  letter-spacing: -0.01em;
  font-weight: 800;
}
:where(h1) { font-size: 32px; }
:where(h2) { font-size: 22px; }
:where(h3) { font-size: 18px; }
:where(h4) { font-size: 15px; }

:where(p) { margin: 0 0 var(--space-3) 0; }
:where(p:last-child) { margin-bottom: 0; }

:where(small) { font-size: 12px; line-height: 1.35; }

/* Links */
a {
  color: var(--accent2, var(--primary));
  text-decoration: none;
}
a.link:hover { text-decoration: underline; }

/* Accessible focus ring */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.35);
}

/* Default layout helpers */
:where(.container) {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--space-5);
}

.fr-page-pad { padding: var(--space-5); }
.fr-page-pad-sm { padding: var(--space-4); }
.fr-page-pad-lg { padding: var(--space-7); }
