:root, .theme-dark, .theme-light {
  color-scheme: light dark;
}

/* Global transitions for interactive elements */
button, [role="button"], input, select, textarea, .card, .panel {
  transition:
    background var(--pfse-anim-micro) var(--pfse-ease-standard),
    color var(--pfse-anim-micro) var(--pfse-ease-standard),
    border-color var(--pfse-anim-micro) var(--pfse-ease-standard),
    box-shadow var(--pfse-anim-micro) var(--pfse-ease-standard),
    outline var(--pfse-anim-instant) var(--pfse-ease-standard),
    transform var(--pfse-anim-instant) var(--pfse-ease-standard);
}

/* Focus-visible state (accessible) */
button:focus-visible, [role="button"]:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: var(--pfse-focus-ring-width) solid var(--pfse-focus-ring-color);
  outline-offset: 2px;
}

/* Active state (press) */
button:active, [role="button"]:active {
  transform: scale(var(--pfse-active-scale));
}

html, body {
  margin: 0;
  padding: 0;
  min-height: 100%;
  background: var(--pfse-bg);
  color: var(--pfse-text-high);
  font-family: var(--pfse-font-sans);
}

/* SplitLayout scaffolding moved to style/splitlayout.css (tokenized). */

/* Shell layout utilities (helpers only; component classes live in components.css) */
.previous-restore { margin: var(--pfse-spacing-1) 0; }
/* Text rhythm helpers */
.lh-relaxed { line-height: 1.6; }
/* Right pane positioning helper */
.position-relative { position: relative; }
