/* Final, scoped reading layer. Load after reading-experience.css. */

/* Native fast taps: suppress double-tap zoom on controls, retain pan/pinch. */
:where(button, a[href], input, select, textarea, summary, label[for], [role="button"], [role="tab"], [data-calendar-open]) {
  touch-action: manipulation;
}

/* Shared controls keep their purpose and palette across home and ETF pages. */
#pageContent:has(> .grid-2 .news-feed) :is(.button, .filter-chip),
.etf-dashboard .button {
  min-height: 38px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.35;
  transition: background-color .15s, border-color .15s, color .15s;
}
#pageContent:has(> .grid-2 .news-feed) :is(.button, .filter-chip):hover,
.etf-dashboard .button:hover { transform: none; }
#pageContent:has(> .grid-2 .news-feed) :is(button, a, input, select, summary):focus-visible,
.etf-dashboard :is(button, a, input, select, summary):focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 3px;
}
#pageContent:has(> .grid-2 .news-feed) .filter-row { gap: 7px; }
#pageContent:has(> .grid-2 .news-feed) .feed-asset-filters .filter-chip {
  min-height: 36px;
  padding: 6px 10px;
  font-size: 11px;
}
#pageContent:has(> .grid-2 .news-feed) .news-meta { row-gap: 4px; }
.etf-dashboard .heading-actions { gap: 8px; }
.etf-dashboard .gold-meta,
.etf-dashboard .etf-source-meta {
  align-items: baseline;
  gap: 4px 16px;
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.6;
  font-variant-numeric: tabular-nums;
}
.etf-dashboard :is(.gold-meta, .etf-source-meta) > span { min-width: 0; }
.etf-dashboard :is(.gold-source-note, .etf-source-note, .gold-chart-foot, .btc-chart-foot) {
  font-size: 12px;
  line-height: 1.65;
}
.etf-dashboard .etf-introduction-compact > .etf-intro-help > summary {
  min-height: 40px;
  padding: 8px 12px;
}
.etf-dashboard .etf-intro-help[open] > summary { margin-bottom: 0; }

/* Calendar: one compact control hierarchy above a normally scrolling table. */
.calendar-browser {
  --calendar-sticky-offset: 66px;
  --calendar-important-bg: #30232c;
  --calendar-important-hover: #3b2932;
  --calendar-selected-bg: #345f84;
  --calendar-selected-text: #fff;
  --calendar-high: #f3a7b1;
  --calendar-table-head: #182b3d;
  --calendar-table-line: #283d50;
  --calendar-date-band: #1b3045;
  --calendar-date-text: #bad7ee;
  --calendar-row-alt: #142231;
  --calendar-row-hover: #192d40;
  --calendar-secondary-value: #b6c7d5;
  min-width: 0;
}
.light-mode .calendar-browser {
  --calendar-important-bg: #fff3f5;
  --calendar-important-hover: #ffebef;
  --calendar-selected-bg: #193d5d;
  --calendar-high: #ad3e55;
  --calendar-table-head: #f0f5fa;
  --calendar-table-line: #dde7ef;
  --calendar-date-band: #eaf1f8;
  --calendar-date-text: #315775;
  --calendar-row-alt: #f6f9fc;
  --calendar-row-hover: #edf4fa;
  --calendar-secondary-value: #536b80;
}
.calendar-browser .calendar-browser-heading {
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.calendar-browser .calendar-browser-heading h1 {
  margin: 0 0 3px;
  font-size: 22px;
  line-height: 1.25;
}
.calendar-browser .calendar-view-summary {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
}
.calendar-browser .calendar-view-summary small { font-size: 11px; }
.calendar-browser .calendar-browser-heading > .button {
  min-height: 36px;
  padding: 6px 9px;
  font-size: 12px;
  line-height: 1.3;
}
.calendar-browser .calendar-browser-panel {
  overflow: visible;
  min-width: 0;
}
.calendar-browser :is(.button-small, .filter-chip) {
  min-width: 36px;
  min-height: 38px;
  padding: 7px 10px;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1.3;
}
.calendar-browser .calendar-date-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
  padding: 10px 12px 7px;
  border-radius: 11px 11px 0 0;
}
.calendar-browser .calendar-date-toolbar > .button:first-child,
.calendar-browser .calendar-date-toolbar > .button:nth-child(3) {
  flex: 0 0 38px;
  width: 38px;
  padding: 0;
  font-size: 23px;
  line-height: 1;
}
.calendar-browser .calendar-date-toolbar > #selectedDate {
  flex: 0 1 148px;
  width: 148px;
  min-width: 0;
  max-width: 100%;
  height: 38px;
  min-height: 38px;
  padding: 5px 8px;
  color: var(--text);
  background: var(--panel2);
  border-color: var(--line);
  font-size: 13px;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}
.calendar-browser .calendar-date-toolbar > #selectedDate::-webkit-date-and-time-value { text-align: left; }
.calendar-browser .calendar-date-toolbar > .calendar-view-switch {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin-left: auto;
}
.calendar-browser .calendar-view-switch .button {
  min-width: 52px;
  padding-right: 10px;
  padding-left: 10px;
  font-size: 12px;
}
.calendar-browser .calendar-view-switch .button.is-active,
.calendar-browser .calendar-view-switch .button[aria-pressed="true"] {
  color: var(--calendar-selected-text);
  background: var(--calendar-selected-bg);
  border-color: var(--calendar-selected-bg);
  box-shadow: none;
}
.calendar-browser .calendar-primary-filters {
  display: flex;
  position: relative;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
  padding: 0 12px 9px;
  border-bottom: 1px solid var(--line);
}
.calendar-browser .calendar-primary-filters .filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: 0 0 auto;
  color: var(--text);
  background: var(--panel2);
  border: 1px solid var(--line);
  font-weight: 600;
}
.calendar-browser .calendar-primary-filters .filter-chip::before { content: none; }
.calendar-browser .calendar-primary-filters .filter-chip::after {
  content: "";
  width: 10px;
  font-size: 12px;
  line-height: 1;
}
.calendar-browser .calendar-primary-filters .filter-chip[aria-pressed="true"] {
  color: var(--calendar-selected-text);
  background: var(--calendar-selected-bg);
  border-color: var(--calendar-selected-bg);
  box-shadow: none;
}
.calendar-browser .calendar-primary-filters .filter-chip[aria-pressed="true"]::after { content: "✓"; }
.calendar-browser .calendar-primary-filters .filter-chip:hover { border-color: var(--accent2); }
.calendar-browser .calendar-primary-filters .filter-chip[aria-pressed="true"]:hover { background: var(--accent); }
.calendar-browser .calendar-filter-disclosure { margin-left: auto; min-width: 0; }
.calendar-browser .calendar-filter-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: fit-content;
  min-width: 76px;
  min-height: 38px;
  margin-left: auto;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: var(--panel2);
  list-style: none;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
}
.calendar-browser .calendar-filter-disclosure > summary::-webkit-details-marker { display: none; }
.calendar-browser .calendar-filter-disclosure > summary::after { content: "⌄"; font-size: 15px; line-height: 1; }
.calendar-browser .calendar-filter-disclosure > summary:hover { border-color: var(--accent2); }
.calendar-browser .calendar-filter-disclosure[open] {
  display: contents;
}
.calendar-browser .calendar-filter-disclosure[open] > summary {
  background: var(--panel3);
  border-color: var(--accent2);
}
.calendar-browser .calendar-filter-disclosure[open] > summary::after { content: "⌃"; }
.calendar-browser .calendar-filter-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  flex: 0 0 100%;
  gap: 10px;
  width: 100%;
  min-width: 0;
  margin-top: 3px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel2);
}
.calendar-browser .calendar-filter-fields > label {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.calendar-browser .calendar-filter-fields :is(.select, select) {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 38px;
  min-height: 38px;
  padding: 6px 8px;
  color: var(--text);
  background: var(--panel);
  border: 1px solid var(--line);
  font-size: 13px;
}
.calendar-browser .calendar-week-days {
  gap: 5px;
  padding: 3px 12px 9px;
}
.calendar-browser .calendar-day-button {
  min-height: 59px;
  padding: 5px 2px;
  gap: 2px;
  font-size: 12px;
  line-height: 1.25;
}
.calendar-browser .calendar-day-button small { font-size: 11px; line-height: 1.25; }
.calendar-browser .calendar-day-button.is-in-week {
  border-color: var(--line);
  box-shadow: none;
}
.calendar-browser .calendar-day-button.is-in-week small { color: var(--muted); }
.calendar-browser .calendar-day-button.is-today { border-color: var(--accent2); }
.calendar-browser .calendar-day-button.is-selected {
  color: var(--calendar-selected-text);
  background: var(--calendar-selected-bg);
  border-color: var(--calendar-selected-bg);
}
.calendar-browser .calendar-day-button.is-selected small { color: var(--calendar-selected-text); }
.calendar-browser .calendar-active-filters {
  gap: 5px 10px;
  padding: 5px 12px;
  font-size: 12px;
  line-height: 1.45;
}
.calendar-browser .calendar-active-filters .button {
  min-height: 32px;
  padding: 5px 7px;
  font-size: 11px;
}
.calendar-browser .calendar-results-heading {
  min-height: 34px;
  gap: 4px 10px;
  padding: 5px 12px;
}
.calendar-browser .calendar-results-heading h2 { font-size: 13px; line-height: 1.4; }
.calendar-browser .calendar-results-heading > span,
.calendar-browser .calendar-refresh-link { font-size: 12px; line-height: 1.4; }
.calendar-browser .calendar-refresh-link {
  min-height: 28px;
  padding: 4px 0 4px 6px;
}
.calendar-browser .calendar-browse-notice {
  margin: 8px 12px 0;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.calendar-browser .calendar-coverage-note { margin: 8px 12px 0; font-size: 12px; line-height: 1.5; }
.calendar-browser .calendar-table-region {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  max-height: min(62vh, 620px);
  max-height: min(62dvh, 620px);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.calendar-browser .calendar-data-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  font-size: 13px;
  line-height: 1.5;
}
.calendar-browser .calendar-data-table th,
.calendar-browser .calendar-data-table td { padding: 10px 9px; border-top-color: var(--calendar-table-line); }
.calendar-browser .calendar-data-table thead th {
  top: 0;
  z-index: 6;
  padding: 8px 9px;
  color: var(--text);
  background: var(--calendar-table-head);
  font-size: 12px;
  line-height: 1.4;
  font-weight: 650;
}
.calendar-browser .calendar-data-table thead th:nth-last-child(3) { font-weight: 750; }
.calendar-browser .calendar-data-table thead th:first-child { width: 62px; left: auto; z-index: 6; }
.calendar-browser .calendar-data-table thead th:nth-child(3) { width: 112px; }
.calendar-browser .calendar-data-table thead th:nth-child(4) { width: 82px; }
.calendar-browser .calendar-data-table thead th:nth-last-child(-n+3) { width: 95px; }
.calendar-browser .calendar-data-table .calendar-cell-time {
  position: static;
  width: auto;
  color: var(--text);
  background: transparent;
  box-shadow: none;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.5;
}
.calendar-browser .calendar-cell-title { font-size: 13px; line-height: 1.5; }
.calendar-browser .calendar-event-button { font-weight: 600; }
.calendar-browser .calendar-cell-country small { font-size: 11px; }
.calendar-browser .calendar-impact { font-size: 11px; }
.calendar-browser .calendar-data-table .calendar-cell-value {
  font-size: 13px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
  overflow-wrap: anywhere;
}
.calendar-browser .calendar-data-table .calendar-cell-value:not(.calendar-actual) {
  color: var(--calendar-secondary-value);
  font-weight: 500;
}
.calendar-browser .calendar-data-table .calendar-actual { font-weight: 750; }
.calendar-browser .calendar-data-row:not(.is-important):nth-child(even) > td { background: var(--calendar-row-alt); }
.calendar-browser .calendar-data-row:not(.is-important):is(:hover,:focus-within) > td { background: var(--calendar-row-hover); }
.calendar-browser .calendar-schedule { margin: 3px 0 0 4px; font-size: 11px; line-height: 1.35; }
.calendar-browser .calendar-row-date { font-size: 11px; }
.calendar-browser .calendar-data-row.is-important > td { background: var(--calendar-important-bg); }
.calendar-browser .calendar-data-row.is-important .calendar-event-button,
.calendar-browser .calendar-data-row.is-important .calendar-cell-time {
  color: var(--calendar-high);
  font-weight: 650;
}
.calendar-browser .calendar-data-row.is-important .calendar-cell-time { box-shadow: inset 3px 0 0 var(--calendar-high); }
.calendar-browser .calendar-data-row.is-important:hover > td { background: var(--calendar-important-hover); }
.calendar-browser .calendar-date-row th {
  padding: 7px 9px;
  color: var(--calendar-date-text);
  background: var(--calendar-date-band);
  box-shadow: inset 0 -1px 0 var(--calendar-table-line);
  font-size: 12px;
  font-weight: 750;
}
.calendar-browser .calendar-browse-footer {
  gap: 4px 14px;
  padding: 9px 12px;
  font-size: 11px;
  line-height: 1.6;
}
.calendar-browser .calendar-browse-footer > span:first-child { flex: 1 1 65%; }
.calendar-browser .calendar-browse-footer > span:last-child { flex-basis: 100%; }
.calendar-browser .calendar-browse-footer a { color: var(--accent2); text-decoration: underline; text-underline-offset: 3px; }
.calendar-browser .calendar-browse-footer .calendar-refresh-link { margin-left: auto; }
.calendar-browser .calendar-red-legend { color: var(--muted); font-weight: 500; }
.calendar-browser :is(button, a, input, select, summary):focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 3px;
}
.calendar-browser .calendar-event-button:focus-visible { outline-offset: 2px; }
.calendar-browser .calendar-data-row { scroll-margin-top: calc(var(--calendar-sticky-offset) + 42px); }

@media (max-width: 1080px) {
  .calendar-browser .calendar-data-table thead th:first-child { width: 44px; }
  .calendar-browser .calendar-data-table thead th:nth-last-child(-n+3) { width: 14.5%; }
  .calendar-browser .calendar-data-table thead th:nth-child(3),
  .calendar-browser .calendar-data-table thead th:nth-child(4),
  .calendar-browser .calendar-cell-country,
  .calendar-browser .calendar-cell-impact { display: none; }
  .calendar-browser .calendar-data-table th,
  .calendar-browser .calendar-data-table td { padding: 9px 5px; }
  .calendar-browser .calendar-data-table thead th { padding: 7px 5px; font-size: 11.5px; white-space: normal; }
  .calendar-browser .calendar-data-table .calendar-cell-time { font-size: 11.5px; }
  .calendar-browser .calendar-cell-title { font-size: 13px; }
  .calendar-browser .calendar-data-table .calendar-cell-value { font-size: 12px; }
  .calendar-browser .calendar-event-context {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 7px;
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.35;
  }
  .calendar-browser .calendar-context-impact { height: 11px; }
  .calendar-browser .calendar-date-row th { padding: 7px 5px; font-size: 12px; }
}
@media (max-width: 860px) {
  .calendar-browser { --calendar-sticky-offset: 60px; }
}
@media (max-width: 700px) {
  .page-content:has(.calendar-browser) { padding-top: 8px; }
  .main-area:has(.calendar-browser) .topbar {
    height: 52px;
    min-height: 52px;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .calendar-browser { --calendar-sticky-offset: 52px; }
  .calendar-browser .calendar-browser-heading { gap: 6px; margin-bottom: 5px; }
  .calendar-browser .calendar-browser-heading h1 { margin: 0 0 2px; font-size: 18px; line-height: 1.25; }
  .calendar-browser .calendar-view-summary { font-size: 11.5px; line-height: 1.35; }
  .calendar-browser .calendar-view-summary small { font-size: 11px; }
  .calendar-browser .calendar-browser-heading > .button {
    min-height: 36px;
    min-width: 0;
    padding: 6px;
    font-size: 11px;
  }
  .calendar-browser :is(.button-small, .filter-chip) { min-height: 36px; font-size: 12px; }
  .calendar-browser .calendar-date-toolbar {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 36px auto auto;
    gap: 4px;
    padding: 3px 8px;
  }
  .calendar-browser .calendar-date-toolbar > .button:first-child,
  .calendar-browser .calendar-date-toolbar > .button:nth-child(3) {
    width: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    font-size: 22px;
  }
  .calendar-browser .calendar-date-toolbar > #selectedDate {
    width: 100%;
    height: 36px;
    min-height: 36px;
    padding: 4px 5px;
    font-size: 12px;
  }
  .calendar-browser .calendar-date-toolbar > .button:nth-child(4) {
    min-width: 56px;
    padding: 6px 5px;
    font-size: 11.5px;
    white-space: nowrap;
  }
  .calendar-browser .calendar-date-toolbar > .calendar-view-switch { grid-column: auto; grid-row: auto; margin-left: 0; }
  .calendar-browser .calendar-view-switch .button {
    min-width: 40px;
    min-height: 36px;
    padding: 6px 5px;
    font-size: 11.5px;
  }
  .calendar-browser .calendar-primary-filters { gap: 5px; padding: 0 8px 3px; }
  .calendar-browser .calendar-primary-filters .filter-chip { min-height: 36px; padding: 6px 9px; font-size: 12px; }
  .calendar-browser .calendar-filter-disclosure > summary { min-height: 36px; min-width: 75px; padding: 6px 8px; }
  .calendar-browser .calendar-filter-fields { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 9px; }
  .calendar-browser .calendar-filter-fields > label { grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 8px; }
  .calendar-browser .calendar-filter-fields :is(.select, select) { font-size: 16px; }
  .calendar-browser .calendar-week-days { gap: 3px; padding: 3px 8px 7px; }
  .calendar-browser .calendar-day-button { min-height: 58px; font-size: 11px; }
  .calendar-browser .calendar-day-button small { font-size: 10px; }
  .calendar-browser .calendar-active-filters { padding: 5px 8px; font-size: 11.5px; }
  .calendar-browser .calendar-active-filters .button { min-height: 32px; font-size: 11px; }
  .calendar-browser .calendar-results-heading { min-height: 24px; gap: 4px 6px; padding: 1px 8px; }
  .calendar-browser .calendar-results-heading > span,
  .calendar-browser .calendar-refresh-link { font-size: 11.5px; }
  .calendar-browser .calendar-refresh-link { min-height: 28px; }
  .calendar-browser .calendar-data-table thead th { padding: 6px 4px; font-size: 11px; line-height: 1.35; }
  .calendar-browser .calendar-data-table td { padding: 8px 4px; }
  .calendar-browser .calendar-data-table thead th:first-child { width: 40px; }
  .calendar-browser .calendar-data-table thead th:nth-last-child(-n+3) {
    width: 16.25%;
    padding-right: 2px;
    padding-left: 2px;
    white-space: nowrap;
  }
  .calendar-browser .calendar-cell-title { font-size: 12.5px; line-height: 1.45; }
  /* Common signed/% figures fit whole; unusually long values can still wrap. */
  .calendar-browser .calendar-data-table .calendar-cell-value {
    padding-right: 2px;
    padding-left: 2px;
    font-size: 12px;
    line-height: 1.5;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    hyphens: none;
  }
  .calendar-browser .calendar-data-table .calendar-cell-time { font-size: 11.5px; }
  .calendar-browser .calendar-schedule { margin-left: 0; font-size: 10.5px; }
  .calendar-browser .calendar-browse-notice { margin: 6px 8px 0; padding: 7px 8px; font-size: 12px; }
  .calendar-browser .calendar-coverage-note { margin: 7px 8px 0; font-size: 11.5px; }
  .calendar-browser .calendar-browse-footer { padding: 7px 8px; font-size: 11px; }
}
@media (max-width: 359px) {
  .calendar-browser .calendar-date-toolbar { grid-template-columns: 36px minmax(0, 1fr) 36px auto; }
  .calendar-browser .calendar-date-toolbar > .calendar-view-switch { grid-column: 1 / -1; justify-self: end; }
  .calendar-browser .calendar-filter-fields > label { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .calendar-browser .calendar-primary-filters .filter-chip { gap: 4px; padding-right: 7px; padding-left: 7px; }
  .calendar-browser .calendar-filter-disclosure > summary { min-width: 68px; padding-right: 6px; padding-left: 6px; }
  .calendar-browser .calendar-data-table thead th { padding-right: 3px; padding-left: 3px; }
  .calendar-browser .calendar-data-table td { padding-right: 3px; padding-left: 3px; }
  .calendar-browser .calendar-data-table thead th:nth-last-child(-n+3) {
    width: 17.25%;
    padding-right: 2px;
    padding-left: 2px;
  }
  .calendar-browser .calendar-data-table thead th:nth-last-child(3) { width: 18%; }
  .calendar-browser .calendar-data-table .calendar-cell-value { padding-right: 2px; padding-left: 2px; font-size: 11.5px; }
  .calendar-browser .calendar-data-table .calendar-cell-value.calendar-actual {
    padding-right: 1px;
    padding-left: 1px;
    font-size: 11.5px;
  }
}
@media (prefers-reduced-motion: reduce) {
  #pageContent:has(> .grid-2 .news-feed) :is(.button, .filter-chip),
  .etf-dashboard .button { transition: none; }
}

/* Compact only the homepage news filters. */
#pageContent:has(> .grid-2 .news-feed) .feed-kind-filters{display:flex;grid-template-columns:none;flex-wrap:wrap;gap:6px;margin-bottom:6px!important}
#pageContent:has(> .grid-2 .news-feed) .feed-kind-filters .feed-toggle{width:auto;flex:0 0 auto;min-width:0;min-height:26px;padding:3px 7px;font-size:10.5px;line-height:1.25;gap:4px;border-radius:6px}
#pageContent:has(> .grid-2 .news-feed) .feed-kind-filters .feed-toggle-dot{width:5px;height:5px}
#pageContent:has(> .grid-2 .news-feed) .feed-asset-filters{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:6px;margin-bottom:6px!important}
#pageContent:has(> .grid-2 .news-feed) .feed-asset-filters .filter-chip{width:auto;flex:0 0 auto;min-width:0;min-height:27px;padding:4px 7px;font-size:10.5px;line-height:1.25;border-radius:7px}

/* Calendar date scopes and compact filters share two clear control rows. */
.calendar-browser .calendar-browser-heading h1 { margin-bottom: 0; }
.calendar-browser .calendar-timezone {
  display: inline-block;
  margin-left: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  white-space: nowrap;
  vertical-align: baseline;
}
/* Date navigation and scope share one row, even on narrow phones. */
.calendar-browser .calendar-navigation-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 7px;
  min-width: 0;
  padding: 8px 12px 5px;
}
.calendar-browser .calendar-navigation-row > .calendar-date-toolbar {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  padding: 0;
  border-radius: 0;
}
.calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button,
.calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:first-child,
.calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:nth-child(3),
.calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:nth-child(4) {
  grid-column: auto;
  grid-row: auto;
  flex: 0 0 28px;
  width: 28px;
  min-width: 28px;
  min-height: 28px;
  height: 28px;
  padding: 0;
  border-radius: 6px;
  font-size: 20px;
  line-height: 1;
}
.calendar-browser .calendar-quick-scopes {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  gap: 4px;
  min-width: 0;
  padding: 0;
}
.calendar-browser .calendar-quick-scopes > .button {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 28px;
  padding: 4px 9px;
  border-radius: 6px;
  font-size: 11px;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.3;
  white-space: nowrap;
}
.calendar-browser .calendar-quick-scopes > .button[aria-pressed="true"] {
  color: var(--calendar-selected-text);
  background: var(--calendar-selected-bg);
  border-color: var(--calendar-selected-bg);
  box-shadow: none;
}
.calendar-browser .calendar-quick-scopes > .calendar-next-week-button {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #fff;
  background: #285f91;
  border-color: #285f91;
  font-weight: 750;
}
.calendar-browser .calendar-quick-scopes > .calendar-next-week-button:hover:not(:disabled) { background: #1e4e79; border-color: #1e4e79; transform: none; }
.calendar-browser .calendar-quick-scopes > .calendar-next-week-button:disabled { opacity: .6; cursor: wait; }
.calendar-browser .calendar-quick-scopes > .calendar-next-week-button:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.calendar-browser .calendar-control-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  min-width: 0;
  margin: 1px 12px 7px;
  padding: 6px 8px;
  border: 1px solid #3c5d7c;
  border-left: 3px solid #6da7d2;
  border-radius: 7px;
  background: #192e42;
}
.light-mode .calendar-browser .calendar-control-row { background: #edf5fc; border-color: #bfd4e8; border-left-color: #397eae; }
.calendar-browser .calendar-navigation-row .calendar-date-toolbar > .calendar-date-picker-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-basis: 30px;
  width: 30px;
  min-width: 30px;
  color: var(--text);
  background: var(--panel2);
  border-color: var(--line);
}
.calendar-browser .calendar-date-picker-toggle svg {
  display: block;
  width: 18px;
  height: 18px;
  pointer-events: none;
}
.calendar-browser .calendar-date-picker-toggle:focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 3px;
}
.calendar-browser .calendar-control-row > .calendar-primary-filters {
  align-items: center;
  flex: 1 1 auto;
  max-width: 100%;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 4px;
  margin-left: 0;
  padding: 0;
  border: 0;
}
.calendar-browser .calendar-quick-currencies {
  display: flex;
  align-items: center;
  flex: 0 1 auto;
  min-width: 0;
  gap: 4px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.calendar-browser .calendar-quick-currencies::-webkit-scrollbar { display: none; }
.calendar-browser .calendar-quick-currency-flag {
  display: inline-block;
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
}
.calendar-browser .calendar-primary-filters > .calendar-filter-label {
  flex: 0 0 auto;
  color: #c0def6;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
  white-space: nowrap;
}
.light-mode .calendar-browser .calendar-primary-filters > .calendar-filter-label { color: #214f79; }
.calendar-browser .calendar-important-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 13px;
  border: 1px solid currentColor;
  border-radius: 3px;
  font-size: 9px;
  line-height: 1;
}
.calendar-browser .calendar-control-row .calendar-primary-filters .filter-chip {
  gap: 4px;
  min-width: 0;
  min-height: 28px;
  padding: 4px 6px;
  border-radius: 6px;
  color: var(--text);
  background: var(--panel2);
  border-color: var(--line);
  font-size: 11px;
  line-height: 1.3;
  white-space: nowrap;
}
.calendar-browser .calendar-control-row .calendar-primary-filters .filter-chip::after,
.calendar-browser .calendar-control-row .calendar-primary-filters .filter-chip[aria-pressed="true"]::after {
  display: none;
  content: none;
}
.calendar-browser .calendar-control-row .calendar-primary-filters .filter-chip[aria-pressed="true"] {
  color: var(--calendar-selected-text);
  background: var(--calendar-selected-bg);
  border-color: var(--accent2);
  box-shadow: none;
}
.calendar-browser .calendar-control-row .calendar-primary-filters > .calendar-currency-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  min-width: 28px;
  padding: 0;
  font-size: 18px;
  font-weight: 750;
  line-height: 1;
}
.calendar-browser .calendar-control-row .calendar-primary-filters > .calendar-currency-more.active {
  color: var(--calendar-selected-text);
  background: var(--calendar-selected-bg);
  border-color: var(--accent2);
}
.calendar-browser .calendar-currency-more-count {
  position: absolute;
  top: -4px;
  right: -3px;
  display: grid;
  place-items: center;
  min-width: 12px;
  height: 12px;
  padding: 0 2px;
  border: 1px solid var(--panel);
  border-radius: 6px;
  background: var(--accent);
  color: #fff;
  font-size: 8px;
  font-weight: 750;
  line-height: 1;
}
.calendar-browser .calendar-control-row #calendar-important-toggle {
  color: #f4a3b1;
  background: #37252f;
  border-color: #81505e;
}
.light-mode .calendar-browser .calendar-control-row #calendar-important-toggle {
  color: #a83149;
  background: #fff0f3;
  border-color: #dda3af;
}
.calendar-browser .calendar-control-row #calendar-important-toggle[aria-pressed="true"] {
  color: #fff;
  background: #b6364c;
  border-color: #b6364c;
}
.calendar-browser .calendar-control-row #calendar-important-toggle:hover { border-color: #d86379; }
.calendar-browser .calendar-control-row #calendar-important-toggle[aria-pressed="true"]:hover { background: #a52a40; }
.calendar-browser .calendar-week-days { padding-top: 5px; }
.calendar-browser .calendar-day-button { min-height: 42px; padding: 4px 2px; gap: 1px; }
.calendar-browser .calendar-day-button small { display: none; }
@media (max-width: 700px) {
  .calendar-browser .calendar-browser-heading { margin-bottom: 5px; }
  .calendar-browser .calendar-timezone { margin-left: 4px; font-size: 10.5px; }
  .calendar-browser .calendar-browser-heading > .button { min-height: 28px; padding: 4px 6px; }
  .calendar-browser .calendar-navigation-row { gap: 5px; padding: 5px 8px; }
  .calendar-browser .calendar-navigation-row > .calendar-date-toolbar { flex: 0 0 auto; gap: 3px; }
  .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button,
  .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:first-child,
  .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:nth-child(3) {
    flex-basis: 24px; width: 24px; min-width: 24px; min-height: 26px; height: 26px;
  }
  .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .calendar-date-picker-toggle {
    flex-basis: 28px; width: 28px; min-width: 28px;
  }
  .calendar-browser .calendar-quick-scopes { gap: 3px; padding: 0; }
  .calendar-browser .calendar-quick-scopes > .button { min-height: 26px; padding: 4px 6px; font-size: 10px; }
  .calendar-browser .calendar-control-row { margin: 1px 4px 6px; padding: 5px 3px; }
  .calendar-browser .calendar-control-row > .calendar-primary-filters { gap: 2px; }
  .calendar-browser .calendar-primary-filters > .calendar-filter-label { font-size: 9px; }
  .calendar-browser .calendar-control-row .calendar-primary-filters .filter-chip {
    min-height: 25px; padding: 3px 5px; gap: 3px; font-size: 9.5px;
  }
  .calendar-browser .calendar-important-check { width: 11px; height: 11px; font-size: 8px; }
  .calendar-browser .calendar-quick-currencies { gap: 2px; }
  .calendar-browser .calendar-quick-currency-flag { font-size: 10px; }
  .calendar-browser .calendar-control-row .calendar-primary-filters > .calendar-currency-more {
    flex-basis: 26px; width: 26px; min-width: 26px; padding: 0; font-size: 17px;
  }
  .calendar-browser .calendar-day-button { min-height: 40px; font-size: 11px; }
}

.calendar-browser .calendar-title-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 5px}

/* News rows use the full space now that bookmarking has been removed. */
#pageContent:has(> .grid-2 .news-feed) .news-item{grid-template-columns:minmax(0,1fr)}
@media(max-width:600px){
 #pageContent:has(> .grid-2 .news-feed) .news-time{margin-right:0}
 #pageContent:has(> .grid-2 .news-feed) .news-meta{margin-right:0}
}

/* Pending week navigation stays explicit without moving the controls. */
.calendar-browser .calendar-append-notice{
 margin:2px 12px 6px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;
 background:var(--panel2);font-size:12px;line-height:1.5;
 color:var(--muted);text-align:left;overflow-wrap:anywhere;
}
.calendar-browser .calendar-append-notice.is-error{color:var(--calendar-high)}
@media(max-width:480px){
 .calendar-browser .calendar-navigation-row { gap: 3px; }
 .calendar-browser .calendar-navigation-row > .calendar-date-toolbar { gap: 2px; }
 .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button,
 .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:first-child,
 .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .button:nth-child(3) { flex-basis:24px; width:24px; min-width:24px; }
 .calendar-browser .calendar-navigation-row .calendar-date-toolbar > .calendar-date-picker-toggle { flex-basis:26px; width:26px; min-width:26px; }
 .calendar-browser .calendar-quick-scopes { gap:2px; }
 .calendar-browser .calendar-quick-scopes > .button { padding:4px 2px; font-size:10px; }
}
@media(max-width:700px){
 .calendar-browser .calendar-append-notice{font-size:11.5px}
}

.calendar-browser .calendar-week-legend{display:inline-flex;align-items:center;gap:9px;font-size:11px;line-height:1.4;flex-wrap:wrap}
.calendar-browser .calendar-week-legend>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.calendar-browser .calendar-week-legend>span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--muted)}
.calendar-browser .calendar-week-legend .calendar-legend-red{color:var(--calendar-high)}
.calendar-browser .calendar-week-legend .calendar-legend-red::before{background:var(--calendar-high)}
.calendar-browser .calendar-week-legend .calendar-legend-regular{color:var(--muted)}

/* One homepage filter row: importance left, topic track right. */
#pageContent:has(> .grid-2 .news-feed) .feed-filter-toolbar{
 display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;
 min-width:0;gap:6px;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--line);
}
#pageContent:has(> .grid-2 .news-feed) .feed-filter-toolbar>.feed-kind-filters{
 flex:0 0 auto;flex-wrap:nowrap;gap:0;margin:0!important;padding:0;border:0;
}
#pageContent:has(> .grid-2 .news-feed) .feed-filter-toolbar>.feed-asset-filters{
 display:block;flex:0 1 auto;min-width:0;max-width:100%;margin:0 0 0 auto!important;
 padding:0;border:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
 overscroll-behavior-x:contain;
}
#pageContent:has(> .grid-2 .news-feed) .feed-filter-toolbar>.feed-asset-filters::-webkit-scrollbar{display:none}
#pageContent:has(> .grid-2 .news-feed) .feed-topic-buttons{
 display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:4px;
 width:max-content;min-width:100%;
}
#pageContent:has(> .grid-2 .news-feed) .feed-topic-buttons>.filter-chip{white-space:nowrap}

#pageContent:has(> .grid-2 .news-feed) .feed-topic-buttons>.filter-chip:focus-visible{outline-offset:-2px}

/* Compact weekday shortcuts: bounded row width, same small size on phones. */
.calendar-browser .calendar-week-days{
 display:grid;grid-template-columns:repeat(7,minmax(0,1fr));
 width:100%;max-width:344px;gap:4px;padding:3px 8px 5px;
}
.calendar-browser .calendar-week-days .calendar-day-button{
 display:grid;justify-items:center;align-content:center;gap:0;
 min-width:24px;min-height:28px;height:28px;padding:1px 2px;
 border-radius:5px;font-size:10px;line-height:11px;
}
.calendar-browser .calendar-week-days .calendar-day-button b{font-size:10px;line-height:11px}
.calendar-browser .calendar-week-days .calendar-day-button>span{font-size:9.5px;line-height:11px}
.calendar-browser .calendar-week-days .calendar-day-button:focus-visible{outline-offset:1px}

/* Keep event counts compact above the table. */
.calendar-browser .calendar-table-toolbar{
 display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
 gap:4px 8px;padding:4px 8px;border-top:1px solid var(--line);
}
.calendar-browser .calendar-table-toolbar>.calendar-results-heading{
 flex:1 1 auto;min-height:30px;min-width:0;padding:0;gap:5px 9px;
}
/* Currency codes are a single unit with their flag, not a repeated country paragraph. */
.calendar-browser .calendar-currency-badge,
.calendar-browser .calendar-context-currency{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;word-break:normal;overflow-wrap:normal;flex:0 0 auto}
.calendar-browser .calendar-currency-badge>span{white-space:nowrap}
.calendar-browser .calendar-cell-country{white-space:nowrap;word-break:normal;overflow-wrap:normal}
@media(min-width:1081px){
 .calendar-browser .calendar-data-table th,
 .calendar-browser .calendar-data-table td{padding:8px 7px}
 .calendar-browser .calendar-data-table thead th:first-child{width:58px}
 .calendar-browser .calendar-data-table thead th:nth-child(3){width:78px}
 .calendar-browser .calendar-data-table thead th:nth-child(4){width:66px}
 .calendar-browser .calendar-data-table thead th:nth-last-child(-n+3){width:88px}
 .calendar-browser .calendar-cell-title{font-size:12.5px;line-height:1.45}
}
@media(max-width:1080px){
 .calendar-browser .calendar-event-button{display:block;width:100%;min-height:0;text-align:left;line-height:1.4}
 .calendar-browser .calendar-event-inline,
 .calendar-browser .calendar-event-title{display:inline}
 .calendar-browser .calendar-event-context{display:inline-flex;align-items:baseline;flex-wrap:nowrap;gap:3px;margin:0 5px 0 0;font-size:9.5px;line-height:1.3;white-space:nowrap;vertical-align:baseline}
 .calendar-browser .calendar-context-currency{gap:2px}
 .calendar-browser .calendar-context-impact{flex:0 0 auto;height:9px;vertical-align:baseline}
 .calendar-browser .calendar-context-impact i{width:2px}
 .calendar-browser .calendar-context-impact i:nth-child(3){height:9px}
}
@media(max-width:700px){
  .calendar-browser .calendar-table-toolbar .calendar-week-legend{display:none}
 .calendar-browser .calendar-data-table td{padding-top:7px;padding-bottom:7px}
}

/* The date icon opens a focused month picker without expanding the toolbar. */
.dialog:has(.calendar-picker){
 width:min(352px,100%);padding:18px 16px 16px;
 max-height:min(580px,calc(100dvh - 24px));
}
.dialog:has(.calendar-picker) .modal-kicker{display:none}
.dialog:has(.calendar-picker) h2{font-size:18px;line-height:1.35;margin:0 34px 14px 0}
.calendar-picker{
 --picker-accent:#8bc8f7;
 --picker-selected:#285f91;
 min-width:0;color:var(--text);font-size:13px;
}
.light-mode .calendar-picker{--picker-accent:#285f91}
.calendar-picker-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.calendar-picker-shortcuts>.button{
 min-width:0;min-height:32px;padding:6px 8px;border:1px solid var(--line);
 border-radius:7px;background:var(--panel2);color:var(--text);font-size:11.5px;line-height:1.3;
}
.calendar-picker-shortcuts>.button[aria-pressed="true"]{border-color:var(--picker-accent);box-shadow:inset 0 0 0 1px var(--picker-accent)}
.calendar-picker-monthbar{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:7px;margin:12px 0 8px}
.calendar-picker-monthbar :is(h3,strong){margin:0;text-align:center;font-size:13px;font-weight:750;line-height:1.4;color:var(--text)}
.calendar-picker-monthbar>.button{
 width:32px;min-width:32px;min-height:32px;height:32px;padding:0;border:1px solid var(--line);
 border-radius:7px;background:var(--panel2);color:var(--text);font-size:20px;line-height:1;
}
.calendar-picker-weekdays,.calendar-picker-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-picker-weekdays{margin-bottom:4px;color:var(--muted);font-size:10.5px;line-height:1.5;font-weight:600;text-align:center}
.calendar-picker-weekdays>span{padding:3px 0}
.calendar-picker-day{
 position:relative;display:grid;place-items:center;min-width:0;width:100%;min-height:36px;height:36px;margin:0;padding:2px;
 border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);
 font-size:12.5px;line-height:1.2;font-weight:600;font-variant-numeric:tabular-nums;
}
.calendar-picker-selection { margin: 9px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; font-weight: 650; }
.calendar-picker-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.calendar-picker-footer > .button { min-height: 34px; min-width: 70px; padding: 6px 16px; border-radius: 7px; font-size: 12px; line-height: 1.3; }
.calendar-picker-footer > .calendar-picker-apply { color: #fff; background: var(--picker-selected); border-color: var(--picker-selected); font-weight: 750; }
.calendar-picker-footer > .calendar-picker-apply:hover { background: #204f79; border-color: #204f79; }
.calendar-browser .calendar-view-range { color: var(--text); font-size: 12px; line-height: 1.3; font-weight: 700; white-space: nowrap; }
.calendar-browser .calendar-release-status {
 display: inline-flex; align-items: center; gap: 4px; margin: 2px 0 0 4px;
 color: var(--muted); font-size: 10px; line-height: 1.35; font-weight: 600; white-space: nowrap;
}
.calendar-browser .calendar-release-status::before { content: ""; width: 4px; height: 4px; flex: 0 0 4px; border-radius: 50%; background: currentColor; }
.calendar-browser .calendar-release-status[data-release-state="released"] { color: #80ddb2; }
.calendar-browser .calendar-release-status[data-release-state="upcoming"] { color: #90c9fa; }
.calendar-browser .calendar-release-status[data-release-state="waiting"] { color: #f0bf68; }
.calendar-browser .calendar-release-status[data-release-state="cancelled"] { color: #e3a2ae; }
.light-mode .calendar-browser .calendar-release-status[data-release-state="released"] { color: #146b4b; }
.light-mode .calendar-browser .calendar-release-status[data-release-state="upcoming"] { color: #245f90; }
.light-mode .calendar-browser .calendar-release-status[data-release-state="waiting"] { color: #8c5700; }
.light-mode .calendar-browser .calendar-release-status[data-release-state="cancelled"] { color: #a33249; }
@media(max-width:700px){
 .calendar-browser .calendar-release-status { margin-left: 0; font-size: 9.5px; }
 .calendar-browser .calendar-navigation-row:has(.calendar-view-range) { flex-wrap: wrap; gap: 3px 5px; }
 .calendar-browser .calendar-navigation-row:has(.calendar-view-range) > .calendar-date-toolbar { order: 0; }
 .calendar-browser .calendar-navigation-row:has(.calendar-view-range) > .calendar-quick-scopes { order: 1; margin-left: auto; }
 .calendar-browser .calendar-navigation-row > .calendar-view-range { order: 2; flex: 0 0 100%; font-size: 11px; }
}
.calendar-picker-day.is-outside-month{color:var(--muted);font-weight:400}
.calendar-picker-day.is-today{border-color:var(--picker-accent)}
.calendar-picker-day.is-today::after{content:"";position:absolute;bottom:3px;width:3px;height:3px;border-radius:50%;background:var(--picker-accent)}
.calendar-picker-day.is-selected{background:var(--picker-selected);border-color:var(--picker-selected);color:#fff;font-weight:750}
.calendar-picker-day.is-selected.is-today::after{background:#fff}
.calendar-picker button:hover{transform:none}
.calendar-picker-multi-controls { display:flex; align-items:center; justify-content:space-between; gap:7px; margin:8px 0; }
.calendar-picker-multi-controls > .button { min-height:28px; padding:4px 7px; font-size:11px; line-height:1.35; border-radius:6px; }
.calendar-picker-multiple-toggle { display:inline-flex; align-items:center; gap:6px; color:var(--text); background:var(--panel2); }
.calendar-picker-multiple-check { display:inline-flex; align-items:center; justify-content:center; flex:0 0 12px; width:12px; height:12px; border:1px solid currentColor; border-radius:3px; font-size:9px; line-height:1; }
.calendar-picker-multiple-toggle[aria-pressed="true"] { color:#fff; background:var(--picker-selected); border-color:var(--picker-selected); font-weight:700; }
.calendar-picker-multi-controls > .calendar-picker-clear-dates { color:var(--muted); background:transparent; border-color:var(--line); }
.calendar-picker-multi-controls > .calendar-picker-clear-dates:disabled { opacity:.45; cursor:default; }
.calendar-picker-footer > .calendar-picker-apply:disabled { opacity:.45; cursor:not-allowed; }
.calendar-picker button:focus-visible{outline:2px solid var(--accent2);outline-offset:1px;z-index:1}
.calendar-picker :is(.calendar-picker-note,.calendar-picker-help){margin:9px 0 0;color:var(--muted);font-size:10.5px;line-height:1.5}
@media(hover:hover){
 .calendar-picker-day:hover:not(.is-selected){background:var(--panel2);border-color:var(--line)}
 .calendar-picker-shortcuts>.button:hover,.calendar-picker-monthbar>.button:hover{background:var(--panel3);border-color:var(--picker-accent)}
}

/* Extended currency selection stays compact without hiding selected codes. */
.dialog:has(.calendar-currency-picker) {
  width: min(380px,100%);
  max-height: min(630px,calc(100dvh - 24px));
  padding: 18px 16px 16px;
}
.dialog:has(.calendar-currency-picker) .modal-kicker { display: none; }
.dialog:has(.calendar-currency-picker) h2 { margin: 0 34px 10px 0; font-size: 18px; line-height: 1.35; }
.calendar-currency-picker { min-width: 0; color: var(--text); }
.calendar-currency-picker .calendar-currency-hint { margin: 0 0 12px; color: var(--muted); font-size: 11.5px; line-height: 1.5; }
.calendar-currency-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.calendar-currency-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  min-height: 58px;
  margin: 0;
  padding: 9px 19px 9px 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel2);
  color: var(--text);
  font-size: 12px;
  line-height: 1.3;
  text-align: left;
  transition: background-color .12s, border-color .12s;
}
.calendar-currency-flag { flex: 0 0 auto; font-size: 18px; line-height: 1; }
.calendar-currency-copy { display: grid; min-width: 0; gap: 3px; }
.calendar-currency-copy > strong { color: var(--text); font-size: 12px; font-weight: 750; letter-spacing: .15px; }
.calendar-currency-copy > small { color: var(--muted); font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.calendar-currency-check {
  position: absolute;
  top: 7px;
  right: 6px;
  display: grid;
  place-items: center;
  width: 12px;
  height: 12px;
  border: 1px solid var(--muted2);
  border-radius: 4px;
  color: transparent;
  font-size: 9px;
  font-weight: 750;
  line-height: 1;
}
.calendar-currency-option[aria-pressed="true"] { border-color: var(--accent2); box-shadow: inset 0 0 0 1px var(--accent2); }
.calendar-currency-option[aria-pressed="true"] .calendar-currency-check { color: #fff; border-color: #285f91; background: #285f91; }
.calendar-currency-option:hover { transform: none; }
.calendar-currency-option:focus-visible,
.calendar-currency-actions .button:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.calendar-currency-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.calendar-currency-actions > .button { min-height: 34px; padding: 7px 14px; font-size: 12px; line-height: 1.3; }
.calendar-currency-actions > .button:last-child { color: #fff; background: #285f91; border-color: #285f91; }
@media(hover:hover) {
  .calendar-currency-option:hover { border-color: var(--accent2); background: var(--panel3); }
}
@media(max-width:359px) {
  .calendar-currency-options { gap: 6px; }
  .calendar-currency-option { gap: 4px; padding-left: 6px; padding-right: 17px; }
  .calendar-currency-flag { font-size: 16px; }
}

/* Compact hashtag topics share the existing single-row toolbar. */
#pageContent:has(> .grid-2 .news-feed) .feed-topic-buttons{gap:3px}
#pageContent:has(> .grid-2 .news-feed) .feed-topic-buttons>.asset-chip{
 min-height:25px;padding:3px 6px;font-size:10px;font-style:italic;line-height:1.25;
}
@media(max-width:600px){
 #pageContent:has(> .grid-2 .news-feed) .feed-topic-buttons>.asset-chip{font-size:9.5px}
}

@media (hover: none) and (pointer: coarse) {
  #pageContent:has(> .grid-2 .news-feed) :is(.button, .filter-chip),
  .calendar-browser :is(.button, .filter-chip, .calendar-day-button),
  .calendar-picker button,
  .calendar-currency-picker button,
  .etf-dashboard .button,
  .topbar button,
  .sidebar a {
    transition: none;
  }
  /* Keep compact buttons; only form fields need a readable focus size on iOS. */
  .etf-dashboard :is(.select, .input) {
    font-size: 16px;
  }
}

.calendar-browser .calendar-next-week-arrow { font-size: 14px; line-height: 1; flex: 0 0 auto; }
.calendar-browser .calendar-view-range { font-variant-numeric: tabular-nums; }
@media(max-width:480px){
 .calendar-browser .calendar-quick-scopes > .calendar-next-week-button { gap: 3px; }
 .calendar-browser .calendar-next-week-arrow { font-size: 12px; }
}
