/* PFOA Cat Profiles: lightweight local styles only (no external assets). */
.pfoa-cat-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.5rem;
  max-width: 100%;
}

.pfoa-cat-card {
  border: 0;
  border-radius: 0;
  padding: 0.25rem;
  max-width: 100%;
  box-sizing: border-box;
  background: transparent;
  text-align: center;
}

.pfoa-cat-card-media {
  display: block;
  max-width: 100%;
}

.pfoa-cat-card-thumb,
.pfoa-cat-card-media img {
  width: 100%;
  max-width: 250px;
  aspect-ratio: 1;
  object-fit: cover;
  height: auto;
  display: block;
  margin: 0 auto;
}

.pfoa-cat-card-title {
  color: #000080;
  font-size: 90%;
  font-weight: 400;
  margin: 0.25rem 0 0;
  overflow-wrap: break-word;
}

.pfoa-cat-card-title a {
  color: inherit;
  text-decoration: none;
}

.pfoa-cat-card-status,
.pfoa-cat-card-members,
.pfoa-cat-card-note {
  color: #000080;
  font-size: 90%;
  margin: 0;
  overflow-wrap: break-word;
}

/* Exactly two-member pairs read as one listing: left label right-aligned,
   right label left-aligned. Narrowly scoped to pair cards only. */
.pfoa-cat-card.pfoa-cat-pair-left .pfoa-cat-card-title {
  text-align: right;
}

.pfoa-cat-card.pfoa-cat-pair-right .pfoa-cat-card-title {
  text-align: left;
}

@media (max-width: 760px) {
  .pfoa-cat-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .pfoa-cat-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.pfoa-cat-dialog {
  position: fixed;
  inset: 0;
  z-index: 999999;
  box-sizing: border-box;
  overflow-y: auto;
  padding: 50px 1rem 20px;
  background: rgba(0, 0, 0, 0.70);
  color: #000080;
}

.pfoa-cat-dialog[hidden] {
  display: none;
}

.pfoa-cat-dialog-container {
  position: relative;
  width: min(966px, calc(100vw - 2rem));
  max-height: calc(100vh - 70px);
  margin: 0 auto;
  padding: 28px;
  box-sizing: border-box;
  overflow: auto;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 10px 25px 4px rgba(2, 2, 2, 0.50);
}

.pfoa-cat-dialog-close {
  position: sticky;
  top: 0;
  float: right;
  z-index: 1;
  width: 28px;
  height: 28px;
  margin: -20px -20px 0 0;
  padding: 4px;
  border: 0;
  border-radius: 42px;
  color: #fff;
  background: rgba(49, 91, 124, 0.80);
  font-family: inherit;
  font-size: 15px;
  line-height: 15px;
  cursor: pointer;
}

.pfoa-cat-dialog-body {
  clear: both;
  max-width: 100%;
  outline: 0;
}

/* QA-01 keyboard accessibility (0.1.160): usable focus indicators for
   dialog controls. Resting appearance unchanged — these paint only on
   keyboard Tab (:focus-visible); mouse click/hover is unaffected. High-
   contrast blue ring reads on the white dialog; the Close control keeps
   its position/size (inset-safe offset). */
.pfoa-cat-dialog-close:focus-visible,
.pfoa-cat-dialog-body a:focus-visible,
.pfoa-cat-dialog-body button:focus-visible {
  outline: 3px solid #005fcc !important;
  outline-offset: 2px !important;
}

/* T-01 normal-prose: body copy inherits the site body treatment
   (system-ui stack, 16px/400/1.65, #302D2B). Headings keep their own
   theme styling; this wrapper color only sets the default for prose,
   status, members, and note fallbacks. */
.pfoa-cat-profile {
  max-width: 100%;
  overflow-wrap: break-word;
  color: #302D2B;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
}

.pfoa-cat-profile-status-pending {
  color: #000080;
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}

.pfoa-cat-profile::after {
  content: "";
  display: table;
  clear: both;
}

/* Lead Card Image slot shared by both renderer branches
   (pfoa_cat_render_templated_profile_html() and the legacy branch of
   pfoa_cat_render_profile_html()): small left-floated
   Card Image (max 264x264, aspect preserved, no crop); description text
   wraps beside then full-width beneath; gallery/video clear below. */
.pfoa-cat-profile-image {
  float: left;
  max-width: min(264px, 100%);
  margin: 0 20px 14px 0;
}

.pfoa-cat-profile-image img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(264px, 100%);
  max-height: 264px;
}

.pfoa-cat-profile-video {
  clear: both;
}

/* PFOA Cat Profiles 0.1.141: two independent YouTube embeds directly below
   the photo gallery. Responsive 16:9 players, stacked in slot order, capped
   for desktop readability and full-width on mobile. */
.pfoa-cat-youtube-videos {
  clear: both;
  display: grid;
  gap: 16px;
  margin: 16px 0 0;
}

.pfoa-cat-youtube-video {
  position: relative;
  width: 100%;
  max-width: 640px;
  aspect-ratio: 16 / 9;
}

.pfoa-cat-youtube-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.pfoa-cat-profile-members {
  list-style: disc;
  margin-left: 1.25rem;
  padding-left: 0;
}

/* T-01 normal-prose: canonical body treatment (was navy #000080,
   18px/1.2). Weight 400 on the container; strong/b/em keep their
   semantics because this never targets them. */
.pfoa-cat-profile-description {
  color: #302D2B;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
}

/* Inline bonded-partner navigation in an authored adoption statement.
   Keep the link visibly underlined and high contrast in both profile pages
   and dialog fragments; the focus ring remains keyboard-visible. */
.pfoa-cat-profile-description a.pfoa-cat-bonded-inline-link {
  color: #303873;
  text-decoration: underline;
  text-decoration-thickness: max(1px, 0.08em);
  text-underline-offset: 0.14em;
}

.pfoa-cat-profile-description a.pfoa-cat-bonded-inline-link:hover {
  color: #20264C;
}

.pfoa-cat-profile-description a.pfoa-cat-bonded-inline-link:focus-visible {
  outline: 2px solid #303873;
  outline-offset: 2px;
}

/* T-01 legacy-span neutralization (render-time only, stored bytes
   untouched): migrated descriptions carry inline spans such as
   <span style="color:#000080;font-size:18px"> and
   <span style="font-size:18px;color:#000080;line-height:1.2">, which
   outrank any normal stylesheet rule. Scoped strictly to spans (and
   legacy font elements) inside .pfoa-cat-profile-description so cards,
   dialogs chrome, galleries, and admin are untouched; !important is
   required to beat the inline style attribute. TinyMCE zero-width
   bookmark markers (.mce_SELRES_start / [data-mce-type]) are excluded
   so their inline display/width/line-height hiding is preserved.
   Applies identically to canonical pages and dialog fragments because
   both render through the same classes. */
.pfoa-cat-profile-description span:not(.mce_SELRES_start):not([data-mce-type]),
.pfoa-cat-profile-description font {
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

/* 0.1.150 shared description roles (render-time only; stored profiles
   untouched): the projection helper adapts every reviewed vital variant
   (explicit .pfoa-cat-facts blocks, tagged legacy .pfoa-cat-vitals
   paragraphs, validated paragraph-sequence adapters) into one semantic
   ul.pfoa-cat-vitals-list of li rows, with populated Special needs as a
   row and truly-empty blocks omitted. Narrative (plain paragraphs,
   .pfoa-cat-long-description/.pfoa-cat-narrative, and the eight mixed
   editorial+prose short blocks, which pass through unchanged) renders at
   normal 400 weight, so .pfoa-cat-short-description is no longer in the
   700 rule. Standalone short titles/notices carry explicit roles:
   h3.pfoa-cat-section-title and p.pfoa-cat-notice. Applies identically to
   canonical pages and dialog fragments through the shared renderer. */
.pfoa-cat-profile-description .pfoa-cat-facts,
.pfoa-cat-profile-description .pfoa-cat-special-needs,
.pfoa-cat-profile-description p.pfoa-cat-vitals {
  color: #302D2B;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.65;
}

/* One semantic vital group: unbulleted 700 rows with zero inter-row
   margin/gap and exactly one 20px separation after the group before the
   next narrative/title/notice. The li + li neutralization is scoped
   strictly inside the vital list so the theme rhythm elsewhere is
   untouched. Facts-only profiles end on the list, so :last-child drops
   the trailing separator. */
.pfoa-cat-profile-description ul.pfoa-cat-vitals-list {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  color: #302D2B;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.65;
}

/* Adoptable weight split: labels bold, values regular. Scoped strictly to
   profiles carrying the PHP `pfoa-cat-profile--adoptable` modifier on the
   outer .pfoa-cat-profile div (added only when
   pfoa_cat_is_lifecycle_eligible_for_adoptable() is true), so
   adopted/historical profiles without the modifier keep the 700 rule above
   exactly as before. Same Sable color/type/spacing/list-style — only the
   weight splits: UL drops to 400 so values inherit regular, while label
   strong/b re-assert 700. Applies identically to full pages and dialog
   fragments because both render through the shared renderer classes. */
.pfoa-cat-profile--adoptable .pfoa-cat-profile-description ul.pfoa-cat-vitals-list {
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
  color: #302D2B;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
}

.pfoa-cat-profile--adoptable .pfoa-cat-profile-description ul.pfoa-cat-vitals-list:last-child {
  margin-bottom: 0;
}

.pfoa-cat-profile--adoptable .pfoa-cat-profile-description ul.pfoa-cat-vitals-list > li strong,
.pfoa-cat-profile--adoptable .pfoa-cat-profile-description ul.pfoa-cat-vitals-list > li b {
  font-weight: 700;
}

.pfoa-cat-profile-description ul.pfoa-cat-vitals-list:last-child {
  margin-bottom: 0;
}

.pfoa-cat-profile-description ul.pfoa-cat-vitals-list > li {
  margin: 0;
}

.pfoa-cat-profile-description ul.pfoa-cat-vitals-list > li + li {
  margin: 0;
  margin-block-start: 0;
}

/* Explicit section-title role for standalone short titles (plugin-scoped
   16px/700 with the accepted 20px separators, so theme display-heading
   scale never applies). Narrative keeps the default 400 weight. */
.pfoa-cat-profile-description h3.pfoa-cat-section-title {
  margin: 0 0 20px;
  color: #302D2B;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.65;
}

/* Explicit notice role for adoption/bonded notices (consistent 700). */
.pfoa-cat-profile-description p.pfoa-cat-notice {
  margin: 0 0 20px;
  font-weight: 700;
}

/* 0.1.150 legacy 30px indentation neutralization (render-time only).
   Reviewed legacy paragraphs (kitten narratives, bonded lines) carry the
   obsolete indent as an inline padding-left, which outranks any normal
   stylesheet rule — so this narrowly-scoped attribute selector uses one
   documented !important on the single padding-left property. Scoped
   strictly to paragraphs inside .pfoa-cat-profile-description that
   actually carry inline padding-left; cards, dialogs chrome, galleries,
   admin, and centered media paragraphs (no padding-left) are untouched. */
.pfoa-cat-profile-description p[style*="padding-left"] {
  padding-left: 0 !important;
}

.pfoa-cat-profile-description .pfoa-cat-short-description,
.pfoa-cat-profile-description .pfoa-cat-long-description {
  margin-top: 20px;
}

.pfoa-cat-profile-description img {
  max-width: 100%;
  height: auto;
}

.pfoa-cat-profile-description img.alignleft {
  float: left;
  margin: 0 20px 12px 0;
}

.pfoa-cat-profile-description iframe,
.pfoa-cat-profile-description video {
  max-width: 100%;
}

.pfoa-cat-profile-description::after {
  content: "";
  display: table;
  clear: both;
}

/* PFOA Cat Profiles: `.pfoa-cat-gallery` ownership transferred to PFOA Gallery Lightbox — no duplication here. */

@media (max-width: 600px) {
  .pfoa-cat-dialog {
    padding: 20px 10px;
  }

  .pfoa-cat-dialog-container {
    width: 100%;
    max-height: calc(100vh - 40px);
    padding: 18px;
    border-radius: 3px;
  }

  .pfoa-cat-dialog-close {
    margin: -12px -12px 0 0;
  }

  .pfoa-cat-profile-description {
    font-size: 16px;
  }

  .pfoa-cat-profile-description img.alignleft {
    float: none;
    display: block;
    margin: 0 auto 12px;
  }

  .pfoa-cat-profile-image {
    float: none;
    max-width: 100%;
    margin: 0 auto 12px;
  }

  .pfoa-cat-profile-image img {
    margin: 0 auto;
    max-width: 100%;
  }
}

.pfoa-cat-admin-preview {
  display: block;
  margin: 8px 0;
  font-size: 0;
  line-height: 0;
}

.pfoa-cat-admin-preview::after {
  content: "";
  display: table;
  clear: both;
}

.pfoa-cat-admin-item {
  display: inline-block;
  vertical-align: top;
  width: 100px;
  margin: 0 6px 6px 0;
  font-size: 14px;
  line-height: normal;
  cursor: move;
  cursor: grab;
}

.pfoa-cat-admin-item:active {
  cursor: grabbing;
}

.pfoa-cat-admin-thumb {
  position: relative;
  width: 80px;
  height: 80px;
  overflow: hidden;
  cursor: move;
  cursor: grab;
}

.pfoa-cat-admin-thumb:active {
  cursor: grabbing;
}

.pfoa-cat-admin-preview .ui-sortable-placeholder {
  display: inline-block;
  vertical-align: top;
  margin: 0 6px 6px 0;
  width: 100px;
  min-height: 130px;
  box-sizing: border-box;
  border: 2px dashed #2271b1;
  background: rgba(34, 113, 177, 0.08);
  visibility: visible !important;
}

.pfoa-cat-admin-preview .ui-sortable-helper {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  opacity: 0.9;
}

.pfoa-cat-admin-thumb img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  display: block;
  margin: 0;
  max-width: none;
}

.pfoa-cat-admin-thumb-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 20px;
  height: 20px;
  line-height: 18px;
  padding: 0;
  text-align: center;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-size: 14px;
  cursor: pointer;
}

.pfoa-cat-admin-thumb-remove:hover,
.pfoa-cat-admin-thumb-remove:focus {
  background: #000;
}

.pfoa-cat-admin-card {
  display: block;
  width: 100%;
  margin: 4px 0 2px;
  font-size: 12px;
  line-height: normal;
  white-space: nowrap;
}

.pfoa-cat-admin-card input {
  margin: 0 4px 0 0;
  vertical-align: middle;
}

.pfoa-cat-admin-thumb-caption {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 2px 0 0;
  font-size: 12px;
  line-height: normal;
}

/* PFOA Cat Profiles 0.1.25 admin only (Test): compact top-row
   [ Cat Name ] [ Cat ID ]. Scoped to pfoa-cat edit screens via body.post-type-pfoa_cat
   so frontend cards/dialogs/gallery are untouched. Cat Name is the native WP
   title (native light-gray prompt remains); Cat ID uses a light-gray
   placeholder with an accessible hidden label (no visible label above, no
   required asterisk/marker, no help text under). Cat Name constrained (not
   full width); Cat ID compact; horizontal alignment with responsive
   stacking. Identity errors render OUTSIDE the compact row and never move
   Cat ID relative to Cat Name. */
body.post-type-pfoa_cat #post-body-content:has(> #pfoa-cat-top-id-row) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0 18px;
}
body.post-type-pfoa_cat #post-body-content > #titlediv {
  flex: 0 1 560px;
  max-width: 560px;
  min-width: min(100%, 360px);
  order: 1;
}
body.post-type-pfoa_cat #post-body-content > #pfoa-cat-top-id-row {
  flex: 0 0 110px;
  width: 110px;
  margin: 0;
  padding: 0;
  order: 2;
}
body.post-type-pfoa_cat #titlediv #title,
body.post-type-pfoa_cat #pfoa-cat-member-id-single {
  box-sizing: border-box;
  height: 42px;
}
body.post-type-pfoa_cat #pfoa-cat-member-id-single {
  display: block;
  width: 100%;
  margin: 0;
}
body.post-type-pfoa_cat #post-body-content:has(> #pfoa-cat-top-id-row) > :not(#titlediv):not(#pfoa-cat-top-id-row):not(#pfoa-cat-identity-error) {
  flex-basis: 100%;
  order: 10;
  min-width: 0;
}
/* Identity error lives outside the compact row: full-width stripe below the
   Name/ID row; hidden by default; never participates in the Name/ID flex
   alignment so it cannot move Cat ID relative to Cat Name. */
body.post-type-pfoa_cat #pfoa-cat-identity-error {
  flex: 1 1 100%;
  order: 9;
  box-sizing: border-box;
  margin: 8px 0 0;
  padding: 8px 12px;
  border-left: 4px solid #d63638;
  background: #fcf0f1;
  color: #1d2327;
  font-size: 13px;
  line-height: 1.5;
}
body.post-type-pfoa_cat #pfoa-cat-identity-error[hidden] {
  display: none;
}
@media screen and (max-width: 782px) {
  body.post-type-pfoa_cat #post-body-content:has(> #pfoa-cat-top-id-row) {
    overflow-x: hidden;
  }
  body.post-type-pfoa_cat #post-body-content > #titlediv {
    flex-basis: 100%;
    max-width: 100%;
  }
  body.post-type-pfoa_cat #post-body-content > #pfoa-cat-top-id-row {
    flex-basis: 110px;
    max-width: 100%;
  }
}

/* PFOA Cat Profiles 0.1.39 admin only: established/immutable Cat ID reads as locked (visual only, no behavior change). Scoped strictly to locked Cat ID controls so new/unestablished IDs keep the editable white field and unrelated readonly fields are untouched. */
body.post-type-pfoa_cat #pfoa-cat-member-id-single[readonly].pfoa-cat-locked,
body.post-type-pfoa_cat #pfoa-cat-member-ids[readonly]:not([disabled]) {
  background-color: #f0f0f1;
  color: #3c434a;
  cursor: default;
}

/* PFOA Cat Profiles 0.1.41 admin only (DEV): Adopted side-box alignment.
   Narrowly scoped to the pfoa_cat edit screen via body.post-type-pfoa_cat
   plus the box id, so general WP admin layout is untouched. Keeps the box
   compact at the top of the right sidebar, level with the Photos box in
   the main column. */
body.post-type-pfoa_cat #pfoa-cat-adopted .inside {
  margin-top: 6px;
  margin-bottom: 6px;
}
body.post-type-pfoa_cat #pfoa-cat-adopted .inside > p {
  margin: 0;
}

/* PFOA Cat Profiles 0.1.162 admin only: bonded-search visible results.
   Scoped to the Bonded with side-box on the pfoa_cat edit screen only.
   Clickable match buttons sit directly below the search field so editors
   need not discover the select dropdown; status/error text only. */
body.post-type-pfoa_cat #pfoa-cat-bonded .pfoa-cat-bonded-results {
  margin: 6px 0;
  font-size: 12px;
  line-height: 1.4;
}
body.post-type-pfoa_cat #pfoa-cat-bonded .pfoa-cat-bonded-results:empty {
  margin: 0;
}
body.post-type-pfoa_cat #pfoa-cat-bonded .pfoa-cat-bonded-result {
  display: block;
  width: 100%;
  margin: 0 0 4px;
  text-align: left;
  white-space: normal;
}

/* PFOA Cat Profiles 0.1.78 admin only (DEV): bonded-pair adoption guidance.
   Scoped to the Adopted side-box on the pfoa_cat edit screen only. Neutral
   gray/info treatment (secondary to the checkbox), compact for the narrow
   sidebar, no frontend or Adoption Workflow selectors touched. */
body.post-type-pfoa_cat #pfoa-cat-adopted .pfoa-bonded-adopt-note {
  margin: 0 0 8px;
  padding: 6px 8px;
  background: #f6f7f7;
  border-left: 4px solid #72aee6;
  color: #3c434a;
  font-size: 12px;
  line-height: 1.4;
}
body.post-type-pfoa_cat #pfoa-cat-adopted .pfoa-bonded-adopt-note p {
  margin: 0;
}
body.post-type-pfoa_cat #pfoa-cat-adopted .pfoa-bonded-adopt-note-line1 {
  font-weight: 600;
}
body.post-type-pfoa_cat #pfoa-cat-adopted .pfoa-bonded-adopt-note-line2 {
  margin-top: 4px;
  color: #646970;
}

/* PFOA Cat Profiles 0.1.70 admin list only (edit.php?post_type=pfoa_cat):
   adopted-row marker + title suffix + Adoption Status column. Scoped to the
   pfoa_cat list table via body.post-type-pfoa_cat so edit screens, frontend
   cards/dialogs/gallery are untouched. */
body.post-type-pfoa_cat .wp-list-table tr.pfoa-adopted td,
body.post-type-pfoa_cat .wp-list-table tr.pfoa-adopted th {
  background-color: #eaf7ec;
}
body.post-type-pfoa_cat .wp-list-table tr.pfoa-adopted:hover td,
body.post-type-pfoa_cat .wp-list-table tr.pfoa-adopted:hover th {
  background-color: #dcf0e0;
}
body.post-type-pfoa_cat .wp-list-table .pfoa-cat-adopted-suffix {
  color: #d63638;
  font-size: 0.85em;
  font-weight: 400;
}

/* PFOA Cat Profiles 0.1.119 admin only: Record Adoption side-box fit.
   Scoped to the Record Adoption metabox on the pfoa_cat edit screen only.
   The narrow side column (~260-280px minus .inside padding) overflowed by
   ~15px: unstyled container + intrinsic-width date input/button + the
   status list's 1.2em left margin. Caps everything at 100% and lets the
   button label wrap instead of bleeding. No fixed px widths, no
   overflow:hidden (focus rings stay visible). No frontend, theme, or
   Adoption Workflow selectors touched. */
body.post-type-pfoa_cat #pfoa-cat-record-adoption {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-wrap: break-word;
}
body.post-type-pfoa_cat #pfoa-cat-record-adoption .pfoa-record-adoption-box {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow-wrap: break-word;
}
body.post-type-pfoa_cat #pfoa-cat-record-adoption .pfoa-record-adoption-box p,
body.post-type-pfoa_cat #pfoa-cat-record-adoption .pfoa-record-adoption-box label {
  max-width: 100%;
  overflow-wrap: break-word;
}
body.post-type-pfoa_cat #pfoa-cat-record-adoption .pfoa-record-adoption-status {
  max-width: 100%;
  box-sizing: border-box;
  padding-right: 0;
  overflow-wrap: break-word;
}
body.post-type-pfoa_cat #pfoa-cat-record-adoption #pfoa-adopt-event-date {
  max-width: 100%;
  box-sizing: border-box;
}
body.post-type-pfoa_cat #pfoa-cat-record-adoption .button {
  max-width: 100%;
  box-sizing: border-box;
  white-space: nowrap;
}

/* PFOA Cat Profiles 0.1.145 admin only (DEV): Cat ID prominence.
   Scoped strictly to the Cat ID controls on the pfoa_cat edit screens
   (single-cat top-row input + multi-member IDs textarea). 2px WP-error red
   (#d63638) border on the white field for clear visibility; native
   WordPress focus ring (box-shadow/outline) is untouched so the focus
   indicator and keyboard accessibility are preserved. No layout,
   validation, or save-behavior change; the field stays optional with
   Content Exceptions handling missing IDs. */
body.post-type-pfoa_cat #pfoa-cat-member-id-single,
body.post-type-pfoa_cat #pfoa-cat-member-ids {
  border: 2px solid #d63638;
}
body.post-type-pfoa_cat #pfoa-cat-member-id-single:focus-visible,
body.post-type-pfoa_cat #pfoa-cat-member-ids:focus-visible {
  border-color: #d63638;
}

/* PFOA Cat Profiles 0.1.146 admin only (DEV): Profile Description card fit.
   Scoped strictly to #pfoa-cat-description-box on the pfoa_cat edit screens.
   WP core #postdivrich carries its own margin/border; neutralize those inside
   the card so the Visual/Code editor sits flush within .inside like the
   Photos/YouTube cards, with no double borders or margin overflow. Visual/
   Code tabs + toolbar untouched; Cat ID red border and all other sections
   untouched. */
body.post-type-pfoa_cat #pfoa-cat-description-box .inside {
  padding: 12px;
}
body.post-type-pfoa_cat #pfoa-cat-description-box #postdivrich {
  margin: 0;
  border: 0;
  box-shadow: none;
  min-width: 0;
}
body.post-type-pfoa_cat #pfoa-cat-description-box #postdivrich .wp-editor-container {
  border: 1px solid #c3c4c7;
}

/* PFOA Cat Profiles 0.1.147 admin only (DEV): Profile Description gray-gap fix.
   Root cause: WP core gives #wp-content-editor-tools a gray background
   (#f0f0f1) plus 20px top padding (wp-admin/css/edit.css), and the
   Visual/Code tabs (.wp-switch-editor) a 15px top margin (wp-includes/css/
   editor.css) to clear the Add Media row. On normal screens that gray blends
   into the gray admin page, but inside our white card it reads as a ~90px
   empty gray band (20px padding + 15px tab margin + ~29px tab row, stacked
   under .inside padding). The Add Media row itself is absent here
   (media_buttons=false, so class-wp-editor.php emits no media-buttons div),
   leaving only the tabs floating in the gray. Scoped strictly to
   #pfoa-cat-description-box: paint the tools bar white and drop the dead
   top spacing so tabs sit directly below the header. Tab styling/position,
   toolbar, and editor behavior untouched; no global WP admin selectors. */
body.post-type-pfoa_cat #pfoa-cat-description-box #wp-content-editor-tools {
  background-color: #fff;
  padding-top: 0;
}
body.post-type-pfoa_cat #pfoa-cat-description-box #wp-content-editor-tools .wp-switch-editor {
  margin-top: 0;
}

/* PFOA Cat Profiles 0.1.151 Pending Adoption badge (frontend cards only).
   Cards are unpositioned today; this additive relative positioning anchors
   the absolutely-positioned pill (the theme's bonded-card rule already sets
   relative, so this is compatible). */
.pfoa-cat-card {
  position: relative;
}

/* Zero-footprint wrapper for the stored static cards (see helper): holds
   only the absolutely-positioned pill, so it collapses and adds no card
   height of its own. */
.pfoa-cat-pending-line {
  margin: 0;
  padding: 0;
}

/* Pending pill mirrors the Bonded Pair badge metrics: centered pill
   straddling the bottom border, ellipsis-guarded, white ring, bold type,
   bright orange (#ff8c00) fill with black text. */
.pfoa-cat-pending-badge {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 2;
  transform: translate(-50%, 50%);
  display: inline-block;
  max-width: calc(100% - 1rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.15rem 0.65rem;
  border: 1px solid #fff;
  border-radius: 999px;
  box-shadow: 0 1px 3px rgba(33, 30, 29, 0.35);
  background: #ff8c00;
  color: #000;
  font-family: var(--pfoa-font-body, inherit);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.02em;
  text-align: center;
}

/* Stacking: a shared card showing both badges must not overlap — the
   pending pill straddles the TOP border while Bonded Pair straddles the
   bottom. Same pill language, centered. */
.pfoa-cat-bonded-card .pfoa-cat-pending-badge {
  top: 0;
  bottom: auto;
  transform: translate(-50%, -50%);
}
