/* ============================================================
   设计系统增强层 — design-system.css
   统一品牌令牌(补充) + 公共组件(提示/鉴权/合作伙伴)
   依赖 style.css 的基础令牌，本文件仅做增强与品牌对齐
   创建于 2026-09-27 全站 UI 统一审计
   ============================================================ */

:root {
    /* 状态色：提示框 / 表单校验 */
    --success: #2e8b57;
    --success-bg: #e8f5ee;
    --success-border: #bfe3cd;
    --danger: #d9534f;
    --danger-bg: #fdecea;
    --danger-border: #f5c6c2;
    --warning: #e0a458;
    --warning-bg: #fdf3e3;
    --warning-border: #f6dfb6;
    --info: #4a90c2;
    --info-bg: #e8f3fb;
    --info-border: #c4e2f5;

    /* 表单字段 */
    --input-border: var(--border);
    --input-radius: var(--radius-sm);
    --focus-ring: rgba(46, 139, 87, 0.18);

    /* 品牌渐变（鉴权区背景等，对齐清新自然绿调） */
    --brand-gradient: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
}

/* ---------- 提示消息（全局统一，替换各页内联 .alert） ---------- */
.alert {
    padding: 12px 16px;
    border-radius: var(--input-radius);
    margin-bottom: 12px;
    font-size: 0.92rem;
    border: 1px solid transparent;
    line-height: 1.6;
}
.alert-success { background: var(--success-bg); color: var(--success); border-color: var(--success-border); }
.alert-danger, .alert-error { background: var(--danger-bg); color: var(--danger); border-color: var(--danger-border); }
.alert-warning { background: var(--warning-bg); color: #8a6d3b; border-color: var(--warning-border); }
.alert-info { background: var(--info-bg); color: #2f6f9e; border-color: var(--info-border); }
.alert a { color: inherit; text-decoration: underline; }

/* ---------- 鉴权区（绿底品牌化，替换紫色内联样式） ---------- */
.auth-section {
    padding: 80px 0;
    min-height: 72vh;
    background: var(--brand-gradient);
    display: flex;
    align-items: center;
    justify-content: center;
}
.auth-container { width: 100%; max-width: 460px; padding: 0 20px; }
.auth-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 40px;
    box-shadow: var(--shadow-lg);
}
.auth-card h1 { text-align: center; font-size: 1.7rem; margin-bottom: 8px; color: var(--text); }
.auth-subtitle { text-align: center; color: var(--text-secondary); margin-bottom: 24px; font-size: 0.92rem; }
.auth-footer { text-align: center; margin-top: 20px; color: var(--text-secondary); font-size: 0.9rem; }
.auth-footer a { color: var(--primary); text-decoration: none; font-weight: 500; }

/* 表单聚焦环品牌化（覆盖 style.css 的默认蓝/灰，对齐主色） */
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--focus-ring);
    outline: none;
}

/* ---------- 合作伙伴（绿底品牌化，替换蓝色内联样式） ---------- */
.partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 20px;
    padding: 20px 0;
}
.partner-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 28px 16px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--input-radius);
    text-decoration: none;
    color: inherit;
    transition: box-shadow .25s, transform .25s, border-color .25s;
}
.partner-card:hover {
    box-shadow: 0 6px 24px rgba(46, 139, 87, 0.15);
    transform: translateY(-3px);
    border-color: var(--primary);
}
.partner-logo {
    width: 72px; height: 72px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 14px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bg-secondary);
}
.partner-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.partner-text-logo,
.partner-text {
    font-size: 22px; font-weight: 700;
    color: var(--primary);
    background: rgba(46, 139, 87, 0.08);
    font-family: "Noto Sans SC", sans-serif;
    width: 72px; height: 72px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%;
}
.partner-name { font-size: 13px; font-weight: 600; color: var(--text); text-align: center; margin-bottom: 4px; line-height: 1.3; }
.partner-desc { font-size: 11px; color: var(--text-light); text-align: center; line-height: 1.4; }
.empty-state { text-align: center; padding: 60px 0; color: var(--text-light); }

/* ============================================================
   语义色彩 token + 统一工具类（UI 统一 Phase 2）
   用于替换后台/业务页内联 color/background 硬编码，统一状态色。
   ============================================================ */
:root{
  --success:#2e7d32; --success-soft:#e8f5e9; --success-border:#a5d6a7;
  --danger:#dc3545;  --danger-soft:#f8d7da;  --danger-border:#f1aeb5;
  --warning:#f57c00; --warning-soft:#fff3e0; --warning-border:#ffcc80;
  --info:#1976d2;    --info-soft:#e3f2fd;    --info-border:#90caf9;
}
/* 文本色 */
.text-primary{color:var(--primary)!important}
.text-success{color:var(--success)!important}
.text-danger{color:var(--danger)!important}
.text-warning{color:var(--warning)!important}
.text-info{color:var(--info)!important}
.text-muted{color:var(--text-secondary)!important}
/* 背景柔色 */
.bg-light{background:var(--bg-secondary)!important}
.bg-success-soft{background:var(--success-soft)!important}
.bg-danger-soft{background:var(--danger-soft)!important}
.bg-warning-soft{background:var(--warning-soft)!important}
.bg-info-soft{background:var(--info-soft)!important}
/* 徽章 */
.badge{display:inline-block;padding:.25em .6em;border-radius:999px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}
.badge-success{background:var(--success-soft);color:var(--success)}
.badge-danger{background:var(--danger-soft);color:var(--danger)}
.badge-warning{background:var(--warning-soft);color:var(--warning)}
.badge-info{background:var(--info-soft);color:var(--info)}
.badge-secondary{background:#eef2ee;color:var(--text-secondary)}
/* 提示框 */
.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent;margin-bottom:1rem}
.alert-success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}
.alert-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}
.alert-warning{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}
.alert-info{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}
/* 状态点 */
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.status-dot--success{background:var(--success)}
.status-dot--danger{background:var(--danger)}
.status-dot--warning{background:var(--warning)}
.status-dot--info{background:var(--info)}

/* 业务分类徽章专用柔色（changelog 等） */
:root{
  --cat-init:#f3e5f5;
  --cat-security:#ffebee;
  --cat-ui:#fce4ec;
}
