.login-page { min-height: 100svh; padding-bottom: 2rem; display: flex; flex-direction: column; }
.login-topbar { width: 100%; max-width: 1180px; }
.login-brand { color: var(--ink); text-decoration: none; }
.login-brand strong { font-size: 1.3rem; letter-spacing: .05em; }
.login-back { color: var(--muted); font-size: .85rem; text-decoration: none; padding: .65rem 0; }
.login-back:hover { color: var(--blue); }
.login-layout { position: relative; z-index: 2; width: 100%; max-width: 1060px; margin: auto; padding: 3rem 0 4rem; display: grid; grid-template-columns: 1fr 430px; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.login-kicker { display: inline-flex; align-items: center; gap: .55rem; color: var(--blue); font-size: .78rem; letter-spacing: .14em; }
.login-kicker i { width: .5rem; height: .5rem; background: var(--mint); box-shadow: 0 0 12px rgba(53,211,154,.5); }
.login-welcome h1 { font-size: clamp(2.1rem, 4vw, 3.4rem); line-height: 1.35; white-space: normal; margin: 1.1rem 0; letter-spacing: .04em; }
.login-welcome h1 span { color: #74dfc0; }
.login-welcome > p { color: var(--muted); font-size: 1rem; line-height: 1.9; }
.login-features { display: flex; flex-wrap: wrap; gap: .8rem 1.25rem; margin-top: 2rem; color: #c4cfcb; font-size: .78rem; }
.login-card { padding: 2rem; background: linear-gradient(155deg, rgba(32,45,61,.98), rgba(13,22,35,.98)); border: 1px solid #536473;  border-radius: 12px; box-shadow: 0 24px 65px rgba(0,0,0,.25); }
.login-emblem { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 1.3rem; font-size: 1.8rem; color: var(--blue); background: #3d3027; border: 1px solid #806046; border-radius: 6px; }
.login-card h2 { margin: .5rem 0; font-size: 1.5rem; }
.login-description { color: var(--muted); font-size: .85rem; margin: 0 0 1.75rem; line-height: 1.6; }
.login-card label { display: block; font-size: .83rem; margin: 1.15rem 0 .5rem; color: #d1dad8; }
.login-card input { width: 100%; min-height: 48px; padding: .75rem .85rem; color: var(--ink); background: #0d1725; border: 1px solid #4a5c6d; border-radius: 8px; font: inherit; font-size: 1rem; }
.login-card input::placeholder { color: #788994; }
.login-card input:focus { outline: 2px solid var(--blue); outline-offset: 2px; }
.login-password-wrap { position: relative; }
.login-password-wrap input { padding-right: 4.2rem; }
#toggle-password { position: absolute; right: 5px; top: 5px; min-width: 52px; min-height: 38px; color: #c7d1d5; background: transparent; border: 0; border-radius: 3px; font: inherit; font-size: .78rem; cursor: pointer; }
#toggle-password:hover { color: var(--blue); background: #223044; }
.login-status { min-height: 1.5rem; color: var(--muted); font-size: .8rem; line-height: 1.5; margin: .9rem 0 .65rem; overflow-wrap: anywhere; }
.login-status.error { color: #ff9e91; }
.login-status.success { color: var(--mint); }
.login-submit { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; padding: .8rem 1rem; background: #237452; border: 1px solid #3caa7b; border-radius: 8px; color: var(--ink); font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer; box-shadow: none; }
.login-submit:hover { background: #2b8861; }
.login-submit:disabled { opacity: .65; cursor: wait; }
.login-note { display: flex; align-items: center; gap: .7rem; border-top: 1px solid #334353; padding-top: 1.1rem; margin-top: 1.6rem; color: #8fa3ab; }
.login-note > span { font-size: 1.5rem; color: #8da878; }
.login-note p { margin: 0; font-size: .73rem; line-height: 1.7; }
.login-page footer { margin: 1rem 0 0; }
.login-page a:focus-visible, .login-page button:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
@media(max-width: 719px) { .login-topbar { flex-direction: row; align-items: center; }.login-brand { min-width: 0; }.login-brand strong { font-size: 1rem; }.login-brand p { font-size: .65rem; }.login-back { font-size: .75rem; }.login-layout { display: block; max-width: 430px; padding: 1.5rem 0 2rem; }.login-welcome { margin-bottom: 1.75rem; }.login-welcome h1 { font-size: 1.9rem; margin: .7rem 0; }.login-welcome h1 br { display: none; }.login-welcome > p { font-size: .85rem; }.login-welcome > p br { display: none; }.login-features { display: none; }.login-card { padding: 1.5rem; }.login-emblem { display: none; } }
@media(prefers-reduced-motion: no-preference) { .login-card { animation: login-enter .18s ease-out; } @keyframes login-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } }

.login-page .farm-horizon { height: min(58vh, 620px); opacity: .85; }

.login-features span { background: #1e3044; border: 1px solid #354d64; border-radius: 20px; padding: .4rem .7rem; }
.login-page .farm-horizon { opacity: .5; }

.login-welcome { padding: 1.5rem; background: rgba(12, 21, 34, .72); border: 1px solid rgba(74, 96, 118, .35); border-radius: 12px; }
