*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; min-height: 100%; }

body {
  font-family: var(--pl-font);
  line-height: 1.6;
  background: var(--pl-bg);
  color: var(--pl-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.skip-link {
  position: absolute; left: -9999px; top: 0;
  background: var(--pl-accent); color: #fff;
  padding: 0.5rem 0.75rem; border-radius: var(--pl-radius);
  font-size: 0.85rem; z-index: 999;
}
.skip-link:focus-visible { left: 0.75rem; top: 0.75rem; }

.mono { font-family: var(--pl-mono); }
.muted { color: var(--pl-muted); }

/* === Buttons === */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 0.35rem;
  padding: 0.5rem 0.9rem;
  font-family: var(--pl-font); font-size: 0.85rem; font-weight: 600;
  line-height: 1.25;
  border: 1px solid transparent; border-radius: var(--pl-radius);
  cursor: pointer; text-decoration: none;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.btn:focus-visible { outline: none; box-shadow: var(--pl-focus); }
.btn:active { transform: scale(0.98); }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-primary { background: var(--pl-accent); color: #fff; }
.btn-primary:hover { background: var(--pl-accent-hover); }
.btn-outline { background: transparent; border-color: var(--pl-border); color: var(--pl-text); }
.btn-outline:hover { border-color: var(--pl-accent); color: var(--pl-accent); }
.btn-sm { font-size: 0.78rem; padding: 0.38rem 0.65rem; }
.btn-lg { font-size: 0.9rem; padding: 0.65rem 1.35rem; }

/* === Inputs === */
.input, select {
  width: 100%;
  padding: 0.5rem 0.7rem;
  font-family: var(--pl-font); font-size: 0.85rem;
  border: 1px solid var(--pl-border); border-radius: var(--pl-radius);
  background: var(--pl-surface); color: var(--pl-text);
  transition: border-color 0.15s;
}
.input:focus-visible, select:focus-visible {
  outline: none; box-shadow: var(--pl-focus); border-color: var(--pl-accent);
}

a:focus-visible { outline: none; box-shadow: var(--pl-focus); border-radius: 2px; }
