/* ========================================================================== 
   LOGIN - FONDO Y DISEÑO
   Para reemplazar la imagen: app/static/img/login-background.svg
   También puedes cambiar la ruta en .login-page background-image.
   ========================================================================== */
.login-page {
  min-height:100vh; margin:0; display:grid; place-items:center; padding:24px;
  background-image:
    linear-gradient(135deg, var(--login-overlay-start), var(--login-overlay-end)),
    url('/static/img/login-background.svg');
  background-size:cover; background-position:center; background-repeat:no-repeat;
}
.login-shell { width:min(430px,100%); }
.login-brand { text-align:center; color:#fff; margin-bottom:18px; }.login-brand .brand-mark{margin:0 auto 10px}.login-brand h1{margin:0;font-size:28px}.login-brand p{margin:7px 0 0;color:#dbe4ec;font-size:14px}
.login-card { background:var(--login-card-bg); color:var(--login-card-text); border-radius:14px; padding:28px; box-shadow:0 18px 50px rgba(0,0,0,.28); }
.login-card h2{margin:0 0 6px;font-size:20px}.login-card .subtitle{margin:0 0 20px;color:var(--muted);font-size:13px}
.login-field{display:flex;flex-direction:column;gap:7px;margin:13px 0}.login-field label{font-size:12px;font-weight:700;color:#495565}.login-field input{width:100%;border:1px solid var(--login-input-border);background:var(--login-input-bg);border-radius:9px;padding:12px}.login-field input:focus{outline:2px solid color-mix(in srgb,var(--primary) 30%,transparent);border-color:var(--primary)}
.login-button{width:100%;border:0;background:var(--primary);color:#fff;border-radius:9px;padding:12px;margin-top:8px;font-weight:750}.login-button:hover{background:var(--primary-hover)}
.login-footer{text-align:center;color:#dbe4ec;font-size:12px;margin-top:16px}.login-alert{background:var(--danger-soft);border:1px solid #f0c5c0;color:var(--danger);border-radius:8px;padding:10px 11px;font-size:13px;margin-bottom:13px}

/* Diseño editorial configurable */
.login-page{display:block;padding:0;color:var(--login-text,#172334);background:var(--login-background,#fff)}.login-editorial{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr)}.login-story{padding:54px clamp(34px,7vw,105px);display:flex;flex-direction:column;justify-content:space-between;background:color-mix(in srgb,var(--login-accent,#e86917) 8%,var(--login-background,#fff))}.login-brand-row{display:flex;align-items:center;gap:14px}.login-brand-row strong{display:block;font-size:19px}.login-brand-row small{display:block;color:var(--login-muted,#647184);margin-top:3px}.editorial-mark{width:42px;height:42px;border-radius:10px;background:var(--login-accent,#e86917);color:#fff;display:grid;place-items:center;font-weight:800}.brand-image{max-width:150px;max-height:60px;object-fit:contain}.login-story-copy{max-width:650px;padding:80px 0}.login-story-copy .eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--login-muted,#647184);font-weight:700}.login-story-copy h1{font-size:clamp(44px,5.2vw,78px);line-height:.98;letter-spacing:-.055em;margin:14px 0 25px}.login-story-copy h1 span{color:var(--login-accent,#e86917)}.login-story-copy>p:last-child{font-size:17px;line-height:1.7;color:var(--login-muted,#647184);max-width:540px}.login-form-side{display:grid;place-items:center;padding:36px;background:var(--login-surface,#fff)}.editorial-card{width:min(430px,100%);box-shadow:none;border:1px solid #e5e9ef;padding:36px}.editorial-card h2{font-size:26px}.editorial-footer{text-align:center;color:var(--login-muted,#647184);font-size:12px;margin-top:23px}@media(max-width:900px){.login-editorial{grid-template-columns:1fr}.login-story{min-height:330px;padding:30px}.login-story-copy{padding:40px 0}.login-story-copy h1{font-size:44px}.login-form-side{padding:28px 18px}}
