/* 登入頁獨立視覺：所有元件均限於 login-panel，保留登入後介面。 */
body.workspace-body:has(#login-panel:not([hidden])){overflow:auto;background:#f5f3ed}
#login-panel{--login-green:#214b3d;--login-muted:#61736a;display:grid;grid-template-columns:1fr 1fr;width:min(1040px,calc(100% - 64px));min-height:620px;margin:40px auto;border:1px solid #dce3d9;border-radius:30px;overflow:hidden;box-shadow:0 24px 72px #2544350d;background:#fffefa}
#login-panel .login-welcome{position:relative;isolation:isolate;min-width:0;display:flex;flex-direction:column;padding:36px 42px 28px;background:#e5eddf;overflow:hidden}
#login-panel .login-welcome::before{content:"";position:absolute;z-index:-1;bottom:-90px;right:-110px;width:480px;height:480px;border:1px solid #cad9c4;border-radius:50%;background:#dbe7d4}
#login-panel .login-welcome::after{content:"";position:absolute;z-index:-1;top:80px;right:-135px;width:330px;height:330px;border:1px solid #d1dec9;border-radius:50%}
#login-panel .login-wordmark{display:block;color:var(--login-green);font-size:27px;font-weight:800;letter-spacing:-.04em}
#login-panel .login-wordmark span{display:block;margin-top:4px;font-size:11px;letter-spacing:.12em;font-weight:500;color:#536b56}
#login-panel .login-intro{position:relative;z-index:1;margin-top:44px}
#login-panel .login-kicker{display:block;margin:0 0 12px;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--login-muted)}
#login-panel .login-intro h2{margin:0;font-size:clamp(38px,4vw,52px);font-weight:700;line-height:1.2;letter-spacing:-.04em;color:var(--login-green)}
#login-panel .login-intro p{margin:17px 0 0;font-size:14px;line-height:1.8;color:#566f5a}
#login-panel .login-mascot{display:grid;place-items:center;flex:1;min-height:220px;margin:-12px -22px -6px}
#login-panel .login-mascot img{display:block;width:min(100%,300px);height:260px;object-fit:contain;filter:drop-shadow(0 14px 14px #3750391a)}
#login-panel .login-welcome-note{position:relative;font-size:11px;letter-spacing:.08em;color:#566f5a}
#login-panel .login-form-panel{display:flex;flex-direction:column;min-width:0;padding:36px 52px 26px}
#login-panel .login-access-label{display:flex;align-items:center;gap:7px;align-self:flex-end;font-size:11px;color:var(--login-muted)}
#login-panel .login-access-label>span{width:6px;height:6px;border-radius:50%;background:#66866b}
#login-panel .login-form-content{width:100%;margin:auto 0;padding:40px 0}
#login-panel h1{margin:0;font-size:34px;line-height:1.25;font-weight:750;letter-spacing:-.04em;color:var(--login-green)}
#login-panel .login-description{margin:16px 0 30px;font-size:14px;line-height:1.8;color:var(--login-muted)}
#login-panel #login-form{display:block;margin:0}
#login-panel #login-form label{display:block;margin-bottom:10px;font-size:13px;font-weight:650;color:#304b3e}
#login-panel #login-code{display:block;width:100%;height:54px;padding:0 16px;border:1px solid #cbd5cc;border-radius:11px;background:#fff;font:inherit;font-size:16px;color:#214b3d;transition:border-color .15s,box-shadow .15s}
#login-panel #login-code::placeholder{color:#839087;font-size:14px;opacity:1}
#login-panel #login-code:hover{border-color:#8ba38f}
#login-panel #login-code:focus-visible{outline:3px solid #adc9ac;outline-offset:3px;border-color:#396b4e;box-shadow:0 0 0 1px #396b4e}
#login-panel #login-code:user-invalid{border-color:#b34e36;background:#fffaf6}
#login-panel .login-field-hint{margin:9px 0 23px;font-size:12px;line-height:1.5;color:var(--login-muted)}
#login-panel #login-form button{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;min-height:54px;padding:14px 18px;border:1px solid #214b3d;border-radius:11px;background:#214b3d;color:#fff;font:inherit;font-size:14px;font-weight:650;transition:background .15s,transform .15s,box-shadow .15s}
#login-panel #login-form button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#login-panel #login-form button:hover{background:#173f31;box-shadow:0 6px 16px #214b3d1c}
#login-panel #login-form button:active{transform:translateY(1px)}
#login-panel #login-form button:focus-visible{outline:3px solid #c98450;outline-offset:4px}
/* 現有登入程序會填寫狀態文字；保持可讀、可朗讀，亦預留位置減少跳動。 */
#login-panel #login-status{min-height:22px;margin:12px 0 0;font-size:12px;line-height:1.65;overflow-wrap:anywhere;color:#84522e}
#login-panel #login-status:not(:empty){padding:10px 12px;border-left:3px solid #d89a63;border-radius:5px;background:#fbf1e6}
#login-panel .login-help{display:flex;align-items:flex-start;gap:10px;margin-top:20px;padding-top:21px;border-top:1px solid #e6e9e0}
#login-panel .login-help-icon{display:grid;place-items:center;flex-shrink:0;width:19px;height:19px;margin-top:2px;border:1px solid #8b9a8e;border-radius:50%;color:#61736a;font-size:11px}
#login-panel .login-help p{margin:0;color:#455f4e;font-size:12px;line-height:1.8}
#login-panel .login-help p span{color:var(--login-muted)}
#login-panel .login-footer{margin:0;font-size:10px;line-height:1.6;letter-spacing:.03em;color:#6a7c70}
#login-panel .login-footer span{margin:0 7px;color:#c98450}
/* 窄螢幕保留品牌與人物，表格全闊並可自然捲動。 */
@media(max-width:760px){#login-panel{width:calc(100% - 32px);grid-template-columns:1fr;min-height:0;margin:24px auto;border-radius:24px}#login-panel .login-welcome{min-height:228px;padding:26px 28px}#login-panel .login-wordmark{font-size:24px}#login-panel .login-wordmark span{font-size:10px}#login-panel .login-intro{margin-top:22px;width:60%}#login-panel .login-intro h2{font-size:32px}#login-panel .login-intro h2 br{display:none}#login-panel .login-intro p{margin-top:10px;font-size:12px}#login-panel .login-intro .login-kicker{display:none}#login-panel .login-mascot{position:absolute;right:6px;bottom:7px;min-height:0;width:40%;margin:0}#login-panel .login-mascot img{height:180px;width:100%}#login-panel .login-welcome-note{display:none}#login-panel .login-form-panel{padding:23px 28px 24px}#login-panel .login-form-content{padding:26px 0}#login-panel h1{font-size:30px}#login-panel .login-description{margin-bottom:24px}#login-panel .login-welcome::before{width:330px;height:330px;bottom:-160px;right:-60px}}
@media(max-width:380px){#login-panel{width:calc(100% - 20px);margin:16px auto}#login-panel .login-welcome{padding:24px 22px}#login-panel .login-form-panel{padding:23px 22px}#login-panel .login-intro h2{font-size:28px}#login-panel .login-mascot{right:0;width:39%}}
@media(prefers-reduced-motion:reduce){#login-panel input,#login-panel button{transition:none!important}}
