/* DreamPet canonical typography and spacing. Change role tokens, not page-local sizes. */
:root {
  --dp-text-display: 700 44px/1.2 var(--dp-font-display);
  --dp-text-page: 700 32px/1.3 var(--dp-font-display);
  --dp-text-banner: 700 26px/1.38 var(--dp-font-ui);
  --dp-text-section: 600 22px/1.4 var(--dp-font-display);
  --dp-text-subheading: 600 18px/1.5 var(--dp-font-ui);
  --dp-text-body: 400 16px/1.75 var(--dp-font-ui);
  --dp-text-body-small: 400 15px/1.65 var(--dp-font-ui);
  --dp-text-label: 500 15px/1.5 var(--dp-font-ui);
  --dp-text-caption: 400 14px/1.55 var(--dp-font-ui);
  --dp-text-tracking: -.01em;
  --dp-heading-tracking: -.025em;
  --dp-space-xs: 8px; --dp-space-sm: 12px; --dp-space-md: 16px;
  --dp-space-lg: 24px; --dp-space-xl: 32px; --dp-control-height: 48px;
  --dp-color-muted: #62665b;
}
@media(max-width:767px) {
  :root { --dp-text-display: 700 32px/1.25 var(--dp-font-display); --dp-text-page: 700 26px/1.35 var(--dp-font-display); --dp-text-section: 600 20px/1.45 var(--dp-font-display); }
}
body { font: var(--dp-text-body); letter-spacing: var(--dp-text-tracking); }
.dp-login-page .auth-page { min-height: calc(100svh - 96px); display: flex; align-items: center; justify-content: center; padding: var(--dp-space-xl) var(--dp-space-lg); }
.dp-login-page .auth-page > article { width: 100%; margin: 0; }
.auth-brand-copy > span { font: var(--dp-text-label); letter-spacing: var(--dp-text-tracking); }
.auth-brand-copy h2 { font: var(--dp-text-page); letter-spacing: var(--dp-heading-tracking); word-break: keep-all; }
.auth-brand-copy p { font: var(--dp-text-body); letter-spacing: var(--dp-text-tracking); }
.auth-form input,.auth-form select { font: var(--dp-text-body); letter-spacing: var(--dp-text-tracking); }
.auth-form label,.auth-form-options,.auth-submit,.auth-password-field button,.auth-switch { font: var(--dp-text-label); letter-spacing: var(--dp-text-tracking); }
@media(max-width:767px) {
 .dp-login-page .auth-page { min-height: calc(100svh - 70px); padding: var(--dp-space-lg) var(--dp-space-md); background: #fbfaf4; }
 .dp-login-page .auth-shell { border: 1px solid #e9e2ce; border-radius: 20px; }
 .dp-login-page .auth-form-panel { padding: var(--dp-space-lg); }
 .auth-brand-copy h2 { font: var(--dp-text-section); }
}
.dp-compose-login { display: grid; grid-template-columns: .85fr 1.15fr; padding: 0; border: 1px solid #e9e3d4; border-radius: 24px; overflow: hidden; max-width: 960px; }
.dp-compose-welcome { padding: var(--dp-space-xl); background: #fff4c9; display: flex; flex-direction: column; align-items: flex-start; gap: var(--dp-space-md); }
.dp-compose-welcome img { width: 64px; height: 64px; }
.dp-compose-welcome > span { font: var(--dp-text-label); color: #735512; }
.dp-compose-welcome h2 { font: var(--dp-text-page); letter-spacing: var(--dp-heading-tracking); margin: 0; word-break: keep-all; }
.dp-compose-welcome p,.dp-compose-login-copy p { font: var(--dp-text-body); color: var(--dp-color-muted); margin: 0; }
.dp-compose-login-copy { padding: var(--dp-space-xl); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--dp-space-md); }
.dp-compose-destination { font: var(--dp-text-label); color: #735512; border-bottom: 2px solid #ffd642; padding-bottom: var(--dp-space-xs); }
.dp-compose-login-copy h3 { font: var(--dp-text-section); margin: 0; word-break: keep-all; }
.dp-compose-login-actions { display: flex; flex-wrap: wrap; gap: var(--dp-space-sm); margin-top: var(--dp-space-xs); }
.dp-compose-login-actions .dp-button { min-height: var(--dp-control-height); font: var(--dp-text-label); padding: var(--dp-space-sm) var(--dp-space-md); gap: var(--dp-space-md); }
.dp-compose-login-copy small { font: var(--dp-text-caption); color: var(--dp-color-muted); }
@media(max-width:767px) {
 .dp-compose-login { grid-template-columns: 1fr; padding: 0; border-radius: 16px; }
 .dp-compose-welcome,.dp-compose-login-copy { padding: var(--dp-space-lg); }
 .dp-compose-welcome h2 br,.dp-compose-welcome p br { display: none; }
 .dp-compose-welcome h2 { font: var(--dp-text-section); }
 .dp-compose-login-actions { width: 100%; }
 .dp-compose-login-actions .dp-button { width: 100%; justify-content: center; }
}
.sitter-bottom-panels { gap: var(--dp-space-md); margin-top: var(--dp-space-xl); }
.sitter-bottom-panels > section { padding: var(--dp-space-xl); }
.sitter-bottom-panels h2 { font: var(--dp-text-section); }
.sitter-bottom-panels p { font: var(--dp-text-body); color: var(--dp-color-muted); margin-top: var(--dp-space-sm); }
.sitter-bottom-panels ol { gap: var(--dp-space-md); margin-top: var(--dp-space-lg); grid-template-columns: repeat(2,minmax(0,1fr)); }
.sitter-bottom-panels li { font: var(--dp-text-label); padding: var(--dp-space-xs) 0; }
.sitter-bottom-panels section:last-child a { min-height: var(--dp-control-height); padding: var(--dp-space-sm) var(--dp-space-md); font: var(--dp-text-label); }
.sitter-card-copy { padding: var(--dp-space-md); }
.sitter-card-copy > div { flex-wrap: wrap; gap: var(--dp-space-xs); }
.sitter-card-copy h3 { font: var(--dp-text-subheading); white-space: normal; overflow-wrap: anywhere; }
.sitter-card-copy > div > span { font: var(--dp-text-caption); padding: 4px var(--dp-space-xs); }
.sitter-card-copy p,.sitter-card-copy small { font: var(--dp-text-body-small); color: var(--dp-color-muted); }
.sitter-card-copy small { height: auto; min-height: 3.3em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.sitter-card-copy > strong { font: var(--dp-text-subheading); margin-top: var(--dp-space-md); }
.sitter-card-copy > strong i { font: var(--dp-text-caption); }
.sitter-results > header { flex-wrap: wrap; gap: var(--dp-space-sm); }
.sitter-results > header p { font: var(--dp-text-body-small); }
.sitter-trust-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sitter-filter-form input,.sitter-filter-form select { font: var(--dp-text-body); min-height: var(--dp-control-height); }
.sitter-service-tags a { font: var(--dp-text-label); min-height: 44px; padding: var(--dp-space-xs) var(--dp-space-md); }
.adoption-market-page .adoption-filter-form { gap: var(--dp-space-sm); padding: var(--dp-space-lg); padding-bottom: var(--dp-space-lg); }
.adoption-market-page .adoption-filter-form input,.adoption-market-page .adoption-filter-form select { min-height: var(--dp-control-height); padding: var(--dp-space-sm) var(--dp-space-md); padding-right: var(--dp-space-xl); font: var(--dp-text-body); }
.adoption-market-page .adoption-filter-form button { min-height: var(--dp-control-height); padding: var(--dp-space-sm) var(--dp-space-md); }
.adoption-market-page .adoption-quick-filters { gap: var(--dp-space-sm); padding: var(--dp-space-md) var(--dp-space-lg) var(--dp-space-lg); }
.adoption-market-page .adoption-quick-filters a { min-height: var(--dp-control-height); padding: var(--dp-space-sm) var(--dp-space-md); }
.dp-v2-pet-card > a,.dp-v2-pro-card > a { padding-bottom: var(--dp-space-md); }
.dp-v2-pet-card strong,.dp-v2-pro-card strong { font: var(--dp-text-subheading); }
.dp-v2-pet-card > a > span:not(.dp-v2-photo),.dp-v2-pro-card > a > span:not(.dp-v2-photo) { font: var(--dp-text-body-small); }
.dp-v2-pet-card > a > small { font: var(--dp-text-caption); color: var(--dp-color-muted); }
.dp-v2-pet-card strong,.dp-v2-pet-card > a > span:not(.dp-v2-photo),.dp-v2-pet-card > a > small,.dp-v2-pro-card strong { margin-left: var(--dp-space-md); margin-right: var(--dp-space-md); }
body .dp-v2-pet-card .identity-badge,body .dp-v2-pro-card .identity-badge { display: inline-flex; width: fit-content; max-width: calc(100% - 32px); align-self: flex-start; justify-self: start; flex: 0 0 auto; margin: var(--dp-space-xs) var(--dp-space-md) 0; padding: 4px var(--dp-space-xs); font: var(--dp-text-caption); }
.dp-v2-pet-card em,.dp-v2-pro-card em { width: fit-content; max-width: calc(100% - 32px); font: var(--dp-text-caption); margin: var(--dp-space-sm) var(--dp-space-md) var(--dp-space-xs); padding: 4px var(--dp-space-xs); }
.dp-author-avatar { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.dp-v2-community-grid header > span,.dp-cafe-avatar { flex: 0 0 44px; width: 44px; height: 44px; overflow: hidden; border-radius: 50%; }
@media(max-width:767px) {
  .sitter-bottom-panels > section { padding: var(--dp-space-lg); }
  .sitter-card,.sitter-card:nth-child(n+5) { grid-template-columns: 112px minmax(0,1fr); }
  .sitter-card-photo { height: 112px; min-height: 0; aspect-ratio: 1; align-self: start; }
  .adoption-market-page .adoption-filter-form { padding: var(--dp-space-md); border: 1px solid #e9e5dc; border-radius: 12px; }
  .adoption-market-page .adoption-quick-filters { flex-wrap: wrap; overflow: visible; padding: var(--dp-space-md) 0; }
  .dp-v2-pet-track,.dp-v2-pro-track { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--dp-space-sm); }
}
