/* OpenQMS UI ant-pro-20261013-v1. Design reference: Ant Design Pro (MIT). */
html[data-qms-ui="ant-pro-20261013-v1"] {
  --qf-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif !important;
  --qf-font-display: var(--qf-font-body) !important;
  --qf-radius-sm: 4px !important;
  --qf-radius-md: 6px !important;
  --qf-radius-lg: 8px !important;
  --qf-shadow-glow: 0 6px 24px rgba(16, 24, 40, .06) !important;
}
html[data-qms-ui="ant-pro-20261013-v1"][data-theme="light"] {
  --qf-bg-base: #f5f7fa !important;
  --qf-bg-input: #fafbfc !important;
  --qf-bg-hover: #f0f5ff !important;
  --qf-border: #e8edf3 !important;
  --qf-divider: #eef1f5 !important;
  --qf-shadow-sm: 0 1px 3px rgba(16, 24, 40, .04) !important;
  --qf-shadow-md: 0 6px 24px rgba(16, 24, 40, .08) !important;
}
html[data-qms-ui] #root::before { display: none; }
html[data-qms-ui] body,
html[data-qms-ui] .ant-app,
html[data-qms-ui] .ant-typography,
html[data-qms-ui] .ant-menu,
html[data-qms-ui] .ant-table,
html[data-qms-ui] .ant-btn,
html[data-qms-ui] .ant-input,
html[data-qms-ui] .ant-select { font-family: var(--qf-font-body); }
html[data-qms-ui] .qf-display,
html[data-qms-ui] .qf-page__title,
html[data-qms-ui] .qf-card__title { letter-spacing: 0; }
html[data-qms-ui] .qf-page__title { font-size: 22px; line-height: 1.5; }
html[data-qms-ui] .qf-page__header { border-bottom: 0; padding-bottom: 0; gap: 16px; }
html[data-qms-ui] .qf-page__subtitle { line-height: 1.65; margin-top: 4px; }

/* The application keeps its existing menu, routes and collapse behavior. */
html[data-qms-ui] .ant-layout-sider {
  background: #001529 !important;
  border-right: 0 !important;
  box-shadow: 2px 0 8px rgba(0, 21, 41, .12) !important;
}
html[data-qms-ui] .ant-layout-sider-children > div:first-child { border-bottom-color: rgba(255,255,255,.08) !important; }
html[data-qms-ui] .ant-layout-sider-children > div:first-child > span { color: #fff !important; letter-spacing: 0 !important; }
html[data-qms-ui] .ant-layout-sider-children > div:first-child > div:first-child {
  background: #1677ff !important; color: #fff !important; box-shadow: none !important; border-radius: 6px !important;
}
html[data-qms-ui] .ant-layout-sider .qf-menu,
html[data-qms-ui] .ant-layout-sider .ant-menu-sub { background: transparent !important; }
html[data-qms-ui] .ant-layout-sider .ant-menu-item,
html[data-qms-ui] .ant-layout-sider .ant-menu-submenu-title {
  color: rgba(255,255,255,.72) !important; border-radius: 4px; margin-block: 4px; font-size: 14px;
}
html[data-qms-ui] .ant-layout-sider .ant-menu-item:not(.ant-menu-item-selected):hover,
html[data-qms-ui] .ant-layout-sider .ant-menu-submenu-title:hover { color: #fff !important; background: rgba(255,255,255,.06) !important; }
html[data-qms-ui] .ant-layout-sider .ant-menu-submenu-selected > .ant-menu-submenu-title { color: #fff !important; }
html[data-qms-ui] .ant-layout-sider .ant-menu-item-selected { background: #1677ff !important; color: #fff !important; }
html[data-qms-ui] .ant-layout-sider .ant-menu-item-selected::after { border: 0 !important; box-shadow: none !important; }
html[data-qms-ui] .ant-layout-header { box-shadow: 0 1px 4px rgba(16,24,40,.04); }
html[data-qms-ui] .ant-layout-content { line-height: 1.6; }

html[data-qms-ui] .ant-card,
html[data-qms-ui] .qf-card,
html[data-qms-ui] .qf-panel { border-radius: 8px; border-color: var(--qf-border); box-shadow: var(--qf-shadow-sm); }
html[data-qms-ui] .ant-card-head { min-height: 52px; border-bottom-color: var(--qf-divider); font-size: 16px; }
html[data-qms-ui] .ant-card-head-title { font-weight: 600; }
html[data-qms-ui] .qf-card__title::before { box-shadow: none; border-radius: 2px; }
html[data-qms-ui] .ant-statistic-content,
html[data-qms-ui] .qf-kpi { font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
html[data-qms-ui] .ant-statistic-title { color: var(--qf-text-secondary); font-size: 13px; }
html[data-qms-ui] .ant-statistic-content { font-size: 30px; font-weight: 600; }
html[data-qms-ui] .ant-table-thead > tr > th,
html[data-qms-ui] .qf-table .ant-table-thead > tr > th {
  background: var(--qf-bg-input) !important; color: var(--qf-text-secondary) !important;
  font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none;
}
html[data-qms-ui] .ant-table-tbody > tr > td { border-bottom-color: var(--qf-divider); }
html[data-qms-ui] .ant-table:not(.ant-table-small) .ant-table-cell { padding-block: 12px; }
html[data-qms-ui] .ant-table-wrapper .ant-pagination { margin-top: 20px; }
html[data-qms-ui] .ant-tabs-tab { padding-block: 12px; }
html[data-qms-ui] .ant-tag,
html[data-qms-ui] .qf-status { border-radius: 4px; font-weight: 500; }
html[data-qms-ui] .qf-status::before { box-shadow: none; }
html[data-qms-ui] .ant-form-item-label > label { font-weight: 500; color: var(--qf-text-secondary); }
html[data-qms-ui] .ant-btn { box-shadow: none; font-weight: 500; }
html[data-qms-ui] .ant-modal-content,
html[data-qms-ui] .ant-popover-inner { border-radius: 10px; box-shadow: var(--qf-shadow-md); }
html[data-qms-ui] .ant-drawer-header { border-bottom-color: var(--qf-divider); }
html[data-qms-ui] .ant-empty-description { color: var(--qf-text-tertiary); }

/* Login follows the same enterprise palette as the authenticated shell. */
html[data-qms-ui] .qf-btn-primary {
  background: #1677ff !important; color: #fff !important; border: 1px solid #1677ff;
  box-shadow: 0 2px 4px rgba(22,119,255,.16) !important;
}
html[data-qms-ui] .qf-btn-primary:not(:disabled):hover { background: #4096ff !important; border-color: #4096ff; }
html[data-qms-ui] #root:has(form .qf-btn-primary) [style*="linear-gradient(135deg"] {
  background: #1677ff !important; box-shadow: 0 6px 16px rgba(22,119,255,.16) !important;
}
html[data-qms-ui] #root:has(form .qf-btn-primary) [style*="linear-gradient(135deg"] > span { color: #fff !important; }
html[data-qms-ui] #root:has(form .qf-btn-primary) [style*="background-image"] { opacity: .3; }
html[data-qms-ui] #root:has(form .qf-btn-primary) [style*="letter-spacing"] { letter-spacing: 0 !important; }

@media (max-width: 1100px) {
  html[data-qms-ui] .ant-layout-header { padding-inline: 16px !important; }
  html[data-qms-ui] .ant-layout-header > .ant-space { gap: 8px !important; }
  html[data-qms-ui] .ant-layout-content { padding: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-qms-ui] .qf-card { transition: none; }
}
