:root{--ink:#14211f;--muted:#66736e;--paper:#f4f1e8;--accent:#ef6b45;--line:#d7d5ca}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px system-ui,sans-serif}
body[data-city-ready="false"]>header,body[data-city-ready="false"]>.mobile-tabs,body[data-city-ready="false"]>main,body[data-city-ready="false"]>#planner-page{display:none}.city-gate[hidden]{display:none}
.city-gate{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(420px, .9fr) 1.1fr;align-items:stretch;background:#f5f3eb;overflow:hidden;position:relative}.city-gate-inner{position:relative;z-index:1;max-width:620px;padding:clamp(44px,8vw,110px) clamp(28px,7vw,100px)}.city-gate-top{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:500px}.gate-help{display:inline-flex;align-items:center;gap:8px;min-height:0;padding:5px 14px 5px 5px;border:1px solid #b9c9dd;border-radius:999px;background:#fffdf7;color:#1d4f9c;font-size:13px;font-weight:700;cursor:pointer}.gate-help:hover,.gate-help:focus-visible{border-color:#1d4f9c;background:#eaf2fc}.gate-help-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#1d4f9c;color:#fff;font-size:17px;font-weight:800}.city-gate-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:22px;padding-top:16px;border-top:1px solid #dcdfd4;max-width:500px}.city-gate-links a{color:#4d5f58;font-size:12px;text-underline-offset:3px}.city-gate-links a:hover{color:#1d4f9c}
.city-gate-kicker{display:flex;align-items:center;gap:12px;color:#1d4f9c;font:600 13px ui-monospace,monospace;letter-spacing:1.8px}.city-gate-kicker img{width:44px;height:44px;object-fit:contain}.city-gate h1{font-size:clamp(38px,5vw,68px);line-height:1.18;letter-spacing:-3px;margin:28px 0 16px}.city-gate-lead{font-size:clamp(16px,1.7vw,20px);line-height:1.8;color:#5d6e65}.city-options{display:grid;gap:10px;margin-top:38px;max-width:500px}.city-option{display:flex;align-items:center;gap:14px;text-align:left;padding:15px 17px;background:#fffdf7;border:1px solid #d7ded3;border-radius:12px;box-shadow:0 3px 0 #e5e7dc}.city-option:hover,.city-option:focus-visible{border-color:#287466;background:#eef4ec;transform:translateY(-1px)}.city-option:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.city-option-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#dcece1;color:#23685a;font-size:22px}.city-option b,.city-option small{display:block}.city-option b{font-size:17px}.city-option small{font-size:11px;color:#748278;margin-top:2px}.city-option>span:nth-child(2){flex:1}.city-option-arrow{font-size:11px;color:#3b7669}.city-gate-note{font-size:11px;color:#89948b;margin-top:18px}.city-gate-art{position:relative;min-height:100vh;background:linear-gradient(145deg,#d7ebe4,#9fced1 55%,#6cabb1);overflow:hidden}.city-gate-art:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 62% 27%,#fff8d3 0 10%,transparent 10.5%),linear-gradient(155deg,transparent 0 52%,#356b64 52.3% 61%,#214f4d 61.5% 100%);opacity:.72}.city-art-sun{position:absolute;width:170px;height:170px;border-radius:50%;background:#ffe4a6;top:17%;left:55%;box-shadow:0 0 70px #fff2bd}.city-art-road{position:absolute;right:-8%;bottom:-9%;width:90%;height:65%;background:#e4a875;border-radius:50% 0 0 0;transform:rotate(-14deg);box-shadow:inset 0 0 0 18px #f1c599}.city-art-wave{position:absolute;left:-10%;bottom:10%;width:85%;height:28%;border-radius:50%;border-top:10px solid #e8ffff;transform:rotate(-8deg);opacity:.55}.city-art-bus{position:absolute;z-index:1;right:25%;bottom:28%;width:190px;height:92px;border-radius:20px 26px 12px 12px;background:#e77854;color:#fff8e1;font-size:42px;padding:19px 44px;box-shadow:0 18px 20px #173f3b44;transform:rotate(-7deg)}
header{height:96px;padding:19px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}header span,.detail-panel>p,label,#count,.map-note{font:11px ui-monospace,monospace;letter-spacing:1px;color:var(--muted)}h1{font-size:28px;margin:4px 0}.city-context{display:block;color:#386b62;font-size:11px}h2{margin:5px 0 12px;font-size:26px}h3{font-size:14px;margin:18px 0 8px}
main{height:calc(100vh - 96px);display:grid;grid-template-columns:280px 1fr 340px}.mobile-tabs{display:none}aside{overflow:auto;padding:22px;border-right:1px solid var(--line)}.detail-panel{border-left:1px solid var(--line);border-right:0}.map-wrap{position:relative;min-width:0}#map{height:100%;width:100%}.map-note{position:absolute;right:8px;bottom:3px;background:#fffdf6e8;padding:4px;z-index:500}
input,button,select{font:inherit;border:1px solid var(--line);border-radius:5px;background:#fffdf6;color:var(--ink)}select{width:100%;padding:9px;margin:4px 0 10px}input{width:100%;padding:11px;margin:8px 0}button{min-height:38px;padding:7px 10px;cursor:pointer}button:hover,button:focus-visible{border-color:var(--accent);outline:2px solid transparent}.route,.stop,.variant,.candidate{width:100%;text-align:left;display:block;padding:10px;margin:4px 0}.route.active,.variant[aria-pressed="true"]{background:var(--accent);color:white}.route small,.variant small,.candidate small{display:block;color:var(--muted);margin-top:3px}.route.active small,.variant[aria-pressed="true"] small{color:white}.candidate b{display:flex;justify-content:space-between;align-items:center}.time-badge{font-size:12px;background:#e2e8f0;padding:2px 6px;border-radius:4px;color:#1e293b;font-weight:600}.stop{display:grid;grid-template-columns:32px 1fr;background:transparent;border-width:0 0 1px;border-radius:0}.stop span{color:var(--accent);font-family:ui-monospace,monospace}.meta{line-height:1.6;color:var(--muted)}#live,#arrivals,#results{margin-top:10px;line-height:1.5}.planner{border-top:1px solid var(--line);margin-top:18px}.planner p{margin:5px 0}.bus-marker{background:transparent;border:0}.bus-marker svg{filter:drop-shadow(0 2px 2px #0007)}.status-error{color:#b42318}.status-stale{color:#9a6700}
@media(max-width:900px){header{height:72px;padding:11px 16px}header>div{min-width:0}header p{max-width:185px;font-size:10px;line-height:1.35;text-align:right}h1{font-size:22px;white-space:nowrap}main{height:calc(100vh - 112px);display:block}.mobile-tabs{height:40px;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.mobile-tabs button{border:0;border-radius:0;background:transparent}.mobile-tabs button[aria-pressed="true"]{background:#fffdf6;border-bottom:2px solid var(--accent)}aside,.map-wrap{height:100%;display:none}.detail-panel{border-left:0;padding:16px}body[data-panel="list"] .list-panel,body[data-panel="map"] .map-wrap,body[data-panel="detail"] .detail-panel{display:block}}
@media(max-width:700px){.city-gate{display:block}.city-gate h1{white-space:normal;word-break:keep-all}.gate-help{padding-right:12px}.city-gate-inner{padding:42px 22px 30px}.city-gate h1{font-size:42px;letter-spacing:-2px;margin-top:22px}.city-gate-art{min-height:260px;height:30vh}.city-art-bus{right:20%;bottom:23%;transform:scale(.72) rotate(-7deg);transform-origin:right bottom}.city-art-sun{width:110px;height:110px;top:18%;left:60%}}
@media(min-width:901px){#more{width:100%}}
.route-arrow{background:transparent;border:0;pointer-events:none}.route-arrow span{display:block;color:#a83c19;font-size:22px;line-height:22px;text-shadow:0 0 3px white}

/* Selected routes: registration and map visibility are deliberately separate. */
.selected-routes-panel{margin:-4px -4px 16px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fffdf6}.selected-routes-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.selected-routes-heading .section-badge{margin:0 0 2px}.selected-routes-heading h2{margin:0;font-size:18px}.selected-routes-heading span{padding-top:4px;color:var(--muted);font-size:11px;white-space:nowrap}.selected-routes-actions{display:flex;gap:6px;margin:9px 0 7px}.selected-routes-actions button{min-height:30px;padding:4px 7px;font-size:11px}.selected-routes-empty{margin:8px 0 2px;color:var(--muted);font-size:12px;line-height:1.45}.selected-routes-list{display:grid;gap:6px;max-height:236px;overflow:auto}.selected-route-item{display:grid;grid-template-columns:5px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 6px 7px 0;border:1px solid var(--line);border-radius:5px;background:var(--route-tint,#fff)}.selected-route-color{align-self:stretch;background:var(--route-color);border-radius:4px 0 0 4px}.selected-route-info{min-width:0;border:0;background:transparent;padding:0;text-align:left}.selected-route-info strong,.selected-route-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-route-info small{margin-top:2px;color:var(--muted);font-size:11px}.selected-route-remove{min-height:28px;padding:3px 6px;font-size:13px}.selected-route-visible{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px;font-weight:600;cursor:pointer}.selected-route-visible input{width:auto;margin:0}.variant-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch;margin:4px 0}.variant-row .variant{margin:0}.variant-select{min-height:0;padding:6px 9px;font-size:12px}.variant-select.active{background:#213547;color:white}
.stops-route-context{margin:14px 0 3px;padding:7px 9px;border-left:4px solid var(--accent);background:#fff6f1;color:var(--ink);font-size:12px;font-weight:700}

/* Search & Detail Mode Tabs */
.search-mode-tabs, .detail-mode-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
  background: #eae7dc;
  padding: 3px;
  border-radius: 6px;
}
.mode-tab, .detail-tab {
  flex: 1;
  min-height: 32px;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 600;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--muted);
}
.mode-tab.active, .detail-tab.active {
  background: #fffdf6;
  color: var(--ink);
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Stop Filter Banner */
.stop-filter-banner {
  background: #fffdf6;
  border: 1px solid var(--accent);
  border-radius: 6px;
  padding: 10px;
  margin-bottom: 12px;
}
.filter-banner-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.filter-tag {
  font-size: 11px;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.5px;
}
.btn-text {
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  padding: 2px 4px;
  min-height: auto;
  cursor: pointer;
}
.btn-text:hover {
  color: #b42318;
}
.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fde8e1;
  color: #9a3412;
  font-size: 12px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 12px;
}
.filter-chip button {
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  min-height: auto;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}
.stop-mode-selector {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--muted);
  border-top: 1px dashed var(--line);
  padding-top: 6px;
}
.stop-mode-selector label {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  font: inherit;
}
.stop-mode-selector input[type="radio"] {
  width: auto;
  margin: 0;
}

/* Comparison Legend */
.comparison-legend {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(255, 253, 246, 0.95);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  z-index: 500;
  max-width: 280px;
  backdrop-filter: blur(4px);
}
.legend-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 6px;
  margin-bottom: 8px;
}
.legend-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
}
.legend-items {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.legend-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
}
.legend-item-left {
  display: flex;
  align-items: center;
  gap: 6px;
}
.legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1.5px solid #fff;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
  display: inline-block;
}
.legend-remove {
  border: 0;
  background: transparent;
  color: var(--muted);
  min-height: auto;
  padding: 0 4px;
  font-size: 13px;
  cursor: pointer;
}
.legend-remove:hover {
  color: #b42318;
}
.legend-common-info {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px dashed var(--line);
  font-size: 11px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.legend-common-badge {
  background: #fef3c7;
  color: #92400e;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
}

/* Detail View & Buttons */
.section-badge {
  font: 11px ui-monospace,monospace;
  letter-spacing: 1px;
  color: var(--muted);
  margin-bottom: 4px;
}
.detail-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 5px 0 12px;
  gap: 8px;
}
.detail-title-row h2 {
  margin: 0;
  min-width: 0;
}
.btn-compare-action {
  font-size: 11px;
  padding: 4px 8px;
  min-height: 30px;
  background: #fffdf6;
  border: 1px solid var(--accent);
  color: var(--accent);
  font-weight: 600;
  border-radius: 4px;
  white-space: nowrap;
}
.btn-compare-action.active {
  background: var(--accent);
  color: #fff;
}

/* Stop Actions */
.stop-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  margin: 12px 0;
}
.btn-action {
  font-size: 11px;
  padding: 6px 4px;
  min-height: 32px;
  font-weight: 600;
}

/* Opposite / Same Name Stops */
.opposite-stops {
  background: #f7f5ed;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px 10px;
  margin-bottom: 14px;
  font-size: 12px;
}
.opposite-stops p {
  margin: 0 0 6px 0;
  font-weight: 600;
  color: var(--muted);
  font-size: 11px;
}
.opposite-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.opposite-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fffdf6;
  border: 1px solid var(--line);
  padding: 4px 8px;
  border-radius: 4px;
  cursor: pointer;
}
.opposite-item:hover {
  border-color: var(--accent);
}

/* Stop Routes List */
.stop-routes-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
.stop-route-card {
  background: #fffdf6;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.stop-route-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.stop-route-header-left {
  display: flex;
  align-items: center;
  gap: 6px;
}
.route-badge {
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
.route-type-badge {
  font-size: 10px;
  background: #e2e8f0;
  color: #475569;
  padding: 1px 5px;
  border-radius: 3px;
}
.stop-route-meta {
  font-size: 11px;
  color: var(--muted);
}
.stop-route-next {
  font-size: 12px;
  color: #0f766e;
  background: #f0fdfa;
  border-left: 3px solid #0f766e;
  padding: 3px 6px;
  border-radius: 0 3px 3px 0;
}
.stop-route-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 4px;
}
.stop-route-arrival {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
  background: #f1f5f9;
  padding: 6px 8px;
  border-radius: 4px;
}
.btn-compare-check {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  cursor: pointer;
  user-select: none;
  font-weight: 600;
}
.btn-compare-check input {
  width: auto;
  margin: 0;
}
.btn-view-route {
  font-size: 11px;
  padding: 2px 8px;
  min-height: 26px;
}

/* Common Stops List */
.common-stops-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 8px;
  max-height: 200px;
  overflow-y: auto;
}
.common-stop-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 4px;
  padding: 6px 8px;
  font-size: 12px;
  cursor: pointer;
}
.common-stop-item:hover {
  background: #fef3c7;
}
/* Trip planner: deliberately compact, transit-control-room styling. */
.app-menu { display:flex; gap:4px; margin-left:auto; align-self:end; }
.app-menu-item { border:0; border-bottom:3px solid transparent; background:transparent; padding:10px 13px; font:inherit; cursor:pointer; }
.app-menu-item.active { border-color:#ef6b45; color:#9a3412; font-weight:700; }
.planner-page { min-height:calc(100vh - 110px); display:grid; grid-template-columns:minmax(250px, .75fr) minmax(380px, 1.6fr) minmax(280px, .9fr); background:#f7f4ee; }
.planner-controls,.planner-results { padding:24px; overflow:auto; background:#fffdf9; border-right:1px solid #e5ddd0; }
.planner-results { border-right:0; border-left:1px solid #e5ddd0; }
.planner-controls h2,.planner-results h2 { margin:3px 0 10px; font-size:1.35rem; }
.planner-help { color:#665e55; font-size:.9rem; line-height:1.5; }
.planner-controls label { display:block; margin:14px 0 5px; font-size:.8rem; font-weight:700; }
.planner-controls select { width:100%; padding:9px; border:1px solid #d7cec0; background:white; border-radius:5px; }
.planner-points { display:grid; gap:7px; margin:18px 0 10px; }
.planner-point { display:grid; grid-template-columns:30px 1fr auto auto; align-items:center; gap:7px; padding:9px; border:1px solid #e2d8cb; border-radius:6px; background:#fff; }
.planner-point .point-badge { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:#213547; color:#fff; font-size:.73rem; font-weight:bold; }
.planner-point small { display:block; color:#776e64; }
.planner-point button { border:0; background:none; cursor:pointer; color:#8c3520; font-size:.82rem; }
.planner-search,#planner-load-bounds { width:100%; margin-top:18px; padding:12px; border:0; border-radius:5px; background:#e85d3f; color:#fff; font:inherit; font-weight:700; cursor:pointer; }
.planner-map-wrap { position:relative; min-height:580px; }.planner-map-wrap #planner-map { position:absolute; inset:0; }
.planner-map-actions { position:absolute; z-index:500; top:14px; left:14px; padding:8px; background:#fffdf9e8; box-shadow:0 2px 12px #0002; border-radius:5px; }.planner-map-actions button { border:0; padding:8px 10px; background:#213547; color:#fff; cursor:pointer; border-radius:3px; }.planner-map-actions span { display:block; max-width:220px; font-size:.75rem; margin-top:5px; }
.planner-stop-detail { padding:11px; background:#f5efe5; border-left:3px solid #e85d3f; line-height:1.5; }.planner-stop-detail button { margin:5px 4px 0 0; }
.planner-candidate { margin-top:12px; padding:13px; border:1px solid #dfd5c8; border-radius:6px; background:#fff; cursor:pointer; }.planner-candidate.selected { border:2px solid #e85d3f; }.planner-candidate h3 { margin:0 0 6px; font-size:1rem; }.planner-candidate p { margin:4px 0; font-size:.86rem; }.planner-leg { margin-top:7px; padding-top:7px; border-top:1px solid #eee5dc; font-size:.82rem; }.save-route { margin-top:10px; border:0; padding:7px 9px; background:#213547; color:white; border-radius:3px; cursor:pointer; }
.planner-saved { display:grid; gap:7px; }.saved-title { display:flex; align-items:center; justify-content:space-between; }.saved-title h3 { margin:0; }.saved-route { padding:9px; border:1px solid #e2d8cb; background:#fff; border-radius:5px; }.saved-route button { margin:5px 5px 0 0; border:0; background:#eee5dc; padding:4px 6px; cursor:pointer; }
body[data-app-mode="planner"] main, body[data-app-mode="planner"] .mobile-tabs { display:none; }
@media (max-width:900px) { .app-menu { margin-left:0; align-self:auto; }.planner-page { grid-template-columns:1fr; }.planner-map-wrap { min-height:52vh; order:-1; }.planner-controls,.planner-results { border:0; }.planner-results { border-top:1px solid #e5ddd0; } }

.planner-leg.walk { color: #4b5563; font-style: italic; }

.planner-controls input[type="search"] { width:100%; padding:9px; border:1px solid #d7cec0; background:#fff; border-radius:5px; font:inherit; }
.planner-search-status { margin:6px 0 0; min-height:1em; color:#776e64; font-size:.78rem; }
.planner-stop-results { display:grid; gap:5px; max-height:220px; overflow:auto; }
.planner-stop-results:not(:empty) { margin-top:7px; padding:5px; border:1px solid #e2d8cb; border-radius:6px; background:#fff; }
.planner-stop-result { display:block; width:100%; padding:8px 9px; border:0; border-radius:4px; background:none; font:inherit; text-align:left; cursor:pointer; }
.planner-stop-result:hover, .planner-stop-result:focus-visible { background:#f5efe5; }
.planner-stop-result b { display:block; font-size:.9rem; }
.planner-stop-result small { color:#776e64; }

.saved-route b { display:block; }
.saved-route .saved-path { display:block; margin-top:2px; color:#5c5349; }
.saved-route .saved-summary { display:block; margin-top:4px; color:#776e64; font-size:.78rem; line-height:1.45; }
.saved-route .saved-buses { display:block; margin-top:2px; font-size:.78rem; }
.saved-route .saved-when { display:block; margin-top:4px; color:#9a9086; font-size:.72rem; }
.saved-actions { margin-top:6px; }
.save-route[disabled] { background:#8a9aa8; cursor:default; }

.route-link { color:#a83c19; font-weight:700; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.route-link:hover, .route-link:focus-visible { color:#e85d3f; }
.route-link:not([href]) { color:inherit; text-decoration:none; cursor:default; }

.planner-when { margin:6px 0 2px; padding:6px 8px; border-radius:4px; background:#f1f6f1; font-size:.84rem; }
.planner-when.estimated { background:#f5f2ec; color:#776e64; }
.planner-when .when-live { color:#166534; font-size:.95rem; }

/* Explicit display layouts must still honor the selected application mode. */
.planner-page[hidden]{display:none}

/* Public service notices and unobstructed map attribution. */
button.brand-home{display:inline-flex;align-items:center;gap:6px;min-height:0;padding:0 6px 0 0;margin:0;border:0;border-radius:6px;background:transparent;cursor:pointer}button.brand-home img{width:18px;height:18px;object-fit:contain}button.brand-home span{font:600 11px ui-monospace,monospace;letter-spacing:1px;color:#1d4f9c}button.brand-home:hover span,button.brand-home:focus-visible span{text-decoration:underline;text-underline-offset:3px}body>header h1{margin:2px 0}
button.city-context{min-height:0;padding:0;margin:0;border:0;background:transparent;line-height:1.4;text-align:left;white-space:nowrap}button.city-context:hover,button.city-context:focus-visible{color:var(--accent);text-decoration:underline}
.service-notice{display:block;font-size:10px;line-height:1.4;color:#52665d;text-underline-offset:3px;white-space:nowrap}
.journey-notice{padding:10px 12px;background:#f3efe4;border-left:3px solid #9d8156;border-radius:4px;font-size:12px;line-height:1.65;color:#64553e}
.map-note{bottom:25px;max-width:calc(100% - 16px);font-size:10px;letter-spacing:0;pointer-events:none}
.leaflet-control-attribution{font-size:10px!important}
@media(max-width:650px){body>header h1{margin:2px 0}.service-notice{font-size:9px}body>header{padding-top:8px;padding-bottom:8px}}
