/* Both scroll axes share a bounded viewport, including previously unbounded tables. */
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport){
  position:relative;isolation:isolate;max-width:100%;max-height:min(560px,64vh);max-height:min(560px,64svh);
  overflow:auto;overscroll-behavior-x:contain;overscroll-behavior-y:auto;
  -webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#8397a3 #edf1f3;
  --scroll-head-bg:#edf3f6;--scroll-key-bg:#fff;
}
.commute-table-scroll{--scroll-head-bg:#eaf1ed;--scroll-key-bg:#f8faf8}
.reading-table-scroll,.slide-table-scroll{--scroll-head-bg:#eee8dc;--scroll-key-bg:#faf7f1}
.virtual-table-scroll{--scroll-head-bg:#edf2ed;--scroll-key-bg:#f8f7f2}
.table-scroll-viewport{width:100%}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport):focus-visible{outline:2px solid #4d778f;outline-offset:3px}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport) table{margin-bottom:0}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport) table>thead>tr>*{position:sticky;top:0;z-index:2;background:var(--scroll-head-bg)}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport) table>tbody>tr>:first-child{position:sticky;left:0;z-index:1;background:var(--scroll-key-bg)}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport) table>thead>tr>:first-child{left:0;z-index:4}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport,.table-scroll-top)::-webkit-scrollbar{width:13px;height:13px}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport,.table-scroll-top)::-webkit-scrollbar-track{background:#edf1f3}
:is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport,.table-scroll-top)::-webkit-scrollbar-thumb{background:#8397a3;border:3px solid #edf1f3;border-radius:8px}
.table-scroll-toolbar{display:flex;align-items:center;gap:8px;max-width:100%;padding:8px 10px;border:1px solid #d5dfe3;background:#f5f8f9;border-radius:4px 4px 0 0}
.table-scroll-toolbar[hidden]{display:none}
.table-scroll-toolbar + :is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport){margin-top:0}
.table-scroll-arrow{flex:0 0 38px;width:38px;min-height:34px;display:grid;place-items:center;padding:5px;border:1px solid #b9cbd5;border-radius:3px;background:#fff;color:#3b6075;cursor:pointer}
.table-scroll-arrow:disabled{color:#aebac1;border-color:#dbe3e7;background:#f5f8f9;cursor:default}
.table-scroll-arrow:focus-visible,.table-scroll-top:focus-visible{outline:2px solid #4d778f;outline-offset:2px}
.table-scroll-arrow svg{width:19px;height:19px}
.table-scroll-top{flex:1 1 auto;min-width:0;height:22px;overflow-x:scroll;overflow-y:hidden;scrollbar-width:auto;scrollbar-color:#8397a3 #edf1f3;overscroll-behavior-x:contain}
.table-scroll-width{height:1px;pointer-events:none}
@media(max-width:680px){
  :is(.comparison-scroll,.commute-table-scroll,.reading-table-scroll,.virtual-table-scroll,.slide-table-scroll,.table-scroll-viewport){max-height:min(480px,62vh);max-height:min(480px,62svh)}
  .table-scroll-toolbar{gap:7px;padding:7px 8px}.table-scroll-arrow{flex-basis:38px;min-height:38px}
}
