
#login-grid {
  min-height: 100vh;
  height: auto;
  margin: 0;
  padding: 48px 16px;
  background:
    linear-gradient(135deg, rgba(33, 133, 208, 0.09), rgba(46, 204, 113, 0.08)),
    #f6f8fb;
}

#login-grid>.column {
  max-width: 430px;
  width: 100%;
}

.login-brand {
  margin-bottom: 22px;
  color: #1f2937;
}

.login-brand-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin-bottom: 14px;
  border-radius: 8px;
  background: #1f2937;
  color: #fff;
  box-shadow: 0 14px 34px rgba(31, 41, 55, 0.16);
}

.login-brand-icon .icon {
  margin: 0;
  font-size: var(--ds-fs-h1);
}

.login-brand h2 {
  margin: 0;
  font-size: var(--ds-fs-stat);
  line-height: var(--ds-lh-tight);
  font-weight: 700;
  letter-spacing: 0;
}

.login-brand p {
  margin: 8px 0 0;
  color: #6b7280;
  font-size: var(--ds-fs-body);
}

#login-form.login-card .ui.segment {
  padding: 24px;
  border: 1px solid rgba(31, 41, 55, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 24px 70px rgba(31, 41, 55, 0.14);
}

#login-form.login-card .field {
  margin-bottom: 14px;
}

#login-form.login-card .ui.input {
  width: 100%;
}

#login-form.login-card .ui.input>input {
  height: 46px;
  border-color: #d7dee8;
  border-radius: 6px;
  background: #fff;
  color: #1f2937;
  font-size: var(--ds-fs-h3);
}

#login-form.login-card .ui.input>input::placeholder {
  color: #98a2b3;
}

#login-form.login-card .ui.left.icon.input>i.icon {
  color: #8a99aa;
}

#login-form.login-card .ui.input>input:focus {
  border-color: #2185d0;
  box-shadow: 0 0 0 3px rgba(33, 133, 208, 0.12);
}

.captcha-row {
  display: flex;
  gap: 12px;
  align-items: stretch;
}

.captcha-input {
  flex: 1 1 auto;
  min-width: 0;
}

.captcha-image {
  display: flex;
  flex: 0 0 150px;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border: 1px solid #d7dee8;
  border-radius: 6px;
  background: #f8fafc;
  color: #7b8794;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.captcha-image:hover {
  border-color: #2185d0;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(33, 133, 208, 0.1);
}

.captcha-image img {
  max-width: 100%;
}

#login-form.login-card .ui.button {
  height: 48px;
  margin-top: 4px;
  border-radius: 6px;
  background: #1f2937;
  font-weight: 700;
  letter-spacing: 0;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

#login-form.login-card .ui.button:hover,
#login-form.login-card .ui.button:focus {
  background: #111827;
  box-shadow: 0 10px 24px rgba(17, 24, 39, 0.2);
}

#login-form.login-card .ui.button:active {
  transform: translateY(1px);
}

#login-form.login-card .ui.error.message {
  margin-top: 14px;
}

#admin-left-menu {
  max-width: 200px;    
}

#admin-top-menu {
  display: none;
  max-height: 60px;
}

#admin-right-content {  
  padding-left: 200px;
}

@media only screen and (max-width: 550px) {
  #login-grid {
    align-items: flex-start;
    padding: 28px 14px;
  }

  .login-brand h2 {
    font-size: var(--ds-fs-h1);
  }

  #login-form.login-card .ui.segment {
    padding: 18px;
  }

  .captcha-row {
    flex-direction: column;
  }

  .captcha-image {
    flex-basis: auto;
  }

  #admin-left-menu {
    display: none;
  }

  #admin-top-menu {
    display: block;
  }

  #admin-right-content {
    padding-top: 60px;
    padding-left: 0px;
  }  
}

/* ==========  通配域名子域名策略 chips (按钮勾选, 比 multi select 直观)  ========== */
.strategy-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 4px 0;
}
.strategy-chip {
  cursor: pointer;
  user-select: none;
  padding: 6px 14px;
  border: 1px solid #d4d4d5;
  border-radius: 18px;
  background: #fff;
  color: #555;
  font-size: var(--ds-fs-label);
  transition: all 0.15s ease;
  position: relative;
}
.strategy-chip:hover {
  border-color: #2185d0;
  color: #2185d0;
  background: #f0f8ff;
}
.strategy-chip.active {
  background: #2185d0;
  color: #fff;
  border-color: #2185d0;
  font-weight: 500;
}
.strategy-chip.active:hover {
  background: #1c6ab0;
  border-color: #1c6ab0;
  color: #fff;
}
/* 选中后显示选择顺序徽标 (1/2/3) */
.strategy-chip.active::before {
  content: attr(data-order);
  display: inline-block;
  background: #fff;
  color: #2185d0;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  font-size: var(--ds-fs-micro);
  font-weight: bold;
  margin-right: 6px;
  vertical-align: middle;
}
.strategy-preview {
  font-size: var(--ds-fs-small);
  color: #888;
  margin-top: 6px;
  word-break: break-all;
}
.strategy-preview code {
  color: #2185d0;
  background: #f5f5f5;
  padding: 1px 4px;
  border-radius: 3px;
}
.strategy-wordbook-select-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 4px;
  color: #6b7280;
  font-size: var(--ds-fs-label);
  white-space: nowrap;
}
.strategy-wordbook-select {
  min-width: 160px;
  height: 34px;
  padding: 6px 28px 6px 10px;
  border: 1px solid #d4d4d5;
  border-radius: 6px;
  background: #fff;
  color: #1f2937;
}
.strategy-wordbook-select.is-selected {
  border-color: #2185d0;
  background: #eef6ff;
  color: #0b66c3;
  font-weight: 700;
  box-shadow: 0 0 0 2px rgba(33, 133, 208, 0.16);
}
.strategy-wordbook-select option:checked {
  background: #2185d0;
  color: #fff;
}

/* ============================================================
   参照「广告管理」视觉语言 — 浅色侧栏 + 蓝色主题
   通过 CSS override Semantic UI 默认样式，不改业务页 HTML
   ============================================================ */
:root {
  --ds-primary: oklch(0.588 0.213 255);
  --ds-primary-h: oklch(0.52 0.213 255);
  --ds-primary-soft: oklch(0.95 0.05 255);
  --ds-primary-fg: #ffffff;

  --ds-bg: oklch(0.985 0 0);
  --ds-card-bg: #ffffff;
  --ds-sidebar-bg: oklch(0.99 0 0);
  --ds-hover-bg: oklch(0.97 0 0);
  --ds-selected-bg: oklch(0.95 0.02 255);

  --ds-border: oklch(0.922 0 0);
  --ds-border-strong: oklch(0.87 0 0);
  --ds-text: oklch(0.145 0 0);
  --ds-text-muted: oklch(0.556 0 0);
  --ds-text-soft: oklch(0.7 0 0);

  --ds-success: oklch(0.696 0.17 162);
  --ds-warn: oklch(0.75 0.18 80);
  --ds-error: oklch(0.577 0.245 27);

  --ds-radius: 8px;
  --ds-radius-sm: 6px;
  --ds-shadow: 0 1px 3px rgba(0,0,0,0.06);
  --ds-shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --ds-font: 'Inter', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;

  /* 字号 Token（统一各页字号比例，覆盖 Semantic UI 默认） */
  --ds-fs-h1: 22px;
  --ds-fs-h2: 18px;
  --ds-fs-h3: 15px;
  --ds-fs-body: 14px;
  --ds-fs-label: 13px;
  --ds-fs-small: 12px;
  --ds-fs-micro: 11px;
  --ds-fs-stat: 28px;
  --ds-lh-tight: 1.25;
  --ds-lh-body: 1.45;
  --ds-lh-control: 1.2;
}

body {
  font-family: var(--ds-font);
  font-size: var(--ds-fs-body);
  line-height: var(--ds-lh-body);
  background: var(--ds-bg);
  color: var(--ds-text);
  -webkit-font-smoothing: antialiased;
}

/* ---------- 侧栏 ---------- */
#admin-left-menu.ui.menu,
#sidebar-menu.ui.menu {
  width: 220px;
  max-width: 220px;
  background: var(--ds-sidebar-bg);
  border: none;
  border-right: 1px solid var(--ds-border);
  box-shadow: none;
  font-family: var(--ds-font);
  padding: 8px 0 12px;
}
#admin-left-menu .brand.item,
#sidebar-menu .brand.item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 18px;
  font-size: var(--ds-fs-h3);
  font-weight: 700;
  color: var(--ds-text);
  border-bottom: 1px solid var(--ds-border);
  background: transparent;
}
#admin-left-menu .brand.item::before,
#sidebar-menu .brand.item::before { display: none; }
#admin-left-menu .brand-mark,
#sidebar-menu .brand-mark {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  background: var(--ds-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#admin-left-menu .brand-mark .icon,
#sidebar-menu .brand-mark .icon { margin: 0; font-size: var(--ds-fs-body); }

/* 分组容器：去掉 Semantic 自带的边框/缩进 */
#admin-left-menu > .item,
#sidebar-menu > .item {
  padding: 8px 10px 4px;
  background: transparent;
  border: none;
}
#admin-left-menu > .item::before,
#sidebar-menu > .item::before { display: none; }
#admin-left-menu > .item > .ui.header,
#sidebar-menu > .item > .ui.header {
  margin: 8px 12px 4px;
  font-size: var(--ds-fs-micro);
  font-weight: 600;
  color: var(--ds-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: transparent;
}

/* 分组内菜单 */
#admin-left-menu .menu,
#sidebar-menu .menu {
  background: transparent;
  margin: 0;
}
#admin-left-menu .menu > .item,
#sidebar-menu .menu > .item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  margin: 2px 4px;
  border-radius: var(--ds-radius-sm);
  font-size: var(--ds-fs-body);
  font-weight: 500;
  color: var(--ds-text);
  background: transparent;
  border: none;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
#admin-left-menu .menu > .item::before,
#sidebar-menu .menu > .item::before { display: none; }
#admin-left-menu .menu > .item:hover,
#sidebar-menu .menu > .item:hover {
  background: var(--ds-hover-bg);
  color: var(--ds-text);
}
#admin-left-menu .menu > .item.active,
#sidebar-menu .menu > .item.active {
  background: var(--ds-selected-bg);
  color: var(--ds-primary);
  font-weight: 600;
}
#admin-left-menu .menu > .item > .icon,
#sidebar-menu .menu > .item > .icon {
  margin: 0;
  font-size: var(--ds-fs-body);
  width: 16px;
  text-align: center;
  opacity: 0.8;
}
#admin-left-menu .menu > .item.active > .icon,
#sidebar-menu .menu > .item.active > .icon { opacity: 1; }

/* ---------- 顶栏（移动端） ---------- */
#admin-top-menu.ui.menu {
  background: var(--ds-card-bg);
  border: none;
  border-bottom: 1px solid var(--ds-border);
  box-shadow: none;
  color: var(--ds-text);
  font-family: var(--ds-font);
  height: 56px;
  max-height: 56px;
}
#admin-top-menu .header.item {
  font-size: var(--ds-fs-h3);
  font-weight: 700;
  color: var(--ds-text);
  display: flex;
  align-items: center;
  gap: 10px;
}
#admin-top-menu .header.item::before { display: none; }
#admin-top-menu .header.item a { color: var(--ds-text); }
#admin-top-menu .header.item .sidebar.icon { color: var(--ds-text-muted); }

/* ---------- 主内容区 ---------- */
#admin-right-content {
  padding: 24px 28px 40px 244px;
  background: transparent;
}
@media only screen and (max-width: 550px) {
  #admin-right-content { padding: 72px 14px 24px; }
}

/* ---------- 卡片（segment） ---------- */
#admin-right-content .ui.segment {
  background: var(--ds-card-bg);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
  padding: 20px;
}
#admin-right-content .ui.basic.segment {
  border: none;
  box-shadow: none;
  padding: 0;
}
#admin-right-content .ui.card,
#admin-right-content .ui.cards > .card {
  background: var(--ds-card-bg);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  box-shadow: var(--ds-shadow);
}
#admin-right-content .ui.card > .content,
#admin-right-content .ui.cards > .card > .content { border-color: var(--ds-border); }
#admin-right-content .ui.card .header,
#admin-right-content .ui.cards > .card .header { font-family: var(--ds-font); color: var(--ds-text); }

/* 仪表盘大数字色彩压一压 */
#admin-right-content .ui.red.header { color: var(--ds-primary) !important; }
#admin-right-content .ui.header.green,
#admin-right-content .ui.header.olive,
#admin-right-content .ui.header.teal,
#admin-right-content .ui.header.orange { color: var(--ds-text) !important; }

/* ---------- 按钮 ---------- */
.ui.button {
  font-family: var(--ds-font);
  font-weight: 600;
  border-radius: var(--ds-radius-sm);
  box-shadow: none;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}
.ui.button:active { transform: translateY(1px); }
.ui.primary.button,
.ui.red.button,
.ui.green.button,
.ui.teal.button,
.ui.olive.button {
  background: var(--ds-primary);
  color: var(--ds-primary-fg);
}
.ui.primary.button:hover,
.ui.red.button:hover,
.ui.green.button:hover,
.ui.teal.button:hover,
.ui.olive.button:hover {
  background: var(--ds-primary-h);
  box-shadow: 0 4px 12px oklch(0.588 0.213 255 / 0.25);
}
.ui.basic.button,
.ui.basic.buttons .button {
  background: #fff !important;
  color: var(--ds-text) !important;
  border: 1px solid var(--ds-border-strong) !important;
  box-shadow: none !important;
}
.ui.basic.button:hover {
  background: var(--ds-hover-bg) !important;
  color: var(--ds-primary) !important;
  border-color: var(--ds-primary) !important;
}
.ui.negative.button,
.ui.red.basic.button {
  background: var(--ds-error) !important;
  color: #fff !important;
  border: none !important;
}
.ui.negative.button:hover { background: oklch(0.5 0.245 27) !important; }

/* ---------- 表单 input ---------- */
.ui.input > input,
.ui.form input[type="text"],
.ui.form input[type="password"],
.ui.form input[type="email"],
.ui.form input[type="number"],
.ui.form textarea,
.ui.selection.dropdown {
  font-family: var(--ds-font);
  border: 1px solid var(--ds-border-strong);
  border-radius: var(--ds-radius-sm);
  color: var(--ds-text);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ui.input > input:focus,
.ui.form input:focus,
.ui.form textarea:focus,
.ui.selection.dropdown:focus,
.ui.selection.active.dropdown {
  border-color: var(--ds-primary);
  box-shadow: 0 0 0 3px oklch(0.588 0.213 255 / 0.12);
}
.ui.form label { color: var(--ds-text); font-weight: 600; font-size: var(--ds-fs-label); }

/* ---------- 表格 ---------- */
.ui.table {
  font-family: var(--ds-font);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  overflow: hidden;
}
.ui.table thead th {
  background: var(--ds-hover-bg);
  color: var(--ds-text-muted);
  font-weight: 600;
  font-size: var(--ds-fs-small);
  border-bottom: 1px solid var(--ds-border);
}
.ui.table tbody td { color: var(--ds-text); border-top-color: var(--ds-border); }
.ui.table tbody tr:hover td { background: var(--ds-hover-bg); }

/* ---------- 访问日志筛选栏 ---------- */
.access-log-filter {
  width: 100%;
}
.access-log-filter-grid {
  display: grid;
  grid-template-columns: minmax(300px, 1.4fr) minmax(180px, 0.8fr) minmax(180px, 0.8fr) minmax(190px, 0.8fr) minmax(120px, 0.45fr) auto;
  gap: 14px;
  align-items: end;
}
.access-log-filter-grid .field {
  margin: 0 !important;
  min-width: 0;
}
.access-log-filter-grid .ui.calendar,
.access-log-url-control,
.access-log-select-control {
  width: 100%;
}
.access-log-filter-grid label {
  display: block;
  margin: 0 0 6px;
  color: var(--ds-text-muted);
  font-size: var(--ds-fs-small);
  font-weight: 600;
}
.access-log-url-control {
  display: grid;
  grid-template-columns: auto minmax(100px, 1fr);
  align-items: center;
  gap: 8px;
}
.access-log-prefix {
  max-width: 190px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ds-text-muted);
  font-weight: 600;
  line-height: 38px;
}
.access-log-url-control input,
.access-log-filter-grid .ui.calendar input {
  width: 100%;
  height: 38px;
  padding: 9px 12px;
  border: 1px solid var(--ds-border-strong);
  border-radius: var(--ds-radius-sm);
  background: #fff;
  color: var(--ds-text);
  font-family: var(--ds-font);
  font-size: var(--ds-fs-body);
  line-height: var(--ds-lh-control);
}
.access-log-device-select {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 9px 34px 9px 12px;
  border: 1px solid var(--ds-border-strong);
  border-radius: var(--ds-radius-sm);
  background: #fff;
  color: var(--ds-text);
  font-family: var(--ds-font);
  font-size: var(--ds-fs-body);
  line-height: var(--ds-lh-control);
}
.access-log-actions {
  display: inline-flex !important;
  gap: 8px;
  justify-content: flex-end;
  white-space: nowrap;
}
.access-log-actions .ui.button {
  margin: 0;
}

@media only screen and (max-width: 1380px) {
  .access-log-filter-grid {
    grid-template-columns: minmax(260px, 1fr) minmax(180px, 0.8fr) minmax(180px, 0.8fr);
  }
  .access-log-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media only screen and (max-width: 760px) {
  .access-log-filter-grid {
    grid-template-columns: 1fr;
  }
  .access-log-actions {
    flex-wrap: wrap;
  }
}

/* ---------- 通用：消息条、分页 ---------- */
.ui.message {
  border-radius: var(--ds-radius-sm);
  box-shadow: none;
  font-family: var(--ds-font);
}
.ui.pagination.menu {
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-sm);
  box-shadow: none;
  font-family: var(--ds-font);
}
.ui.pagination.menu .item { color: var(--ds-text); }
.ui.pagination.menu .active.item {
  background: var(--ds-selected-bg);
  color: var(--ds-primary);
}

/* ---------- 登录页：跟随新主色 ---------- */
.login-brand-icon {
  background: var(--ds-primary) !important;
  box-shadow: 0 14px 34px oklch(0.588 0.213 255 / 0.20) !important;
}
#login-form.login-card .ui.input > input:focus {
  border-color: var(--ds-primary) !important;
  box-shadow: 0 0 0 3px oklch(0.588 0.213 255 / 0.12) !important;
}
.captcha-image:hover {
  border-color: var(--ds-primary) !important;
  box-shadow: 0 0 0 3px oklch(0.588 0.213 255 / 0.10) !important;
}
#login-form.login-card .ui.button {
  background: var(--ds-primary) !important;
  color: #fff !important;
}
#login-form.login-card .ui.button:hover,
#login-form.login-card .ui.button:focus {
  background: var(--ds-primary-h) !important;
  box-shadow: 0 10px 24px oklch(0.588 0.213 255 / 0.25) !important;
}
.strategy-chip:hover { border-color: var(--ds-primary); color: var(--ds-primary); background: oklch(0.97 0.02 255); }
.strategy-chip.active { background: var(--ds-primary); border-color: var(--ds-primary); }
.strategy-chip.active:hover { background: var(--ds-primary-h); border-color: var(--ds-primary-h); }
.strategy-chip.active::before { color: var(--ds-primary); }
.strategy-preview code { color: var(--ds-primary); }

/* ---------- 桌面端隐藏移动顶栏，已有规则在前面，这里只调高度 ---------- */
@media only screen and (min-width: 551px) {
  #admin-top-menu { display: none !important; }
}

/* ============================================================
   字号一致性 — 统一各页文字比例
   ============================================================ */
body, .ui {
  font-size: var(--ds-fs-body);
}

/* Headers — 页面标题和分区标题分层，避免各页 Semantic 默认字号忽大忽小 */
#admin-right-content h1,
#admin-right-content .ui.huge.header { font-size: var(--ds-fs-h1); line-height: 1.3; font-weight: 700; color: var(--ds-text); margin: 0 0 16px; }
#admin-right-content h2,
#admin-right-content h2.ui.header,
#admin-right-content .ui.large.header { font-size: var(--ds-fs-h2); line-height: 1.35; font-weight: 700; color: var(--ds-text); margin: 0 0 12px; }
#admin-right-content h3,
#admin-right-content h3.ui.header,
#admin-right-content .ui.header { font-size: var(--ds-fs-h3); line-height: 1.4; font-weight: 600; color: var(--ds-text); margin: 0 0 10px; }
#admin-right-content h4,
#admin-right-content .ui.medium.header,
#admin-right-content .ui.small.header { font-size: var(--ds-fs-body); line-height: 1.4; font-weight: 600; color: var(--ds-text); margin: 0 0 8px; }
#admin-right-content h5,
#admin-right-content .ui.tiny.header { font-size: var(--ds-fs-body); line-height: 1.4; font-weight: 600; color: var(--ds-text); margin: 0 0 8px; }
#admin-right-content .ui.sub.header,
#admin-right-content .sub.header { font-size: var(--ds-fs-label); font-weight: 500; color: var(--ds-text-muted); margin-top: 4px; text-transform: none; }

/* Card 内部 header 统一到 h3 大小 */
#admin-right-content .ui.card .header,
#admin-right-content .ui.cards > .card .header {
  font-size: var(--ds-fs-h3);
  font-weight: 600;
  color: var(--ds-text);
}
#admin-right-content .ui.card .meta,
#admin-right-content .ui.cards > .card .meta { font-size: var(--ds-fs-label); color: var(--ds-text-muted); }
#admin-right-content .ui.card .description,
#admin-right-content .ui.cards > .card .description { font-size: var(--ds-fs-label); color: var(--ds-text-soft); }

/* 仪表盘大数字：统一字号 + 统一中性色（去掉 red/green/teal/yellow） */
#admin-right-content .ui.card .header > .ui.header,
#admin-right-content .ui.cards > .card .header > .ui.header {
  font-size: var(--ds-fs-stat) !important;
  font-weight: 700 !important;
  color: var(--ds-text) !important;
  line-height: 1.1;
}

/* 仪表盘按钮：彩色全部收敛到主品牌色 */
#admin-right-content .ui.card .extra .ui.button,
#admin-right-content .ui.cards > .card .extra .ui.button {
  background: var(--ds-primary);
  color: #fff;
}
#admin-right-content .ui.card .extra .ui.button:hover,
#admin-right-content .ui.cards > .card .extra .ui.button:hover {
  background: var(--ds-primary-h);
}

/* ---------- 按钮尺寸 token ---------- */
.ui.button { font-size: var(--ds-fs-body) !important; padding: 9px 16px; line-height: var(--ds-lh-control); }
.ui.large.button { font-size: var(--ds-fs-h3) !important; padding: 11px 18px; }
.ui.small.button { font-size: var(--ds-fs-label) !important; padding: 7px 13px; }
.ui.tiny.button  { font-size: var(--ds-fs-small) !important; padding: 6px 11px; }
.ui.mini.button  { font-size: var(--ds-fs-small) !important; padding: 5px 9px; }

/* ---------- Label 尺寸 token ---------- */
.ui.label { font-size: var(--ds-fs-label) !important; padding: 3px 8px; border-radius: 999px; font-weight: 600; }
.ui.large.label { font-size: var(--ds-fs-body) !important; }
.ui.small.label { font-size: var(--ds-fs-small) !important; }
.ui.tiny.label  { font-size: var(--ds-fs-micro) !important; padding: 2px 7px; }
.ui.mini.label  { font-size: var(--ds-fs-micro) !important; padding: 2px 6px; }

/* Label 颜色软化：basic 用浅底，实色保持但去除 box-shadow */
.ui.label { box-shadow: none; }
.ui.basic.label {
  background: var(--ds-hover-bg);
  border: 1px solid var(--ds-border);
  color: var(--ds-text);
}
.ui.red.label,    .ui.red.basic.label    { background: oklch(0.95 0.05 27);  color: var(--ds-error); border-color: transparent; }
.ui.green.label,  .ui.green.basic.label  { background: oklch(0.95 0.04 162); color: var(--ds-success); border-color: transparent; }
.ui.yellow.label, .ui.yellow.basic.label,
.ui.orange.label, .ui.orange.basic.label { background: oklch(0.96 0.06 80);  color: var(--ds-warn); border-color: transparent; }
.ui.blue.label,   .ui.blue.basic.label,
.ui.teal.label,   .ui.teal.basic.label   { background: var(--ds-selected-bg); color: var(--ds-primary); border-color: transparent; }
.ui.grey.label,   .ui.grey.basic.label   { background: var(--ds-hover-bg); color: var(--ds-text-muted); border-color: transparent; }

/* ---------- 表格字号 ---------- */
.ui.table { font-size: var(--ds-fs-body); }
.ui.table thead th { font-size: var(--ds-fs-small); }

/* ---------- 表单字号 ---------- */
.ui.form .field > label { font-size: var(--ds-fs-label); font-weight: 600; color: var(--ds-text); }
.ui.input > input,
.ui.form input,
.ui.form textarea,
.ui.selection.dropdown { font-size: var(--ds-fs-body); }

/* ---------- Message 字号 ---------- */
.ui.message { font-size: var(--ds-fs-label); padding: 12px 14px; }
.ui.message .header { font-size: var(--ds-fs-h3); }

/* ---------- 消息 (yellow/orange/red/green) 软化 + 统一色阶 ---------- */
.ui.yellow.message, .ui.orange.message {
  background: oklch(0.97 0.05 80);
  color: oklch(0.4 0.12 80);
  border: 1px solid oklch(0.88 0.08 80);
  box-shadow: none;
}
.ui.red.message {
  background: oklch(0.96 0.04 27);
  color: var(--ds-error);
  border: 1px solid oklch(0.88 0.08 27);
  box-shadow: none;
}
.ui.green.message {
  background: oklch(0.96 0.04 162);
  color: var(--ds-success);
  border: 1px solid oklch(0.88 0.08 162);
  box-shadow: none;
}
.ui.blue.message {
  background: var(--ds-selected-bg);
  color: var(--ds-primary);
  border: 1px solid oklch(0.88 0.06 255);
  box-shadow: none;
}

/* ---------- 把 inline style 里散落的灰色软化对齐 ---------- */
/* 这些 HTML 用了 color: #888 / #999 / #bbb，被 inline style 覆盖无法 CSS override；
   但 :where 兜底确保未指定颜色的辅助文字也走 muted */
#admin-right-content .description,
#admin-right-content .meta { color: var(--ds-text-muted); }

/* ---------- Statistic (如果有) ---------- */
.ui.statistic .value,
.ui.statistic > .value { font-size: var(--ds-fs-stat) !important; color: var(--ds-text) !important; font-weight: 700 !important; }
.ui.statistic .label,
.ui.statistic > .label { font-size: var(--ds-fs-label) !important; color: var(--ds-text-muted) !important; font-weight: 500 !important; text-transform: none; }

/* ---------- 分页字号 ---------- */
.ui.pagination.menu { font-size: var(--ds-fs-label); }
.ui.pagination.menu .item { padding: 7px 12px; min-width: 36px; }

/* ---------- 顶部页面标题（页面里直接写 h1/h2 的情况） ---------- */
#admin-right-content > .ui.basic.segment > h1:first-child,
#admin-right-content > .ui.basic.segment > h2:first-child {
  font-size: var(--ds-fs-h1);
  font-weight: 700;
  color: var(--ds-text);
  margin: 0 0 6px;
}

/* ---------- 后台局部字号兜底 ----------
   旧模板里有少量 inline em 字号，这里用 token 统一成可预期的层级。 */
#admin-right-content,
.ui.modal {
  font-size: var(--ds-fs-body);
  line-height: var(--ds-lh-body);
}

#admin-right-content [style*="font-size:0.6em"],
#admin-right-content [style*="font-size: 0.6em"],
.ui.modal [style*="font-size:0.6em"],
.ui.modal [style*="font-size: 0.6em"] {
  font-size: var(--ds-fs-label) !important;
  line-height: var(--ds-lh-body) !important;
}

#admin-right-content [style*="font-size:0.78em"],
#admin-right-content [style*="font-size: 0.78em"],
#admin-right-content [style*="font-size:0.8em"],
#admin-right-content [style*="font-size: 0.8em"],
#admin-right-content [style*="font-size:0.82em"],
#admin-right-content [style*="font-size: 0.82em"],
#admin-right-content [style*="font-size:0.84em"],
#admin-right-content [style*="font-size: 0.84em"],
.ui.modal [style*="font-size:0.78em"],
.ui.modal [style*="font-size: 0.78em"],
.ui.modal [style*="font-size:0.8em"],
.ui.modal [style*="font-size: 0.8em"],
.ui.modal [style*="font-size:0.82em"],
.ui.modal [style*="font-size: 0.82em"],
.ui.modal [style*="font-size:0.84em"],
.ui.modal [style*="font-size: 0.84em"] {
  font-size: var(--ds-fs-small) !important;
  line-height: var(--ds-lh-body) !important;
}

#admin-right-content [style*="font-size:0.85em"],
#admin-right-content [style*="font-size: 0.85em"],
#admin-right-content [style*="font-size:0.86em"],
#admin-right-content [style*="font-size: 0.86em"],
#admin-right-content [style*="font-size:0.9em"],
#admin-right-content [style*="font-size: 0.9em"],
#admin-right-content [style*="font-size:0.92em"],
#admin-right-content [style*="font-size: 0.92em"],
.ui.modal [style*="font-size:0.85em"],
.ui.modal [style*="font-size: 0.85em"],
.ui.modal [style*="font-size:0.86em"],
.ui.modal [style*="font-size: 0.86em"],
.ui.modal [style*="font-size:0.9em"],
.ui.modal [style*="font-size: 0.9em"],
.ui.modal [style*="font-size:0.92em"],
.ui.modal [style*="font-size: 0.92em"] {
  font-size: var(--ds-fs-label) !important;
  line-height: var(--ds-lh-body) !important;
}

#admin-right-content [style*="font-size:1.05em"],
#admin-right-content [style*="font-size: 1.05em"],
.ui.modal [style*="font-size:1.05em"],
.ui.modal [style*="font-size: 1.05em"] {
  font-size: var(--ds-fs-h3) !important;
  line-height: var(--ds-lh-tight) !important;
}

#admin-right-content code,
.ui.modal code,
#admin-right-content pre,
.ui.modal pre {
  font-size: var(--ds-fs-small);
  line-height: var(--ds-lh-body);
}

.ui.modal > .header,
.ui.modal .header:not(.ui) {
  font-size: var(--ds-fs-h2);
  line-height: 1.35;
}

.ui.modal .actions .button {
  font-size: var(--ds-fs-body);
}

.admin-pagination {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.admin-pagination .ui.button.active {
  background: #2185d0;
  color: #fff;
  box-shadow: none;
}

.admin-page-size {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.admin-page-size select {
  height: 34px;
  padding: 0 8px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
}

.url-health-filter {
  width: 100%;
  padding: 16px 18px !important;
  margin: 14px 0 18px !important;
}

.url-health-filter-row {
  display: grid;
  grid-template-columns: minmax(260px, 420px) 160px auto;
  gap: 14px;
  align-items: end;
}

.url-health-filter-row .field {
  margin: 0 !important;
}

.url-health-actions {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-width: 0;
  white-space: nowrap;
}

.url-health-actions .ui.button {
  margin: 0 !important;
}

.url-health-tabs {
  margin-top: 8px !important;
}

.url-health-tabs .item {
  min-height: 48px;
  padding-left: 22px !important;
  padding-right: 22px !important;
}

.url-health-tabs + .ui.tab.segment {
  margin-bottom: 0;
  padding: 18px !important;
  overflow-x: auto;
}

.url-health-pagination {
  margin-top: 0 !important;
  padding: 14px 18px !important;
}

.url-health-pagination .admin-pagination {
  margin-top: 8px !important;
}

.url-health-events {
  margin-top: 18px !important;
  padding: 0 !important;
  overflow-x: auto;
}

.url-health-events > .ui.header {
  margin: 0 !important;
  padding: 16px 18px 12px !important;
}

.url-health-events > table.ui.table {
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  margin: 0 !important;
}

@media (max-width: 900px) {
  .url-health-filter-row {
    grid-template-columns: 1fr;
  }

  .url-health-actions {
    flex-wrap: wrap;
    white-space: normal;
  }
}
