.login-shell {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    padding: calc(1.5rem + var(--app-safe-t)) 1rem calc(1.5rem + var(--app-safe-b));
    max-width: 24rem;
    margin: 0 auto;
    justify-content: center;
}
.login-brand { text-align: center; margin-bottom: 1.25rem; }
.login-brand__title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--app-accent-dark);
}
.login-card {
    background: var(--app-surface);
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow);
    padding: 1.25rem 1rem;
}
.login-card__header { text-align: center; margin-bottom: 1.25rem; }
.login-card__icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto .65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 50%;
}
.login-card__title { font-size: 1.25rem; font-weight: 700; margin: 0; }
.login-card__desc { margin-top: .35rem; font-size: .8125rem; color: var(--app-text-secondary); }
.login-form { display: flex; flex-direction: column; gap: .875rem; }
.form-field { display: flex; flex-direction: column; gap: .3rem; }
.form-field-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}
.form-field-head .form-label { margin: 0; }
.login-forgot-link {
    font-size: .75rem;
    font-weight: 600;
    color: var(--app-accent-dark);
    text-decoration: none;
    white-space: nowrap;
}
.login-forgot-link:hover { text-decoration: underline; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-label {
    font-size: .75rem;
    font-weight: 600;
    color: var(--app-text-secondary);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.form-input {
    width: 100%;
    padding: .7rem .75rem;
    font-size: 1rem;
    background: #f9f9fb;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius-sm);
    outline: none;
    min-height: 48px;
}
.form-input:focus {
    border-color: var(--app-accent);
    box-shadow: 0 0 0 3px rgba(234,88,12,.12);
}
.form-input--error { border-color: #ef4444; background: #fef2f2; }
.form-check {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    color: var(--app-text-secondary);
}
.form-check__box { width: 1rem; height: 1rem; accent-color: var(--app-accent); }
.btn-login {
    width: 100%;
    padding: .8rem 1rem;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(180deg, #f97316, var(--app-accent));
    border: none;
    border-radius: var(--app-radius-sm);
    cursor: pointer;
    min-height: 48px;
    box-shadow: 0 2px 8px rgba(234,88,12,.22);
}
.login-card__footer {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--app-border);
    text-align: center;
}
.login-back-link { font-size: .875rem; font-weight: 600; color: var(--app-accent-dark); }
.alert-error {
    border-radius: var(--app-radius-sm);
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    padding: .65rem .75rem;
    font-size: .8125rem;
    margin-bottom: .875rem;
}
.alert-error p { margin: 0; }
.alert-success {
    border-radius: var(--app-radius-sm);
    background: #ecfdf5;
    border: 1px solid #6ee7b7;
    color: #047857;
    padding: .65rem .75rem;
    font-size: .8125rem;
    margin-bottom: .875rem;
    line-height: 1.45;
}
.login-links {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin-top: .75rem;
    text-align: center;
}
.login-links a {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--app-accent-dark);
    text-decoration: none;
}
.mb-5 { margin-bottom: 1rem; }
