:root {
    --primary: #635bff;
    --primary-dark: #4f46e5;
    --primary-soft: #eef2ff;
    --surface: rgba(255, 255, 255, 0.92);
    --surface-solid: #ffffff;
    --page: #f5f7fb;
    --text: #172033;
    --muted: #6b7890;
    --border: #e4e9f2;
    --success: #059669;
    --success-soft: #ecfdf5;
    --danger: #dc2626;
    --danger-soft: #fef2f2;
    --shadow: 0 24px 70px rgba(32, 46, 88, 0.12);
    --shadow-sm: 0 8px 30px rgba(32, 46, 88, 0.08);
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-height: 100vh; color: var(--text); background: var(--page); font-family: Inter, "Segoe UI", "Microsoft YaHei", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input { font: inherit; }
button, .button { transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
button:hover, .button:hover { transform: translateY(-1px); }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(145deg, #756cff, #4f46e5); box-shadow: 0 12px 28px rgba(99, 91, 255, .28); font-weight: 800; }
.field { margin-bottom: 18px; }
.field label { display: block; margin-bottom: 8px; color: #344054; font-size: 13px; font-weight: 650; }
.input { width: 100%; min-height: 46px; padding: 0 14px; color: var(--text); background: #fff; border: 1px solid var(--border); border-radius: 11px; outline: none; transition: border-color .18s, box-shadow .18s; }
.input:focus { border-color: #8b83ff; box-shadow: 0 0 0 4px rgba(99, 91, 255, .10); }
.input[readonly] { color: #566176; background: #f8fafc; }
.button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; color: #fff; background: linear-gradient(135deg, var(--primary), var(--primary-dark)); border: 0; border-radius: 10px; cursor: pointer; text-decoration: none; font-weight: 700; box-shadow: 0 8px 20px rgba(99, 91, 255, .20); }
.button-secondary { color: #465269; background: #fff; border: 1px solid var(--border); box-shadow: none; }
.button-danger { color: var(--danger); background: var(--danger-soft); box-shadow: none; }
.button-sm { min-height: 34px; padding: 0 12px; font-size: 12px; }
.alert { padding: 13px 15px; margin-bottom: 20px; border-radius: 11px; font-size: 13px; line-height: 1.6; }
.alert-success { color: #047857; background: var(--success-soft); border: 1px solid #b7f0d5; }
.alert-error { color: #b42318; background: var(--danger-soft); border: 1px solid #fecaca; }
