.sbl{--sbl-ink:#111;--sbl-red:#ec0027;--sbl-yellow:#ffe600;--sbl-purple:#7a1cff;color:var(--sbl-ink);font:16px/1.4 Inter,Arial,sans-serif;margin:0 0 28px}
.sbl-kicker{margin:0 0 6px;font:800 13px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#ec0027}
.sbl h2,.sbl h3{margin:0 0 10px;font:900 32px/1 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;letter-spacing:.03em}
.sbl-lede,.sbl-muted,.sbl-meta,.sbl-updated{margin:0 0 14px;color:#444}
.sbl-search,.sbl-board,.sbl-map,.sbl-routes,.sbl-widget,.sbl-nearby{
  background:#fff;border:3px solid #111;border-radius:10px;padding:18px;
  box-shadow:4px 4px 0 #ffe600
}
.sbl-widget{box-shadow:4px 4px 0 #00c2d1}
.sbl-search__form{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.sbl-input,.sbl-filter input,.sbl-map__tools input,.sbl-map__tools select{
  min-height:48px;padding:0 12px;border:2px solid #111;border-radius:8px;font:16px/1 Inter,Arial,sans-serif;flex:1 1 220px;background:#fff
}
.sbl-btn{
  min-height:48px;padding:0 16px;border:2px solid #111;border-radius:8px;background:#ec0027;color:#fff;
  font:800 15px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.05em;text-transform:uppercase;cursor:pointer
}
.sbl-btn--ghost{background:#fff;color:#111}
.sbl-btn:hover{background:#111;color:#fff}
.sbl-results,.sbl-favs__list,.sbl-route-list{list-style:none;margin:0;padding:0}
.sbl-results li,.sbl-favs__list li,.sbl-route-list li{border-bottom:1px solid #eee}
.sbl-results a,.sbl-favs__list a,.sbl-route-list a{
  display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 4px;color:#111;text-decoration:none
}
.sbl-results strong,.sbl-route-list strong{font-weight:800}
.sbl-results span,.sbl-route-list span{grid-column:1;color:#666;font-size:14px}
.sbl-results em{font-style:normal;font:800 12px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.04em;color:#666}
.sbl-results a:hover strong{color:#ec0027}
.sbl-radius,.sbl-windows{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.sbl-radius[hidden],.sbl-status[hidden]{display:none !important}
.sbl-radius button,.sbl-windows button{
  min-height:40px;padding:0 12px;border:2px solid #111;border-radius:999px;background:#fff;font-weight:800;cursor:pointer
}
.sbl-radius button.is-on,.sbl-windows button.is-on{background:#ffe600}
.sbl-board__head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.sbl-board__tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 10px}
.sbl-table-wrap{overflow:auto}
.sbl-table{width:100%;border-collapse:collapse}
.sbl-table th{text-align:left;font:800 12px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:8px 6px;border-bottom:2px solid #111}
.sbl-table td{padding:10px 6px;border-bottom:1px solid #eee;vertical-align:middle}
.sbl-badge{
  display:inline-flex;min-width:42px;justify-content:center;padding:6px 8px;border:2px solid #111;border-radius:6px;
  background:#ffe600;font:900 16px/1 'Barlow Condensed',Impact,sans-serif
}
.sbl-pill{display:inline-block;padding:3px 8px;border-radius:999px;font:800 11px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.05em;text-transform:uppercase}
.sbl-pill--scheduled{background:#eee;color:#111}
.sbl-pill--live{background:#00c2d1;color:#111}
.sbl-pill--delayed{background:#ff7a00;color:#111}
.sbl-pill--cancelled{background:#ec0027;color:#fff}
.sbl-attr{margin:14px 0 0;font-size:12px;color:#666}
.sbl-more{font:800 14px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#ec0027}
.sbl-map__tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.sbl-map__canvas{border:2px solid #111;border-radius:8px;overflow:hidden;background:#eee}
.sbl-status{margin:0 0 10px;color:#ec0027}
.sbl-page{padding:18px 0 40px}
.sbl-routes-on{font-weight:700}
.sbl-map__legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;font-size:13px}
.sbl-map__legend .sbl-bus{display:inline-block;position:relative}
.sbl-map__stage{position:relative;border:2px solid #111;border-radius:8px;overflow:hidden;background:#eee}
.sbl-map__stage .sbl-map__canvas{height:100%;border:0;border-radius:0}
.sbl-map__loading{
  position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;
  background:#fff8;font:800 16px/1 'Barlow Condensed',Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase
}
.sbl-map__loading[hidden]{display:none !important}
.leaflet-container .leaflet-div-icon{background:transparent;border:0}
.leaflet-container .sbl-bus,.sbl-bus{
  position:relative;background:#ffe600;color:#111;border:3px solid #111;border-radius:8px;
  font:900 15px/1 'Barlow Condensed',Impact,sans-serif;
  padding:6px 8px 6px 22px;box-shadow:3px 3px 0 #111;white-space:nowrap
}
.leaflet-container .sbl-bus:before,.sbl-bus:before{
  content:"";position:absolute;left:6px;top:50%;width:10px;height:10px;margin-top:-5px;
  background:#111;border-radius:2px
}
.leaflet-container .sbl-bus.is-live,.sbl-bus.is-live{background:#ec0027;color:#fff}
.leaflet-container .sbl-bus.is-live:before,.sbl-bus.is-live:before{background:#fff}
.leaflet-container .sbl-bus.is-stale,.sbl-bus.is-stale{background:#888;color:#fff}
.leaflet-container .sbl-bus.is-live:after{
  content:"";position:absolute;inset:-6px;border:2px solid #ec0027;border-radius:12px;
  animation:sbl-pulse 1.5s ease-out infinite;pointer-events:none
}
@keyframes sbl-pulse{
  0%{opacity:.7;transform:scale(.92)}
  100%{opacity:0;transform:scale(1.35)}
}
@media (max-width:720px){
  .sbl h2{font-size:28px}
  .sbl-search__form{flex-direction:column}
  .sbl-btn,.sbl-input{width:100%}
  .sbl-table th:nth-child(2),.sbl-table td:nth-child(2){min-width:140px}
}
