/* Login-only presentation; the authenticated archive editor retains its layout. */
.login-brand,.login-layout,.login-footer{display:none}
body:has(#login:not([hidden])){background:#f4f1e9;color:#243e34;font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%}
body:has(#login:not([hidden])) main{max-width:1040px;padding:36px 40px 20px}
body:has(#login:not([hidden])) .editor-heading,body:has(#login:not([hidden])) #status{display:none}
body:has(#login:not([hidden])) .login-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}
.login-brand img{width:46px;height:46px;border-radius:50%;object-fit:contain}
.login-brand strong{display:block;font-size:20px;font-weight:650;letter-spacing:3px;line-height:1.4}
.login-brand span{display:block;font-size:11px;letter-spacing:2px;color:#69766a;margin-top:2px}
body:has(#login:not([hidden])) .login-layout{display:grid;grid-template-columns:1.12fr 1fr;overflow:hidden;border-radius:28px;background:#fffefb;box-shadow:0 18px 60px #263e3010;border:1px solid #e5e3d8}
.login-scene{position:relative;min-width:0;min-height:600px;overflow:hidden;background:#274b36}
.login-scene>img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;object-position:47% 50%}
.login-scene:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#102d20b8)}
.scene-caption{position:absolute;bottom:30px;left:30px;z-index:1;color:#fffaf0}
.scene-caption span{font-size:10px;letter-spacing:4px}
.scene-caption p{margin:8px 0 0;font-size:23px;letter-spacing:3px;font-family:"Songti SC","Noto Serif CJK SC",serif}
#login{border:0;border-radius:0;background:transparent;margin:0;padding:52px 40px 30px;align-self:center;min-width:0}
.login-eyebrow{font-size:10px;letter-spacing:2px;color:#6d7b6e}
#login h1{font-size:30px;font-weight:550;letter-spacing:2px;line-height:1.3;margin:7px 0 28px}
#login label{font-size:13px;font-weight:550;margin:18px 0 7px;color:#43584c}
#login input:not([type=hidden]){border:1px solid #d9ded4;border-radius:12px;background:#f8f9f5;height:50px;padding:12px 14px;font-size:16px;line-height:24px;color:#243e34;width:100%;box-shadow:none;transition:border-color .15s}
#login input::placeholder{color:#838b80;font-size:14px}
#login input:focus{outline:2px solid #96b7a5;outline-offset:2px;border-color:#42745b;background:#fff}
.password-control{position:relative}
#login .password-control input{padding-right:68px}
#login #show-password{position:absolute;right:4px;top:3px;height:44px;min-width:56px;padding:0 10px;margin:0;border:0;border-radius:8px;background:transparent;color:#476351;font-size:12px;cursor:pointer}
#login button:focus-visible,#login a:focus-visible,#login summary:focus-visible{outline:2px solid #377655;outline-offset:3px}
#login-feedback:empty{display:none}
#login-feedback{margin:14px 0 0;padding:10px 12px;background:#fff1e9;border-left:3px solid #a34e32;border-radius:5px;color:#883e26;font-size:13px;white-space:pre-wrap}
#caps-warning{display:block;font-size:12px;margin-top:8px;color:#925222}
#login .login-submit{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;height:52px;margin:24px 0 12px;border:1px solid #244d3b;border-radius:12px;background:#244d3b;color:#fffdf5;font-size:16px;font-weight:550;letter-spacing:1px;box-shadow:0 5px 12px #244d3b16}
#login .login-submit:hover{background:#1b3f2f}
#login .login-submit:disabled{opacity:.65;cursor:wait}
#login .login-submit span{font-size:21px;font-weight:400}
.login-recovery{display:block;width:fit-content;margin:0 auto;min-height:44px;line-height:44px;color:#476351;text-decoration:none;font-size:12px}
.login-recovery:hover{text-decoration:underline}
#login .account-help{border:0;border-top:1px solid #eceee6;padding:10px 0 0;margin:10px 0 0;color:#727d70;font-size:11px}
.account-help summary{cursor:pointer;min-height:32px;line-height:32px;text-align:center;list-style:none}
.account-help summary:after{content:" ＋"}
.account-help[open] summary:after{content:" −"}
.account-help summary::-webkit-details-marker{display:none}
.account-help p{margin:4px 0 8px;font-size:12px;line-height:1.8}
body:has(#login:not([hidden])) .login-footer{display:block;text-align:center;color:#7b8375;font-size:10px;letter-spacing:2px;margin:22px 0 0}
@media(max-width:640px){
 body:has(#login:not([hidden])) main{padding:calc(18px + env(safe-area-inset-top)) 20px calc(16px + env(safe-area-inset-bottom));max-width:420px}
 body:has(#login:not([hidden])) .login-brand{margin-bottom:18px;gap:10px}
 .login-brand img{width:40px;height:40px}.login-brand strong{font-size:18px}.login-brand span{font-size:10px}
 body:has(#login:not([hidden])) .login-layout{display:flex;flex-direction:column;border-radius:23px}
 .login-scene{min-height:0;height:220px;flex-shrink:0}
 .login-scene>img{object-position:50% 49%}
 .scene-caption{left:22px;bottom:17px}.scene-caption span{font-size:8px;letter-spacing:3px}.scene-caption p{font-size:19px;letter-spacing:2px;margin-top:3px}
 #login{padding:24px 24px 10px;width:100%;box-sizing:border-box}
 #login h1{font-size:27px;margin:4px 0 18px}.login-eyebrow{font-size:9px}
 #login label{margin:14px 0 6px}#login input:not([type=hidden]){height:48px}
 #login .login-submit{height:50px;margin-top:22px;margin-bottom:5px}
 #login .account-help{margin-top:4px;padding-top:5px}
 body:has(#login:not([hidden])) .login-footer{margin-top:17px}
}
@media(max-width:360px){body:has(#login:not([hidden])) main{padding-left:14px;padding-right:14px}.login-scene{height:185px}#login{padding:20px 20px 8px}}
@media(prefers-reduced-motion:reduce){#login input{transition:none}}
/* Parent entry: retain invitation, recovery and verification modes. */
body.family-entry{margin:0}
body.family-entry:has(#login:not([hidden])) #status{display:block}
.family-entry #login form{display:block}
.family-entry #login label{display:block}
.family-entry #login label input,.family-entry #login .password-control{display:block;margin-top:7px}
.family-entry #login .password-control input{margin-top:0}
.family-entry #intro{font-size:13px;color:#617364;line-height:1.7;margin:-8px 0 18px}
.family-entry .tabs{display:flex;gap:4px;padding:4px;background:#f0f2eb;border-radius:12px;margin:16px 0 18px}
.family-entry .tabs button{flex:1;border:0;background:transparent;color:#536a5a;font:inherit;font-size:13px;min-height:44px;border-radius:9px;cursor:pointer}
.family-entry .tabs button.active{background:#fffefb;box-shadow:0 2px 6px #23452f0a}
.family-entry #forgot,.family-entry .back{display:block;margin:0 auto;min-height:44px;line-height:44px;padding:0;border:0;background:transparent;color:#476351;font:inherit;font-size:12px;text-decoration:none;text-align:center;cursor:pointer}
.family-entry #forgot:hover,.family-entry .back:hover{text-decoration:underline}
.family-entry #status{margin:12px 0 8px;padding:10px 12px;border-radius:8px;background:#edf2e9;color:#36543d;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.family-entry #status.error{background:#fff1e9;color:#883e26;border-left:3px solid #a34e32}
.family-entry #forgotHelp{font-size:14px;line-height:1.8;color:#536a5a;margin:8px 0 20px}
.family-entry #forgotHelp button{display:block;margin-top:18px;border:1px solid #d9ded4;background:#f8f9f5;color:#244d3b;padding:10px 14px;border-radius:10px;font:inherit;min-height:44px;cursor:pointer}
.family-entry .note{font-size:12px;line-height:1.8}
@media(max-width:640px){.family-entry #login{padding-bottom:22px}}
#login input,#login button{box-sizing:border-box}
