*{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f5f7;--bg-alt:#e9ebef;--card-bg:#fff;--border:#e2e4e9;--text:#1a1d24;--muted:#6b7280;--error:#b3261e;--accent:#d92d20;--accent-hover:#b42318;--accent-soft:#fdecea;--danger:#d92d20;--warning:#f79009;--success:#12b76a;--shadow:0 10px 30px #00000014;--shadow-lg:0 20px 50px #00000024;--shadow-glow:0 0 40px #d92d201f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1115;--bg-alt:#14171d;--card-bg:#171a21;--border:#2a2e38;--text:#e6e8ec;--muted:#9aa2b1;--error:#f28b82;--accent:#f04438;--accent-hover:#ff6b60;--accent-soft:#3d2320;--danger:#f04438;--warning:#fbbf24;--success:#34d399;--shadow:0 10px 30px #00000073;--shadow-lg:0 20px 50px #0000008c;--shadow-glow:0 0 40px #f0443826}}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;margin:0}button{-webkit-tap-highlight-color:transparent;font-family:inherit}a{color:inherit;text-decoration:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.brand{align-items:center;gap:10px;display:flex}.brand-mark{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--accent), #ff6b60);width:40px;height:40px;transition:transform .3s var(--ease-spring);place-items:center;font-size:20px;display:grid;box-shadow:0 6px 16px #d92d2059}.brand-mark:hover{transform:scale(1.08)rotate(-3deg)}.brand-text{flex-direction:column;line-height:1.2;display:flex}.brand-name{color:var(--text);letter-spacing:-.3px;font-size:17px;font-weight:700}.brand-sub{color:var(--muted);font-size:12px}.btn{border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all .2s var(--ease-out);background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;border:none;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-size:15px;font-weight:600;text-decoration:none;display:flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;background:linear-gradient(135deg,#0000 30%,#ffffff26 50%,#0000 70%) 0 0/200% 100%;transition:opacity .3s;position:absolute;inset:0}.btn:hover:after{opacity:1;animation:1.5s infinite shimmer}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #d92d2059}.btn:active{transform:translateY(0)}.btn-outline{border-radius:var(--radius-md);cursor:pointer;transition:all .2s var(--ease-out);background:var(--card-bg);color:var(--text);border:1px solid var(--border);justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn-outline:hover{background:var(--bg);border-color:var(--muted);transform:translateY(-1px)}.btn-outline:active{transform:translateY(0)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login{background:var(--bg);min-height:100dvh;display:flex}.login-hero{color:#fff;animation:fadeIn .6s var(--ease-out);background:radial-gradient(900px 500px at 85% -10%,#ef444459,#0000 60%),radial-gradient(700px 500px at -10% 110%,#d92d2040,#0000 55%),radial-gradient(400px 300px,#6332ff14,#0000 70%),linear-gradient(160deg,#10131f 0%,#171b2b 55%,#1d1030 100%);flex-direction:column;flex:1.1;gap:20px;padding:48px clamp(28px,5vw,72px);display:flex;position:relative;overflow:hidden}.login-hero:before,.login-hero:after{content:"";filter:blur(80px);pointer-events:none;border-radius:50%;position:absolute}.login-hero:before{background:#f044382e;width:300px;height:300px;animation:8s ease-in-out infinite float;top:-80px;right:-60px}.login-hero:after{background:#6332ff1f;width:200px;height:200px;animation:10s ease-in-out infinite reverse float;bottom:60px;left:-40px}.login-hero .brand-name{color:#fff}.login-hero .brand-sub{color:#ffffffa6}.login-hero h1{letter-spacing:-.5px;background:linear-gradient(135deg,#fff 0%,#ffffffd9 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;max-width:520px;margin:24px 0 0;font-size:clamp(28px,3.4vw,44px);font-weight:800;line-height:1.12}.hero-sub{color:#ffffffc7;max-width:520px;margin:0;font-size:16px;line-height:1.65}.feature-list{flex-direction:column;gap:12px;max-width:520px;margin:0;padding:0;list-style:none;display:flex}.feature-list li{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .25s var(--ease-out);background:#ffffff0d;border:1px solid #ffffff14;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.feature-list li:hover{background:#ffffff17;border-color:#ffffff26;transform:translate(4px)}.feature-emoji{border-radius:var(--radius-md);width:44px;height:44px;transition:transform .3s var(--ease-spring);background:#ffffff14;border:1px solid #ffffff24;flex-shrink:0;place-items:center;font-size:20px;display:grid}.feature-list li:hover .feature-emoji{transform:scale(1.1)}.feature-list strong{font-size:15px;font-weight:600}.feature-list p{color:#ffffffa6;margin:4px 0 0;font-size:13.5px;line-height:1.5}.hero-alert{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:400px;animation:slideUp .8s var(--ease-out) .2s both;background:#ffffff0f;border:1px solid #ffffff1f;align-self:flex-start;padding:18px 20px;box-shadow:0 18px 40px #0000004d,inset 0 1px #ffffff14}.hero-alert-head{letter-spacing:1px;color:#ff6b60;text-transform:uppercase;font-size:12px;font-weight:800}.hero-alert-title{margin:8px 0 10px;font-size:15px;font-weight:600}.hero-alert-meta{color:#ffffffbf;flex-wrap:wrap;gap:8px 16px;font-size:13px;display:flex}.hero-stats{animation:fadeIn .8s var(--ease-out) .4s both;border-top:1px solid #ffffff1f;gap:clamp(20px,4vw,48px);margin-top:auto;padding-top:24px;display:flex}.hero-stats div{flex-direction:column;gap:2px;display:flex}.hero-stats strong{background:linear-gradient(135deg,#ff6b60,#ff9a76);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:24px;font-weight:800}.hero-stats span{color:#fff9;font-size:12.5px}.login-panel{background:var(--bg);animation:fadeIn .5s var(--ease-out) .15s both;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.card{border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--card-bg);width:100%;max-width:400px;box-shadow:var(--shadow);text-align:center;box-sizing:border-box;transition:box-shadow .3s var(--ease-out);padding:40px 32px}.card:hover{box-shadow:var(--shadow-lg)}.card h1{color:var(--text);letter-spacing:-.3px;margin:0 0 8px;font-size:26px;font-weight:700}.muted{color:var(--muted);margin:0 0 24px;font-size:14px}.muted.ok{color:var(--success)}.error{border-radius:var(--radius-sm);color:var(--error);background:var(--accent-soft);margin:0 0 16px;padding:10px 14px;font-size:14px}.google-btn{border-radius:var(--radius-md);cursor:pointer;width:100%;min-height:52px;transition:all .2s var(--ease-out);background:var(--card-bg);color:var(--text);border:1.5px solid var(--border);justify-content:center;align-items:center;gap:10px;padding:14px 20px;font-size:15px;font-weight:600;display:flex;position:relative;overflow:hidden}.google-btn:before{content:"";opacity:0;background:linear-gradient(135deg,#4285f40a,#ea43350a);transition:opacity .2s;position:absolute;inset:0}.google-btn:hover:before{opacity:1}.google-btn:hover:not(:disabled){border-color:var(--muted);transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.google-btn:active:not(:disabled){transform:translateY(0)}.google-btn:disabled{opacity:.5;cursor:not-allowed}.login-note{color:var(--muted);margin:20px 0 0;font-size:12.5px}.avatar{border:3px solid var(--border);width:72px;height:72px;transition:transform .3s var(--ease-spring);border-radius:50%;margin-bottom:12px}.avatar:hover{transform:scale(1.06)}.email{color:var(--text);word-break:break-all;margin:0 0 24px;font-size:15px}.card-actions{flex-direction:column;gap:10px;margin-top:8px;display:flex}@media (width<=880px){.login{flex-direction:column}.login-hero{gap:14px;padding:28px 24px 32px}.login-hero h1{margin-top:12px;font-size:26px}.hero-alert,.hero-stats,.feature-list{display:none}}@media (width<=480px){.login{min-height:100svh}.login-hero{gap:10px;padding:24px 20px 28px}.login-hero h1{margin-top:10px;font-size:22px}.hero-sub{font-size:14px;line-height:1.55}.login-panel{padding:20px 16px}.card{border-radius:var(--radius-lg);padding:28px 20px}.card h1{font-size:22px}.google-btn{min-height:50px;padding:14px 16px;font-size:15px}}@media (width<=360px){.login-hero{padding:20px 16px 24px}.login-panel{padding:16px 12px}.card{padding:24px 16px}}.dash-page{background:radial-gradient(800px 400px at 20% 0%, #d92d200a, transparent 60%), radial-gradient(600px 400px at 80% 100%, #6332ff08, transparent 55%), var(--bg);min-height:100dvh;animation:fadeIn .5s var(--ease-out);flex-direction:column;display:flex}.dash-loading{justify-content:center;align-items:center}.dash-muted{color:var(--muted);font-size:15px;font-weight:500;animation:1.5s ease-in-out infinite pulse}.dash-header{z-index:10;border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);background:color-mix(in srgb, var(--card-bg) 82%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.4);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 28px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000a}.role-switch{border-radius:var(--radius-full);background:var(--bg-alt);border:1px solid var(--border);gap:3px;padding:4px;display:inline-flex}.role-switch button{border-radius:var(--radius-full);min-height:40px;color:var(--muted);cursor:pointer;transition:all .25s var(--ease-spring);white-space:nowrap;background:0 0;border:none;padding:8px 20px;font-size:13.5px;font-weight:600}.role-switch button:hover{color:var(--text);background:color-mix(in srgb, var(--card-bg) 60%, transparent)}.role-switch button.active{background:var(--card-bg);color:var(--text);box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.dash-user{align-items:center;gap:12px;display:flex}.dash-avatar{border:2px solid var(--border);object-fit:cover;width:38px;height:38px;transition:all .25s var(--ease-spring);border-radius:50%;box-shadow:0 2px 8px #00000014}.dash-avatar:hover{border-color:var(--accent);transform:scale(1.08)}.dash-user-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:14px;font-weight:600;overflow:hidden}.btn-signout{border-radius:var(--radius-full);min-height:40px;padding:8px 16px}.dash-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:28px}.dash-error-banner{border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);background:linear-gradient(135deg, var(--accent-soft), color-mix(in srgb, var(--accent-soft) 80%, var(--card-bg)));color:var(--danger);animation:slideUp .35s var(--ease-out);box-shadow:0 4px 12px color-mix(in srgb, var(--danger) 8%, transparent);align-items:center;gap:10px;margin:0 0 20px;padding:14px 18px;font-size:14px;font-weight:500;display:flex}.dash-error{color:var(--danger);margin:12px 0 0;font-size:13.5px;font-weight:500}.panel{border-radius:var(--radius-xl);border:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:color-mix(in srgb, var(--card-bg) 90%, transparent);-webkit-backdrop-filter:blur(12px);transition:all .35s var(--ease-out);padding:28px;box-shadow:0 1px 2px #00000008,0 8px 32px #0000000a}.panel:hover{border-color:color-mix(in srgb, var(--border) 60%, transparent);box-shadow:0 1px 2px #00000008,0 12px 40px #00000012}.panel-head h2{color:var(--text);letter-spacing:-.3px;margin:0;font-size:19px;font-weight:700}.panel-head p{color:var(--muted);margin:6px 0 0;font-size:13.5px;line-height:1.55}.panel-head-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.dash-grid{grid-template-columns:1.15fr .85fr;align-items:start;gap:24px;display:grid}.type-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;display:grid}.type-btn{border-radius:var(--radius-lg);cursor:pointer;background:color-mix(in srgb, var(--card-bg) 70%, var(--bg));border:1.5px solid var(--border);min-height:96px;transition:all .25s var(--ease-spring);flex-direction:column;align-items:center;gap:6px;padding:16px 8px;display:flex;position:relative;overflow:hidden}.type-btn:before{content:"";border-radius:inherit;background:linear-gradient(160deg, transparent 40%, color-mix(in srgb, var(--type-color) 10%, transparent));opacity:0;transition:opacity .3s;position:absolute;inset:0}.type-btn:hover:before{opacity:1}.type-btn:hover{border-color:color-mix(in srgb, var(--type-color) 60%, transparent);box-shadow:0 6px 16px color-mix(in srgb, var(--type-color) 15%, transparent), 0 0 0 1px color-mix(in srgb, var(--type-color) 20%, transparent);transform:translateY(-3px)}.type-btn:active{transform:translateY(-1px)}.type-btn.selected{border-color:var(--type-color);background:color-mix(in srgb, var(--type-color) 6%, var(--card-bg));box-shadow:0 0 0 3px color-mix(in srgb, var(--type-color) 20%, transparent), 0 4px 16px color-mix(in srgb, var(--type-color) 12%, transparent)}.type-btn.selected:before{opacity:1}.type-emoji{transition:transform .3s var(--ease-spring);z-index:1;font-size:30px;position:relative}.type-btn:hover .type-emoji,.type-btn.selected .type-emoji{transform:scale(1.2)rotate(-3deg)}.type-label{color:var(--text);z-index:1;text-align:center;font-size:13px;font-weight:600;line-height:1.2;position:relative}.type-sev{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);z-index:1;font-size:10px;font-weight:600;position:relative}.report-desc{border-radius:var(--radius-lg);border:1.5px solid var(--border);background:color-mix(in srgb, var(--bg) 80%, var(--card-bg));width:100%;color:var(--text);resize:vertical;min-height:80px;transition:all .25s var(--ease-out);margin-top:18px;padding:14px 16px;font-family:inherit;font-size:14px;line-height:1.55}.report-desc::placeholder{color:var(--muted);opacity:.6}.report-desc:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent), 0 2px 8px #0000000a;outline:none}.alert-btn{border-radius:var(--radius-lg);cursor:pointer;letter-spacing:.2px;color:#fff;width:100%;min-height:60px;transition:all .3s var(--ease-spring);background:linear-gradient(135deg,#f04438 0%,#d92d20 50%,#b42318 100%) 0 0/200% 100%;border:none;justify-content:center;align-items:center;gap:12px;margin-top:18px;padding:18px;font-size:17px;font-weight:700;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 20px #d92d204d,0 2px 4px #d92d2033,inset 0 1px #ffffff1f}.alert-btn:before{content:"";opacity:0;background:linear-gradient(135deg,#0000 20%,#ffffff26 50%,#0000 80%) 0 0/200% 100%;transition:opacity .3s;position:absolute;inset:0}.alert-btn:hover:not(:disabled):before{opacity:1;animation:1.5s infinite shimmer}.alert-btn:hover:not(:disabled){background-position:100% 0;transform:translateY(-3px)scale(1.01);box-shadow:0 12px 28px #d92d2066,0 4px 8px #d92d2040,inset 0 1px #ffffff26}.alert-btn:active:not(:disabled){transform:translateY(-1px)scale(.99);box-shadow:0 4px 12px #d92d204d,inset 0 1px #ffffff1a}.alert-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.alert-siren{font-size:24px;animation:1s ease-in-out infinite siren;position:relative}@keyframes siren{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.15)rotate(-5deg)}50%{transform:scale(1.25)rotate(0)}75%{transform:scale(1.15)rotate(5deg)}}.alert-hint{text-align:center;color:var(--muted);opacity:.8;margin:12px 0 0;font-size:12.5px}.broadcast-list{flex-direction:column;gap:12px;margin-top:18px;display:flex}.broadcast{border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--card-bg) 60%, var(--bg));transition:all .3s var(--ease-out);animation:slideUp .4s var(--ease-out) both;padding:16px 18px}.broadcast:hover{border-color:color-mix(in srgb, var(--border) 50%, transparent);box-shadow:0 4px 16px #0000000d}.broadcast-mine{border-color:color-mix(in srgb, var(--danger) 40%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent-soft) 90%, var(--card-bg)), var(--accent-soft));box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 10%, transparent), 0 4px 16px color-mix(in srgb, var(--danger) 8%, transparent)}.broadcast-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.broadcast-siren{letter-spacing:1px;color:var(--danger);text-transform:uppercase;font-size:11.5px;font-weight:800}.broadcast-time{color:var(--muted);font-size:12px;font-weight:500}.broadcast-title{color:var(--text);margin:10px 0;font-size:15px;font-weight:600;line-height:1.35}.broadcast-meta{color:var(--muted);flex-wrap:wrap;gap:8px 18px;font-size:12.5px;display:flex}.broadcast-note{color:var(--success);margin:12px 0 0;font-size:13px;font-weight:500}.broadcast-demo{color:var(--warning)}.safety-card{border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--border) 60%, transparent);background:color-mix(in srgb, var(--card-bg) 50%, var(--bg));transition:all .25s var(--ease-out);margin-top:20px;padding:20px}.safety-card:hover{box-shadow:0 4px 16px #0000000a}.safety-card h3{color:var(--text);margin:0 0 14px;font-size:14px;font-weight:700}.safety-card ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.safety-card li{border-radius:var(--radius-md);color:var(--muted);transition:all .2s var(--ease-out);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13.5px;display:flex}.safety-card li:hover{background:color-mix(in srgb, var(--accent-soft) 50%, transparent);color:var(--text)}.safety-card li:hover strong{color:var(--danger)}.safety-card strong{color:var(--text);font-weight:700;transition:color .2s}.admin-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card{border-radius:var(--radius-xl);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--card-bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);transition:all .3s var(--ease-spring);animation:slideUp .5s var(--ease-out) both;flex-direction:column;gap:6px;padding:22px 24px;display:flex;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--border);border-radius:3px 3px 0 0;height:3px;transition:background .3s;position:absolute;top:0;left:0;right:0}.stat-card:first-child{animation-delay:50ms}.stat-card:first-child:after{background:var(--danger)}.stat-card:nth-child(2){animation-delay:.1s}.stat-card:nth-child(2):after{background:var(--warning)}.stat-card:nth-child(3){animation-delay:.15s}.stat-card:nth-child(3):after{background:var(--success)}.stat-card:nth-child(4){animation-delay:.2s}.stat-card:nth-child(4):after{background:var(--accent)}.stat-card:hover{box-shadow:0 8px 24px #00000014, 0 0 0 1px color-mix(in srgb, var(--border) 50%, transparent);transform:translateY(-4px)}.stat-value{color:var(--text);letter-spacing:-.5px;font-size:34px;font-weight:800;line-height:1}.stat-label{color:var(--muted);font-size:13px;font-weight:500}.stat-danger .stat-value{color:var(--danger)}.stat-warning .stat-value{color:var(--warning)}.stat-success .stat-value{color:var(--success)}.admin-grid{grid-template-columns:1.5fr 1fr;align-items:start;gap:24px;display:grid}.live-badge{border-radius:var(--radius-full);letter-spacing:1px;color:var(--danger);background:linear-gradient(135deg, var(--accent-soft), color-mix(in srgb, var(--accent-soft) 70%, var(--card-bg)));border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);box-shadow:0 2px 8px color-mix(in srgb, var(--danger) 10%, transparent);align-items:center;gap:8px;padding:6px 16px;font-size:11px;font-weight:700;display:inline-flex}.live-dot{background:var(--danger);border-radius:50%;width:8px;height:8px;animation:1.4s ease-out infinite live-pulse}@keyframes live-pulse{0%{box-shadow:0 0 #ef444480}to{box-shadow:0 0 0 8px #ef444400}}.map-wrap{border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);margin-top:18px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.campus-map{width:100%;height:auto;display:block}.map-bg{fill:var(--bg-alt)}.map-road{fill:var(--card-bg);stroke:var(--border);stroke-width:1.5px}.map-zone rect{fill:var(--card-bg);stroke:var(--border);stroke-width:1.5px;transition:all .2s}.map-zone:hover rect{fill:color-mix(in srgb, var(--card-bg) 80%, var(--bg));stroke:color-mix(in srgb, var(--border) 50%, var(--muted))}.map-zone text{fill:var(--muted);text-anchor:middle;font-size:13px;font-weight:600}.map-zone .map-zone-sub{font-size:11px;font-weight:500}.map-gate rect{fill:var(--bg-alt)}.map-gate text{font-size:11px}.map-marker{transform-box:fill-box;transform-origin:50%}.marker-ring{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite marker-ring}.marker-dot{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite marker-dot}@keyframes marker-ring{0%{opacity:.8;transform:scale(.7)}to{opacity:0;transform:scale(2.3)}}@keyframes marker-dot{0%,to{opacity:1}50%{opacity:.6}}.marker-label{fill:#fff;paint-order:stroke;stroke:#000000a6;stroke-width:3.5px;font-size:12.5px;font-weight:700}.map-legend{border-top:1px solid color-mix(in srgb, var(--border) 50%, transparent);flex-wrap:wrap;gap:10px 18px;margin-top:16px;padding-top:14px;display:flex}.legend-item{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px;box-shadow:0 1px 4px #00000026}.incident-list{flex-direction:column;gap:10px;margin:18px 0 0;padding:0;list-style:none;display:flex}.incident-row{border-radius:var(--radius-lg);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--card-bg) 60%, var(--bg));transition:all .25s var(--ease-out);animation:slideUp .3s var(--ease-out) both;align-items:center;gap:14px;padding:16px;display:flex}.incident-row:hover{border-color:color-mix(in srgb, var(--muted) 40%, transparent);transform:translate(2px);box-shadow:0 4px 16px #0000000a}.incident-emoji{border-radius:var(--radius-lg);width:48px;height:48px;transition:all .25s var(--ease-spring);flex-shrink:0;place-items:center;font-size:22px;display:grid}.incident-row:hover .incident-emoji{transform:scale(1.12)rotate(-3deg)}.incident-info{flex:1;min-width:0}.incident-title{color:var(--text);margin:0;font-size:14.5px;font-weight:600;line-height:1.3}.incident-sub{color:var(--muted);margin:4px 0 0;font-size:12.5px;line-height:1.4}.incident-side{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.chip{border-radius:var(--radius-full);text-transform:capitalize;white-space:nowrap;letter-spacing:.2px;padding:5px 14px;font-size:11.5px;font-weight:600}.chip-active{background:linear-gradient(135deg, color-mix(in srgb, var(--danger) 12%, transparent), color-mix(in srgb, var(--danger) 6%, transparent));color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 20%, transparent)}.chip-responding{background:linear-gradient(135deg, color-mix(in srgb, var(--warning) 14%, transparent), color-mix(in srgb, var(--warning) 6%, transparent));color:var(--warning);border:1px solid color-mix(in srgb, var(--warning) 20%, transparent)}.chip-pending{background:var(--bg-alt);color:var(--muted);border:1px solid color-mix(in srgb, var(--muted) 15%, transparent)}.chip-resolved{background:linear-gradient(135deg, color-mix(in srgb, var(--success) 14%, transparent), color-mix(in srgb, var(--success) 6%, transparent));color:var(--success);border:1px solid color-mix(in srgb, var(--success) 20%, transparent)}.btn-sm{border-radius:var(--radius-md);cursor:pointer;background:var(--accent);color:#fff;min-height:36px;transition:all .2s var(--ease-spring);box-shadow:0 2px 6px color-mix(in srgb, var(--accent) 20%, transparent);border:none;padding:8px 16px;font-size:12.5px;font-weight:600}.btn-sm:hover{background:var(--accent-hover);box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 25%, transparent);transform:translateY(-2px)}.btn-sm:active{box-shadow:0 1px 4px color-mix(in srgb, var(--accent) 15%, transparent);transform:translateY(0)}.btn-sm-success{background:var(--success);box-shadow:0 2px 6px color-mix(in srgb, var(--success) 20%, transparent)}.btn-sm-success:hover{background:color-mix(in srgb, var(--success) 90%, #000);box-shadow:0 4px 12px color-mix(in srgb, var(--success) 25%, transparent)}.btn-sm-danger{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);box-shadow:none;background:0 0}.btn-sm-danger:hover{background:var(--accent-soft);border-color:color-mix(in srgb, var(--danger) 40%, transparent);box-shadow:0 2px 8px color-mix(in srgb, var(--danger) 10%, transparent)}.mobile-nav{display:none}.ptr-container{position:relative;overflow:hidden}.ptr-indicator{transition:height .3s var(--ease-spring), opacity .2s;pointer-events:none;justify-content:center;align-items:center;gap:8px;display:flex;overflow:hidden}.ptr-indicator.refreshing{transition:height .3s var(--ease-out), opacity .2s}.ptr-spinner{font-size:22px;line-height:1;transition:transform .1s linear;display:inline-block}.ptr-indicator.refreshing .ptr-spinner{animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptr-text{color:var(--muted);font-size:13px;font-weight:500}@media (width<=960px){.dash-grid,.admin-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.desktop-only{display:none!important}.mobile-nav{z-index:50;padding:6px 8px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--card-bg) 80%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.4);border-top:1px solid color-mix(in srgb, var(--border) 60%, transparent);justify-content:stretch;align-items:stretch;gap:0;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #0000001a}.mobile-nav-item{min-height:54px;color:var(--muted);cursor:pointer;border-radius:var(--radius-md);transition:all .25s var(--ease-spring);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 4px;display:flex;position:relative}.mobile-nav-item:before{content:"";background:var(--accent);width:28px;height:3px;transition:transform .25s var(--ease-spring);border-radius:0 0 3px 3px;position:absolute;top:0;left:50%;transform:translate(-50%)scaleX(0)}.mobile-nav-item.active{color:var(--accent);background:var(--accent-soft)}.mobile-nav-item.active:before{transform:translate(-50%)scaleX(1)}.mobile-nav-item:active{transform:scale(.92)}.mobile-nav-icon{transition:transform .25s var(--ease-spring);font-size:22px;line-height:1}.mobile-nav-item.active .mobile-nav-icon{transform:scale(1.15)}.mobile-nav-label{letter-spacing:.2px;font-size:11px;font-weight:600}.dash-header{justify-content:center;padding:10px 16px}.dash-main{padding:16px;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}.type-grid{grid-template-columns:repeat(2,1fr);gap:10px}.type-btn{min-height:82px;padding:14px 8px}.panel{border-radius:var(--radius-lg);padding:20px}.panel-head h2{font-size:17px}.stat-card{padding:18px 20px}.stat-value{font-size:28px}.alert-btn{min-height:56px;padding:16px;font-size:16px}.incident-row{flex-wrap:wrap;gap:10px;padding:14px}.incident-side{flex-direction:row;justify-content:flex-end;align-items:center;width:100%;margin-top:4px}.broadcast{padding:14px 16px}.map-wrap{overflow-x:auto}.admin-stats{gap:10px}}@media (width<=360px){.dash-main{padding:12px}.type-grid{grid-template-columns:1fr 1fr;gap:8px}.type-btn{min-height:74px;padding:12px 6px}.type-emoji{font-size:26px}.type-label{font-size:12px}.panel{padding:16px}.stat-card{padding:14px 16px}.stat-value{font-size:24px}}
