/* ==========================================================================
   WPSubscription Admin Components  (prefix: wpsubs-)
   Design reference: WP SmartPay sp-layout.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   Design tokens
   -------------------------------------------------------------------------- */
:root {
  --wpsubs-brand: #2271b1;
  --wpsubs-brand-dark: #135e96;
  --wpsubs-brand-light: #eef4fb;
  --wpsubs-brand-ring: rgba(34, 113, 177, 0.2);

  --wpsubs-surface: #ffffff;
  --wpsubs-surface-muted: #f9fafb;
  --wpsubs-border: #e5e7eb;
  --wpsubs-border-strong: #d1d5db;

  --wpsubs-text: #374151;
  --wpsubs-text-muted: #6b7280;
  --wpsubs-text-subtle: #9ca3af;

  --wpsubs-radius: 8px;
  --wpsubs-radius-sm: 5px;
  --wpsubs-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  --wpsubs-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.1), 0 1px 4px rgba(0, 0, 0, 0.06);
}

/* --------------------------------------------------------------------------
   Page layout wrapper
   -------------------------------------------------------------------------- */
.wpsubs-layout {
  max-width: 80rem;
  margin: 0 auto;
  padding: 24px 0 48px;
  box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Toolbar
   -------------------------------------------------------------------------- */
.wpsubs-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.wpsubs-toolbar__spacer {
  flex: 1;
  min-width: 8px;
}

/* --------------------------------------------------------------------------
   Base input
   -------------------------------------------------------------------------- */
.wpsubs-input {
  display: block;
  width: 100%;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--wpsubs-border) !important;
  border-radius: var(--wpsubs-radius-sm) !important;
  background: var(--wpsubs-surface) !important;
  font-size: 13px !important;
  font-family: inherit !important;
  color: var(--wpsubs-text) !important;
  outline: none !important;
  box-shadow: none !important;
  box-sizing: border-box;
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
}

.wpsubs-input:focus {
  border-color: var(--wpsubs-brand) !important;
  box-shadow: 0 0 0 3px var(--wpsubs-brand-ring) !important;
}

.wpsubs-input::placeholder {
  color: var(--wpsubs-text-subtle) !important;
}

.wpsubs-input:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  background: var(--wpsubs-surface-muted) !important;
}

/* --------------------------------------------------------------------------
   Input with icon  (.wpsubs-input-wrap)

   Usage:
     <div class="wpsubs-input-wrap wpsubs-input-wrap--icon-l">
       <svg class="wpsubs-input-icon">...</svg>
       <input class="wpsubs-input">
     </div>

   Modifiers: --icon-l (icon on left)  --icon-r (icon on right)
   -------------------------------------------------------------------------- */
.wpsubs-input-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 100%;
}

.wpsubs-input-wrap .wpsubs-input-icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: var(--wpsubs-text-subtle);
  pointer-events: none;
  flex-shrink: 0;
}

.wpsubs-input-wrap--icon-l .wpsubs-input-icon {
  left: 10px;
}
.wpsubs-input-wrap--icon-l .wpsubs-input {
  padding-left: 34px !important;
}

.wpsubs-input-wrap--icon-r .wpsubs-input-icon {
  right: 10px;
}
.wpsubs-input-wrap--icon-r .wpsubs-input {
  padding-right: 34px !important;
}

/* --------------------------------------------------------------------------
   Input group  (.wpsubs-input-group)

   A flex row that snaps children edge-to-edge with shared borders.
   Children: .wpsubs-input, .wpsubs-btn, .wpsubs-select, .wpsubs-adv-select

   Usage:
     <div class="wpsubs-input-group">
       <input class="wpsubs-input">
       <button class="wpsubs-btn wpsubs-btn--outline">Search</button>
     </div>
   -------------------------------------------------------------------------- */
.wpsubs-input-group {
  display: inline-flex;
  align-items: stretch;
}

.wpsubs-input-group > .wpsubs-input,
.wpsubs-input-group > .wpsubs-btn,
.wpsubs-input-group > .wpsubs-select,
.wpsubs-input-group > .wpsubs-adv-select > .wpsubs-adv-select__trigger {
  border-radius: 0 !important;
}

/* Restore radius on first and last direct children */
.wpsubs-input-group > :first-child,
.wpsubs-input-group > :first-child > .wpsubs-adv-select__trigger {
  border-top-left-radius: var(--wpsubs-radius-sm) !important;
  border-bottom-left-radius: var(--wpsubs-radius-sm) !important;
}

.wpsubs-input-group > :last-child,
.wpsubs-input-group > :last-child > .wpsubs-adv-select__trigger {
  border-top-right-radius: var(--wpsubs-radius-sm) !important;
  border-bottom-right-radius: var(--wpsubs-radius-sm) !important;
}

/* Collapse adjacent borders */
.wpsubs-input-group > *:not(:first-child),
.wpsubs-input-group > .wpsubs-adv-select:not(:first-child) > .wpsubs-adv-select__trigger {
  margin-left: -1px;
}

/* Bring focused item to front so its border ring shows fully */
.wpsubs-input-group > .wpsubs-input:focus,
.wpsubs-input-group > .wpsubs-btn:focus,
.wpsubs-input-group > .wpsubs-select:focus,
.wpsubs-input-group > .wpsubs-adv-select--open > .wpsubs-adv-select__trigger {
  position: relative;
  z-index: 1;
}

/* --------------------------------------------------------------------------
   Search  — convenience wrapper around input-wrap (backward compat kept)
   -------------------------------------------------------------------------- */
.wpsubs-search {
  min-width: 180px;
  max-width: 280px;
}

.wpsubs-search .wpsubs-input-wrap {
  width: 100%;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.wpsubs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 40px;
  padding: 0 14px;
  border-radius: var(--wpsubs-radius-sm);
  font-size: 13px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition:
    background 0.12s,
    border-color 0.12s,
    color 0.12s;
  border: 1px solid transparent;
  line-height: 1;
  vertical-align: middle;
  box-shadow: none;
}

.wpsubs-btn:focus,
.wpsubs-btn:focus-visible,
.wpsubs-btn:active {
  outline: none !important;
  box-shadow: none !important;
  border-radius: var(--wpsubs-radius-sm) !important;
}

.wpsubs-btn--outline {
  background: var(--wpsubs-surface);
  border-color: var(--wpsubs-border);
  color: var(--wpsubs-text);
}

.wpsubs-btn--outline:hover {
  border-color: var(--wpsubs-border-strong);
  background: var(--wpsubs-surface-muted);
  color: var(--wpsubs-text);
  text-decoration: none;
}

.wpsubs-btn--primary {
  background: var(--wpsubs-brand);
  border-color: var(--wpsubs-brand);
  color: #fff;
}

.wpsubs-btn--primary:hover {
  background: var(--wpsubs-brand-dark);
  border-color: var(--wpsubs-brand-dark);
  color: #fff;
  text-decoration: none;
}

.wpsubs-btn--danger {
  background: var(--wpsubs-surface);
  border-color: #fca5a5;
  color: #dc2626;
}

.wpsubs-btn--danger:hover {
  background: #fef2f2;
  border-color: #f87171;
  color: #b91c1c;
  text-decoration: none;
}

/* --------------------------------------------------------------------------
   Advanced Select  (wpsubs-adv-select)
   Drop-in replacement for native <select>. Renders a trigger button that
   opens a styled dropdown menu. Use wpsubs_render_adv_select() PHP helper.
   -------------------------------------------------------------------------- */
.wpsubs-adv-select {
  position: relative;
  display: inline-block;
}

.wpsubs-adv-select__trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 40px;
  padding: 0 14px;
  border-radius: var(--wpsubs-radius-sm);
  font-size: 13px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  background: var(--wpsubs-surface);
  border: 1px solid var(--wpsubs-border);
  color: var(--wpsubs-text);
  transition:
    background 0.12s,
    border-color 0.12s;
  line-height: 1;
  box-shadow: none;
}

.wpsubs-adv-select__trigger:hover {
  border-color: var(--wpsubs-border-strong);
  background: var(--wpsubs-surface-muted);
}

.wpsubs-adv-select__trigger:focus {
  outline: none;
  border-color: var(--wpsubs-brand);
  box-shadow: 0 0 0 3px var(--wpsubs-brand-ring);
}

.wpsubs-adv-select--open .wpsubs-adv-select__trigger {
  border-color: var(--wpsubs-brand);
}

.wpsubs-adv-select__label {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wpsubs-adv-select__chevron {
  flex-shrink: 0;
  opacity: 0.55;
  transition: transform 0.15s;
}

.wpsubs-adv-select--open .wpsubs-adv-select__chevron {
  transform: rotate(180deg);
}

.wpsubs-adv-select__menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  min-width: 100%;
  width: max-content;
  box-sizing: border-box;
  background: var(--wpsubs-surface);
  border: 1px solid var(--wpsubs-border);
  border-radius: var(--wpsubs-radius);
  box-shadow: var(--wpsubs-shadow-md);
  z-index: 9999;
  padding: 4px;
  animation: wpsubs-dropdown-in 0.1s ease;
}

/* Align variants */
.wpsubs-adv-select--left .wpsubs-adv-select__menu {
  left: 0;
  right: auto;
}
.wpsubs-adv-select--right .wpsubs-adv-select__menu {
  right: 0;
  left: auto;
}

/* Default: left-aligned */
.wpsubs-adv-select__menu {
  left: 0;
  right: auto;
}

.wpsubs-adv-select--open .wpsubs-adv-select__menu {
  display: block;
}

.wpsubs-adv-select__item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 7px 10px;
  border-radius: var(--wpsubs-radius-sm);
  border: none;
  background: transparent;
  font-size: 13px;
  font-family: inherit;
  color: var(--wpsubs-text);
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.1s;
  box-sizing: border-box;
  line-height: 1.4;
}

.wpsubs-adv-select__item:hover {
  background: var(--wpsubs-surface-muted);
  color: var(--wpsubs-text);
  text-decoration: none;
}

.wpsubs-adv-select__item[data-disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

.wpsubs-adv-select__item--danger {
  color: #dc2626;
}
.wpsubs-adv-select__item--danger:hover {
  background: #fee2e2;
  color: #b91c1c;
}

.wpsubs-adv-select__divider {
  height: 1px;
  background: var(--wpsubs-border);
  margin: 4px 0;
}

/* --------------------------------------------------------------------------
   Select control
   -------------------------------------------------------------------------- */
.wpsubs-select {
  height: 40px;
  padding: 0 28px 0 10px;
  border: 1px solid var(--wpsubs-border) !important;
  border-radius: var(--wpsubs-radius-sm) !important;
  background: var(--wpsubs-surface) !important;
  font-size: 13px !important;
  font-family: inherit !important;
  color: var(--wpsubs-text) !important;
  outline: none !important;
  box-shadow: none !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 9px center !important;
  transition: border-color 0.15s;
  vertical-align: middle;
  line-height: 1;
}

.wpsubs-select:focus {
  border-color: var(--wpsubs-brand) !important;
  box-shadow: 0 0 0 3px var(--wpsubs-brand-ring) !important;
}

/* --------------------------------------------------------------------------
   Custom checkbox
   -------------------------------------------------------------------------- */
input[type="checkbox"].wpsubs-checkbox {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-block !important;
  box-sizing: border-box !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1.5px solid var(--wpsubs-border-strong) !important;
  border-radius: 4px !important;
  background: var(--wpsubs-surface) !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer;
  flex-shrink: 0;
  vertical-align: middle;
  transition:
    background 0.12s,
    border-color 0.12s;
}

input[type="checkbox"].wpsubs-checkbox:hover {
  border-color: var(--wpsubs-brand) !important;
}

input[type="checkbox"].wpsubs-checkbox:checked {
  background-color: var(--wpsubs-brand) !important;
  border-color: var(--wpsubs-brand) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5L6.5 12L13 5' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* Suppress WP admin's ::before blue checkmark overlay */
input[type="checkbox"].wpsubs-checkbox:checked::before,
input[type="checkbox"].wpsubs-checkbox:checked::after {
  display: none !important;
}

input[type="checkbox"].wpsubs-checkbox:indeterminate {
  background-color: var(--wpsubs-brand) !important;
  border-color: var(--wpsubs-brand) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8H12' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 11px 11px !important;
}

input[type="checkbox"].wpsubs-checkbox:indeterminate::before,
input[type="checkbox"].wpsubs-checkbox:indeterminate::after {
  display: none !important;
}

input[type="checkbox"].wpsubs-checkbox:focus {
  outline: none !important;
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 4px var(--wpsubs-brand) !important;
}

/* --------------------------------------------------------------------------
   Table card (white card wrapping table + footer)
   -------------------------------------------------------------------------- */
.wpsubs-table-card {
  background: var(--wpsubs-surface);
  border: 1px solid var(--wpsubs-border);
  border-radius: var(--wpsubs-radius);
}

/* --------------------------------------------------------------------------
   Table
   -------------------------------------------------------------------------- */
.wpsubs-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13.5px;
  margin: 0;
}

/* Header */
.wpsubs-table thead {
  background: var(--wpsubs-surface-muted);
}

.wpsubs-table thead th {
  padding: 13px 18px;
  text-align: left;
  font-size: 11px;
  font-weight: 600;
  color: var(--wpsubs-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  white-space: nowrap;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--wpsubs-border);
  box-shadow: none;
  vertical-align: middle;
}

/* Round the thead top corners so they follow the card's border-radius */
.wpsubs-table thead tr:first-child th:first-child {
  border-top-left-radius: calc(var(--wpsubs-radius) - 1px);
}
.wpsubs-table thead tr:first-child th:last-child {
  border-top-right-radius: calc(var(--wpsubs-radius) - 1px);
}

/* Column modifiers */
.wpsubs-col--check {
  width: 20px !important;
  padding-right: 4px !important;
}
.wpsubs-col--actions {
  width: 44px;
  text-align: right !important;
}
.wpsubs-col--nowrap {
  white-space: nowrap;
}

/* Body rows */
.wpsubs-table tbody tr {
  transition: background 0.1s;
  background: transparent;
}

.wpsubs-table tbody tr:hover {
  background: var(--wpsubs-surface-muted);
}

.wpsubs-table tbody tr.wpsubs-row--selected {
  background: var(--wpsubs-brand-light);
}

/* Cells — border on td instead of tr (required for border-collapse: separate) */
.wpsubs-table td {
  padding: 18px;
  color: var(--wpsubs-text);
  vertical-align: middle;
  border: none;
  border-bottom: 1px solid var(--wpsubs-border);
  box-shadow: none;
}

.wpsubs-table tbody tr:last-child td {
  border-bottom: none;
}

.wpsubs-table td.wpsubs-col--check {
  padding-right: 4px;
}

.wpsubs-table td.wpsubs-cell--muted {
  color: var(--wpsubs-text-muted);
  font-size: 12.5px;
}

.wpsubs-table td.wpsubs-cell--actions {
  width: 1%;
  white-space: nowrap;
  padding: 0 10px 0 4px;
}

/* --------------------------------------------------------------------------
   Avatar  — light bg + dark text, 8 deterministic colors
   -------------------------------------------------------------------------- */
.wpsubs-customer {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.wpsubs-customer__info {
  min-width: 0;
}

.wpsubs-customer__name {
  font-weight: 400;
  color: var(--wpsubs-text);
  font-size: 13.5px;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  display: block;
}

a.wpsubs-customer__name:hover {
  color: var(--wpsubs-brand);
  text-decoration: none;
}

.wpsubs-customer__sub {
  font-size: 12px;
  color: var(--wpsubs-text-muted);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

.wpsubs-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  user-select: none;
  background: var(--wpsubs-surface-muted);
  color: var(--wpsubs-text-muted);
}

.wpsubs-avatar[data-color="0"] {
  background: #dbeafe;
  color: #1d4ed8;
}
.wpsubs-avatar[data-color="1"] {
  background: #d1fae5;
  color: #065f46;
}
.wpsubs-avatar[data-color="2"] {
  background: #fce7f3;
  color: #9d174d;
}
.wpsubs-avatar[data-color="3"] {
  background: #e0e7ff;
  color: #4338ca;
}
.wpsubs-avatar[data-color="4"] {
  background: #fef3c7;
  color: #92400e;
}
.wpsubs-avatar[data-color="5"] {
  background: #fee2e2;
  color: #991b1b;
}
.wpsubs-avatar[data-color="6"] {
  background: #f3e8ff;
  color: #6b21a8;
}
.wpsubs-avatar[data-color="7"] {
  background: #ccfbf1;
  color: #134e4a;
}

/* --------------------------------------------------------------------------
   Cell: product title + id below
   -------------------------------------------------------------------------- */
.wpsubs-cell-title {
  font-weight: 400;
  color: var(--wpsubs-text);
  font-size: 13.5px;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  display: block;
}

a.wpsubs-cell-title:hover {
  color: var(--wpsubs-brand);
  text-decoration: none;
}

.wpsubs-cell-id {
  font-size: 12px;
  color: var(--wpsubs-text-muted);
  line-height: 1.3;
  display: block;
}

/* --------------------------------------------------------------------------
   Status badge with dot
   -------------------------------------------------------------------------- */
.wpsubs-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 10px;
  border-radius: 9999px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  line-height: 1.6;
  border: 1px solid transparent;
}

.wpsubs-badge__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

.wpsubs-badge--active {
  background: #dcfce7;
  color: #15803d;
  border-color: #bbf7d0;
}
.wpsubs-badge--active .wpsubs-badge__dot {
  background: #16a34a;
}

.wpsubs-badge--pending {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: #bfdbfe;
}
.wpsubs-badge--pending .wpsubs-badge__dot {
  background: #3b82f6;
}

.wpsubs-badge--pending-cancel {
  background: #fefce8;
  color: #854d0e;
  border-color: #fde68a;
}
.wpsubs-badge--pending-cancel .wpsubs-badge__dot {
  background: #ca8a04;
}

.wpsubs-badge--cancelled {
  background: #f3f4f6;
  color: #4b5563;
  border-color: #e5e7eb;
}
.wpsubs-badge--cancelled .wpsubs-badge__dot {
  background: #9ca3af;
}

.wpsubs-badge--expired,
.wpsubs-badge--draft {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
}
.wpsubs-badge--expired .wpsubs-badge__dot,
.wpsubs-badge--draft .wpsubs-badge__dot {
  background: #dc2626;
}

.wpsubs-badge--trash {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
}
.wpsubs-badge--trash .wpsubs-badge__dot {
  background: #ef4444;
}

/* --------------------------------------------------------------------------
   Row actions (three-dot dropdown)
   -------------------------------------------------------------------------- */
.wpsubs-row-actions {
  position: relative;
  display: flex;
  justify-content: flex-end;
}

.wpsubs-row-actions__trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--wpsubs-radius-sm);
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--wpsubs-text-subtle);
  transition:
    background 0.12s,
    color 0.12s;
  padding: 0;
  font-size: 18px;
  letter-spacing: 1px;
  line-height: 1;
}

.wpsubs-row-actions__trigger:hover,
.wpsubs-row-actions--open .wpsubs-row-actions__trigger {
  background: var(--wpsubs-surface-muted);
  color: var(--wpsubs-text);
  outline: none;
}

@keyframes wpsubs-dropdown-in {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.wpsubs-dropdown {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  width: max-content;
  box-sizing: border-box;
  background: var(--wpsubs-surface);
  border: 1px solid var(--wpsubs-border);
  border-radius: var(--wpsubs-radius);
  box-shadow: var(--wpsubs-shadow-md);
  z-index: 9999;
  padding: 4px;
}

.wpsubs-dropdown--open {
  display: block;
  animation: wpsubs-dropdown-in 0.1s ease;
}

.wpsubs-dropdown__item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 7px 10px;
  border-radius: var(--wpsubs-radius-sm);
  border: none;
  background: transparent;
  font-size: 13px;
  font-family: inherit;
  color: var(--wpsubs-text);
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.1s;
  box-sizing: border-box;
  line-height: 1.4;
}

.wpsubs-dropdown__item:hover {
  background: var(--wpsubs-surface-muted);
  color: var(--wpsubs-text);
  text-decoration: none;
}

.wpsubs-dropdown__item:disabled {
  color: var(--wpsubs-text-subtle);
  cursor: not-allowed;
}

.wpsubs-dropdown__item--danger {
  color: #dc2626;
}
.wpsubs-dropdown__item--danger:hover {
  background: #fee2e2;
  color: #b91c1c;
}

.wpsubs-dropdown__divider {
  height: 1px;
  background: var(--wpsubs-border);
  margin: 4px 0;
}

/* --------------------------------------------------------------------------
   Pagination footer (inside table card)
   -------------------------------------------------------------------------- */
.wpsubs-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-top: 1px solid var(--wpsubs-border);
  flex-wrap: wrap;
  gap: 8px;
}

.wpsubs-pagination__info {
  font-size: 12.5px;
  color: var(--wpsubs-text-muted);
}

.wpsubs-pagination__nav {
  display: flex;
  align-items: center;
  gap: 4px;
}

.wpsubs-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px solid var(--wpsubs-border);
  border-radius: var(--wpsubs-radius-sm);
  background: var(--wpsubs-surface);
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: var(--wpsubs-text-muted);
  transition:
    border-color 0.12s,
    color 0.12s,
    background 0.12s;
  text-decoration: none;
  line-height: 1;
  flex-shrink: 0;
}

.wpsubs-pagination__btn:hover {
  border-color: var(--wpsubs-brand);
  color: var(--wpsubs-brand);
  text-decoration: none;
}

.wpsubs-pagination__btn--disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}

.wpsubs-pagination__btn--active {
  background: var(--wpsubs-brand);
  border-color: var(--wpsubs-brand);
  color: #fff;
  font-weight: 600;
  cursor: default;
  pointer-events: none;
}

.wpsubs-pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  font-size: 12px;
  color: var(--wpsubs-text-subtle);
  user-select: none;
}

/* --------------------------------------------------------------------------
   Empty state
   -------------------------------------------------------------------------- */
.wpsubs-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px 24px;
  text-align: center;
}

.wpsubs-empty__icon {
  font-size: 2.5rem;
  margin-bottom: 14px;
  opacity: 0.45;
  line-height: 1;
}

.wpsubs-empty__title {
  font-size: 15px;
  font-weight: 600;
  color: var(--wpsubs-text);
  margin: 0 0 6px;
}

.wpsubs-empty__desc {
  font-size: 13px;
  color: var(--wpsubs-text-muted);
  margin: 0;
  line-height: 1.6;
}
