/* Shared catalogue surfaces, type and interaction states. No external assets. */
:root {
  --catalog-wine: #812d24;
  --catalog-deep: #59211c;
  --catalog-ink: #292420;
  --catalog-secondary: #615953;
  --catalog-rule: #ded5ce;
  --catalog-paper: #fbf8f5;
  --catalog-type: system-ui, -apple-system, "Segoe UI", sans-serif;
  --catalog-display: Georgia, "Times New Roman", serif;
}
body, .topics-page { color: var(--catalog-ink); font-family: var(--catalog-type); }
body :where(button, input, select, summary) { font-family: inherit; }
:where(#app, .topics-page main, dialog) :where(h1,h2,h3,p,dd,li,summary) {
  overflow-wrap: break-word;
  overflow-wrap: anywhere;
}
#app .catalog-intro h1, #app .lab-intro h1, .topics-page main h1 {
  font-family: var(--catalog-display);
  color: var(--catalog-deep);
  letter-spacing: -.038em;
  line-height: 1.09;
}
#app .catalog-intro { border-top: 0; }
#app .catalog-intro .breadcrumb, #app .detail-breadcrumb, .topics-page .patient-nav nav {
  font-size: .8125rem;
  line-height: 1.5;
  color: var(--catalog-secondary);
}
#app .search-form, .topics-page .topics-search {
  background: var(--catalog-paper);
  border: 1px solid var(--catalog-rule);
  border-inline-start: 3px solid var(--catalog-wine);
  border-radius: 12px;
}
#app .search-input, .topics-page .topics-search input[type=search] {
  background: white;
  border: 1px solid #98867e;
  border-radius: 8px;
}
#app .search-input:focus-within, .topics-page .topics-search input[type=search]:focus-visible {
  outline: 2px solid var(--catalog-wine);
  outline-offset: 2px;
}
#app .search-input .primary, .topics-page .topics-search button {
  min-height: 44px;
  font-size: .9375rem;
  font-weight: 650;
}
#app .search-input input { min-width: 0; width: 100%; }
#app .search-input input::placeholder { color: var(--catalog-secondary); opacity: 1; }
#app .search-input button { flex: none; }
#app .search-input button[hidden] { display: none; }
#app .search-options, .topics-page .topics-ai { color: var(--catalog-secondary); }
#app .ai-toggle { min-height: 38px; font-size: .875rem; }
#app .search-options small { max-width: 74ch; font-size: .8125rem; }
#app .catalog-branches, .topics-page .catalog-branches {
  background: #fff;
  border-color: var(--catalog-rule);
  border-radius: 12px;
}
.catalog-branches > .catalog-branch {
  color: #523a33;
  font-family: var(--catalog-type);
  text-align: start;
}
.catalog-branches > .catalog-branch[aria-current=page] { background: var(--catalog-wine); }
#app .catalog-picker {
  background: var(--catalog-paper);
  border-color: var(--catalog-rule);
  border-radius: 12px;
}
#app .unified-sidebar { border: none; padding-inline-end: 0; }
#app .catalog-picker .picker-link[aria-current] {
  background: #f0e4df;
  box-shadow: inset 3px 0 var(--catalog-wine);
}
#app .results-top { border: none; }
#app .results-top h2, #app .catalog-picker h2, .topics-page main h2 { letter-spacing: -.023em; }
#app .results-top>div>span, #app .test-category, #app .test-meta { color: var(--catalog-secondary); }
#app .list { border: 1px solid var(--catalog-rule); background: #fff; border-radius: 12px; }
#app .unified-layout .test-row {
  padding: 17px clamp(12px,1.6vw,24px);
  border: 0;
  background: #fff;
}
#app .list .test-row:first-child { border-radius: 12px 12px 0 0; }
#app .list .test-row:last-child { border-radius: 0 0 12px 12px; }
#app .list .test-row:only-child { border-radius: 12px; }
#app .list .test-row + .test-row { border-top: 1px solid var(--catalog-rule); }
#app .list .test-main h3 a { color: var(--catalog-ink); font-weight: 635; line-height: 1.42; }
#app .list .test-category { display: block; font-size: .875rem; line-height: 1.5; }
#app .test-main .provider {
  background: transparent; border: 0; padding: 0;
  color: var(--catalog-secondary); font: 500 .8125rem/1.45 var(--catalog-type);
}
#app .unified-layout .test-buy { gap: 12px; }
#app .test-buy strong, #app .lab-card .card-bill #detail-price {
  color: var(--catalog-deep);
  font-size: clamp(1.125rem,1.6vw,1.5rem);
  font-weight: 700;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
}
#app .test-row .add { border-radius: 10px; background: #fff; color: var(--catalog-wine); border-color: #ba9d93; }
#app .test-row .add.added, #app .test-row .add[aria-pressed=true] { color: #fff; background: var(--catalog-wine); }
#app .list mark { color: inherit; background: #f6e1b9; border-radius: .12em; }
#app .empty { padding: 26px 15px; }
#app .lab-intro .service-facts { border-top: 1px solid var(--catalog-rule); padding-top: 12px; }
#app .lab-intro .service-facts dt { color: var(--catalog-secondary); font-size: .8125rem; }
#app .lab-intro .service-facts dd { color: var(--catalog-ink); font-size: 1rem; }
#app .lab-card .booking-panel { border-radius: 12px; background: var(--catalog-paper); }
#app .lab-card .detail-section :where(p,li), .topics-page main article :where(p, li) {
  max-inline-size: 74ch;
  line-height: 1.65;
}
#app .lab-card .detail-section, .topics-page main section { scroll-margin-block-start: 16px; }
#app .lab-card .booking-panel select, #app .office-label select, .topics-page .office select { min-height: 44px; }
.topics-page { background: #fff; }
.topics-page main .topic-letters a { border-radius: 7px; color: var(--catalog-wine); }
.topics-page main .topics-alphabet section { background: var(--catalog-paper); border-color: var(--catalog-rule); }
.topics-page main .topics-alphabet section li a { padding-block: 5px; display: inline-block; line-height: 1.45; }
dialog[open] { border: 1px solid var(--catalog-rule); border-radius: 14px; color: var(--catalog-ink); }
dialog::backdrop { background: rgb(36 24 21 / 45%); }
dialog[open] .dialog-head h2 { color: var(--catalog-deep); font-family: var(--catalog-display); }
dialog[open] .cart-total { background: var(--catalog-paper); border-radius: 8px; padding: 12px; }
dialog[open] .cart-row { gap: 12px; }
dialog[open] .cart-row > span, dialog[open] .cart-total strong { white-space: nowrap; font-variant-numeric: tabular-nums; }
dialog[open] .lcp-order-form label { line-height: 1.5; }
dialog[open] .lcp-order-form button[type=submit] { min-height: 48px; }
body :is(a, button, summary, select, input, textarea):focus-visible {
  outline: 3px solid #783721;
  outline-offset: 3px;
  scroll-margin-block: 12px;
}
@media (hover:hover) {
  #app .list .test-row:hover, #app .list .test-row:focus-within { background: var(--catalog-paper); }
  #app .test-row .add:hover, .catalog-branches .catalog-branch:hover { border-color: var(--catalog-wine); }
  #app .test-row .add:hover { background: var(--catalog-wine); color: #fff; }
}
@media (min-width: 801px) {
  #app .catalog-intro { padding-block: 24px 16px; margin:0; }
  #app .results-top h2 { font-size: clamp(1.4rem,2.25vw,2rem); }
  #app .unified-layout .list .test-row { min-height: 80px; }
}
@media (max-width: 800px) {
  #app .catalog-nav.unified-sidebar { margin-bottom: 0; }
  #app .catalog-intro { margin-top: 3px; }
  #app .unified-layout .test-row { gap: 12px; padding: 14px 11px; }
  #app .unified-layout .test-buy { gap: 6px; }
  #app .catalog-picker .picker-disclosure { min-height: 44px; }
  #app .catalog-intro .office-label select, .topics-page .office select, #app .booking-panel select { font-size: 1rem; min-width:0; }
  #app .list .test-main h3 a { font-size: 1rem; line-height: 1.4; }
  #app .search-form .search-options { margin-top: 0; }
  #app .catalog-branches > .catalog-branch, .topics-page .catalog-branches > .catalog-branch { text-align: center; }
  dialog[open] { padding-bottom: max(14px,env(safe-area-inset-bottom)); }
}
@media (max-width: 600px) {
  #app, .topics-page main {
    padding-inline-start: max(12px,env(safe-area-inset-left));
    padding-inline-end: max(12px,env(safe-area-inset-right));
  }
  #app .test-main h3 { margin:0; }
  #app .lab-card .detail-section { padding-inline: 0; }
  #app .lab-card #preparation { padding: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (forced-colors: active) {
  .catalog-branches .catalog-branch[aria-current=page], #app .catalog-picker [aria-current] { outline: 2px solid Highlight; }
  #app mark { outline: 1px solid MarkText; }
}

#app .office-label select,
#app .booking-panel select,
#app .filters select,
.topics-page .office select {
  padding-block: 6px;
  line-height: 1.35;
  min-height: 44px;
}
@media (max-width: 800px) {
  #app .detail-breadcrumb { padding-block: 8px; gap: 8px 12px; }
  #app .lab-menu + .detail-breadcrumb { margin-bottom: 2px !important; }
}

#app .search-input .search-clear,
.topics-search .topics-search-row .search-clear {
  display: inline-grid;
  flex: 0 0 44px;
  place-items: center;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #64251f;
  font: 24px/1 system-ui, sans-serif;
  cursor: pointer;
}
#app .search-input .search-clear[hidden],
.topics-search .topics-search-row .search-clear[hidden] { display: none; }
#app .search-input .search-clear:hover,
.topics-search .topics-search-row .search-clear:hover { background: #f4e9e3; }
#app #query::-webkit-search-cancel-button,
.topics-page #topic-query::-webkit-search-cancel-button { -webkit-appearance: none; }
#app .list mark,
.topics-page .topics-alphabet mark { background: #f3ded2; color: #47251c; border-radius: 2px; }
#app .result-code { color: #655955; white-space: normal; overflow-wrap: anywhere; }
#app #results-title:focus-visible,
#app .search-clear:focus-visible,
.topics-search .search-clear:focus-visible { outline: 2px solid #88281e; outline-offset: 2px; }
.topics-search .topics-search-row { align-items: center; }
@media (max-width: 650px) {
  .topics-search .topics-search-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 2px; }
  .topics-search-row input[type=search] { grid-column: 1; min-width: 0; }
  .topics-search-row button:not(.search-clear) { grid-column: 3; }
}

#app .search-options .ai-toggle{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;flex-wrap:wrap}
#app .test-row .test-main, #app .test-row .test-category, #app .test-row .test-meta { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
#app .test-row .test-meta { flex-wrap:wrap; }
