/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.grid{display:grid}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--bg:#050d16;--panel:#0a1928e0;--panel-strong:#091827f7;--line:#709fbe2b;--line-strong:#51a6db57;--text:#e6f1f8;--muted:#c3d8e78f;--blue:#48aee9;--cyan:#42d2c2;--green:#70cfa7;--orange:#e3a14e;--red:#ee665e}*{box-sizing:border-box}html,body{background:var(--bg);width:100%;height:100%;margin:0;overflow:hidden}body{color:var(--text);-webkit-font-smoothing:antialiased;font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif}button,input,textarea{color:inherit;font:inherit}button{border:0}button:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}[role=button]:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}input:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}textarea:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}.screen-shell{background:radial-gradient(circle at 51% 41%,#1e679521,#0000 38%),linear-gradient(145deg,#06101b 0%,#040b13 50%,#07121d 100%);position:fixed;inset:0;overflow:hidden}.ambient-grid{opacity:.22;background-image:linear-gradient(#659ec109 1px,#0000 1px),linear-gradient(90deg,#659ec109 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 86%);mask-image:radial-gradient(#000 30%,#0000 86%)}.ambient-light{filter:blur(120px);opacity:.07;pointer-events:none;border-radius:50%;width:40vw;height:40vw;position:absolute}.light-one{background:#287ead;top:20vh;left:-18vw}.light-two{background:#1f8f8c;bottom:-15vh;right:-18vw}.dashboard-canvas{transform-origin:50%;background:linear-gradient(90deg,#377faa0d,#0000 20% 80%,#377faa0d),0 0;grid-template-rows:68px 94px minmax(0,1fr) 52px;gap:10px;width:1920px;height:1080px;padding:16px 20px;display:grid;position:absolute;top:50%;left:50%;overflow:hidden}.screen-corner{pointer-events:none;border-color:#56adde59;width:26px;height:26px;position:absolute}.corner-tl{border-top:1px solid;border-left:1px solid;top:7px;left:7px}.corner-tr{border-top:1px solid;border-right:1px solid;top:7px;right:7px}.corner-bl{border-bottom:1px solid;border-left:1px solid;bottom:7px;left:7px}.corner-br{border-bottom:1px solid;border-right:1px solid;bottom:7px;right:7px}.panel{border:1px solid var(--line);background:linear-gradient(135deg, #11283d75, transparent 42%), var(--panel);border-radius:8px;min-width:0;min-height:0;position:relative;overflow:hidden;box-shadow:inset 0 1px #d1ecff06,0 12px 30px #0000001a}.panel:after{content:"";background:#42d2c2a3;width:38px;height:1px;position:absolute;top:0;left:14px}.panel-heading{justify-content:space-between;align-items:flex-start;min-height:39px;display:flex}.panel-heading>div>span,.map-title>span{color:#5dabd88a;letter-spacing:1.5px;font-size:8px;font-weight:650;line-height:1;display:block}.panel-heading h2,.map-title h2{color:#e8f4fb;letter-spacing:.6px;margin:5px 0 0;font-size:15px;font-weight:650;line-height:1}.panel-heading>em{color:#92c7e28a;font-size:9px;font-style:normal;line-height:18px}.compact-heading{min-height:32px}.compact-heading h2{margin-top:4px;font-size:13px}.top-header{border-bottom:1px solid #65a0c426;justify-content:center;align-items:flex-start;display:flex;position:relative}.top-header:after{content:"";background:linear-gradient(90deg,#0000,#4bafe2bf,#0000);width:530px;height:1px;position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}.header-date{position:absolute;top:6px;left:4px}.header-date .eyebrow{color:#8bbbd775;letter-spacing:1.8px;text-transform:uppercase;font-size:8px;display:block}.header-date strong{color:#e6f2f9cc;letter-spacing:1px;margin-top:6px;font-size:14px;font-weight:520;display:block}.brand-title{text-align:center;width:920px;position:relative}.brand-title h1{color:#edf7fd;letter-spacing:3.2px;text-shadow:0 0 18px #49aae121;margin:2px 0 0;font-size:27px;font-weight:650}.brand-title h1 span{color:#69bde9}.brand-title p{color:#6baacc70;letter-spacing:3.5px;margin:5px 0 0;font-size:8px;font-weight:650}.brand-line{clip-path:polygon(4% 0,96% 0,91% 100%,9% 100%);border-top:1px solid #5ca5cd1a;width:720px;height:14px;position:absolute;top:38px;left:50%;transform:translate(-50%)}.brand-line span{background:linear-gradient(90deg,#0000,#46aecf,#0000);width:76px;height:2px;margin:-1px auto 0;display:block}.header-actions{align-items:center;gap:7px;display:flex;position:absolute;top:5px;right:4px}.header-clock{align-items:center;gap:8px;margin-right:5px;display:flex}.header-clock strong{color:#edf8ff;letter-spacing:1.8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;font-weight:500}.live-dot,.system-status i,.alert-heading em i,.compact-heading em i{background:var(--cyan);border-radius:50%;width:6px;height:6px;animation:2.6s ease-in-out infinite breathe;display:inline-block;box-shadow:0 0 9px #42d2c29e}.header-button{color:#dcecf6cc;cursor:pointer;background:#112b408f;border:1px solid #629ec23d;border-radius:4px;min-width:72px;height:29px;font-size:11px;transition:all .2s}.header-button:hover{background:#1b425eb3;border-color:#4fb2e09e}.header-button.accent{color:#bceee8;border-color:#42d2c252}.header-button.demo-button{color:#d8f2fb;border-color:#52b1d861;justify-content:center;align-items:center;gap:7px;min-width:96px;display:flex}.header-button.demo-button kbd{color:#83d9e1;background:#051420bf;border:1px solid #6fbedc57;border-bottom-color:#6fbedc94;border-radius:3px;min-width:18px;height:17px;padding:1px 5px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;line-height:14px}.header-button.demo-button.running{color:#bdf4eb;background:#18585b6b;border-color:#42d2c299;box-shadow:inset 0 0 18px #42d2c212}.system-status{gap:17px;display:flex;position:absolute;bottom:6px;right:4px}.system-status span{color:#a9c3d38c;white-space:nowrap;font-size:9px}.system-status i{width:4px;height:4px;margin:0 5px 1px 0}.system-status b{color:#caebe7c7;font-weight:500}.headline-stats{grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;display:grid}.stat-card{background:#091724c2;border:1px solid #699ab724;border-radius:7px;padding:10px 13px;animation:.55s both panelIn;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--blue);opacity:.68;width:2px;position:absolute;top:0;bottom:0;left:0}.stat-card.tone-cyan:after{background:var(--cyan)}.stat-card.tone-green:after{background:var(--green)}.stat-card.tone-orange:after{background:var(--orange)}.stat-card-top{justify-content:space-between;align-items:center;display:flex}.stat-card-top span{color:#c6dae7ad;font-size:11px}.stat-card-top i{color:#5aa1c947;font-family:ui-monospace,monospace;font-size:9px;font-style:normal}.stat-value{align-items:baseline;gap:5px;margin-top:4px;display:flex}.stat-value strong{color:#eaf7fe;letter-spacing:.2px;font-size:27px;font-weight:620;line-height:1}.stat-value span{color:#a6c6d9a8;font-size:10px}.stat-card p{color:#77a7c494;margin:5px 0 0;font-size:9px}.tone-green .stat-value strong{color:#d9f6eb}.tone-orange .stat-value strong{color:#ffdfb8}.main-layout{grid-template-columns:342px minmax(0,1fr) 410px;gap:10px;min-height:0;display:grid}.left-column{grid-template-rows:228px 278px minmax(0,1fr);gap:10px;min-height:0;display:grid}.center-column{grid-template-rows:530px minmax(0,1fr);gap:10px;min-width:0;min-height:0;display:grid}.right-column{grid-template-rows:350px 205px minmax(0,1fr);gap:10px;min-height:0;display:grid}.resource-panel,.data-panel,.trend-panel{padding:13px 14px 11px}.resource-grid{grid-template-columns:repeat(2,1fr);gap:5px 8px;margin-top:3px;display:grid}.resource-item{border-bottom:1px solid #6597b517;align-items:center;height:38px;display:flex}.resource-icon{color:#67b9e28a;background:#25658b1c;border:1px solid #47a3d338;border-radius:5px;place-items:center;width:25px;height:25px;margin-right:8px;font-family:ui-monospace,monospace;font-size:8px;display:grid}.resource-item>div{grid-template-columns:auto 1fr;align-items:baseline;display:grid}.resource-item b{color:#e5f2f9;font-size:16px;font-weight:600;line-height:1}.resource-item small{color:#a9c3d280;margin-left:3px;font-size:8px}.resource-item p{color:#a9c3d28a;grid-column:1/-1;margin:2px 0 0;font-size:9px}.data-list{gap:5px;margin-top:2px;display:grid}.data-row{grid-template-columns:57px 1fr 52px;align-items:center;gap:7px;height:14px;display:grid}.data-row>span{color:#c5dae794;font-size:9px}.data-row>b{color:#e4f1f9cc;text-align:right;font-family:ui-monospace,monospace;font-size:10px;font-weight:520}.data-track{background:#73a0ba1a;height:2px;overflow:hidden}.data-track i{background:linear-gradient(90deg,#3d91c173,#42d2c2cc);height:100%;animation:1.2s both trackGrow;display:block}.data-summary{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px;display:grid}.data-summary>div{background:#13304438;border:1px solid #5d95b61a;border-radius:4px;padding:6px 6px 5px}.data-summary span{color:#adc9da82;font-size:8px;display:block}.data-summary b{color:#cbeff0;margin-top:2px;font-size:14px;font-weight:600;display:block}.data-summary small{color:#b9d3e180;margin-left:2px;font-size:8px;font-weight:400}.reuse-banner{background:linear-gradient(90deg,#1f707933,#0000);border-left:2px solid #42d2c29e;margin-top:7px;padding:6px 9px 6px 34px;position:relative;overflow:hidden}.reuse-banner strong{color:#c9eee9;font-size:10px;font-weight:600;display:block}.reuse-banner>span{color:#9bc0d280;margin-top:2px;font-size:7.5px;display:block}.flow-dots{gap:3px;display:flex;position:absolute;top:11px;left:9px}.flow-dots i{background:var(--cyan);border-radius:50%;width:4px;height:4px;animation:1.8s ease-in-out infinite dataDot}.flow-dots i:nth-child(2){animation-delay:.25s}.flow-dots i:nth-child(3){animation-delay:.5s}.trend-panel{padding-bottom:9px}.chart-canvas{width:100%;min-height:0}.trend-chart{height:190px;margin-top:0}.trend-insight{color:#b2cddc8c;white-space:nowrap;background:#25526c2e;border-radius:3px;height:22px;padding:5px 7px;font-size:8px}.trend-insight i{background:var(--orange);border-radius:50%;width:4px;height:4px;margin:0 5px 1px 0;display:inline-block}.trend-insight b{color:#ebcd9fd1;font-weight:500}.map-panel{background:linear-gradient(#0d2336f0,#07131ff0);border-color:#5197bf42;grid-template-rows:69px minmax(0,1fr) 49px;padding:12px 14px 10px;display:grid}.map-panel:after{background:linear-gradient(90deg, var(--cyan), transparent);width:110px}.map-header{z-index:2;justify-content:space-between;align-items:flex-start;display:flex}.map-title h2{letter-spacing:1px;margin-top:6px;font-size:18px}.map-title p{color:#92b9cf80;margin:7px 0 0;font-size:8px}.map-title p i{background:var(--cyan);border-radius:50%;width:5px;height:5px;margin:0 5px 1px 0;display:inline-block}.map-tabs{background:#040e186b;border:1px solid #5c96b721;border-radius:5px;gap:3px;padding:3px;display:flex}.map-tabs button{color:#b1cbdb8f;cursor:pointer;background:0 0;border-radius:3px;height:28px;padding:0 12px;font-size:10px;transition:all .2s}.map-tabs button:hover{color:#e0f0f9d1;background:#29628433}.map-tabs button.active{color:#d8f4f4;background:#2670986b;box-shadow:inset 0 -1px #42d2c2b8}.map-stage{border-top:1px solid #6499b812;min-height:0;position:relative;overflow:hidden}.map-stage:before{content:"";filter:blur(30px);background:#25729f14;border-radius:50%;width:75%;height:64%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.county-svg{width:calc(100% - 10px);height:calc(100% + 2px);position:absolute;inset:-2px 8px 0 2px}.terrain-lines path{fill:none;stroke:#60a2c71a;stroke-width:1px;stroke-dasharray:4 8}.township-shapes path{stroke:#5ca6cf7a;stroke-width:1px;cursor:pointer;transition:fill .22s,stroke .22s}.township-shapes path:hover,.township-group.selected path{fill:#276a909e;stroke:#4ed0d2e6}.town-name{fill:#e2f0f9d6;text-anchor:middle;pointer-events:none;font-size:11px;font-weight:560}.town-count{fill:#8db8d199;text-anchor:middle;pointer-events:none;font-size:8px}.county-outline path{fill:none;stroke:#5cbde0a6;stroke-width:1.6px;pointer-events:none}.map-point{cursor:default}.map-point .pulse-ring{fill:none;stroke-width:1.5px;opacity:.6;transform-origin:50%;animation:2.4s ease-out infinite pointPulse}.map-point .point-core{filter:url(#softGlow)}.point-camera .point-core,.legend-camera{fill:#48aee9;background:#48aee9}.point-worker .point-core,.legend-worker{fill:#42d2c2;background:#42d2c2}.point-hazard .point-core,.legend-hazard{fill:#e0bf58;background:#e0bf58}.point-critical .point-core,.legend-critical{fill:#ee665e;background:#ee665e}.point-dispute .point-core,.legend-dispute{fill:#e3a14e;background:#e3a14e}.point-person .point-core,.legend-person{fill:#b495e6;background:#b495e6}.point-vehicle .point-core,.legend-vehicle{fill:#6ea5e5;background:#6ea5e5}.point-radio .point-core,.legend-radio{fill:#5ed5a9;background:#5ed5a9}.point-camera .pulse-ring{stroke:#48aee9}.point-worker .pulse-ring{stroke:#42d2c2}.point-hazard .pulse-ring{stroke:#e0bf58}.point-critical .pulse-ring{stroke:#ee665e}.point-dispute .pulse-ring{stroke:#e3a14e}.point-person .pulse-ring{stroke:#b495e6}.point-vehicle .pulse-ring{stroke:#6ea5e5}.point-radio .pulse-ring{stroke:#5ed5a9}.demo-critical{cursor:pointer;animation:.5s both demoPointIn}.demo-critical .point-core{r:6}.demo-critical .pulse-ring{stroke-width:2px;animation-duration:1.3s}.map-coordinate{z-index:2;color:#699fbd59;letter-spacing:.6px;font-family:ui-monospace,monospace;font-size:7px;position:absolute}.map-coordinate.top{top:8px;left:9px}.map-coordinate.side{top:50%;right:-37px;transform:rotate(90deg)}.map-compass{color:#b5d7e899;place-items:center;width:32px;height:44px;font-family:serif;font-size:9px;display:grid;position:absolute;top:34px;left:15px}.map-compass i{border-bottom:19px solid #48aee959;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0}.map-scale{color:#87aec573;font-size:7px;position:absolute;bottom:14px;left:18px}.map-scale span{border-bottom:1px solid #7bb1cd8c;border-left:1px solid #7bb1cd8c;border-right:1px solid #7bb1cd8c;width:62px;height:4px;margin-right:4px;display:inline-block}.map-legend{background:#05111cad;border-radius:3px;gap:11px;padding:5px 8px;display:flex;position:absolute;bottom:10px;right:13px}.map-legend span{color:#b6cfde8f;white-space:nowrap;font-size:8px}.map-legend i{border-radius:50%;width:5px;height:5px;margin:0 4px 1px 0;display:inline-block;box-shadow:0 0 6px}.township-popup{z-index:10;background:#051320f5;border:1px solid #47aecb66;border-radius:6px;width:255px;padding:13px;animation:.22s both popupIn;position:absolute;top:15px;right:17px;box-shadow:0 18px 45px #00000073}.township-popup:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#338bb61f,#0000 42%);position:absolute;inset:0}.popup-close{color:#b5cfdc85;cursor:pointer;background:0 0;width:22px;height:22px;font-size:17px;position:absolute;top:7px;right:7px}.popup-title>span{color:#f1ac82;background:#e2725026;border-radius:2px;padding:2px 6px;font-size:8px;display:inline-block}.popup-title h3{margin:6px 0 0;font-size:14px;font-weight:620}.popup-primary{border-bottom:1px solid #699ab521;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:11px;padding-bottom:9px;display:grid}.popup-primary div{background:#1e465e38;padding:6px}.popup-primary span{color:#adcadb80;font-size:8px;display:block}.popup-primary b{color:#e8f6fc;margin-top:3px;font-size:15px;font-weight:600;display:block}.popup-primary b.warn{color:#f0b26d}.popup-primary small{color:#bed6e280;margin-left:2px;font-size:7px;font-weight:400}.popup-grid{grid-template-columns:repeat(2,1fr);gap:5px 12px;margin-top:9px;display:grid}.popup-grid span{color:#a7c5d687;justify-content:space-between;font-size:8px;display:flex}.popup-grid b{color:#e4f2f9d4;font-weight:500}.cadre-online{color:#bad9da9e;background:#266a662e;border-radius:3px;margin:10px 0 8px;padding:6px 8px;font-size:8px}.cadre-online i{background:var(--cyan);border-radius:50%;width:5px;height:5px;margin-right:5px;display:inline-block}.cadre-online b{float:right;color:#c8eee9}.primary-action{color:#edfafa;cursor:pointer;background:linear-gradient(90deg,#2674a1,#248e95);border-radius:3px;width:100%;height:30px;font-size:10px;position:relative;overflow:hidden}.primary-action:after{content:"";background:linear-gradient(105deg,#0000 35%,#ffffff29,#0000 65%);transition:transform .45s;position:absolute;inset:0;transform:translate(-100%)}.primary-action:hover:after{transform:translate(100%)}.primary-action span{margin-left:12px}.governance-loop{border-top:1px solid #689dbc1a;align-items:center;gap:8px;padding-top:7px;display:flex}.loop-label{border-left:2px solid #42d2c299;width:116px;padding-left:7px}.loop-label span{color:#71b4d37a;letter-spacing:1px;font-size:7px;display:block}.loop-label b{color:#d7ecef;margin-top:2px;font-size:9px;font-weight:550;display:block}.loop-step{background:#183a4f57;border-radius:3px;align-items:center;gap:5px;height:30px;padding:0 8px;display:flex;position:relative}.loop-step i{color:#47abd87a;font-family:ui-monospace,monospace;font-size:7px;font-style:normal}.loop-step span{color:#d3e4eead;white-space:nowrap;font-size:8px}.loop-step em{color:#4fa0c56b;font-size:15px;font-style:normal;position:absolute;right:-10px}.step-3{background:#23607359}.step-4{background:#31577066}.step-5{background:#2a686552}.step-6{background:#265b4d4f}.governance-loop>p{color:#60c1be91;white-space:nowrap;margin-left:auto;font-size:7px}.center-bottom{grid-template-columns:1.75fr .88fr .7fr;gap:10px;min-width:0;min-height:0;display:grid}.video-panel,.ranking-panel,.burden-panel{padding:10px 11px 9px}.video-grid{grid-template-columns:repeat(2,1fr);gap:6px;height:calc(100% - 32px);display:grid}.video-feed{background:#081522;border:1px solid #6397b521;border-radius:4px;min-width:0;overflow:hidden}.monitor-scene{background:#0a1722;height:78px;position:relative;overflow:hidden}.monitor-scene:before{content:"";z-index:2;pointer-events:none;background:linear-gradient(#040e1729,#030c1457);position:absolute;inset:0}.monitor-scene:after{content:"";z-index:3;pointer-events:none;background:repeating-linear-gradient(0deg,#0000,#0000 3px,#7fb5cf0d 4px),radial-gradient(circle,#0000 55%,#02090f42);position:absolute;inset:0}.monitor-image{z-index:1;filter:brightness(.64)saturate(.62)contrast(1.12)sepia(.04);background-repeat:no-repeat;background-size:cover;animation:12s ease-in-out infinite alternate cctvDrift;position:absolute;inset:-3%;transform:scale(1.03)}.scene-crossroad .monitor-image{background-position:54% 57%}.scene-smoke .monitor-image{background-position:60% 43%;animation-delay:-3s}.scene-crowd .monitor-image{background-position:38% 54%;animation-delay:-6s}.scene-vehicle .monitor-image{background-position:66% 69%;animation-delay:-9s}.ai-box{z-index:5;border:1px solid var(--red);position:absolute;box-shadow:inset 0 0 10px #ee665e14}.ai-box:before,.ai-box:after{content:"";border-color:#ff8178;width:5px;height:5px;position:absolute}.ai-box:before{border-top:2px solid;border-left:2px solid;top:-1px;left:-1px}.ai-box:after{border-bottom:2px solid;border-right:2px solid;bottom:-1px;right:-1px}.ai-box span{color:#fff;white-space:nowrap;background:#ce453fe6;padding:1px 3px;font-size:5px;position:absolute;top:-10px;left:-1px}.box-smoke{width:24%;height:55px;top:11px;left:53%}.box-crowd{border-color:var(--orange);width:35%;height:45px;top:26px;left:18%}.box-crowd span,.box-vehicle span{background:#be772ce6}.box-vehicle{border-color:var(--orange);width:24%;height:39px;top:28px;left:58%}.scan-line{z-index:6;background:#42d2c23d;height:1px;animation:4s linear infinite scan;position:absolute;top:0;left:0;right:0}.camera-time{z-index:7;color:#dcebf187;font-family:ui-monospace,monospace;font-size:5px;position:absolute;top:3px;left:4px}.video-meta{justify-content:space-between;align-items:center;height:23px;padding:0 6px;display:flex}.video-meta span{color:#b0c9d787;white-space:nowrap;text-overflow:ellipsis;font-size:7px;overflow:hidden}.video-meta span b{color:#e2f0f7c7;margin-right:5px;font-size:8px;font-weight:520}.video-meta em{white-space:nowrap;font-size:7px;font-style:normal}.video-meta em i{border-radius:50%;width:4px;height:4px;margin-right:3px;display:inline-block}.video-meta em.normal{color:var(--green)}.video-meta em.normal i{background:var(--green)}.video-meta em.alarm{color:#f39c78}.video-meta em.alarm i{background:var(--red);animation:1.4s infinite breathe}.ranking-block{height:calc(100% - 32px)}.mini-tabs{gap:3px;height:24px;display:flex}.mini-tabs button{color:#adc8d87a;cursor:pointer;background:#1b3e5247;border-radius:3px;flex:1;font-size:7px}.mini-tabs button.active{color:#d8edf5;background:#28678980}.ranking-chart{height:calc(100% - 24px)}.burden-list{gap:4px;margin-top:3px;display:grid}.burden-list>div{border-bottom:1px solid #6394b117;grid-template-columns:22px 1fr auto;align-items:center;min-height:36px;padding:4px 6px;display:grid}.burden-list i{color:#4aa8d361;font-family:ui-monospace,monospace;font-size:7px;font-style:normal}.burden-list span{color:#cadce7a3;font-size:8px}.burden-list small{color:#8aaec266;margin-top:2px;font-size:6px;display:block}.burden-list b{color:#c7edeb;font-size:13px;font-weight:590}.burden-note{color:#9ccdcd8c;background:#1d535a29;border-left:2px solid #42d2c273;margin:7px 0 0;padding:5px;font-size:6.5px}.alerts-panel{padding:12px 13px 9px}.alert-heading em{color:#74dac4a8;align-items:center;gap:5px;display:flex}.alert-heading em i{width:5px;height:5px}.alert-summary{background:#112b3c6b;border-radius:3px;grid-template-columns:47px 47px 47px 1fr;align-items:center;height:34px;margin:1px 0 6px;padding:4px 7px;display:grid}.alert-summary>div{align-items:baseline;gap:3px;display:flex}.alert-summary>div b{color:#e3b17b;font-size:12px;font-weight:600}.alert-summary>div:first-child b{color:#f07c71}.alert-summary>div span{color:#b0cad978;font-size:7px}.alert-summary p{color:#abc8d88a;text-align:right;margin:0;font-size:8px}.alert-summary p b{color:#8dd9d1;font-size:11px;font-weight:550}.alert-list{gap:5px;height:199px;display:grid;overflow:hidden}.alert-card{text-align:left;cursor:pointer;background:#0a1b2ab8;border:1px solid #6599b61f;border-radius:4px;width:100%;height:63px;padding:7px 30px 6px 57px;transition:all .2s;animation:.4s both alertIn;display:block;position:relative}.alert-card:hover{background:#102739eb;border-color:#54a4cd59;transform:translate(-2px)}.alert-card:before{content:"";background:var(--orange);width:2px;position:absolute;top:9px;bottom:9px;left:0}.alert-card.critical:before{background:var(--red)}.alert-card.general:before{background:#d4bd5f}.alert-level{color:#e5af6f;width:39px;font-size:8px;position:absolute;top:9px;left:9px}.critical .alert-level{color:#fa8b80}.general .alert-level{color:#d6c881}.new-flag{color:#ff8d83;background:#e04b4430;border-radius:2px;padding:1px 4px;font-family:ui-monospace,monospace;font-size:6px;position:absolute;bottom:9px;left:9px}.alert-main{min-width:0}.alert-time{align-items:center;gap:7px;display:flex}.alert-time b{color:#9abbcf94;font-family:ui-monospace,monospace;font-size:7px;font-weight:500}.alert-time span{color:#a1c0d280;white-space:nowrap;text-overflow:ellipsis;font-size:7px;overflow:hidden}.alert-main h3{color:#ebf5fae6;margin:4px 0 3px;font-size:10px;font-weight:580}.critical .alert-main h3{color:#ffd9d2}.alert-meta{gap:6px;display:flex}.alert-meta span{color:#92b5c96b;font-size:6.5px}.alert-meta b{color:#c9dde8ab;font-size:7px;font-weight:500}.alert-status{color:#91c5d3ab;border-radius:2px;padding:2px 5px;font-size:7px;position:absolute;top:23px;right:11px}.status-待处置{color:#e98e7d;background:#d4514521}.status-处理中,.status-已派单{color:#deb174;background:#be843421}.status-已完成{color:#78c7af;background:#379a7d21}.alert-arrow{color:#73a6c357;font-style:normal;position:absolute;top:24px;right:7px;transform:translate(8px)}.fresh-alert{background:linear-gradient(90deg,#72242336,#0d1e2dd1);border-color:#db554a5c}.ai-mechanism{border-top:1px solid #6397b317;border-bottom:1px solid #6397b317;align-items:center;gap:3px;height:27px;margin-top:6px;padding:3px 5px;display:flex}.ai-mechanism div{flex:1;align-items:center;gap:3px;display:flex;position:relative}.ai-mechanism i{color:#80c5e29e;background:#25648566;border-radius:2px;place-items:center;width:13px;height:13px;font-size:6px;font-style:normal;display:grid}.ai-mechanism span{color:#afcad980;white-space:nowrap;font-size:6px}.ai-mechanism em{color:#5ea6c861;font-size:11px;font-style:normal;position:absolute;right:0}.upgrade-note{color:#75c2c28f;margin:6px 0 0;font-size:7px}.upgrade-note i{background:var(--cyan);border-radius:50%;width:4px;height:4px;margin-right:5px;display:inline-block}.dispatch-panel{padding:10px 12px 9px}.dispatch-metrics{border-top:1px solid #6196b217;border-bottom:1px solid #6196b217;grid-template-columns:repeat(4,1fr);height:42px;margin-top:1px;display:grid}.dispatch-metrics div{border-right:1px solid #6196b214;flex-direction:column;justify-content:center;padding-left:8px;display:flex}.dispatch-metrics div:last-child{border:0}.dispatch-metrics b{color:#d9eff5;font-size:14px;font-weight:590}.dispatch-metrics span{color:#a3c1d275;margin-top:1px;font-size:7px}.team-list{grid-template-columns:repeat(2,1fr);gap:3px 8px;margin-top:5px;display:grid}.team-list>div{border-bottom:1px solid #5f92af12;grid-template-columns:8px 1fr auto auto;align-items:center;height:25px;display:grid}.team-list i{background:var(--green);border-radius:50%;width:4px;height:4px}.team-list span{color:#c5dae69c;font-size:7px}.team-list b{color:#e0eef6bf;font-size:8px;font-weight:500}.team-list em{color:#6cc7a8ab;margin-left:5px;font-size:6px;font-style:normal}.dispatch-actions{grid-template-columns:.88fr 1.12fr;gap:6px;margin-top:6px;display:grid}.dispatch-actions button{cursor:pointer;border-radius:3px;height:29px;font-size:9px}.call-button{color:#fff6ee;background:linear-gradient(90deg,#b86144,#c77f4c)}.group-button{color:#c9efea;background:#21696e4f;border:1px solid #41c1b857}.call-icon{margin-right:7px;font-size:15px}.assistant-panel{background:linear-gradient(145deg,#15384ca6,#081825f0);padding:10px 12px 8px}.assistant-heading{align-items:center;height:31px;display:flex}.cmcc-mark{width:29px;height:26px;margin-right:7px;position:relative}.cmcc-mark i{border:2px solid #52b6db;border-radius:50%;width:19px;height:11px;position:absolute;transform:rotate(45deg)}.cmcc-mark i:last-child{border-color:#45d0c1;top:7px;left:8px;transform:rotate(-45deg)}.assistant-heading div:nth-child(2){flex:1}.assistant-heading span{color:#5fb5d38c;letter-spacing:1px;font-size:7px}.assistant-heading h2{margin:2px 0 0;font-size:13px;font-weight:620}.assistant-heading>em{color:#5bcfbf7a;font-size:7px;font-style:normal}.quick-prompts{gap:4px;height:25px;margin-top:3px;display:flex}.quick-prompts button{color:#bcd4e194;white-space:nowrap;cursor:pointer;background:#193a4e5c;border:1px solid #5b97b61a;border-radius:3px;flex:1;padding:0 4px;font-size:6.5px}.quick-prompts button:hover{color:#d5f0ed;border-color:#43cfc34d}.quick-prompts i{color:#46b2d47a;margin-right:3px;font-family:ui-monospace,monospace;font-size:5.5px;font-style:normal}.assistant-response{background:#04101b7a;border-left:2px solid #44afc557;height:56px;margin-top:5px;padding:7px 9px;overflow:hidden}.assistant-response p{color:#b1ccdb7a;margin:0;font-size:7px;line-height:1.65}.assistant-response.has-answer p{color:#d5e7efb8}.thinking{color:#87c0d391;align-items:center;gap:3px;height:100%;font-size:7px;display:flex}.thinking i{background:var(--cyan);border-radius:50%;width:4px;height:4px;animation:1s infinite dataDot}.thinking i:nth-child(2){animation-delay:.14s}.thinking i:nth-child(3){animation-delay:.28s}.thinking span{margin-left:5px}.typing-caret{background:var(--cyan);width:1px;height:8px;margin-left:2px;animation:.7s step-end infinite caret;display:inline-block}.assistant-input{grid-template-columns:1fr 27px;gap:4px;margin-top:5px;display:grid}.assistant-input input{color:#d9eaf2;background:#05121da6;border:1px solid #5f97b526;border-radius:3px;outline:none;min-width:0;height:27px;padding:0 8px;font-size:7px}.assistant-input input::placeholder{color:#98b9cb5c}.assistant-input button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#317fab,#2b9c97);border-radius:3px;font-size:13px}.document-actions{gap:4px;margin-top:5px;display:flex}.document-actions button{color:#aecedc87;cursor:pointer;background:#1c435759;border-radius:2px;flex:1;height:20px;font-size:6px}.document-actions button:hover{color:#d4eeec;background:#25607080}.capability-bar{background:#07131ee0;border:1px solid #6296b321;border-radius:6px;align-items:center;min-width:0;padding:0 14px;display:flex;overflow:hidden}.capability-title{border-left:2px solid #42d2c28c;width:170px;padding-left:8px}.capability-title span{color:#4ca9d073;letter-spacing:1.6px;font-size:6px;display:block}.capability-title b{color:#dfeff7cc;margin-top:2px;font-size:11px;font-weight:560;display:block}.capability-groups{flex:1;align-items:center;gap:7px;display:flex}.capability-group{align-items:center;gap:5px;display:flex}.capability-group>i{color:#8ad5d0;background:#1c57633d;border:1px solid #44b4c540;border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;font-style:normal;display:grid}.capability-group span{color:#b5cedc85;white-space:nowrap;background:#19374952;border-radius:2px;padding:4px 7px;font-size:7px}.capability-group em{color:#5699b947;margin:0 2px;font-style:normal}.capability-slogan{color:#66c1bc85;white-space:nowrap;align-items:center;gap:6px;font-size:8px;display:flex}.capability-slogan i{background:var(--cyan);border-radius:50%;width:5px;height:5px;box-shadow:0 0 8px #42d2c280}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02080ed6;place-items:center;padding:18px;animation:.2s both fadeIn;display:grid;position:fixed;inset:0}.modal-shell{background:linear-gradient(145deg,#0f273afa,#05111dfc);border:1px solid #4da4cc5c;border-radius:10px;width:min(590px,100vw - 40px);max-height:calc(100vh - 40px);animation:.28s both modalIn;position:relative;overflow:hidden;box-shadow:0 30px 100px #0009}.wide-modal{width:min(1160px,100vw - 44px)}.modal-shell:before{content:"";background:linear-gradient(90deg, transparent, var(--cyan), transparent);height:1px;position:absolute;top:0;left:30px;right:30px}.modal-header{border-bottom:1px solid #6299b824;justify-content:space-between;align-items:center;height:67px;padding:0 24px;display:flex}.modal-header span{color:#51acd287;letter-spacing:1.7px;font-size:8px;font-weight:600}.modal-header h2{color:#edf7fc;letter-spacing:.5px;margin:5px 0 0;font-size:18px;font-weight:620}.modal-header button{color:#c4dbe891;cursor:pointer;background:#122e415c;border:1px solid #699ebb2e;border-radius:4px;width:31px;height:31px;font-size:20px}.architecture-intro{justify-content:space-between;align-items:center;padding:16px 24px 12px;display:flex}.architecture-intro p{color:#bcd5e29c;width:510px;margin:0;font-size:11px;line-height:1.7}.architecture-intro>div{gap:5px;display:flex}.architecture-intro span{color:#a4ccdb94;background:#21516852;border-radius:3px;padding:5px 8px;font-size:8px}.architecture-stack{gap:8px;padding:0 24px 14px;display:grid}.architecture-layer{background:#0f253687;border:1px solid #5e97b621;border-radius:5px;grid-template-columns:176px 1fr;align-items:center;min-height:73px;padding:10px 14px;display:grid;position:relative}.architecture-layer.layer-1{background:linear-gradient(90deg,#1f618747,#0f253687);border-color:#48aee945}.architecture-layer.layer-2{border-color:#42d2c238}.layer-title{align-items:center;gap:11px;display:flex}.layer-title>i{color:#63bedfad;border:1px solid #4aa8d345;border-radius:50%;place-items:center;width:31px;height:31px;font-family:ui-monospace,monospace;font-size:8px;font-style:normal;display:grid}.layer-title b{color:#e4f1f7;font-size:13px;font-weight:600;display:block}.layer-title span{color:#97bccf70;margin-top:3px;font-size:8px;display:block}.layer-items{flex-wrap:wrap;gap:7px;display:flex}.layer-items span{color:#cfe2ecad;text-align:center;background:#1f475e66;border-radius:3px;min-width:92px;padding:8px 12px;font-size:9px}.layer-2 .layer-items span{background:#1c53574d}.layer-flow{z-index:2;flex-direction:column;align-items:center;gap:1px;display:flex;position:absolute;bottom:-14px;left:88px}.layer-flow i{background:var(--cyan);border-radius:50%;width:3px;height:3px;animation:1.4s infinite flowDown}.layer-flow i:nth-child(2){opacity:.6;animation-delay:.2s}.layer-flow i:nth-child(3){opacity:.3;animation-delay:.4s}.architecture-footer{background:#05111b8c;border-top:1px solid #5e97b61f;align-items:center;gap:8px;height:48px;padding:0 24px;display:flex}.architecture-footer b{color:#d9eef4;margin-right:8px;font-size:10px}.architecture-footer span{color:#aacdd991;background:#1c425466;border-radius:2px;padding:4px 7px;font-size:8px}.architecture-footer em{color:#59c4bc91;margin-left:auto;font-size:8px;font-style:normal}.value-overview{grid-template-columns:repeat(4,1fr);gap:8px;padding:18px 24px 10px;display:grid}.value-overview div{background:#193d5057;border-left:2px solid #42d2c27a;padding:12px 14px}.value-overview b{color:#d9f3f1;font-size:21px;font-weight:610;display:block}.value-overview span{color:#a8c7d885;margin-top:4px;font-size:8px;display:block}.value-list{gap:7px;padding:4px 24px 15px;display:grid}.value-list article{background:#0e233280;border:1px solid #5e96b31f;border-radius:5px;grid-template-columns:40px 1fr 85px;align-items:center;min-height:68px;padding:9px 14px;display:grid}.value-list article>i{color:#44a5cf70;font-family:ui-monospace,monospace;font-size:10px;font-style:normal}.value-list h3{color:#e6f2f8e0;margin:0;font-size:12px;font-weight:580}.value-list p{color:#a5c4d585;margin:5px 0 0;font-size:9px;line-height:1.5}.value-list article>b{color:#c6ece8;text-align:right;font-size:15px;font-weight:580}.value-conclusion{background:#07152099;border-top:1px solid #5e96b31f;justify-content:center;align-items:center;gap:14px;height:59px;display:flex}.value-conclusion span{color:#74aac680;letter-spacing:1px;font-size:8px}.value-conclusion b{color:#d8eeee;font-size:12px;font-weight:560}.value-conclusion i{color:#42d2c259;font-style:normal}.event-hero{background:linear-gradient(90deg,#69272526,#0000 45%);border-bottom:1px solid #5e96b31f;grid-template-columns:76px 1fr 120px;align-items:center;min-height:104px;padding:14px 24px;display:grid}.event-risk{border:1px solid #ee665e57;border-radius:50%;place-items:center;width:56px;height:56px;display:grid;position:relative}.event-risk span{color:#f18d81;font-size:10px}.event-risk i{border:1px dashed #ee665e40;border-radius:50%;animation:12s linear infinite slowRotate;position:absolute;inset:5px}.event-name>span{color:#7db1cc7d;font-family:ui-monospace,monospace;font-size:8px}.event-name h3{color:#f0f7fa;margin:5px 0;font-size:17px;font-weight:610}.event-name p{color:#a9c7d787;margin:0;font-size:9px}.event-status-large{text-align:right;border-left:1px solid #669ab521;padding:10px 14px}.event-status-large span{color:#9bbbcc70;font-size:8px;display:block}.event-status-large b{color:#edaa72;margin-top:4px;font-size:17px;font-weight:600;display:block}.event-status-large.status-已完成 b{color:#78c7af}.event-info-grid{background:#5e96b317;border:1px solid #5e96b317;grid-template-columns:repeat(3,1fr);gap:1px;margin:15px 24px 12px;display:grid}.event-info-grid div{background:#0b2132;padding:9px 11px}.event-info-grid span{color:#9abbcd70;font-size:8px;display:block}.event-info-grid b{color:#e2f0f7d1;margin-top:4px;font-size:10px;font-weight:520;display:block}.cyan-text{color:#7bdad0!important}.orange-text{color:#e7b26f!important}.event-loop-title{justify-content:space-between;margin:0 24px;display:flex}.event-loop-title span{color:#e1eff7cc;font-size:11px;font-weight:560}.event-loop-title em{color:#90b4c86b;font-size:8px;font-style:normal}.event-stepper{margin:15px 28px 13px;display:flex}.event-stepper>div{flex-direction:column;flex:1;align-items:center;gap:5px;display:flex;position:relative}.event-stepper i{z-index:2;color:#a2bfcf73;background:#0b2030;border:1px solid #6b9bb52e;border-radius:50%;place-items:center;width:25px;height:25px;font-size:8px;font-style:normal;display:grid;position:relative}.event-stepper span{color:#a4c0d075;white-space:nowrap;font-size:8px}.event-stepper em{background:#6899b521;width:77%;height:1px;position:absolute;top:12px;left:62%}.event-stepper .done i{color:#c9f3ec;background:#1d636180;border-color:#42d2c26b}.event-stepper .done span{color:#b9e1deb8}.event-stepper .done em{background:#42d2c261}.event-stepper .current i{box-shadow:0 0 0 5px #42d2c212}.event-log{background:#06141f73;border:1px solid #5e96b31a;border-radius:4px;margin:0 24px;padding:10px 13px}.event-log>div{color:#89aec273;grid-template-columns:10px 56px 1fr 60px;align-items:center;min-height:25px;font-size:8px;display:grid}.event-log i{background:#4ca0c7a6;border-radius:50%;width:4px;height:4px}.event-log span{color:#bed3df9e}.event-log b{color:#82b5c982;text-align:right;font-weight:500}.event-log .latest i{background:var(--orange)}.event-log .complete i{background:var(--green)}.event-log .complete span{color:#b7e2d2b8}.modal-actions{justify-content:flex-end;gap:8px;padding:14px 24px 18px;display:flex}.secondary-action{color:#c6dbe6a1;cursor:pointer;background:#16334557;border:1px solid #689db92e;border-radius:3px;min-width:86px;height:34px;font-size:10px}.primary-action.large,.complete-action{width:auto;min-width:138px;height:34px;padding:0 18px}.complete-action{color:#eefaf7;cursor:pointer;background:linear-gradient(90deg,#327b6d,#388f7c);border-radius:3px;font-size:10px}.complete-action.completed{background:#2b6a57a6}.event-actions{margin-top:0}.dispatch-modal-content{padding:16px 22px 0}.dispatch-live{border-left:2px solid var(--red);background:#6329272e;grid-template-columns:12px 1fr auto;align-items:center;padding:11px 13px;display:grid}.dispatch-live>i{background:var(--red);border-radius:50%;width:6px;height:6px;animation:1.2s infinite breathe}.dispatch-live span{color:#b2c8d37a;font-size:8px;display:block}.dispatch-live b{color:#f1ded8;margin-top:3px;font-size:11px;font-weight:550;display:block}.dispatch-live em{color:#f09b87;font-size:9px;font-style:normal}.form-label{color:#e1eef4c4;justify-content:space-between;margin:14px 0 7px;font-size:10px;display:flex}.form-label span{color:#8db2c56b;font-size:8px}.target-options{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.target-options label{cursor:pointer;background:#0e233385;border:1px solid #6499b61f;border-radius:4px;grid-template-columns:15px 1fr auto;align-items:center;min-height:52px;padding:8px 10px;display:grid}.target-options label.selected{background:#1b525547;border-color:#42d2c259}.target-options input{opacity:0;position:absolute}.target-options label>i{border:1px solid #7eadc566;border-radius:50%;width:10px;height:10px}.target-options label.selected>i{border:3px solid #54cfc2}.target-options span{color:#dbeaf1bf;font-size:9px}.target-options small{color:#91b4c670;margin-top:3px;font-size:7px;display:block}.target-options b{color:#69ccaba8;font-size:8px;font-weight:500}.dispatch-modal-content textarea{resize:none;color:#e1eff6d1;background:#05121d99;border:1px solid #669ab624;border-radius:4px;outline:none;width:100%;height:62px;padding:9px 11px;font-size:10px;line-height:1.6}.voice-preview{background:#16354647;align-items:center;gap:5px;height:31px;margin-top:5px;padding:0 9px;display:flex}.voice-preview button{color:#fff;background:#3486a08c;border-radius:50%;width:18px;height:18px;font-size:7px}.voice-preview span{color:#9abbcc75;margin-right:auto;font-size:7px}.voice-preview>i{background:#42d2c266;width:2px;height:8px}.voice-preview>i:nth-last-child(2){height:14px}.dispatch-modal-content .modal-actions{padding-left:0;padding-right:0}.dispatch-success{text-align:center;flex-direction:column;align-items:center;padding:36px 24px 42px;display:flex}.success-ring{border:1px solid #42d2c259;border-radius:50%;place-items:center;width:76px;height:76px;display:grid;box-shadow:0 0 0 10px #42d2c20a}.success-ring i{color:#9beddf;background:#2e928059;border-radius:50%;place-items:center;width:49px;height:49px;font-size:24px;font-style:normal;display:grid}.dispatch-success h3{margin:20px 0 6px;font-size:18px;font-weight:620}.dispatch-success>p{color:#a8c7d794;margin:0;font-size:10px}.dispatch-success>p b{color:#ccebe7;font-weight:560}.dispatch-success>div:nth-of-type(2){background:#16374759;align-items:baseline;gap:7px;margin-top:19px;padding:10px 18px;display:flex}.dispatch-success>div:nth-of-type(2) b{color:#d9f2ef;font-size:18px;font-weight:600}.dispatch-success>div:nth-of-type(2) span{color:#9ab9c980;font-size:8px}.dispatch-success>div:nth-of-type(2) i{background:#6498b329;width:1px;height:20px;margin:0 8px}.dispatch-success small{color:#61c1b294;margin-top:12px;font-size:8px}.toast-message{z-index:150;background:#081f2af7;border:1px solid #41c6bb57;border-radius:6px;align-items:center;min-width:390px;height:46px;padding:0 17px;animation:.35s both toastIn;display:flex;position:fixed;top:8%;left:50%;transform:translate(-50%);box-shadow:0 16px 45px #00000059}.toast-message i{color:#baf0e5;background:#2f91806b;border-radius:50%;place-items:center;width:21px;height:21px;margin-right:10px;font-size:11px;font-style:normal;display:grid}.toast-message span{color:#e2f0f6d1;font-size:11px}.demo-guide{z-index:170;background:#061924f5;border:1px solid #43ccc161;border-radius:5px;grid-template-columns:74px 45px 105px minmax(0,1fr) 56px;align-items:center;gap:10px;width:min(650px,100vw - 32px);height:42px;padding:0 13px;animation:.3s both toastIn;display:grid;position:fixed;bottom:64px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0000006b}.demo-guide>span{color:#4db9d5b8;letter-spacing:1px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-weight:700}.demo-guide>b{color:#c9f1ed;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:600}.demo-guide>i{background:#6099b429;border-radius:2px;height:2px;position:relative;overflow:hidden}.demo-guide>i em{border-radius:inherit;background:linear-gradient(90deg,#3faadd,#4fd1bd);transition:width .45s;position:absolute;inset:0 auto 0 0}.demo-guide>p{color:#e0eff5d1;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:10px;overflow:hidden}.demo-guide>small{color:#8fb5c78a;text-align:right;white-space:nowrap;font-size:8px}.demo-guide kbd{color:#cfe7eeb3;background:#163444a6;border:1px solid #6da6be47;border-radius:2px;margin-right:3px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7px}.town-detail-hero{background:linear-gradient(90deg,#1a55703b,#0000 58%);border-bottom:1px solid #5e96b31f;justify-content:space-between;align-items:center;min-height:88px;padding:14px 24px;display:flex}.town-detail-hero>div>span{color:#54b3d594;letter-spacing:1.3px;font-size:8px}.town-detail-hero h3{color:#eef8fc;margin:5px 0 4px;font-size:23px;font-weight:620}.town-detail-hero p{color:#a9c7d78f;margin:0;font-size:9px}.town-risk{color:#e7b16b;background:#744b1e33;border:1px solid #e3a14e4d;border-radius:3px;padding:8px 13px;font-size:10px;font-style:normal}.town-risk.risk-高风险{color:#ef8a80;background:#752a273d;border-color:#ee665e5c}.town-detail-kpis{background:#6097b41a;border:1px solid #6097b41a;grid-template-columns:repeat(5,1fr);gap:1px;margin:14px 24px 12px;display:grid}.town-detail-kpis>div{background:#0a1f2ef7;min-height:72px;padding:11px 13px}.town-detail-kpis span{color:#91b5c87a;font-size:8px;display:block}.town-detail-kpis b{color:#dff2f6;margin-top:7px;font-size:20px;font-weight:600;display:inline-block}.town-detail-kpis small{color:#57c5b99e;margin-left:5px;font-size:8px}.town-detail-layout{grid-template-columns:1fr 1.15fr .9fr;gap:9px;padding:0 24px 15px;display:grid}.town-detail-layout>section{background:#081b29ad;border:1px solid #6097b41c;border-radius:4px;min-height:240px;padding:13px 14px}.detail-section-title{border-bottom:1px solid #6297b31a;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.detail-section-title span{color:#e2eff5d1;font-size:10px;font-weight:570}.detail-section-title em{color:#49c2b67a;font-size:7px;font-style:normal}.town-event-bars{gap:17px;margin-top:19px;display:grid}.town-event-bars>div{grid-template-columns:72px 1fr 24px;align-items:center;gap:8px;display:grid}.town-event-bars span{color:#aecad894;font-size:8px}.town-event-bars>div>i{background:#5791ae1f;border-radius:2px;height:3px;position:relative;overflow:hidden}.town-event-bars i em{border-radius:inherit;background:linear-gradient(90deg,#3da2cfbf,#46cdbecc);position:absolute;inset:0 auto 0 0}.town-event-bars b{color:#cfe9ee;text-align:right;font-size:9px;font-weight:550}.town-task-list{gap:7px;margin-top:11px;display:grid}.town-task-list article{background:#1531416e;grid-template-columns:8px 1fr auto;align-items:center;min-height:51px;padding:7px 9px;display:grid}.town-task-list article>i{background:var(--orange);border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #e3a14e66}.town-task-list article>i.high{background:var(--red);box-shadow:0 0 7px #ee665e73}.town-task-list article>i.done{background:var(--green)}.town-task-list b{color:#e1eef4cc;font-size:9px;font-weight:540;display:block}.town-task-list span{color:#8fb4c66e;margin-top:4px;font-size:7px;display:block}.town-task-list article>em{color:#70c9b69e;font-size:7px;font-style:normal}.town-resource-grid{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:11px;display:grid}.town-resource-grid>div{background:#14304066;border-left:2px solid #41b3cc57;min-height:58px;padding:9px 10px}.town-resource-grid b{color:#d8eff2;font-size:16px;font-weight:590;display:block}.town-resource-grid span{color:#9abccc7a;margin-top:3px;font-size:7px;display:block}.town-detail-footer{background:#05121c80;border-top:1px solid #5f96b21c;align-items:center;min-height:55px;padding:0 24px;display:flex}.town-detail-footer>span{color:#8db3c575;font-size:8px}.town-detail-footer>span i{background:var(--cyan);border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block}.town-detail-footer p{color:#52c6bb8c;letter-spacing:.6px;margin:0 auto;font-size:9px}.report-generating{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:520px;display:flex}.report-generating>div{gap:7px;display:flex}.report-generating i{background:var(--cyan);border-radius:50%;width:7px;height:7px;animation:1s infinite dataDot}.report-generating i:nth-child(2){animation-delay:.14s}.report-generating i:nth-child(3){animation-delay:.28s}.report-generating h3{color:#e4f3f6;margin:20px 0 7px;font-size:18px;font-weight:590}.report-generating p{color:#9dbfcf85;margin:0;font-size:10px}.report-preview{padding:15px 20px 0}.report-sheet{color:#183247;background:#f4f8fa;border-radius:3px;min-height:500px;padding:24px 30px 19px;box-shadow:0 8px 28px #00000038}.report-sheet>header{border-bottom:2px solid #2d9bd3;justify-content:space-between;align-items:flex-start;padding-bottom:13px;display:flex}.report-sheet header span{color:#5f8195;letter-spacing:1px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px}.report-sheet header h2{color:#16384f;letter-spacing:1px;margin:5px 0 0;font-size:24px;font-weight:650}.report-sheet header>em{color:#268c95;background:#e4f5f7;border:1px solid #aad7e8;border-radius:3px;padding:5px 9px;font-size:8px;font-style:normal}.report-lead{color:#476476;margin:13px 0;font-size:10px;line-height:1.7}.report-metrics{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.report-metrics>div{background:#e8f1f5;border-left:3px solid #2b9dd2;padding:10px 12px}.report-metrics span{color:#6b8492;font-size:8px;display:block}.report-metrics b{color:#183c55;margin-top:5px;font-size:21px;font-weight:650;display:inline-block}.report-metrics small{color:#43809e;margin-left:4px;font-size:8px}.report-columns{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.report-columns section{background:#fff;border:1px solid #dbe7ec;padding:11px 13px}.report-columns h3{color:#216c91;margin:0 0 7px;font-size:11px;font-weight:630}.report-columns ul{color:#496575;margin:0;padding-left:16px;font-size:8.5px;line-height:1.75}.report-conclusion{background:#f8efe3;border-left:3px solid #e49a46;grid-template-columns:70px 1fr;align-items:center;gap:10px;margin-top:12px;padding:9px 12px;display:grid}.report-conclusion span{color:#a66623;font-size:9px;font-weight:620}.report-conclusion p{color:#5f574f;margin:0;font-size:9px;line-height:1.55}.report-sheet>footer{color:#78909d;border-top:1px solid #d9e5ea;justify-content:space-between;margin-top:12px;padding-top:9px;font-size:7px;display:flex}.report-sheet footer b{color:#537286;font-weight:560}.report-actions{justify-content:flex-end;gap:8px;padding:12px 3px 15px;display:flex}.report-sheet header span{font-size:9.5px}.report-sheet header h2{font-size:26px}.report-sheet header>em{font-size:9.5px}.report-lead{font-size:12px}.report-metrics span{font-size:10px}.report-metrics b{font-size:24px}.report-metrics small{font-size:9.5px}.report-columns h3{font-size:13px}.report-columns ul{font-size:11px;line-height:1.72}.report-conclusion span,.report-conclusion p{font-size:11px}.report-sheet>footer,.town-detail-hero>div>span,.detail-section-title em{font-size:9px}.town-detail-hero p,.town-detail-kpis span,.town-detail-kpis small{font-size:10px}.detail-section-title span{font-size:12px}.town-event-bars span,.town-event-bars b,.town-task-list b,.town-task-list article>em{font-size:10px}.town-task-list span,.town-resource-grid span,.town-detail-footer>span{font-size:9px}@keyframes breathe{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}@keyframes panelIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes trackGrow{0%{width:0}}@keyframes dataDot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@keyframes pointPulse{0%{opacity:.8;transform:scale(.3)}80%,to{opacity:0;transform:scale(1.8)}}@keyframes demoPointIn{0%{opacity:0;transform:translate(624px,292px)scale(2.2)}to{opacity:1;transform:translate(624px,292px)scale(1)}}@keyframes popupIn{0%{opacity:0;transform:translateY(5px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes scan{0%{transform:translateY(0)}to{transform:translateY(78px)}}@keyframes cctvDrift{0%{transform:scale(1.03)translate(-.3%)}to{transform:scale(1.07)translate(.4%,-.5%)}}@keyframes alertIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes caret{50%{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes flowDown{0%{opacity:0;transform:translateY(-2px)}50%{opacity:1}to{opacity:0;transform:translateY(3px)}}@keyframes slowRotate{to{transform:rotate(360deg)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
