/* Scoped login theme follows the existing admin workspace palette. */
.admin-login {
    --login-bg:#f6f5f9; --login-card:#fff; --login-text:#292433;
    --login-muted:#756d80; --login-line:#e7e2ed; --login-input:#faf9fc;
    --login-accent:#66548f; --login-soft:#eee8f8;
    --login-danger:#a5313c; --login-danger-bg:#fff1f3;
    margin:0; background:var(--login-bg); color:var(--login-text);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    -webkit-font-smoothing:antialiased; color-scheme:light;
}
.dark .admin-login {
    --login-bg:#141218; --login-card:#211e29; --login-text:#f3eff7;
    --login-muted:#aaa3b5; --login-line:#40394c; --login-input:#282430;
    --login-accent:#cfbcff; --login-soft:#362d48;
    --login-danger:#ffacb7; --login-danger-bg:#3c2530; color-scheme:dark;
}
.admin-login * { box-sizing:border-box; }
.admin-login [hidden] { display:none!important; }
.admin-login button,.admin-login input { font:inherit; }
.admin-login button { cursor:pointer; }
.admin-login .login-icon { display:block; width:20px; height:20px; flex-shrink:0; }
.login-page { min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 32px 24px; }
.login-shell { width:100%; max-width:1080px; display:grid; grid-template-columns:1fr 1fr; overflow:hidden; background:var(--login-card); border:1px solid var(--login-line); border-radius:28px; box-shadow:0 20px 70px #2924330b; }
.login-story { position:relative; overflow:hidden; min-height:596px; padding:40px 44px 30px; background:#514273; color:#fff; display:flex; flex-direction:column; }
.login-brand { display:flex; align-items:center; gap:13px; font-size:24px; font-weight:650; line-height:1.2; }
.login-brand-mark { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:#ffffff18; border:1px solid #ffffff26; }
.login-brand-mark .login-icon { width:25px; height:25px; }
.login-brand small { display:block; color:#d6cbe7; font-size:11px; font-weight:400; letter-spacing:.3px; margin-top:5px; }
.login-story-copy { position:relative; z-index:1; margin-top:48px; }
.login-eyebrow,.login-panel-eyebrow { font-size:10px; letter-spacing:1.8px; text-transform:uppercase; font-weight:600; }
.login-eyebrow { color:#ded2ed; margin:0 0 13px; }
.login-story-copy h2 { font-size:38px; font-weight:550; line-height:1.2; letter-spacing:-1.2px; white-space:pre-line; margin:0; }
.login-story-copy>p:last-child { font-size:13px; line-height:1.8; max-width:330px; color:#e1d8ec; margin:18px 0 0; }
.login-story-footer { font-size:11px; letter-spacing:1px; color:#e1d8ec; margin:12px 0 0; position:relative; z-index:1; }
.login-illustration { position:relative; min-height:218px; flex:1; margin-top:20px; isolation:isolate; }
.login-art-orbit { position:absolute; width:270px; height:270px; left:50%; top:50%; transform:translate(-50%,-48%); border:1px solid #ffffff1c; border-radius:50%; }
.login-art-orbit:after { content:""; position:absolute; inset:25px; border:1px solid #ffffff12; border-radius:50%; }
.login-art-book { position:absolute; bottom:21px; border-radius:8px 14px 14px 8px; box-shadow:0 18px 24px #22133830; border-left:8px solid #00000014; }
.login-art-book:after { content:""; position:absolute; left:0; right:4px; bottom:5px; height:8px; border-radius:0 0 8px 0; background:#f0e8d8; border-bottom:2px solid #b5a58f; }
.login-art-book-back { width:111px; height:155px; left:20%; background:#a792c5; transform:rotate(-16deg); bottom:29px; }
.login-art-book-front { width:132px; height:183px; left:36%; background:#f0e2c7; transform:rotate(7deg); z-index:2; border-left-color:#d6c7ad; }
.login-art-book-side { width:82px; height:142px; left:66%; background:#8f9f92; transform:rotate(20deg); bottom:23px; }
.login-art-book-front>span { display:grid; place-items:center; position:absolute; inset:25px 15px 65px; border:1px solid #b9a780; border-radius:60px 60px 5px 5px; color:#6b587f; }
.login-art-book-front .login-icon { width:40px; height:40px; stroke-width:1.2; }
.login-art-book i { position:absolute; bottom:35px; height:2px; left:20%; right:20%; background:#ffffff60; }
.login-art-book-front i { background:#b9a780; bottom:42px; }
.login-art-book-front b { position:absolute; left:30%; right:30%; bottom:32px; height:2px; background:#b9a780; }
.login-art-spark { position:absolute; color:#e5d9c5; font-size:23px; }
.login-art-spark-one { left:12%; top:30%; }
.login-art-spark-two { right:8%; top:12%; font-size:34px; }
.login-panel { padding:58px 56px 36px; display:flex; flex-direction:column; justify-content:center; }
.login-mobile-brand { display:none; }
.login-panel-eyebrow { margin:0 0 17px; color:var(--login-accent); }
.login-panel h1 { font-size:32px; font-weight:600; letter-spacing:-1px; line-height:1.25; margin:0; }
.login-description { font-size:13px; line-height:1.7; color:var(--login-muted); margin:12px 0 29px; }
.login-form { display:flex; flex-direction:column; gap:21px; }
.login-field label { display:block; font-size:12px; font-weight:550; margin-bottom:9px; }
.login-input-wrap { position:relative; display:flex; align-items:center; min-height:52px; border:1px solid var(--login-line); border-radius:11px; background:var(--login-input); transition:border-color .15s,box-shadow .15s; }
.login-input-wrap:focus-within { border-color:var(--login-accent); box-shadow:0 0 0 3px var(--login-soft); }
.login-input-wrap>svg { position:absolute; left:16px; color:var(--login-muted); pointer-events:none; width:18px; height:18px; }
.login-input-wrap input { border:0!important; background:transparent!important; box-shadow:none!important; outline:none!important; color:var(--login-text); width:100%; min-width:0; padding:15px 15px 15px 46px; border-radius:11px; font-size:13px; line-height:20px; }
.login-input-wrap input::placeholder { color:var(--login-muted); opacity:.8; }
.login-input-wrap:has([aria-invalid=true]) { border-color:var(--login-danger); }
.login-password-wrap input { padding-right:52px; }
.login-password-toggle { position:absolute; right:5px; width:42px; height:42px; display:grid; place-items:center; background:transparent; border:0; border-radius:8px; color:var(--login-muted); }
.login-password-toggle:hover { color:var(--login-accent); background:var(--login-soft); }
.login-remember { display:flex; align-items:center; gap:9px; min-height:24px; font-size:12px; color:var(--login-muted); cursor:pointer; width:fit-content; }
.login-remember input { appearance:auto; width:16px; height:16px; accent-color:var(--login-accent); margin:0; }
.login-submit { display:flex; align-items:center; justify-content:center; gap:12px; min-height:50px; background:#66548f; border:1px solid #66548f; border-radius:11px; color:#fff; font-size:13px; font-weight:550; box-shadow:0 6px 14px #66548f1c; transition:background .15s,transform .15s; }
.login-submit:hover { background:#58477d; }
.login-submit:active { transform:translateY(1px); }
.login-submit:disabled { opacity:.75; cursor:wait; }
.login-submit .login-icon { width:18px; height:18px; }
.login-submit-status:empty { display:none; }
.login-submit-status { font-size:12px; color:var(--login-muted); margin:0; }
.login-spinner { width:17px; height:17px; border:2px solid #ffffff55; border-top-color:#fff; border-radius:50%; animation:login-spin .7s linear infinite; }
.login-panel-footer { display:flex; align-items:center; justify-content:center; gap:8px; font-size:10px; line-height:1.6; color:var(--login-muted); padding-top:26px; margin-top:28px; border-top:1px solid var(--login-line); }
.login-panel-footer .login-icon { width:15px; height:15px; }
.login-copyright { font-size:10px; line-height:1.7; text-align:center; color:var(--login-muted); margin-top:23px; }
.login-error { display:flex; align-items:flex-start; gap:9px; padding:12px 14px; margin-bottom:21px; background:var(--login-danger-bg); border:1px solid var(--login-danger); border-radius:10px; color:var(--login-danger); font-size:12px; line-height:1.6; }
.login-error p { margin:0; }
.login-error .login-icon { width:18px; height:18px; margin-top:1px; }
.admin-login button:focus-visible,.login-remember input:focus-visible { outline:2px solid var(--login-accent); outline-offset:4px; }
@keyframes login-spin { to { transform:rotate(360deg); } }
@media(max-width:900px) {
    .login-page { padding:30px 20px; }
    .login-shell { max-width:460px; display:block; border-radius:23px; }
    .login-story { display:none; }
    .login-panel { padding:34px 32px 29px; }
    .login-mobile-brand { display:flex; align-items:center; gap:11px; margin-bottom:32px; font-size:23px; font-weight:600; }
    .login-mobile-brand .login-brand-mark { background:var(--login-soft); color:var(--login-accent); border-color:var(--login-line); }
    .login-panel-eyebrow { margin-bottom:12px; }
    .login-panel h1 { font-size:29px; }
    .login-panel-footer { margin-top:23px; padding-top:23px; }
}
@media(max-width:380px) {
    .login-page { padding:20px 14px; }
    .login-panel { padding:29px 24px; }
    .login-panel-footer { font-size:10px; text-align:center; }
    .login-mobile-brand { margin-bottom:26px; }
}
@media(prefers-reduced-motion:reduce) {
    .admin-login * { transition:none!important; }
    .login-spinner { animation:none; }
}
