:root {
  --site-focus: #f6237d;
  --site-secondary: #999;
  --site-control-border: #777;
}
html { scroll-padding-top: 100px; }
body { color-scheme: dark; }
::selection { background: #f6237d; color: #000; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--site-focus);
  outline-offset: 4px;
}
.skip-link {
  position: fixed; top: 8px; left: 8px; z-index: 10000;
  padding: 12px 18px; border-radius: 8px;
  background: #f6237d; color: #000; font-weight: 600;
  transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); }
main { min-width: 0; }
main :is(p, li) a { color: var(--site-focus); text-decoration: underline; text-underline-offset: .2em; }
input, select, textarea { caret-color: var(--site-focus); accent-color: var(--site-focus); max-width: 100%; }
input:not([type="range"]):not([type="checkbox"]):not([type="radio"]), select, textarea { border-color: var(--site-control-border) !important; }
input::placeholder, textarea::placeholder { color: var(--site-secondary) !important; opacity: 1; }
button:disabled { cursor: not-allowed; }
.footer-links a, .nav-links a, .cc-settings-link, .ri-footer-social a { min-height: 44px; display: inline-flex; align-items: center; }
.cc-btn, .mnav-bar-cta { min-height: 44px; }
.cc-text { min-width: 0; }
.table-wrap, .feature-carousel { scrollbar-color: #777 #111; scrollbar-width: thin; }
.feature-carousel:focus-visible { outline-offset: -3px; }
table { font-variant-numeric: tabular-nums; }
.breadcrumb, .article-meta, .footer-links, .footer-left { overflow-wrap: anywhere; }
@media (max-width: 720px) {
  .card-grid { grid-template-columns: minmax(0, 1fr); }
  .cc-banner { padding: 16px; max-height: 70dvh; overflow-y: auto; }
  .cc-inner { gap: 12px; }
  main :is(pre, code) { overflow-wrap: anywhere; }
  pre { overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .cc-banner.cc-open { animation: none; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .feature-carousel { scroll-behavior: auto; }
  .card, .store-badge, .btn-primary, .btn-secondary { transition: none; }
  .card:hover, .store-badge:hover { transform: none; }
}

.cc-text a { text-decoration: underline; text-underline-offset: .2em; }
#f-price-min, #f-price-max { min-height: 24px; }

/* Text links remain identifiable on every shared dark surface. */
main :is(p, li) a, .cc-text a, .empty a { text-decoration: underline !important; }
a.inline { color: #ff74af; }
.btn.primary { color: #000; }
.btn.primary:hover { background: #ff74af; }

#loading a { text-decoration: underline; text-underline-offset: .2em; }

.btn-plan small { opacity: 1; }

.build-overlay { width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; color: #fff; }
.build-overlay:not([open]) { display: none; }
.day-card.rest { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .build-spinner { animation: none; } .progress div { transition: none; } }

/* Visitors can reach controls without first choosing a cookie preference. */
body { padding-bottom: var(--cookie-consent-space, 0px); }
html { scroll-padding-bottom: var(--cookie-consent-space, 0px); }
