@charset "UTF-8";
/* ============================================================================
 * ACE 主题层 · 登录 / 错误页专用样式（ace-login.css）
 * 供 auth/login、auth/admin-login、auth/change-password、errors/* 使用。
 * 令牌与 ace-theme.css 保持一致（ACE #438EB9 / #428BCA / #D15B47 ...）。
 * ========================================================================== */

:root {
    --ace-navbar:   #438EB9;
    --ace-primary:  #428BCA;
    --ace-primary-dk:#2B7DBC;
    --ace-danger:   #D15B47;
    --ace-line:     #C5D0DC;
    --ace-muted:    #8A9BA8;
    --ace-radius:   2px;
}

body.ace-auth {
    font-family: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", Arial, sans-serif;
    min-height: 100vh;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, #438EB9 0%, #2B7DBC 55%, #1E5F8A 100%);
    color: #333;
}
body.ace-auth.ace-auth-admin {
    background: linear-gradient(160deg, #233B4D 0%, #2B7DBC 100%);
}

.ace-auth-wrap { width: 100%; max-width: 420px; margin: 0 16px; }

.ace-auth-brand { text-align: center; margin-bottom: 22px; }
.ace-auth-brand h1 {
    margin: 0; color: #fff; font-size: 21px; font-weight: 700; letter-spacing: .6px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}
.ace-auth-brand p { margin: 6px 0 0; color: #DCEBF5; font-size: 12px; letter-spacing: 1px; }

.ace-auth-card {
    background: #fff;
    border-radius: var(--ace-radius);
    border-top: 3px solid var(--ace-primary);
    box-shadow: 0 8px 32px rgba(0, 0, 0, .22);
    padding: 26px 24px 22px;
}
.ace-auth-card h2 {
    margin: 0; text-align: center; font-size: 17px; font-weight: 600; color: #2E3A44;
    padding-bottom: 10px; border-bottom: 1px solid #E3E9EE;
}
.ace-auth-card .ace-auth-sub {
    text-align: center; font-size: 12px; color: var(--ace-muted); margin: 8px 0 18px;
}

.ace-field { margin-bottom: 14px; }
.ace-field label { display: block; font-size: 13px; color: #58636C; margin-bottom: 5px; }
.ace-field input[type="text"],
.ace-field input[type="password"],
.ace-field input[type="email"] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #D5D5D5;
    border-radius: var(--ace-radius);
    padding: 9px 10px;
    font-size: 13px;
    color: #555;
    outline: 0;
    background: #fff;
}
.ace-field input:focus {
    border-color: #6FB3E0;
    box-shadow: 0 0 0 2px rgba(111, 179, 224, .25);
}
.ace-field input::placeholder { color: #A8B4BD; }

.ace-auth-row { display: flex; align-items: center; justify-content: space-between; margin: 4px 0 18px; }
.ace-auth-row label { font-size: 13px; color: #666; display: inline-flex; align-items: center; gap: 6px; }
.ace-auth-row input[type="checkbox"] { accent-color: var(--ace-primary); }

.ace-btn-block {
    display: block; width: 100%; text-align: center; cursor: pointer;
    background-image: linear-gradient(#5FA5D6, #428BCA);
    border: 1px solid #428BCA; border-bottom-color: #35689A;
    color: #fff; font-size: 14px; font-weight: 600; letter-spacing: 2px;
    padding: 10px 12px; border-radius: var(--ace-radius);
    text-shadow: 0 -1px 0 rgba(0, 0, 0, .12);
}
.ace-btn-block:hover { filter: brightness(1.06); }

.ace-alert {
    border-radius: var(--ace-radius);
    padding: 10px 12px; font-size: 13px; margin-bottom: 16px;
}
.ace-alert-danger { background: #F2DEDE; border: 1px solid #EED3D7; color: #A94442; }
.ace-alert-success { background: #DFF0D8; border: 1px solid #D6E9C6; color: #3C763D; }

.ace-auth-foot {
    margin-top: 18px; padding-top: 14px; border-top: 1px solid #EEF2F5;
    text-align: center; font-size: 13px;
}
.ace-auth-foot a { color: var(--ace-primary); text-decoration: none; }
.ace-auth-foot a:hover { text-decoration: underline; }

.ace-auth-copy { text-align: center; color: #D6E7F2; font-size: 11px; margin-top: 20px; }

/* ---------------- 通用按钮（错误页/独立页） ---------------- */
.ace-btn {
    display: inline-block;
    padding: 8px 16px;
    font-size: 13px;
    line-height: 1.4;
    border: 1px solid transparent;
    border-radius: var(--ace-radius);
    text-decoration: none;
    cursor: pointer;
}
.ace-btn-primary {
    background-image: linear-gradient(#5FA5D6, #428BCA);
    border-color: #428BCA;
    color: #fff;
}
.ace-btn-primary:hover { filter: brightness(1.06); }
.ace-btn-default { background: #F5F5F5; border-color: #CCC; color: #555; }
.ace-btn-default:hover { background: #ECECEC; }

/* ---------------- 错误页 ---------------- */
.ace-err-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 18px; }
.ace-err-pre {
    text-align: left; font-size: 12px; background: #F7F7F7; border: 1px solid #E3E3E3;
    padding: 10px; border-radius: var(--ace-radius); margin: 12px 0;
    overflow: auto; max-height: 160px; color: #A94442; white-space: pre-wrap;
}
.ace-err-code {
    font-size: 74px; font-weight: 700; line-height: 1;
    color: var(--ace-primary); letter-spacing: -2px;
}
.ace-err-code.ace-err-danger { color: var(--ace-danger); }
.ace-err-msg { font-size: 15px; color: #414D57; margin-top: 12px; }
.ace-err-desc { font-size: 13px; color: var(--ace-muted); margin-top: 8px; line-height: 1.7; }
