/**
 * 後台列表篩選列 — 統一 Filter ITEM 視覺
 * 適用：.admin-filter-card 內的 label／input／select／按鈕
 *（排除 chip、checkbox 列、分段 Tab）
 */
:root {
  --admin-filter-label-size: 0.75rem;
  --admin-filter-label-weight: 600;
  --admin-filter-label-color: #64748b;
  --admin-filter-label-gap: 0.35rem;
  --admin-filter-control-h: 2.5rem;
  --admin-filter-control-pad-x: 0.75rem;
  --admin-filter-control-pad-y: 0.5rem;
  --admin-filter-control-size: 0.875rem;
  --admin-filter-control-border: #e2e8f0;
  --admin-filter-control-radius: 0.5rem;
  --admin-filter-control-bg: #fff;
  --admin-filter-gap-x: 0.65rem;
  --admin-filter-gap-y: 0.5rem;
  --admin-filter-card-pad: 0.75rem 1rem;
}

/* —— 卡片容器 —— */
body.has-admin-topbar .card.admin-filter-card,
body.has-admin-topbar .admin-filter-card {
  padding: var(--admin-filter-card-pad) !important;
  border: 1px solid #f3f4f6 !important;
  border-radius: 8px !important;
  background: #fff;
}

/* 工具列型（僅按鈕列、非欄位篩選）保持稍緊湊 */
body.has-admin-topbar .admin-filter-card.admin-filter-card--toolbar {
  padding: 0.75rem 1rem !important;
}

/* 列表「顯示欄位與排序 / 批量刪除」統一工具列 */
.admin-list-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.admin-list-col-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* —— 標籤（Filter ITEM label） —— */
body.has-admin-topbar .admin-filter-card label.block,
body.has-admin-topbar .admin-filter-card span.block,
body.has-admin-topbar .admin-filter-card .mem-filter-field > label,
body.has-admin-topbar .admin-filter-card .admin-filter-field > label,
body.has-admin-topbar .admin-filter-card form > div > label.block,
body.has-admin-topbar .admin-filter-card [class*="grid"] > div > label,
body.has-admin-topbar .admin-filter-card .flex.flex-wrap > div > label,
body.has-admin-topbar .admin-filter-card #rpt-filters > div > label {
  display: block !important;
  font-size: var(--admin-filter-label-size) !important;
  font-weight: var(--admin-filter-label-weight) !important;
  color: var(--admin-filter-label-color) !important;
  margin-bottom: var(--admin-filter-label-gap) !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* —— 控制項（input / select / textarea） —— */
body.has-admin-topbar .admin-filter-card input[type="text"],
body.has-admin-topbar .admin-filter-card input[type="search"],
body.has-admin-topbar .admin-filter-card input[type="number"],
body.has-admin-topbar .admin-filter-card input[type="email"],
body.has-admin-topbar .admin-filter-card input[type="tel"],
body.has-admin-topbar .admin-filter-card input[type="date"],
body.has-admin-topbar .admin-filter-card input[type="datetime-local"],
body.has-admin-topbar .admin-filter-card input[type="month"],
body.has-admin-topbar .admin-filter-card input:not([type]),
body.has-admin-topbar .admin-filter-card select,
body.has-admin-topbar .admin-filter-card .admin-field-input:not(textarea),
body.has-admin-topbar .admin-filter-card .admin-field-select {
  box-sizing: border-box !important;
  width: 100%;
  min-width: 0 !important;
  min-height: var(--admin-filter-control-h) !important;
  height: auto !important;
  padding: var(--admin-filter-control-pad-y) var(--admin-filter-control-pad-x) !important;
  font-size: var(--admin-filter-control-size) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  color: #0f172a !important;
  background-color: var(--admin-filter-control-bg) !important;
  border: 1px solid var(--admin-filter-control-border) !important;
  border-radius: var(--admin-filter-control-radius) !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

body.has-admin-topbar .admin-filter-card textarea,
body.has-admin-topbar .admin-filter-card textarea.admin-field-input {
  box-sizing: border-box !important;
  width: 100%;
  min-width: 0 !important;
  height: auto !important;
  min-height: 6.25rem !important;
  padding: 0.75rem 0.9rem !important;
  font-size: var(--admin-filter-control-size) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: #0f172a !important;
  background-color: var(--admin-filter-control-bg) !important;
  border: 1px solid var(--admin-filter-control-border) !important;
  border-radius: var(--admin-filter-control-radius) !important;
  resize: vertical;
  overflow: auto;
}

body.has-admin-topbar .admin-filter-card input[type="text"]:focus,
body.has-admin-topbar .admin-filter-card input[type="search"]:focus,
body.has-admin-topbar .admin-filter-card input[type="number"]:focus,
body.has-admin-topbar .admin-filter-card input[type="date"]:focus,
body.has-admin-topbar .admin-filter-card input[type="datetime-local"]:focus,
body.has-admin-topbar .admin-filter-card input[type="month"]:focus,
body.has-admin-topbar .admin-filter-card input:not([type]):focus,
body.has-admin-topbar .admin-filter-card select:focus,
body.has-admin-topbar .admin-filter-card textarea:focus,
body.has-admin-topbar .admin-filter-card .admin-field-input:focus,
body.has-admin-topbar .admin-filter-card .admin-field-select:focus {
  border-color: var(--color-primary, var(--primary, #4255ff)) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, var(--primary, #4255ff)) 16%, transparent) !important;
}

body.has-admin-topbar .admin-filter-card input:disabled,
body.has-admin-topbar .admin-filter-card select:disabled,
body.has-admin-topbar .admin-filter-card textarea:disabled {
  background-color: #f8fafc !important;
  color: #94a3b8 !important;
  cursor: not-allowed;
}

body.has-admin-topbar .admin-filter-card select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 12px;
  padding-right: 2rem !important;
}

/* flex 排版頁（TM 等）欄位寬度下限，避免過扁 */
body.has-admin-topbar .admin-filter-card form.flex > div:not(.admin-filter-actions),
body.has-admin-topbar .admin-filter-card form.flex.flex-wrap > div:not(.admin-filter-actions) {
  min-width: 8.5rem;
  flex: 0 1 auto;
}

/* —— 操作按鈕 —— */
body.has-admin-topbar .admin-filter-card form button[type="submit"],
body.has-admin-topbar .admin-filter-card form button.bg-primary,
body.has-admin-topbar .admin-filter-card #rpt-search,
body.has-admin-topbar .admin-filter-card #mon-btn-search,
body.has-admin-topbar .admin-filter-card button[type="button"].bg-primary,
body.has-admin-topbar .admin-filter-card a.bg-primary.text-white,
body.has-admin-topbar .admin-filter-card a.bg-emerald-600 {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  min-height: var(--admin-filter-control-h) !important;
  padding: 0.5rem 1.1rem !important;
  font-size: var(--admin-filter-control-size) !important;
  font-weight: 700 !important;
  border-radius: var(--admin-filter-control-radius) !important;
  line-height: 1.25 !important;
}

body.has-admin-topbar .admin-filter-card form a.border,
body.has-admin-topbar .admin-filter-card form a.bg-gray-100,
body.has-admin-topbar .admin-filter-card a.border.border-gray-200,
body.has-admin-topbar .admin-filter-card a[href].text-gray-700.border,
body.has-admin-topbar .admin-filter-card a.inline-flex.border {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  min-height: var(--admin-filter-control-h) !important;
  padding: 0.5rem 1.1rem !important;
  font-size: var(--admin-filter-control-size) !important;
  font-weight: 600 !important;
  border-radius: var(--admin-filter-control-radius) !important;
  line-height: 1.25 !important;
}

/* 操作列：預設在欄位下方分隔；可加 .admin-filter-actions--inline 與網格同行 */
body.has-admin-topbar .admin-filter-card .admin-filter-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #eef0f5;
}
body.has-admin-topbar .admin-filter-card .mem-filter-actions {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
body.has-admin-topbar .admin-filter-card .admin-filter-actions.admin-filter-actions--inline,
body.has-admin-topbar .admin-filter-card .admin-filter-actions.\!mt-0,
body.has-admin-topbar .admin-filter-card .admin-filter-actions.\!border-0 {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  grid-column: 1 / -1;
  justify-content: flex-end;
  flex-wrap: wrap;
  min-width: 0;
  width: 100%;
}
/* 與上一篩選欄同一行（填滿該列剩餘欄，靠右） */
body.has-admin-topbar .admin-filter-card .admin-filter-actions.admin-filter-actions--same-row {
  grid-column: auto / -1;
  justify-content: flex-end;
  width: auto;
  min-width: 0;
  align-self: end;
}
body.has-admin-topbar .admin-filter-card .admin-filter-actions--inline button,
body.has-admin-topbar .admin-filter-card .admin-filter-actions--inline a {
  white-space: nowrap;
  flex: 0 0 auto;
}
body.has-admin-topbar .admin-filter-card .admin-filter-actions--inline #mon-status-wrap,
body.has-admin-topbar .admin-filter-card .admin-filter-actions--inline #mon-status {
  white-space: nowrap;
  flex: 0 0 auto;
}

/* 客戶列表：搜尋／重置與「交易監控」下拉同一列時，勿擠進下拉 */
body.has-admin-topbar .admin-filter-card .mem-filter-actions.admin-filter-actions--inline {
  grid-column: span 2;
  justify-content: flex-start;
  min-width: max-content;
  width: auto;
}
@media (max-width: 1279px) {
  body.has-admin-topbar .admin-filter-card .mem-filter-actions.admin-filter-actions--inline {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}

/* 客戶列表既有 class 對齊同一套 token */
body.has-admin-topbar .mem-filter-field label {
  display: block;
  font-size: var(--admin-filter-label-size);
  font-weight: var(--admin-filter-label-weight);
  color: var(--admin-filter-label-color);
  margin-bottom: var(--admin-filter-label-gap);
}
body.has-admin-topbar .mem-filter-field .admin-field-input,
body.has-admin-topbar .mem-filter-field .admin-field-select {
  width: 100%;
  min-height: var(--admin-filter-control-h);
  padding: var(--admin-filter-control-pad-y) var(--admin-filter-control-pad-x);
  font-size: var(--admin-filter-control-size);
  border: 1px solid var(--admin-filter-control-border);
  border-radius: var(--admin-filter-control-radius);
  background: var(--admin-filter-control-bg);
}
body.has-admin-topbar .mem-filter-grid {
  gap: 0.5rem 0.65rem;
}

/* 篩選網格間距統一（覆蓋極窄的 gap-x-2 gap-y-2） */
body.has-admin-topbar .admin-filter-card form.grid,
body.has-admin-topbar .admin-filter-card #rpt-filters.grid,
body.has-admin-topbar .admin-filter-card #mon-filter-form.grid {
  gap: var(--admin-filter-gap-y) var(--admin-filter-gap-x) !important;
}

/* 報表篩選：篩選／重設與「排序」同一列，靠右對齊最末欄（與操作用戶同欄） */
body.has-admin-topbar .admin-filter-card #rpt-filters .admin-filter-actions.admin-filter-actions--inline {
  grid-column: -2 / -1;
  width: auto;
  min-width: 0;
  justify-content: flex-end;
  align-self: end;
}

/* 排除：chip／checkbox 列／分段 Tab（勿當 Filter ITEM） */
body.has-admin-topbar .admin-filter-card label.qz-chip,
body.has-admin-topbar .admin-filter-card label.mem-ds-chip,
body.has-admin-topbar .admin-filter-card label.ga-check,
body.has-admin-topbar .admin-filter-card label.inline-flex,
body.has-admin-topbar .admin-filter-card label.flex.items-center {
  display: inline-flex !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  margin-bottom: 0 !important;
  min-height: 0 !important;
}

body.has-admin-topbar .admin-filter-card input[type="checkbox"],
body.has-admin-topbar .admin-filter-card input[type="radio"] {
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border-radius: 0.25rem !important;
  box-shadow: none !important;
  background-image: none !important;
}
