[hidden]{display:none!important}.tf-directory{margin-block:2rem}.animal-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;padding:26px;background:var(--pale,#edf7fa);border-radius:16px}.filter-search{grid-column:span 3}.filter-actions{grid-column:span 2;display:flex;align-items:end;gap:18px}.animal-filters label,.staff-toolbar label,.editor-field label{display:block;font-size:.875rem;font-weight:650;margin-bottom:7px}.animal-filters input,.animal-filters select,.staff-toolbar input,.staff-toolbar select,.editor-field input,.editor-field select,.editor-field textarea,.staff-login input:not([type=checkbox]){font:inherit;width:100%;min-height:46px;background:#fff;border:1px solid #a7bbc8;border-radius:6px;padding:10px;color:#163b55}.result-count{color:#496275;margin:24px 0}.animal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.animal-card{background:white;border:1px solid #dce8ed;border-radius:14px;overflow:hidden;text-align:left}.animal-photo{display:block;position:relative;aspect-ratio:1.2;background:#edf7fa}.animal-photo img{width:100%;height:100%;object-fit:cover}.animal-photo .status{position:absolute;bottom:15px;left:15px}.status{display:inline-block;padding:6px 12px;border-radius:30px;font:600 .75rem/1.4 var(--sans,Arial);background:#fff;color:#175248}.status-pending{background:#fff2ca;color:#765000}.status-adopted{background:#e6ecfb;color:#294675}.status-draft,.status-archived,.status-unavailable{background:#edf0f2;color:#455468}.animal-card-body{padding:22px}.animal-card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.animal-card-heading h3{margin:0;font-size:1.7rem}.animal-card a{text-decoration:none}.animal-type{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#536c7a}.animal-facts,.animal-breed{font-size:.875rem;margin:6px 0;color:#536878}.animal-summary{font-size:.925rem}.pagination{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:32px 0}.pagination a,.pagination button,.pagination .current{padding:10px 16px;border:1px solid #c9dce4;border-radius:5px;background:white;min-height:44px}.pagination .current,.pagination [aria-current]{background:#103b68;color:white}.empty-state{grid-column:1/-1;padding:50px;text-align:center;background:#f4f9fb;border-radius:14px}.photo-missing{display:grid;place-items:center;min-height:240px;color:#536878}.profile-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:60px;margin:40px 0 64px}.profile-primary{background:#edf7fa;border-radius:18px;overflow:hidden;aspect-ratio:1}.profile-primary img{width:100%;height:100%;object-fit:contain}.profile-gallery{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.profile-gallery img{width:86px;height:86px;object-fit:cover;border-radius:7px}.profile-intro h1{margin:18px 0}.profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.profile-facts dt{font-size:.8rem;color:#5d7180}.profile-facts dd{margin:2px 0;font-weight:600}.profile-details{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:60px}.compatibility>div{padding:14px 0;border-bottom:1px solid #cbdde5}.compatibility dt{font-size:.875rem;color:#4e6574}.compatibility dd{margin:4px 0;font-weight:600}.staff-heading{display:flex;justify-content:space-between;align-items:center}.staff-heading h1{font-size:2.7rem}.staff-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:15px;margin:25px 0}.stat{padding:22px;background:#edf7fa;border:1px solid #d9e7ed;border-radius:12px}.stat strong{font-size:2rem;display:block;color:#103b68}.stat span{font-size:.825rem}.staff-toolbar{display:flex;align-items:end;gap:20px;margin:24px 0}.staff-toolbar label:first-child{flex:1}.staff-record{display:grid;grid-template-columns:64px 1fr auto auto;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid #dce7ed}.staff-record img{width:64px;height:64px;object-fit:cover;border-radius:8px}.staff-record h3{font-size:1.3rem;margin:0}.staff-record p{margin:3px 0;font-size:.85rem}.staff-message:not(:empty){padding:16px;background:#edf7fa;border-left:4px solid #087f9d;margin:16px 0}.staff-message.error{background:#fff3ee;border-color:#ba3c18;color:#912a10}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.editor-field.wide{grid-column:1/-1}.editor-field textarea{min-height:110px}.editor-section{border:1px solid #d2e3ea;border-radius:12px;padding:28px;margin:24px 0}.editor-section legend{font:700 1.5rem Georgia;padding:0 12px;color:#103b68}.editor-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:20px 0;position:sticky;bottom:0;background:#fff;border-top:1px solid #d5e5ed;z-index:3}.photo-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.photo-editor img{height:160px;width:100%;object-fit:cover;border-radius:8px}.photo-controls{display:flex;gap:5px;flex-wrap:wrap}.photo-controls button{font-size:.8rem;padding:8px;min-height:44px;cursor:pointer;background:#fff;border:1px solid #a7bbc8;border-radius:5px}.staff-login{max-width:520px;margin:auto;padding:36px;background:#edf7fa;border-radius:16px}.staff-login label{display:block;margin-bottom:6px}.staff-login .login-remember label{display:flex;gap:8px}.staff-login input[type=submit]{background:#087f9d;color:white;border:0;font-weight:bold;cursor:pointer}.tf-audit{font-size:.875rem}.tf-audit li{padding:8px 0}.tf-staff button{cursor:pointer}@media(min-width:1450px){.animal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1000px){.animal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.animal-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-search{grid-column:span 3}.filter-actions{grid-column:span 1}.profile-layout,.profile-details{gap:30px}.staff-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.animal-grid{grid-template-columns:1fr}.animal-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:12px}.filter-search{grid-column:1/-1}.filter-actions{grid-column:1/-1;align-items:center}.profile-layout,.profile-details{grid-template-columns:minmax(0,1fr);gap:26px}.staff-heading{align-items:start;gap:15px}.staff-heading h1{font-size:2rem}.staff-stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.staff-toolbar{flex-wrap:wrap;gap:12px}.staff-toolbar label:first-child{flex-basis:100%}.staff-record{grid-template-columns:48px 1fr auto;gap:10px}.staff-record img{width:48px;height:48px}.staff-record .status{grid-column:2}.staff-record button{grid-column:3;grid-row:1/3}.editor-grid{grid-template-columns:1fr}.editor-section{padding:18px 12px}.photo-editor{grid-template-columns:1fr 1fr}.staff-login{padding:24px}.empty-state{padding:28px}.profile-gallery img{width:70px;height:70px}}
/* Bulk availability controls. */
.staff-bulk{padding:24px;margin:24px 0;border:1px solid #cbdfe8;border-radius:12px;background:#f4f9fb}.staff-bulk h2{font-size:1.35rem;margin:0 0 16px}.bulk-selection,.bulk-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.bulk-actions{align-items:end;margin-top:16px}.bulk-actions label{font-size:.875rem;font-weight:650;flex:1;max-width:360px}.bulk-actions select{display:block;width:100%;font:inherit;margin-top:6px;min-height:46px;border:1px solid #a7bbc8;border-radius:6px;padding:10px;background:#fff;color:#163b55}.staff-check{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}.staff-check input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0;accent-color:#17658f;cursor:pointer}.staff-record-select{justify-content:center;min-width:44px}.staff-bulk .text-link{min-height:44px;border:0;background:transparent;font:inherit;text-decoration:underline;color:#17658f;cursor:pointer}.staff-bulk button:disabled{opacity:.55;cursor:default}.staff-record{grid-template-columns:44px 64px minmax(0,1fr) auto auto}.staff-record-details{min-width:0;overflow-wrap:anywhere}.staff-photo-empty{display:grid;place-items:center;width:64px;height:64px;background:#edf7fa;border-radius:8px}.staff-bulk [data-bulk-results]{margin-top:20px;background:#fff;border:1px solid #cbdfe8;border-radius:8px;padding:18px;overflow-wrap:anywhere}.staff-bulk [data-bulk-results] h3{font-size:1.1rem;margin-top:0}.staff-bulk [data-bulk-results] li{margin-block:10px}.bulk-selection [data-selection-count]{font-size:.875rem;font-weight:700}
@media(max-width:640px){.staff-bulk{padding:18px 14px}.bulk-selection{gap:6px 12px}.bulk-actions{display:block}.bulk-actions label{max-width:none;display:block}.bulk-actions button{margin-top:12px;width:100%}.staff-record{grid-template-columns:36px 48px minmax(0,1fr);gap:10px}.staff-record-select{min-width:36px;grid-column:1;grid-row:1/3}.staff-photo-empty{width:48px;height:48px}.staff-record img,.staff-record .staff-photo-empty{grid-column:2;grid-row:1}.staff-record-details{grid-column:3;grid-row:1}.staff-record .status{grid-column:2/4;grid-row:2;justify-self:start}.staff-record button{grid-column:3;grid-row:3;justify-self:start;padding:8px 16px;min-height:44px}.staff-bulk .text-link{text-align:left}}

.animal-photo img.tf-placeholder-image,.profile-primary img.tf-placeholder-image,.staff-record img.tf-placeholder-image{object-fit:contain;background:#edf7fa}.animal-photo img.tf-placeholder-image{padding:0 0 18px}.staff-record img.tf-placeholder-image{border:1px solid #dce8ed}

/* Animal sharing is useful with or without JavaScript. */
.animal-share{margin-top:28px;padding-top:24px;border-top:1px solid #dce8ee}.animal-share h2{font-size:1.3rem;margin:0 0 8px}.animal-share p{font-size:.9rem}.animal-share-actions{display:flex;flex-wrap:wrap;gap:10px}.animal-share-actions .button{font-size:.85rem;min-height:44px;padding:11px 16px}.animal-share [hidden]{display:none!important}.animal-share details{margin-top:14px;font-size:.85rem}.animal-share summary{cursor:pointer;min-height:44px;padding:10px 0;color:#17658f;text-decoration:underline}.animal-share label{display:block;margin:8px 0}.animal-share input{display:block;width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid #93aebc;border-radius:5px;background:#fff;color:#233e52}.share-message{margin:10px 0 0;overflow-wrap:anywhere}.share-message:empty{display:none}

/* Let grid/flex items shrink to the viewport and wrap long source URLs. */
.profile-layout,.profile-details,.animal-card,.tf-directory{min-width:0;overflow-wrap:anywhere;word-break:normal}
.profile-layout>*,.profile-details>*,.profile-facts>*,.animal-filters>*,.animal-card-heading>*{min-width:0}
.profile-details .prose{max-width:100%;white-space:normal}
.animal-filters input,.animal-filters select{box-sizing:border-box;min-width:0;max-width:100%}
.filter-actions{flex-wrap:wrap}
.profile-intro .button,.animal-share .button{max-width:100%;white-space:normal;text-align:center}
@media(max-width:380px){.animal-filters{grid-template-columns:minmax(0,1fr)}.filter-search,.filter-actions{grid-column:1/-1}}
