@import url("/fonts/misans/Regular/misans.css");
@import url("/fonts/misans/Medium/misans.css");
@import url("/fonts/misans/Semibold/misans.css");
@import url("/fonts/misans/Bold/misans.css");

/* ===== ZGL 面板主题层 · 统一字体与圆角卡片风格 ===== */
:root{
  --zgl-font: "MiSans", "MiSans VF", system-ui, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --zgl-radius: 14px;
  --zgl-radius-sm: 9px;
  --zgl-line: #e8ecf3;
  --zgl-soft: #f7f9fc;
  --zgl-fg: #1b1f27;
  --zgl-muted: #7b8494;
  --zgl-accent: #2b6cf6;
  --zgl-accent2: #7a4cf0;
}
html[data-theme="dark"]{
  --zgl-line: #262c37;
  --zgl-soft: #12161c;
  --zgl-fg: #e6e9ef;
  --zgl-muted: #8b93a3;
}

/* ---------- 全局字体 ---------- */
html, body, button, input, select, textarea, .ant-app, .ant-layout, .ant-menu, .ant-btn,
.ant-table, .ant-form, .ant-select, .ant-modal, .ant-drawer, .ant-tag, .ant-card, .ant-tabs{
  font-family: var(--zgl-font) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body{ letter-spacing: .1px; }
h1,h2,h3,h4,h5{ font-family: var(--zgl-font); letter-spacing: .2px; }

/* ---------- 卡片 / 面板容器 ---------- */
.ant-card{
  border-radius: var(--zgl-radius) !important;
  border: 1px solid var(--zgl-line) !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.04) !important;
}
.ant-card-head{ border-bottom: 1px solid var(--zgl-line) !important; }
.ant-card-head-title{ font-weight: 700; letter-spacing: .2px; }

/* ---------- 按钮 ---------- */
.ant-btn{ border-radius: var(--zgl-radius-sm) !important; font-weight: 600; transition: .15s; }
.ant-btn-primary{
  background: linear-gradient(135deg, var(--zgl-accent), var(--zgl-accent2)) !important;
  border-color: transparent !important;
  box-shadow: 0 6px 14px rgba(43,108,246,.24);
}
.ant-btn-primary:not(:disabled):hover{ filter: brightness(1.06); box-shadow: 0 8px 18px rgba(43,108,246,.3); }
.ant-btn-default{ border-color: var(--zgl-line) !important; }
.ant-btn-default:not(:disabled):hover{ border-color: #b9c7e0 !important; color: var(--zgl-accent) !important; }
.ant-btn-dangerous{ border-radius: var(--zgl-radius-sm) !important; }

/* ---------- 输入 / 选择器 ---------- */
.ant-input, .ant-input-affix-wrapper, .ant-input-number, .ant-select .ant-select-selector,
.ant-picker, .ant-input-textarea textarea{
  border-radius: var(--zgl-radius-sm) !important;
  border-color: #dbe0e8 !important;
}
.ant-input:focus, .ant-input-focused, .ant-input-affix-wrapper-focused,
.ant-select-focused .ant-select-selector{
  border-color: var(--zgl-accent) !important;
  box-shadow: 0 0 0 3px rgba(43,108,246,.12) !important;
}

/* ---------- 侧栏菜单 ---------- */
.ant-layout-sider{ border-right: 1px solid var(--zgl-line); }
.ant-menu-item, .ant-menu-submenu-title{
  border-radius: 10px !important;
  margin: 3px 8px !important;
  width: calc(100% - 16px) !important;
  font-weight: 600;
  letter-spacing: .2px;
}
.ant-menu-item-selected{
  background: linear-gradient(120deg, rgba(43,108,246,.16), rgba(122,76,240,.14)) !important;
  color: var(--zgl-accent) !important;
}
.ant-menu-item-selected::after{ display: none !important; }
.ant-menu-item:hover{ background: rgba(127,160,255,.14) !important; }

/* ---------- 表格 ---------- */
.ant-table{ border-radius: var(--zgl-radius) !important; overflow: hidden; }
.ant-table-thead > tr > th{
  background: var(--zgl-soft) !important;
  font-weight: 700 !important;
  letter-spacing: .2px;
  border-bottom: 1px solid var(--zgl-line) !important;
}
.ant-table-tbody > tr:hover > td{ background: rgba(43,108,246,.05) !important; }

/* ---------- 弹窗 / 抽屉 / 标签 ---------- */
.ant-modal-content, .ant-drawer-content{ border-radius: var(--zgl-radius) !important; }
.ant-modal-header{ border-bottom: 1px solid var(--zgl-line); }
.ant-tag{ border-radius: 999px !important; font-weight: 600; }
.ant-tabs-tab{ font-weight: 600; }
.ant-tabs-ink-bar{ background: linear-gradient(90deg, var(--zgl-accent), var(--zgl-accent2)) !important; }

/* ---------- 暗色修正 ---------- */
html[data-theme="dark"] .ant-input,
html[data-theme="dark"] .ant-input-affix-wrapper,
html[data-theme="dark"] .ant-select .ant-select-selector,
html[data-theme="dark"] .ant-picker,
html[data-theme="dark"] .ant-input-number{
  border-color: #2a2f3a !important;
}
html[data-theme="dark"] .ant-btn-default:hover{ border-color: #2f4a7a !important; }
