/* Shared, progressive-enhancement controls for account and history shortlists. */
.comparison-controls {
  margin: 0 0 24px;
  padding: 16px 20px 8px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.comparison-primary {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(8rem, 1fr) auto;
  align-items: start;
  gap: 12px;
}
.comparison-primary .field { min-width: 0; }
.comparison-primary label { font-size: .9rem; line-height: 1.25; margin: 0 0 6px; }
.comparison-primary input, .comparison-more select { width: 100%; }
.comparison-primary > button { align-self: end; }
.comparison-primary :is(input, button) { min-height: 48px; }
.comparison-order {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-top: 14px;
}
.comparison-order-label { font-size: .9rem; font-weight: 600; }
.comparison-sort-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--blue-light);
}
.comparison-sort-options button {
  min-width: 0;
  min-height: 44px;
  padding: 4px 12px;
  border: 0;
  background: transparent;
  color: var(--blue);
  font-size: .9rem;
  line-height: 1.25;
}
.comparison-sort-options button:hover { text-decoration: underline; }
.comparison-sort-options button[aria-pressed=true] { background: var(--blue); color: #fff; }
.comparison-explanation {
  margin: 8px 0 12px;
  max-width: 78ch;
  color: var(--muted);
  font-size: .875rem;
}
.comparison-filter-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  border-top: 1px solid var(--line);
}
.comparison-filter-actions:has(details[open]) { display: block; position: relative; }
.comparison-filter-actions:has(details[open]) > .clear-filters { position: absolute; top: 0; right: 0; }
.comparison-filter-actions > .clear-filters {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: .875rem;
}
.comparison-more { margin: 0; }
.comparison-more > summary, .history-controls > summary {
  cursor: pointer;
  color: var(--blue);
  font-weight: 600;
  min-height: 44px;
  padding: 10px 0;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.comparison-more > summary { font-size: .875rem; }
.comparison-more[open] > summary { margin-right: 6rem; }
.comparison-more-body { padding: 8px 0 12px; }
.comparison-more .filter-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
  gap: 12px;
  margin-bottom: 16px;
  align-items: end;
}
.comparison-more .filter-options {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  column-gap: 20px;
}
.comparison-more .filter-options legend { font-weight: 600; }
.comparison-more #high-yield-filter-note { margin: 4px 0 12px; font-size: .875rem; color: var(--muted); }

.filter-option,.account-choice{display:flex;align-items:center;gap:8px;min-height:44px}
.account-choice input{width:20px;height:20px;flex-shrink:0}
.airy-directory .account-expand .account-choice{font-size:.9rem;font-weight:400}
.airy-directory .rate-value-label{display:block;font:400 .8rem/1.4 "Source Sans 3",sans-serif;color:var(--ink);margin:6px 0;white-space:normal}
.rate-page .selection-bar{position:sticky;bottom:0;z-index:5;background:#fff;padding:16px;border:1px solid var(--line);flex-wrap:wrap;gap:12px}
.shortlist-chips{display:flex;flex-wrap:wrap;gap:8px;flex-basis:100%}
.shortlist-chips[hidden],.shortlist-options [hidden],[data-shortlist-search-wrap][hidden],[data-shortlist-no-results][hidden]{display:none}
.shortlist-chip{font-size:.85rem;font-weight:400;background:var(--blue-light);color:var(--blue);border:1px solid var(--blue-mid);min-height:44px;white-space:normal;text-align:left;border-radius:12px}
.shortlist-chip:hover{background:var(--blue);color:#fff}
.shortlist-options{max-height:20rem;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px;margin:12px 0}
.shortlist-options label{display:flex;gap:12px;align-items:center;min-height:44px;padding:8px;border-radius:4px;overflow-wrap:anywhere}
.shortlist-options label:focus-within{outline:2px solid var(--blue);outline-offset:-2px}
.shortlist-options input{flex-shrink:0;width:20px;height:20px}
.shortlist-options label:has(input:checked){background:var(--blue-light)}
.history-controls fieldset{border:0;padding:0;min-width:0;margin:16px 0}
.history-controls legend{font-weight:600}
.history-controls input[type=search]{width:100%}
.history-controls .field{margin:16px 0}
.history-controls form{max-width:52rem;margin-bottom:24px}
.history-comparison{margin-top:48px;scroll-margin-top:100px}
.history-comparison>p{max-width:75ch}
.history-comparison .rate-chart{max-width:52rem}
.history-comparison .chart-scroll{max-width:100%;min-width:0;overflow:visible}
.history-comparison .rate-chart-plot{width:100%;min-width:0}
.history-comparison .chart-tick,.history-comparison .chart-axis-label{font-size:var(--rate-chart-label-size,7px)}
.history-comparison .chart-legend li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:4px 10px}
.history-comparison .chart-legend small{grid-column:2;font-size:.85rem}
.history-comparison .chart-data table{min-width:0;table-layout:fixed}
.history-comparison .chart-data td{overflow-wrap:anywhere}
.history-comparison .chart-data th,.history-comparison .chart-data td{font-size:1rem}
.chart-series .chart-inferred{stroke-dasharray:5 4}
.watch-recency{font-size:.95rem;max-width:75ch}
.change-direction{font-weight:600;color:var(--blue)}
.rate-watch-content>section:first-child{max-width:75ch}
@media(max-width:700px){
 .comparison-controls { padding: 12px 12px 4px; }
 .comparison-primary { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 8px; }
 .comparison-primary .field:first-child { grid-column: 1 / -1; }
 .comparison-primary > button { padding: 4px 6px; font-size: .9rem; line-height: 1.25; }
 .comparison-order { display: grid; gap: 4px; }
 .comparison-sort-options button { padding-inline: 4px; font-size: .85rem; }
 .rate-page .selection-bar{padding:12px;gap:8px}
 .selection-bar .shortlist-chips{max-height:7rem;overflow:auto}
 .selection-bar [data-selection-count]{font-size:.85rem}
 .history-comparison .rate-chart-body{padding:12px}
 .history-comparison .chart-tick,.history-comparison .chart-axis-label{font-size:var(--rate-chart-label-size,12px)}
}

.airy-directory .rate-summary-conditions>.condition-facts p:first-child{display:block}
.airy-directory .comparison-table thead .table-sort{white-space:normal}

.rate-page [data-comparison-tray]:not(.has-selection) { position: static; }
.rate-page [data-comparison-tray].has-selection {
  bottom: env(safe-area-inset-bottom, 0px);
  box-shadow: 0 -4px 16px rgb(32 38 44 / 10%);
}
.rate-page [data-comparison-tray] .retained-choices[hidden] { display: none; }
@media (max-height: 420px) {
  .rate-page [data-comparison-tray].has-selection { position: static; }
}

@media (max-width: 700px) {
  .rate-page [data-comparison-tray].has-selection .shortlist-chips {
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
    overflow: auto;
    padding: 4px;
  }
  .rate-page [data-comparison-tray] .shortlist-chip {
    flex: 0 0 auto;
    max-width: 90%;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
