/* Page-specific density for the service directory and contract register. */
#page-service-directory,
#page-service-contracts {
  width:100%;
  max-width:1640px;
  padding-top:18px;
}
#page-service-directory .page-heading,
#page-service-contracts .page-heading { margin-bottom:12px; }
#page-service-directory .page-heading h1,
#page-service-contracts .page-heading h1 { font-size:clamp(19px,1.45vw,23px); line-height:1.2; }
#page-service-directory .page-heading .eyebrow,
#page-service-contracts .page-heading .eyebrow { margin-bottom:3px; }
#page-service-directory .service-directory-toolbar { margin-bottom:10px; }
#page-service-directory .service-directory-search { max-width:560px; gap:4px; font-size:12px; }
#page-service-directory .service-directory-search input { box-sizing:border-box; min-height:40px; padding:7px 10px; }
#page-service-directory #service-directory-root { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 12px; }
#page-service-directory :is(.service-register-actions,.service-directory-message,.service-directory-due-filters,.service-directory-repair-filters,.service-directory-results,.service-agreement-overview) { grid-column:1/-1; }
#page-service-directory .service-register-actions { margin:0; }
#page-service-directory .service-directory-due-filters { align-items:center; margin:0; }
#page-service-directory .service-directory-repair-filters { margin:0; }
#page-service-directory :is(.service-directory-due-filters,.service-directory-repair-filters) button { min-height:40px; padding:6px 10px; }
#page-service-directory .service-directory-card { display:grid; grid-template-columns:minmax(120px,30%) minmax(0,1fr); align-items:start; gap:12px; padding:12px; border-radius:10px; }
#page-service-directory .service-directory-site { min-width:0; }
#page-service-directory .service-directory-card h2 { margin:2px 0 7px; font-size:14px; line-height:1.3; }
#page-service-directory .service-directory-caption { display:block; font-size:11px; line-height:1.3; }
#page-service-directory .service-directory-links { display:grid; grid-template-columns:minmax(0,1fr); gap:5px; min-width:0; }
#page-service-directory .service-directory-unit { box-sizing:border-box; width:100%; padding:7px 9px; border:1px solid #e1e8f0; border-radius:8px; background:#f8fafc; gap:2px; }
#page-service-directory .service-directory-unit > .quiet-btn { justify-self:start; min-height:32px; padding:3px 7px; font-size:12px; font-weight:700; }
#page-service-directory .service-directory-next,
#page-service-directory .service-directory-signals { font-size:11px; line-height:1.3; }
#page-service-directory .service-directory-next a,
#page-service-directory .service-directory-signals a { min-height:32px; padding:4px 6px; font-size:11px; }
#page-service-directory .service-directory-message { margin:0; padding:12px; }

#page-service-contracts #service-agreements-root { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
#page-service-contracts #service-agreements-root > * { min-width:0; margin:0; }
#page-service-contracts :is(.service-contract-registry,.service-contract-terms-board,.service-contract-dates) { padding:13px 15px; border-radius:10px; }
#page-service-contracts .service-contract-registry { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:9px 14px; }
#page-service-contracts .service-contract-registry-heading,
#page-service-contracts .service-contract-registry-sla-expiry,
#page-service-contracts .service-contract-registry-filters,
#page-service-contracts .service-contract-registry-results,
#page-service-contracts .service-contract-registry-list,
#page-service-contracts .service-contract-registry-empty { grid-column:1/-1; }
#page-service-contracts .service-contract-registry-heading h2,
#page-service-contracts .service-contract-lifts h2,
#page-service-contracts .service-contract-dates h2 { font-size:15px; }
#page-service-contracts .service-contract-registry-sla-expiry { grid-template-columns:minmax(110px,auto) minmax(0,1fr) auto; align-items:center; gap:8px; padding:8px 10px; }
#page-service-contracts .service-contract-registry-sla-expiry > div { min-width:0; }
#page-service-contracts .service-contract-registry-sla-expiry button,
#page-service-contracts .service-contract-registry-filters button,
#page-service-contracts .service-contract-terms-filters button { min-height:40px; padding:5px 9px; font-size:12px; }
#page-service-contracts .service-contract-registry-sla-expiry .service-contract-sla-print-action { min-height:40px; }
#page-service-contracts .service-contract-registry-filters { gap:5px; }
#page-service-contracts :is(.service-contract-registry-site select,.service-contract-registry-search input) { min-height:40px; padding:7px 9px; }
#page-service-contracts .service-contract-registry-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
#page-service-contracts .service-contract-registry-list article { align-items:flex-start; padding:9px 10px; border-radius:8px; }
#page-service-contracts .service-contract-registry-list article > div:first-child { align-content:start; }
#page-service-contracts .service-contract-registry-list strong { font-size:12px; line-height:1.3; }
#page-service-contracts .service-contract-registry-actions { justify-content:flex-end; max-width:48%; gap:5px; }
#page-service-contracts .service-contract-registry-actions .quiet-btn { min-height:34px; padding:5px 8px; font-size:11px; line-height:1.25; }
#page-service-contracts .service-contract-expiry-month { grid-column:1/-1; margin-top:4px; }
#page-service-contracts .service-contract-terms-board { gap:8px; }
#page-service-contracts .service-contract-terms-filters { gap:5px; }
#page-service-contracts .service-contract-terms-nearest { gap:5px; }
#page-service-contracts .service-contract-terms-nearest a { min-height:36px; padding:5px 8px; }
#page-service-contracts .service-contract-date-groups { grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
#page-service-contracts .service-contract-date-group summary { min-height:40px; padding:8px; font-size:12px; }
#page-service-contracts .service-contract-lifts { margin-top:0; }
#page-service-contracts .service-contract-lifts > div { grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr)); gap:7px; }
#page-service-contracts .service-contract-lift { padding:10px; gap:8px; }

@media (max-width:1250px) {
  #page-service-directory #service-directory-root { grid-template-columns:minmax(0,1fr); }
  #page-service-contracts .service-contract-registry-list { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:900px) {
  #page-service-contracts .service-contract-registry-sla-expiry { grid-template-columns:minmax(0,1fr); }
  #page-service-contracts .service-contract-registry-sla-expiry > div { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #page-service-contracts .service-contract-date-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  #page-service-directory,
  #page-service-contracts { padding-top:10px; }
  #page-service-directory .page-heading,
  #page-service-contracts .page-heading { margin-bottom:9px; }
  #page-service-directory .page-heading h1,
  #page-service-contracts .page-heading h1 { font-size:19px; }
  #page-service-directory .service-directory-search { max-width:none; }
  #page-service-directory .service-directory-card { grid-template-columns:minmax(0,1fr); gap:7px; padding:10px; }
  #page-service-directory .service-directory-site { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 8px; }
  #page-service-directory .service-directory-site h2 { flex-basis:100%; margin:0; }
  #page-service-directory .service-directory-unit { padding:6px 8px; }
  #page-service-directory .service-directory-unit > .quiet-btn,
  #page-service-directory .service-directory-next a,
  #page-service-directory .service-directory-signals a { min-height:40px; }
  #page-service-contracts :is(.service-contract-registry,.service-contract-terms-board,.service-contract-dates) { padding:10px; }
  #page-service-contracts .service-contract-registry { grid-template-columns:minmax(0,1fr); }
  #page-service-contracts .service-contract-registry-sla-expiry > div { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #page-service-contracts .service-contract-registry-actions { max-width:none; justify-content:flex-start; }
  #page-service-contracts .service-contract-registry-list article { flex-direction:column; gap:6px; }
  #page-service-contracts .service-contract-registry-actions .quiet-btn { min-height:40px; }
  #page-service-contracts .service-contract-date-groups { grid-template-columns:minmax(0,1fr); }
}
@media print {
  #page-service-directory,
  #page-service-contracts { max-width:none; padding:0; }
}
