*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; -webkit-text-size-adjust: 100%; }
body {
  min-height: 100vh;
  margin: 0;
  overflow: hidden;
  background: var(--bg);
  color: var(--fg);
  font: 400 16px/1.5 var(--font-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
button, input, textarea { color: inherit; font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin: 0; }
h1, h2, h3, h4 { color: var(--leadity-text-dark); font-family: var(--font-display); font-weight: 700; line-height: 1.3; }

:where(a, button, input, textarea, [tabindex]):focus-visible {
  outline: var(--leadity-focus-width) solid var(--leadity-focus-color);
  outline-offset: var(--leadity-focus-offset);
}
.skip-link {
  position: fixed;
  left: var(--leadity-space-5);
  top: var(--leadity-space-3);
  z-index: 100;
  padding: var(--leadity-space-3) var(--leadity-space-5);
  border-radius: var(--leadity-radius-sm);
  background: var(--surface);
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

.app-shell {
  height: 100dvh;
  min-height: 100vh;
  display: grid;
  grid-template-rows: var(--leadity-shell-header-height) minmax(0, 1fr) var(--leadity-shell-footer-height);
}
.app-main {
  min-height: 0;
  display: grid;
  grid-template-columns: var(--leadity-shell-sidebar-width) var(--leadity-shell-context-rail-width) minmax(0, 1fr);
  gap: var(--leadity-space-5);
  padding: var(--leadity-space-7) var(--leadity-space-6);
  overflow: hidden;
}
.app-shell[data-nav-open="false"] .app-main { grid-template-columns: var(--leadity-shell-context-rail-width) minmax(0, 1fr); }
.page-content { min-width: 0; overflow: auto; scrollbar-width: thin; }

@media (max-width: 1279px) {
  .app-main { grid-template-columns: 280px var(--leadity-shell-context-rail-width) minmax(0, 1fr); }
}
@media (max-width: 1023px) {
  body { overflow: auto; }
  .app-shell { height: auto; min-height: 100dvh; grid-template-rows: var(--leadity-shell-header-height) auto auto; }
  .app-main, .app-shell[data-nav-open="false"] .app-main { grid-template-columns: var(--leadity-shell-context-rail-width) minmax(0, 1fr); overflow: visible; }
  .page-content { overflow: visible; }
}
@media (max-width: 767px) {
  .app-main, .app-shell[data-nav-open="false"] .app-main {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--leadity-space-7) var(--leadity-space-5);
  }
  .context-rail { display: none; }
}
@media (max-width: 479px) { .app-main { padding-inline: var(--leadity-space-3); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
