.keyring-public { margin: 0; background: #fff; color: #191b20; font: 17px/1.6 system-ui, sans-serif; letter-spacing: 0; }
.keyring-brand { border-bottom: 1px solid #e2e5e9; padding: 20px 24px; }
.keyring-brand a { color: #191b20; font-weight: 800; text-decoration: none; }
.keyring-public main { max-width: 640px; margin: 0 auto; padding: 40px 24px; overflow-wrap: anywhere; }
.keyring-public h1 { font-size: 32px; line-height: 1.2; margin: 12px 0 28px; }
.keyring-public h2 { font-size: 23px; }
.keyring-eyebrow { color: #c90050; font-weight: 700; }
.keyring-contact { display: grid; gap: 16px; margin-top: 32px; }
.keyring-contact-link { padding: 16px 20px; color: #fff; background: #c90050; border: 1px solid #c90050; border-radius: 6px; text-decoration: none; font-weight: 650; }
.keyring-contact-secondary { color: #191b20; background: #fff; border-color: #b7bec8; }
.keyring-contact-link:focus-visible { outline: 3px solid #167954; outline-offset: 4px; }
.keyring-qr-image { width: 240px; max-width: 100%; aspect-ratio: 1; background: white; }
.keyring-qr-image svg { width: 100%; height: 100%; display: block; }
.keyring-code { min-width: 0; }
.keyring-repeat { min-width: 0; }
.keyring-repeat legend { float: none; width: auto; font-size: 18px; font-weight: 650; margin-bottom: 12px; }
.keyring-phone-row { display: grid; grid-template-columns: 140px minmax(0, 1fr) 44px; gap: 12px; align-items: end; margin-bottom: 12px; }
.keyring-phone-row .form-label, .keyring-address-header .form-label { margin: 0; min-width: 0; }
.keyring-remove { width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.keyring-add { display: inline-flex; align-items: center; gap: 8px; white-space: normal; }
.keyring-address-row { padding: 16px 0; border-top: 1px solid #e2e5e9; }
.keyring-address-header { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.keyring-address-header .form-label { width: 180px; max-width: 100%; }
.keyring-entry-status { display: block; font-size: 14px; margin-top: 8px; color: #5a626e; }
.keyring-repeat [hidden] { display: none !important; }
.keyring-organization { margin: 0; font-weight: 650; font-size: 20px; }
.keyring-job-title { margin: 4px 0 20px; color: #505761; }
.keyring-lost-notice { border-block: 1px solid #e2e5e9; padding: 16px 0; margin: 24px 0; }
.keyring-lost-notice h2 { font-size: 19px; margin: 0 0 6px; }
.keyring-lost-notice p { margin: 0; }
.keyring-contact-type { display: block; font-size: 14px; font-weight: 500; }
.keyring-postal-address { font-style: normal; border-top: 1px solid #e2e5e9; padding-top: 16px; margin: 0; }
.keyring-postal-address span { display: block; }
.keyring-provenance { border-top: 1px solid #e2e5e9; padding-top: 20px; margin-top: 32px; font-size: 14px; color: #505761; }
.keyring-provenance a { color: inherit; }
.keyring-sync { border-top: 1px solid #e2e5e9; margin-top: 32px; padding-top: 20px; }
.keyring-sync .keyring-contact-link { display: block; }
.keyring-sync-note { font-size: 14px; color: #505761; }
.keyring-public button { font: inherit; cursor: pointer; white-space: normal; max-width: 100%; }
.keyring-consent { display: flex; gap: 12px; align-items: start; margin: 24px 0; }
.keyring-consent input { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 5px; }
.keyring-sync-item { padding: 24px 0; border-block-end: 1px solid #e2e5e9; }
.keyring-sync-item h2 { margin-top: 0; }
.keyring-sync-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.keyring-sync-actions form { margin: 0; max-width: 100%; }
.keyring-sync-notice { border-left: 3px solid #167954; padding: 12px 16px; background: #f0f8f4; }
@media (max-width: 575px) {
  .keyring-phone-row { grid-template-columns: minmax(0, 1fr) 44px; }
  .keyring-phone-row > label:first-child { grid-column: 1 / -1; }
}
body[data-disable-analytics="1"] .whatsapp-float { display: none; }
.admin-main { min-width: 0; }
@media (max-width: 400px) { .keyring-public main { padding: 28px 20px; } .keyring-public h1 { font-size: 28px; } }
