/* Shared public UI. Brand and framework artwork remain unchanged. */
:root { --ui-ink: #142c43; --ui-line: #dce5ed; --ui-muted: #546b80; }
[hidden] { display: none !important; }
.site-header .nav-toggle { display: none; }
.site-header .primary-nav a:hover { transform: none; }
.site-header .primary-nav a:focus-visible,
.hero-search input:focus-visible, .hero-search select:focus-visible,
.home-mode-switch button:focus-visible { outline: 3px solid #347fae; outline-offset: 3px; }
.site-header .nav-toggle { background: #f0f5f9; color: var(--ui-ink); border: 1px solid var(--ui-line); min-height: 44px; gap: 12px; align-items: center; }
.home-shell .research-hero { padding: 36px clamp(20px, 4vw, 56px); box-shadow: 0 4px 18px #1b2d4808; }
.home-shell .research-summary { white-space: normal; max-width: 100%; }
@media (min-width: 1024px) {
  .home-shell .research-summary { white-space: nowrap; font-size: clamp(14px, 1.3vw, 19px); }
}
.home-shell .hero-search { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 16px; padding: 12px; box-shadow: 0 4px 16px #172d4b08; }
.home-mode-switch { display: flex; gap: 4px; width: fit-content; margin-bottom: 0; padding: 4px; border-radius: 10px; background: #f0f5f9; }
.home-mode-switch button { min-width: 64px; min-height: 36px; color: var(--ui-muted); background: transparent; font-weight: 650; border-radius: 7px; }
.home-mode-switch button[aria-pressed="true"] { color: #145f91; background: #fff; box-shadow: 0 1px 4px #17314d14; }
.home-shell .hero-search-row { grid-template-columns: minmax(120px, 150px) minmax(0, 1fr) 112px; gap: 8px; }
.home-shell .hero-search-field input, .home-shell .hero-search-field select { height: 52px; padding-top: 22px; padding-bottom: 6px; font-size: 16px; }
.home-shell .hero-search-field label { top: 5px; }
.home-shell .hero-search-submit { height: 48px; margin: 0; }
.home-shell .hero-examples { min-height: 24px; font-size: 14px; gap: 8px 16px; }
.home-shell .hero-examples a { font-size: 14px; line-height: 1.6; }
.home-shell .coverage-section { padding-top: 16px; }
.home-shell .framework-section { margin-top: 28px; box-shadow: none; }
.home-shell .metric-card:hover, .home-shell .species-tile:hover { transform: none; box-shadow: none; }
.metric-value, .species-stat b, .evi-num, .search-shell .catalog-metric-value { font-variant-numeric: tabular-nums; }
.home-shell .metric-label { font-size: 13px; line-height: 1.4; }
.home-shell .species-stat span { font-size: 12px; }
.study-table-scroll { scrollbar-width: auto; scrollbar-color: #9eb2c2 #eef3f7; }
.study-table th:first-child, .study-table td:first-child { position: sticky; left: 0; background: #f8fbfd; z-index: 1; box-shadow: 1px 0 #e1e8ef; }
.search-center:has(#search-result-area.visible) .search-hero { padding: 20px 28px; }
.search-center:has(#search-result-area.visible) .search-hero h1 { font-size: 24px; margin-bottom: 12px; }
.search-center:has(#search-result-area.visible) .search-panel { margin-top: 0; padding: 14px 18px; box-shadow: none; }
.search-center:has(#search-result-area.visible) .search-subnote { display: none; }
.search-shell .search-hero, .search-shell .result-card, .search-shell .evidence-catalog { box-shadow: 0 4px 18px #17314d08; }
.search-shell .catalog-foot, .search-shell .catalog-pages, .search-shell .catalog-jump { min-width: 0; }
.search-shell .catalog-pages { flex-wrap: wrap; }
.search-shell .catalog-page-btn { min-height: 40px; }
.assistant-launcher { width: 104px; height: 104px; cursor: grab; }
.assistant-launcher:active, .assistant-launcher.is-dragging { cursor: grabbing; }
.assistant-mascot-art { filter: drop-shadow(0 7px 9px #10111326); }
@media (max-width: 600px) {
  .assistant-launcher { width: 88px; height: 88px; }
}
@media (max-width: 760px) {
  .home-shell .hero-search { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .home-shell .hero-search-row { grid-template-columns: minmax(120px, .8fr) minmax(0, 1.6fr); }
  .home-shell .hero-search-submit { grid-column: 1 / -1; width: 100%; margin-top: 4px; }
}
@media (max-width: 760px) {
  .site-header .nav-wrap { position: relative; justify-content: space-between; }
  .site-header[data-menu-ready] .nav-toggle { display: inline-flex; }
  .site-header[data-menu-ready] .primary-nav { display: none; }
  .site-header[data-menu-ready].menu-open .primary-nav { display: grid; position: absolute; top: 100%; left: 12px; right: 12px; width: auto; padding: 8px; gap: 3px; background: #fff; border: 1px solid var(--ui-line); border-radius: 12px; box-shadow: 0 12px 24px #17314d14; overflow: visible; }
  .site-header .primary-nav a { min-height: 44px; }
  .home-shell .research-hero { padding: 26px 18px; }
  .home-shell .hero-search { padding: 12px; }
  .home-shell .hero-search-field + .hero-search-field { border-left: 1px solid #e6ebf1; border-top: 0; }
  .home-shell .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-shell .metric-card { padding: 18px 12px; min-width: 0; }
  .home-shell .metric-value { font-size: clamp(21px, 5.5vw, 30px); }
  .home-shell .metric-label { font-size: 12px; }
  .search-center:has(#search-result-area.visible) .search-hero { padding: 18px; }
  .search-center:has(#search-result-area.visible) .search-panel { padding: 12px; }
}
@media (max-width: 640px) {
  .search-shell .catalog-pages { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .search-shell .catalog-pages > .catalog-jump { grid-column: 1 / -1; grid-row: 2; flex-wrap: wrap; width: auto; }
  .search-shell .catalog-pages > .catalog-page-btn { min-width: 0; width: 100%; }
  .search-shell .catalog-jump .catalog-go { flex: 0 0 auto; }
  .search-shell .catalog-foot { width: 100%; box-sizing: border-box; }
  .search-shell .catalog-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 12px; }
  .search-shell .catalog-metric-label { white-space: normal; font-size: 12px; }
}
@media (max-width: 480px) {
  .home-shell .hero-search-row { grid-template-columns: minmax(0, 1fr); }
  .home-shell .hero-search-field + .hero-search-field { border-left: 0; border-top: 1px solid #e6ebf1; }
}

.assistant-preview-copy { margin: 18px 0; padding: 16px 18px; border: 1px solid #dce5ed; border-radius: 12px; background: #f8fbfd; text-align: left; color: #324e66; font-size: 14px; line-height: 1.6; }
.assistant-preview-copy ul { margin: 8px 0 12px; padding-left: 20px; }
.assistant-preview-copy a { color: #21658f; text-underline-offset: 3px; }
.chat-page.guest-access .chat-guest-gate { overflow-y: auto; }
.chat-page.guest-access .chat-guest-card { margin-block: auto; }
