:root{--forest:#183b32;--forest-deep:#15372e;--cream:#f7f6f0;--paper:#fffefb;--line:#e4e8df;--muted:#65756d;--accent:#e2aa58;--shadow:0 20px 60px #17392f12;font-family:'Trebuchet MS',system-ui,sans-serif;color:var(--forest)}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.eyebrow{font-size:.69rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#75867b;margin:0 0 14px}.button{border:0;border-radius:10px;padding:15px 22px;font-weight:800}.button-primary{background:var(--forest);color:white;display:flex;align-items:center;justify-content:space-between}.button-primary:hover{background:#275649}
.auth-body{background:linear-gradient(125deg,#e9efe4 0%,#f8f6ed 48%,#f1e4cd 100%);min-height:100vh}.auth-shell{width:min(100% - 32px,470px);margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:38px 0}.auth-brand{font-size:26px;font-weight:800;letter-spacing:-.06em;margin:0 0 34px}.auth-panel{background:var(--paper);border-radius:22px;padding:42px;box-shadow:var(--shadow);border:1px solid #ffffffb7}.auth-panel h1{font-size:clamp(30px,5vw,39px);letter-spacing:-.06em;line-height:1.13;margin:0 0 13px}.lede{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 30px}.auth-form{display:grid;gap:10px}.auth-form label{font-size:13px;font-weight:800;margin-top:8px}.auth-form input{width:100%;border:1px solid #d8dfd7;border-radius:10px;padding:14px 15px;background:#fbfcf8;color:var(--forest)}.auth-form .button{margin-top:18px}.form-error{background:#fff0ed;border:1px solid #f0c8bd;color:#923b2b;border-radius:8px;padding:12px 14px;font-size:13px}.auth-foot{color:#60736a;font-size:12px;margin-top:28px;text-align:center}.auth-foot a{text-underline-offset:3px}
.dashboard-body{background:var(--cream)}.dashboard-layout{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{background:var(--forest-deep);color:#e8eee6;padding:32px 18px 22px;display:flex;flex-direction:column}.sidebar-brand{font-weight:800;text-decoration:none;font-size:22px;letter-spacing:-.06em;padding:0 15px 60px}.sidebar-group-label{color:#9bb7aa;font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:800;padding:0 16px 13px}.sidebar-second{padding-top:38px}.sidebar-link{display:block;padding:12px 15px;text-decoration:none;border-radius:9px;font-size:13px;font-weight:700;color:#d1e1d6}.sidebar-link:hover,.sidebar-link.active{background:#ffffff18;color:white}.sidebar-user{margin-top:auto;display:flex;align-items:center;gap:11px;border-top:1px solid #ffffff2d;padding:22px 12px 0}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#dba75d;color:#17392f;font-weight:800}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user strong{font-size:13px}.sidebar-user small{font-size:11px;color:#a7c0b2;margin-top:3px}.dashboard-main{min-width:0;padding:0 clamp(20px,4vw,62px) 70px}.dashboard-top{height:74px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.text-button{border:0;background:none;color:var(--forest);font-size:12px;font-weight:800}.dashboard-intro{padding:48px 0 42px}.dashboard-intro h1{font-size:clamp(33px,4vw,50px);letter-spacing:-.07em;line-height:1.1;margin:0 0 13px}.dashboard-intro>p:last-child{font-size:14px;color:var(--muted);margin:0}.table-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px #1a3b3107;overflow:hidden}.table-head{padding:25px 27px;display:flex;align-items:end;justify-content:space-between;gap:20px}.table-head .eyebrow{margin-bottom:5px}.table-head h2{font-size:20px;letter-spacing:-.04em;margin:0}.search{display:flex;gap:8px}.search input{width:min(32vw,270px);background:#f9faf6;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12px}.search button{background:var(--forest);color:white;border:0;border-radius:8px;padding:10px 17px;font-weight:800;font-size:12px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f8faf6;color:#718278;font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;white-space:nowrap;padding:15px 18px;border-block:1px solid var(--line)}td{padding:19px 18px;vertical-align:middle;border-bottom:1px solid #edf0e9;min-width:78px}td strong{font-size:13px}.mono{font-family:'DM Sans',monospace;white-space:nowrap;font-weight:700}.subline{display:block;color:var(--muted);font-size:10px;margin-top:5px}.need-chip{display:inline-block;margin:2px 3px 2px 0;padding:4px 7px;border-radius:5px;background:#f0f3ec;color:#3c6251;font-size:10px;white-space:nowrap}.status-chip{white-space:nowrap;font-weight:700}.empty{text-align:center;padding:73px 20px 82px}.empty-icon{font-size:49px;color:#d9b77d;line-height:1}.empty h3{font-size:19px;margin:17px 0 8px}.empty p{font-size:13px;color:var(--muted);line-height:1.7;max-width:390px;margin:0 auto}
.public-body{background:var(--cream)}.public-header{height:76px;border-bottom:1px solid #dce3d9;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6vw,100px)}.public-brand{text-decoration:none;font-size:25px;font-weight:800;letter-spacing:-.06em}.header-link{font-size:13px;font-weight:800;text-decoration:none;border-bottom:1px solid var(--forest);padding-bottom:4px}.public-main{max-width:1190px;margin:0 auto;padding:77px 30px 105px}.public-kicker{display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.19em;text-transform:uppercase;font-weight:800;color:#668075}.kicker-line{width:35px;height:2px;background:var(--accent)}.public-main h1{font-size:clamp(46px,7.4vw,105px);line-height:.99;letter-spacing:-.085em;margin:25px 0 30px;font-weight:800}.public-main h1 em{font-style:normal;color:#7b9a83}.public-lede{max-width:560px;color:#5d7064;font-size:16px;line-height:1.8;margin:0 0 72px}.public-list{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.public-list-heading{display:flex;justify-content:space-between;align-items:baseline;padding:27px 30px}.public-list-heading h2{font-size:23px;letter-spacing:-.05em;margin:0}.public-list-heading span{font-size:12px;color:var(--muted)}.public-table td{font-size:13px}.table-link{color:#2b6c55;font-weight:800;text-underline-offset:4px;white-space:nowrap}.urgent-mark{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;color:#9d5833;margin-left:8px}.public-empty{text-align:center;padding:74px 20px 85px;background:linear-gradient(160deg,#fff 0%,#f8faf4 100%)}.public-empty>span{font-size:35px}.public-empty h3{font-size:23px;margin:16px 0 7px;letter-spacing:-.04em}.public-empty p{font-size:14px;color:var(--muted);max-width:400px;line-height:1.7;margin:0 auto 25px}.public-empty a{font-size:13px;font-weight:800;text-underline-offset:4px}.public-footer{padding:28px clamp(20px,6vw,100px);border-top:1px solid #dce3d9;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#62766b}.public-footer a{text-decoration:none;font-weight:800}
/* Keep the supplied shelter banner fully visible beside the catalogue intro. */
.public-main{max-width:none;padding-left:clamp(20px,3vw,50px);padding-right:clamp(20px,3vw,50px)}
.public-hero{max-width:1720px;margin-left:auto;margin-right:auto;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(30px,4vw,72px);align-items:center;margin-bottom:66px}
.public-hero-copy{min-width:0}
.public-hero h1{font-size:clamp(46px,4.5vw,86px)}
.public-hero .public-lede{margin-bottom:0}
.public-banner{display:block;width:100%;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 20px 55px #1a3b3118}
.public-list{max-width:none;margin:0}
@media(max-width:1050px){.public-hero{grid-template-columns:1fr;gap:34px;margin-bottom:50px}.public-hero h1{font-size:clamp(46px,7.4vw,80px)}.public-banner{max-width:760px}.public-hero .public-lede{max-width:700px}}
@media(max-width:820px){.dashboard-layout{display:block}.sidebar{padding:15px 20px;display:block}.sidebar-brand{display:inline-block;padding:0}.sidebar-group-label,.sidebar-link,.sidebar-user{display:none}.dashboard-main{padding:0 17px 50px}.dashboard-intro{padding:38px 0 30px}.table-head{align-items:stretch;flex-direction:column}.search input{width:100%}.public-main{padding:55px 20px 75px}.public-lede{margin-bottom:50px}}@media(max-width:500px){.auth-panel{padding:31px 24px}.public-header{height:67px}.header-link{font-size:11px}.public-main h1{font-size:50px}.public-footer{display:block}.public-footer a{display:block;margin-top:10px}}

/* Plain section labels replace the retired logo. */
.auth-brand{font-size:13px;font-weight:700;letter-spacing:.03em;color:var(--muted)}
.sidebar-brand{font-size:14px;font-weight:700;letter-spacing:0;color:#e1ede5}
.public-brand{font-size:14px;font-weight:700;letter-spacing:0}
/* The public table gives prospective adopters useful, approved details. */
.public-table{min-width:1415px;table-layout:fixed}
.public-table th:nth-child(1){width:75px}
.public-table th:nth-child(2){width:180px}
.public-table th:nth-child(3){width:320px}
.public-table th:nth-child(4){width:140px}
.public-table th:nth-child(5){width:130px}
.public-table th:nth-child(6){width:170px}
.public-table th:nth-child(7){width:230px}
.public-table th:nth-child(8){width:170px}
.public-table .animal-story{white-space:pre-wrap;line-height:1.55;color:#4f685c;vertical-align:top}
.public-table td{line-height:1.45;overflow-wrap:anywhere}
.public-table td:last-child{white-space:nowrap}
.animal-summary,.animal-marks,.animal-subline{display:block;margin-top:5px;font-size:11px;line-height:1.45;color:#667b70;font-weight:400}
.animal-marks{color:#83948a}
.readiness-cell{color:#355d4b;font-weight:600}

.footer-links{display:flex;align-items:center;gap:28px}
.public-footer .footer-credit{font-size:11px;font-weight:500;color:#89998f;text-decoration:none}
.public-footer .footer-credit:hover{text-decoration:underline}
@media(max-width:500px){.footer-links{flex-wrap:wrap;gap:0 20px}}

/* Compact, full-width catalogue controls. */
.public-nav{display:flex;align-items:center;gap:clamp(18px,3vw,46px)}
.curator-login{color:#63776d;border-bottom-color:#a9b7ae;font-weight:600}
.public-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(6,minmax(125px,1fr)) auto;gap:12px;align-items:end;padding:18px 25px 22px;border-top:1px solid var(--line);background:#fbfcf8}
.filter-field{display:flex;flex-direction:column;gap:7px;min-width:0;color:#5f7569;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.filter-field input,.filter-field select{width:100%;height:39px;padding:0 11px;border:1px solid #dae2d8;border-radius:7px;background:#fff;color:var(--forest);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
.filter-field input::placeholder{color:#96a59a}
.filter-actions{display:flex;align-items:center;gap:10px;min-height:39px}
.filter-actions button{height:39px;padding:0 16px;border:0;border-radius:7px;background:var(--forest);color:#fff;font-size:12px;font-weight:800}
.filter-actions button:hover{background:#28574a}
.filter-actions a{font-size:11px;color:#5f7569;text-underline-offset:3px;white-space:nowrap}
@media(max-width:1550px){.public-filters{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:950px){.public-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-search{grid-column:span 2}.filter-actions{grid-column:auto;grid-row:auto}}
@media(max-width:600px){.public-header{gap:16px}.public-nav{gap:13px}.public-nav .header-link{font-size:10px}.public-filters{padding:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.filter-search{grid-column:span 2}.filter-actions{grid-column:span 2}.filter-actions button{min-width:120px}}

/* Intake follows the existing staff dashboard and preserves volunteer line breaks. */
.intake-entry { margin-bottom: 24px; }
.intake-content { padding: 0 24px 24px; }
.intake-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.intake-content summary { cursor: pointer; font-weight: 600; padding: 12px 0; }

/* Compact contacts in the existing green sidebar. */
.sidebar-contacts{margin:22px 0 24px;padding:18px 15px 0;border-top:1px solid #ffffff2d;font-size:12px;line-height:1.5}
.sidebar-contacts h2{margin:0 0 13px;color:#e8eee6;font-size:13px;font-weight:700}
.sidebar-contacts p{margin:0 0 10px}
.sidebar-contacts p>span,.sidebar-contacts small{display:block;color:#b5cbbf;font-size:11px;line-height:1.5}
.sidebar-contacts a{display:block;width:fit-content;max-width:100%;padding:2px 0;color:#f0f5ee;text-decoration:none;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.sidebar-contacts .contact-inline{display:inline-block;margin-left:6px;font-size:11px}
.sidebar-contacts p:has(.contact-inline)>a{display:inline-block}
.contact-links{margin-top:14px;padding-top:9px;border-top:1px solid #ffffff18}
.contact-links a{padding:5px 0;font-size:11px;color:#dce9e0}
.sidebar-contacts a:hover{text-decoration:underline;text-underline-offset:3px;color:#f4c480}
@media(min-width:821px){.sidebar{position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#728f80 var(--forest-deep)}.sidebar-user{flex-shrink:0}}
@media(max-width:820px){.sidebar-contacts{margin:18px 0 0;padding:14px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.sidebar-contacts h2,.contact-links{grid-column:1 / -1}}
@media(max-width:380px){.sidebar-contacts{grid-template-columns:minmax(0,1fr)}}

/* Volunteer reports stay private while staff review and edit the animal card. */
.report-link{display:block;width:fit-content;margin-top:8px;color:#698076;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.review-heading{display:flex;align-items:baseline;gap:14px;margin:28px 0 18px;font-size:19px;letter-spacing:-.03em}
.review-heading span,.review-empty{font-size:12px;font-weight:500;color:var(--muted)}
.review-original,.report-original{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8f2;border-left:3px solid var(--accent);padding:14px 17px;border-radius:4px;line-height:1.6}
.review-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.review-actions form{margin:0}
.review-actions form:first-child .review-reject{background:var(--forest);border-color:var(--forest);color:#fff}
.review-reject{border:1px solid #d4ddd5;background:#fff;color:#52675c;border-radius:8px;padding:14px 18px;font-size:12px;font-weight:700}
.review-reject:hover{background:#f1f4ee}
.moderation-main{width:100%}
.moderation-lede{margin:14px 0 20px;color:var(--muted);font-size:13px;line-height:1.5}
.moderation-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.moderation-title h3{margin:0;font-size:18px;letter-spacing:-.03em}
.moderation-tag{display:inline-flex;align-items:center;min-height:25px;border-radius:5px;padding:3px 9px;background:#e6eddf;color:#335a43;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.moderation-tag.report-tag{background:#f3e9d8;color:#8a5d27}
.moderation-edit{display:inline-flex;align-items:center;min-height:39px;margin:9px 0 14px;padding:9px 14px;border-radius:7px;background:var(--forest);color:#fff;text-decoration:none;font-size:12px;font-weight:800}
.moderation-edit:hover{background:#28574a}
