/* Shared card rhythm. The water section remains the primary local camera section. */
.kh-local-cctv .ct-card[data-source="ddpm"] .ct-shot img{object-fit:contain}
body.kh-local-cctv .news-wrap{max-width:1140px}
body.kh-local-cctv .post{max-width:100%}
.kh-camera-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 22px}.kh-camera-jumps a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid #cee1eb;border-radius:12px;background:#f3f9fc;color:#173c60;font-size:14px;font-weight:700;text-decoration:none}.kh-camera-jumps a:nth-child(2){border-color:#f4c8d2;color:#a7163d;background:#fff5f7}
.kh-camera-tools{margin:10px 0 14px;border:1px solid #e0e8ef;border-radius:12px;background:#f8fafc;padding:0 12px}.kh-camera-tools summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;font-size:13px;font-weight:700;color:#264763;padding:9px 2px;line-height:1.7}.kh-camera-tools[open]{padding-bottom:12px}.kh-camera-tools .ct-bar{margin-top:6px}.kh-camera-tools .kt-cover-control{margin:12px 0 0}
.kh-local-cctv #cctvTh,.kh-local-cctv #khTrafficWall{scroll-margin-top:130px}.kh-local-cctv .ct-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kh-local-cctv .kt-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.kh-local-cctv .ct-card,.kh-local-cctv .kt-card{border:1px solid #dbe5ef;border-radius:14px;box-shadow:0 3px 13px #12304b08;background:#fff;overflow:hidden}.kh-local-cctv .kt-card{padding:0;gap:0;width:100%}.kh-local-cctv .ct-shot,.kh-local-cctv .kt-preview{aspect-ratio:16/9;width:100%;height:auto;margin:0;border-radius:0}.kh-local-cctv .ct-shot img{width:100%;height:100%;object-fit:cover}.kh-local-cctv .ct-info,.kh-local-cctv .kt-card-body{padding:11px 12px;gap:5px}.kh-local-cctv .ct-info strong,.kh-local-cctv .kt-card strong{font-size:15px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kh-local-cctv .kt-card-body>span:not(.kt-card-state):not(.kt-card-action){font-size:12px;line-height:1.5}.kh-local-cctv .ct-info small,.kh-local-cctv .kt-card small{font-size:11px;line-height:1.6}.kh-local-cctv .kt-card-state{font-size:11px;padding:3px 6px}.kh-local-cctv .kt-card .kt-card-action{font-size:12px}.kh-local-cctv .ct-tag{font-size:10px;padding:4px 6px}.kh-local-cctv .ct-own{font-size:10px}.kh-local-cctv .kt-filters{grid-template-columns:1.5fr 1fr 1fr 1fr}
.kh-local-cctv .kh-traffic-source{margin-top:26px;margin-bottom:12px;padding:16px;border-top-width:3px;border-radius:14px;box-shadow:none}.kh-local-cctv .kh-traffic-symbol{width:45px;height:58px;flex-basis:45px;border-radius:12px}.kh-local-cctv .kh-traffic-symbol svg{width:32px;height:44px}.kh-local-cctv .kh-traffic-copy h2{font-size:21px}.kh-local-cctv .kt-wall{padding:14px;border-color:#dbe5ef}.kt-pages{flex-wrap:wrap}.kt-pages button{min-height:44px}
.kt-location-card{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;padding:38px 16px 42px;gap:5px;background:linear-gradient(135deg,#f1f6fb,#e2edf4);color:#163b58}.kt-location-card .kt-location-icon{position:absolute;right:15px;top:14px;color:#be123c;opacity:.85}.kt-location-icon svg{width:19px;height:26px}.kt-location-card strong{max-width:72%;font-size:15px;line-height:1.5}.kt-location-card small{font-size:11px;color:#4d687d}.kt-location-card[hidden]{display:none}.kt-preview:not(.has-image) .kt-preview-play{left:auto;right:14px;top:48%;transform:translateY(-50%);width:35px;height:35px;font-size:14px;box-shadow:0 3px 8px #172d4820}.kt-preview:not(.has-image) .kt-preview-cta{display:none}.kt-preview:not(.has-image) .kt-preview-caption{background:transparent;color:#4d687d;text-align:left;padding:5px 12px;font-size:10px}.kt-preview.has-image .kt-preview-caption{font-size:10px;line-height:1.5}.kt-preview-tag{font-size:10px;padding:3px 7px}.kt-photo-credit{font-size:11px!important}.kt-photo-credit a{color:#225381}
:root[data-traffic-cover=night] .kt-location-card{background:linear-gradient(135deg,#142c44,#284d66);color:#fff}:root[data-traffic-cover=night] .kt-location-card small,:root[data-traffic-cover=night] .kt-preview:not(.has-image) .kt-preview-caption{color:#d5e4ef}.kt-preview.has-image>img{filter:none!important}
@media(max-width:1023px){.kh-local-cctv .ct-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.kh-local-cctv .kt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kh-local-cctv .kt-filters{grid-template-columns:1fr 1fr}.kh-local-cctv .kh-traffic-actions{padding-left:0}}
@media(max-width:640px){.kh-local-cctv .ct-grid,.kh-local-cctv .kt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kh-local-cctv .kt-wall{padding:9px}.kh-local-cctv .ct-info,.kh-local-cctv .kt-card-body{padding:9px}.kh-local-cctv .ct-info strong,.kh-local-cctv .kt-card strong{font-size:13px}.kh-local-cctv .kt-card small{font-size:10px}.kh-local-cctv .kt-card-state{font-size:10px}.kh-local-cctv .kt-card .kt-card-action{font-size:11px}.kh-local-cctv .kt-grid .kt-location-card{padding:31px 10px 23px}.kh-local-cctv .kt-grid .kt-location-card strong{font-size:11px;max-width:73%;line-height:1.4}.kh-local-cctv .kt-grid .kt-location-card small{display:none}.kh-local-cctv .kt-grid .kt-preview-caption{font-size:8px;padding:3px 7px}.kh-local-cctv .kt-grid .kt-preview-play{width:28px;height:28px;right:8px;font-size:11px}.kh-local-cctv .kt-grid .kt-location-icon{right:9px;top:8px}.kh-local-cctv .kt-grid .kt-location-icon svg{width:13px;height:20px}.kh-local-cctv .kt-grid .kt-preview-tag{font-size:9px;left:7px;top:7px}.kh-local-cctv .kt-filters{grid-template-columns:1fr}.kh-camera-jumps{gap:6px}.kh-camera-jumps a{font-size:12px;padding:7px 10px}.kh-local-cctv .ct-chips{gap:5px}.kh-local-cctv .ct-chips button{min-height:40px;font-size:11px}}
@media(max-width:380px){.kh-local-cctv .ct-grid,.kh-local-cctv .kt-grid{grid-template-columns:1fr}.kh-local-cctv .kt-grid .kt-location-card strong{font-size:15px}.kh-local-cctv .kt-grid .kt-preview-caption{font-size:10px}}
/* 1.21: a real photo when supplied, otherwise a clear dark player cover. */
.kt-location-card{padding:36px 16px 38px;background:linear-gradient(120deg,#0c1526,#172838);color:#fff;justify-content:center;gap:4px}.kt-location-card strong{max-width:65%;color:#fff!important;font-size:16px}.kt-location-card small{color:#c4d6e8!important}.kt-location-card .kt-location-icon{display:none}.kt-preview-type{position:absolute;right:8px;top:9px;z-index:3;border:1px solid #e7ba6766;border-radius:5px;padding:2px 6px;color:#ffe0a0;background:#1b263ddd;font-size:10px;line-height:1.5}.kt-preview:not(.has-image) .kt-preview-play{right:15px;top:50%;width:46px;height:46px;font-size:19px;border-color:#fff;box-shadow:0 2px 12px #0004}.kt-preview:not(.has-image) .kt-preview-caption{color:#dfebf5;background:#071321b8;font-size:11px;padding:5px 11px}.kt-stage-play .kt-location-card strong{font-size:clamp(17px,2.5vw,28px)}.kt-stage-play .kt-location-card small{font-size:14px}.kt-stage-play .kt-preview:not(.has-image) .kt-preview-play{width:62px;height:62px;font-size:25px;right:9%}.kt-stage-play .kt-preview-caption{font-size:13px!important}.kt-stage-play .kt-preview-type{font-size:12px}.kt-loading-cover{position:absolute;inset:0;pointer-events:none;z-index:2}.kt-loading-cover>.kt-preview{height:100%}.kt-loading-cover .kt-preview-play{display:none}.kt-loading-cover .kt-preview-caption{visibility:hidden}.kt-loading-text{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);white-space:nowrap;border-radius:8px;padding:8px 14px;background:#13213eee;color:white;font:600 14px var(--f-body,sans-serif)}.kt-loading-text:before{content:'';display:inline-block;vertical-align:-2px;width:13px;height:13px;margin-right:8px;border:2px solid #ffffff55;border-top-color:white;border-radius:50%;animation:kt-connect .9s linear infinite}@keyframes kt-connect{to{transform:rotate(360deg)}}
@media(max-width:640px){.kh-local-cctv .kt-grid .kt-location-card{padding:29px 9px 23px}.kh-local-cctv .kt-grid .kt-location-card strong{max-width:68%;font-size:11px}.kh-local-cctv .kt-grid .kt-preview-play{width:29px;height:29px;right:8px;font-size:12px}.kh-local-cctv .kt-grid .kt-preview-type{font-size:8px;padding:1px 4px;right:6px;top:7px}.kh-local-cctv .kt-grid .kt-preview-caption{font-size:8px}.kt-stage-play .kt-preview:not(.has-image) .kt-preview-play{width:44px;height:44px;font-size:18px;right:15px}.kt-stage-play .kt-location-card{padding:36px 12px 30px}.kt-stage-play .kt-location-card strong{font-size:16px;max-width:72%}.kt-stage-play .kt-preview-caption{font-size:11px!important}}
@media(max-width:380px){.kh-local-cctv .kt-grid .kt-location-card strong{font-size:15px}.kh-local-cctv .kt-grid .kt-preview-play{width:43px;height:43px;font-size:18px}.kh-local-cctv .kt-grid .kt-preview-caption{font-size:10px}.kh-local-cctv .kt-grid .kt-preview-type{font-size:10px}}
@media(prefers-reduced-motion:reduce){.kt-loading-text:before{animation:none}}
