/* auth 表单卡片样式（css/auth.css）
   由 auth.html 内联 <style> 抽离：整页 /login、/register 与壳内弹层
   （GET /auth/panel -> PlainView）共用同一份。页面级布局（body flex 居中、
   toast 兜底样式）仍留在 auth.html 整页内（弹层模式由 base 壳样式接管）。 */
.auth-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    padding: 32px 28px;
    /* 设计宽度 340px；视口更窄时退回视口安全宽度（保留 16px 边距） */
    width: 340px;
    max-width: calc(100vw - 32px);
}
.auth-card h1 { font-size: 22px; text-align: center; margin-bottom: 20px; }
.auth-card label { display: block; font-size: 13px; color: #555; margin: 14px 0 6px; }
.auth-card input {
    width: 100%;
    min-height: 44px;  /* 触摸目标 ≥44 */
    padding: 10px 12px;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    font-size: 16px;  /* iOS 上输入框字号小于 16px 聚焦时会自动放大页面 */
    background: #fff;
    color: inherit;
}
.auth-card input:focus { outline: none; border-color: #4a90d9; }
.auth-card input:focus-visible {
    outline: 2px solid #4a90d9;
    outline-offset: 1px;
}
.auth-card button {
    width: 100%;
    min-height: 44px;
    margin-top: 22px;
    padding: 0 16px;
    border: none;
    border-radius: 6px;
    background: #4a90d9;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}
.auth-card button:disabled { background: #9cc3e8; cursor: not-allowed; }
.auth-card button:focus-visible { outline: 2px solid #4a90d9; outline-offset: 2px; }
/* 错误 / 状态消息：role=status + aria-live 让屏幕阅读器朗读；并用 .error 类区分视觉颜色 */
.auth-msg {
    min-height: 20px;
    margin-top: 12px;
    font-size: 13px;
    text-align: center;
    color: #d4380d;
}
.auth-msg.success { color: #389e0d; }
.auth-msg:empty { display: none; }
/* 一键跳转 fallback：段 2 命中时显示，引导用户改用域名 HTTPS */
.auth-fallback {
    margin-top: 12px;
    padding: 10px 12px;
    background: #fff7e6;
    border: 1px solid #ffe7ba;
    border-radius: 6px;
    font-size: 13px;
    color: #874d00;
    text-align: center;
}
.auth-fallback a {
    display: inline-block;
    margin-top: 6px;
    padding: 8px 16px;
    background: #4a90d9;
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
    font-weight: 600;
    min-height: 36px;
}
.auth-fallback a:focus-visible { outline: 2px solid #4a90d9; outline-offset: 2px; }
.auth-switch { margin-top: 16px; font-size: 13px; text-align: center; color: #777; }
.auth-switch a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 6px;
    color: #4a90d9;
    text-decoration: none;
}
.auth-switch a:focus-visible { outline: 2px solid #4a90d9; outline-offset: 2px; border-radius: 4px; }
.auth-home { margin-top: 4px; font-size: 12px; text-align: center; }
.auth-home a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 6px;
    color: #999;
    text-decoration: none;
}
.auth-home a:focus-visible { outline: 2px solid #4a90d9; outline-offset: 2px; border-radius: 4px; }

/* 弹层宿主（PlainView .pv-body）：卡片水平居中 + 上下留白（整页由 body flex 居中） */
.pv-body .auth-card { margin: 40px auto; }