/* Login page component styles. Shared tokens remain in style.css. */
.login-page { --login-blue:var(--color-brand); --login-page-bg:var(--color-page-bg); --login-stone:var(--color-border); --login-ivory:var(--color-surface); --login-focus-halo:var(--color-brand-soft); --login-ink:var(--color-ink); --login-muted:var(--color-muted); position:relative; isolation:isolate; display:grid; place-items:center; min-height:100svh; overflow-x:hidden; overflow-y:auto; padding:clamp(1.5rem,5vw,4rem) 1.25rem; background:var(--login-page-bg) !important; font-family:var(--font-product); }
.login-shader { position:fixed; z-index:-1; inset:0; width:100%; height:100%; pointer-events:none; opacity:.9; }
.login-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(20rem,25rem); grid-template-rows:minmax(26rem,1fr) auto; align-items:center; gap:clamp(3.5rem,7vw,5.5rem) clamp(2.5rem,5vw,5rem); width:min(100%,64rem); }
.login-intro { display:flex; flex-direction:column; align-self:stretch; justify-content:center; min-height:26rem; padding:1.25rem 1.5rem 1.25rem 0; }
.login-brand { display:inline-flex; align-items:center; width:max-content; margin-bottom:clamp(2rem,4vw,3rem); color:var(--login-blue); }
.login-brand__mark { display:block; width:2.35rem; height:2.35rem; background:currentColor; -webkit-mask:url('/logo.svg') center / contain no-repeat; mask:url('/logo.svg') center / contain no-repeat; }
.login-intro__copy { max-width:30rem; }
.login-intro__copy .login-eyebrow { margin-bottom:0; }
.login-eyebrow { margin:0 0 .65rem; color:var(--login-ink); font-size:.68rem; font-weight:780; letter-spacing:.14em; line-height:1; text-transform:uppercase; }
.login-eyebrow__brand { color:var(--login-blue); }
.login-intro__copy h1 { max-width:30rem; margin:0; color:var(--login-ink); font-size:clamp(3rem,4.25vw,4rem); font-weight:800; letter-spacing:-.045em; line-height:1.04; }
.login-intro__copy > p:last-child { max-width:27rem; margin:1.2rem 0 0; color:var(--login-muted); font-size:1.2rem; line-height:1.5; }
.login-intro__meta { display:flex; align-items:center; gap:.5rem; margin:0; color:var(--login-muted); font-size:.76rem; font-weight:650; }
.login-intro__meta svg { color:var(--login-blue); }
.login-card { position:relative; width:100%; padding:clamp(1.65rem,3vw,2.35rem); border:1px solid var(--login-stone); border-radius:1rem; background:var(--login-page-bg) !important; color:var(--login-ink); box-shadow:.5rem .5rem 0 var(--login-focus-halo); }
.login-card__header { margin-bottom:1.75rem; }
.login-card__header h2 { margin:0; color:var(--login-ink); font-size:1.6rem; font-weight:780; letter-spacing:-.04em; line-height:1.1; }
.login-card__header > p:last-child { margin:.65rem 0 0; color:var(--login-ink); font-size:1.05rem; font-weight:680; line-height:1.35; }
.login-card .text-base-content\/50,
.login-card .text-base-content\/60,
.login-card .text-base-content\/70 { color:var(--analytics-muted) !important; opacity:1 !important; }
.login-form { display:grid; gap:1.15rem; }
.login-field { display:grid; gap:.45rem; }
.login-field label { color:var(--login-ink); font-size:.76rem; font-weight:700; }
.login-field__label-row { display:flex; justify-content:space-between; align-items:center; }
.login-card .input { width:100%; min-height:3.2rem; padding-inline:.9rem; border:1px solid var(--login-stone); border-radius:.6rem; background:var(--login-ivory); color:var(--login-ink); }
.login-card .input::placeholder { color:var(--login-muted); opacity:.72; }
.login-card .input:hover:not(:focus) { border-color:var(--color-ember); }
.login-card .input:focus { border-color:var(--login-blue); outline:none; box-shadow:0 0 0 5px var(--login-focus-halo) !important; }
.login-password { position:relative; }
.login-password .input { padding-right:3rem; }
.login-password__toggle { position:absolute; top:50%; right:.35rem; display:grid; place-items:center; width:2.35rem; height:2.35rem; transform:translateY(-50%); border-radius:.5rem; color:var(--login-muted); }
.login-password__toggle:hover { color:var(--login-blue); background:transparent; }
.login-password__toggle:focus-visible { outline:2px solid var(--login-blue); outline-offset:2px; }
.login-form__options { display:flex; align-items:center; justify-content:space-between; }
.login-checkbox { display:inline-flex; align-items:center; gap:.6rem; color:var(--login-muted); font-size:.75rem; font-weight:560; cursor:pointer; }
.login-checkbox .checkbox { width:1.1rem; height:1.1rem; border-color:var(--login-stone); }
.login-checkbox .checkbox:checked { background:var(--login-blue); border-color:var(--login-blue); }
.login-submit { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; margin-top:.25rem; border-radius:var(--action-radius); }
.login-copyright { grid-column:1 / -1; width:100%; margin:0; color:var(--login-muted); font-size:1rem; text-align:center; }
.login-copyright a { color:inherit; text-decoration:none; }
.login-copyright a:hover { color:var(--login-blue); text-decoration:underline; }
@media (max-width: 760px) {
    .login-page { padding:1.25rem .9rem; }
    .login-shell { display:flex; flex-direction:column; align-items:stretch; gap:2.5rem; width:min(100%,30rem); }
    .login-intro { align-items:flex-start; min-height:0; gap:1.25rem; padding:0 .2rem; }
    .login-intro .login-brand { margin-bottom:2.5rem; }
    .login-intro__copy { max-width:none; }
    .login-intro__copy h1 { font-size:2.6rem; }
    .login-intro__copy > p:last-child { margin-top:.7rem; font-size:1rem; }
    .login-intro__meta { display:none; }
    .login-card { padding:1.35rem; border-radius:1rem; }
    .login-card__header { margin-bottom:1.35rem; }
    .login-copyright { order:3; margin:0; font-size:.875rem; }
}
@media (prefers-reduced-motion: reduce) { .login-shader { opacity:.55; } }
