:root{font-family:Inter,Arial,sans-serif;color:#171717;background:#f2f0eb}
*{box-sizing:border-box}body{margin:0}.shell{width:min(1180px,calc(100% - 28px));margin:auto;padding:42px 0 70px}
.hero{max-width:900px;margin-bottom:24px}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.17em;margin:0 0 8px}
h1{font-size:clamp(42px,7vw,76px);letter-spacing:-.055em;line-height:.92;margin:0 0 18px}h2{margin:0;font-size:26px}.lead{font-size:18px;line-height:1.55;color:#595959}
.notice{background:#fff9dc;border:1px solid #eadc96;padding:15px 17px;border-radius:14px;line-height:1.5;margin-bottom:18px}
.pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cat-card,.confirm-card,.reference-panel{background:white;border:1px solid #ddd8ce;border-radius:20px;padding:20px;box-shadow:0 18px 55px rgba(0,0,0,.06)}
.card-title{display:flex;gap:12px;align-items:center;margin-bottom:16px}.card-title p{margin:4px 0 0;color:#747474}.sex{font-size:34px;font-weight:800}
.cat-image{width:100%;height:360px;object-fit:contain;background:#fafafa;border-radius:14px;margin-bottom:14px}
.cat-summary{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.cat-summary strong{font-size:22px}.cat-summary span{color:#555}.reroll{font-size:13px;color:#777}
.creator{display:flex;flex-direction:column;gap:13px;margin-top:16px}label{font-weight:800;font-size:13px}input,select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #d5d0c6;border-radius:10px;background:white;font:inherit}
button,.enter{display:inline-block;border:0;border-radius:11px;background:#171717;color:#fff;padding:13px 16px;font:inherit;font-weight:850;cursor:pointer;text-decoration:none}.confirm{background:#185f43}
.confirm-card{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;margin-top:18px}.confirm-card p{color:#606060;line-height:1.45}.enter{background:#2d6b50}
.reference-panel{display:grid;grid-template-columns:1fr 380px;gap:22px;align-items:center;margin-top:18px}.reference-panel img{width:100%;border-radius:14px}
@media(max-width:800px){.pair-grid,.reference-panel,.confirm-card{grid-template-columns:1fr}.cat-image{height:300px}}

.error-banner{
  background:#fff1ef;border:1px solid #e7a79e;color:#8b2319;
  padding:15px 17px;border-radius:14px;margin:0 0 18px;
  display:flex;flex-direction:column;gap:5px;line-height:1.45
}
.error-banner strong{font-size:15px}
.error-banner span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;word-break:break-word}

.hidden{display:none!important}
.breeding-card,.cattery-section{
  background:#fff;border:1px solid #ddd8ce;border-radius:20px;padding:20px;
  box-shadow:0 18px 55px rgba(0,0,0,.06);margin-top:18px
}
.breeding-card{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.breeding-card p{color:#626262;line-height:1.5;max-width:760px}
.cross-note{background:#fff5d8;border:1px solid #ead898;border-radius:10px;padding:10px 12px;color:#6d5312!important}
.pregnancy-status{
  margin-top:14px;padding:14px;border-radius:13px;background:#fff3f6;border:1px solid #e9bac7;
  display:flex;flex-direction:column;gap:6px
}
.pregnancy-status strong{font-size:16px}
.pregnancy-status span{color:#70515a;font-size:13px}
.countdown{font-size:32px;font-weight:900;letter-spacing:-.04em;margin-top:2px}
.progress-track{height:8px;border-radius:999px;background:#eadfe2;overflow:hidden;margin-top:5px}
.progress-fill{height:100%;width:0;background:#171717;transition:width .45s linear}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}
.cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.collection-card{border:1px solid #e0ddd5;border-radius:16px;overflow:hidden;background:#fafafa}
.collection-card img{width:100%;height:240px;object-fit:contain;background:white;display:block}
.collection-body{padding:13px;display:flex;flex-direction:column;gap:5px}
.cat-name-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cat-name-row strong{font-size:18px}
.stage-pill{font-size:10px;text-transform:uppercase;letter-spacing:.12em;background:#e9e7e0;padding:5px 7px;border-radius:999px}
.muted{font-size:12px;color:#777}
.reset-form{margin-top:18px;text-align:right}
.secondary{background:#6d6a64}
button:disabled{opacity:.55;cursor:wait}
@media(max-width:900px){
  .cat-grid{grid-template-columns:1fr 1fr}
  .breeding-card{grid-template-columns:1fr}
}
@media(max-width:600px){.cat-grid{grid-template-columns:1fr}}

.growth-box{
  margin-top:9px;padding:10px;border-radius:11px;
  border:1px solid #ddd8ce;background:#fff
}
.growth-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.growth-row strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.growth-timer{font-size:16px;font-weight:900}
.growth-copy{display:block;margin-top:7px;line-height:1.35}

.topnav{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #dedbd2;padding:13px max(20px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center}
.brand{font-weight:950;letter-spacing:.18em;text-decoration:none;color:#171717}.navlinks{display:flex;gap:16px;align-items:center}.navlinks a{text-decoration:none;color:#333;font-weight:700;font-size:14px}.wallet{background:#f2efe8;padding:8px 11px;border-radius:999px;font-weight:800}.linkbutton{background:none;color:#555;padding:0}
.messages{display:grid;gap:8px;margin-bottom:16px}.message{padding:11px 14px;border-radius:12px;background:#fff;border:1px solid #ddd}.message.success{background:#eef8f0;border-color:#a8d0b0}.message.error,.message.warning{background:#fff0ed;border-color:#e5aaa1}
.auth-card{max-width:580px;margin:40px auto;background:#fff;border:1px solid #ddd8ce;border-radius:20px;padding:26px;box-shadow:0 18px 55px rgba(0,0,0,.06)}
.stack-form p{display:flex;flex-direction:column;gap:6px}.stack-form ul{font-size:12px;color:#777}.stack-form input{width:100%;padding:12px;border:1px solid #d5d0c6;border-radius:10px}
.profile-hero{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.profile-actions{display:flex;gap:10px}.button{display:inline-block;background:#171717;color:#fff;border-radius:11px;padding:12px 15px;text-decoration:none;font-weight:800}.button.secondary{background:#65615b}
.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.stats-strip>div{background:#fff;border:1px solid #ddd8ce;border-radius:16px;padding:17px;display:flex;flex-direction:column}.stats-strip strong{font-size:30px}.stats-strip span{color:#777}
.two-col{display:grid;grid-template-columns:2fr 1fr;gap:18px}.two-col aside{display:grid;gap:18px;align-content:start}.panel-card{background:#fff;border:1px solid #ddd8ce;border-radius:18px;padding:18px}
.mini-cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-cat{display:grid;grid-template-columns:110px 1fr;gap:12px;border:1px solid #e1ddd4;border-radius:14px;overflow:hidden}.mini-cat img{width:110px;height:100px;object-fit:contain;background:#fafafa}.mini-cat div{display:flex;flex-direction:column;justify-content:center;gap:3px}.mini-cat span{font-size:12px;color:#666}
.friend-list,.inventory-list{display:grid;gap:8px;margin:12px 0}.friend-list a,.inventory-list div{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid #eee;text-decoration:none;color:#222}.friend-list span{color:#777}
.hero.compact h1{font-size:clamp(40px,6vw,68px)}.market-section{background:#fff;border:1px solid #ddd8ce;border-radius:20px;padding:20px;margin-top:18px}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.product-card{border:1px solid #dfdbd1;border-radius:14px;padding:15px;display:flex;flex-direction:column;justify-content:space-between;gap:13px}.product-card h3{margin:5px 0}.product-card p{color:#666;line-height:1.45}.product-type{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#777}.boosts{display:flex;flex-wrap:wrap;gap:6px}.boosts span{font-size:11px;background:#f0eee8;padding:5px 7px;border-radius:999px}.buy-row,.sell-row,.rename-row,.feed-row,.care-actions,.breeding-controls{display:flex;gap:8px;align-items:center}.buy-row input,.sell-row input,.rename-row input{max-width:100px}.sell-list{display:grid;gap:9px}.sell-row{justify-content:space-between;border-bottom:1px solid #eee;padding:10px 0}.sell-row form{display:flex;gap:8px}
.breeding-controls{flex-wrap:wrap}.breeding-controls select{min-width:210px}.care-card .collection-body{gap:8px}.bars{display:grid;gap:8px;margin:5px 0}.barline{display:grid;grid-template-columns:1fr auto;gap:5px;font-size:11px}.meter{grid-column:1/-1;height:7px;background:#e7e3dc;border-radius:999px;overflow:hidden}.meter i{display:block;height:100%;background:#171717}.care-actions form{flex:1}.care-actions button{width:100%}.feed-row select{flex:1}.small-button{padding:8px 10px}.danger-outline{width:100%;background:#fff;color:#8a3229;border:1px solid #d9a8a2}.listed-badge{display:inline-block;background:#fff5d8;color:#6d5312;padding:8px;border-radius:9px;font-size:12px;font-weight:800}
@media(max-width:900px){.two-col,.product-grid{grid-template-columns:1fr}.mini-cat-grid{grid-template-columns:1fr}.topnav{position:static;align-items:flex-start}.navlinks{flex-wrap:wrap;justify-content:flex-end}.profile-hero{align-items:flex-start}.stats-strip{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.topnav,.profile-hero{flex-direction:column}.stats-strip{grid-template-columns:1fr}.buy-row,.sell-row,.rename-row,.feed-row,.breeding-controls{align-items:stretch;flex-direction:column}.sell-row form{width:100%}}

.breed-list{display:grid;gap:8px;margin-top:12px}
.breed-list a{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:#222;border:1px solid #e1ddd4;border-radius:12px;padding:12px}
.breed-list span{font-size:12px;color:#777}
.breed-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.breed-card{border:1px solid #dfdbd1;border-radius:15px;padding:15px;display:flex;flex-direction:column;gap:12px}
.breed-card h3{font-size:22px;margin:7px 0 2px}
.seed-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.seed-preview img{width:100%;height:130px;object-fit:contain;background:#fafafa;border-radius:10px}
.genetics-details{margin-top:12px;border-top:1px solid #eee;padding-top:10px}
.genetics-details summary{cursor:pointer;font-weight:800;font-size:13px}
.genetics-details pre{white-space:pre-wrap;word-break:break-word;background:#f5f3ee;padding:10px;border-radius:10px;font-size:11px;max-height:260px;overflow:auto}
@media(max-width:900px){.breed-card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.breed-card-grid{grid-template-columns:1fr}}

.cat-profile-image{width:100%;max-height:520px;object-fit:contain;background:#fff;border-radius:14px}
.cat-tools{display:flex;align-items:center;gap:8px}.kebab{position:relative}.kebab summary{list-style:none;cursor:pointer;font-size:26px;line-height:1;width:34px;height:30px;display:grid;place-items:center;border-radius:8px;background:#f1efe9}.kebab summary::-webkit-details-marker{display:none}.kebab-menu{position:absolute;right:0;top:36px;z-index:20;width:230px;background:#fff;border:1px solid #ddd8ce;border-radius:12px;padding:10px;box-shadow:0 15px 45px rgba(0,0,0,.15);display:grid;gap:9px}.kebab-menu form{display:grid;gap:6px}.kebab-menu a{color:#222;text-decoration:none;font-weight:700;padding:7px}.menu-danger{background:#fff;color:#8a3229;border:1px solid #d9a8a2}.rotation-clock{font-size:13px;color:#666;background:#f4f1eb;border-radius:999px;padding:8px 12px}.ancestor-node{border-left:2px solid #dedbd2;padding-left:10px;margin:7px 0}.ancestor-main{display:flex;flex-direction:column;gap:2px}.ancestor-main span{font-size:11px;color:#666}.ancestor-parents{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:7px}.ancestor-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#999}.ancestor-missing{font-size:11px;color:#aaa;padding:6px;border:1px dashed #ddd;border-radius:8px}

.standard-breed-image-wrap{width:100%;aspect-ratio:4/3;background:#fff;border:1px solid #eee9df;border-radius:12px;overflow:hidden;display:grid;place-items:center}
.standard-breed-image{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.standard-breed-placeholder{padding:18px;text-align:center;color:#999;font-size:12px;background:#fff;width:100%;height:100%;display:grid;place-items:center}
#breed-image-progress{margin:8px 0 14px}


/* Felidex breed overview portrait sizing */
.breed-card .standard-breed-image-wrap{
  width:100%;
  height:190px;
  aspect-ratio:auto;
  background:#fff;
  border:1px solid #eee9df;
  border-radius:12px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
}

.breed-card .standard-breed-image{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  background:#fff;
}

.breed-card .standard-breed-placeholder{
  width:100%;
  height:100%;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

@media(max-width:900px){
  .breed-card .standard-breed-image-wrap{height:170px}
}

@media(max-width:620px){
  .breed-card .standard-breed-image-wrap{height:210px}
}

/* Final hard containment for breed overview cards */
.breed-card{min-width:0;overflow:hidden}
.breed-card .standard-breed-image-wrap{box-sizing:border-box!important;width:100%!important;height:180px!important;max-width:100%!important;overflow:hidden!important}
.breed-card img.standard-breed-image{box-sizing:border-box!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important}

.shop-cat-image-wrap{box-sizing:border-box;width:100%;max-width:100%;overflow:hidden}
.shop-cat-image-wrap img{max-width:100%!important;max-height:100%!important;object-fit:contain!important}
.shop-cat-generating{font-size:12px;color:#888;padding:20px;text-align:center}
.shop-buy-form button:disabled{opacity:.45;cursor:wait}

.landing-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:20px;align-items:stretch;margin-bottom:20px}
.landing-copy,.landing-feature-card,.front-breed-section{background:#fff;border:1px solid #ddd8ce;border-radius:22px;box-shadow:0 18px 55px rgba(0,0,0,.055)}
.landing-copy{padding:34px}.landing-copy h1{font-size:clamp(48px,7vw,84px);line-height:.9;letter-spacing:-.055em;margin:0 0 22px}
.landing-slogan{font-size:clamp(21px,2.6vw,30px);line-height:1.2;font-weight:850;max-width:760px;margin:0 0 16px}
.landing-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.landing-feature-card{padding:26px}.feature-list{display:grid;gap:0;margin-top:12px}
.feature-list>div{display:grid;gap:4px;padding:15px 0;border-bottom:1px solid #eeeae1}.feature-list>div:last-child{border-bottom:0}
.feature-list strong{font-size:18px}.feature-list span{color:#666;line-height:1.45}
.front-breed-section{padding:24px;margin-top:20px}.front-breed-heading{align-items:flex-end}
.front-breed-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}
.front-breed-card{min-width:0;overflow:hidden;border:1px solid #e0ddd5;border-radius:16px;background:#fafafa}
.front-breed-image-wrap{height:165px;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px;background:#fff;border-bottom:1px solid #eee}
.front-breed-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:#fff}
.front-breed-placeholder{color:#999;font-size:12px;text-align:center}
.front-breed-body{padding:13px;display:flex;flex-direction:column;gap:7px}.front-breed-body h3{margin:0;font-size:18px}
@media(max-width:1000px){.front-breed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.landing-hero{grid-template-columns:1fr}.front-breed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.landing-copy{padding:24px}.front-breed-grid{grid-template-columns:1fr}}

.pedigree-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:4px;
  padding:8px 10px;
  border:1px solid #ded9cf;
  border-radius:9px;
  background:#f7f5f0;
  color:#222;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
.pedigree-link:hover{background:#efede6}


/* Felidex cat shows */
.show-how{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.show-how>div{background:#fff;border:1px solid #ddd8ce;border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:3px}
.show-how strong{font-size:18px}.show-how span{font-size:12px;color:#777}
.show-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.show-card{border:1px solid #ded9cf;border-radius:15px;background:#faf9f6;padding:16px;display:flex;flex-direction:column;gap:9px}
.show-card h3{font-size:22px;margin:0}.show-card p{margin:0;color:#666;line-height:1.4}
.my-vote-note{background:#edf7ef!important;color:#356243!important;padding:9px;border-radius:9px;font-size:12px}
.show-winner-image{width:100%;height:180px;object-fit:contain;background:#fff;border-radius:10px}
.privacy-note{background:#f5f2ea;border:1px solid #ddd8ce;border-radius:13px;padding:13px;margin:0 0 16px}
.show-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.show-entry-card{background:#fff;border:1px solid #ded9cf;border-radius:16px;overflow:hidden}
.show-entry-card.picked{border:2px solid #528968}
.show-entry-card>img{width:100%;height:240px;object-fit:contain;background:#fff;padding:8px}
.show-entry-body{padding:13px;display:flex;flex-direction:column;gap:7px}
.show-entry-body strong{font-size:19px}.selected-vote{background:#3d7657}
.winner-panel{display:grid;grid-template-columns:auto 1fr 320px;gap:20px;align-items:center;background:#fff;border:1px solid #ddd8ce;border-radius:20px;padding:22px}
.winner-panel img{width:100%;height:230px;object-fit:contain;background:#fff}
.ribbon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:white;font-size:23px;font-weight:900;position:relative;box-shadow:inset 0 0 0 5px rgba(255,255,255,.3)}
.ribbon:before,.ribbon:after{content:"";position:absolute;bottom:-21px;width:19px;height:29px;clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%)}
.ribbon:before{left:8px}.ribbon:after{right:8px}
.ribbon.red,.ribbon.red:before,.ribbon.red:after{background:#b52b35}
.ribbon.gold,.ribbon.gold:before,.ribbon.gold:after{background:#b88a19}
.audition-cat-image{width:240px;height:150px;object-fit:contain;background:#fff;border-radius:14px;border:1px solid #ddd8ce}
.empty-show-state{padding:22px;border:1px dashed #d9d2c6;border-radius:14px}
.show-achievement-panel{margin-top:18px}
.show-progress-number{font-size:34px;font-weight:900}
.show-progress-track{height:10px;background:#e8e4dc;border-radius:999px;overflow:hidden;margin:12px 0 18px}
.show-progress-track i{display:block;height:100%;background:#3e7557}
.achievement-stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.achievement-stage{border:1px solid #ded9cf;border-radius:13px;padding:12px;display:flex;flex-direction:column;gap:4px;opacity:.55}
.achievement-stage.earned{opacity:1;background:#f0f8f2;border-color:#a8cbb3}
.achievement-check{font-size:21px;font-weight:900}.achievement-stage span,.achievement-stage small{font-size:11px;color:#666}
.award-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.award-card{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;border:1px solid #ded9cf;border-radius:14px;padding:14px}
.award-card>div:last-child{display:flex;flex-direction:column;gap:4px}.award-card span,.award-card small{color:#666;font-size:12px}

@media(max-width:900px){
  .show-how{grid-template-columns:1fr 1fr}
  .show-grid,.show-entry-grid{grid-template-columns:1fr 1fr}
  .achievement-stage-grid{grid-template-columns:repeat(2,1fr)}
  .winner-panel{grid-template-columns:auto 1fr}.winner-panel img{grid-column:1/-1}
}
@media(max-width:620px){
  .show-how,.show-grid,.show-entry-grid,.award-grid,.achievement-stage-grid{grid-template-columns:1fr}
  .audition-cat-image{width:100%}
}

/* =========================================================
   Felidex start page: real catio photo background
   ========================================================= */
.home-catio-scene{
  position:relative;
  isolation:isolate;
  min-height:100vh;
  padding-top:8px;
}

.catio-scene-backdrop{
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  background:
    linear-gradient(rgba(245,240,231,.40), rgba(245,240,231,.52)),
    url("/static/generator/home_catio_background.png") center center / cover no-repeat;
}

.catio-sky,
.catio-frame,
.catio-shelf,
.catio-ramp,
.catio-plant,
.catio-floor{
  display:none !important;
}

body{
  background:#eee7da;
}

main{
  position:relative;
}

.home-catio-scene .landing-copy,
.home-catio-scene .landing-feature-card,
.home-catio-scene .front-breed-section{
  backdrop-filter: blur(2px);
  background:rgba(255,255,255,.92);
  border-color:#d5ccbc;
  box-shadow:0 18px 60px rgba(0,0,0,.11);
}

@media (max-width: 680px){
  .catio-scene-backdrop{
    background:
      linear-gradient(rgba(245,240,231,.50), rgba(245,240,231,.60)),
      url("/static/generator/home_catio_background.png") center center / cover no-repeat;
  }
}


/* =========================================================
   Felidex front page - full catio photo design
   ========================================================= */
.home-catio-scene{
  color:#1f251d;
}

.home-catio-scene::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(180deg, rgba(253,249,241,.28), rgba(249,244,233,.42)),
    linear-gradient(90deg, rgba(19,27,18,.08), rgba(255,255,255,0) 32%, rgba(20,29,18,.06) 100%);
  pointer-events:none;
}

.home-catio-scene .landing-hero{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(320px,.75fr);
  gap:22px;
  align-items:stretch;
  margin-bottom:22px;
}

.home-catio-scene .landing-copy,
.home-catio-scene .landing-feature-card,
.home-catio-scene .catio-section{
  background:linear-gradient(180deg, rgba(255,252,246,.90), rgba(252,247,237,.88));
  border:1px solid rgba(132,106,72,.24);
  border-radius:28px;
  box-shadow:
    0 18px 60px rgba(58,40,20,.14),
    inset 0 1px 0 rgba(255,255,255,.55);
  backdrop-filter: blur(5px);
  overflow:hidden;
  position:relative;
}

.home-catio-scene .landing-copy::before,
.home-catio-scene .landing-feature-card::before,
.home-catio-scene .catio-section::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:10px;
  background:linear-gradient(90deg,#9b6a39,#c79457,#7a9b59,#587f49);
  opacity:.9;
}

.home-catio-scene .landing-copy{
  padding:36px 38px 34px;
}

.home-catio-scene .landing-copy h1{
  color:#1d2119;
  font-size:clamp(48px,7vw,86px);
  line-height:.92;
  letter-spacing:-.055em;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
  margin:0 0 20px;
}

.home-catio-scene .landing-slogan{
  color:#32412f;
  font-size:clamp(22px,2.7vw,31px);
  font-weight:900;
  line-height:1.2;
  margin:0 0 14px;
}

.home-catio-scene .lead{
  color:#5a6052;
  line-height:1.55;
  max-width:900px;
}

.home-catio-scene .eyebrow{
  color:#5a6b48;
  letter-spacing:.22em;
  font-weight:900;
}

.catio-intro-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:20px 0 18px;
}

.catio-intro-card{
  border:1px solid rgba(123,101,69,.18);
  border-radius:18px;
  background:rgba(255,255,255,.48);
  padding:14px 14px 12px;
  display:flex;
  flex-direction:column;
  gap:5px;
}

.catio-intro-card strong{
  font-size:16px;
  color:#40301f;
}

.catio-intro-card span{
  color:#676253;
  font-size:13px;
  line-height:1.4;
}

.catio-mood-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:4px 0 18px;
}

.catio-mood-strip span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(116,152,89,.14);
  border:1px solid rgba(108,140,82,.18);
  color:#405038;
  font-size:12px;
  font-weight:800;
}

.home-catio-scene .landing-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:6px;
}

.home-catio-scene .button,
.home-catio-scene button{
  border:none;
  border-radius:16px;
  padding:13px 18px;
  background:linear-gradient(180deg,#6f8d51,#4e6e3c);
  color:#fff;
  box-shadow:0 10px 22px rgba(79,110,60,.24);
}

.home-catio-scene .button.secondary{
  background:linear-gradient(180deg,#b98751,#9a6f44);
  box-shadow:0 10px 22px rgba(154,111,68,.2);
}

.home-catio-scene .landing-feature-card{
  padding:28px 28px 24px;
}

.home-catio-scene .landing-feature-card .feature-list{
  display:grid;
  gap:12px;
  margin-top:14px;
}

.home-catio-scene .landing-feature-card .feature-list>div{
  border:1px solid rgba(123,101,69,.16);
  border-radius:18px;
  background:rgba(255,255,255,.52);
  padding:14px 14px 12px;
  display:grid;
  gap:4px;
}

.home-catio-scene .landing-feature-card strong{
  color:#3d2d1f;
  font-size:17px;
}

.home-catio-scene .landing-feature-card span{
  color:#676253;
  line-height:1.45;
}

.home-catio-scene .catio-section{
  padding:24px;
  margin-top:20px;
}

.home-catio-scene .front-breed-heading h2,
.home-catio-scene .section-heading h2{
  color:#241f17;
  font-size:clamp(28px,3vw,40px);
}

.home-catio-scene .muted{
  color:#6a6658;
}

.home-catio-scene .front-breed-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:18px;
}

.home-catio-scene .front-breed-card{
  border:1px solid rgba(128,103,73,.16);
  border-radius:22px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(248,243,234,.92));
  box-shadow:0 10px 24px rgba(55,37,21,.07);
}

.home-catio-scene .front-breed-image-wrap{
  height:182px;
  padding:14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,243,235,.96));
  border-bottom:1px solid rgba(132,106,72,.12);
}

.home-catio-scene .front-breed-image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.05));
}

.home-catio-scene .front-breed-placeholder{
  color:#7c7868;
  font-weight:700;
}

.home-catio-scene .front-breed-body{
  padding:14px 14px 16px;
  display:flex;
  flex-direction:column;
  gap:7px;
}

.home-catio-scene .front-breed-body h3{
  margin:0;
  font-size:19px;
  color:#2d2419;
}

.home-catio-scene .stage-pill{
  align-self:flex-start;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:900;
  background:rgba(113,143,85,.14);
  color:#49613d;
  border:1px solid rgba(102,130,77,.14);
}

.home-catio-scene .breed-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.home-catio-scene .breed-card{
  border:1px solid rgba(128,103,73,.16);
  border-radius:20px;
  background:rgba(255,255,255,.7);
  padding:14px;
  box-shadow:0 10px 24px rgba(55,37,21,.07);
}

.home-catio-scene .seed-preview{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:12px;
}

.home-catio-scene .seed-preview img{
  width:100%;
  height:130px;
  object-fit:contain;
  background:#fff;
  border-radius:14px;
  padding:8px;
  border:1px solid rgba(128,103,73,.1);
}

.home-catio-scene .brand{
  color:#ffffff;
}

.home-catio-scene nav,
.home-catio-scene header.site-header,
.home-catio-scene .site-header{
  backdrop-filter: blur(6px);
}

@media(max-width:1000px){
  .home-catio-scene .front-breed-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .home-catio-scene .breed-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:860px){
  .home-catio-scene .landing-hero{
    grid-template-columns:1fr;
  }
  .catio-intro-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:720px){
  .home-catio-scene .front-breed-grid,
  .home-catio-scene .breed-card-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:520px){
  .home-catio-scene .landing-copy{
    padding:28px 22px 24px;
  }
  .home-catio-scene .front-breed-grid,
  .home-catio-scene .breed-card-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   Theme override: requested brown accent #644e39
   ========================================================= */
:root{
  --catio-brown:#644e39;
  --catio-brown-dark:#4f3d2c;
  --catio-brown-light:#7a6046;
  --catio-brown-soft:#8a6d50;
}

.home-catio-scene .landing-copy::before,
.home-catio-scene .landing-feature-card::before,
.home-catio-scene .catio-section::before{
  background:linear-gradient(90deg, var(--catio-brown) 0%, var(--catio-brown-light) 40%, var(--catio-brown) 100%);
}

.home-catio-scene .button,
.home-catio-scene button{
  background:linear-gradient(180deg, var(--catio-brown-light), var(--catio-brown));
  box-shadow:0 10px 22px rgba(100,78,57,.24);
}

.home-catio-scene .button:hover,
.home-catio-scene button:hover{
  background:linear-gradient(180deg, var(--catio-brown-soft), var(--catio-brown-dark));
}

.home-catio-scene .button.secondary{
  background:linear-gradient(180deg, #8a6d50, var(--catio-brown));
  box-shadow:0 10px 22px rgba(100,78,57,.22);
}

.home-catio-scene .button.secondary:hover{
  background:linear-gradient(180deg, #947559, var(--catio-brown-dark));
}

.home-catio-scene .eyebrow{
  color:var(--catio-brown);
}

.home-catio-scene .landing-slogan{
  color:var(--catio-brown-dark);
}

.home-catio-scene .stage-pill{
  background:rgba(100,78,57,.12);
  color:var(--catio-brown);
  border:1px solid rgba(100,78,57,.14);
}

.catio-mood-strip span{
  background:rgba(100,78,57,.10);
  border:1px solid rgba(100,78,57,.16);
  color:var(--catio-brown);
}

.home-catio-scene .front-breed-card,
.home-catio-scene .breed-card,
.catio-intro-card,
.home-catio-scene .landing-feature-card .feature-list>div{
  border-color:rgba(100,78,57,.16);
}


/* =========================================================
   Felidex site-wide visual system
   The photo background remains ONLY on the index/home page.
   ========================================================= */
:root{
  --cv-brown:#644e39;
  --cv-brown-dark:#4d3b2a;
  --cv-brown-mid:#786047;
  --cv-brown-light:#9a8065;
  --cv-cream:#f3eee5;
  --cv-cream-light:#fbf8f3;
  --cv-cream-deep:#e7ded1;
  --cv-ink:#241f1a;
  --cv-muted:#6f685f;
  --cv-line:#d8cdbf;
  --cv-green:#71845d;
  --cv-shadow:0 16px 44px rgba(76,57,39,.08);
}

/* All non-home pages use a calm neutral background, never the catio photo. */
body{
  background:
    radial-gradient(circle at top left, rgba(100,78,57,.035), transparent 30%),
    linear-gradient(180deg,#f6f2eb 0%,#eee7dc 100%);
  color:var(--cv-ink);
}

/* The actual photo remains scoped to the public home/index page only. */
.home-catio-scene .catio-scene-backdrop{
  display:block;
}

/* Global navigation */
.topnav{
  background:rgba(251,248,243,.96);
  border-bottom:1px solid var(--cv-line);
  box-shadow:0 6px 24px rgba(77,59,42,.05);
  backdrop-filter:blur(12px);
}

.brand{
  color:var(--cv-brown)!important;
  letter-spacing:.15em;
}

.navlinks a{
  color:var(--cv-brown-dark);
  border-radius:10px;
  padding:7px 9px;
}

.navlinks a:hover{
  background:rgba(100,78,57,.08);
}

.wallet{
  background:rgba(100,78,57,.10);
  color:var(--cv-brown);
  border:1px solid rgba(100,78,57,.10);
}

.linkbutton{
  color:var(--cv-brown)!important;
}

/* Site-wide cards and sections */
.cat-card,
.confirm-card,
.reference-panel,
.panel-card,
.market-section,
.cattery-section,
.breeding-card,
.auth-card,
.show-card,
.show-entry-card,
.winner-panel,
.product-card,
.collection-card,
.profile-hero,
.stats-strip>div{
  background:rgba(255,252,247,.95);
  border-color:var(--cv-line);
  box-shadow:var(--cv-shadow);
}

.cat-card,
.confirm-card,
.reference-panel,
.panel-card,
.market-section,
.cattery-section,
.breeding-card,
.auth-card,
.winner-panel{
  border-radius:22px;
}

.collection-card,
.product-card,
.show-card,
.show-entry-card{
  border-radius:17px;
}

.hero h1,
.profile-hero h1,
.auth-card h1,
.market-section h2,
.panel-card h2,
.cattery-section h2,
.breeding-card h2,
.show-card h3{
  color:var(--cv-ink);
}

.eyebrow{
  color:var(--cv-brown)!important;
}

.lead,
.muted,
.product-card p,
.breeding-card p,
.confirm-card p{
  color:var(--cv-muted);
}

/* Buttons across all pages */
button,
.button,
.enter,
.confirm{
  background:linear-gradient(180deg,var(--cv-brown-mid),var(--cv-brown));
  color:#fff;
  border:none;
  border-radius:13px;
  box-shadow:0 8px 20px rgba(100,78,57,.16);
}

button:hover,
.button:hover,
.enter:hover,
.confirm:hover{
  background:linear-gradient(180deg,#83694f,var(--cv-brown-dark));
}

button.secondary,
.button.secondary,
.secondary{
  background:linear-gradient(180deg,#8f775f,#705941);
  color:#fff;
}

button:disabled{
  opacity:.5;
}

/* Forms */
input,
select,
textarea{
  background:#fffdf9;
  border:1px solid var(--cv-line)!important;
  color:var(--cv-ink);
  border-radius:11px;
}

input:focus,
select:focus,
textarea:focus{
  outline:2px solid rgba(100,78,57,.18);
  border-color:var(--cv-brown)!important;
}

/* Small UI elements */
.stage-pill,
.product-type,
.wallet,
.pedigree-link,
.growth-box,
.pregnancy-status{
  border-color:rgba(100,78,57,.14);
}

.stage-pill{
  background:rgba(100,78,57,.10)!important;
  color:var(--cv-brown)!important;
}

.pedigree-link{
  background:rgba(100,78,57,.07);
  color:var(--cv-brown);
}

.pedigree-link:hover{
  background:rgba(100,78,57,.12);
}

.kebab summary{
  background:rgba(100,78,57,.09);
  color:var(--cv-brown);
}

.kebab-menu{
  background:#fffdf9;
  border-color:var(--cv-line);
}

.progress-fill,
.meter i,
.show-progress-track i{
  background:var(--cv-brown)!important;
}

/* Profile */
.stats-strip>div{
  border-radius:18px;
}

.friend-list a,
.inventory-list div{
  border-bottom-color:#ece4da;
}

.mini-cat,
.sell-row,
.breed-list a,
.award-card,
.achievement-stage{
  border-color:var(--cv-line);
}

.achievement-stage.earned{
  background:#f4eee6;
  border-color:#c9b9a7;
}

/* Marketplace */
.product-card,
.collection-card,
.breed-card{
  background:linear-gradient(180deg,#fffdf9,#f8f2e9);
}

.boosts span{
  background:#eee4d8;
  color:var(--cv-brown-dark);
}

.rotation-clock{
  background:#eee4d8;
  color:var(--cv-brown-dark);
}

/* Cattery care bars */
.meter{
  background:#e5dbcf;
}

.danger-outline,
.menu-danger{
  background:#fffaf7!important;
  color:#9a4d43!important;
  border:1px solid #d9b9b2!important;
}

/* Shows */
.show-how>div{
  background:rgba(255,252,247,.95);
  border-color:var(--cv-line);
  box-shadow:0 8px 22px rgba(76,57,39,.05);
}

.privacy-note{
  background:#f4ede4;
  border-color:var(--cv-line);
  color:var(--cv-brown-dark);
}

.my-vote-note{
  background:#f3ede4!important;
  color:var(--cv-brown-dark)!important;
}

.show-entry-card.picked{
  border-color:var(--cv-brown);
}

.selected-vote{
  background:var(--cv-brown)!important;
}

/* Breed registry */
.breed-card{
  border-color:var(--cv-line);
  box-shadow:0 10px 26px rgba(76,57,39,.06);
}

.standard-breed-image-wrap,
.front-breed-image-wrap,
.seed-preview img,
.cat-image,
.collection-card img,
.show-entry-card>img,
.show-winner-image,
.cat-profile-image{
  background:#fff;
}

/* Alerts/messages */
.notice{
  background:#f5eddf;
  border-color:#d7c6ae;
  color:#5c4937;
}

.message.success{
  background:#f0eee4;
  border-color:#c9bca9;
}

.message.error,
.message.warning,
.error-banner{
  background:#fff1ed;
}

/* Home page remains special and keeps the photo */
.home-catio-scene{
  color:#1f251d;
}

/* Prevent photo from leaking to every page through old fixed layers */
body > .catio-scene-backdrop{
  display:none;
}

.home-catio-scene .catio-scene-backdrop{
  display:block;
}

/* Slightly more spacious content across site */
.shell{
  width:min(1220px,calc(100% - 28px));
}

@media(max-width:700px){
  .navlinks{
    gap:8px;
  }
}


/* =========================================================
   Global catio photo background
   ========================================================= */
body{
  background:
    linear-gradient(rgba(245,240,231,.66), rgba(245,240,231,.76)),
    url("/static/generator/home_catio_background.png") center center / cover fixed no-repeat !important;
  color:var(--cv-ink);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  background:rgba(255,248,238,.06);
}

/* Keep all content readable over the photograph */
.topnav{
  background:rgba(251,248,243,.94)!important;
  backdrop-filter:blur(12px);
}

.cat-card,
.confirm-card,
.reference-panel,
.panel-card,
.market-section,
.cattery-section,
.breeding-card,
.auth-card,
.show-card,
.show-entry-card,
.winner-panel,
.product-card,
.collection-card,
.stats-strip>div,
.profile-hero,
.front-breed-section,
.landing-copy,
.landing-feature-card{
  background:rgba(255,252,247,.92)!important;
  backdrop-filter:blur(5px);
}

/* The old home-only background layer is unnecessary now. */
.catio-scene-backdrop{
  display:none!important;
}

@media(max-width:680px){
  body{
    background:
      linear-gradient(rgba(245,240,231,.52), rgba(245,240,231,.60)),
      url("/static/generator/home_catio_background.png") center center / cover fixed no-repeat !important;
  }
}


/* =========================================================
   Readability + image presentation refinements
   ========================================================= */

/* Slightly stronger warm overlay for better text readability on the photo background */
body{
  background:
    linear-gradient(rgba(245,240,231,.52), rgba(245,240,231,.60)),
    url("/static/generator/home_catio_background.png") center center / cover fixed no-repeat !important;
}

/* Remove any CSS-added shadows/filters from cat images */
.cat-image,
.collection-card img,
.mini-cat img,
.cat-profile-image,
.front-breed-image,
.seed-preview img,
.show-entry-card > img,
.show-winner-image,
.winner-panel img,
.audition-cat-image,
.standard-breed-image,
.standard-breed-image-wrap img,
.front-breed-image-wrap img,
.reference-panel img{
  filter:none !important;
  box-shadow:none !important;
}

/* Keep image tiles clean and flat */
.collection-card img,
.mini-cat img,
.cat-image,
.cat-profile-image,
.front-breed-image,
.seed-preview img,
.show-entry-card > img,
.show-winner-image,
.winner-panel img,
.audition-cat-image{
  background:#ffffff !important;
}

/* Profile hero should sit directly on the background rather than inside a card */
.profile-hero{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
  margin:4px 0 20px;
  padding:10px 8px 18px;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  overflow:hidden;
}

.profile-hero::before{
  content:"";
  position:absolute;
  inset:-10px -12px -8px -12px;
  background:
    linear-gradient(90deg,
      rgba(250,246,239,.94) 0%,
      rgba(250,246,239,.82) 33%,
      rgba(250,246,239,.56) 56%,
      rgba(250,246,239,.20) 76%,
      rgba(250,246,239,0) 100%);
  border-radius:28px;
  z-index:0;
  pointer-events:none;
}

.profile-hero > *{
  position:relative;
  z-index:1;
}

.profile-hero .eyebrow{
  color:#644e39 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}

.profile-hero h1{
  color:#17120e;
  text-shadow:
    0 2px 0 rgba(255,255,255,.45),
    0 10px 24px rgba(0,0,0,.06);
  margin-bottom:8px;
}

.profile-hero .lead{
  color:#5f5347;
  font-weight:600;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
  max-width:900px;
}

.profile-actions{
  position:relative;
  z-index:1;
}

/* Profile summary cards stay readable but slightly lighter */
.stats-strip > div,
.panel-card,
.market-section,
.cattery-section,
.breeding-card,
.auth-card,
.show-card,
.show-entry-card,
.winner-panel,
.product-card,
.collection-card{
  background:rgba(255,252,247,.90) !important;
}

/* Improve contrast of large headers on pages with the photo background */
.hero h1,
.hero .lead,
.section-heading h2,
.market-section h2,
.cattery-section h2,
.panel-card h2{
  position:relative;
  z-index:1;
}

.hero h1{
  color:#17120e;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}

.hero .lead{
  color:#5f5347;
  font-weight:550;
}

/* Mobile: keep the profile text readable */
@media(max-width:760px){
  .profile-hero{
    align-items:start;
    flex-direction:column;
  }

  .profile-hero::before{
    inset:-8px;
    background:
      linear-gradient(180deg,
        rgba(250,246,239,.94) 0%,
        rgba(250,246,239,.80) 48%,
        rgba(250,246,239,.50) 78%,
        rgba(250,246,239,.12) 100%);
  }
}


/* =========================================================
   Softer uniform translucent header style
   ========================================================= */

/* Main translucent surface used for title/header areas */
.profile-hero,
.auth-card,
.landing-copy,
.landing-feature-card,
.front-breed-section,
.notice,
.hero-panel,
.page-hero-card,
.title-panel,
.market-section > .section-heading,
.cattery-section > .section-heading{
  position:relative;
  isolation:isolate;
}

/* Profile header: make the whole panel evenly translucent */
.profile-hero{
  padding:16px 18px 22px !important;
  border-radius:28px;
  overflow:hidden;
}

.profile-hero::before{
  inset:0 !important;
  background:rgba(250,246,239,.58) !important;
  border:1px solid rgba(214,201,184,.58);
  border-radius:28px;
  box-shadow:0 14px 36px rgba(36,26,18,.05);
  backdrop-filter:blur(12px);
}

/* Apply the same softer translucent feeling to top headline cards/sections */
.auth-card,
.landing-copy,
.landing-feature-card,
.front-breed-section,
.notice{
  background:rgba(250,246,239,.58) !important;
  border:1px solid rgba(214,201,184,.58) !important;
  box-shadow:0 14px 36px rgba(36,26,18,.05) !important;
  backdrop-filter:blur(12px);
}

/* Sections that start with a heading feel more integrated with the background */
.market-section,
.cattery-section,
.panel-card,
.cat-card,
.confirm-card,
.reference-panel,
.breeding-card,
.show-card,
.winner-panel,
.product-card{
  background:rgba(255,251,246,.78) !important;
}

/* Improve readability on translucent surfaces */
.profile-hero h1,
.auth-card h1,
.landing-copy h1,
.front-breed-section h2,
.section-heading h2,
.hero h1{
  color:#17120e !important;
  text-shadow:0 1px 0 rgba(255,255,255,.28);
}

.profile-hero .lead,
.auth-card .lead,
.landing-copy .lead,
.notice,
.hero .lead{
  color:#5a4f44 !important;
}

/* Keep CTA visible over the softer panel */
.profile-actions .button,
.auth-card .button,
.landing-actions .button{
  box-shadow:0 8px 22px rgba(100,78,57,.16);
}

/* Mobile refinement */
@media(max-width:760px){
  .profile-hero{
    padding:14px 14px 18px !important;
  }

  .profile-hero::before{
    background:rgba(250,246,239,.62) !important;
  }

  .auth-card,
  .landing-copy,
  .landing-feature-card,
  .front-breed-section,
  .notice{
    background:rgba(250,246,239,.62) !important;
  }
}


/* =========================================================
   Ensure translucent backgrounds exist on top header areas
   ========================================================= */

/* Generic top-page header blocks */
.hero,
.profile-hero{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  padding:18px 22px 22px !important;
  margin-bottom:22px;
  isolation:isolate;
}

.hero::before,
.profile-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:28px;
  background:rgba(250,246,239,.56) !important;
  border:1px solid rgba(214,201,184,.52);
  box-shadow:0 14px 36px rgba(36,26,18,.05);
  backdrop-filter:blur(12px);
}

.hero > *,
.profile-hero > *{
  position:relative;
  z-index:1;
}

/* Compact heroes use the same panel */
.hero.compact{
  max-width:none;
}

/* Section heading rows inside major content sections */
.section-heading{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  padding:14px 16px !important;
  margin-bottom:16px;
  isolation:isolate;
}

.section-heading::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:22px;
  background:rgba(250,246,239,.52);
  border:1px solid rgba(214,201,184,.46);
  box-shadow:0 10px 28px rgba(36,26,18,.04);
  backdrop-filter:blur(10px);
}

.section-heading > *{
  position:relative;
  z-index:1;
}

/* Only keep the heading row translucent, not extra spacing around it */
.market-section > .section-heading,
.cattery-section > .section-heading,
.front-breed-section > .section-heading,
.show-achievement-panel > .section-heading{
  margin-top:-2px;
}

/* Small text readability on these translucent header panels */
.hero .eyebrow,
.profile-hero .eyebrow,
.section-heading .eyebrow{
  color:#644e39 !important;
}

.hero .lead,
.profile-hero .lead,
.section-heading .muted,
.section-heading .lead{
  color:#5c5145 !important;
}

/* Slightly softer background for title rows on phones */
@media(max-width:760px){
  .hero,
  .profile-hero{
    padding:14px 16px 18px !important;
  }

  .hero::before,
  .profile-hero::before{
    background:rgba(250,246,239,.60) !important;
  }

  .section-heading{
    padding:12px 13px !important;
  }

  .section-heading::before{
    background:rgba(250,246,239,.58) !important;
  }
}


/* =========================================================
   Navigation logout cleanup + full-screen background fix
   ========================================================= */

/* Always let the page background fill the complete viewport,
   including short pages such as login / signup. */
html,
body{
  min-height:100%;
}

html{
  background:#eee7da;
}

body{
  min-height:100vh;
  background:
    linear-gradient(rgba(245,240,231,.52), rgba(245,240,231,.60)),
    url("/static/generator/home_catio_background.png") center center / cover fixed no-repeat !important;
  background-attachment:fixed !important;
}

/* Make the main content area at least tall enough that the image never ends
   before the bottom of the screen. */
.shell{
  min-height:calc(100vh - 64px);
}

/* The logout control is meant to look like a simple nav link, not a button. */
.topnav form{
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
}

.topnav .linkbutton,
.topnav form .linkbutton{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline !important;
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:7px 9px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#644e39 !important;
  font:inherit !important;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  text-decoration:none !important;
  cursor:pointer;
}

/* Simple subtle hover, matching the other nav links. */
.topnav .linkbutton:hover,
.topnav form .linkbutton:hover,
.topnav .linkbutton:focus,
.topnav form .linkbutton:focus{
  background:rgba(100,78,57,.08) !important;
  color:#4f3d2c !important;
  box-shadow:none !important;
  transform:none !important;
  outline:none !important;
}

/* Prevent generic global button rules from affecting the nav logout control. */
.topnav .navlinks form button.linkbutton{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}

/* Keep the background image covering the full viewport on mobile too. */
@media(max-width:760px){
  body{
    min-height:100dvh;
    background:
      linear-gradient(rgba(245,240,231,.78), rgba(245,240,231,.84)),
      url("/static/generator/home_catio_background.png") center center / cover fixed no-repeat !important;
  }

  .shell{
    min-height:calc(100dvh - 64px);
  }

  .topnav .linkbutton,
  .topnav form .linkbutton{
    padding:7px 9px !important;
  }
}


/* Loading / generate states */
.portrait-empty-box,
.cat-detail-empty,
.mini-cat-placeholder{
  width:100%;
  min-height:220px;
  background:rgba(255,255,255,.94);
  border:1px dashed #d6cec0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}
.cat-detail-empty{min-height:420px;border-radius:14px;background:#fff}
.starter-empty-box{min-height:220px;border-radius:14px;margin-bottom:14px}
.portrait-empty-inner{
  width:min(100%, 300px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
  color:#6d5b48;
}
.portrait-empty-inner.compact{width:100%;padding:6px;gap:7px}
.portrait-empty-inner strong{font-size:16px;color:#34271d}
.portrait-empty-inner span{font-size:13px;line-height:1.45}
.loading-spinner{
  width:26px;height:26px;border-radius:50%;
  border:3px solid rgba(100,78,57,.22);
  border-top-color:#644e39;
  animation:felidexSpin .8s linear infinite;
}
.loading-spinner.light{width:22px;height:22px}
@keyframes felidexSpin{to{transform:rotate(360deg)}}
.generate-status{display:flex;flex-direction:column;gap:7px;width:100%;margin-top:4px}
.generate-copy{font-size:12px;color:#6f655b;word-break:break-word}
.starter-generate-status{margin-top:12px;padding:12px 14px;border:1px solid #e0d8cb;border-radius:12px;background:#fcfaf6}
.tiny-button{display:inline-block;border:0;border-radius:999px;background:#644e39;color:#fff;padding:8px 12px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.generated-cat-card-image{width:100%;height:240px;object-fit:contain;background:white;display:block}
.mini-cat-placeholder{width:110px;height:100px;min-height:100px;background:#fafafa;border-right:1px solid #e1ddd4}
.mini-cat-generated{width:110px;height:100px;display:block;background:#fafafa}
.mini-cat-fit{object-fit:contain}
.shop-cat-generating{width:100%;height:100%;padding:18px}

.menu-link-button{
  width:100%;
  text-align:left;
  background:transparent!important;
  color:#222!important;
  box-shadow:none!important;
  border:none!important;
  padding:7px!important;
  border-radius:7px!important;
  font-weight:700!important;
}
.menu-link-button:hover{
  background:rgba(100,78,57,.08)!important;
  color:#644e39!important;
}


/* =========================================================
   Pedigree page — tree-first layout
   ========================================================= */
.pedigree-page-header{
  margin-bottom:14px !important;
}

.pedigree-page-header h1{
  font-size:clamp(38px,5vw,64px) !important;
  margin-bottom:6px !important;
}

.pedigree-page-grid{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:16px;
  align-items:start;
}

.pedigree-cat-summary,
.pedigree-main-panel{
  background:rgba(255,252,247,.90);
  border:1px solid rgba(214,201,184,.58);
  border-radius:22px;
  box-shadow:0 14px 36px rgba(36,26,18,.05);
  backdrop-filter:blur(10px);
}

.pedigree-cat-summary{
  padding:14px;
  position:sticky;
  top:84px;
}

.pedigree-cat-image-wrap{
  width:100%;
  height:170px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#fff;
  border-radius:14px;
  margin-bottom:12px;
}

.pedigree-cat-image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#fff;
  display:block;
}

.pedigree-empty-image{
  min-height:170px !important;
  height:170px;
  border-radius:14px;
}

.pedigree-cat-meta{
  display:flex;
  flex-direction:column;
  gap:5px;
}

.pedigree-cat-meta > strong{
  font-size:20px;
}

.pedigree-cat-meta > span{
  font-size:13px;
  line-height:1.4;
}

.pedigree-main-panel{
  min-width:0;
  padding:18px;
}

.pedigree-title-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.pedigree-title-row h2{
  font-size:clamp(28px,3vw,40px);
  margin:0 0 4px;
}

.pedigree-tree-scroll{
  width:100%;
  overflow:auto;
  padding:4px 2px 18px;
}

/* Root tree fills the main space */
.pedigree-tree-scroll > .ancestor-node{
  min-width:980px;
}

.ancestor-node{
  border-left:2px solid rgba(100,78,57,.18);
  padding-left:8px;
  margin:5px 0;
}

.ancestor-main{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(214,201,184,.55);
  border-radius:10px;
  padding:7px 8px;
  min-height:48px;
  display:flex;
  flex-direction:column;
  gap:1px;
}

.ancestor-main strong{
  font-size:12px;
  line-height:1.2;
}

.ancestor-main span{
  font-size:9px;
  line-height:1.25;
  color:#71685e;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ancestor-parents{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:6px;
}

.ancestor-parent-branch{
  min-width:0;
}

.ancestor-label{
  display:block;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.13em;
  color:#8d8175;
  margin:0 0 3px 3px;
}

.ancestor-missing{
  min-height:48px;
  display:flex;
  align-items:center;
  padding:7px 8px;
  border:1px dashed rgba(154,140,126,.32);
  border-radius:9px;
  background:rgba(255,255,255,.30);
  color:#a09488;
  font-size:10px;
}

/* Each deeper generation becomes progressively more compact */
.level-2 .ancestor-main{min-height:44px}
.level-3 .ancestor-main{min-height:40px}
.level-4 .ancestor-main{min-height:36px;padding:5px 6px}
.level-5 .ancestor-main{min-height:32px;padding:4px 5px}
.level-4 .ancestor-main strong,
.level-5 .ancestor-main strong{font-size:10px}
.level-4 .ancestor-main span,
.level-5 .ancestor-main span{font-size:8px}

@media(max-width:900px){
  .pedigree-page-grid{
    grid-template-columns:1fr;
  }

  .pedigree-cat-summary{
    position:static;
    display:grid;
    grid-template-columns:180px 1fr;
    gap:14px;
    align-items:center;
  }

  .pedigree-cat-image-wrap{
    height:140px;
    margin-bottom:0;
  }

  .pedigree-empty-image{
    height:140px;
    min-height:140px !important;
  }
}

@media(max-width:560px){
  .pedigree-cat-summary{
    grid-template-columns:1fr;
  }

  .pedigree-cat-image-wrap{
    height:170px;
  }

  .pedigree-tree-scroll > .ancestor-node{
    min-width:760px;
  }
}


/* =========================================================
   Cattery capacity, pagination, search and cat groups
   ========================================================= */
.cattery-capacity{
  display:inline-flex;
  align-items:baseline;
  gap:8px;
  margin-top:10px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(250,246,239,.60);
  border:1px solid rgba(214,201,184,.52);
}
.cattery-capacity strong{font-size:16px;color:#644e39}
.cattery-capacity span{font-size:11px;color:#70665b}

.cattery-toolbar{
  background:rgba(255,252,247,.86);
  border:1px solid rgba(214,201,184,.58);
  border-radius:22px;
  padding:16px;
  margin-bottom:18px;
  box-shadow:0 14px 36px rgba(36,26,18,.05);
  backdrop-filter:blur(10px);
}
.cattery-search{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
}
.cattery-search input{margin:0}
.group-bar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0;
}
.group-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(100,78,57,.16);
  background:rgba(255,255,255,.55);
  color:#644e39;
  text-decoration:none;
  font-weight:800;
  font-size:12px;
}
.group-chip span{
  min-width:22px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(100,78,57,.10);
  text-align:center;
}
.group-chip.active{
  background:#644e39;
  color:white;
}
.group-chip.active span{background:rgba(255,255,255,.18)}

.group-manager{
  display:grid;
  grid-template-columns:1fr minmax(260px,420px);
  gap:14px;
  align-items:end;
  border-top:1px solid rgba(214,201,184,.46);
  padding-top:14px;
}
.group-manager p{margin:4px 0}
.group-create-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.group-create-form input,
.group-rename-form input{margin:0}
.group-edit-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.group-edit-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  padding:8px;
  border:1px solid rgba(214,201,184,.55);
  border-radius:12px;
  background:rgba(255,255,255,.48);
}
.group-name-fixed{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:2px 4px;}
.group-name-fixed strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.group-rename-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:6px;
}

.menu-group-section{
  display:grid;
  gap:4px;
  padding-top:7px;
  border-top:1px solid #eee7dc;
}
.menu-label{
  padding:3px 7px;
  color:#8b7e71;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:900;
}
.menu-link-button{
  width:100%;
  text-align:left;
  background:transparent!important;
  color:#35291f!important;
  box-shadow:none!important;
  border:none!important;
  padding:7px!important;
  border-radius:7px!important;
  font-weight:700!important;
}
.menu-link-button:hover{background:rgba(100,78,57,.08)!important}
.menu-link-button.selected-group{
  background:rgba(100,78,57,.12)!important;
  color:#644e39!important;
}
.muted-menu-action{color:#7d746b!important;font-size:12px!important}
.cat-group-badge{
  align-self:flex-start;
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(100,78,57,.11);
  color:#644e39;
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}

.pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(214,201,184,.55);
}
.pagination a,
.pagination .current{
  min-width:36px;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px;
  border-radius:10px;
  text-decoration:none;
  font-weight:800;
  font-size:12px;
}
.pagination a{
  color:#644e39;
  background:rgba(255,255,255,.55);
  border:1px solid rgba(100,78,57,.14);
}
.pagination .current{
  color:white;
  background:#644e39;
}
.pagination-pages{display:flex;gap:5px}

@media(max-width:850px){
  .group-manager{grid-template-columns:1fr}
  .group-edit-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .cattery-search{grid-template-columns:1fr}
  .group-create-form,.group-rename-form,.group-edit-card{grid-template-columns:1fr}
  .pagination{flex-wrap:wrap}
}


/* =========================================================
   Daily breeder-level breeding limit
   ========================================================= */
.breeding-permit-status{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 8px;
}
.permit-state,
.permit-count{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:32px;
  padding:7px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:850;
}
.permit-state.available{
  background:rgba(100,78,57,.10);
  color:#644e39;
  border:1px solid rgba(100,78,57,.14);
}
.permit-state.used{
  background:rgba(112,103,93,.10);
  color:#6c6258;
  border:1px solid rgba(112,103,93,.13);
}
.permit-count{
  background:rgba(255,255,255,.54);
  color:#4f4338;
  border:1px solid rgba(100,78,57,.12);
}
.permit-count strong{font-size:14px;color:#644e39}
.breeding-permit-note{max-width:720px!important;margin-bottom:0!important}
.stats-strip-four{grid-template-columns:repeat(4,1fr)!important}

@media(max-width:900px){
  .stats-strip-four{grid-template-columns:1fr 1fr!important}
}
@media(max-width:620px){
  .stats-strip-four{grid-template-columns:1fr!important}
}


/* =========================================================
   Kitten age timer + group tag directly on cat pictures
   ========================================================= */
.cat-picture-shell{
  position:relative;
  width:100%;
  height:240px;
  overflow:hidden;
  background:#fff;
}

.cat-picture-shell > img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  background:#fff;
}

.cat-picture-shell > .portrait-empty-box{
  width:100%;
  height:100%;
  min-height:240px;
  border:0;
}

/* The kitten growth timer is now a simple clock in the upper-left corner. */
.kitten-growth-timer{
  position:absolute;
  top:10px;
  left:10px;
  z-index:6;
  min-width:64px;
  padding:7px 10px;
  border-radius:10px;
  background:rgba(255,252,247,.90);
  border:1px solid rgba(100,78,57,.15);
  box-shadow:0 5px 16px rgba(50,37,25,.08);
  backdrop-filter:blur(7px);
  color:#2b2118;
  font-variant-numeric:tabular-nums;
  pointer-events:none;
}

.kitten-growth-timer .growth-timer{
  display:block;
  font-size:17px;
  line-height:1;
  font-weight:950;
  letter-spacing:.01em;
}

.kitten-growth-timer.ready{
  background:rgba(255,252,247,.94);
  color:#644e39;
}

/* Cat group/tag belongs to the picture itself, lower-right. */
.picture-group-tag{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:6;
  max-width:calc(100% - 20px);
  padding:7px 10px;
  border-radius:999px;
  background:rgba(100,78,57,.90);
  color:#fff;
  border:1px solid rgba(255,255,255,.42);
  box-shadow:0 5px 16px rgba(50,37,25,.10);
  backdrop-filter:blur(7px);
  font-size:10px;
  font-weight:900;
  line-height:1;
  letter-spacing:.05em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Retire the old lower-card kitten progress treatment. */
.growth-row,
.growth-progress,
.growth-copy{
  display:none!important;
}

@media(max-width:600px){
  .kitten-growth-timer{
    top:8px;
    left:8px;
  }
  .picture-group-tag{
    right:8px;
    bottom:8px;
  }
}


/* =========================================================
   Cat care actions: Play + Feed only
   ========================================================= */
.care-actions-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.care-actions-two > form,
.care-actions-two > button{
  width:100%;
}

.care-actions-two form button,
.care-actions-two .feed-toggle{
  width:100%;
  min-height:48px;
  font-size:16px;
  font-weight:900;
}

.feed-panel{
  margin-top:9px;
  padding:11px;
  border:1px solid rgba(100,78,57,.14);
  border-radius:13px;
  background:rgba(255,252,247,.72);
}

.feed-choice-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
}

.feed-choice-form label{
  grid-column:1/-1;
  font-size:11px;
  font-weight:850;
  color:#644e39;
}

.feed-choice-form select{
  margin:0;
}

.kebab-menu form > .menu-link-button{
  width:100%;
}

@media(max-width:520px){
  .feed-choice-form{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   Cat menu clipping fix + Play / Feed option panels
   ========================================================= */

/* Cat cards need to allow the three-dot menu to extend beyond the card. */
.collection-card.care-card{
  overflow:visible !important;
  position:relative;
  z-index:1;
}

.collection-card.care-card:has(.kebab[open]){
  z-index:100;
}

/* Keep the picture itself neatly clipped even though the card is not. */
.care-card .cat-picture-shell{
  border-radius:17px 17px 0 0;
  overflow:hidden;
}

.kebab{
  position:relative;
  z-index:120;
}

.kebab-menu{
  z-index:1000 !important;
  width:min(300px, calc(100vw - 32px)) !important;
  max-height:min(68vh, 560px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}

/* On cards near the right edge, keep the menu inside the viewport. */
.cat-grid .care-card:nth-child(3n) .kebab-menu{
  right:0;
}

/* Two main care buttons */
.care-actions-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.care-toggle{
  width:100%;
  min-height:48px;
  font-size:16px;
  font-weight:900;
}

.care-toggle[aria-expanded="true"]{
  background:linear-gradient(180deg,#80664d,#513f2d) !important;
}

/* Expandable option area */
.care-option-panel{
  margin-top:9px;
  padding:12px;
  border:1px solid rgba(100,78,57,.14);
  border-radius:14px;
  background:rgba(255,252,247,.92);
  box-shadow:0 8px 24px rgba(63,45,29,.06);
}

.care-panel-heading{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:10px;
}

.care-panel-heading strong{
  font-size:13px;
  color:#34271d;
}

.care-panel-heading span{
  font-size:11px;
  color:#75695e;
}

.play-option-grid,
.feed-option-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
}

.play-option-grid form,
.feed-option-grid form{
  margin:0;
}

.care-option-card{
  width:100%;
  min-height:0 !important;
  padding:10px 11px !important;
  display:grid;
  grid-template-columns:1fr auto;
  gap:2px 10px;
  text-align:left;
  align-items:center;
  border-radius:11px !important;
  background:rgba(100,78,57,.075) !important;
  color:#34271d !important;
  box-shadow:none !important;
  border:1px solid rgba(100,78,57,.11) !important;
}

.care-option-card:hover{
  background:rgba(100,78,57,.14) !important;
  color:#2e2117 !important;
}

.care-option-card strong{
  font-size:13px;
}

.care-option-card span{
  justify-self:end;
  font-size:11px;
  color:#644e39;
  font-weight:800;
}

.care-option-card small{
  grid-column:1/-1;
  color:#776b60;
  font-size:10px;
}

/* Ensure the menu remains usable on smaller displays. */
@media(max-width:760px){
  .kebab-menu{
    position:fixed !important;
    left:16px !important;
    right:16px !important;
    top:auto !important;
    bottom:16px !important;
    width:auto !important;
    max-height:72vh;
    border-radius:18px;
  }

  .collection-card.care-card:has(.kebab[open])::after{
    content:"";
    position:fixed;
    inset:0;
    z-index:900;
    background:rgba(35,27,20,.18);
    backdrop-filter:blur(2px);
    pointer-events:none;
  }

  .kebab[open] .kebab-menu{
    z-index:1001 !important;
  }
}



/* =========================================================
   FELIDEX PREMIUM VISUAL SYSTEM
   Warm editorial cattery + collectible registry aesthetic
   ========================================================= */
:root{
  --fx-ink:#2b2119;
  --fx-ink-soft:#594a3e;
  --fx-brown:#644e39;
  --fx-brown-deep:#443225;
  --fx-brown-light:#8b735e;
  --fx-gold:#b39564;
  --fx-gold-soft:#d7c39d;
  --fx-cream:#f6f0e7;
  --fx-ivory:#fffaf3;
  --fx-paper:rgba(255,250,243,.91);
  --fx-line:rgba(100,78,57,.16);
  --fx-line-strong:rgba(100,78,57,.25);
  --fx-shadow:0 22px 65px rgba(62,44,29,.12);
  --fx-shadow-soft:0 10px 30px rgba(62,44,29,.08);
  --fx-radius:22px;
  color:var(--fx-ink);
  background:#eae1d5;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html{
  min-height:100%;
  background:#eae1d5;
}

body{
  min-height:100vh;
  color:var(--fx-ink);
  background:
    linear-gradient(180deg,rgba(244,237,227,.52),rgba(238,228,215,.62)),
    url("/static/generator/home_catio_background.png") center center / cover fixed no-repeat !important;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 14% 10%,rgba(255,255,255,.22),transparent 30%),
    radial-gradient(circle at 88% 82%,rgba(100,78,57,.05),transparent 28%);
}

.shell{
  width:min(1240px,calc(100% - 34px));
  padding:52px 0 90px;
}

h1,h2,h3{
  color:var(--fx-ink);
}

h1{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:500;
  letter-spacing:-.046em;
  line-height:.94;
}

h2{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:600;
  letter-spacing:-.028em;
}

h3{
  letter-spacing:-.018em;
}

a{
  transition:color .2s ease,opacity .2s ease,transform .2s ease,background .2s ease,border-color .2s ease;
}

.eyebrow{
  color:var(--fx-brown);
  font-size:10px;
  letter-spacing:.22em;
  font-weight:950;
}

.lead{
  color:var(--fx-ink-soft);
  font-size:17px;
  line-height:1.68;
}

.muted{
  color:#796c60;
}

/* ---------- Navigation / brand ---------- */
.topnav{
  position:sticky;
  top:0;
  z-index:500;
  min-height:74px;
  padding:10px max(22px,calc((100vw - 1240px)/2));
  border-bottom:1px solid rgba(100,78,57,.13);
  background:rgba(250,246,239,.88);
  backdrop-filter:blur(22px) saturate(1.12);
  box-shadow:0 8px 35px rgba(59,42,28,.06);
}

.premium-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--fx-ink)!important;
  letter-spacing:0!important;
}

.brand-mark{
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:linear-gradient(145deg,var(--fx-brown),var(--fx-brown-deep));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 7px 18px rgba(68,50,37,.15);
  overflow:hidden;
  flex:0 0 38px;
}

.brand-mark img{
  width:82%;
  height:82%;
  object-fit:contain;
  display:block;
}

.brand-lockup{
  display:flex;
  flex-direction:column;
  gap:1px;
}

.brand-lockup strong{
  font-size:16px;
  letter-spacing:.20em;
  line-height:1;
}

.brand-lockup small{
  color:#8b7968;
  font-size:7px;
  letter-spacing:.18em;
  font-weight:850;
}

.navlinks{
  gap:5px;
}

.navlinks a,
.linkbutton{
  color:#57483b;
  padding:9px 11px;
  border-radius:10px;
  font-size:13px;
  font-weight:800;
}

.navlinks a:hover,
.linkbutton:hover{
  color:var(--fx-brown-deep);
  background:rgba(100,78,57,.07);
}

.wallet{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#4c3828;
  background:linear-gradient(180deg,#fff8e9,#f4e7cb);
  border:1px solid rgba(179,149,100,.36);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  padding:9px 13px;
}

.wallet-gem{
  color:#9a7742;
  font-size:11px;
}

/* ---------- Main surfaces ---------- */
.hero,
.profile-hero{
  padding:30px 32px;
  max-width:none;
  border:1px solid rgba(255,255,255,.48);
  border-radius:28px;
  background:
    linear-gradient(135deg,rgba(255,250,243,.93),rgba(246,237,225,.82));
  box-shadow:var(--fx-shadow);
  backdrop-filter:blur(14px);
}

.hero.compact h1{
  font-size:clamp(42px,5.8vw,70px);
}

.hero::after,
.profile-hero::after{
  content:"";
  display:block;
  width:72px;
  height:2px;
  margin-top:22px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--fx-gold),transparent);
}

.breeding-card,
.cattery-section,
.market-section,
.panel-card,
.auth-card,
.cat-card,
.confirm-card,
.reference-panel,
.cattery-toolbar,
.front-breed-section,
.catio-section{
  border:1px solid rgba(255,255,255,.58)!important;
  background:var(--fx-paper)!important;
  border-radius:var(--fx-radius)!important;
  box-shadow:var(--fx-shadow-soft)!important;
  backdrop-filter:blur(16px);
}

.breeding-card,
.cattery-section,
.market-section,
.panel-card,
.cattery-toolbar,
.front-breed-section{
  padding:22px!important;
}

.section-heading{
  gap:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--fx-line);
}

.section-heading h2{
  font-size:30px;
}

.section-heading .muted{
  line-height:1.5;
}

/* ---------- Buttons ---------- */
button,
.enter,
.button,
.small-button,
.tiny-button{
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:linear-gradient(180deg,#715943,#503d2d);
  color:#fffaf4;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 7px 16px rgba(65,46,31,.12);
  font-weight:850;
  letter-spacing:.005em;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,background .16s ease;
}

button:hover,
.enter:hover,
.button:hover{
  transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 10px 24px rgba(65,46,31,.17);
  filter:saturate(1.05);
}

button:active,
.button:active{
  transform:translateY(0);
}

.button.secondary,
button.secondary,
.secondary{
  color:#4d3d30;
  background:rgba(255,250,243,.76);
  border:1px solid var(--fx-line-strong);
  box-shadow:none;
}

.danger-outline,
.menu-danger{
  background:#fff9f7!important;
  color:#8b4238!important;
  border:1px solid rgba(139,66,56,.27)!important;
  box-shadow:none!important;
}

/* ---------- Inputs ---------- */
input,
select,
textarea{
  min-height:44px;
  color:var(--fx-ink);
  background:rgba(255,253,249,.9);
  border:1px solid rgba(100,78,57,.22);
  border-radius:12px;
  box-shadow:inset 0 1px 2px rgba(68,50,37,.035);
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

input:focus,
select:focus,
textarea:focus{
  background:#fff;
  border-color:rgba(100,78,57,.48);
  box-shadow:0 0 0 3px rgba(100,78,57,.09);
}

label{
  color:#493a2e;
  letter-spacing:.01em;
}

/* ---------- Cat collection cards ---------- */
.cat-grid{
  gap:18px;
}

.collection-card,
.breed-card,
.product-card,
.front-breed-card,
.mini-cat{
  border:1px solid rgba(100,78,57,.13)!important;
  background:rgba(255,252,247,.94)!important;
  box-shadow:0 8px 25px rgba(64,46,31,.055);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.collection-card:hover,
.breed-card:hover,
.product-card:hover,
.front-breed-card:hover{
  transform:translateY(-3px);
  border-color:rgba(100,78,57,.22)!important;
  box-shadow:0 16px 34px rgba(64,46,31,.10);
}

.collection-card{
  border-radius:18px;
}

.collection-card img,
.cat-picture-shell,
.shop-cat-image-wrap{
  background:linear-gradient(180deg,#fff,#fdfbf7)!important;
}

.collection-body{
  padding:15px 16px 17px;
  gap:7px;
}

.cat-name-row strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  font-weight:700;
}

.cat-name-row a{
  color:var(--fx-ink);
  text-decoration:none;
}

.cat-name-row a:hover{
  color:var(--fx-brown);
}

.stage-pill{
  color:#695543;
  background:#f2e8d9;
  border:1px solid rgba(179,149,100,.22);
  font-weight:900;
  letter-spacing:.14em;
}

.picture-group-tag{
  background:linear-gradient(180deg,rgba(100,78,57,.95),rgba(68,50,37,.95))!important;
  border:1px solid rgba(255,255,255,.35)!important;
  box-shadow:0 6px 18px rgba(45,31,21,.15)!important;
}

.kitten-growth-timer{
  border:1px solid rgba(179,149,100,.30)!important;
  background:rgba(255,249,237,.93)!important;
  color:#4b3828!important;
  box-shadow:0 7px 18px rgba(64,46,31,.10)!important;
}

/* ---------- Care meters ---------- */
.bars{
  margin:10px 0 6px;
  gap:9px;
}

.barline{
  color:#6b5b4d;
  font-weight:700;
}

.meter{
  height:6px;
  background:#ebe3d8;
}

.meter i{
  background:linear-gradient(90deg,#876c52,#b39564);
}

.care-actions-two{
  margin-top:5px;
}

.care-toggle{
  border-radius:13px;
}

.care-option-panel{
  border-color:var(--fx-line)!important;
  background:rgba(252,247,239,.94)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8)!important;
}

.care-option-card{
  border-color:rgba(100,78,57,.12)!important;
  background:rgba(100,78,57,.055)!important;
}

.care-option-card:hover{
  background:rgba(179,149,100,.13)!important;
}

/* ---------- Menus ---------- */
.kebab summary{
  color:#574536;
  background:#f1e8dc;
  border:1px solid rgba(100,78,57,.11);
}

.kebab-menu{
  border:1px solid rgba(100,78,57,.17)!important;
  background:rgba(255,251,246,.98)!important;
  border-radius:15px!important;
  box-shadow:0 22px 50px rgba(48,33,22,.18)!important;
  backdrop-filter:blur(18px);
}

.kebab-menu a,
.menu-link-button{
  color:#4a392c;
  border-radius:9px;
}

.kebab-menu a:hover,
.menu-link-button:hover{
  background:#f2e9dd;
}

/* ---------- Cattery toolbar / groups ---------- */
.cattery-toolbar{
  margin-bottom:18px;
}

.group-bar{
  gap:8px;
}

.group-chip{
  border:1px solid rgba(100,78,57,.15)!important;
  background:rgba(255,250,243,.70)!important;
  color:#5c4a3c!important;
  box-shadow:none!important;
}

.group-chip.active{
  color:#fffaf4!important;
  background:linear-gradient(180deg,#705944,#513e2e)!important;
  border-color:transparent!important;
}

.group-edit-card{
  border-color:var(--fx-line)!important;
  background:rgba(255,252,247,.66)!important;
}

/* ---------- Breeding ---------- */
.breeding-card{
  position:relative;
  overflow:hidden;
}

.breeding-card::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-70px;
  top:-80px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(179,149,100,.16),transparent 70%);
  pointer-events:none;
}

.breeding-permit-status{
  margin-top:15px;
}

.permit-state,
.permit-count{
  background:#f7efe3!important;
  border-color:rgba(179,149,100,.25)!important;
}

.pregnancy-status{
  color:#563f32;
  background:rgba(255,246,240,.94);
  border-color:rgba(179,149,100,.25);
  box-shadow:var(--fx-shadow-soft);
}

.progress-track{
  background:#e9dfd3;
}

.progress-fill{
  background:linear-gradient(90deg,var(--fx-brown),var(--fx-gold));
}

/* ---------- Marketplace ---------- */
.rotation-clock{
  color:#5a4738;
  background:#f3eadc;
  border:1px solid rgba(179,149,100,.20);
}

.product-card{
  border-radius:16px;
}

.product-type{
  color:#8a704f;
  letter-spacing:.16em;
}

.boosts span{
  color:#5b493b;
  background:#f1e8db;
  border:1px solid rgba(100,78,57,.08);
}

/* ---------- Profile ---------- */
.stats-strip{
  gap:14px;
}

.stats-strip>div{
  position:relative;
  overflow:hidden;
  background:rgba(255,250,243,.91);
  border:1px solid rgba(255,255,255,.6);
  border-radius:18px;
  box-shadow:var(--fx-shadow-soft);
}

.stats-strip>div::after{
  content:"";
  position:absolute;
  width:48px;
  height:48px;
  right:-12px;
  bottom:-18px;
  border-radius:50%;
  background:rgba(179,149,100,.12);
}

.stats-strip strong{
  font-family:Georgia,"Times New Roman",serif;
  color:#49372a;
}

/* ---------- Breed registry ---------- */
.breed-card{
  border-radius:18px;
  padding:16px;
}

.breed-card .standard-breed-image-wrap,
.front-breed-image-wrap{
  border-color:rgba(100,78,57,.10)!important;
  background:linear-gradient(180deg,#fff,#fbf7f1)!important;
}

.breed-card h3,
.front-breed-card h3{
  font-family:Georgia,"Times New Roman",serif;
}

/* ---------- Home ---------- */
.home-catio-scene{
  position:relative;
}

.catio-scene-backdrop{
  opacity:.34;
  filter:saturate(.72) sepia(.06);
}

.catio-landing-hero{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);
  gap:26px;
  align-items:stretch;
  padding:0!important;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}

.catio-landing-hero h1{
  max-width:840px;
  font-size:clamp(48px,7.2vw,84px);
}

.landing-slogan{
  max-width:760px;
  color:#48382c;
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
  line-height:1.45;
}

.catio-mood-strip{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.catio-mood-strip span{
  color:#654f3d;
  background:#f4eadc;
  border:1px solid rgba(179,149,100,.20);
  border-radius:999px;
  padding:8px 11px;
  font-size:11px;
  font-weight:850;
}

.landing-feature-card{
  border:1px solid rgba(100,78,57,.13)!important;
  background:rgba(255,252,247,.68)!important;
  border-radius:21px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

.feature-list>div{
  border-bottom-color:rgba(100,78,57,.10)!important;
}

.feature-list strong{
  color:#493628;
  font-family:Georgia,"Times New Roman",serif;
  font-size:17px;
}

.front-breed-card{
  overflow:hidden;
  border-radius:18px;
}

/* ---------- Pedigree ---------- */
.pedigree-layout,
.pedigree-tree-wrap{
  border-color:var(--fx-line)!important;
}

.ancestor-node{
  border-left-color:#cab89d;
}

.ancestor-main{
  border-radius:11px;
}

.ancestor-label{
  color:#a1845e;
  font-weight:850;
}

.ancestor-missing{
  color:#9a8d81;
  border-color:#d8ccbd;
  background:rgba(255,250,243,.46);
}

/* ---------- Shows / awards ---------- */
.award-card,
.achievement-stage,
.show-card,
.show-entry-card{
  border-color:rgba(100,78,57,.13)!important;
  background:rgba(255,252,247,.9)!important;
  box-shadow:var(--fx-shadow-soft);
}

.ribbon{
  filter:drop-shadow(0 5px 8px rgba(58,40,27,.12));
}

.show-progress-track{
  background:#e8ded1!important;
}

.show-progress-track i{
  background:linear-gradient(90deg,var(--fx-brown),var(--fx-gold))!important;
}

/* ---------- Notices ---------- */
.notice,
.message,
.error-banner{
  border-radius:14px;
  box-shadow:0 7px 20px rgba(64,46,31,.05);
}

.notice{
  color:#65502c;
  background:#fff8e7;
  border-color:#e6d1a1;
}

.message.success{
  color:#4d644d;
  background:#f2f7ef;
  border-color:#cad9c0;
}

/* ---------- Pagination ---------- */
.pagination a,
.pagination .current{
  border-radius:10px!important;
  border:1px solid var(--fx-line)!important;
}

.pagination .current{
  color:#fff!important;
  background:var(--fx-brown)!important;
}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .catio-landing-hero{
    grid-template-columns:1fr;
    padding:0!important;
  }

  .brand-lockup small{
    display:none;
  }
}

@media(max-width:760px){
  .shell{
    width:min(100% - 22px,1240px);
    padding-top:28px;
  }

  .topnav{
    position:sticky!important;
    gap:10px;
  }

  .premium-brand{
    min-width:max-content;
  }

  .navlinks{
    overflow-x:auto;
    max-width:100%;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    padding-bottom:2px;
    scrollbar-width:none;
  }

  .navlinks::-webkit-scrollbar{
    display:none;
  }

  .hero,
  .profile-hero{
    padding:23px 20px;
    border-radius:22px;
  }

  .catio-landing-hero{
    padding:0!important;
    border-radius:0;
  }

  .catio-landing-hero h1{
    font-size:clamp(42px,13vw,64px);
  }
}

@media(max-width:520px){
  .topnav{
    align-items:flex-start;
    padding:10px 12px;
  }

  .brand-mark{
    width:35px;
    height:35px;
  }

  .brand-lockup strong{
    font-size:14px;
  }

  .wallet{
    white-space:nowrap;
  }
}


/* =========================================================
   Premium layout polish: profile CTA + full cat imagery
   ========================================================= */

/* Keep the profile action anchored to the far-right edge. */
.profile-hero{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  width:100%;
}

.profile-hero > div:first-child{
  flex:1 1 auto;
  min-width:0;
}

.profile-hero .profile-actions{
  flex:0 0 auto;
  margin-left:auto !important;
  align-self:center;
  display:flex;
  justify-content:flex-end;
}

.profile-hero .profile-actions .button{
  white-space:nowrap;
}

/*
   Let cat portraits visually occupy their entire image stage.
   Generated portraits have a white studio background, so cropping a small
   amount of that outer white space makes the cat itself feel much larger.
*/
.collection-card > img,
.cat-picture-shell > img,
.shop-cat-image-wrap > img.shop-cat-image{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  padding:0 !important;
  object-fit:cover !important;
  object-position:center !important;
  background:#fff !important;
}

/* Marketplace and collection image stages get a little more presence. */
.shop-cat-image-wrap{
  padding:0 !important;
  overflow:hidden !important;
}

.market-section .collection-card > img{
  height:260px !important;
}

.cat-picture-shell{
  overflow:hidden !important;
}

/* Breed/registry portraits also use the full visual stage without inner padding. */
.front-breed-image-wrap,
.breed-card .standard-breed-image-wrap{
  padding:0 !important;
}

.front-breed-image,
.breed-card img.standard-breed-image{
  object-fit:cover !important;
  object-position:center !important;
  padding:0 !important;
}

/* Profile mini collection: use the whole thumbnail instead of a tiny centered cat. */
.mini-cat{
  grid-template-columns:128px 1fr;
}

.mini-cat > img,
.mini-cat img{
  width:128px !important;
  height:112px !important;
  object-fit:cover !important;
  object-position:center !important;
  background:#fff !important;
}

/* Mobile profile header returns to stacked layout with a full-width action. */
@media(max-width:760px){
  .profile-hero{
    align-items:flex-start !important;
    flex-direction:column !important;
  }

  .profile-hero .profile-actions{
    width:100%;
    margin-left:0 !important;
    margin-top:10px;
  }

  .profile-hero .profile-actions .button,
  .profile-hero .profile-actions form,
  .profile-hero .profile-actions button{
    width:100%;
    text-align:center;
  }
}


/* Home page example cat profile */
.home-preview-card{display:flex;flex-direction:column;gap:14px}
.home-preview-shell{display:flex;flex-direction:column;gap:16px;height:100%}
.home-preview-image-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:250px;padding:16px;border:1px solid #e6e0d5;border-radius:18px;background:#fff;overflow:hidden}
.home-preview-image{width:100%;height:100%;max-height:265px;object-fit:contain;object-position:center;display:block}
.home-preview-stage{position:absolute;right:14px;top:14px}
.home-preview-body{display:flex;flex-direction:column;gap:12px}
.home-preview-heading{display:flex;flex-direction:column;gap:3px}
.home-preview-heading strong{font-size:28px;line-height:1.05}
.home-preview-heading span{font-size:16px;color:#6f655b;font-weight:700}
.home-preview-copy{margin:0;color:#6f655b;line-height:1.5}
.home-preview-bars{margin-top:2px}
.home-preview-pedigree{width:100%;box-sizing:border-box;background:#f6f1e8}
.home-preview-actions{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.home-preview-card .meter i{background:linear-gradient(90deg,#7f6449,#4f3f30)}
.home-preview-card .care-toggle[disabled]{opacity:1;cursor:default}
@media (max-width: 800px){
  .home-preview-image-wrap{min-height:220px}
  .home-preview-heading strong{font-size:24px}
}


/* =========================================================
   Homepage secondary CTA contrast fix
   ========================================================= */
.home-catio-scene .landing-actions .button.secondary,
.home-catio-scene .landing-actions .button.secondary:visited,
.home-catio-scene .landing-actions .button.secondary:hover,
.home-catio-scene .landing-actions .button.secondary:focus{
  color:#fffaf4 !important;
  text-shadow:0 1px 0 rgba(50,34,22,.20);
  border-color:rgba(255,255,255,.16) !important;
}


/* =========================================================
   Rotating shop cats: keep the full cat visible
   ========================================================= */
.market-section .shop-cat-image-wrap{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#ffffff !important;
}

.market-section .shop-cat-image-wrap > img.shop-cat-image{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#ffffff !important;
  padding:0 !important;
  max-width:100% !important;
  max-height:100% !important;
}


/* =========================================================
   Cattery portrait fit: never crop the cat
   ========================================================= */
.cattery-section .cat-picture-shell{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#fff !important;
}

.cattery-section .cat-picture-shell > img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  padding:0 !important;
  background:#fff !important;
}

/* =========================================================
   Profile / cattery overview thumbnails: show the full cat
   ========================================================= */
.mini-cat{
  grid-template-columns:140px 1fr !important;
}

.mini-cat > img,
.mini-cat img,
.mini-cat-placeholder,
.mini-cat-generated{
  width:140px !important;
  height:118px !important;
  min-height:118px !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#ffffff !important;
  padding:0 !important;
}


/* =========================================================
   Breeders & friend requests
   ========================================================= */
.navlinks a{position:relative}
.nav-request-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:5px;padding:0 5px;border-radius:999px;background:#644e39;color:#fffaf4;font-size:10px;font-weight:900;vertical-align:middle}
.breeder-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;margin:14px 0 18px}
.breeder-search input{width:100%;margin:0;padding:12px 14px;border:1px solid rgba(100,78,57,.18);border-radius:12px;background:#fffdf9;font:inherit;color:#2b2119}
.breeder-result-grid,.request-list{display:grid;gap:10px}
.breeder-card,.request-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(100,78,57,.12);border-radius:14px;background:rgba(255,252,247,.82)}
.breeder-card>div:first-child,.request-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.breeder-card strong,.request-row strong{font-family:Georgia,"Times New Roman",serif;font-size:18px}
.breeder-card a,.request-row a{color:#2b2119;text-decoration:none}
.breeder-card span,.request-row span{color:#766a5f;font-size:13px}
.breeder-card-actions,.request-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.friend-state{display:inline-flex;padding:7px 10px;border-radius:999px;background:#edf2e8!important;color:#496041!important;font-weight:800!important;font-size:11px!important}
.friend-state.pending{background:#f5ead7!important;color:#74593d!important}
.friend-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:760px){.breeder-search{grid-template-columns:1fr}.friend-columns{grid-template-columns:1fr}.breeder-card,.request-row{align-items:flex-start;flex-direction:column}.breeder-card-actions,.request-actions{justify-content:flex-start}.breeder-card form,.request-row form{width:auto}}


/* Care actions update in place without a reload. */
.care-feedback{
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:12px;
  font-size:13px;
  font-weight:750;
  border:1px solid rgba(100,78,57,.14);
  background:rgba(246,240,231,.88);
  color:#564535;
}
.care-feedback.success{background:#f2f7ef;color:#466044;border-color:#cddcc8}
.care-feedback.warning{background:#fff7e9;color:#74562f;border-color:#ead8b6}
.care-feedback.error{background:#fff1ee;color:#8a4038;border-color:#e4b9b2}
.care-option-card:disabled{
  opacity:.48;
  cursor:not-allowed;
  box-shadow:none!important;
  transform:none!important;
}

/* Marketplace cat cards: reserve the lower-right corner for the purchase action. */
.marketplace-cat-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.marketplace-cat-card .collection-body{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.marketplace-cat-card .shop-buy-form,
.marketplace-cat-card .collection-body > form[action*="/buy/"]{
  margin-top:auto;
  padding-top:14px;
  align-self:flex-end;
}
.marketplace-cat-card .shop-buy-form button,
.marketplace-cat-card .collection-body > form[action*="/buy/"] button{
  width:auto;
  min-width:0;
}


/* Marketplace cat cards: use the open right side beside breed/coat details. */
.marketplace-cat-card .marketplace-cat-body{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:end !important;
  width:100%;
}

.marketplace-cat-card .marketplace-cat-info{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}

.marketplace-cat-card .shop-buy-form,
.marketplace-cat-card .marketplace-cat-body > form[action*="/buy/"]{
  margin:0 !important;
  padding:0 !important;
  align-self:end !important;
  justify-self:end !important;
}

.marketplace-cat-card .shop-buy-form button,
.marketplace-cat-card .marketplace-cat-body > form[action*="/buy/"] button{
  white-space:nowrap;
}

@media(max-width:620px){
  .marketplace-cat-card .marketplace-cat-body{
    grid-template-columns:1fr;
  }
  .marketplace-cat-card .shop-buy-form,
  .marketplace-cat-card .marketplace-cat-body > form[action*="/buy/"]{
    justify-self:stretch !important;
  }
  .marketplace-cat-card .shop-buy-form button,
  .marketplace-cat-card .marketplace-cat-body > form[action*="/buy/"] button{
    width:100%;
  }
}


/* Marketplace: the cat name/breed title owns the full first row.
   Breed type + coat stay on the left, while Buy uses the free right side. */
.marketplace-cat-card .marketplace-cat-title{
  grid-column:1 / -1;
  width:100%;
  min-width:0;
  display:block;
  line-height:1.18;
  overflow-wrap:normal;
  word-break:normal;
}

.marketplace-cat-card .marketplace-cat-info{
  grid-column:1;
}

.marketplace-cat-card .shop-buy-form,
.marketplace-cat-card .marketplace-cat-body > form[action*="/buy/"]{
  grid-column:2;
}

@media(max-width:620px){
  .marketplace-cat-card .marketplace-cat-title,
  .marketplace-cat-card .marketplace-cat-info,
  .marketplace-cat-card .shop-buy-form,
  .marketplace-cat-card .marketplace-cat-body > form[action*="/buy/"]{
    grid-column:1;
  }
}


/* =========================================================
   Cattery cards: clean single top frame
   =========================================================
   The card must keep overflow visible for the three-dot menu, but that used
   to expose both the outer card radius and the image-shell radius at the top.
   Let the picture shell overlap the 1px card edge so there is only one clean
   rounded top outline.
*/
.cattery-section .collection-card.care-card{
  border-radius:18px !important;
}

.cattery-section .collection-card.care-card > .cat-picture-shell{
  box-sizing:border-box !important;
  width:calc(100% + 2px) !important;
  margin:-1px -1px 0 !important;
  border-radius:18px 18px 0 0 !important;
  border:1px solid rgba(100,78,57,.13) !important;
  border-bottom:0 !important;
  background:#fff !important;
}

/* Keep the lower card edge connected neatly to the image stage. */
.cattery-section .collection-card.care-card > .collection-body{
  border-radius:0 0 18px 18px;
}


/* =========================================================
   Persistent breeding progress across all Felidex pages
   ========================================================= */
.global-breeding-status{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:2500;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:220px;
  padding:12px 15px;
  border:1px solid rgba(100,78,57,.18);
  border-radius:16px;
  background:rgba(255,250,243,.96);
  box-shadow:0 16px 40px rgba(64,46,31,.16);
  backdrop-filter:blur(14px);
  color:#443225;
}
.global-breeding-status > div{display:flex;flex-direction:column;gap:2px}
.global-breeding-status strong{font-size:13px}
.global-breeding-status span{font-size:12px;color:#76685b}
.global-breeding-dot{
  width:10px;
  height:10px;
  flex:0 0 10px;
  border-radius:50%;
  background:#806247;
  box-shadow:0 0 0 5px rgba(128,98,71,.12);
  animation:felidexBreedingPulse 1.5s ease-in-out infinite;
}
.global-breeding-status.complete .global-breeding-dot{
  animation:none;
  background:#59734f;
}
@keyframes felidexBreedingPulse{
  50%{transform:scale(.75);opacity:.58}
}
@media(max-width:620px){
  .global-breeding-status{
    right:12px;
    left:12px;
    bottom:12px;
    min-width:0;
  }
}

/* =========================================================
   Stable cattery breeding layout + fixed portrait scale shell
   ========================================================= */
.breeding-card{
  grid-template-columns:minmax(240px, 300px) minmax(0, 1fr) !important;
  align-items:start !important;
  gap:24px !important;
}

.breeding-card > :first-child,
.breeding-controls{
  min-width:0;
}

.breeding-controls{
  width:100%;
  display:grid !important;
  grid-template-columns:1fr;
  gap:14px;
  align-content:start;
}

.breeding-controls select{
  width:100%;
  max-width:100%;
  min-width:0 !important;
}

.breeding-controls button{
  justify-self:start;
  width:auto;
}

@media(max-width:900px){
  .breeding-card{
    grid-template-columns:1fr !important;
  }

  .breeding-controls button{
    width:100%;
    justify-self:stretch;
  }
}

/* Keep all cat portraits on a single consistent stage size.
   The files themselves are normalized in Python; these rules keep the shell
   presentation consistent too. */
.cattery-section .cat-picture-shell,
.market-section .cat-picture-shell,
.marketplace-card .cat-picture-shell{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#fff !important;
}

.cattery-section .cat-picture-shell > img,
.market-section .cat-picture-shell > img,
.marketplace-card .cat-picture-shell > img,
.market-section .collection-card > img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#fff !important;
}

/* COI / pedigree risk */
.coi-line{font-size:12px;font-weight:750;margin-top:2px}
.coi-good{color:#536d4d!important}
.coi-high{color:#9a493f!important}
.pair-coi-preview{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border-radius:12px;border:1px solid rgba(100,78,57,.15);background:rgba(255,252,247,.72)}
.pair-coi-preview strong{font-size:13px}
.pair-coi-preview span{font-size:12px;color:#76685b}
.pair-coi-preview.good{border-color:rgba(83,109,77,.24);background:rgba(241,247,239,.78)}
.pair-coi-preview.high{border-color:rgba(154,73,63,.26);background:rgba(255,241,238,.82)}

/* Birth affix provenance + richer pedigree phenotype details */
.cat-name-lockup{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  gap:2px;
}
.birth-affix{
  display:block;
  font-size:11px;
  line-height:1.25;
  color:#887562;
  font-weight:700;
  letter-spacing:.02em;
}
.pedigree-birth-affix{
  margin:2px 0 8px;
  font-size:13px;
}
.ancestor-main .ancestor-affix{
  color:#8a735a;
  font-weight:700;
}

/* ===== Catiopedia ===== */
.catiopedia-page{display:grid;gap:26px;padding-bottom:36px}
.catiopedia-hero,.catiopedia-section{background:rgba(255,250,243,.94);border:1px solid rgba(100,78,57,.16);border-radius:28px;box-shadow:0 18px 45px rgba(68,50,37,.10)}
.catiopedia-hero{padding:34px 38px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.catiopedia-hero h1{font-family:Georgia,serif;font-size:clamp(42px,6vw,72px);line-height:.95;margin:5px 0 14px;color:var(--fx-ink,#2b2119)}
.catiopedia-lead{max-width:760px;font-size:18px;line-height:1.65;margin:0;color:#6f6257}
.catiopedia-jump{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}
.catiopedia-jump a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid rgba(100,78,57,.18);color:var(--fx-brown,#644e39);font-weight:800;text-decoration:none;box-shadow:0 7px 18px rgba(68,50,37,.06)}
.catiopedia-jump a:hover{transform:translateY(-1px);border-color:rgba(100,78,57,.35)}
.catiopedia-section{padding:30px}
.catiopedia-section-heading{display:grid;grid-template-columns:58px 1fr;gap:17px;align-items:start;margin-bottom:24px}
.catiopedia-section-heading h2{font-family:Georgia,serif;font-size:34px;margin:2px 0 8px;color:var(--fx-ink,#2b2119)}
.catiopedia-section-heading p:last-child{margin:0;color:#76695f;line-height:1.6;max-width:850px}
.catiopedia-icon{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--fx-brown,#644e39),var(--fx-brown-deep,#443225));color:#fffaf3;font-family:Georgia,serif;font-size:27px;box-shadow:0 12px 24px rgba(68,50,37,.18)}
.catiopedia-grid{display:grid;gap:18px}.catiopedia-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.catiopedia-card,.catiopedia-wide-card,.catiopedia-note,.catiopedia-care-table,.catiopedia-timeline article{background:#fff;border:1px solid rgba(100,78,57,.15);border-radius:20px}
.catiopedia-card{padding:22px;min-width:0}
.catiopedia-card h3,.catiopedia-wide-card h3,.catiopedia-timeline h3{font-family:Georgia,serif;color:var(--fx-ink,#2b2119);font-size:22px;margin:0 0 10px}
.catiopedia-card p,.catiopedia-card li,.catiopedia-wide-card p,.catiopedia-note,.catiopedia-timeline p{color:#70645a;line-height:1.55}
.catiopedia-card ul{padding-left:20px;margin:10px 0 0}.catiopedia-card li+li{margin-top:8px}
.catiopedia-card-accent{background:linear-gradient(145deg,#fffaf3,#f3eadc);border-color:rgba(179,149,100,.35)}
.catiopedia-meter-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0;padding:12px 14px;border-radius:14px;background:#edf4eb;color:#496947}.catiopedia-meter-row strong{font-size:18px}
.catiopedia-rule{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid rgba(100,78,57,.11);font-size:14px;color:#76695f}.catiopedia-rule strong{color:#4e4035;text-align:right}
.catiopedia-wide-card{margin-top:18px;padding:22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);gap:24px;align-items:center}
.catiopedia-wide-card p{margin:0}.catiopedia-pill-list{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.catiopedia-pill-list span{padding:8px 11px;border-radius:999px;background:#f5eee5;border:1px solid rgba(100,78,57,.12);font-size:13px;font-weight:800;color:#644e39}
.catiopedia-note{margin-top:18px;padding:16px 18px;background:rgba(246,240,231,.9)}.catiopedia-note strong{color:#443225}
.catiopedia-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.catiopedia-timeline article{padding:20px;position:relative;overflow:hidden}.catiopedia-timeline article:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#b39564}.catiopedia-timeline article>span{display:inline-block;margin-bottom:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:900;color:#856d4c}.catiopedia-timeline p{margin:0}
.catiopedia-award{display:flex;align-items:center;gap:9px!important;margin:16px 0 0!important}.ribbon-dot{display:inline-block;width:13px;height:13px;border-radius:50%;box-shadow:0 0 0 5px rgba(179,149,100,.10)}.ribbon-red{background:#8f4438}.ribbon-gold{background:#b39564}
.catiopedia-prize{font-family:Georgia,serif;font-weight:800;font-size:26px;color:#644e39;margin:14px 0}
.needs-title{display:flex;align-items:center;gap:11px}.needs-title h3{margin:0}.needs-symbol{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#f3eadf;color:#644e39;font-weight:900}
.catiopedia-care-table{margin-top:18px;overflow:hidden}.care-row{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;align-items:center;padding:13px 18px;border-top:1px solid rgba(100,78,57,.10);color:#6f6257}.care-row:first-child{border-top:0}.care-head{background:#f5eee5;color:#4f4034;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.care-row strong{color:#443225}
@media(max-width:900px){.catiopedia-hero{align-items:flex-start;flex-direction:column}.catiopedia-jump{justify-content:flex-start}.catiopedia-grid-3,.catiopedia-timeline{grid-template-columns:1fr}.catiopedia-wide-card{grid-template-columns:1fr}.catiopedia-pill-list{justify-content:flex-start}}
@media(max-width:600px){.catiopedia-hero,.catiopedia-section{padding:22px;border-radius:22px}.catiopedia-section-heading{grid-template-columns:46px 1fr}.catiopedia-icon{width:46px;height:46px;border-radius:14px}.catiopedia-section-heading h2{font-size:28px}.care-row{grid-template-columns:1.5fr repeat(3,.7fr);padding:11px 12px;font-size:12px}.catiopedia-jump a{flex:1 1 auto;justify-content:center}}

/* Breeding permit wallet + store */
.permit-wallet{display:inline-flex;align-items:center;gap:6px;background:#f7f0e5;border:1px solid rgba(100,78,57,.18);padding:7px 8px 7px 10px;border-radius:999px;color:#443225;font-weight:800;white-space:nowrap}
.permit-wallet-icon{font-size:12px;color:#7a5c42}.permit-wallet-plus{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;background:#644e39;color:#fff!important;text-decoration:none!important;font:800 18px/1 Georgia,serif}.permit-wallet-plus:hover{transform:translateY(-1px)}
.permit-store{display:flex;align-items:center;justify-content:space-between;gap:30px}.permit-store-copy{max-width:760px}.permit-balance-card{min-width:180px;text-align:center;background:#fffaf3;border:1px solid rgba(100,78,57,.16);border-radius:22px;padding:22px}.permit-balance-card span,.permit-balance-card small{display:block;color:#76695d}.permit-balance-card strong{display:block;font:700 52px/1 Georgia,serif;color:#443225;margin:7px 0}
.permit-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.permit-info-card{padding:24px}.permit-info-card h2,.paypal-permit-panel h2{margin:.3rem 0 .6rem;font-family:Georgia,serif}.paypal-permit-panel{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px}.paypal-permit-panel>div{max-width:760px}.permit-paypal-button{min-width:210px;background:#0070ba;color:#fff;border:0;border-radius:12px;padding:14px 22px;font-weight:800}.permit-paypal-unavailable{max-width:300px;padding:13px 16px;border-radius:12px;background:#f3eee7;color:#6a5b4d}
@media(max-width:900px){.permit-info-grid{grid-template-columns:1fr}.permit-store,.paypal-permit-panel{align-items:stretch;flex-direction:column}.permit-balance-card{min-width:0}.permit-paypal-button{width:100%}}

.estrus-line{
  display:block;
  margin-top:4px;
  color:#765f49;
  font-size:.92rem;
}
.estrus-line.estrus-active{
  color:#8a5d37;
  font-weight:600;
}

/* Catiolight */
.catiolight-card{max-width:760px}.catiolight-buy-row{justify-content:flex-end}.catiolight-cat-action{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border:1px solid rgba(100,78,57,.16);border-radius:12px;background:rgba(246,240,231,.72)}

/* Stud service */
.stud-hero{margin-bottom:18px}
.stud-info-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}
.stud-info-strip>div{background:rgba(255,250,243,.94);border:1px solid rgba(100,78,57,.18);border-radius:16px;padding:14px 16px;box-shadow:0 8px 22px rgba(43,33,25,.06)}
.stud-info-strip strong,.stud-info-strip span{display:block}.stud-info-strip strong{font-family:Georgia,serif;font-size:1.05rem;color:var(--fx-brown-deep)}.stud-info-strip span{margin-top:4px;color:#75685d;font-size:.87rem}
.panel-card{background:rgba(255,250,243,.95);border:1px solid rgba(100,78,57,.18);border-radius:20px;padding:22px;margin:0 0 22px;box-shadow:0 12px 32px rgba(43,33,25,.07)}
.stud-create-form{display:grid;grid-template-columns:2fr 1.1fr .8fr auto;gap:12px;align-items:end;margin-top:16px}
.stud-create-form label,.stud-filter-grid label{display:grid;gap:6px;font-weight:700;color:var(--fx-brown-deep);font-size:.88rem}
.stud-create-form input,.stud-create-form select,.stud-filter-grid input,.stud-filter-grid select,.stud-female-picker select{width:100%;min-height:42px;border:1px solid rgba(100,78,57,.27);border-radius:10px;background:#fff;padding:9px 11px;color:var(--fx-ink)}
.input-suffix{display:flex;align-items:center;border:1px solid rgba(100,78,57,.27);border-radius:10px;background:#fff;overflow:hidden}.input-suffix input{border:0;border-radius:0}.input-suffix span{padding:0 10px;color:#75685d;font-size:.84rem;white-space:nowrap}
.my-stud-listings{display:grid;gap:9px;margin-top:18px}.my-stud-row{display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-radius:13px;background:#fff;border:1px solid rgba(100,78,57,.13)}.my-stud-row.inactive{opacity:.62}.my-stud-row>div strong,.my-stud-row>div span{display:block}.my-stud-row>div span{font-size:.82rem;color:#766a60;margin-top:2px}
.stud-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stud-filter-actions{display:flex;align-items:end;gap:8px}
.stud-female-picker{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:12px;align-items:center;margin:18px 0;padding:14px 16px;border-radius:14px;background:rgba(246,240,231,.8);border:1px solid rgba(100,78,57,.14)}
.stud-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stud-card{display:grid;grid-template-columns:190px 1fr;min-height:260px;border:1px solid rgba(100,78,57,.16);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 9px 24px rgba(43,33,25,.06)}.stud-card-image{background:#fff;display:flex;align-items:center;justify-content:center;padding:10px}.stud-card-image img{width:100%;height:100%;max-height:260px;object-fit:contain;object-position:center}.stud-card-body{padding:16px;display:flex;flex-direction:column;gap:8px}.stud-card-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.stud-card-title h3{margin:0;font-family:Georgia,serif;font-size:1.2rem}.stud-price{white-space:nowrap;color:var(--fx-brown)}.stud-traits{display:flex;flex-wrap:wrap;gap:6px}.stud-traits span{padding:4px 8px;background:var(--fx-cream);border-radius:999px;font-size:.78rem;color:#66584d}.stud-breeder-line{font-size:.86rem;margin:0}.stud-availability{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 10px;border-radius:10px;background:#fbf7f1}.stud-availability span{font-size:.8rem;color:#776b60}.stud-coi-preview{font-size:.86rem;color:var(--fx-brown-deep)}.stud-use-button{margin-top:auto}.tiny{font-size:.76rem;line-height:1.35;margin:0}.success-banner{background:#eff8ef!important;border-color:#9cc89d!important;color:#315b34!important}
@media(max-width:1050px){.stud-info-strip{grid-template-columns:repeat(2,1fr)}.stud-create-form{grid-template-columns:1fr 1fr}.stud-filter-grid{grid-template-columns:repeat(2,1fr)}.stud-grid{grid-template-columns:1fr}}
@media(max-width:700px){.stud-info-strip,.stud-create-form,.stud-filter-grid{grid-template-columns:1fr}.my-stud-row{grid-template-columns:1fr 1fr}.stud-female-picker{grid-template-columns:1fr}.stud-card{grid-template-columns:1fr}.stud-card-image{height:220px}.stud-availability{align-items:flex-start;flex-direction:column}}

/* Offspring + finance pages */
.ancestor-offspring-link{display:inline-flex;align-items:center;justify-content:center;margin-top:6px;padding:5px 9px;border:1px solid rgba(100,78,57,.28);border-radius:999px;background:#fffaf3;color:#644e39;font-size:.74rem;font-weight:700;text-decoration:none;white-space:nowrap}
.ancestor-offspring-link:hover{background:#f6f0e7}
.offspring-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}
.offspring-card{overflow:hidden;border:1px solid rgba(100,78,57,.18);border-radius:18px;background:rgba(255,250,243,.92);box-shadow:0 8px 26px rgba(43,33,25,.07)}
.offspring-image{display:flex;height:190px;align-items:center;justify-content:center;background:#fff;text-decoration:none}
.offspring-image img{width:100%;height:100%;object-fit:contain;object-position:center}
.offspring-card-body{padding:15px}.offspring-card-body h2{margin:0 0 3px;font-size:1.2rem}.offspring-card-body h2 a{color:#2b2119;text-decoration:none}.offspring-card-body p{margin:6px 0}.offspring-affix{color:#806a52;font-size:.82rem;font-weight:700}
.offspring-page .offspring-heading-underlay{padding:22px 24px;border:1px solid rgba(100,78,57,.18);border-radius:22px;background:rgba(255,250,243,.88);box-shadow:0 12px 32px rgba(51,36,25,.09);backdrop-filter:blur(8px);}
.offspring-page .offspring-heading-underlay h1{margin:4px 0 10px;}
.offspring-page .offspring-heading-underlay .muted{color:#6f6257;}
.finance-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0 10px}.finance-summary-card{padding:18px;border:1px solid rgba(100,78,57,.18);border-radius:16px;background:rgba(255,250,243,.94)}.finance-summary-card span{display:block;color:#7a6857;font-size:.82rem;margin-bottom:7px}.finance-summary-card strong{font-family:Georgia,serif;font-size:1.2rem;color:#443225}.finance-note{margin-bottom:22px}.finance-breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.finance-breakdown-card{padding:18px;border:1px solid rgba(100,78,57,.18);border-radius:16px;background:rgba(255,250,243,.92)}.finance-breakdown-card h2,.finance-history h2{margin-top:0}.finance-breakdown-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid rgba(100,78,57,.12)}.finance-history{margin-top:24px}.finance-table-wrap{overflow-x:auto;border:1px solid rgba(100,78,57,.18);border-radius:16px;background:rgba(255,250,243,.94)}.finance-table{width:100%;border-collapse:collapse;min-width:680px}.finance-table th,.finance-table td{text-align:left;padding:12px 14px;border-bottom:1px solid rgba(100,78,57,.1)}.finance-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#715d49}.finance-table tr:last-child td{border-bottom:0}.finance-positive{font-weight:800}.finance-negative{font-weight:800}.pagination-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px}.pagination-row a{color:#644e39;font-weight:700}.empty-state{text-align:center;padding:40px 20px}.empty-state h2{margin-bottom:6px}
@media(max-width:900px){.offspring-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-breakdown-grid{grid-template-columns:1fr}}
@media(max-width:620px){.offspring-grid{grid-template-columns:1fr}.finance-summary-grid{grid-template-columns:1fr}}

/* Breeding permit page readability over the cattery background. */
.permit-glass-box{
  background:rgba(255,250,243,.82)!important;
  border:1px solid rgba(100,78,57,.18)!important;
  border-radius:20px;
  box-shadow:0 12px 32px rgba(43,33,25,.08);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.permit-store-copy.permit-glass-box{padding:24px 28px;}
.permit-info-card.permit-glass-box{padding:24px;}
.paypal-permit-panel.permit-glass-box{padding:26px;}
/* Catiolight now lives with food, drinks and medicine and uses the same card width. */
.product-grid .catiolight-card{max-width:none;}
.product-grid .catiolight-buy-row button{min-width:110px;}

/* 2026-08-21 navigation, Catiopedia breed overview, and staged PayPal UI */
.topnav .navlinks{
  gap:10px;
  align-items:center;
}
.nav-dropdown{
  position:relative;
  flex:0 0 auto;
}
.nav-dropdown summary{
  list-style:none;
  cursor:pointer;
  color:#4b3b2f;
  font-weight:800;
  font-size:14px;
  padding:9px 9px;
  border-radius:10px;
  user-select:none;
}
.nav-dropdown summary::-webkit-details-marker{display:none}
.nav-dropdown summary::after{
  content:"▾";
  font-size:10px;
  margin-left:6px;
  opacity:.72;
}
.nav-dropdown[open] summary,.nav-dropdown summary:hover{background:rgba(100,78,57,.08)}
.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  z-index:80;
  min-width:170px;
  padding:8px;
  border-radius:15px;
  background:#fffaf3;
  border:1px solid rgba(100,78,57,.18);
  box-shadow:0 16px 34px rgba(43,33,25,.16);
}
.nav-dropdown-menu a{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:10px 11px!important;
  border-radius:10px;
  white-space:nowrap;
}
.nav-dropdown-menu a:hover{background:#f3eadf}
.nav-profile-icon{
  width:38px;
  height:38px;
  padding:0!important;
  display:grid!important;
  place-items:center;
  border-radius:50%;
  background:#f3eadf;
  border:1px solid rgba(100,78,57,.18);
  flex:0 0 38px;
}
.nav-profile-icon svg{width:20px;height:20px;fill:#644e39}
.nav-profile-icon:hover{transform:translateY(-1px);background:#eadccc!important}

.catiopedia-breed-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.catiopedia-breed-card{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:13px;
  align-items:center;
  padding:13px;
  min-width:0;
  background:#fff;
  border:1px solid rgba(100,78,57,.14);
  border-radius:18px;
}
.catiopedia-breed-image{
  width:88px;
  height:74px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#fff;
  border:1px solid #eee7dd;
  border-radius:13px;
}
.catiopedia-breed-image img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.catiopedia-breed-image span{font:700 30px/1 Georgia,serif;color:#8c7258}
.catiopedia-breed-card h3{font:700 17px/1.15 Georgia,serif;color:#2b2119;margin:0 0 5px}
.catiopedia-breed-card p{font-size:12px;color:#75685d;margin:0 0 7px}
.catiopedia-breed-card .stage-pill{font-size:10px;padding:4px 7px}
.catiopedia-custom-breeds{margin-top:24px;padding-top:22px;border-top:1px solid rgba(100,78,57,.12)}
.catiopedia-breed-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.catiopedia-breed-list a{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:14px;background:#fff;border:1px solid rgba(100,78,57,.14);text-decoration:none;color:#443225}
.catiopedia-breed-list a span{font-size:12px;color:#76695f}

.paypal-update-badge,.paypal-update-card{
  border:1px solid rgba(179,149,100,.35);
  background:linear-gradient(145deg,#fffaf3,#f2e7d7);
  color:#644e39;
  border-radius:14px;
  font-weight:900;
}
.paypal-update-badge{display:flex;align-items:center;justify-content:center;min-height:45px;padding:10px 16px;text-align:center}
.paypal-update-card{display:flex;flex-direction:column;gap:5px;padding:15px 17px;min-width:210px}
.paypal-update-card strong{color:#443225}
.paypal-update-card span{font-size:13px}

@media(max-width:1180px){
  .catiopedia-breed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .topnav .navlinks{gap:6px}
  .nav-dropdown summary,.topnav .navlinks>a{font-size:13px}
}
@media(max-width:900px){
  .catiopedia-breed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catiopedia-breed-list{grid-template-columns:1fr 1fr}
  .nav-dropdown-menu{position:fixed;left:auto;right:18px;top:auto}
}
@media(max-width:600px){
  .catiopedia-breed-grid,.catiopedia-breed-list{grid-template-columns:1fr}
  .catiopedia-breed-card{grid-template-columns:76px 1fr}
  .catiopedia-breed-image{width:76px;height:68px}
}

/* Finance readability: keep explanatory content on the same translucent ivory surfaces as the ledger cards. */
.finance-page .finance-heading-panel{
  padding:20px 22px;
  border:1px solid rgba(100,78,57,.18);
  border-radius:18px;
  background:rgba(255,250,243,.90);
  box-shadow:0 10px 28px rgba(68,50,37,.06);
}
.finance-page .finance-heading-panel .muted{margin-bottom:0}
.finance-page .finance-note-panel{
  padding:13px 16px;
  border:1px solid rgba(100,78,57,.16);
  border-radius:14px;
  background:rgba(255,250,243,.88);
  margin:12px 0 22px;
}
.finance-page .finance-history-heading{
  display:inline-block;
  padding:10px 14px;
  margin-bottom:10px;
  border:1px solid rgba(100,78,57,.16);
  border-radius:14px;
  background:rgba(255,250,243,.88);
}
.finance-page .finance-history-heading h2{margin:0}

/* Marketplace/cattery search additions */
.market-own-search{display:flex;gap:10px;align-items:center;margin:14px 0 18px}
.market-own-search input[type="search"]{flex:1;min-width:220px;min-height:42px;border:1px solid rgba(100,78,57,.27);border-radius:10px;background:#fff;padding:9px 11px;color:var(--fx-ink)}
.marketplace-filter-grid,.cattery-filter-grid{padding:14px;border:1px solid rgba(100,78,57,.15);border-radius:16px;background:rgba(255,250,243,.86)}
@media(max-width:700px){.market-own-search{align-items:stretch;flex-direction:column}.market-own-search input[type="search"]{min-width:0;width:100%}}


/* Marketplace listing search only: keep the field and submit button together. */
.marketplace-sell-section .market-own-search{display:flex;flex-wrap:wrap;gap:10px;width:100%;}
.marketplace-sell-section .market-own-search-row{display:flex;align-items:stretch;gap:10px;width:100%;min-width:0;}
.marketplace-sell-section .market-own-search-row input[type="search"]{flex:1 1 auto;min-width:0;margin:0;}
.marketplace-sell-section .market-own-search-row button{flex:0 0 auto;white-space:nowrap;}
.marketplace-sell-section .market-own-search .button{flex:0 0 auto;white-space:nowrap;}
.marketplace-sell-section .market-own-search-clear[hidden]{display:none!important;}
.marketplace-sell-section.is-searching .sell-list{opacity:.45;pointer-events:none;transition:opacity .15s ease;}
.marketplace-sell-section .sell-cat-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0;}
.marketplace-sell-section .breed-proposal-lock-tag{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid rgba(127,83,45,.25);border-radius:999px;background:#efe1c9;color:#68482e;font-size:.72rem;font-weight:900;letter-spacing:.03em;white-space:nowrap;}
.marketplace-sell-section .sell-locked-note{color:#7a6858;font-size:.78rem;font-weight:800;white-space:nowrap;}

/* Compact example profile on the home page only. */
.home-catio-scene .catio-landing-hero{grid-template-columns:minmax(0,1fr) 230px;align-items:stretch;}
.home-catio-scene .landing-copy{align-self:stretch;height:100%;min-height:0;box-sizing:border-box;padding:25px 30px 24px;display:flex;flex-direction:column;}
.home-catio-scene .landing-copy h1{font-size:clamp(54px,5.9vw,80px);line-height:.94;margin-bottom:14px;}
.home-catio-scene .landing-slogan{font-size:22px;line-height:1.3;margin-bottom:10px;max-width:940px;}
.home-catio-scene .landing-copy .lead{font-size:16px;line-height:1.45;margin:0 0 12px;}
.home-catio-scene .landing-copy .catio-mood-strip{gap:6px;margin:auto 0 12px;padding-top:16px;}
.home-catio-scene .landing-copy .catio-mood-strip span{padding:6px 9px;font-size:12px;}
.home-catio-scene .landing-copy .landing-actions{gap:8px;margin-top:0;}
.home-catio-scene .landing-copy .landing-actions .button{padding:9px 12px;border-radius:11px;font-size:14px;}
.home-catio-scene .home-preview-card{width:230px;max-width:230px;justify-self:end;align-self:stretch;height:100%;box-sizing:border-box;padding:12px;gap:6px;}
.home-catio-scene .home-preview-shell{gap:7px;height:100%;}
.home-catio-scene .home-preview-image-wrap{min-height:112px;height:112px;padding:6px;border-radius:11px;}
.home-catio-scene .home-preview-image{max-height:106px;}
.home-catio-scene .home-preview-stage{right:7px;top:7px;padding:4px 7px;font-size:9px;}
.home-catio-scene .home-preview-heading strong{font-size:16px;}
.home-catio-scene .home-preview-heading span,.home-catio-scene .home-preview-copy{font-size:10px;line-height:1.3;}
.home-catio-scene .home-preview-body{gap:5px;flex:1;}
.home-catio-scene .home-preview-copy{margin:0;}
.home-catio-scene .home-preview-bars{display:grid;gap:3px;margin:0;}
.home-catio-scene .home-preview-bars .barline{grid-template-columns:1fr auto;font-size:8px;gap:2px;}
.home-catio-scene .home-preview-bars .barline strong{font-size:9px!important;line-height:1!important;}
.home-catio-scene .home-preview-bars .meter{grid-column:1/-1;height:4px;}
.home-catio-scene .home-preview-actions{gap:5px;margin-top:auto;padding-top:3px;}
.home-catio-scene .home-preview-pedigree{padding:5px 7px;font-size:8px;margin:0;}
.home-catio-scene .home-preview-card .care-actions-two{gap:5px;}
.home-catio-scene .home-preview-card .button{padding:6px 8px;border-radius:9px;font-size:9px;min-height:0;}
.home-catio-scene .home-breed-overview .catiopedia-section-heading{margin-bottom:18px;}
@media(max-width:800px){.home-catio-scene .catio-landing-hero{grid-template-columns:1fr;align-items:start}.home-catio-scene .home-preview-card{width:100%;max-width:none;height:auto;justify-self:stretch;}}

/* Generated Egyptian Mau × British Longhair example, scoped to the home page. */
.home-breeding-example{margin-bottom:20px;padding:28px!important;}
.breeding-example-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;}
.breeding-example-heading h2{font-size:clamp(28px,3.4vw,44px);margin:2px 0 8px;}
.breeding-example-heading p{max-width:820px;margin:0;color:#75695f;line-height:1.55;}
.breeding-rule-pill{flex:0 0 auto;padding:9px 12px;border-radius:999px;background:#5c4634;color:#fff;font-size:12px;font-weight:850;letter-spacing:.03em;}
.breeding-scenario-grid{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 44px minmax(0,1fr);gap:10px;align-items:center;}
.breeding-example-card{min-width:0;padding:12px;border:1px solid #e1d8cc;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 10px 28px rgba(67,48,33,.07);}
.breeding-offspring-card{border-color:#bca58e;background:#fffaf2;}
.breeding-role{display:block;min-height:15px;margin:2px 4px 8px;font-size:10px;font-weight:900;letter-spacing:.13em;color:#725844;}
.breeding-example-image{height:180px;border-radius:13px;overflow:hidden;background:#fff;}
.breeding-image-pending{display:grid;place-items:center;width:100%;height:100%;color:#8a7b6d;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg,#fff,#f1e9de);}
.breeding-example-image img{display:block;width:100%;height:100%;object-fit:contain;}
.breeding-example-card h3{font-size:22px;margin:11px 5px 3px;}
.breeding-example-card p{margin:0 5px 5px;color:#766a5f;font-size:13px;}
.breeding-operator{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#5c4634;color:#fff;font-size:24px;font-family:Georgia,serif;box-shadow:0 8px 18px rgba(67,48,33,.18);}
.breeding-arrow{font-family:inherit;font-size:20px;}
.breeding-example-note{margin:20px 0 0;padding:13px 16px;border-radius:13px;background:#f4ecdf;color:#655346;text-align:center;}
.permit-bundle-card{border-color:#cdb89e;background:linear-gradient(145deg,#fffaf2,#f5eadb);}
@media(max-width:900px){.breeding-scenario-grid{grid-template-columns:1fr}.breeding-operator{margin:auto;transform:rotate(90deg)}.breeding-example-heading{flex-direction:column}.breeding-rule-pill{align-self:flex-start}.breeding-example-image{height:220px}}
@media(max-width:520px){.home-breeding-example{padding:20px!important}.breeding-example-image{height:170px}}

.cattery-heading-affix{margin:-8px 0 12px;font-size:clamp(12px,1.2vw,16px);font-weight:750;letter-spacing:.08em;color:#7b6d61;}
.profile-cattery-name{margin-bottom:2px!important}.profile-cattery-affix{display:block;font-size:12px;font-weight:750;letter-spacing:.08em;color:#7b6d61;}
.cat-equipped-accessories{display:grid;grid-template-columns:repeat(4,34px);align-items:center;gap:6px;min-height:36px;margin-top:3px;white-space:nowrap;overflow:hidden;}
.cat-equipped-accessories>span{display:grid;place-items:center;width:34px;height:34px;min-width:0;padding:2px;border:1px solid #e5dccf;border-radius:8px;background:#faf6ef;box-sizing:border-box;overflow:hidden;}
.cat-equipped-accessories img{display:block!important;width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;object-fit:contain!important;background:transparent!important;}
.litter-care-actions{display:flex;align-items:center;gap:5px;margin-top:3px;}
.litter-care-actions form{margin:0;}
.tiny-care-button{min-height:0!important;padding:3px 7px!important;border-radius:7px!important;font-size:8px!important;line-height:1.1!important;box-shadow:none!important;}
.cat-inventory-plus{position:relative;width:max-content;margin-top:4px}.cat-inventory-plus>summary{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#6d513a;color:#fff;font-weight:800;cursor:pointer;list-style:none}.cat-inventory-plus>summary::-webkit-details-marker{display:none}.cat-inventory-menu{position:absolute;z-index:30;left:0;top:28px;width:240px;max-height:220px;overflow:auto;padding:8px;border:1px solid #ddcfbf;border-radius:12px;background:#fffaf3;box-shadow:0 10px 25px #4b382533}.cat-inventory-menu form{margin:3px 0}.cat-inventory-menu button{width:100%;padding:7px 9px!important;font-size:10px!important;text-align:left}
.accessory-shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.accessory-shop-image{height:112px;display:grid;place-items:center;overflow:hidden;border-radius:14px;background:linear-gradient(135deg,#fff,#f7f2ea);}
.accessory-shop-image img{display:block!important;width:92px!important;height:92px!important;max-width:92px!important;max-height:92px!important;object-fit:contain!important;background:transparent!important;}
.accessory-shop-image span{font-size:11px;color:#8b7c70;text-transform:uppercase;letter-spacing:.08em;}
.accessory-buy-form{display:grid;gap:8px;margin-top:auto}.accessory-buy-form select{width:100%;}
@media(max-width:900px){.accessory-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.accessory-shop-grid{grid-template-columns:1fr}}

/* Shared site footer and legal pages. */
.site-footer{width:100%;max-width:none;margin:34px 0 0;box-sizing:border-box;border:0;border-radius:0;background:rgba(73,54,39,.92);color:#fff;box-shadow:0 14px 36px rgba(36,26,18,.14);}
.site-footer-inner{width:100%;margin:0;padding:22px 20px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center;box-sizing:border-box;}
.site-footer-inner>div{display:flex;flex-direction:column;line-height:1;}
.site-footer-inner>div strong{font-family:Georgia,serif;font-size:18px;letter-spacing:.08em;color:#fff;}
.site-footer-inner>div span{margin-top:4px;font-size:8px;font-weight:900;letter-spacing:.16em;}
.site-footer nav{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;}
.site-footer a{color:#fff;text-decoration:none;font-weight:800;font-size:12px;}
.site-footer a:hover{text-decoration:underline;}
.site-footer small{color:#fff;font-size:10px;white-space:nowrap;}
.legal-page{max-width:900px;margin:28px auto;padding:28px;}
.legal-page h1{margin:5px 0 10px;font-size:clamp(38px,6vw,64px);}
.legal-sections{display:grid;gap:12px;margin-top:24px;}
.legal-sections section{padding:18px;border:1px solid rgba(100,78,57,.14);border-radius:14px;background:rgba(255,255,255,.55);}
.legal-sections h2{margin:0 0 7px;font-size:20px;}
.legal-sections p{margin:0;line-height:1.6;color:#6c5e52;}
@media(max-width:700px){.site-footer-inner{grid-template-columns:1fr;text-align:center;}.site-footer-inner>div{align-items:center;}.site-footer small{white-space:normal;}}

/* Cattery search/filter controls belong directly above the cat grid. */
.cattery-toolbar-at-grid{margin:0 0 18px;padding:14px;}
.cattery-toolbar-at-grid .cattery-filter-grid{margin-top:12px;}

/* Breeds page only: compact Felidex Breeders Club proposal editor. */
.breeds-page .breed-proposal-workspace{width:100%;max-width:none;margin:0 0 20px;}
.breeds-page .proposal-list-panel{width:100%;margin-bottom:20px;}
.breeds-page .breed-proposal-form{display:flex;flex-direction:column;gap:16px;}
.proposal-grid{display:grid;gap:14px;align-items:start;}
.proposal-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.proposal-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.proposal-name-code-row{grid-template-columns:minmax(0,2fr) minmax(190px,1fr);}
.proposal-single-row{min-width:0;}
.breed-proposal-form label,.breed-proposal-form strong{font-weight:800;color:#4d3b2d;}
.breed-proposal-form input[type="text"],.breed-proposal-form input[type="search"],.breed-proposal-form textarea,.breed-proposal-form select{width:100%;margin-top:6px;}
.proposal-single-row textarea{min-height:46px;height:46px;resize:vertical;}
.breed-proposal-form small{display:block;margin-top:5px;color:#756a5f;font-weight:400;}
.proposal-inline-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px;}
.proposal-rule-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,.7fr);gap:16px;align-items:end;}
.proposal-odd-eyes{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid rgba(100,78,57,.18);border-radius:12px;background:rgba(255,255,255,.55);}
.proposal-odd-eyes input{width:auto!important;margin:0!important;}
.proposal-cat-pool{padding:14px;border:1px solid rgba(100,78,57,.15);border-radius:16px;background:rgba(255,255,255,.45);}
.proposal-cat-search-label{display:block;margin-top:4px;}
.proposal-cat-search{margin:6px 0 12px!important;padding:11px 13px;border:1px solid #d5d0c6;border-radius:10px;background:#fff;font:inherit;}
.proposal-selected-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(100,78,57,.13);}
.compact-heading{margin-bottom:10px;}
.proposal-cat-options ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:0;}
.proposal-cat-options li{padding:10px 12px;border:1px solid rgba(100,78,57,.13);border-radius:12px;background:rgba(255,255,255,.62);}
.breeds-page .proposal-cat-options li[hidden],.breeds-page .proposal-search-empty[hidden]{display:none!important;}
.breeds-page .proposal-search-empty{margin:8px 0 0;padding:12px 14px;border:1px dashed rgba(100,78,57,.22);border-radius:12px;background:rgba(255,255,255,.45);}
.proposal-cat-options label{display:flex;align-items:flex-start;gap:8px;font-weight:600;}
.proposal-cat-options input{width:auto!important;margin:2px 0 0!important;}
.proposal-cat-disabled{opacity:.48;cursor:not-allowed;}
.proposal-cat-disabled label{cursor:not-allowed;}
.proposal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
@media (max-width:900px){.proposal-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}.proposal-grid-2,.proposal-name-code-row,.proposal-rule-row{grid-template-columns:1fr;}.proposal-cat-options ul{grid-template-columns:1fr;}}
@media (max-width:600px){.marketplace-sell-section .market-own-search-row{gap:8px}.proposal-grid-4{grid-template-columns:1fr}.proposal-inline-selects{grid-template-columns:1fr}}


.proposal-phenotype-slots{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:12px 0 8px;}
.proposal-phenotype-slot{position:relative;min-width:0;min-height:112px;border:1px solid rgba(100,78,57,.18);border-radius:13px;background:rgba(255,250,243,.86);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.proposal-phenotype-slot.empty{flex-direction:column;gap:3px;border-style:dashed;color:#988979;background:rgba(255,255,255,.45);}
.proposal-slot-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(100,78,57,.08);font-weight:800;color:#6b5746;}
.proposal-phenotype-slot.filled{padding:6px 6px 7px;flex-direction:column;justify-content:flex-start;}
.proposal-phenotype-slot img{width:100%;height:68px;object-fit:contain;object-position:center;background:#fff;border-radius:9px;display:block;}
.proposal-slot-meta{width:100%;padding:5px 2px 0;min-width:0;}
.proposal-slot-meta strong,.proposal-slot-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.proposal-slot-meta strong{font-size:.78rem;line-height:1.1;}
.proposal-slot-meta small{font-size:.64rem;color:#786b60;margin-top:2px;}
.proposal-slot-remove{position:absolute;top:5px;right:5px;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center;font-size:18px!important;line-height:1!important;background:rgba(77,59,45,.86)!important;color:#fff!important;border:1px solid rgba(255,255,255,.75)!important;box-shadow:none!important;}
.proposal-slot-help{margin:0 0 10px;font-size:.84rem;}
@media (max-width:1050px){.proposal-phenotype-slots{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (max-width:650px){.proposal-phenotype-slots{grid-template-columns:repeat(3,minmax(0,1fr));}.proposal-phenotype-slot{min-height:102px}.proposal-phenotype-slot img{height:58px}}


/* Breed proposal status + profile creations */
.proposal-status-list{display:grid;gap:12px}.proposal-status-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid rgba(100,78,57,.18);border-radius:14px;background:rgba(255,250,243,.88)}.proposal-status-copy{display:grid;gap:4px;min-width:0}.proposal-status-copy a{color:inherit;text-decoration:none}.proposal-status-copy span,.proposal-status-copy small{color:#74695f}.proposal-withdraw-form{flex:0 0 auto;margin:0}.created-breed-image-wrap{width:100%;height:150px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #eee9df;border-radius:12px;overflow:hidden;padding:10px}.created-breed-image-wrap img{width:100%;height:100%;object-fit:contain;object-position:center;background:#fff}@media(max-width:700px){.proposal-status-row{align-items:flex-start;flex-direction:column}.proposal-withdraw-form,.proposal-withdraw-form .button{width:100%}}
