:root{--navy:#012556;--ink:#102a4a;--red:#de0310;--paper:#f5f7fb;--muted:#65778e;--line:#e1e7ef;--blue-pale:#eef3fa;--danger:#df2935;--assault:#875183;--theft:#b77917;--suspicious:#2872b9;--shadow:0 8px 30px #112c4e0b;--radius:20px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:102px}body{margin:0;font-size:14px;line-height:1.55}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button{border:0;background:none;color:inherit}a{color:inherit}img{max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.18;letter-spacing:-.035em}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #2872b9;outline-offset:4px}input,textarea,select{min-width:0}button .icon,a .icon{pointer-events:none}.icon{width:21px;height:21px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skip-link{position:fixed;left:20px;top:-100px;padding:12px 20px;background:var(--navy);color:#fff;z-index:10000;border-radius:10px}.skip-link:focus{top:15px}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1100}.topbar-inner{max-width:1440px;height:91px;padding:0 36px;margin:auto;display:flex;align-items:center;gap:24px}.brand{display:flex;width:179px;flex-shrink:0;align-items:center}.brand img{width:100%;display:block}.brand-divider{width:1px;height:32px;background:var(--line)}.brand-tagline{color:#7a8797;font-size:11px;line-height:1.5;white-space:nowrap}.desktop-nav{display:flex;gap:26px;align-items:center;margin-left:auto;height:100%}.desktop-nav a{font-size:12px;font-weight:650;text-decoration:none;display:flex;gap:8px;align-items:center;height:100%;border-bottom:3px solid transparent;padding-top:3px;white-space:nowrap;color:var(--muted)}.desktop-nav .nav-active{border-bottom-color:var(--red);color:var(--navy)}.desktop-nav a .icon{width:18px;height:18px}.header-actions{display:flex;align-items:center;gap:12px}.primary-btn,.navy-btn,.ghost-btn,.light-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:12px 19px;border-radius:11px;font-weight:700;font-size:12px;line-height:1.4;text-decoration:none;transition:background .18s,transform .18s}.primary-btn{background:var(--red);color:white;box-shadow:0 5px 15px #de03101c}.primary-btn:hover{background:#bf0610;transform:translateY(-1px)}.navy-btn{background:var(--navy);color:white}.navy-btn:hover{background:#0c3b77}.ghost-btn{background:#fff;border:1px solid var(--line)}.ghost-btn:hover{background:var(--blue-pale)}.light-btn{background:#fff;color:var(--navy)}.emergency-btn{color:#b71922;font-weight:650;font-size:12px;display:flex;align-items:center;gap:7px;min-height:44px;padding:6px}.emergency-btn .icon{width:18px;height:18px}.icon-btn{width:40px;height:40px;background:#fff;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;border-radius:11px;flex:none}.icon-btn:hover{background:var(--blue-pale)}.text-btn{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;padding:10px 0;text-align:left}.text-btn:hover{text-decoration:underline}.subtle{color:var(--muted);font-weight:500}.full{width:100%;justify-content:center}.eyebrow{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:1.7px;line-height:1.7}.brand-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--red);margin-right:9px;vertical-align:1px}
main{max-width:1368px;margin:0 auto;padding:0 32px}.intro{padding:35px 0 33px;display:flex;justify-content:space-between;align-items:center;gap:30px}.intro .eyebrow{color:var(--red);margin-bottom:12px}.intro h1{font-size:clamp(25px,2.7vw,40px);font-weight:750;letter-spacing:-1.5px}.intro h1 em{color:var(--red);font-style:normal}.intro-description{color:var(--muted);font-size:13px;margin-top:11px}.intro-action{display:flex;flex-direction:column;gap:11px;align-items:center;flex:none}.intro-action .primary-btn{padding:15px 24px;min-height:52px;font-size:13px}.intro-action>span{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.intro-action>span .icon{width:15px;height:15px}.map-section{scroll-margin-top:95px}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.workspace-title{display:flex;align-items:center;gap:12px}.section-icon{display:flex;align-items:center;justify-content:center;background:white;border:1px solid var(--line);border-radius:12px;width:43px;height:43px}.workspace-title h2{font-size:21px;letter-spacing:-.6px}.workspace-title p{color:var(--muted);font-size:11px;margin-top:5px}.workspace-tools{display:flex;align-items:center;gap:17px}.mode-badge{display:flex;align-items:center;gap:6px;border-radius:100px;background:#e9f2ed;color:#287549;font-size:10px;font-weight:650;padding:5px 10px;white-space:nowrap}.mode-badge:before{content:"";width:5px;height:5px;border-radius:100%;background:currentColor}.mode-badge[data-state="demo"]{background:#fff2db;color:#85601b}.mode-badge[data-state="error"],.mode-badge[data-state="offline"]{background:#ffebeb;color:#a3333a}.view-switch{display:flex;padding:4px;background:#e8edf4;border-radius:10px;gap:3px}.view-switch button{display:flex;align-items:center;justify-content:center;gap:6px;font-weight:650;font-size:11px;padding:7px 13px;border-radius:7px;min-height:32px;color:var(--muted)}.view-switch button[aria-pressed=true]{background:#fff;color:var(--navy);box-shadow:0 1px 4px #01255612}.view-switch .icon{width:16px;height:16px}.filters-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 16px 0;margin-bottom:14px;box-shadow:0 3px 12px #01255603}.filter-row{display:flex;gap:16px;align-items:center;justify-content:space-between;padding-bottom:12px}.filter-bar{display:flex;gap:7px;overflow:auto;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid var(--line);font-size:11px;padding:8px 11px;border-radius:8px;font-weight:600;min-height:36px}.filter-chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:white}.filter-chip:hover:not([aria-pressed=true]){background:var(--blue-pale)}.chip-count{font-size:10px;line-height:1;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:#e9eef5;color:#62718b;font-weight:700}.filter-chip[aria-pressed=true] .chip-count{background:#ffffff26;color:white}.dot{width:7px;height:7px;border-radius:100%;flex:none}.danger{background:var(--danger)}.assault{background:var(--assault)}.theft{background:var(--theft)}.suspicious{background:var(--suspicious)}.period-field{display:flex;align-items:center;gap:6px;flex:none;color:var(--muted)}.period-field .icon{width:16px;height:16px}.period-field select{appearance:none;border:0;background:none;color:var(--muted);font-size:11px;cursor:pointer;padding:6px 0}.search-row{border-top:1px solid #edf0f5;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:47px}.search-field{display:flex;align-items:center;flex:1;gap:10px;color:#8592a4}.search-field .icon{width:18px;height:18px}.search-field input{border:0;background:transparent;width:100%;color:var(--ink);font-size:12px;height:45px;outline-offset:0}.search-field input::placeholder{color:#8290a3}.nearby-btn{display:flex;align-items:center;gap:7px;font-weight:650;font-size:11px;min-height:40px;white-space:nowrap;color:var(--navy)}.nearby-btn .icon{width:17px;height:17px}.nearby-btn[aria-pressed=true]{color:var(--red)}.status-banner{display:flex;align-items:center;gap:8px;background:#fff5e5;color:#806025;border:1px solid #f4e3bd;font-size:11px;padding:9px 13px;border-radius:10px;margin:0 0 12px}.status-banner .icon{width:16px;height:16px}.status-banner[data-state=error],.status-banner[data-state=offline]{background:#fff0f1;color:#a12e36;border-color:#f7cdd0}
.dashboard{height:525px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 350px;background:#fff;box-shadow:var(--shadow);isolation:isolate}.map-panel{position:relative;min-width:0;min-height:300px;background:#e4edf1;overflow:hidden}#map{height:100%;width:100%;z-index:1}.map-toolbar{position:absolute;top:17px;left:17px;display:flex;gap:8px;z-index:500}.map-toolbar>*{box-shadow:0 3px 12px #0125560d}.map-home{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #dfe7ef;padding:10px 13px;border-radius:10px;font-size:11px;font-weight:700}.map-home .icon{width:16px;height:16px}.map-locate{position:absolute;right:15px;bottom:48px;z-index:500;box-shadow:var(--shadow)}.map-legend{position:absolute;left:17px;bottom:22px;z-index:500;font-size:9px;background:#fffefa;padding:9px 12px;border-radius:8px;display:flex;align-items:center;gap:7px;box-shadow:0 2px 12px #1233}.legend-dot{width:6px;height:6px;border-radius:100%;background:var(--navy)}.legend-sep{color:#afb7c3}.map-unavailable{position:absolute;left:15px;right:15px;bottom:76px;z-index:550;background:#fffefaeF;border:1px solid var(--line);padding:18px;border-radius:13px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:12px;box-shadow:var(--shadow)}.leaflet-container{font:inherit}.leaflet-top.leaflet-right{top:7px;right:5px}.leaflet-control-zoom{border:1px solid var(--line)!important;box-shadow:var(--shadow)!important;border-radius:10px!important;overflow:hidden}.leaflet-control-zoom a{width:37px!important;height:37px!important;line-height:36px!important;border-bottom-color:var(--line)!important;color:var(--navy)!important}.leaflet-control-attribution{font-size:9px!important;background:#ffffffd9!important}.leaflet-popup-content-wrapper{border-radius:13px}.leaflet-popup-content{margin:15px;font:12px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--navy)}.leaflet-popup-content p{margin:6px 0}.popup-button{display:block;font-size:11px;font-weight:700;margin-top:9px;padding:6px 0;color:var(--navy);text-decoration:underline}.marker-pin{width:35px;height:35px;display:flex;align-items:center;justify-content:center;background:var(--danger);color:white;border:3px solid white;border-radius:100% 100% 100% 5px;transform:rotate(-45deg);box-shadow:0 3px 7px #01255640}.marker-pin .icon{width:18px;height:18px;transform:rotate(45deg);stroke-width:2}.marker-pin[data-tone=assault]{background:var(--assault)}.marker-pin[data-tone=theft]{background:var(--theft)}.marker-pin[data-tone=suspicious]{background:var(--suspicious)}.user-dot{width:16px;height:16px;border:3px solid white;border-radius:100%;background:#1979de;box-shadow:0 0 0 7px #1979de33}.feed-panel{display:flex;flex-direction:column;min-height:0;min-width:0;border-left:1px solid var(--line);background:#fff;z-index:5}.feed-heading{padding:20px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.feed-heading .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:7px}.feed-heading h3{font-size:19px;letter-spacing:-.5px;display:flex;gap:8px;align-items:center}.count-badge{font-size:11px;background:var(--blue-pale);padding:4px 7px;border-radius:6px;letter-spacing:0;min-width:24px;text-align:center}.feed-meta{display:flex;gap:6px;align-items:center;font-size:9px;color:var(--muted);padding:0 20px 14px;border-bottom:1px solid var(--line)}.live-dot{width:5px;height:5px;background:#4c936d;border-radius:100%;flex:none}.live-dot[data-state=demo]{background:#af8a43}.live-dot[data-state=error],.live-dot[data-state=offline]{background:#c96166}.alerts-list{overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#ccd6e4 transparent}.alert-card{display:block;width:100%;text-align:left;padding:17px 20px;border-bottom:1px solid #e9edf3;transition:background .15s;position:relative}.alert-card:hover{background:#f8faff}.alert-top{display:flex;align-items:flex-start;gap:11px}.alert-icon{width:37px;height:37px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:#fdf0f1;color:var(--danger);flex:none}.alert-icon .icon{width:19px;height:19px}.alert-card[data-tone=assault] .alert-icon,.category-choice[data-tone=assault] .category-icon{color:var(--assault);background:#f6eff6}.alert-card[data-tone=theft] .alert-icon,.category-choice[data-tone=theft] .category-icon{color:var(--theft);background:#fff5e6}.alert-card[data-tone=suspicious] .alert-icon,.category-choice[data-tone=suspicious] .category-icon{color:var(--suspicious);background:#eef5fd}.alert-main{flex:1;min-width:0}.alert-label-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;line-height:1.5;margin-bottom:3px}.category-label{color:var(--danger);font-weight:650}.alert-card[data-tone=assault] .category-label{color:var(--assault)}.alert-card[data-tone=theft] .category-label{color:var(--theft)}.alert-card[data-tone=suspicious] .category-label{color:var(--suspicious)}.alert-time{color:var(--muted);white-space:nowrap}.alert-title{display:block;font-size:12px;font-weight:750;line-height:1.5}.meta{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:10px;margin-top:4px;overflow-wrap:anywhere}.meta .icon{width:12px;height:12px}.alert-description{display:block;font-size:10px;color:#6b7d93;margin:11px 0 0 48px;line-height:1.6;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-action{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:650;margin:9px 0 0 48px}.card-action .icon{width:14px;height:14px}.feed-footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:6px;font-size:9px;color:var(--muted);margin-top:auto;background:#fcfdff}.feed-footer .icon{width:13px;height:13px}.empty-state{padding:44px 25px 25px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:12px}.empty-symbol{width:66px;height:66px;display:flex;align-items:center;justify-content:center;border-radius:100%;background:var(--blue-pale);color:var(--navy);box-shadow:0 0 0 9px #f7f9fc;margin:10px 0 15px}.empty-symbol .icon{width:30px;height:30px}.empty-state h4{font-size:16px;line-height:1.4;letter-spacing:-.25px;margin:0}.empty-state p{color:var(--muted);font-size:11px;line-height:1.8;max-width:240px}.empty-state .text-btn{font-size:11px}.safety-strip{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:10px;color:var(--muted);margin:15px 3px}.safety-strip>span{display:flex;align-items:center;gap:7px}.safety-strip .icon{width:15px;height:15px}.safety-strip button{display:flex;align-items:center;gap:6px;color:var(--red);font-size:10px;font-weight:650;min-height:28px;white-space:nowrap}
body[data-view=list] .dashboard{height:auto;min-height:0;display:block}body[data-view=list] .map-panel{display:none}body[data-view=list] .feed-panel{border:0}body[data-view=list] .alerts-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:750px;overflow:auto}body[data-view=list] .alert-card{border-right:1px solid var(--line)}body[data-view=list] .empty-state{grid-column:1/-1;padding:44px 25px}body.map-expanded .dashboard{position:fixed;inset:105px 24px 24px;z-index:1500;height:auto;border-radius:16px;box-shadow:0 0 0 110px #0b234390;grid-template-columns:minmax(0,1fr) 350px}.how-section{display:grid;grid-template-columns:1fr 2.2fr;gap:50px;margin:55px 0 40px;scroll-margin-top:125px}.how-heading h2{font-size:25px;line-height:1.3;margin:10px 0 8px;letter-spacing:-.8px}.how-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.how-cards article{border-left:1px solid var(--line);padding:4px 0 0 22px;position:relative}.step-num{position:absolute;right:6px;top:0;color:#d4dce7;font-size:11px;font-weight:700;letter-spacing:1px}.how-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:13px}.how-icon .icon{width:17px;height:17px}.how-cards h3{font-size:14px;letter-spacing:-.2px;margin-bottom:8px}.how-cards p{font-size:11px;color:var(--muted);line-height:1.8}.app-banner{background:var(--navy);color:white;border-radius:16px;display:flex;align-items:center;gap:22px;padding:27px 32px;margin:35px 0 30px;overflow:hidden;position:relative}.app-banner:after{content:"";position:absolute;width:270px;height:270px;border:1px solid #ffffff0d;border-radius:100%;right:-110px;top:-70px;pointer-events:none}.app-banner-logo{width:66px;height:66px;background:white;border-radius:15px;display:flex;align-items:center;flex:none;overflow:hidden}.app-banner .eyebrow{color:#aac0da;font-size:8px;letter-spacing:1.2px;margin-bottom:8px}.app-banner h2{font-size:23px;letter-spacing:-.6px}.app-banner p:not(.eyebrow){font-size:11px;color:#bdcde0;margin-top:8px}.app-banner .light-btn{margin-left:auto;white-space:nowrap;z-index:1}.site-footer{max-width:1368px;margin:0 auto;padding:20px 32px 35px;display:flex;gap:20px;align-items:center;font-size:10px;color:var(--muted)}.footer-brand{width:100px;line-height:0}.site-footer>div{margin-left:auto;display:flex;align-items:center;gap:22px}.site-footer button{font-size:10px;color:var(--muted);padding:8px 0}.mobile-nav{display:none}.toast-region{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:10000;width:max-content;max-width:calc(100vw - 32px);pointer-events:none}.toast{background:var(--navy);color:#fff;border:1px solid #ffffff26;border-radius:12px;padding:14px 20px;box-shadow:0 10px 35px #01255630;font-size:12px;animation:toast-in .15s ease}.update-banner{position:fixed;bottom:23px;left:24px;right:24px;max-width:640px;margin:auto;background:var(--navy);color:white;display:flex;align-items:center;gap:12px;z-index:2000;padding:12px 15px;border-radius:14px;box-shadow:var(--shadow);font-size:12px}.update-banner button{margin-left:auto;border:1px solid #ffffff60;border-radius:8px;font-weight:700;font-size:11px;padding:9px 12px;color:white}.noscript{position:fixed;inset:100px 20px auto;background:var(--navy);color:white;z-index:9000;padding:20px}
/* Dialogs: native focus management, Escape and visible error states. */
dialog{border:1px solid var(--line);border-radius:23px;padding:0;width:min(550px,calc(100% - 32px));max-height:calc(100dvh - 48px);color:var(--ink);background:#fff;box-shadow:0 25px 90px #01255640;overscroll-behavior:contain}dialog::backdrop{background:#071e3b85;backdrop-filter:blur(5px)}dialog>form,dialog>.dialog-content{padding:32px;position:relative}dialog h2{font-size:28px;letter-spacing:-1px;margin:8px 25px 12px 0;line-height:1.2}dialog .eyebrow{font-size:8px;color:var(--red);padding-right:25px}.dialog-close{position:absolute;right:16px;top:16px;width:33px;height:33px;border-color:transparent;background:#f4f6fa;border-radius:100%}.dialog-close .icon{width:17px;height:17px}.dialog-icon{display:flex;align-items:center;justify-content:center;width:51px;height:51px;border-radius:15px;background:var(--blue-pale);margin-bottom:20px}.dialog-icon .icon{width:25px;height:25px}.dialog-intro{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:20px}.wizard-progress{display:flex;align-items:center;gap:10px;margin:23px 0 22px}.wizard-progress>span{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);white-space:nowrap}.wizard-progress b{width:24px;height:24px;border-radius:100%;background:#edf1f7;color:#70819a;display:flex;align-items:center;justify-content:center;font-size:10px}.wizard-progress .current{color:var(--navy);font-weight:700}.wizard-progress .current b{background:var(--navy);color:#fff}.wizard-progress .done b{background:#e6f1eb;color:#227548}.wizard-progress>i{height:1px;background:var(--line);flex:1}fieldset{border:0;margin:0;padding:0}.category-grid{display:grid;gap:10px}.category-choice{cursor:pointer;position:relative}.category-choice input{position:absolute;opacity:0;width:100%;height:100%;margin:0;z-index:1;cursor:pointer}.choice-content{display:flex;gap:12px;align-items:center;border:1px solid var(--line);padding:13px;border-radius:12px;transition:background .15s}.choice-content b{font-size:12px;display:block}.choice-content small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.category-icon{display:flex;align-items:center;justify-content:center;background:#fff0f1;color:var(--danger);width:40px;height:40px;border-radius:10px;flex:none}.choice-check{margin-left:auto;opacity:0;color:var(--navy);width:17px;height:17px}.category-choice input:checked+.choice-content{border-color:var(--navy);background:#f6f9fd;box-shadow:0 0 0 1px var(--navy)}.category-choice input:checked+.choice-content .choice-check{opacity:1}.category-choice input:focus-visible+.choice-content{outline:3px solid #2872b9;outline-offset:3px}.privacy-note{font-size:10px;color:var(--muted);line-height:1.8;margin:16px 0 0;display:flex;align-items:flex-start;gap:6px}.privacy-note .icon{width:15px;height:15px;margin-top:2px}.inline-notice{font-size:11px;background:#fff4df;color:#846222;padding:12px;border-radius:9px;margin:12px 0}.field{display:block;font-size:12px;font-weight:650;margin:16px 0}.field>input,.field>textarea,.field>select,.password-field{display:block;border:1px solid #d7dfeb;background:#fafbfd;border-radius:10px;width:100%;padding:12px 13px;margin-top:7px;min-height:46px;color:var(--ink);font-size:13px;font-weight:400}.field textarea{resize:vertical;min-height:84px}.field small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:6px;line-height:1.6}.field .optional{font-size:10px;color:var(--muted);font-weight:400}.field .char-count{text-align:right}.location-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:15px 0 10px}.location-heading b{font-size:12px}.location-heading small{display:block;color:var(--muted);font-size:10px}.location-heading .ghost-btn{padding:9px 11px;min-height:36px;font-size:10px}.location-heading .icon{width:16px;height:16px}.picker-map{height:195px;border-radius:11px;border:1px solid var(--line);z-index:1;background:#e4edf1}.location-status{font-size:10px;margin-top:8px;color:var(--muted)}.wizard-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.wizard-actions #previousStepBtn{margin-right:auto}.form-message{font-size:11px;line-height:1.7;margin:12px 0 0;overflow-wrap:anywhere;color:#a82832}.form-message:empty{display:none}.form-message[data-success=true]{color:#22714a}.report-summary{padding:17px;border:1px solid var(--line);background:#f8faff;border-radius:12px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.report-summary strong{display:block;margin-bottom:7px;font-size:14px}.report-summary .summary-desc{margin-top:9px;color:var(--muted)}.consent{display:flex;align-items:flex-start;gap:10px;margin-top:18px;font-size:11px;line-height:1.8;cursor:pointer}.consent input{margin-top:4px;accent-color:var(--navy);width:17px;height:17px;flex:none}.password-field{display:flex;align-items:center;padding:0;overflow:visible}.password-field input{border:0;min-height:45px;width:100%;padding:12px 13px;background:none;color:var(--ink)}.password-field button{display:flex;align-items:center;justify-content:center;width:42px;height:44px;flex:none}.password-field .icon{width:18px;height:18px}#authSubmitBtn{margin-top:10px}#toggleAuthBtn{margin-top:10px}.account-links{display:grid;gap:7px;margin:20px 0}.account-links>button{display:flex;align-items:center;gap:10px;text-align:left;background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:13px;font-weight:650;font-size:12px}.account-links>button .icon:last-child{margin-left:auto;width:16px;height:16px}.account-list{max-height:320px;overflow:auto;margin:12px 0}.account-item{padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.account-item strong{display:block;font-size:12px}.account-item p{color:var(--muted);margin:5px 0;overflow-wrap:anywhere}.account-item button{font-size:10px;padding:7px 9px;background:#fff0f1;color:#a12e36;border-radius:7px}.detail-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.detail-category{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:700;color:var(--red);margin:12px 0}.detail-category .alert-icon{width:42px;height:42px}.detail-description{background:#f6f8fc;border-radius:12px;padding:16px;font-size:13px;line-height:1.8;margin-top:20px;white-space:pre-wrap;overflow-wrap:anywhere}.detail-meta{font-size:11px;color:var(--muted);display:flex;gap:9px;align-items:center;margin:7px 0}.detail-meta .icon{width:15px;height:15px}.detail-unverified{display:inline-block;font-size:9px;padding:4px 8px;background:#fff4de;color:#846222;border-radius:6px;margin-top:10px}.install-icon{border:1px solid var(--line);border-radius:18px;margin-bottom:20px}.install-instructions{background:#f5f8fc;padding:18px;border-radius:12px;font-size:12px;line-height:1.9;margin:20px 0}.install-instructions ol{margin:0;padding-left:18px}.emergency-icon{background:#fff0f1;color:var(--red)}.emergency-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.emergency-grid a{position:relative;text-decoration:none;display:flex;flex-direction:column;border:1px solid var(--line);padding:15px;border-radius:12px;min-height:99px}.emergency-grid a:hover{border-color:var(--red)}.emergency-grid strong{font-size:27px;line-height:1;color:var(--red);letter-spacing:-1px}.emergency-grid span{font-size:10px;color:var(--muted);margin-top:10px}.emergency-grid .icon{position:absolute;top:17px;right:15px;width:18px;height:18px;color:var(--red)}.sms-emergency{position:relative;display:block;background:#f5f8fc;padding:15px 40px 15px 15px;border:1px solid var(--line);border-radius:12px;margin-top:10px;text-decoration:none}.sms-emergency b{display:block;font-size:12px;margin-bottom:6px}.sms-emergency span{display:block;font-size:10px;color:var(--muted)}.sms-emergency .icon{position:absolute;right:12px;top:27px;width:17px}.source-link{font-size:10px;display:inline-flex;align-items:center;gap:6px;margin-top:15px;color:var(--muted)}.source-link .icon{width:13px;height:13px}.info-sections h3{font-size:14px;line-height:1.5;margin:23px 0 8px;letter-spacing:-.2px}.info-sections p{font-size:12px;color:var(--muted);line-height:1.8;margin:8px 0;overflow-wrap:anywhere}.info-sections code{font-size:10px}.info-sections .inline-notice{color:#846222}.busy-spin .icon{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{from{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:1600px){.topbar-inner{max-width:1480px}main,.site-footer{max-width:1430px}.intro{padding:40px 0}.dashboard{height:560px;grid-template-columns:minmax(0,1fr) 390px}.alert-card{padding:21px}.alert-title{font-size:13px}.alert-description{font-size:11px}.alert-label-row{font-size:10px}}
@media(max-width:1180px){.topbar-inner{padding:0 24px;gap:18px;height:82px}.brand{width:157px}.brand-tagline,.brand-divider{display:none}.desktop-nav{gap:20px}.header-actions{gap:9px}.header-actions .ghost-btn,.header-actions .navy-btn{padding:11px 13px;font-size:11px}.emergency-btn{font-size:11px}main{padding:0 24px}.intro h1{font-size:32px}.intro-description{font-size:12px}.intro-action .primary-btn{font-size:12px;padding:14px 19px}.dashboard{grid-template-columns:minmax(0,1fr) 323px}.period-field{gap:4px}.filter-bar{gap:5px}.filter-chip{padding:8px 8px;font-size:10px}.filter-row{gap:10px}.how-section{gap:25px}.how-heading h2{font-size:22px}.how-cards{gap:15px}.how-cards article{padding-left:16px}.app-banner h2{font-size:20px}.app-banner{gap:18px;padding:25px}.app-banner .light-btn{padding:12px 14px;font-size:11px}.app-banner .light-btn .icon:last-child{display:none}}
@media(max-width:980px){.desktop-nav a:not(.nav-active){display:none}.topbar-inner{height:76px}.intro{padding:28px 0;gap:20px}.intro h1{font-size:27px}.intro-description{font-size:11px}.intro .eyebrow{font-size:8px}.intro-action .primary-btn{padding:14px;font-size:11px;min-height:47px}.intro-action>span{font-size:9px}.workspace-title h2{font-size:20px}.filter-row{flex-wrap:wrap;gap:9px;padding-bottom:9px}.filter-bar{flex:1}.period-field{margin-left:auto}.filter-chip{font-size:11px}.dashboard{grid-template-columns:minmax(0,1fr) 310px}.how-section{grid-template-columns:1fr;gap:25px}.how-heading h2 br{display:none}.how-cards article{padding:0 22px}.how-cards{gap:10px}.how-cards p{font-size:12px}.how-cards h3{font-size:15px}.app-banner-logo{display:none}.app-banner h2{font-size:18px}body[data-view=list] .alerts-list{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{padding-left:24px;padding-right:24px}.site-footer>span{display:none}}
@media(max-width:760px){html{scroll-padding-top:83px}body{padding-bottom:calc(79px + env(safe-area-inset-bottom));font-size:14px}.topbar-inner{height:74px;padding:0 18px;gap:8px}.brand{width:151px}.desktop-nav,.header-actions>.install-entry,.header-actions>[data-account]{display:none}.header-actions{margin-left:auto}.emergency-btn{border:1px solid #f0dce0;border-radius:9px;min-height:36px;padding:8px 10px;font-size:10px;gap:5px;background:#fffafb}.emergency-btn .icon{width:15px;height:15px}main{padding:0 16px}.intro{padding:24px 1px 25px;display:block}.intro .eyebrow{font-size:7px;letter-spacing:1.45px;margin-bottom:10px}.intro h1{font-size:29px;letter-spacing:-1.1px;line-height:1.2;max-width:340px}.intro h1 em{white-space:nowrap}.intro-description{font-size:11px;line-height:1.8;margin-top:10px;max-width:335px}.intro-action{display:none}.workspace-heading{margin-bottom:14px;gap:8px;align-items:center}.section-icon{display:none}.workspace-title h2{font-size:18px;letter-spacing:-.5px}.workspace-title p{font-size:10px;margin-top:4px}.workspace-tools{gap:6px}.workspace-tools .mode-badge{display:none}.view-switch{padding:3px;gap:1px}.view-switch button{padding:6px 9px;font-size:10px;min-height:32px;gap:4px}.view-switch .icon{width:13px;height:13px}.filters-panel{padding:11px 12px 0;border-radius:13px;margin-bottom:12px}.filter-row{display:block;position:relative;padding-bottom:10px}.filter-bar{gap:6px;margin-right:-12px;padding-right:12px}.filter-chip{font-size:10px;min-height:34px;padding:8px 10px;border-radius:7px}.chip-count{font-size:9px;height:16px;min-width:16px}.filter-chip[data-category=all]{font-size:0;gap:6px}.filter-chip[data-category=all]:before{content:"Tous";font-size:10px}.filter-chip[data-category=all] .chip-count{font-size:9px}.period-field{position:relative;justify-content:flex-end;display:flex;margin-top:8px;height:22px}.period-field select{font-size:10px;padding:2px 0}.period-field .icon{width:12px;height:12px}.search-row{min-height:44px;gap:7px}.search-field{gap:7px}.search-field input{font-size:11px;height:44px}.search-field .icon{width:15px;height:15px}.nearby-btn{font-size:0;min-width:35px;justify-content:center}.nearby-btn .icon{width:18px;height:18px}.status-banner{font-size:10px;align-items:flex-start;padding:9px 10px;line-height:1.7}.status-banner .icon{margin-top:1px}.dashboard{display:block;height:440px;border-radius:15px}.map-panel{height:100%}.feed-panel{display:none}.map-toolbar{top:12px;left:11px;gap:6px}.map-home{padding:9px 11px;font-size:10px;border-radius:9px;min-height:36px}.map-toolbar .icon-btn{width:36px;height:36px;border-radius:9px}.map-toolbar .icon-btn .icon{width:16px;height:16px}.map-locate{right:10px;bottom:46px;width:36px;height:36px}.leaflet-control-zoom a{width:31px!important;height:33px!important;line-height:32px!important;font-size:20px!important}.leaflet-top.leaflet-right{top:2px;right:0}.map-legend{bottom:20px;left:11px;font-size:8px;padding:7px 8px;gap:4px}.map-legend .legend-sep{display:none}.map-legend .legend-dot{width:5px;height:5px}.safety-strip{font-size:9px;align-items:flex-start;gap:10px;margin:13px 0;line-height:1.7}.safety-strip>span{gap:6px;align-items:flex-start}.safety-strip>span .icon{margin-top:2px;width:14px;height:14px}.safety-strip>button{font-size:0;min-width:27px;justify-content:flex-end}.safety-strip>button .icon{width:16px;height:16px;color:var(--red)}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);height:calc(74px + env(safe-area-inset-bottom));padding:5px 10px calc(5px + env(safe-area-inset-bottom));background:#ffffffF8;border-top:1px solid var(--line);box-shadow:0 -6px 24px #01255605;backdrop-filter:blur(12px);z-index:1600}.mobile-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;font-size:9px;color:var(--muted);position:relative;padding:8px 0}.mobile-nav button>.icon{width:21px;height:21px;stroke-width:1.8}.mobile-nav button[aria-current=page]{color:var(--navy);font-weight:700}.mobile-nav button[aria-current=page]:before{content:"";position:absolute;top:-6px;width:23px;height:3px;border-radius:0 0 4px 4px;background:var(--navy)}.mobile-nav .mobile-report{padding-top:0;gap:2px;color:var(--red);font-weight:700}.report-circle{background:var(--red);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;color:white;margin-top:-13px;border:4px solid white;box-shadow:0 3px 10px #de031019}.report-circle .icon{width:22px;height:22px}.how-section{margin:35px 0 25px;gap:25px}.how-heading h2{font-size:24px;line-height:1.35}.how-heading h2 br{display:block}.how-cards{display:grid;grid-template-columns:1fr;gap:23px}.how-cards article{padding-left:56px;border:0;min-height:60px}.how-icon{position:absolute;left:0;top:0;width:40px;height:40px}.how-icon .icon{width:20px;height:20px}.step-num{right:0;top:0}.how-cards h3{font-size:14px;margin-right:23px;margin-bottom:7px}.how-cards p{font-size:11px;max-width:280px}.app-banner{display:block;padding:23px 21px;margin:28px 0 12px;border-radius:15px}.app-banner .eyebrow{font-size:7px}.app-banner h2{font-size:22px;max-width:240px;line-height:1.3}.app-banner p:not(.eyebrow){font-size:11px;line-height:1.8}.app-banner .light-btn{margin-top:18px;font-size:11px;min-height:43px}.site-footer{padding:20px 18px 8px;display:block;text-align:center}.footer-brand{width:100px;display:inline-flex;margin:10px auto}.site-footer>div{gap:17px;justify-content:center;font-size:9px}.site-footer button{font-size:9px}.site-footer>div>span{display:none}body[data-view=list] .dashboard{min-height:440px;max-height:none}body[data-view=list] .feed-panel{display:flex}body[data-view=list] .alerts-list{display:block;max-height:none}body[data-view=list] .feed-heading{padding:18px 17px 12px}body[data-view=list] .alert-card{border-right:0;padding:19px 17px}body[data-view=list] .alert-title{font-size:13px}body[data-view=list] .alert-description{font-size:11px}body[data-view=list] .alert-label-row{font-size:10px}body[data-view=list] .feed-footer{padding:14px 17px}body.map-expanded .dashboard{inset:83px 9px calc(83px + env(safe-area-inset-bottom));height:auto;z-index:1500}body.map-expanded .map-panel{height:100%}dialog{width:calc(100% - 20px);max-height:calc(100dvh - 32px);border-radius:19px}dialog>form,dialog>.dialog-content{padding:27px 22px 24px}dialog h2{font-size:25px;letter-spacing:-.8px}dialog .eyebrow{font-size:7px}.dialog-close{right:12px;top:12px}.field>input,.field>textarea,.field>select,.password-field input{font-size:16px}.wizard-progress{gap:7px}.wizard-progress>span{font-size:9px;gap:5px}.wizard-progress b{width:22px;height:22px}.choice-content{padding:12px 11px;gap:10px}.choice-content small{font-size:9px}.category-icon{width:35px;height:35px}.category-icon .icon{width:19px;height:19px}.wizard-actions .primary-btn,.wizard-actions .ghost-btn{font-size:11px;padding:12px 15px}.wizard-actions{gap:8px}.picker-map{height:200px}.emergency-grid{gap:8px}.emergency-grid a{padding:13px}.toast-region{bottom:calc(85px + env(safe-area-inset-bottom))}.update-banner{bottom:calc(86px + env(safe-area-inset-bottom));left:12px;right:12px;padding:11px 13px;font-size:10px;gap:8px}.update-banner>.icon{display:none}.update-banner button{font-size:10px;padding:8px 10px;white-space:nowrap}.detail-actions .primary-btn,.detail-actions .ghost-btn{font-size:11px;padding:12px 13px}.detail-actions{gap:8px}.account-links>button{font-size:12px}}
@media(max-width:370px){.brand{width:138px}.topbar-inner{padding:0 14px}.intro h1{font-size:27px}.workspace-title h2{font-size:16px}.workspace-title p{font-size:9px}.view-switch button{padding:6px 7px}.workspace-tools .icon{display:none}.map-legend{font-size:7px}.wizard-progress>span{font-size:8px}.wizard-progress{gap:4px}dialog>form,dialog>.dialog-content{padding:27px 18px 22px}.choice-content small{font-size:8px}.choice-check{width:14px}.site-footer>div{gap:12px}}
@media(display-mode:standalone) and (max-width:760px){.intro{padding-top:20px}.intro-description{display:none}.intro{padding-bottom:20px}.how-section,.app-banner,.site-footer{display:none}.dashboard{height:max(350px,calc(100dvh - 427px - env(safe-area-inset-bottom)))}.topbar{padding-top:env(safe-area-inset-top)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V5: anonymous participation, notification centre and staff workspaces. */
.anonymous-note{display:flex;align-items:flex-start;gap:10px;border:1px solid #dce6f3;background:#f0f5fb;padding:12px;border-radius:12px;font-size:11px;margin:16px 0;color:var(--navy)}.anonymous-note b{display:block;margin-bottom:3px}.anonymous-note .icon{width:18px;height:18px;flex:none;margin-top:2px}.anonymous-chip{font-size:9px;display:flex;align-items:center;gap:5px;color:var(--muted);margin-top:8px}.anonymous-chip .icon{width:13px;height:13px}.notification-entry{position:relative}.notification-count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:30px;background:var(--red);color:white;font-size:9px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1}.notification-count.inline{position:static}.account-links .notification-count{position:static;margin-left:auto}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:15px 0}.consent.compact{margin:0}.wide-dialog{max-width:760px;width:calc(100% - 28px)}.notification-list,.moderation-list{display:grid;gap:10px;margin:15px 0;max-height:52vh;overflow:auto}.notification-item{width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;display:grid;grid-template-columns:28px 1fr;gap:10px}.notification-item.unread{background:#f2f6fc;border-color:#bfcede}.notification-item strong{display:block;font-size:12px}.notification-item p{font-size:11px;color:var(--muted);margin:6px 0}.notification-item small{font-size:9px;color:var(--muted)}.confirmation-panel{padding:15px;border:1px solid var(--line);background:#f7faff;border-radius:12px;margin-top:16px}.confirmation-panel b{font-size:12px}.confirmation-panel p{font-size:10px;color:var(--muted);margin:6px 0 12px}.confirmation-panel button{font-size:11px;min-height:40px}.moderation-card{border:1px solid var(--line);border-radius:13px;padding:17px;background:#fafcfe}.moderation-card h3{font-size:14px;line-height:1.5}.moderation-card p{font-size:11px;line-height:1.7;color:var(--muted);margin:9px 0;overflow-wrap:anywhere}.moderation-card .moderation-flags{color:#a33136;background:#fff0f1;border-radius:6px;padding:6px 9px}.moderation-card .field{margin:12px 0}.moderation-card select{font-size:11px;padding:8px;min-height:39px}.moderation-card button{font-size:11px}.account-role{display:inline-block;font-size:10px;border-radius:20px;padding:4px 9px;background:var(--blue-pale);color:var(--navy)}#preferencesForm>button[type=submit]{margin-top:18px}#deliveryStatus{white-space:pre-line}#signupOptions .consent{font-size:10px}#notificationsDialog,#preferencesDialog{max-width:550px}#notificationsDialog .dialog-intro{margin-bottom:8px}#authDialog .field{margin:11px 0}#authDialog .field small{line-height:1.4}#authDialog h2{font-size:25px}.card-confirmations{margin-left:auto;font-size:9px}
@media(min-width:761px) and (max-width:1180px){.brand-tagline,.brand-divider{display:none}.desktop-nav{gap:14px}.topbar-inner{padding:0 22px;gap:17px}.header-actions{gap:8px}.install-entry{display:none}}
@media(max-width:760px){.mobile-nav{grid-template-columns:repeat(5,1fr)}.mobile-nav [data-notification-count]{top:0;right:calc(50% - 24px)}.header-actions .notification-entry{display:none}.mobile-nav button span:not(.notification-count){font-size:9px}.notification-list,.moderation-list{max-height:56dvh}.notification-item{padding:12px}.wide-dialog{width:calc(100% - 16px)}.toolbar{gap:12px}.confirmation-panel p{font-size:10px}}

/* Public contact: tap-friendly on mobile; no form collecting more personal data. */
.contact-section{margin:32px auto 12px;padding:28px;max-width:var(--page-width,1320px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 28px;border:1px solid var(--line,#dde5ef);border-radius:20px;background:#fff;scroll-margin-top:96px}
.contact-section h2{font-size:22px;margin:8px 0 10px;letter-spacing:-.4px}
.contact-section p:not(.eyebrow){font-size:13px;color:#65778e;line-height:1.65;margin:0}
.contact-actions{align-self:center;min-width:0}.contact-actions p{margin-top:10px!important;text-align:center}
.contact-email{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center;text-decoration:none}
.contact-section .contact-privacy{grid-column:1/-1;border-top:1px solid #e6ecf3;padding-top:16px;font-size:12px}
.site-footer [data-contact-email]{overflow-wrap:anywhere;white-space:normal;color:inherit;font-size:12px;text-decoration:none}
.site-footer [data-contact-email]:hover{text-decoration:underline}
@media(max-width:900px){.contact-section{margin:24px 20px 12px;grid-template-columns:minmax(0,1fr);padding:22px}.contact-section h2{font-size:20px}.contact-actions{justify-self:start}.contact-section .contact-privacy{grid-column:auto}.site-footer>div{min-width:0;flex-wrap:wrap}}
@media(max-width:420px){.contact-section{margin:20px 12px 8px;padding:18px}.contact-email{font-size:13px;padding-left:12px;padding-right:12px}}
