/* =============================================================================
   dark.css — DTmember 管理后台暗色主题 (参考 TRAE / GitHub Dark)
   覆盖 tokens.css 变量，所有组件自动继承。
   ============================================================================= */

[data-theme="dark"] {
  /* ---- Surfaces ---- */
  --color-surface-base: #0d1117;
  --color-surface-raised: #161b22;
  --color-surface-overlay: #161b22;
  --color-surface-sunken: #010409;

  /* ---- Text ---- */
  --color-text-primary: #e6edf3;
  --color-text-secondary: #8b949e;
  --color-text-tertiary: #6e7681;
  --color-text-disabled: #484f58;
  --color-text-inverse: #0d1117;
  --color-text-onBrand: #ffffff;

  /* ---- Borders ---- */
  --color-border-default: #30363d;
  --color-border-subtle: #21262d;
  --color-border-strong: #484f58;
  --color-border-focus: #58a6ff;

  /* ---- Brand ---- */
  --color-brand-primary-50: #0d1117;
  --color-brand-primary-100: #161b22;
  --color-brand-primary-200: #21262d;
  --color-brand-primary-300: #30363d;
  --color-brand-primary-400: #484f58;
  --color-brand-primary-500: #6e7681;
  --color-brand-primary-600: #58a6ff;
  --color-brand-primary-700: #1f6feb;
  --color-brand-primary-800: #1158c7;
  --color-brand-primary-900: #0d419d;
  --color-brand-primary-950: #052865;

  /* ---- Status ---- */
  --color-status-success-bg: rgba(35,134,54,0.15);
  --color-status-success-fg: #3fb950;
  --color-status-success-border: #238636;
  --color-status-warning-bg: rgba(210,153,34,0.15);
  --color-status-warning-fg: #e3b341;
  --color-status-warning-border: #d29922;
  --color-status-error-bg: rgba(218,54,51,0.15);
  --color-status-error-fg: #f85149;
  --color-status-error-border: #da3633;
  --color-status-info-bg: rgba(56,139,253,0.15);
  --color-status-info-fg: #58a6ff;
  --color-status-info-border: #388bfd;

  /* ---- Charts ---- */
  --color-chart-categorical1: #58a6ff;
  --color-chart-categorical2: #3fb950;
  --color-chart-categorical3: #f0883e;
  --color-chart-categorical4: #d29922;
  --color-chart-categorical5: #a371f7;
  --color-chart-categorical6: #56d4dd;
  --color-chart-gridLine: #21262d;
  --color-chart-axisLabel: #6e7681;

  /* ---- Shadows (subdued on dark) ---- */
  --shadow-xs: 0 0 transparent;
  --shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.30);
  --shadow-md: 0 1px 3px 0 rgba(0,0,0,0.40), 0 1px 2px -1px rgba(0,0,0,0.40);
  --shadow-lg: 0 4px 6px -1px rgba(0,0,0,0.50), 0 2px 4px -2px rgba(0,0,0,0.50);
  --shadow-xl: 0 10px 15px -3px rgba(0,0,0,0.60), 0 4px 6px -4px rgba(0,0,0,0.60);
  --shadow-2xl: 0 20px 25px -5px rgba(0,0,0,0.70), 0 8px 10px -6px rgba(0,0,0,0.70);
}

/* ---- Scrollbar dark ---- */
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: var(--color-border-default);
}
[data-theme="dark"] * {
  scrollbar-color: var(--color-border-default) transparent;
}

/* =============================================================================
   Dashboard 专用组件 (暗色主题内)
   ============================================================================= */

.tabs .tab.is-active,
.llm-provider-tabs .tab.is-active {
  color: var(--color-brand-primary-600);
  border-bottom-color: var(--color-brand-primary-600);
}
.llm-guide-list {
  margin: 0;
  padding-left: 1.2em;
  color: var(--color-text-secondary);
}
.llm-guide-list li + li {
  margin-top: var(--spacing-1);
}
.backend-version {
  margin-left: var(--spacing-1);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-normal);
  color: var(--color-text-tertiary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ---- Heatmap (12-month calendar grid, full width) ---- */
.heatmap-card .card-h { margin-bottom: var(--spacing-2); }
.heatmap-wrap {
  width: 100%;
  overflow: hidden;
}
.heatmap-months {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--spacing-2);
  width: 100%;
}
.heatmap-month {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-1);
  min-width: 0;
  width: 100%;
}
.heatmap-month-title {
  font-size: 10px;
  color: var(--color-text-tertiary);
  text-align: center;
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.heatmap-month-total {
  font-size: 10px;
  text-align: center;
  color: var(--color-text-secondary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.heatmap-month-grid {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
}
.heatmap-week-row {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 2px;
  width: 100%;
}
.heatmap-cell {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 2px;
  background: var(--color-surface-sunken);
  cursor: default;
  transition: transform 80ms ease, box-shadow 80ms ease;
}
.heatmap-cell.is-empty {
  visibility: hidden;
  pointer-events: none;
}
.heatmap-cell:not(.is-empty):hover {
  transform: scale(1.15);
  z-index: 1;
  box-shadow: 0 0 0 1px var(--color-border-strong);
}
.heatmap-cell.l0 { background: var(--color-surface-sunken); }
.heatmap-cell.l1 { background: #0e4429; }
.heatmap-cell.l2 { background: #006d32; }
.heatmap-cell.l3 { background: #26a641; }
.heatmap-cell.l4 { background: #39d353; }
.heatmap-legend {
  display: flex; align-items: center; gap: var(--spacing-2); margin-top: var(--spacing-3);
  font-size: var(--font-size-xs); color: var(--color-text-tertiary);
}
.heatmap-legend .swatch {
  width: 10px; height: 10px; border-radius: var(--radius-sm);
}
.dash-tip,
.heatmap-tip {
  position: fixed;
  z-index: 1000;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--spacing-2) var(--spacing-3);
  background: var(--color-surface-overlay);
  border: var(--border-width-1) solid var(--color-border-default);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
  line-height: 1.4;
}
.dash-tip[hidden],
.heatmap-tip[hidden] { display: none !important; }
.dash-tip strong,
.heatmap-tip strong {
  color: var(--color-text-primary);
  font-weight: var(--font-weight-semibold);
}
.dash-tip span,
.heatmap-tip span {
  font-variant-numeric: tabular-nums;
  color: var(--color-status-success-fg);
}
@media (max-width: 1400px) {
  .heatmap-months { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .heatmap-months { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .heatmap-months { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---- Trend chart (7/15/30 day, multi-app lines) ---- */
.trend-range {
  display: flex;
  align-items: center;
  gap: var(--spacing-1);
}
.trend-range .btn.is-active {
  background: var(--color-surface-sunken);
  color: var(--color-text-primary);
  border-color: var(--color-border-default);
}
.btn-ghost.btn-sm.is-active {
  background: var(--color-surface-sunken);
  color: var(--color-text-primary);
  border-color: var(--color-border-default);
}

/* ---- Region analytics ---- */
.region-bar-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-2);
  font-size: var(--font-size-sm);
}
.region-bar-name {
  width: 56px;
  flex-shrink: 0;
  color: var(--color-text-secondary);
}
.region-bar-track {
  flex: 1;
  height: 8px;
  background: var(--color-surface-sunken);
  border-radius: var(--radius-full);
  overflow: hidden;
}
.region-bar-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: var(--color-chart-categorical2);
}
.region-bar-count {
  width: 48px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--color-text-tertiary);
  font-size: var(--font-size-xs);
}
.chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-2) var(--spacing-4);
  margin-bottom: var(--spacing-3);
  padding-bottom: var(--spacing-2);
  border-bottom: var(--border-width-1) solid var(--color-border-subtle);
}
.chart-legend-item {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2);
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
  white-space: nowrap;
}
.chart-legend-swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}
.chart-legend-swatch.c1 { background: var(--color-chart-categorical1); }
.chart-legend-swatch.c2 { background: var(--color-chart-categorical2); }
.chart-legend-swatch.c3 { background: var(--color-chart-categorical3); }
.chart-legend-swatch.c4 { background: var(--color-chart-categorical4); }
.chart-legend-swatch.c5 { background: var(--color-chart-categorical5); }
.chart-wrap {
  position: relative;
  width: 100%;
}
.chart-wrap .chart {
  display: block;
  width: 100%;
}
.chart-multi .chart-line {
  fill: none;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  opacity: 0.92;
}
.chart-line-c1 { stroke: var(--color-chart-categorical1); }
.chart-line-c2 { stroke: var(--color-chart-categorical2); }
.chart-line-c3 { stroke: var(--color-chart-categorical3); }
.chart-line-c4 { stroke: var(--color-chart-categorical4); }
.chart-line-c5 { stroke: var(--color-chart-categorical5); }
.chart-day .chart-hit {
  fill: transparent;
  cursor: crosshair;
}
.chart-day .chart-dot {
  opacity: 0;
  pointer-events: none;
  transition: opacity 80ms ease, r 80ms ease;
  stroke: var(--color-surface-raised);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}
.chart-dot-c1 { fill: var(--color-chart-categorical1); }
.chart-dot-c2 { fill: var(--color-chart-categorical2); }
.chart-dot-c3 { fill: var(--color-chart-categorical3); }
.chart-dot-c4 { fill: var(--color-chart-categorical4); }
.chart-dot-c5 { fill: var(--color-chart-categorical5); }
.chart-day:hover .chart-dot {
  opacity: 1;
}
.chart-day:hover .chart-line {
  opacity: 1;
}
.chart-zero-line {
  stroke: var(--color-border-subtle);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.chart-axis {
  margin-top: var(--spacing-2);
}
.chart-axis-months,
.chart-axis-days {
  position: relative;
  width: 100%;
}
.chart-axis-months {
  height: 1rem;
  margin-bottom: 2px;
}
.chart-axis-days {
  height: 1.125rem;
}
.chart-axis-month,
.chart-axis-day {
  position: absolute;
  white-space: nowrap;
  font-size: 10px;
  line-height: 1.2;
}
.chart-axis-month {
  color: var(--color-text-secondary);
  font-weight: var(--font-weight-medium);
}
.chart-axis-day {
  color: var(--color-text-tertiary);
  font-variant-numeric: tabular-nums;
}
.chart-axis-pos-first { transform: translateX(0); }
.chart-axis-pos-mid { transform: translateX(-50%); }
.chart-axis-pos-last { transform: translateX(-100%); }
.dash-tip .chart-tip-row {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin-top: var(--spacing-1);
  padding-top: var(--spacing-1);
  border-top: var(--border-width-1) solid var(--color-border-subtle);
}
.dash-tip .chart-tip-row:first-of-type {
  margin-top: var(--spacing-2);
}
.dash-tip .chart-tip-name {
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
}
.dash-tip .chart-tip-name::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  margin-right: 6px;
  vertical-align: middle;
}
.dash-tip .chart-tip-row.c1 .chart-tip-name::before { background: var(--color-chart-categorical1); }
.dash-tip .chart-tip-row.c2 .chart-tip-name::before { background: var(--color-chart-categorical2); }
.dash-tip .chart-tip-row.c3 .chart-tip-name::before { background: var(--color-chart-categorical3); }
.dash-tip .chart-tip-row.c4 .chart-tip-name::before { background: var(--color-chart-categorical4); }
.dash-tip .chart-tip-row.c5 .chart-tip-name::before { background: var(--color-chart-categorical5); }
.dash-tip .chart-tip-val {
  font-variant-numeric: tabular-nums;
  color: var(--color-status-success-fg);
  font-size: var(--font-size-xs);
  padding-left: 12px;
  font-weight: var(--font-weight-medium);
}
.dash-tip .chart-tip-total {
  margin-top: var(--spacing-2);
  padding-top: var(--spacing-2);
  border-top: var(--border-width-1) solid var(--color-border-default);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  font-variant-numeric: tabular-nums;
}

/* ---- China map heatmap ---- */
.geo-row {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--spacing-4);
  align-items: stretch;
}
.geo-map-col,
.geo-rank-col {
  min-width: 0;
}
.geo-rank-head {
  margin-bottom: var(--spacing-3);
}
.geo-rank-head h3 {
  margin: 0;
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
}
.geo-rank-table {
  max-height: 420px;
  overflow: auto;
}
.geo-rank-table .table-compact {
  font-size: var(--font-size-xs);
}
.geo-rank-table .table-compact th,
.geo-rank-table .table-compact td {
  padding: var(--spacing-1) var(--spacing-2);
}
.geo-rank-city {
  max-width: 8rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.china-map-chart {
  width: 100%;
  height: 420px;
  min-height: 320px;
}
@media (max-width: 1024px) {
  .geo-row { grid-template-columns: 1fr; }
  .geo-rank-table { max-height: none; }
}
.city-rank-section .table td.num,
.city-rank-section .table th.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* ---- Top App progress bars ---- */
.app-rank {
  display: flex; flex-direction: column; gap: var(--spacing-3);
}
.app-rank-item {
  display: flex; flex-direction: column; gap: var(--spacing-1);
}
.app-rank-head {
  display: flex; justify-content: space-between; align-items: center;
  font-size: var(--font-size-sm);
}
.app-rank-bar-wrap {
  height: 8px; background: var(--color-surface-sunken);
  border-radius: var(--radius-full); overflow: hidden;
}
.app-rank-bar-fill {
  height: 100%; border-radius: var(--radius-full);
  background: var(--color-brand-primary-600);
  transition: width 400ms var(--ease-standard);
}
.app-rank-bar-fill.c2 { background: var(--color-chart-categorical2); }
.app-rank-bar-fill.c3 { background: var(--color-chart-categorical3); }
.app-rank-bar-fill.c4 { background: var(--color-chart-categorical4); }
.app-rank-bar-fill.c5 { background: var(--color-chart-categorical5); }

/* ---- Usage events table dark tweaks ---- */
.event-table-wrap {
  border: var(--border-width-1) solid var(--color-border-subtle);
  border-radius: var(--radius-lg); overflow: hidden;
  background: var(--color-surface-raised);
}
.event-table {
  width: 100%; border-collapse: collapse; font-size: var(--font-size-sm);
}
.event-table thead {
  background: var(--color-surface-sunken);
  color: var(--color-text-tertiary);
  font-weight: var(--font-weight-semibold);
  font-size: var(--font-size-xs);
  text-transform: uppercase; letter-spacing: var(--letter-spacing-wide);
}
.event-table thead th {
  padding: var(--spacing-2) var(--spacing-4);
  border-bottom: var(--border-width-1) solid var(--color-border-subtle);
  text-align: left;
}
.event-table tbody tr {
  border-top: var(--border-width-1) solid var(--color-border-subtle);
}
.event-table tbody td {
  padding: var(--spacing-2) var(--spacing-4);
  color: var(--color-text-secondary);
}
.event-table tbody tr:hover {
  background: var(--color-surface-sunken);
}
.event-table .num {
  text-align: right; font-variant-numeric: tabular-nums;
}
.event-table .time {
  font-family: var(--font-family-mono); font-size: var(--font-size-xs);
  color: var(--color-text-tertiary);
}

/* ---- Model ranking ---- */
.model-rank {
  display: flex; flex-direction: column; gap: var(--spacing-3);
}
.model-rank-item {
  display: flex; align-items: center; gap: var(--spacing-3);
  font-size: var(--font-size-sm);
}
.model-rank-name {
  width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--color-text-primary);
}
.model-rank-track {
  flex: 1; height: 8px; background: var(--color-surface-sunken);
  border-radius: var(--radius-full); overflow: hidden;
}
.model-rank-fill {
  height: 100%; border-radius: var(--radius-full);
  background: var(--color-brand-primary-600);
  transition: width 400ms var(--ease-standard);
}
.model-rank-count {
  width: 60px; text-align: right; font-variant-numeric: tabular-nums;
  color: var(--color-text-secondary);
}

/* ---- Trend chart dark override ---- */
[data-theme="dark"] .chart-grid { stroke: var(--color-chart-gridLine); }

/* ---- KPI card accent top border (optional) ---- */
.kpi-accent {
  position: relative; overflow: hidden;
}
.kpi-accent::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0;
  height: 2px; background: var(--color-brand-primary-600); opacity: 0.6;
}

/* ---- Responsive dashboard grid ---- */
.dash-grid {
  display: grid;
  gap: var(--spacing-4);
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
@media (max-width: 1280px) {
  .dash-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .dash-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.dash-row {
  display: grid;
  gap: var(--spacing-4);
  grid-template-columns: 1.5fr 1fr;
}
.dash-col-stack {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
  min-width: 0;
}
@media (max-width: 1024px) {
  .dash-row { grid-template-columns: 1fr; }
}
.model-rank-fill-hub {
  background: linear-gradient(90deg, #8957e5, #a371f7);
}

/* =============================================================================
   Aurora-glass 主按钮（管理后台 + 会员中心，替代蓝底白字 btn-primary）
   ============================================================================= */
body.manage-app,
body.console-app {
  --color-glass-base: rgba(255, 255, 255, 0.04);
  --color-glass-raised: rgba(255, 255, 255, 0.08);
  --color-glass-hover: rgba(255, 255, 255, 0.12);
  --color-glass-edge: rgba(255, 255, 255, 0.12);
  --backdrop-blur-md: 12px;
}

body.manage-app .btn-primary,
body.console-app .btn-primary {
  background: var(--color-glass-base);
  color: var(--color-text-primary);
  border-color: var(--color-glass-edge);
  backdrop-filter: blur(var(--backdrop-blur-md));
  -webkit-backdrop-filter: blur(var(--backdrop-blur-md));
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-tight);
  box-shadow: none;
  transition: transform var(--duration-fast) var(--ease-standard),
              box-shadow var(--duration-fast) var(--ease-standard),
              background var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard);
}
body.manage-app .btn-primary:hover,
body.console-app .btn-primary:hover {
  background: var(--color-glass-raised);
  border-color: var(--color-text-primary);
  transform: translateY(-1px);
}
body.manage-app .btn-primary:active,
body.console-app .btn-primary:active {
  background: var(--color-glass-hover);
  transform: translateY(0);
}

/* ---- Avatar / Switch：与 glass 主按钮统一 ---- */
body.manage-app .avatar,
body.console-app .avatar {
  background: var(--color-glass-base);
  border-color: var(--color-glass-edge);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--color-text-primary);
}
body.manage-app .avatar.tint-1,
body.console-app .avatar.tint-1 {
  color: var(--color-chart-categorical1);
  border-color: color-mix(in srgb, var(--color-chart-categorical1) 45%, var(--color-glass-edge));
  background: color-mix(in srgb, var(--color-chart-categorical1) 16%, var(--color-glass-base));
}
body.manage-app .avatar.tint-2,
body.console-app .avatar.tint-2 {
  color: var(--color-chart-categorical2);
  border-color: color-mix(in srgb, var(--color-chart-categorical2) 45%, var(--color-glass-edge));
  background: color-mix(in srgb, var(--color-chart-categorical2) 16%, var(--color-glass-base));
}
body.manage-app .avatar.tint-3,
body.console-app .avatar.tint-3 {
  color: var(--color-chart-categorical3);
  border-color: color-mix(in srgb, var(--color-chart-categorical3) 45%, var(--color-glass-edge));
  background: color-mix(in srgb, var(--color-chart-categorical3) 16%, var(--color-glass-base));
}
body.manage-app .avatar.tint-4,
body.console-app .avatar.tint-4 {
  color: var(--color-chart-categorical4);
  border-color: color-mix(in srgb, var(--color-chart-categorical4) 45%, var(--color-glass-edge));
  background: color-mix(in srgb, var(--color-chart-categorical4) 16%, var(--color-glass-base));
}
body.manage-app .avatar.tint-5,
body.console-app .avatar.tint-5 {
  color: var(--color-chart-categorical5);
  border-color: color-mix(in srgb, var(--color-chart-categorical5) 45%, var(--color-glass-edge));
  background: color-mix(in srgb, var(--color-chart-categorical5) 16%, var(--color-glass-base));
}
body.manage-app .avatar.tint-6,
body.console-app .avatar.tint-6 {
  color: var(--color-chart-categorical6);
  border-color: color-mix(in srgb, var(--color-chart-categorical6) 45%, var(--color-glass-edge));
  background: color-mix(in srgb, var(--color-chart-categorical6) 16%, var(--color-glass-base));
}

body.manage-app .switch-track,
body.console-app .switch-track {
  background: var(--color-glass-base);
  border-color: var(--color-glass-edge);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
body.manage-app .switch-track::after,
body.console-app .switch-track::after {
  background: var(--color-surface-raised);
  border-color: var(--color-border-default);
}
body.manage-app .switch input:checked + .switch-track,
body.console-app .switch input:checked + .switch-track {
  background: var(--color-glass-raised);
  border-color: var(--color-text-primary);
}
body.manage-app .switch input:checked + .switch-track::after,
body.console-app .switch input:checked + .switch-track::after {
  background: var(--color-text-primary);
  border-color: transparent;
}

body.manage-app .check-row input[type="checkbox"],
body.console-app .check-row input[type="checkbox"] {
  background: var(--color-glass-base);
  border-color: var(--color-glass-edge);
}
body.manage-app .check-row input[type="checkbox"]:checked,
body.console-app .check-row input[type="checkbox"]:checked {
  background: var(--color-glass-raised);
  border-color: var(--color-text-primary);
}
body.manage-app .check-row input[type="checkbox"]:checked::after,
body.console-app .check-row input[type="checkbox"]:checked::after {
  border-left-color: var(--color-text-primary);
  border-bottom-color: var(--color-text-primary);
}

@media (prefers-reduced-motion: reduce) {
  body.manage-app .btn-primary,
  body.console-app .btn-primary { transition: none !important; }
  body.manage-app .btn-primary:hover,
  body.console-app .btn-primary:hover { transform: none !important; }
}
