/* Scoped login region. The actual site header and milestone styles stay in charge. */
html:has(.account-entry-page){height:100%;overflow:hidden}
body.account-entry-page{--entry-header-height:220px;height:100%;height:100svh;overflow:hidden}
.account-entry-page [hidden]{display:none!important}
.entry-layout{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;gap:20px;height:calc(100svh - var(--entry-header-height));min-height:0;padding:18px;align-items:stretch}
.entry-tools,.entry-impact{position:static;inset:auto;z-index:auto;display:block;width:auto;height:auto;max-height:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px;border:2px solid rgba(69,99,76,.28);border-radius:22px;background:#fffdf4;color:#36513c;box-shadow:0 12px 30px rgba(48,58,46,.14);font:13px Arial,sans-serif;scrollbar-width:thin}
.entry-footer-links{display:none}
.entry-tools .world-list{max-height:none;overflow:visible}
#accountEntry{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;box-shadow:0 0 0 3px #425e48,0 14px 35px #303a2e2e;background:#dce5c8;min-width:0;min-height:0;display:grid;align-items:center}
#accountEntry .scenery{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
#accountEntry .scenery:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#edf0dfed 6%,#edf0df44 80%)}
#accountEntry .scene{position:absolute;border:7px solid #f9f8e9;border-radius:25px;box-shadow:0 18px 55px #2b522426;overflow:hidden;background-image:url('/assets/inkscape/terrain-v2/overview-v1.webp');background-size:1400px auto}
#accountEntry .scene-one{width:370px;height:300px;left:-75px;top:-20px;transform:rotate(-9deg);background-position:60% 25%}
#accountEntry .scene-two{width:370px;height:310px;right:-120px;top:23%;transform:rotate(9deg);background-position:48% 100%}
#accountEntry .scene-three{width:430px;height:250px;left:-70px;bottom:-100px;transform:rotate(7deg);background-position:20% 45%}
#accountEntry .scene span{position:absolute;bottom:16px;left:20px;font-size:13px;font-weight:bold;background:#fffceded;padding:9px 13px;border-radius:22px}
#accountEntry .scene-cat{position:absolute;width:95px;left:45%;top:32%}#accountEntry .scene-two .scene-cat{width:155px;left:25%;top:20%}#accountEntry .scene-three .scene-cat{left:32%;top:10%;width:85px}#accountEntry .scene-friend{position:absolute;width:85px;left:53%;top:10%}
.entry-account-wrap{width:min(100% - 44px,384px);max-height:calc(100% - 28px);margin:14px auto;position:relative;overflow-y:auto;overscroll-behavior:contain;color:#304936;font-family:Arial,sans-serif;scrollbar-width:thin}
#accountEntry .account-card{background:#fffdf7f5;border:1px solid white;border-radius:26px;padding:28px;box-shadow:0 12px 44px #39533120}
#accountEntry .eyebrow{font-size:9px;letter-spacing:1.5px;font-weight:bold;color:#7b8e68}
#accountEntry h1{font:normal 32px/1.1 Georgia,serif;letter-spacing:-.7px;margin:12px 0}
#accountEntry .intro{font-size:13px;line-height:1.6;color:#69795f;margin:0 0 19px}
#accountEntry label{display:block;font-size:12px;font-weight:bold;margin:14px 0 7px}
#accountEntry input{display:block;width:100%;min-width:0;padding:12px;border:1px solid #d9dfcd;border-radius:11px;background:#fffefb;color:#304936;font:16px Arial,sans-serif}
#accountEntry input:focus{outline:2px solid #7eaa78;outline-offset:2px}
#accountEntry a{color:#396843;text-underline-offset:3px}
#accountEntry .forgot{display:block;text-align:right;font-size:12px;margin:12px 0 19px}
#accountEntry .primary{display:block;width:100%;border:0;border-radius:24px;background:#396843;color:#fff;text-align:center;text-decoration:none;padding:14px 15px;font:700 14px Arial,sans-serif;box-shadow:0 4px 0 #294e32;margin-top:20px;cursor:pointer}
#accountEntry .primary:hover{background:#44764e}#accountEntry .primary:disabled{opacity:.6;cursor:wait}
#accountEntry .switch{text-align:center;font-size:12px;margin:24px 0 0}#accountEntry .switch a{font-weight:bold}
#accountEntry #status{font-size:13px;line-height:1.6;margin:16px 0 0}#accountEntry #status:empty{display:none}
#accountEntry .cat-row{padding:14px 0;border-top:1px solid #dce3d4}#accountEntry .cat-row h2{font:24px Georgia,serif;margin:0 0 8px}#accountEntry .cat-summary{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap}#accountEntry .cat-name{min-width:0;overflow:hidden;text-overflow:ellipsis}#accountEntry .cat-separator{flex:0 0 auto;color:#829078;font:14px Arial,sans-serif}#accountEntry .cat-city{flex:0 0 auto;color:#65705e;font:13px Arial,sans-serif}#accountEntry .cat-row p{font-size:13px}#accountEntry .cat-row a{font-size:13px;margin-right:18px}
#accountEntry .cat-row .cat-choice{width:100%;margin:12px 0 4px;color:#fff;font-size:14px}
#accountEntry .logout{display:block;margin:22px auto 0;background:none;border:0;color:#62725c;text-decoration:underline;cursor:pointer}
#accountEntry .extra-cat-adopt{margin:12px 0 0;padding:10px 14px;font-size:13px;background:#edf3e5;color:#396843;border:1px solid #afc29e;box-shadow:none}#accountEntry .extra-cat-adopt:hover{background:#e2ecd6}
body.account-cats-visible #accountEntry .account-card{padding:20px 26px}body.account-cats-visible #accountEntry h1{margin:8px 0}body.account-cats-visible #accountEntry .intro{margin-bottom:10px}body.account-cats-visible #accountEntry .cat-row{padding:10px 0}body.account-cats-visible #accountEntry .cat-row h2{margin-bottom:4px}body.account-cats-visible #accountEntry .cat-choice{margin:7px 0 2px;padding:12px 14px}body.account-cats-visible #accountEntry .logout{margin-top:12px}
.foster-account-preview .foster-label{display:flex;align-items:center;gap:7px;width:max-content;margin:8px 0 10px;padding:6px 10px;border-radius:999px;background:#e8f0df;color:#426249;font-size:12px;font-weight:bold}.foster-account-preview .foster-label img{width:17px;height:17px}.foster-account-preview .foster-adopt{display:block;width:100%;margin:10px 0 0;padding:10px 14px;border:1px solid #afc29e;border-radius:22px;background:#f6f8ee;color:#396843;font-size:13px;font-weight:bold;cursor:pointer}.foster-account-preview .foster-adopt:hover{background:#edf3e5}
.entry-preview-note{text-align:center;background:#fff0c5;padding:6px;border-radius:10px;font-size:10px;margin:0 0 8px}
.cat-kind{font-size:12px;color:#5a7055;margin:4px 0 8px}.foster-adopt{display:block;width:100%;margin:8px 0;padding:9px 12px;border:1px solid #afc29e;border-radius:22px;background:#f6f8ee;color:#396843;font-size:13px;font-weight:bold;cursor:pointer}
.account-entry-page button:focus-visible,.account-entry-page a:focus-visible{outline:3px solid #7eaa78;outline-offset:3px}
#accountEntry .account-card{transition:opacity .14s ease,transform .14s ease}#accountEntry .account-card.account-view-switching{opacity:0;transform:translateY(5px)}#accountEntry .account-card.account-view-arriving{animation:account-view-arrive .22s ease both}@keyframes account-view-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#accountEntry .account-card{transition:none}}
/* Keep the desktop's three panels together on smaller laptops too. Only touch
   screens and genuinely narrow windows need the compact information buttons. */
@media(min-width:900px) and (max-width:1199px) and (hover:hover) and (pointer:fine){
 .entry-layout{grid-template-columns:minmax(160px,200px) minmax(0,1fr) minmax(200px,240px);gap:14px;padding:14px}
 .entry-account-wrap{width:min(100% - 24px,384px)}
 #accountEntry .account-card{padding:18px 22px}
}
@media(max-width:899px), (max-width:1199px) and (hover:none) and (pointer:coarse){
 .account-entry-page .header .info-links{display:none}
 .entry-footer-links{display:flex;min-height:42px;align-items:center;justify-content:center;flex-wrap:wrap;gap:2px 12px;padding:0 12px max(4px,env(safe-area-inset-bottom));font:12px Arial,sans-serif}
 .entry-footer-links a,.entry-footer-links button{color:#496149;padding:6px 2px;text-decoration:none;font:inherit;background:none;border:0;cursor:pointer}
 .entry-footer-links a:hover,.entry-footer-links button:hover{text-decoration:underline}
 .entry-layout{grid-template-columns:minmax(0,1fr);height:calc(100svh - var(--entry-header-height) - 42px - env(safe-area-inset-bottom));padding:10px 18px 14px}
 .entry-tools,.entry-impact{display:none}
 .entry-tools.is-open,.entry-impact.is-open{position:fixed;z-index:55;top:max(12px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));left:max(18px,env(safe-area-inset-left));display:block;width:auto;height:auto;max-height:none;padding:48px 14px 14px}
 .entry-account-wrap{margin:14px auto}
}
@media(max-width:700px){
 body.account-entry-page{--entry-header-height:175px}
 .entry-layout{padding:8px 12px 12px}
 .entry-account-wrap{width:min(100% - 20px,360px);max-height:calc(100% - 16px);margin:8px auto}
 #accountEntry .account-card{padding:18px 20px}
 #accountEntry h1{font-size:27px;margin:8px 0}
 #accountEntry .intro{margin-bottom:11px;line-height:1.45}
 #accountEntry label{margin:9px 0 5px}
 #accountEntry input{padding:10px 11px}
 #accountEntry .forgot{margin:8px 0 11px}
 #accountEntry .primary{margin-top:12px;padding:12px 14px}
 #accountEntry .switch{margin-top:14px}
 #accountEntry .cat-row{padding:9px 0}
 #accountEntry .cat-row h2{font-size:21px;margin-bottom:4px}
 #accountEntry .cat-row p{margin:4px 0}
 #accountEntry .cat-row .cat-choice{margin-top:7px}
 #accountEntry .logout{margin-top:12px}
 body.account-cats-visible #accountEntry .account-card{padding:16px 20px}
 #accountEntry .scene-one{left:-200px}#accountEntry .scene-two{right:-220px}#accountEntry .scene-three{bottom:-150px}
}
/* iOS Safari enlarges text when a phone is turned sideways; keep the designed size. */
html:has(.account-entry-page){-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Short screens (phone landscape, low Safari windows): the page scrolls as a whole
   and the login card keeps room for its natural height instead of being cut off. */
@media(max-height:640px){
 html:has(.account-entry-page){height:auto;overflow-y:auto}
 body.account-entry-page{height:auto;overflow:visible}
 .entry-layout{height:max(calc(100svh - var(--entry-header-height)),520px)}
}
@media(max-height:640px) and (max-width:899px), (max-height:640px) and (max-width:1199px) and (hover:none) and (pointer:coarse){
 .entry-layout{height:max(calc(100svh - var(--entry-header-height) - 42px - env(safe-area-inset-bottom)),500px)}
 .entry-tools.is-open,.entry-impact.is-open{top:max(12px,env(safe-area-inset-top));bottom:max(12px,env(safe-area-inset-bottom))}
}
/* Phone landscape only: a small brand row and a wide, naturally sized form.
   Keep page scrolling available for keyboards, errors and registration fields. */
@media(orientation:landscape) and (max-width:1000px) and (max-height:500px) and (hover:none) and (pointer:coarse){
 body.account-entry-page{--entry-header-height:56px}
 .account-entry-page .header{height:56px;padding:6px max(18px,env(safe-area-inset-right)) 6px max(18px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom-width:2px}
 .account-entry-page .header-brand{min-height:0;gap:9px}
 .account-entry-page .header-cat-frame{width:38px;height:38px;flex-basis:38px;box-shadow:none}
 .account-entry-page .header-cat-frame img{width:31px;height:38px;transform:translateY(3px)}
 .account-entry-page .header h1{font-size:29px;line-height:1}
 .account-entry-page .header .entry-welcome,.account-entry-page .header .header-kicker,.account-entry-page .header .header-intro,.account-entry-page .header .info-links{display:none}
 .account-entry-page .header .adopt-button{margin:0;padding:8px 18px;font-size:14px;min-height:40px}
 .entry-layout{height:auto;min-height:0;padding:4px max(18px,env(safe-area-inset-right)) 6px max(18px,env(safe-area-inset-left))}
 .entry-account-wrap{width:min(100% - 20px,620px);max-height:none;overflow:visible;margin:4px auto}
 #accountEntry .account-card,body.account-cats-visible #accountEntry .account-card{padding:10px 18px;border-radius:20px}
 #accountEntry .eyebrow{display:none}
 #accountEntry h1{font-size:26px;margin:0 0 4px}
 #accountEntry .intro{margin:0 0 4px;line-height:1.3}
 #accountEntry #accountForm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}
 #accountEntry label{margin:0 0 4px}
 #accountEntry input{padding:10px 11px;min-height:42px}
 #accountEntry #confirmField{grid-column:1/-1;margin-top:8px}
 #accountEntry .forgot{grid-column:2;margin:6px 0 0;line-height:18px}
 #accountEntry .primary{grid-column:1/-1;margin-top:8px;padding:10px 14px;min-height:40px}
 #accountEntry .switch{margin:8px 0 0;line-height:16px}
 #accountEntry #status{margin-top:8px}
 .entry-footer-links{min-height:32px;padding-right:max(18px,env(safe-area-inset-right));padding-left:max(18px,env(safe-area-inset-left));font-size:11px}
}
