/* 全站数据界面：主看板与日常工具页共用。 */
body.ui-system {
  --bg:#f5f7fb; --card:#fff; --surface-2:#f8fafc; --surface-3:#eef2f6;
  --text:#18263b; --text-2:#34445b; --muted:#607087; --muted-2:#718096;
  --line:#dfe6ef; --line-soft:#e9edf3; --blue:#245fe8; --blue-ink:#2457ce;
  --blue-soft:#edf3ff; --control-h:38px; --radius:12px; --radius-sm:8px;
  color:var(--text); background:var(--bg); font-size:14px; line-height:1.5;
}
.ui-system .table-card, .ui-system main>section { box-shadow:0 1px 2px #18263b06; }
.ui-system h2 { font-size:17px; line-height:1.5; }
.ui-system h2 small, .ui-system h3 small { color:var(--muted); font-weight:400; }
.ui-system .note, .ui-system .table-meta, .ui-system .section-help { color:var(--muted); font-size:12px; }
.ui-system .table-card h2 { margin-bottom:12px; }
.ui-table-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px; margin:8px 0 10px; color:var(--muted); font-size:12px; }
.ui-system .ui-mobile-sort { display:none; }
.ui-system .ui-data-table { width:100%; border-collapse:separate; border-spacing:0; font-size:14px; }
.ui-system .ui-data-table th { padding:10px 14px; background:var(--surface-2); color:var(--muted); font-size:12px; font-weight:500; white-space:nowrap; border-bottom:1px solid var(--line); }
.ui-system .ui-data-table td { padding:13px 14px; border-bottom:1px solid var(--line-soft); vertical-align:middle; background:var(--card); line-height:1.5; }
.ui-system .ui-data-table tbody tr:last-child td { border-bottom:0; }
.ui-system .ui-data-table tbody tr:hover td { background:#f7f9fd; }
.ui-system .ui-data-table .num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ui-system .ui-data-table .col-key { color:var(--text); font-weight:600; }
.ui-system .ui-data-table .ui-main-number { color:var(--text); font-weight:650; }
.ui-system .ui-data-table td.z, .ui-system .ui-data-table td.nil { color:var(--muted-2); }
.ui-system .ui-sort { display:inline-flex; align-items:center; justify-content:inherit; gap:6px; margin:0; padding:0; width:auto; height:auto; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; text-align:inherit; box-shadow:none; }
.ui-system th.num .ui-sort { justify-content:flex-end; }
.ui-system .ui-sort:hover { color:var(--blue); background:transparent; }
.ui-system .ui-sort-icon { font-size:11px; opacity:.55; }
.ui-system [aria-sort=ascending] .ui-sort-icon, .ui-system [aria-sort=descending] .ui-sort-icon { color:var(--blue); opacity:1; }
.ui-system [aria-sort=ascending] .ui-sort-icon { font-size:0; }
.ui-system [aria-sort=ascending] .ui-sort-icon::after { content:"↑"; font-size:11px; }
.ui-system [aria-sort=descending] .ui-sort-icon { font-size:0; }
.ui-system [aria-sort=descending] .ui-sort-icon::after { content:"↓"; font-size:11px; }
.ui-system .ui-data-table .cell-action { white-space:nowrap; }
.ui-system .ui-link, .ui-system .ui-data-table .cell-action button { margin:0; height:auto; padding:6px 8px; color:var(--blue); background:transparent; border:0; border-radius:6px; font-size:13px; }
.ui-system .ui-link:hover, .ui-system .ui-data-table .cell-action button:hover { background:var(--blue-soft); }
.ui-system .ui-mobile-rank, .ui-system .ui-mobile-dept { display:none; }
.ui-system .ui-data-table[data-ui-kind=report] { table-layout:fixed; }
.ui-system .ui-data-table[data-ui-kind=report] th:first-child { width:54px; text-align:center; }
.ui-system .ui-data-table[data-ui-kind=report] td:first-child { text-align:center; color:var(--muted); }
.ui-system .ui-data-table[data-ui-kind=report] th:nth-child(2) { width:125px; }
.ui-system .ui-data-table[data-ui-kind=report] th:nth-child(3) { width:105px; }
.ui-system .ui-data-table[data-ui-kind=report] th:last-child { width:70px; }
.ui-system .ui-data-table[data-ui-kind=report] .ui-main-number { font-size:15px; }
.ui-system .ui-report-detail { display:grid; gap:20px; }
.ui-system .ui-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.ui-system .ui-detail-grid h4 { font-size:13px; margin:0 0 12px; }
.ui-system .ui-facts { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 20px; margin:0; }
.ui-system .ui-facts dt { color:var(--muted); }
.ui-system .ui-facts dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.ui-system .ui-facts .ui-net { font-weight:650; color:var(--text); }
.ui-system .ui-detail-source { border-top:1px solid var(--line); padding-top:12px; color:var(--muted); font-size:12px; }
.ui-system input:not([type=checkbox]):not([type=radio]):not([type=file]), .ui-system select, .ui-system textarea {
  min-width:0; max-width:100%; min-height:38px; border:1px solid var(--line); border-radius:7px;
  background:var(--card); color:var(--text); padding:8px 11px; font:inherit;
}
.ui-system input[type=number] { font-variant-numeric:tabular-nums; text-align:right; }
.ui-system textarea { line-height:1.65; }
.ui-system label:has(>input:not([type=checkbox]):not([type=radio])), .ui-system label:has(>select), .ui-system label:has(>textarea) { display:flex; flex-direction:column; align-items:stretch; gap:7px; min-width:0; font-size:13px; }
.ui-system .ui-check, .ui-system .checks>label, .ui-system .check-label { display:flex; flex-direction:row; align-items:center; gap:8px; }
.ui-system input[type=checkbox], .ui-system input[type=radio] { width:16px; height:16px; min-height:0; margin:0; flex:none; accent-color:var(--blue); }
.ui-system .fields, .ui-system .field-grid, .ui-system .user-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px 22px; }
.ui-system .fields>p, .ui-system .fields>.match-hint { grid-column:1/-1; }
.ui-system .toolbar, .ui-system .filter-row, .ui-system .ranking-controls { gap:12px; align-items:flex-end; flex-wrap:wrap; }
.ui-system .toolbar label, .ui-system .filter-row label, .ui-system .ranking-controls label { margin:0; }
.ui-system .toolbar label:not(.ui-check) { flex:1 1 160px; }
.ui-system .toolbar button, .ui-system .ranking-controls button { flex:none; }
.ui-required { color:var(--muted); font-size:11px; font-weight:400; }
.ui-label-caption { display:inline-flex; align-items:baseline; gap:8px; }
.ui-system #wecomRangeCards { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ui-system #wecomRangeCards .is-hero:first-child { grid-column:auto; }
.ui-field-error { display:block; color:var(--danger,#b42318); font-size:12px; line-height:1.5; margin-top:3px; }
.ui-field-error:empty { display:none; }
.ui-system [aria-invalid=true] { border-color:var(--danger,#b42318) !important; }
.ui-system button[aria-busy=true] { cursor:progress; pointer-events:none; opacity:.65; }
.ui-system button[aria-busy=true]::before { content:""; display:inline-block; width:10px; height:10px; margin-right:7px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; vertical-align:-1px; animation:ui-spin .8s linear infinite; }
@keyframes ui-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .ui-system button[aria-busy=true]::before { animation:none; } }
.ui-system .status, .ui-system [role=status], .ui-system [role=alert] { overflow-wrap:anywhere; }
.ui-system .modal-overlay { padding:24px; background:#17243b66; }
.ui-system .modal-card, .ui-system dialog { border:1px solid var(--line); border-radius:12px; background:var(--card); box-shadow:0 18px 60px #15243b29; }
.ui-system .modal-card { max-height:calc(100dvh - 48px); overflow:auto; }
.ui-system dialog { color:var(--text); max-width:calc(100vw - 32px); max-height:calc(100dvh - 48px); padding:24px; }
.ui-system dialog::backdrop { background:#17243b66; }
.ui-system .ui-edit-dialog { width:min(480px,calc(100vw - 32px)); }
.ui-system .ui-dialog-description { white-space:pre-line; overflow-wrap:anywhere; color:var(--muted); margin:0 0 18px; }
.ui-system .ui-dialog-error { color:var(--danger,#b42318); margin-top:10px; font-size:13px; }
.ui-system .ui-dialog-error:empty { display:none; }
.ui-system .modal-card h3, .ui-system dialog h3 { margin:0 0 18px; font-size:18px; }
.ui-system .modal-actions, .ui-system .dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:22px; padding-top:16px; border-top:1px solid var(--line-soft); }
.ui-system.ui-overlay-open { overflow:hidden; }
.ui-system #reportDetailDialog { width:min(760px,calc(100vw - 32px)); }
.ui-system .ui-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; }
.ui-system .ui-dialog-heading h3 { margin:0; }
.ui-system .ui-dialog-heading button { flex:none; }
.ui-system .metric-value, .ui-system .tile-value, .ui-system .flow-value, .ui-system .metric strong { font-variant-numeric:tabular-nums; }
.ui-system .metric-value { font-size:25px; letter-spacing:-.3px; }
.ui-system .is-hero .metric-value { font-size:30px; }
.ui-system .metric-label, .ui-system .flow-label { line-height:1.5; }
.ui-system .metric-card { min-width:0; }
.ui-system .cards { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.ui-system .metric-sub { color:var(--muted); font-size:12px; }
.ui-system .u-actions { gap:4px; flex-wrap:wrap; }
.ui-system .ui-role-edit { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.ui-system .ui-role-edit select { width:auto; max-width:160px; }
.ui-system .ui-role-save[hidden] { display:none; }
.ui-system #nuCreate { width:max-content; align-self:end; }
.ui-system #nuPassword { font-family:inherit; }
.ui-system #overviewProduct table { table-layout:auto; min-width:0; }
.ui-system #overviewProduct th { width:auto; }
.ui-system #overviewProduct th, .ui-system #overviewProduct td { padding:13px 14px; }
.ui-system #overviewProduct th:nth-child(n+6) { background:var(--surface-2); color:var(--muted); }
.ui-system #overviewProduct td:nth-child(7) { font-weight:650; }
@media(min-width:701px) {
  .ui-system .ui-data-table[data-ui-layout=scroll] { min-width:max-content; }
}
@media(max-width:700px) {
  .ui-system { --page-x:14px; }
  .ui-system main { padding-left:14px; padding-right:14px; }
  .ui-system .table-card, .ui-system main>section { padding:16px; }
  .ui-system .ui-table-meta { font-size:12px; }
  .ui-system .ui-mobile-sort { display:flex; flex-direction:row; align-items:center; gap:10px; flex-basis:100%; margin-top:8px; }
  .ui-system .ui-mobile-sort select { flex:1; font-size:14px; }
  .ui-system .ui-data-table[data-ui-layout=cards] { display:block; min-width:0 !important; table-layout:auto !important; }
  .ui-system .ui-data-table[data-ui-layout=cards] thead { display:none; }
  .ui-system .ui-data-table[data-ui-layout=cards] tbody { display:block; }
  .ui-system .ui-data-table[data-ui-layout=cards] tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; padding:16px 0; border-bottom:1px solid var(--line); }
  .ui-system .ui-data-table[data-ui-layout=cards] tr.row-more { display:none; }
  .ui-system .is-expanded .ui-data-table[data-ui-layout=cards] tr.row-more { display:grid; }
  .ui-system .ui-data-table[data-ui-layout=cards] td { display:block; order:2; width:auto !important; max-width:none; min-width:0; padding:0 !important; border:0 !important; background:transparent !important; position:static !important; white-space:normal; text-align:left; overflow-wrap:anywhere; font-size:14px; box-shadow:none !important; }
  .ui-system .ui-data-table[data-ui-layout=cards] td::before { content:attr(data-label); display:block; margin-bottom:4px; color:var(--muted); font-size:12px; font-weight:400; }
  .ui-system .ui-data-table[data-ui-layout=cards] td.col-key { order:0; grid-column:1/-1; font-size:16px; }
  .ui-system .ui-data-table[data-ui-layout=cards] td.col-key::before { display:none; }
  .ui-system .ui-data-table[data-ui-layout=cards] td.ui-main-number { order:1; grid-column:1/-1; font-size:24px; }
  .ui-system .ui-data-table[data-ui-layout=cards] td.cell-action { order:3; grid-column:1/-1; }
  .ui-system .ui-data-table[data-ui-layout=cards] td.cell-action::before { display:none; }
  .ui-system .ui-data-table[data-ui-layout=cards] td.ui-cell-bar { display:none; }
  .ui-system .table-wrap:has(>.ui-data-table[data-ui-layout=cards]) { overflow:visible; max-height:none; }
  .ui-system .ui-data-table[data-ui-kind=report] tr { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ui-system .ui-data-table[data-ui-kind=report] td:first-child, .ui-system .ui-data-table[data-ui-kind=report] td[data-label=部门] { display:none; }
  .ui-system .ui-mobile-rank { display:inline; color:var(--muted); font-size:13px; margin-right:8px; }
  .ui-system .ui-mobile-dept { display:inline; color:var(--muted); font-size:12px; font-weight:400; margin-left:8px; }
  .ui-system .fields, .ui-system .field-grid, .ui-system .user-form, .ui-system .ui-detail-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
  .ui-system input:not([type=checkbox]):not([type=radio]), .ui-system select, .ui-system textarea { font-size:16px; min-height:42px; }
  .ui-system .ui-data-table .cell-action button, .ui-system .ui-link { min-height:42px; }
  .ui-system .toolbar, .ui-system .filter-row, .ui-system .ranking-controls { gap:10px; }
  .ui-system .toolbar label:not(.ui-check), .ui-system .filter-row label:not(.ui-check), .ui-system .ranking-controls label:not(.ui-check) { flex:1 1 100%; }
  .ui-system .toolbar label input, .ui-system .toolbar label select { width:100%; }
  .ui-system button { min-height:40px; }
  .ui-system .modal-overlay { padding:12px; }
  .ui-system .modal-card, .ui-system dialog { padding:18px; max-height:calc(100dvh - 24px); }
  .ui-system .metric-value { font-size:23px; }
  .ui-system .is-hero .metric-value { font-size:28px; }
  .ui-system #wecomRangeCards { grid-template-columns:minmax(0,1fr); }
}
