/* Shared warm palette: teal, coral, orange and golden yellow. */
body.site-palette {
    --home-paper: #FFFFFF;
    --home-soft: #FFF5DC;
    --home-orange: #FF9A3C;
    --home-yellow: #FFC93C;
    --home-button-ink: #0A2931;
    --home-coral: #FF6F3C;
    --home-teal: #155263;
    --paper: var(--home-paper);
    --surface: var(--home-paper);
    --ink: var(--home-teal);
    --navy: var(--home-teal);
    --blue: var(--home-coral);
    --green: var(--home-coral);
    --yellow: var(--home-coral);
    --muted: var(--home-coral);
    --line: var(--home-soft);
    --accent: var(--home-coral);
    --accent-hover: var(--home-teal);
    --soft: var(--home-soft);
    background: var(--home-paper);
    color: var(--home-teal);
}
.home-palette-filters { position: absolute; pointer-events: none; }
.site-palette ::selection { background: var(--home-soft); color: var(--home-teal); }
.site-palette .site-header {
    background: var(--home-paper);
    border-color: var(--home-soft);
}
.site-palette .site-header__brand,
.site-palette .site-header__link,
.site-palette .site-header__account,
.site-palette .site-header__menu { color: var(--home-teal); }
.site-palette .site-header__brand-logo,
.site-palette .site-header__account img,
.site-palette .home-tool > img,
.site-palette .featured-guide > a img:not(.guide-art),
.site-palette .compact-guide > img:not(.guide-art) { filter: url(#site-art-palette); }
.site-palette .site-header__link:hover,
.site-palette .site-header__link.is-active { color: var(--home-coral); }
.site-palette .site-header__link.is-active::after { background: var(--home-coral); }
.site-palette .site-header__account,
.site-palette .site-header__menu {
    border-color: var(--home-soft);
    background: var(--home-paper);
}
.site-palette .site-header__account:hover,
.site-palette .site-header__menu:hover {
    border-color: var(--home-coral);
    background: var(--home-soft);
}
.site-palette .site-header__mobile {
    background: var(--home-paper);
    border-color: var(--home-soft);
    box-shadow: 0 12px 24px #15526312;
}
.site-palette .site-header__mobile a { color: var(--home-teal); }
.site-palette .site-header__mobile a[aria-current],
.site-palette .site-header__mobile a:hover { background: var(--home-soft); color: var(--home-teal); }
.site-palette .home-hero { background: var(--home-teal); color: var(--home-paper); }
.site-palette .home-hero h1 { color: var(--home-paper); }
.site-palette .home-hero p { color: var(--home-soft); }
.site-palette h2,
.site-palette h3 { color: var(--home-teal); }
.site-palette .section-description,
.site-palette .home-tool p,
.site-palette .featured-guide__copy > p:not(.guide-category),
.site-palette .compact-guide p { color: var(--home-teal); }
.site-palette .home-tool,
.site-palette .featured-guide {
    background: var(--home-paper);
    border-color: var(--home-soft);
}
.site-palette .home-tool:hover { border-color: var(--home-coral); }
.site-palette .compact-guide + .compact-guide { border-color: var(--home-soft); }
.site-palette .design-button {
    background: var(--home-coral);
    border-color: var(--home-coral);
    color: var(--home-paper);
}
.site-palette .design-button:hover { background: var(--home-teal); border-color: var(--home-teal); }
.site-palette .design-text-link,
.site-palette .guide-category { color: var(--home-coral); border-color: var(--home-coral); }
.site-palette .design-text-link:hover { color: var(--home-teal); border-color: var(--home-teal); }
.site-palette .home-faq__list { border-color: var(--home-soft); background: var(--home-paper); }
.site-palette .home-faq details + details { border-color: var(--home-soft); }
.site-palette .home-faq summary { color: var(--home-teal); }
.site-palette .home-faq summary:hover,
.site-palette .home-faq details[open] { background: var(--home-soft); }
.site-palette .home-faq details > p { color: var(--home-teal); }
.site-palette .home-faq details > p a { color: var(--home-coral); }
.site-palette .design-contact { background: var(--home-coral); color: var(--home-paper); }
.site-palette .design-contact h2,
.site-palette .design-contact p,
.site-palette .design-contact a { color: var(--home-paper); }
.site-palette .design-contact a { border-color: var(--home-paper); }
.site-palette .design-contact a:hover { background: var(--home-paper); color: var(--home-teal); }
.site-palette .design-footer { background: var(--home-teal); color: var(--home-soft); }
.site-palette .design-footer__brand,
.site-palette .design-footer nav h2 { color: var(--home-paper); }
.site-palette .design-footer__about { border-color: var(--home-coral); }
.site-palette .design-footer nav a { color: var(--home-soft); }
.site-palette .design-footer nav a:hover { color: var(--home-paper); }
.site-palette .design-contact__inner > img,
.site-palette .design-footer__brand img { filter: url(#site-light-mark); }
/* Give the warm yellow a clear place in the page rhythm. */
.site-palette .home-guides { position: relative; isolation: isolate; }
.site-palette .home-guides::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 calc((100% - 100vw) / 2);
    background: var(--home-soft);
}
.site-palette .home-guides__heading > .design-text-link,
.site-palette .compact-guide .design-text-link { color: var(--home-teal); border-color: var(--home-teal); }
.site-palette .compact-guide + .compact-guide { border-color: var(--home-paper); }
/* Match the shared launcher to the site palette. */
.site-palette .ai-agent-chat-avatar { background: var(--home-coral) !important; }
.site-palette .ai-agent-chat-avatar img { filter: url(#site-art-palette); }
.site-palette .home-tools { padding-bottom: 24px; }
.site-palette .design-contact__inner > img { filter: url(#site-contact-mark); }

/* Warm action hierarchy. */
.site-palette .site-header__link:hover,
.site-palette .site-header__link.is-active { color: var(--home-teal); }
.site-palette .design-button { color: var(--home-button-ink); font-weight: 700; }
.site-palette .home-tool .design-button { background: var(--home-yellow); border-color: var(--home-yellow); }
.site-palette .home-tool .design-button:hover { background: var(--home-teal); border-color: var(--home-teal); color: var(--home-paper); }
.site-palette .design-text-link,
.site-palette .guide-category { color: var(--home-teal); border-color: var(--home-coral); }
.site-palette .design-text-link:hover { color: var(--home-teal); border-color: var(--home-teal); }
.site-palette .home-faq details > p a { color: var(--home-teal); }
.site-palette .home-hero p { color: var(--home-paper); }
.site-palette .design-contact { background: var(--home-orange); }
.site-palette .design-contact h2,
.site-palette .design-contact p,
.site-palette .design-contact a { color: var(--home-button-ink); }
.site-palette .design-contact a { border-color: var(--home-teal); }
.site-palette .design-contact a:hover { color: var(--home-paper); background: var(--home-teal); }
.site-palette .design-footer__about { border-color: var(--home-orange); }
.site-palette .design-footer nav a,
.site-palette .design-footer { color: var(--home-paper); }
.site-palette .design-footer nav a:hover { color: var(--home-yellow); }

/* Shared tokens keep small text readable, with warm accents on actions and surfaces. */
body.site-palette { --muted:#54757E; --line:#EADFC9; --accent:#155263; --accent-hover:#155263; --green:#155263; --blue:#155263; --yellow:#FFC93C; }
body.site-palette:not(.homepage) { background:#FFFBF2; }
body.site-palette .design-button:hover { color:white; }
body.site-palette :is(.account-button:not(.secondary),.compare-button,.calculate-button,.calculator-submit,.listing-open-link,.advanced-dialog-done),
body.site-palette #searchButton { background:#FF6F3C; border-color:#FF6F3C; color:#0A2931; font-weight:700; }
body.site-palette :is(.account-button:not(.secondary),.compare-button,.calculate-button,.calculator-submit,.listing-open-link,.advanced-dialog-done):hover:not(:disabled),
body.site-palette #searchButton:hover:not(:disabled) { background:#155263; border-color:#155263; color:white; }
body.site-palette :is(.calculate-button,#searchButton) span:last-child { color:inherit; }
body.site-palette :is(.entry-panel,.search-workspace,.listing-source-panel,.listing-layout .listing-panel,.account-card,.compare-panel,.guide-toc) { border-top-color:#FF6F3C; }
body.site-palette :is(.search-mode.is-active,.listing-source-option.is-selected,.profile-tab.is-active,.filter-category-button.is-active) { background:#FFF5DC; border-color:#FF9A3C; box-shadow:inset 3px 0 #FF6F3C; }
body.site-palette .year-card.is-latest { background:#FFF5DC; border-top-color:#FF9A3C; }
body.site-palette :is(.search-mode-number,.search-mode-check,.guide-kicker,.contact-kicker,.about-kicker,.legal-kicker,.guide-section-number) { color:#155263; }
body.site-palette :is(.guide-directory-image img:not(.guide-art),.home-step img) { filter:url(#site-art-palette); }
body.site-palette :is(input,select,textarea,button,a):focus-visible { outline:2px solid #155263; outline-offset:3px; }
body.site-palette :is(.guide-masthead,.guide-note,.guide-scope,.legal-summary,.about-feedback,.about-source-note,.contact-direct,.summary-icon,.net-summary,.panel-mark,.about-tool-number) { background:#FFF5DC; }
body.site-palette .design-contact h2 { color:#0A2931; }
body.site-palette .design-footer nav h2 { color:white; }
body.site-palette .guide-inline-link { color:#155263; text-decoration-color:#FF6F3C; }

/* White backgrounds for the tools and contact page. */
body.site-palette.white-page,
body.site-palette.white-page > .landing-shell,
body.site-palette.white-page > .kpss-shell { background: #FFFFFF; }

/* Keep the original colors and framing of the new guide illustrations. */
.guide-directory-image .guide-art-square { object-fit: contain; background: #e5f7fa; }
.guide-directory-card .guide-directory-image img.guide-art-wide { width: 100%; height: 100%; object-fit: cover; }

/* Account workspace */
body.site-palette.profile-page,
body.site-palette.profile-page .account-shell { background: #f4f8f8; }
body.site-palette.profile-page .profile-layout {
  width: min(1080px, calc(100% - 40px)); grid-template-columns: 218px minmax(0, 1fr);
  gap: 20px; margin-top: 28px;
}
body.site-palette.profile-page :is(.profile-sidebar,.profile-content) {
  min-height: 0; border: 1px solid #dbe8e7; border-radius: 14px; background: #fff;
}
body.site-palette.profile-page .profile-sidebar { padding: 18px; }
.profile-page .profile-sidebar h1 { margin: 0; font-size: 23px; }
.profile-page .profile-sidebar-email { margin: 5px 0 16px; }
.profile-page .profile-tabs { gap: 4px; }
.profile-page .profile-tab { min-height: 44px; padding: 8px 10px; border-radius: 8px; }
body.site-palette.profile-page .profile-tab.is-active {
  background: #e8f3f2; color: var(--ink); box-shadow: none;
}
.profile-page .profile-sidebar-actions {
  display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px; margin-top: 12px; border-top: 1px solid #e4eeed;
}
.profile-page .profile-sidebar-actions :is(.admin-tab,.signout-button) {
  min-height: 44px; margin: 0; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent;
}
.profile-page .profile-sidebar-actions .signout-button:hover { background: #fbf5f2; }
body.site-palette.profile-page .profile-content { padding: clamp(18px, 4vw, 32px); }
.profile-page .panel-description { margin: 8px 0 20px; }
body.site-palette.profile-page .profile-content .account-info {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: none; margin: 0;
}
body.site-palette.profile-page .profile-content .account-info > div {
  display: block; padding: 13px 15px; border: 1px solid #e2eceb; border-radius: 10px; background: #f6fafa;
}
.profile-page .profile-content .account-info > div:last-child { grid-column: 1 / -1; }
body.site-palette.profile-page .profile-content .account-info dt { margin-bottom: 4px; font-size: 12px; }
body.site-palette.profile-page .profile-content .account-info dd { font-weight: 700; }
.profile-page .profile-password .account-form { margin-top: 0; }

@media (max-width: 740px) {
  body.site-palette.profile-page .profile-layout {
    width: calc(100% - 32px); grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 16px;
  }
  body.site-palette.profile-page .profile-sidebar { padding: 14px; }
  .profile-page .profile-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .profile-page .profile-tab { min-width: 0; justify-content: center; padding-inline: 4px; text-align: center; }
  .profile-page .profile-sidebar-actions { justify-content: space-between; padding-top: 3px; margin-top: 6px; }
  .profile-page .profile-sidebar-actions .signout-button { margin-left: auto; }
  body.site-palette.profile-page .panel-heading h2 { font-size: 24px; }
}

/* Shared feedback for pending requests. */
.loading-indicator::before,
button[aria-busy="true"]::before,
.department-combobox:has(> input[aria-busy="true"])::after {
  content: "";
  display: inline-block;
  flex: none;
  width: 26px;
  height: 12px;
  vertical-align: -1px;
  background:
    radial-gradient(circle, #155263 55%, transparent 70%) left center / 5px 5px no-repeat,
    radial-gradient(circle, #155263 55%, transparent 70%) center / 5px 5px no-repeat,
    radial-gradient(circle, #b94c27 55%, transparent 70%) right center / 5px 5px no-repeat;
  animation: listing-site-loading 1.2s ease-in-out infinite;
}
.loading-indicator::before, button[aria-busy="true"]::before { margin-inline-end: 8px; }
:is(.listing-message,.loading-state,#loading).loading-indicator::before,
.listing-load-more[aria-busy="true"]::before { margin-inline-end: 0; }
.department-combobox:has(> input[aria-busy="true"])::after {
  position: absolute; inset-inline-end: 12px; top: 50%; transform: translateY(-50%); pointer-events: none;
}
.department-combobox > input[aria-busy="true"] { padding-inline-end: 46px; }
@keyframes listing-site-loading {
  0%, 100% { background-size: 5px 5px, 5px 5px, 5px 5px; }
  18% { background-size: 9px 9px, 5px 5px, 5px 5px; }
  38% { background-size: 5px 5px, 9px 9px, 5px 5px; }
  58% { background-size: 5px 5px, 5px 5px, 9px 9px; }
  78% { background-size: 5px 5px, 5px 5px, 5px 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .loading-indicator::before,
  button[aria-busy="true"]::before,
  .department-combobox:has(> input[aria-busy="true"])::after { animation: none; }
}
