:root {
 color-scheme:light;
 --login-bg:#f1f3ee; --login-surface:#fffefa; --login-ink:#233c33;
 --login-muted:#68756d; --login-line:#dce3da; --login-field:#fbfcf8;
 --login-accent:#315f4b; --login-accent-hover:#244a39; --login-soft:#edf2e9;
}
[data-theme="dark"] {
 color-scheme:dark;
 --login-bg:#15211c; --login-surface:#202e26; --login-ink:#e8eee4;
 --login-muted:#abb9ad; --login-line:#435247; --login-field:#25342b;
 --login-accent:#b7d1a6; --login-accent-hover:#cce2bc; --login-soft:#2c3c31;
}
* { box-sizing:border-box; }
body.login-page { margin:0; min-height:100vh; min-height:100dvh; padding:28px clamp(20px,5vw,80px) 22px; display:flex; flex-direction:column; font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--login-bg); color:var(--login-ink); -webkit-font-smoothing:antialiased; }
a { color:inherit; }
button,input { font:inherit; }
button { cursor:pointer; }
svg { display:block; }
[hidden] { display:none !important; }
.login-topbar { width:100%; max-width:1240px; margin:0 auto 32px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.login-brand { display:inline-flex; align-items:center; gap:10px; font-size:25px; font-weight:750; letter-spacing:-1px; text-decoration:none; }
.brand-light { font-weight:400; }
.brand-symbol { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--login-line); border-radius:13px; background:var(--login-surface); color:var(--login-accent); }
.brand-symbol svg { width:29px; height:29px; }
.login-theme { display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid var(--login-line); border-radius:999px; color:var(--login-muted); background:transparent; font-size:12px; }
.login-theme:hover { color:var(--login-ink); background:var(--login-soft); }
.login-theme svg { width:17px; height:17px; }
.login-shell { display:grid; grid-template-columns:1.07fr 1fr; width:100%; max-width:1120px; margin:auto; border:1px solid var(--login-line); border-radius:26px; overflow:hidden; box-shadow:0 24px 70px rgba(33,57,40,.07); background:var(--login-surface); }
.login-story { min-width:0; position:relative; display:flex; flex-direction:column; padding:44px 46px 28px; background:radial-gradient(ellipse at 70% 80%,#325840 0%,transparent 65%),#203e31; color:#f1f5e9; overflow:hidden; }
.story-kicker { display:flex; align-items:center; gap:8px; font-size:9px; letter-spacing:.15em; font-weight:650; color:#c0d1b9; }
.story-kicker > span { width:6px; height:6px; border-radius:50%; background:#c2d99b; flex-shrink:0; }
.story-heading h1 { font-size:clamp(28px,2.8vw,39px); line-height:1.2; letter-spacing:-1.4px; font-weight:500; margin:25px 0 18px; }
.story-heading h1 em { font-family:Georgia,"Times New Roman",serif; font-weight:400; color:#c4d7a7; }
.story-heading p { max-width:350px; margin:0; color:#c2cfc3; font-size:13px; line-height:1.8; }
.story-art { position:relative; display:grid; place-items:center; flex:1; min-height:234px; margin:12px 0 18px; }
.seed-art { position:relative; width:100%; max-width:330px; height:235px; z-index:1; }
.art-orbit { position:absolute; width:232px; height:232px; border:1px solid #c7d8b01c; border-radius:50%; }
.orbit-two { width:304px; height:304px; border-style:dashed; opacity:.65; }
.art-caption { position:absolute; bottom:0; right:0; color:#a5b99e; font-size:8px; letter-spacing:.18em; }
.story-footer { display:flex; align-items:center; gap:18px; border-top:1px solid #c7d8b026; padding-top:19px; font-size:11px; color:#c4d0be; }
.story-footer span+span:before { content:""; display:inline-block; height:3px; width:3px; border-radius:50%; background:#839c7d; vertical-align:middle; margin-right:18px; }
.login-container { min-width:0; padding:64px clamp(28px,4.5vw,64px) 44px; display:flex; flex-direction:column; justify-content:center; }
.login-eyebrow { display:block; color:var(--login-accent); font-size:10px; letter-spacing:.15em; font-weight:700; margin-bottom:16px; }
.login-welcome h2 { margin:0 0 10px; font-size:clamp(25px,2.3vw,31px); line-height:1.2; letter-spacing:-1px; font-weight:650; }
.login-welcome p { margin:0; font-size:13px; color:var(--login-muted); }
.login-form { margin-top:31px; }
.form-group { margin-bottom:21px; }
.form-group label { display:block; font-size:12px; font-weight:650; margin-bottom:8px; }
.login-input-wrap { position:relative; }
.input-icon { position:absolute; left:15px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--login-muted); pointer-events:none; }
.form-group input { display:block; width:100%; height:52px; padding:12px 45px 12px 44px; border:1px solid var(--login-line); border-radius:10px; background:var(--login-field); color:var(--login-ink); font-size:16px; transition:border-color .15s,box-shadow .15s; }
.form-group input::placeholder { color:var(--login-muted); opacity:.85; font-size:13px; }
.form-group input:focus { border-color:var(--login-accent); outline:none; box-shadow:0 0 0 3px var(--login-soft); }
.password-toggle { position:absolute; right:5px; top:4px; width:44px; height:44px; display:grid; place-items:center; padding:10px; border:0; border-radius:8px; color:var(--login-muted); background:transparent; }
.password-toggle:hover { background:var(--login-soft); color:var(--login-ink); }
.password-toggle svg { width:20px; height:20px; }
.eye-slash { display:none; }
.password-toggle[aria-pressed="true"] .eye-slash { display:block; }
.btn-login { display:flex; align-items:center; justify-content:center; gap:16px; width:100%; min-height:52px; padding:12px 18px; border:0; border-radius:10px; background:var(--login-accent); color:#fff; font-size:13px; font-weight:650; box-shadow:0 4px 12px #1b49351c; transition:background .15s,transform .15s; }
[data-theme="dark"] .btn-login { color:#1d3828; }
.btn-login svg { width:18px; height:18px; }
.btn-login:hover { background:var(--login-accent-hover); transform:translateY(-1px); }
.btn-login:active { transform:translateY(0); }
.login-support { margin-top:29px; padding-top:23px; border-top:1px solid var(--login-line); font-size:11px; color:var(--login-muted); text-align:center; }
.login-support > span { font-weight:650; color:var(--login-ink); }
.login-support p { margin:4px 0 0; }
.erro { margin:20px 0 -10px; padding:12px 14px; border:1px solid #dfa9a3; border-radius:10px; color:#963b35; background:#fff0ed; font-size:13px; }
[data-theme="dark"] .erro { background:#49312c; color:#ffc6bc; border-color:#9d6056; }
.login-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 20px; max-width:1240px; width:100%; margin:30px auto 0; font-size:10px; color:var(--login-muted); }
button:focus-visible,a:focus-visible { outline:3px solid var(--login-accent); outline-offset:4px; }
@media(min-width:1500px) { .login-shell { min-height:640px; } }
@media(max-width:800px) {
 body.login-page { padding:20px; }
 .login-topbar { margin-bottom:24px; }
 .login-shell { max-width:480px; grid-template-columns:minmax(0,1fr); border-radius:20px; }
 .login-story { padding:27px 28px; }
 .story-heading h1 { font-size:28px; letter-spacing:-.9px; margin:16px 0 10px; }
 .story-heading p { font-size:12px; }
 .story-art,.story-footer { display:none; }
 .login-container { padding:32px 28px; }
 .login-eyebrow { font-size:9px; margin-bottom:12px; }
 .login-welcome h2 { font-size:26px; }
 .login-form { margin-top:26px; }
 .login-footer { justify-content:center; text-align:center; margin-top:24px; }
 .login-footer > span:last-child { display:none; }
}
@media(max-width:360px) {
 body.login-page { padding:14px; }
 .login-container,.login-story { padding:25px 20px; }
 .login-theme span { display:none; }
 .story-kicker { letter-spacing:.08em; font-size:8px; }
 .story-heading h1 { font-size:25px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; scroll-behavior:auto !important; } }
