:root{color:#1f2933;background:#f3f5f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,a{font:inherit}.app-shell{height:100vh;overflow:hidden}.ews-context{color:#1f2933;background:#fbfbf8;border-top:1px solid #d8ded6;padding:42px 22px}.ews-context-inner{width:100%}.ews-context h2,.ews-context h3{margin:0;line-height:1.1}.ews-context h2{font-size:clamp(2rem,4vw,3.1rem)}.ews-context p{color:#60736c;line-height:1.65}.ews-context a{color:#2f6f73;font-weight:900}.ews-context-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0;display:grid}.ews-context-grid article{background:#fff;border:1px solid #d8ded6;border-radius:8px;padding:16px}.site-footer{color:#1f2933;background:#e7ece7;border-top:1px solid #cfd7cb;padding:20px 22px}.site-footer-inner{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.site-footer strong{font-size:1.05rem}.footer-link,.footer-links{color:#60736c;text-align:center;margin:0;font-weight:800}.footer-link a,.footer-links a{color:#2f6f73;font-weight:900}.footer-links{flex-wrap:wrap;justify-content:center;gap:8px 14px;display:flex}.legal-header{color:#1f2933;background:#fbfbf8;border-bottom:1px solid #d8ded6;justify-content:flex-start;padding:18px 22px;display:flex}.legal-header a{color:#2f6f73;font-weight:900;text-decoration:none}.legal-header a:hover{text-decoration:underline}.legal-page{color:#1f2933;background:#fbfbf8;min-height:calc(100vh - 57px);padding:42px 22px}.legal-card{background:#fff;border:1px solid #d8ded6;border-radius:12px;max-width:920px;margin:0 auto;padding:clamp(22px,5vw,46px)}.legal-card.narrow{max-width:720px}.legal-card h1,.legal-card h2{margin:0;line-height:1.1}.legal-card h1{font-size:clamp(2rem,5vw,3rem)}.legal-card h2{margin-top:28px;font-size:1.25rem}.legal-card p,.legal-card li{color:#60736c;line-height:1.7}.legal-card a{color:#2f6f73;font-weight:900}.legal-effective{margin-top:32px;font-weight:900}.deletion-form{gap:16px;margin-top:28px;display:grid}.deletion-form label{color:#1f2933;gap:7px;font-weight:900;display:grid}.deletion-form input,.deletion-form textarea{color:#1f2933;background:#fbfbf8;border:1px solid #cfd7cb;border-radius:8px;width:100%;padding:11px 12px}.deletion-form button{color:#fff;cursor:pointer;background:#2f6f73;border:0;border-radius:8px;justify-self:start;min-height:42px;padding:10px 16px;font-weight:900}.deletion-form button:disabled{opacity:.65;cursor:wait}.form-error,.form-success{border-radius:8px;margin:0;padding:12px;font-weight:800}.form-error{color:#7c2d12;background:#fff7ed;border:1px solid #fed7aa}.form-success{color:#176b55;background:#edf7f1;border:1px solid #b7dec8}.supporters{color:#60736c;justify-content:flex-end;align-items:center;gap:12px;min-width:0;font-weight:800;display:flex}.supporter-list{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.supporter-list span{color:#1f2933;background:#fbfbf8;border:1px solid #cfd7cb;border-radius:8px;align-items:center;gap:7px;min-height:34px;padding:6px 9px;font-size:.84rem;display:inline-flex}.supporter-list b{color:#fff;background:#2f6f73;border-radius:6px;place-items:center;width:24px;height:24px;font-size:.68rem;display:grid}.sticky-ad{z-index:1400;justify-items:end;gap:8px;max-width:calc(100vw - 36px);display:grid;position:fixed;bottom:18px;right:18px}.sticky-ad-controls{gap:8px;display:inline-flex}.sticky-ad-controls button{color:#1f2933;cursor:pointer;background:#fbfbf8;border:1px solid #cfd7cb;border-radius:8px;place-items:center;width:36px;height:36px;display:grid;box-shadow:0 8px 22px #1f293329}.sticky-ad-frame{background:#fff;border:1px solid #cfd7cb;border-radius:8px;width:min(728px,100vw - 36px);min-height:90px;overflow:hidden;box-shadow:0 12px 30px #1f29332e}.sticky-ad.collapsed .sticky-ad-frame{display:none}.workspace{grid-template-columns:minmax(300px,360px) minmax(420px,1fr) minmax(300px,380px);align-items:stretch;height:100vh;display:grid;overflow:hidden}.workspace.no-detail{grid-template-columns:minmax(300px,380px) minmax(420px,1fr)}.workspace.road-view:not(.no-detail){grid-template-columns:minmax(300px,380px) minmax(420px,1fr) minmax(300px,380px)}.mobile-header,.mobile-event-strip,.mobile-header-actions{display:none}.sidebar,.detail{background:#fbfbf8;border-color:#d8ded6;padding:22px}.sidebar{border-right:1px solid #d8ded6;flex-direction:column;min-height:0;display:flex;overflow:hidden}.detail{border-left:1px solid #d8ded6}.masthead{justify-content:space-between;align-items:center;gap:14px;display:flex}.eyebrow{color:#60736c;letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.76rem;font-weight:700}h1,h2{margin:0;line-height:1.05}h1{font-size:2rem}h2{font-size:1.4rem}.icon-button{color:#1f2933;cursor:pointer;background:#eef2e9;border:1px solid #cfd7cb;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.icon-button.active{color:#fff;background:#2f6f73;border-color:#2f6f73}.mobile-donation-button{color:#245346;text-align:left;cursor:pointer;background:#edf7f1;border:1px solid #b7dec8;border-radius:8px;gap:1px;min-height:38px;padding:5px 9px;font-weight:900;line-height:1.15;display:grid}.mobile-donation-button span{color:#60736c;font-size:.62rem}.mobile-donation-button strong{align-items:center;gap:5px;font-size:.78rem;display:inline-flex}.muted,.error{color:#60736c;margin:4px 0 0}.error{color:#a52a1f}.event-list{gap:10px;min-height:0;padding-right:4px;display:grid;overflow:auto}.pagination{color:#60736c;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:12px;font-size:.82rem;font-weight:800;display:grid}.pagination button{color:#1f2933;cursor:pointer;min-height:34px;font:inherit;background:#fff;border:1px solid #d8ded6;border-radius:8px;padding:7px 10px}.pagination button:last-child{justify-self:end}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{text-align:center;white-space:nowrap}.view-menu{background:#eef2e9;border:1px solid #d8ded6;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:22px 0 14px;padding:4px;display:grid}.view-menu button{color:#60736c;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:54px;padding:7px 6px;font-weight:800;display:flex}.view-menu span{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;line-height:1.2;display:block;overflow:hidden}.view-menu strong{color:#1f2933;text-align:center;background:#dfe8dc;border-radius:999px;min-width:24px;padding:2px 7px;font-size:.8rem}.view-menu button.active{color:#1f2933;background:#fff;box-shadow:0 1px 3px #1f29331f}.date-filter{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.date-filter label{color:#60736c;gap:5px;font-size:.78rem;font-weight:800;display:grid}.date-filter input,.date-filter select{color:#1f2933;background:#fff;border:1px solid #cfd7cb;border-radius:8px;width:100%;min-height:36px;padding:7px 8px}.date-filter .filter-location-field{grid-column:1/-1}.date-filter div{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;display:grid}.date-filter button{color:#fff;cursor:pointer;background:#2f6f73;border:0;border-radius:8px;min-height:36px;font-weight:800}.date-filter button.secondary{color:#1f2933;background:#eef2e9;border:1px solid #cfd7cb}.filter-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.filter-row span{color:#60736c;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.86rem;font-weight:700;overflow:hidden}.shortcut-button{color:#1f2933;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #d8ded6;border-radius:8px;min-height:34px;padding:7px 10px;font-weight:800}.road-view-button{color:#1f2933;text-align:left;cursor:pointer;background:#fff;border:1px solid #d8ded6;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:42px;margin-bottom:12px;padding:9px 12px;font-weight:900;display:flex}.road-view-button.active{color:#7a2b1f;background:#fff7ed;border-color:#d44721;box-shadow:0 0 0 2px #d447211f}.road-view-button strong{color:#1f2933;text-align:center;background:#eef2e9;border-radius:999px;min-width:28px;padding:3px 8px;font-size:.82rem}.donation-button{color:#245346;text-align:left;backdrop-filter:blur(8px);cursor:pointer;background:#edf7f1f5;border:1px solid #b7dec8;border-radius:8px;align-self:start;gap:3px;width:max-content;max-width:230px;min-height:52px;padding:9px 10px;font-weight:900;line-height:1.25;display:grid}.donation-button svg{flex:none}.donation-button span{min-width:0}.donation-button-kicker{color:#60736c;font-size:.72rem}.donation-button-label{align-items:center;gap:7px;font-size:.82rem;line-height:1.25;display:inline-flex}.donation-button:hover{background:#e1f0e8;border-color:#8fc8aa}.location-button{color:#fff;cursor:pointer;background:#2f6f73;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;width:100%;min-height:38px;margin-bottom:12px;font-weight:800;display:inline-flex}.location-button:disabled{opacity:.7;cursor:wait}.event-row{text-align:left;color:#1f2933;cursor:pointer;background:#fff;border:1px solid #d8ded6;border-radius:8px;gap:8px;width:100%;padding:14px;display:grid}.event-row.active,.event-row:hover{border-color:#d44721;box-shadow:0 0 0 2px #d447211f}.event-row.impacted,.mobile-event-strip button.impacted{background:#fff7ed;border-color:#9f2f24;box-shadow:0 0 0 2px #9f2f2424}.empty-state,.mobile-empty{color:#60736c;background:#fff;border:1px dashed #cfd7cb;border-radius:8px;padding:14px}.empty-state strong{color:#1f2933;display:block}.empty-state p{margin:5px 0 0;line-height:1.45}.event-title{font-weight:800}.event-meta,.detail-line{color:#60736c;align-items:center;gap:7px;font-size:.9rem;display:flex}.danger-text{color:#9f2f24;font-weight:800}.map-panel{min-width:0;min-height:100vh;position:relative}.map-overlay-stack{z-index:500;grid-template-columns:minmax(0,360px) auto;align-items:start;gap:8px;max-width:calc(100% - 36px);display:inline-grid;position:absolute;top:18px;left:18px}.map-legend{backdrop-filter:blur(8px);background:#fbfbf8f0;border:1px solid #d8ded6;border-radius:8px;gap:8px;width:100%;padding:12px 14px;display:grid}.map-legend strong{font-size:.92rem}.map-legend div{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:grid}.map-legend p{color:#60736c;margin:0;font-size:.78rem;line-height:1.35}.legend-note{color:#60736c;font-size:.78rem;line-height:1.35}.legend-swatch{border-radius:999px;width:12px;height:12px}.legend-swatch.high{background:#d44721}.legend-swatch.medium{background:#f28c28}.legend-swatch.low{background:#f4c542}.legend-swatch.closed-road{background:#d44721}.post-link{color:#fff;white-space:nowrap;background:#2f6f73;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:9px 11px;text-decoration:none;display:inline-flex}.detail-actions{flex-wrap:wrap;gap:8px;display:flex}.share-button{cursor:pointer;border:0}.map{width:100%;height:100vh}.event-marker-icon,.event-marker-icon.impacted{filter:none}.event-marker-icon.selected{filter:hue-rotate(155deg)saturate(2.4)brightness(.95)drop-shadow(0 0 5px #d447216b)}.modal-backdrop{z-index:1200;background:#1f293352;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.date-modal{background:#fbfbf8;border:1px solid #d8ded6;border-radius:8px;gap:16px;width:min(420px,100%);padding:18px;display:grid;box-shadow:0 18px 44px #1f293338}.date-modal header,.share-modal header,.store-modal header,.donation-modal header{justify-content:space-between;align-items:center;gap:12px;display:flex}.date-modal .date-filter{margin-bottom:0}.share-modal{background:#fbfbf8;border:1px solid #d8ded6;border-radius:8px;gap:16px;width:min(520px,100%);padding:18px;display:grid;box-shadow:0 18px 44px #1f293338}.share-modal textarea{resize:vertical;color:#1f2933;width:100%;min-height:220px;font:inherit;background:#fff;border:1px solid #cfd7cb;border-radius:8px;padding:12px;line-height:1.5}.share-modal-actions{justify-content:flex-end;gap:8px;display:flex}.share-modal-actions button{color:#fff;cursor:pointer;background:#2f6f73;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 12px;font-weight:800;display:inline-flex}.share-modal-actions .secondary{color:#1f2933;background:#eef2e9;border:1px solid #cfd7cb}.store-modal{background:#fbfbf8;border:1px solid #d8ded6;border-radius:8px;gap:16px;width:min(520px,100%);padding:18px;display:grid;box-shadow:0 18px 44px #1f293338}.donation-modal{background:#fbfbf8;border:1px solid #d8ded6;border-radius:8px;gap:16px;width:min(480px,100%);max-height:calc(100vh - 36px);padding:18px;display:grid;overflow:auto;box-shadow:0 18px 44px #1f293338}.store-modal h2,.store-modal p,.donation-modal h2,.donation-modal p{margin:0}.store-modal h2,.donation-modal h2{max-width:360px;font-size:1.32rem}.store-modal p,.donation-modal p{color:#374151;line-height:1.55}.donation-modal img{background:#fff;border:1px solid #d8ded6;border-radius:8px;justify-self:center;width:min(100%,360px);height:auto}.store-dialog-check{color:#60736c;align-items:center;gap:9px;width:fit-content;font-size:.9rem;font-weight:800;display:inline-flex}.store-dialog-check input{accent-color:#d44721;width:18px;height:18px;margin:0}.store-modal-actions{justify-content:flex-end;gap:8px;display:flex}.donation-modal-actions{justify-content:flex-end;display:flex}.store-modal-actions a,.store-modal-actions button,.donation-modal-actions button{color:#fff;cursor:pointer;background:#2f6f73;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 12px;font-weight:800;text-decoration:none;display:inline-flex}.store-modal-actions .secondary,.donation-modal-actions .secondary{color:#1f2933;background:#eef2e9;border:1px solid #cfd7cb}.detail{align-content:start;gap:16px;height:100vh;min-height:0;display:grid;overflow:auto}.levels{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.risk-card{color:#245346;background:#e7f2eb;border:1px solid #b8d7c6;border-radius:8px;grid-template-columns:auto 1fr;gap:10px;padding:12px;display:grid}.risk-card.danger{color:#81291f;background:#f9e3dc;border-color:#efb8a8}.risk-card strong,.risk-card span{display:block}.risk-card span,.risk-card p{margin:4px 0 0;line-height:1.45}.risk-card p{color:inherit}.levels div{background:#eef2e9;border:1px solid #0000;border-radius:8px;padding:12px 10px}.levels .high{background:#f9e3dc;border-color:#efb8a8}.levels .medium{background:#fde8cf;border-color:#f4c08a}.levels .low{background:#fff4c2;border-color:#e3c75f}.levels .outside{background:#eef2e9;border-color:#d8ded6}.levels span{font-weight:900;display:block}.levels p,.levels small{color:#60736c;margin:4px 0 0;font-size:.84rem;display:block}.levels small{line-height:1.3}.caption{color:#374151;margin:0;line-height:1.55}.keywords{flex-wrap:wrap;gap:8px;display:flex}.keywords span{color:#7a2b1f;background:#f8ddd1;border-radius:999px;padding:6px 8px;font-size:.82rem;font-weight:700}.faq-section{gap:10px;padding-top:4px;display:grid}.faq-section h3{margin:0;font-size:1.08rem}.faq-section details{background:#fff;border:1px solid #d8ded6;border-radius:8px;padding:11px 12px}.faq-section summary{cursor:pointer;font-weight:800}.faq-section p{color:#374151;margin:8px 0 0;line-height:1.55}.faq-sources{flex-wrap:wrap;gap:8px;display:flex}.faq-sources a{color:#2f6f73;font-weight:800}.admin-shell{background:#f3f5f2;grid-template-columns:minmax(320px,420px) minmax(520px,1fr);min-height:100vh;display:grid}.admin-list{background:#fbfbf8;border-right:1px solid #d8ded6;padding:22px}.admin-header,.admin-editor-header,.admin-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-link,.admin-actions a,.admin-actions button{color:#fff;cursor:pointer;background:#2f6f73;border:0;border-radius:8px;align-items:center;gap:7px;min-height:36px;padding:8px 11px;font-weight:800;text-decoration:none;display:inline-flex}.admin-actions button:last-child{background:#28794f}.admin-actions button:disabled{opacity:.6;cursor:wait}.admin-filters{flex-wrap:wrap;gap:6px;margin:20px 0 14px;display:flex}.admin-filters button{color:#60736c;cursor:pointer;text-transform:capitalize;background:#eef2e9;border:1px solid #d8ded6;border-radius:8px;min-height:34px;padding:7px 10px;font-weight:800}.admin-filters button.active{color:#1f2933;background:#fff;border-color:#d44721}.admin-event-list{gap:10px;display:grid}.admin-event-list button{text-align:left;color:#1f2933;cursor:pointer;background:#fff;border:1px solid #d8ded6;border-radius:8px;gap:6px;width:100%;padding:13px;display:grid}.admin-event-list button.active,.admin-event-list button:hover{border-color:#d44721;box-shadow:0 0 0 2px #d447211f}.admin-event-list span{color:#60736c;font-size:.86rem}.admin-editor{padding:24px}.form-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;margin-top:22px;display:grid}.form-grid label{color:#60736c;gap:7px;font-size:.84rem;font-weight:800;display:grid}.form-grid input,.form-grid select,.form-grid textarea{color:#1f2933;width:100%;min-height:40px;font:inherit;background:#fff;border:1px solid #cfd7cb;border-radius:8px;padding:9px 10px}.form-grid textarea{resize:vertical;line-height:1.5}.span-2{grid-column:1/-1}@media (width<=1120px){.app-shell,.workspace{height:auto;min-height:100vh;overflow:visible}.workspace,.workspace.road-view,.workspace.no-detail{grid-template-columns:320px 1fr}.sidebar{height:100vh}.detail{border-top:1px solid #d8ded6;border-left:0;grid-column:1/-1;height:auto;overflow:visible}.admin-shell{grid-template-columns:1fr}.admin-list{border-bottom:1px solid #d8ded6;border-right:0}}@media (width<=760px){.app-shell{height:auto;overflow:visible}.legal-header{padding:14px}.legal-page{min-height:calc(100vh - 49px);padding:28px 14px}.ews-context{padding:28px 14px}.ews-context-grid{grid-template-columns:1fr;margin:16px 0}.workspace{flex-direction:column;height:auto;min-height:100vh;display:flex;overflow:visible}.site-footer{padding:16px 14px}.site-footer-inner,.supporters{justify-content:stretch;gap:12px;display:grid}.footer-link{text-align:left}.footer-links{text-align:left;justify-content:flex-start;gap:8px;display:grid}.supporter-list{justify-content:flex-start}.sticky-ad{gap:0;max-width:100vw;bottom:0;left:0;right:0}.sticky-ad-frame{border-bottom:0;border-left:0;border-right:0;border-radius:0;width:100vw}.sticky-ad-controls{padding:0 8px 8px}.mobile-header{z-index:800;backdrop-filter:blur(8px);background:#fbfbf8f5;border-bottom:1px solid #d8ded6;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex;position:sticky;top:0}.mobile-header-actions{align-items:center;gap:8px;display:flex}.mobile-header h1{font-size:1.35rem}.sidebar{order:2;height:auto;padding:12px 12px 10px;display:block;overflow:visible}.sidebar .masthead,.sidebar .event-list{display:none}.sidebar,.detail{border:0;max-height:none}.view-menu{margin:0 0 10px}.view-menu button{min-height:58px}.filter-row{margin-bottom:10px}.location-button{white-space:normal;width:100%;margin:0 0 10px;padding:10px 12px;line-height:1.25}.map-panel{order:1;min-height:0}.map{height:58vh;min-height:360px}.map-overlay-stack{grid-template-columns:1fr;width:auto;inset:auto 10px 12px}.map-overlay-stack .donation-button{display:none}.map-legend{padding:10px 12px}.map-legend strong{font-size:.94rem}.map-legend p{font-size:.78rem}.mobile-event-strip{scroll-snap-type:x mandatory;background:#fbfbf8;border-top:1px solid #d8ded6;border-bottom:1px solid #d8ded6;order:3;gap:10px;padding:12px 16px;display:flex;overflow-x:auto}.mobile-event-strip button{text-align:left;color:#1f2933;scroll-snap-align:start;background:#fff;border:1px solid #d8ded6;border-radius:8px;flex:0 0 min(82vw,320px);gap:6px;padding:12px;display:grid}.mobile-event-strip button.active{border-color:#d44721;box-shadow:0 0 0 2px #d447211f}.mobile-event-strip strong{font-size:.92rem;line-height:1.25}.mobile-event-strip span{color:#60736c;font-size:.8rem}.mobile-pagination{scroll-snap-align:start;background:#eef2e9;border:1px solid #d8ded6;border-radius:8px;flex:0 0 min(82vw,320px);align-self:stretch;margin-top:0;padding:10px}.form-grid{grid-template-columns:1fr}.admin-editor-header,.admin-actions{flex-wrap:wrap;align-items:flex-start}.detail{order:4;padding:16px}.modal-backdrop{align-items:end;padding:12px}.date-modal,.share-modal,.store-modal,.donation-modal{width:100%}.share-modal-actions,.store-modal-actions,.donation-modal-actions{grid-template-columns:1fr 1fr;display:grid}.donation-modal-actions{grid-template-columns:1fr}}
