.filter-panel {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: .75rem 1.1rem;
  margin-bottom: .65rem;
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  align-items: center
}

.filter-panel-commander {
  gap: 1.25rem;
  align-items: center;
  flex-wrap: wrap;
}

.fn-panel {
  flex-direction: column;
  gap: .6rem;
  align-items: flex-start;
}

.fn-header-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
}

.fn-complexity-toggle {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  flex-shrink: 0;
}

.fn-clear-btn {
  font-size: .68rem;
  padding: .18rem .5rem;
}

.cmdr-label {
  font-family: var(--font-display);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text)
}

.fn-subgroup-label {
  font-family: var(--font-display);
  font-size: .6rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-muted);
  white-space: nowrap;
  flex-shrink: 0
}

.cmdr-divider {
  width: 1px;
  height: 22px;
  background: var(--border);
  flex-shrink: 0
}

.cmdr-toggles {
  display: flex;
  gap: .45rem;
  flex-wrap: wrap;
  align-items: center
}

@media (min-width: 681px) {
  .filter-panel-commander .cmdr-toggles {
    justify-content: center;
  }
}

.color-pips {
  display: flex;
  gap: .28rem
}

.pip {
  width: 25px;
  height: 25px;
  max-width: 28px;
  max-height: 28px;
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 0;
  font-weight: 700;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all .15s;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: .42
}

.pip:hover {
  opacity: .8
}

.pip.active {
  opacity: 1;
  box-shadow: 0 0 0 2px var(--gold);
  transform: scale(1.12)
}

.fpill {
  background: var(--bg-raised);
  border: 1px solid var(--border);
  border-radius: 20px;
  color: var(--text);
  font-family: var(--font-display);
  font-size: .63rem;
  letter-spacing: .03em;
  padding: .15rem .48rem;
  cursor: pointer;
  transition: all .15s;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  line-height: 1.1;
  width: auto
}

.fpill:hover {
  border-color: var(--border-glow);
  color: var(--text)
}

.fpill.active {
  background: rgba(201, 168, 76, .25);
  border-color: var(--gold);
  color: var(--gold);
  box-shadow: 0 0 0 1px rgba(201, 168, 76, .35);
  font-weight: 600
}


.fn-mode-wrap,
.color-mode-toggle {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  flex-shrink: 0;
  width: fit-content;
  max-width: 100%;
  align-self: flex-start;
  margin-top: 0.5rem;
}

.color-mode-btn,
.toggle-pill.toggle-pill-advanced {
  font-family: var(--font-display);
  font-size: .65rem;
  font-weight: 400;
  letter-spacing: .05em;
  line-height: 1;
  padding: .2rem .6rem;
}

.color-mode-btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: linear-gradient(180deg, rgba(40, 48, 68, .98) 0%, rgba(24, 30, 45, .98) 100%);
  border: 1px solid transparent;
  border-radius: 0;
  box-shadow: none;
  color: var(--text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  cursor: pointer;
  transition: all .15s
}

.color-mode-btn:first-child {
  border-top-left-radius: 20px;
  border-bottom-left-radius: 20px;
}

.color-mode-btn:last-child {
  border-top-right-radius: 20px;
  border-bottom-right-radius: 20px;
}

.color-mode-btn.active {
  background: rgba(201, 168, 76, .18);
  border-color: var(--gold-dim);
  color: var(--gold)
}

[data-theme="light"] .color-mode-btn {
  background: linear-gradient(180deg, #fbf6ec 0%, #efe4d3 100%);
  color: #4f3c1f;
}

[data-theme="light"] .color-mode-btn.active {
  background: #5f4412;
  border-color: #5f4412;
  color: #fff
}

[data-theme="light"] .toggle-label input:checked+.toggle-pill {
  background: #5f4412;
  border-color: #5f4412;
  color: #fff
}

.color-mode-btn:hover:not(.active) {
  background: linear-gradient(180deg, rgba(49, 58, 81, .98) 0%, rgba(31, 38, 56, .98) 100%);
  color: var(--text)
}

[data-theme="light"] .color-mode-btn:hover:not(.active) {
  background: linear-gradient(180deg, #fffaf1 0%, #f3e8d8 100%);
  color: #3b2d18
}

.toggle-label {
  display: flex;
  align-items: center;
  cursor: pointer
}

.toggle-label input {
  display: none
}

.toggle-pill {
  background: var(--bg-raised);
  border: 1px solid var(--border);
  border-radius: 20px;
  color: var(--text);
  font-family: var(--font-display);
  font-size: .68rem;
  letter-spacing: .05em;
  padding: .28rem .82rem;
  transition: all .15s;
  user-select: none;
  white-space: nowrap
}

.toggle-pill.toggle-pill-advanced {
  background: linear-gradient(180deg, rgba(40, 48, 68, .98) 0%, rgba(24, 30, 45, .98) 100%);
  border-color: transparent;
  color: var(--text-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.toggle-label input:checked+.toggle-pill {
  background: rgba(201, 168, 76, .14);
  border-color: var(--gold-dim);
  color: var(--gold)
}

.toggle-label input:checked+.toggle-pill.toggle-pill-advanced {
  background: rgba(201, 168, 76, .18);
  border-color: var(--gold-dim);
  color: var(--gold)
}

.toggle-label:hover input:not(:checked)+.toggle-pill.toggle-pill-advanced {
  background: linear-gradient(180deg, rgba(49, 58, 81, .98) 0%, rgba(31, 38, 56, .98) 100%);
  color: var(--text)
}

[data-theme="light"] .toggle-pill.toggle-pill-advanced {
  background: linear-gradient(180deg, #fbf6ec 0%, #efe4d3 100%);
  color: #4f3c1f;
}

[data-theme="light"] .toggle-label input:checked+.toggle-pill.toggle-pill-advanced {
  background: #5f4412;
  border-color: #5f4412;
  color: #fff
}

.mpip {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  font-size: 0;
  font-weight: 700;
  font-family: var(--font-display);
  display: inline-flex;
  align-items: center;
  justify-content: center
}

.fn-badge {
  display: inline-block;
  background: rgba(201, 168, 76, .1);
  border: 1px solid var(--gold-dim);
  border-radius: 20px;
  color: var(--gold);
  font-family: var(--font-display);
  font-size: .57rem;
  letter-spacing: .04em;
  padding: .15rem .5rem;
  white-space: nowrap
}

th.sortable {
  cursor: pointer;
  user-select: none;
  white-space: nowrap
}

th.sortable:hover {
  color: var(--gold)
}

th.sortable .sort-arrow {
  display: inline-block;
  margin-left: .3rem;
  opacity: .35;
  font-size: .7rem
}

th.sortable.asc .sort-arrow::after {
  content: '▲';
  opacity: 1
}

th.sortable.desc .sort-arrow::after {
  content: '▼';
  opacity: 1
}

th.sortable:not(.asc):not(.desc) .sort-arrow::after {
  content: '⇅'
}

.filter-collapse-btn {
  background: linear-gradient(180deg, rgba(40, 48, 68, .98) 0%, rgba(24, 30, 45, .98) 100%);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
  color: var(--text-muted);
  padding: .18rem .42rem;
  line-height: 1;
  transition: all .15s;
  flex-shrink: 0;
  margin-left: auto;
  display: none;
}

.filter-collapse-btn:hover {
  background: linear-gradient(180deg, rgba(49, 58, 81, .98) 0%, rgba(31, 38, 56, .98) 100%);
  border-color: var(--border-glow);
  color: var(--text)
}

[data-theme="light"] .filter-collapse-btn {
  background: linear-gradient(180deg, #fbf6ec 0%, #efe4d3 100%);
  border-color: rgba(138, 104, 32, .18);
  color: #4f3c1f
}

[data-theme="light"] .filter-collapse-btn:hover {
  background: linear-gradient(180deg, #fffaf1 0%, #f3e8d8 100%);
  border-color: rgba(122, 87, 25, .44);
  color: #3b2d18
}

[data-theme="light"] .toggle-label:hover input:not(:checked)+.toggle-pill.toggle-pill-advanced {
  background: linear-gradient(180deg, #fffaf1 0%, #f3e8d8 100%);
  color: #3b2d18
}

.filter-collapse-icon {
  font-size: .6rem;
  display: inline-block;
  transition: transform .2s
}

.fn-adv-collapsed {
  display: none
}

.filter-collapse-icon.collapsed {
  transform: rotate(180deg)
}

/* Initial hidden states for JS-controlled filter elements */
[id$="fn-mode-wrap"] {
  display: none;
}

[id$="fn-clear"] {
  display: none;
}

[id$="fn-body-simple"] {
  display: none;
  gap: .4rem;
  flex-wrap: wrap;
}

[id$="fn-body-advanced"] {
  display: none;
  width: 100%;
  flex-direction: column;
  gap: 0;
}


[id$="fn-body-advanced-flat"] {
  display: none;
  width: 100%;
  flex-wrap: wrap;
  gap: .24rem;
}

.dupe-count-label {
  opacity: .6;
  font-size: .85em;
}

@media (max-width: 680px) {
  .filter-panel {
    padding: .75rem .8rem;
    gap: .55rem;
    border-radius: 18px;
    margin-bottom: .55rem;
  }

  .filter-panel-commander {
    align-items: stretch;
  }

  .filter-panel-commander .commander-color-wrap {
    width: 100%;
  }

  .filter-panel-commander .cmdr-divider {
    display: none;
  }

  .filter-panel-commander .color-pips {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: center;
    justify-items: center;
    width: 100%;
    gap: .2rem;
  }

  .filter-panel-commander .pip {
    width: 28px;
    height: 28px;
    max-width: 28px;
    max-height: 28px;
  }

  .filter-panel-commander .cmdr-toggles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: .45rem;
  }

  .filter-panel-commander .toggle-label {
    width: 100%;
  }

  .filter-panel-commander .toggle-pill {
    display: block;
    width: 100%;
    text-align: center;
    white-space: normal;
    line-height: 1.2;
    font-size: .62rem;
    padding: .46rem .58rem;
    overflow-wrap: anywhere;
  }

  .filter-panel-commander .color-mode-btn,
  .filter-panel-commander .toggle-pill.toggle-pill-advanced {
    font-size: .56rem;
    line-height: 1;
    padding: .18rem .42rem;
  }

  .tag-manage-btn-inline {
    display: none;
  }
}
