/* Shared shell only: embedded simulation documents retain their original styles. */
:root {
  --ink-muted: #625d58;
  --admin-muted: #5d626f;
  --focus: #2458a8;
}
html { scroll-padding-top: 6rem; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
main, #main-content, #admin-content { scroll-margin-top: 6rem; }
body a:not(.button):not(.btn):not(.admin-button):not(.worksheet-button):not(.brand):not(.admin-brand) { color: #963b0c; }
.button-primary, .btn-primary, .admin-button.primary,
.filter-tab.is-active, .featured-label { color: #141414; }
.button-primary:hover, .btn-primary:hover, .admin-button.primary:hover { color: #141414; }
body a.filter-tab.is-active { color: #141414 !important; }
body .btn-primary { color: #141414 !important; }
.filter-tab.is-active .filter-count { color: #141414; background: transparent; }
.filter-label, .filter-count, .breadcrumbs, .breadcrumbs span,
.simulation-viewer-hint, .footer-bottom p, .testimonial-role { color: #625d58; }
.card-action, .hero-stat .num, .price-kicker { color: #963b0c; }
.brand-footer .brand-copy { text-decoration: underline; text-underline-offset: .2em; }
body a.brand-footer { text-decoration: underline; }
.auth-switch a, .field-help a, p a:not(.button):not(.btn) { text-decoration: underline; text-underline-offset: .18em; }
.account-verification-notice a { text-decoration: underline; text-underline-offset: .18em; }
.analytics-consent { position: relative; inset: auto; width: auto; max-width: none; margin: 1rem; }
.analytics-consent p, .analytics-consent strong { color: #f2f0fa; }
.analytics-consent a { color: #ffbc94 !important; text-decoration: underline; }
.analytics-consent .button { min-height: 44px; }
.analytics-consent .button-secondary { color: #222; }
.admin-sidebar a:not(.admin-button), .admin-sidebar small { color: #e0e3ec !important; }
.admin-sidebar .admin-nav-group > summary { color: #d2d5e0; }
.admin-sidebar .admin-nav-group > summary small { color: #e0e3ec; }
.admin-menu-button::before { color: #141414; }
.admin-menu-close { min-width: 44px; min-height: 44px; }
.admin-sidebar .admin-nav-items a, .admin-nav-group > summary { min-height: 44px; }
:is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #2458a8 !important;
  outline-offset: 3px;
}
.admin-sidebar :focus-visible, .analytics-consent :focus-visible {
  outline-color: #ffbc94 !important;
}
.skip-link, .admin-skip {
  position: fixed; z-index: 2000; left: .5rem; top: .5rem;
  padding: .75rem 1rem; background: #fff; color: #222 !important;
  border: 2px solid #2458a8; border-radius: 6px;
  transform: translateY(-200%); text-decoration: underline;
}
.skip-link:focus, .admin-skip:focus { transform: none; }
.catalog-pagination .page-link {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; min-width: 44px; padding: .5rem .75rem;
}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]), select,
.button, .btn, .admin-button, .text-button, .worksheet-button, summary { min-height: 44px; }
input[type=checkbox], input[type=radio] { min-width: 24px; min-height: 24px; }
.auth-card h1 { font-size: clamp(1.65rem, 5vw, 2.25rem); line-height: 1.2; font-weight: 750; }
.compare-table { color: #333; }
.compare-table .no { color: #a12424; }
.compare-table .yes { color: #176b3a; }
.compare-table .disabled { color: #625d58; }
.eyebrow { color: #4938b0 !important; }
.pagination .disabled, .footer-inner p { color: #625d58; }
.seo-footer-text { color: #625d58 !important; }
.site-footer .footer-inner, .site-footer .footer-nav { flex-wrap: wrap; max-width: 100%; }
.site-footer .footer-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.admin-status.on { color: #176b3a; }
.admin-status.off { color: #9b2727; }
.comparison-scroll { max-width: 100%; overflow: auto; }
.comparison-scroll .compare-table { display: table; overflow: visible; min-width: 600px; }
.comparison-scroll:focus-visible { outline: 3px solid #2458a8; outline-offset: 3px; }
.teacher-editor, .surface-card, .stack-form label { min-width: 0; }
.teacher-editor .teacher-link input { font-size: 16px; }
@media (max-width: 600px) {
  input:not([type=hidden]), textarea, select { font-size: 16px; }
  .analytics-consent { padding: 1rem; }
  .analytics-consent .button-row { display: grid; grid-template-columns: minmax(0, 1fr); }
  .analytics-consent .button { white-space: normal; }
  .teacher-editor p > .button, .teacher-editor .teacher-link > .button { max-width: 100%; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
@media (forced-colors: active) {
  :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
  .admin-sidebar :focus-visible, .analytics-consent :focus-visible { outline-color: Highlight !important; }
  .button, .btn, .admin-button, .worksheet-button, .filter-tab { border: 1px solid ButtonText; }
}
@media print { .skip-link, .admin-skip, .analytics-consent { display: none !important; } }
