/* Shared overflow fixes for rules reference pages (load after each page's inline styles). */
.sp-wrap {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.sp-top {
  min-width: 0;
  max-width: 100%;
}
.sp-filters {
  min-width: 0;
  max-width: 100%;
}
.sp-filter-row {
  min-width: 0;
}
.sp-main {
  min-width: 0;
}
.sp-listwrap {
  min-width: 0;
  max-width: 100%;
}
.sp-scroll {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.sp-toggles {
  flex-wrap: wrap;
}
@media (max-width: 900px) {
  .sp-main {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 640px) {
  .sp-search {
    min-width: 0 !important;
  }
  .sp-field {
    flex: 1 1 100%;
    min-width: 0;
  }
  .sp-field input[type="text"],
  .sp-field select {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
}

/* Phone browse lists: full-width card rows (desktop table unchanged above 430px). */
@media (max-width: 430px) {
  .sp-listwrap .sp-scroll {
    overflow-x: visible;
  }
  .sp-listwrap table.sp-table thead {
    display: none;
  }
  .sp-listwrap table.sp-table,
  .sp-listwrap table.sp-table tbody {
    display: block;
    width: 100%;
  }
  .sp-listwrap table.sp-table tbody tr.sprow {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border-top: 1px solid var(--line);
  }
  .sp-listwrap table.sp-table tbody tr.sprow td {
    display: block;
    width: 100%;
    border: none;
    padding: 0;
    vertical-align: top;
    box-sizing: border-box;
  }
  .sp-listwrap table.sp-table tbody tr.sprow td:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    margin-bottom: 4px;
  }
  .sp-listwrap table.sp-table tbody tr.sprow td:not(:first-child) {
    display: inline;
    font-size: 12px;
    color: var(--muted);
    vertical-align: baseline;
    padding-right: 0.15rem;
  }
  .sp-listwrap table.sp-table tbody tr.sprow td:not(:first-child)::after {
    content: " · ";
    color: var(--muted);
  }
  .sp-listwrap table.sp-table tbody tr.sprow td:last-child::after {
    content: "";
  }
  .sp-listwrap table.sp-table tbody tr.sprow td.sp-col-num {
    text-align: left;
    width: auto;
  }
}
