body.sanctuary {
  --sx-bg: #fbf4ee;
  --sx-bg2: #f4e9f3;
  --sx-card: #fffdfb;
  --sx-card2: #fbf1ec;
  --sx-line: #ecd9d3;
  --sx-ink: #3a2633;
  --sx-mute: #85707e;
  --sx-rose: #e0809a;
  --sx-rosegold: #d39a76;
  --sx-lav: #9a7fd1;
  --sx-sage: #5fae8a;
  --sx-gold: #c28f3a;
  --sx-sky: #79b6d9;
  --ac: var(--sx-rose);
  --lav: var(--sx-lav);
  --mint: var(--sx-sage);
  --gold: var(--sx-gold);
  --bg: var(--sx-bg);
  --card: var(--sx-card);
  --text: var(--sx-ink);
  --muted: var(--sx-mute);
  background: linear-gradient(180deg, var(--sx-bg) 0%, var(--sx-bg2) 100%);
  background-attachment: fixed;
  color: var(--sx-ink);
}

body.sanctuary .pt-pill,
body.sanctuary .pt-tab {
  background: #f6ebe7;
  color: var(--sx-ink);
  border: 1px solid var(--sx-line);
}

body.sanctuary .pt-pill strong,
body.sanctuary .pt-tab:hover strong,
body.sanctuary .pt-tab.active strong {
  color: var(--sx-ink);
}

body.sanctuary .pt-tab.active {
  background: #fff;
  border-color: var(--sx-rose);
  box-shadow: 0 4px 12px rgba(224, 128, 154, 0.15);
}

body.sanctuary .pt-card {
  background: var(--sx-card);
  border: 1px solid var(--sx-line);
  box-shadow: 0 6px 20px rgba(201, 162, 160, 0.15);
}

body.sanctuary .pt-card:hover {
  box-shadow: 0 10px 25px rgba(224, 128, 154, 0.2);
}

body.sanctuary .pt-card .im {
  background: radial-gradient(80% 100% at 50% 0%, color-mix(in srgb, var(--sx-rose) 25%, #fff), #fff);
}

body.sanctuary .pt-card .tag {
  background: #fff;
  border: 1px solid var(--sx-line);
  color: var(--sx-ink);
}

body.sanctuary .pt-card b {
  color: var(--sx-ink);
}

body.sanctuary .pt-card small {
  color: var(--sx-mute);
}

body.sanctuary .pt-card .xp-bar {
  background: #f1e2dd;
}

body.sanctuary .pt-card .xp-bar i {
  background: linear-gradient(90deg, var(--sx-rose), var(--sx-lav));
}

body.sanctuary .pt-card .bonus {
  color: var(--sx-gold);
}

body.sanctuary .pt-card select,
body.sanctuary .pt-card input {
  background: #fff;
  color: var(--sx-ink);
  border: 1px solid var(--sx-line);
}

body.sanctuary .pt-card button {
  color: var(--sx-mute);
}

body.sanctuary .pt-card button:hover {
  color: var(--sx-ink);
  background: #f6ebe7;
}

body.sanctuary .pt-card .btn-gold {
  background: linear-gradient(135deg, var(--sx-rose), var(--sx-rosegold));
  color: #fff;
  border: none;
  box-shadow: 0 2px 0 #b88f66;
}

body.sanctuary .pt-card .btn-gold:hover {
  background: linear-gradient(135deg, #e69aaf, #d39a76);
}

body.sanctuary .pt-card .den-btn {
  background: #f6ebe7;
  border: 1px dashed var(--sx-line);
}

body.sanctuary .pt-card .den-btn:hover {
  border-color: var(--sx-sage);
  color: var(--sx-sage);
}

body.sanctuary .pt-card .badge {
  background: var(--sx-gold);
  color: #fff;
}

body.sanctuary .pt-den .intro {
  color: var(--sx-mute);
}

body.sanctuary .pt-bed {
  background: #fff;
  border: 1px dashed var(--sx-line);
}

body.sanctuary .pt-bed.occ {
  border-color: var(--sx-rose);
}

body.sanctuary .pt-bed .info p {
  color: var(--sx-ink);
}

body.sanctuary .pt-bed .info .level {
  color: var(--sx-lav);
}

body.sanctuary .pt-bed .xp-pending {
  color: var(--sx-sage);
}

body.sanctuary .pt-bed .full-badge {
  background: var(--sx-gold);
  color: #fff;
}

body.sanctuary .pt-bed .zzz {
  color: var(--sx-ink);
}

body.sanctuary .pt-nest .box {
  background: #fff;
  border: 1px solid var(--sx-line);
}

body.sanctuary .pt-nest .box h3 {
  color: var(--sx-ink);
}

body.sanctuary .pt-nest .box p {
  color: var(--sx-mute);
}

body.sanctuary .pt-arena {
  background: #120d16;
  border: 1px solid #b48ae655;
}

body.sanctuary .pt-arena .ring {
  background: #120d16;
  border: 1px solid #b48ae655;
}

body.sanctuary .pt-arena .ring .vs {
  color: var(--sx-gold);
}

body.sanctuary .pt-arena .log {
  background: #2a2224;
  color: var(--sx-mute);
}

body.sanctuary .pt-arena .st-opts button {
  border: 1px solid #6a5636;
  background: #1a1416;
  color: #f0ece2;
}

body.sanctuary .pt-arena .st-opts button:hover {
  border-color: var(--sx-rose);
  background: #2a2224;
}

body.sanctuary .pt-arena .st-opts button small {
  color: var(--sx-mute);
}

body.sanctuary .pt-how details {
  border-bottom: 1px solid var(--sx-line);
}

body.sanctuary .pt-how summary {
  color: var(--sx-ink);
}

body.sanctuary .pt-how .tri div {
  color: var(--sx-mute);
}

body.sanctuary .pt-how .tri div strong {
  color: var(--sx-ink);
}

body.sanctuary .pt-how .tri .arrow {
  color: var(--sx-gold);
}

body.sanctuary .pt-chip.pt-muted {
  color: var(--sx-mute);
  border: 1px dashed var(--sx-line);
}

body.sanctuary .pt-banner {
  background: linear-gradient(90deg, #fbf4ee 0%, #f4e9f3 30%, #fff 60%), url('/art/pets_sanctuary.webp?w=1600') center 60%/cover;
}

body.sanctuary .pt-banner h2 {
  color: var(--sx-ink);
}

body.sanctuary .pt-banner p {
  color: var(--sx-mute);
}

body.sanctuary .pt-comp {
  background: #fff;
  border: 1px solid var(--sx-line);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

body.sanctuary .pt-comp .im {
  box-shadow: 0 0 0 8px #f6ebe7;
}

body.sanctuary .pt-comp .im::after {
  background: linear-gradient(180deg, rgba(224, 128, 154, 0.15), rgba(154, 127, 209, 0.15));
}

body.sanctuary .pt-comp .info h3 {
  color: var(--sx-ink);
}

body.sanctuary .pt-comp .info .level {
  color: var(--sx-lav);
}

body.sanctuary .pt-comp .xp-bar {
  background: #f1e2dd;
}

body.sanctuary .pt-comp .xp-bar i {
  background: linear-gradient(90deg, var(--sx-rose), var(--sx-lav));
}

body.sanctuary .pt-comp .stats {
  color: var(--sx-mute);
}

body.sanctuary .pt-comp .bonus {
  color: var(--sx-gold);
}

body.sanctuary .pt-comp .desc {
  color: var(--sx-mute);
}

body.sanctuary .pt-comp.empty .info {
  border: 1px dashed var(--sx-line);
  background: #fff;
}

body.sanctuary .pt-comp.empty h3 {
  color: var(--sx-mute);
}

body.sanctuary .pt-banner .content h1 {
  text-shadow: none;
}

body.sanctuary .pt-banner .content p {
  color: var(--sx-ink);
  text-shadow: none;
}

/* Breathing animation */
body.sanctuary .sx-breathe {
  animation: sx-breathe 3.5s ease-in-out infinite alternate;
}

@keyframes sx-breathe {
  0% { transform: scale(1); }
  100% { transform: scale(1.03); }
}

@media (prefers-reduced-motion: reduce) {
  body.sanctuary .sx-breathe {
    animation: none;
  }
}body.sanctuary .pt-banner {
  background: linear-gradient(90deg,#fbf4eef0 0%,#fbf4eeb8 32%,#fbf4ee00 62%), url('/art/pets_sanctuary.webp?w=1600') center 60%/cover;
}

body.sanctuary .topbar {
  background: #1a1220f2;
  box-shadow: 0 4px 18px #3a263333;
}

body.sanctuary .pt-today-panel {
  background: #fff;
  border: 1px solid var(--sx-line);
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  color: var(--sx-ink);
}

body.sanctuary .pt-today-card {
  background: #fffaf7;
  color: var(--sx-ink);
}

body.sanctuary .pt-today-card-mint {
  background: #effaf4;
  border-left: 3px solid var(--sx-sage);
  color: var(--sx-ink);
}

body.sanctuary .pt-today-card-pink {
  background: #fdf0f3;
  border-left: 3px solid var(--sx-rose);
  color: var(--sx-ink);
}

body.sanctuary .pt-today-card-lavender {
  background: #f4effc;
  border-left: 3px solid var(--sx-lav);
  color: var(--sx-ink);
}

body.sanctuary .pt-today-h,
body.sanctuary .pt-today-text,
body.sanctuary .pt-today-content {
  color: var(--sx-ink);
}

body.sanctuary .pt-today-muted {
  color: var(--sx-mute);
}

body.sanctuary .pt-today-pill-mint {
  background: var(--sx-sage);
  color: #fff;
}

body.sanctuary .pt-today-pill-lavender {
  background: var(--sx-lav);
  color: #fff;
}

body.sanctuary .pt-rest-badge {
  background: #efe8fb;
  color: var(--sx-ink);
}

body.sanctuary .pt-rest-box {
  background: #f7f1fb;
}

body.sanctuary .pt-btn.pt-btn-soft {
  background: #fff;
  border: 1px solid var(--sx-rose);
  color: var(--sx-rose);
}

body.sanctuary .pt-btn.pt-btn-soft:hover {
  background: #fdf0f3;
}

body.sanctuary .er-card {
  background: #fff;
  border: 1px solid var(--sx-line);
}

body.sanctuary .er-card .im {
  background: #fbf1ec;
}

body.sanctuary .pt-nest-need {
  background: #f7f1fb;
}

body.sanctuary .pt-nest-pet {
  background: #fff;
  border: 1px solid var(--sx-line);
}

body.sanctuary em.st.rest {
  background: #e6effa;
  color: #3d5f86;
}

body.sanctuary em.st.cd {
  background: #efe8fb;
  color: #5a4692;
}

body.sanctuary em.st.ok {
  background: #e3f5ec;
  color: #2f7a55;
}

body.sanctuary em.st.low {
  background: #fbe6ea;
  color: #a33b55;
}
body.sanctuary .er-send select {
  background: #fffdfb;
  color: var(--sx-ink);
  border: 1px solid var(--sx-line);
  border-radius: 10px;
}

body.sanctuary .er-send select:focus {
  outline: 2px solid var(--sx-rose);
  outline-offset: 2px;
}

body.sanctuary .er-send .radio-group label {
  color: var(--sx-ink);
}

body.sanctuary .er-send input[type=radio] {
  accent-color: var(--sx-rose);
}

body.sanctuary .pt-main select,
body.sanctuary .pt-main input[type=text],
body.sanctuary .pt-main input[type=number] {
  background: #fffdfb;
  color: var(--sx-ink);
  border: 1px solid var(--sx-line);
  border-radius: 10px;
}

body.sanctuary .pt-main select:focus,
body.sanctuary .pt-main input[type=text]:focus,
body.sanctuary .pt-main input[type=number]:focus {
  outline: 2px solid var(--sx-rose);
  outline-offset: 2px;
}

/* Night mode (pets page without .sanctuary): keep the light-only bits readable */
body:not(.sanctuary) .pl-page{background:#171019 !important;border-color:#3a2e28 !important}
body:not(.sanctuary) .pl-entry{background:#1d1517 !important;border-color:#3a2e28 !important}
body:not(.sanctuary) .pl-entry .pt-today-text{color:#eee}
body:not(.sanctuary) .pl-entry div[style*="#efe4e0"]{background:#2a2224 !important}

/* ---- day mode: pet cards keep their Aspect theme (pastel) and rarity frame (24/10) ---- */
body.sanctuary .pt-card[class*="asp-"] { background: linear-gradient(180deg, color-mix(in srgb, var(--glow) 16%, #fff), #fffaf6); border: 1px solid color-mix(in srgb, var(--glow) 45%, #fff); }
body.sanctuary .pt-card[class*="asp-"] .im { background: none; }
body.sanctuary .pt-card.asp-decay { background: linear-gradient(180deg, #e9dcef, #f3f1ea); border-style: dashed; border-color: #9b6fb0; }
body.sanctuary .pt-card.asp-dream { background: linear-gradient(180deg, #ffe6f4, #f6efff); }
body.sanctuary .pt-card.rar-rare { border: 1.5px solid #6fa8ff; box-shadow: 0 0 0 1px #6fa8ff33, 0 0 18px #6fa8ff55; }
body.sanctuary .pt-card.rar-legendary { border: 2px solid transparent; background: linear-gradient(180deg, color-mix(in srgb, var(--glow) 16%, #fff), #fffaf6) padding-box, linear-gradient(120deg, #8a5a12, #ffe39a, #b9822a, #fff2c4, #8a5a12) border-box; box-shadow: 0 0 24px #ffcf6a77; }
body.sanctuary .pt-lvr .rar.legendary { background: linear-gradient(90deg, #b9822a, #e8b84a); color: #fff; }
body.sanctuary .pt-lvr .rar.rare { background: #6fa8ff; color: #fff; }
body.sanctuary .pt-lvr .rar.uncommon { background: #5fbf70; color: #fff; }
body.sanctuary .pt-lvr .rar.epic { background: #a46ef0; color: #fff; }
body.sanctuary .pt-card.rar-uncommon { border: 1.5px solid #5fbf70; }
body.sanctuary .pt-card.rar-epic { border: 1.5px solid #a46ef0; box-shadow: 0 0 0 1px #a46ef033, 0 0 18px #a46ef055; }
body.sanctuary .pt-special { background: #ffffffb0; }
body.sanctuary .pt-special b { color: color-mix(in srgb, var(--glow) 70%, #4a2a40); }
body.sanctuary .pt-lvr .lv { background: #efe4ff; color: #5a3f8a; }
body.sanctuary .pt-lvr .rar.common { background: #f1ece8; color: #6a5a52; }
body.sanctuary .pt-card .im img.full { box-shadow: 0 8px 18px rgba(80, 50, 70, .25); }

/* pets list search + rarity tabs (pets-filter.js) in the Sanctuary's light colours */
.pf-bar button{background:#fff!important;color:#7a5566!important;border-color:#ecc8d4!important;font-weight:600}
.pf-bar button.on{background:#ffe3ec!important;color:#b0476f!important;border-color:#e58aa8!important}
.pf-bar input{background:#fff!important;color:#4a3640!important;border-color:#ecc8d4!important}
.pf-bar input::placeholder{color:#b48d9c}
.pf-empty{color:#9a6b7c}
