/* HowiePulse Hub — shared global filter bar (header, all modules) */
.hub-filters {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: .45rem .7rem;
  flex: 1 1 520px; min-width: 0; justify-content: flex-end;
}
.hub-filters .hf-presets { display: flex; flex-wrap: wrap; gap: .3rem; }
.hub-filters .hf-presets button { padding: .4rem .6rem; font-size: .72rem; white-space: nowrap; }
.hub-filters .hf-fields { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .45rem; }
.hub-filters .hf-field {
  font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  color: var(--hh-charcoal, #121212); display: flex; flex-direction: column; gap: .2rem;
}
.hub-filters input[type=date], .hub-filters select { padding: .38rem .5rem; font-size: .8rem; }
.hub-filters select:disabled { opacity: 1; }
.hub-filters .hf-csv { white-space: nowrap; padding: .42rem .7rem; font-size: .74rem; }
.hub-filters .hf-csv.is-disabled { opacity: .45; cursor: not-allowed; background: var(--hh-white, #fff); }
.hub-filters .hf-csv.is-disabled:hover { background: var(--hh-white, #fff); }
@media (max-width: 720px) {
  .hub-filters { flex: 1 1 100%; justify-content: flex-start; gap: .45rem; }
  .hub-filters .hf-presets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
  .hub-filters .hf-presets button { padding: .42rem .2rem; font-size: .68rem; letter-spacing: .02em; }
  .hub-filters .hf-fields { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .hub-filters .hf-field input, .hub-filters .hf-field select { width: 100%; min-width: 0; }
  .hub-filters .hf-csv { align-self: end; height: 2.15rem; }
}
/* Freshness chips (data through / synced) */
.hub-filters .hf-fresh { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; width: 100%; }
.hub-filters .hf-chip {
  display: inline-flex; align-items: center; gap: .3rem; font-size: .64rem; font-weight: 700; letter-spacing: .03em;
  text-transform: uppercase; background: #fff; border: 1.5px solid var(--hh-charcoal, #121212); border-radius: 999px;
  padding: .12rem .5rem; white-space: nowrap; cursor: help;
}
.hub-filters .hf-chip .hf-dot { width: .5rem; height: .5rem; border-radius: 50%; background: #1b6e20; flex: 0 0 auto; }
.hub-filters .hf-chip.warn { background: #fff; border-color: #9a6700; color: #9a6700; }
.hub-filters .hf-chip.warn .hf-dot { background: #FFC700; }
.hub-filters .hf-chip.bad { background: #fff; border-color: #b0001f; color: #b0001f; }
.hub-filters .hf-chip.bad .hf-dot { background: #E4002B; }
.hub-filters .hf-chip.info .hf-dot { background: #9e9e9e; }
@media (max-width: 720px) { .hub-filters .hf-fresh { justify-content: flex-start; } }
