* { box-sizing: border-box; }
body { margin: 0; color: #242424; background: #fff; font-family: Calibri, Arial, sans-serif; font-size: 16px; }
main { max-width: 1120px; margin: 32px auto; padding: 0 20px 40px; }
h1 { font-size: 26px; margin-bottom: 24px; }
h2 { font-size: 21px; margin: 0 0 12px; }
h3 { font-size: 18px; }
a { color: #725000; }
label { display: block; font-weight: bold; margin-bottom: 8px; }
.search { display: flex; gap: 10px; max-width: 540px; }
input { flex: 1; min-width: 0; text-transform: uppercase; border: 1px solid #ab8c39; border-radius: 3px; padding: 10px; background: #fff7df; font: inherit; }
button { border: 1px solid #ab8c39; border-radius: 3px; padding: 10px 20px; color: #222; background: #ffc20e; font: inherit; cursor: pointer; }
button:disabled { opacity: .65; cursor: wait; }
input:focus, button:focus, a:focus { outline: 2px solid #825f00; outline-offset: 3px; }
.muted, small { color: #626262; }
.notice { padding: 14px 16px; background: #fff7df; border-left: 4px solid #dfb234; }
.error { background: #fff0ed; border-left-color: #b22e16; }
.journey { margin: 24px 0; padding: 20px 0; border-top: 2px solid #ffc20e; }
.scroll-hint { display: none; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; margin: 14px 0; }
th, td { text-align: left; vertical-align: top; border: 1px solid #ddd; padding: 10px 12px; }
th { background: #ffde7f; }
th.date-heading span { display: inline; }
th.date-heading span + span::before { content: " "; }
td small { display: block; margin-top: 5px; }
.source-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.source-badge { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 9px; border-radius: 4px; color: #fff; font-size: 13px; font-weight: bold; line-height: 1.2; }
.source-badge.upu { background: #1f66c2; }
.source-badge.local { background: #2f8f3a; }
td.time span { display: inline; }
td.time { min-width: 205px; }
code { font-size: .95em; }
details { margin-top: 12px; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  main { margin-top: 20px; padding: 0 12px 24px; }
  h1 { font-size: 23px; }
  th, td { padding: 8px; }
  .table-wrap {
    overflow-x: scroll;
    scrollbar-gutter: stable;
  }
  .scroll-hint {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 6px;
    padding: 7px 10px;
    border: 1px solid #dfb234;
    border-radius: 4px;
    color: #5c4300;
    background: #fff7df;
    font-size: 14px;
  }
  .scroll-hint span {
    font-weight: bold;
    letter-spacing: 2px;
  }
  table { min-width: 760px; }
  th.date-heading span { display: block; }
  th.date-heading span + span::before { content: ""; }
  td.time span { display: block; }
  td.time { min-width: 138px; }
}
