.ndm-map-container{position:relative;width:100%;max-width:900px;overflow:hidden}
#disaster-map-background{position:absolute;inset:0;background:transparent center/100% 100% no-repeat;border-radius:15px;z-index:0}
.ndm-map-container svg{position:relative;width:100%;height:auto;display:block;z-index:1}
.ndm-map-container .state-label{fill:#111;font-size:clamp(10px,1.5vw,20px);text-anchor:middle;pointer-events:none}
.ndm-state-path{cursor:pointer;outline:none;transition:fill .15s ease}
.ndm-state-path:hover,.ndm-state-path:focus-visible,.ndm-state-path.ndm-highlight{stroke:blue!important;stroke-width:3!important;paint-order:stroke}
.ndm-popup[hidden]{display:none!important}
.ndm-popup{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:99999;display:flex;align-items:center;justify-content:center;padding:15px}
.ndm-popup-content{position:relative;background:var(--ndm-popup-bg,#fff);color:var(--ndm-popup-fg,#111);border-radius:12px;padding:22px;width:min(95vw,600px);max-height:85vh;overflow:auto;box-shadow:0 5px 18px rgba(0,0,0,.24)}
.ndm-popup-title{font-size:clamp(20px,3vw,28px);margin:0 30px 12px 0;color:inherit}
.ndm-popup-text{white-space:pre-line;overflow-wrap:anywhere;line-height:1.6;color:inherit}
.ndm-popup-close{position:absolute;right:10px;top:7px;font-size:27px;font-weight:bold;border:0;background:transparent;color:inherit;cursor:pointer;line-height:1.1}
.ndm-compass{width:80px;height:80px;background:url('../images/compass.png') center/contain no-repeat;transform-origin:center;will-change:transform}
.ndm-state-list select{width:100%;padding:10px;font-size:16px;border:1px solid #ccc;border-radius:5px;margin-top:10px}
.ndm-news-carousel{max-width:500px;margin:auto;display:flex;align-items:center;gap:10px;position:relative}
.ndm-news-carousel .news-carousel-wrapper{height:500px;min-width:0;overflow:hidden;position:relative;flex:1}
.ndm-news-list{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:10px;will-change:transform}
.ndm-news-carousel .news-item{padding:15px;border-radius:8px;text-align:left;color:#fff;cursor:pointer;list-style:none}
.ndm-news-carousel .news-item:focus-visible{outline:3px solid #0073aa}
.ndm-news-carousel .news-title{font-size:18px;font-weight:bold;margin:8px 0 5px;color:inherit}
.ndm-news-carousel .news-state{margin:0;color:inherit}
.ndm-news-carousel .news-thumbnail img{width:100%;height:auto;display:block;border-radius:6px}
.ndm-news-placeholder{height:80px;display:block;background:rgba(255,255,255,.15);border-radius:6px}
.ndm-scrollbar-container{width:8px;height:300px;flex-shrink:0}
.ndm-scrollbar-track{position:relative;height:100%;width:100%;background:rgba(200,200,200,.5);border-radius:4px}
.ndm-scrollbar-thumb{position:absolute;top:0;left:0;width:100%;border-radius:4px;background:#0073aa;cursor:grab;touch-action:none}
.ndm-search{display:flex;justify-content:center;margin-bottom:15px}
.ndm-search .search-box{position:relative;display:flex;align-items:center;width:80%;max-width:400px;border-bottom:2px solid #0073aa;padding-bottom:5px}
.ndm-search input{flex:1;min-width:0;border:0;outline:0;font-size:16px;padding:8px;background:transparent}
.ndm-search .search-icon{font-size:20px;color:#0073aa;margin-left:10px}
.disaster-form{max-width:600px;margin:20px auto;padding:20px;background:#fff;box-shadow:0 4px 10px rgba(0,0,0,.1);border-radius:10px}
.disaster-form label{font-weight:bold;margin-top:10px;display:block;color:#333}
.disaster-form .input-field{width:100%;padding:10px;margin:5px 0 15px;border:1px solid #ddd;border-radius:5px;font-size:16px}
.disaster-form .submit-button{background:#ff4d4d;color:#fff;border:0;padding:12px 20px;font-size:18px;cursor:pointer;border-radius:5px;width:100%}
.disaster-form .submit-button:hover{background:#cc0000}
.ndm-message{text-align:center;font-weight:bold}
.incident-banner{width:315px;max-width:100%;background:linear-gradient(90deg,#ff4e00,#ff7300);color:#fff;font-size:14px;text-align:center;padding:10px 15px;display:flex;flex-direction:column;align-items:center;border-radius:6px;box-shadow:0 4px 8px rgba(255,76,0,.4)}
.incident-banner .banner-text{margin:0;font-size:14px;line-height:1.4}
.incident-banner .reward{background:#ffdd57;color:#d0021b;padding:3px 8px;border-radius:4px;font-weight:bold}
.incident-banner .contact-info{margin-top:7px;font-size:14px}
.incident-banner .contact-info a{color:#111;text-decoration:underline;font-weight:600}
@media(max-width:768px){.ndm-compass{width:60px;height:60px}.ndm-news-carousel .news-carousel-wrapper{height:250px}.ndm-scrollbar-container{height:250px;width:6px}.ndm-map-container .state-label{font-size:11px}}
@media(max-width:480px){.ndm-compass{width:50px;height:50px}}
@media(prefers-reduced-motion:reduce){.ndm-state-path{transition:none}}
