/* Astra — strona logowania (kopia z d:\work\konkursy, astra-login.css).
   login.html nie korzysta z fragments :: shell.
   Lewa kolumna: zielona „historia" z żółwiem i ilustracją; prawa: karta z formularzem.
   Ładowany po astra.css; tokeny stamtąd. Zmiany wobec Konkursów: .wolf-* → .logo-*,
   bez przycisku gościa (Arena) — app2 nie ma wejścia bez konta. */
.login-body { background: var(--bg); }
/* main.login-layout: zerujemy padding/max-width z astra.css (tam main to treść za sidebarem) */
main.login-layout { display: grid; grid-template-columns: 46% 54%; min-height: 100vh; max-width: none; width: 100%; margin: 0; padding: 0; }
.login-story { background: #214b3e; color: #f6f7ef; padding: 43px 58px 32px; display: flex; flex-direction: column; position: relative; overflow: hidden; }
/* Wzory w tle panelu (wzory-tlo.js, style .wzory-tlo w astra.css); treść nad warstwą. */
.login-story > * { position: relative; }
.login-story > .wzory-tlo { position: absolute; }
.login-brand { display: flex; align-items: center; gap: 11px; width: fit-content; font: 750 28px var(--font-head); letter-spacing: -1.5px; color: #f6f7ef; }
.login-brand:hover { text-decoration: none; }
.login-brand > .brand-dot { margin-left: -9px; color: var(--lime); }
.logo-tile { background: var(--logo-tile); width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center; flex-shrink: 0; }
.logo-tile img { object-fit: contain; width: 40px; height: 40px; }
/* Odstępy i ilustracja ściskają się po wysokości okna (w Konkursach zmierzone przy 1920×1080 @125%). */
.story-content { margin: auto 0; padding-top: clamp(16px, 6vh, 62px); position: relative; }
.story-content > .eyebrow { color: #c5d5bb; letter-spacing: 2.2px; }
.story-content h1 { font-size: clamp(39px, 3.75vw, 61px); line-height: 1.19; font-weight: 500; letter-spacing: -2.5px; margin: 24px 0; color: #f6f7ef; }
.story-content h1 em { font-family: Georgia, serif; font-weight: 400; color: var(--lime); }
.story-content > p { color: #c9d8cc; font-size: 14px; line-height: 1.8; }
.story-illustration { margin: 12px -10px 8px auto; max-width: 390px; }
.story-illustration img { display: block; width: auto; max-width: 100%; height: auto; max-height: clamp(150px, calc(100vh - 575px), 460px); margin-left: auto; }
.story-bottom { display: flex; align-items: center; gap: 12px; color: #c2d1c3; font-size: 10px; letter-spacing: .4px; margin-top: 22px; }
.story-line { width: 23px; height: 1px; background: #a6bb8d; }
.story-index { margin-left: auto; font-size: 11px; }
.login-form-side { padding: 38px 45px 30px; display: flex; flex-direction: column; min-width: 0; }
.login-top, .login-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--muted); font-size: 10px; }
.login-top > span { letter-spacing: 1.2px; text-transform: uppercase; }
.login-card { width: 100%; max-width: 365px; margin: auto; padding: 45px 0 40px; }
.login-logo { height: 83px; width: 83px; display: grid; place-items: center; border-radius: 23px; background: var(--logo-tile); margin-bottom: 26px; border: 1px solid var(--logo-tile-line); }
.login-logo img { width: 64px; height: 64px; object-fit: contain; }
.login-eyebrow { color: #7c886e; letter-spacing: 1.8px; display: block; margin-bottom: 12px; }
.login-card h2 { font-size: 27px; letter-spacing: -1.1px; line-height: 1.35; font-weight: 750; }
.login-description { font-size: 13px; color: var(--muted); margin-top: 10px; margin-bottom: 28px; }
.login-card .alert { margin: 0 0 18px; }
.field-group { margin-top: 18px; }
.field-group label { font-size: 12px; font-weight: 600; display: block; margin-bottom: 8px; }
.field-shell { display: flex; align-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); transition: border-color .18s, box-shadow .18s; position: relative; }
.field-shell:focus-within { border-color: #8da56c; box-shadow: 0 0 0 3px #a4bb7933; }
.field-shell > svg.icon { width: 17px; height: 17px; margin-left: 14px; color: #86917d; stroke-width: 1.5; }
.field-shell input { border: 0; background: none; padding: 14px 12px; width: 100%; min-width: 0; font-size: 14px; line-height: 1.5; outline: 0; box-shadow: none; min-height: 0; }
.field-shell input:focus-visible { outline: 0; box-shadow: none; border: 0; }
.field-shell button { background: none; border: 0; min-width: 44px; min-height: 48px; display: grid; place-items: center; border-radius: 7px; color: #7b8870; }
.field-shell button:hover { background: var(--soft); }
.field-shell button svg.icon { width: 17px; height: 17px; stroke-width: 1.5; }
.login-help-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0 20px; font-size: 11px; color: var(--muted); }
.login-submit { background: #214b3e; color: #f4f6e9; border: 0; border-radius: 8px; min-height: 49px; width: 100%; display: flex; align-items: center; justify-content: center; gap: 20px; font-size: 13px; font-weight: 600; }
.login-submit svg.icon { width: 17px; height: 17px; }
.login-submit:hover { background: #2d5d4a; box-shadow: 0 5px 14px #214b3e18; }
.login-footer { margin-top: auto; }
.login-footer b { color: #87a465; margin-left: 4px; }

[data-theme=dark] .login-story { background: #1a3a2e; }
[data-theme=dark] .login-logo { background: var(--logo-tile); border-color: var(--logo-tile); }

@media (min-width: 1650px) {
    .login-story { padding-left: 80px; padding-right: 80px; }
    .login-form-side { padding: 45px 65px; }
    .login-card { max-width: 410px; }
    .login-card h2 { font-size: 31px; }
    .story-content h1 { font-size: 65px; }
    .story-illustration { max-width: 460px; }
    .login-submit { min-height: 53px; }
}
@media (max-width: 1100px) {
    .login-story { padding: 35px; }
    .login-form-side { padding: 35px 30px; }
    .login-top > span { display: none; }
    .login-top { justify-content: flex-end; }
    .story-content h1 { font-size: 42px; letter-spacing: -1.8px; }
    .login-card h2 { font-size: 25px; }
    .login-layout { grid-template-columns: 43% 57%; }
    .story-content { padding-top: clamp(16px, 5vh, 40px); }
}
@media (max-width: 760px) {
    /* na telefonie panel to wąski pasek z logo — wzory byłyby w nim tylko skrawkami */
    .login-story > .wzory-tlo { display: none; }
    main.login-layout { display: block; min-height: 100dvh; padding: 0; }
    .login-story { padding: 20px 22px; min-height: auto; }
    .login-brand { font-size: 24px; }
    .logo-tile { width: 38px; height: 38px; border-radius: 10px; }
    .logo-tile img { width: 32px; height: 32px; }
    .story-content, .story-bottom, .login-top, .login-logo { display: none; }
    .login-form-side { padding: 0 22px 25px; min-height: calc(100dvh - 80px); }
    .login-card { max-width: 400px; padding: 32px 0 28px; }
    .login-card h2 { font-size: 26px; }
    .login-description { font-size: 13px; margin-bottom: 24px; }
    .field-shell input { font-size: 16px; padding: 13px 12px; } /* iOS: <16px = zoom */
    .login-submit { font-size: 14px; min-height: 51px; }
}
