.komia-bus-marker {
  display: flex; align-items: center; justify-content: center; gap: 3px; position:relative;
  min-width: 44px; min-height: 48px; max-width: 98px; padding: 6px 7px 13px;
  background: #ffda24; color: #171b22; border: 0; border-radius: 0;
  clip-path: polygon(50% 100%, 13% 65%, 5% 48%, 5% 27%, 18% 7%, 50% 1%, 82% 7%, 95% 27%, 95% 48%, 87% 65%);
  filter: drop-shadow(0 2px 2px #0009); cursor: pointer;
  font: 800 15px/1.15 system-ui, sans-serif;
}
.komia-bus-marker svg { width: 20px; height: 24px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.komia-bus-marker span { overflow-wrap: anywhere; }
.komia-bus-marker:hover { background: #ffe974; }
.komia-bus-marker:focus-visible { outline: 3px solid #005fcc; outline-offset: 3px; }
.komia-bus-popup .maplibregl-popup-content { background: #fff; color: #17202b; padding: 18px 24px 16px 16px; border-radius: 10px; }
.komia-bus-card { font: 14px/1.5 system-ui, sans-serif; overflow-wrap: anywhere; }
.komia-bus-card strong { font-size: 17px; }
.komia-bus-card p { margin: 7px 0; }
.komia-bus-card small { display: block; color: #485260; }
.komia-bus-popup .maplibregl-popup-close-button { color: #17202b; font-size: 24px; min-width: 32px; min-height: 32px; }
.komia-live-alert { position:absolute; z-index:4; top:10px; left:10px; max-width:260px; min-height:38px; padding:8px 11px; border:1px solid #9b6200; border-radius:8px; background:#fff0bc; color:#402600; box-shadow:0 2px 7px #0005; cursor:pointer; font:700 13px/1.25 system-ui,sans-serif; animation:komia-alert-pulse 1.8s ease-in-out infinite; }
.komia-live-alert:focus-visible { outline:3px solid #005fcc; outline-offset:2px; }
@keyframes komia-alert-pulse { 50% { box-shadow:0 2px 7px #0005,0 0 0 4px #ffca3a66; } }

.komia-route-legend { position:absolute; top:10px; right:64px; left:auto; z-index:3; margin:0; pointer-events:auto; width: 300px; max-width: calc(100vw - 76px); background:#fff; color:#17202b; border-radius:8px; box-shadow:0 2px 8px #0004; font:13px/1.4 system-ui,sans-serif; }
.komia-route-legend[hidden] { display:none !important; }
.komia-route-legend summary { padding:12px; cursor:pointer; font-weight:700; }
.komia-route-body { padding:0 12px 12px; max-height:42vh; overflow:auto; overscroll-behavior:contain; }
.komia-route-body p { margin:4px 0 10px; }
.komia-route-body a { color:#005a91; text-decoration:underline; }
.komia-live-heading { display:block; margin:12px 0 5px; }
.komia-live-list { display:grid; gap:5px; margin-bottom:10px; }
.komia-live-list p { margin:0; color:#485260; }
.komia-route-legend .komia-live-route { display:flex; align-items:flex-start; flex-direction:column; width:100%; text-align:left; padding:8px 9px; background:#fff6bd; border-color:#b38a00; }
.komia-live-route strong { font-size:14px; }.komia-live-route span { font-size:12px; font-weight:500; margin-top:2px; }
.komia-stop-option { display:flex; align-items:center; gap:7px; min-height:36px; margin:10px 0 4px; font-weight:700; cursor:pointer; }
.komia-stop-option input { width:16px; height:16px; margin:0; }
.komia-route-row { padding:8px 0; border-top:1px solid #d5dde3; }
.komia-route-row label { display:flex; align-items:center; gap:7px; color:inherit; cursor:pointer; min-height:36px; }
.komia-route-row input[type=checkbox] { width:16px; height:16px; min-width:16px; margin:0; flex:0 0 16px; }
.komia-route-badge { border:3px solid; background:#fff; color:#17202b; min-width:36px; padding:2px 4px; text-align:center; border-radius:6px; font-weight:800; }
.komia-route-row a { display:inline-block; padding:4px 0; margin-left:23px; }
.komia-route-actions { display:flex; gap:8px; margin:10px 0; }
.komia-route-legend button { width:auto; height:auto; padding:7px; background:#edf2f5; color:#17202b; border:1px solid #9eafb9; border-radius:5px; cursor:pointer; }
.komia-route-legend a:focus-visible,.komia-route-legend button:focus-visible,.komia-route-legend summary:focus-visible { outline:2px solid #005fcc; outline-offset:2px; }
@media(max-width:760px){.komia-route-legend{width:270px}.komia-route-body{max-height:32vh}}
