.kfm-live-block{--kfm-green:#1f9d55;--kfm-yellow:#e6a700;--kfm-red:#d93c3c;--kfm-ink:#15171a;--kfm-muted:#69707a;margin:28px 0}.kfm-live-title{display:flex;gap:14px;align-items:center;margin-bottom:18px}.kfm-live-title>span{font-size:34px}.kfm-live-title h2{margin:0;font-size:clamp(24px,3vw,36px);line-height:1.05}.kfm-live-title p{margin:5px 0 0;color:var(--kfm-muted)}.kfm-live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.kfm-live-card{position:relative;background:#fff;border:1px solid rgba(20,25,30,.09);border-radius:18px;padding:14px 15px;box-shadow:0 10px 30px rgba(15,23,42,.07);overflow:hidden}.kfm-live-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:#cbd5e1}.kfm-live-card h3{font-size:18px;line-height:1.15;margin:10px 0 4px}.kfm-live-card p{margin:3px 0}.kfm-live-card-top{display:flex;gap:9px;align-items:center;font-size:14px}.kfm-live-dot{width:12px;height:12px;border-radius:50%;background:#cbd5e1;box-shadow:0 0 0 5px rgba(148,163,184,.15)}.kfm-vvk-available:before,.kfm-vvk-available .kfm-live-dot,.kfm-loc-green:before{background:var(--kfm-green)}.kfm-vvk-low:before,.kfm-vvk-low .kfm-live-dot,.kfm-loc-yellow:before{background:var(--kfm-yellow)}.kfm-vvk-soldout:before,.kfm-vvk-soldout .kfm-live-dot,.kfm-loc-red:before{background:var(--kfm-red)}.kfm-vvk-soon:before,.kfm-vvk-soon .kfm-live-dot,.kfm-loc-stale:before{background:#a6adb6}.kfm-live-address,.kfm-live-meta,.kfm-live-note{color:var(--kfm-muted);font-size:13px;line-height:1.35}.kfm-live-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;color:var(--kfm-muted);font-size:13px}.kfm-live-legend span{display:flex;align-items:center;gap:6px}.kfm-live-legend i{width:10px;height:10px;border-radius:50%;background:#aaa}.kfm-live-legend i.available{background:var(--kfm-green)}.kfm-live-legend i.low{background:var(--kfm-yellow)}.kfm-live-legend i.soldout{background:var(--kfm-red)}.kfm-live-legend i.soon{background:#a6adb6}.kfm-live-status-emoji{font-size:17px}.kfm-live-loading,.kfm-live-error{padding:18px;border-radius:14px;background:#f4f5f7;color:var(--kfm-muted)}.kfm-bus-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.kfm-bus-card{background:#15171a;color:#fff;border-radius:18px;padding:16px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 10px 30px rgba(15,23,42,.14)}.kfm-bus-card h3{margin:0 0 3px;color:#fff}.kfm-bus-card p{margin:4px 0 0;color:#d1d5db;font-size:13px}.kfm-bus-icon{font-size:32px;white-space:nowrap}.kfm-shuttle-map{height:460px;border-radius:20px;overflow:hidden;background:#eef1f4;border:1px solid rgba(20,25,30,.08)}.kfm-bus-divicon{background:transparent!important;border:0!important}.kfm-bus-marker{font-size:24px;background:#fff;border-radius:15px;padding:6px 8px;box-shadow:0 6px 18px rgba(0,0,0,.25);white-space:nowrap;border:2px solid #111;transform:translateZ(0)}.kfm-bus-marker.shuttle{font-size:21px}.kfm-shuttle-block .leaflet-control-attribution{font-size:10px}@media(max-width:680px){.kfm-bus-cards{grid-template-columns:1fr}.kfm-shuttle-map{height:390px}.kfm-live-grid{grid-template-columns:1fr 1fr}.kfm-live-card{padding:13px}.kfm-live-card h3{font-size:17px}}@media(max-width:430px){.kfm-live-grid{grid-template-columns:1fr}}
