/* AppLoop foundation: system typography and a compact, neutral interface. */
:root {
    color-scheme: dark;
    --page: #111214;
    --surface: #1b1d20;
    --surface-raised: #25272b;
    --text: #f5f5f7;
    --muted: #96989e;
    --line: #2a2c31;
    --accent: #8eea75;
    --accent-bright: #b1f69e;
    --page-width: 960px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 76px; }
body { margin: 0; background: var(--page); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; cursor: pointer; }
button:disabled { cursor: default; }
a { color: inherit; text-decoration: none; }
img, svg { vertical-align: middle; }
img { max-width: 100%; }
h1, h2, h3, h4, p { margin: 0; }
::selection { color: #122411; background: var(--accent); }
.img-fluid { max-width: 100%; height: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; transform: translateY(-180%); padding: 12px 18px; border-radius: 9px; background: var(--accent); color: #152712; font-weight: 600; }
.skip-link:focus { transform: translateY(0); }
.noscript-apps { padding-left: 20px; }
.noscript-apps a { color: var(--accent); text-decoration: underline; }
