/* Login-only layout; all colors reuse the existing PalmWave palette. */
.login-page { min-height:100vh; min-height:100svh; display:grid; place-items:center; padding:48px 32px; }
.login-page .login-frame { width:100%; max-width:1000px; min-height:610px; display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--pw-border); border-radius:16px; overflow:hidden; background:var(--pw-surface); }
.login-page .login-brand-panel { position:relative; display:flex; flex-direction:column; padding:42px; background:var(--pw-subtle); border-right:1px solid var(--pw-border); overflow:hidden; }
.login-page .login-brand { display:flex; align-items:center; gap:12px; font-size:21px; font-weight:650; letter-spacing:-.5px; }
.login-page .login-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:var(--pw-primary); color:var(--pw-on-primary); font-size:14px; letter-spacing:-.5px; }
.login-page .login-brand-caption { display:block; margin-top:2px; font-size:9px; letter-spacing:2px; color:var(--pw-muted); font-weight:500; }
.login-page .login-intro { margin:auto 0; padding:76px 0 94px; position:relative; z-index:1; }
.login-page .login-eyebrow { display:block; font-size:10px; letter-spacing:1.8px; font-weight:650; color:var(--pw-accent); margin-bottom:18px; }
.login-page .login-intro h2 { font-size:35px; font-weight:550; letter-spacing:-1.4px; line-height:1.2; }
.login-page .login-intro p { margin-top:20px; color:var(--pw-muted); font-size:14px; }
.login-page .login-art { position:absolute; bottom:52px; left:0; width:100%; height:145px; stroke:var(--pw-border); stroke-width:1.4; pointer-events:none; }
.login-page .login-panel-foot { display:flex; gap:14px; font-size:9px; letter-spacing:1.5px; color:var(--pw-muted); position:relative; z-index:1; }
.login-page .login-main { display:flex; flex-direction:column; justify-content:center; padding:56px 54px 26px; min-width:0; }
.login-page .login-form-wrap { width:100%; max-width:360px; margin:auto; padding:20px 0 36px; }
.login-page .login-section-label { display:block; font-size:10px; letter-spacing:1.8px; color:var(--pw-accent); font-weight:650; margin-bottom:12px; }
.login-page .login-heading h1 { font-size:32px; letter-spacing:-1px; font-weight:600; }
.login-page .login-heading p { color:var(--pw-muted); margin-top:10px; }
.login-page .login-form { display:flex; flex-direction:column; gap:22px; margin-top:34px; }
.login-page .pw-field { gap:8px; }
.login-page .pw-field label { font-size:13px; }
.login-page .pw-field input { min-height:46px; font-size:16px; padding:11px 13px; border-radius:8px; }
.login-page .login-submit { width:100%; min-height:46px; margin-top:6px; justify-content:space-between; padding:11px 16px; border-radius:8px; font-size:14px; }
.login-page a.login-submit { margin-top:28px; }
.login-page .login-help { margin-top:24px; font-size:12px; color:var(--pw-muted); line-height:1.6; }
.login-page .login-footer { display:flex; align-items:center; justify-content:center; gap:7px; color:var(--pw-muted); font-size:11px; padding-top:22px; border-top:1px solid var(--pw-border); }
.login-page .login-footer svg { width:14px; height:14px; flex:none; }
.login-page .login-error { margin-top:24px; border-color:var(--pw-danger); }
@media (max-width:760px) {
 .login-page { padding:24px 16px; }
 .login-page .login-frame { max-width:460px; min-height:0; grid-template-columns:1fr; border-radius:12px; }
 .login-page .login-brand-panel { padding:24px 28px; border-right:0; border-bottom:1px solid var(--pw-border); }
 .login-page .login-intro,.login-page .login-art,.login-page .login-panel-foot { display:none; }
 .login-page .login-main { padding:34px 28px 22px; }
 .login-page .login-form-wrap { padding:0 0 30px; }
 .login-page .login-heading h1 { font-size:28px; }
 .login-page .login-form { margin-top:28px; }
}
