/* Astro Engine shared public UI. Change the URL version when these bytes change.
   Components retain their own visibility, chart colors, positioning and layout. */
:root {
  --ae-ink: #101322;
  --ae-ivory: #f5f3ee;
  --ae-surface: #111522;
  --ae-border: #687187;
  --ae-muted: #b9c2d2;
  --ae-accent: #e6c878;
  --ae-accent-ink: #171509;
  --ae-focus: #f0d289;
  --ae-radius: 12px;
  --ae-body: 'DM Sans', system-ui, sans-serif;
  --ae-heading: 'Cormorant Garamond', Georgia, serif;
}
[data-theme="light"] {
  --ae-ink: #f7f5ef;
  --ae-ivory: #202338;
  --ae-surface: #fffefb;
  --ae-border: #70788a;
  --ae-muted: #505a6b;
  --ae-accent: #795710;
  --ae-focus: #795710;
}
/* Defaults also make small standalone error/empty states readable. */
:where(body) { background-color: var(--ae-ink); color: var(--ae-ivory); }
html body { font-family: var(--ae-body); -webkit-font-smoothing: antialiased; }
body :is(h1, h2, h3) { font-family: var(--ae-heading); text-wrap: pretty; }
body :is(button, input, select, textarea) { font-family: inherit; }
body :is(button, .btn, .btn-primary, .btn-secondary, .cta-btn) {
  min-height: 44px; border-radius: var(--ae-radius); white-space: normal;
  overflow-wrap: anywhere; line-height: 1.35;
}
body :is(.btn-primary, .cta-btn) {
  background: #e6c878; color: #171509; border: 1px solid #e6c878;
  padding: 12px 20px; font-weight: 700;
}
body :is(.btn-secondary) {
  border: 1px solid var(--ae-border); padding: 12px 20px; font-weight: 600;
}
body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="color"]):not([type="submit"]):not([type="button"]) {
  min-height: 44px; max-width: 100%; box-sizing: border-box;
  border: 1px solid var(--ae-border); border-radius: 10px;
  padding: 10px 12px; font-size: max(1rem, 16px); line-height: 1.5;
  background-color: var(--ae-surface); color: var(--ae-ivory);
}
body :is(input, textarea)::placeholder { color: var(--ae-muted); opacity: 1; }
body select option { color: var(--ae-ivory); background: var(--ae-surface); }
html body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--ae-focus); outline-offset: 3px;
}
body :is(.auth-card, .card-glass, .form-card) {
  border-color: var(--ae-border); border-radius: 18px;
}
body :is(.site-header, .top-nav) { border-bottom-color: var(--ae-border); }
body :is(.site-header, .top-nav) a { text-underline-offset: .22em; }
body :is(.site-header, .top-nav) a:hover { text-decoration: underline; }
body :is(article, .article-body, .article-content) :is(p, li) { line-height: 1.75; }
body :is(article, .article-body, .article-content) a { text-underline-offset: .2em; }
/* Simple navigation has no collapsible menu. Wrap links without changing
   display/visibility rules on hamburger-driven navigation elsewhere. */
@media (max-width: 600px) {
  body .top-nav:not(:has(.hamburger)) { flex-wrap: wrap; gap: 12px; }
  body .top-nav:not(:has(.hamburger)) .nav-links { flex-wrap: wrap; gap: 12px; min-width: 0; }
}
/* Editorial comparison tables scroll within their own labeled region. */
body .ae-table-scroll { max-width: 100%; overflow-x: auto; }
body .listicle { background: var(--ae-surface); color: var(--ae-ivory); font-family: var(--ae-body); }
body .listicle :is(h1, h2, h3, a) { color: var(--ae-accent); }
body .listicle :is(.meta, .updated) { color: var(--ae-muted); }
body .listicle :is(th, .tldr, .self-disclosure) { background: var(--ae-ink); color: var(--ae-ivory); }
body .listicle :is(th, td) { border-color: var(--ae-border); }
body .listicle .cta { background: #e6c878; color: #171509; min-height: 44px; }
