/* ============================================================
 * genius-ui-compat.css — 全站换装升级层（ADR-0012 / PLAN 阶段五）
 *
 * 作用：把三端既有旧类名（btn-* / field-input / form-card / page-card /
 *       data-table 等）用 --g- 设计令牌统一重铸，旧页面无需逐页改类名
 *       即可获得"专业大厂出品"的一致观感。
 * 加载：置于各端主题样式之后（最后加载，同特异性时生效）。
 * ============================================================ */

/* ============ 按钮：统一高度 / 圆角 / 触控 / focus 可访问性 ============ */
button.btn-primary, a.btn-primary,
button.btn-danger, a.btn-danger,
button.btn-success, button.btn-warning,
button.btn-secondary, a.btn-secondary,
button.btn-small, a.btn-small,
input[type="submit"]:not(.g-btn),
input[type="button"]:not(.g-btn) {
    border-radius: var(--g-radius-md, 10px);
    font-weight: 600;
    letter-spacing: 0.01em;
    min-height: 38px;
    transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease, border-color 0.18s ease;
}

button.btn-primary, a.btn-primary,
input[type="submit"]:not(.g-btn),
input[type="button"]:not(.g-btn) {
    background: var(--g-primary, #2563eb);
    color: #fff;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.18);
}
button.btn-primary:hover, a.btn-primary:hover,
input[type="submit"]:not(.g-btn):hover,
input[type="button"]:not(.g-btn):hover {
    background: var(--g-primary-strong, #1d4ed8);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.28);
}

button.btn-danger, a.btn-danger { background: var(--g-danger, #dc2626); }
button.btn-danger:hover, a.btn-danger:hover { background: #b91c1c; box-shadow: 0 4px 12px rgba(220, 38, 38, 0.25); }

button.btn-success { background: var(--g-success, #16a34a); }
button.btn-success:hover { background: #047857; box-shadow: 0 4px 12px rgba(5, 150, 105, 0.25); }

button.btn-warning { background: var(--g-warning, #f59e0b); }

button.btn-secondary, a.btn-secondary {
    background: #fff;
    color: var(--g-text, #334155);
    border: 1px solid var(--g-border-strong, #cbd5e1);
}
button.btn-secondary:hover, a.btn-secondary:hover {
    border-color: var(--g-primary, #2563eb);
    color: var(--g-primary, #2563eb);
    background: var(--g-primary-weak, #eff6ff);
}

button.btn-small, a.btn-small { min-height: 30px; border-radius: var(--g-radius-sm, 8px); }

/* focus 可访问性：键盘聚焦可见但不刺眼 */
button.btn-primary:focus-visible, a.btn-primary:focus-visible,
button.btn-danger:focus-visible, button.btn-success:focus-visible,
button.btn-warning:focus-visible, button.btn-secondary:focus-visible,
button.btn-small:focus-visible, a.btn-small:focus-visible,
input[type="submit"]:not(.g-btn):focus-visible,
input[type="button"]:not(.g-btn):focus-visible,
.field-input:focus-visible, .g-btn:focus-visible {
    outline: 2px solid var(--g-primary, #2563eb);
    outline-offset: 2px;
}

/* ============ 输入框 / 文本域 / 下拉：统一四态 ============ */
input.field-input, textarea.field-input, select.field-input,
.field-input:not([type="checkbox"]):not([type="radio"]) {
    border: 1px solid var(--g-border, #e2e8f0);
    border-radius: var(--g-radius-md, 10px);
    padding: 9px 12px;
    font-size: 14px;
    color: var(--g-text, #0f172a);
    background: #fff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    box-sizing: border-box;
    min-height: 40px;
}
input.field-input::placeholder, textarea.field-input::placeholder {
    color: var(--g-text-faint, #94a3b8);
}
input.field-input:hover, textarea.field-input:hover, select.field-input:hover {
    border-color: var(--g-border-strong, #cbd5e1);
}
input.field-input:focus, textarea.field-input:focus, select.field-input:focus {
    outline: none;
    border-color: var(--g-primary, #2563eb);
    box-shadow: 0 0 0 3px var(--g-primary-weak, rgba(37, 99, 235, 0.12));
}
.field-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--g-text, #334155);
    display: block;
    margin-bottom: 6px;
}

/* ============ 卡片：统一圆角 / 阴影 / 描边 ============ */
.form-card, .page-card {
    background: #fff;
    border: 1px solid var(--g-border, #e2e8f0);
    border-radius: var(--g-radius-lg, 14px);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}
.form-card h3, .page-card h3 {
    letter-spacing: 0.01em;
}

/* ============ 表格：表头底色 / 行分隔 / 悬停 ============ */
.data-table th {
    font-size: 12px;
    font-weight: 700;
    color: var(--g-text-muted, #64748b);
    text-transform: none;
    letter-spacing: 0.02em;
    background: var(--g-bg-muted, #f8fafc);
}
.data-table tbody tr:hover {
    background: var(--g-bg-muted, #f8fafc);
}

/* ============ 徽标 / 状态色统一（涨红跌绿仅限成绩语义） ============ */
.badge-success { background: #dcfce7; color: #15803d; border-radius: 999px; }
.badge-warning { background: #fef3c7; color: #b45309; border-radius: 999px; }
.badge-danger  { background: #fee2e2; color: #b91c1c; border-radius: 999px; }
