/* Public registry: shared layout, forms and data views. */
:root {
  --ink:#303a34; --muted:#626b64; --green:#365848; --green-dark:#253e31;
  --mint:#eef1eb; --paper:#fff; --sand:#f8f7f3; --line:#d9ddd6;
  font-family:"Aptos","Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.5;
  color:var(--ink); background:var(--sand);
}
* {box-sizing:border-box}
body {margin:0}
main {min-height:65vh}
a {color:var(--green);text-underline-offset:3px}
a:hover {color:var(--green-dark)}
button,input,select,textarea {font:inherit}
button,a,input,select {touch-action:manipulation}
button {cursor:pointer}
button:disabled {cursor:default;opacity:.65}
img {max-width:100%;height:auto}
h1,h2,h3,p {overflow-wrap:anywhere}
h1,h2,h3 {line-height:1.3;font-weight:600}
h1 {font-size:2rem;margin:0 0 14px;letter-spacing:-.02em}
h2 {font-size:1.2rem;margin:0 0 14px}
h3 {font-size:1rem;margin:0 0 8px}
p {margin:0 0 16px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible {outline:2px solid var(--green);outline-offset:3px}
input,select {width:100%;max-width:100%;min-width:0;border:1px solid #a5afa7;background:white;color:var(--ink);border-radius:3px;padding:9px 10px}
label {display:block;font-size:.875rem;font-weight:600;margin-bottom:6px}
.container {width:min(1180px,calc(100% - 64px));margin-inline:auto}
.muted {color:var(--muted)}
.skip {position:absolute;left:10px;top:-100px;z-index:100;padding:10px;background:white}
.skip:focus {top:10px}

/* Masthead with a separate navigation row. */
.site-header {background:white;border-top:4px solid var(--green);border-bottom:1px solid var(--line);position:relative;z-index:30}
.nav-row {display:flex;flex-wrap:wrap;align-items:center;column-gap:24px}
.brand {display:flex;align-items:center;gap:12px;color:var(--green-dark);font-size:1.45rem;font-family:"Aptos","Segoe UI",Arial,sans-serif;text-decoration:none;padding:20px 0;line-height:1.2}
.brand img {width:86.4px;height:86.4px;flex:none;object-fit:contain}
.brand .brand-wordmark {display:block;width:276px;height:auto;max-width:100%}
.brand > span {min-width:0}
.brand small {display:block;font-family:"Aptos","Segoe UI",Arial,sans-serif;font-size:.77rem;color:var(--muted);margin-top:6px}
.nav-controls {display:flex;align-items:center;gap:20px;margin-left:auto}
.language {width:66px;font-size:.85rem;padding:6px}
.login-link {font-size:.9rem;font-weight:600}
.site-nav {display:flex;flex:1 0 100%;flex-wrap:wrap;gap:0 28px;border-top:1px solid var(--line)}
.site-nav a {padding:12px 0 10px;font-size:.9rem;text-decoration:none;border-bottom:3px solid transparent}
.site-nav a:hover {text-decoration:underline}
.site-nav a[aria-current=page] {color:var(--ink);font-weight:600;border-color:var(--green)}
.menu-toggle {display:none;color:var(--green);border:1px solid var(--line);border-radius:3px;background:white;padding:6px 10px}
.button {display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--green);border-radius:3px;background:var(--green);color:white;padding:9px 16px;font-size:.9rem;font-weight:600;text-align:center;text-decoration:none;line-height:1.5}
.button:hover {background:var(--green-dark);color:white}
.button.secondary {background:white;color:var(--green);border-color:#a5afa7}
.button.secondary:hover {background:var(--mint)}
.button.small {font-size:.85rem;padding:6px 10px}
.actions {display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}
.eyebrow {font-size:.8rem;color:var(--muted);margin-bottom:8px}

/* Search-led home; supporting links use one quiet side column. */
.home-layout {display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:48px;padding-block:42px 52px}
.home-main,.home-sidebar {min-width:0}
.home-intro>p {max-width:640px;color:var(--muted);margin-bottom:26px}
.home-intro .search-form {margin-bottom:12px}
.text-link {font-size:.875rem}
.registry-section {margin-top:38px}
.section-head {display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin-bottom:14px}
.section-head h2 {margin:0}
.section-head a {font-size:.875rem}
.registry-note {border-top:1px solid var(--line);margin-top:30px;padding-top:22px}
.registry-note p {color:var(--muted);font-size:.9rem;max-width:680px;margin-bottom:10px}
.registry-note>a {font-size:.875rem}
.home-sidebar {border-left:1px solid var(--line);padding-left:28px}
.home-sidebar section+section {margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.home-sidebar h2 {font-size:1rem}
.home-sidebar p,.home-sidebar a {font-size:.875rem}
.home-sidebar p {color:var(--muted)}
.directory-links {list-style:none;padding:0;margin:0}
.directory-links li {border-bottom:1px solid var(--line)}
.directory-links a {display:flex;justify-content:space-between;gap:12px;padding:10px 0;text-decoration:none}
.directory-links a:hover {text-decoration:underline}

/* Search fields, suggestions and register rows. */
.search-row {display:flex;gap:8px;align-items:stretch}
.search-area {position:relative;min-width:0;flex:1}
.search-input {height:100%;min-height:43px}
.search-hint {font-size:.79rem;color:var(--muted);margin:9px 0 0}
.suggestions {position:absolute;top:100%;left:0;right:0;z-index:35;background:white;border:1px solid #a5afa7;box-shadow:0 3px 8px #303a3418;max-height:min(310px,45vh);overflow-y:auto;margin-top:3px}
.suggestion {display:flex;gap:11px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;overflow-wrap:anywhere}
.suggestion:last-child {border-bottom:0}
.suggestion[aria-selected=true],.suggestion:hover {background:var(--mint)}
.suggestion img {width:38px;height:38px;object-fit:cover;flex:none}
.suggestion small {display:block;color:var(--muted);font-size:.78rem}
.filter-panel {margin:20px 0;padding:18px;background:white;border:1px solid var(--line)}
.filter-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px}
.filter-footer {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:.8rem}
.alpha {display:flex;flex-wrap:wrap;gap:3px;margin:18px 0}
.alpha button {border:1px solid transparent;background:transparent;color:var(--green);padding:5px 8px;min-width:30px;border-radius:2px}
.alpha button:hover {border-color:var(--line)}
.alpha button[aria-pressed=true] {background:var(--green);color:white}
.results-bar {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px;font-size:.9rem}
.results-bar select {width:min(310px,100%)}
.table-scroll {max-width:100%;overflow-x:auto;background:white;border:1px solid var(--line)}
.dog-table {width:100%;min-width:540px;border-collapse:collapse;text-align:left;font-size:.85rem}
.dog-table th,.dog-table td {padding:12px;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.dog-table thead th {background:var(--mint);font-weight:600;font-size:.8rem}
.dog-table tbody th {width:28%;font-weight:600}
.dog-table tbody tr:last-child>* {border-bottom:0}
.dog-table tbody tr:hover {background:#fafbf8}
.dog-table small {display:block;font-weight:400;color:var(--muted);margin-top:4px}
.empty {padding:22px 18px;background:white;border-block:1px solid var(--line);color:var(--muted);font-size:.9rem}
.empty p:last-child {margin-bottom:0}
.error {border-color:#ac7261;color:#794b3b}

/* Data sheets and supporting pages. */
.page-heading {padding-block:30px 22px}
.page-heading p {max-width:810px;color:var(--muted);font-size:.95rem;margin-bottom:0}
.page-body {padding-bottom:48px}
.section {padding-block:32px}
.panel {background:white;border:1px solid var(--line);padding:22px;min-width:0}
.notice {padding:14px 18px;border-left:3px solid #899985;background:var(--mint);color:#495746;font-size:.875rem}
.breadcrumb {display:flex;gap:9px;flex-wrap:wrap;font-size:.82rem;margin-bottom:16px}
.profile-grid {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:start}
.profile-grid.profile-image-only {grid-template-columns:minmax(0,380px)}
.profile-cover {width:100%;aspect-ratio:1.35;object-fit:cover;display:block;border:1px solid var(--line)}
.facts {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}
.facts div {border-bottom:1px solid var(--line);padding:10px 0;min-width:0;overflow-wrap:anywhere}
.facts dt {font-size:.8rem;color:var(--muted)}
.facts dd {margin:3px 0 0;font-size:.94rem}
.profile-section {margin-top:32px}
.subnav {display:flex;gap:20px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.tree-scroll {max-width:100%;overflow-x:auto;border:1px solid var(--line);background:white;padding:15px}
.tree-node {border:1px solid var(--line);padding:13px;background:var(--sand);flex:1;display:flex;flex-direction:column;justify-content:center;font-size:.88rem;overflow-wrap:anywhere}
.tree-node small {display:block;color:var(--muted);font-size:.76rem}
.tree-node a {font-weight:600}
.pedigree-subject {margin-bottom:12px}
.pedigree-table {width:100%;min-width:calc(var(--pedigree-columns) * 14rem);table-layout:fixed;border-collapse:collapse}
.pedigree-table th {padding:8px;text-align:left;font-size:.8rem;background:#e7ecef;border:1px solid #bbc4c9}
.pedigree-table td {padding:0;vertical-align:middle;border:1px solid #bbc4c9;background:var(--ancestor-color,#f0f2f7);print-color-adjust:exact}
.pedigree-table .tree-node {gap:2px;padding:10px;border:0;background:transparent}
.pedigree-repeat-legend {display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}
.pedigree-repeat-legend li {background:var(--ancestor-color);padding:6px 10px;border:1px solid var(--line);print-color-adjust:exact}
.health-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.health-record {border-top:2px solid var(--line);padding:20px;background:white}
.health-record .facts {font-size:.86rem}
.dog-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.dog-grid>.empty {grid-column:1/-1}
.dog-card {display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;border-bottom:1px solid var(--line);padding:20px 0;min-width:0}
.dog-card .dog-cover {width:72px;height:72px;object-fit:cover;display:block}
.dog-card-body {min-width:0}
.dog-card h3 a {font-size:1rem}
.dog-card .meta {font-size:.83rem;color:var(--muted);margin:4px 0}
.chips {display:flex;gap:6px 12px;flex-wrap:wrap;margin:10px 0}
.chip {font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.chip+.chip {border-left:1px solid var(--line);padding-left:12px}
.card-link {display:inline-block;font-size:.85rem;margin-top:4px}
.dog-card .dog-cover[src="logo.svg"],.profile-cover[src="logo.svg"] {object-fit:contain;padding:12%;background:var(--mint)}
.directory-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.directory-card {min-width:0;border-top:1px solid var(--line);padding:24px 0}
.directory-card h2 {font-size:1.2rem}
.breeder-logo,.initial-logo {width:64px;height:64px;margin-bottom:14px;border:1px solid var(--line);background:white}
.breeder-logo {object-fit:contain}
.initial-logo {display:grid;place-items:center;font-size:1.4rem;color:var(--green)}
.litter-list {display:grid}
.litter-card {display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;padding:24px 0;border-top:1px solid var(--line)}
.date-tile {padding:8px 12px 8px 0;border-right:1px solid var(--line);text-align:center;align-self:start;font-size:.8rem;overflow-wrap:anywhere}
.date-tile strong {display:block;font-size:1.8rem;font-weight:500}
.price-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);background:white;margin-bottom:28px}
.price-card {padding:28px;min-width:0}
.price-card+.price-card {border-left:1px solid var(--line)}
.price-card h2 {font-size:1.2rem}
.price {font-size:2rem;color:var(--ink);margin:16px 0 0}
.price-period {font-size:.85rem;color:var(--muted);margin-bottom:20px}
.price-card>strong {font-size:.875rem;font-weight:500}
.info-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px}
.info-grid .panel {background:transparent;border:0;border-top:1px solid var(--line);padding:20px 0 0}
.info-grid .panel p {font-size:.95rem}
.site-footer {border-top:1px solid var(--line);background:#f0f0e9;padding:26px 0}
.footer-inner {display:flex;justify-content:space-between;gap:20px 32px;flex-wrap:wrap}
.footer-brand {font-weight:600;font-size:.9rem}
.footer-copy {font-size:.8rem;color:var(--muted);margin:6px 0 0}
.footer-links {display:flex;gap:12px 24px;flex-wrap:wrap;align-items:start;font-size:.83rem}
.sr-only {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden] {display:none!important}

/* Reflow below the target screen width supports browser zoom. */
@media(max-width:1100px) {
  .container {width:calc(100% - 48px)}
  .site-nav {column-gap:23px}
  .site-nav a {font-size:.85rem}
  .home-layout {grid-template-columns:minmax(0,1fr) 220px;gap:28px}
  .home-sidebar {padding-left:22px}
}
@media(max-width:800px) {
  .home-layout,.profile-grid {grid-template-columns:minmax(0,1fr)}
  .home-sidebar {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;border:0;padding:24px 0 0;border-top:1px solid var(--line)}
  .home-sidebar section+section {margin:0;border:0;padding:0}
  .filter-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .health-grid {grid-template-columns:minmax(0,1fr)}
  .profile-grid>div:last-child {max-width:600px}
}
@media(max-width:700px) {
  .container {width:calc(100% - 32px)}
  .nav-row {column-gap:12px}
  .brand {font-size:1.2rem;padding:18px 0;gap:8px}
  .brand small {display:none}
  .brand img {width:67.2px;height:67.2px}
  .nav-controls {gap:12px}
  .login-link {font-size:.8rem}
  .menu-toggle {display:block}
  .site-nav {display:none;padding:8px 0;max-height:55vh;overflow-y:auto}
  .site-nav.open {display:flex}
  .site-nav a {padding:9px 0}
  h1 {font-size:1.75rem}
  .home-layout {padding-top:28px}
  .dog-grid,.directory-grid,.info-grid {grid-template-columns:minmax(0,1fr)}
  .page-heading {padding-top:26px}
  .price-card {padding:20px}
}
@media(max-width:520px) {
  .brand {flex:1 0 100%;padding-bottom:10px}
  .brand small {display:block}
  .nav-controls {flex:1 0 100%;margin:0;padding-bottom:12px}
  .menu-toggle {margin-left:auto}
  .site-nav {flex-direction:column;gap:0}
  .site-nav a {border-bottom-width:1px}
  .home-sidebar,.filter-grid,.price-grid {grid-template-columns:minmax(0,1fr)}
  .home-sidebar section+section {border-top:1px solid var(--line);padding-top:20px}
  .search-row {flex-wrap:wrap}
  .search-row .search-area {flex-basis:220px}
  .search-row .button {flex-grow:1}
  .price-card+.price-card {border-left:0;border-top:1px solid var(--line)}
  .filter-panel {padding:14px}
  .facts {gap:0 15px}
  .health-record .facts {grid-template-columns:minmax(0,1fr)}
  .litter-card {grid-template-columns:minmax(0,1fr);gap:12px}
  .date-tile {border:0;padding:0;text-align:left}
  .date-tile strong {display:inline;margin-inline:8px;font-size:1.25rem}
  .footer-links {flex-direction:column;gap:10px}
}
@media(prefers-reduced-motion:reduce) {* {scroll-behavior:auto!important}}
@media print {
  .site-header,.site-footer,.actions,.subnav,.skip,.filter-panel,.home-sidebar {display:none!important}
  body {background:white;color:black;font-size:11pt}
  .container {width:100%}
  .page-heading {padding:0}
  .tree-scroll,.table-scroll {overflow:visible;border:0;padding:0}
  .dog-table {min-width:0}
  .pedigree-table {min-width:0}
  .pedigree-table .tree-node {padding:5px}
  .pedigree-table .tree-node small {font-size:7pt}
  .profile-grid {grid-template-columns:1fr 1fr}
  .profile-section {break-inside:avoid}
  a {color:inherit}
}

/* Dog placeholders and keeper logos retain their full proportions. */
img[src="dog-placeholder.svg"], img[src="dog-placeholder-profile.svg"], img[src^="/api/dog-logo/"] { object-fit: contain; padding: .65rem; background: #f0f2ed; }
