body.address-list { display: block; height: auto; min-height: 100%; overflow: visible; }
.address-toolbar {
  position: sticky;
  top: 0;
  z-index: 2;
}
.address-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.address-toolbar .theme-toggle { margin-left: 0; }
#copyAddresses { min-width: 70px; }
#fields { position: static; }
#fields summary {
  white-space: nowrap;
  height: var(--control-h);
  padding: 0 8px;
  font-size: var(--control-font);
  line-height: calc(var(--control-h) - 2px);
  border: 1px solid var(--line);
  background: var(--panel-2);
  cursor: pointer;
}
#fields summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
#fieldOptions {
  position: absolute;
  top: calc(100% + 8px);
  right: 18px;
  width: min(420px, calc(100vw - 40px));
  max-height: 70vh;
  overflow-y: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px 10px;
  padding: 10px;
  background: var(--panel);
  border: 1px solid var(--line);
  box-shadow: 0 8px 20px #0006;
}
#fieldOptions label { display: flex; align-items: center; gap: 8px; min-height: var(--control-h); padding: 4px 2px; cursor: pointer; }
#fieldOptions input { width: 14px; height: 14px; margin: 0; accent-color: var(--accent); }
#fieldOptions .grid-option { grid-column: 1 / -1; border-top: 1px solid var(--line); margin-top: 6px; padding-top: 10px; }
#fieldOptions .display-option { grid-column: 1 / -1; }
.address-scroll { overflow-x: auto; }
#addresses { display: block; width: max(100%, var(--table-width, 0px)); white-space: nowrap; }
#addresses thead, #addresses tbody { display: block; }
#addresses tr { display: grid; grid-template-columns: var(--columns); }
/* Keep every address searchable while skipping layout for off-screen cells. */
#addresses tbody tr { content-visibility: auto; contain-intrinsic-size: auto calc(1.45em + 13px); }
#addresses th, #addresses td { display: block; min-width: 0; padding: 6px 20px; border-bottom: 1px solid var(--line-soft); text-align: left; }
#addresses th { font-size: 11px; font-weight: 500; color: var(--muted); background: var(--bg); }
.address-count { margin-left: 8px; color: var(--ink-dim); font-variant-numeric: tabular-nums; }
#addresses td { font-variant-numeric: tabular-nums; }
#addresses.no-grid th, #addresses.no-grid td { border-bottom-color: transparent; }
#addresses tbody tr:hover { background: var(--panel-2); }
@media print {
  #addresses tbody tr { content-visibility: visible; }
}
@media (max-width: 600px) {
  .address-toolbar { padding-inline: 12px; gap: 8px; }
  .address-toolbar h1 { display: none; }
  .address-toolbar .view-tabs { gap: 7px; font-size: 12px; }
  .address-actions { gap: 4px; }
  #copyAddresses { min-width: 58px; }
  #addresses th, #addresses td { padding-inline: 12px; }
  #fieldOptions { right: 12px; width: min(420px, calc(100vw - 24px)); }
}
@media (max-width: 360px) {
  .address-toolbar { flex-wrap: wrap; row-gap: 6px; }
  .address-actions { order: 2; flex-basis: 100%; justify-content: flex-end; }
  .address-toolbar .theme-toggle { margin-left: auto; }
}
