:root {
  --primary-color: #009ce8;
  --success-color: #52c41a;
  --warning-color: #faad14;
  --error-color: #ff4d4f;
  --text-color: #1f2329;
  --muted-color: #86909c;
  --bg-color: #f5f7fb;
  --panel-color: #ffffff;
  --border-color: #e5e6eb;
  --shadow-card: 0 8px 24px rgba(31, 35, 41, 0.05);
}

* {
  box-sizing: border-box;
}

html,
body,
#app {
  margin: 0;
  min-height: 100%;
  background: var(--bg-color);
  color: var(--text-color);
}

.page-card {
  background: var(--panel-color);
  border-radius: 12px;
  padding: 16px;
  border: 1px solid var(--border-color);
  box-shadow: var(--shadow-card);
}

.page-title {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
}

.page-full {
  min-height: calc(100vh - 58px);
}

.ant-btn-primary {
  background: var(--primary-color);
  border-color: var(--primary-color);
}

.ant-btn-primary:not(:disabled):hover {
  background: #07a7f6;
  border-color: #07a7f6;
}

.ant-input:focus,
.ant-input-focused,
.ant-input-affix-wrapper-focused,
.ant-select-focused .ant-select-selector {
  border-color: var(--primary-color) !important;
  box-shadow: 0 0 0 2px rgba(0, 156, 232, 0.18) !important;
}

/* Keep global message above modal masks (project uses high z-index modals). */
.ant-message {
  z-index: 4100 !important;
}
