/* Standalone authentication uses the same foundations as public and workspace pages. */
.signin-page { margin: 0; min-height: 100svh; display: grid; place-items: center; border-top: 5px solid var(--apasa-forest); background: var(--apasa-canvas); color: var(--apasa-ink); font: 16px/1.65 var(--apasa-font); }
.signin-page *, .signin-page *::before, .signin-page *::after { box-sizing: border-box; }
.signin-page :focus-visible { outline: 3px solid var(--apasa-focus); outline-offset: 3px; }
.signin-main { width: 100%; max-width: 460px; padding: 40px 22px; }
.signin-brand { display: block; width: max-content; margin: 0 auto 32px; color: var(--apasa-forest); font-size: 34px; font-weight: 800; letter-spacing: -.045em; line-height: 1.1; text-decoration: none; }
.signin-brand span { display: block; width: 32px; height: 3px; background: var(--apasa-gold); margin: 10px auto 0; }
.signin-card { background: var(--apasa-surface); border: 1px solid var(--apasa-border); border-radius: var(--apasa-radius); padding: 32px; box-shadow: var(--apasa-shadow); }
.signin-card h1 { font-size: 32px; line-height: 1.2; letter-spacing: -.035em; margin: 0 0 28px; }
.signin-form { display: grid; gap: 9px; padding: 0; }
.signin-form label { font-size: 14px; font-weight: 650; }
.signin-form input { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #aebeb5; border-radius: 7px; font: inherit; padding: 11px 12px; background: var(--apasa-surface); color: var(--apasa-ink); margin-bottom: 10px; }
.password-field { position: relative; }
.password-field input { padding-right: 76px; }
.password-toggle { position: absolute; right: 4px; top: 2px; min-height: 44px; background: transparent; color: var(--apasa-green); border: 0; font: 600 13px var(--apasa-font); padding: 8px 12px; cursor: pointer; }
.password-toggle[hidden] { display: none; }
.signin-submit { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; padding: 12px 18px; min-height: 48px; border: 1px solid var(--apasa-forest); border-radius: 7px; background: var(--apasa-forest); color: white; font: 650 14px var(--apasa-font); cursor: pointer; }
.signin-submit:hover { background: var(--apasa-green); }
.signin-submit:disabled { opacity: .7; cursor: wait; }
.signin-help { font-size: 13px; line-height: 1.7; text-align: center; color: var(--apasa-muted); margin: 24px 0 0; }
.signin-error { background: var(--apasa-error-bg); border-left: 3px solid var(--apasa-error); color: var(--apasa-error); padding: 12px; margin: 0 0 10px; font-size: 14px; }
.signin-form input:autofill { box-shadow: 0 0 0 1000px var(--apasa-green-soft) inset; color: var(--apasa-ink); }
.signin-form input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px var(--apasa-green-soft) inset; -webkit-text-fill-color: var(--apasa-ink); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media(max-width:480px) { .signin-card { padding: 26px 22px; } .signin-main { padding: 28px 18px; } }
